{"version":3,"file":"static/js/main-f411e548.cfad35ca.js","mappings":"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","sources":["Components/DrawBoard/Nodes-Types/TreeViewNodeComponents/TreeViewNodeToolbar.js","Components/DrawBoard/Nodes-Types/TreeViewNodeComponents/TreeViewNode.js","Components/DrawBoard/Nodes-Types/TreeViewNodeComponents/TreeViewNodeUtils.js"],"sourcesContent":["import React, {\r\n useCallback,\r\n useEffect,\r\n useMemo,\r\n useRef,\r\n useState,\r\n} from \"react\";\r\nimport {\r\n Box,\r\n CircularProgress,\r\n ClickAwayListener,\r\n IconButton,\r\n Stack,\r\n TextField,\r\n Typography,\r\n} from \"@mui/material\";\r\nimport {\r\n Ic3StarsColored,\r\n Ic3StartsFill,\r\n IcArrowDown2,\r\n IcMenuDotsVertical,\r\n IcTextAlignCenter,\r\n IcTextAlignLeft,\r\n IcTextAlignRight,\r\n IcTextBold,\r\n IcTextColor,\r\n IcTextItalic,\r\n IcTextStrickTrough,\r\n IcTextUnderline,\r\n IcMindMapTheme,\r\n IcNodeType1,\r\n IcNodeType2,\r\n IcNodeType3,\r\n IcNodeType4,\r\n IcConnectionLine1,\r\n IcConnectionLine2,\r\n IcConnectionLine3,\r\n IcConnectionLine4,\r\n IcConnectionLine5,\r\n IcEdgeColor,\r\n IcFontStyle,\r\n IcFillColor,\r\n IcLockLocked,\r\n IcLockUnLocked,\r\n IcRefLink,\r\n IcDecresFontSize,\r\n IcIncreseFontSize,\r\n IcTransparentCircle,\r\n} from \"../../../../assets/icon-components\";\r\nimport CheckCircleOutlineIcon from \"@mui/icons-material/CheckCircleOutline\";\r\nimport { MarkerType, NodeToolbar, Position, useReactFlow } from \"reactflow\";\r\nimport {\r\n extractDomainName,\r\n findMinMaxHorizontalAbsolutePositions,\r\n getId,\r\n getMaxAndMinZIndex,\r\n getNodeWithAllChildrenAndEdges,\r\n isInputFocused,\r\n removeHTMLTags,\r\n removeOrphanedNodes,\r\n toRgba,\r\n updateJson,\r\n} from \"../../../../CommanFunctions/commanFunctions\";\r\nimport {\r\n CustomNameTooltip,\r\n CustomTooltip,\r\n} from \"../../top-toolbar/components/CustomTooltip\";\r\nimport ToolTipWithDisabled from \"../../top-toolbar/components/ToolTipWithDisabled\";\r\nimport BackgroundTool from \"../../../Node/common-components/nodeTopToolbar/components/BackgroundTool\";\r\nimport SimpleCircularProgress from \"../../../../common-components/SimpleCircularProgress\";\r\nimport commanService from \"../../../../CommanFunctions/commanService\";\r\nimport {\r\n errorToast,\r\n successToast,\r\n warningToast,\r\n} from \"../../../../Redux/toastSlice\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { createTreeLayout } from \"../../../../Utils/hooks/d3-hierarchy\";\r\nimport { Algorithm } from \"../../Edges/EditableEdge/constants\";\r\nimport { useLocation, useParams } from \"react-router-dom\";\r\nimport useCopyPaste from \"../../dndCopyPaste/useCopyPaste\";\r\nimport html2canvas from \"html2canvas\";\r\nimport { useKeyboardShortcut } from \"../../../../Utils/hooks/useKeyboardShortcut\";\r\nimport MindmapGenerator from \"../../../GenerativeAI/libs/MindmapGenerator\";\r\nimport CustomSwitch from \"../../../../common-components/CustomSwitch\";\r\nimport { useUndoRedo } from \"../../dndUndoRedo/UndoRedoProvider\";\r\nimport { debounce } from \"lodash\";\r\nimport FrameBorderToolbar from \"../../../Node/frameNode/FrameBorderToolbar\";\r\nimport { color } from \"../../../../Utils/style/color/color\";\r\nimport CommonDivider from \"../../../../common-components/CommonDivider\";\r\nimport { fontFamilyArr } from \"../../../Node/common-components/nodeTopToolbar/MindMapNodesToolbar/ToolbarMenuItems/constants\";\r\nimport { updateCopyAsImage } from \"../../../../Redux/mindMapSlice\";\r\n\r\nconst TreeViewNodeToolbar = ({\r\n isShowToolsPop,\r\n setIsShowToolsPop,\r\n editor,\r\n node,\r\n nodeRef,\r\n onlybgColor = false,\r\n}) => {\r\n const dispatch = useDispatch();\r\n const { data } = node;\r\n\r\n const [showMindMapTheme, setShowMindMapTheme] = useState(false);\r\n const [showNodetype, setShowNodetype] = useState(false);\r\n const [showConnectionLine, setShowConnectionLine] = useState(false);\r\n const [showBranchColor, setShowBranchColor] = useState(false);\r\n const [showFontFamily, setShowFontFamily] = useState(false);\r\n const [showFontStyle, setShowFontStyle] = useState(false);\r\n const [showFillColor, setShowFillColor] = useState(false);\r\n const [showRefLink, setShowRefLink] = useState(false);\r\n const [url, setUrl] = useState(\"\");\r\n const [showTextAlign, setShowTextAlign] = useState(false);\r\n const [showTextColor, setShowTextColor] = useState(false);\r\n const [currentTextColor, setCurrentTextColor] = useState(\r\n node?.data?.style?.color || \"#18181B\"\r\n );\r\n const [currentTextHighlightColor, setCurrentTextHighlightColor] =\r\n useState(\"transparent\");\r\n const [currentFontFamily, setCurrentFontFamily] = useState(\"Inter\");\r\n const [showFontSizeOpt, setShowFontSizeOpt] = useState(false);\r\n const [showBorderPopup, setShowBorderPopup] = useState(false);\r\n const [showBackgroundPopup, setShowBackgroundPopup] = useState(false);\r\n const [showAIOptions, setShowAIOptions] = useState(false);\r\n const [showChangeTones, setShowChangeTones] = useState(false);\r\n const [showTranslates, setShowTranslates] = useState(false);\r\n const [showExpandOptions, setShowExpandOptions] = useState(false);\r\n const [showMoreOptions, setShowMoreOptions] = useState(false);\r\n const [showShapesLimitModal, setShowShapesLimitModal] = useState(false);\r\n const [copyImageLoading, setCopyImageLoading] = useState(false);\r\n const [copyAsImage, setCopyAsImage] = useState(false);\r\n const [loaders, setLoaders] = useState({\r\n aiLoader: false,\r\n });\r\n const inputRef = useRef(null);\r\n const { copy, paste } = useCopyPaste({\r\n setShowShapesLimitModal,\r\n });\r\n\r\n const { id: architectureId } = useParams();\r\n const user_data = localStorage.getItem(\"user_data\");\r\n const { undo, takeSnapshot } = useUndoRedo();\r\n const location = useLocation();\r\n\r\n const {\r\n getNodes,\r\n getNode,\r\n getEdges,\r\n setNodes,\r\n setEdges,\r\n getIntersectingNodes,\r\n } = useReactFlow();\r\n\r\n const [textStyles, setTextStyles] = useState({\r\n isBold: false,\r\n isItalic: false,\r\n isUnderline: false,\r\n isStrikethrough: false,\r\n textAlign: \"left\",\r\n listType: null,\r\n fontSize: \"10px\",\r\n });\r\n\r\n const fontSizeArr = [\r\n 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,\r\n ];\r\n\r\n useEffect(() => {\r\n dispatch(updateCopyAsImage(copyAsImage));\r\n }, [copyAsImage, dispatch]);\r\n\r\n const getCurrentStyles = (editor) => {\r\n return {\r\n fontSize:\r\n editor.getAttributes(\"textStyle\").fontSize ||\r\n editor.getAttributes(\"paragraph\").fontSize ||\r\n \"10px\",\r\n isBold: editor.isActive(\"bold\"),\r\n isItalic: editor.isActive(\"italic\"),\r\n isUnderline: editor.isActive(\"underline\"),\r\n isStrikethrough: editor.isActive(\"strike\"),\r\n textAlign: editor.isActive({ textAlign: \"justify\" })\r\n ? \"justify\"\r\n : editor.isActive({ textAlign: \"center\" })\r\n ? \"center\"\r\n : editor.isActive({ textAlign: \"right\" })\r\n ? \"right\"\r\n : \"left\",\r\n listType: editor.isActive(\"bulletList\")\r\n ? \"bullet\"\r\n : editor.isActive(\"orderedList\")\r\n ? \"ordered\"\r\n : null,\r\n textColor: editor.isActive(\"textStyle\")\r\n ? editor.getAttributes(\"textStyle\").color\r\n : editor.getAttributes(\"paragraph\").color,\r\n highlightColor: editor.getAttributes(\"highlight\").color,\r\n fontFamily: editor.getAttributes(\"textStyle\").fontFamily,\r\n };\r\n };\r\n\r\n const updateNodeData = () => {\r\n setNodes((prevNodes) => {\r\n const updatedNodes = prevNodes.map((nd) => {\r\n if (nd.id === node.id) {\r\n return {\r\n ...nd,\r\n data: { ...nd.data, label: editor?.getHTML() },\r\n };\r\n }\r\n return nd;\r\n });\r\n\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id: architectureId,\r\n dispatch,\r\n undo,\r\n a_id,\r\n takeSnapshot,\r\n });\r\n return updatedNodes;\r\n });\r\n };\r\n\r\n // useEffect(() => {\r\n // if (editor) {\r\n // const updateTextStyles = () => {\r\n // const currentStyles = getCurrentStyles(editor);\r\n // const currentColor = currentStyles.textColor || \"black\";\r\n // const currentHighlightColor =\r\n // currentStyles.highlightColor || \"transparent\";\r\n // const currentFontFamily =\r\n // fontFamilyArr.find((font) => font.family === currentStyles.fontFamily)\r\n // ?.name || \"Inter\";\r\n\r\n // setTextStyles(currentStyles);\r\n // setCurrentTextColor(currentColor);\r\n // setCurrentTextHighlightColor(currentHighlightColor);\r\n // setCurrentFontFamily(currentFontFamily);\r\n // };\r\n\r\n // editor.on(\"selectionUpdate\", updateTextStyles);\r\n // editor.on(\"transaction\", updateTextStyles);\r\n\r\n // return () => {\r\n // editor.off(\"selectionUpdate\", updateTextStyles);\r\n // editor.off(\"transaction\", updateTextStyles);\r\n // };\r\n // }\r\n // }, [editor, fontFamilyArr]);\r\n\r\n useEffect(() => {\r\n const currentStyles = getCurrentStyles(editor);\r\n const currentColor = currentStyles.textColor || \"black\";\r\n const currentHighlightColor = currentStyles.highlightColor || \"transparent\";\r\n const currentFontFamily =\r\n fontFamilyArr.find((font) => font.family === currentStyles.fontFamily)\r\n ?.name || \"Inter\";\r\n\r\n setTextStyles(currentStyles);\r\n setCurrentTextColor(currentColor);\r\n setCurrentTextHighlightColor(currentHighlightColor);\r\n setCurrentFontFamily(currentFontFamily);\r\n }, [editor, fontFamilyArr]);\r\n\r\n useEffect(() => {\r\n if (!isShowToolsPop) {\r\n setShowBackgroundPopup(false);\r\n setShowMindMapTheme(false);\r\n // setShowBorderPopup(false);\r\n setShowNodetype(false);\r\n setShowConnectionLine(false);\r\n setShowBranchColor(false);\r\n setShowFontFamily(false);\r\n setShowFontSizeOpt(false);\r\n setShowFontStyle(false);\r\n setShowTextAlign(false);\r\n // setShowTextColor(false);\r\n setShowFillColor(false);\r\n setShowRefLink(false);\r\n setIsShowToolsPop(true);\r\n // !copyImageLoading && setShowMoreOptions(false);\r\n setShowAIOptions(false);\r\n }\r\n }, [isShowToolsPop, setIsShowToolsPop]);\r\n\r\n // Function to get the correct children key based on the side property\r\n function getChildrenKey(side) {\r\n switch (side) {\r\n case \"left\":\r\n return \"leftChildrenOrder\";\r\n case \"right\":\r\n return \"rightChildrenOrder\";\r\n case \"top\":\r\n return \"topChildrenOrder\";\r\n case \"bottom\":\r\n return \"bottomChildrenOrder\";\r\n default:\r\n return \"rightChildrenOrder\";\r\n }\r\n }\r\n\r\n const hasSelectedText = (editor) => {\r\n // if (!editor) return false;\r\n\r\n // const { from, to } = editor.state.selection;\r\n // return from !== to;\r\n return true;\r\n };\r\n\r\n // Function to find a node by its id\r\n function findNodeById(nodeId, data, childrenKey) {\r\n for (const node of data) {\r\n if (node.id === nodeId) {\r\n return node;\r\n }\r\n if (childrenKey && node.data[childrenKey]?.length) {\r\n const found = findNodeById(nodeId, node.data[childrenKey]);\r\n if (found) {\r\n return found;\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n // Function to trace the path to the root node\r\n function findPathToRoot(currentNodeId, data, childrenKey) {\r\n let currentNode = findNodeById(currentNodeId, data, childrenKey);\r\n const path = [];\r\n\r\n // Traverse upwards until we reach a node with a null parentNode\r\n while (currentNode) {\r\n path.push(currentNode); // Add current node to path\r\n if (!currentNode.parentNode) {\r\n // Root node is reached when parentNode is null\r\n break;\r\n }\r\n currentNode = findNodeById(currentNode.parentNode, data, childrenKey);\r\n }\r\n\r\n return path;\r\n }\r\n\r\n const handleExpandMindmap = async (content_type) => {\r\n setLoaders({\r\n ...loaders,\r\n aiLoader: true,\r\n });\r\n setIsShowToolsPop(false);\r\n try {\r\n const currentNode = getNodes().find((n) => n.id === node.id);\r\n\r\n const mindmapNodes = getNodes().filter(\r\n (n) =>\r\n n.type === \"TreeView\" &&\r\n n.data.rootParentId === node.data.rootParentId\r\n );\r\n\r\n const childrenKey = getChildrenKey(node.data.side);\r\n\r\n const currentNodeToRootNodePath = findPathToRoot(\r\n node.id,\r\n mindmapNodes,\r\n childrenKey\r\n ).map((n) => n.data.label);\r\n\r\n currentNodeToRootNodePath.shift();\r\n\r\n const response = await commanService.postApi(\r\n \"drawboard\",\r\n \"v2/generate/generate-content\",\r\n {\r\n prompt: JSON.stringify({\r\n topic: node.data.label,\r\n parentContext: currentNodeToRootNodePath,\r\n }),\r\n content_type,\r\n }\r\n );\r\n\r\n const result = response.data.data;\r\n\r\n const { nodes, edges } = MindmapGenerator.expand({\r\n payload: result,\r\n rootParentId: currentNode.data.rootParentId,\r\n parentNodeId: currentNode.id,\r\n designType: currentNode.data.designType,\r\n direction: currentNode.data.side,\r\n currentNode: currentNode,\r\n addition: currentNode.data.addition,\r\n });\r\n\r\n const GenAIResponse = new CustomEvent(\"GenAIResponse\", {\r\n detail: {\r\n nodes: nodes,\r\n edges: edges,\r\n isExpanding: true,\r\n rootParentId: currentNode?.data?.rootParentId,\r\n addition: currentNode?.data?.addition,\r\n },\r\n });\r\n\r\n document.dispatchEvent(GenAIResponse);\r\n } catch (error) {\r\n if (error.response.status !== 401) {\r\n if (error.response.status < 500) {\r\n dispatch(\r\n warningToast({\r\n message:\r\n error.response?.data?.message ||\r\n error.response.data?.error[0] ||\r\n error.message,\r\n })\r\n );\r\n } else {\r\n dispatch(\r\n errorToast({\r\n message: \"Oops! Something went wrong\",\r\n })\r\n );\r\n }\r\n }\r\n } finally {\r\n setLoaders({\r\n ...loaders,\r\n aiLoader: false,\r\n });\r\n }\r\n };\r\n\r\n const handleChangeContentWithAI = async (content_type) => {\r\n setLoaders({\r\n ...loaders,\r\n aiLoader: true,\r\n });\r\n try {\r\n const content = editor?.getText();\r\n const response = await commanService.postApi(\r\n \"drawboard\",\r\n \"v2/generate/generate-content\",\r\n {\r\n prompt: content || \"\",\r\n content_type,\r\n }\r\n );\r\n\r\n editor.commands.clearContent();\r\n editor.commands.insertContent(response.data.data);\r\n setShowAIOptions(false);\r\n } catch (error) {\r\n if (error.response.status !== 401) {\r\n if (error.response.status < 500) {\r\n dispatch(\r\n warningToast({\r\n message:\r\n error.response?.data?.message ||\r\n error.response.data?.error[0] ||\r\n error.message,\r\n })\r\n );\r\n } else {\r\n dispatch(\r\n errorToast({\r\n message: \"Oops! Something went wrong\",\r\n })\r\n );\r\n }\r\n }\r\n } finally {\r\n setLoaders({\r\n ...loaders,\r\n aiLoader: false,\r\n });\r\n }\r\n };\r\n\r\n const handleThemeChange = (theme) => {\r\n const rootParentId = data?.rootParentId;\r\n\r\n let updatedNodes = getNodes();\r\n let updatedEdges = getEdges();\r\n\r\n const themeUpdatedNodes = getNodes().map((nd) => {\r\n if (nd.type === \"TreeView\" && nd.data?.rootParentId === rootParentId) {\r\n if (theme === \"vertical\") {\r\n if (nd.data.side === \"left\") {\r\n return {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n side: \"top\",\r\n addition: theme,\r\n manuallyPositioned: false,\r\n childrenOrder: [],\r\n },\r\n };\r\n } else if (nd.data.side === \"right\") {\r\n return {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n side: \"bottom\",\r\n addition: theme,\r\n manuallyPositioned: false,\r\n childrenOrder: [],\r\n },\r\n };\r\n }\r\n } else if (theme === \"horizontal\") {\r\n if (nd.data.side === \"top\") {\r\n return {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n side: \"left\",\r\n addition: theme,\r\n manuallyPositioned: false,\r\n childrenOrder: [],\r\n },\r\n };\r\n } else if (nd.data.side === \"bottom\") {\r\n return {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n side: \"right\",\r\n addition: theme,\r\n manuallyPositioned: false,\r\n childrenOrder: [],\r\n },\r\n };\r\n }\r\n }\r\n return {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n addition: theme,\r\n topChildrenOrder: [],\r\n bottomChildrenOrder: [],\r\n leftChildrenOrder: [],\r\n rightChildrenOrder: [],\r\n manuallyPositioned: false,\r\n },\r\n };\r\n }\r\n return nd;\r\n });\r\n\r\n const allMindMapNodes = themeUpdatedNodes.filter(\r\n (nd) => nd.type === \"TreeView\" && nd.data?.rootParentId === rootParentId\r\n );\r\n const positionedNodes = createTreeLayout(\r\n allMindMapNodes,\r\n rootParentId,\r\n theme\r\n );\r\n\r\n setNodes((nds) => {\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: nds,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n updatedNodes = nds.map((n) => {\r\n const matchingNode = positionedNodes.nodes.find(\r\n (resNode) => resNode.id === n.id\r\n );\r\n return matchingNode ? matchingNode : n;\r\n });\r\n\r\n return updatedNodes;\r\n });\r\n\r\n setEdges((prevEdges) => {\r\n updatedEdges = prevEdges.map((ed) => {\r\n if (ed.data?.isTreeView && ed.data?.rootParentId === rootParentId) {\r\n if (theme === \"vertical\") {\r\n if (ed.data.side === \"left\") {\r\n return {\r\n ...ed,\r\n data: {\r\n ...ed.data,\r\n side: \"top\",\r\n },\r\n sourceHandle: \"aaa\",\r\n targetHandle: \"ddd\",\r\n };\r\n } else if (ed.data.side === \"right\") {\r\n return {\r\n ...ed,\r\n data: {\r\n ...ed.data,\r\n side: \"bottom\",\r\n },\r\n sourceHandle: \"ddd\",\r\n targetHandle: \"aaa\",\r\n };\r\n }\r\n } else if (theme === \"horizontal\") {\r\n if (ed.data.side === \"top\") {\r\n return {\r\n ...ed,\r\n data: {\r\n ...ed.data,\r\n side: \"left\",\r\n },\r\n sourceHandle: \"bbb\",\r\n targetHandle: \"ccc\",\r\n };\r\n } else if (ed.data.side === \"bottom\") {\r\n return {\r\n ...ed,\r\n data: {\r\n ...ed.data,\r\n side: \"right\",\r\n },\r\n sourceHandle: \"ccc\",\r\n targetHandle: \"bbb\",\r\n };\r\n }\r\n }\r\n }\r\n return ed;\r\n });\r\n return updatedEdges;\r\n });\r\n\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n edges: updatedEdges,\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id: architectureId,\r\n dispatch,\r\n undo,\r\n a_id,\r\n takeSnapshot,\r\n });\r\n };\r\n\r\n const debouncedUpdateJson = useCallback(\r\n debounce((nodes, edges) => {\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: nodes.length > 0 ? nodes : getNodes(),\r\n edges: edges.length > 0 ? edges : getEdges(),\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id: architectureId,\r\n dispatch,\r\n undo,\r\n takeSnapshot,\r\n a_id,\r\n });\r\n }, 200), // Adjust the delay (in milliseconds) as needed\r\n [updateJson, user_data, dispatch, undo, location, getNodes, getEdges]\r\n );\r\n\r\n const handleBackgroundColorChange = (value) => {\r\n // setShowBackgroundPopup(false);\r\n\r\n const { nodes: childrenNodes, edges: childrenEdges } = getNodeWithAllChildrenAndEdges(node, getNodes(), getEdges())\r\n\r\n const allChildNodeIds = childrenNodes.map((n) => n.id);\r\n const allChildEdgeIds = childrenEdges.map((e) => e.id);\r\n\r\n let updatedNodes = [];\r\n let updatedEdges = [];\r\n\r\n setNodes((prev) => {\r\n updatedNodes = prev.map((nd) =>\r\n allChildNodeIds.includes(nd.id)\r\n ? {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n nodeStyle: {\r\n ...nd.data?.nodeStyle,\r\n backgroundColor: value,\r\n },\r\n },\r\n }\r\n : nd\r\n );\r\n return updatedNodes;\r\n });\r\n\r\n setEdges((prev) => {\r\n updatedEdges = prev.map((ed) =>\r\n allChildEdgeIds.includes(ed.id) && ed.data?.isTreeView\r\n ? {\r\n ...ed,\r\n style: {\r\n ...ed.style,\r\n stroke: value,\r\n },\r\n }\r\n : ed\r\n );\r\n return updatedEdges;\r\n });\r\n\r\n debouncedUpdateJson(updatedNodes, updatedEdges);\r\n };\r\n\r\n const handleToggleLock = () => {\r\n setNodes((n) => {\r\n const updatedNodes = n.map((nd) =>\r\n nd.id === node.id\r\n ? {\r\n ...nd,\r\n draggable: nd.data?.locked || false,\r\n deletable: nd.data?.locked || false,\r\n data: {\r\n ...nd.data,\r\n locked: !nd.data?.locked || false,\r\n },\r\n }\r\n : nd\r\n );\r\n\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id: architectureId,\r\n dispatch,\r\n undo,\r\n a_id,\r\n takeSnapshot,\r\n });\r\n\r\n return updatedNodes;\r\n });\r\n };\r\n\r\n const handleNodeTypeChange = (style) => {\r\n setNodes((prev) => {\r\n const updatedNodes = prev.map((nd) => {\r\n if (nd.id === node.id) {\r\n return {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n showBorder: style.borderType === \"none\" ? false : true,\r\n border: {\r\n ...nd.data.border,\r\n type: style.borderStyle,\r\n radius: style.borderRadius,\r\n width: style.borderWidth,\r\n },\r\n nodeStyle: {\r\n ...nd.data.nodeStyle,\r\n borderType: style.borderType,\r\n },\r\n },\r\n };\r\n }\r\n return nd;\r\n });\r\n\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id: architectureId,\r\n dispatch,\r\n undo,\r\n a_id,\r\n takeSnapshot,\r\n });\r\n return updatedNodes;\r\n });\r\n };\r\n\r\n const handleChangeConnectionLineType = (value) => {\r\n let updatedNodes = getNodes();\r\n let updatedEdges = getEdges();\r\n\r\n setNodes((prev) => {\r\n updatedNodes = prev.map((nd) => {\r\n if (\r\n nd.type === \"TreeView\" &&\r\n nd.data?.rootParentId === data?.rootParentId\r\n ) {\r\n return {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n edgeType: value,\r\n },\r\n };\r\n }\r\n return nd;\r\n });\r\n return updatedNodes;\r\n });\r\n\r\n setEdges((prev) => {\r\n updatedEdges = prev.map((ed) => {\r\n if (\r\n ed.data?.isTreeView &&\r\n ed.data?.rootParentId === data?.rootParentId\r\n ) {\r\n return {\r\n ...ed,\r\n type: value,\r\n markerEnd: {\r\n ...ed.markerEnd,\r\n type:\r\n (value === \"step-edge\" || value === \"editable-edge\") &&\r\n !ed.markerEnd?.type\r\n ? MarkerType.ArrowClosed\r\n : ed.markerEnd?.type,\r\n },\r\n data: {\r\n ...ed.data,\r\n algorithm: Algorithm.BezierCatmullRom,\r\n },\r\n };\r\n }\r\n return ed;\r\n });\r\n return updatedEdges;\r\n });\r\n\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n edges: updatedEdges,\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id: architectureId,\r\n dispatch,\r\n undo,\r\n a_id,\r\n takeSnapshot,\r\n });\r\n };\r\n\r\n const handleBranchColorChange = (value) => {\r\n let updatedNodes = getNodes();\r\n let updatedEdges = getEdges();\r\n\r\n setNodes((prev) => {\r\n updatedNodes = prev.map((nd) => {\r\n if (\r\n nd.type === \"TreeView\" &&\r\n nd.data.rootParentId === data.rootParentId\r\n ) {\r\n return {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n border: {\r\n ...nd.data.border,\r\n borderColor: value,\r\n },\r\n nodeStyle: {\r\n ...nd.data.nodeStyle,\r\n backgroundColor:\r\n nd.data.type === \"child\" &&\r\n (nd.data.designType === \"second\" ||\r\n nd.data.designType === \"third\" ||\r\n nd.data.designType === \"six\" ||\r\n // nd.data.designType === \"eight\" ||\r\n nd.data.designType === \"nine\")\r\n ? value\r\n : nd.data?.nodeStyle?.backgroundColor,\r\n },\r\n },\r\n };\r\n }\r\n return nd;\r\n });\r\n return updatedNodes;\r\n });\r\n\r\n setEdges((prev) => {\r\n updatedEdges = prev.map((ed) => {\r\n if (\r\n ed.data?.isTreeView &&\r\n ed.data?.rootParentId === data?.rootParentId\r\n ) {\r\n return {\r\n ...ed,\r\n markerStart: {\r\n ...ed.markerStart,\r\n color: value,\r\n },\r\n markerEnd: {\r\n ...ed.markerEnd,\r\n color: value,\r\n },\r\n style: {\r\n ...ed.style,\r\n stroke: value,\r\n },\r\n };\r\n }\r\n return ed;\r\n });\r\n return updatedEdges;\r\n });\r\n\r\n debouncedUpdateJson(updatedNodes, updatedEdges);\r\n };\r\n\r\n const handleAutoLayoutChange = (value) => {\r\n setNodes((prev) => {\r\n const updatedNodes = prev.map((nd) => {\r\n if (\r\n nd.type === \"TreeView\" &&\r\n nd.data.rootParentId === data.rootParentId\r\n ) {\r\n return {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n autoLayout: value,\r\n },\r\n };\r\n }\r\n return nd;\r\n });\r\n\r\n const allMindMapNodes = updatedNodes\r\n .filter(\r\n (nd) =>\r\n nd.type === \"TreeView\" &&\r\n nd.data?.rootParentId === data?.rootParentId\r\n )\r\n .map((nd) => ({\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n autoLayout: value,\r\n manuallyPositioned: false,\r\n },\r\n }));\r\n\r\n const positionedNodes = createTreeLayout(\r\n allMindMapNodes,\r\n data?.rootParentId,\r\n data?.addition\r\n );\r\n\r\n const AdjustedNodes = prev.map((n) => {\r\n const matchingNode = positionedNodes.nodes.find(\r\n (resNode) => resNode.id === n.id\r\n );\r\n return matchingNode ? matchingNode : n;\r\n });\r\n\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: value ? AdjustedNodes : updatedNodes,\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id: architectureId,\r\n dispatch,\r\n undo,\r\n a_id,\r\n takeSnapshot,\r\n });\r\n return value ? AdjustedNodes : updatedNodes;\r\n });\r\n };\r\n\r\n const debouncedUpdateFontSize = debounce((fontSize) => {\r\n // Ensure fontSize is within the valid range (1-300)\r\n const validatedSize = Math.min(Math.max(parseInt(fontSize) || 1, 1), 300);\r\n\r\n if (editor.state.selection.empty) {\r\n editor\r\n .chain()\r\n .focus()\r\n .selectParentNode()\r\n .setFontSize(`${validatedSize}px`)\r\n .run();\r\n } else {\r\n editor\r\n .chain()\r\n .focus()\r\n .setFontSize(`${validatedSize}px`)\r\n .run();\r\n }\r\n\r\n setTextStyles((prev) => ({ ...prev, fontSize: `${validatedSize}px` }));\r\n }, 300);\r\n\r\n const handleUpdateFontSize = (fontSize) => {\r\n const sizeValue = parseInt(fontSize) || 1;\r\n const clampedSize = Math.min(Math.max(sizeValue, 1), 22);\r\n\r\n setTextStyles((prev) => ({ ...prev, fontSize: `${clampedSize}px` }));\r\n debouncedUpdateFontSize(clampedSize);\r\n };\r\n\r\n const handleFontSizeChange = (action) => {\r\n const currentFontSize = parseInt(textStyles.fontSize.match(/\\d+/)[0]);\r\n let newFontSize = currentFontSize;\r\n if (action === \"increase\" && currentFontSize <= 22) {\r\n newFontSize = currentFontSize + 1;\r\n } else if (action === \"decrease\" && currentFontSize > 1) {\r\n newFontSize = currentFontSize - 1;\r\n }\r\n\r\n // editor.chain().focus().setFontSize(`${newFontSize}px`).run();\r\n if (editor.state.selection.empty) {\r\n editor\r\n .chain()\r\n .focus()\r\n .selectParentNode()\r\n .setFontSize(`${newFontSize}px`)\r\n .run();\r\n setTextStyles((prev) => ({ ...prev, fontSize: `${newFontSize}px` }));\r\n } else {\r\n editor.chain().focus().setFontSize(`${newFontSize}px`).run();\r\n setTextStyles((prev) => ({ ...prev, fontSize: `${newFontSize}px` }));\r\n }\r\n updateNodeData();\r\n };\r\n\r\n const handleAddLinkInEditor = (e) => {\r\n if (e.key === \"Enter\" && url) {\r\n e.preventDefault();\r\n const linkText = extractDomainName(url); // Automatically extract simplified URL text\r\n\r\n // Get current cursor position, ignoring any selection\r\n const { to } = editor.state.selection;\r\n\r\n editor\r\n .chain()\r\n .focus()\r\n .setTextSelection(to)\r\n .insertContent(linkText)\r\n .setTextSelection({ from: to, to: to + linkText.length })\r\n .setLink({ href: url, title: url })\r\n .run();\r\n\r\n setUrl(\"\");\r\n setShowRefLink(false);\r\n updateNodeData();\r\n }\r\n };\r\n\r\n const changeToneData = [\r\n {\r\n label: \"Friendly\",\r\n key: \"friendly\",\r\n },\r\n {\r\n label: \"Professional\",\r\n key: \"professional\",\r\n },\r\n {\r\n label: \"Business\",\r\n key: \"business\",\r\n },\r\n {\r\n label: \"Fun\",\r\n key: \"fun\",\r\n },\r\n ];\r\n\r\n const expandMindmapData = [\r\n {\r\n label: \"Expand with topics\",\r\n key: \"expand_mindmap_topics\",\r\n },\r\n {\r\n label: \"Expand with questions\",\r\n key: \"expand_mindmap_questions\",\r\n },\r\n {\r\n label: \"Expand with ideas\",\r\n key: \"expand_mindmap_ideas\",\r\n },\r\n ];\r\n\r\n const translateData = [\r\n {\r\n label: \"English\",\r\n key: \"english\",\r\n },\r\n {\r\n label: \"Spanish\",\r\n key: \"spanish\",\r\n },\r\n {\r\n label: \"German\",\r\n key: \"german\",\r\n },\r\n {\r\n label: \"French\",\r\n key: \"french\",\r\n },\r\n {\r\n label: \"Japanese\",\r\n key: \"japanese\",\r\n },\r\n {\r\n label: \"Portuguese\",\r\n key: \"portuguese\",\r\n },\r\n {\r\n label: \"Hindi\",\r\n key: \"hindi\",\r\n },\r\n {\r\n label: \"Korean\",\r\n key: \"korean\",\r\n },\r\n {\r\n label: \"Polish\",\r\n key: \"polish\",\r\n },\r\n {\r\n label: \"Italian\",\r\n key: \"italian\",\r\n },\r\n {\r\n label: \"Arabic\",\r\n key: \"arabic\",\r\n },\r\n {\r\n label: \"Russian\",\r\n key: \"russian\",\r\n },\r\n {\r\n label: \"Danish\",\r\n key: \"danish\",\r\n },\r\n {\r\n label: \"Finnish\",\r\n key: \"finnish\",\r\n },\r\n {\r\n label: \"Norwegian\",\r\n key: \"norwegian\",\r\n },\r\n {\r\n label: \"Dutch\",\r\n key: \"dutch\",\r\n },\r\n {\r\n label: \"Swedish\",\r\n key: \"swedish\",\r\n },\r\n {\r\n label: \"Thai\",\r\n key: \"thai\",\r\n },\r\n ];\r\n\r\n const convertNodeToImage = async () => {\r\n localStorage.removeItem(\"frameCopiedImage\");\r\n const selectedNodeElement = document.querySelector(\r\n `[data-id='${node.id}']`\r\n );\r\n\r\n if (selectedNodeElement) {\r\n const applyComputedStyles = (originalElement, clonedElement) => {\r\n const computedStyles = window.getComputedStyle(originalElement);\r\n for (let key of computedStyles) {\r\n clonedElement.style[key] = computedStyles[key];\r\n }\r\n };\r\n\r\n const getChildNodes = (nodeId) => {\r\n const children = getNodes().filter(\r\n (node) => node?.parentNode === nodeId\r\n );\r\n\r\n return children.reduce((acc, child) => {\r\n const childElement = document.querySelector(\r\n `[data-id='${child.id}']`\r\n );\r\n\r\n if (childElement) {\r\n const clonedChild = childElement.cloneNode(true);\r\n applyComputedStyles(childElement, clonedChild);\r\n clonedChild.style.position = \"absolute\";\r\n clonedChild.style.left = child.position.x + \"px\";\r\n clonedChild.style.top = child.position.y + \"px\";\r\n clonedChild.style.transform = \"none\";\r\n const nestedChildNodes = getChildNodes(child.id);\r\n nestedChildNodes.forEach((nestedChild) => {\r\n clonedChild.appendChild(nestedChild);\r\n });\r\n acc.push(clonedChild);\r\n }\r\n return acc;\r\n }, []);\r\n };\r\n\r\n const clonedSelectedNode = selectedNodeElement.cloneNode(true);\r\n\r\n const childNodes = getChildNodes(node.id);\r\n\r\n childNodes.forEach((child) => {\r\n clonedSelectedNode.appendChild(child);\r\n });\r\n\r\n clonedSelectedNode.style.position = \"absolute\";\r\n clonedSelectedNode.style.top = \"0px\";\r\n clonedSelectedNode.style.left = \"0px\";\r\n clonedSelectedNode.style.zIndex = \"-999999999999\";\r\n\r\n document.body.appendChild(clonedSelectedNode);\r\n\r\n try {\r\n const canvas = await html2canvas(clonedSelectedNode, {\r\n useCORS: true,\r\n scale: 2,\r\n backgroundColor: null,\r\n });\r\n\r\n canvas.toBlob(\r\n async (blob) => {\r\n if (blob) {\r\n try {\r\n await navigator.clipboard.write([\r\n new ClipboardItem({\r\n \"image/png\": blob, // Image content\r\n \"text/plain\": new Blob([\"frameImg\"], {\r\n type: \"text/plain\",\r\n }),\r\n }),\r\n ]);\r\n\r\n const currentNode = getNode(node.id);\r\n\r\n localStorage.setItem(\r\n \"frameCopiedImage\",\r\n JSON.stringify({\r\n width: currentNode?.width,\r\n height: currentNode?.height,\r\n })\r\n );\r\n } catch (error) { }\r\n } else {\r\n }\r\n document.body.removeChild(clonedSelectedNode);\r\n },\r\n \"image/png\",\r\n 1.0\r\n );\r\n dispatch(\r\n successToast({\r\n message: \"Image copied\",\r\n })\r\n );\r\n setCopyImageLoading(false);\r\n } catch (error) {\r\n } finally {\r\n setShowMoreOptions(false);\r\n setCopyAsImage(false);\r\n }\r\n }\r\n };\r\n\r\n const updateParentIds = (nodes) => {\r\n // Create a set of all node IDs for fast lookup\r\n const nodeIds = new Set(nodes.map((node) => node.id));\r\n\r\n nodes.forEach((node) => {\r\n // Update orphan treeview nodes without valid parents\r\n if (node.type === \"TreeView\" && node.parentNode) {\r\n // Check if the parentId exists in the node array\r\n if (!nodeIds.has(node.parentNode)) {\r\n // Update the node as a top-level parent if the parent is not found\r\n node.parentNode = null;\r\n node.data = {\r\n ...node.data,\r\n type: \"parent\",\r\n rootParentId: node.id,\r\n topChildrenOrder: [],\r\n bottomChildrenOrder: [],\r\n leftChildrenOrder: [],\r\n rightChildrenOrder: [],\r\n [`${node.data.side}ChildrenOrder`]: node.data.childrenOrder,\r\n };\r\n\r\n // Remove childrenOrder key\r\n delete node.data.childrenOrder;\r\n }\r\n }\r\n });\r\n\r\n return nodes;\r\n };\r\n\r\n const assignRootParentIds = (nodes) => {\r\n function assignToChildren(parentNode, nodes) {\r\n nodes.forEach((node) => {\r\n if (node.type === \"TreeView\" && node.parentNode === parentNode.id) {\r\n assignToChildren(node, nodes);\r\n return {\r\n ...node,\r\n data: {\r\n ...node.data,\r\n rootParentId: node.id,\r\n },\r\n };\r\n }\r\n });\r\n }\r\n\r\n nodes.forEach((node) => {\r\n if (node.type === \"TreeView\" && !node.parentNode) {\r\n assignToChildren(node, nodes);\r\n return {\r\n ...node,\r\n data: {\r\n ...node.data,\r\n rootParentId: node.id,\r\n },\r\n };\r\n }\r\n });\r\n\r\n return nodes;\r\n };\r\n\r\n const handleClickDuplicate = () => {\r\n setShowMoreOptions(false);\r\n\r\n const now = Date.now();\r\n const idMapping = {};\r\n const currentNode = getNode(node?.id);\r\n\r\n const unChangedNodes = getNodes();\r\n let duplicatedNodes = [];\r\n let duplicatedEdges = [];\r\n let updatedNodes = [];\r\n let updatedEdges = [];\r\n\r\n const { nodes: allNodes, edges: allEdges } = getNodeWithAllChildrenAndEdges(\r\n currentNode,\r\n getNodes(),\r\n getEdges()\r\n );\r\n const { maxX } = findMinMaxHorizontalAbsolutePositions(allNodes);\r\n\r\n duplicatedNodes = updateParentIds(allNodes);\r\n duplicatedNodes = assignRootParentIds(duplicatedNodes);\r\n\r\n duplicatedNodes = duplicatedNodes.map((node) => {\r\n const id = `${node.id}-${now}`;\r\n idMapping[node.id] = id;\r\n return { ...node, id };\r\n });\r\n\r\n duplicatedNodes = duplicatedNodes.map((node) => {\r\n if (node.type === \"TreeView\" && node.data?.type === \"parent\") {\r\n return {\r\n ...node,\r\n data: {\r\n ...node.data,\r\n rootParentId: idMapping[node.data.rootParentId],\r\n leftChildrenOrder: (node.data?.leftChildrenOrder || []).map(\r\n (child) => ({\r\n ...child,\r\n id: idMapping[child.id],\r\n parentNode: idMapping[child.parentNode],\r\n })\r\n ),\r\n rightChildrenOrder: (node.data?.rightChildrenOrder || []).map(\r\n (child) => ({\r\n ...child,\r\n id: idMapping[child.id],\r\n parentNode: idMapping[child.parentNode],\r\n })\r\n ),\r\n topChildrenOrder: (node.data?.topChildrenOrder || []).map(\r\n (child) => ({\r\n ...child,\r\n id: idMapping[child.id],\r\n parentNode: idMapping[child.parentNode],\r\n })\r\n ),\r\n bottomChildrenOrder: (node.data?.bottomChildrenOrder || []).map(\r\n (child) => ({\r\n ...child,\r\n id: idMapping[child.id],\r\n parentNode: idMapping[child.parentNode],\r\n })\r\n ),\r\n },\r\n parentNode: idMapping[node.parentNode],\r\n position: {\r\n x: maxX + 250,\r\n y: node.positionAbsolute.y,\r\n },\r\n positionAbsolute: {\r\n x: maxX + 250,\r\n y: node.positionAbsolute.y,\r\n },\r\n };\r\n } else if (node.type === \"TreeView\" && node.data?.type === \"child\") {\r\n return {\r\n ...node,\r\n data: {\r\n ...node.data,\r\n rootParentId: idMapping[node.data.rootParentId],\r\n childrenOrder:\r\n node.data?.childrenOrder?.map((child) => ({\r\n ...child,\r\n id: idMapping[child.id],\r\n parentNode: idMapping[child.parentNode],\r\n })) || [],\r\n },\r\n hiddenBy: node?.hiddenBy ? idMapping[node.hiddenBy] : null,\r\n parentNode: idMapping[node.parentNode],\r\n positionAbsolute: {\r\n x: maxX + 250,\r\n y: node.positionAbsolute.y,\r\n },\r\n };\r\n }\r\n return node;\r\n });\r\n\r\n duplicatedEdges = allEdges\r\n .filter((edge) => idMapping[edge.source] && idMapping[edge.target])\r\n .map((edge) => {\r\n const id = `${edge.id}-${now}`;\r\n const source = idMapping[edge.source] || edge.source;\r\n const target = idMapping[edge.target] || edge.target;\r\n\r\n return {\r\n ...edge,\r\n id,\r\n source,\r\n target,\r\n };\r\n });\r\n\r\n updatedNodes = [...unChangedNodes, ...duplicatedNodes];\r\n updatedNodes = updatedNodes.map((nd) => ({ ...nd, selected: false }));\r\n setNodes(updatedNodes);\r\n\r\n setEdges((prevEdges) => {\r\n updatedEdges = [...prevEdges, ...duplicatedEdges];\r\n return updatedEdges;\r\n });\r\n\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n edges: updatedEdges,\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id: architectureId,\r\n dispatch,\r\n undo,\r\n a_id,\r\n should_delete: updatedNodes?.length === 0,\r\n takeSnapshot,\r\n });\r\n };\r\n\r\n const handleCreateFrame = () => {\r\n setShowMoreOptions(false);\r\n const allTreeViewNodes = getNodes().filter(\r\n (node) =>\r\n node.type === \"TreeView\" &&\r\n node.data?.rootParentId === data?.rootParentId\r\n );\r\n const { minX, maxX, minY, maxY } =\r\n findMinMaxHorizontalAbsolutePositions(allTreeViewNodes);\r\n\r\n const frameNode = [\r\n {\r\n id: getId(),\r\n type: \"frame\",\r\n variant: \"custom\",\r\n selected: false,\r\n style: {\r\n height: maxY - minY + 100,\r\n width: maxX - minX + 250,\r\n zIndex: -1,\r\n },\r\n data: {\r\n type: \"frame\",\r\n variant: \"custom\",\r\n style: {\r\n background: \"rgba(255, 255, 255, 1)\",\r\n },\r\n label: \"frame\",\r\n hide: false,\r\n locked: false,\r\n isShadow: false,\r\n showBorder: false,\r\n border: {\r\n width: 1,\r\n type: \"solid\",\r\n borderColor: \"rgba(3, 11, 22, 1)\",\r\n opacity: 1,\r\n },\r\n frameNo: 1,\r\n frameName: \"Mind Map\",\r\n },\r\n position: {\r\n x: minX - 50,\r\n y: minY - 35,\r\n },\r\n positionAbsolute: {\r\n x: minX - 35,\r\n y: minY - 35,\r\n },\r\n zIndex: -1,\r\n draggable: true,\r\n },\r\n ];\r\n\r\n setNodes((prevNodes) => [...frameNode, ...prevNodes]);\r\n };\r\n\r\n const exportNodeToCSV = () => {\r\n if (!node) {\r\n console.warn(\"No node available to export\");\r\n return;\r\n }\r\n\r\n const currNode = getNode(node?.id);\r\n\r\n // Define the CSV headers\r\n const headers = [\r\n \"Node ID\",\r\n \"Type\",\r\n \"Label\",\r\n \"Parent ID\",\r\n \"Position X\",\r\n \"Position Y\",\r\n ];\r\n\r\n // Create an array to store the rows\r\n const rows = [];\r\n\r\n // Add headers as the first row\r\n rows.push(headers.join(\",\"));\r\n\r\n // Create a row for the single node\r\n const row = [\r\n currNode.id,\r\n currNode.type,\r\n removeHTMLTags(currNode.data.label),\r\n currNode.parentNode || \"\",\r\n currNode.position?.x || \"\",\r\n currNode.position?.y || \"\",\r\n ];\r\n\r\n // Add the row to the rows array\r\n rows.push(row.join(\",\"));\r\n\r\n // Convert the rows to a single CSV string\r\n const csvContent = rows.join(\"\\n\");\r\n\r\n // Create a Blob from the CSV string\r\n const blob = new Blob([csvContent], { type: \"text/csv;charset=utf-8;\" });\r\n\r\n // Create a link element to download the file\r\n const link = document.createElement(\"a\");\r\n const url = URL.createObjectURL(blob);\r\n\r\n link.setAttribute(\"href\", url);\r\n link.setAttribute(\"download\", `node_${currNode.id}_export.csv`);\r\n link.style.visibility = \"hidden\";\r\n\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n };\r\n\r\n const handleBringToFront = () => {\r\n const interSectedNodes = getIntersectingNodes(node, true);\r\n const { maxZIndex } = getMaxAndMinZIndex(interSectedNodes);\r\n setNodes((prevNodes) => {\r\n const updatedNodes = prevNodes.map((nd) => {\r\n if (nd.id === node?.id) {\r\n return {\r\n ...nd,\r\n style: {\r\n ...nd.style,\r\n zIndex: maxZIndex + 1,\r\n },\r\n };\r\n }\r\n return nd;\r\n });\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n },\r\n },\r\n id: architectureId,\r\n dispatch,\r\n undo,\r\n takeSnapshot,\r\n a_id,\r\n });\r\n return updatedNodes;\r\n });\r\n };\r\n\r\n const handleSendToBack = () => {\r\n const interSectedNodes = getIntersectingNodes(node, true);\r\n const { minZIndex } = getMaxAndMinZIndex(interSectedNodes);\r\n setNodes((prevNodes) => {\r\n const updatedNodes = prevNodes.map((nd) => {\r\n if (nd.id === node?.id) {\r\n return {\r\n ...nd,\r\n style: {\r\n ...nd.style,\r\n zIndex: minZIndex - 1,\r\n },\r\n };\r\n }\r\n return nd;\r\n });\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n },\r\n },\r\n id: architectureId,\r\n dispatch,\r\n undo,\r\n takeSnapshot,\r\n a_id,\r\n });\r\n return updatedNodes;\r\n });\r\n };\r\n\r\n const copyStyle = useCallback(async () => {\r\n const isColorPickerOpen = document.getElementById(\"rbgcp-wrapper\");\r\n const isAnyInputFocused = isInputFocused();\r\n let selectedNode = getNodes().filter((node) => node.selected);\r\n\r\n if (!isColorPickerOpen && !isAnyInputFocused && selectedNode.length === 1) {\r\n const currNode = selectedNode[0];\r\n let copiedStyle = {};\r\n\r\n if (currNode.type === \"TreeView\") {\r\n copiedStyle = {\r\n TreeView: currNode, // Copy relevant style data\r\n };\r\n }\r\n\r\n const copyData = {\r\n style: copiedStyle, // Wrap the style in an object\r\n };\r\n\r\n try {\r\n await navigator.clipboard.writeText(JSON.stringify(copyData));\r\n } catch (err) { }\r\n }\r\n }, [getNodes]);\r\n\r\n const pasteStyle = useCallback(async () => {\r\n const isColorPickerOpen = document.getElementById(\"rbgcp-wrapper\");\r\n const isAnyInputFocused = isInputFocused();\r\n\r\n if (isColorPickerOpen || isAnyInputFocused) {\r\n return; // Exit early if the color picker or input is focused\r\n }\r\n\r\n let clipboardStyle = {};\r\n\r\n try {\r\n const clipboardText = await navigator.clipboard.readText();\r\n clipboardStyle = JSON.parse(clipboardText); // Parse the clipboard content\r\n\r\n if (clipboardStyle.style && clipboardStyle.style.TreeView) {\r\n const updatedNodes = getNodes().map((nd) => {\r\n if (nd.id === node?.id) {\r\n return {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n showBorder: clipboardStyle.style.TreeView.data.showBorder,\r\n border: {\r\n width: clipboardStyle.style.TreeView.data.border.width,\r\n type: clipboardStyle.style.TreeView.data.border.type,\r\n radius: clipboardStyle.style.TreeView.data.border.radius,\r\n borderColor:\r\n clipboardStyle.style.TreeView.data.border.borderColor,\r\n opacity: clipboardStyle.style.TreeView.data.border.opacity,\r\n },\r\n nodeStyle: {\r\n backgroundColor:\r\n clipboardStyle.style.TreeView.data.nodeStyle\r\n .backgroundColor,\r\n borderType:\r\n clipboardStyle.style.TreeView.data.nodeStyle.borderType,\r\n },\r\n edgeColor: clipboardStyle.style.TreeView.data.edgeColor,\r\n },\r\n };\r\n }\r\n return nd;\r\n });\r\n\r\n setNodes(updatedNodes);\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id: architectureId,\r\n dispatch,\r\n undo,\r\n a_id,\r\n takeSnapshot,\r\n });\r\n } else {\r\n console.warn(\"No valid style found in clipboard\");\r\n }\r\n } catch (err) {\r\n console.error(\"Failed to read or parse clipboard contents:\", err);\r\n }\r\n }, []);\r\n\r\n const handleClickDelete = () => {\r\n setShowMoreOptions(false);\r\n\r\n setNodes((prevNodes) => {\r\n let updatedNodes = prevNodes?.filter((nd) => nd.id !== node?.id);\r\n updatedNodes = removeOrphanedNodes(updatedNodes);\r\n\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id: architectureId,\r\n dispatch,\r\n undo,\r\n a_id,\r\n should_delete: updatedNodes?.length === 0,\r\n takeSnapshot,\r\n });\r\n return updatedNodes;\r\n });\r\n };\r\n\r\n const moreMenusData = [\r\n {\r\n id: \"child-1\",\r\n children: [\r\n {\r\n mainLabel: \"Copy\",\r\n shortCut: \"Ctrl + C\",\r\n onClick: () => {\r\n copy();\r\n setShowMoreOptions(false);\r\n },\r\n },\r\n // {\r\n // mainLabel: \"Paste\",\r\n // shortCut: \"Ctrl + V\",\r\n // onClick: () => {\r\n // paste();\r\n // },\r\n // },\r\n {\r\n mainLabel: \"Copy as Image\",\r\n shortCut: \"Ctrl + shift + C\",\r\n onClick: () => {\r\n setCopyAsImage(true);\r\n setCopyImageLoading(true);\r\n // convertNodeToImage();\r\n setTimeout(() => {\r\n convertNodeToImage();\r\n }, 100);\r\n },\r\n },\r\n {\r\n mainLabel: \"Duplicate\",\r\n shortCut: \"Ctrl + D\",\r\n onClick: () => {\r\n handleClickDuplicate();\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n id: \"child-2\",\r\n children: [\r\n {\r\n mainLabel: \"Copy Style\",\r\n shortCut: \"Ctrl + Alt + C\",\r\n onClick: () => {\r\n setShowMoreOptions(false);\r\n copyStyle();\r\n },\r\n },\r\n {\r\n mainLabel: \"Paste Style\",\r\n shortCut: \"Ctrl + Alt + V\",\r\n onClick: () => {\r\n setShowMoreOptions(false);\r\n pasteStyle();\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n id: \"child-3\",\r\n children: [\r\n {\r\n mainLabel: data?.locked ? \"Unlock\" : \"Lock\",\r\n shortCut: \"Ctrl + shift + L\",\r\n onClick: () => {\r\n setShowMoreOptions(false);\r\n handleToggleLock();\r\n },\r\n },\r\n ],\r\n },\r\n // {\r\n // id: \"child-4\",\r\n // children: [\r\n // {\r\n // mainLabel: \"Copy Link\",\r\n // shortCut: \"Ctrl + Alt + shift + C\",\r\n // onClick: () => {\r\n // setShowMoreOptions(false);\r\n // },\r\n // },\r\n // {\r\n // mainLabel: \"Link to\",\r\n // shortCut: \"Alt + Ctrl + K\",\r\n // onClick: () => {\r\n // setShowMoreOptions(false);\r\n // },\r\n // },\r\n // ],\r\n // },\r\n {\r\n id: \"child-5\",\r\n children: [\r\n {\r\n mainLabel: \"Bring to front\",\r\n shortCut: \"Ctrl + shift + F\",\r\n onClick: () => {\r\n setShowMoreOptions(false);\r\n handleBringToFront();\r\n },\r\n },\r\n {\r\n mainLabel: \"Send to back\",\r\n shortCut: \"Ctrl + shift + B\",\r\n onClick: () => {\r\n setShowMoreOptions(false);\r\n handleSendToBack();\r\n },\r\n },\r\n ],\r\n },\r\n ...((data?.type === \"parent\" && [\r\n {\r\n id: \"child-6\",\r\n children: [\r\n {\r\n mainLabel: \"Create Frame\",\r\n shortCut: \"\",\r\n onClick: () => {\r\n handleCreateFrame();\r\n },\r\n },\r\n ],\r\n },\r\n ]) ||\r\n []),\r\n {\r\n id: \"child-7\",\r\n children: [\r\n {\r\n mainLabel: \"Export\",\r\n shortCut: \"CSV (Excel)\",\r\n onClick: () => {\r\n exportNodeToCSV();\r\n setShowMoreOptions(false);\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n id: \"child-8\",\r\n children: [\r\n {\r\n mainLabel: \"Delete\",\r\n shortCut: \"Delete\",\r\n onClick: () => {\r\n setShowMoreOptions(false);\r\n handleClickDelete();\r\n },\r\n },\r\n ],\r\n },\r\n ];\r\n\r\n // shortCut keys added\r\n useKeyboardShortcut([\"Control\", \"Shift\", \"C\"], convertNodeToImage);\r\n useKeyboardShortcut([\"Control\", \"D\"], handleClickDuplicate);\r\n useKeyboardShortcut([\"Control\", \"Shift\", \"L\"], handleToggleLock);\r\n useKeyboardShortcut([\"Control\", \"Shift\", \"F\"], handleSendToBack);\r\n useKeyboardShortcut([\"Control\", \"Shift\", \"B\"], handleBringToFront);\r\n useKeyboardShortcut([\"Control\", \"Alt\", \"C\"], copyStyle);\r\n useKeyboardShortcut([\"Control\", \"Alt\", \"V\"], pasteStyle);\r\n\r\n return (\r\n \r\n {\r\n setShowAIOptions(false);\r\n setShowBackgroundPopup(false);\r\n setShowMindMapTheme(false);\r\n // setShowBorderPopup(false);\r\n setShowNodetype(false);\r\n setShowConnectionLine(false);\r\n setShowBranchColor(false);\r\n setShowFontFamily(false);\r\n setShowFontSizeOpt(false);\r\n setShowFontStyle(false);\r\n setShowTextAlign(false);\r\n // setShowTextColor(false);\r\n setShowFillColor(false);\r\n setShowRefLink(false);\r\n setIsShowToolsPop(true);\r\n // !copyImageLoading && setShowMoreOptions(false);\r\n }}\r\n >\r\n {!data?.locked && (\r\n <>\r\n {data?.type === \"parent\" && (\r\n <>\r\n setShowMindMapTheme(false)}\r\n >\r\n \r\n setShowMindMapTheme(false)}\r\n open={showMindMapTheme}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n \r\n {\r\n handleThemeChange(\"horizontal\");\r\n setShowMindMapTheme(false);\r\n }}\r\n >\r\n \r\n \r\n {\r\n handleThemeChange(\"vertical\");\r\n setShowMindMapTheme(false);\r\n }}\r\n >\r\n \r\n \r\n \r\n }\r\n >\r\n \r\n \r\n {\r\n e.stopPropagation();\r\n setShowMindMapTheme(!showMindMapTheme);\r\n setShowBackgroundPopup(false);\r\n setShowBorderPopup(false);\r\n setShowNodetype(false);\r\n setShowConnectionLine(false);\r\n setShowBranchColor(false);\r\n setShowFontFamily(false);\r\n setShowFontSizeOpt(false);\r\n setShowFontStyle(false);\r\n setShowTextAlign(false);\r\n setShowTextColor(false);\r\n setShowFillColor(false);\r\n setShowRefLink(false);\r\n setIsShowToolsPop(true);\r\n setShowMoreOptions(false);\r\n }}\r\n >\r\n {data?.addition === \"horizontal\" ? (\r\n \r\n ) : (\r\n \r\n )}{\" \"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n )}\r\n\r\n setShowBackgroundPopup(false)}\r\n >\r\n \r\n setShowBackgroundPopup(false)}\r\n open={showBackgroundPopup}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n {\r\n handleBackgroundColorChange(color);\r\n }}\r\n />\r\n }\r\n >\r\n \r\n \r\n {\r\n e.stopPropagation();\r\n setShowBackgroundPopup(!showBackgroundPopup);\r\n setShowMindMapTheme(false);\r\n setShowBorderPopup(false);\r\n setShowNodetype(false);\r\n setShowConnectionLine(false);\r\n setShowBranchColor(false);\r\n setShowFontFamily(false);\r\n setShowFontSizeOpt(false);\r\n setShowFontStyle(false);\r\n setShowTextAlign(false);\r\n setShowTextColor(false);\r\n setShowFillColor(false);\r\n setShowRefLink(false);\r\n setIsShowToolsPop(true);\r\n setShowMoreOptions(false);\r\n setShowAIOptions(false);\r\n }}\r\n >\r\n {data?.nodeStyle?.backgroundColor === \"transparent\" ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n setShowBorderPopup(false)}>\r\n \r\n setShowBorderPopup(false)}\r\n open={showBorderPopup}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={}\r\n >\r\n \r\n \r\n {\r\n e.stopPropagation();\r\n setShowBorderPopup(!showBorderPopup);\r\n setShowBackgroundPopup(false);\r\n setShowMindMapTheme(false);\r\n setShowNodetype(false);\r\n setShowConnectionLine(false);\r\n setShowBranchColor(false);\r\n setShowFontFamily(false);\r\n setShowFontSizeOpt(false);\r\n setShowFontStyle(false);\r\n setShowTextAlign(false);\r\n setShowTextColor(false);\r\n setShowFillColor(false);\r\n setShowRefLink(false);\r\n setIsShowToolsPop(true);\r\n setShowMoreOptions(false);\r\n setShowAIOptions(false);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n setShowNodetype(false)}>\r\n \r\n setShowNodetype(false)}\r\n open={showNodetype}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n \r\n {\r\n setShowNodetype(false);\r\n handleNodeTypeChange({\r\n borderStyle: \"none\",\r\n borderRadius: \"0px\",\r\n borderType: \"first\",\r\n borderWidth: 2,\r\n });\r\n }}\r\n >\r\n \r\n None\r\n \r\n \r\n {\r\n setShowNodetype(false);\r\n handleNodeTypeChange({\r\n borderStyle: \"solid\",\r\n borderRadius: \"0px\",\r\n borderType: \"second\",\r\n borderWidth: 2,\r\n });\r\n }}\r\n >\r\n \r\n \r\n {\r\n setShowNodetype(false);\r\n handleNodeTypeChange({\r\n borderStyle: \"solid\",\r\n borderRadius: \"10px\",\r\n borderType: \"third\",\r\n borderWidth: 2,\r\n });\r\n }}\r\n >\r\n \r\n \r\n {\r\n setShowNodetype(false);\r\n handleNodeTypeChange({\r\n borderStyle: \"solid\",\r\n borderRadius: \"25px\",\r\n borderType: \"four\",\r\n borderWidth: 2,\r\n });\r\n }}\r\n >\r\n \r\n \r\n {\r\n setShowNodetype(false);\r\n handleNodeTypeChange({\r\n borderStyle: \"solid\",\r\n borderRadius: \"0px\",\r\n borderType: \"five\",\r\n borderWidth: \"0px 0px 2px 0px\",\r\n });\r\n }}\r\n >\r\n \r\n \r\n \r\n }\r\n >\r\n \r\n \r\n {\r\n e.stopPropagation();\r\n setShowNodetype(!showNodetype);\r\n setShowMindMapTheme(false);\r\n setShowBackgroundPopup(false);\r\n setShowBorderPopup(false);\r\n setShowConnectionLine(false);\r\n setShowBranchColor(false);\r\n setShowFontFamily(false);\r\n setShowFontSizeOpt(false);\r\n setShowFontStyle(false);\r\n setShowTextAlign(false);\r\n setShowTextColor(false);\r\n setShowFillColor(false);\r\n setShowRefLink(false);\r\n setIsShowToolsPop(true);\r\n setShowMoreOptions(false);\r\n setShowAIOptions(false);\r\n }}\r\n >\r\n {data?.nodeStyle?.borderType === \"first\" ||\r\n data?.nodeStyle?.borderType === \"second\" ? (\r\n \r\n ) : data?.nodeStyle?.borderType === \"third\" ? (\r\n \r\n ) : data?.nodeStyle?.borderType === \"four\" ? (\r\n \r\n ) : (\r\n \r\n )}{\" \"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {data?.type === \"parent\" && (\r\n <>\r\n setShowConnectionLine(false)}\r\n >\r\n \r\n setShowConnectionLine(false)}\r\n open={showConnectionLine}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n \r\n {\r\n setShowConnectionLine(false);\r\n handleChangeConnectionLineType(\r\n \"treeNodeEdgeType3\"\r\n );\r\n }}\r\n >\r\n \r\n \r\n {\r\n setShowConnectionLine(false);\r\n handleChangeConnectionLineType(\"step-edge\");\r\n }}\r\n >\r\n \r\n \r\n {\r\n setShowConnectionLine(false);\r\n handleChangeConnectionLineType(\"editable-edge\");\r\n }}\r\n >\r\n \r\n \r\n {\r\n setShowConnectionLine(false);\r\n handleChangeConnectionLineType(\r\n \"treeNodeEdgeType8\"\r\n );\r\n }}\r\n >\r\n \r\n \r\n {\r\n setShowConnectionLine(false);\r\n handleChangeConnectionLineType(\r\n \"treeNodeEdgeType1\"\r\n );\r\n }}\r\n >\r\n \r\n \r\n \r\n }\r\n >\r\n \r\n \r\n {\r\n e.stopPropagation();\r\n setShowConnectionLine(!showConnectionLine);\r\n setShowMindMapTheme(false);\r\n setShowBackgroundPopup(false);\r\n setShowBorderPopup(false);\r\n setShowNodetype(false);\r\n setShowBranchColor(false);\r\n setShowFontFamily(false);\r\n setShowFontSizeOpt(false);\r\n setShowFontStyle(false);\r\n setShowTextAlign(false);\r\n setShowTextColor(false);\r\n setShowFillColor(false);\r\n setShowRefLink(false);\r\n setIsShowToolsPop(true);\r\n setShowMoreOptions(false);\r\n setShowAIOptions(false);\r\n }}\r\n >\r\n {data?.edgeType === \"treeNodeEdgeType3\" ? (\r\n \r\n ) : data?.edgeType === \"step-edge\" ? (\r\n \r\n ) : data?.edgeType === \"editable-edge\" ? (\r\n \r\n ) : data?.edgeType === \"treeNodeEdgeType8\" ? (\r\n \r\n ) : (\r\n \r\n )}{\" \"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n setShowBranchColor(false)}\r\n >\r\n {\r\n e.stopPropagation();\r\n }}\r\n >\r\n setShowBranchColor(false)}\r\n open={showBranchColor}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n {\r\n handleBranchColorChange(color);\r\n setShowBranchColor(false);\r\n }}\r\n />\r\n }\r\n >\r\n \r\n \r\n {\r\n e.stopPropagation();\r\n setShowBranchColor(!showBranchColor);\r\n setShowMindMapTheme(false);\r\n setShowBackgroundPopup(false);\r\n setShowBorderPopup(false);\r\n setShowNodetype(false);\r\n setShowConnectionLine(false);\r\n setShowFontFamily(false);\r\n setShowFontSizeOpt(false);\r\n setShowFontStyle(false);\r\n setShowTextAlign(false);\r\n setShowTextColor(false);\r\n setShowFillColor(false);\r\n setShowRefLink(false);\r\n setIsShowToolsPop(true);\r\n setShowMoreOptions(false);\r\n setShowAIOptions(false);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n {\r\n handleAutoLayoutChange(value);\r\n }}\r\n />\r\n \r\n Auto\r\n \r\n \r\n \r\n )}\r\n\r\n \r\n {hasSelectedText(editor) && (\r\n <>\r\n setShowFontFamily(false)}>\r\n \r\n setShowFontFamily(false)}\r\n open={showFontFamily}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n {\r\n e.stopPropagation();\r\n }}\r\n >\r\n {fontFamilyArr?.map((val, i) => (\r\n {\r\n if (editor.state.selection.empty) {\r\n editor\r\n .chain()\r\n .focus()\r\n .selectParentNode()\r\n .setFontFamily(val.family)\r\n .run();\r\n } else {\r\n editor\r\n .chain()\r\n .focus()\r\n .setFontFamily(val.family)\r\n .run();\r\n }\r\n updateNodeData();\r\n setShowFontFamily(false);\r\n setCurrentFontFamily(val.name);\r\n }}\r\n >\r\n {val.name}{\" \"}\r\n {currentFontFamily === val.name && (\r\n \r\n )}\r\n \r\n ))}\r\n \r\n }\r\n >\r\n {\r\n e.stopPropagation();\r\n setShowFontFamily(!showFontFamily);\r\n setShowMindMapTheme(false);\r\n setShowBackgroundPopup(false);\r\n setShowBorderPopup(false);\r\n setShowNodetype(false);\r\n setShowConnectionLine(false);\r\n setShowBranchColor(false);\r\n setShowFontSizeOpt(false);\r\n setShowFontStyle(false);\r\n setShowTextAlign(false);\r\n setShowTextColor(false);\r\n setShowFillColor(false);\r\n setShowRefLink(false);\r\n setIsShowToolsPop(true);\r\n setShowMoreOptions(false);\r\n setShowAIOptions(false);\r\n }}\r\n >\r\n \r\n \r\n \r\n {currentFontFamily}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n setShowFontSizeOpt(false)}\r\n >\r\n \r\n setShowFontSizeOpt(false)}\r\n open={showFontSizeOpt}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n \r\n {fontSizeArr?.map((val, i) => {\r\n return (\r\n {\r\n // editor\r\n // .chain()\r\n // .focus()\r\n // .setFontSize(`${val}px`)\r\n // .run();\r\n if (editor.state.selection.empty) {\r\n editor\r\n .chain()\r\n .focus()\r\n .selectParentNode()\r\n .setFontSize(`${val}px`)\r\n .run();\r\n } else {\r\n editor\r\n .chain()\r\n .focus()\r\n .setFontSize(`${val}px`)\r\n .run();\r\n }\r\n updateNodeData();\r\n setTextStyles((prev) => ({\r\n ...prev,\r\n fontSize: `${val}px`,\r\n }))\r\n setShowFontSizeOpt(false);\r\n }}\r\n >\r\n {val}\r\n \r\n );\r\n })}\r\n \r\n }\r\n >\r\n {\r\n e.stopPropagation();\r\n setShowFontSizeOpt(!showFontSizeOpt);\r\n setShowMindMapTheme(false);\r\n setShowBackgroundPopup(false);\r\n setShowBorderPopup(false);\r\n setShowNodetype(false);\r\n setShowConnectionLine(false);\r\n setShowBranchColor(false);\r\n setShowFontFamily(false);\r\n setShowFontStyle(false);\r\n setShowTextAlign(false);\r\n setShowTextColor(false);\r\n setShowFillColor(false);\r\n setShowRefLink(false);\r\n setIsShowToolsPop(true);\r\n setShowMoreOptions(false);\r\n setShowAIOptions(false);\r\n }}\r\n >\r\n \r\n \r\n handleUpdateFontSize(e.target.value)}\r\n // onBlur={(e) => {\r\n // const value = parseInt(e.target.value) || 1;\r\n // const clampedValue = Math.min(Math.max(value, 1), 300);\r\n // handleUpdateFontSize(clampedValue);\r\n // }}\r\n />\r\n \r\n {\r\n e.stopPropagation();\r\n setShowFontSizeOpt(false);\r\n handleFontSizeChange(\"increase\");\r\n }}\r\n >\r\n {\" \"}\r\n \r\n \r\n {\r\n e.stopPropagation();\r\n setShowFontSizeOpt(false);\r\n if (\r\n parseInt(\r\n textStyles.fontSize.match(/\\d+/)[0]\r\n ) > 1\r\n ) {\r\n handleFontSizeChange(\"decrease\");\r\n }\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n setShowFontStyle(false)}>\r\n \r\n setShowFontStyle(false)}\r\n open={showFontStyle}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n \r\n \r\n {\r\n e.stopPropagation();\r\n // editor.chain().focus().toggleBold().run();\r\n if (editor.state.selection.empty) {\r\n editor\r\n .chain()\r\n .focus()\r\n .selectParentNode()\r\n .toggleBold()\r\n .run();\r\n } else {\r\n editor.chain().focus().toggleBold().run();\r\n }\r\n updateNodeData();\r\n setShowFontStyle(false);\r\n }}\r\n >\r\n \r\n \r\n \r\n\r\n \r\n {\r\n e.stopPropagation();\r\n // editor.chain().focus().toggleItalic().run();\r\n if (editor.state.selection.empty) {\r\n editor\r\n .chain()\r\n .focus()\r\n .selectParentNode()\r\n .toggleItalic()\r\n .run();\r\n } else {\r\n editor.chain().focus().toggleItalic().run();\r\n }\r\n updateNodeData();\r\n setShowFontStyle(false);\r\n }}\r\n >\r\n \r\n \r\n \r\n\r\n \r\n {\r\n e.stopPropagation();\r\n // editor.chain().focus().toggleUnderline().run();\r\n if (editor.state.selection.empty) {\r\n editor\r\n .chain()\r\n .focus()\r\n .selectParentNode()\r\n .toggleUnderline()\r\n .run();\r\n } else {\r\n editor\r\n .chain()\r\n .focus()\r\n .toggleUnderline()\r\n .run();\r\n }\r\n updateNodeData();\r\n setShowFontStyle(false);\r\n }}\r\n >\r\n \r\n \r\n \r\n\r\n \r\n {\r\n e.stopPropagation();\r\n // editor.chain().focus().toggleStrike().run();\r\n if (editor.state.selection.empty) {\r\n editor\r\n .chain()\r\n .focus()\r\n .selectParentNode()\r\n .toggleStrike()\r\n .run();\r\n } else {\r\n editor.chain().focus().toggleStrike().run();\r\n }\r\n updateNodeData();\r\n setShowFontStyle(false);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n }\r\n >\r\n \r\n \r\n {\r\n e.stopPropagation();\r\n setShowFontStyle(!showFontStyle);\r\n setShowMindMapTheme(false);\r\n setShowBackgroundPopup(false);\r\n setShowBorderPopup(false);\r\n setShowNodetype(false);\r\n setShowConnectionLine(false);\r\n setShowBranchColor(false);\r\n setShowFontFamily(false);\r\n setShowFontSizeOpt(false);\r\n setShowTextAlign(false);\r\n setShowTextColor(false);\r\n setShowFillColor(false);\r\n setShowRefLink(false);\r\n setIsShowToolsPop(true);\r\n setShowMoreOptions(false);\r\n setShowAIOptions(false);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n setShowTextAlign(false)}>\r\n \r\n setShowTextAlign(false)}\r\n open={showTextAlign}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n \r\n {\r\n // editor.chain().focus().setTextAlign(\"left\").run();\r\n // editor\r\n // .chain()\r\n // .focus()\r\n // .setTextAlign(\"justify\")\r\n // .run();\r\n if (editor.state.selection.empty) {\r\n editor\r\n .chain()\r\n .focus()\r\n .selectParentNode()\r\n .setTextAlign(\"justify\")\r\n .run();\r\n } else {\r\n editor\r\n .chain()\r\n .focus()\r\n .setTextAlign(\"justify\")\r\n .run();\r\n }\r\n updateNodeData();\r\n setShowTextAlign(false);\r\n }}\r\n >\r\n \r\n \r\n {\r\n // editor\r\n // .chain()\r\n // .focus()\r\n // .setTextAlign(\"center\")\r\n // .run();\r\n if (editor.state.selection.empty) {\r\n editor\r\n .chain()\r\n .focus()\r\n .selectParentNode()\r\n .setTextAlign(\"center\")\r\n .run();\r\n } else {\r\n editor\r\n .chain()\r\n .focus()\r\n .setTextAlign(\"center\")\r\n .run();\r\n }\r\n updateNodeData();\r\n setShowTextAlign(false);\r\n }}\r\n >\r\n \r\n \r\n\r\n {\r\n // editor\r\n // .chain()\r\n // .focus()\r\n // .setTextAlign(\"right\")\r\n // .run();\r\n if (editor.state.selection.empty) {\r\n editor\r\n .chain()\r\n .focus()\r\n .selectParentNode()\r\n .setTextAlign(\"right\")\r\n .run();\r\n } else {\r\n editor\r\n .chain()\r\n .focus()\r\n .setTextAlign(\"right\")\r\n .run();\r\n }\r\n updateNodeData();\r\n setShowTextAlign(false);\r\n }}\r\n >\r\n \r\n \r\n \r\n }\r\n >\r\n \r\n \r\n {\r\n e.stopPropagation();\r\n setShowTextAlign(!showTextAlign);\r\n setShowMindMapTheme(false);\r\n setShowBackgroundPopup(false);\r\n setShowBorderPopup(false);\r\n setShowNodetype(false);\r\n setShowConnectionLine(false);\r\n setShowBranchColor(false);\r\n setShowFontFamily(false);\r\n setShowFontSizeOpt(false);\r\n setShowFontStyle(false);\r\n setShowTextColor(false);\r\n setShowFillColor(false);\r\n setShowRefLink(false);\r\n setIsShowToolsPop(true);\r\n setShowMoreOptions(false);\r\n setShowAIOptions(false);\r\n }}\r\n >\r\n {textStyles.textAlign === \"justify\" ? (\r\n \r\n ) : textStyles.textAlign === \"center\" ? (\r\n \r\n ) : (\r\n \r\n )}{\" \"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n setShowTextColor(false)}>\r\n {\r\n e.stopPropagation();\r\n }}\r\n >\r\n setShowTextColor(false)}\r\n open={showTextColor}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n {\r\n setCurrentTextColor(color);\r\n // editor.chain().focus().setColor(color).run();\r\n if (editor.state.selection.empty) {\r\n editor\r\n .chain()\r\n .focus()\r\n .selectParentNode()\r\n .setColor(color)\r\n .run();\r\n } else {\r\n editor.chain().focus().setColor(color).run();\r\n }\r\n updateNodeData();\r\n // setShowTextColor(false);\r\n }}\r\n />\r\n }\r\n >\r\n \r\n \r\n {\r\n e.stopPropagation();\r\n setShowTextColor(!showTextColor);\r\n setShowMindMapTheme(false);\r\n setShowBackgroundPopup(false);\r\n setShowBorderPopup(false);\r\n setShowNodetype(false);\r\n setShowConnectionLine(false);\r\n setShowBranchColor(false);\r\n setShowFontFamily(false);\r\n setShowFontSizeOpt(false);\r\n setShowFontStyle(false);\r\n setShowTextAlign(false);\r\n setShowFillColor(false);\r\n setShowRefLink(false);\r\n setIsShowToolsPop(true);\r\n setShowMoreOptions(false);\r\n setShowAIOptions(false);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n setShowFillColor(false)}>\r\n {\r\n e.stopPropagation();\r\n }}\r\n >\r\n setShowFillColor(false)}\r\n open={showFillColor}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n {\r\n setCurrentTextHighlightColor(color);\r\n // editor\r\n // .chain()\r\n // .focus()\r\n // .toggleHighlight({ color })\r\n // .run();\r\n if (editor.state.selection.empty) {\r\n editor\r\n .chain()\r\n .focus()\r\n .selectParentNode()\r\n .toggleHighlight({ color })\r\n .run();\r\n } else {\r\n editor\r\n .chain()\r\n .focus()\r\n .toggleHighlight({ color })\r\n .run();\r\n }\r\n updateNodeData();\r\n setShowFillColor(false);\r\n }}\r\n />\r\n }\r\n >\r\n \r\n \r\n {\r\n e.stopPropagation();\r\n setShowFillColor(!showFillColor);\r\n setShowMindMapTheme(false);\r\n setShowBackgroundPopup(false);\r\n setShowBorderPopup(false);\r\n setShowNodetype(false);\r\n setShowConnectionLine(false);\r\n setShowBranchColor(false);\r\n setShowFontFamily(false);\r\n setShowFontSizeOpt(false);\r\n setShowFontStyle(false);\r\n setShowTextAlign(false);\r\n setShowTextColor(false);\r\n setShowRefLink(false);\r\n setIsShowToolsPop(true);\r\n setShowMoreOptions(false);\r\n setShowAIOptions(false);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n setShowRefLink(false)}>\r\n \r\n setShowRefLink(false)}\r\n open={showRefLink}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n {\r\n setTimeout(() => {\r\n setShowRefLink(true);\r\n if (inputRef.current) {\r\n inputRef.current.focus();\r\n }\r\n });\r\n }}\r\n onChange={(e) => setUrl(e.target.value)}\r\n onKeyDown={handleAddLinkInEditor}\r\n />\r\n \r\n }\r\n >\r\n \r\n \r\n {\r\n e.stopPropagation();\r\n setShowRefLink(!showRefLink);\r\n setShowMindMapTheme(false);\r\n setShowBackgroundPopup(false);\r\n setShowBorderPopup(false);\r\n setShowNodetype(false);\r\n setShowConnectionLine(false);\r\n setShowBranchColor(false);\r\n setShowFontFamily(false);\r\n setShowFontSizeOpt(false);\r\n setShowFontStyle(false);\r\n setShowTextAlign(false);\r\n setShowTextColor(false);\r\n setShowFillColor(false);\r\n setIsShowToolsPop(true);\r\n setShowMoreOptions(false);\r\n setShowAIOptions(false);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n )}\r\n \r\n )}\r\n\r\n \r\n \r\n \r\n {data?.locked ? : }\r\n \r\n \r\n \r\n\r\n \r\n\r\n {!data?.locked && (\r\n <>\r\n setShowAIOptions(false)}>\r\n {\r\n e.stopPropagation();\r\n }}\r\n sx={{\r\n height: \"36px !important\",\r\n width: \"36px !important\",\r\n }}\r\n >\r\n setShowAIOptions(false)}\r\n open={!loaders.aiLoader && showAIOptions}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n {\r\n e.stopPropagation();\r\n }}\r\n >\r\n \r\n \r\n handleChangeContentWithAI(\"grammer_fix\")\r\n }\r\n >\r\n \r\n \r\n Fix grammar and spelling\r\n \r\n \r\n handleChangeContentWithAI(\"rewrite\")}\r\n >\r\n \r\n \r\n Rewrite for clarity\r\n \r\n \r\n {\r\n showTranslates && setShowTranslates(false);\r\n showExpandOptions && setShowExpandOptions(false);\r\n setShowChangeTones(!showChangeTones);\r\n }}\r\n >\r\n \r\n \r\n \r\n Change tone\r\n \r\n \r\n \r\n \r\n \r\n\r\n {showChangeTones && (\r\n \r\n \r\n {changeToneData.map((tone, i) => {\r\n return (\r\n \r\n handleChangeContentWithAI(tone.key)\r\n }\r\n >\r\n \r\n {tone.label}\r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n )}\r\n \r\n {/* Translates */}\r\n {\r\n showChangeTones && setShowChangeTones(false);\r\n showExpandOptions && setShowExpandOptions(false);\r\n setShowTranslates(!showTranslates);\r\n }}\r\n >\r\n \r\n \r\n \r\n Translate\r\n \r\n \r\n \r\n \r\n \r\n\r\n {showTranslates && (\r\n \r\n {\r\n e.stopPropagation();\r\n }}\r\n >\r\n {translateData.map((translate, i) => {\r\n return (\r\n \r\n handleChangeContentWithAI(translate.key)\r\n }\r\n >\r\n \r\n {translate.label}\r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n )}\r\n \r\n {/* Expand mindmap options */}\r\n {\r\n showTranslates && setShowTranslates(false);\r\n showChangeTones && setShowChangeTones(false);\r\n setShowExpandOptions(!showExpandOptions);\r\n }}\r\n >\r\n \r\n \r\n \r\n Expand mindmap\r\n \r\n \r\n \r\n \r\n \r\n\r\n {showExpandOptions && (\r\n \r\n \r\n {expandMindmapData.map((option, i) => {\r\n return (\r\n \r\n handleExpandMindmap(option.key)\r\n }\r\n >\r\n \r\n {option.label}\r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n }\r\n >\r\n \r\n \r\n {loaders.aiLoader ? (\r\n \r\n \r\n \r\n ) : (\r\n 0\r\n ? \"linear-gradient(167.78deg, #D461F0 -6.05%, #A587FF 50.47%, #618CFF 101.6%)\"\r\n : \"#F5F5F5\",\r\n }}\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n if (editor?.getText()?.trim()?.length > 0) {\r\n setShowAIOptions(!showAIOptions);\r\n setShowBackgroundPopup(false);\r\n setShowMindMapTheme(false);\r\n setShowBorderPopup(false);\r\n setShowNodetype(false);\r\n setShowConnectionLine(false);\r\n setShowBranchColor(false);\r\n setShowFontFamily(false);\r\n setShowFontSizeOpt(false);\r\n setShowFontStyle(false);\r\n setShowTextAlign(false);\r\n setShowTextColor(false);\r\n setShowFillColor(false);\r\n setShowRefLink(false);\r\n setIsShowToolsPop(true);\r\n setShowMoreOptions(false);\r\n }\r\n }}\r\n >\r\n 0\r\n ? \"#FFF\"\r\n : \"#C1C1C0\"\r\n }\r\n />\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n )}\r\n\r\n \r\n setShowMoreOptions(false)}\r\n open={showMoreOptions}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n \r\n {moreMenusData.map((moreMenu, mainIndex) => (\r\n \r\n {moreMenu.children.map((child, i) => (\r\n {\r\n child.onClick(event);\r\n }}\r\n >\r\n \r\n {child.mainLabel}\r\n \r\n {child.shortCut && (\r\n \r\n {child?.mainLabel === \"Copy as Image\" &&\r\n copyImageLoading ? (\r\n \r\n ) : (\r\n child.shortCut\r\n )}\r\n {/* {child.shortCut} */}\r\n \r\n )}\r\n {child.rightArrowIcons && child.rightArrowIcons}\r\n {child.subChild && (\r\n \r\n {child.subChild.map((subChild, subCI) => (\r\n \r\n \r\n {subChild.label}\r\n \r\n \r\n ))}\r\n \r\n )}\r\n \r\n ))}\r\n {mainIndex !== moreMenusData.length - 1 && (\r\n \r\n )}\r\n \r\n ))}\r\n \r\n }\r\n >\r\n {\r\n e.stopPropagation();\r\n setShowMoreOptions(!showMoreOptions);\r\n setShowMindMapTheme(false);\r\n setShowBackgroundPopup(false);\r\n setShowBorderPopup(false);\r\n setShowNodetype(false);\r\n setShowConnectionLine(false);\r\n setShowBranchColor(false);\r\n setShowFontFamily(false);\r\n setShowFontSizeOpt(false);\r\n setShowFontStyle(false);\r\n setShowTextAlign(false);\r\n setShowTextColor(false);\r\n setShowFillColor(false);\r\n setShowRefLink(false);\r\n setIsShowToolsPop(true);\r\n setShowAIOptions(false);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default TreeViewNodeToolbar;\r\n","import { Box } from \"@mui/material\";\r\nimport React, { memo, useEffect, useMemo, useRef, useState } from \"react\";\r\nimport { useCallback } from \"react\";\r\nimport { Handle, MarkerType, useReactFlow } from \"reactflow\";\r\nimport { tipTapExtensions } from \"../../tip-tap-editor\";\r\nimport { EditorContent, Extension, useEditor } from \"@tiptap/react\";\r\nimport { debounce } from \"lodash\";\r\nimport { useLocation, useParams } from \"react-router-dom\";\r\nimport {\r\n capitalizeFirstChar,\r\n convertToRgba,\r\n countChildrenBySide,\r\n getId,\r\n getSourceHandle,\r\n getTargetHandle,\r\n removeHTMLTags,\r\n updateJson,\r\n} from \"../../../../CommanFunctions/commanFunctions\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useSelector } from \"react-redux\";\r\nimport TreeViewNodeToolbar from \"./TreeViewNodeToolbar\";\r\nimport {\r\n IcAddRowCol,\r\n IcMinusOutlined,\r\n} from \"../../../../assets/icon-components\";\r\nimport { createTreeLayout } from \"../../../../Utils/hooks/d3-hierarchy\";\r\nimport { useUndoRedo } from \"../../dndUndoRedo/UndoRedoProvider\";\r\nimport { useSocketContext } from \"../../../../Utils/hooks/useSocketContext\";\r\nimport { socketEvents } from \"../../const\";\r\nimport useNodeSelectionStarted from \"../../../../Utils/hooks/useNodeSelectionStarted\";\r\nimport { color } from \"../../../../Utils/style/color/color\";\r\nimport { getBgColor, getEdgeColor, treeViewNodeChildDesignData } from \"./TreeViewNodeUtils\";\r\n\r\nfunction TreeViewNode(node) {\r\n const { id, data } = node;\r\n const { setNodes, getNodes, getNode, getEdges, setEdges } = useReactFlow();\r\n const location = useLocation();\r\n const userRowData = localStorage.getItem(\"user_data\");\r\n const userData = userRowData ? JSON.parse(userRowData) : {};\r\n const dispatch = useDispatch();\r\n const { connectionLinePath, openAIStatus, copyAsImage } = useSelector(\r\n (state) => state.mindMapStore\r\n );\r\n const { isNodeSelectionStarted } = useNodeSelectionStarted({\r\n selected: node?.selected,\r\n });\r\n const { undo, takeSnapshot } = useUndoRedo();\r\n const { socket } = useSocketContext();\r\n const [hoveredItem, setHoveredItem] = useState(\"\");\r\n const nodeRef = useRef(null);\r\n const oldLabelContent = useRef(data?.label);\r\n const [nodeSize, setNodeSize] = useState({ width: 0, height: 0 });\r\n const [isShowToolsPop, setIsShowToolsPop] = useState(true);\r\n const [socketCount, setSocketCount] = useState(0);\r\n const { id: architectureId } = useParams();\r\n const user_data = localStorage.getItem(\"user_data\");\r\n const isOnlyOneNodeSelected =\r\n getNodes().filter((n) => n.selected).length === 1;\r\n\r\n const onAddChild = useCallback(\r\n (parentId, details, side, afterNodeId = null) => {\r\n const newNodeId = getId();\r\n\r\n const isRoot = parentId === details.rootParentId;\r\n\r\n const parentNode = getNode(parentId);\r\n\r\n const newNode = {\r\n id: newNodeId,\r\n type: details.childNodeType,\r\n data: {\r\n label: ``,\r\n locked: false,\r\n // onAddChild: onAddChild,\r\n autoLayout: details.autoLayout,\r\n side: side,\r\n type: \"child\",\r\n edgeType: details.edgeType,\r\n edgeAlgorithm: details.edgeAlgorithm,\r\n childNodeType: details.childNodeType,\r\n addition: details.addition,\r\n rootParentId: details.rootParentId,\r\n edgeColor: getEdgeColor(isRoot, details),\r\n designType: details.designType,\r\n showBorder:\r\n parentNode?.data?.type === \"parent\"\r\n ? treeViewNodeChildDesignData[details?.designType].borderStyle !== \"none\"\r\n : parentNode?.data?.showBorder,\r\n border: {\r\n width: 2,\r\n type: \"solid\",\r\n // type:\r\n // parentNode?.data?.type === \"parent\"\r\n // ? borderStyle\r\n // : parentNode?.data?.border?.type,\r\n radius:\r\n parentNode?.data?.type === \"parent\"\r\n ? treeViewNodeChildDesignData[details?.designType].borderRadius\r\n : parentNode?.data?.border?.radius,\r\n borderColor:\r\n parentNode?.data?.type === \"parent\"\r\n ? getEdgeColor(isRoot, details)\r\n : parentNode?.data?.border?.borderColor,\r\n opacity: 1,\r\n },\r\n nodeStyle: {\r\n backgroundColor:\r\n parentNode?.data?.type === \"parent\"\r\n ? getBgColor(isRoot, details)\r\n : parentNode?.data?.nodeStyle?.backgroundColor,\r\n borderType:\r\n parentNode?.data?.type === \"parent\"\r\n ? treeViewNodeChildDesignData[details?.designType].borderType\r\n : parentNode?.data?.nodeStyle?.borderType,\r\n },\r\n placeHolderColor:\r\n parentNode?.data?.type === \"parent\"\r\n ? treeViewNodeChildDesignData[details?.designType].placeHolderColor\r\n : parentNode?.data?.placeHolderColor,\r\n },\r\n parentNode: parentId,\r\n draggable: true,\r\n position: { x: 0, y: 0 },\r\n positionAbsolute: { x: 0, y: 0 },\r\n };\r\n\r\n const newEdge = {\r\n id: `e${parentId}-${newNodeId}`,\r\n type: details.edgeType,\r\n markerStart: { color: getEdgeColor(isRoot, details) },\r\n markerEnd: {\r\n type:\r\n details.edgeType === \"step-edge\" ||\r\n details.edgeType === \"editable-edge\"\r\n ? MarkerType.ArrowClosed\r\n : \"\",\r\n color: getEdgeColor(isRoot, details),\r\n },\r\n selected: false,\r\n data: {\r\n isTreeView: true,\r\n animate: false,\r\n animationDirection: \"ltr\",\r\n algorithm: details.edgeAlgorithm,\r\n isDashed: false,\r\n points: connectionLinePath?.map((point, i) => ({\r\n ...point,\r\n id: window.crypto.randomUUID(),\r\n prev: i === 0 ? undefined : connectionLinePath[i - 1],\r\n active: true,\r\n })),\r\n fromRoot: isRoot,\r\n rootParentId: details.rootParentId,\r\n side: side,\r\n },\r\n style: {\r\n stroke: getEdgeColor(isRoot, details),\r\n strokeWidth: 1.5,\r\n strokeLinecap: \"butt\",\r\n },\r\n sourceHandle: getSourceHandle(side),\r\n targetHandle: getTargetHandle(side),\r\n source: parentId,\r\n target: newNodeId,\r\n };\r\n\r\n const updatedNodes = getNodes()\r\n .concat(newNode)\r\n .filter((n) => n.data.rootParentId === details.rootParentId);\r\n const updatedEdges = getEdges().concat(newEdge);\r\n\r\n const result = createTreeLayout(\r\n updatedNodes,\r\n details.rootParentId,\r\n details.addition,\r\n newNodeId,\r\n afterNodeId\r\n );\r\n let tempNodes = [];\r\n setNodes((nds) => {\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: nds,\r\n // lastUpdatedBy: parsedData?.user_id,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n const updatedNodes = nds.map((n) => {\r\n // Check if there's a matching node in result.nodes by ID\r\n const matchingNode = result.nodes.find(\r\n (resNode) => resNode.id === n.id\r\n );\r\n\r\n // If a matching node is found, replace it; otherwise, keep the original node\r\n return matchingNode ? matchingNode : n;\r\n });\r\n\r\n // If there are any new nodes in result.nodes that don't exist in nds, add them\r\n const newNodes = result.nodes.filter(\r\n (resNode) => !nds.some((n) => n.id === resNode.id)\r\n );\r\n\r\n tempNodes = [...updatedNodes, ...newNodes];\r\n\r\n tempNodes = tempNodes.map((node) =>\r\n node.id === newNodeId\r\n ? { ...node, selected: true }\r\n : { ...node, selected: false }\r\n );\r\n\r\n return tempNodes;\r\n });\r\n localStorage.setItem(\r\n \"architectureJsonEdges\",\r\n JSON.stringify({\r\n architecture_json: {\r\n edges: getEdges(),\r\n // lastUpdatedBy: userData?.user_id,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n setEdges(updatedEdges);\r\n\r\n // Call the debounced update function\r\n debouncedUpdateJson(tempNodes, updatedEdges);\r\n },\r\n [setEdges, getNodes]\r\n );\r\n\r\n // Create a debounced version of updateJson\r\n const debouncedUpdateJson = useCallback(\r\n debounce((tempNodes, updatedEdges) => {\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: tempNodes.length > 0 ? tempNodes : getNodes(),\r\n edges: updatedEdges.length > 0 ? updatedEdges : getEdges(),\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id: architectureId,\r\n dispatch,\r\n undo,\r\n a_id,\r\n takeSnapshot,\r\n });\r\n }, 100), // Adjust the delay (in milliseconds) as needed\r\n [\r\n updateJson,\r\n user_data,\r\n location,\r\n getNodes,\r\n getEdges,\r\n architectureId,\r\n undo,\r\n takeSnapshot,\r\n ]\r\n );\r\n\r\n const isRootNode = data?.type === \"parent\";\r\n\r\n const EnterKeyHandler = Extension.create({\r\n name: \"enterKeyHandler\",\r\n addKeyboardShortcuts() {\r\n return {\r\n Enter: () => {\r\n const currNode = getNode(id);\r\n const parentNodeOfClickedNode = getNodes().find(\r\n (nd) => nd.id === currNode?.parentNode\r\n );\r\n\r\n if (isRootNode) {\r\n // Handle adding a child to a root node\r\n if (data?.addition === \"horizontal\") {\r\n onAddChild(id, data, \"right\");\r\n } else if (data?.addition === \"vertical\") {\r\n onAddChild(id, data, \"bottom\");\r\n }\r\n } else {\r\n // Handle adding a child to a non-root node\r\n onAddChild(\r\n parentNodeOfClickedNode?.id,\r\n parentNodeOfClickedNode?.data,\r\n parentNodeOfClickedNode?.data?.side || data?.side,\r\n currNode?.id\r\n );\r\n }\r\n\r\n return true; // Prevents default behavior of the Enter key\r\n },\r\n };\r\n },\r\n });\r\n\r\n const handleExtraButtonClick = (e) => {\r\n e.stopPropagation();\r\n const currNode = getNode(id);\r\n const parentNodeOfClickedNode = getNodes().find(\r\n (nd) => nd.id === currNode?.parentNode\r\n );\r\n\r\n // Handle adding a child to a non-root node\r\n onAddChild(\r\n parentNodeOfClickedNode?.id,\r\n parentNodeOfClickedNode?.data,\r\n parentNodeOfClickedNode?.data?.side || data?.side,\r\n currNode?.id\r\n );\r\n };\r\n\r\n const toggleCollapse = (e, side) => {\r\n e.stopPropagation();\r\n\r\n let updatedNodes = [];\r\n let updatedEdges = [];\r\n\r\n setNodes((prevNodes) => {\r\n const currNode = getNode(id);\r\n const isCollapsed =\r\n currNode?.data?.[`collapsed${capitalizeFirstChar(side)}`];\r\n\r\n const getChildNodes = (parentId) => {\r\n return prevNodes.filter(\r\n (nd) => nd.type === \"TreeView\" && nd.parentNode === parentId\r\n );\r\n };\r\n\r\n const getSameChildNodes = (parentId) => {\r\n return prevNodes.filter(\r\n (nd) =>\r\n nd.type === \"TreeView\" &&\r\n nd.parentNode === parentId &&\r\n nd.data.side === side\r\n );\r\n };\r\n\r\n const updateVisibility = (parentId, hidden) => {\r\n const childNodes =\r\n currNode?.data?.type === \"parent\"\r\n ? getSameChildNodes(parentId)\r\n : getChildNodes(parentId);\r\n\r\n childNodes.forEach((childNode) => {\r\n if (hidden) {\r\n if (!childNode.hidden) {\r\n // If hiding, set `hidden` and `hiddenBy`\r\n childNode.hidden = true;\r\n childNode.hiddenBy = id;\r\n }\r\n } else {\r\n // If unhiding, only unhide if it was hidden by the same parent\r\n if (childNode.hiddenBy === id) {\r\n childNode.hidden = false;\r\n delete childNode.hiddenBy;\r\n }\r\n }\r\n\r\n updateVisibility(childNode.id, hidden);\r\n });\r\n };\r\n\r\n updateVisibility(id, !isCollapsed);\r\n\r\n updatedNodes = prevNodes.map((node) =>\r\n node.id === id\r\n ? {\r\n ...node,\r\n data: {\r\n ...node.data,\r\n [`collapsed${capitalizeFirstChar(side)}`]: !isCollapsed,\r\n },\r\n }\r\n : node\r\n );\r\n return updatedNodes;\r\n });\r\n\r\n setEdges((prevEdges) => {\r\n const isNodeHidden = (nodeId) =>\r\n getNodes().find((node) => node.id === nodeId)?.hidden;\r\n\r\n updatedEdges = prevEdges.map((edge) => ({\r\n ...edge,\r\n hidden: isNodeHidden(edge.source) || isNodeHidden(edge.target),\r\n }));\r\n return updatedEdges;\r\n });\r\n\r\n debouncedUpdateJson(updatedNodes, updatedEdges);\r\n debouncedUpdateTreeLayout();\r\n };\r\n\r\n const updateTreeLayout = useCallback(() => {\r\n const updatedNodes = getNodes().filter(\r\n (n) => n.data.rootParentId === data.rootParentId\r\n );\r\n const result = createTreeLayout(\r\n updatedNodes,\r\n data.rootParentId,\r\n data.addition\r\n );\r\n\r\n setNodes((nds) => {\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: nds,\r\n // lastUpdatedBy: parsedData?.user_id,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n\r\n const updatedNodes = nds.map((n) => {\r\n const matchingNode = result.nodes.find(\r\n (resNode) => resNode.id === n.id\r\n );\r\n return matchingNode ? { ...n, ...matchingNode } : n;\r\n });\r\n return updatedNodes;\r\n });\r\n }, [getNodes, setNodes, data.rootParentId, data.addition]);\r\n\r\n const debouncedUpdateTreeLayout = useCallback(\r\n debounce(updateTreeLayout, 100),\r\n [updateTreeLayout]\r\n );\r\n\r\n useEffect(() => {\r\n // Function to check and update width\r\n const checkDimensions = () => {\r\n if (nodeRef.current) {\r\n const currentWidth = nodeRef.current.offsetWidth;\r\n const currentHeight = nodeRef.current.offsetHeight;\r\n const nodeDragging = getNodes().some((n) => n.dragging);\r\n\r\n // Compare current width with stored width\r\n if (\r\n (currentWidth !== nodeSize.width ||\r\n currentHeight !== nodeSize.height) &&\r\n !openAIStatus &&\r\n !nodeDragging\r\n ) {\r\n if (data?.side === \"left\" && data?.type === \"child\") {\r\n setNodes((nds) => {\r\n return nds.map((n) => {\r\n if (n.id === id) {\r\n return {\r\n ...n,\r\n data: {\r\n ...n.data,\r\n label: editor.getHTML(),\r\n },\r\n };\r\n }\r\n return n;\r\n });\r\n });\r\n setNodes((nds) => {\r\n const updatedNodes = nds.map((n) => {\r\n if (n.id === id) {\r\n return {\r\n ...n,\r\n data: {\r\n ...n.data,\r\n label: editor.getHTML(),\r\n },\r\n position: {\r\n ...n.position,\r\n x: -162 - (currentWidth || 114),\r\n },\r\n };\r\n }\r\n return n;\r\n });\r\n return updatedNodes;\r\n });\r\n }\r\n // Update the width state\r\n setNodeSize({ width: currentWidth, height: currentHeight });\r\n if (nodeSize.width > 115) {\r\n if (data?.addition === \"horizontal\") {\r\n debouncedUpdateTreeLayout();\r\n } else if (data?.addition === \"vertical\") {\r\n const currNode = getNode(id);\r\n const widthDifference = currentWidth - nodeSize.width; // Calculate how much width changed\r\n\r\n // Only proceed if width changed\r\n if (widthDifference > 0 && data?.type === \"child\") {\r\n const halfWidthChange = widthDifference / 2; // Calculate half of the width change\r\n\r\n setNodes((nds) => {\r\n return nds.map((n) => {\r\n // Current node - adjust position to maintain center\r\n if (n.id === id) {\r\n return {\r\n ...n,\r\n data: {\r\n ...n.data,\r\n label: editor.getHTML(),\r\n },\r\n position: {\r\n ...n.position,\r\n x: n.position.x - halfWidthChange, // Move left by half the width change\r\n },\r\n };\r\n }\r\n\r\n if (n.parentNode === id && n?.type === \"TreeView\") {\r\n return {\r\n ...n,\r\n position: {\r\n ...n.position,\r\n x: n.position.x + halfWidthChange, // Move left by half the width change\r\n },\r\n }\r\n }\r\n\r\n // Left side nodes - move further left\r\n if (n.data.rootParentId === currNode?.data?.rootParentId &&\r\n n.parentNode === currNode?.parentNode &&\r\n n.data?.side === currNode?.data?.side &&\r\n n.positionAbsolute.x < currNode?.positionAbsolute?.x) {\r\n return {\r\n ...n,\r\n position: {\r\n ...n.position,\r\n x: n.position.x - halfWidthChange, // Move left by half the width change (same as current node)\r\n },\r\n };\r\n }\r\n\r\n // Right side nodes - move right\r\n if (n.data.rootParentId === currNode?.data?.rootParentId &&\r\n n.parentNode === currNode?.parentNode &&\r\n n.data?.side === currNode?.data?.side &&\r\n n.positionAbsolute.x > currNode?.positionAbsolute?.x) {\r\n return {\r\n ...n,\r\n position: {\r\n ...n.position,\r\n x: n.position.x + halfWidthChange, // Move right by half the width change\r\n },\r\n };\r\n }\r\n\r\n return n;\r\n });\r\n });\r\n } else if (currentHeight !== nodeSize.height || data?.type === \"parent\") {\r\n debouncedUpdateTreeLayout();\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n // Use MutationObserver to detect changes in the div\r\n const observer = new MutationObserver(checkDimensions);\r\n\r\n if (nodeRef.current) {\r\n observer.observe(nodeRef.current, {\r\n childList: true, // Observe changes to children\r\n characterData: true, // Observe text changes\r\n subtree: true, // Observe changes in all descendants\r\n });\r\n\r\n // Initial width check\r\n checkDimensions();\r\n }\r\n\r\n // Cleanup observer\r\n return () => {\r\n observer.disconnect();\r\n };\r\n }, [nodeSize]);\r\n\r\n useEffect(() => {\r\n const nodeDragging = getNodes().some((n) => n.dragging);\r\n if (!node?.selected && data?.autoLayout && !openAIStatus && !nodeDragging) {\r\n debouncedUpdateTreeLayout();\r\n }\r\n }, [node?.selected]);\r\n\r\n const editor = useEditor(\r\n {\r\n extensions: [...tipTapExtensions(\"Type something\"), EnterKeyHandler],\r\n content: node?.data?.label,\r\n onUpdate: ({ editor }) => {\r\n if (removeHTMLTags(oldLabelContent?.current) !== editor.getText()) {\r\n let updatedNodes = null;\r\n if (data?.side !== \"left\") {\r\n setNodes((prevNodes) => {\r\n const CustomPromptEvent = new CustomEvent(\"treeNodeIsUpdating\");\r\n document.dispatchEvent(CustomPromptEvent);\r\n updatedNodes = prevNodes.map((nd) => {\r\n if (nd.id === id) {\r\n return {\r\n ...nd,\r\n data: { ...nd.data, label: editor.getHTML() },\r\n };\r\n }\r\n return nd;\r\n });\r\n return updatedNodes;\r\n });\r\n }\r\n debouncedUpdateHTML(updatedNodes);\r\n }\r\n },\r\n onBlur: ({ editor }) => {\r\n takeSnapshot({ nodes: getNodes(), edges: null });\r\n },\r\n editorProps: {\r\n handlePaste: (view, event) => {\r\n const pastedContent = event.clipboardData.getData(\"text/plain\");\r\n try {\r\n JSON.parse(pastedContent);\r\n // If it's valid JSON, prevent paste\r\n return true;\r\n } catch (e) {\r\n // If it's not valid JSON, allow paste\r\n return false;\r\n }\r\n },\r\n },\r\n },\r\n [socketCount]\r\n );\r\n\r\n useEffect(() => {\r\n if (editor && editor?.getHTML() !== data?.label) {\r\n editor?.commands.setContent(data?.label);\r\n }\r\n }, [editor, data?.label]);\r\n\r\n const debouncedUpdateHTML = useMemo(() => {\r\n return debounce((updatedNodes) => {\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes ? updatedNodes : getNodes(),\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id: architectureId,\r\n dispatch,\r\n undo,\r\n // takeSnapshot,\r\n a_id,\r\n });\r\n }, 500);\r\n }, [id, getNodes, setNodes]);\r\n\r\n const onClickHandler = () => {\r\n setIsShowToolsPop(false);\r\n if (node?.selected) {\r\n editor?.setEditable(true);\r\n editor?.commands.focus();\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n const currentNodeDom = document.querySelector(`[data-id=\"${id}\"]`);\r\n if (!currentNodeDom || !editor) return;\r\n // if (node?.selected) {\r\n oldLabelContent.current = data?.label;\r\n // }\r\n\r\n const handleNodeKeyDown = (e) => {\r\n if (!node.selected) return; // Prevent typing if node is not selected\r\n const isValidKey = /^[a-zA-Z\\d~!@#$%^&*()_+\\-={}\\[\\]|\\\\:;\"'<>,.?/]$/.test(\r\n e.key\r\n );\r\n\r\n if (!editor.isFocused && isValidKey) {\r\n editor.setEditable(true); // Enable editing\r\n editor.commands.clearContent(); // Clear existing content\r\n editor.commands.focus(\"end\"); // Focus on the editor\r\n editor.commands.insertContent(e.key);\r\n }\r\n };\r\n\r\n if (node.selected && !editor?.isEditable && !editor?.isFocused) {\r\n currentNodeDom.addEventListener(\"keydown\", handleNodeKeyDown, {\r\n once: true,\r\n });\r\n }\r\n if (!node.selected) {\r\n currentNodeDom.removeEventListener(\"keydown\", handleNodeKeyDown);\r\n }\r\n return () => {\r\n currentNodeDom.removeEventListener(\"keydown\", handleNodeKeyDown);\r\n if (!node.selected) {\r\n editor.setEditable(false);\r\n }\r\n };\r\n }, [node.selected, editor, id]);\r\n\r\n useEffect(() => {\r\n if (socket) {\r\n socket.on(socketEvents.NODE_UPDATED, (data) => {\r\n const jsonData = data?.architecture_json;\r\n const currentNode = jsonData?.nodes?.find(\r\n (val) => val?.id === node?.id\r\n );\r\n if (jsonData?.lastUpdatedBy !== userData?.user_id) {\r\n editor?.commands.setContent(currentNode?.data?.label);\r\n setSocketCount((prev) => prev + 1);\r\n }\r\n });\r\n }\r\n }, [socket, node?.id, editor]);\r\n\r\n const getBackgroundColor = () => {\r\n if (data?.designType === \"first\") return \"transparent\";\r\n if (data?.designType === \"second\")\r\n return data.type === \"parent\"\r\n ? color?.primaryColor\r\n : `${convertToRgba(data?.edgeColor, 0.2) || \"rgba(25, 111, 242, 0.2)\"}`;\r\n if (data?.designType === \"third\")\r\n return data.type === \"parent\"\r\n ? \"#9863FD\"\r\n : `${convertToRgba(data?.edgeColor, 0.2) || \"rgb(217, 217, 217)\"}`;\r\n if (data?.designType === \"four\")\r\n return data.type === \"parent\" ? \"#0884EC\" : \"none\";\r\n if (data?.designType === \"five\")\r\n return data.type === \"parent\" ? \"#FFF\" : \"none\";\r\n if (data?.designType === \"six\")\r\n return data.type === \"parent\"\r\n ? \"#555CFD\"\r\n : `${data?.edgeColor || \"#555CFD\"}`;\r\n if (data?.designType === \"seven\") return \"#FFF\";\r\n if (data?.designType === \"eight\")\r\n return data.type === \"parent\"\r\n ? \"#FFF\"\r\n : `${convertToRgba(data?.edgeColor, 0.2) || color.primaryColorRGB}`;\r\n if (data?.designType === \"nine\")\r\n return data.type === \"parent\"\r\n ? color?.primaryColor\r\n : `${data?.edgeColor || color?.primaryColor}`;\r\n if (data?.designType === \"ten\")\r\n return data.type === \"parent\" ? \"#9D69FF\" : \"none\";\r\n return \"white\";\r\n };\r\n\r\n const getColorByType = (type, designType) => {\r\n const textAvailable = removeHTMLTags(node?.data?.label).trim().length > 0;\r\n const availablewTextColor = textAvailable ? \"#000\" : \"#a9a9a9\";\r\n\r\n const parentColorMap = {\r\n first: availablewTextColor,\r\n second: \"#FFF\",\r\n third: \"#FFF\",\r\n four: \"#FFF\",\r\n five: availablewTextColor,\r\n six: \"#FFF\",\r\n seven: availablewTextColor,\r\n eight: availablewTextColor,\r\n nine: \"#FFF\",\r\n ten: \"#FFF\",\r\n };\r\n const childColorMap = {\r\n first: availablewTextColor,\r\n second: textAvailable ? \"rgb(25, 112, 242)\" : \"cornflowerblue\",\r\n third: availablewTextColor,\r\n four: availablewTextColor,\r\n five: availablewTextColor,\r\n six: \"#FFF\",\r\n seven: availablewTextColor,\r\n eight: availablewTextColor,\r\n nine: \"#FFF\",\r\n ten: availablewTextColor,\r\n };\r\n\r\n return type === \"parent\"\r\n ? parentColorMap[designType]\r\n : childColorMap[designType];\r\n };\r\n\r\n return (\r\n \r\n \r\n {(data.type === \"parent\" || data.side === \"top\") &&\r\n data.addition === \"vertical\" &&\r\n !data?.collapsedTop &&\r\n !isNodeSelectionStarted && (\r\n {\r\n e.stopPropagation();\r\n onAddChild(id, data, \"top\");\r\n }}\r\n className=\"add-child-btn\"\r\n >\r\n \r\n \r\n )}\r\n {(data.type === \"parent\" || data.side === \"left\") &&\r\n data.addition === \"horizontal\" &&\r\n !data?.collapsedLeft &&\r\n !isNodeSelectionStarted && (\r\n {\r\n e.stopPropagation();\r\n onAddChild(id, data, \"left\");\r\n }}\r\n className=\"add-child-btn\"\r\n >\r\n \r\n \r\n )}\r\n {(data.type === \"parent\" || data.side === \"top\") &&\r\n data.addition === \"vertical\" &&\r\n countChildrenBySide(id, \"top\", getNodes()) > 0 &&\r\n !isNodeSelectionStarted && (\r\n toggleCollapse(e, \"top\")}\r\n className=\"add-child-btn\"\r\n >\r\n {data?.collapsedTop ? (\r\n \r\n {countChildrenBySide(id, \"top\", getNodes())}\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n )}\r\n {(data.type === \"parent\" || data.side === \"left\") &&\r\n data.addition === \"horizontal\" &&\r\n countChildrenBySide(id, \"left\", getNodes()) > 0 &&\r\n !isNodeSelectionStarted && (\r\n toggleCollapse(e, \"left\")}\r\n className=\"add-child-btn\"\r\n >\r\n {data?.collapsedLeft ? (\r\n \r\n {countChildrenBySide(id, \"left\", getNodes())}\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n )}\r\n 0 ? data?.style?.color || getColorByType(data?.type, data?.designType) : \"#a9a9a9\",\r\n height: \"100%\",\r\n }}\r\n className={`StickyNoteEditor StickyNoteEditor-textArea texteditor simple-text`}\r\n >\r\n {editor && node?.selected && !node.dragging ? (\r\n <>\r\n {editor && !isNodeSelectionStarted && isOnlyOneNodeSelected && (\r\n \r\n )}\r\n {data?.locked ? (\r\n 0\r\n ? data?.label\r\n : // : data.type === \"parent\"\r\n // ? \"Mind Map\"\r\n \"Type something\",\r\n }}\r\n />\r\n ) : (\r\n {\r\n setIsShowToolsPop(false);\r\n }}\r\n onDoubleClick={(e) => {\r\n e?.preventDefault();\r\n e?.stopPropagation();\r\n }}\r\n />\r\n )}\r\n \r\n ) : (\r\n 0\r\n ? data?.label\r\n : // : data.type === \"parent\"\r\n // ? \"Mind Map\"\r\n \"Type something\",\r\n }}\r\n />\r\n )}\r\n \r\n\r\n {(data.type === \"parent\" || data.side === \"bottom\") &&\r\n data.addition === \"vertical\" &&\r\n countChildrenBySide(id, \"bottom\", getNodes()) > 0 &&\r\n !isNodeSelectionStarted && (\r\n toggleCollapse(e, \"bottom\")}\r\n className=\"add-child-btn\"\r\n >\r\n {data?.collapsedBottom ? (\r\n \r\n {countChildrenBySide(id, \"bottom\", getNodes())}\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n )}\r\n {(data.type === \"parent\" || data.side === \"right\") &&\r\n data.addition === \"horizontal\" &&\r\n countChildrenBySide(id, \"right\", getNodes()) > 0 &&\r\n !isNodeSelectionStarted && (\r\n toggleCollapse(e, \"right\")}\r\n className=\"add-child-btn\"\r\n >\r\n {data?.collapsedRight ? (\r\n \r\n {countChildrenBySide(id, \"right\", getNodes())}\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n )}\r\n {(data.type === \"parent\" || data.side === \"bottom\") &&\r\n data.addition === \"vertical\" &&\r\n !data?.collapsedBottom &&\r\n !isNodeSelectionStarted && (\r\n {\r\n e.stopPropagation();\r\n onAddChild(id, data, \"bottom\");\r\n }}\r\n className=\"add-child-btn\"\r\n >\r\n \r\n \r\n )}\r\n {data.type === \"child\" &&\r\n data.addition === \"horizontal\" &&\r\n !isNodeSelectionStarted && (\r\n \r\n \r\n \r\n )}\r\n {(data.type === \"parent\" || data.side === \"right\") &&\r\n data.addition === \"horizontal\" &&\r\n !data?.collapsedRight &&\r\n !isNodeSelectionStarted && (\r\n {\r\n e.stopPropagation();\r\n onAddChild(id, data, \"right\");\r\n }}\r\n className=\"add-child-btn\"\r\n >\r\n \r\n \r\n )}\r\n {data.type === \"child\" &&\r\n data.addition === \"vertical\" &&\r\n !isNodeSelectionStarted && (\r\n \r\n \r\n \r\n )}\r\n console.log(\"handle onConnect\", params)}\r\n onMouseOver={() => {\r\n setHoveredItem(\"top\");\r\n }}\r\n onMouseLeave={() => {\r\n setHoveredItem(\"\");\r\n }}\r\n onClick={(e) => {\r\n e.preventDefault();\r\n }}\r\n >\r\n {node?.selected && !isNodeSelectionStarted && (\r\n \r\n )}\r\n \r\n console.log(\"handle onConnect\", params)}\r\n onMouseOver={() => {\r\n setHoveredItem(\"left\");\r\n }}\r\n onMouseLeave={() => {\r\n setHoveredItem(\"\");\r\n }}\r\n onClick={(e) => {\r\n e.preventDefault();\r\n }}\r\n >\r\n {node?.selected && !isNodeSelectionStarted && (\r\n \r\n )}\r\n \r\n console.log(\"handle onConnect\", params)}\r\n onMouseOver={() => {\r\n setHoveredItem(\"right\");\r\n }}\r\n onMouseLeave={() => {\r\n setHoveredItem(\"\");\r\n }}\r\n onClick={(e) => {\r\n e.preventDefault();\r\n }}\r\n >\r\n {node?.selected && !isNodeSelectionStarted && (\r\n \r\n )}\r\n \r\n console.log(\"handle onConnect\", params)}\r\n onMouseOver={() => {\r\n setHoveredItem(\"bottom\");\r\n }}\r\n onMouseLeave={() => {\r\n setHoveredItem(\"\");\r\n }}\r\n onClick={(e) => {\r\n e.preventDefault();\r\n }}\r\n >\r\n {node?.selected && !isNodeSelectionStarted && (\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default memo(TreeViewNode, (prevProps, nextProps) => {\r\n return prevProps.data.globalDragging && nextProps.data.globalDragging;\r\n});\r\n","import { MarkerType } from \"reactflow\";\r\nimport { getId, getNodeWithAllChildrenAndEdges, getRandomRgbColor, isPositionFarEnough } from \"../../../../CommanFunctions/commanFunctions\";\r\nimport { createTreeLayout } from \"../../../../Utils/hooks/d3-hierarchy\";\r\nimport { Algorithm } from \"../../Edges/EditableEdge/constants\";\r\nimport { treeViewNodeDesignData } from \"../../../mind-map/sidebarComponents/MindMapPopup\";\r\n\r\nexport const adjustTreeViewNodes = (nodes) => {\r\n let updatedNodes = [...nodes];\r\n\r\n // Find all frames with `isOrgChart` set to `true`\r\n const allParentNodes = updatedNodes.filter(\r\n (node) => node.type === \"TreeView\" && node.data?.type === \"parent\"\r\n );\r\n\r\n allParentNodes.forEach((parentNode) => {\r\n // Find all `orgChart` children of the current frame\r\n const treeViewChildren = updatedNodes.filter(\r\n (n) => n.type === \"TreeView\" && n.data.rootParentId === parentNode?.data?.rootParentId\r\n );\r\n\r\n if (treeViewChildren.length === 0) return; // Skip if no orgChart children\r\n\r\n const layoutResult = createTreeLayout(\r\n updatedNodes,\r\n parentNode?.data?.rootParentId,\r\n parentNode?.data?.addition\r\n );\r\n\r\n // Step 2: Update positions of nodes in the layout result\r\n updatedNodes = updatedNodes.map((n) => {\r\n const matchingNode = layoutResult.nodes.find(\r\n (resNode) => resNode.id === n.id\r\n );\r\n return matchingNode ? { ...n, ...matchingNode } : n;\r\n });\r\n });\r\n\r\n return updatedNodes;\r\n};\r\n\r\nexport const hasNodeSwitchedSide = (currentNode, parentNode, side) => {\r\n if (!currentNode || !parentNode) return false;\r\n\r\n const parentMidX = (parentNode?.positionAbsolute?.x || parentNode?.position?.x || 0) + (parentNode?.width || 150) / 2;\r\n const parentMidY = (parentNode?.positionAbsolute?.y || parentNode?.position?.y || 0) + (parentNode?.height || 50) / 2;\r\n\r\n if (side === \"left\" && (currentNode?.positionAbsolute?.x + ((currentNode?.width / 2) || 75)) > parentMidX) {\r\n return true; // Moved to the right\r\n } else if (side === \"right\" && (currentNode?.positionAbsolute?.x + ((currentNode?.width / 2) || 75)) < parentMidX) {\r\n return true; // Moved to the left\r\n } else if (side === \"top\" && (currentNode?.positionAbsolute?.y + ((currentNode?.height / 2) || 25)) > parentMidY) {\r\n return true; // Moved down\r\n } else if (side === \"bottom\" && (currentNode?.positionAbsolute?.y + ((currentNode?.height / 2) || 25)) < parentMidY) {\r\n return true; // Moved up\r\n }\r\n\r\n return false; // Still on the same side\r\n};\r\n\r\nexport const changeSidesAccordingToSwitch = {\r\n top: \"bottom\",\r\n bottom: \"top\",\r\n left: \"right\",\r\n right: \"left\"\r\n}\r\n\r\nexport const changeSidesAccordingToAddition = {\r\n top: \"left\",\r\n bottom: \"right\",\r\n left: \"top\",\r\n right: \"bottom\"\r\n}\r\n\r\nexport const changeSwitchWiseSourceHandles = {\r\n top: \"ddd\",\r\n bottom: \"aaa\",\r\n left: \"ccc\",\r\n right: \"bbb\"\r\n}\r\n\r\nexport const changeSwitchWiseTargetHandles = {\r\n top: \"aaa\",\r\n bottom: \"ddd\",\r\n left: \"bbb\",\r\n right: \"ccc\"\r\n}\r\n\r\nexport const updateNodesAndEdgesRecursivelyForSideSwitch = (node, rootParentNode, nodes, edges) => {\r\n let updatedNodes = [...nodes];\r\n let updatedEdges = [...edges];\r\n\r\n const queue = [node];\r\n\r\n while (queue.length > 0) {\r\n const currentNode = queue.shift();\r\n\r\n // Find children of the current node\r\n const childNodes = updatedNodes.filter(\r\n (n) => n.parentNode === currentNode.id && n.data?.rootParentId === rootParentNode?.id\r\n );\r\n\r\n // Swap side for the current node\r\n updatedNodes = updatedNodes.map((n) => {\r\n if (n.id === currentNode.id) {\r\n const { childrenOrder, side, ...updatedData } = n.data;\r\n const updatedPositionForHorizontal = {\r\n x: side === \"right\" ? -(150 + n.width) : (150 + n.width),\r\n y: n.position.y, // Keep the same y position\r\n }\r\n const updatedPositionForVertical = {\r\n x: n.position.x, // Keep the same x position\r\n y: side === \"bottom\" ? -(150 + n.height) : (150 + n.height),\r\n }\r\n return {\r\n ...n,\r\n data: {\r\n ...updatedData,\r\n side: changeSidesAccordingToSwitch[side],\r\n },\r\n position: n.id === node.id ? n.position : n.data?.addition === \"horizontal\" ? updatedPositionForHorizontal : updatedPositionForVertical\r\n };\r\n }\r\n return n;\r\n });\r\n\r\n // Update edges for the current node\r\n updatedEdges = updatedEdges.map((e) => {\r\n if (e.source === currentNode.id || e.target === currentNode.id) {\r\n return {\r\n ...e,\r\n sourceHandle: changeSwitchWiseSourceHandles[currentNode.data.side],\r\n targetHandle: changeSwitchWiseTargetHandles[currentNode.data.side],\r\n };\r\n }\r\n return e;\r\n });\r\n\r\n // Push children to queue to process them next\r\n queue.push(...childNodes);\r\n }\r\n\r\n return { updatedNodes, updatedEdges };\r\n};\r\n\r\nexport const getUnderlyingTreeViewNodeInfo = (event, currentNodeId) => {\r\n // Get all elements under the cursor\r\n const elements = document.elementsFromPoint(event.clientX, event.clientY);\r\n\r\n // Find all \"TreeView\" nodes in the elements stack\r\n const treeViewNodes = elements\r\n .filter(el => el.classList.contains(\"react-flow__node-TreeView\"))\r\n .map(el => el.getAttribute(\"data-id\"))\r\n .filter(Boolean); // Remove null or undefined values\r\n\r\n if (treeViewNodes.length === 0) {\r\n return null; // No valid TreeView node found\r\n }\r\n\r\n // If the first node matches currentNodeId, return the second one if available\r\n if (treeViewNodes[0] === currentNodeId) {\r\n return treeViewNodes[1] ? { nodeId: treeViewNodes[1] } : null;\r\n }\r\n\r\n return { nodeId: treeViewNodes[0] };\r\n};\r\n\r\nexport const assignSourceHandleAccordingToSideAndAddition = (addition, side) => {\r\n\r\n let sourceHandle = \"aaa\";\r\n\r\n if (addition === \"horizontal\") {\r\n if (side === \"right\") {\r\n sourceHandle = \"ccc\"\r\n } else {\r\n sourceHandle = \"bbb\"\r\n }\r\n } else {\r\n if (side === \"top\") {\r\n sourceHandle = \"aaa\"\r\n } else {\r\n sourceHandle = \"ddd\"\r\n }\r\n }\r\n\r\n return sourceHandle;\r\n}\r\n\r\nexport const assignTargetHandleAccordingToSideAndAddition = (addition, side) => {\r\n\r\n let targetHandle = \"aaa\";\r\n\r\n if (addition === \"horizontal\") {\r\n if (side === \"right\") {\r\n targetHandle = \"bbb\"\r\n } else {\r\n targetHandle = \"ccc\"\r\n }\r\n } else {\r\n if (side === \"top\") {\r\n targetHandle = \"ddd\"\r\n } else {\r\n targetHandle = \"aaa\"\r\n }\r\n }\r\n\r\n return targetHandle;\r\n}\r\n\r\nexport const getEdgeColor = (isRoot, details) => {\r\n if (isRoot) {\r\n if (details?.designType === \"second\") {\r\n return \"rgb(25, 111, 242)\";\r\n } else if (details?.designType === \"third\") {\r\n return \"rgb(126, 127, 130)\";\r\n } else if (details?.designType === \"four\") {\r\n return \"rgb(94, 108, 135)\";\r\n } else if (details?.designType === \"eight\") {\r\n return \"rgb(103, 98, 254)\";\r\n } else if (details.applyEdgeColor) {\r\n return getRandomRgbColor();\r\n } else {\r\n return details.edgeColor;\r\n }\r\n }\r\n // Add a fallback color in case isRoot is false or no condition is met\r\n return details.edgeColor || \"rgb(0, 0, 0)\";\r\n};\r\n\r\nexport const getBgColor = (isRoot, details) => {\r\n if (isRoot) {\r\n if (details?.designType === \"second\") {\r\n return \"rgb(25, 111, 242)\";\r\n } else if (details?.designType === \"third\") {\r\n return \"rgb(126, 127, 130)\";\r\n } else if (\r\n details?.designType === \"first\" ||\r\n details?.designType === \"four\" ||\r\n details?.designType === \"five\" ||\r\n details?.designType === \"seven\" ||\r\n details?.designType === \"eight\" ||\r\n details?.designType === \"ten\"\r\n ) {\r\n return \"transparent\";\r\n // } else if (details?.designType === \"eight\") {\r\n // return color.primaryColorRGB;\r\n } else if (details.applyEdgeColor) {\r\n return getRandomRgbColor();\r\n } else {\r\n return details.nodeStyle.backgroundColor;\r\n }\r\n }\r\n // Add a fallback color in case isRoot is false or no condition is met\r\n return details.nodeStyle.backgroundColor || \"rgb(0, 0, 0)\";\r\n};\r\n\r\nexport const treeViewNodeEdgeData = (nodeData, connectionLinePath) => {\r\n\r\n const data = {\r\n type: nodeData?.edgeType || \"editable-edge\",\r\n markerStart: { color: getEdgeColor(true, nodeData) },\r\n markerEnd: {\r\n type:\r\n nodeData?.edgeType === \"step-edge\" ||\r\n nodeData?.edgeType === \"editable-edge\"\r\n ? MarkerType.ArrowClosed\r\n : \"\",\r\n color: getEdgeColor(true, nodeData),\r\n },\r\n selected: false,\r\n data: {\r\n isTreeView: true,\r\n animate: false,\r\n animationDirection: \"ltr\",\r\n algorithm: nodeData?.edgeAlgorithm || Algorithm.BezierCatmullRom,\r\n isDashed: false,\r\n points: connectionLinePath?.map((point, i) => ({\r\n ...point,\r\n id: window.crypto.randomUUID(),\r\n prev: i === 0 ? undefined : connectionLinePath[i - 1],\r\n active: true,\r\n })),\r\n // fromRoot: isRoot,\r\n rootParentId: nodeData?.rootParentId,\r\n // side: side,\r\n },\r\n style: {\r\n stroke: getEdgeColor(true, nodeData),\r\n strokeWidth: 1.5,\r\n strokeLinecap: \"butt\",\r\n },\r\n }\r\n\r\n return data;\r\n}\r\n\r\nexport const treeViewNodeChildDesignData = {\r\n first: {\r\n borderStyle: \"none\",\r\n borderRadius: \"25px\",\r\n borderType: \"four\",\r\n placeHolderColor: \"dark\"\r\n },\r\n second: {\r\n borderStyle: \"solid\",\r\n borderRadius: \"25px\",\r\n borderType: \"four\",\r\n placeHolderColor: \"blue\"\r\n },\r\n third: {\r\n borderStyle: \"none\",\r\n borderRadius: \"25px\",\r\n borderType: \"four\",\r\n placeHolderColor: \"dark\"\r\n },\r\n four: {\r\n borderStyle: \"solid\",\r\n borderRadius: \"10px\",\r\n borderType: \"third\",\r\n placeHolderColor: \"dark\"\r\n },\r\n five: {\r\n borderStyle: \"none\",\r\n borderRadius: \"0px\",\r\n borderType: \"first\",\r\n placeHolderColor: \"dark\"\r\n },\r\n six: {\r\n borderStyle: \"none\",\r\n borderRadius: \"10px\",\r\n borderType: \"third\",\r\n placeHolderColor: \"light\"\r\n },\r\n seven: {\r\n borderStyle: \"solid\",\r\n borderRadius: \"25px\",\r\n borderType: \"four\",\r\n placeHolderColor: \"dark\"\r\n },\r\n eight: {\r\n borderStyle: \"none\",\r\n borderRadius: \"0px\",\r\n borderType: \"second\",\r\n placeHolderColor: \"dark\"\r\n },\r\n nine: {\r\n borderStyle: \"none\",\r\n borderRadius: \"25px\",\r\n borderType: \"four\",\r\n placeHolderColor: \"light\"\r\n },\r\n ten: {\r\n borderStyle: \"solid\",\r\n borderRadius: \"10px\",\r\n borderType: \"third\",\r\n placeHolderColor: \"dark\"\r\n }\r\n}\r\n\r\nexport const treeViewNodeDataStructure = (nodeData) => {\r\n const dataStructure = {\r\n // label: ``,\r\n locked: false,\r\n autoLayout: nodeData?.autoLayout || true,\r\n // side: side,\r\n type: \"child\",\r\n edgeType: nodeData?.edgeType || \"editable-edge\",\r\n edgeAlgorithm: nodeData?.edgeAlgorithm || Algorithm.BezierCatmullRom,\r\n childNodeType: nodeData?.childNodeType || \"TreeView\",\r\n addition: nodeData?.addition || \"horizontal\",\r\n rootParentId: nodeData?.rootParentId,\r\n edgeColor: getEdgeColor(true, nodeData),\r\n designType: nodeData?.designType || \"first\",\r\n showBorder:\r\n nodeData?.type === \"parent\"\r\n ? treeViewNodeChildDesignData[nodeData?.designType].borderStyle !== \"none\"\r\n : nodeData?.showBorder,\r\n border: {\r\n width: 2,\r\n type: \"solid\",\r\n radius:\r\n nodeData?.type === \"parent\"\r\n ? treeViewNodeChildDesignData[nodeData?.designType].borderRadius\r\n : nodeData?.border?.radius,\r\n borderColor:\r\n nodeData?.type === \"parent\"\r\n ? getEdgeColor(true, nodeData)\r\n : nodeData?.border?.borderColor,\r\n opacity: 1,\r\n },\r\n nodeStyle: {\r\n backgroundColor:\r\n nodeData?.type === \"parent\"\r\n ? getBgColor(true, nodeData)\r\n : nodeData?.nodeStyle?.backgroundColor,\r\n borderType:\r\n nodeData?.type === \"parent\"\r\n ? treeViewNodeChildDesignData[nodeData?.designType].borderType\r\n : nodeData?.nodeStyle?.borderType,\r\n },\r\n placeHolderColor:\r\n nodeData?.type === \"parent\"\r\n ? treeViewNodeChildDesignData[nodeData?.designType].placeHolderColor\r\n : nodeData?.placeHolderColor,\r\n };\r\n\r\n return dataStructure;\r\n}\r\n\r\nexport const mergeAndRepositionTreeViewNodesBasedOnLayout = (parameters) => {\r\n\r\n const { event, node, nodes, edges, getIntersectingNodes, getNode, getNodes, getEdges, connectionLinePath, oldSideOfTreeNode } = parameters;\r\n\r\n let updatedNodes = [...nodes];\r\n let updatedEdges = [...edges];\r\n\r\n if (node?.type === \"TreeView\" && node?.data?.type === \"parent\") {\r\n const intersectingNodes = getIntersectingNodes(node, true);\r\n const underlyingTreeViewNode = getUnderlyingTreeViewNodeInfo(event, node?.id);\r\n\r\n if (underlyingTreeViewNode) {\r\n const underlyingTreeViewNodeData = getNode(underlyingTreeViewNode?.nodeId);\r\n const {\r\n childrenOrder = [],\r\n leftChildrenOrder = [],\r\n rightChildrenOrder = [],\r\n topChildrenOrder = [],\r\n bottomChildrenOrder = [],\r\n ...updatedDataOfUnderlyingTreeViewNode\r\n } = underlyingTreeViewNodeData?.data;\r\n\r\n const treeViewDataStructure = treeViewNodeDataStructure(underlyingTreeViewNodeData?.data);\r\n const treeViewEdgeData = treeViewNodeEdgeData(underlyingTreeViewNodeData?.data, connectionLinePath);\r\n\r\n const { nodes: childrenNodes, edges: childrenEdges } = getNodeWithAllChildrenAndEdges(node, getNodes(), getEdges())\r\n const allChildNodeIds = childrenNodes?.map((n) => n.id).filter((n) => n.id !== node?.id);\r\n const allChildEdgeIds = childrenEdges?.map((e) => e.id)\r\n\r\n if (underlyingTreeViewNodeData.id === underlyingTreeViewNodeData?.data?.rootParentId && underlyingTreeViewNodeData?.data?.type === \"parent\") {\r\n updatedNodes = updatedNodes.map((n) => {\r\n if (node?.id === n?.id) {\r\n return {\r\n ...n,\r\n data: {\r\n ...treeViewDataStructure,\r\n label: n?.data?.label,\r\n side: updatedDataOfUnderlyingTreeViewNode?.addition === \"horizontal\" ? \"left\" : \"top\",\r\n },\r\n parentNode: underlyingTreeViewNodeData?.id,\r\n height: n.height - 6,\r\n width: ((n?.width || 150) - 7) / 1.33\r\n };\r\n }\r\n if (allChildNodeIds.includes(n.id)) {\r\n return {\r\n ...n,\r\n data: {\r\n ...treeViewDataStructure,\r\n label: n?.data?.label,\r\n side: updatedDataOfUnderlyingTreeViewNode?.addition === n.data?.addition ? n?.data?.side : changeSidesAccordingToAddition[n.data?.side]\r\n },\r\n parentNode: ((n?.data?.side === \"right\" || n?.data?.side === \"bottom\") && n.parentNode === n.data?.rootParentId) ? underlyingTreeViewNodeData?.id : n?.parentNode\r\n }\r\n }\r\n if (n.id === underlyingTreeViewNodeData?.id) {\r\n return {\r\n ...n,\r\n data: {\r\n ...updatedDataOfUnderlyingTreeViewNode\r\n }\r\n }\r\n }\r\n return n;\r\n });\r\n\r\n updatedNodes = adjustTreeViewNodes(updatedNodes);\r\n\r\n const newEdge = {\r\n id: getId(),\r\n ...treeViewEdgeData,\r\n data: {\r\n ...treeViewEdgeData?.data,\r\n side: underlyingTreeViewNodeData?.data?.addition === \"horizontal\" ? \"left\" : \"top\",\r\n fromRoot: true\r\n },\r\n source: underlyingTreeViewNodeData?.id,\r\n target: node?.id,\r\n sourceHandle: underlyingTreeViewNodeData?.data?.addition === \"horizontal\" ? \"bbb\" : \"aaa\",\r\n targetHandle: underlyingTreeViewNodeData?.data?.addition === \"horizontal\" ? \"ccc\" : \"ddd\"\r\n }\r\n\r\n updatedEdges = updatedEdges.map((ed) => {\r\n const targetNode = getNode(ed.target);\r\n if (allChildEdgeIds.includes(ed.id)) {\r\n if (targetNode?.data?.side === \"right\" || targetNode?.data?.side === \"bottom\") {\r\n return {\r\n ...ed,\r\n ...treeViewEdgeData,\r\n data: {\r\n ...treeViewEdgeData?.data,\r\n side: underlyingTreeViewNodeData?.data?.addition === targetNode.data?.addition ? targetNode?.data?.side : changeSidesAccordingToAddition[targetNode.data?.side],\r\n fromRoot: ed.source === node?.id\r\n },\r\n source: ed.source === node?.id ? underlyingTreeViewNodeData?.id : ed.source,\r\n sourceHandle: underlyingTreeViewNodeData?.data?.addition === \"horizontal\" ? \"ccc\" : \"ddd\",\r\n targetHandle: underlyingTreeViewNodeData?.data?.addition === \"horizontal\" ? \"bbb\" : \"aaa\"\r\n }\r\n }\r\n if (targetNode?.data?.side === \"left\" || targetNode?.data?.side === \"top\") {\r\n return {\r\n ...ed,\r\n ...treeViewEdgeData,\r\n data: {\r\n ...treeViewEdgeData?.data,\r\n side: underlyingTreeViewNodeData?.data?.addition === targetNode.data?.addition ? targetNode?.data?.side : changeSidesAccordingToAddition[targetNode.data?.side],\r\n fromRoot: ed.source === node?.id\r\n },\r\n sourceHandle: underlyingTreeViewNodeData?.data?.addition === \"horizontal\" ? \"bbb\" : \"aaa\",\r\n targetHandle: underlyingTreeViewNodeData?.data?.addition === \"horizontal\" ? \"ccc\" : \"ddd\"\r\n }\r\n }\r\n }\r\n return ed;\r\n })\r\n\r\n updatedEdges = [...updatedEdges, newEdge]\r\n } else {\r\n updatedNodes = updatedNodes.map((n) => {\r\n if (node?.id === n?.id) {\r\n return {\r\n ...n,\r\n data: {\r\n ...updatedDataOfUnderlyingTreeViewNode,\r\n label: n?.data?.label,\r\n },\r\n parentNode: underlyingTreeViewNodeData?.id,\r\n height: n.height - 6,\r\n width: ((n?.width || 150) - 7) / 1.33\r\n };\r\n }\r\n if (allChildNodeIds.includes(n.id)) {\r\n return {\r\n ...n,\r\n data: {\r\n ...updatedDataOfUnderlyingTreeViewNode,\r\n label: n?.data?.label,\r\n },\r\n }\r\n }\r\n if (n.id === underlyingTreeViewNodeData?.id) {\r\n return {\r\n ...n,\r\n data: {\r\n ...updatedDataOfUnderlyingTreeViewNode\r\n }\r\n }\r\n }\r\n return n;\r\n });\r\n\r\n updatedNodes = adjustTreeViewNodes(updatedNodes);\r\n\r\n const newEdge = {\r\n id: getId(),\r\n ...treeViewEdgeData,\r\n data: {\r\n ...treeViewEdgeData?.data,\r\n side: underlyingTreeViewNodeData?.data?.side,\r\n fromRoot: false\r\n },\r\n source: underlyingTreeViewNodeData?.id,\r\n target: node?.id,\r\n sourceHandle: assignSourceHandleAccordingToSideAndAddition(underlyingTreeViewNodeData?.data?.addition, underlyingTreeViewNodeData?.data?.side),\r\n targetHandle: assignTargetHandleAccordingToSideAndAddition(underlyingTreeViewNodeData?.data?.addition, underlyingTreeViewNodeData?.data?.side)\r\n }\r\n\r\n updatedEdges = updatedEdges.map((ed) => {\r\n if (allChildEdgeIds.includes(ed.id) && ed.data?.isTreeView) {\r\n return {\r\n ...ed,\r\n ...treeViewEdgeData,\r\n data: {\r\n ...treeViewEdgeData?.data,\r\n side: underlyingTreeViewNodeData?.data?.side,\r\n fromRoot: false\r\n },\r\n sourceHandle: assignSourceHandleAccordingToSideAndAddition(underlyingTreeViewNodeData?.data?.addition, underlyingTreeViewNodeData?.data?.side),\r\n targetHandle: assignTargetHandleAccordingToSideAndAddition(underlyingTreeViewNodeData?.data?.addition, underlyingTreeViewNodeData?.data?.side)\r\n }\r\n }\r\n return ed;\r\n })\r\n\r\n updatedEdges = [...updatedEdges, newEdge]\r\n }\r\n } else if (node?.parentNode && intersectingNodes?.length === 0) {\r\n updatedNodes = updatedNodes.map((n) => {\r\n if (node?.id === n?.id) {\r\n return {\r\n ...n,\r\n parentNode: null,\r\n position: n.positionAbsolute,\r\n };\r\n }\r\n return n;\r\n });\r\n }\r\n } else if (node?.type === \"TreeView\" && node?.data?.type === \"child\") {\r\n const isFarEnough = isPositionFarEnough(\r\n node?.data?.previousPositionAbsolute,\r\n node?.positionAbsolute,\r\n node\r\n );\r\n\r\n const underlyingTreeViewNode = getUnderlyingTreeViewNodeInfo(event, node?.id);\r\n\r\n if (underlyingTreeViewNode) {\r\n\r\n const underlyingTreeViewNodeData = getNode(underlyingTreeViewNode?.nodeId);\r\n const {\r\n childrenOrder = [],\r\n leftChildrenOrder = [],\r\n rightChildrenOrder = [],\r\n topChildrenOrder = [],\r\n bottomChildrenOrder = [],\r\n ...updatedDataOfUnderlyingTreeViewNode\r\n } = underlyingTreeViewNodeData?.data;\r\n\r\n const treeViewDataStructure = treeViewNodeDataStructure(underlyingTreeViewNodeData?.data);\r\n const treeViewEdgeData = treeViewNodeEdgeData(underlyingTreeViewNodeData?.data, connectionLinePath);\r\n\r\n const { nodes: childrenNodes, edges: childrenEdges } = getNodeWithAllChildrenAndEdges(node, getNodes(), getEdges())\r\n const allChildNodeIds = childrenNodes?.map((n) => n.id).filter((n) => n.id !== node?.id);\r\n const allChildEdgeIds = childrenEdges?.map((e) => e.id)\r\n\r\n if (underlyingTreeViewNodeData.id === underlyingTreeViewNodeData?.data?.rootParentId && underlyingTreeViewNodeData?.data?.type === \"parent\") {\r\n updatedNodes = updatedNodes.map((n) => {\r\n if (node?.id === n?.id) {\r\n return {\r\n ...n,\r\n data: {\r\n ...treeViewDataStructure,\r\n label: n?.data?.label,\r\n side: updatedDataOfUnderlyingTreeViewNode?.addition === \"horizontal\" ? \"right\" : \"bottom\",\r\n },\r\n parentNode: underlyingTreeViewNodeData?.id,\r\n };\r\n }\r\n if (allChildNodeIds.includes(n.id)) {\r\n return {\r\n ...n,\r\n data: {\r\n ...treeViewDataStructure,\r\n label: n?.data?.label,\r\n side: updatedDataOfUnderlyingTreeViewNode?.addition === \"horizontal\" ? \"right\" : \"bottom\"\r\n },\r\n }\r\n }\r\n if (n.id === underlyingTreeViewNodeData?.id) {\r\n return {\r\n ...n,\r\n data: {\r\n ...updatedDataOfUnderlyingTreeViewNode\r\n }\r\n }\r\n }\r\n return n\r\n });\r\n\r\n updatedNodes = adjustTreeViewNodes(updatedNodes);\r\n\r\n const underlyingNodeSide = underlyingTreeViewNodeData?.data?.addition === \"horizontal\" ? \"right\" : \"bottom\";\r\n\r\n const newEdge = {\r\n id: getId(),\r\n ...treeViewEdgeData,\r\n data: {\r\n ...treeViewEdgeData?.data,\r\n side: underlyingNodeSide,\r\n fromRoot: true\r\n },\r\n source: underlyingTreeViewNodeData?.id,\r\n target: node?.id,\r\n sourceHandle: assignSourceHandleAccordingToSideAndAddition(underlyingTreeViewNodeData?.data?.addition, underlyingNodeSide),\r\n targetHandle: assignTargetHandleAccordingToSideAndAddition(underlyingTreeViewNodeData?.data?.addition, underlyingNodeSide)\r\n }\r\n\r\n updatedEdges = updatedEdges.map((ed) => {\r\n if (allChildEdgeIds.includes(ed.id) && ed.data?.isTreeView) {\r\n return {\r\n ...ed,\r\n ...treeViewEdgeData,\r\n data: {\r\n ...treeViewEdgeData?.data,\r\n side: underlyingNodeSide,\r\n fromRoot: false\r\n },\r\n sourceHandle: assignSourceHandleAccordingToSideAndAddition(underlyingTreeViewNodeData?.data?.addition, underlyingNodeSide),\r\n targetHandle: assignTargetHandleAccordingToSideAndAddition(underlyingTreeViewNodeData?.data?.addition, underlyingNodeSide)\r\n }\r\n }\r\n return ed;\r\n })\r\n\r\n updatedEdges = updatedEdges.filter(\r\n (ed) => !(ed.target === node?.id || (ed.source === node?.id && !ed?.data?.isTreeView))\r\n );\r\n\r\n updatedEdges = [...updatedEdges, newEdge]\r\n\r\n } else {\r\n updatedNodes = updatedNodes.map((n) => {\r\n if (node?.id === n?.id) {\r\n return {\r\n ...n,\r\n data: {\r\n ...updatedDataOfUnderlyingTreeViewNode,\r\n label: n?.data?.label,\r\n },\r\n parentNode: underlyingTreeViewNodeData?.id,\r\n };\r\n }\r\n if (allChildNodeIds.includes(n.id)) {\r\n return {\r\n ...n,\r\n data: {\r\n ...updatedDataOfUnderlyingTreeViewNode,\r\n label: n?.data?.label,\r\n },\r\n }\r\n }\r\n if (n.id === underlyingTreeViewNodeData?.id) {\r\n return {\r\n ...n,\r\n data: {\r\n ...updatedDataOfUnderlyingTreeViewNode\r\n }\r\n }\r\n }\r\n if (n.id === node?.parentNode && n.type === \"TreeView\" && n.data?.type === \"parent\") {\r\n return {\r\n ...n,\r\n data: {\r\n ...n.data,\r\n [`${node?.data?.side}ChildrenOrder`]: n?.data[`${node?.data?.side}ChildrenOrder`]?.filter((child) => child.id !== node?.id)\r\n }\r\n };\r\n }\r\n if (n.id === node?.parentNode && n.type === \"TreeView\" && n.data?.type === \"child\") {\r\n return {\r\n ...n,\r\n data: {\r\n ...n.data,\r\n childrenOrder: (n.data?.childrenOrder || []).filter((child) => child.id !== node?.id)\r\n }\r\n }\r\n }\r\n\r\n return n;\r\n });\r\n\r\n updatedNodes = adjustTreeViewNodes(updatedNodes);\r\n\r\n const newEdge = {\r\n id: getId(),\r\n ...treeViewEdgeData,\r\n data: {\r\n ...treeViewEdgeData?.data,\r\n side: underlyingTreeViewNodeData?.data?.side,\r\n fromRoot: false\r\n },\r\n source: underlyingTreeViewNodeData?.id,\r\n target: node?.id,\r\n sourceHandle: assignSourceHandleAccordingToSideAndAddition(underlyingTreeViewNodeData?.data?.addition, underlyingTreeViewNodeData?.data?.side),\r\n targetHandle: assignTargetHandleAccordingToSideAndAddition(underlyingTreeViewNodeData?.data?.addition, underlyingTreeViewNodeData?.data?.side)\r\n }\r\n\r\n updatedEdges = updatedEdges.map((ed) => {\r\n if (allChildEdgeIds.includes(ed.id) && ed.data?.isTreeView) {\r\n return {\r\n ...ed,\r\n ...treeViewEdgeData,\r\n data: {\r\n ...treeViewEdgeData?.data,\r\n side: underlyingTreeViewNodeData?.data?.side,\r\n fromRoot: false\r\n },\r\n sourceHandle: assignSourceHandleAccordingToSideAndAddition(underlyingTreeViewNodeData?.data?.addition, underlyingTreeViewNodeData?.data?.side),\r\n targetHandle: assignTargetHandleAccordingToSideAndAddition(underlyingTreeViewNodeData?.data?.addition, underlyingTreeViewNodeData?.data?.side)\r\n }\r\n }\r\n return ed;\r\n })\r\n\r\n updatedEdges = updatedEdges.filter(\r\n (ed) => !(ed.target === node?.id || (ed.source === node?.id && !ed?.data?.isTreeView))\r\n );\r\n\r\n updatedEdges = [...updatedEdges, newEdge]\r\n }\r\n\r\n } else {\r\n if (node?.data?.autoLayout) {\r\n if (oldSideOfTreeNode.current === node?.data?.side) {\r\n updatedNodes = updatedNodes.map((n) => {\r\n if (node?.id === n?.id) {\r\n return {\r\n ...n,\r\n position: n.data.previousPosition || n.position,\r\n positionAbsolute:\r\n n.data.previousPositionAbsolute || n.positionAbsolute,\r\n };\r\n }\r\n return n;\r\n });\r\n } else {\r\n updatedNodes = adjustTreeViewNodes(updatedNodes);\r\n }\r\n } else if (!node?.data?.autoLayout && isFarEnough) {\r\n let newLayoutNodes = [];\r\n\r\n const { nodes: allNodes, edges: allEdges } = getNodeWithAllChildrenAndEdges(\r\n node,\r\n getNodes(),\r\n getEdges()\r\n );\r\n\r\n const allChildEdgeIds = allEdges.map((ed) => ed.id);\r\n\r\n newLayoutNodes = allNodes.map((nd) => {\r\n if (nd.id === node?.id) {\r\n const { childrenOrder, ...updatedData } = nd.data;\r\n return {\r\n ...nd,\r\n position: node?.positionAbsolute,\r\n parentNode: null,\r\n data: {\r\n ...updatedData,\r\n rootParentId: node?.id,\r\n type: \"parent\",\r\n topChildrenOrder: [],\r\n bottomChildrenOrder: [],\r\n leftChildrenOrder: [],\r\n rightChildrenOrder: [],\r\n [`${node.data.side}ChildrenOrder`]: childrenOrder.map(\r\n (child) => ({\r\n ...child,\r\n data: {\r\n ...child.data,\r\n rootParentId: node?.id,\r\n },\r\n })\r\n ),\r\n ...treeViewNodeDesignData[nd.data.designType],\r\n },\r\n width: nd.width * 1.33 + 7,\r\n height: nd.height + 6,\r\n };\r\n } else if (nd.id !== node?.id) {\r\n return {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n rootParentId: node?.id,\r\n childrenOrder: nd.data.childrenOrder.map((child) => ({\r\n ...child,\r\n data: {\r\n ...child.data,\r\n rootParentId: node?.id,\r\n },\r\n })),\r\n },\r\n };\r\n }\r\n return nd;\r\n });\r\n\r\n newLayoutNodes = newLayoutNodes.map((nd) => ({\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n autoLayout: true,\r\n },\r\n }));\r\n\r\n updatedNodes = updatedNodes.map((n) => {\r\n const matchingNode = newLayoutNodes.find(\r\n (newNds) => newNds.id === n.id\r\n );\r\n return matchingNode ? { ...n, ...matchingNode } : n;\r\n });\r\n\r\n updatedEdges = updatedEdges.filter(\r\n (ed) => !(ed.target === node?.id || (ed.source === node?.id && !ed?.data?.isTreeView))\r\n );\r\n\r\n updatedEdges = updatedEdges.map((ed) => {\r\n if (allChildEdgeIds.includes(ed.id)) {\r\n return {\r\n ...ed,\r\n data: {\r\n ...ed.data,\r\n rootParentId: node?.id,\r\n fromRoot: ed.source === node?.id,\r\n },\r\n };\r\n }\r\n return ed;\r\n });\r\n\r\n } else if (!node?.data?.autoLayout && !isFarEnough) {\r\n updatedNodes = updatedNodes.map((n) => {\r\n if (node?.id === n?.id) {\r\n return {\r\n ...n,\r\n data: {\r\n ...n.data,\r\n manuallyPositioned: true,\r\n },\r\n };\r\n }\r\n return n;\r\n });\r\n }\r\n }\r\n }\r\n\r\n return {\r\n mergedAndPositionedNodes: updatedNodes,\r\n mergedAndPositionedEdges: updatedEdges,\r\n }\r\n}"],"names":["_ref","_node$data","_node$data$style","_data$nodeStyle","_data$nodeStyle2","_data$nodeStyle3","_data$border","_data$nodeStyle4","_data$nodeStyle5","_data$nodeStyle6","_data$nodeStyle7","_data$nodeStyle8","_data$nodeStyle9","_data$nodeStyle10","_data$nodeStyle11","_data$nodeStyle12","_data$nodeStyle13","_data$nodeStyle14","_data$nodeStyle15","_data$nodeStyle16","_data$nodeStyle17","_data$border2","_data$border3","_data$border4","_editor$getText","_editor$getText$trim","_editor$getText3","_editor$getText3$trim","isShowToolsPop","setIsShowToolsPop","editor","node","nodeRef","onlybgColor","dispatch","useDispatch","data","showMindMapTheme","setShowMindMapTheme","useState","showNodetype","setShowNodetype","showConnectionLine","setShowConnectionLine","showBranchColor","setShowBranchColor","showFontFamily","setShowFontFamily","showFontStyle","setShowFontStyle","showFillColor","setShowFillColor","showRefLink","setShowRefLink","url","setUrl","showTextAlign","setShowTextAlign","showTextColor","setShowTextColor","currentTextColor","setCurrentTextColor","style","color","currentTextHighlightColor","setCurrentTextHighlightColor","currentFontFamily","setCurrentFontFamily","showFontSizeOpt","setShowFontSizeOpt","showBorderPopup","setShowBorderPopup","showBackgroundPopup","setShowBackgroundPopup","showAIOptions","setShowAIOptions","showChangeTones","setShowChangeTones","showTranslates","setShowTranslates","showExpandOptions","setShowExpandOptions","showMoreOptions","setShowMoreOptions","showShapesLimitModal","setShowShapesLimitModal","copyImageLoading","setCopyImageLoading","copyAsImage","setCopyAsImage","loaders","setLoaders","aiLoader","inputRef","useRef","copy","paste","useCopyPaste","id","architectureId","useParams","user_data","localStorage","getItem","undo","takeSnapshot","useUndoRedo","location","useLocation","getNodes","getNode","getEdges","setNodes","setEdges","getIntersectingNodes","useReactFlow","textStyles","setTextStyles","isBold","isItalic","isUnderline","isStrikethrough","textAlign","listType","fontSize","fontSizeArr","useEffect","updateCopyAsImage","updateNodeData","prevNodes","_parsedData","updatedNodes","map","nd","_objectSpread","label","getHTML","a_id","URLSearchParams","search","get","parsedData","JSON","parse","updateJson","json","architecture_json","nodes","lastUpdatedBy","user_id","_fontFamilyArr$find","currentStyles","getAttributes","isActive","textColor","highlightColor","fontFamily","getCurrentStyles","currentColor","currentHighlightColor","fontFamilyArr","find","font","family","name","findNodeById","nodeId","childrenKey","_node$data$childrenKe","length","found","handleExpandMindmap","async","_currentNode$data","_currentNode$data2","currentNode","n","mindmapNodes","filter","type","rootParentId","side","getChildrenKey","currentNodeToRootNodePath","currentNodeId","path","push","parentNode","findPathToRoot","shift","result","commanService","postApi","prompt","stringify","topic","parentContext","content_type","edges","MindmapGenerator","expand","payload","parentNodeId","designType","direction","addition","GenAIResponse","CustomEvent","detail","isExpanding","document","dispatchEvent","error","_error$response","_error$response$data","_error$response$data2","response","status","warningToast","message","errorToast","handleChangeContentWithAI","content","getText","commands","clearContent","insertContent","_error$response2","_error$response2$data","_error$response$data3","handleThemeChange","theme","_parsedData2","updatedEdges","allMindMapNodes","_nd$data","manuallyPositioned","childrenOrder","topChildrenOrder","bottomChildrenOrder","leftChildrenOrder","rightChildrenOrder","_nd$data2","positionedNodes","createTreeLayout","nds","setItem","lastEvent","matchingNode","resNode","prevEdges","ed","_ed$data","_ed$data2","isTreeView","sourceHandle","targetHandle","debouncedUpdateJson","useCallback","debounce","_parsedData3","handleToggleLock","_parsedData4","_nd$data4","_nd$data5","_nd$data6","draggable","locked","deletable","handleNodeTypeChange","prev","_parsedData5","showBorder","borderType","border","borderStyle","radius","borderRadius","width","borderWidth","nodeStyle","handleChangeConnectionLineType","value","_parsedData6","_nd$data7","edgeType","_ed$data4","_ed$data5","_ed$markerEnd","_ed$markerEnd2","markerEnd","MarkerType","ArrowClosed","algorithm","Algorithm","BezierCatmullRom","debouncedUpdateFontSize","validatedSize","Math","min","max","parseInt","state","selection","empty","chain","focus","selectParentNode","setFontSize","concat","run","handleFontSizeChange","action","currentFontSize","match","newFontSize","convertNodeToImage","removeItem","selectedNodeElement","querySelector","applyComputedStyles","originalElement","clonedElement","computedStyles","window","getComputedStyle","key","getChildNodes","children","reduce","acc","child","childElement","clonedChild","cloneNode","position","left","x","top","y","transform","forEach","nestedChild","appendChild","clonedSelectedNode","zIndex","body","html2canvas","useCORS","scale","backgroundColor","toBlob","blob","navigator","clipboard","write","ClipboardItem","Blob","height","removeChild","successToast","assignRootParentIds","assignToChildren","handleClickDuplicate","_parsedData8","_updatedNodes","now","Date","idMapping","unChangedNodes","duplicatedNodes","duplicatedEdges","allNodes","allEdges","getNodeWithAllChildrenAndEdges","maxX","findMinMaxHorizontalAbsolutePositions","nodeIds","Set","has","updateParentIds","_node$data2","_node$data7","_node$data3","_node$data4","_node$data5","_node$data6","_node$data8","_node$data8$childrenO","positionAbsolute","hiddenBy","edge","source","target","selected","should_delete","handleBringToFront","interSectedNodes","maxZIndex","getMaxAndMinZIndex","handleSendToBack","minZIndex","copyStyle","isColorPickerOpen","getElementById","isAnyInputFocused","isInputFocused","selectedNode","currNode","copiedStyle","TreeView","copyData","writeText","err","pasteStyle","clipboardStyle","clipboardText","readText","_parsedData9","borderColor","opacity","edgeColor","console","warn","moreMenusData","mainLabel","shortCut","onClick","setTimeout","handleCreateFrame","allTreeViewNodes","_node$data9","minX","minY","maxY","frameNode","getId","variant","background","hide","isShadow","frameNo","frameName","exportNodeToCSV","_currNode$position","_currNode$position2","rows","join","row","removeHTMLTags","csvContent","link","createElement","URL","createObjectURL","setAttribute","visibility","click","_parsedData10","_updatedNodes2","removeOrphanedNodes","useKeyboardShortcut","_jsx","NodeToolbar","Position","Top","_jsxs","Box","display","alignItems","justifyContent","gap","sx","right","bgcolor","boxShadow","padding","_Fragment","ClickAwayListener","onClickAway","CustomTooltip","mt","PopperProps","disablePortal","onClose","open","disableFocusListener","disableHoverListener","disableTouchListener","title","Stack","p","IconButton","transition","lightPrimary","_","IcMindMapTheme","fill","primaryColor","ToolTipWithDisabled","placement","tooltipTitle","disabled","e","stopPropagation","CommonDivider","my","orientation","flexItem","BackgroundTool","selectedNodeColor","toRgba","onChangeColor","childrenNodes","childrenEdges","allChildNodeIds","allChildEdgeIds","_nd$data3","includes","_ed$data3","stroke","handleBackgroundColorChange","CustomNameTooltip","arrow","cursor","IcTransparentCircle","FrameBorderToolbar","Typography","IcNodeType2","IcNodeType3","IcNodeType1","IcNodeType4","IcConnectionLine1","IcConnectionLine2","IcConnectionLine3","IcConnectionLine4","IcConnectionLine5","_nd$data8","_nd$data8$nodeStyle","_ed$data6","_ed$data7","markerStart","handleBranchColorChange","flexDirection","IcEdgeColor","outline","CustomSwitch","checked","autoLayout","onChange","_parsedData7","_nd$data9","AdjustedNodes","handleAutoLayoutChange","fontWeight","overflow","maxHeight","onWheelCapture","val","i","setFontFamily","CheckCircleOutlineIcon","px","whiteSpace","textOverflow","maxWidth","titleDark","whiteColor","paddingRight","borderRight","sizeValue","clampedSize","handleUpdateFontSize","minWidth","IcDecresFontSize","IcIncreseFontSize","toggleBold","IcTextBold","toggleItalic","IcTextItalic","toggleUnderline","IcTextUnderline","toggleStrike","IcTextStrickTrough","IcFontStyle","setTextAlign","IcTextAlignLeft","IcTextAlignCenter","IcTextAlignRight","setColor","IcTextColor","toggleHighlight","IcFillColor","IcRefLink","TextField","fullWidth","ref","placeholder","autoFocus","autoComplete","input","py","current","onKeyDown","preventDefault","linkText","extractDomainName","to","setTextSelection","from","setLink","href","IcLockLocked","IcLockUnLocked","bg","Ic3StarsColored","IcArrowDown2","tone","pointerEvents","translate","minHeight","option","SimpleCircularProgress","size","loaderColor","loaderPathColor","trim","_editor$getText2","_editor$getText2$trim","Ic3StartsFill","moreMenu","mainIndex","activeState","event","CircularProgress","rightArrowIcons","subChild","subCI","IcMenuDotsVertical","TreeViewNode","_data$style","_data$style2","_data$style3","userRowData","userData","connectionLinePath","openAIStatus","useSelector","mindMapStore","isNodeSelectionStarted","useNodeSelectionStarted","socket","useSocketContext","hoveredItem","setHoveredItem","oldLabelContent","nodeSize","setNodeSize","socketCount","setSocketCount","isOnlyOneNodeSelected","onAddChild","parentId","details","_parentNode$data","_parentNode$data2","_parentNode$data3","_parentNode$data4","_parentNode$data4$bor","_parentNode$data5","_parentNode$data6","_parentNode$data6$bor","_parentNode$data7","_parentNode$data8","_parentNode$data8$nod","_parentNode$data9","_parentNode$data10","_parentNode$data10$no","_parentNode$data11","_parentNode$data12","afterNodeId","arguments","undefined","newNodeId","isRoot","newNode","childNodeType","edgeAlgorithm","getEdgeColor","treeViewNodeChildDesignData","getBgColor","placeHolderColor","newEdge","animate","animationDirection","isDashed","points","point","crypto","randomUUID","active","fromRoot","strokeWidth","strokeLinecap","getSourceHandle","getTargetHandle","tempNodes","newNodes","some","isRootNode","EnterKeyHandler","Extension","create","addKeyboardShortcuts","Enter","parentNodeOfClickedNode","_parentNodeOfClickedN","handleExtraButtonClick","_parentNodeOfClickedN2","toggleCollapse","_currNode$data","isCollapsed","capitalizeFirstChar","updateVisibility","hidden","_currNode$data2","childNodes","getSameChildNodes","childNode","isNodeHidden","_getNodes$find","debouncedUpdateTreeLayout","updateTreeLayout","checkDimensions","currentWidth","offsetWidth","currentHeight","offsetHeight","nodeDragging","dragging","widthDifference","halfWidthChange","_currNode$data3","_n$data","_currNode$data4","_currNode$positionAbs","_currNode$data5","_n$data2","_currNode$data6","_currNode$positionAbs2","observer","MutationObserver","observe","childList","characterData","subtree","disconnect","useEditor","extensions","tipTapExtensions","onUpdate","CustomPromptEvent","debouncedUpdateHTML","onBlur","_ref2","editorProps","handlePaste","view","pastedContent","clipboardData","getData","setContent","useMemo","currentNodeDom","handleNodeKeyDown","isValidKey","test","isFocused","setEditable","isEditable","addEventListener","once","removeEventListener","on","socketEvents","NODE_UPDATED","_jsonData$nodes","jsonData","primaryColorRGB","className","convertToRgba","onClickHandler","collapsedTop","countChildrenBySide","IcAddRowCol","collapsedLeft","marginRight","IcMinusOutlined","getColorByType","textAvailable","availablewTextColor","first","second","third","four","five","six","seven","eight","nine","ten","TreeViewNodeToolbar","wordWrap","dangerouslySetInnerHTML","__html","EditorContent","onDoubleClick","bottom","collapsedBottom","collapsedRight","Handle","connectionMode","isConnectable","onConnect","params","log","onMouseOver","onMouseLeave","transformOrigin","memo","prevProps","nextProps","globalDragging","adjustTreeViewNodes","layoutResult","hasNodeSwitchedSide","_parentNode$positionA","_parentNode$position","_parentNode$positionA2","_parentNode$position2","_currentNode$position","_currentNode$position2","_currentNode$position3","_currentNode$position4","parentMidX","parentMidY","changeSidesAccordingToSwitch","changeSidesAccordingToAddition","changeSwitchWiseSourceHandles","changeSwitchWiseTargetHandles","updateNodesAndEdgesRecursivelyForSideSwitch","rootParentNode","queue","_n$data3","updatedData","_objectWithoutProperties","_excluded","updatedPositionForHorizontal","updatedPositionForVertical","getUnderlyingTreeViewNodeInfo","treeViewNodes","elementsFromPoint","clientX","clientY","el","classList","contains","getAttribute","Boolean","assignSourceHandleAccordingToSideAndAddition","assignTargetHandleAccordingToSideAndAddition","applyEdgeColor","getRandomRgbColor","treeViewNodeEdgeData","nodeData","treeViewNodeDataStructure","_nodeData$border","_nodeData$border2","_nodeData$nodeStyle","_nodeData$nodeStyle2","mergeAndRepositionTreeViewNodesBasedOnLayout","parameters","oldSideOfTreeNode","intersectingNodes","underlyingTreeViewNode","_underlyingTreeViewNo2","_underlyingTreeViewNo3","underlyingTreeViewNodeData","_underlyingTreeViewNo","updatedDataOfUnderlyingTreeViewNode","_excluded2","treeViewDataStructure","treeViewEdgeData","_underlyingTreeViewNo4","_underlyingTreeViewNo5","_underlyingTreeViewNo6","_n$data4","_n$data5","_n$data6","_n$data7","_n$data8","_n$data9","_n$data10","_n$data11","targetNode","_targetNode$data","_targetNode$data2","_targetNode$data6","_targetNode$data7","_underlyingTreeViewNo7","_targetNode$data3","_targetNode$data4","_targetNode$data5","_underlyingTreeViewNo8","_underlyingTreeViewNo9","_underlyingTreeViewNo10","_targetNode$data8","_targetNode$data9","_targetNode$data10","_underlyingTreeViewNo11","_underlyingTreeViewNo12","_underlyingTreeViewNo13","_underlyingTreeViewNo14","_underlyingTreeViewNo15","_underlyingTreeViewNo16","_underlyingTreeViewNo17","_n$data12","_n$data13","_underlyingTreeViewNo18","_underlyingTreeViewNo19","_underlyingTreeViewNo20","_underlyingTreeViewNo21","_underlyingTreeViewNo22","isFarEnough","isPositionFarEnough","previousPositionAbsolute","_underlyingTreeViewNo24","_underlyingTreeViewNo25","_underlyingTreeViewNo23","_excluded3","_underlyingTreeViewNo26","_underlyingTreeViewNo27","_underlyingTreeViewNo28","_n$data14","_n$data15","underlyingNodeSide","_underlyingTreeViewNo29","_underlyingTreeViewNo30","_underlyingTreeViewNo31","_underlyingTreeViewNo32","_underlyingTreeViewNo33","_underlyingTreeViewNo34","_underlyingTreeViewNo35","_n$data18","_n$data20","_n$data16","_n$data17","_n$data19","_n$data21","_underlyingTreeViewNo36","_underlyingTreeViewNo37","_underlyingTreeViewNo38","_underlyingTreeViewNo39","_underlyingTreeViewNo40","_node$data10","previousPosition","newLayoutNodes","_excluded4","treeViewNodeDesignData","newNds","mergedAndPositionedNodes","mergedAndPositionedEdges"],"sourceRoot":""}