diff --git a/web/app/(commonLayout)/workflow/page.tsx b/web/app/(commonLayout)/workflow/page.tsx
new file mode 100644
index 0000000000..218c25fc12
--- /dev/null
+++ b/web/app/(commonLayout)/workflow/page.tsx
@@ -0,0 +1,14 @@
+'use client'
+
+import type { FC } from 'react'
+import { memo } from 'react'
+import Workflow from '@/app/components/workflow'
+
+const Page: FC = () => {
+ return (
+
+
+
+ )
+}
+export default memo(Page)
diff --git a/web/app/components/workflow/context.tsx b/web/app/components/workflow/context.tsx
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/web/app/components/workflow/custom-edge.tsx b/web/app/components/workflow/custom-edge.tsx
new file mode 100644
index 0000000000..9a6958e7c5
--- /dev/null
+++ b/web/app/components/workflow/custom-edge.tsx
@@ -0,0 +1,29 @@
+import type { EdgeProps } from 'reactflow'
+import {
+ BaseEdge,
+ getBezierPath,
+} from 'reactflow'
+
+const CustomEdge = ({
+ id,
+ sourceX,
+ sourceY,
+ targetX,
+ targetY,
+}: EdgeProps) => {
+ const [edgePath] = getBezierPath({
+ sourceX,
+ sourceY,
+ targetX,
+ targetY,
+ })
+ console.log('edgePath', edgePath)
+
+ return (
+ <>
+
+ >
+ )
+}
+
+export default CustomEdge
diff --git a/web/app/components/workflow/header.tsx b/web/app/components/workflow/header.tsx
new file mode 100644
index 0000000000..469b412d59
--- /dev/null
+++ b/web/app/components/workflow/header.tsx
@@ -0,0 +1,14 @@
+const Header = () => {
+ return (
+
+
+
+ )
+}
+
+export default Header
diff --git a/web/app/components/workflow/hooks.ts b/web/app/components/workflow/hooks.ts
new file mode 100644
index 0000000000..0da99b09e9
--- /dev/null
+++ b/web/app/components/workflow/hooks.ts
@@ -0,0 +1,15 @@
+import {
+ useCallback,
+ useState,
+} from 'react'
+
+export const useWorkflow = () => {
+ const [selectedNodeId, setSelectedNodeId] = useState('')
+
+ const handleSelectedNodeId = useCallback((nodeId: string) => setSelectedNodeId(nodeId), [])
+
+ return {
+ selectedNodeId,
+ handleSelectedNodeId,
+ }
+}
diff --git a/web/app/components/workflow/index.tsx b/web/app/components/workflow/index.tsx
new file mode 100644
index 0000000000..9b6d7a6788
--- /dev/null
+++ b/web/app/components/workflow/index.tsx
@@ -0,0 +1,67 @@
+import ReactFlow, {
+ Background,
+} from 'reactflow'
+import 'reactflow/dist/style.css'
+import Header from './header'
+import CustomNode from './nodes'
+import CustomEdge from './custom-edge'
+
+const nodeTypes = {
+ custom: CustomNode,
+}
+const edgeTypes = {
+ custom: CustomEdge,
+}
+
+const Workflow = () => {
+ return (
+
+
+
+
+
+
+ )
+}
+
+export default Workflow
diff --git a/web/app/components/workflow/nodes/_base/node.tsx b/web/app/components/workflow/nodes/_base/node.tsx
new file mode 100644
index 0000000000..c44ae5287d
--- /dev/null
+++ b/web/app/components/workflow/nodes/_base/node.tsx
@@ -0,0 +1,42 @@
+import type {
+ FC,
+ ReactNode,
+} from 'react'
+import { memo } from 'react'
+import { Plus } from '@/app/components/base/icons/src/vender/line/general'
+
+type BaseNodeProps = {
+ children: ReactNode
+}
+
+const BaseNode: FC = ({
+ children,
+}) => {
+ return (
+
+
+ {children}
+
+ Define the initial parameters for launching a workflow
+
+
+
+ )
+}
+
+export default memo(BaseNode)
diff --git a/web/app/components/workflow/nodes/_base/panel.tsx b/web/app/components/workflow/nodes/_base/panel.tsx
new file mode 100644
index 0000000000..e72593d14e
--- /dev/null
+++ b/web/app/components/workflow/nodes/_base/panel.tsx
@@ -0,0 +1,41 @@
+import type {
+ FC,
+ ReactNode,
+} from 'react'
+
+type BasePanelProps = {
+ defaultElement?: ReactNode
+ inputsElement?: ReactNode
+ ouputsElement?: ReactNode
+}
+
+const BasePanel: FC = ({
+ defaultElement,
+ inputsElement,
+ ouputsElement,
+}) => {
+ return (
+
+
+
+
+ Add description...
+
+
+
+ inputs
+
+
+ {defaultElement}
+ {inputsElement}
+ {ouputsElement}
+
+
+
+ )
+}
+
+export default BasePanel
diff --git a/web/app/components/workflow/nodes/index.tsx b/web/app/components/workflow/nodes/index.tsx
new file mode 100644
index 0000000000..0c6b51911d
--- /dev/null
+++ b/web/app/components/workflow/nodes/index.tsx
@@ -0,0 +1,29 @@
+import {
+ Handle,
+ Position,
+} from 'reactflow'
+import StartNode from './start/node'
+
+const NodeMap = {
+ 'start-node': StartNode,
+}
+
+const CustomNode = () => {
+ return (
+ <>
+
+
+
+ >
+ )
+}
+
+export default CustomNode
diff --git a/web/app/components/workflow/nodes/start/node.tsx b/web/app/components/workflow/nodes/start/node.tsx
new file mode 100644
index 0000000000..04b9c9e714
--- /dev/null
+++ b/web/app/components/workflow/nodes/start/node.tsx
@@ -0,0 +1,11 @@
+import BaseNode from '../_base/node'
+
+const Node = () => {
+ return (
+
+ start node
+
+ )
+}
+
+export default Node
diff --git a/web/app/components/workflow/nodes/start/panel.tsx b/web/app/components/workflow/nodes/start/panel.tsx
new file mode 100644
index 0000000000..2e41356140
--- /dev/null
+++ b/web/app/components/workflow/nodes/start/panel.tsx
@@ -0,0 +1,11 @@
+import BasePanel from '../_base/panel'
+
+const Panel = () => {
+ return (
+ start panel}
+ />
+ )
+}
+
+export default Panel
diff --git a/web/app/components/workflow/types.ts b/web/app/components/workflow/types.ts
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/web/package.json b/web/package.json
index 60a59b5061..19bf8f173e 100644
--- a/web/package.json
+++ b/web/package.json
@@ -68,6 +68,7 @@
"react-tooltip": "5.8.3",
"react-window": "^1.8.9",
"react-window-infinite-loader": "^1.0.9",
+ "reactflow": "^11.10.3",
"recordrtc": "^5.6.2",
"rehype-katex": "^6.0.2",
"remark-breaks": "^3.0.2",
diff --git a/web/yarn.lock b/web/yarn.lock
index e0d0f0f1cf..eee7c7468c 100644
--- a/web/yarn.lock
+++ b/web/yarn.lock
@@ -535,6 +535,72 @@
picocolors "^1.0.0"
tslib "^2.6.0"
+"@reactflow/background@11.3.8":
+ version "11.3.8"
+ resolved "https://registry.npmjs.org/@reactflow/background/-/background-11.3.8.tgz"
+ integrity sha512-U4aI54F7PwqgYI0Knv72QFRI/wXeipPmIYAlDsA0j51+tlPxs3Nk2z7G1/4pC11GxEZkgQVfcIXro4l1Fk+bIQ==
+ dependencies:
+ "@reactflow/core" "11.10.3"
+ classcat "^5.0.3"
+ zustand "^4.4.1"
+
+"@reactflow/controls@11.2.8":
+ version "11.2.8"
+ resolved "https://registry.npmjs.org/@reactflow/controls/-/controls-11.2.8.tgz"
+ integrity sha512-Y9YVx38sRjYtbPsI/xa+B1FGN73FV1GqqajlmGfrc1TmqhJaX+gaMXMvVazT/N5haK1hMJvOApUTLQ2V/5Rdbg==
+ dependencies:
+ "@reactflow/core" "11.10.3"
+ classcat "^5.0.3"
+ zustand "^4.4.1"
+
+"@reactflow/core@11.10.3":
+ version "11.10.3"
+ resolved "https://registry.npmjs.org/@reactflow/core/-/core-11.10.3.tgz"
+ integrity sha512-nV3nep4fjBy3h8mYSnJcclGcQtj8fkUBmNkEwCZCK4ps+n3HNkXFB0BRisSnQz6GRQlYboSsi0cThEl3KdNITw==
+ dependencies:
+ "@types/d3" "^7.4.0"
+ "@types/d3-drag" "^3.0.1"
+ "@types/d3-selection" "^3.0.3"
+ "@types/d3-zoom" "^3.0.1"
+ classcat "^5.0.3"
+ d3-drag "^3.0.0"
+ d3-selection "^3.0.0"
+ d3-zoom "^3.0.0"
+ zustand "^4.4.1"
+
+"@reactflow/minimap@11.7.8":
+ version "11.7.8"
+ resolved "https://registry.npmjs.org/@reactflow/minimap/-/minimap-11.7.8.tgz"
+ integrity sha512-MwyP5q3VomC91Dhd4P6YcxEfnjDbREGYV6rRxbSJSTHiG0x7ETQCcPelYDGy7JvQej77Pa2yJ4g0FDwP7CsQEA==
+ dependencies:
+ "@reactflow/core" "11.10.3"
+ "@types/d3-selection" "^3.0.3"
+ "@types/d3-zoom" "^3.0.1"
+ classcat "^5.0.3"
+ d3-selection "^3.0.0"
+ d3-zoom "^3.0.0"
+ zustand "^4.4.1"
+
+"@reactflow/node-resizer@2.2.8":
+ version "2.2.8"
+ resolved "https://registry.npmjs.org/@reactflow/node-resizer/-/node-resizer-2.2.8.tgz"
+ integrity sha512-u/EXLpvOfAmq1sGoPYwoX4gi0PnCi0mH3eHVClHNc8JQD0WCqcV1UeVV7H3PF+1SGhhg/aOv/vPG1PcQ5fu4jQ==
+ dependencies:
+ "@reactflow/core" "11.10.3"
+ classcat "^5.0.4"
+ d3-drag "^3.0.0"
+ d3-selection "^3.0.0"
+ zustand "^4.4.1"
+
+"@reactflow/node-toolbar@1.3.8":
+ version "1.3.8"
+ resolved "https://registry.npmjs.org/@reactflow/node-toolbar/-/node-toolbar-1.3.8.tgz"
+ integrity sha512-cfvlTPeJa/ciQTosx2bGrjHT8K/UL9kznpvpOzeZFnJm5UQXmbwAYt4Vo6GfkD51mORcIL7ujQJvB9ym3ZI9KA==
+ dependencies:
+ "@reactflow/core" "11.10.3"
+ classcat "^5.0.3"
+ zustand "^4.4.1"
+
"@rgrove/parse-xml@^4.1.0":
version "4.1.0"
resolved "https://registry.npmjs.org/@rgrove/parse-xml/-/parse-xml-4.1.0.tgz"
@@ -643,23 +709,216 @@
resolved "https://registry.npmjs.org/@types/crypto-js/-/crypto-js-4.1.1.tgz"
integrity sha512-BG7fQKZ689HIoc5h+6D2Dgq1fABRa0RbBWKBd9SP/MVRVXROflpm5fhwyATX5duFmbStzyzyycPB8qUYKDH3NA==
-"@types/d3-scale-chromatic@^3.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-axis@*":
+ version "3.0.6"
+ resolved "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.6.tgz"
+ integrity sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==
+ dependencies:
+ "@types/d3-selection" "*"
+
+"@types/d3-brush@*":
+ version "3.0.6"
+ resolved "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.6.tgz"
+ integrity sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==
+ dependencies:
+ "@types/d3-selection" "*"
+
+"@types/d3-chord@*":
+ version "3.0.6"
+ resolved "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.6.tgz"
+ integrity sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==
+
+"@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-contour@*":
+ version "3.0.6"
+ resolved "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.6.tgz"
+ integrity sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==
+ dependencies:
+ "@types/d3-array" "*"
+ "@types/geojson" "*"
+
+"@types/d3-delaunay@*":
+ version "6.0.4"
+ resolved "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz"
+ integrity sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==
+
+"@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-drag@*", "@types/d3-drag@^3.0.1":
+ version "3.0.7"
+ resolved "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz"
+ integrity sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==
+ dependencies:
+ "@types/d3-selection" "*"
+
+"@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-ease@*":
+ version "3.0.2"
+ resolved "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz"
+ integrity sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==
+
+"@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==
+ dependencies:
+ "@types/d3-dsv" "*"
+
+"@types/d3-force@*":
+ version "3.0.9"
+ resolved "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.9.tgz"
+ integrity sha512-IKtvyFdb4Q0LWna6ymywQsEYjK/94SGhPrMfEr1TIc5OBeziTi+1jcCvttts8e0UWZIxpasjnQk9MNk/3iS+kA==
+
+"@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==
+ dependencies:
+ "@types/geojson" "*"
+
+"@types/d3-hierarchy@*":
+ version "3.1.6"
+ resolved "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.6.tgz"
+ integrity sha512-qlmD/8aMk5xGorUvTUWHCiumvgaUXYldYjNVOWtYoTYY/L+WwIEAmJxUmTgr9LoGNG0PPAOmqMDJVDPc7DOpPw==
+
+"@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==
+ dependencies:
+ "@types/d3-color" "*"
+
+"@types/d3-path@*":
+ version "3.0.2"
+ resolved "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.0.2.tgz"
+ integrity sha512-WAIEVlOCdd/NKRYTsqCpOMHQHemKBEINf8YXMYOtXH0GA7SY0dqMB78P3Uhgfy+4X+/Mlw2wDtlETkN6kQUCMA==
+
+"@types/d3-polygon@*":
+ version "3.0.2"
+ resolved "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.2.tgz"
+ integrity sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==
+
+"@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-chromatic@*", "@types/d3-scale-chromatic@^3.0.0":
version "3.0.0"
resolved "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz"
integrity sha512-dsoJGEIShosKVRBZB0Vo3C8nqSDqVGujJU6tPznsBJxNJNwMF8utmS83nvCBKQYPpjCzaaHcrf66iTRpZosLPw==
-"@types/d3-scale@^4.0.3":
+"@types/d3-scale@*", "@types/d3-scale@^4.0.3":
version "4.0.4"
resolved "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.4.tgz"
integrity sha512-eq1ZeTj0yr72L8MQk6N6heP603ubnywSDRfNpi5enouR112HzGLS6RIvExCzZTraFF4HdzNpJMwA/zGiMoHUUw==
dependencies:
"@types/d3-time" "*"
+"@types/d3-selection@*", "@types/d3-selection@^3.0.3":
+ version "3.0.10"
+ resolved "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.10.tgz"
+ integrity sha512-cuHoUgS/V3hLdjJOLTT691+G2QoqAjCVLmr4kJXR4ha56w1Zdu8UUQ5TxLRqudgNjwXeQxKMq4j+lyf9sWuslg==
+
+"@types/d3-shape@*":
+ version "3.1.6"
+ resolved "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.6.tgz"
+ integrity sha512-5KKk5aKGu2I+O6SONMYSNflgiP0WfZIQvVUMan50wHsLG1G94JlxEVnCpQARfTtzytuY0p/9PXXZb3I7giofIA==
+ dependencies:
+ "@types/d3-path" "*"
+
+"@types/d3-time-format@*":
+ version "4.0.3"
+ resolved "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz"
+ integrity sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==
+
"@types/d3-time@*":
version "3.0.0"
resolved "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.0.tgz"
integrity sha512-sZLCdHvBUcNby1cB6Fd3ZBrABbjz3v1Vm90nysCQ6Vt7vd6e/h9Lt7SiJUoEX0l4Dzc7P5llKyhqSi1ycSf1Hg==
+"@types/d3-timer@*":
+ version "3.0.2"
+ resolved "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz"
+ integrity sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==
+
+"@types/d3-transition@*":
+ version "3.0.8"
+ resolved "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.8.tgz"
+ integrity sha512-ew63aJfQ/ms7QQ4X7pk5NxQ9fZH/z+i24ZfJ6tJSfqxJMrYLiK01EAs2/Rtw/JreGUsS3pLPNV644qXFGnoZNQ==
+ dependencies:
+ "@types/d3-selection" "*"
+
+"@types/d3-zoom@*", "@types/d3-zoom@^3.0.1":
+ version "3.0.8"
+ resolved "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz"
+ integrity sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==
+ dependencies:
+ "@types/d3-interpolate" "*"
+ "@types/d3-selection" "*"
+
+"@types/d3@^7.4.0":
+ version "7.4.3"
+ resolved "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz"
+ integrity sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==
+ dependencies:
+ "@types/d3-array" "*"
+ "@types/d3-axis" "*"
+ "@types/d3-brush" "*"
+ "@types/d3-chord" "*"
+ "@types/d3-color" "*"
+ "@types/d3-contour" "*"
+ "@types/d3-delaunay" "*"
+ "@types/d3-dispatch" "*"
+ "@types/d3-drag" "*"
+ "@types/d3-dsv" "*"
+ "@types/d3-ease" "*"
+ "@types/d3-fetch" "*"
+ "@types/d3-force" "*"
+ "@types/d3-format" "*"
+ "@types/d3-geo" "*"
+ "@types/d3-hierarchy" "*"
+ "@types/d3-interpolate" "*"
+ "@types/d3-path" "*"
+ "@types/d3-polygon" "*"
+ "@types/d3-quadtree" "*"
+ "@types/d3-random" "*"
+ "@types/d3-scale" "*"
+ "@types/d3-scale-chromatic" "*"
+ "@types/d3-selection" "*"
+ "@types/d3-shape" "*"
+ "@types/d3-time" "*"
+ "@types/d3-time-format" "*"
+ "@types/d3-timer" "*"
+ "@types/d3-transition" "*"
+ "@types/d3-zoom" "*"
+
"@types/debug@^4.0.0":
version "4.1.8"
resolved "https://registry.npmjs.org/@types/debug/-/debug-4.1.8.tgz"
@@ -695,6 +954,11 @@
resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz"
integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==
+"@types/geojson@*":
+ version "7946.0.14"
+ resolved "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.14.tgz"
+ integrity sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg==
+
"@types/hast@^2.0.0":
version "2.3.5"
resolved "https://registry.npmjs.org/@types/hast/-/hast-2.3.5.tgz"
@@ -829,7 +1093,7 @@
dependencies:
"@types/react" "*"
-"@types/react@*", "@types/react@>=16", "@types/react@18.0.28":
+"@types/react@*", "@types/react@>=16", "@types/react@>=16.8", "@types/react@18.0.28":
version "18.0.28"
resolved "https://registry.npmjs.org/@types/react/-/react-18.0.28.tgz"
integrity sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew==
@@ -1381,12 +1645,12 @@ braces@^3.0.2, braces@~3.0.2:
fill-range "^7.0.1"
browserslist@^4.21.10, browserslist@^4.21.5, "browserslist@>= 4.21.0":
- version "4.22.3"
- resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.22.3.tgz"
- integrity sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==
+ version "4.22.2"
+ resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz"
+ integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==
dependencies:
- caniuse-lite "^1.0.30001580"
- electron-to-chromium "^1.4.648"
+ caniuse-lite "^1.0.30001565"
+ electron-to-chromium "^1.4.601"
node-releases "^2.0.14"
update-browserslist-db "^1.0.13"
@@ -1440,10 +1704,10 @@ camelcase-css@^2.0.1:
resolved "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz"
integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==
-caniuse-lite@^1.0.30001406, caniuse-lite@^1.0.30001464, caniuse-lite@^1.0.30001580:
- version "1.0.30001581"
- resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001581.tgz"
- integrity sha512-whlTkwhqV2tUmP3oYhtNfaWGYHDdS3JYFQBKXxcUR9qqPWsRhFHhoISO2Xnl/g0xyKzht9mI1LZpiNWfMzHixQ==
+caniuse-lite@^1.0.30001406, caniuse-lite@^1.0.30001464, caniuse-lite@^1.0.30001565:
+ version "1.0.30001580"
+ resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001580.tgz"
+ integrity sha512-mtj5ur2FFPZcCEpXFy8ADXbDACuNFXg6mxVDqp7tqooX6l3zwm+d8EPoeOSIFRDvHs8qu7/SLFOGniULkcH2iA==
ccount@^2.0.0:
version "2.0.1"
@@ -1532,6 +1796,11 @@ ci-info@^3.6.1:
resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz"
integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==
+classcat@^5.0.3, classcat@^5.0.4:
+ version "5.0.4"
+ resolved "https://registry.npmjs.org/classcat/-/classcat-5.0.4.tgz"
+ integrity sha512-sbpkOw6z413p+HDGcBENe498WM9woqWHiJxCq7nvmxe9WmrUmqfAcxpIwAiMtM5Q3AhYkzXcNQHqsWq0mND51g==
+
classnames@^2.2.1, classnames@^2.3.2:
version "2.3.2"
resolved "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz"
@@ -1802,7 +2071,7 @@ d3-delaunay@6:
resolved "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz"
integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==
-"d3-drag@2 - 3", d3-drag@3:
+d3-drag@^3.0.0, "d3-drag@2 - 3", d3-drag@3:
version "3.0.0"
resolved "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz"
integrity sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==
@@ -1916,7 +2185,7 @@ d3-scale@4:
d3-time "2.1.1 - 3"
d3-time-format "2 - 4"
-"d3-selection@2 - 3", d3-selection@3:
+d3-selection@^3.0.0, "d3-selection@2 - 3", d3-selection@3:
version "3.0.0"
resolved "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz"
integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==
@@ -1965,7 +2234,7 @@ d3-shape@3:
d3-interpolate "1 - 3"
d3-timer "1 - 3"
-d3-zoom@3:
+d3-zoom@^3.0.0, d3-zoom@3:
version "3.0.0"
resolved "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz"
integrity sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==
@@ -2206,10 +2475,10 @@ echarts-for-react@^3.0.2:
tslib "2.3.0"
zrender "5.4.4"
-electron-to-chromium@^1.4.648:
- version "1.4.650"
- resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.650.tgz"
- integrity sha512-sYSQhJCJa4aGA1wYol5cMQgekDBlbVfTRavlGZVr3WZpDdOPcp6a6xUnFfrt8TqZhsBYYbDxJZCjGfHuGupCRQ==
+electron-to-chromium@^1.4.601:
+ version "1.4.645"
+ resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.645.tgz"
+ integrity sha512-EeS1oQDCmnYsRDRy2zTeC336a/4LZ6WKqvSaM1jLocEk5ZuyszkQtCpsqvuvaIXGOUjwtvF6LTcS8WueibXvSw==
elkjs@^0.8.2:
version "0.8.2"
@@ -3358,7 +3627,7 @@ ignore@^5.0.5, ignore@^5.1.1, ignore@^5.2.0, ignore@^5.2.4:
resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz"
integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==
-immer@^9.0.19:
+immer@^9.0.19, immer@>=9.0.6:
version "9.0.21"
resolved "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz"
integrity sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==
@@ -5539,7 +5808,7 @@ react-18-input-autosize@^3.0.0:
dependencies:
prop-types "^15.5.8"
-react-dom@*, "react-dom@^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0", "react-dom@^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0", "react-dom@^16 || ^17 || ^18", react-dom@^18.2.0, react-dom@>=16.0.0, react-dom@>=16.14.0, react-dom@>=16.8.0, react-dom@>=16.9.0, react-dom@>=17.x:
+react-dom@*, "react-dom@^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0", "react-dom@^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0", "react-dom@^16 || ^17 || ^18", react-dom@^18.2.0, react-dom@>=16.0.0, react-dom@>=16.14.0, react-dom@>=16.8.0, react-dom@>=16.9.0, react-dom@>=17, react-dom@>=17.x:
version "18.2.0"
resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz"
integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==
@@ -5679,13 +5948,25 @@ react-window@^1.8.9:
"@babel/runtime" "^7.0.0"
memoize-one ">=3.1.1 <6"
-"react@^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0", "react@^15.0.0 || >=16.0.0", "react@^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0", "react@^16 || ^17 || ^18", "react@^16.11.0 || ^17.0.0 || ^18.0.0", "react@^16.3.0 || ^17.0.0 || ^18.0.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0", react@^18.2.0, "react@>= 0.14.0", "react@>= 16", "react@>= 16.8.0", "react@>= 16.8.0 || 17.x.x || ^18.0.0-0", react@>=16, react@>=16.0.0, react@>=16.13.1, react@>=16.14.0, react@>=16.8.0, react@>=16.9.0, react@>=17.x, "react@15.x || 16.x || 17.x || 18.x":
+"react@^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0", "react@^15.0.0 || >=16.0.0", "react@^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0", "react@^16 || ^17 || ^18", "react@^16.11.0 || ^17.0.0 || ^18.0.0", "react@^16.3.0 || ^17.0.0 || ^18.0.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0", react@^18.2.0, "react@>= 0.14.0", "react@>= 16", "react@>= 16.8.0", "react@>= 16.8.0 || 17.x.x || ^18.0.0-0", react@>=16, react@>=16.0.0, react@>=16.13.1, react@>=16.14.0, react@>=16.8, react@>=16.8.0, react@>=16.9.0, react@>=17, react@>=17.x, "react@15.x || 16.x || 17.x || 18.x":
version "18.2.0"
resolved "https://registry.npmjs.org/react/-/react-18.2.0.tgz"
integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==
dependencies:
loose-envify "^1.1.0"
+reactflow@^11.10.3:
+ version "11.10.3"
+ resolved "https://registry.npmjs.org/reactflow/-/reactflow-11.10.3.tgz"
+ integrity sha512-DGNrTdkWjZtPOhj5MV8fiWWGkJo+otMVdoJ9l67bQL+Xf+8NkJ4AHmRXoYIxtgcENzwTr5WTAIJlswV9i91cyw==
+ dependencies:
+ "@reactflow/background" "11.3.8"
+ "@reactflow/controls" "11.2.8"
+ "@reactflow/core" "11.10.3"
+ "@reactflow/minimap" "11.7.8"
+ "@reactflow/node-resizer" "2.2.8"
+ "@reactflow/node-toolbar" "1.3.8"
+
read-cache@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz"
@@ -6799,7 +7080,7 @@ use-strict@1.0.1:
resolved "https://registry.npmjs.org/use-strict/-/use-strict-1.0.1.tgz"
integrity sha512-IeiWvvEXfW5ltKVMkxq6FvNf2LojMKvB2OCeja6+ct24S1XOmQw2dGr2JyndwACWAGJva9B7yPHwAmeA9QCqAQ==
-use-sync-external-store@^1.2.0:
+use-sync-external-store@^1.2.0, use-sync-external-store@1.2.0:
version "1.2.0"
resolved "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz"
integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==
@@ -7057,6 +7338,13 @@ zrender@5.4.4:
dependencies:
tslib "2.3.0"
+zustand@^4.4.1:
+ version "4.5.0"
+ resolved "https://registry.npmjs.org/zustand/-/zustand-4.5.0.tgz"
+ integrity sha512-zlVFqS5TQ21nwijjhJlx4f9iGrXSL0o/+Dpy4txAP22miJ8Ti6c1Ol1RLNN98BMib83lmDH/2KmLwaNXpjrO1A==
+ dependencies:
+ use-sync-external-store "1.2.0"
+
zwitch@^2.0.0:
version "2.0.4"
resolved "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz"