{"version":3,"file":"e8c4b161-5e7f90ce9fd8e5ca3d69.js","mappings":"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","sources":["webpack://gatsby-starter-typescript-plus/./node_modules/@xyflow/react/dist/esm/index.js"],"sourcesContent":["\"use client\";\n\nimport _asyncToGenerator from \"/home/vsts/work/1/s/node_modules/babel-preset-gatsby/node_modules/@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _slicedToArray from \"/home/vsts/work/1/s/node_modules/babel-preset-gatsby/node_modules/@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"/home/vsts/work/1/s/node_modules/babel-preset-gatsby/node_modules/@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"/home/vsts/work/1/s/node_modules/babel-preset-gatsby/node_modules/@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"/home/vsts/work/1/s/node_modules/babel-preset-gatsby/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties\";\n\nvar _MarkerSymbols, _defaultSize;\n\nvar _excluded = [\"position\", \"children\", \"className\", \"style\"],\n _excluded2 = [\"type\", \"position\", \"isValidConnection\", \"isConnectable\", \"isConnectableStart\", \"isConnectableEnd\", \"id\", \"onConnect\", \"children\", \"className\", \"onMouseDown\", \"onTouchStart\"],\n _excluded3 = [\"x\", \"y\", \"label\", \"labelStyle\", \"labelShowBg\", \"labelBgStyle\", \"labelBgPadding\", \"labelBgBorderRadius\", \"children\", \"className\"],\n _excluded4 = [\"path\", \"labelX\", \"labelY\", \"label\", \"labelStyle\", \"labelShowBg\", \"labelBgStyle\", \"labelBgPadding\", \"labelBgBorderRadius\", \"interactionWidth\"],\n _excluded5 = [\"id\"],\n _excluded6 = [\"nodes\", \"edges\", \"defaultNodes\", \"defaultEdges\", \"className\", \"nodeTypes\", \"edgeTypes\", \"onNodeClick\", \"onEdgeClick\", \"onInit\", \"onMove\", \"onMoveStart\", \"onMoveEnd\", \"onConnect\", \"onConnectStart\", \"onConnectEnd\", \"onClickConnectStart\", \"onClickConnectEnd\", \"onNodeMouseEnter\", \"onNodeMouseMove\", \"onNodeMouseLeave\", \"onNodeContextMenu\", \"onNodeDoubleClick\", \"onNodeDragStart\", \"onNodeDrag\", \"onNodeDragStop\", \"onNodesDelete\", \"onEdgesDelete\", \"onDelete\", \"onSelectionChange\", \"onSelectionDragStart\", \"onSelectionDrag\", \"onSelectionDragStop\", \"onSelectionContextMenu\", \"onSelectionStart\", \"onSelectionEnd\", \"onBeforeDelete\", \"connectionMode\", \"connectionLineType\", \"connectionLineStyle\", \"connectionLineComponent\", \"connectionLineContainerStyle\", \"deleteKeyCode\", \"selectionKeyCode\", \"selectionOnDrag\", \"selectionMode\", \"panActivationKeyCode\", \"multiSelectionKeyCode\", \"zoomActivationKeyCode\", \"snapToGrid\", \"snapGrid\", \"onlyRenderVisibleElements\", \"selectNodesOnDrag\", \"nodesDraggable\", \"nodesConnectable\", \"nodesFocusable\", \"nodeOrigin\", \"edgesFocusable\", \"edgesReconnectable\", \"elementsSelectable\", \"defaultViewport\", \"minZoom\", \"maxZoom\", \"translateExtent\", \"preventScrolling\", \"nodeExtent\", \"defaultMarkerColor\", \"zoomOnScroll\", \"zoomOnPinch\", \"panOnScroll\", \"panOnScrollSpeed\", \"panOnScrollMode\", \"zoomOnDoubleClick\", \"panOnDrag\", \"onPaneClick\", \"onPaneMouseEnter\", \"onPaneMouseMove\", \"onPaneMouseLeave\", \"onPaneScroll\", \"onPaneContextMenu\", \"paneClickDistance\", \"nodeClickDistance\", \"children\", \"onReconnect\", \"onReconnectStart\", \"onReconnectEnd\", \"onEdgeContextMenu\", \"onEdgeDoubleClick\", \"onEdgeMouseEnter\", \"onEdgeMouseMove\", \"onEdgeMouseLeave\", \"reconnectRadius\", \"onNodesChange\", \"onEdgesChange\", \"noDragClassName\", \"noWheelClassName\", \"noPanClassName\", \"fitView\", \"fitViewOptions\", \"connectOnClick\", \"attributionPosition\", \"proOptions\", \"defaultEdgeOptions\", \"elevateNodesOnSelect\", \"elevateEdgesOnSelect\", \"disableKeyboardA11y\", \"autoPanOnConnect\", \"autoPanOnNodeDrag\", \"autoPanSpeed\", \"connectionRadius\", \"isValidConnection\", \"onError\", \"style\", \"id\", \"nodeDragThreshold\", \"viewport\", \"onViewportChange\", \"width\", \"height\", \"colorMode\", \"debug\"],\n _excluded7 = [\"children\", \"className\"],\n _excluded8 = [\"nodeId\", \"children\", \"className\", \"style\", \"isVisible\", \"position\", \"offset\", \"align\"];\nimport _regeneratorRuntime from \"/home/vsts/work/1/s/node_modules/babel-preset-gatsby/node_modules/@babel/runtime/regenerator\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { jsxs, Fragment, jsx } from 'react/jsx-runtime';\nimport cc from 'classcat';\nimport { errorMessages, infiniteExtent, isInputDOMNode, getFitViewNodes, getDimensions, fitView as _fitView, getViewportForBounds, pointToRendererPoint, rendererPointToPoint, isNodeBase, isEdgeBase, getElementsToRemove, isRectObject, nodeToRect, getOverlappingArea, getNodesBounds as _getNodesBounds, evaluateAbsolutePosition, XYPanZoom, PanOnScrollMode, SelectionMode, getEventPosition, getNodesInside, XYDrag, snapPosition, calculateNodePosition, Position, ConnectionMode, isMouseEvent, XYHandle, getHostForElement, addEdge, getInternalNodesBounds, isNumeric, nodeHasDimensions, getNodeDimensions, elementSelectionKeys, isEdgeVisible, MarkerType, createMarkerIds, getBezierEdgeCenter, getSmoothStepPath, getStraightPath, getBezierPath, getEdgePosition, getElevatedEdgeZIndex, getMarkerId, getConnectionStatus, ConnectionLineType, updateConnectionLookup, adoptUserNodes, initialConnection, devWarn, updateNodeInternals as _updateNodeInternals, updateAbsolutePositions, handleExpandParent, panBy as _panBy, isMacOs, areConnectionMapsEqual, handleConnectionChange, shallowNodeData, XYMinimap, getBoundsOfRects, ResizeControlVariant, XYResizer, XY_RESIZER_LINE_POSITIONS, XY_RESIZER_HANDLE_POSITIONS, getNodeToolbarTransform } from '@xyflow/system';\nexport { ConnectionLineType, ConnectionMode, MarkerType, PanOnScrollMode, Position, SelectionMode, addEdge, getBezierEdgeCenter, getBezierPath, getConnectedEdges, getEdgeCenter, getIncomers, getNodesBounds, getOutgoers, getSmoothStepPath, getStraightPath, getViewportForBounds, reconnectEdge } from '@xyflow/system';\nimport { createContext, useContext, useMemo, forwardRef, useEffect, useRef, useState, useLayoutEffect, useCallback, memo } from 'react';\nimport { useStoreWithEqualityFn, createWithEqualityFn } from 'zustand/traditional';\nimport { shallow } from 'zustand/shallow';\nimport { createPortal } from 'react-dom';\nvar StoreContext = createContext(null);\nvar Provider$1 = StoreContext.Provider;\nvar zustandErrorMessage = errorMessages['error001']();\n/**\n * Hook for accessing the internal store. Should only be used in rare cases.\n *\n * @public\n * @param selector\n * @param equalityFn\n * @returns The selected state slice\n *\n * @example\n * const nodes = useStore((state: ReactFlowState) => state.nodes);\n *\n */\n\nfunction useStore(selector, equalityFn) {\n var store = useContext(StoreContext);\n\n if (store === null) {\n throw new Error(zustandErrorMessage);\n }\n\n return useStoreWithEqualityFn(store, selector, equalityFn);\n}\n\nfunction useStoreApi() {\n var store = useContext(StoreContext);\n\n if (store === null) {\n throw new Error(zustandErrorMessage);\n }\n\n return useMemo(function () {\n return {\n getState: store.getState,\n setState: store.setState,\n subscribe: store.subscribe\n };\n }, [store]);\n}\n\nvar style = {\n display: 'none'\n};\nvar ariaLiveStyle = {\n position: 'absolute',\n width: 1,\n height: 1,\n margin: -1,\n border: 0,\n padding: 0,\n overflow: 'hidden',\n clip: 'rect(0px, 0px, 0px, 0px)',\n clipPath: 'inset(100%)'\n};\nvar ARIA_NODE_DESC_KEY = 'react-flow__node-desc';\nvar ARIA_EDGE_DESC_KEY = 'react-flow__edge-desc';\nvar ARIA_LIVE_MESSAGE = 'react-flow__aria-live';\n\nvar selector$o = function selector$o(s) {\n return s.ariaLiveMessage;\n};\n\nfunction AriaLiveMessage(_ref) {\n var rfId = _ref.rfId;\n var ariaLiveMessage = useStore(selector$o);\n return jsx(\"div\", {\n id: \"\".concat(ARIA_LIVE_MESSAGE, \"-\").concat(rfId),\n \"aria-live\": \"assertive\",\n \"aria-atomic\": \"true\",\n style: ariaLiveStyle,\n children: ariaLiveMessage\n });\n}\n\nfunction A11yDescriptions(_ref2) {\n var rfId = _ref2.rfId,\n disableKeyboardA11y = _ref2.disableKeyboardA11y;\n return jsxs(Fragment, {\n children: [jsxs(\"div\", {\n id: \"\".concat(ARIA_NODE_DESC_KEY, \"-\").concat(rfId),\n style: style,\n children: [\"Press enter or space to select a node.\", !disableKeyboardA11y && 'You can then use the arrow keys to move the node around.', \" Press delete to remove it and escape to cancel.\", ' ']\n }), jsx(\"div\", {\n id: \"\".concat(ARIA_EDGE_DESC_KEY, \"-\").concat(rfId),\n style: style,\n children: \"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.\"\n }), !disableKeyboardA11y && jsx(AriaLiveMessage, {\n rfId: rfId\n })]\n });\n}\n\nvar selector$n = function selector$n(s) {\n return s.userSelectionActive ? 'none' : 'all';\n};\n\nvar Panel = forwardRef(function (_ref3, ref) {\n var _ref3$position = _ref3.position,\n position = _ref3$position === void 0 ? 'top-left' : _ref3$position,\n children = _ref3.children,\n className = _ref3.className,\n style = _ref3.style,\n rest = _objectWithoutProperties(_ref3, _excluded);\n\n var pointerEvents = useStore(selector$n);\n var positionClasses = \"\".concat(position).split('-');\n return jsx(\"div\", _objectSpread(_objectSpread({\n className: cc(['react-flow__panel', className].concat(_toConsumableArray(positionClasses))),\n style: _objectSpread(_objectSpread({}, style), {}, {\n pointerEvents: pointerEvents\n }),\n ref: ref\n }, rest), {}, {\n children: children\n }));\n});\n\nfunction Attribution(_ref4) {\n var proOptions = _ref4.proOptions,\n _ref4$position = _ref4.position,\n position = _ref4$position === void 0 ? 'bottom-right' : _ref4$position;\n\n if (proOptions !== null && proOptions !== void 0 && proOptions.hideAttribution) {\n return null;\n }\n\n return jsx(Panel, {\n position: position,\n className: \"react-flow__attribution\",\n \"data-message\": \"Please only hide this attribution when you are subscribed to React Flow Pro: https://pro.reactflow.dev\",\n children: jsx(\"a\", {\n href: \"https://reactflow.dev\",\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n \"aria-label\": \"React Flow attribution\",\n children: \"React Flow\"\n })\n });\n}\n\nvar selector$m = function selector$m(s) {\n var selectedNodes = [];\n var selectedEdges = [];\n\n var _iterator = _createForOfIteratorHelper(s.nodeLookup),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _step$value = _slicedToArray(_step.value, 2),\n node = _step$value[1];\n\n if (node.selected) {\n selectedNodes.push(node.internals.userNode);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n var _iterator2 = _createForOfIteratorHelper(s.edgeLookup),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _step2$value = _slicedToArray(_step2.value, 2),\n edge = _step2$value[1];\n\n if (edge.selected) {\n selectedEdges.push(edge);\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return {\n selectedNodes: selectedNodes,\n selectedEdges: selectedEdges\n };\n};\n\nvar selectId = function selectId(obj) {\n return obj.id;\n};\n\nfunction areEqual(a, b) {\n return shallow(a.selectedNodes.map(selectId), b.selectedNodes.map(selectId)) && shallow(a.selectedEdges.map(selectId), b.selectedEdges.map(selectId));\n}\n\nfunction SelectionListenerInner(_ref5) {\n var onSelectionChange = _ref5.onSelectionChange;\n var store = useStoreApi();\n\n var _useStore = useStore(selector$m, areEqual),\n selectedNodes = _useStore.selectedNodes,\n selectedEdges = _useStore.selectedEdges;\n\n useEffect(function () {\n var params = {\n nodes: selectedNodes,\n edges: selectedEdges\n };\n onSelectionChange === null || onSelectionChange === void 0 ? void 0 : onSelectionChange(params);\n store.getState().onSelectionChangeHandlers.forEach(function (fn) {\n return fn(params);\n });\n }, [selectedNodes, selectedEdges, onSelectionChange]);\n return null;\n}\n\nvar changeSelector = function changeSelector(s) {\n return !!s.onSelectionChangeHandlers;\n};\n\nfunction SelectionListener(_ref6) {\n var onSelectionChange = _ref6.onSelectionChange;\n var storeHasSelectionChangeHandlers = useStore(changeSelector);\n\n if (onSelectionChange || storeHasSelectionChangeHandlers) {\n return jsx(SelectionListenerInner, {\n onSelectionChange: onSelectionChange\n });\n }\n\n return null;\n}\n\nvar defaultNodeOrigin = [0, 0];\nvar defaultViewport = {\n x: 0,\n y: 0,\n zoom: 1\n};\n/*\n * This component helps us to update the store with the values coming from the user.\n * We distinguish between values we can update directly with `useDirectStoreUpdater` (like `snapGrid`)\n * and values that have a dedicated setter function in the store (like `setNodes`).\n */\n// these fields exist in the global store and we need to keep them up to date\n\nvar reactFlowFieldsToTrack = ['nodes', 'edges', 'defaultNodes', 'defaultEdges', 'onConnect', 'onConnectStart', 'onConnectEnd', 'onClickConnectStart', 'onClickConnectEnd', 'nodesDraggable', 'nodesConnectable', 'nodesFocusable', 'edgesFocusable', 'edgesReconnectable', 'elevateNodesOnSelect', 'elevateEdgesOnSelect', 'minZoom', 'maxZoom', 'nodeExtent', 'onNodesChange', 'onEdgesChange', 'elementsSelectable', 'connectionMode', 'snapGrid', 'snapToGrid', 'translateExtent', 'connectOnClick', 'defaultEdgeOptions', 'fitView', 'fitViewOptions', 'onNodesDelete', 'onEdgesDelete', 'onDelete', 'onNodeDrag', 'onNodeDragStart', 'onNodeDragStop', 'onSelectionDrag', 'onSelectionDragStart', 'onSelectionDragStop', 'onMoveStart', 'onMove', 'onMoveEnd', 'noPanClassName', 'nodeOrigin', 'autoPanOnConnect', 'autoPanOnNodeDrag', 'onError', 'connectionRadius', 'isValidConnection', 'selectNodesOnDrag', 'nodeDragThreshold', 'onBeforeDelete', 'debug', 'autoPanSpeed', 'paneClickDistance']; // rfId doesn't exist in ReactFlowProps, but it's one of the fields we want to update\n\nvar fieldsToTrack = [].concat(reactFlowFieldsToTrack, ['rfId']);\n\nvar selector$l = function selector$l(s) {\n return {\n setNodes: s.setNodes,\n setEdges: s.setEdges,\n setMinZoom: s.setMinZoom,\n setMaxZoom: s.setMaxZoom,\n setTranslateExtent: s.setTranslateExtent,\n setNodeExtent: s.setNodeExtent,\n reset: s.reset,\n setDefaultNodesAndEdges: s.setDefaultNodesAndEdges,\n setPaneClickDistance: s.setPaneClickDistance\n };\n};\n\nvar initPrevValues = {\n // these are values that are also passed directly to other components\n // than the StoreUpdater. We can reduce the number of setStore calls\n // by setting the same values here as prev fields.\n translateExtent: infiniteExtent,\n nodeOrigin: defaultNodeOrigin,\n minZoom: 0.5,\n maxZoom: 2,\n elementsSelectable: true,\n noPanClassName: 'nopan',\n rfId: '1',\n paneClickDistance: 0\n};\n\nfunction StoreUpdater(props) {\n var _useStore2 = useStore(selector$l, shallow),\n setNodes = _useStore2.setNodes,\n setEdges = _useStore2.setEdges,\n setMinZoom = _useStore2.setMinZoom,\n setMaxZoom = _useStore2.setMaxZoom,\n setTranslateExtent = _useStore2.setTranslateExtent,\n setNodeExtent = _useStore2.setNodeExtent,\n reset = _useStore2.reset,\n setDefaultNodesAndEdges = _useStore2.setDefaultNodesAndEdges,\n setPaneClickDistance = _useStore2.setPaneClickDistance;\n\n var store = useStoreApi();\n useEffect(function () {\n setDefaultNodesAndEdges(props.defaultNodes, props.defaultEdges);\n return function () {\n // when we reset the store we also need to reset the previous fields\n previousFields.current = initPrevValues;\n reset();\n };\n }, []);\n var previousFields = useRef(initPrevValues);\n useEffect(function () {\n var _iterator3 = _createForOfIteratorHelper(fieldsToTrack),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var fieldName = _step3.value;\n var fieldValue = props[fieldName];\n var previousFieldValue = previousFields.current[fieldName];\n if (fieldValue === previousFieldValue) continue;\n if (typeof props[fieldName] === 'undefined') continue; // Custom handling with dedicated setters for some fields\n\n if (fieldName === 'nodes') setNodes(fieldValue);else if (fieldName === 'edges') setEdges(fieldValue);else if (fieldName === 'minZoom') setMinZoom(fieldValue);else if (fieldName === 'maxZoom') setMaxZoom(fieldValue);else if (fieldName === 'translateExtent') setTranslateExtent(fieldValue);else if (fieldName === 'nodeExtent') setNodeExtent(fieldValue);else if (fieldName === 'paneClickDistance') setPaneClickDistance(fieldValue); // Renamed fields\n else if (fieldName === 'fitView') store.setState({\n fitViewOnInit: fieldValue\n });else if (fieldName === 'fitViewOptions') store.setState({\n fitViewOnInitOptions: fieldValue\n }); // General case\n else store.setState(_defineProperty({}, fieldName, fieldValue));\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n previousFields.current = props;\n }, // Only re-run the effect if one of the fields we track changes\n fieldsToTrack.map(function (fieldName) {\n return props[fieldName];\n }));\n return null;\n}\n\nfunction getMediaQuery() {\n if (typeof window === 'undefined' || !window.matchMedia) {\n return null;\n }\n\n return window.matchMedia('(prefers-color-scheme: dark)');\n}\n/**\n * Hook for receiving the current color mode class 'dark' or 'light'.\n *\n * @internal\n * @param colorMode - The color mode to use ('dark', 'light' or 'system')\n */\n\n\nfunction useColorModeClass(colorMode) {\n var _getMediaQuery;\n\n var _useState = useState(colorMode === 'system' ? null : colorMode),\n _useState2 = _slicedToArray(_useState, 2),\n colorModeClass = _useState2[0],\n setColorModeClass = _useState2[1];\n\n useEffect(function () {\n if (colorMode !== 'system') {\n setColorModeClass(colorMode);\n return;\n }\n\n var mediaQuery = getMediaQuery();\n\n var updateColorModeClass = function updateColorModeClass() {\n return setColorModeClass(mediaQuery !== null && mediaQuery !== void 0 && mediaQuery.matches ? 'dark' : 'light');\n };\n\n updateColorModeClass();\n mediaQuery === null || mediaQuery === void 0 ? void 0 : mediaQuery.addEventListener('change', updateColorModeClass);\n return function () {\n mediaQuery === null || mediaQuery === void 0 ? void 0 : mediaQuery.removeEventListener('change', updateColorModeClass);\n };\n }, [colorMode]);\n return colorModeClass !== null ? colorModeClass : (_getMediaQuery = getMediaQuery()) !== null && _getMediaQuery !== void 0 && _getMediaQuery.matches ? 'dark' : 'light';\n}\n\nvar defaultDoc = typeof document !== 'undefined' ? document : null;\n/**\n * Hook for handling key events.\n *\n * @public\n * @param param.keyCode - The key code (string or array of strings) to use\n * @param param.options - Options\n * @returns boolean\n */\n\nfunction useKeyPress() {\n var keyCode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n target: defaultDoc,\n actInsideInputWithModifier: true\n };\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n keyPressed = _useState4[0],\n setKeyPressed = _useState4[1]; // we need to remember if a modifier key is pressed in order to track it\n\n\n var modifierPressed = useRef(false); // we need to remember the pressed keys in order to support combinations\n\n var pressedKeys = useRef(new Set([])); // keyCodes = array with single keys [['a']] or key combinations [['a', 's']]\n // keysToWatch = array with all keys flattened ['a', 'd', 'ShiftLeft']\n // used to check if we store event.code or event.key. When the code is in the list of keysToWatch\n // we use the code otherwise the key. Explainer: When you press the left \"command\" key, the code is \"MetaLeft\"\n // and the key is \"Meta\". We want users to be able to pass keys and codes so we assume that the key is meant when\n // we can't find it in the list of keysToWatch.\n\n var _useMemo = useMemo(function () {\n if (keyCode !== null) {\n var keyCodeArr = Array.isArray(keyCode) ? keyCode : [keyCode];\n var keys = keyCodeArr.filter(function (kc) {\n return typeof kc === 'string';\n }) // we first replace all '+' with '\\n' which we will use to split the keys on\n // then we replace '\\n\\n' with '\\n+', this way we can also support the combination 'key++'\n // in the end we simply split on '\\n' to get the key array\n .map(function (kc) {\n return kc.replace('+', '\\n').replace('\\n\\n', '\\n+').split('\\n');\n });\n var keysFlat = keys.reduce(function (res, item) {\n return res.concat.apply(res, _toConsumableArray(item));\n }, []);\n return [keys, keysFlat];\n }\n\n return [[], []];\n }, [keyCode]),\n _useMemo2 = _slicedToArray(_useMemo, 2),\n keyCodes = _useMemo2[0],\n keysToWatch = _useMemo2[1];\n\n useEffect(function () {\n var target = (options === null || options === void 0 ? void 0 : options.target) || defaultDoc;\n\n if (keyCode !== null) {\n var downHandler = function downHandler(event) {\n modifierPressed.current = event.ctrlKey || event.metaKey || event.shiftKey;\n var preventAction = (!modifierPressed.current || modifierPressed.current && !options.actInsideInputWithModifier) && isInputDOMNode(event);\n\n if (preventAction) {\n return false;\n }\n\n var keyOrCode = useKeyOrCode(event.code, keysToWatch);\n pressedKeys.current.add(event[keyOrCode]);\n\n if (isMatchingKey(keyCodes, pressedKeys.current, false)) {\n event.preventDefault();\n setKeyPressed(true);\n }\n };\n\n var upHandler = function upHandler(event) {\n var preventAction = (!modifierPressed.current || modifierPressed.current && !options.actInsideInputWithModifier) && isInputDOMNode(event);\n\n if (preventAction) {\n return false;\n }\n\n var keyOrCode = useKeyOrCode(event.code, keysToWatch);\n\n if (isMatchingKey(keyCodes, pressedKeys.current, true)) {\n setKeyPressed(false);\n pressedKeys.current.clear();\n } else {\n pressedKeys.current.delete(event[keyOrCode]);\n } // fix for Mac: when cmd key is pressed, keyup is not triggered for any other key, see: https://stackoverflow.com/questions/27380018/when-cmd-key-is-kept-pressed-keyup-is-not-triggered-for-any-other-key\n\n\n if (event.key === 'Meta') {\n pressedKeys.current.clear();\n }\n\n modifierPressed.current = false;\n };\n\n var resetHandler = function resetHandler() {\n pressedKeys.current.clear();\n setKeyPressed(false);\n };\n\n target === null || target === void 0 ? void 0 : target.addEventListener('keydown', downHandler);\n target === null || target === void 0 ? void 0 : target.addEventListener('keyup', upHandler);\n window.addEventListener('blur', resetHandler);\n window.addEventListener('contextmenu', resetHandler);\n return function () {\n target === null || target === void 0 ? void 0 : target.removeEventListener('keydown', downHandler);\n target === null || target === void 0 ? void 0 : target.removeEventListener('keyup', upHandler);\n window.removeEventListener('blur', resetHandler);\n window.removeEventListener('contextmenu', resetHandler);\n };\n }\n }, [keyCode, setKeyPressed]);\n return keyPressed;\n} // utils\n\n\nfunction isMatchingKey(keyCodes, pressedKeys, isUp) {\n return keyCodes // we only want to compare same sizes of keyCode definitions\n // and pressed keys. When the user specified 'Meta' as a key somewhere\n // this would also be truthy without this filter when user presses 'Meta' + 'r'\n .filter(function (keys) {\n return isUp || keys.length === pressedKeys.size;\n }) // since we want to support multiple possibilities only one of the\n // combinations need to be part of the pressed keys\n .some(function (keys) {\n return keys.every(function (k) {\n return pressedKeys.has(k);\n });\n });\n}\n\nfunction useKeyOrCode(eventCode, keysToWatch) {\n return keysToWatch.includes(eventCode) ? 'code' : 'key';\n}\n/**\n * Hook for getting viewport helper functions.\n *\n * @internal\n * @returns viewport helper functions\n */\n\n\nvar useViewportHelper = function useViewportHelper() {\n var store = useStoreApi();\n return useMemo(function () {\n return {\n zoomIn: function zoomIn(options) {\n var _store$getState = store.getState(),\n panZoom = _store$getState.panZoom;\n\n return panZoom ? panZoom.scaleBy(1.2, {\n duration: options === null || options === void 0 ? void 0 : options.duration\n }) : Promise.resolve(false);\n },\n zoomOut: function zoomOut(options) {\n var _store$getState2 = store.getState(),\n panZoom = _store$getState2.panZoom;\n\n return panZoom ? panZoom.scaleBy(1 / 1.2, {\n duration: options === null || options === void 0 ? void 0 : options.duration\n }) : Promise.resolve(false);\n },\n zoomTo: function zoomTo(zoomLevel, options) {\n var _store$getState3 = store.getState(),\n panZoom = _store$getState3.panZoom;\n\n return panZoom ? panZoom.scaleTo(zoomLevel, {\n duration: options === null || options === void 0 ? void 0 : options.duration\n }) : Promise.resolve(false);\n },\n getZoom: function getZoom() {\n return store.getState().transform[2];\n },\n setViewport: function () {\n var _setViewport = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(viewport, options) {\n var _viewport$x, _viewport$y, _viewport$zoom;\n\n var _store$getState4, _store$getState4$tran, tX, tY, tZoom, panZoom;\n\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _store$getState4 = store.getState(), _store$getState4$tran = _slicedToArray(_store$getState4.transform, 3), tX = _store$getState4$tran[0], tY = _store$getState4$tran[1], tZoom = _store$getState4$tran[2], panZoom = _store$getState4.panZoom;\n\n if (panZoom) {\n _context.next = 3;\n break;\n }\n\n return _context.abrupt(\"return\", Promise.resolve(false));\n\n case 3:\n _context.next = 5;\n return panZoom.setViewport({\n x: (_viewport$x = viewport.x) !== null && _viewport$x !== void 0 ? _viewport$x : tX,\n y: (_viewport$y = viewport.y) !== null && _viewport$y !== void 0 ? _viewport$y : tY,\n zoom: (_viewport$zoom = viewport.zoom) !== null && _viewport$zoom !== void 0 ? _viewport$zoom : tZoom\n }, {\n duration: options === null || options === void 0 ? void 0 : options.duration\n });\n\n case 5:\n return _context.abrupt(\"return\", Promise.resolve(true));\n\n case 6:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n function setViewport(_x, _x2) {\n return _setViewport.apply(this, arguments);\n }\n\n return setViewport;\n }(),\n getViewport: function getViewport() {\n var _store$getState$trans = _slicedToArray(store.getState().transform, 3),\n x = _store$getState$trans[0],\n y = _store$getState$trans[1],\n zoom = _store$getState$trans[2];\n\n return {\n x: x,\n y: y,\n zoom: zoom\n };\n },\n fitView: function fitView(options) {\n var _store$getState5 = store.getState(),\n nodeLookup = _store$getState5.nodeLookup,\n minZoom = _store$getState5.minZoom,\n maxZoom = _store$getState5.maxZoom,\n panZoom = _store$getState5.panZoom,\n domNode = _store$getState5.domNode;\n\n if (!panZoom || !domNode) {\n return Promise.resolve(false);\n }\n\n var fitViewNodes = getFitViewNodes(nodeLookup, options);\n\n var _getDimensions = getDimensions(domNode),\n width = _getDimensions.width,\n height = _getDimensions.height;\n\n return _fitView({\n nodes: fitViewNodes,\n width: width,\n height: height,\n minZoom: minZoom,\n maxZoom: maxZoom,\n panZoom: panZoom\n }, options);\n },\n setCenter: function () {\n var _setCenter = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(x, y, options) {\n var _store$getState6, width, height, maxZoom, panZoom, nextZoom, centerX, centerY;\n\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _store$getState6 = store.getState(), width = _store$getState6.width, height = _store$getState6.height, maxZoom = _store$getState6.maxZoom, panZoom = _store$getState6.panZoom;\n nextZoom = typeof (options === null || options === void 0 ? void 0 : options.zoom) !== 'undefined' ? options.zoom : maxZoom;\n centerX = width / 2 - x * nextZoom;\n centerY = height / 2 - y * nextZoom;\n\n if (panZoom) {\n _context2.next = 6;\n break;\n }\n\n return _context2.abrupt(\"return\", Promise.resolve(false));\n\n case 6:\n _context2.next = 8;\n return panZoom.setViewport({\n x: centerX,\n y: centerY,\n zoom: nextZoom\n }, {\n duration: options === null || options === void 0 ? void 0 : options.duration\n });\n\n case 8:\n return _context2.abrupt(\"return\", Promise.resolve(true));\n\n case 9:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n\n function setCenter(_x3, _x4, _x5) {\n return _setCenter.apply(this, arguments);\n }\n\n return setCenter;\n }(),\n fitBounds: function () {\n var _fitBounds = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(bounds, options) {\n var _options$padding;\n\n var _store$getState7, width, height, minZoom, maxZoom, panZoom, viewport;\n\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _store$getState7 = store.getState(), width = _store$getState7.width, height = _store$getState7.height, minZoom = _store$getState7.minZoom, maxZoom = _store$getState7.maxZoom, panZoom = _store$getState7.panZoom;\n viewport = getViewportForBounds(bounds, width, height, minZoom, maxZoom, (_options$padding = options === null || options === void 0 ? void 0 : options.padding) !== null && _options$padding !== void 0 ? _options$padding : 0.1);\n\n if (panZoom) {\n _context3.next = 4;\n break;\n }\n\n return _context3.abrupt(\"return\", Promise.resolve(false));\n\n case 4:\n _context3.next = 6;\n return panZoom.setViewport(viewport, {\n duration: options === null || options === void 0 ? void 0 : options.duration\n });\n\n case 6:\n return _context3.abrupt(\"return\", Promise.resolve(true));\n\n case 7:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }));\n\n function fitBounds(_x6, _x7) {\n return _fitBounds.apply(this, arguments);\n }\n\n return fitBounds;\n }(),\n screenToFlowPosition: function screenToFlowPosition(clientPosition) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n snapToGrid: true\n };\n\n var _store$getState8 = store.getState(),\n transform = _store$getState8.transform,\n snapGrid = _store$getState8.snapGrid,\n domNode = _store$getState8.domNode;\n\n if (!domNode) {\n return clientPosition;\n }\n\n var _domNode$getBoundingC = domNode.getBoundingClientRect(),\n domX = _domNode$getBoundingC.x,\n domY = _domNode$getBoundingC.y;\n\n var correctedPosition = {\n x: clientPosition.x - domX,\n y: clientPosition.y - domY\n };\n return pointToRendererPoint(correctedPosition, transform, options.snapToGrid, snapGrid);\n },\n flowToScreenPosition: function flowToScreenPosition(flowPosition) {\n var _store$getState9 = store.getState(),\n transform = _store$getState9.transform,\n domNode = _store$getState9.domNode;\n\n if (!domNode) {\n return flowPosition;\n }\n\n var _domNode$getBoundingC2 = domNode.getBoundingClientRect(),\n domX = _domNode$getBoundingC2.x,\n domY = _domNode$getBoundingC2.y;\n\n var rendererPosition = rendererPointToPoint(flowPosition, transform);\n return {\n x: rendererPosition.x + domX,\n y: rendererPosition.y + domY\n };\n }\n };\n }, []);\n}; // This function applies changes to nodes or edges that are triggered by React Flow internally.\n// When you drag a node for example, React Flow will send a position change update.\n// This function then applies the changes and returns the updated elements.\n\n\nfunction applyChanges(changes, elements) {\n var updatedElements = []; // By storing a map of changes for each element, we can a quick lookup as we\n // iterate over the elements array!\n\n var changesMap = new Map();\n var addItemChanges = [];\n\n var _iterator4 = _createForOfIteratorHelper(changes),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var change = _step4.value;\n\n if (change.type === 'add') {\n addItemChanges.push(change);\n continue;\n } else if (change.type === 'remove' || change.type === 'replace') {\n // For a 'remove' change we can safely ignore any other changes queued for\n // the same element, it's going to be removed anyway!\n changesMap.set(change.id, [change]);\n } else {\n var elementChanges = changesMap.get(change.id);\n\n if (elementChanges) {\n // If we have some changes queued already, we can do a mutable update of\n // that array and save ourselves some copying.\n elementChanges.push(change);\n } else {\n changesMap.set(change.id, [change]);\n }\n }\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n\n var _iterator5 = _createForOfIteratorHelper(elements),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var element = _step5.value;\n\n var _changes = changesMap.get(element.id); // When there are no changes for an element we can just push it unmodified,\n // no need to copy it.\n\n\n if (!_changes) {\n updatedElements.push(element);\n continue;\n } // If we have a 'remove' change queued, it'll be the only change in the array\n\n\n if (_changes[0].type === 'remove') {\n continue;\n }\n\n if (_changes[0].type === 'replace') {\n updatedElements.push(_objectSpread({}, _changes[0].item));\n continue;\n } // For other types of changes, we want to start with a shallow copy of the\n // object so React knows this element has changed. Sequential changes will\n /// each _mutate_ this object, so there's only ever one copy.\n\n\n var updatedElement = _objectSpread({}, element);\n\n var _iterator6 = _createForOfIteratorHelper(_changes),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var _change = _step6.value;\n applyChange(_change, updatedElement);\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n\n updatedElements.push(updatedElement);\n } // we need to wait for all changes to be applied before adding new items\n // to be able to add them at the correct index\n\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n\n if (addItemChanges.length) {\n addItemChanges.forEach(function (change) {\n if (change.index !== undefined) {\n updatedElements.splice(change.index, 0, _objectSpread({}, change.item));\n } else {\n updatedElements.push(_objectSpread({}, change.item));\n }\n });\n }\n\n return updatedElements;\n} // Applies a single change to an element. This is a *mutable* update.\n\n\nfunction applyChange(change, element) {\n switch (change.type) {\n case 'select':\n {\n element.selected = change.selected;\n break;\n }\n\n case 'position':\n {\n if (typeof change.position !== 'undefined') {\n element.position = change.position;\n }\n\n if (typeof change.dragging !== 'undefined') {\n element.dragging = change.dragging;\n }\n\n break;\n }\n\n case 'dimensions':\n {\n if (typeof change.dimensions !== 'undefined') {\n var _element$measured;\n\n (_element$measured = element.measured) !== null && _element$measured !== void 0 ? _element$measured : element.measured = {};\n element.measured.width = change.dimensions.width;\n element.measured.height = change.dimensions.height;\n\n if (change.setAttributes) {\n element.width = change.dimensions.width;\n element.height = change.dimensions.height;\n }\n }\n\n if (typeof change.resizing === 'boolean') {\n element.resizing = change.resizing;\n }\n\n break;\n }\n }\n}\n/**\n * Drop in function that applies node changes to an array of nodes.\n * @public\n * @remarks Various events on the component can produce an {@link NodeChange} that describes how to update the edges of your flow in some way.\n If you don't need any custom behaviour, this util can be used to take an array of these changes and apply them to your edges.\n * @param changes - Array of changes to apply\n * @param nodes - Array of nodes to apply the changes to\n * @returns Array of updated nodes\n * @example\n * const onNodesChange = useCallback(\n (changes) => {\n setNodes((oldNodes) => applyNodeChanges(changes, oldNodes));\n },\n [setNodes],\n );\n \n return (\n \n );\n */\n\n\nfunction applyNodeChanges(changes, nodes) {\n return applyChanges(changes, nodes);\n}\n/**\n * Drop in function that applies edge changes to an array of edges.\n * @public\n * @remarks Various events on the component can produce an {@link EdgeChange} that describes how to update the edges of your flow in some way.\n If you don't need any custom behaviour, this util can be used to take an array of these changes and apply them to your edges.\n * @param changes - Array of changes to apply\n * @param edges - Array of edge to apply the changes to\n * @returns Array of updated edges\n * @example\n * const onEdgesChange = useCallback(\n (changes) => {\n setEdges((oldEdges) => applyEdgeChanges(changes, oldEdges));\n },\n [setEdges],\n );\n \n return (\n \n );\n */\n\n\nfunction applyEdgeChanges(changes, edges) {\n return applyChanges(changes, edges);\n}\n\nfunction createSelectionChange(id, selected) {\n return {\n id: id,\n type: 'select',\n selected: selected\n };\n}\n\nfunction getSelectionChanges(items) {\n var selectedIds = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set();\n var mutateItem = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var changes = [];\n\n var _iterator7 = _createForOfIteratorHelper(items),\n _step7;\n\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var _step7$value = _slicedToArray(_step7.value, 2),\n id = _step7$value[0],\n item = _step7$value[1];\n\n var willBeSelected = selectedIds.has(id); // we don't want to set all items to selected=false on the first selection\n\n if (!(item.selected === undefined && !willBeSelected) && item.selected !== willBeSelected) {\n if (mutateItem) {\n // this hack is needed for nodes. When the user dragged a node, it's selected.\n // When another node gets dragged, we need to deselect the previous one,\n // in order to have only one selected node at a time - the onNodesChange callback comes too late here :/\n item.selected = willBeSelected;\n }\n\n changes.push(createSelectionChange(item.id, willBeSelected));\n }\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n\n return changes;\n}\n\nfunction getElementsDiffChanges(_ref7) {\n var _ref7$items = _ref7.items,\n items = _ref7$items === void 0 ? [] : _ref7$items,\n lookup = _ref7.lookup;\n var changes = [];\n var itemsLookup = new Map(items.map(function (item) {\n return [item.id, item];\n }));\n\n var _iterator8 = _createForOfIteratorHelper(items.entries()),\n _step8;\n\n try {\n for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n var _lookupItem$internals, _lookupItem$internals2;\n\n var _step8$value = _slicedToArray(_step8.value, 2),\n _index = _step8$value[0],\n item = _step8$value[1];\n\n var lookupItem = lookup.get(item.id);\n var storeItem = (_lookupItem$internals = lookupItem === null || lookupItem === void 0 ? void 0 : (_lookupItem$internals2 = lookupItem.internals) === null || _lookupItem$internals2 === void 0 ? void 0 : _lookupItem$internals2.userNode) !== null && _lookupItem$internals !== void 0 ? _lookupItem$internals : lookupItem;\n\n if (storeItem !== undefined && storeItem !== item) {\n changes.push({\n id: item.id,\n item: item,\n type: 'replace'\n });\n }\n\n if (storeItem === undefined) {\n changes.push({\n item: item,\n type: 'add',\n index: _index\n });\n }\n }\n } catch (err) {\n _iterator8.e(err);\n } finally {\n _iterator8.f();\n }\n\n var _iterator9 = _createForOfIteratorHelper(lookup),\n _step9;\n\n try {\n for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n var _step9$value = _slicedToArray(_step9.value, 1),\n id = _step9$value[0];\n\n var nextNode = itemsLookup.get(id);\n\n if (nextNode === undefined) {\n changes.push({\n id: id,\n type: 'remove'\n });\n }\n }\n } catch (err) {\n _iterator9.e(err);\n } finally {\n _iterator9.f();\n }\n\n return changes;\n}\n\nfunction elementToRemoveChange(item) {\n return {\n id: item.id,\n type: 'remove'\n };\n}\n/**\n * Test whether an object is useable as a Node\n * @public\n * @remarks In TypeScript this is a type guard that will narrow the type of whatever you pass in to Node if it returns true\n * @param element - The element to test\n * @returns A boolean indicating whether the element is an Node\n */\n\n\nvar isNode = function isNode(element) {\n return isNodeBase(element);\n};\n/**\n * Test whether an object is useable as an Edge\n * @public\n * @remarks In TypeScript this is a type guard that will narrow the type of whatever you pass in to Edge if it returns true\n * @param element - The element to test\n * @returns A boolean indicating whether the element is an Edge\n */\n\n\nvar isEdge = function isEdge(element) {\n return isEdgeBase(element);\n}; // eslint-disable-next-line @typescript-eslint/ban-types\n\n\nfunction fixedForwardRef(render) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return forwardRef(render);\n} // we need this hook to prevent a warning when using react-flow in SSR\n\n\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n/**\n * This hook returns a queue that can be used to batch updates.\n *\n * @param runQueue - a function that gets called when the queue is flushed\n * @internal\n *\n * @returns a Queue object\n */\n\nfunction useQueue(runQueue) {\n // Because we're using a ref above, we need some way to let React know when to\n // actually process the queue. We increment this number any time we mutate the\n // queue, creating a new state to trigger the layout effect below.\n // Using a boolean dirty flag here instead would lead to issues related to\n // automatic batching. (https://github.com/xyflow/xyflow/issues/4779)\n var _useState5 = useState(BigInt(0)),\n _useState6 = _slicedToArray(_useState5, 2),\n serial = _useState6[0],\n setSerial = _useState6[1]; // A reference of all the batched updates to process before the next render. We\n // want a reference here so multiple synchronous calls to `setNodes` etc can be\n // batched together.\n\n\n var _useState7 = useState(function () {\n return createQueue(function () {\n return setSerial(function (n) {\n return n + BigInt(1);\n });\n });\n }),\n _useState8 = _slicedToArray(_useState7, 1),\n queue = _useState8[0]; // Layout effects are guaranteed to run before the next render which means we\n // shouldn't run into any issues with stale state or weird issues that come from\n // rendering things one frame later than expected (we used to use `setTimeout`).\n\n\n useIsomorphicLayoutEffect(function () {\n var queueItems = queue.get();\n\n if (queueItems.length) {\n runQueue(queueItems);\n queue.reset();\n }\n }, [serial]);\n return queue;\n}\n\nfunction createQueue(cb) {\n var queue = [];\n return {\n get: function get() {\n return queue;\n },\n reset: function reset() {\n queue = [];\n },\n push: function push(item) {\n queue.push(item);\n cb();\n }\n };\n}\n\nvar BatchContext = createContext(null);\n/**\n * This is a context provider that holds and processes the node and edge update queues\n * that are needed to handle setNodes, addNodes, setEdges and addEdges.\n *\n * @internal\n */\n\nfunction BatchProvider(_ref8) {\n var children = _ref8.children;\n var store = useStoreApi();\n var nodeQueueHandler = useCallback(function (queueItems) {\n var _store$getState10 = store.getState(),\n _store$getState10$nod = _store$getState10.nodes,\n nodes = _store$getState10$nod === void 0 ? [] : _store$getState10$nod,\n setNodes = _store$getState10.setNodes,\n hasDefaultNodes = _store$getState10.hasDefaultNodes,\n onNodesChange = _store$getState10.onNodesChange,\n nodeLookup = _store$getState10.nodeLookup; // This is essentially an `Array.reduce` in imperative clothing. Processing\n // this queue is a relatively hot path so we'd like to avoid the overhead of\n // array methods where we can.\n\n\n var next = nodes;\n\n var _iterator10 = _createForOfIteratorHelper(queueItems),\n _step10;\n\n try {\n for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {\n var payload = _step10.value;\n next = typeof payload === 'function' ? payload(next) : payload;\n }\n } catch (err) {\n _iterator10.e(err);\n } finally {\n _iterator10.f();\n }\n\n if (hasDefaultNodes) {\n setNodes(next);\n } else if (onNodesChange) {\n onNodesChange(getElementsDiffChanges({\n items: next,\n lookup: nodeLookup\n }));\n }\n }, []);\n var nodeQueue = useQueue(nodeQueueHandler);\n var edgeQueueHandler = useCallback(function (queueItems) {\n var _store$getState11 = store.getState(),\n _store$getState11$edg = _store$getState11.edges,\n edges = _store$getState11$edg === void 0 ? [] : _store$getState11$edg,\n setEdges = _store$getState11.setEdges,\n hasDefaultEdges = _store$getState11.hasDefaultEdges,\n onEdgesChange = _store$getState11.onEdgesChange,\n edgeLookup = _store$getState11.edgeLookup;\n\n var next = edges;\n\n var _iterator11 = _createForOfIteratorHelper(queueItems),\n _step11;\n\n try {\n for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {\n var payload = _step11.value;\n next = typeof payload === 'function' ? payload(next) : payload;\n }\n } catch (err) {\n _iterator11.e(err);\n } finally {\n _iterator11.f();\n }\n\n if (hasDefaultEdges) {\n setEdges(next);\n } else if (onEdgesChange) {\n onEdgesChange(getElementsDiffChanges({\n items: next,\n lookup: edgeLookup\n }));\n }\n }, []);\n var edgeQueue = useQueue(edgeQueueHandler);\n var value = useMemo(function () {\n return {\n nodeQueue: nodeQueue,\n edgeQueue: edgeQueue\n };\n }, []);\n return jsx(BatchContext.Provider, {\n value: value,\n children: children\n });\n}\n\nfunction useBatchContext() {\n var batchContext = useContext(BatchContext);\n\n if (!batchContext) {\n throw new Error('useBatchContext must be used within a BatchProvider');\n }\n\n return batchContext;\n}\n\nvar selector$k = function selector$k(s) {\n return !!s.panZoom;\n};\n/**\n * Hook for accessing the ReactFlow instance.\n *\n * @public\n * @returns ReactFlowInstance\n */\n\n\nfunction useReactFlow() {\n var viewportHelper = useViewportHelper();\n var store = useStoreApi();\n var batchContext = useBatchContext();\n var viewportInitialized = useStore(selector$k);\n var generalHelper = useMemo(function () {\n var getInternalNode = function getInternalNode(id) {\n return store.getState().nodeLookup.get(id);\n };\n\n var setNodes = function setNodes(payload) {\n batchContext.nodeQueue.push(payload);\n };\n\n var setEdges = function setEdges(payload) {\n batchContext.edgeQueue.push(payload);\n };\n\n var getNodeRect = function getNodeRect(node) {\n var _nodeToUse$measured$w, _nodeToUse$measured, _nodeToUse$measured$h, _nodeToUse$measured2;\n\n var _store$getState12 = store.getState(),\n nodeLookup = _store$getState12.nodeLookup,\n nodeOrigin = _store$getState12.nodeOrigin;\n\n var nodeToUse = isNode(node) ? node : nodeLookup.get(node.id);\n var position = nodeToUse.parentId ? evaluateAbsolutePosition(nodeToUse.position, nodeToUse.measured, nodeToUse.parentId, nodeLookup, nodeOrigin) : nodeToUse.position;\n\n var nodeWithPosition = _objectSpread(_objectSpread({}, nodeToUse), {}, {\n position: position,\n width: (_nodeToUse$measured$w = (_nodeToUse$measured = nodeToUse.measured) === null || _nodeToUse$measured === void 0 ? void 0 : _nodeToUse$measured.width) !== null && _nodeToUse$measured$w !== void 0 ? _nodeToUse$measured$w : nodeToUse.width,\n height: (_nodeToUse$measured$h = (_nodeToUse$measured2 = nodeToUse.measured) === null || _nodeToUse$measured2 === void 0 ? void 0 : _nodeToUse$measured2.height) !== null && _nodeToUse$measured$h !== void 0 ? _nodeToUse$measured$h : nodeToUse.height\n });\n\n return nodeToRect(nodeWithPosition);\n };\n\n var updateNode = function updateNode(id, nodeUpdate) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n replace: false\n };\n setNodes(function (prevNodes) {\n return prevNodes.map(function (node) {\n if (node.id === id) {\n var nextNode = typeof nodeUpdate === 'function' ? nodeUpdate(node) : nodeUpdate;\n return options.replace && isNode(nextNode) ? nextNode : _objectSpread(_objectSpread({}, node), nextNode);\n }\n\n return node;\n });\n });\n };\n\n var updateEdge = function updateEdge(id, edgeUpdate) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n replace: false\n };\n setEdges(function (prevEdges) {\n return prevEdges.map(function (edge) {\n if (edge.id === id) {\n var nextEdge = typeof edgeUpdate === 'function' ? edgeUpdate(edge) : edgeUpdate;\n return options.replace && isEdge(nextEdge) ? nextEdge : _objectSpread(_objectSpread({}, edge), nextEdge);\n }\n\n return edge;\n });\n });\n };\n\n return {\n getNodes: function getNodes() {\n return store.getState().nodes.map(function (n) {\n return _objectSpread({}, n);\n });\n },\n getNode: function getNode(id) {\n var _getInternalNode;\n\n return (_getInternalNode = getInternalNode(id)) === null || _getInternalNode === void 0 ? void 0 : _getInternalNode.internals.userNode;\n },\n getInternalNode: getInternalNode,\n getEdges: function getEdges() {\n var _store$getState13 = store.getState(),\n _store$getState13$edg = _store$getState13.edges,\n edges = _store$getState13$edg === void 0 ? [] : _store$getState13$edg;\n\n return edges.map(function (e) {\n return _objectSpread({}, e);\n });\n },\n getEdge: function getEdge(id) {\n return store.getState().edgeLookup.get(id);\n },\n setNodes: setNodes,\n setEdges: setEdges,\n addNodes: function addNodes(payload) {\n var newNodes = Array.isArray(payload) ? payload : [payload];\n batchContext.nodeQueue.push(function (nodes) {\n return [].concat(_toConsumableArray(nodes), _toConsumableArray(newNodes));\n });\n },\n addEdges: function addEdges(payload) {\n var newEdges = Array.isArray(payload) ? payload : [payload];\n batchContext.edgeQueue.push(function (edges) {\n return [].concat(_toConsumableArray(edges), _toConsumableArray(newEdges));\n });\n },\n toObject: function toObject() {\n var _store$getState14 = store.getState(),\n _store$getState14$nod = _store$getState14.nodes,\n nodes = _store$getState14$nod === void 0 ? [] : _store$getState14$nod,\n _store$getState14$edg = _store$getState14.edges,\n edges = _store$getState14$edg === void 0 ? [] : _store$getState14$edg,\n transform = _store$getState14.transform;\n\n var _transform = _slicedToArray(transform, 3),\n x = _transform[0],\n y = _transform[1],\n zoom = _transform[2];\n\n return {\n nodes: nodes.map(function (n) {\n return _objectSpread({}, n);\n }),\n edges: edges.map(function (e) {\n return _objectSpread({}, e);\n }),\n viewport: {\n x: x,\n y: y,\n zoom: zoom\n }\n };\n },\n deleteElements: function () {\n var _deleteElements = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(_ref9) {\n var _ref9$nodes, nodesToRemove, _ref9$edges, edgesToRemove, _store$getState15, nodes, edges, onNodesDelete, onEdgesDelete, triggerNodeChanges, triggerEdgeChanges, onDelete, onBeforeDelete, _yield$getElementsToR, matchingNodes, matchingEdges, hasMatchingEdges, hasMatchingNodes, edgeChanges, nodeChanges;\n\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n _ref9$nodes = _ref9.nodes, nodesToRemove = _ref9$nodes === void 0 ? [] : _ref9$nodes, _ref9$edges = _ref9.edges, edgesToRemove = _ref9$edges === void 0 ? [] : _ref9$edges;\n _store$getState15 = store.getState(), nodes = _store$getState15.nodes, edges = _store$getState15.edges, onNodesDelete = _store$getState15.onNodesDelete, onEdgesDelete = _store$getState15.onEdgesDelete, triggerNodeChanges = _store$getState15.triggerNodeChanges, triggerEdgeChanges = _store$getState15.triggerEdgeChanges, onDelete = _store$getState15.onDelete, onBeforeDelete = _store$getState15.onBeforeDelete;\n _context4.next = 4;\n return getElementsToRemove({\n nodesToRemove: nodesToRemove,\n edgesToRemove: edgesToRemove,\n nodes: nodes,\n edges: edges,\n onBeforeDelete: onBeforeDelete\n });\n\n case 4:\n _yield$getElementsToR = _context4.sent;\n matchingNodes = _yield$getElementsToR.nodes;\n matchingEdges = _yield$getElementsToR.edges;\n hasMatchingEdges = matchingEdges.length > 0;\n hasMatchingNodes = matchingNodes.length > 0;\n\n if (hasMatchingEdges) {\n edgeChanges = matchingEdges.map(elementToRemoveChange);\n onEdgesDelete === null || onEdgesDelete === void 0 ? void 0 : onEdgesDelete(matchingEdges);\n triggerEdgeChanges(edgeChanges);\n }\n\n if (hasMatchingNodes) {\n nodeChanges = matchingNodes.map(elementToRemoveChange);\n onNodesDelete === null || onNodesDelete === void 0 ? void 0 : onNodesDelete(matchingNodes);\n triggerNodeChanges(nodeChanges);\n }\n\n if (hasMatchingNodes || hasMatchingEdges) {\n onDelete === null || onDelete === void 0 ? void 0 : onDelete({\n nodes: matchingNodes,\n edges: matchingEdges\n });\n }\n\n return _context4.abrupt(\"return\", {\n deletedNodes: matchingNodes,\n deletedEdges: matchingEdges\n });\n\n case 13:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }));\n\n function deleteElements(_x8) {\n return _deleteElements.apply(this, arguments);\n }\n\n return deleteElements;\n }(),\n getIntersectingNodes: function getIntersectingNodes(nodeOrRect) {\n var partially = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var nodes = arguments.length > 2 ? arguments[2] : undefined;\n var isRect = isRectObject(nodeOrRect);\n var nodeRect = isRect ? nodeOrRect : getNodeRect(nodeOrRect);\n var hasNodesOption = nodes !== undefined;\n\n if (!nodeRect) {\n return [];\n }\n\n return (nodes || store.getState().nodes).filter(function (n) {\n var internalNode = store.getState().nodeLookup.get(n.id);\n\n if (internalNode && !isRect && (n.id === nodeOrRect.id || !internalNode.internals.positionAbsolute)) {\n return false;\n }\n\n var currNodeRect = nodeToRect(hasNodesOption ? n : internalNode);\n var overlappingArea = getOverlappingArea(currNodeRect, nodeRect);\n var partiallyVisible = partially && overlappingArea > 0;\n return partiallyVisible || overlappingArea >= nodeRect.width * nodeRect.height;\n });\n },\n isNodeIntersecting: function isNodeIntersecting(nodeOrRect, area) {\n var partially = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var isRect = isRectObject(nodeOrRect);\n var nodeRect = isRect ? nodeOrRect : getNodeRect(nodeOrRect);\n\n if (!nodeRect) {\n return false;\n }\n\n var overlappingArea = getOverlappingArea(nodeRect, area);\n var partiallyVisible = partially && overlappingArea > 0;\n return partiallyVisible || overlappingArea >= nodeRect.width * nodeRect.height;\n },\n updateNode: updateNode,\n updateNodeData: function updateNodeData(id, dataUpdate) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n replace: false\n };\n updateNode(id, function (node) {\n var nextData = typeof dataUpdate === 'function' ? dataUpdate(node) : dataUpdate;\n return options.replace ? _objectSpread(_objectSpread({}, node), {}, {\n data: nextData\n }) : _objectSpread(_objectSpread({}, node), {}, {\n data: _objectSpread(_objectSpread({}, node.data), nextData)\n });\n }, options);\n },\n updateEdge: updateEdge,\n updateEdgeData: function updateEdgeData(id, dataUpdate) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n replace: false\n };\n updateEdge(id, function (edge) {\n var nextData = typeof dataUpdate === 'function' ? dataUpdate(edge) : dataUpdate;\n return options.replace ? _objectSpread(_objectSpread({}, edge), {}, {\n data: nextData\n }) : _objectSpread(_objectSpread({}, edge), {}, {\n data: _objectSpread(_objectSpread({}, edge.data), nextData)\n });\n }, options);\n },\n getNodesBounds: function getNodesBounds(nodes) {\n var _store$getState16 = store.getState(),\n nodeLookup = _store$getState16.nodeLookup,\n nodeOrigin = _store$getState16.nodeOrigin;\n\n return _getNodesBounds(nodes, {\n nodeLookup: nodeLookup,\n nodeOrigin: nodeOrigin\n });\n },\n getHandleConnections: function getHandleConnections(_ref10) {\n var _store$getState$conne, _store$getState$conne2;\n\n var type = _ref10.type,\n id = _ref10.id,\n nodeId = _ref10.nodeId;\n return Array.from((_store$getState$conne = (_store$getState$conne2 = store.getState().connectionLookup.get(\"\".concat(nodeId, \"-\").concat(type, \"-\").concat(id !== null && id !== void 0 ? id : null))) === null || _store$getState$conne2 === void 0 ? void 0 : _store$getState$conne2.values()) !== null && _store$getState$conne !== void 0 ? _store$getState$conne : []);\n }\n };\n }, []);\n return useMemo(function () {\n return _objectSpread(_objectSpread(_objectSpread({}, generalHelper), viewportHelper), {}, {\n viewportInitialized: viewportInitialized\n });\n }, [viewportInitialized]);\n}\n\nvar selected = function selected(item) {\n return item.selected;\n};\n\nvar deleteKeyOptions = {\n actInsideInputWithModifier: false\n};\nvar win$1 = typeof window !== 'undefined' ? window : undefined;\n/**\n * Hook for handling global key events.\n *\n * @internal\n */\n\nfunction useGlobalKeyHandler(_ref11) {\n var deleteKeyCode = _ref11.deleteKeyCode,\n multiSelectionKeyCode = _ref11.multiSelectionKeyCode;\n var store = useStoreApi();\n\n var _useReactFlow = useReactFlow(),\n deleteElements = _useReactFlow.deleteElements;\n\n var deleteKeyPressed = useKeyPress(deleteKeyCode, deleteKeyOptions);\n var multiSelectionKeyPressed = useKeyPress(multiSelectionKeyCode, {\n target: win$1\n });\n useEffect(function () {\n if (deleteKeyPressed) {\n var _store$getState17 = store.getState(),\n edges = _store$getState17.edges,\n nodes = _store$getState17.nodes;\n\n deleteElements({\n nodes: nodes.filter(selected),\n edges: edges.filter(selected)\n });\n store.setState({\n nodesSelectionActive: false\n });\n }\n }, [deleteKeyPressed]);\n useEffect(function () {\n store.setState({\n multiSelectionActive: multiSelectionKeyPressed\n });\n }, [multiSelectionKeyPressed]);\n}\n/**\n * Hook for handling resize events.\n *\n * @internal\n */\n\n\nfunction useResizeHandler(domNode) {\n var store = useStoreApi();\n useEffect(function () {\n var updateDimensions = function updateDimensions() {\n if (!domNode.current) {\n return false;\n }\n\n var size = getDimensions(domNode.current);\n\n if (size.height === 0 || size.width === 0) {\n var _store$getState$onErr, _store$getState18;\n\n (_store$getState$onErr = (_store$getState18 = store.getState()).onError) === null || _store$getState$onErr === void 0 ? void 0 : _store$getState$onErr.call(_store$getState18, '004', errorMessages['error004']());\n }\n\n store.setState({\n width: size.width || 500,\n height: size.height || 500\n });\n };\n\n if (domNode.current) {\n updateDimensions();\n window.addEventListener('resize', updateDimensions);\n var resizeObserver = new ResizeObserver(function () {\n return updateDimensions();\n });\n resizeObserver.observe(domNode.current);\n return function () {\n window.removeEventListener('resize', updateDimensions);\n\n if (resizeObserver && domNode.current) {\n resizeObserver.unobserve(domNode.current);\n }\n };\n }\n }, []);\n}\n\nvar containerStyle = {\n position: 'absolute',\n width: '100%',\n height: '100%',\n top: 0,\n left: 0\n};\n\nvar selector$j = function selector$j(s) {\n return {\n userSelectionActive: s.userSelectionActive,\n lib: s.lib\n };\n};\n\nfunction ZoomPane(_ref12) {\n var onPaneContextMenu = _ref12.onPaneContextMenu,\n _ref12$zoomOnScroll = _ref12.zoomOnScroll,\n zoomOnScroll = _ref12$zoomOnScroll === void 0 ? true : _ref12$zoomOnScroll,\n _ref12$zoomOnPinch = _ref12.zoomOnPinch,\n zoomOnPinch = _ref12$zoomOnPinch === void 0 ? true : _ref12$zoomOnPinch,\n _ref12$panOnScroll = _ref12.panOnScroll,\n panOnScroll = _ref12$panOnScroll === void 0 ? false : _ref12$panOnScroll,\n _ref12$panOnScrollSpe = _ref12.panOnScrollSpeed,\n panOnScrollSpeed = _ref12$panOnScrollSpe === void 0 ? 0.5 : _ref12$panOnScrollSpe,\n _ref12$panOnScrollMod = _ref12.panOnScrollMode,\n panOnScrollMode = _ref12$panOnScrollMod === void 0 ? PanOnScrollMode.Free : _ref12$panOnScrollMod,\n _ref12$zoomOnDoubleCl = _ref12.zoomOnDoubleClick,\n zoomOnDoubleClick = _ref12$zoomOnDoubleCl === void 0 ? true : _ref12$zoomOnDoubleCl,\n _ref12$panOnDrag = _ref12.panOnDrag,\n panOnDrag = _ref12$panOnDrag === void 0 ? true : _ref12$panOnDrag,\n defaultViewport = _ref12.defaultViewport,\n translateExtent = _ref12.translateExtent,\n minZoom = _ref12.minZoom,\n maxZoom = _ref12.maxZoom,\n zoomActivationKeyCode = _ref12.zoomActivationKeyCode,\n _ref12$preventScrolli = _ref12.preventScrolling,\n preventScrolling = _ref12$preventScrolli === void 0 ? true : _ref12$preventScrolli,\n children = _ref12.children,\n noWheelClassName = _ref12.noWheelClassName,\n noPanClassName = _ref12.noPanClassName,\n onViewportChange = _ref12.onViewportChange,\n isControlledViewport = _ref12.isControlledViewport,\n paneClickDistance = _ref12.paneClickDistance;\n var store = useStoreApi();\n var zoomPane = useRef(null);\n\n var _useStore3 = useStore(selector$j, shallow),\n userSelectionActive = _useStore3.userSelectionActive,\n lib = _useStore3.lib;\n\n var zoomActivationKeyPressed = useKeyPress(zoomActivationKeyCode);\n var panZoom = useRef();\n useResizeHandler(zoomPane);\n var onTransformChange = useCallback(function (transform) {\n onViewportChange === null || onViewportChange === void 0 ? void 0 : onViewportChange({\n x: transform[0],\n y: transform[1],\n zoom: transform[2]\n });\n\n if (!isControlledViewport) {\n store.setState({\n transform: transform\n });\n }\n }, [onViewportChange, isControlledViewport]);\n useEffect(function () {\n if (zoomPane.current) {\n panZoom.current = XYPanZoom({\n domNode: zoomPane.current,\n minZoom: minZoom,\n maxZoom: maxZoom,\n translateExtent: translateExtent,\n viewport: defaultViewport,\n paneClickDistance: paneClickDistance,\n onDraggingChange: function onDraggingChange(paneDragging) {\n return store.setState({\n paneDragging: paneDragging\n });\n },\n onPanZoomStart: function onPanZoomStart(event, vp) {\n var _store$getState19 = store.getState(),\n onViewportChangeStart = _store$getState19.onViewportChangeStart,\n onMoveStart = _store$getState19.onMoveStart;\n\n onMoveStart === null || onMoveStart === void 0 ? void 0 : onMoveStart(event, vp);\n onViewportChangeStart === null || onViewportChangeStart === void 0 ? void 0 : onViewportChangeStart(vp);\n },\n onPanZoom: function onPanZoom(event, vp) {\n var _store$getState20 = store.getState(),\n onViewportChange = _store$getState20.onViewportChange,\n onMove = _store$getState20.onMove;\n\n onMove === null || onMove === void 0 ? void 0 : onMove(event, vp);\n onViewportChange === null || onViewportChange === void 0 ? void 0 : onViewportChange(vp);\n },\n onPanZoomEnd: function onPanZoomEnd(event, vp) {\n var _store$getState21 = store.getState(),\n onViewportChangeEnd = _store$getState21.onViewportChangeEnd,\n onMoveEnd = _store$getState21.onMoveEnd;\n\n onMoveEnd === null || onMoveEnd === void 0 ? void 0 : onMoveEnd(event, vp);\n onViewportChangeEnd === null || onViewportChangeEnd === void 0 ? void 0 : onViewportChangeEnd(vp);\n }\n });\n\n var _panZoom$current$getV = panZoom.current.getViewport(),\n x = _panZoom$current$getV.x,\n y = _panZoom$current$getV.y,\n zoom = _panZoom$current$getV.zoom;\n\n store.setState({\n panZoom: panZoom.current,\n transform: [x, y, zoom],\n domNode: zoomPane.current.closest('.react-flow')\n });\n return function () {\n var _panZoom$current;\n\n (_panZoom$current = panZoom.current) === null || _panZoom$current === void 0 ? void 0 : _panZoom$current.destroy();\n };\n }\n }, []);\n useEffect(function () {\n var _panZoom$current2;\n\n (_panZoom$current2 = panZoom.current) === null || _panZoom$current2 === void 0 ? void 0 : _panZoom$current2.update({\n onPaneContextMenu: onPaneContextMenu,\n zoomOnScroll: zoomOnScroll,\n zoomOnPinch: zoomOnPinch,\n panOnScroll: panOnScroll,\n panOnScrollSpeed: panOnScrollSpeed,\n panOnScrollMode: panOnScrollMode,\n zoomOnDoubleClick: zoomOnDoubleClick,\n panOnDrag: panOnDrag,\n zoomActivationKeyPressed: zoomActivationKeyPressed,\n preventScrolling: preventScrolling,\n noPanClassName: noPanClassName,\n userSelectionActive: userSelectionActive,\n noWheelClassName: noWheelClassName,\n lib: lib,\n onTransformChange: onTransformChange\n });\n }, [onPaneContextMenu, zoomOnScroll, zoomOnPinch, panOnScroll, panOnScrollSpeed, panOnScrollMode, zoomOnDoubleClick, panOnDrag, zoomActivationKeyPressed, preventScrolling, noPanClassName, userSelectionActive, noWheelClassName, lib, onTransformChange]);\n return jsx(\"div\", {\n className: \"react-flow__renderer\",\n ref: zoomPane,\n style: containerStyle,\n children: children\n });\n}\n\nvar selector$i = function selector$i(s) {\n return {\n userSelectionActive: s.userSelectionActive,\n userSelectionRect: s.userSelectionRect\n };\n};\n\nfunction UserSelection() {\n var _useStore4 = useStore(selector$i, shallow),\n userSelectionActive = _useStore4.userSelectionActive,\n userSelectionRect = _useStore4.userSelectionRect;\n\n var isActive = userSelectionActive && userSelectionRect;\n\n if (!isActive) {\n return null;\n }\n\n return jsx(\"div\", {\n className: \"react-flow__selection react-flow__container\",\n style: {\n width: userSelectionRect.width,\n height: userSelectionRect.height,\n transform: \"translate(\".concat(userSelectionRect.x, \"px, \").concat(userSelectionRect.y, \"px)\")\n }\n });\n}\n\nvar wrapHandler = function wrapHandler(handler, containerRef) {\n return function (event) {\n if (event.target !== containerRef.current) {\n return;\n }\n\n handler === null || handler === void 0 ? void 0 : handler(event);\n };\n};\n\nvar selector$h = function selector$h(s) {\n return {\n userSelectionActive: s.userSelectionActive,\n elementsSelectable: s.elementsSelectable,\n dragging: s.paneDragging\n };\n};\n\nfunction Pane(_ref13) {\n var isSelecting = _ref13.isSelecting,\n selectionKeyPressed = _ref13.selectionKeyPressed,\n _ref13$selectionMode = _ref13.selectionMode,\n selectionMode = _ref13$selectionMode === void 0 ? SelectionMode.Full : _ref13$selectionMode,\n panOnDrag = _ref13.panOnDrag,\n selectionOnDrag = _ref13.selectionOnDrag,\n onSelectionStart = _ref13.onSelectionStart,\n onSelectionEnd = _ref13.onSelectionEnd,\n onPaneClick = _ref13.onPaneClick,\n onPaneContextMenu = _ref13.onPaneContextMenu,\n onPaneScroll = _ref13.onPaneScroll,\n onPaneMouseEnter = _ref13.onPaneMouseEnter,\n onPaneMouseMove = _ref13.onPaneMouseMove,\n onPaneMouseLeave = _ref13.onPaneMouseLeave,\n children = _ref13.children;\n var container = useRef(null);\n var store = useStoreApi();\n var prevSelectedNodesCount = useRef(0);\n var prevSelectedEdgesCount = useRef(0);\n var containerBounds = useRef();\n var edgeIdLookup = useRef(new Map());\n\n var _useStore5 = useStore(selector$h, shallow),\n userSelectionActive = _useStore5.userSelectionActive,\n elementsSelectable = _useStore5.elementsSelectable,\n dragging = _useStore5.dragging;\n\n var hasActiveSelection = elementsSelectable && (isSelecting || userSelectionActive); // Used to prevent click events when the user lets go of the selectionKey during a selection\n\n var selectionInProgress = useRef(false);\n var selectionStarted = useRef(false);\n\n var resetUserSelection = function resetUserSelection() {\n store.setState({\n userSelectionActive: false,\n userSelectionRect: null\n });\n prevSelectedNodesCount.current = 0;\n prevSelectedEdgesCount.current = 0;\n };\n\n var onClick = function onClick(event) {\n // We prevent click events when the user let go of the selectionKey during a selection\n if (selectionInProgress.current) {\n selectionInProgress.current = false;\n return;\n }\n\n onPaneClick === null || onPaneClick === void 0 ? void 0 : onPaneClick(event);\n store.getState().resetSelectedElements();\n store.setState({\n nodesSelectionActive: false\n });\n };\n\n var onContextMenu = function onContextMenu(event) {\n if (Array.isArray(panOnDrag) && panOnDrag !== null && panOnDrag !== void 0 && panOnDrag.includes(2)) {\n event.preventDefault();\n return;\n }\n\n onPaneContextMenu === null || onPaneContextMenu === void 0 ? void 0 : onPaneContextMenu(event);\n };\n\n var onWheel = onPaneScroll ? function (event) {\n return onPaneScroll(event);\n } : undefined;\n\n var onPointerDown = function onPointerDown(event) {\n var _event$target, _event$target$setPoin;\n\n var _store$getState22 = store.getState(),\n resetSelectedElements = _store$getState22.resetSelectedElements,\n domNode = _store$getState22.domNode,\n edgeLookup = _store$getState22.edgeLookup;\n\n containerBounds.current = domNode === null || domNode === void 0 ? void 0 : domNode.getBoundingClientRect();\n\n if (!elementsSelectable || !isSelecting || event.button !== 0 || event.target !== container.current || !containerBounds.current) {\n return;\n }\n\n (_event$target = event.target) === null || _event$target === void 0 ? void 0 : (_event$target$setPoin = _event$target.setPointerCapture) === null || _event$target$setPoin === void 0 ? void 0 : _event$target$setPoin.call(_event$target, event.pointerId);\n selectionStarted.current = true;\n selectionInProgress.current = false;\n edgeIdLookup.current = new Map();\n\n var _iterator12 = _createForOfIteratorHelper(edgeLookup),\n _step12;\n\n try {\n for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {\n var _edgeIdLookup$current, _edgeIdLookup$current2;\n\n var _step12$value = _slicedToArray(_step12.value, 2),\n id = _step12$value[0],\n edge = _step12$value[1];\n\n edgeIdLookup.current.set(edge.source, ((_edgeIdLookup$current = edgeIdLookup.current.get(edge.source)) === null || _edgeIdLookup$current === void 0 ? void 0 : _edgeIdLookup$current.add(id)) || new Set([id]));\n edgeIdLookup.current.set(edge.target, ((_edgeIdLookup$current2 = edgeIdLookup.current.get(edge.target)) === null || _edgeIdLookup$current2 === void 0 ? void 0 : _edgeIdLookup$current2.add(id)) || new Set([id]));\n }\n } catch (err) {\n _iterator12.e(err);\n } finally {\n _iterator12.f();\n }\n\n var _getEventPosition = getEventPosition(event.nativeEvent, containerBounds.current),\n x = _getEventPosition.x,\n y = _getEventPosition.y;\n\n resetSelectedElements();\n store.setState({\n userSelectionRect: {\n width: 0,\n height: 0,\n startX: x,\n startY: y,\n x: x,\n y: y\n }\n });\n onSelectionStart === null || onSelectionStart === void 0 ? void 0 : onSelectionStart(event);\n };\n\n var onPointerMove = function onPointerMove(event) {\n var _store$getState23 = store.getState(),\n userSelectionRect = _store$getState23.userSelectionRect,\n edgeLookup = _store$getState23.edgeLookup,\n transform = _store$getState23.transform,\n nodeLookup = _store$getState23.nodeLookup,\n triggerNodeChanges = _store$getState23.triggerNodeChanges,\n triggerEdgeChanges = _store$getState23.triggerEdgeChanges;\n\n if (!containerBounds.current || !userSelectionRect) {\n return;\n }\n\n selectionInProgress.current = true;\n\n var _getEventPosition2 = getEventPosition(event.nativeEvent, containerBounds.current),\n mouseX = _getEventPosition2.x,\n mouseY = _getEventPosition2.y;\n\n var startX = userSelectionRect.startX,\n startY = userSelectionRect.startY;\n var nextUserSelectRect = {\n startX: startX,\n startY: startY,\n x: mouseX < startX ? mouseX : startX,\n y: mouseY < startY ? mouseY : startY,\n width: Math.abs(mouseX - startX),\n height: Math.abs(mouseY - startY)\n };\n var selectedNodes = getNodesInside(nodeLookup, nextUserSelectRect, transform, selectionMode === SelectionMode.Partial, true);\n var selectedEdgeIds = new Set();\n var selectedNodeIds = new Set();\n\n var _iterator13 = _createForOfIteratorHelper(selectedNodes),\n _step13;\n\n try {\n for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {\n var selectedNode = _step13.value;\n selectedNodeIds.add(selectedNode.id);\n var edgeIds = edgeIdLookup.current.get(selectedNode.id);\n\n if (edgeIds) {\n var _iterator14 = _createForOfIteratorHelper(edgeIds),\n _step14;\n\n try {\n for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {\n var edgeId = _step14.value;\n selectedEdgeIds.add(edgeId);\n }\n } catch (err) {\n _iterator14.e(err);\n } finally {\n _iterator14.f();\n }\n }\n }\n } catch (err) {\n _iterator13.e(err);\n } finally {\n _iterator13.f();\n }\n\n if (prevSelectedNodesCount.current !== selectedNodeIds.size) {\n prevSelectedNodesCount.current = selectedNodeIds.size;\n var changes = getSelectionChanges(nodeLookup, selectedNodeIds, true);\n triggerNodeChanges(changes);\n }\n\n if (prevSelectedEdgesCount.current !== selectedEdgeIds.size) {\n prevSelectedEdgesCount.current = selectedEdgeIds.size;\n\n var _changes2 = getSelectionChanges(edgeLookup, selectedEdgeIds);\n\n triggerEdgeChanges(_changes2);\n }\n\n store.setState({\n userSelectionRect: nextUserSelectRect,\n userSelectionActive: true,\n nodesSelectionActive: false\n });\n };\n\n var onPointerUp = function onPointerUp(event) {\n var _event$target2, _event$target2$releas;\n\n if (event.button !== 0 || !selectionStarted.current) {\n return;\n }\n\n (_event$target2 = event.target) === null || _event$target2 === void 0 ? void 0 : (_event$target2$releas = _event$target2.releasePointerCapture) === null || _event$target2$releas === void 0 ? void 0 : _event$target2$releas.call(_event$target2, event.pointerId);\n\n var _store$getState24 = store.getState(),\n userSelectionRect = _store$getState24.userSelectionRect; // We only want to trigger click functions when in selection mode if\n // the user did not move the mouse.\n\n\n if (!userSelectionActive && userSelectionRect && event.target === container.current) {\n onClick === null || onClick === void 0 ? void 0 : onClick(event);\n }\n\n if (prevSelectedNodesCount.current > 0) {\n store.setState({\n nodesSelectionActive: true\n });\n }\n\n resetUserSelection();\n onSelectionEnd === null || onSelectionEnd === void 0 ? void 0 : onSelectionEnd(event); // If the user kept holding the selectionKey during the selection,\n // we need to reset the selectionInProgress, so the next click event is not prevented\n\n if (selectionKeyPressed || selectionOnDrag) {\n selectionInProgress.current = false;\n }\n\n selectionStarted.current = false;\n };\n\n var draggable = panOnDrag === true || Array.isArray(panOnDrag) && panOnDrag.includes(0);\n return jsxs(\"div\", {\n className: cc(['react-flow__pane', {\n draggable: draggable,\n dragging: dragging,\n selection: isSelecting\n }]),\n onClick: hasActiveSelection ? undefined : wrapHandler(onClick, container),\n onContextMenu: wrapHandler(onContextMenu, container),\n onWheel: wrapHandler(onWheel, container),\n onPointerEnter: hasActiveSelection ? undefined : onPaneMouseEnter,\n onPointerDown: hasActiveSelection ? onPointerDown : onPaneMouseMove,\n onPointerMove: hasActiveSelection ? onPointerMove : onPaneMouseMove,\n onPointerUp: hasActiveSelection ? onPointerUp : undefined,\n onPointerLeave: onPaneMouseLeave,\n ref: container,\n style: containerStyle,\n children: [children, jsx(UserSelection, {})]\n });\n} // this handler is called by\n// 1. the click handler when node is not draggable or selectNodesOnDrag = false\n// or\n// 2. the on drag start handler when node is draggable and selectNodesOnDrag = true\n\n\nfunction handleNodeClick(_ref14) {\n var id = _ref14.id,\n store = _ref14.store,\n _ref14$unselect = _ref14.unselect,\n unselect = _ref14$unselect === void 0 ? false : _ref14$unselect,\n nodeRef = _ref14.nodeRef;\n\n var _store$getState25 = store.getState(),\n addSelectedNodes = _store$getState25.addSelectedNodes,\n unselectNodesAndEdges = _store$getState25.unselectNodesAndEdges,\n multiSelectionActive = _store$getState25.multiSelectionActive,\n nodeLookup = _store$getState25.nodeLookup,\n onError = _store$getState25.onError;\n\n var node = nodeLookup.get(id);\n\n if (!node) {\n onError === null || onError === void 0 ? void 0 : onError('012', errorMessages['error012'](id));\n return;\n }\n\n store.setState({\n nodesSelectionActive: false\n });\n\n if (!node.selected) {\n addSelectedNodes([id]);\n } else if (unselect || node.selected && multiSelectionActive) {\n unselectNodesAndEdges({\n nodes: [node],\n edges: []\n });\n requestAnimationFrame(function () {\n var _nodeRef$current;\n\n return nodeRef === null || nodeRef === void 0 ? void 0 : (_nodeRef$current = nodeRef.current) === null || _nodeRef$current === void 0 ? void 0 : _nodeRef$current.blur();\n });\n }\n}\n/**\n * Hook for calling XYDrag helper from @xyflow/system.\n *\n * @internal\n */\n\n\nfunction useDrag(_ref15) {\n var nodeRef = _ref15.nodeRef,\n _ref15$disabled = _ref15.disabled,\n disabled = _ref15$disabled === void 0 ? false : _ref15$disabled,\n noDragClassName = _ref15.noDragClassName,\n handleSelector = _ref15.handleSelector,\n nodeId = _ref15.nodeId,\n isSelectable = _ref15.isSelectable,\n nodeClickDistance = _ref15.nodeClickDistance;\n var store = useStoreApi();\n\n var _useState9 = useState(false),\n _useState10 = _slicedToArray(_useState9, 2),\n dragging = _useState10[0],\n setDragging = _useState10[1];\n\n var xyDrag = useRef();\n useEffect(function () {\n xyDrag.current = XYDrag({\n getStoreItems: function getStoreItems() {\n return store.getState();\n },\n onNodeMouseDown: function onNodeMouseDown(id) {\n handleNodeClick({\n id: id,\n store: store,\n nodeRef: nodeRef\n });\n },\n onDragStart: function onDragStart() {\n setDragging(true);\n },\n onDragStop: function onDragStop() {\n setDragging(false);\n }\n });\n }, []);\n useEffect(function () {\n if (disabled) {\n var _xyDrag$current;\n\n (_xyDrag$current = xyDrag.current) === null || _xyDrag$current === void 0 ? void 0 : _xyDrag$current.destroy();\n } else if (nodeRef.current) {\n var _xyDrag$current2;\n\n (_xyDrag$current2 = xyDrag.current) === null || _xyDrag$current2 === void 0 ? void 0 : _xyDrag$current2.update({\n noDragClassName: noDragClassName,\n handleSelector: handleSelector,\n domNode: nodeRef.current,\n isSelectable: isSelectable,\n nodeId: nodeId,\n nodeClickDistance: nodeClickDistance\n });\n return function () {\n var _xyDrag$current3;\n\n (_xyDrag$current3 = xyDrag.current) === null || _xyDrag$current3 === void 0 ? void 0 : _xyDrag$current3.destroy();\n };\n }\n }, [noDragClassName, handleSelector, disabled, isSelectable, nodeRef, nodeId]);\n return dragging;\n}\n\nvar selectedAndDraggable = function selectedAndDraggable(nodesDraggable) {\n return function (n) {\n return n.selected && (n.draggable || nodesDraggable && typeof n.draggable === 'undefined');\n };\n};\n/**\n * Hook for updating node positions by passing a direction and factor\n *\n * @internal\n * @returns function for updating node positions\n */\n\n\nfunction useMoveSelectedNodes() {\n var store = useStoreApi();\n var moveSelectedNodes = useCallback(function (params) {\n var _store$getState26 = store.getState(),\n nodeExtent = _store$getState26.nodeExtent,\n snapToGrid = _store$getState26.snapToGrid,\n snapGrid = _store$getState26.snapGrid,\n nodesDraggable = _store$getState26.nodesDraggable,\n onError = _store$getState26.onError,\n updateNodePositions = _store$getState26.updateNodePositions,\n nodeLookup = _store$getState26.nodeLookup,\n nodeOrigin = _store$getState26.nodeOrigin;\n\n var nodeUpdates = new Map();\n var isSelected = selectedAndDraggable(nodesDraggable); // by default a node moves 5px on each key press\n // if snap grid is enabled, we use that for the velocity\n\n var xVelo = snapToGrid ? snapGrid[0] : 5;\n var yVelo = snapToGrid ? snapGrid[1] : 5;\n var xDiff = params.direction.x * xVelo * params.factor;\n var yDiff = params.direction.y * yVelo * params.factor;\n\n var _iterator15 = _createForOfIteratorHelper(nodeLookup),\n _step15;\n\n try {\n for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {\n var _step15$value = _slicedToArray(_step15.value, 2),\n node = _step15$value[1];\n\n if (!isSelected(node)) {\n continue;\n }\n\n var nextPosition = {\n x: node.internals.positionAbsolute.x + xDiff,\n y: node.internals.positionAbsolute.y + yDiff\n };\n\n if (snapToGrid) {\n nextPosition = snapPosition(nextPosition, snapGrid);\n }\n\n var _calculateNodePositio = calculateNodePosition({\n nodeId: node.id,\n nextPosition: nextPosition,\n nodeLookup: nodeLookup,\n nodeExtent: nodeExtent,\n nodeOrigin: nodeOrigin,\n onError: onError\n }),\n position = _calculateNodePositio.position,\n positionAbsolute = _calculateNodePositio.positionAbsolute;\n\n node.position = position;\n node.internals.positionAbsolute = positionAbsolute;\n nodeUpdates.set(node.id, node);\n }\n } catch (err) {\n _iterator15.e(err);\n } finally {\n _iterator15.f();\n }\n\n updateNodePositions(nodeUpdates);\n }, []);\n return moveSelectedNodes;\n}\n\nvar NodeIdContext = createContext(null);\nvar Provider = NodeIdContext.Provider;\nNodeIdContext.Consumer;\n\nvar useNodeId = function useNodeId() {\n var nodeId = useContext(NodeIdContext);\n return nodeId;\n};\n\nvar selector$g = function selector$g(s) {\n return {\n connectOnClick: s.connectOnClick,\n noPanClassName: s.noPanClassName,\n rfId: s.rfId\n };\n};\n\nvar connectingSelector = function connectingSelector(nodeId, handleId, type) {\n return function (state) {\n var clickHandle = state.connectionClickStartHandle,\n connectionMode = state.connectionMode,\n connection = state.connection;\n var fromHandle = connection.fromHandle,\n toHandle = connection.toHandle,\n isValid = connection.isValid;\n var connectingTo = (toHandle === null || toHandle === void 0 ? void 0 : toHandle.nodeId) === nodeId && (toHandle === null || toHandle === void 0 ? void 0 : toHandle.id) === handleId && (toHandle === null || toHandle === void 0 ? void 0 : toHandle.type) === type;\n return {\n connectingFrom: (fromHandle === null || fromHandle === void 0 ? void 0 : fromHandle.nodeId) === nodeId && (fromHandle === null || fromHandle === void 0 ? void 0 : fromHandle.id) === handleId && (fromHandle === null || fromHandle === void 0 ? void 0 : fromHandle.type) === type,\n connectingTo: connectingTo,\n clickConnecting: (clickHandle === null || clickHandle === void 0 ? void 0 : clickHandle.nodeId) === nodeId && (clickHandle === null || clickHandle === void 0 ? void 0 : clickHandle.id) === handleId && (clickHandle === null || clickHandle === void 0 ? void 0 : clickHandle.type) === type,\n isPossibleEndHandle: connectionMode === ConnectionMode.Strict ? (fromHandle === null || fromHandle === void 0 ? void 0 : fromHandle.type) !== type : nodeId !== (fromHandle === null || fromHandle === void 0 ? void 0 : fromHandle.nodeId) || handleId !== (fromHandle === null || fromHandle === void 0 ? void 0 : fromHandle.id),\n connectionInProcess: !!fromHandle,\n valid: connectingTo && isValid\n };\n };\n};\n\nfunction HandleComponent(_ref16, ref) {\n var _ref16$type = _ref16.type,\n type = _ref16$type === void 0 ? 'source' : _ref16$type,\n _ref16$position = _ref16.position,\n position = _ref16$position === void 0 ? Position.Top : _ref16$position,\n isValidConnection = _ref16.isValidConnection,\n _ref16$isConnectable = _ref16.isConnectable,\n isConnectable = _ref16$isConnectable === void 0 ? true : _ref16$isConnectable,\n _ref16$isConnectableS = _ref16.isConnectableStart,\n isConnectableStart = _ref16$isConnectableS === void 0 ? true : _ref16$isConnectableS,\n _ref16$isConnectableE = _ref16.isConnectableEnd,\n isConnectableEnd = _ref16$isConnectableE === void 0 ? true : _ref16$isConnectableE,\n id = _ref16.id,\n onConnect = _ref16.onConnect,\n children = _ref16.children,\n className = _ref16.className,\n onMouseDown = _ref16.onMouseDown,\n onTouchStart = _ref16.onTouchStart,\n rest = _objectWithoutProperties(_ref16, _excluded2);\n\n var handleId = id || null;\n var isTarget = type === 'target';\n var store = useStoreApi();\n var nodeId = useNodeId();\n\n var _useStore6 = useStore(selector$g, shallow),\n connectOnClick = _useStore6.connectOnClick,\n noPanClassName = _useStore6.noPanClassName,\n rfId = _useStore6.rfId;\n\n var _useStore7 = useStore(connectingSelector(nodeId, handleId, type), shallow),\n connectingFrom = _useStore7.connectingFrom,\n connectingTo = _useStore7.connectingTo,\n clickConnecting = _useStore7.clickConnecting,\n isPossibleEndHandle = _useStore7.isPossibleEndHandle,\n connectionInProcess = _useStore7.connectionInProcess,\n valid = _useStore7.valid;\n\n if (!nodeId) {\n var _store$getState$onErr2, _store$getState27;\n\n (_store$getState$onErr2 = (_store$getState27 = store.getState()).onError) === null || _store$getState$onErr2 === void 0 ? void 0 : _store$getState$onErr2.call(_store$getState27, '010', errorMessages['error010']());\n }\n\n var onConnectExtended = function onConnectExtended(params) {\n var _store$getState28 = store.getState(),\n defaultEdgeOptions = _store$getState28.defaultEdgeOptions,\n onConnectAction = _store$getState28.onConnect,\n hasDefaultEdges = _store$getState28.hasDefaultEdges;\n\n var edgeParams = _objectSpread(_objectSpread({}, defaultEdgeOptions), params);\n\n if (hasDefaultEdges) {\n var _store$getState29 = store.getState(),\n edges = _store$getState29.edges,\n setEdges = _store$getState29.setEdges;\n\n setEdges(addEdge(edgeParams, edges));\n }\n\n onConnectAction === null || onConnectAction === void 0 ? void 0 : onConnectAction(edgeParams);\n onConnect === null || onConnect === void 0 ? void 0 : onConnect(edgeParams);\n };\n\n var onPointerDown = function onPointerDown(event) {\n if (!nodeId) {\n return;\n }\n\n var isMouseTriggered = isMouseEvent(event.nativeEvent);\n\n if (isConnectableStart && (isMouseTriggered && event.button === 0 || !isMouseTriggered)) {\n var currentStore = store.getState();\n XYHandle.onPointerDown(event.nativeEvent, {\n autoPanOnConnect: currentStore.autoPanOnConnect,\n connectionMode: currentStore.connectionMode,\n connectionRadius: currentStore.connectionRadius,\n domNode: currentStore.domNode,\n nodeLookup: currentStore.nodeLookup,\n lib: currentStore.lib,\n isTarget: isTarget,\n handleId: handleId,\n nodeId: nodeId,\n flowId: currentStore.rfId,\n panBy: currentStore.panBy,\n cancelConnection: currentStore.cancelConnection,\n onConnectStart: currentStore.onConnectStart,\n onConnectEnd: currentStore.onConnectEnd,\n updateConnection: currentStore.updateConnection,\n onConnect: onConnectExtended,\n isValidConnection: isValidConnection || currentStore.isValidConnection,\n getTransform: function getTransform() {\n return store.getState().transform;\n },\n getFromHandle: function getFromHandle() {\n return store.getState().connection.fromHandle;\n },\n autoPanSpeed: currentStore.autoPanSpeed\n });\n }\n\n if (isMouseTriggered) {\n onMouseDown === null || onMouseDown === void 0 ? void 0 : onMouseDown(event);\n } else {\n onTouchStart === null || onTouchStart === void 0 ? void 0 : onTouchStart(event);\n }\n };\n\n var onClick = function onClick(event) {\n var _store$getState30 = store.getState(),\n onClickConnectStart = _store$getState30.onClickConnectStart,\n onClickConnectEnd = _store$getState30.onClickConnectEnd,\n connectionClickStartHandle = _store$getState30.connectionClickStartHandle,\n connectionMode = _store$getState30.connectionMode,\n isValidConnectionStore = _store$getState30.isValidConnection,\n lib = _store$getState30.lib,\n flowId = _store$getState30.rfId,\n nodeLookup = _store$getState30.nodeLookup,\n connectionState = _store$getState30.connection;\n\n if (!nodeId || !connectionClickStartHandle && !isConnectableStart) {\n return;\n }\n\n if (!connectionClickStartHandle) {\n onClickConnectStart === null || onClickConnectStart === void 0 ? void 0 : onClickConnectStart(event.nativeEvent, {\n nodeId: nodeId,\n handleId: handleId,\n handleType: type\n });\n store.setState({\n connectionClickStartHandle: {\n nodeId: nodeId,\n type: type,\n id: handleId\n }\n });\n return;\n }\n\n var doc = getHostForElement(event.target);\n var isValidConnectionHandler = isValidConnection || isValidConnectionStore;\n\n var _XYHandle$isValid = XYHandle.isValid(event.nativeEvent, {\n handle: {\n nodeId: nodeId,\n id: handleId,\n type: type\n },\n connectionMode: connectionMode,\n fromNodeId: connectionClickStartHandle.nodeId,\n fromHandleId: connectionClickStartHandle.id || null,\n fromType: connectionClickStartHandle.type,\n isValidConnection: isValidConnectionHandler,\n flowId: flowId,\n doc: doc,\n lib: lib,\n nodeLookup: nodeLookup\n }),\n connection = _XYHandle$isValid.connection,\n isValid = _XYHandle$isValid.isValid;\n\n if (isValid && connection) {\n onConnectExtended(connection);\n }\n\n var connectionClone = structuredClone(connectionState);\n delete connectionClone.inProgress;\n connectionClone.toPosition = connectionClone.toHandle ? connectionClone.toHandle.position : null;\n onClickConnectEnd === null || onClickConnectEnd === void 0 ? void 0 : onClickConnectEnd(event, connectionClone);\n store.setState({\n connectionClickStartHandle: null\n });\n };\n\n return jsx(\"div\", _objectSpread(_objectSpread({\n \"data-handleid\": handleId,\n \"data-nodeid\": nodeId,\n \"data-handlepos\": position,\n \"data-id\": \"\".concat(rfId, \"-\").concat(nodeId, \"-\").concat(handleId, \"-\").concat(type),\n className: cc(['react-flow__handle', \"react-flow__handle-\".concat(position), 'nodrag', noPanClassName, className, {\n source: !isTarget,\n target: isTarget,\n connectable: isConnectable,\n connectablestart: isConnectableStart,\n connectableend: isConnectableEnd,\n clickconnecting: clickConnecting,\n connectingfrom: connectingFrom,\n connectingto: connectingTo,\n valid: valid,\n // shows where you can start a connection from\n // and where you can end it while connecting\n connectionindicator: isConnectable && (!connectionInProcess || isPossibleEndHandle) && (connectionInProcess ? isConnectableEnd : isConnectableStart)\n }]),\n onMouseDown: onPointerDown,\n onTouchStart: onPointerDown,\n onClick: connectOnClick ? onClick : undefined,\n ref: ref\n }, rest), {}, {\n children: children\n }));\n}\n/**\n * The Handle component is a UI element that is used to connect nodes.\n */\n\n\nvar Handle = memo(fixedForwardRef(HandleComponent));\n\nfunction InputNode(_ref17) {\n var data = _ref17.data,\n isConnectable = _ref17.isConnectable,\n _ref17$sourcePosition = _ref17.sourcePosition,\n sourcePosition = _ref17$sourcePosition === void 0 ? Position.Bottom : _ref17$sourcePosition;\n return jsxs(Fragment, {\n children: [data === null || data === void 0 ? void 0 : data.label, jsx(Handle, {\n type: \"source\",\n position: sourcePosition,\n isConnectable: isConnectable\n })]\n });\n}\n\nfunction DefaultNode(_ref18) {\n var data = _ref18.data,\n isConnectable = _ref18.isConnectable,\n _ref18$targetPosition = _ref18.targetPosition,\n targetPosition = _ref18$targetPosition === void 0 ? Position.Top : _ref18$targetPosition,\n _ref18$sourcePosition = _ref18.sourcePosition,\n sourcePosition = _ref18$sourcePosition === void 0 ? Position.Bottom : _ref18$sourcePosition;\n return jsxs(Fragment, {\n children: [jsx(Handle, {\n type: \"target\",\n position: targetPosition,\n isConnectable: isConnectable\n }), data === null || data === void 0 ? void 0 : data.label, jsx(Handle, {\n type: \"source\",\n position: sourcePosition,\n isConnectable: isConnectable\n })]\n });\n}\n\nfunction GroupNode() {\n return null;\n}\n\nfunction OutputNode(_ref19) {\n var data = _ref19.data,\n isConnectable = _ref19.isConnectable,\n _ref19$targetPosition = _ref19.targetPosition,\n targetPosition = _ref19$targetPosition === void 0 ? Position.Top : _ref19$targetPosition;\n return jsxs(Fragment, {\n children: [jsx(Handle, {\n type: \"target\",\n position: targetPosition,\n isConnectable: isConnectable\n }), data === null || data === void 0 ? void 0 : data.label]\n });\n}\n\nvar arrowKeyDiffs = {\n ArrowUp: {\n x: 0,\n y: -1\n },\n ArrowDown: {\n x: 0,\n y: 1\n },\n ArrowLeft: {\n x: -1,\n y: 0\n },\n ArrowRight: {\n x: 1,\n y: 0\n }\n};\nvar builtinNodeTypes = {\n input: InputNode,\n default: DefaultNode,\n output: OutputNode,\n group: GroupNode\n};\n\nfunction getNodeInlineStyleDimensions(node) {\n var _node$width2, _node$style3, _node$height2, _node$style4;\n\n if (node.internals.handleBounds === undefined) {\n var _ref20, _node$width, _node$style, _ref21, _node$height, _node$style2;\n\n return {\n width: (_ref20 = (_node$width = node.width) !== null && _node$width !== void 0 ? _node$width : node.initialWidth) !== null && _ref20 !== void 0 ? _ref20 : (_node$style = node.style) === null || _node$style === void 0 ? void 0 : _node$style.width,\n height: (_ref21 = (_node$height = node.height) !== null && _node$height !== void 0 ? _node$height : node.initialHeight) !== null && _ref21 !== void 0 ? _ref21 : (_node$style2 = node.style) === null || _node$style2 === void 0 ? void 0 : _node$style2.height\n };\n }\n\n return {\n width: (_node$width2 = node.width) !== null && _node$width2 !== void 0 ? _node$width2 : (_node$style3 = node.style) === null || _node$style3 === void 0 ? void 0 : _node$style3.width,\n height: (_node$height2 = node.height) !== null && _node$height2 !== void 0 ? _node$height2 : (_node$style4 = node.style) === null || _node$style4 === void 0 ? void 0 : _node$style4.height\n };\n}\n\nvar selector$f = function selector$f(s) {\n var _getInternalNodesBoun = getInternalNodesBounds(s.nodeLookup, {\n filter: function filter(node) {\n return !!node.selected;\n }\n }),\n width = _getInternalNodesBoun.width,\n height = _getInternalNodesBoun.height,\n x = _getInternalNodesBoun.x,\n y = _getInternalNodesBoun.y;\n\n return {\n width: isNumeric(width) ? width : null,\n height: isNumeric(height) ? height : null,\n userSelectionActive: s.userSelectionActive,\n transformString: \"translate(\".concat(s.transform[0], \"px,\").concat(s.transform[1], \"px) scale(\").concat(s.transform[2], \") translate(\").concat(x, \"px,\").concat(y, \"px)\")\n };\n};\n\nfunction NodesSelection(_ref22) {\n var onSelectionContextMenu = _ref22.onSelectionContextMenu,\n noPanClassName = _ref22.noPanClassName,\n disableKeyboardA11y = _ref22.disableKeyboardA11y;\n var store = useStoreApi();\n\n var _useStore8 = useStore(selector$f, shallow),\n width = _useStore8.width,\n height = _useStore8.height,\n transformString = _useStore8.transformString,\n userSelectionActive = _useStore8.userSelectionActive;\n\n var moveSelectedNodes = useMoveSelectedNodes();\n var nodeRef = useRef(null);\n useEffect(function () {\n if (!disableKeyboardA11y) {\n var _nodeRef$current2;\n\n (_nodeRef$current2 = nodeRef.current) === null || _nodeRef$current2 === void 0 ? void 0 : _nodeRef$current2.focus({\n preventScroll: true\n });\n }\n }, [disableKeyboardA11y]);\n useDrag({\n nodeRef: nodeRef\n });\n\n if (userSelectionActive || !width || !height) {\n return null;\n }\n\n var onContextMenu = onSelectionContextMenu ? function (event) {\n var selectedNodes = store.getState().nodes.filter(function (n) {\n return n.selected;\n });\n onSelectionContextMenu(event, selectedNodes);\n } : undefined;\n\n var onKeyDown = function onKeyDown(event) {\n if (Object.prototype.hasOwnProperty.call(arrowKeyDiffs, event.key)) {\n event.preventDefault();\n moveSelectedNodes({\n direction: arrowKeyDiffs[event.key],\n factor: event.shiftKey ? 4 : 1\n });\n }\n };\n\n return jsx(\"div\", {\n className: cc(['react-flow__nodesselection', 'react-flow__container', noPanClassName]),\n style: {\n transform: transformString\n },\n children: jsx(\"div\", {\n ref: nodeRef,\n className: \"react-flow__nodesselection-rect\",\n onContextMenu: onContextMenu,\n tabIndex: disableKeyboardA11y ? undefined : -1,\n onKeyDown: disableKeyboardA11y ? undefined : onKeyDown,\n style: {\n width: width,\n height: height\n }\n })\n });\n}\n\nvar win = typeof window !== 'undefined' ? window : undefined;\n\nvar selector$e = function selector$e(s) {\n return {\n nodesSelectionActive: s.nodesSelectionActive,\n userSelectionActive: s.userSelectionActive\n };\n};\n\nfunction FlowRendererComponent(_ref23) {\n var children = _ref23.children,\n onPaneClick = _ref23.onPaneClick,\n onPaneMouseEnter = _ref23.onPaneMouseEnter,\n onPaneMouseMove = _ref23.onPaneMouseMove,\n onPaneMouseLeave = _ref23.onPaneMouseLeave,\n onPaneContextMenu = _ref23.onPaneContextMenu,\n onPaneScroll = _ref23.onPaneScroll,\n paneClickDistance = _ref23.paneClickDistance,\n deleteKeyCode = _ref23.deleteKeyCode,\n selectionKeyCode = _ref23.selectionKeyCode,\n selectionOnDrag = _ref23.selectionOnDrag,\n selectionMode = _ref23.selectionMode,\n onSelectionStart = _ref23.onSelectionStart,\n onSelectionEnd = _ref23.onSelectionEnd,\n multiSelectionKeyCode = _ref23.multiSelectionKeyCode,\n panActivationKeyCode = _ref23.panActivationKeyCode,\n zoomActivationKeyCode = _ref23.zoomActivationKeyCode,\n elementsSelectable = _ref23.elementsSelectable,\n zoomOnScroll = _ref23.zoomOnScroll,\n zoomOnPinch = _ref23.zoomOnPinch,\n _panOnScroll = _ref23.panOnScroll,\n panOnScrollSpeed = _ref23.panOnScrollSpeed,\n panOnScrollMode = _ref23.panOnScrollMode,\n zoomOnDoubleClick = _ref23.zoomOnDoubleClick,\n _panOnDrag = _ref23.panOnDrag,\n defaultViewport = _ref23.defaultViewport,\n translateExtent = _ref23.translateExtent,\n minZoom = _ref23.minZoom,\n maxZoom = _ref23.maxZoom,\n preventScrolling = _ref23.preventScrolling,\n onSelectionContextMenu = _ref23.onSelectionContextMenu,\n noWheelClassName = _ref23.noWheelClassName,\n noPanClassName = _ref23.noPanClassName,\n disableKeyboardA11y = _ref23.disableKeyboardA11y,\n onViewportChange = _ref23.onViewportChange,\n isControlledViewport = _ref23.isControlledViewport;\n\n var _useStore9 = useStore(selector$e),\n nodesSelectionActive = _useStore9.nodesSelectionActive,\n userSelectionActive = _useStore9.userSelectionActive;\n\n var selectionKeyPressed = useKeyPress(selectionKeyCode, {\n target: win\n });\n var panActivationKeyPressed = useKeyPress(panActivationKeyCode, {\n target: win\n });\n var panOnDrag = panActivationKeyPressed || _panOnDrag;\n var panOnScroll = panActivationKeyPressed || _panOnScroll;\n\n var _selectionOnDrag = selectionOnDrag && panOnDrag !== true;\n\n var isSelecting = selectionKeyPressed || userSelectionActive || _selectionOnDrag;\n useGlobalKeyHandler({\n deleteKeyCode: deleteKeyCode,\n multiSelectionKeyCode: multiSelectionKeyCode\n });\n return jsx(ZoomPane, {\n onPaneContextMenu: onPaneContextMenu,\n elementsSelectable: elementsSelectable,\n zoomOnScroll: zoomOnScroll,\n zoomOnPinch: zoomOnPinch,\n panOnScroll: panOnScroll,\n panOnScrollSpeed: panOnScrollSpeed,\n panOnScrollMode: panOnScrollMode,\n zoomOnDoubleClick: zoomOnDoubleClick,\n panOnDrag: !selectionKeyPressed && panOnDrag,\n defaultViewport: defaultViewport,\n translateExtent: translateExtent,\n minZoom: minZoom,\n maxZoom: maxZoom,\n zoomActivationKeyCode: zoomActivationKeyCode,\n preventScrolling: preventScrolling,\n noWheelClassName: noWheelClassName,\n noPanClassName: noPanClassName,\n onViewportChange: onViewportChange,\n isControlledViewport: isControlledViewport,\n paneClickDistance: paneClickDistance,\n children: jsxs(Pane, {\n onSelectionStart: onSelectionStart,\n onSelectionEnd: onSelectionEnd,\n onPaneClick: onPaneClick,\n onPaneMouseEnter: onPaneMouseEnter,\n onPaneMouseMove: onPaneMouseMove,\n onPaneMouseLeave: onPaneMouseLeave,\n onPaneContextMenu: onPaneContextMenu,\n onPaneScroll: onPaneScroll,\n panOnDrag: panOnDrag,\n isSelecting: !!isSelecting,\n selectionMode: selectionMode,\n selectionKeyPressed: selectionKeyPressed,\n selectionOnDrag: _selectionOnDrag,\n children: [children, nodesSelectionActive && jsx(NodesSelection, {\n onSelectionContextMenu: onSelectionContextMenu,\n noPanClassName: noPanClassName,\n disableKeyboardA11y: disableKeyboardA11y\n })]\n })\n });\n}\n\nFlowRendererComponent.displayName = 'FlowRenderer';\nvar FlowRenderer = memo(FlowRendererComponent);\n\nvar selector$d = function selector$d(onlyRenderVisible) {\n return function (s) {\n return onlyRenderVisible ? getNodesInside(s.nodeLookup, {\n x: 0,\n y: 0,\n width: s.width,\n height: s.height\n }, s.transform, true).map(function (node) {\n return node.id;\n }) : Array.from(s.nodeLookup.keys());\n };\n};\n/**\n * Hook for getting the visible node ids from the store.\n *\n * @internal\n * @param onlyRenderVisible\n * @returns array with visible node ids\n */\n\n\nfunction useVisibleNodeIds(onlyRenderVisible) {\n var nodeIds = useStore(useCallback(selector$d(onlyRenderVisible), [onlyRenderVisible]), shallow);\n return nodeIds;\n}\n\nvar selector$c = function selector$c(s) {\n return s.updateNodeInternals;\n};\n\nfunction useResizeObserver() {\n var updateNodeInternals = useStore(selector$c);\n\n var _useState11 = useState(function () {\n if (typeof ResizeObserver === 'undefined') {\n return null;\n }\n\n return new ResizeObserver(function (entries) {\n var updates = new Map();\n entries.forEach(function (entry) {\n var id = entry.target.getAttribute('data-id');\n updates.set(id, {\n id: id,\n nodeElement: entry.target,\n force: true\n });\n });\n updateNodeInternals(updates);\n });\n }),\n _useState12 = _slicedToArray(_useState11, 1),\n resizeObserver = _useState12[0];\n\n useEffect(function () {\n return function () {\n resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.disconnect();\n };\n }, [resizeObserver]);\n return resizeObserver;\n}\n/**\n * Hook to handle the resize observation + internal updates for the passed node.\n *\n * @internal\n * @returns nodeRef - reference to the node element\n */\n\n\nfunction useNodeObserver(_ref24) {\n var node = _ref24.node,\n nodeType = _ref24.nodeType,\n hasDimensions = _ref24.hasDimensions,\n resizeObserver = _ref24.resizeObserver;\n var store = useStoreApi();\n var nodeRef = useRef(null);\n var observedNode = useRef(null);\n var prevSourcePosition = useRef(node.sourcePosition);\n var prevTargetPosition = useRef(node.targetPosition);\n var prevType = useRef(nodeType);\n var isInitialized = hasDimensions && !!node.internals.handleBounds;\n useEffect(function () {\n if (nodeRef.current && !node.hidden && (!isInitialized || observedNode.current !== nodeRef.current)) {\n if (observedNode.current) {\n resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.unobserve(observedNode.current);\n }\n\n resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.observe(nodeRef.current);\n observedNode.current = nodeRef.current;\n }\n }, [isInitialized, node.hidden]);\n useEffect(function () {\n return function () {\n if (observedNode.current) {\n resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.unobserve(observedNode.current);\n observedNode.current = null;\n }\n };\n }, []);\n useEffect(function () {\n if (nodeRef.current) {\n // when the user programmatically changes the source or handle position, we need to update the internals\n // to make sure the edges are updated correctly\n var typeChanged = prevType.current !== nodeType;\n var sourcePosChanged = prevSourcePosition.current !== node.sourcePosition;\n var targetPosChanged = prevTargetPosition.current !== node.targetPosition;\n\n if (typeChanged || sourcePosChanged || targetPosChanged) {\n prevType.current = nodeType;\n prevSourcePosition.current = node.sourcePosition;\n prevTargetPosition.current = node.targetPosition;\n store.getState().updateNodeInternals(new Map([[node.id, {\n id: node.id,\n nodeElement: nodeRef.current,\n force: true\n }]]));\n }\n }\n }, [node.id, nodeType, node.sourcePosition, node.targetPosition]);\n return nodeRef;\n}\n\nfunction NodeWrapper(_ref25) {\n var _node$deletable;\n\n var id = _ref25.id,\n onClick = _ref25.onClick,\n onMouseEnter = _ref25.onMouseEnter,\n onMouseMove = _ref25.onMouseMove,\n onMouseLeave = _ref25.onMouseLeave,\n onContextMenu = _ref25.onContextMenu,\n onDoubleClick = _ref25.onDoubleClick,\n nodesDraggable = _ref25.nodesDraggable,\n elementsSelectable = _ref25.elementsSelectable,\n nodesConnectable = _ref25.nodesConnectable,\n nodesFocusable = _ref25.nodesFocusable,\n resizeObserver = _ref25.resizeObserver,\n noDragClassName = _ref25.noDragClassName,\n noPanClassName = _ref25.noPanClassName,\n disableKeyboardA11y = _ref25.disableKeyboardA11y,\n rfId = _ref25.rfId,\n nodeTypes = _ref25.nodeTypes,\n nodeExtent = _ref25.nodeExtent,\n nodeClickDistance = _ref25.nodeClickDistance,\n onError = _ref25.onError;\n\n var _useStore10 = useStore(function (s) {\n var node = s.nodeLookup.get(id);\n var isParent = s.parentLookup.has(id);\n return {\n node: node,\n internals: node.internals,\n isParent: isParent\n };\n }, shallow),\n node = _useStore10.node,\n internals = _useStore10.internals,\n isParent = _useStore10.isParent;\n\n var nodeType = node.type || 'default';\n var NodeComponent = (nodeTypes === null || nodeTypes === void 0 ? void 0 : nodeTypes[nodeType]) || builtinNodeTypes[nodeType];\n\n if (NodeComponent === undefined) {\n onError === null || onError === void 0 ? void 0 : onError('003', errorMessages['error003'](nodeType));\n nodeType = 'default';\n NodeComponent = builtinNodeTypes.default;\n }\n\n var isDraggable = !!(node.draggable || nodesDraggable && typeof node.draggable === 'undefined');\n var isSelectable = !!(node.selectable || elementsSelectable && typeof node.selectable === 'undefined');\n var isConnectable = !!(node.connectable || nodesConnectable && typeof node.connectable === 'undefined');\n var isFocusable = !!(node.focusable || nodesFocusable && typeof node.focusable === 'undefined');\n var store = useStoreApi();\n var hasDimensions = nodeHasDimensions(node);\n var nodeRef = useNodeObserver({\n node: node,\n nodeType: nodeType,\n hasDimensions: hasDimensions,\n resizeObserver: resizeObserver\n });\n var dragging = useDrag({\n nodeRef: nodeRef,\n disabled: node.hidden || !isDraggable,\n noDragClassName: noDragClassName,\n handleSelector: node.dragHandle,\n nodeId: id,\n isSelectable: isSelectable,\n nodeClickDistance: nodeClickDistance\n });\n var moveSelectedNodes = useMoveSelectedNodes();\n\n if (node.hidden) {\n return null;\n }\n\n var nodeDimensions = getNodeDimensions(node);\n var inlineDimensions = getNodeInlineStyleDimensions(node);\n var hasPointerEvents = isSelectable || isDraggable || onClick || onMouseEnter || onMouseMove || onMouseLeave;\n var onMouseEnterHandler = onMouseEnter ? function (event) {\n return onMouseEnter(event, _objectSpread({}, internals.userNode));\n } : undefined;\n var onMouseMoveHandler = onMouseMove ? function (event) {\n return onMouseMove(event, _objectSpread({}, internals.userNode));\n } : undefined;\n var onMouseLeaveHandler = onMouseLeave ? function (event) {\n return onMouseLeave(event, _objectSpread({}, internals.userNode));\n } : undefined;\n var onContextMenuHandler = onContextMenu ? function (event) {\n return onContextMenu(event, _objectSpread({}, internals.userNode));\n } : undefined;\n var onDoubleClickHandler = onDoubleClick ? function (event) {\n return onDoubleClick(event, _objectSpread({}, internals.userNode));\n } : undefined;\n\n var onSelectNodeHandler = function onSelectNodeHandler(event) {\n var _store$getState31 = store.getState(),\n selectNodesOnDrag = _store$getState31.selectNodesOnDrag,\n nodeDragThreshold = _store$getState31.nodeDragThreshold;\n\n if (isSelectable && (!selectNodesOnDrag || !isDraggable || nodeDragThreshold > 0)) {\n // this handler gets called by XYDrag on drag start when selectNodesOnDrag=true\n // here we only need to call it when selectNodesOnDrag=false\n handleNodeClick({\n id: id,\n store: store,\n nodeRef: nodeRef\n });\n }\n\n if (onClick) {\n onClick(event, _objectSpread({}, internals.userNode));\n }\n };\n\n var onKeyDown = function onKeyDown(event) {\n if (isInputDOMNode(event.nativeEvent) || disableKeyboardA11y) {\n return;\n }\n\n if (elementSelectionKeys.includes(event.key) && isSelectable) {\n var unselect = event.key === 'Escape';\n handleNodeClick({\n id: id,\n store: store,\n unselect: unselect,\n nodeRef: nodeRef\n });\n } else if (isDraggable && node.selected && Object.prototype.hasOwnProperty.call(arrowKeyDiffs, event.key)) {\n // prevent default scrolling behavior on arrow key press when node is moved\n event.preventDefault();\n store.setState({\n ariaLiveMessage: \"Moved selected node \".concat(event.key.replace('Arrow', '').toLowerCase(), \". New position, x: \").concat(~~internals.positionAbsolute.x, \", y: \").concat(~~internals.positionAbsolute.y)\n });\n moveSelectedNodes({\n direction: arrowKeyDiffs[event.key],\n factor: event.shiftKey ? 4 : 1\n });\n }\n };\n\n return jsx(\"div\", {\n className: cc(['react-flow__node', \"react-flow__node-\".concat(nodeType), _defineProperty({}, noPanClassName, isDraggable), node.className, {\n selected: node.selected,\n selectable: isSelectable,\n parent: isParent,\n draggable: isDraggable,\n dragging: dragging\n }]),\n ref: nodeRef,\n style: _objectSpread(_objectSpread({\n zIndex: internals.z,\n transform: \"translate(\".concat(internals.positionAbsolute.x, \"px,\").concat(internals.positionAbsolute.y, \"px)\"),\n pointerEvents: hasPointerEvents ? 'all' : 'none',\n visibility: hasDimensions ? 'visible' : 'hidden'\n }, node.style), inlineDimensions),\n \"data-id\": id,\n \"data-testid\": \"rf__node-\".concat(id),\n onMouseEnter: onMouseEnterHandler,\n onMouseMove: onMouseMoveHandler,\n onMouseLeave: onMouseLeaveHandler,\n onContextMenu: onContextMenuHandler,\n onClick: onSelectNodeHandler,\n onDoubleClick: onDoubleClickHandler,\n onKeyDown: isFocusable ? onKeyDown : undefined,\n tabIndex: isFocusable ? 0 : undefined,\n role: isFocusable ? 'button' : undefined,\n \"aria-describedby\": disableKeyboardA11y ? undefined : \"\".concat(ARIA_NODE_DESC_KEY, \"-\").concat(rfId),\n \"aria-label\": node.ariaLabel,\n children: jsx(Provider, {\n value: id,\n children: jsx(NodeComponent, _objectSpread({\n id: id,\n data: node.data,\n type: nodeType,\n positionAbsoluteX: internals.positionAbsolute.x,\n positionAbsoluteY: internals.positionAbsolute.y,\n selected: node.selected,\n selectable: isSelectable,\n draggable: isDraggable,\n deletable: (_node$deletable = node.deletable) !== null && _node$deletable !== void 0 ? _node$deletable : true,\n isConnectable: isConnectable,\n sourcePosition: node.sourcePosition,\n targetPosition: node.targetPosition,\n dragging: dragging,\n dragHandle: node.dragHandle,\n zIndex: internals.z,\n parentId: node.parentId\n }, nodeDimensions))\n })\n });\n}\n\nvar selector$b = function selector$b(s) {\n return {\n nodesDraggable: s.nodesDraggable,\n nodesConnectable: s.nodesConnectable,\n nodesFocusable: s.nodesFocusable,\n elementsSelectable: s.elementsSelectable,\n onError: s.onError\n };\n};\n\nfunction NodeRendererComponent(props) {\n var _useStore11 = useStore(selector$b, shallow),\n nodesDraggable = _useStore11.nodesDraggable,\n nodesConnectable = _useStore11.nodesConnectable,\n nodesFocusable = _useStore11.nodesFocusable,\n elementsSelectable = _useStore11.elementsSelectable,\n onError = _useStore11.onError;\n\n var nodeIds = useVisibleNodeIds(props.onlyRenderVisibleElements);\n var resizeObserver = useResizeObserver();\n return jsx(\"div\", {\n className: \"react-flow__nodes\",\n style: containerStyle,\n children: nodeIds.map(function (nodeId) {\n return (// The split of responsibilities between NodeRenderer and\n // NodeComponentWrapper may appear weird. However, it’s designed to\n // minimize the cost of updates when individual nodes change.\n //\n // For example, when you’re dragging a single node, that node gets\n // updated multiple times per second. If `NodeRenderer` were to update\n // every time, it would have to re-run the `nodes.map()` loop every\n // time. This gets pricey with hundreds of nodes, especially if every\n // loop cycle does more than just rendering a JSX element!\n //\n // As a result of this choice, we took the following implementation\n // decisions:\n // - NodeRenderer subscribes *only* to node IDs – and therefore\n // rerender *only* when visible nodes are added or removed.\n // - NodeRenderer performs all operations the result of which can be\n // shared between nodes (such as creating the `ResizeObserver`\n // instance, or subscribing to `selector`). This means extra prop\n // drilling into `NodeComponentWrapper`, but it means we need to run\n // these operations only once – instead of once per node.\n // - Any operations that you’d normally write inside `nodes.map` are\n // moved into `NodeComponentWrapper`. This ensures they are\n // memorized – so if `NodeRenderer` *has* to rerender, it only\n // needs to regenerate the list of nodes, nothing else.\n jsx(NodeWrapper, {\n id: nodeId,\n nodeTypes: props.nodeTypes,\n nodeExtent: props.nodeExtent,\n onClick: props.onNodeClick,\n onMouseEnter: props.onNodeMouseEnter,\n onMouseMove: props.onNodeMouseMove,\n onMouseLeave: props.onNodeMouseLeave,\n onContextMenu: props.onNodeContextMenu,\n onDoubleClick: props.onNodeDoubleClick,\n noDragClassName: props.noDragClassName,\n noPanClassName: props.noPanClassName,\n rfId: props.rfId,\n disableKeyboardA11y: props.disableKeyboardA11y,\n resizeObserver: resizeObserver,\n nodesDraggable: nodesDraggable,\n nodesConnectable: nodesConnectable,\n nodesFocusable: nodesFocusable,\n elementsSelectable: elementsSelectable,\n nodeClickDistance: props.nodeClickDistance,\n onError: onError\n }, nodeId)\n );\n })\n });\n}\n\nNodeRendererComponent.displayName = 'NodeRenderer';\nvar NodeRenderer = memo(NodeRendererComponent);\n/**\n * Hook for getting the visible edge ids from the store.\n *\n * @internal\n * @param onlyRenderVisible\n * @returns array with visible edge ids\n */\n\nfunction useVisibleEdgeIds(onlyRenderVisible) {\n var edgeIds = useStore(useCallback(function (s) {\n if (!onlyRenderVisible) {\n return s.edges.map(function (edge) {\n return edge.id;\n });\n }\n\n var visibleEdgeIds = [];\n\n if (s.width && s.height) {\n var _iterator16 = _createForOfIteratorHelper(s.edges),\n _step16;\n\n try {\n for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {\n var edge = _step16.value;\n var sourceNode = s.nodeLookup.get(edge.source);\n var targetNode = s.nodeLookup.get(edge.target);\n\n if (sourceNode && targetNode && isEdgeVisible({\n sourceNode: sourceNode,\n targetNode: targetNode,\n width: s.width,\n height: s.height,\n transform: s.transform\n })) {\n visibleEdgeIds.push(edge.id);\n }\n }\n } catch (err) {\n _iterator16.e(err);\n } finally {\n _iterator16.f();\n }\n }\n\n return visibleEdgeIds;\n }, [onlyRenderVisible]), shallow);\n return edgeIds;\n}\n\nvar ArrowSymbol = function ArrowSymbol(_ref27) {\n var _ref27$color = _ref27.color,\n color = _ref27$color === void 0 ? 'none' : _ref27$color,\n _ref27$strokeWidth = _ref27.strokeWidth,\n strokeWidth = _ref27$strokeWidth === void 0 ? 1 : _ref27$strokeWidth;\n return jsx(\"polyline\", {\n style: {\n stroke: color,\n strokeWidth: strokeWidth\n },\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n fill: \"none\",\n points: \"-5,-4 0,0 -5,4\"\n });\n};\n\nvar ArrowClosedSymbol = function ArrowClosedSymbol(_ref28) {\n var _ref28$color = _ref28.color,\n color = _ref28$color === void 0 ? 'none' : _ref28$color,\n _ref28$strokeWidth = _ref28.strokeWidth,\n strokeWidth = _ref28$strokeWidth === void 0 ? 1 : _ref28$strokeWidth;\n return jsx(\"polyline\", {\n style: {\n stroke: color,\n fill: color,\n strokeWidth: strokeWidth\n },\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n points: \"-5,-4 0,0 -5,4 -5,-4\"\n });\n};\n\nvar MarkerSymbols = (_MarkerSymbols = {}, _defineProperty(_MarkerSymbols, MarkerType.Arrow, ArrowSymbol), _defineProperty(_MarkerSymbols, MarkerType.ArrowClosed, ArrowClosedSymbol), _MarkerSymbols);\n\nfunction useMarkerSymbol(type) {\n var store = useStoreApi();\n var symbol = useMemo(function () {\n var symbolExists = Object.prototype.hasOwnProperty.call(MarkerSymbols, type);\n\n if (!symbolExists) {\n var _store$getState$onErr3, _store$getState32;\n\n (_store$getState$onErr3 = (_store$getState32 = store.getState()).onError) === null || _store$getState$onErr3 === void 0 ? void 0 : _store$getState$onErr3.call(_store$getState32, '009', errorMessages['error009'](type));\n return null;\n }\n\n return MarkerSymbols[type];\n }, [type]);\n return symbol;\n}\n\nvar Marker = function Marker(_ref29) {\n var id = _ref29.id,\n type = _ref29.type,\n color = _ref29.color,\n _ref29$width = _ref29.width,\n width = _ref29$width === void 0 ? 12.5 : _ref29$width,\n _ref29$height = _ref29.height,\n height = _ref29$height === void 0 ? 12.5 : _ref29$height,\n _ref29$markerUnits = _ref29.markerUnits,\n markerUnits = _ref29$markerUnits === void 0 ? 'strokeWidth' : _ref29$markerUnits,\n strokeWidth = _ref29.strokeWidth,\n _ref29$orient = _ref29.orient,\n orient = _ref29$orient === void 0 ? 'auto-start-reverse' : _ref29$orient;\n var Symbol = useMarkerSymbol(type);\n\n if (!Symbol) {\n return null;\n }\n\n return jsx(\"marker\", {\n className: \"react-flow__arrowhead\",\n id: id,\n markerWidth: \"\".concat(width),\n markerHeight: \"\".concat(height),\n viewBox: \"-10 -10 20 20\",\n markerUnits: markerUnits,\n orient: orient,\n refX: \"0\",\n refY: \"0\",\n children: jsx(Symbol, {\n color: color,\n strokeWidth: strokeWidth\n })\n });\n}; // when you have multiple flows on a page and you hide the first one, the other ones have no markers anymore\n// when they do have markers with the same ids. To prevent this the user can pass a unique id to the react flow wrapper\n// that we can then use for creating our unique marker ids\n\n\nvar MarkerDefinitions = function MarkerDefinitions(_ref30) {\n var defaultColor = _ref30.defaultColor,\n rfId = _ref30.rfId;\n var edges = useStore(function (s) {\n return s.edges;\n });\n var defaultEdgeOptions = useStore(function (s) {\n return s.defaultEdgeOptions;\n });\n var markers = useMemo(function () {\n var markers = createMarkerIds(edges, {\n id: rfId,\n defaultColor: defaultColor,\n defaultMarkerStart: defaultEdgeOptions === null || defaultEdgeOptions === void 0 ? void 0 : defaultEdgeOptions.markerStart,\n defaultMarkerEnd: defaultEdgeOptions === null || defaultEdgeOptions === void 0 ? void 0 : defaultEdgeOptions.markerEnd\n });\n return markers;\n }, [edges, defaultEdgeOptions, rfId, defaultColor]);\n\n if (!markers.length) {\n return null;\n }\n\n return jsx(\"svg\", {\n className: \"react-flow__marker\",\n children: jsx(\"defs\", {\n children: markers.map(function (marker) {\n return jsx(Marker, {\n id: marker.id,\n type: marker.type,\n color: marker.color,\n width: marker.width,\n height: marker.height,\n markerUnits: marker.markerUnits,\n strokeWidth: marker.strokeWidth,\n orient: marker.orient\n }, marker.id);\n })\n })\n });\n};\n\nMarkerDefinitions.displayName = 'MarkerDefinitions';\nvar MarkerDefinitions$1 = memo(MarkerDefinitions);\n\nfunction EdgeTextComponent(_ref31) {\n var x = _ref31.x,\n y = _ref31.y,\n label = _ref31.label,\n _ref31$labelStyle = _ref31.labelStyle,\n labelStyle = _ref31$labelStyle === void 0 ? {} : _ref31$labelStyle,\n _ref31$labelShowBg = _ref31.labelShowBg,\n labelShowBg = _ref31$labelShowBg === void 0 ? true : _ref31$labelShowBg,\n _ref31$labelBgStyle = _ref31.labelBgStyle,\n labelBgStyle = _ref31$labelBgStyle === void 0 ? {} : _ref31$labelBgStyle,\n _ref31$labelBgPadding = _ref31.labelBgPadding,\n labelBgPadding = _ref31$labelBgPadding === void 0 ? [2, 4] : _ref31$labelBgPadding,\n _ref31$labelBgBorderR = _ref31.labelBgBorderRadius,\n labelBgBorderRadius = _ref31$labelBgBorderR === void 0 ? 2 : _ref31$labelBgBorderR,\n children = _ref31.children,\n className = _ref31.className,\n rest = _objectWithoutProperties(_ref31, _excluded3);\n\n var _useState13 = useState({\n x: 1,\n y: 0,\n width: 0,\n height: 0\n }),\n _useState14 = _slicedToArray(_useState13, 2),\n edgeTextBbox = _useState14[0],\n setEdgeTextBbox = _useState14[1];\n\n var edgeTextClasses = cc(['react-flow__edge-textwrapper', className]);\n var edgeTextRef = useRef(null);\n useEffect(function () {\n if (edgeTextRef.current) {\n var textBbox = edgeTextRef.current.getBBox();\n setEdgeTextBbox({\n x: textBbox.x,\n y: textBbox.y,\n width: textBbox.width,\n height: textBbox.height\n });\n }\n }, [label]);\n\n if (typeof label === 'undefined' || !label) {\n return null;\n }\n\n return jsxs(\"g\", _objectSpread(_objectSpread({\n transform: \"translate(\".concat(x - edgeTextBbox.width / 2, \" \").concat(y - edgeTextBbox.height / 2, \")\"),\n className: edgeTextClasses,\n visibility: edgeTextBbox.width ? 'visible' : 'hidden'\n }, rest), {}, {\n children: [labelShowBg && jsx(\"rect\", {\n width: edgeTextBbox.width + 2 * labelBgPadding[0],\n x: -labelBgPadding[0],\n y: -labelBgPadding[1],\n height: edgeTextBbox.height + 2 * labelBgPadding[1],\n className: \"react-flow__edge-textbg\",\n style: labelBgStyle,\n rx: labelBgBorderRadius,\n ry: labelBgBorderRadius\n }), jsx(\"text\", {\n className: \"react-flow__edge-text\",\n y: edgeTextBbox.height / 2,\n dy: \"0.3em\",\n ref: edgeTextRef,\n style: labelStyle,\n children: label\n }), children]\n }));\n}\n\nEdgeTextComponent.displayName = 'EdgeText';\nvar EdgeText = memo(EdgeTextComponent);\n\nfunction BaseEdge(_ref32) {\n var path = _ref32.path,\n labelX = _ref32.labelX,\n labelY = _ref32.labelY,\n label = _ref32.label,\n labelStyle = _ref32.labelStyle,\n labelShowBg = _ref32.labelShowBg,\n labelBgStyle = _ref32.labelBgStyle,\n labelBgPadding = _ref32.labelBgPadding,\n labelBgBorderRadius = _ref32.labelBgBorderRadius,\n _ref32$interactionWid = _ref32.interactionWidth,\n interactionWidth = _ref32$interactionWid === void 0 ? 20 : _ref32$interactionWid,\n props = _objectWithoutProperties(_ref32, _excluded4);\n\n return jsxs(Fragment, {\n children: [jsx(\"path\", _objectSpread(_objectSpread({}, props), {}, {\n d: path,\n fill: \"none\",\n className: cc(['react-flow__edge-path', props.className])\n })), interactionWidth && jsx(\"path\", {\n d: path,\n fill: \"none\",\n strokeOpacity: 0,\n strokeWidth: interactionWidth,\n className: \"react-flow__edge-interaction\"\n }), label && isNumeric(labelX) && isNumeric(labelY) ? jsx(EdgeText, {\n x: labelX,\n y: labelY,\n label: label,\n labelStyle: labelStyle,\n labelShowBg: labelShowBg,\n labelBgStyle: labelBgStyle,\n labelBgPadding: labelBgPadding,\n labelBgBorderRadius: labelBgBorderRadius\n }) : null]\n });\n}\n\nfunction getControl(_ref33) {\n var pos = _ref33.pos,\n x1 = _ref33.x1,\n y1 = _ref33.y1,\n x2 = _ref33.x2,\n y2 = _ref33.y2;\n\n if (pos === Position.Left || pos === Position.Right) {\n return [0.5 * (x1 + x2), y1];\n }\n\n return [x1, 0.5 * (y1 + y2)];\n}\n\nfunction getSimpleBezierPath(_ref34) {\n var sourceX = _ref34.sourceX,\n sourceY = _ref34.sourceY,\n _ref34$sourcePosition = _ref34.sourcePosition,\n sourcePosition = _ref34$sourcePosition === void 0 ? Position.Bottom : _ref34$sourcePosition,\n targetX = _ref34.targetX,\n targetY = _ref34.targetY,\n _ref34$targetPosition = _ref34.targetPosition,\n targetPosition = _ref34$targetPosition === void 0 ? Position.Top : _ref34$targetPosition;\n\n var _getControl = getControl({\n pos: sourcePosition,\n x1: sourceX,\n y1: sourceY,\n x2: targetX,\n y2: targetY\n }),\n _getControl2 = _slicedToArray(_getControl, 2),\n sourceControlX = _getControl2[0],\n sourceControlY = _getControl2[1];\n\n var _getControl3 = getControl({\n pos: targetPosition,\n x1: targetX,\n y1: targetY,\n x2: sourceX,\n y2: sourceY\n }),\n _getControl4 = _slicedToArray(_getControl3, 2),\n targetControlX = _getControl4[0],\n targetControlY = _getControl4[1];\n\n var _getBezierEdgeCenter = getBezierEdgeCenter({\n sourceX: sourceX,\n sourceY: sourceY,\n targetX: targetX,\n targetY: targetY,\n sourceControlX: sourceControlX,\n sourceControlY: sourceControlY,\n targetControlX: targetControlX,\n targetControlY: targetControlY\n }),\n _getBezierEdgeCenter2 = _slicedToArray(_getBezierEdgeCenter, 4),\n labelX = _getBezierEdgeCenter2[0],\n labelY = _getBezierEdgeCenter2[1],\n offsetX = _getBezierEdgeCenter2[2],\n offsetY = _getBezierEdgeCenter2[3];\n\n return [\"M\".concat(sourceX, \",\").concat(sourceY, \" C\").concat(sourceControlX, \",\").concat(sourceControlY, \" \").concat(targetControlX, \",\").concat(targetControlY, \" \").concat(targetX, \",\").concat(targetY), labelX, labelY, offsetX, offsetY];\n}\n\nfunction createSimpleBezierEdge(params) {\n // eslint-disable-next-line react/display-name\n return memo(function (_ref35) {\n var id = _ref35.id,\n sourceX = _ref35.sourceX,\n sourceY = _ref35.sourceY,\n targetX = _ref35.targetX,\n targetY = _ref35.targetY,\n _ref35$sourcePosition = _ref35.sourcePosition,\n sourcePosition = _ref35$sourcePosition === void 0 ? Position.Bottom : _ref35$sourcePosition,\n _ref35$targetPosition = _ref35.targetPosition,\n targetPosition = _ref35$targetPosition === void 0 ? Position.Top : _ref35$targetPosition,\n label = _ref35.label,\n labelStyle = _ref35.labelStyle,\n labelShowBg = _ref35.labelShowBg,\n labelBgStyle = _ref35.labelBgStyle,\n labelBgPadding = _ref35.labelBgPadding,\n labelBgBorderRadius = _ref35.labelBgBorderRadius,\n style = _ref35.style,\n markerEnd = _ref35.markerEnd,\n markerStart = _ref35.markerStart,\n interactionWidth = _ref35.interactionWidth;\n\n var _getSimpleBezierPath = getSimpleBezierPath({\n sourceX: sourceX,\n sourceY: sourceY,\n sourcePosition: sourcePosition,\n targetX: targetX,\n targetY: targetY,\n targetPosition: targetPosition\n }),\n _getSimpleBezierPath2 = _slicedToArray(_getSimpleBezierPath, 3),\n path = _getSimpleBezierPath2[0],\n labelX = _getSimpleBezierPath2[1],\n labelY = _getSimpleBezierPath2[2];\n\n var _id = params.isInternal ? undefined : id;\n\n return jsx(BaseEdge, {\n id: _id,\n path: path,\n labelX: labelX,\n labelY: labelY,\n label: label,\n labelStyle: labelStyle,\n labelShowBg: labelShowBg,\n labelBgStyle: labelBgStyle,\n labelBgPadding: labelBgPadding,\n labelBgBorderRadius: labelBgBorderRadius,\n style: style,\n markerEnd: markerEnd,\n markerStart: markerStart,\n interactionWidth: interactionWidth\n });\n });\n}\n\nvar SimpleBezierEdge = createSimpleBezierEdge({\n isInternal: false\n});\nvar SimpleBezierEdgeInternal = createSimpleBezierEdge({\n isInternal: true\n});\nSimpleBezierEdge.displayName = 'SimpleBezierEdge';\nSimpleBezierEdgeInternal.displayName = 'SimpleBezierEdgeInternal';\n\nfunction createSmoothStepEdge(params) {\n // eslint-disable-next-line react/display-name\n return memo(function (_ref36) {\n var id = _ref36.id,\n sourceX = _ref36.sourceX,\n sourceY = _ref36.sourceY,\n targetX = _ref36.targetX,\n targetY = _ref36.targetY,\n label = _ref36.label,\n labelStyle = _ref36.labelStyle,\n labelShowBg = _ref36.labelShowBg,\n labelBgStyle = _ref36.labelBgStyle,\n labelBgPadding = _ref36.labelBgPadding,\n labelBgBorderRadius = _ref36.labelBgBorderRadius,\n style = _ref36.style,\n _ref36$sourcePosition = _ref36.sourcePosition,\n sourcePosition = _ref36$sourcePosition === void 0 ? Position.Bottom : _ref36$sourcePosition,\n _ref36$targetPosition = _ref36.targetPosition,\n targetPosition = _ref36$targetPosition === void 0 ? Position.Top : _ref36$targetPosition,\n markerEnd = _ref36.markerEnd,\n markerStart = _ref36.markerStart,\n pathOptions = _ref36.pathOptions,\n interactionWidth = _ref36.interactionWidth;\n\n var _getSmoothStepPath = getSmoothStepPath({\n sourceX: sourceX,\n sourceY: sourceY,\n sourcePosition: sourcePosition,\n targetX: targetX,\n targetY: targetY,\n targetPosition: targetPosition,\n borderRadius: pathOptions === null || pathOptions === void 0 ? void 0 : pathOptions.borderRadius,\n offset: pathOptions === null || pathOptions === void 0 ? void 0 : pathOptions.offset\n }),\n _getSmoothStepPath2 = _slicedToArray(_getSmoothStepPath, 3),\n path = _getSmoothStepPath2[0],\n labelX = _getSmoothStepPath2[1],\n labelY = _getSmoothStepPath2[2];\n\n var _id = params.isInternal ? undefined : id;\n\n return jsx(BaseEdge, {\n id: _id,\n path: path,\n labelX: labelX,\n labelY: labelY,\n label: label,\n labelStyle: labelStyle,\n labelShowBg: labelShowBg,\n labelBgStyle: labelBgStyle,\n labelBgPadding: labelBgPadding,\n labelBgBorderRadius: labelBgBorderRadius,\n style: style,\n markerEnd: markerEnd,\n markerStart: markerStart,\n interactionWidth: interactionWidth\n });\n });\n}\n\nvar SmoothStepEdge = createSmoothStepEdge({\n isInternal: false\n});\nvar SmoothStepEdgeInternal = createSmoothStepEdge({\n isInternal: true\n});\nSmoothStepEdge.displayName = 'SmoothStepEdge';\nSmoothStepEdgeInternal.displayName = 'SmoothStepEdgeInternal';\n\nfunction createStepEdge(params) {\n // eslint-disable-next-line react/display-name\n return memo(function (_ref37) {\n var _props$pathOptions2;\n\n var id = _ref37.id,\n props = _objectWithoutProperties(_ref37, _excluded5);\n\n var _id = params.isInternal ? undefined : id;\n\n return jsx(SmoothStepEdge, _objectSpread(_objectSpread({}, props), {}, {\n id: _id,\n pathOptions: useMemo(function () {\n var _props$pathOptions;\n\n return {\n borderRadius: 0,\n offset: (_props$pathOptions = props.pathOptions) === null || _props$pathOptions === void 0 ? void 0 : _props$pathOptions.offset\n };\n }, [(_props$pathOptions2 = props.pathOptions) === null || _props$pathOptions2 === void 0 ? void 0 : _props$pathOptions2.offset])\n }));\n });\n}\n\nvar StepEdge = createStepEdge({\n isInternal: false\n});\nvar StepEdgeInternal = createStepEdge({\n isInternal: true\n});\nStepEdge.displayName = 'StepEdge';\nStepEdgeInternal.displayName = 'StepEdgeInternal';\n\nfunction createStraightEdge(params) {\n // eslint-disable-next-line react/display-name\n return memo(function (_ref38) {\n var id = _ref38.id,\n sourceX = _ref38.sourceX,\n sourceY = _ref38.sourceY,\n targetX = _ref38.targetX,\n targetY = _ref38.targetY,\n label = _ref38.label,\n labelStyle = _ref38.labelStyle,\n labelShowBg = _ref38.labelShowBg,\n labelBgStyle = _ref38.labelBgStyle,\n labelBgPadding = _ref38.labelBgPadding,\n labelBgBorderRadius = _ref38.labelBgBorderRadius,\n style = _ref38.style,\n markerEnd = _ref38.markerEnd,\n markerStart = _ref38.markerStart,\n interactionWidth = _ref38.interactionWidth;\n\n var _getStraightPath = getStraightPath({\n sourceX: sourceX,\n sourceY: sourceY,\n targetX: targetX,\n targetY: targetY\n }),\n _getStraightPath2 = _slicedToArray(_getStraightPath, 3),\n path = _getStraightPath2[0],\n labelX = _getStraightPath2[1],\n labelY = _getStraightPath2[2];\n\n var _id = params.isInternal ? undefined : id;\n\n return jsx(BaseEdge, {\n id: _id,\n path: path,\n labelX: labelX,\n labelY: labelY,\n label: label,\n labelStyle: labelStyle,\n labelShowBg: labelShowBg,\n labelBgStyle: labelBgStyle,\n labelBgPadding: labelBgPadding,\n labelBgBorderRadius: labelBgBorderRadius,\n style: style,\n markerEnd: markerEnd,\n markerStart: markerStart,\n interactionWidth: interactionWidth\n });\n });\n}\n\nvar StraightEdge = createStraightEdge({\n isInternal: false\n});\nvar StraightEdgeInternal = createStraightEdge({\n isInternal: true\n});\nStraightEdge.displayName = 'StraightEdge';\nStraightEdgeInternal.displayName = 'StraightEdgeInternal';\n\nfunction createBezierEdge(params) {\n // eslint-disable-next-line react/display-name\n return memo(function (_ref39) {\n var id = _ref39.id,\n sourceX = _ref39.sourceX,\n sourceY = _ref39.sourceY,\n targetX = _ref39.targetX,\n targetY = _ref39.targetY,\n _ref39$sourcePosition = _ref39.sourcePosition,\n sourcePosition = _ref39$sourcePosition === void 0 ? Position.Bottom : _ref39$sourcePosition,\n _ref39$targetPosition = _ref39.targetPosition,\n targetPosition = _ref39$targetPosition === void 0 ? Position.Top : _ref39$targetPosition,\n label = _ref39.label,\n labelStyle = _ref39.labelStyle,\n labelShowBg = _ref39.labelShowBg,\n labelBgStyle = _ref39.labelBgStyle,\n labelBgPadding = _ref39.labelBgPadding,\n labelBgBorderRadius = _ref39.labelBgBorderRadius,\n style = _ref39.style,\n markerEnd = _ref39.markerEnd,\n markerStart = _ref39.markerStart,\n pathOptions = _ref39.pathOptions,\n interactionWidth = _ref39.interactionWidth;\n\n var _getBezierPath = getBezierPath({\n sourceX: sourceX,\n sourceY: sourceY,\n sourcePosition: sourcePosition,\n targetX: targetX,\n targetY: targetY,\n targetPosition: targetPosition,\n curvature: pathOptions === null || pathOptions === void 0 ? void 0 : pathOptions.curvature\n }),\n _getBezierPath2 = _slicedToArray(_getBezierPath, 3),\n path = _getBezierPath2[0],\n labelX = _getBezierPath2[1],\n labelY = _getBezierPath2[2];\n\n var _id = params.isInternal ? undefined : id;\n\n return jsx(BaseEdge, {\n id: _id,\n path: path,\n labelX: labelX,\n labelY: labelY,\n label: label,\n labelStyle: labelStyle,\n labelShowBg: labelShowBg,\n labelBgStyle: labelBgStyle,\n labelBgPadding: labelBgPadding,\n labelBgBorderRadius: labelBgBorderRadius,\n style: style,\n markerEnd: markerEnd,\n markerStart: markerStart,\n interactionWidth: interactionWidth\n });\n });\n}\n\nvar BezierEdge = createBezierEdge({\n isInternal: false\n});\nvar BezierEdgeInternal = createBezierEdge({\n isInternal: true\n});\nBezierEdge.displayName = 'BezierEdge';\nBezierEdgeInternal.displayName = 'BezierEdgeInternal';\nvar builtinEdgeTypes = {\n default: BezierEdgeInternal,\n straight: StraightEdgeInternal,\n step: StepEdgeInternal,\n smoothstep: SmoothStepEdgeInternal,\n simplebezier: SimpleBezierEdgeInternal\n};\nvar nullPosition = {\n sourceX: null,\n sourceY: null,\n targetX: null,\n targetY: null,\n sourcePosition: null,\n targetPosition: null\n};\n\nvar shiftX = function shiftX(x, shift, position) {\n if (position === Position.Left) return x - shift;\n if (position === Position.Right) return x + shift;\n return x;\n};\n\nvar shiftY = function shiftY(y, shift, position) {\n if (position === Position.Top) return y - shift;\n if (position === Position.Bottom) return y + shift;\n return y;\n};\n\nvar EdgeUpdaterClassName = 'react-flow__edgeupdater';\n\nfunction EdgeAnchor(_ref40) {\n var position = _ref40.position,\n centerX = _ref40.centerX,\n centerY = _ref40.centerY,\n _ref40$radius = _ref40.radius,\n radius = _ref40$radius === void 0 ? 10 : _ref40$radius,\n onMouseDown = _ref40.onMouseDown,\n onMouseEnter = _ref40.onMouseEnter,\n onMouseOut = _ref40.onMouseOut,\n type = _ref40.type;\n return jsx(\"circle\", {\n onMouseDown: onMouseDown,\n onMouseEnter: onMouseEnter,\n onMouseOut: onMouseOut,\n className: cc([EdgeUpdaterClassName, \"\".concat(EdgeUpdaterClassName, \"-\").concat(type)]),\n cx: shiftX(centerX, radius, position),\n cy: shiftY(centerY, radius, position),\n r: radius,\n stroke: \"transparent\",\n fill: \"transparent\"\n });\n}\n\nfunction EdgeUpdateAnchors(_ref41) {\n var isReconnectable = _ref41.isReconnectable,\n reconnectRadius = _ref41.reconnectRadius,\n edge = _ref41.edge,\n sourceX = _ref41.sourceX,\n sourceY = _ref41.sourceY,\n targetX = _ref41.targetX,\n targetY = _ref41.targetY,\n sourcePosition = _ref41.sourcePosition,\n targetPosition = _ref41.targetPosition,\n onReconnect = _ref41.onReconnect,\n onReconnectStart = _ref41.onReconnectStart,\n onReconnectEnd = _ref41.onReconnectEnd,\n setReconnecting = _ref41.setReconnecting,\n setUpdateHover = _ref41.setUpdateHover;\n var store = useStoreApi();\n\n var handleEdgeUpdater = function handleEdgeUpdater(event, oppositeHandle) {\n // avoid triggering edge updater if mouse btn is not left\n if (event.button !== 0) {\n return;\n }\n\n var _store$getState33 = store.getState(),\n autoPanOnConnect = _store$getState33.autoPanOnConnect,\n domNode = _store$getState33.domNode,\n isValidConnection = _store$getState33.isValidConnection,\n connectionMode = _store$getState33.connectionMode,\n connectionRadius = _store$getState33.connectionRadius,\n lib = _store$getState33.lib,\n onConnectStart = _store$getState33.onConnectStart,\n onConnectEnd = _store$getState33.onConnectEnd,\n cancelConnection = _store$getState33.cancelConnection,\n nodeLookup = _store$getState33.nodeLookup,\n flowId = _store$getState33.rfId,\n panBy = _store$getState33.panBy,\n updateConnection = _store$getState33.updateConnection;\n\n var isTarget = oppositeHandle.type === 'target';\n setReconnecting(true);\n onReconnectStart === null || onReconnectStart === void 0 ? void 0 : onReconnectStart(event, edge, oppositeHandle.type);\n\n var _onReconnectEnd = function _onReconnectEnd(evt, connectionState) {\n setReconnecting(false);\n onReconnectEnd === null || onReconnectEnd === void 0 ? void 0 : onReconnectEnd(evt, edge, oppositeHandle.type, connectionState);\n };\n\n var onConnectEdge = function onConnectEdge(connection) {\n return onReconnect === null || onReconnect === void 0 ? void 0 : onReconnect(edge, connection);\n };\n\n XYHandle.onPointerDown(event.nativeEvent, {\n autoPanOnConnect: autoPanOnConnect,\n connectionMode: connectionMode,\n connectionRadius: connectionRadius,\n domNode: domNode,\n handleId: oppositeHandle.id,\n nodeId: oppositeHandle.nodeId,\n nodeLookup: nodeLookup,\n isTarget: isTarget,\n edgeUpdaterType: oppositeHandle.type,\n lib: lib,\n flowId: flowId,\n cancelConnection: cancelConnection,\n panBy: panBy,\n isValidConnection: isValidConnection,\n onConnect: onConnectEdge,\n onConnectStart: onConnectStart,\n onConnectEnd: onConnectEnd,\n onReconnectEnd: _onReconnectEnd,\n updateConnection: updateConnection,\n getTransform: function getTransform() {\n return store.getState().transform;\n },\n getFromHandle: function getFromHandle() {\n return store.getState().connection.fromHandle;\n }\n });\n };\n\n var onReconnectSourceMouseDown = function onReconnectSourceMouseDown(event) {\n var _edge$targetHandle;\n\n return handleEdgeUpdater(event, {\n nodeId: edge.target,\n id: (_edge$targetHandle = edge.targetHandle) !== null && _edge$targetHandle !== void 0 ? _edge$targetHandle : null,\n type: 'target'\n });\n };\n\n var onReconnectTargetMouseDown = function onReconnectTargetMouseDown(event) {\n var _edge$sourceHandle;\n\n return handleEdgeUpdater(event, {\n nodeId: edge.source,\n id: (_edge$sourceHandle = edge.sourceHandle) !== null && _edge$sourceHandle !== void 0 ? _edge$sourceHandle : null,\n type: 'source'\n });\n };\n\n var onReconnectMouseEnter = function onReconnectMouseEnter() {\n return setUpdateHover(true);\n };\n\n var onReconnectMouseOut = function onReconnectMouseOut() {\n return setUpdateHover(false);\n };\n\n return jsxs(Fragment, {\n children: [(isReconnectable === true || isReconnectable === 'source') && jsx(EdgeAnchor, {\n position: sourcePosition,\n centerX: sourceX,\n centerY: sourceY,\n radius: reconnectRadius,\n onMouseDown: onReconnectSourceMouseDown,\n onMouseEnter: onReconnectMouseEnter,\n onMouseOut: onReconnectMouseOut,\n type: \"source\"\n }), (isReconnectable === true || isReconnectable === 'target') && jsx(EdgeAnchor, {\n position: targetPosition,\n centerX: targetX,\n centerY: targetY,\n radius: reconnectRadius,\n onMouseDown: onReconnectTargetMouseDown,\n onMouseEnter: onReconnectMouseEnter,\n onMouseOut: onReconnectMouseOut,\n type: \"target\"\n })]\n });\n}\n\nfunction EdgeWrapper(_ref42) {\n var _edge$deletable;\n\n var id = _ref42.id,\n edgesFocusable = _ref42.edgesFocusable,\n edgesReconnectable = _ref42.edgesReconnectable,\n elementsSelectable = _ref42.elementsSelectable,\n onClick = _ref42.onClick,\n onDoubleClick = _ref42.onDoubleClick,\n onContextMenu = _ref42.onContextMenu,\n onMouseEnter = _ref42.onMouseEnter,\n onMouseMove = _ref42.onMouseMove,\n onMouseLeave = _ref42.onMouseLeave,\n reconnectRadius = _ref42.reconnectRadius,\n onReconnect = _ref42.onReconnect,\n onReconnectStart = _ref42.onReconnectStart,\n onReconnectEnd = _ref42.onReconnectEnd,\n rfId = _ref42.rfId,\n edgeTypes = _ref42.edgeTypes,\n noPanClassName = _ref42.noPanClassName,\n onError = _ref42.onError,\n disableKeyboardA11y = _ref42.disableKeyboardA11y;\n var edge = useStore(function (s) {\n return s.edgeLookup.get(id);\n });\n var defaultEdgeOptions = useStore(function (s) {\n return s.defaultEdgeOptions;\n });\n edge = defaultEdgeOptions ? _objectSpread(_objectSpread({}, defaultEdgeOptions), edge) : edge;\n var edgeType = edge.type || 'default';\n var EdgeComponent = (edgeTypes === null || edgeTypes === void 0 ? void 0 : edgeTypes[edgeType]) || builtinEdgeTypes[edgeType];\n\n if (EdgeComponent === undefined) {\n onError === null || onError === void 0 ? void 0 : onError('011', errorMessages['error011'](edgeType));\n edgeType = 'default';\n EdgeComponent = builtinEdgeTypes.default;\n }\n\n var isFocusable = !!(edge.focusable || edgesFocusable && typeof edge.focusable === 'undefined');\n var isReconnectable = typeof onReconnect !== 'undefined' && (edge.reconnectable || edgesReconnectable && typeof edge.reconnectable === 'undefined');\n var isSelectable = !!(edge.selectable || elementsSelectable && typeof edge.selectable === 'undefined');\n var edgeRef = useRef(null);\n\n var _useState15 = useState(false),\n _useState16 = _slicedToArray(_useState15, 2),\n updateHover = _useState16[0],\n setUpdateHover = _useState16[1];\n\n var _useState17 = useState(false),\n _useState18 = _slicedToArray(_useState17, 2),\n reconnecting = _useState18[0],\n setReconnecting = _useState18[1];\n\n var store = useStoreApi();\n\n var _useStore12 = useStore(useCallback(function (store) {\n var sourceNode = store.nodeLookup.get(edge.source);\n var targetNode = store.nodeLookup.get(edge.target);\n\n if (!sourceNode || !targetNode) {\n return _objectSpread({\n zIndex: edge.zIndex\n }, nullPosition);\n }\n\n var edgePosition = getEdgePosition({\n id: id,\n sourceNode: sourceNode,\n targetNode: targetNode,\n sourceHandle: edge.sourceHandle || null,\n targetHandle: edge.targetHandle || null,\n connectionMode: store.connectionMode,\n onError: onError\n });\n var zIndex = getElevatedEdgeZIndex({\n selected: edge.selected,\n zIndex: edge.zIndex,\n sourceNode: sourceNode,\n targetNode: targetNode,\n elevateOnSelect: store.elevateEdgesOnSelect\n });\n return _objectSpread({\n zIndex: zIndex\n }, edgePosition || nullPosition);\n }, [edge.source, edge.target, edge.sourceHandle, edge.targetHandle, edge.selected, edge.zIndex]), shallow),\n zIndex = _useStore12.zIndex,\n sourceX = _useStore12.sourceX,\n sourceY = _useStore12.sourceY,\n targetX = _useStore12.targetX,\n targetY = _useStore12.targetY,\n sourcePosition = _useStore12.sourcePosition,\n targetPosition = _useStore12.targetPosition;\n\n var markerStartUrl = useMemo(function () {\n return edge.markerStart ? \"url('#\".concat(getMarkerId(edge.markerStart, rfId), \"')\") : undefined;\n }, [edge.markerStart, rfId]);\n var markerEndUrl = useMemo(function () {\n return edge.markerEnd ? \"url('#\".concat(getMarkerId(edge.markerEnd, rfId), \"')\") : undefined;\n }, [edge.markerEnd, rfId]);\n\n if (edge.hidden || sourceX === null || sourceY === null || targetX === null || targetY === null) {\n return null;\n }\n\n var onEdgeClick = function onEdgeClick(event) {\n var _store$getState34 = store.getState(),\n addSelectedEdges = _store$getState34.addSelectedEdges,\n unselectNodesAndEdges = _store$getState34.unselectNodesAndEdges,\n multiSelectionActive = _store$getState34.multiSelectionActive;\n\n if (isSelectable) {\n store.setState({\n nodesSelectionActive: false\n });\n\n if (edge.selected && multiSelectionActive) {\n var _edgeRef$current;\n\n unselectNodesAndEdges({\n nodes: [],\n edges: [edge]\n });\n (_edgeRef$current = edgeRef.current) === null || _edgeRef$current === void 0 ? void 0 : _edgeRef$current.blur();\n } else {\n addSelectedEdges([id]);\n }\n }\n\n if (onClick) {\n onClick(event, edge);\n }\n };\n\n var onEdgeDoubleClick = onDoubleClick ? function (event) {\n onDoubleClick(event, _objectSpread({}, edge));\n } : undefined;\n var onEdgeContextMenu = onContextMenu ? function (event) {\n onContextMenu(event, _objectSpread({}, edge));\n } : undefined;\n var onEdgeMouseEnter = onMouseEnter ? function (event) {\n onMouseEnter(event, _objectSpread({}, edge));\n } : undefined;\n var onEdgeMouseMove = onMouseMove ? function (event) {\n onMouseMove(event, _objectSpread({}, edge));\n } : undefined;\n var onEdgeMouseLeave = onMouseLeave ? function (event) {\n onMouseLeave(event, _objectSpread({}, edge));\n } : undefined;\n\n var onKeyDown = function onKeyDown(event) {\n if (!disableKeyboardA11y && elementSelectionKeys.includes(event.key) && isSelectable) {\n var _store$getState35 = store.getState(),\n unselectNodesAndEdges = _store$getState35.unselectNodesAndEdges,\n addSelectedEdges = _store$getState35.addSelectedEdges;\n\n var unselect = event.key === 'Escape';\n\n if (unselect) {\n var _edgeRef$current2;\n\n (_edgeRef$current2 = edgeRef.current) === null || _edgeRef$current2 === void 0 ? void 0 : _edgeRef$current2.blur();\n unselectNodesAndEdges({\n edges: [edge]\n });\n } else {\n addSelectedEdges([id]);\n }\n }\n };\n\n return jsx(\"svg\", {\n style: {\n zIndex: zIndex\n },\n children: jsxs(\"g\", {\n className: cc(['react-flow__edge', \"react-flow__edge-\".concat(edgeType), edge.className, noPanClassName, {\n selected: edge.selected,\n animated: edge.animated,\n inactive: !isSelectable && !onClick,\n updating: updateHover,\n selectable: isSelectable\n }]),\n onClick: onEdgeClick,\n onDoubleClick: onEdgeDoubleClick,\n onContextMenu: onEdgeContextMenu,\n onMouseEnter: onEdgeMouseEnter,\n onMouseMove: onEdgeMouseMove,\n onMouseLeave: onEdgeMouseLeave,\n onKeyDown: isFocusable ? onKeyDown : undefined,\n tabIndex: isFocusable ? 0 : undefined,\n role: isFocusable ? 'button' : 'img',\n \"data-id\": id,\n \"data-testid\": \"rf__edge-\".concat(id),\n \"aria-label\": edge.ariaLabel === null ? undefined : edge.ariaLabel || \"Edge from \".concat(edge.source, \" to \").concat(edge.target),\n \"aria-describedby\": isFocusable ? \"\".concat(ARIA_EDGE_DESC_KEY, \"-\").concat(rfId) : undefined,\n ref: edgeRef,\n children: [!reconnecting && jsx(EdgeComponent, {\n id: id,\n source: edge.source,\n target: edge.target,\n type: edge.type,\n selected: edge.selected,\n animated: edge.animated,\n selectable: isSelectable,\n deletable: (_edge$deletable = edge.deletable) !== null && _edge$deletable !== void 0 ? _edge$deletable : true,\n label: edge.label,\n labelStyle: edge.labelStyle,\n labelShowBg: edge.labelShowBg,\n labelBgStyle: edge.labelBgStyle,\n labelBgPadding: edge.labelBgPadding,\n labelBgBorderRadius: edge.labelBgBorderRadius,\n sourceX: sourceX,\n sourceY: sourceY,\n targetX: targetX,\n targetY: targetY,\n sourcePosition: sourcePosition,\n targetPosition: targetPosition,\n data: edge.data,\n style: edge.style,\n sourceHandleId: edge.sourceHandle,\n targetHandleId: edge.targetHandle,\n markerStart: markerStartUrl,\n markerEnd: markerEndUrl,\n pathOptions: 'pathOptions' in edge ? edge.pathOptions : undefined,\n interactionWidth: edge.interactionWidth\n }), isReconnectable && jsx(EdgeUpdateAnchors, {\n edge: edge,\n isReconnectable: isReconnectable,\n reconnectRadius: reconnectRadius,\n onReconnect: onReconnect,\n onReconnectStart: onReconnectStart,\n onReconnectEnd: onReconnectEnd,\n sourceX: sourceX,\n sourceY: sourceY,\n targetX: targetX,\n targetY: targetY,\n sourcePosition: sourcePosition,\n targetPosition: targetPosition,\n setUpdateHover: setUpdateHover,\n setReconnecting: setReconnecting\n })]\n })\n });\n}\n\nvar selector$a = function selector$a(s) {\n return {\n edgesFocusable: s.edgesFocusable,\n edgesReconnectable: s.edgesReconnectable,\n elementsSelectable: s.elementsSelectable,\n connectionMode: s.connectionMode,\n onError: s.onError\n };\n};\n\nfunction EdgeRendererComponent(_ref43) {\n var defaultMarkerColor = _ref43.defaultMarkerColor,\n onlyRenderVisibleElements = _ref43.onlyRenderVisibleElements,\n rfId = _ref43.rfId,\n edgeTypes = _ref43.edgeTypes,\n noPanClassName = _ref43.noPanClassName,\n onReconnect = _ref43.onReconnect,\n onEdgeContextMenu = _ref43.onEdgeContextMenu,\n onEdgeMouseEnter = _ref43.onEdgeMouseEnter,\n onEdgeMouseMove = _ref43.onEdgeMouseMove,\n onEdgeMouseLeave = _ref43.onEdgeMouseLeave,\n onEdgeClick = _ref43.onEdgeClick,\n reconnectRadius = _ref43.reconnectRadius,\n onEdgeDoubleClick = _ref43.onEdgeDoubleClick,\n onReconnectStart = _ref43.onReconnectStart,\n onReconnectEnd = _ref43.onReconnectEnd,\n disableKeyboardA11y = _ref43.disableKeyboardA11y;\n\n var _useStore13 = useStore(selector$a, shallow),\n edgesFocusable = _useStore13.edgesFocusable,\n edgesReconnectable = _useStore13.edgesReconnectable,\n elementsSelectable = _useStore13.elementsSelectable,\n onError = _useStore13.onError;\n\n var edgeIds = useVisibleEdgeIds(onlyRenderVisibleElements);\n return jsxs(\"div\", {\n className: \"react-flow__edges\",\n children: [jsx(MarkerDefinitions$1, {\n defaultColor: defaultMarkerColor,\n rfId: rfId\n }), edgeIds.map(function (id) {\n return jsx(EdgeWrapper, {\n id: id,\n edgesFocusable: edgesFocusable,\n edgesReconnectable: edgesReconnectable,\n elementsSelectable: elementsSelectable,\n noPanClassName: noPanClassName,\n onReconnect: onReconnect,\n onContextMenu: onEdgeContextMenu,\n onMouseEnter: onEdgeMouseEnter,\n onMouseMove: onEdgeMouseMove,\n onMouseLeave: onEdgeMouseLeave,\n onClick: onEdgeClick,\n reconnectRadius: reconnectRadius,\n onDoubleClick: onEdgeDoubleClick,\n onReconnectStart: onReconnectStart,\n onReconnectEnd: onReconnectEnd,\n rfId: rfId,\n onError: onError,\n edgeTypes: edgeTypes,\n disableKeyboardA11y: disableKeyboardA11y\n }, id);\n })]\n });\n}\n\nEdgeRendererComponent.displayName = 'EdgeRenderer';\nvar EdgeRenderer = memo(EdgeRendererComponent);\n\nvar selector$9 = function selector$9(s) {\n return \"translate(\".concat(s.transform[0], \"px,\").concat(s.transform[1], \"px) scale(\").concat(s.transform[2], \")\");\n};\n\nfunction Viewport(_ref44) {\n var children = _ref44.children;\n var transform = useStore(selector$9);\n return jsx(\"div\", {\n className: \"react-flow__viewport xyflow__viewport react-flow__container\",\n style: {\n transform: transform\n },\n children: children\n });\n}\n/**\n * Hook for calling onInit handler.\n *\n * @internal\n */\n\n\nfunction useOnInitHandler(onInit) {\n var rfInstance = useReactFlow();\n var isInitialized = useRef(false);\n useEffect(function () {\n if (!isInitialized.current && rfInstance.viewportInitialized && onInit) {\n setTimeout(function () {\n return onInit(rfInstance);\n }, 1);\n isInitialized.current = true;\n }\n }, [onInit, rfInstance.viewportInitialized]);\n}\n\nvar selector$8 = function selector$8(state) {\n var _state$panZoom;\n\n return (_state$panZoom = state.panZoom) === null || _state$panZoom === void 0 ? void 0 : _state$panZoom.syncViewport;\n};\n/**\n * Hook for syncing the viewport with the panzoom instance.\n *\n * @internal\n * @param viewport\n */\n\n\nfunction useViewportSync(viewport) {\n var syncViewport = useStore(selector$8);\n var store = useStoreApi();\n useEffect(function () {\n if (viewport) {\n syncViewport === null || syncViewport === void 0 ? void 0 : syncViewport(viewport);\n store.setState({\n transform: [viewport.x, viewport.y, viewport.zoom]\n });\n }\n }, [viewport, syncViewport]);\n return null;\n}\n\nfunction storeSelector$1(s) {\n return s.connection.inProgress ? _objectSpread(_objectSpread({}, s.connection), {}, {\n to: pointToRendererPoint(s.connection.to, s.transform)\n }) : _objectSpread({}, s.connection);\n}\n\nfunction getSelector(connectionSelector) {\n if (connectionSelector) {\n var combinedSelector = function combinedSelector(s) {\n var connection = storeSelector$1(s);\n return connectionSelector(connection);\n };\n\n return combinedSelector;\n }\n\n return storeSelector$1;\n}\n/**\n * Hook for accessing the connection state.\n *\n * @public\n * @returns ConnectionState\n */\n\n\nfunction useConnection(connectionSelector) {\n var combinedSelector = getSelector(connectionSelector);\n return useStore(combinedSelector, shallow);\n}\n\nvar selector$7 = function selector$7(s) {\n return {\n nodesConnectable: s.nodesConnectable,\n isValid: s.connection.isValid,\n inProgress: s.connection.inProgress,\n width: s.width,\n height: s.height\n };\n};\n\nfunction ConnectionLineWrapper(_ref45) {\n var containerStyle = _ref45.containerStyle,\n style = _ref45.style,\n type = _ref45.type,\n component = _ref45.component;\n\n var _useStore14 = useStore(selector$7, shallow),\n nodesConnectable = _useStore14.nodesConnectable,\n width = _useStore14.width,\n height = _useStore14.height,\n isValid = _useStore14.isValid,\n inProgress = _useStore14.inProgress;\n\n var renderConnection = !!(width && nodesConnectable && inProgress);\n\n if (!renderConnection) {\n return null;\n }\n\n return jsx(\"svg\", {\n style: containerStyle,\n width: width,\n height: height,\n className: \"react-flow__connectionline react-flow__container\",\n children: jsx(\"g\", {\n className: cc(['react-flow__connection', getConnectionStatus(isValid)]),\n children: jsx(ConnectionLine, {\n style: style,\n type: type,\n CustomComponent: component,\n isValid: isValid\n })\n })\n });\n}\n\nvar ConnectionLine = function ConnectionLine(_ref46) {\n var style = _ref46.style,\n _ref46$type = _ref46.type,\n type = _ref46$type === void 0 ? ConnectionLineType.Bezier : _ref46$type,\n CustomComponent = _ref46.CustomComponent,\n isValid = _ref46.isValid;\n\n var _useConnection = useConnection(),\n inProgress = _useConnection.inProgress,\n from = _useConnection.from,\n fromNode = _useConnection.fromNode,\n fromHandle = _useConnection.fromHandle,\n fromPosition = _useConnection.fromPosition,\n to = _useConnection.to,\n toNode = _useConnection.toNode,\n toHandle = _useConnection.toHandle,\n toPosition = _useConnection.toPosition;\n\n if (!inProgress) {\n return;\n }\n\n if (CustomComponent) {\n return jsx(CustomComponent, {\n connectionLineType: type,\n connectionLineStyle: style,\n fromNode: fromNode,\n fromHandle: fromHandle,\n fromX: from.x,\n fromY: from.y,\n toX: to.x,\n toY: to.y,\n fromPosition: fromPosition,\n toPosition: toPosition,\n connectionStatus: getConnectionStatus(isValid),\n toNode: toNode,\n toHandle: toHandle\n });\n }\n\n var path = '';\n var pathParams = {\n sourceX: from.x,\n sourceY: from.y,\n sourcePosition: fromPosition,\n targetX: to.x,\n targetY: to.y,\n targetPosition: toPosition\n };\n\n switch (type) {\n case ConnectionLineType.Bezier:\n var _getBezierPath3 = getBezierPath(pathParams);\n\n var _getBezierPath4 = _slicedToArray(_getBezierPath3, 1);\n\n path = _getBezierPath4[0];\n break;\n\n case ConnectionLineType.SimpleBezier:\n var _getSimpleBezierPath3 = getSimpleBezierPath(pathParams);\n\n var _getSimpleBezierPath4 = _slicedToArray(_getSimpleBezierPath3, 1);\n\n path = _getSimpleBezierPath4[0];\n break;\n\n case ConnectionLineType.Step:\n var _getSmoothStepPath3 = getSmoothStepPath(_objectSpread(_objectSpread({}, pathParams), {}, {\n borderRadius: 0\n }));\n\n var _getSmoothStepPath4 = _slicedToArray(_getSmoothStepPath3, 1);\n\n path = _getSmoothStepPath4[0];\n break;\n\n case ConnectionLineType.SmoothStep:\n var _getSmoothStepPath5 = getSmoothStepPath(pathParams);\n\n var _getSmoothStepPath6 = _slicedToArray(_getSmoothStepPath5, 1);\n\n path = _getSmoothStepPath6[0];\n break;\n\n default:\n var _getStraightPath3 = getStraightPath(pathParams);\n\n var _getStraightPath4 = _slicedToArray(_getStraightPath3, 1);\n\n path = _getStraightPath4[0];\n }\n\n return jsx(\"path\", {\n d: path,\n fill: \"none\",\n className: \"react-flow__connection-path\",\n style: style\n });\n};\n\nConnectionLine.displayName = 'ConnectionLine';\nvar emptyTypes = {}; // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\nfunction useNodeOrEdgeTypesWarning() {\n var nodeOrEdgeTypes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : emptyTypes;\n var typesRef = useRef(nodeOrEdgeTypes);\n var store = useStoreApi();\n useEffect(function () {\n if (process.env.NODE_ENV === 'development') {\n var usedKeys = new Set([].concat(_toConsumableArray(Object.keys(typesRef.current)), _toConsumableArray(Object.keys(nodeOrEdgeTypes))));\n\n var _iterator17 = _createForOfIteratorHelper(usedKeys),\n _step17;\n\n try {\n for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {\n var key = _step17.value;\n\n if (typesRef.current[key] !== nodeOrEdgeTypes[key]) {\n var _store$getState$onErr4, _store$getState36;\n\n (_store$getState$onErr4 = (_store$getState36 = store.getState()).onError) === null || _store$getState$onErr4 === void 0 ? void 0 : _store$getState$onErr4.call(_store$getState36, '002', errorMessages['error002']());\n break;\n }\n }\n } catch (err) {\n _iterator17.e(err);\n } finally {\n _iterator17.f();\n }\n\n typesRef.current = nodeOrEdgeTypes;\n }\n }, [nodeOrEdgeTypes]);\n}\n\nfunction useStylesLoadedWarning() {\n var store = useStoreApi();\n var checked = useRef(false);\n useEffect(function () {\n if (process.env.NODE_ENV === 'development') {\n if (!checked.current) {\n var pane = document.querySelector('.react-flow__pane');\n\n if (pane && !(window.getComputedStyle(pane).zIndex === '1')) {\n var _store$getState$onErr5, _store$getState37;\n\n (_store$getState$onErr5 = (_store$getState37 = store.getState()).onError) === null || _store$getState$onErr5 === void 0 ? void 0 : _store$getState$onErr5.call(_store$getState37, '013', errorMessages['error013']('react'));\n }\n\n checked.current = true;\n }\n }\n }, []);\n}\n\nfunction GraphViewComponent(_ref47) {\n var nodeTypes = _ref47.nodeTypes,\n edgeTypes = _ref47.edgeTypes,\n onInit = _ref47.onInit,\n onNodeClick = _ref47.onNodeClick,\n onEdgeClick = _ref47.onEdgeClick,\n onNodeDoubleClick = _ref47.onNodeDoubleClick,\n onEdgeDoubleClick = _ref47.onEdgeDoubleClick,\n onNodeMouseEnter = _ref47.onNodeMouseEnter,\n onNodeMouseMove = _ref47.onNodeMouseMove,\n onNodeMouseLeave = _ref47.onNodeMouseLeave,\n onNodeContextMenu = _ref47.onNodeContextMenu,\n onSelectionContextMenu = _ref47.onSelectionContextMenu,\n onSelectionStart = _ref47.onSelectionStart,\n onSelectionEnd = _ref47.onSelectionEnd,\n connectionLineType = _ref47.connectionLineType,\n connectionLineStyle = _ref47.connectionLineStyle,\n connectionLineComponent = _ref47.connectionLineComponent,\n connectionLineContainerStyle = _ref47.connectionLineContainerStyle,\n selectionKeyCode = _ref47.selectionKeyCode,\n selectionOnDrag = _ref47.selectionOnDrag,\n selectionMode = _ref47.selectionMode,\n multiSelectionKeyCode = _ref47.multiSelectionKeyCode,\n panActivationKeyCode = _ref47.panActivationKeyCode,\n zoomActivationKeyCode = _ref47.zoomActivationKeyCode,\n deleteKeyCode = _ref47.deleteKeyCode,\n onlyRenderVisibleElements = _ref47.onlyRenderVisibleElements,\n elementsSelectable = _ref47.elementsSelectable,\n defaultViewport = _ref47.defaultViewport,\n translateExtent = _ref47.translateExtent,\n minZoom = _ref47.minZoom,\n maxZoom = _ref47.maxZoom,\n preventScrolling = _ref47.preventScrolling,\n defaultMarkerColor = _ref47.defaultMarkerColor,\n zoomOnScroll = _ref47.zoomOnScroll,\n zoomOnPinch = _ref47.zoomOnPinch,\n panOnScroll = _ref47.panOnScroll,\n panOnScrollSpeed = _ref47.panOnScrollSpeed,\n panOnScrollMode = _ref47.panOnScrollMode,\n zoomOnDoubleClick = _ref47.zoomOnDoubleClick,\n panOnDrag = _ref47.panOnDrag,\n onPaneClick = _ref47.onPaneClick,\n onPaneMouseEnter = _ref47.onPaneMouseEnter,\n onPaneMouseMove = _ref47.onPaneMouseMove,\n onPaneMouseLeave = _ref47.onPaneMouseLeave,\n onPaneScroll = _ref47.onPaneScroll,\n onPaneContextMenu = _ref47.onPaneContextMenu,\n paneClickDistance = _ref47.paneClickDistance,\n nodeClickDistance = _ref47.nodeClickDistance,\n onEdgeContextMenu = _ref47.onEdgeContextMenu,\n onEdgeMouseEnter = _ref47.onEdgeMouseEnter,\n onEdgeMouseMove = _ref47.onEdgeMouseMove,\n onEdgeMouseLeave = _ref47.onEdgeMouseLeave,\n reconnectRadius = _ref47.reconnectRadius,\n onReconnect = _ref47.onReconnect,\n onReconnectStart = _ref47.onReconnectStart,\n onReconnectEnd = _ref47.onReconnectEnd,\n noDragClassName = _ref47.noDragClassName,\n noWheelClassName = _ref47.noWheelClassName,\n noPanClassName = _ref47.noPanClassName,\n disableKeyboardA11y = _ref47.disableKeyboardA11y,\n nodeExtent = _ref47.nodeExtent,\n rfId = _ref47.rfId,\n viewport = _ref47.viewport,\n onViewportChange = _ref47.onViewportChange;\n useNodeOrEdgeTypesWarning(nodeTypes);\n useNodeOrEdgeTypesWarning(edgeTypes);\n useStylesLoadedWarning();\n useOnInitHandler(onInit);\n useViewportSync(viewport);\n return jsx(FlowRenderer, {\n onPaneClick: onPaneClick,\n onPaneMouseEnter: onPaneMouseEnter,\n onPaneMouseMove: onPaneMouseMove,\n onPaneMouseLeave: onPaneMouseLeave,\n onPaneContextMenu: onPaneContextMenu,\n onPaneScroll: onPaneScroll,\n paneClickDistance: paneClickDistance,\n deleteKeyCode: deleteKeyCode,\n selectionKeyCode: selectionKeyCode,\n selectionOnDrag: selectionOnDrag,\n selectionMode: selectionMode,\n onSelectionStart: onSelectionStart,\n onSelectionEnd: onSelectionEnd,\n multiSelectionKeyCode: multiSelectionKeyCode,\n panActivationKeyCode: panActivationKeyCode,\n zoomActivationKeyCode: zoomActivationKeyCode,\n elementsSelectable: elementsSelectable,\n zoomOnScroll: zoomOnScroll,\n zoomOnPinch: zoomOnPinch,\n zoomOnDoubleClick: zoomOnDoubleClick,\n panOnScroll: panOnScroll,\n panOnScrollSpeed: panOnScrollSpeed,\n panOnScrollMode: panOnScrollMode,\n panOnDrag: panOnDrag,\n defaultViewport: defaultViewport,\n translateExtent: translateExtent,\n minZoom: minZoom,\n maxZoom: maxZoom,\n onSelectionContextMenu: onSelectionContextMenu,\n preventScrolling: preventScrolling,\n noDragClassName: noDragClassName,\n noWheelClassName: noWheelClassName,\n noPanClassName: noPanClassName,\n disableKeyboardA11y: disableKeyboardA11y,\n onViewportChange: onViewportChange,\n isControlledViewport: !!viewport,\n children: jsxs(Viewport, {\n children: [jsx(EdgeRenderer, {\n edgeTypes: edgeTypes,\n onEdgeClick: onEdgeClick,\n onEdgeDoubleClick: onEdgeDoubleClick,\n onReconnect: onReconnect,\n onReconnectStart: onReconnectStart,\n onReconnectEnd: onReconnectEnd,\n onlyRenderVisibleElements: onlyRenderVisibleElements,\n onEdgeContextMenu: onEdgeContextMenu,\n onEdgeMouseEnter: onEdgeMouseEnter,\n onEdgeMouseMove: onEdgeMouseMove,\n onEdgeMouseLeave: onEdgeMouseLeave,\n reconnectRadius: reconnectRadius,\n defaultMarkerColor: defaultMarkerColor,\n noPanClassName: noPanClassName,\n disableKeyboardA11y: disableKeyboardA11y,\n rfId: rfId\n }), jsx(ConnectionLineWrapper, {\n style: connectionLineStyle,\n type: connectionLineType,\n component: connectionLineComponent,\n containerStyle: connectionLineContainerStyle\n }), jsx(\"div\", {\n className: \"react-flow__edgelabel-renderer\"\n }), jsx(NodeRenderer, {\n nodeTypes: nodeTypes,\n onNodeClick: onNodeClick,\n onNodeDoubleClick: onNodeDoubleClick,\n onNodeMouseEnter: onNodeMouseEnter,\n onNodeMouseMove: onNodeMouseMove,\n onNodeMouseLeave: onNodeMouseLeave,\n onNodeContextMenu: onNodeContextMenu,\n nodeClickDistance: nodeClickDistance,\n onlyRenderVisibleElements: onlyRenderVisibleElements,\n noPanClassName: noPanClassName,\n noDragClassName: noDragClassName,\n disableKeyboardA11y: disableKeyboardA11y,\n nodeExtent: nodeExtent,\n rfId: rfId\n }), jsx(\"div\", {\n className: \"react-flow__viewport-portal\"\n })]\n })\n });\n}\n\nGraphViewComponent.displayName = 'GraphView';\nvar GraphView = memo(GraphViewComponent);\n\nvar getInitialState = function getInitialState() {\n var _ref49, _ref50;\n\n var _ref48 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n nodes = _ref48.nodes,\n edges = _ref48.edges,\n defaultNodes = _ref48.defaultNodes,\n defaultEdges = _ref48.defaultEdges,\n width = _ref48.width,\n height = _ref48.height,\n fitView = _ref48.fitView,\n nodeOrigin = _ref48.nodeOrigin,\n nodeExtent = _ref48.nodeExtent;\n\n var nodeLookup = new Map();\n var parentLookup = new Map();\n var connectionLookup = new Map();\n var edgeLookup = new Map();\n var storeEdges = (_ref49 = defaultEdges !== null && defaultEdges !== void 0 ? defaultEdges : edges) !== null && _ref49 !== void 0 ? _ref49 : [];\n var storeNodes = (_ref50 = defaultNodes !== null && defaultNodes !== void 0 ? defaultNodes : nodes) !== null && _ref50 !== void 0 ? _ref50 : [];\n var storeNodeOrigin = nodeOrigin !== null && nodeOrigin !== void 0 ? nodeOrigin : [0, 0];\n var storeNodeExtent = nodeExtent !== null && nodeExtent !== void 0 ? nodeExtent : infiniteExtent;\n updateConnectionLookup(connectionLookup, edgeLookup, storeEdges);\n adoptUserNodes(storeNodes, nodeLookup, parentLookup, {\n nodeOrigin: storeNodeOrigin,\n nodeExtent: storeNodeExtent,\n elevateNodesOnSelect: false\n });\n var transform = [0, 0, 1];\n\n if (fitView && width && height) {\n var bounds = getInternalNodesBounds(nodeLookup, {\n filter: function filter(node) {\n return !!((node.width || node.initialWidth) && (node.height || node.initialHeight));\n }\n });\n\n var _getViewportForBounds = getViewportForBounds(bounds, width, height, 0.5, 2, 0.1),\n x = _getViewportForBounds.x,\n y = _getViewportForBounds.y,\n zoom = _getViewportForBounds.zoom;\n\n transform = [x, y, zoom];\n }\n\n return {\n rfId: '1',\n width: 0,\n height: 0,\n transform: transform,\n nodes: storeNodes,\n nodeLookup: nodeLookup,\n parentLookup: parentLookup,\n edges: storeEdges,\n edgeLookup: edgeLookup,\n connectionLookup: connectionLookup,\n onNodesChange: null,\n onEdgesChange: null,\n hasDefaultNodes: defaultNodes !== undefined,\n hasDefaultEdges: defaultEdges !== undefined,\n panZoom: null,\n minZoom: 0.5,\n maxZoom: 2,\n translateExtent: infiniteExtent,\n nodeExtent: storeNodeExtent,\n nodesSelectionActive: false,\n userSelectionActive: false,\n userSelectionRect: null,\n connectionMode: ConnectionMode.Strict,\n domNode: null,\n paneDragging: false,\n noPanClassName: 'nopan',\n nodeOrigin: storeNodeOrigin,\n nodeDragThreshold: 1,\n snapGrid: [15, 15],\n snapToGrid: false,\n nodesDraggable: true,\n nodesConnectable: true,\n nodesFocusable: true,\n edgesFocusable: true,\n edgesReconnectable: true,\n elementsSelectable: true,\n elevateNodesOnSelect: true,\n elevateEdgesOnSelect: false,\n fitViewOnInit: false,\n fitViewDone: false,\n fitViewOnInitOptions: undefined,\n selectNodesOnDrag: true,\n multiSelectionActive: false,\n connection: _objectSpread({}, initialConnection),\n connectionClickStartHandle: null,\n connectOnClick: true,\n ariaLiveMessage: '',\n autoPanOnConnect: true,\n autoPanOnNodeDrag: true,\n autoPanSpeed: 15,\n connectionRadius: 20,\n onError: devWarn,\n isValidConnection: undefined,\n onSelectionChangeHandlers: [],\n lib: 'react',\n debug: false\n };\n};\n\nvar createStore = function createStore(_ref51) {\n var nodes = _ref51.nodes,\n edges = _ref51.edges,\n defaultNodes = _ref51.defaultNodes,\n defaultEdges = _ref51.defaultEdges,\n width = _ref51.width,\n height = _ref51.height,\n fitView$1 = _ref51.fitView,\n nodeOrigin = _ref51.nodeOrigin,\n nodeExtent = _ref51.nodeExtent;\n return createWithEqualityFn(function (set, get) {\n return _objectSpread(_objectSpread({}, getInitialState({\n nodes: nodes,\n edges: edges,\n width: width,\n height: height,\n fitView: fitView$1,\n nodeOrigin: nodeOrigin,\n nodeExtent: nodeExtent,\n defaultNodes: defaultNodes,\n defaultEdges: defaultEdges\n })), {}, {\n setNodes: function setNodes(nodes) {\n var _get = get(),\n nodeLookup = _get.nodeLookup,\n parentLookup = _get.parentLookup,\n nodeOrigin = _get.nodeOrigin,\n elevateNodesOnSelect = _get.elevateNodesOnSelect; // setNodes() is called exclusively in response to user actions:\n // - either when the `` prop is updated in the controlled ReactFlow setup,\n // - or when the user calls something like `reactFlowInstance.setNodes()` in an uncontrolled ReactFlow setup.\n //\n // When this happens, we take the note objects passed by the user and extend them with fields\n // relevant for internal React Flow operations.\n\n\n adoptUserNodes(nodes, nodeLookup, parentLookup, {\n nodeOrigin: nodeOrigin,\n nodeExtent: nodeExtent,\n elevateNodesOnSelect: elevateNodesOnSelect,\n checkEquality: true\n });\n set({\n nodes: nodes\n });\n },\n setEdges: function setEdges(edges) {\n var _get2 = get(),\n connectionLookup = _get2.connectionLookup,\n edgeLookup = _get2.edgeLookup;\n\n updateConnectionLookup(connectionLookup, edgeLookup, edges);\n set({\n edges: edges\n });\n },\n setDefaultNodesAndEdges: function setDefaultNodesAndEdges(nodes, edges) {\n if (nodes) {\n var _get3 = get(),\n setNodes = _get3.setNodes;\n\n setNodes(nodes);\n set({\n hasDefaultNodes: true\n });\n }\n\n if (edges) {\n var _get4 = get(),\n setEdges = _get4.setEdges;\n\n setEdges(edges);\n set({\n hasDefaultEdges: true\n });\n }\n },\n // Every node gets registerd at a ResizeObserver. Whenever a node\n // changes its dimensions, this function is called to measure the\n // new dimensions and update the nodes.\n updateNodeInternals: function updateNodeInternals(updates) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n triggerFitView: true\n };\n\n var _get5 = get(),\n triggerNodeChanges = _get5.triggerNodeChanges,\n nodeLookup = _get5.nodeLookup,\n parentLookup = _get5.parentLookup,\n fitViewOnInit = _get5.fitViewOnInit,\n fitViewDone = _get5.fitViewDone,\n fitViewOnInitOptions = _get5.fitViewOnInitOptions,\n domNode = _get5.domNode,\n nodeOrigin = _get5.nodeOrigin,\n nodeExtent = _get5.nodeExtent,\n debug = _get5.debug,\n fitViewSync = _get5.fitViewSync;\n\n var _updateNodeInternals2 = _updateNodeInternals(updates, nodeLookup, parentLookup, domNode, nodeOrigin, nodeExtent),\n changes = _updateNodeInternals2.changes,\n updatedInternals = _updateNodeInternals2.updatedInternals;\n\n if (!updatedInternals) {\n return;\n }\n\n updateAbsolutePositions(nodeLookup, parentLookup, {\n nodeOrigin: nodeOrigin,\n nodeExtent: nodeExtent\n });\n\n if (params.triggerFitView) {\n // we call fitView once initially after all dimensions are set\n var nextFitViewDone = fitViewDone;\n\n if (!fitViewDone && fitViewOnInit) {\n nextFitViewDone = fitViewSync(_objectSpread(_objectSpread({}, fitViewOnInitOptions), {}, {\n nodes: fitViewOnInitOptions === null || fitViewOnInitOptions === void 0 ? void 0 : fitViewOnInitOptions.nodes\n }));\n } // here we are cirmumventing the onNodesChange handler\n // in order to be able to display nodes even if the user\n // has not provided an onNodesChange handler.\n // Nodes are only rendered if they have a width and height\n // attribute which they get from this handler.\n\n\n set({\n fitViewDone: nextFitViewDone\n });\n } else {\n // we always want to trigger useStore calls whenever updateNodeInternals is called\n set({});\n }\n\n if ((changes === null || changes === void 0 ? void 0 : changes.length) > 0) {\n if (debug) {\n console.log('React Flow: trigger node changes', changes);\n }\n\n triggerNodeChanges === null || triggerNodeChanges === void 0 ? void 0 : triggerNodeChanges(changes);\n }\n },\n updateNodePositions: function updateNodePositions(nodeDragItems) {\n var dragging = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var parentExpandChildren = [];\n var changes = [];\n\n var _iterator18 = _createForOfIteratorHelper(nodeDragItems),\n _step18;\n\n try {\n for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {\n var _step18$value = _slicedToArray(_step18.value, 2),\n id = _step18$value[0],\n dragItem = _step18$value[1];\n\n var expandParent = !!(dragItem !== null && dragItem !== void 0 && dragItem.expandParent && dragItem !== null && dragItem !== void 0 && dragItem.parentId && dragItem !== null && dragItem !== void 0 && dragItem.position);\n var change = {\n id: id,\n type: 'position',\n position: expandParent ? {\n x: Math.max(0, dragItem.position.x),\n y: Math.max(0, dragItem.position.y)\n } : dragItem.position,\n dragging: dragging\n };\n\n if (expandParent) {\n parentExpandChildren.push({\n id: id,\n parentId: dragItem.parentId,\n rect: _objectSpread(_objectSpread({}, dragItem.internals.positionAbsolute), {}, {\n width: dragItem.measured.width,\n height: dragItem.measured.height\n })\n });\n }\n\n changes.push(change);\n }\n } catch (err) {\n _iterator18.e(err);\n } finally {\n _iterator18.f();\n }\n\n if (parentExpandChildren.length > 0) {\n var _get6 = get(),\n nodeLookup = _get6.nodeLookup,\n parentLookup = _get6.parentLookup,\n _nodeOrigin = _get6.nodeOrigin;\n\n var parentExpandChanges = handleExpandParent(parentExpandChildren, nodeLookup, parentLookup, _nodeOrigin);\n changes.push.apply(changes, _toConsumableArray(parentExpandChanges));\n }\n\n get().triggerNodeChanges(changes);\n },\n triggerNodeChanges: function triggerNodeChanges(changes) {\n var _get7 = get(),\n onNodesChange = _get7.onNodesChange,\n setNodes = _get7.setNodes,\n nodes = _get7.nodes,\n hasDefaultNodes = _get7.hasDefaultNodes,\n debug = _get7.debug;\n\n if (changes !== null && changes !== void 0 && changes.length) {\n if (hasDefaultNodes) {\n var updatedNodes = applyNodeChanges(changes, nodes);\n setNodes(updatedNodes);\n }\n\n if (debug) {\n console.log('React Flow: trigger node changes', changes);\n }\n\n onNodesChange === null || onNodesChange === void 0 ? void 0 : onNodesChange(changes);\n }\n },\n triggerEdgeChanges: function triggerEdgeChanges(changes) {\n var _get8 = get(),\n onEdgesChange = _get8.onEdgesChange,\n setEdges = _get8.setEdges,\n edges = _get8.edges,\n hasDefaultEdges = _get8.hasDefaultEdges,\n debug = _get8.debug;\n\n if (changes !== null && changes !== void 0 && changes.length) {\n if (hasDefaultEdges) {\n var updatedEdges = applyEdgeChanges(changes, edges);\n setEdges(updatedEdges);\n }\n\n if (debug) {\n console.log('React Flow: trigger edge changes', changes);\n }\n\n onEdgesChange === null || onEdgesChange === void 0 ? void 0 : onEdgesChange(changes);\n }\n },\n addSelectedNodes: function addSelectedNodes(selectedNodeIds) {\n var _get9 = get(),\n multiSelectionActive = _get9.multiSelectionActive,\n edgeLookup = _get9.edgeLookup,\n nodeLookup = _get9.nodeLookup,\n triggerNodeChanges = _get9.triggerNodeChanges,\n triggerEdgeChanges = _get9.triggerEdgeChanges;\n\n if (multiSelectionActive) {\n var nodeChanges = selectedNodeIds.map(function (nodeId) {\n return createSelectionChange(nodeId, true);\n });\n triggerNodeChanges(nodeChanges);\n return;\n }\n\n triggerNodeChanges(getSelectionChanges(nodeLookup, new Set(_toConsumableArray(selectedNodeIds)), true));\n triggerEdgeChanges(getSelectionChanges(edgeLookup));\n },\n addSelectedEdges: function addSelectedEdges(selectedEdgeIds) {\n var _get10 = get(),\n multiSelectionActive = _get10.multiSelectionActive,\n edgeLookup = _get10.edgeLookup,\n nodeLookup = _get10.nodeLookup,\n triggerNodeChanges = _get10.triggerNodeChanges,\n triggerEdgeChanges = _get10.triggerEdgeChanges;\n\n if (multiSelectionActive) {\n var changedEdges = selectedEdgeIds.map(function (edgeId) {\n return createSelectionChange(edgeId, true);\n });\n triggerEdgeChanges(changedEdges);\n return;\n }\n\n triggerEdgeChanges(getSelectionChanges(edgeLookup, new Set(_toConsumableArray(selectedEdgeIds))));\n triggerNodeChanges(getSelectionChanges(nodeLookup, new Set(), true));\n },\n unselectNodesAndEdges: function unselectNodesAndEdges() {\n var _ref52 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n nodes = _ref52.nodes,\n edges = _ref52.edges;\n\n var _get11 = get(),\n storeEdges = _get11.edges,\n storeNodes = _get11.nodes,\n nodeLookup = _get11.nodeLookup,\n triggerNodeChanges = _get11.triggerNodeChanges,\n triggerEdgeChanges = _get11.triggerEdgeChanges;\n\n var nodesToUnselect = nodes ? nodes : storeNodes;\n var edgesToUnselect = edges ? edges : storeEdges;\n var nodeChanges = nodesToUnselect.map(function (n) {\n var internalNode = nodeLookup.get(n.id);\n\n if (internalNode) {\n // we need to unselect the internal node that was selected previously before we\n // send the change to the user to prevent it to be selected while dragging the new node\n internalNode.selected = false;\n }\n\n return createSelectionChange(n.id, false);\n });\n var edgeChanges = edgesToUnselect.map(function (edge) {\n return createSelectionChange(edge.id, false);\n });\n triggerNodeChanges(nodeChanges);\n triggerEdgeChanges(edgeChanges);\n },\n setMinZoom: function setMinZoom(minZoom) {\n var _get12 = get(),\n panZoom = _get12.panZoom,\n maxZoom = _get12.maxZoom;\n\n panZoom === null || panZoom === void 0 ? void 0 : panZoom.setScaleExtent([minZoom, maxZoom]);\n set({\n minZoom: minZoom\n });\n },\n setMaxZoom: function setMaxZoom(maxZoom) {\n var _get13 = get(),\n panZoom = _get13.panZoom,\n minZoom = _get13.minZoom;\n\n panZoom === null || panZoom === void 0 ? void 0 : panZoom.setScaleExtent([minZoom, maxZoom]);\n set({\n maxZoom: maxZoom\n });\n },\n setTranslateExtent: function setTranslateExtent(translateExtent) {\n var _get$panZoom;\n\n (_get$panZoom = get().panZoom) === null || _get$panZoom === void 0 ? void 0 : _get$panZoom.setTranslateExtent(translateExtent);\n set({\n translateExtent: translateExtent\n });\n },\n setPaneClickDistance: function setPaneClickDistance(clickDistance) {\n var _get$panZoom2;\n\n (_get$panZoom2 = get().panZoom) === null || _get$panZoom2 === void 0 ? void 0 : _get$panZoom2.setClickDistance(clickDistance);\n },\n resetSelectedElements: function resetSelectedElements() {\n var _get14 = get(),\n edges = _get14.edges,\n nodes = _get14.nodes,\n triggerNodeChanges = _get14.triggerNodeChanges,\n triggerEdgeChanges = _get14.triggerEdgeChanges;\n\n var nodeChanges = nodes.reduce(function (res, node) {\n return node.selected ? [].concat(_toConsumableArray(res), [createSelectionChange(node.id, false)]) : res;\n }, []);\n var edgeChanges = edges.reduce(function (res, edge) {\n return edge.selected ? [].concat(_toConsumableArray(res), [createSelectionChange(edge.id, false)]) : res;\n }, []);\n triggerNodeChanges(nodeChanges);\n triggerEdgeChanges(edgeChanges);\n },\n setNodeExtent: function setNodeExtent(nextNodeExtent) {\n var _get15 = get(),\n nodes = _get15.nodes,\n nodeLookup = _get15.nodeLookup,\n parentLookup = _get15.parentLookup,\n nodeOrigin = _get15.nodeOrigin,\n elevateNodesOnSelect = _get15.elevateNodesOnSelect,\n nodeExtent = _get15.nodeExtent;\n\n if (nextNodeExtent[0][0] === nodeExtent[0][0] && nextNodeExtent[0][1] === nodeExtent[0][1] && nextNodeExtent[1][0] === nodeExtent[1][0] && nextNodeExtent[1][1] === nodeExtent[1][1]) {\n return;\n }\n\n adoptUserNodes(nodes, nodeLookup, parentLookup, {\n nodeOrigin: nodeOrigin,\n nodeExtent: nextNodeExtent,\n elevateNodesOnSelect: elevateNodesOnSelect,\n checkEquality: false\n });\n set({\n nodeExtent: nextNodeExtent\n });\n },\n panBy: function panBy(delta) {\n var _get16 = get(),\n transform = _get16.transform,\n width = _get16.width,\n height = _get16.height,\n panZoom = _get16.panZoom,\n translateExtent = _get16.translateExtent;\n\n return _panBy({\n delta: delta,\n panZoom: panZoom,\n transform: transform,\n translateExtent: translateExtent,\n width: width,\n height: height\n });\n },\n fitView: function fitView(options) {\n var _get17 = get(),\n panZoom = _get17.panZoom,\n width = _get17.width,\n height = _get17.height,\n minZoom = _get17.minZoom,\n maxZoom = _get17.maxZoom,\n nodeLookup = _get17.nodeLookup;\n\n if (!panZoom) {\n return Promise.resolve(false);\n }\n\n var fitViewNodes = getFitViewNodes(nodeLookup, options);\n return _fitView({\n nodes: fitViewNodes,\n width: width,\n height: height,\n panZoom: panZoom,\n minZoom: minZoom,\n maxZoom: maxZoom\n }, options);\n },\n // we can't call an asnychronous function in updateNodeInternals\n // for that we created this sync version of fitView\n fitViewSync: function fitViewSync(options) {\n var _get18 = get(),\n panZoom = _get18.panZoom,\n width = _get18.width,\n height = _get18.height,\n minZoom = _get18.minZoom,\n maxZoom = _get18.maxZoom,\n nodeLookup = _get18.nodeLookup;\n\n if (!panZoom) {\n return false;\n }\n\n var fitViewNodes = getFitViewNodes(nodeLookup, options);\n\n _fitView({\n nodes: fitViewNodes,\n width: width,\n height: height,\n panZoom: panZoom,\n minZoom: minZoom,\n maxZoom: maxZoom\n }, options);\n\n return fitViewNodes.size > 0;\n },\n cancelConnection: function cancelConnection() {\n set({\n connection: _objectSpread({}, initialConnection)\n });\n },\n updateConnection: function updateConnection(connection) {\n set({\n connection: connection\n });\n },\n reset: function reset() {\n return set(_objectSpread({}, getInitialState()));\n }\n });\n }, Object.is);\n};\n\nfunction ReactFlowProvider(_ref53) {\n var nodes = _ref53.initialNodes,\n edges = _ref53.initialEdges,\n defaultNodes = _ref53.defaultNodes,\n defaultEdges = _ref53.defaultEdges,\n width = _ref53.initialWidth,\n height = _ref53.initialHeight,\n fitView = _ref53.fitView,\n nodeOrigin = _ref53.nodeOrigin,\n nodeExtent = _ref53.nodeExtent,\n children = _ref53.children;\n\n var _useState19 = useState(function () {\n return createStore({\n nodes: nodes,\n edges: edges,\n defaultNodes: defaultNodes,\n defaultEdges: defaultEdges,\n width: width,\n height: height,\n fitView: fitView,\n nodeOrigin: nodeOrigin,\n nodeExtent: nodeExtent\n });\n }),\n _useState20 = _slicedToArray(_useState19, 1),\n store = _useState20[0];\n\n return jsx(Provider$1, {\n value: store,\n children: jsx(BatchProvider, {\n children: children\n })\n });\n}\n\nfunction Wrapper(_ref54) {\n var children = _ref54.children,\n nodes = _ref54.nodes,\n edges = _ref54.edges,\n defaultNodes = _ref54.defaultNodes,\n defaultEdges = _ref54.defaultEdges,\n width = _ref54.width,\n height = _ref54.height,\n fitView = _ref54.fitView,\n nodeOrigin = _ref54.nodeOrigin,\n nodeExtent = _ref54.nodeExtent;\n var isWrapped = useContext(StoreContext);\n\n if (isWrapped) {\n // we need to wrap it with a fragment because it's not allowed for children to be a ReactNode\n // https://github.com/DefinitelyTyped/DefinitelyTyped/issues/18051\n return jsx(Fragment, {\n children: children\n });\n }\n\n return jsx(ReactFlowProvider, {\n initialNodes: nodes,\n initialEdges: edges,\n defaultNodes: defaultNodes,\n defaultEdges: defaultEdges,\n initialWidth: width,\n initialHeight: height,\n fitView: fitView,\n nodeOrigin: nodeOrigin,\n nodeExtent: nodeExtent,\n children: children\n });\n}\n\nvar wrapperStyle = {\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n position: 'relative',\n zIndex: 0\n};\n\nfunction ReactFlow(_ref55, ref) {\n var nodes = _ref55.nodes,\n edges = _ref55.edges,\n defaultNodes = _ref55.defaultNodes,\n defaultEdges = _ref55.defaultEdges,\n className = _ref55.className,\n nodeTypes = _ref55.nodeTypes,\n edgeTypes = _ref55.edgeTypes,\n onNodeClick = _ref55.onNodeClick,\n onEdgeClick = _ref55.onEdgeClick,\n onInit = _ref55.onInit,\n onMove = _ref55.onMove,\n onMoveStart = _ref55.onMoveStart,\n onMoveEnd = _ref55.onMoveEnd,\n onConnect = _ref55.onConnect,\n onConnectStart = _ref55.onConnectStart,\n onConnectEnd = _ref55.onConnectEnd,\n onClickConnectStart = _ref55.onClickConnectStart,\n onClickConnectEnd = _ref55.onClickConnectEnd,\n onNodeMouseEnter = _ref55.onNodeMouseEnter,\n onNodeMouseMove = _ref55.onNodeMouseMove,\n onNodeMouseLeave = _ref55.onNodeMouseLeave,\n onNodeContextMenu = _ref55.onNodeContextMenu,\n onNodeDoubleClick = _ref55.onNodeDoubleClick,\n onNodeDragStart = _ref55.onNodeDragStart,\n onNodeDrag = _ref55.onNodeDrag,\n onNodeDragStop = _ref55.onNodeDragStop,\n onNodesDelete = _ref55.onNodesDelete,\n onEdgesDelete = _ref55.onEdgesDelete,\n onDelete = _ref55.onDelete,\n onSelectionChange = _ref55.onSelectionChange,\n onSelectionDragStart = _ref55.onSelectionDragStart,\n onSelectionDrag = _ref55.onSelectionDrag,\n onSelectionDragStop = _ref55.onSelectionDragStop,\n onSelectionContextMenu = _ref55.onSelectionContextMenu,\n onSelectionStart = _ref55.onSelectionStart,\n onSelectionEnd = _ref55.onSelectionEnd,\n onBeforeDelete = _ref55.onBeforeDelete,\n connectionMode = _ref55.connectionMode,\n _ref55$connectionLine = _ref55.connectionLineType,\n connectionLineType = _ref55$connectionLine === void 0 ? ConnectionLineType.Bezier : _ref55$connectionLine,\n connectionLineStyle = _ref55.connectionLineStyle,\n connectionLineComponent = _ref55.connectionLineComponent,\n connectionLineContainerStyle = _ref55.connectionLineContainerStyle,\n _ref55$deleteKeyCode = _ref55.deleteKeyCode,\n deleteKeyCode = _ref55$deleteKeyCode === void 0 ? 'Backspace' : _ref55$deleteKeyCode,\n _ref55$selectionKeyCo = _ref55.selectionKeyCode,\n selectionKeyCode = _ref55$selectionKeyCo === void 0 ? 'Shift' : _ref55$selectionKeyCo,\n _ref55$selectionOnDra = _ref55.selectionOnDrag,\n selectionOnDrag = _ref55$selectionOnDra === void 0 ? false : _ref55$selectionOnDra,\n _ref55$selectionMode = _ref55.selectionMode,\n selectionMode = _ref55$selectionMode === void 0 ? SelectionMode.Full : _ref55$selectionMode,\n _ref55$panActivationK = _ref55.panActivationKeyCode,\n panActivationKeyCode = _ref55$panActivationK === void 0 ? 'Space' : _ref55$panActivationK,\n _ref55$multiSelection = _ref55.multiSelectionKeyCode,\n multiSelectionKeyCode = _ref55$multiSelection === void 0 ? isMacOs() ? 'Meta' : 'Control' : _ref55$multiSelection,\n _ref55$zoomActivation = _ref55.zoomActivationKeyCode,\n zoomActivationKeyCode = _ref55$zoomActivation === void 0 ? isMacOs() ? 'Meta' : 'Control' : _ref55$zoomActivation,\n snapToGrid = _ref55.snapToGrid,\n snapGrid = _ref55.snapGrid,\n _ref55$onlyRenderVisi = _ref55.onlyRenderVisibleElements,\n onlyRenderVisibleElements = _ref55$onlyRenderVisi === void 0 ? false : _ref55$onlyRenderVisi,\n selectNodesOnDrag = _ref55.selectNodesOnDrag,\n nodesDraggable = _ref55.nodesDraggable,\n nodesConnectable = _ref55.nodesConnectable,\n nodesFocusable = _ref55.nodesFocusable,\n _ref55$nodeOrigin = _ref55.nodeOrigin,\n nodeOrigin = _ref55$nodeOrigin === void 0 ? defaultNodeOrigin : _ref55$nodeOrigin,\n edgesFocusable = _ref55.edgesFocusable,\n edgesReconnectable = _ref55.edgesReconnectable,\n _ref55$elementsSelect = _ref55.elementsSelectable,\n elementsSelectable = _ref55$elementsSelect === void 0 ? true : _ref55$elementsSelect,\n _ref55$defaultViewpor = _ref55.defaultViewport,\n defaultViewport$1 = _ref55$defaultViewpor === void 0 ? defaultViewport : _ref55$defaultViewpor,\n _ref55$minZoom = _ref55.minZoom,\n minZoom = _ref55$minZoom === void 0 ? 0.5 : _ref55$minZoom,\n _ref55$maxZoom = _ref55.maxZoom,\n maxZoom = _ref55$maxZoom === void 0 ? 2 : _ref55$maxZoom,\n _ref55$translateExten = _ref55.translateExtent,\n translateExtent = _ref55$translateExten === void 0 ? infiniteExtent : _ref55$translateExten,\n _ref55$preventScrolli = _ref55.preventScrolling,\n preventScrolling = _ref55$preventScrolli === void 0 ? true : _ref55$preventScrolli,\n nodeExtent = _ref55.nodeExtent,\n _ref55$defaultMarkerC = _ref55.defaultMarkerColor,\n defaultMarkerColor = _ref55$defaultMarkerC === void 0 ? '#b1b1b7' : _ref55$defaultMarkerC,\n _ref55$zoomOnScroll = _ref55.zoomOnScroll,\n zoomOnScroll = _ref55$zoomOnScroll === void 0 ? true : _ref55$zoomOnScroll,\n _ref55$zoomOnPinch = _ref55.zoomOnPinch,\n zoomOnPinch = _ref55$zoomOnPinch === void 0 ? true : _ref55$zoomOnPinch,\n _ref55$panOnScroll = _ref55.panOnScroll,\n panOnScroll = _ref55$panOnScroll === void 0 ? false : _ref55$panOnScroll,\n _ref55$panOnScrollSpe = _ref55.panOnScrollSpeed,\n panOnScrollSpeed = _ref55$panOnScrollSpe === void 0 ? 0.5 : _ref55$panOnScrollSpe,\n _ref55$panOnScrollMod = _ref55.panOnScrollMode,\n panOnScrollMode = _ref55$panOnScrollMod === void 0 ? PanOnScrollMode.Free : _ref55$panOnScrollMod,\n _ref55$zoomOnDoubleCl = _ref55.zoomOnDoubleClick,\n zoomOnDoubleClick = _ref55$zoomOnDoubleCl === void 0 ? true : _ref55$zoomOnDoubleCl,\n _ref55$panOnDrag = _ref55.panOnDrag,\n panOnDrag = _ref55$panOnDrag === void 0 ? true : _ref55$panOnDrag,\n onPaneClick = _ref55.onPaneClick,\n onPaneMouseEnter = _ref55.onPaneMouseEnter,\n onPaneMouseMove = _ref55.onPaneMouseMove,\n onPaneMouseLeave = _ref55.onPaneMouseLeave,\n onPaneScroll = _ref55.onPaneScroll,\n onPaneContextMenu = _ref55.onPaneContextMenu,\n _ref55$paneClickDista = _ref55.paneClickDistance,\n paneClickDistance = _ref55$paneClickDista === void 0 ? 0 : _ref55$paneClickDista,\n _ref55$nodeClickDista = _ref55.nodeClickDistance,\n nodeClickDistance = _ref55$nodeClickDista === void 0 ? 0 : _ref55$nodeClickDista,\n children = _ref55.children,\n onReconnect = _ref55.onReconnect,\n onReconnectStart = _ref55.onReconnectStart,\n onReconnectEnd = _ref55.onReconnectEnd,\n onEdgeContextMenu = _ref55.onEdgeContextMenu,\n onEdgeDoubleClick = _ref55.onEdgeDoubleClick,\n onEdgeMouseEnter = _ref55.onEdgeMouseEnter,\n onEdgeMouseMove = _ref55.onEdgeMouseMove,\n onEdgeMouseLeave = _ref55.onEdgeMouseLeave,\n _ref55$reconnectRadiu = _ref55.reconnectRadius,\n reconnectRadius = _ref55$reconnectRadiu === void 0 ? 10 : _ref55$reconnectRadiu,\n onNodesChange = _ref55.onNodesChange,\n onEdgesChange = _ref55.onEdgesChange,\n _ref55$noDragClassNam = _ref55.noDragClassName,\n noDragClassName = _ref55$noDragClassNam === void 0 ? 'nodrag' : _ref55$noDragClassNam,\n _ref55$noWheelClassNa = _ref55.noWheelClassName,\n noWheelClassName = _ref55$noWheelClassNa === void 0 ? 'nowheel' : _ref55$noWheelClassNa,\n _ref55$noPanClassName = _ref55.noPanClassName,\n noPanClassName = _ref55$noPanClassName === void 0 ? 'nopan' : _ref55$noPanClassName,\n fitView = _ref55.fitView,\n fitViewOptions = _ref55.fitViewOptions,\n connectOnClick = _ref55.connectOnClick,\n attributionPosition = _ref55.attributionPosition,\n proOptions = _ref55.proOptions,\n defaultEdgeOptions = _ref55.defaultEdgeOptions,\n elevateNodesOnSelect = _ref55.elevateNodesOnSelect,\n elevateEdgesOnSelect = _ref55.elevateEdgesOnSelect,\n _ref55$disableKeyboar = _ref55.disableKeyboardA11y,\n disableKeyboardA11y = _ref55$disableKeyboar === void 0 ? false : _ref55$disableKeyboar,\n autoPanOnConnect = _ref55.autoPanOnConnect,\n autoPanOnNodeDrag = _ref55.autoPanOnNodeDrag,\n autoPanSpeed = _ref55.autoPanSpeed,\n connectionRadius = _ref55.connectionRadius,\n isValidConnection = _ref55.isValidConnection,\n onError = _ref55.onError,\n style = _ref55.style,\n id = _ref55.id,\n nodeDragThreshold = _ref55.nodeDragThreshold,\n viewport = _ref55.viewport,\n onViewportChange = _ref55.onViewportChange,\n width = _ref55.width,\n height = _ref55.height,\n _ref55$colorMode = _ref55.colorMode,\n colorMode = _ref55$colorMode === void 0 ? 'light' : _ref55$colorMode,\n debug = _ref55.debug,\n rest = _objectWithoutProperties(_ref55, _excluded6);\n\n var rfId = id || '1';\n var colorModeClassName = useColorModeClass(colorMode);\n return jsx(\"div\", _objectSpread(_objectSpread({\n \"data-testid\": \"rf__wrapper\"\n }, rest), {}, {\n style: _objectSpread(_objectSpread({}, style), wrapperStyle),\n ref: ref,\n className: cc(['react-flow', className, colorModeClassName]),\n id: id,\n children: jsxs(Wrapper, {\n nodes: nodes,\n edges: edges,\n width: width,\n height: height,\n fitView: fitView,\n nodeOrigin: nodeOrigin,\n nodeExtent: nodeExtent,\n children: [jsx(GraphView, {\n onInit: onInit,\n onNodeClick: onNodeClick,\n onEdgeClick: onEdgeClick,\n onNodeMouseEnter: onNodeMouseEnter,\n onNodeMouseMove: onNodeMouseMove,\n onNodeMouseLeave: onNodeMouseLeave,\n onNodeContextMenu: onNodeContextMenu,\n onNodeDoubleClick: onNodeDoubleClick,\n nodeTypes: nodeTypes,\n edgeTypes: edgeTypes,\n connectionLineType: connectionLineType,\n connectionLineStyle: connectionLineStyle,\n connectionLineComponent: connectionLineComponent,\n connectionLineContainerStyle: connectionLineContainerStyle,\n selectionKeyCode: selectionKeyCode,\n selectionOnDrag: selectionOnDrag,\n selectionMode: selectionMode,\n deleteKeyCode: deleteKeyCode,\n multiSelectionKeyCode: multiSelectionKeyCode,\n panActivationKeyCode: panActivationKeyCode,\n zoomActivationKeyCode: zoomActivationKeyCode,\n onlyRenderVisibleElements: onlyRenderVisibleElements,\n defaultViewport: defaultViewport$1,\n translateExtent: translateExtent,\n minZoom: minZoom,\n maxZoom: maxZoom,\n preventScrolling: preventScrolling,\n zoomOnScroll: zoomOnScroll,\n zoomOnPinch: zoomOnPinch,\n zoomOnDoubleClick: zoomOnDoubleClick,\n panOnScroll: panOnScroll,\n panOnScrollSpeed: panOnScrollSpeed,\n panOnScrollMode: panOnScrollMode,\n panOnDrag: panOnDrag,\n onPaneClick: onPaneClick,\n onPaneMouseEnter: onPaneMouseEnter,\n onPaneMouseMove: onPaneMouseMove,\n onPaneMouseLeave: onPaneMouseLeave,\n onPaneScroll: onPaneScroll,\n onPaneContextMenu: onPaneContextMenu,\n paneClickDistance: paneClickDistance,\n nodeClickDistance: nodeClickDistance,\n onSelectionContextMenu: onSelectionContextMenu,\n onSelectionStart: onSelectionStart,\n onSelectionEnd: onSelectionEnd,\n onReconnect: onReconnect,\n onReconnectStart: onReconnectStart,\n onReconnectEnd: onReconnectEnd,\n onEdgeContextMenu: onEdgeContextMenu,\n onEdgeDoubleClick: onEdgeDoubleClick,\n onEdgeMouseEnter: onEdgeMouseEnter,\n onEdgeMouseMove: onEdgeMouseMove,\n onEdgeMouseLeave: onEdgeMouseLeave,\n reconnectRadius: reconnectRadius,\n defaultMarkerColor: defaultMarkerColor,\n noDragClassName: noDragClassName,\n noWheelClassName: noWheelClassName,\n noPanClassName: noPanClassName,\n rfId: rfId,\n disableKeyboardA11y: disableKeyboardA11y,\n nodeExtent: nodeExtent,\n viewport: viewport,\n onViewportChange: onViewportChange\n }), jsx(StoreUpdater, {\n nodes: nodes,\n edges: edges,\n defaultNodes: defaultNodes,\n defaultEdges: defaultEdges,\n onConnect: onConnect,\n onConnectStart: onConnectStart,\n onConnectEnd: onConnectEnd,\n onClickConnectStart: onClickConnectStart,\n onClickConnectEnd: onClickConnectEnd,\n nodesDraggable: nodesDraggable,\n nodesConnectable: nodesConnectable,\n nodesFocusable: nodesFocusable,\n edgesFocusable: edgesFocusable,\n edgesReconnectable: edgesReconnectable,\n elementsSelectable: elementsSelectable,\n elevateNodesOnSelect: elevateNodesOnSelect,\n elevateEdgesOnSelect: elevateEdgesOnSelect,\n minZoom: minZoom,\n maxZoom: maxZoom,\n nodeExtent: nodeExtent,\n onNodesChange: onNodesChange,\n onEdgesChange: onEdgesChange,\n snapToGrid: snapToGrid,\n snapGrid: snapGrid,\n connectionMode: connectionMode,\n translateExtent: translateExtent,\n connectOnClick: connectOnClick,\n defaultEdgeOptions: defaultEdgeOptions,\n fitView: fitView,\n fitViewOptions: fitViewOptions,\n onNodesDelete: onNodesDelete,\n onEdgesDelete: onEdgesDelete,\n onDelete: onDelete,\n onNodeDragStart: onNodeDragStart,\n onNodeDrag: onNodeDrag,\n onNodeDragStop: onNodeDragStop,\n onSelectionDrag: onSelectionDrag,\n onSelectionDragStart: onSelectionDragStart,\n onSelectionDragStop: onSelectionDragStop,\n onMove: onMove,\n onMoveStart: onMoveStart,\n onMoveEnd: onMoveEnd,\n noPanClassName: noPanClassName,\n nodeOrigin: nodeOrigin,\n rfId: rfId,\n autoPanOnConnect: autoPanOnConnect,\n autoPanOnNodeDrag: autoPanOnNodeDrag,\n autoPanSpeed: autoPanSpeed,\n onError: onError,\n connectionRadius: connectionRadius,\n isValidConnection: isValidConnection,\n selectNodesOnDrag: selectNodesOnDrag,\n nodeDragThreshold: nodeDragThreshold,\n onBeforeDelete: onBeforeDelete,\n paneClickDistance: paneClickDistance,\n debug: debug\n }), jsx(SelectionListener, {\n onSelectionChange: onSelectionChange\n }), children, jsx(Attribution, {\n proOptions: proOptions,\n position: attributionPosition\n }), jsx(A11yDescriptions, {\n rfId: rfId,\n disableKeyboardA11y: disableKeyboardA11y\n })]\n })\n }));\n}\n\nvar index = fixedForwardRef(ReactFlow);\n\nvar selector$6 = function selector$6(s) {\n var _s$domNode;\n\n return (_s$domNode = s.domNode) === null || _s$domNode === void 0 ? void 0 : _s$domNode.querySelector('.react-flow__edgelabel-renderer');\n};\n\nfunction EdgeLabelRenderer(_ref56) {\n var children = _ref56.children;\n var edgeLabelRenderer = useStore(selector$6);\n\n if (!edgeLabelRenderer) {\n return null;\n }\n\n return createPortal(children, edgeLabelRenderer);\n}\n\nvar selector$5 = function selector$5(s) {\n var _s$domNode2;\n\n return (_s$domNode2 = s.domNode) === null || _s$domNode2 === void 0 ? void 0 : _s$domNode2.querySelector('.react-flow__viewport-portal');\n};\n\nfunction ViewportPortal(_ref57) {\n var children = _ref57.children;\n var viewPortalDiv = useStore(selector$5);\n\n if (!viewPortalDiv) {\n return null;\n }\n\n return createPortal(children, viewPortalDiv);\n}\n/**\n * Hook for updating node internals.\n *\n * @public\n * @returns function for updating node internals\n */\n\n\nfunction useUpdateNodeInternals() {\n var store = useStoreApi();\n return useCallback(function (id) {\n var _store$getState38 = store.getState(),\n domNode = _store$getState38.domNode,\n updateNodeInternals = _store$getState38.updateNodeInternals;\n\n var updateIds = Array.isArray(id) ? id : [id];\n var updates = new Map();\n updateIds.forEach(function (updateId) {\n var nodeElement = domNode === null || domNode === void 0 ? void 0 : domNode.querySelector(\".react-flow__node[data-id=\\\"\".concat(updateId, \"\\\"]\"));\n\n if (nodeElement) {\n updates.set(updateId, {\n id: updateId,\n nodeElement: nodeElement,\n force: true\n });\n }\n });\n requestAnimationFrame(function () {\n return updateNodeInternals(updates, {\n triggerFitView: false\n });\n });\n }, []);\n}\n\nvar nodesSelector = function nodesSelector(state) {\n return state.nodes;\n};\n/**\n * Hook for getting the current nodes from the store.\n *\n * @public\n * @returns An array of nodes\n */\n\n\nfunction useNodes() {\n var nodes = useStore(nodesSelector, shallow);\n return nodes;\n}\n\nvar edgesSelector = function edgesSelector(state) {\n return state.edges;\n};\n/**\n * Hook for getting the current edges from the store.\n *\n * @public\n * @returns An array of edges\n */\n\n\nfunction useEdges() {\n var edges = useStore(edgesSelector, shallow);\n return edges;\n}\n\nvar viewportSelector = function viewportSelector(state) {\n return {\n x: state.transform[0],\n y: state.transform[1],\n zoom: state.transform[2]\n };\n};\n/**\n * Hook for getting the current viewport from the store.\n *\n * @public\n * @returns The current viewport\n */\n\n\nfunction useViewport() {\n var viewport = useStore(viewportSelector, shallow);\n return viewport;\n}\n/**\n * Hook for managing the state of nodes - should only be used for prototyping / simple use cases.\n *\n * @public\n * @param initialNodes\n * @returns an array [nodes, setNodes, onNodesChange]\n */\n\n\nfunction useNodesState(initialNodes) {\n var _useState21 = useState(initialNodes),\n _useState22 = _slicedToArray(_useState21, 2),\n nodes = _useState22[0],\n setNodes = _useState22[1];\n\n var onNodesChange = useCallback(function (changes) {\n return setNodes(function (nds) {\n return applyNodeChanges(changes, nds);\n });\n }, []);\n return [nodes, setNodes, onNodesChange];\n}\n/**\n * Hook for managing the state of edges - should only be used for prototyping / simple use cases.\n *\n * @public\n * @param initialEdges\n * @returns an array [edges, setEdges, onEdgesChange]\n */\n\n\nfunction useEdgesState(initialEdges) {\n var _useState23 = useState(initialEdges),\n _useState24 = _slicedToArray(_useState23, 2),\n edges = _useState24[0],\n setEdges = _useState24[1];\n\n var onEdgesChange = useCallback(function (changes) {\n return setEdges(function (eds) {\n return applyEdgeChanges(changes, eds);\n });\n }, []);\n return [edges, setEdges, onEdgesChange];\n}\n/**\n * Hook for registering an onViewportChange handler.\n *\n * @public\n * @param params.onStart - gets called when the viewport starts changing\n * @param params.onChange - gets called when the viewport changes\n * @param params.onEnd - gets called when the viewport stops changing\n */\n\n\nfunction useOnViewportChange(_ref58) {\n var onStart = _ref58.onStart,\n onChange = _ref58.onChange,\n onEnd = _ref58.onEnd;\n var store = useStoreApi();\n useEffect(function () {\n store.setState({\n onViewportChangeStart: onStart\n });\n }, [onStart]);\n useEffect(function () {\n store.setState({\n onViewportChange: onChange\n });\n }, [onChange]);\n useEffect(function () {\n store.setState({\n onViewportChangeEnd: onEnd\n });\n }, [onEnd]);\n}\n/**\n * Hook for registering an onSelectionChange handler.\n *\n * @public\n * @param params.onChange - The handler to register\n */\n\n\nfunction useOnSelectionChange(_ref59) {\n var onChange = _ref59.onChange;\n var store = useStoreApi();\n useEffect(function () {\n var nextOnSelectionChangeHandlers = [].concat(_toConsumableArray(store.getState().onSelectionChangeHandlers), [onChange]);\n store.setState({\n onSelectionChangeHandlers: nextOnSelectionChangeHandlers\n });\n return function () {\n var nextHandlers = store.getState().onSelectionChangeHandlers.filter(function (fn) {\n return fn !== onChange;\n });\n store.setState({\n onSelectionChangeHandlers: nextHandlers\n });\n };\n }, [onChange]);\n}\n\nvar selector$4 = function selector$4(options) {\n return function (s) {\n if (s.nodeLookup.size === 0) {\n return false;\n }\n\n var _iterator19 = _createForOfIteratorHelper(s.nodeLookup),\n _step19;\n\n try {\n for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) {\n var _step19$value = _slicedToArray(_step19.value, 2),\n _step19$value$ = _step19$value[1],\n hidden = _step19$value$.hidden,\n internals = _step19$value$.internals;\n\n if (options.includeHiddenNodes || !hidden) {\n if (internals.handleBounds === undefined || !nodeHasDimensions(internals.userNode)) {\n return false;\n }\n }\n }\n } catch (err) {\n _iterator19.e(err);\n } finally {\n _iterator19.f();\n }\n\n return true;\n };\n};\n\nvar defaultOptions = {\n includeHiddenNodes: false\n};\n/**\n * Hook which returns true when all nodes are initialized.\n *\n * @public\n * @param options.includeHiddenNodes - defaults to false\n * @returns boolean indicating whether all nodes are initialized\n */\n\nfunction useNodesInitialized() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultOptions;\n var initialized = useStore(selector$4(options));\n return initialized;\n}\n/**\n * Hook to check if a is connected to another and get the connections.\n *\n * @public\n * @param param.type - handle type 'source' or 'target'\n * @param param.nodeId - node id - if not provided, the node id from the NodeIdContext is used\n * @param param.id - the handle id (this is only needed if the node has multiple handles of the same type)\n * @param param.onConnect - gets called when a connection is established\n * @param param.onDisconnect - gets called when a connection is removed\n * @returns an array with handle connections\n */\n\n\nfunction useHandleConnections(_ref60) {\n var type = _ref60.type,\n _ref60$id = _ref60.id,\n id = _ref60$id === void 0 ? null : _ref60$id,\n nodeId = _ref60.nodeId,\n onConnect = _ref60.onConnect,\n onDisconnect = _ref60.onDisconnect;\n\n var _nodeId = useNodeId();\n\n var currentNodeId = nodeId !== null && nodeId !== void 0 ? nodeId : _nodeId;\n var prevConnections = useRef(null);\n var connections = useStore(function (state) {\n return state.connectionLookup.get(\"\".concat(currentNodeId, \"-\").concat(type, \"-\").concat(id));\n }, areConnectionMapsEqual);\n useEffect(function () {\n // @todo dicuss if onConnect/onDisconnect should be called when the component mounts/unmounts\n if (prevConnections.current && prevConnections.current !== connections) {\n var _connections = connections !== null && connections !== void 0 ? connections : new Map();\n\n handleConnectionChange(prevConnections.current, _connections, onDisconnect);\n handleConnectionChange(_connections, prevConnections.current, onConnect);\n }\n\n prevConnections.current = connections !== null && connections !== void 0 ? connections : new Map();\n }, [connections, onConnect, onDisconnect]);\n return useMemo(function () {\n var _connections$values;\n\n return Array.from((_connections$values = connections === null || connections === void 0 ? void 0 : connections.values()) !== null && _connections$values !== void 0 ? _connections$values : []);\n }, [connections]);\n} // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\nfunction useNodesData(nodeIds) {\n var nodesData = useStore(useCallback(function (s) {\n var _data$;\n\n var data = [];\n var isArrayOfIds = Array.isArray(nodeIds);\n\n var _nodeIds = isArrayOfIds ? nodeIds : [nodeIds];\n\n var _iterator20 = _createForOfIteratorHelper(_nodeIds),\n _step20;\n\n try {\n for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) {\n var nodeId = _step20.value;\n var node = s.nodeLookup.get(nodeId);\n\n if (node) {\n data.push({\n id: node.id,\n type: node.type,\n data: node.data\n });\n }\n }\n } catch (err) {\n _iterator20.e(err);\n } finally {\n _iterator20.f();\n }\n\n return isArrayOfIds ? data : (_data$ = data[0]) !== null && _data$ !== void 0 ? _data$ : null;\n }, [nodeIds]), shallowNodeData);\n return nodesData;\n}\n/**\n * Hook for getting an internal node by id\n *\n * @public\n * @param id - id of the node\n * @returns array with visible node ids\n */\n\n\nfunction useInternalNode(id) {\n var node = useStore(useCallback(function (s) {\n return s.nodeLookup.get(id);\n }, [id]), shallow);\n return node;\n}\n\nfunction LinePattern(_ref61) {\n var dimensions = _ref61.dimensions,\n lineWidth = _ref61.lineWidth,\n variant = _ref61.variant,\n className = _ref61.className;\n return jsx(\"path\", {\n strokeWidth: lineWidth,\n d: \"M\".concat(dimensions[0] / 2, \" 0 V\").concat(dimensions[1], \" M0 \").concat(dimensions[1] / 2, \" H\").concat(dimensions[0]),\n className: cc(['react-flow__background-pattern', variant, className])\n });\n}\n\nfunction DotPattern(_ref62) {\n var radius = _ref62.radius,\n className = _ref62.className;\n return jsx(\"circle\", {\n cx: radius,\n cy: radius,\n r: radius,\n className: cc(['react-flow__background-pattern', 'dots', className])\n });\n}\n\nvar BackgroundVariant;\n\n(function (BackgroundVariant) {\n BackgroundVariant[\"Lines\"] = \"lines\";\n BackgroundVariant[\"Dots\"] = \"dots\";\n BackgroundVariant[\"Cross\"] = \"cross\";\n})(BackgroundVariant || (BackgroundVariant = {}));\n\nvar defaultSize = (_defaultSize = {}, _defineProperty(_defaultSize, BackgroundVariant.Dots, 1), _defineProperty(_defaultSize, BackgroundVariant.Lines, 1), _defineProperty(_defaultSize, BackgroundVariant.Cross, 6), _defaultSize);\n\nvar selector$3 = function selector$3(s) {\n return {\n transform: s.transform,\n patternId: \"pattern-\".concat(s.rfId)\n };\n};\n\nfunction BackgroundComponent(_ref63) {\n var id = _ref63.id,\n _ref63$variant = _ref63.variant,\n variant = _ref63$variant === void 0 ? BackgroundVariant.Dots : _ref63$variant,\n _ref63$gap = _ref63.gap,\n gap = _ref63$gap === void 0 ? 20 : _ref63$gap,\n size = _ref63.size,\n _ref63$lineWidth = _ref63.lineWidth,\n lineWidth = _ref63$lineWidth === void 0 ? 1 : _ref63$lineWidth,\n _ref63$offset = _ref63.offset,\n offset = _ref63$offset === void 0 ? 0 : _ref63$offset,\n color = _ref63.color,\n bgColor = _ref63.bgColor,\n style = _ref63.style,\n className = _ref63.className,\n patternClassName = _ref63.patternClassName;\n var ref = useRef(null);\n\n var _useStore15 = useStore(selector$3, shallow),\n transform = _useStore15.transform,\n patternId = _useStore15.patternId;\n\n var patternSize = size || defaultSize[variant];\n var isDots = variant === BackgroundVariant.Dots;\n var isCross = variant === BackgroundVariant.Cross;\n var gapXY = Array.isArray(gap) ? gap : [gap, gap];\n var scaledGap = [gapXY[0] * transform[2] || 1, gapXY[1] * transform[2] || 1];\n var scaledSize = patternSize * transform[2];\n var offsetXY = Array.isArray(offset) ? offset : [offset, offset];\n var patternDimensions = isCross ? [scaledSize, scaledSize] : scaledGap;\n var scaledOffset = [offsetXY[0] * transform[2] || 1 + patternDimensions[0] / 2, offsetXY[1] * transform[2] || 1 + patternDimensions[1] / 2];\n\n var _patternId = \"\".concat(patternId).concat(id ? id : '');\n\n return jsxs(\"svg\", {\n className: cc(['react-flow__background', className]),\n style: _objectSpread(_objectSpread(_objectSpread({}, style), containerStyle), {}, {\n '--xy-background-color-props': bgColor,\n '--xy-background-pattern-color-props': color\n }),\n ref: ref,\n \"data-testid\": \"rf__background\",\n children: [jsx(\"pattern\", {\n id: _patternId,\n x: transform[0] % scaledGap[0],\n y: transform[1] % scaledGap[1],\n width: scaledGap[0],\n height: scaledGap[1],\n patternUnits: \"userSpaceOnUse\",\n patternTransform: \"translate(-\".concat(scaledOffset[0], \",-\").concat(scaledOffset[1], \")\"),\n children: isDots ? jsx(DotPattern, {\n radius: scaledSize / 2,\n className: patternClassName\n }) : jsx(LinePattern, {\n dimensions: patternDimensions,\n lineWidth: lineWidth,\n variant: variant,\n className: patternClassName\n })\n }), jsx(\"rect\", {\n x: \"0\",\n y: \"0\",\n width: \"100%\",\n height: \"100%\",\n fill: \"url(#\".concat(_patternId, \")\")\n })]\n });\n}\n\nBackgroundComponent.displayName = 'Background';\nvar Background = memo(BackgroundComponent);\n\nfunction PlusIcon() {\n return jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n children: jsx(\"path\", {\n d: \"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z\"\n })\n });\n}\n\nfunction MinusIcon() {\n return jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 5\",\n children: jsx(\"path\", {\n d: \"M0 0h32v4.2H0z\"\n })\n });\n}\n\nfunction FitViewIcon() {\n return jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 30\",\n children: jsx(\"path\", {\n d: \"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z\"\n })\n });\n}\n\nfunction LockIcon() {\n return jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 25 32\",\n children: jsx(\"path\", {\n d: \"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z\"\n })\n });\n}\n\nfunction UnlockIcon() {\n return jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 25 32\",\n children: jsx(\"path\", {\n d: \"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z\"\n })\n });\n}\n\nfunction ControlButton(_ref64) {\n var children = _ref64.children,\n className = _ref64.className,\n rest = _objectWithoutProperties(_ref64, _excluded7);\n\n return jsx(\"button\", _objectSpread(_objectSpread({\n type: \"button\",\n className: cc(['react-flow__controls-button', className])\n }, rest), {}, {\n children: children\n }));\n}\n\nvar selector$2 = function selector$2(s) {\n return {\n isInteractive: s.nodesDraggable || s.nodesConnectable || s.elementsSelectable,\n minZoomReached: s.transform[2] <= s.minZoom,\n maxZoomReached: s.transform[2] >= s.maxZoom\n };\n};\n\nfunction ControlsComponent(_ref65) {\n var style = _ref65.style,\n _ref65$showZoom = _ref65.showZoom,\n showZoom = _ref65$showZoom === void 0 ? true : _ref65$showZoom,\n _ref65$showFitView = _ref65.showFitView,\n showFitView = _ref65$showFitView === void 0 ? true : _ref65$showFitView,\n _ref65$showInteractiv = _ref65.showInteractive,\n showInteractive = _ref65$showInteractiv === void 0 ? true : _ref65$showInteractiv,\n fitViewOptions = _ref65.fitViewOptions,\n onZoomIn = _ref65.onZoomIn,\n onZoomOut = _ref65.onZoomOut,\n onFitView = _ref65.onFitView,\n onInteractiveChange = _ref65.onInteractiveChange,\n className = _ref65.className,\n children = _ref65.children,\n _ref65$position = _ref65.position,\n position = _ref65$position === void 0 ? 'bottom-left' : _ref65$position,\n _ref65$orientation = _ref65.orientation,\n orientation = _ref65$orientation === void 0 ? 'vertical' : _ref65$orientation,\n _ref65$ariaLabel = _ref65['aria-label'],\n ariaLabel = _ref65$ariaLabel === void 0 ? 'React Flow controls' : _ref65$ariaLabel;\n var store = useStoreApi();\n\n var _useStore16 = useStore(selector$2, shallow),\n isInteractive = _useStore16.isInteractive,\n minZoomReached = _useStore16.minZoomReached,\n maxZoomReached = _useStore16.maxZoomReached;\n\n var _useReactFlow2 = useReactFlow(),\n zoomIn = _useReactFlow2.zoomIn,\n zoomOut = _useReactFlow2.zoomOut,\n fitView = _useReactFlow2.fitView;\n\n var onZoomInHandler = function onZoomInHandler() {\n zoomIn();\n onZoomIn === null || onZoomIn === void 0 ? void 0 : onZoomIn();\n };\n\n var onZoomOutHandler = function onZoomOutHandler() {\n zoomOut();\n onZoomOut === null || onZoomOut === void 0 ? void 0 : onZoomOut();\n };\n\n var onFitViewHandler = function onFitViewHandler() {\n fitView(fitViewOptions);\n onFitView === null || onFitView === void 0 ? void 0 : onFitView();\n };\n\n var onToggleInteractivity = function onToggleInteractivity() {\n store.setState({\n nodesDraggable: !isInteractive,\n nodesConnectable: !isInteractive,\n elementsSelectable: !isInteractive\n });\n onInteractiveChange === null || onInteractiveChange === void 0 ? void 0 : onInteractiveChange(!isInteractive);\n };\n\n var orientationClass = orientation === 'horizontal' ? 'horizontal' : 'vertical';\n return jsxs(Panel, {\n className: cc(['react-flow__controls', orientationClass, className]),\n position: position,\n style: style,\n \"data-testid\": \"rf__controls\",\n \"aria-label\": ariaLabel,\n children: [showZoom && jsxs(Fragment, {\n children: [jsx(ControlButton, {\n onClick: onZoomInHandler,\n className: \"react-flow__controls-zoomin\",\n title: \"zoom in\",\n \"aria-label\": \"zoom in\",\n disabled: maxZoomReached,\n children: jsx(PlusIcon, {})\n }), jsx(ControlButton, {\n onClick: onZoomOutHandler,\n className: \"react-flow__controls-zoomout\",\n title: \"zoom out\",\n \"aria-label\": \"zoom out\",\n disabled: minZoomReached,\n children: jsx(MinusIcon, {})\n })]\n }), showFitView && jsx(ControlButton, {\n className: \"react-flow__controls-fitview\",\n onClick: onFitViewHandler,\n title: \"fit view\",\n \"aria-label\": \"fit view\",\n children: jsx(FitViewIcon, {})\n }), showInteractive && jsx(ControlButton, {\n className: \"react-flow__controls-interactive\",\n onClick: onToggleInteractivity,\n title: \"toggle interactivity\",\n \"aria-label\": \"toggle interactivity\",\n children: isInteractive ? jsx(UnlockIcon, {}) : jsx(LockIcon, {})\n }), children]\n });\n}\n\nControlsComponent.displayName = 'Controls';\nvar Controls = memo(ControlsComponent);\n\nfunction MiniMapNodeComponent(_ref66) {\n var id = _ref66.id,\n x = _ref66.x,\n y = _ref66.y,\n width = _ref66.width,\n height = _ref66.height,\n style = _ref66.style,\n color = _ref66.color,\n strokeColor = _ref66.strokeColor,\n strokeWidth = _ref66.strokeWidth,\n className = _ref66.className,\n borderRadius = _ref66.borderRadius,\n shapeRendering = _ref66.shapeRendering,\n selected = _ref66.selected,\n onClick = _ref66.onClick;\n\n var _ref67 = style || {},\n background = _ref67.background,\n backgroundColor = _ref67.backgroundColor;\n\n var fill = color || background || backgroundColor;\n return jsx(\"rect\", {\n className: cc(['react-flow__minimap-node', {\n selected: selected\n }, className]),\n x: x,\n y: y,\n rx: borderRadius,\n ry: borderRadius,\n width: width,\n height: height,\n style: {\n fill: fill,\n stroke: strokeColor,\n strokeWidth: strokeWidth\n },\n shapeRendering: shapeRendering,\n onClick: onClick ? function (event) {\n return onClick(event, id);\n } : undefined\n });\n}\n\nvar MiniMapNode = memo(MiniMapNodeComponent);\n\nvar selectorNodeIds = function selectorNodeIds(s) {\n return s.nodes.map(function (node) {\n return node.id;\n });\n};\n\nvar getAttrFunction = function getAttrFunction(func) {\n return func instanceof Function ? func : function () {\n return func;\n };\n};\n\nfunction MiniMapNodes(_ref68) {\n var nodeStrokeColor = _ref68.nodeStrokeColor,\n nodeColor = _ref68.nodeColor,\n _ref68$nodeClassName = _ref68.nodeClassName,\n nodeClassName = _ref68$nodeClassName === void 0 ? '' : _ref68$nodeClassName,\n _ref68$nodeBorderRadi = _ref68.nodeBorderRadius,\n nodeBorderRadius = _ref68$nodeBorderRadi === void 0 ? 5 : _ref68$nodeBorderRadi,\n nodeStrokeWidth = _ref68.nodeStrokeWidth,\n _ref68$nodeComponent = _ref68.nodeComponent,\n NodeComponent = _ref68$nodeComponent === void 0 ? MiniMapNode : _ref68$nodeComponent,\n onClick = _ref68.onClick;\n var nodeIds = useStore(selectorNodeIds, shallow);\n var nodeColorFunc = getAttrFunction(nodeColor);\n var nodeStrokeColorFunc = getAttrFunction(nodeStrokeColor);\n var nodeClassNameFunc = getAttrFunction(nodeClassName);\n var shapeRendering = typeof window === 'undefined' || !!window.chrome ? 'crispEdges' : 'geometricPrecision';\n return jsx(Fragment, {\n children: nodeIds.map(function (nodeId) {\n return (// The split of responsibilities between MiniMapNodes and\n // NodeComponentWrapper may appear weird. However, it’s designed to\n // minimize the cost of updates when individual nodes change.\n //\n // For more details, see a similar commit in `NodeRenderer/index.tsx`.\n jsx(NodeComponentWrapper, {\n id: nodeId,\n nodeColorFunc: nodeColorFunc,\n nodeStrokeColorFunc: nodeStrokeColorFunc,\n nodeClassNameFunc: nodeClassNameFunc,\n nodeBorderRadius: nodeBorderRadius,\n nodeStrokeWidth: nodeStrokeWidth,\n NodeComponent: NodeComponent,\n onClick: onClick,\n shapeRendering: shapeRendering\n }, nodeId)\n );\n })\n });\n}\n\nfunction NodeComponentWrapperInner(_ref69) {\n var id = _ref69.id,\n nodeColorFunc = _ref69.nodeColorFunc,\n nodeStrokeColorFunc = _ref69.nodeStrokeColorFunc,\n nodeClassNameFunc = _ref69.nodeClassNameFunc,\n nodeBorderRadius = _ref69.nodeBorderRadius,\n nodeStrokeWidth = _ref69.nodeStrokeWidth,\n shapeRendering = _ref69.shapeRendering,\n NodeComponent = _ref69.NodeComponent,\n onClick = _ref69.onClick;\n\n var _useStore17 = useStore(function (s) {\n var node = s.nodeLookup.get(id);\n var _node$internals$posit = node.internals.positionAbsolute,\n x = _node$internals$posit.x,\n y = _node$internals$posit.y;\n\n var _getNodeDimensions = getNodeDimensions(node),\n width = _getNodeDimensions.width,\n height = _getNodeDimensions.height;\n\n return {\n node: node,\n x: x,\n y: y,\n width: width,\n height: height\n };\n }, shallow),\n node = _useStore17.node,\n x = _useStore17.x,\n y = _useStore17.y,\n width = _useStore17.width,\n height = _useStore17.height;\n\n if (!node || node.hidden || !nodeHasDimensions(node)) {\n return null;\n }\n\n return jsx(NodeComponent, {\n x: x,\n y: y,\n width: width,\n height: height,\n style: node.style,\n selected: !!node.selected,\n className: nodeClassNameFunc(node),\n color: nodeColorFunc(node),\n borderRadius: nodeBorderRadius,\n strokeColor: nodeStrokeColorFunc(node),\n strokeWidth: nodeStrokeWidth,\n shapeRendering: shapeRendering,\n onClick: onClick,\n id: node.id\n });\n}\n\nvar NodeComponentWrapper = memo(NodeComponentWrapperInner);\nvar MiniMapNodes$1 = memo(MiniMapNodes);\nvar defaultWidth = 200;\nvar defaultHeight = 150;\n\nvar selector$1 = function selector$1(s) {\n var viewBB = {\n x: -s.transform[0] / s.transform[2],\n y: -s.transform[1] / s.transform[2],\n width: s.width / s.transform[2],\n height: s.height / s.transform[2]\n };\n return {\n viewBB: viewBB,\n boundingRect: s.nodeLookup.size > 0 ? getBoundsOfRects(getInternalNodesBounds(s.nodeLookup), viewBB) : viewBB,\n rfId: s.rfId,\n panZoom: s.panZoom,\n translateExtent: s.translateExtent,\n flowWidth: s.width,\n flowHeight: s.height\n };\n};\n\nvar ARIA_LABEL_KEY = 'react-flow__minimap-desc';\n\nfunction MiniMapComponent(_ref70) {\n var _style$width, _style$height;\n\n var style = _ref70.style,\n className = _ref70.className,\n nodeStrokeColor = _ref70.nodeStrokeColor,\n nodeColor = _ref70.nodeColor,\n _ref70$nodeClassName = _ref70.nodeClassName,\n nodeClassName = _ref70$nodeClassName === void 0 ? '' : _ref70$nodeClassName,\n _ref70$nodeBorderRadi = _ref70.nodeBorderRadius,\n nodeBorderRadius = _ref70$nodeBorderRadi === void 0 ? 5 : _ref70$nodeBorderRadi,\n nodeStrokeWidth = _ref70.nodeStrokeWidth,\n nodeComponent = _ref70.nodeComponent,\n bgColor = _ref70.bgColor,\n maskColor = _ref70.maskColor,\n maskStrokeColor = _ref70.maskStrokeColor,\n maskStrokeWidth = _ref70.maskStrokeWidth,\n _ref70$position = _ref70.position,\n position = _ref70$position === void 0 ? 'bottom-right' : _ref70$position,\n onClick = _ref70.onClick,\n onNodeClick = _ref70.onNodeClick,\n _ref70$pannable = _ref70.pannable,\n pannable = _ref70$pannable === void 0 ? false : _ref70$pannable,\n _ref70$zoomable = _ref70.zoomable,\n zoomable = _ref70$zoomable === void 0 ? false : _ref70$zoomable,\n _ref70$ariaLabel = _ref70.ariaLabel,\n ariaLabel = _ref70$ariaLabel === void 0 ? 'React Flow mini map' : _ref70$ariaLabel,\n inversePan = _ref70.inversePan,\n _ref70$zoomStep = _ref70.zoomStep,\n zoomStep = _ref70$zoomStep === void 0 ? 10 : _ref70$zoomStep,\n _ref70$offsetScale = _ref70.offsetScale,\n offsetScale = _ref70$offsetScale === void 0 ? 5 : _ref70$offsetScale;\n var store = useStoreApi();\n var svg = useRef(null);\n\n var _useStore18 = useStore(selector$1, shallow),\n boundingRect = _useStore18.boundingRect,\n viewBB = _useStore18.viewBB,\n rfId = _useStore18.rfId,\n panZoom = _useStore18.panZoom,\n translateExtent = _useStore18.translateExtent,\n flowWidth = _useStore18.flowWidth,\n flowHeight = _useStore18.flowHeight;\n\n var elementWidth = (_style$width = style === null || style === void 0 ? void 0 : style.width) !== null && _style$width !== void 0 ? _style$width : defaultWidth;\n var elementHeight = (_style$height = style === null || style === void 0 ? void 0 : style.height) !== null && _style$height !== void 0 ? _style$height : defaultHeight;\n var scaledWidth = boundingRect.width / elementWidth;\n var scaledHeight = boundingRect.height / elementHeight;\n var viewScale = Math.max(scaledWidth, scaledHeight);\n var viewWidth = viewScale * elementWidth;\n var viewHeight = viewScale * elementHeight;\n var offset = offsetScale * viewScale;\n var x = boundingRect.x - (viewWidth - boundingRect.width) / 2 - offset;\n var y = boundingRect.y - (viewHeight - boundingRect.height) / 2 - offset;\n var width = viewWidth + offset * 2;\n var height = viewHeight + offset * 2;\n var labelledBy = \"\".concat(ARIA_LABEL_KEY, \"-\").concat(rfId);\n var viewScaleRef = useRef(0);\n var minimapInstance = useRef();\n viewScaleRef.current = viewScale;\n useEffect(function () {\n if (svg.current && panZoom) {\n minimapInstance.current = XYMinimap({\n domNode: svg.current,\n panZoom: panZoom,\n getTransform: function getTransform() {\n return store.getState().transform;\n },\n getViewScale: function getViewScale() {\n return viewScaleRef.current;\n }\n });\n return function () {\n var _minimapInstance$curr;\n\n (_minimapInstance$curr = minimapInstance.current) === null || _minimapInstance$curr === void 0 ? void 0 : _minimapInstance$curr.destroy();\n };\n }\n }, [panZoom]);\n useEffect(function () {\n var _minimapInstance$curr2;\n\n (_minimapInstance$curr2 = minimapInstance.current) === null || _minimapInstance$curr2 === void 0 ? void 0 : _minimapInstance$curr2.update({\n translateExtent: translateExtent,\n width: flowWidth,\n height: flowHeight,\n inversePan: inversePan,\n pannable: pannable,\n zoomStep: zoomStep,\n zoomable: zoomable\n });\n }, [pannable, zoomable, inversePan, zoomStep, translateExtent, flowWidth, flowHeight]);\n var onSvgClick = onClick ? function (event) {\n var _minimapInstance$curr3;\n\n var _ref71 = ((_minimapInstance$curr3 = minimapInstance.current) === null || _minimapInstance$curr3 === void 0 ? void 0 : _minimapInstance$curr3.pointer(event)) || [0, 0],\n _ref72 = _slicedToArray(_ref71, 2),\n x = _ref72[0],\n y = _ref72[1];\n\n onClick(event, {\n x: x,\n y: y\n });\n } : undefined;\n var onSvgNodeClick = onNodeClick ? useCallback(function (event, nodeId) {\n var node = store.getState().nodeLookup.get(nodeId);\n onNodeClick(event, node);\n }, []) : undefined;\n return jsx(Panel, {\n position: position,\n style: _objectSpread(_objectSpread({}, style), {}, {\n '--xy-minimap-background-color-props': typeof bgColor === 'string' ? bgColor : undefined,\n '--xy-minimap-mask-background-color-props': typeof maskColor === 'string' ? maskColor : undefined,\n '--xy-minimap-mask-stroke-color-props': typeof maskStrokeColor === 'string' ? maskStrokeColor : undefined,\n '--xy-minimap-mask-stroke-width-props': typeof maskStrokeWidth === 'number' ? maskStrokeWidth * viewScale : undefined,\n '--xy-minimap-node-background-color-props': typeof nodeColor === 'string' ? nodeColor : undefined,\n '--xy-minimap-node-stroke-color-props': typeof nodeStrokeColor === 'string' ? nodeStrokeColor : undefined,\n '--xy-minimap-node-stroke-width-props': typeof nodeStrokeWidth === 'string' ? nodeStrokeWidth : undefined\n }),\n className: cc(['react-flow__minimap', className]),\n \"data-testid\": \"rf__minimap\",\n children: jsxs(\"svg\", {\n width: elementWidth,\n height: elementHeight,\n viewBox: \"\".concat(x, \" \").concat(y, \" \").concat(width, \" \").concat(height),\n className: \"react-flow__minimap-svg\",\n role: \"img\",\n \"aria-labelledby\": labelledBy,\n ref: svg,\n onClick: onSvgClick,\n children: [ariaLabel && jsx(\"title\", {\n id: labelledBy,\n children: ariaLabel\n }), jsx(MiniMapNodes$1, {\n onClick: onSvgNodeClick,\n nodeColor: nodeColor,\n nodeStrokeColor: nodeStrokeColor,\n nodeBorderRadius: nodeBorderRadius,\n nodeClassName: nodeClassName,\n nodeStrokeWidth: nodeStrokeWidth,\n nodeComponent: nodeComponent\n }), jsx(\"path\", {\n className: \"react-flow__minimap-mask\",\n d: \"M\".concat(x - offset, \",\").concat(y - offset, \"h\").concat(width + offset * 2, \"v\").concat(height + offset * 2, \"h\").concat(-width - offset * 2, \"z\\n M\").concat(viewBB.x, \",\").concat(viewBB.y, \"h\").concat(viewBB.width, \"v\").concat(viewBB.height, \"h\").concat(-viewBB.width, \"z\"),\n fillRule: \"evenodd\",\n pointerEvents: \"none\"\n })]\n })\n });\n}\n\nMiniMapComponent.displayName = 'MiniMap';\nvar MiniMap = memo(MiniMapComponent);\n\nfunction ResizeControl(_ref73) {\n var nodeId = _ref73.nodeId,\n position = _ref73.position,\n _ref73$variant = _ref73.variant,\n variant = _ref73$variant === void 0 ? ResizeControlVariant.Handle : _ref73$variant,\n className = _ref73.className,\n _ref73$style = _ref73.style,\n style = _ref73$style === void 0 ? {} : _ref73$style,\n children = _ref73.children,\n color = _ref73.color,\n _ref73$minWidth = _ref73.minWidth,\n minWidth = _ref73$minWidth === void 0 ? 10 : _ref73$minWidth,\n _ref73$minHeight = _ref73.minHeight,\n minHeight = _ref73$minHeight === void 0 ? 10 : _ref73$minHeight,\n _ref73$maxWidth = _ref73.maxWidth,\n maxWidth = _ref73$maxWidth === void 0 ? Number.MAX_VALUE : _ref73$maxWidth,\n _ref73$maxHeight = _ref73.maxHeight,\n maxHeight = _ref73$maxHeight === void 0 ? Number.MAX_VALUE : _ref73$maxHeight,\n _ref73$keepAspectRati = _ref73.keepAspectRatio,\n keepAspectRatio = _ref73$keepAspectRati === void 0 ? false : _ref73$keepAspectRati,\n shouldResize = _ref73.shouldResize,\n onResizeStart = _ref73.onResizeStart,\n onResize = _ref73.onResize,\n onResizeEnd = _ref73.onResizeEnd;\n var contextNodeId = useNodeId();\n var id = typeof nodeId === 'string' ? nodeId : contextNodeId;\n var store = useStoreApi();\n var resizeControlRef = useRef(null);\n var defaultPosition = variant === ResizeControlVariant.Line ? 'right' : 'bottom-right';\n var controlPosition = position !== null && position !== void 0 ? position : defaultPosition;\n var resizer = useRef(null);\n useEffect(function () {\n if (!resizeControlRef.current || !id) {\n return;\n }\n\n if (!resizer.current) {\n resizer.current = XYResizer({\n domNode: resizeControlRef.current,\n nodeId: id,\n getStoreItems: function getStoreItems() {\n var _store$getState39 = store.getState(),\n nodeLookup = _store$getState39.nodeLookup,\n transform = _store$getState39.transform,\n snapGrid = _store$getState39.snapGrid,\n snapToGrid = _store$getState39.snapToGrid,\n nodeOrigin = _store$getState39.nodeOrigin,\n domNode = _store$getState39.domNode;\n\n return {\n nodeLookup: nodeLookup,\n transform: transform,\n snapGrid: snapGrid,\n snapToGrid: snapToGrid,\n nodeOrigin: nodeOrigin,\n paneDomNode: domNode\n };\n },\n onChange: function onChange(change, childChanges) {\n var _store$getState40 = store.getState(),\n triggerNodeChanges = _store$getState40.triggerNodeChanges,\n nodeLookup = _store$getState40.nodeLookup,\n parentLookup = _store$getState40.parentLookup,\n nodeOrigin = _store$getState40.nodeOrigin;\n\n var changes = [];\n var nextPosition = {\n x: change.x,\n y: change.y\n };\n var node = nodeLookup.get(id);\n\n if (node && node.expandParent && node.parentId) {\n var _node$origin, _change$width, _change$height, _change$x, _change$y;\n\n var origin = (_node$origin = node.origin) !== null && _node$origin !== void 0 ? _node$origin : nodeOrigin;\n var width = (_change$width = change.width) !== null && _change$width !== void 0 ? _change$width : node.measured.width;\n var height = (_change$height = change.height) !== null && _change$height !== void 0 ? _change$height : node.measured.height;\n var child = {\n id: node.id,\n parentId: node.parentId,\n rect: _objectSpread({\n width: width,\n height: height\n }, evaluateAbsolutePosition({\n x: (_change$x = change.x) !== null && _change$x !== void 0 ? _change$x : node.position.x,\n y: (_change$y = change.y) !== null && _change$y !== void 0 ? _change$y : node.position.y\n }, {\n width: width,\n height: height\n }, node.parentId, nodeLookup, origin))\n };\n var parentExpandChanges = handleExpandParent([child], nodeLookup, parentLookup, nodeOrigin);\n changes.push.apply(changes, _toConsumableArray(parentExpandChanges)); // when the parent was expanded by the child node, its position will be clamped at\n // 0,0 when node origin is 0,0 and to width, height if it's 1,1\n\n nextPosition.x = change.x ? Math.max(origin[0] * width, change.x) : undefined;\n nextPosition.y = change.y ? Math.max(origin[1] * height, change.y) : undefined;\n }\n\n if (nextPosition.x !== undefined && nextPosition.y !== undefined) {\n var positionChange = {\n id: id,\n type: 'position',\n position: _objectSpread({}, nextPosition)\n };\n changes.push(positionChange);\n }\n\n if (change.width !== undefined && change.height !== undefined) {\n var dimensionChange = {\n id: id,\n type: 'dimensions',\n resizing: true,\n setAttributes: true,\n dimensions: {\n width: change.width,\n height: change.height\n }\n };\n changes.push(dimensionChange);\n }\n\n var _iterator21 = _createForOfIteratorHelper(childChanges),\n _step21;\n\n try {\n for (_iterator21.s(); !(_step21 = _iterator21.n()).done;) {\n var childChange = _step21.value;\n\n var _positionChange = _objectSpread(_objectSpread({}, childChange), {}, {\n type: 'position'\n });\n\n changes.push(_positionChange);\n }\n } catch (err) {\n _iterator21.e(err);\n } finally {\n _iterator21.f();\n }\n\n triggerNodeChanges(changes);\n },\n onEnd: function onEnd() {\n var dimensionChange = {\n id: id,\n type: 'dimensions',\n resizing: false\n };\n store.getState().triggerNodeChanges([dimensionChange]);\n }\n });\n }\n\n resizer.current.update({\n controlPosition: controlPosition,\n boundaries: {\n minWidth: minWidth,\n minHeight: minHeight,\n maxWidth: maxWidth,\n maxHeight: maxHeight\n },\n keepAspectRatio: keepAspectRatio,\n onResizeStart: onResizeStart,\n onResize: onResize,\n onResizeEnd: onResizeEnd,\n shouldResize: shouldResize\n });\n return function () {\n var _resizer$current;\n\n (_resizer$current = resizer.current) === null || _resizer$current === void 0 ? void 0 : _resizer$current.destroy();\n };\n }, [controlPosition, minWidth, minHeight, maxWidth, maxHeight, keepAspectRatio, onResizeStart, onResize, onResizeEnd, shouldResize]);\n var positionClassNames = controlPosition.split('-');\n var colorStyleProp = variant === ResizeControlVariant.Line ? 'borderColor' : 'backgroundColor';\n var controlStyle = color ? _objectSpread(_objectSpread({}, style), {}, _defineProperty({}, colorStyleProp, color)) : style;\n return jsx(\"div\", {\n className: cc(['react-flow__resize-control', 'nodrag'].concat(_toConsumableArray(positionClassNames), [variant, className])),\n ref: resizeControlRef,\n style: controlStyle,\n children: children\n });\n}\n\nvar NodeResizeControl = memo(ResizeControl);\n\nfunction NodeResizer(_ref74) {\n var nodeId = _ref74.nodeId,\n _ref74$isVisible = _ref74.isVisible,\n isVisible = _ref74$isVisible === void 0 ? true : _ref74$isVisible,\n handleClassName = _ref74.handleClassName,\n handleStyle = _ref74.handleStyle,\n lineClassName = _ref74.lineClassName,\n lineStyle = _ref74.lineStyle,\n color = _ref74.color,\n _ref74$minWidth = _ref74.minWidth,\n minWidth = _ref74$minWidth === void 0 ? 10 : _ref74$minWidth,\n _ref74$minHeight = _ref74.minHeight,\n minHeight = _ref74$minHeight === void 0 ? 10 : _ref74$minHeight,\n _ref74$maxWidth = _ref74.maxWidth,\n maxWidth = _ref74$maxWidth === void 0 ? Number.MAX_VALUE : _ref74$maxWidth,\n _ref74$maxHeight = _ref74.maxHeight,\n maxHeight = _ref74$maxHeight === void 0 ? Number.MAX_VALUE : _ref74$maxHeight,\n _ref74$keepAspectRati = _ref74.keepAspectRatio,\n keepAspectRatio = _ref74$keepAspectRati === void 0 ? false : _ref74$keepAspectRati,\n shouldResize = _ref74.shouldResize,\n onResizeStart = _ref74.onResizeStart,\n onResize = _ref74.onResize,\n onResizeEnd = _ref74.onResizeEnd;\n\n if (!isVisible) {\n return null;\n }\n\n return jsxs(Fragment, {\n children: [XY_RESIZER_LINE_POSITIONS.map(function (position) {\n return jsx(NodeResizeControl, {\n className: lineClassName,\n style: lineStyle,\n nodeId: nodeId,\n position: position,\n variant: ResizeControlVariant.Line,\n color: color,\n minWidth: minWidth,\n minHeight: minHeight,\n maxWidth: maxWidth,\n maxHeight: maxHeight,\n onResizeStart: onResizeStart,\n keepAspectRatio: keepAspectRatio,\n shouldResize: shouldResize,\n onResize: onResize,\n onResizeEnd: onResizeEnd\n }, position);\n }), XY_RESIZER_HANDLE_POSITIONS.map(function (position) {\n return jsx(NodeResizeControl, {\n className: handleClassName,\n style: handleStyle,\n nodeId: nodeId,\n position: position,\n color: color,\n minWidth: minWidth,\n minHeight: minHeight,\n maxWidth: maxWidth,\n maxHeight: maxHeight,\n onResizeStart: onResizeStart,\n keepAspectRatio: keepAspectRatio,\n shouldResize: shouldResize,\n onResize: onResize,\n onResizeEnd: onResizeEnd\n }, position);\n })]\n });\n}\n\nvar selector = function selector(state) {\n var _state$domNode;\n\n return (_state$domNode = state.domNode) === null || _state$domNode === void 0 ? void 0 : _state$domNode.querySelector('.react-flow__renderer');\n};\n\nfunction NodeToolbarPortal(_ref75) {\n var children = _ref75.children;\n var wrapperRef = useStore(selector);\n\n if (!wrapperRef) {\n return null;\n }\n\n return createPortal(children, wrapperRef);\n}\n\nvar nodeEqualityFn = function nodeEqualityFn(a, b) {\n return (a === null || a === void 0 ? void 0 : a.internals.positionAbsolute.x) !== (b === null || b === void 0 ? void 0 : b.internals.positionAbsolute.x) || (a === null || a === void 0 ? void 0 : a.internals.positionAbsolute.y) !== (b === null || b === void 0 ? void 0 : b.internals.positionAbsolute.y) || (a === null || a === void 0 ? void 0 : a.measured.width) !== (b === null || b === void 0 ? void 0 : b.measured.width) || (a === null || a === void 0 ? void 0 : a.measured.height) !== (b === null || b === void 0 ? void 0 : b.measured.height) || (a === null || a === void 0 ? void 0 : a.selected) !== (b === null || b === void 0 ? void 0 : b.selected) || (a === null || a === void 0 ? void 0 : a.internals.z) !== (b === null || b === void 0 ? void 0 : b.internals.z);\n};\n\nvar nodesEqualityFn = function nodesEqualityFn(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n\n var _iterator22 = _createForOfIteratorHelper(a),\n _step22;\n\n try {\n for (_iterator22.s(); !(_step22 = _iterator22.n()).done;) {\n var _step22$value = _slicedToArray(_step22.value, 2),\n key = _step22$value[0],\n node = _step22$value[1];\n\n if (nodeEqualityFn(node, b.get(key))) {\n return false;\n }\n }\n } catch (err) {\n _iterator22.e(err);\n } finally {\n _iterator22.f();\n }\n\n return true;\n};\n\nvar storeSelector = function storeSelector(state) {\n return {\n x: state.transform[0],\n y: state.transform[1],\n zoom: state.transform[2],\n selectedNodesCount: state.nodes.filter(function (node) {\n return node.selected;\n }).length\n };\n};\n\nfunction NodeToolbar(_ref76) {\n var nodeId = _ref76.nodeId,\n children = _ref76.children,\n className = _ref76.className,\n style = _ref76.style,\n isVisible = _ref76.isVisible,\n _ref76$position = _ref76.position,\n position = _ref76$position === void 0 ? Position.Top : _ref76$position,\n _ref76$offset = _ref76.offset,\n offset = _ref76$offset === void 0 ? 10 : _ref76$offset,\n _ref76$align = _ref76.align,\n align = _ref76$align === void 0 ? 'center' : _ref76$align,\n rest = _objectWithoutProperties(_ref76, _excluded8);\n\n var contextNodeId = useNodeId();\n var nodesSelector = useCallback(function (state) {\n var nodeIds = Array.isArray(nodeId) ? nodeId : [nodeId || contextNodeId || ''];\n var internalNodes = nodeIds.reduce(function (res, id) {\n var node = state.nodeLookup.get(id);\n\n if (node) {\n res.set(node.id, node);\n }\n\n return res;\n }, new Map());\n return internalNodes;\n }, [nodeId, contextNodeId]);\n var nodes = useStore(nodesSelector, nodesEqualityFn);\n\n var _useStore19 = useStore(storeSelector, shallow),\n x = _useStore19.x,\n y = _useStore19.y,\n zoom = _useStore19.zoom,\n selectedNodesCount = _useStore19.selectedNodesCount; // if isVisible is not set, we show the toolbar only if its node is selected and no other node is selected\n\n\n var isActive = typeof isVisible === 'boolean' ? isVisible : nodes.size === 1 && nodes.values().next().value.selected && selectedNodesCount === 1;\n\n if (!isActive || !nodes.size) {\n return null;\n }\n\n var nodeRect = getInternalNodesBounds(nodes);\n var nodesArray = Array.from(nodes.values());\n var zIndex = Math.max.apply(Math, _toConsumableArray(nodesArray.map(function (node) {\n return node.internals.z + 1;\n })));\n\n var wrapperStyle = _objectSpread({\n position: 'absolute',\n transform: getNodeToolbarTransform(nodeRect, {\n x: x,\n y: y,\n zoom: zoom\n }, position, offset, align),\n zIndex: zIndex\n }, style);\n\n return jsx(NodeToolbarPortal, {\n children: jsx(\"div\", _objectSpread(_objectSpread({\n style: wrapperStyle,\n className: cc(['react-flow__node-toolbar', className])\n }, rest), {}, {\n \"data-id\": nodesArray.reduce(function (acc, node) {\n return \"\".concat(acc).concat(node.id, \" \");\n }, '').trim(),\n children: children\n }))\n });\n}\n\nexport { Background, BackgroundVariant, BaseEdge, BezierEdge, ControlButton, Controls, EdgeLabelRenderer, EdgeText, Handle, MiniMap, NodeResizeControl, NodeResizer, NodeToolbar, Panel, index as ReactFlow, ReactFlowProvider, SimpleBezierEdge, SmoothStepEdge, StepEdge, StraightEdge, ViewportPortal, applyEdgeChanges, applyNodeChanges, getSimpleBezierPath, isEdge, isNode, useConnection, useEdges, useEdgesState, useHandleConnections, useInternalNode, useKeyPress, useNodeId, useNodes, useNodesData, useNodesInitialized, useNodesState, useOnSelectionChange, useOnViewportChange, useReactFlow, useStore, useStoreApi, useUpdateNodeInternals, useViewport };"],"names":["_MarkerSymbols","_defaultSize","_excluded","_excluded2","_excluded3","_excluded4","_excluded5","_excluded6","_excluded7","_excluded8","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","minLen","_arrayLikeToArray","n","Object","prototype","toString","call","slice","constructor","name","from","test","_unsupportedIterableToArray","length","i","F","s","done","value","e","_e","f","TypeError","err","normalCompletion","didErr","step","next","_e2","return","arr","len","arr2","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","arguments","source","forEach","key","getOwnPropertyDescriptors","defineProperties","defineProperty","StoreContext","createContext","Provider$1","Provider","zustandErrorMessage","useStore","selector","equalityFn","store","useContext","Error","useStoreApi","useMemo","getState","setState","subscribe","style","display","ariaLiveStyle","position","width","height","margin","border","padding","overflow","clip","clipPath","ARIA_NODE_DESC_KEY","ARIA_EDGE_DESC_KEY","selector$o","ariaLiveMessage","AriaLiveMessage","_ref","rfId","jsx","id","concat","children","A11yDescriptions","_ref2","disableKeyboardA11y","jsxs","Fragment","selector$n","userSelectionActive","Panel","forwardRef","_ref3","ref","_ref3$position","className","rest","pointerEvents","positionClasses","split","Attribution","_ref4","proOptions","_ref4$position","hideAttribution","href","rel","selector$m","_step","selectedNodes","selectedEdges","_iterator","nodeLookup","node","selected","internals","userNode","_step2","_iterator2","edgeLookup","edge","selectId","obj","areEqual","a","b","map","SelectionListenerInner","_ref5","onSelectionChange","_useStore","useEffect","params","nodes","edges","onSelectionChangeHandlers","fn","changeSelector","SelectionListener","_ref6","storeHasSelectionChangeHandlers","defaultNodeOrigin","defaultViewport","x","y","zoom","fieldsToTrack","selector$l","setNodes","setEdges","setMinZoom","setMaxZoom","setTranslateExtent","setNodeExtent","reset","setDefaultNodesAndEdges","setPaneClickDistance","initPrevValues","translateExtent","nodeOrigin","minZoom","maxZoom","elementsSelectable","noPanClassName","paneClickDistance","StoreUpdater","props","_useStore2","defaultNodes","defaultEdges","previousFields","current","useRef","_step3","_iterator3","fieldName","fieldValue","fitViewOnInit","fitViewOnInitOptions","getMediaQuery","window","matchMedia","defaultDoc","document","useKeyPress","keyCode","undefined","options","actInsideInputWithModifier","_useState3","useState","_useState4","keyPressed","setKeyPressed","modifierPressed","pressedKeys","Set","_useMemo","kc","replace","keysFlat","reduce","res","item","_useMemo2","keyCodes","keysToWatch","downHandler","event","ctrlKey","metaKey","shiftKey","keyOrCode","useKeyOrCode","code","add","isMatchingKey","preventDefault","upHandler","clear","delete","resetHandler","addEventListener","removeEventListener","isUp","size","some","every","k","has","eventCode","includes","applyChanges","changes","elements","_step4","updatedElements","changesMap","Map","addItemChanges","_iterator4","change","type","set","elementChanges","get","_step5","_iterator5","element","_changes","_step6","updatedElement","_iterator6","applyChange","index","splice","dragging","_element$measured","dimensions","measured","setAttributes","resizing","applyNodeChanges","applyEdgeChanges","createSelectionChange","getSelectionChanges","items","_step7","selectedIds","mutateItem","_iterator7","_step7$value","willBeSelected","getElementsDiffChanges","_ref7","_step8","_ref7$items","lookup","itemsLookup","_iterator8","entries","_lookupItem$internals","_lookupItem$internals2","_step8$value","_index","lookupItem","storeItem","_step9","_iterator9","elementToRemoveChange","isNode","isEdge","fixedForwardRef","render","useIsomorphicLayoutEffect","useLayoutEffect","useQueue","runQueue","_useState5","BigInt","_useState6","serial","setSerial","_useState7","cb","queue","createQueue","queueItems","BatchContext","BatchProvider","_ref8","nodeQueue","useCallback","_step10","_store$getState10","_store$getState10$nod","hasDefaultNodes","onNodesChange","_iterator10","payload","edgeQueue","_step11","_store$getState11","_store$getState11$edg","hasDefaultEdges","onEdgesChange","_iterator11","selector$k","panZoom","useReactFlow","viewportHelper","zoomIn","scaleBy","duration","Promise","resolve","zoomOut","zoomTo","zoomLevel","scaleTo","getZoom","transform","setViewport","_setViewport","_callee","viewport","_viewport$x","_viewport$y","_viewport$zoom","_store$getState4","_store$getState4$tran","tX","tY","tZoom","_context","prev","abrupt","stop","_x","_x2","this","getViewport","_store$getState$trans","fitView","_store$getState5","domNode","fitViewNodes","_getDimensions","setCenter","_setCenter","_callee2","_store$getState6","nextZoom","centerX","centerY","_context2","_x3","_x4","_x5","fitBounds","_fitBounds","_callee3","bounds","_options$padding","_store$getState7","_context3","_x6","_x7","screenToFlowPosition","clientPosition","snapToGrid","_store$getState8","snapGrid","_domNode$getBoundingC","getBoundingClientRect","domX","domY","correctedPosition","flowToScreenPosition","flowPosition","_store$getState9","_domNode$getBoundingC2","rendererPosition","useViewportHelper","batchContext","useBatchContext","viewportInitialized","generalHelper","_deleteElements","getInternalNode","getNodeRect","_nodeToUse$measured$w","_nodeToUse$measured","_nodeToUse$measured$h","_nodeToUse$measured2","_store$getState12","nodeToUse","parentId","nodeWithPosition","updateNode","nodeUpdate","prevNodes","nextNode","updateEdge","edgeUpdate","prevEdges","nextEdge","getNodes","getNode","_getInternalNode","getEdges","_store$getState13$edg","getEdge","addNodes","newNodes","addEdges","newEdges","toObject","_store$getState14","_store$getState14$nod","_store$getState14$edg","_transform","deleteElements","_callee4","_ref9","_ref9$nodes","nodesToRemove","_ref9$edges","edgesToRemove","_store$getState15","onNodesDelete","onEdgesDelete","triggerNodeChanges","triggerEdgeChanges","onDelete","onBeforeDelete","_yield$getElementsToR","matchingNodes","matchingEdges","hasMatchingEdges","hasMatchingNodes","edgeChanges","nodeChanges","_context4","sent","deletedNodes","deletedEdges","_x8","getIntersectingNodes","nodeOrRect","partially","isRect","nodeRect","hasNodesOption","internalNode","positionAbsolute","currNodeRect","overlappingArea","isNodeIntersecting","area","partiallyVisible","updateNodeData","dataUpdate","nextData","data","updateEdgeData","getNodesBounds","_store$getState16","getHandleConnections","_ref10","_store$getState$conne","_store$getState$conne2","nodeId","connectionLookup","values","deleteKeyOptions","win$1","containerStyle","top","left","selector$j","lib","ZoomPane","_ref12","onPaneContextMenu","_ref12$zoomOnScroll","zoomOnScroll","_ref12$zoomOnPinch","zoomOnPinch","_ref12$panOnScroll","panOnScroll","_ref12$panOnScrollSpe","panOnScrollSpeed","_ref12$panOnScrollMod","panOnScrollMode","_ref12$zoomOnDoubleCl","zoomOnDoubleClick","_ref12$panOnDrag","panOnDrag","zoomActivationKeyCode","_ref12$preventScrolli","preventScrolling","noWheelClassName","onViewportChange","isControlledViewport","zoomPane","_useStore3","zoomActivationKeyPressed","updateDimensions","_store$getState$onErr","_store$getState18","onError","resizeObserver","ResizeObserver","observe","unobserve","useResizeHandler","onTransformChange","onDraggingChange","paneDragging","onPanZoomStart","vp","_store$getState19","onViewportChangeStart","onMoveStart","onPanZoom","_store$getState20","onMove","onPanZoomEnd","_store$getState21","onViewportChangeEnd","onMoveEnd","_panZoom$current$getV","closest","_panZoom$current","destroy","_panZoom$current2","update","selector$i","userSelectionRect","UserSelection","_useStore4","wrapHandler","handler","containerRef","selector$h","Pane","_ref13","isSelecting","selectionKeyPressed","_ref13$selectionMode","selectionMode","selectionOnDrag","onSelectionStart","onSelectionEnd","onPaneClick","onPaneScroll","onPaneMouseEnter","onPaneMouseMove","onPaneMouseLeave","container","prevSelectedNodesCount","prevSelectedEdgesCount","containerBounds","edgeIdLookup","_useStore5","hasActiveSelection","selectionInProgress","selectionStarted","onClick","resetSelectedElements","nodesSelectionActive","onWheel","draggable","selection","onContextMenu","onPointerEnter","onPointerDown","_event$target","_event$target$setPoin","_store$getState22","button","setPointerCapture","pointerId","_step12","_iterator12","_edgeIdLookup$current","_edgeIdLookup$current2","_step12$value","_getEventPosition","nativeEvent","startX","startY","onPointerMove","_store$getState23","_step13","_getEventPosition2","mouseX","mouseY","nextUserSelectRect","Math","abs","selectedEdgeIds","selectedNodeIds","_iterator13","selectedNode","edgeIds","_step14","_iterator14","edgeId","onPointerUp","_event$target2","_event$target2$releas","releasePointerCapture","onPointerLeave","handleNodeClick","_ref14","_ref14$unselect","unselect","nodeRef","_store$getState25","addSelectedNodes","unselectNodesAndEdges","multiSelectionActive","requestAnimationFrame","_nodeRef$current","blur","useDrag","_ref15","_ref15$disabled","disabled","noDragClassName","handleSelector","isSelectable","nodeClickDistance","_useState9","_useState10","setDragging","xyDrag","getStoreItems","onNodeMouseDown","onDragStart","onDragStop","_xyDrag$current","_xyDrag$current2","_xyDrag$current3","useMoveSelectedNodes","_step15","_store$getState26","nodeExtent","nodesDraggable","updateNodePositions","nodeUpdates","isSelected","selectedAndDraggable","xVelo","yVelo","xDiff","direction","factor","yDiff","_iterator15","nextPosition","_calculateNodePositio","NodeIdContext","Consumer","useNodeId","selector$g","connectOnClick","Handle","memo","_ref16","_store$getState$onErr2","_store$getState27","_ref16$type","_ref16$position","isValidConnection","_ref16$isConnectable","isConnectable","_ref16$isConnectableS","isConnectableStart","_ref16$isConnectableE","isConnectableEnd","onConnect","onMouseDown","onTouchStart","handleId","isTarget","_useStore6","_useStore7","state","clickHandle","connectionClickStartHandle","connectionMode","connection","fromHandle","toHandle","isValid","connectingTo","connectingFrom","clickConnecting","isPossibleEndHandle","connectionInProcess","valid","connectingSelector","onConnectExtended","_store$getState28","defaultEdgeOptions","onConnectAction","edgeParams","_store$getState29","isMouseTriggered","currentStore","autoPanOnConnect","connectionRadius","flowId","panBy","cancelConnection","onConnectStart","onConnectEnd","updateConnection","getTransform","getFromHandle","autoPanSpeed","connectable","connectablestart","connectableend","clickconnecting","connectingfrom","connectingto","connectionindicator","_store$getState30","onClickConnectStart","onClickConnectEnd","isValidConnectionStore","connectionState","handleType","doc","isValidConnectionHandler","_XYHandle$isValid","handle","fromNodeId","fromHandleId","fromType","connectionClone","structuredClone","inProgress","toPosition","arrowKeyDiffs","ArrowUp","ArrowDown","ArrowLeft","ArrowRight","builtinNodeTypes","input","_ref17","_ref17$sourcePosition","sourcePosition","label","default","_ref18","_ref18$targetPosition","targetPosition","_ref18$sourcePosition","output","_ref19","_ref19$targetPosition","group","selector$f","_getInternalNodesBoun","transformString","NodesSelection","_ref22","onSelectionContextMenu","_useStore8","moveSelectedNodes","_nodeRef$current2","focus","preventScroll","tabIndex","onKeyDown","hasOwnProperty","win","selector$e","FlowRendererComponent","_ref23","deleteKeyCode","selectionKeyCode","multiSelectionKeyCode","panActivationKeyCode","_panOnScroll","_panOnDrag","_useStore9","panActivationKeyPressed","_selectionOnDrag","_ref11","deleteKeyPressed","multiSelectionKeyPressed","_store$getState17","useGlobalKeyHandler","displayName","FlowRenderer","useVisibleNodeIds","onlyRenderVisible","selector$d","selector$c","updateNodeInternals","NodeWrapper","_ref25","_node$deletable","onMouseEnter","onMouseMove","onMouseLeave","onDoubleClick","nodesConnectable","nodesFocusable","nodeTypes","_useStore10","isParent","parentLookup","nodeType","NodeComponent","isDraggable","selectable","isFocusable","focusable","hasDimensions","_ref24","observedNode","prevSourcePosition","prevTargetPosition","prevType","isInitialized","handleBounds","hidden","typeChanged","sourcePosChanged","targetPosChanged","nodeElement","force","useNodeObserver","dragHandle","nodeDimensions","inlineDimensions","_node$width2","_node$style3","_node$height2","_node$style4","_ref20","_node$width","_node$style","_ref21","_node$height","_node$style2","initialWidth","initialHeight","getNodeInlineStyleDimensions","hasPointerEvents","onMouseEnterHandler","onMouseMoveHandler","onMouseLeaveHandler","onContextMenuHandler","onDoubleClickHandler","parent","zIndex","z","visibility","_store$getState31","selectNodesOnDrag","nodeDragThreshold","toLowerCase","role","ariaLabel","positionAbsoluteX","positionAbsoluteY","deletable","selector$b","NodeRendererComponent","_useStore11","nodeIds","onlyRenderVisibleElements","_useState11","updates","entry","getAttribute","disconnect","useResizeObserver","onNodeClick","onNodeMouseEnter","onNodeMouseMove","onNodeMouseLeave","onNodeContextMenu","onNodeDoubleClick","NodeRenderer","MarkerSymbols","_ref27","_ref27$color","color","_ref27$strokeWidth","strokeWidth","stroke","strokeLinecap","strokeLinejoin","fill","points","_ref28","_ref28$color","_ref28$strokeWidth","Marker","_ref29","_ref29$width","_ref29$height","_ref29$markerUnits","markerUnits","_ref29$orient","orient","_store$getState$onErr3","_store$getState32","useMarkerSymbol","markerWidth","markerHeight","viewBox","refX","refY","MarkerDefinitions","_ref30","defaultColor","markers","defaultMarkerStart","markerStart","defaultMarkerEnd","markerEnd","marker","MarkerDefinitions$1","EdgeTextComponent","_ref31","_ref31$labelStyle","labelStyle","_ref31$labelShowBg","labelShowBg","_ref31$labelBgStyle","labelBgStyle","_ref31$labelBgPadding","labelBgPadding","_ref31$labelBgBorderR","labelBgBorderRadius","_useState13","_useState14","edgeTextBbox","setEdgeTextBbox","edgeTextClasses","edgeTextRef","textBbox","getBBox","rx","ry","dy","EdgeText","BaseEdge","_ref32","path","labelX","labelY","_ref32$interactionWid","interactionWidth","d","strokeOpacity","getControl","_ref33","pos","x1","y1","x2","y2","getSimpleBezierPath","_ref34","sourceX","sourceY","_ref34$sourcePosition","targetX","targetY","_ref34$targetPosition","_getControl","_getControl2","sourceControlX","sourceControlY","_getControl3","_getControl4","targetControlX","targetControlY","_getBezierEdgeCenter","_getBezierEdgeCenter2","offsetX","offsetY","createSimpleBezierEdge","_ref35","_ref35$sourcePosition","_ref35$targetPosition","_getSimpleBezierPath","_getSimpleBezierPath2","_id","isInternal","SimpleBezierEdge","SimpleBezierEdgeInternal","createSmoothStepEdge","_ref36","_ref36$sourcePosition","_ref36$targetPosition","pathOptions","_getSmoothStepPath","borderRadius","offset","_getSmoothStepPath2","SmoothStepEdge","SmoothStepEdgeInternal","createStepEdge","_ref37","_props$pathOptions2","_props$pathOptions","StepEdge","StepEdgeInternal","createStraightEdge","_ref38","_getStraightPath","_getStraightPath2","StraightEdge","StraightEdgeInternal","createBezierEdge","_ref39","_ref39$sourcePosition","_ref39$targetPosition","_getBezierPath","curvature","_getBezierPath2","BezierEdge","BezierEdgeInternal","builtinEdgeTypes","straight","smoothstep","simplebezier","nullPosition","shiftX","shift","shiftY","EdgeUpdaterClassName","EdgeAnchor","_ref40","_ref40$radius","radius","onMouseOut","cx","cy","r","EdgeUpdateAnchors","_ref41","isReconnectable","reconnectRadius","onReconnect","onReconnectStart","onReconnectEnd","setReconnecting","setUpdateHover","handleEdgeUpdater","oppositeHandle","_store$getState33","edgeUpdaterType","evt","onReconnectMouseEnter","onReconnectMouseOut","_edge$targetHandle","targetHandle","_edge$sourceHandle","sourceHandle","EdgeWrapper","_ref42","_edge$deletable","edgesFocusable","edgesReconnectable","edgeTypes","edgeType","EdgeComponent","reconnectable","edgeRef","_useState15","_useState16","updateHover","_useState17","_useState18","reconnecting","_useStore12","sourceNode","targetNode","edgePosition","elevateOnSelect","elevateEdgesOnSelect","markerStartUrl","markerEndUrl","onEdgeDoubleClick","onEdgeContextMenu","onEdgeMouseEnter","onEdgeMouseMove","onEdgeMouseLeave","animated","inactive","updating","_edgeRef$current","_store$getState34","addSelectedEdges","_edgeRef$current2","_store$getState35","sourceHandleId","targetHandleId","selector$a","EdgeRendererComponent","_ref43","defaultMarkerColor","onEdgeClick","_useStore13","visibleEdgeIds","_step16","_iterator16","EdgeRenderer","selector$9","Viewport","_ref44","selector$8","_state$panZoom","syncViewport","storeSelector$1","to","useConnection","connectionSelector","combinedSelector","getSelector","selector$7","ConnectionLineWrapper","_ref45","component","_useStore14","ConnectionLine","CustomComponent","_ref46","_ref46$type","_useConnection","fromNode","fromPosition","toNode","connectionLineType","connectionLineStyle","fromX","fromY","toX","toY","connectionStatus","pathParams","_getBezierPath3","_getSimpleBezierPath3","_getSmoothStepPath3","_getSmoothStepPath5","_getStraightPath3","emptyTypes","useNodeOrEdgeTypesWarning","nodeOrEdgeTypes","GraphViewComponent","_ref47","onInit","connectionLineComponent","connectionLineContainerStyle","rfInstance","setTimeout","useOnInitHandler","useViewportSync","GraphView","getInitialState","_ref49","_ref50","_ref48","storeEdges","storeNodes","storeNodeOrigin","storeNodeExtent","elevateNodesOnSelect","_getViewportForBounds","fitViewDone","autoPanOnNodeDrag","debug","ReactFlowProvider","_ref53","initialNodes","initialEdges","_useState19","_ref51","fitView$1","_get","checkEquality","_get2","triggerFitView","_get5","fitViewSync","_updateNodeInternals2","updatedInternals","nextFitViewDone","console","log","nodeDragItems","_step18","parentExpandChildren","_iterator18","_step18$value","dragItem","expandParent","max","rect","_get6","_nodeOrigin","parentExpandChanges","_get7","_get8","_get9","_get10","_ref52","_get11","edgesToUnselect","_get12","setScaleExtent","_get13","_get$panZoom","clickDistance","_get$panZoom2","setClickDistance","_get14","nextNodeExtent","_get15","delta","_get16","_get17","_get18","is","createStore","Wrapper","_ref54","wrapperStyle","_ref55","onNodeDragStart","onNodeDrag","onNodeDragStop","onSelectionDragStart","onSelectionDrag","onSelectionDragStop","_ref55$connectionLine","_ref55$deleteKeyCode","_ref55$selectionKeyCo","_ref55$selectionOnDra","_ref55$selectionMode","_ref55$panActivationK","_ref55$multiSelection","_ref55$zoomActivation","_ref55$onlyRenderVisi","_ref55$nodeOrigin","_ref55$elementsSelect","_ref55$defaultViewpor","defaultViewport$1","_ref55$minZoom","_ref55$maxZoom","_ref55$translateExten","_ref55$preventScrolli","_ref55$defaultMarkerC","_ref55$zoomOnScroll","_ref55$zoomOnPinch","_ref55$panOnScroll","_ref55$panOnScrollSpe","_ref55$panOnScrollMod","_ref55$zoomOnDoubleCl","_ref55$panOnDrag","_ref55$paneClickDista","_ref55$nodeClickDista","_ref55$reconnectRadiu","_ref55$noDragClassNam","_ref55$noWheelClassNa","_ref55$noPanClassName","fitViewOptions","attributionPosition","_ref55$disableKeyboar","_ref55$colorMode","colorMode","colorModeClassName","_getMediaQuery","_useState","_useState2","colorModeClass","setColorModeClass","mediaQuery","updateColorModeClass","matches","useColorModeClass","selector$6","_s$domNode","querySelector","EdgeLabelRenderer","_ref56","edgeLabelRenderer","createPortal","useNodesState","_useState21","_useState22","nds","useEdgesState","_useState23","_useState24","eds","BackgroundVariant","LinePattern","_ref61","lineWidth","variant","DotPattern","_ref62","defaultSize","Dots","Lines","Cross","selector$3","patternId","BackgroundComponent","_ref63","_ref63$variant","_ref63$gap","gap","_ref63$lineWidth","_ref63$offset","bgColor","patternClassName","_useStore15","patternSize","isDots","isCross","gapXY","scaledGap","scaledSize","offsetXY","patternDimensions","scaledOffset","_patternId","patternUnits","patternTransform","PlusIcon","xmlns","MinusIcon","FitViewIcon","LockIcon","UnlockIcon","ControlButton","_ref64","selector$2","isInteractive","minZoomReached","maxZoomReached","ControlsComponent","_ref65","_ref65$showZoom","showZoom","_ref65$showFitView","showFitView","_ref65$showInteractiv","showInteractive","onZoomIn","onZoomOut","onFitView","onInteractiveChange","_ref65$position","_ref65$orientation","orientation","_ref65$ariaLabel","_useStore16","_useReactFlow2","orientationClass","title","MiniMapNode","_ref66","strokeColor","shapeRendering","_ref67","background","backgroundColor","selectorNodeIds","getAttrFunction","func","Function","NodeComponentWrapper","_ref69","nodeColorFunc","nodeStrokeColorFunc","nodeClassNameFunc","nodeBorderRadius","nodeStrokeWidth","_useStore17","_node$internals$posit","_getNodeDimensions","MiniMapNodes$1","_ref68","nodeStrokeColor","nodeColor","_ref68$nodeClassName","nodeClassName","_ref68$nodeBorderRadi","_ref68$nodeComponent","nodeComponent","chrome","selector$1","viewBB","boundingRect","flowWidth","flowHeight","MiniMapComponent","_ref70","_style$width","_style$height","_ref70$nodeClassName","_ref70$nodeBorderRadi","maskColor","maskStrokeColor","maskStrokeWidth","_ref70$position","_ref70$pannable","pannable","_ref70$zoomable","zoomable","_ref70$ariaLabel","inversePan","_ref70$zoomStep","zoomStep","_ref70$offsetScale","offsetScale","svg","_useStore18","elementWidth","elementHeight","scaledWidth","scaledHeight","viewScale","viewWidth","viewHeight","labelledBy","viewScaleRef","minimapInstance","getViewScale","_minimapInstance$curr","_minimapInstance$curr2","onSvgClick","_minimapInstance$curr3","_ref71","pointer","_ref72","onSvgNodeClick","fillRule","_ref73","_ref73$variant","_ref73$style","_ref73$minWidth","minWidth","_ref73$minHeight","minHeight","_ref73$maxWidth","maxWidth","Number","MAX_VALUE","_ref73$maxHeight","maxHeight","_ref73$keepAspectRati","keepAspectRatio","shouldResize","onResizeStart","onResize","onResizeEnd","contextNodeId","resizeControlRef","defaultPosition","controlPosition","resizer","_store$getState39","paneDomNode","onChange","childChanges","_store$getState40","_node$origin","_change$width","_change$height","_change$x","_change$y","origin","child","positionChange","dimensionChange","_step21","_iterator21","_positionChange","onEnd","boundaries","_resizer$current","positionClassNames","colorStyleProp","controlStyle","_state$domNode","NodeToolbarPortal","_ref75","wrapperRef","nodeEqualityFn","nodesEqualityFn","_step22","_iterator22","_step22$value","storeSelector","selectedNodesCount","NodeToolbar","_ref76","isVisible","_ref76$position","_ref76$offset","_ref76$align","align","_useStore19","nodesArray","acc","trim"],"sourceRoot":""}