{"version":3,"file":"static/js/main-66960d36.1c37923f.js","mappings":"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","sources":["Components/DrawBoard/Nodes-Types/DotVotingNodeComponents/DotVoting.js","Components/DrawBoard/Nodes-Types/DotVotingNodeComponents/DotVotingNode.js","Components/DrawBoard/Nodes-Types/DrawingNode.js","Components/DrawBoard/Nodes-Types/EmbedIframe.js","Components/DrawBoard/Nodes-Types/GroupNode.js"],"sourcesContent":["import {\r\n Box,\r\n Grid,\r\n Icon,\r\n IconButton,\r\n Stack,\r\n SvgIcon,\r\n TextField,\r\n} from \"@mui/material\";\r\nimport React, {\r\n memo,\r\n useCallback,\r\n useEffect,\r\n useMemo,\r\n useRef,\r\n useState,\r\n} from \"react\";\r\nimport {\r\n IcDotVotingIcon,\r\n IcLockLocked,\r\n IcLockUnLocked,\r\n IcMenuDotsVertical,\r\n} from \"../../../../assets/icon-components\";\r\nimport {\r\n Handle,\r\n NodeResizeControl,\r\n NodeResizer,\r\n NodeToolbar,\r\n Position,\r\n useReactFlow,\r\n useStore,\r\n useStoreApi,\r\n} from \"reactflow\";\r\nimport {\r\n getId,\r\n getNodePositionInsideParent,\r\n} from \"../../../../Utils/grouping-utils\";\r\nimport { updateJson } from \"../../../../CommanFunctions/commanFunctions\";\r\nimport { useLocation, useParams } from \"react-router-dom\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useSelector } from \"react-redux\";\r\nimport \"../style.scss\";\r\nimport {\r\n CustomNameTooltip,\r\n CustomTooltip,\r\n} from \"../../top-toolbar/components/CustomTooltip\";\r\nimport FrameMoreMenus from \"../../../Node/frameNode/FrameMoreMenus\";\r\nimport { useUndoRedo } from \"../../dndUndoRedo/UndoRedoProvider\";\r\nimport useNodeSelectionStarted from \"../../../../Utils/hooks/useNodeSelectionStarted\";\r\nimport { color } from \"../../../../Utils/style/color/color\";\r\nimport { debounce } from \"lodash\";\r\nimport ToolTipWithDisabled from \"../../top-toolbar/components/ToolTipWithDisabled\";\r\nimport { EditorContent, useEditor } from \"@tiptap/react\";\r\nimport { tipTapExtensions } from \"../../tip-tap-editor\";\r\nimport { updateDotVotingDragData } from \"../../../../Redux/mindMapSlice\";\r\n\r\nconst DotVoting = (node) => {\r\n const { getNodes, setNodes, getIntersectingNodes, getNode, getZoom } =\r\n useReactFlow();\r\n const dispatch = useDispatch();\r\n\r\n const nodeNW = getNode(node?.id);\r\n const mainRef = useRef(null);\r\n const svgRef = useRef(null);\r\n const location = useLocation();\r\n const { undo, takeSnapshot } = useUndoRedo();\r\n const { id } = useParams();\r\n const store = useStoreApi();\r\n const { showExport, copyAsImage } = useSelector(\r\n (state) => state?.mindMapStore\r\n );\r\n const { isNodeSelectionStarted } = useNodeSelectionStarted({\r\n selected: node?.selected,\r\n });\r\n\r\n const [hovered, setHovered] = useState(false);\r\n const [showDots, setShowDots] = useState(false);\r\n const [hoveredItem, setHoveredItem] = useState(\"\");\r\n const [zoomPercentages, setZoomPercentages] = useState(100);\r\n const [showDotVotingMoreOptions, setShowDotVotingMoreOptions] =\r\n useState(false);\r\n const [dotVotingData, setDotVotingData] = useState({});\r\n const [clickTimeSTamps, setClickTimeStamps] = useState({\r\n mouseDown: 0,\r\n mouseUp: 0,\r\n duration: 0,\r\n });\r\n const [isInputVisible, setIsInputVisible] = useState(false);\r\n const [fontSize, setFontSize] = useState(node?.data?.fontSize);\r\n\r\n const dotVotingRef = useRef(null);\r\n const titleRef = useRef(null);\r\n const descriptionRef = useRef(null);\r\n\r\n const onDragStart = (event, nodeType, data) => {\r\n event.dataTransfer.setData(\"application/reactflow\", nodeType);\r\n event.dataTransfer.setData(\"data/file\", JSON.stringify(data));\r\n event.dataTransfer.effectAllowed = \"move\";\r\n };\r\n\r\n const dotVoting = [\r\n {\r\n id: 1,\r\n icon: IcDotVotingIcon,\r\n fill: \"#FFEDCE\",\r\n stroke: \"#FFA50E\",\r\n // onDragIconStart: (e) => {\r\n // onDragStart(e, \"dotVotingNode\", {\r\n // type: \"dotVotingNode\",\r\n // key: \"dotVotingNode\",\r\n // data: {\r\n // provider: \"dotVotingNode\",\r\n // fill: \"#FFEDCE\",\r\n // stroke: \"#FFA50E\",\r\n // height: svgRef?.current?.clientHeight,\r\n // width: svgRef?.current?.clientWidth,\r\n // },\r\n // });\r\n // },\r\n },\r\n {\r\n id: 2,\r\n icon: IcDotVotingIcon,\r\n fill: \"#DBECFF\",\r\n stroke: \"#1A84F9\",\r\n },\r\n {\r\n id: 3,\r\n icon: IcDotVotingIcon,\r\n fill: \"#FBE4E2\",\r\n stroke: \"#FF5E51\",\r\n },\r\n {\r\n id: 4,\r\n icon: IcDotVotingIcon,\r\n fill: \"#D1F0E6\",\r\n stroke: \"#059669\",\r\n },\r\n {\r\n id: 5,\r\n icon: IcDotVotingIcon,\r\n fill: \"#EEE9FF\",\r\n stroke: \"#9471FE\",\r\n },\r\n {\r\n id: 6,\r\n icon: IcDotVotingIcon,\r\n fill: \"#FAE8FF\",\r\n stroke: \"#D461F0\",\r\n },\r\n {\r\n id: 7,\r\n icon: IcDotVotingIcon,\r\n fill: \"#D0F4FD\",\r\n stroke: \"#2AD5FE\",\r\n },\r\n {\r\n id: 8,\r\n icon: IcDotVotingIcon,\r\n fill: \"#FFF7D1\",\r\n stroke: \"#FED200\",\r\n },\r\n {\r\n id: 9,\r\n icon: IcDotVotingIcon,\r\n fill: \"#C6FCE9\",\r\n stroke: \"#00DC8F\",\r\n },\r\n {\r\n id: 10,\r\n icon: IcDotVotingIcon,\r\n fill: \"#E6E6E6\",\r\n stroke: \"#848382\",\r\n // onDragIconStart: (e) => {\r\n // onDragStart(e, \"dotVotingNode\", {\r\n // type: \"dotVotingNode\",\r\n // key: \"dotVotingNode\",\r\n // data: {\r\n // provider: \"dotVotingNode\",\r\n // fill: \"#E6E6E6\",\r\n // stroke: \"#848382\",\r\n // height: svgRef?.current?.clientHeight,\r\n // width: svgRef?.current?.clientWidth,\r\n // },\r\n // });\r\n // },\r\n },\r\n ];\r\n\r\n const user_data = localStorage.getItem(\"user_data\");\r\n\r\n const onResizeEnd = (node) => {\r\n let updatedNodes = [];\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n setNodes((prev) => {\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: prev,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n updatedNodes = prev?.map((_) => {\r\n if (_?.id === node?.id) {\r\n _ = JSON.parse(JSON.stringify(_));\r\n _.style.width = Number(mainRef?.current?.offsetWidth);\r\n _.style.height = Number(mainRef?.current?.offsetHeight);\r\n return _;\r\n } else {\r\n return _;\r\n }\r\n });\r\n\r\n updatedNodes = updatedNodes?.map((n) => {\r\n const intersections = getIntersectingNodes(node, false);\r\n\r\n let groupNode = null;\r\n if (intersections?.length > 0) {\r\n groupNode = intersections[intersections?.length - 1];\r\n }\r\n\r\n if (\r\n node.type !== \"group\" &&\r\n node?.parentNode &&\r\n node?.parentNode === groupNode?.id\r\n ) {\r\n return n;\r\n } else if (\r\n intersections.length &&\r\n node?.parentNode !== groupNode?.id &&\r\n !node?.parentNode\r\n ) {\r\n if (n.id === groupNode.id) {\r\n return {\r\n ...n,\r\n className: \"\",\r\n };\r\n } else if (n.id === node.id && !n?.parentNode) {\r\n const position = getNodePositionInsideParent(n, groupNode) ?? {\r\n x: 0,\r\n y: 0,\r\n };\r\n return {\r\n ...n,\r\n position,\r\n parentNode: groupNode.id,\r\n };\r\n } else return n;\r\n } else if (\r\n node?.parentNode &&\r\n node?.parentNode !== groupNode?.id &&\r\n !groupNode\r\n ) {\r\n if ([node?.id].includes(n.id) && node?.parentNode) {\r\n const parentNode = store\r\n .getState()\r\n ?.nodeInternals?.get(node?.parentNode);\r\n if (parentNode) {\r\n return {\r\n ...n,\r\n position: {\r\n x: n.position.x + (parentNode?.positionAbsolute?.x ?? 0),\r\n y: n.position.y + (parentNode?.positionAbsolute?.y ?? 0),\r\n },\r\n expandParent: undefined,\r\n parentNode: undefined,\r\n };\r\n } else {\r\n return n;\r\n }\r\n } else {\r\n return n;\r\n }\r\n } else if (\r\n node?.parentNode &&\r\n node?.parentNode !== groupNode?.id &&\r\n groupNode\r\n ) {\r\n if (n?.id === node?.id) {\r\n n = structuredClone(n);\r\n n.parentNode = groupNode?.id;\r\n n.position = {\r\n x:\r\n (node?.positionAbsolute?.x || 0) -\r\n (groupNode?.positionAbsolute?.x || 0),\r\n y:\r\n (node?.positionAbsolute?.y || 0) -\r\n (groupNode?.positionAbsolute?.y || 0),\r\n };\r\n return n;\r\n } else return n;\r\n } else {\r\n if (n?.type === \"group\") {\r\n }\r\n return n;\r\n }\r\n });\r\n\r\n return updatedNodes;\r\n });\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 lastUpdatedBy: parsedData?.user_id,\r\n lastEvent: `editor_changed_${node?.id}`,\r\n },\r\n },\r\n id,\r\n dispatch,\r\n undo,\r\n a_id,\r\n takeSnapshot,\r\n });\r\n };\r\n\r\n const isNodeSelected = getNodes().filter(\r\n (nd) => nd.id === node.id && node.selected === true\r\n );\r\n\r\n const debouncedUpdateJson = useCallback(\r\n debounce((tempNodes) => {\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 lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id,\r\n dispatch,\r\n undo,\r\n a_id,\r\n takeSnapshot,\r\n });\r\n }, 500), // Adjust the delay (in milliseconds) as needed\r\n [updateJson, user_data, id, undo]\r\n );\r\n\r\n const frameMoreOptionsRef = useRef(null);\r\n\r\n const handleClickOutside = (event) => {\r\n if (\r\n frameMoreOptionsRef.current &&\r\n !frameMoreOptionsRef.current.contains(event.target)\r\n ) {\r\n setShowDotVotingMoreOptions(false);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleClickOutside);\r\n };\r\n }, []);\r\n\r\n const toggleLockUnlock = () => {\r\n let updatedNodes = getNodes();\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n let updatedNode;\r\n setNodes((nodes) => {\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes,\r\n lastUpdatedBy: parsedData?.user_id,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n updatedNodes = nodes.map((nd) => {\r\n if (nd.id === node.id) {\r\n updatedNode = {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n locked: !nd?.data?.locked,\r\n },\r\n };\r\n return updatedNode;\r\n }\r\n return nd;\r\n });\r\n return updatedNodes;\r\n });\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\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,\r\n dispatch,\r\n undo,\r\n takeSnapshot,\r\n a_id,\r\n });\r\n };\r\n\r\n const zoom = useStore((state) =>\r\n (node?.selected || showDots) && !isNodeSelectionStarted\r\n ? state?.transform?.[2]\r\n : 1\r\n );\r\n const sizeAsPerZoom = nodeNW?.width * zoom || 100;\r\n useEffect(() => {\r\n if (mainRef.current && !isNodeSelectionStarted) {\r\n setZoomPercentages(zoom * 100);\r\n }\r\n }, [zoom]);\r\n\r\n const isItemToSmall = useMemo(\r\n () => zoomPercentages <= 12.5,\r\n [zoomPercentages]\r\n );\r\n\r\n const isWidthLessthan25 = useMemo(\r\n () => 12.5 < zoomPercentages && zoomPercentages <= 25,\r\n [zoomPercentages]\r\n );\r\n\r\n const isWidthLessthan50 = useMemo(\r\n () => 25 < zoomPercentages && zoomPercentages <= 50,\r\n [zoomPercentages]\r\n );\r\n\r\n const isWidthLessthan100 = useMemo(\r\n () => 50 < zoomPercentages && zoomPercentages <= 100,\r\n [zoomPercentages]\r\n );\r\n\r\n // const calculatedWidth = svgRef?.current?.clientWidth;\r\n // const calculatedHeight = svgRef?.current?.clientHeight;\r\n\r\n const baseWidth = svgRef?.current?.clientWidth;\r\n const baseHeight = svgRef?.current?.clientHeight;\r\n const zoomPercentage = getZoom() * 100;\r\n\r\n const calculatedWidth = (baseWidth * zoomPercentage) / 100;\r\n const calculatedHeight = (baseHeight * zoomPercentage) / 100;\r\n const handleDragStart = (event, val, dotVotingId) => {\r\n setDotVotingData(val);\r\n const updatedObject = {\r\n type: \"dotVotingNode\",\r\n key: \"dotVotingNode\",\r\n data: {\r\n provider: \"dotVotingNode\",\r\n fill: val?.fill,\r\n stroke: val?.stroke,\r\n height: svgRef?.current?.clientHeight,\r\n width: svgRef?.current?.clientWidth,\r\n },\r\n };\r\n\r\n // Safari requires text/plain data type\r\n event.dataTransfer.setData(\"text/plain\", \"dotVotingNode\");\r\n\r\n event.dataTransfer.setData(\"application/reactflow\", \"dotVotingNode\");\r\n event.dataTransfer.setData(\r\n \"data/file\",\r\n JSON.stringify(updatedObject ?? {})\r\n );\r\n event.dataTransfer.effectAllowed = \"move\";\r\n\r\n // const img = document.createElement('img');\r\n // img.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';\r\n // event.dataTransfer.setDragImage(img, 0, 0);\r\n\r\n if (dotVotingRef.current) {\r\n const xPos = calculatedWidth / 2;\r\n const yPos = calculatedHeight / 2;\r\n dotVotingRef.current.style.visibility = \"visible\";\r\n event.dataTransfer.setDragImage(dotVotingRef.current, xPos, yPos);\r\n }\r\n dispatch(\r\n updateDotVotingDragData({\r\n isDragging: true,\r\n calculatedWidth,\r\n calculatedHeight,\r\n dotVotingId,\r\n x: event.pageX,\r\n y: event.pageY,\r\n })\r\n );\r\n };\r\n\r\n useEffect(() => {\r\n if (dotVotingRef.current) {\r\n dotVotingRef.current.style.visibility = \"hidden\";\r\n }\r\n }, []);\r\n const onDragEnd = () => {\r\n dispatch(\r\n updateDotVotingDragData({\r\n isDragging: false,\r\n dotVotingId: 0,\r\n x: 0,\r\n y: 0,\r\n })\r\n );\r\n if (dotVotingRef.current) {\r\n dotVotingRef.current.style.visibility = \"hidden\";\r\n setDotVotingData(\"\");\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (nodeNW?.width && nodeNW?.height) {\r\n const calculatedFontSize = Math.max(12, nodeNW.width / 15);\r\n setFontSize(calculatedFontSize);\r\n }\r\n }, [nodeNW?.width, nodeNW?.height]);\r\n\r\n const inputRef = useRef(null);\r\n\r\n useEffect(() => {\r\n if (!node?.selected) {\r\n setIsInputVisible(false);\r\n setShowDotVotingMoreOptions(false);\r\n }\r\n }, [node?.selected]);\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 updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n },\r\n },\r\n id,\r\n dispatch,\r\n undo,\r\n a_id,\r\n });\r\n }, 500);\r\n }, [setNodes]);\r\n\r\n const titleEditor = useEditor(\r\n {\r\n extensions: [...tipTapExtensions(\"Dot Voting\")],\r\n content: node?.data?.label,\r\n onUpdate: async ({ editor }) => {\r\n let updatedNodes = [];\r\n setNodes((nds) => {\r\n const data = nodeResizeData();\r\n updatedNodes = data.map((nd) => {\r\n if (nd.id === node?.id) {\r\n return {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n label: editor.getHTML(),\r\n },\r\n };\r\n }\r\n return nd;\r\n });\r\n return updatedNodes; // Return updated nodes\r\n });\r\n debouncedUpdateHTML(updatedNodes);\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 []\r\n );\r\n\r\n const nodeResizeData = () => {\r\n const titleHeight = titleRef.current?.offsetHeight || 0;\r\n const descriptionHeight = descriptionRef.current?.offsetHeight || 0;\r\n\r\n const totalHeight = titleHeight + descriptionHeight + 50;\r\n\r\n const updatedNodes = getNodes().map((n) =>\r\n n?.id === node?.id\r\n ? {\r\n ...n,\r\n // selected: true,\r\n height: totalHeight,\r\n style: {\r\n ...n.style,\r\n height: totalHeight,\r\n },\r\n }\r\n : n\r\n );\r\n return updatedNodes;\r\n };\r\n\r\n useEffect(() => {\r\n if (titleRef.current || descriptionRef.current) {\r\n const data = nodeResizeData();\r\n setNodes(data);\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: getNodes(),\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n debouncedUpdateJson(getNodes());\r\n }\r\n }, [titleRef?.current, descriptionRef?.current, isInputVisible]);\r\n\r\n function stripHtmlTags(str) {\r\n return str.replace(/<\\/?[^>]+(>|$)/g, \"\");\r\n }\r\n\r\n return (\r\n {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n }}\r\n >\r\n setHovered(true)}\r\n onMouseOut={() => setHovered(false)}\r\n >\r\n setShowDots(true)}\r\n onMouseOut={() => setShowDots(false)}\r\n >\r\n {sizeAsPerZoom > 25 &&\r\n node?.selected &&\r\n !showExport &&\r\n !isNodeSelectionStarted &&\r\n !copyAsImage &&\r\n !node?.data?.locked && (\r\n <>\r\n {/* onResizeEnd(node, true)}\r\n minWidth={220}\r\n minHeight={130}\r\n /> */}\r\n onResizeEnd(node)}\r\n minWidth={220}\r\n minHeight={130}\r\n style={{\r\n zIndex: 999999999999,\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid transparent\",\r\n }}\r\n >\r\n \r\n \r\n onResizeEnd(node, true)}\r\n minWidth={220}\r\n minHeight={130}\r\n style={{\r\n zIndex: 999999999999,\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid transparent\",\r\n }}\r\n >\r\n \r\n \r\n onResizeEnd(node, true)}\r\n minWidth={220}\r\n minHeight={130}\r\n style={{\r\n zIndex: 999999999999,\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid transparent\",\r\n }}\r\n >\r\n \r\n \r\n onResizeEnd(node, true)}\r\n minWidth={220}\r\n minHeight={130}\r\n style={{\r\n zIndex: 999999999999,\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid transparent\",\r\n }}\r\n >\r\n \r\n \r\n \r\n )}\r\n\r\n {!isNodeSelectionStarted &&\r\n !node?.dragging &&\r\n !showExport &&\r\n !isItemToSmall &&\r\n !copyAsImage &&\r\n !node?.data?.locked && (\r\n <>\r\n \r\n console.log(\"handle onConnect\", params)\r\n }\r\n onMouseOver={() => {\r\n setShowDots(true);\r\n setHoveredItem(\"left\");\r\n }}\r\n onMouseLeave={() => {\r\n setShowDots(false);\r\n setHoveredItem(\"\");\r\n }}\r\n onClick={(e) => {\r\n e.preventDefault();\r\n }}\r\n >\r\n {(!isNodeSelectionStarted || isNodeSelected <= 0) && (\r\n \r\n )}\r\n \r\n \r\n console.log(\"handle onConnect\", params)\r\n }\r\n onMouseOver={() => {\r\n setShowDots(true);\r\n setHoveredItem(\"right\");\r\n }}\r\n onMouseLeave={() => {\r\n setShowDots(false);\r\n setHoveredItem(\"\");\r\n }}\r\n onClick={(e) => {\r\n e.preventDefault();\r\n }}\r\n >\r\n {(!isNodeSelectionStarted || isNodeSelected <= 0) && (\r\n \r\n )}\r\n \r\n {\r\n setShowDots(true);\r\n setHoveredItem(\"top\");\r\n }}\r\n onMouseLeave={() => {\r\n setShowDots(false);\r\n setHoveredItem(\"\");\r\n }}\r\n onClick={(e) => {\r\n e.preventDefault();\r\n }}\r\n >\r\n {(!isNodeSelectionStarted || isNodeSelected <= 0) && (\r\n \r\n )}\r\n \r\n \r\n console.log(\"handle onConnect\", params)\r\n }\r\n onMouseOver={() => {\r\n setShowDots(true);\r\n setHoveredItem(\"bottom\");\r\n }}\r\n onMouseLeave={() => {\r\n setShowDots(false);\r\n setHoveredItem(\"\");\r\n }}\r\n onClick={(e) => {\r\n e.preventDefault();\r\n }}\r\n >\r\n {(!isNodeSelectionStarted || isNodeSelected <= 0) && (\r\n \r\n )}\r\n \r\n \r\n )}\r\n\r\n {!node.dragging && !isNodeSelectionStarted && node?.selected && (\r\n \r\n \r\n \r\n \r\n \r\n {node?.data?.locked ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n setShowDotVotingMoreOptions(false)}\r\n open={showDotVotingMoreOptions}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n \r\n }\r\n >\r\n \r\n \r\n setShowDotVotingMoreOptions(!showDotVotingMoreOptions)\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n setIsInputVisible(false)}\r\n >\r\n {isInputVisible && !node?.data?.locked ? (\r\n \r\n {\r\n e?.preventDefault();\r\n e?.stopPropagation();\r\n }}\r\n onClick={(e) => {\r\n e?.stopPropagation();\r\n e?.preventDefault();\r\n }}\r\n style={{\r\n // minHeight: \"44px\",\r\n // width: \"250px\",\r\n padding: \"0 5px\",\r\n fontSize: fontSize,\r\n cursor: \"text\",\r\n borderRadius: \"8px\",\r\n color: \"#282828\",\r\n border: `1px solid ${color?.primaryColor}`,\r\n boxShadow: `0px 0px 0px 3px ${color.lightPrimary}`,\r\n // maxHeight: \"230px\",\r\n overflow: \"auto\",\r\n whiteSpace: \"pre-wrap\",\r\n wordBreak: \"break-all\",\r\n fontWeight: 600,\r\n width: \"100%\",\r\n }}\r\n className=\"nodrag\"\r\n />\r\n \r\n ) : (\r\n \r\n {\r\n setIsInputVisible(true);\r\n titleEditor?.commands?.focus();\r\n }}\r\n ref={titleRef}\r\n sx={{\r\n width: nodeNW?.width - 36,\r\n color: \"#18181B\",\r\n fontWeight: 600,\r\n resize: \"none\",\r\n fontSize: fontSize,\r\n cursor: \"pointer\",\r\n whiteSpace: \"nowrap\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n padding: \"1px 6px\",\r\n }}\r\n >\r\n {stripHtmlTags(node?.data?.label)}\r\n \r\n \r\n )}\r\n\r\n {/* \r\n Dot Voting\r\n */}\r\n setIsInputVisible(false)}\r\n >\r\n = 225\r\n // ? \"-15px\"\r\n // : isInputVisible && !node?.data?.locked\r\n // ? \"-18px\"\r\n // : \"-16px\",\r\n // }}\r\n >\r\n {dotVoting?.map((item) => {\r\n return (\r\n \r\n e.stopPropagation()}\r\n // onDragStart={(e) => {\r\n // item?.onDragIconStart(e);\r\n // }}\r\n onDragStart={(e) => handleDragStart(e, item, item?.id)}\r\n onDragEnd={() => {\r\n onDragEnd();\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};\r\n\r\nexport default memo(DotVoting, (prevProps, nextProps) => {\r\n return prevProps.data.globalDragging && nextProps.data.globalDragging;\r\n});\r\n","import React, { memo, useEffect, useMemo, useRef, useState } from \"react\";\r\nimport {\r\n Handle,\r\n NodeResizeControl,\r\n NodeResizer,\r\n NodeToolbar,\r\n Position,\r\n useReactFlow,\r\n useStore,\r\n useStoreApi,\r\n} from \"reactflow\";\r\nimport { Box, IconButton } from \"@mui/material\";\r\nimport { getNodePositionInsideParent } from \"../../../../Utils/grouping-utils\";\r\nimport { useLocation, useParams } from \"react-router-dom\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { updateJson } from \"../../../../CommanFunctions/commanFunctions\";\r\nimport {\r\n IcLockLocked,\r\n IcLockUnLocked,\r\n IcMenuDotsVertical,\r\n} from \"../../../../assets/icon-components\";\r\nimport FrameMoreMenus from \"../../../Node/frameNode/FrameMoreMenus\";\r\nimport {\r\n CustomNameTooltip,\r\n CustomTooltip,\r\n} from \"../../top-toolbar/components/CustomTooltip\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useUndoRedo } from \"../../dndUndoRedo/UndoRedoProvider\";\r\nimport useNodeSelectionStarted from \"../../../../Utils/hooks/useNodeSelectionStarted\";\r\nimport { color } from \"../../../../Utils/style/color/color\";\r\n\r\nconst IcDotVotingIcon = ({\r\n fill = \"#FFEDCE\",\r\n stroke = \"#FFA50E\",\r\n height = 24,\r\n width = 24,\r\n}) => {\r\n return (\r\n // \r\n // \r\n // \r\n \r\n \r\n \r\n );\r\n};\r\nconst DotVotingNode = (node) => {\r\n const [hovered, setHovered] = useState(false);\r\n const [locked, setLocked] = useState(false);\r\n const [isDotsShow, setIsDotsShow] = useState(true);\r\n const [showDots, setShowDots] = useState(false);\r\n const [hoveredItem, setHoveredItem] = useState(\"\");\r\n const [zoomPercentages, setZoomPercentages] = useState(100);\r\n const store = useStoreApi();\r\n const mainRef = useRef(null);\r\n const [showDotVotingMoreOptions, setShowDotVotingMoreOptions] =\r\n useState(false);\r\n\r\n const { getNodes, setNodes, getIntersectingNodes, getNode } = useReactFlow();\r\n const nodeNW = getNode(node?.id);\r\n const { undo, takeSnapshot } = useUndoRedo();\r\n const { id } = useParams();\r\n const dispatch = useDispatch();\r\n const location = useLocation();\r\n const user_data = localStorage.getItem(\"user_data\");\r\n\r\n const { showExport, copyAsImage } = useSelector(\r\n (state) => state?.mindMapStore\r\n );\r\n const { isNodeSelectionStarted } = useNodeSelectionStarted({\r\n selected: node?.selected,\r\n });\r\n\r\n const frameMoreOptionsRef = useRef(null);\r\n\r\n const handleClickOutside = (event) => {\r\n if (\r\n frameMoreOptionsRef.current &&\r\n !frameMoreOptionsRef.current.contains(event.target)\r\n ) {\r\n setShowDotVotingMoreOptions(false);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleClickOutside);\r\n };\r\n }, [showDotVotingMoreOptions]);\r\n\r\n const toggleLockUnlock = () => {\r\n let updatedNodes = getNodes();\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n let updatedNode;\r\n setNodes((nodes) => {\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes,\r\n lastUpdatedBy: parsedData?.user_id,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n updatedNodes = nodes.map((nd) => {\r\n if (nd.id === node.id) {\r\n updatedNode = {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n locked: !nd?.data?.locked,\r\n },\r\n };\r\n return updatedNode;\r\n }\r\n return nd;\r\n });\r\n return updatedNodes;\r\n });\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\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,\r\n dispatch,\r\n undo,\r\n a_id,\r\n takeSnapshot,\r\n });\r\n };\r\n\r\n const onNodeResize = (node) => {\r\n let updatedNodes = [];\r\n\r\n setNodes((prev) => {\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: prev,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n updatedNodes = prev?.map((_) => {\r\n if (_?.id === node?.id) {\r\n _ = JSON.parse(JSON.stringify(_));\r\n _.data.width = Number(mainRef?.current?.offsetWidth);\r\n _.data.height = Number(mainRef?.current?.offsetHeight);\r\n return _;\r\n } else {\r\n return _;\r\n }\r\n });\r\n\r\n updatedNodes = updatedNodes?.map((n) => {\r\n const intersections = getIntersectingNodes(node, false);\r\n\r\n let groupNode = null;\r\n if (intersections?.length > 0) {\r\n groupNode = intersections[intersections?.length - 1];\r\n }\r\n\r\n if (\r\n node.type !== \"group\" &&\r\n node?.parentNode &&\r\n node?.parentNode === groupNode?.id\r\n ) {\r\n return n;\r\n } else if (\r\n intersections.length &&\r\n node?.parentNode !== groupNode?.id &&\r\n !node?.parentNode\r\n ) {\r\n if (n.id === groupNode.id) {\r\n return {\r\n ...n,\r\n className: \"\",\r\n };\r\n } else if (n.id === node.id && !n?.parentNode) {\r\n const position = getNodePositionInsideParent(n, groupNode) ?? {\r\n x: 0,\r\n y: 0,\r\n };\r\n return {\r\n ...n,\r\n position,\r\n parentNode: groupNode.id,\r\n };\r\n } else return n;\r\n } else if (\r\n node?.parentNode &&\r\n node?.parentNode !== groupNode?.id &&\r\n !groupNode\r\n ) {\r\n if ([node?.id].includes(n.id) && node?.parentNode) {\r\n const parentNode = store\r\n .getState()\r\n ?.nodeInternals?.get(node?.parentNode);\r\n if (parentNode) {\r\n return {\r\n ...n,\r\n position: {\r\n x: n.position.x + (parentNode?.positionAbsolute?.x ?? 0),\r\n y: n.position.y + (parentNode?.positionAbsolute?.y ?? 0),\r\n },\r\n expandParent: undefined,\r\n parentNode: undefined,\r\n };\r\n } else {\r\n return n;\r\n }\r\n } else {\r\n return n;\r\n }\r\n } else if (\r\n node?.parentNode &&\r\n node?.parentNode !== groupNode?.id &&\r\n groupNode\r\n ) {\r\n if (n?.id === node?.id) {\r\n n = structuredClone(n);\r\n n.parentNode = groupNode?.id;\r\n n.position = {\r\n x:\r\n (node?.positionAbsolute?.x || 0) -\r\n (groupNode?.positionAbsolute?.x || 0),\r\n y:\r\n (node?.positionAbsolute?.y || 0) -\r\n (groupNode?.positionAbsolute?.y || 0),\r\n };\r\n return n;\r\n } else return n;\r\n } else {\r\n if (n?.type === \"group\") {\r\n }\r\n return n;\r\n }\r\n });\r\n\r\n return updatedNodes;\r\n });\r\n };\r\n const onResizeEnd = (node, isResizeEnd = false) => {\r\n let updatedNodes = [];\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n setNodes((prev) => {\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: prev,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n updatedNodes = prev?.map((_) => {\r\n if (_?.id === node?.id) {\r\n _ = JSON.parse(JSON.stringify(_));\r\n _.data.width = Number(mainRef?.current?.offsetWidth);\r\n _.data.height = Number(mainRef?.current?.offsetHeight);\r\n return _;\r\n } else {\r\n return _;\r\n }\r\n });\r\n\r\n updatedNodes = updatedNodes?.map((n) => {\r\n const intersections = getIntersectingNodes(node, false);\r\n\r\n let groupNode = null;\r\n if (intersections?.length > 0) {\r\n groupNode = intersections[intersections?.length - 1];\r\n }\r\n\r\n if (\r\n node.type !== \"group\" &&\r\n node?.parentNode &&\r\n node?.parentNode === groupNode?.id\r\n ) {\r\n return n;\r\n } else if (\r\n intersections.length &&\r\n node?.parentNode !== groupNode?.id &&\r\n !node?.parentNode\r\n ) {\r\n if (n.id === groupNode.id) {\r\n return {\r\n ...n,\r\n className: \"\",\r\n };\r\n } else if (n.id === node.id && !n?.parentNode) {\r\n const position = getNodePositionInsideParent(n, groupNode) ?? {\r\n x: 0,\r\n y: 0,\r\n };\r\n return {\r\n ...n,\r\n position,\r\n parentNode: groupNode.id,\r\n };\r\n } else return n;\r\n } else if (\r\n node?.parentNode &&\r\n node?.parentNode !== groupNode?.id &&\r\n !groupNode\r\n ) {\r\n if ([node?.id].includes(n.id) && node?.parentNode) {\r\n const parentNode = store\r\n .getState()\r\n ?.nodeInternals?.get(node?.parentNode);\r\n if (parentNode) {\r\n return {\r\n ...n,\r\n position: {\r\n x: n.position.x + (parentNode?.positionAbsolute?.x ?? 0),\r\n y: n.position.y + (parentNode?.positionAbsolute?.y ?? 0),\r\n },\r\n expandParent: undefined,\r\n parentNode: undefined,\r\n };\r\n } else {\r\n return n;\r\n }\r\n } else {\r\n return n;\r\n }\r\n } else if (\r\n node?.parentNode &&\r\n node?.parentNode !== groupNode?.id &&\r\n groupNode\r\n ) {\r\n if (n?.id === node?.id) {\r\n n = structuredClone(n);\r\n n.parentNode = groupNode?.id;\r\n n.position = {\r\n x:\r\n (node?.positionAbsolute?.x || 0) -\r\n (groupNode?.positionAbsolute?.x || 0),\r\n y:\r\n (node?.positionAbsolute?.y || 0) -\r\n (groupNode?.positionAbsolute?.y || 0),\r\n };\r\n return n;\r\n } else return n;\r\n } else {\r\n if (n?.type === \"group\") {\r\n }\r\n return n;\r\n }\r\n });\r\n\r\n return updatedNodes;\r\n });\r\n if (isResizeEnd) {\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 lastUpdatedBy: parsedData?.user_id,\r\n lastEvent: `editor_changed_${node?.id}`,\r\n },\r\n },\r\n id,\r\n dispatch,\r\n undo,\r\n a_id,\r\n takeSnapshot,\r\n });\r\n }\r\n };\r\n\r\n const zoom = useStore((state) =>\r\n (node?.selected || showDots) && !isNodeSelectionStarted\r\n ? state?.transform?.[2]\r\n : 1\r\n );\r\n const sizeAsPerZoom = nodeNW?.width * zoom || 100;\r\n useEffect(() => {\r\n if (mainRef.current && !isNodeSelectionStarted) {\r\n setZoomPercentages(zoom * 100);\r\n }\r\n }, [zoom]);\r\n\r\n const isItemToSmall = useMemo(\r\n () => zoomPercentages <= 12.5,\r\n [zoomPercentages]\r\n );\r\n\r\n const isWidthLessthan25 = useMemo(\r\n () => 12.5 < zoomPercentages && zoomPercentages <= 25,\r\n [zoomPercentages]\r\n );\r\n\r\n const isWidthLessthan50 = useMemo(\r\n () => 25 < zoomPercentages && zoomPercentages <= 50,\r\n [zoomPercentages]\r\n );\r\n\r\n const isWidthLessthan100 = useMemo(\r\n () => 50 < zoomPercentages && zoomPercentages <= 100,\r\n [zoomPercentages]\r\n );\r\n\r\n const isNodeSelected = getNodes().filter(\r\n (nd) => nd.id === node.id && node.selected === true\r\n );\r\n\r\n useEffect(() => {\r\n if (!node?.selected) {\r\n setShowDotVotingMoreOptions(false);\r\n }\r\n }, [node?.selected]);\r\n\r\n return (\r\n setHovered(true)}\r\n onMouseOut={() => setHovered(false)}\r\n className={node?.data?.locked ? \"nodrag\" : \"\"}\r\n ref={mainRef}\r\n >\r\n setShowDots(true)}\r\n onMouseOut={() => setShowDots(false)}\r\n >\r\n {sizeAsPerZoom > 25 &&\r\n node?.selected &&\r\n !node?.dragging &&\r\n !showExport &&\r\n !isNodeSelectionStarted &&\r\n !copyAsImage &&\r\n !node?.data?.locked && (\r\n <>\r\n {/* onResizeEnd(node, true)}\r\n minHeight={27}\r\n minWidth={26}\r\n /> */}\r\n onResizeEnd(node, true)}\r\n onResize={() => onNodeResize(node)}\r\n // onResize={() => onResizeEnd(node)}\r\n // minWidth={36}\r\n // minHeight={36}\r\n minHeight={27}\r\n minWidth={26}\r\n style={{\r\n zIndex: 999999999999,\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid transparent\",\r\n }}\r\n >\r\n \r\n \r\n onResizeEnd(node, true)}\r\n onResize={() => onNodeResize(node)}\r\n // onResize={() => onResizeEnd(node)}\r\n minHeight={27}\r\n minWidth={26}\r\n style={{\r\n zIndex: 999999999999,\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid transparent\",\r\n }}\r\n >\r\n \r\n \r\n onResizeEnd(node, true)}\r\n onResize={() => onNodeResize(node)}\r\n // onResize={() => onResizeEnd(node)}\r\n minHeight={27}\r\n minWidth={26}\r\n style={{\r\n zIndex: 999999999999,\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid transparent\",\r\n }}\r\n >\r\n \r\n \r\n onResizeEnd(node, true)}\r\n onResize={() => onNodeResize(node)}\r\n // onResize={() => onResizeEnd(node)}\r\n minHeight={27}\r\n minWidth={26}\r\n style={{\r\n zIndex: 999999999999,\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid transparent\",\r\n }}\r\n >\r\n \r\n \r\n \r\n )}\r\n {!isNodeSelectionStarted &&\r\n !node?.dragging &&\r\n !showExport &&\r\n !isItemToSmall &&\r\n !copyAsImage &&\r\n !node?.data?.locked && (\r\n <>\r\n console.log(\"handle onConnect\", params)}\r\n onMouseOver={() => {\r\n setShowDots(true);\r\n setHoveredItem(\"left\");\r\n }}\r\n onMouseLeave={() => {\r\n setShowDots(false);\r\n setHoveredItem(\"\");\r\n }}\r\n onClick={(e) => {\r\n e.preventDefault();\r\n }}\r\n >\r\n {(!isNodeSelectionStarted || isNodeSelected <= 0) && (\r\n \r\n )}\r\n \r\n console.log(\"handle onConnect\", params)}\r\n onMouseOver={() => {\r\n setShowDots(true);\r\n setHoveredItem(\"right\");\r\n }}\r\n onMouseLeave={() => {\r\n setShowDots(false);\r\n setHoveredItem(\"\");\r\n }}\r\n onClick={(e) => {\r\n e.preventDefault();\r\n }}\r\n >\r\n {(!isNodeSelectionStarted || isNodeSelected <= 0) && (\r\n \r\n )}\r\n \r\n {\r\n setShowDots(true);\r\n setHoveredItem(\"top\");\r\n }}\r\n onMouseLeave={() => {\r\n setShowDots(false);\r\n setHoveredItem(\"\");\r\n }}\r\n onClick={(e) => {\r\n e.preventDefault();\r\n }}\r\n >\r\n {(!isNodeSelectionStarted || isNodeSelected <= 0) && (\r\n \r\n )}\r\n \r\n console.log(\"handle onConnect\", params)}\r\n onMouseOver={() => {\r\n setShowDots(true);\r\n setHoveredItem(\"bottom\");\r\n }}\r\n onMouseLeave={() => {\r\n setShowDots(false);\r\n setHoveredItem(\"\");\r\n }}\r\n onClick={(e) => {\r\n e.preventDefault();\r\n }}\r\n >\r\n {(!isNodeSelectionStarted || isNodeSelected <= 0) && (\r\n \r\n )}\r\n \r\n \r\n )}\r\n {!node.dragging && !isNodeSelectionStarted && node?.selected && (\r\n \r\n \r\n \r\n \r\n \r\n {node?.data?.locked ? : }\r\n \r\n \r\n \r\n \r\n \r\n setShowDotVotingMoreOptions(false)}\r\n open={showDotVotingMoreOptions}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n \r\n }\r\n >\r\n \r\n \r\n setShowDotVotingMoreOptions(!showDotVotingMoreOptions)\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\nexport default memo(DotVotingNode, (prevProps, nextProps) => {\r\n return prevProps.data.globalDragging && nextProps.data.globalDragging;\r\n});\r\n","import { memo, useEffect, useState } from \"react\";\r\nimport { NodeResizeControl, useReactFlow, useViewport } from \"reactflow\";\r\nimport { Box } from \"@mui/material\";\r\nimport { updateJson } from \"../../../CommanFunctions/commanFunctions\";\r\nimport { useLocation, useParams } from \"react-router-dom\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useUndoRedo } from \"../dndUndoRedo/UndoRedoProvider\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { color } from \"../../../Utils/style/color/color\";\r\n\r\nconst DrawingNode = (node) => {\r\n const { data, id, selected } = node;\r\n const { canvasInfo, showExport, copyAsImage } = useSelector(\r\n (state) => state.mindMapStore\r\n );\r\n const { setNodes, getNode } = useReactFlow();\r\n const currNode = getNode(id);\r\n const { id: architectureId } = useParams();\r\n const { undo, takeSnapshot } = useUndoRedo();\r\n const location = useLocation();\r\n const dispatch = useDispatch();\r\n const user_data = localStorage.getItem(\"user_data\");\r\n const { zoom } = useViewport();\r\n const sizeAsPerZoom = currNode?.width * zoom || 100;\r\n const [resizedWidth, setResizedWidth] = useState(\"\");\r\n const [transformScale, setTransformScale] = useState(1);\r\n\r\n useEffect(() => {\r\n const width = currNode.style?.width;\r\n const height = currNode.style?.height;\r\n\r\n // Make sure both initialWidth and initialHeight are defined\r\n if (data?.initialWidth && data?.initialHeight && width && height) {\r\n const scaleX = width / data?.initialWidth;\r\n const scaleY = height / data?.initialHeight;\r\n const scale = Math.min(scaleX, scaleY);\r\n setTransformScale(scale);\r\n }\r\n }, [currNode, resizedWidth]);\r\n\r\n useEffect(() => {\r\n if (canvasInfo.isShow === false) {\r\n if (node.data.path?.trim()?.length <= 0) {\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n\r\n setNodes((prev) => {\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: prev,\r\n // lastUpdatedBy: parsedData?.user_id,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n const updatedNodes = prev.filter((nd) => nd.id !== node.id);\r\n\r\n return updatedNodes;\r\n });\r\n }\r\n }\r\n }, [canvasInfo.isShow, node]);\r\n\r\n const onResize = (event, { width, height }) => {\r\n setNodes((prev) => {\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: prev,\r\n // lastUpdatedBy: parsedData?.user_id,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n return prev?.map((val) => {\r\n if (val?.id === id) {\r\n return {\r\n ...val,\r\n style: {\r\n ...val?.style,\r\n width,\r\n height,\r\n },\r\n };\r\n } else {\r\n return val;\r\n }\r\n });\r\n });\r\n setResizedWidth(width);\r\n };\r\n\r\n const onResizeEnd = (event, { width, height }) => {\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n\r\n setNodes((prev) => {\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: prev,\r\n // lastUpdatedBy: parsedData?.user_id,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n let updatedNode;\r\n const updatedNodes = prev?.map((val) => {\r\n if (val?.id === id) {\r\n updatedNode = {\r\n ...val,\r\n style: {\r\n ...val?.style,\r\n width,\r\n height,\r\n },\r\n };\r\n return updatedNode;\r\n } else {\r\n return val;\r\n }\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 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 onParentMouseMove = (e) => {\r\n if (e?.buttons === 1 && canvasInfo?.selectedTool === \"eraser\") {\r\n setNodes((prev) => {\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: prev,\r\n // lastUpdatedBy: parsedData?.user_id,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n return prev?.filter((val) => val?.id !== id);\r\n });\r\n }\r\n };\r\n\r\n return (\r\n \r\n {/* \r\n \r\n \r\n \r\n */}\r\n \r\n\r\n {sizeAsPerZoom > 25 &&\r\n selected &&\r\n !showExport &&\r\n !canvasInfo?.isShow &&\r\n !copyAsImage && (\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\nexport default memo(DrawingNode, (prevProps, nextProps) => {\r\n return prevProps.data.globalDragging && nextProps.data.globalDragging;\r\n});\r\n","import React, {\r\n useState,\r\n useRef,\r\n useEffect,\r\n useCallback,\r\n useMemo,\r\n memo,\r\n} from \"react\";\r\nimport EmbedIframeModal from \"../../../common-components/modals/EmbedIframeModal\";\r\nimport { Box, IconButton } from \"@mui/material\";\r\nimport { getNodePositionInsideParent } from \"../../../Utils/grouping-utils\";\r\nimport {\r\n CustomNameTooltip,\r\n CustomTooltip,\r\n} from \"../top-toolbar/components/CustomTooltip\";\r\nimport { getId, updateJson } from \"../../../CommanFunctions/commanFunctions\";\r\nimport { debounce } from \"lodash\";\r\nimport { useParams, useLocation } from \"react-router-dom\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport EmbedIframeExtendModal from \"../../../common-components/modals/EmbedIframeExtendModal\";\r\nimport {\r\n Handle,\r\n Position,\r\n NodeToolbar,\r\n useReactFlow,\r\n NodeResizeControl,\r\n useStoreApi,\r\n NodeResizer,\r\n useViewport,\r\n} from \"reactflow\";\r\nimport FrameMoreMenus from \"../../Node/frameNode/FrameMoreMenus\";\r\nimport {\r\n IcEmbedIframeHide,\r\n IcEmbedIframeShow,\r\n IcExpand,\r\n IcLockLocked,\r\n IcLockUnLocked,\r\n IcMenuDotsVertical,\r\n IcRedirectTo,\r\n IcVisibility,\r\n} from \"../../../assets/icon-components\";\r\nimport html2canvas from \"html2canvas\";\r\nimport { useUndoRedo } from \"../dndUndoRedo/UndoRedoProvider\";\r\nimport CommonDivider from \"../../../common-components/CommonDivider\";\r\nimport useNodeSelectionStarted from \"../../../Utils/hooks/useNodeSelectionStarted\";\r\nimport { color } from \"../../../Utils/style/color/color\";\r\nimport ToolTipWithDisabled from \"../top-toolbar/components/ToolTipWithDisabled\";\r\nimport SimpleCircularProgress from \"../../../common-components/SimpleCircularProgress\";\r\n\r\nconst EmbedIframe = (node) => {\r\n const { isNodeSelectionStarted } = useNodeSelectionStarted({\r\n selected: node?.selected,\r\n });\r\n const [showEmbedIframeModal, setEmbedIframeModal] = useState(\r\n node?.data?.iframeUrl === \"\" ? true : false\r\n );\r\n const [loading, setLoading] = useState(true);\r\n const [showEmbedIframeExtendModal, setEmbedIframeExtendModal] =\r\n useState(false);\r\n const { zoom } = useViewport();\r\n const sizeAsPerZoom =\r\n (node?.data?.width < node?.data?.height\r\n ? node?.data?.width\r\n : node?.data?.height) * zoom || 100;\r\n const [customizeEmbedIframe, setCustomizeIframe] = useState({\r\n iframeUrl: node?.data?.iframeUrl !== \" \" ? node?.data?.iframeUrl : \"\",\r\n logo: node?.data?.logo ? node?.data?.logo : \"\",\r\n title: node?.data?.title ? node?.data?.title : \"\",\r\n lock: node?.data?.lock ? node?.data?.lock : false,\r\n favicon: node?.data?.favicon ? node?.data?.favicon : \"\",\r\n });\r\n const [zoomPercentages] = useState(100);\r\n const dispatch = useDispatch();\r\n const { undo, takeSnapshot } = useUndoRedo();\r\n const store = useStoreApi();\r\n const [hoveredItem, setHoveredItem] = useState(\"\");\r\n const [showDots, setShowDots] = useState(false);\r\n const [showLinkMoreOptions, setShowLinkMoreOptions] = useState(false);\r\n const { setNodes, getEdges, getNodes, getIntersectingNodes } = useReactFlow();\r\n\r\n const removeCurrentNode = () => {\r\n const updatedNodes = getNodes().filter((nd) => nd.id !== node.id);\r\n setNodes(updatedNodes);\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: 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 };\r\n\r\n useEffect(() => {\r\n if (!showEmbedIframeModal && node.data?.iframeUrl === \"\") {\r\n removeCurrentNode();\r\n }\r\n }, [showEmbedIframeModal]);\r\n\r\n const handleClickBringToFront = () => {\r\n const updatedNodes = getNodes().map((n) =>\r\n n.id === node?.id\r\n ? {\r\n ...n,\r\n zIndex: 9999999999999,\r\n\r\n data: {\r\n ...n.data,\r\n style: { zIndex: 999999999999 },\r\n },\r\n style: {\r\n zIndex: 999999999999,\r\n },\r\n }\r\n : n\r\n );\r\n setNodes(updatedNodes);\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n };\r\n\r\n const handleClickSendToBack = () => {\r\n const updatedNodes = getNodes().map((n) =>\r\n n.id === node?.id\r\n ? {\r\n ...n,\r\n zIndex: 0,\r\n\r\n data: {\r\n ...n.data,\r\n style: { zIndex: 0 },\r\n },\r\n style: {\r\n zIndex: 0,\r\n },\r\n }\r\n : n\r\n );\r\n setNodes(updatedNodes);\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n };\r\n const toggleLockUnlock = () => {\r\n let updatedNodes = getNodes();\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n let updatedNode;\r\n setNodes((nodes) => {\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes,\r\n lastUpdatedBy: parsedData?.user_id,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n updatedNodes = nodes.map((nd) => {\r\n if (nd.id === node.id) {\r\n updatedNode = {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n locked: !nd?.data?.locked,\r\n data: {\r\n ...(nd?.data?.data || {}),\r\n locked: !nd?.data?.data?.locked,\r\n },\r\n },\r\n };\r\n return updatedNode;\r\n }\r\n return nd;\r\n });\r\n return updatedNodes;\r\n });\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\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\r\n const handleCopyasImage = async () => {\r\n const node = document.getElementById(\"embediframe\");\r\n try {\r\n if (node) {\r\n const options = {\r\n scale: 5.0,\r\n useCORS: true,\r\n allowTaint: true,\r\n antialias: \"subpixel\",\r\n logging: false,\r\n };\r\n\r\n const originalCanvas = await html2canvas(node, options);\r\n\r\n const desiredWidth = 490;\r\n const desiredHeight = 490;\r\n\r\n const fixedCanvas = document.createElement(\"canvas\");\r\n const aspectRatio = originalCanvas.width / originalCanvas.height;\r\n fixedCanvas.width = desiredWidth;\r\n fixedCanvas.height = desiredHeight;\r\n\r\n const ctx = fixedCanvas.getContext(\"2d\");\r\n\r\n let drawWidth = desiredWidth;\r\n let drawHeight = desiredWidth / aspectRatio;\r\n\r\n if (drawHeight > desiredHeight) {\r\n drawHeight = desiredHeight;\r\n drawWidth = desiredHeight * aspectRatio;\r\n }\r\n\r\n ctx.drawImage(\r\n originalCanvas,\r\n 0,\r\n 0,\r\n originalCanvas.width,\r\n originalCanvas.height,\r\n 0,\r\n 0,\r\n drawWidth,\r\n drawHeight\r\n );\r\n\r\n const dataUrl = fixedCanvas.toDataURL(\"image/png\", 1.0);\r\n const link = document.createElement(\"a\");\r\n link.href = dataUrl;\r\n link.download = `${\"card\" || \"Cloudairy card\"}.png`;\r\n link.click();\r\n }\r\n } catch (error) {\r\n console.error(\"Error downloading chart image:\", error);\r\n } finally {\r\n // setDownloadLoading(false);\r\n }\r\n };\r\n\r\n const handleClickDuplicate = () => {\r\n const childNodes = getNodes().filter((nd) => nd.parentNode === node.id);\r\n\r\n const currentFrameWidth =\r\n node.data.width || node.data.style.width.replace(\"px\", \"\");\r\n const currentFrameHeight =\r\n node.data.height || node.data.style.height.replace(\"px\", \"\");\r\n\r\n let duplicatedFrame = {\r\n ...node,\r\n data: {\r\n ...node.data,\r\n height: Number(currentFrameHeight),\r\n width: Number(currentFrameWidth),\r\n },\r\n xPos: node.xPos + Number(currentFrameWidth) + 20,\r\n id: getId(),\r\n position: {\r\n x: node.xPos + Number(currentFrameWidth) + 20,\r\n y: node.yPos,\r\n },\r\n positionAbsolute: {\r\n x: node.xPos + Number(currentFrameWidth) + 20,\r\n y: node.yPos,\r\n },\r\n height: Number(currentFrameHeight),\r\n width: Number(currentFrameWidth),\r\n style: {\r\n height: Number(currentFrameHeight),\r\n width: Number(currentFrameWidth),\r\n },\r\n };\r\n\r\n const duplicateChildNodes = childNodes.map((cNode) => {\r\n return {\r\n ...cNode,\r\n id: getId(),\r\n parentNode: duplicatedFrame.id,\r\n };\r\n });\r\n\r\n let updatedNodes = [...getNodes(), duplicatedFrame, ...duplicateChildNodes];\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 return updatedNodes;\r\n });\r\n };\r\n const user_data = localStorage.getItem(\"user_data\");\r\n\r\n const location = useLocation();\r\n // const { undo } = useUndoRedo();\r\n const { id: architectureId } = useParams();\r\n const reactFlowInstance = useReactFlow();\r\n const [isIframeVisible, setIframeVisible] = useState(false);\r\n const nodeWH = reactFlowInstance.getNode(node?.id);\r\n const iframeRef = useRef(null);\r\n const mainRef = useRef(null);\r\n const frameMoreOptionsRef = useRef(null);\r\n const handleClickOutside = (e) => {\r\n if (iframeRef.current && !iframeRef.current.contains(e.target)) {\r\n setIframeVisible(false);\r\n }\r\n if (\r\n frameMoreOptionsRef.current &&\r\n !frameMoreOptionsRef.current.contains(e.target)\r\n ) {\r\n setShowLinkMoreOptions(false);\r\n }\r\n };\r\n const isNodeSelected = getNodes().filter(\r\n (nd) => nd.id === node.id && node.selected === true\r\n );\r\n\r\n const onResizeEnd = (event, node) => {\r\n let updatedNodes = [];\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n setNodes((prev) => {\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: prev,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n updatedNodes = prev?.map((_) => {\r\n if (_?.id === node?.id) {\r\n _ = JSON.parse(JSON.stringify(_));\r\n _.style.width = Number(mainRef?.current?.offsetWidth);\r\n _.style.height = Number(mainRef?.current?.offsetHeight);\r\n return _;\r\n } else {\r\n return _;\r\n }\r\n });\r\n\r\n updatedNodes = updatedNodes?.map((n) => {\r\n const intersections = getIntersectingNodes(node, false);\r\n\r\n let groupNode = null;\r\n if (intersections?.length > 0) {\r\n groupNode = intersections[intersections?.length - 1];\r\n }\r\n\r\n if (\r\n node.type !== \"group\" &&\r\n node?.parentNode &&\r\n node?.parentNode === groupNode?.id\r\n ) {\r\n return n;\r\n } else if (\r\n intersections.length &&\r\n node?.parentNode !== groupNode?.id &&\r\n !node?.parentNode\r\n ) {\r\n if (n.id === groupNode.id) {\r\n return {\r\n ...n,\r\n className: \"\",\r\n };\r\n } else if (n.id === node.id && !n?.parentNode) {\r\n const position = getNodePositionInsideParent(n, groupNode) ?? {\r\n x: 0,\r\n y: 0,\r\n };\r\n return {\r\n ...n,\r\n position,\r\n parentNode: groupNode.id,\r\n };\r\n } else return n;\r\n } else if (\r\n node?.parentNode &&\r\n node?.parentNode !== groupNode?.id &&\r\n !groupNode\r\n ) {\r\n if ([node?.id].includes(n.id) && node?.parentNode) {\r\n const parentNode = store\r\n .getState()\r\n ?.nodeInternals?.get(node?.parentNode);\r\n if (parentNode) {\r\n return {\r\n ...n,\r\n position: {\r\n x: n.position.x + (parentNode?.positionAbsolute?.x ?? 0),\r\n y: n.position.y + (parentNode?.positionAbsolute?.y ?? 0),\r\n },\r\n expandParent: undefined,\r\n parentNode: undefined,\r\n };\r\n } else {\r\n return n;\r\n }\r\n } else {\r\n return n;\r\n }\r\n } else if (\r\n node?.parentNode &&\r\n node?.parentNode !== groupNode?.id &&\r\n groupNode\r\n ) {\r\n if (n?.id === node?.id) {\r\n n = structuredClone(n);\r\n n.parentNode = groupNode?.id;\r\n n.position = {\r\n x:\r\n (node?.positionAbsolute?.x || 0) -\r\n (groupNode?.positionAbsolute?.x || 0),\r\n y:\r\n (node?.positionAbsolute?.y || 0) -\r\n (groupNode?.positionAbsolute?.y || 0),\r\n };\r\n return n;\r\n } else return n;\r\n } else {\r\n if (n?.type === \"group\") {\r\n }\r\n return n;\r\n }\r\n });\r\n\r\n return updatedNodes;\r\n });\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 lastUpdatedBy: parsedData?.user_id,\r\n lastEvent: `editor_changed_${node?.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 useEffect(() => {\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleClickOutside);\r\n };\r\n }, []);\r\n\r\n const handleRedirect = () => {\r\n if (customizeEmbedIframe?.iframeUrl) {\r\n window.open(\r\n customizeEmbedIframe.iframeUrl,\r\n \"_blank\",\r\n \"noopener,noreferrer\"\r\n );\r\n }\r\n };\r\n\r\n function isImgUrl(url) {\r\n const img = new Image();\r\n img.src = url;\r\n return new Promise((resolve) => {\r\n img.onload = () => resolve(true);\r\n img.onerror = () => resolve(false);\r\n });\r\n }\r\n\r\n const fetchMetaData = async () => {\r\n try {\r\n const response = await fetch(\r\n `https://api.linkpreview.net/?key=d85f880059b2ce81c0c5e91cb832db47&q=${customizeEmbedIframe?.iframeUrl}`\r\n );\r\n\r\n return await response.json();\r\n } catch (error) {\r\n console.error(\"Error fetching metadata:\", error);\r\n return {};\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n const getMetadata = async () => {\r\n if (customizeEmbedIframe?.iframeUrl) {\r\n const data = await fetchMetaData();\r\n\r\n const baseUrl = new URL(customizeEmbedIframe?.iframeUrl).origin;\r\n const faviconUrl = `${baseUrl}/favicon.ico`;\r\n const isFaviconValid = await isImgUrl(faviconUrl);\r\n setCustomizeIframe({\r\n ...customizeEmbedIframe,\r\n logo: data?.image || \"\",\r\n title: data?.title || \"\",\r\n favicon: isFaviconValid ? faviconUrl : data?.image,\r\n });\r\n setLoading(false);\r\n let updatedNodes;\r\n let updatedNode;\r\n setNodes((nds) => {\r\n updatedNodes = nds.map((node1) => {\r\n if (node1.id === node?.id) {\r\n updatedNode = {\r\n ...node1,\r\n data: {\r\n ...node1.data,\r\n logo: data?.image || \"\",\r\n title: data?.title || \"\",\r\n favicon: isFaviconValid ? faviconUrl : data?.image,\r\n },\r\n };\r\n return updatedNode;\r\n }\r\n return node1;\r\n });\r\n return updatedNodes;\r\n });\r\n // debouncedUpdateJson([updatedNode], getEdges());\r\n debouncedUpdateJson(updatedNodes, getEdges());\r\n }\r\n };\r\n\r\n getMetadata();\r\n }, [customizeEmbedIframe?.iframeUrl]);\r\n\r\n const handleToggleInfo = () => {\r\n let updatedNodes;\r\n let updatedNode;\r\n setNodes((nds) => {\r\n updatedNodes = nds.map((node1) => {\r\n if (node1.id === node?.id) {\r\n updatedNode = {\r\n ...node1,\r\n data: {\r\n ...node1.data,\r\n infoshow: !node1?.data?.infoshow,\r\n },\r\n };\r\n return updatedNode;\r\n }\r\n return node1;\r\n });\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: updatedNodes,\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 return updatedNodes;\r\n });\r\n };\r\n\r\n const isWidthLessthan25 = useMemo(\r\n () => 12.5 < zoomPercentages && zoomPercentages <= 25,\r\n [zoomPercentages]\r\n );\r\n\r\n const isWidthLessthan50 = useMemo(\r\n () => 25 < zoomPercentages && zoomPercentages <= 50,\r\n [zoomPercentages]\r\n );\r\n\r\n const isWidthLessthan100 = useMemo(\r\n () => 50 < zoomPercentages && zoomPercentages <= 100,\r\n [zoomPercentages]\r\n );\r\n const selectedNodes = getNodes()?.filter((val) => val?.selected)?.length;\r\n\r\n const isMultiNodeSelected = useMemo(() => {\r\n return selectedNodes > 1;\r\n }, [selectedNodes]);\r\n\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 });\r\n }, 100);\r\n }, [updateJson, user_data, dispatch, undo]);\r\n\r\n useEffect(() => {\r\n if (!node?.selected) {\r\n setShowLinkMoreOptions(false);\r\n }\r\n }, [node]);\r\n\r\n return (\r\n <>\r\n {loading && (\r\n \r\n \r\n \r\n )}\r\n\r\n {customizeEmbedIframe?.iframeUrl && !loading && (\r\n <>\r\n {!isNodeSelectionStarted && node?.selected && !node.dragging && (\r\n \r\n \r\n {node.selected && (\r\n <>\r\n {!node?.data?.data?.locked && (\r\n <>\r\n \r\n \r\n setEmbedIframeExtendModal(true)}\r\n >\r\n {/* {\"log\"} */}\r\n \r\n \r\n \r\n \r\n {(customizeEmbedIframe?.title ||\r\n customizeEmbedIframe?.logo) && (\r\n \r\n \r\n \r\n {node?.data?.infoshow ? (\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 {/* \"hide\" */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n {node?.data?.data?.locked ? (\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 setShowLinkMoreOptions(false)}\r\n open={showLinkMoreOptions}\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 setShowLinkMoreOptions(!showLinkMoreOptions)\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 {customizeEmbedIframe?.iframeUrl && (\r\n setShowDots(true)}\r\n onMouseOut={() => setShowDots(false)}\r\n >\r\n \r\n {!isIframeVisible && (\r\n \r\n \r\n setIframeVisible(true)}>\r\n {\" \"}\r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {isIframeVisible && customizeEmbedIframe?.iframeUrl && (\r\n \r\n )}\r\n \r\n\r\n {node?.data?.infoshow &&\r\n customizeEmbedIframe?.title &&\r\n customizeEmbedIframe?.logo && (\r\n \r\n {customizeEmbedIframe?.favicon ? (\r\n \r\n ) : customizeEmbedIframe?.logo ? (\r\n \r\n ) : null}\r\n\r\n {customizeEmbedIframe?.title && (\r\n \r\n \r\n {customizeEmbedIframe?.title.endsWith(\".com\")\r\n ? customizeEmbedIframe?.title\r\n : customizeEmbedIframe?.title + \".com\"}\r\n \r\n \r\n {customizeEmbedIframe?.title?.replace(/\\.\\w+$/, \"\") ||\r\n \"\"}\r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n )}\r\n \r\n )}\r\n\r\n {sizeAsPerZoom > 25 &&\r\n node?.selected &&\r\n !node?.data?.data?.locked &&\r\n !isMultiNodeSelected && (\r\n <>\r\n onResizeEnd(e, node)}\r\n />\r\n onResizeEnd(e, node)}\r\n style={{\r\n zIndex: 999999999999,\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid transparent\",\r\n }}\r\n >\r\n \r\n \r\n setIsResizing(true)}\r\n // keepAspectRatio={true}\r\n\r\n keepAspectRatio={true}\r\n position=\"bottom-right\"\r\n minHeight={200}\r\n minWidth={200}\r\n maxHeight={600}\r\n maxWidth={600}\r\n onResizeEnd={(e) => onResizeEnd(e, node)}\r\n style={{\r\n zIndex: 999999999999,\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid transparent\",\r\n }}\r\n >\r\n \r\n \r\n onResizeEnd(e, node)}\r\n style={{\r\n zIndex: 999999999999,\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid transparent\",\r\n }}\r\n >\r\n \r\n \r\n onResizeEnd(e, node)}\r\n style={{\r\n zIndex: 999999999999,\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid transparent\",\r\n }}\r\n >\r\n \r\n \r\n \r\n )}\r\n\r\n {!node?.dragging && !isMultiNodeSelected && !node?.data?.data?.locked && (\r\n <>\r\n console.log(\"handle onConnect\", params)}\r\n onMouseOver={() => {\r\n setShowDots(true);\r\n setHoveredItem(\"left\");\r\n }}\r\n onMouseLeave={() => {\r\n setShowDots(false);\r\n setHoveredItem(\"\");\r\n }}\r\n onClick={(e) => {\r\n e.preventDefault();\r\n }}\r\n >\r\n {(!isNodeSelectionStarted || isNodeSelected <= 0) && (\r\n \r\n )}\r\n \r\n console.log(\"handle onConnect\", params)}\r\n onMouseOver={() => {\r\n setShowDots(true);\r\n setHoveredItem(\"right\");\r\n }}\r\n onMouseLeave={() => {\r\n setShowDots(false);\r\n setHoveredItem(\"\");\r\n }}\r\n onClick={(e) => {\r\n e.preventDefault();\r\n }}\r\n >\r\n {(!isNodeSelectionStarted || isNodeSelected <= 0) && (\r\n \r\n )}\r\n \r\n {\r\n setShowDots(true);\r\n setHoveredItem(\"top\");\r\n }}\r\n onMouseLeave={() => {\r\n setShowDots(false);\r\n setHoveredItem(\"\");\r\n }}\r\n onClick={(e) => {\r\n e.preventDefault();\r\n }}\r\n >\r\n {(!isNodeSelectionStarted || isNodeSelected <= 0) && (\r\n \r\n )}\r\n \r\n console.log(\"handle onConnect\", params)}\r\n onMouseOver={() => {\r\n setShowDots(true);\r\n setHoveredItem(\"bottom\");\r\n }}\r\n onMouseLeave={() => {\r\n setShowDots(false);\r\n setHoveredItem(\"\");\r\n }}\r\n onClick={(e) => {\r\n e.preventDefault();\r\n }}\r\n >\r\n {(!isNodeSelectionStarted || isNodeSelected <= 0) && (\r\n \r\n )}\r\n \r\n \r\n )}\r\n\r\n {\r\n setEmbedIframeModal(false);\r\n }}\r\n customizeEmbedIframe={customizeEmbedIframe}\r\n setCustomizeIframe={setCustomizeIframe}\r\n open={showEmbedIframeModal}\r\n node={node}\r\n />\r\n {\r\n setEmbedIframeExtendModal(false);\r\n }}\r\n customizeEmbedIframe={customizeEmbedIframe}\r\n open={showEmbedIframeExtendModal}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default memo(EmbedIframe, (prevProps, nextProps) => {\r\n return prevProps.data.globalDragging && nextProps.data.globalDragging;\r\n});\r\n","import { Box } from \"@mui/material\";\r\nimport { memo, useCallback, useEffect, useMemo, useRef, useState } from \"react\";\r\nimport { useLocation, useParams } from \"react-router-dom\";\r\nimport {\r\n Handle,\r\n NodeResizeControl,\r\n useReactFlow,\r\n useViewport,\r\n} from \"reactflow\";\r\n\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport AutoScaling from \"../../../Utils/Icons/groupIcons/AutoScaling.jsx\";\r\nimport AwsCloud from \"../../../Utils/Icons/groupIcons/AWSCloud.jsx\";\r\nimport AwsCloudText from \"../../../Utils/Icons/groupIcons/AWSCloudText.jsx\";\r\nimport CDC from \"../../../Utils/Icons/groupIcons/CorporateDataCenter.jsx\";\r\nimport EC2IC from \"../../../Utils/Icons/groupIcons/EC2InstanceContents.jsx\";\r\nimport PrivateSubnet from \"../../../Utils/Icons/groupIcons/PrivateSubnet.jsx\";\r\nimport PublicSubnet from \"../../../Utils/Icons/groupIcons/PublicSubnet.jsx\";\r\nimport Region from \"../../../Utils/Icons/groupIcons/Region.jsx\";\r\nimport ServerContents from \"../../../Utils/Icons/groupIcons/ServerContents.jsx\";\r\nimport SpotFleet from \"../../../Utils/Icons/groupIcons/SpotFleet.jsx\";\r\nimport VPC from \"../../../Utils/Icons/groupIcons/VPC.jsx\";\r\nimport ASF from \"../../../Utils/Icons/groupIcons/ASF.jsx\";\r\nimport AEB from \"../../../Utils/Icons/groupIcons/AEB.jsx\";\r\nimport AwsAc from \"../../../Utils/Icons/groupIcons/AwsAc.jsx\";\r\nimport AwsOrg from \"../../../Utils/Icons/groupIcons/AwsOrg.jsx\";\r\nimport { handleShowEditorToolbar } from \"../../../Redux/drawboard\";\r\nimport {\r\n debounce,\r\n updateJson,\r\n} from \"../../../CommanFunctions/commanFunctions.js\";\r\nimport { tipTapExtensions } from \"../tip-tap-editor\";\r\nimport { EditorContent, useEditor } from \"@tiptap/react\";\r\nimport { useSocketContext } from \"../../../Utils/hooks/useSocketContext.js\";\r\nimport { socketEvents } from \"../const.js\";\r\nimport { useUndoRedo } from \"../dndUndoRedo/UndoRedoProvider.js\";\r\nimport MindMapNodesToolbar from \"../../Node/common-components/nodeTopToolbar/MindMapNodesToolbar/MindMapNodesToolbar.jsx\";\r\nimport commanService from \"../../../CommanFunctions/commanService.js\";\r\nimport useZoomPercentages from \"../../../Utils/hooks/useZoomPercentages.js\";\r\nimport useNodeSelectionStarted from \"../../../Utils/hooks/useNodeSelectionStarted.js\";\r\nimport { color } from \"../../../Utils/style/color/color.js\";\r\n\r\nconst iconMapping = {\r\n AwsCloud,\r\n AwsCloudText,\r\n Region,\r\n AutoScaling,\r\n VPC,\r\n PrivateSubnet,\r\n PublicSubnet,\r\n ServerContents,\r\n CDC,\r\n AEB,\r\n EC2IC,\r\n SpotFleet,\r\n ASF,\r\n AwsAc,\r\n AwsOrg,\r\n};\r\n\r\nfunction GroupNode({ id }) {\r\n const { id: params } = useParams();\r\n const location = useLocation();\r\n const ref = useRef(null);\r\n const editorRef = useRef();\r\n const focusRef = useRef(null);\r\n const mainRef = useRef(null);\r\n const { zoom } = useViewport();\r\n\r\n const { setNodes, getNodes, getNode } = useReactFlow();\r\n const node = getNode(id);\r\n const sizeAsPerZoom =\r\n (node?.data?.width < node?.data?.height\r\n ? node?.data?.width\r\n : node?.data?.height) * zoom || 100;\r\n const { socket } = useSocketContext();\r\n const { permission, showExport, copyAsImage, isDownload } = useSelector(\r\n (state) => state?.mindMapStore\r\n );\r\n const { isNodeSelectionStarted } = useNodeSelectionStarted({\r\n selected: node?.selected,\r\n });\r\n const [isShowToolsPop, setIsShowToolsPop] = useState(true);\r\n const [isAutoFont, setIsAutoFont] = useState(false);\r\n // const [isAutoFont, setIsAutoFont] = useState(node?.data?.isAutoFont || false);\r\n const [hoveredItem, setHoveredItem] = useState(\"\");\r\n const [showDots, setShowDots] = useState(false);\r\n const currentNode = getNode(node?.id);\r\n const userRowData = localStorage.getItem(\"user_data\");\r\n const userData = userRowData ? JSON.parse(userRowData) : {};\r\n const dispatch = useDispatch();\r\n const { undo, takeSnapshot } = useUndoRedo();\r\n const { isWidthLessthan25, isWidthLessthan50, isWidthLessthan100 } =\r\n useZoomPercentages({ selected: node?.selected });\r\n const isMultiNodeSelected =\r\n getNodes()?.filter((val) => val?.selected)?.length > 1;\r\n const { isShowEditorToolbar } = useSelector((e) => e?.drawboard);\r\n const [isEditing, setIsEditing] = useState(false);\r\n const [isFirstTimeClicked, setIsFirstTimeClicked] = useState(false);\r\n\r\n const groupContent = () => {\r\n if (node?.data?.isIconShow) {\r\n return (\r\n node?.data?.editorHTML ||\r\n `

${node?.data?.groupInnerTitle || \"\"}

`\r\n );\r\n }\r\n\r\n if (!node?.data?.groupInnerTitle) {\r\n return (\r\n node?.data?.editorHTML ||\r\n `

${node?.data?.editorHTML || \"\"}

`\r\n );\r\n }\r\n\r\n return (\r\n node?.data?.editorHTML ||\r\n `

${node?.data?.groupInnerTitle || \"\"}

`\r\n );\r\n };\r\n const [tempFontSize, setTempFontSize] = useState(\"10px\");\r\n const [isEditorShow, setIsEditorShow] = useState(false);\r\n const isInitialMount = useRef(true);\r\n const timerForEditor = useRef();\r\n const selectedTextRef = useRef();\r\n\r\n const editor = useEditor({\r\n extensions: tipTapExtensions(),\r\n content: groupContent(),\r\n onUpdate: ({ editor }) => {\r\n updateEditorHTML(editor?.getHTML());\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\r\n const newTextLength = editor?.getText()?.length || 0;\r\n\r\n const debounceUpdateJson = 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\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n lastUpdatedBy: userData?.user_id,\r\n lastEvent: `editor_changed_${node?.id}`,\r\n },\r\n },\r\n id: params,\r\n dispatch,\r\n undo,\r\n takeSnapshot,\r\n a_id,\r\n });\r\n }, 500);\r\n }, [location.search, node?.id, params, undo, userData?.user_id]);\r\n\r\n const updateEditorHTML = useMemo(() => {\r\n return debounce((editorHTML) => {\r\n let updatedNodes = [];\r\n setNodes((prevNodes) => {\r\n updatedNodes = prevNodes.map((nd) => {\r\n if (nd.id === node?.id) {\r\n return {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n editorHTML: editorHTML,\r\n },\r\n };\r\n }\r\n return nd;\r\n });\r\n return updatedNodes;\r\n });\r\n debounceUpdateJson(updatedNodes);\r\n }, 200);\r\n }, [debounceUpdateJson, node?.id, setNodes]);\r\n\r\n const GroupIcon = iconMapping?.[node?.data?.url];\r\n\r\n useEffect(() => {\r\n if (\r\n !!isShowEditorToolbar &&\r\n !!node?.id &&\r\n isShowEditorToolbar === node?.id\r\n ) {\r\n setIsEditorShow(true);\r\n editor?.chain().focus();\r\n dispatch(handleShowEditorToolbar(\"\"));\r\n }\r\n }, [isShowEditorToolbar, node?.id]);\r\n\r\n useEffect(() => {\r\n if (!node?.selected) {\r\n setIsFirstTimeClicked(false);\r\n setIsEditorShow(false);\r\n }\r\n }, [node?.selected]);\r\n\r\n const [clickTimeSTamps, setClickTimeStamps] = useState({\r\n mouseDown: 0,\r\n mouseUp: 0,\r\n });\r\n\r\n const onResizeStart = (e, node) => {\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: getNodes(),\r\n lastUpdatedBy: \"\",\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n setNodes((nds) =>\r\n nds.map((n) => {\r\n if (n.parentNode === node.id && n.positionAbsolute) {\r\n return {\r\n ...n,\r\n position: n.positionAbsolute, // Preserve the absolute position\r\n parentNode: null, // Unset the parent node to maintain absolute positioning\r\n };\r\n }\r\n return n;\r\n })\r\n );\r\n };\r\n\r\n const onResizeEnd = (event, node) => {\r\n setNodes((nodes) => {\r\n // Clone nodes for immutability\r\n const updatedNodes = JSON.parse(JSON.stringify(nodes));\r\n\r\n // Store data in localStorage\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n lastUpdatedBy: \"\",\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n\r\n // Update resized node dimensions\r\n const resizedNode = updatedNodes.find((n) => n.id === node.id);\r\n if (resizedNode) {\r\n const width = mainRef?.current?.offsetWidth || 0;\r\n const height = mainRef?.current?.offsetHeight || 0;\r\n\r\n resizedNode.style = {\r\n ...resizedNode.style,\r\n width,\r\n height: Math.max(\r\n ref?.current?.editor?.offsetHeight + 10 || 0,\r\n height\r\n ),\r\n border: \"none !important\",\r\n };\r\n resizedNode.lastModified = Date.now();\r\n resizedNode.positionAbsolute = {\r\n x:\r\n resizedNode.position?.x +\r\n (resizedNode.parentNode\r\n ? updatedNodes.find((n) => n.id === resizedNode.parentNode)\r\n ?.positionAbsolute?.x || 0\r\n : 0),\r\n y:\r\n resizedNode.position?.y +\r\n (resizedNode.parentNode\r\n ? updatedNodes.find((n) => n.id === resizedNode.parentNode)\r\n ?.positionAbsolute?.y || 0\r\n : 0),\r\n };\r\n }\r\n\r\n // Function to calculate if a node is completely inside another node\r\n const isNodeInside = (innerNode, outerNode) => {\r\n return (\r\n innerNode.positionAbsolute &&\r\n outerNode.positionAbsolute &&\r\n innerNode.positionAbsolute?.x >= outerNode.positionAbsolute?.x &&\r\n innerNode.positionAbsolute?.y >= outerNode.positionAbsolute?.y &&\r\n innerNode.positionAbsolute?.x + innerNode.width <=\r\n outerNode.positionAbsolute?.x + outerNode.width &&\r\n innerNode.positionAbsolute?.y + innerNode.height <=\r\n outerNode.positionAbsolute?.y + outerNode.height\r\n );\r\n };\r\n\r\n // Function to find the deepest containing group\r\n const findDeepestContainingGroup = (node, allNodes) => {\r\n let deepestGroup = null;\r\n let maxDepth = -1;\r\n\r\n const calculateDepth = (groupId, depth = 0) => {\r\n const group = allNodes.find((n) => n.id === groupId);\r\n return group && group.parentNode\r\n ? calculateDepth(group.parentNode, depth + 1)\r\n : depth;\r\n };\r\n\r\n for (const potentialParent of allNodes) {\r\n if (\r\n potentialParent.type === \"group\" &&\r\n potentialParent.id !== node.id &&\r\n isNodeInside(node, potentialParent)\r\n ) {\r\n const depth = calculateDepth(potentialParent.id);\r\n if (depth > maxDepth) {\r\n maxDepth = depth;\r\n deepestGroup = potentialParent;\r\n }\r\n }\r\n }\r\n\r\n return deepestGroup;\r\n };\r\n\r\n // Update parent nodes for all nodes, including the resized node\r\n updatedNodes.forEach((n) => {\r\n const newParentNode = findDeepestContainingGroup(n, updatedNodes);\r\n if (!newParentNode && n.positionAbsolute) {\r\n // Node is outside any group\r\n n.position = n.positionAbsolute;\r\n n.parentNode = undefined;\r\n } else if (\r\n newParentNode &&\r\n n.positionAbsolute &&\r\n newParentNode.positionAbsolute\r\n ) {\r\n // Node is inside a group\r\n n.position = {\r\n x: n.positionAbsolute.x - newParentNode.positionAbsolute.x,\r\n y: n.positionAbsolute.y - newParentNode.positionAbsolute.y,\r\n };\r\n n.parentNode = newParentNode.id;\r\n }\r\n n.lastModified = Date.now();\r\n });\r\n\r\n // Sort nodes for rendering order\r\n const sortedNodes = sortNodes ? sortNodes(updatedNodes) : updatedNodes;\r\n\r\n // Update localStorage and call updateJson once after state update\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: sortedNodes,\r\n lastUpdatedBy: userData?.user_id,\r\n lastEvent: `editor_changed_${node?.id}`,\r\n },\r\n })\r\n );\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: sortedNodes,\r\n lastUpdatedBy: userData?.user_id,\r\n lastEvent: `editor_changed_${node?.id}`,\r\n },\r\n },\r\n id: params,\r\n dispatch,\r\n undo,\r\n a_id,\r\n takeSnapshot,\r\n });\r\n // Return updated nodes\r\n return sortedNodes;\r\n });\r\n };\r\n\r\n // Helper function to sort nodes\r\n const sortNodes = (nodes) => {\r\n const findTopmostParent = (nodes, nodeId) => {\r\n const node = nodes.find((n) => n.id === nodeId);\r\n return node.parentNode\r\n ? findTopmostParent(nodes, node.parentNode)\r\n : nodeId;\r\n };\r\n\r\n const getChildrenAndSelf = (nodes, nodeId) => {\r\n const result = [];\r\n const addNodeAndChildren = (id) => {\r\n const node = nodes.find((n) => n.id === id);\r\n if (node) {\r\n result.push(node);\r\n nodes\r\n .filter((n) => n.parentNode === id)\r\n .forEach((child) => addNodeAndChildren(child.id));\r\n }\r\n };\r\n addNodeAndChildren(nodeId);\r\n return result;\r\n };\r\n\r\n const sortByParent = (nodes) => {\r\n return nodes.sort((a, b) => {\r\n if (a.parentNode === b.parentNode) return 0;\r\n if (!a.parentNode) return -1;\r\n if (!b.parentNode) return 1;\r\n return sortByParent([\r\n nodes.find((n) => n.id === a.parentNode),\r\n nodes.find((n) => n.id === b.parentNode),\r\n ]);\r\n });\r\n };\r\n\r\n const topLevelNodes = nodes.filter((n) => !n.parentNode);\r\n const sortedNodes = [];\r\n\r\n topLevelNodes.forEach((node) => {\r\n const childrenAndSelf = getChildrenAndSelf(nodes, node.id);\r\n sortedNodes.push(...sortByParent(childrenAndSelf));\r\n });\r\n\r\n return sortedNodes;\r\n };\r\n\r\n const handleKey = (e) => {\r\n if (e?.keyCode == 27) {\r\n e?.stopPropagation();\r\n e.target.blur();\r\n focusRef.current?.blur();\r\n }\r\n };\r\n\r\n const onClickHandler = (event) => {\r\n if (isEditorShow) {\r\n event?.stopPropagation();\r\n setIsEditorShow(false);\r\n }\r\n if (\r\n (!isFirstTimeClicked && newTextLength > 0) ||\r\n event?.metaKey ||\r\n event?.ctrlKey\r\n ) {\r\n setIsFirstTimeClicked(true);\r\n } else {\r\n editor?.chain().focus();\r\n }\r\n setNodes((prev) => {\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: prev,\r\n lastUpdatedBy: userData?.user_id,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n\r\n const updatedNodes = getNodes();\r\n\r\n return updatedNodes;\r\n });\r\n };\r\n\r\n const handleEditorClick = (event) => {\r\n if (isEditorShow) {\r\n event.stopPropagation();\r\n }\r\n setIsEditorShow(true);\r\n setIsEditing(true);\r\n clearTimeout(timerForEditor.current);\r\n // Check if there is an active text selection\r\n if (!selectedTextRef.current) {\r\n const selection = window.getSelection();\r\n if (selection && selection.type === \"Range\") {\r\n selectedTextRef.current = true;\r\n return; // Do nothing if there is an active text selection\r\n }\r\n } else {\r\n selectedTextRef.current = false;\r\n }\r\n if (event.detail === 1) {\r\n timerForEditor.current = setTimeout(() => {\r\n setIsFirstTimeClicked(true);\r\n setIsEditorShow(true);\r\n setTimeout(() => {\r\n if (editor) {\r\n editor.commands.focus();\r\n const pos = editor.view.posAtCoords({\r\n left: event.clientX,\r\n top: event.clientY,\r\n });\r\n if (pos) {\r\n editor.commands.setTextSelection(pos.pos);\r\n }\r\n }\r\n }, 0);\r\n }, 250);\r\n } else if (event.detail === 2) {\r\n // editor.commands.selectAll();\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (focusRef?.current) {\r\n focusRef.current.addEventListener(\"keyup\", handleKey);\r\n }\r\n return () => {\r\n if (focusRef?.current) {\r\n focusRef.current.removeEventListener(\"keyup\", handleKey);\r\n }\r\n };\r\n }, [node?.id]);\r\n\r\n useEffect(() => {\r\n const insideGroupMouseEnter = (e) => {\r\n if (e.detail?.nodeId === node?.id) {\r\n setShowDots(true);\r\n }\r\n };\r\n\r\n const insideGroupMouseLeave = (e) => {\r\n if (e.detail?.nodeId === node?.id) {\r\n setShowDots(false);\r\n }\r\n };\r\n document.addEventListener(\"insideGroupMouseEnter\", insideGroupMouseEnter);\r\n document.addEventListener(\"insideGroupMouseLeave\", insideGroupMouseLeave);\r\n\r\n return () => {\r\n document.removeEventListener(\r\n \"insideGroupMouseEnter\",\r\n insideGroupMouseEnter\r\n );\r\n document.removeEventListener(\r\n \"insideGroupMouseLeave\",\r\n insideGroupMouseLeave\r\n );\r\n };\r\n }, []);\r\n\r\n const hoveredNodeIds = new Set(); // Tracks unique nodes under the pointer\r\n\r\n const delegateEvent = useCallback((event) => {\r\n // Get all elements at the current mouse position\r\n const elementsUnder = document.elementsFromPoint(\r\n event.clientX,\r\n event.clientY\r\n );\r\n\r\n // Filter elements with class name \"react-flow__node\" and extract their \"data-id\"\r\n const nodesUnderPointer = elementsUnder\r\n .filter((element) => element.classList.contains(\"react-flow__node\"))\r\n .map((element) => element.getAttribute(\"data-id\"))\r\n .filter((id) => id !== node?.id); // Exclude the current node\r\n\r\n const previousHoveredNodeIds = new Set(hoveredNodeIds); // Keep track of the previous state\r\n const currentHoveredNodeIds = new Set(nodesUnderPointer); // Current set of hovered IDs\r\n\r\n // Find newly hovered IDs\r\n const newHoveredNodeIds = [...currentHoveredNodeIds].filter(\r\n (id) => !previousHoveredNodeIds.has(id)\r\n );\r\n // Find IDs that were previously hovered but are not now\r\n const removedHoveredNodeIds = [...previousHoveredNodeIds].filter(\r\n (id) => !currentHoveredNodeIds.has(id)\r\n );\r\n\r\n // Update the hoveredNodeIds with current hover state\r\n hoveredNodeIds.clear();\r\n currentHoveredNodeIds.forEach((id) => hoveredNodeIds.add(id));\r\n\r\n // For each newly hovered node, dispatch the event with that ID\r\n newHoveredNodeIds.forEach((id) => {\r\n const CustomPromptEvent = new CustomEvent(\"insideGroupMouseEnter\", {\r\n detail: { nodeId: id, hello: true },\r\n });\r\n document.dispatchEvent(CustomPromptEvent);\r\n });\r\n\r\n removedHoveredNodeIds.forEach((id) => {\r\n const CustomPromptEvent = new CustomEvent(\"insideGroupMouseLeave\", {\r\n detail: { nodeId: id },\r\n });\r\n document.dispatchEvent(CustomPromptEvent);\r\n });\r\n }, []);\r\n\r\n const handleMouseEvents = useCallback(\r\n (event) => {\r\n // Only delegate events when node is being hovered\r\n if (showDots) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n delegateEvent(event);\r\n }\r\n },\r\n [showDots, delegateEvent]\r\n );\r\n\r\n const handleClick = (e) => {\r\n editorRef?.current?.focus();\r\n if (clickTimeSTamps.mouseUp - clickTimeSTamps.mouseDown <= 100) {\r\n if (e.detail === 1) {\r\n if (window.getSelection) {\r\n if (window.getSelection().empty) {\r\n window.getSelection().empty();\r\n editorRef?.current?.focus();\r\n focusRef?.current?.focus();\r\n } else if (window.getSelection().removeAllRanges) {\r\n window.getSelection().removeAllRanges();\r\n editorRef?.current?.focus();\r\n focusRef?.current?.focus();\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n const editorElements = document.querySelectorAll(\".tiptap, .tiptap *\");\r\n editorElements.forEach((element) => {\r\n element.addEventListener(\r\n \"mousedown\",\r\n (e) => {\r\n e.stopPropagation();\r\n },\r\n true\r\n ); // Use capture phase to ensure it triggers before other handlers\r\n });\r\n\r\n useEffect(() => {\r\n // Check if it's a new node and set isEditing to true once\r\n if (isInitialMount.current && node?.selected) {\r\n setIsEditing(true);\r\n isInitialMount.current = false; // Set to false after first edit\r\n } else {\r\n setIsEditing(false);\r\n }\r\n }, [node?.selected]);\r\n\r\n const isNodeSelected = getNodes().filter(\r\n (nd) => nd.id === node.id && node.selected === true\r\n );\r\n\r\n const handleChangeBorderColor = (color) => {\r\n const updatedNodes = getNodes().map((nd) =>\r\n nd.id === node.id\r\n ? {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n borderColor: color,\r\n },\r\n }\r\n : nd\r\n );\r\n setNodes(updatedNodes);\r\n debounceUpdateJson(updatedNodes);\r\n };\r\n\r\n return (\r\n setShowDots(true)}\r\n onMouseLeave={() => setShowDots(false)}\r\n // onMouseMove={handleMouseEvents}\r\n className={`${node?.selected ? \"\" : \"selection-none\"}${\r\n node?.data?.locked ? \" nodrag\" : \"\"\r\n }`}\r\n >\r\n {currentNode.data?.variant === \"shapes\" && (\r\n \r\n \r\n \r\n )}\r\n {!showExport &&\r\n !copyAsImage &&\r\n !isDownload &&\r\n !isEditorShow &&\r\n !node?.data?.locked && (\r\n <>\r\n {\r\n setShowDots(true);\r\n setHoveredItem(\"top\");\r\n }}\r\n onMouseLeave={() => {\r\n setShowDots(false);\r\n setHoveredItem(\"\");\r\n }}\r\n onClick={(e) => {\r\n e.preventDefault();\r\n }}\r\n >\r\n {(!isNodeSelectionStarted || isNodeSelected <= 0) && (\r\n \r\n )}\r\n \r\n {\r\n setShowDots(true);\r\n setHoveredItem(\"left\");\r\n }}\r\n onMouseLeave={() => {\r\n setShowDots(false);\r\n setHoveredItem(\"\");\r\n }}\r\n onClick={(e) => {\r\n e.preventDefault();\r\n }}\r\n >\r\n {(!isNodeSelectionStarted || isNodeSelected <= 0) && (\r\n \r\n )}\r\n \r\n {\r\n setShowDots(true);\r\n setHoveredItem(\"right\");\r\n }}\r\n onMouseLeave={() => {\r\n setShowDots(false);\r\n setHoveredItem(\"\");\r\n }}\r\n onClick={(e) => {\r\n e.preventDefault();\r\n }}\r\n >\r\n {(!isNodeSelectionStarted || isNodeSelected <= 0) && (\r\n \r\n )}\r\n \r\n {\r\n setShowDots(true);\r\n setHoveredItem(\"bottom\");\r\n }}\r\n onMouseLeave={() => {\r\n setShowDots(false);\r\n setHoveredItem(\"\");\r\n }}\r\n onClick={(e) => {\r\n e.preventDefault();\r\n }}\r\n >\r\n {(!isNodeSelectionStarted || isNodeSelected <= 0) && (\r\n \r\n )}\r\n \r\n \r\n )}\r\n\r\n {sizeAsPerZoom > 25 &&\r\n node?.selected &&\r\n !showExport &&\r\n !copyAsImage &&\r\n !isDownload &&\r\n !isNodeSelectionStarted &&\r\n !node.dragging &&\r\n !node?.data?.locked && (\r\n <>\r\n onResizeStart(e, node)}\r\n onResizeEnd={(e) => onResizeEnd(e, node)}\r\n // minWidth={200}\r\n minWidth={50}\r\n minHeight={\r\n ref?.current?.editor?.clientHeight &&\r\n ref?.current?.editor?.clientHeight > 50\r\n ? Number(ref?.current?.editor?.clientHeight) + 10\r\n : 50\r\n }\r\n style={{\r\n zIndex: 999999999999,\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid transparent\",\r\n }}\r\n >\r\n \r\n \r\n onResizeStart(e, node)}\r\n onResizeEnd={(e) => onResizeEnd(e, node)}\r\n // minWidth={200}\r\n\r\n minWidth={50}\r\n minHeight={\r\n ref?.current?.editor?.clientHeight &&\r\n ref?.current?.editor?.clientHeight > 50\r\n ? Number(ref?.current?.editor?.clientHeight) + 10\r\n : 50\r\n }\r\n style={{\r\n zIndex: 999999999999,\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid transparent\",\r\n }}\r\n >\r\n \r\n \r\n onResizeStart(e, node)}\r\n onResizeEnd={(e) => onResizeEnd(e, node)}\r\n // minWidth={200}\r\n minWidth={50}\r\n minHeight={\r\n ref?.current?.editor?.clientHeight &&\r\n ref?.current?.editor?.clientHeight > 50\r\n ? Number(ref?.current?.editor?.clientHeight) + 10\r\n : 50\r\n }\r\n style={{\r\n zIndex: 999999999999,\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid transparent\",\r\n }}\r\n >\r\n \r\n \r\n onResizeStart(e, node)}\r\n onResizeEnd={(e) => onResizeEnd(e, node)}\r\n // minWidth={200}\r\n minWidth={50}\r\n minHeight={\r\n ref?.current?.editor?.clientHeight &&\r\n ref?.current?.editor?.clientHeight > 50\r\n ? Number(ref?.current?.editor?.clientHeight) + 10\r\n : 50\r\n }\r\n style={{\r\n zIndex: 999999999999,\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid transparent\",\r\n }}\r\n >\r\n \r\n \r\n \r\n )}\r\n\r\n {node.selected &&\r\n !isNodeSelectionStarted &&\r\n editor &&\r\n !isMultiNodeSelected && (\r\n \r\n )}\r\n\r\n {!node?.data?.isHidden && (\r\n
\r\n {node?.data?.isGroupIcon && (\r\n \r\n {node?.data?.isIconShow && node?.data?.url && GroupIcon && (\r\n \r\n )}\r\n\r\n {!node?.data?.hideDescriptions && (\r\n {\r\n setClickTimeStamps((prev) => ({\r\n ...prev,\r\n mouseDown: e.timeStamp,\r\n }));\r\n }}\r\n onMouseUpCapture={(e) => {\r\n setClickTimeStamps((prev) => ({\r\n ...prev,\r\n mouseUp: e.timeStamp,\r\n }));\r\n }}\r\n onFocus={(e) => {\r\n if (!isEditing) {\r\n e.preventDefault();\r\n e.target.blur();\r\n }\r\n }}\r\n >\r\n {isEditorShow ? (\r\n <>\r\n {\r\n e?.preventDefault();\r\n e?.stopPropagation();\r\n }}\r\n />\r\n \r\n ) : (\r\n
\r\n )}\r\n \r\n )}\r\n \r\n )}\r\n\r\n {node?.data?.showGroupTitle && !node?.data?.hideDescriptions && (\r\n {\r\n setClickTimeStamps((prev) => ({\r\n ...prev,\r\n mouseDown: e.timeStamp,\r\n }));\r\n }}\r\n onMouseUpCapture={(e) => {\r\n setClickTimeStamps((prev) => ({\r\n ...prev,\r\n mouseUp: e.timeStamp,\r\n }));\r\n }}\r\n onFocus={(e) => {\r\n if (!isEditing) {\r\n e.preventDefault();\r\n e.target.blur();\r\n }\r\n }}\r\n >\r\n {isEditorShow ? (\r\n <>\r\n {\r\n e?.preventDefault();\r\n e?.stopPropagation();\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\nexport default memo(GroupNode, (prevProps, nextProps) => {\r\n return prevProps.data.globalDragging && nextProps.data.globalDragging;\r\n});\r\n"],"names":["DotVoting","node","_node$data","_svgRef$current","_svgRef$current2","_node$data2","_node$data3","_node$data4","_node$data5","_node$data6","_node$data7","_node$data8","_node$data9","_node$data10","getNodes","setNodes","getIntersectingNodes","getNode","getZoom","useReactFlow","dispatch","useDispatch","nodeNW","id","mainRef","useRef","svgRef","location","useLocation","undo","takeSnapshot","useUndoRedo","useParams","store","useStoreApi","showExport","copyAsImage","useSelector","state","mindMapStore","isNodeSelectionStarted","useNodeSelectionStarted","selected","hovered","setHovered","useState","showDots","setShowDots","hoveredItem","setHoveredItem","zoomPercentages","setZoomPercentages","showDotVotingMoreOptions","setShowDotVotingMoreOptions","dotVotingData","setDotVotingData","clickTimeSTamps","setClickTimeStamps","mouseDown","mouseUp","duration","isInputVisible","setIsInputVisible","fontSize","setFontSize","data","dotVotingRef","titleRef","descriptionRef","dotVoting","icon","IcDotVotingIcon","fill","stroke","user_data","localStorage","getItem","onResizeEnd","_parsedData","updatedNodes","parsedData","JSON","parse","prev","_updatedNodes","setItem","stringify","architecture_json","nodes","lastEvent","map","_","_ref","_mainRef$current","_mainRef$current2","style","width","Number","current","offsetWidth","height","offsetHeight","n","_groupNode","_groupNode2","_groupNode3","_groupNode4","intersections","groupNode","length","type","parentNode","includes","_store$getState","_store$getState$nodeI","getState","nodeInternals","get","_parentNode$positionA","_parentNode$positionA2","_parentNode$positionA3","_parentNode$positionA4","_objectSpread","position","x","positionAbsolute","y","expandParent","undefined","_n2","_groupNode5","_node$positionAbsolut","_groupNode6","_groupNode6$positionA","_node$positionAbsolut2","_groupNode7","_groupNode7$positionA","_n3","structuredClone","_n","className","_getNodePositionInsid","getNodePositionInsideParent","a_id","URLSearchParams","search","updateJson","json","lastUpdatedBy","user_id","concat","isNodeSelected","filter","nd","debouncedUpdateJson","useCallback","debounce","tempNodes","_parsedData2","frameMoreOptionsRef","handleClickOutside","event","contains","target","useEffect","document","addEventListener","removeEventListener","zoom","useStore","_state$transform","transform","sizeAsPerZoom","isItemToSmall","useMemo","baseWidth","clientWidth","baseHeight","clientHeight","zoomPercentage","calculatedWidth","calculatedHeight","visibility","calculatedFontSize","Math","max","debouncedUpdateHTML","titleEditor","useEditor","extensions","tipTapExtensions","content","label","onUpdate","async","editor","_ref2","nds","nodeResizeData","getHTML","onBlur","_ref3","edges","editorProps","handlePaste","view","pastedContent","clipboardData","getData","e","_titleRef$current","_descriptionRef$curre","totalHeight","stripHtmlTags","str","replace","_jsxs","Stack","sx","boxShadow","color","primaryColor","locked","ref","onDrop","stopPropagation","preventDefault","children","_jsx","pointerEvents","border","borderRadius","background","onMouseOver","onMouseOut","_Fragment","NodeResizeControl","keepAspectRatio","minWidth","minHeight","zIndex","backgroundColor","Box","transformOrigin","bgcolor","dragging","Handle","connectionMode","isConnectable","transitionDuration","maxWidth","maxHeight","display","justifyContent","alignItems","onConnect","params","console","log","onMouseLeave","onClick","left","NodeToolbar","Position","Top","gap","p","CustomNameTooltip","placement","arrow","title","IconButton","transition","padding","cursor","toggleLockUnlock","_parsedData4","updatedNode","_parsedData3","_nd$data","IcLockLocked","IcLockUnLocked","CustomTooltip","mt","PopperProps","disablePortal","onClose","open","disableFocusListener","disableHoverListener","disableTouchListener","FrameMoreMenus","showRename","showCopyAsImage","showLockUnlock","showCopyLink","showLinkTo","showDelete","showDuplicate","showBringToFrontAndBack","showFrame","setShowFrameMoreOptions","IcMenuDotsVertical","direction","paddingTop","ToolTipWithDisabled","tooltipTitle","onDoubleClick","_titleEditor$commands","commands","focus","fontWeight","resize","whiteSpace","overflow","textOverflow","EditorContent","lightPrimary","wordBreak","flexWrap","draggable","px","pb","Grid","container","spacing","flexDirection","item","xs","onMouseDownCapture","onDragStart","handleDragStart","val","dotVotingId","_svgRef$current3","_svgRef$current4","updatedObject","key","provider","dataTransfer","setData","effectAllowed","xPos","yPos","setDragImage","updateDotVotingDragData","isDragging","pageX","pageY","onDragEnd","SvgIcon","component","viewBox","top","opacity","xmlns","rx","memo","prevProps","nextProps","globalDragging","strokeWidth","DotVotingNode","setLocked","isDotsShow","setIsDotsShow","onNodeResize","isResizeEnd","arguments","_updatedNodes2","_mainRef$current3","_mainRef$current4","_groupNode8","_groupNode9","_groupNode10","_groupNode11","_store$getState2","_store$getState2$node","_parentNode$positionA5","_parentNode$positionA6","_parentNode$positionA7","_parentNode$positionA8","_n5","_groupNode12","_node$positionAbsolut3","_groupNode13","_groupNode13$position","_node$positionAbsolut4","_groupNode14","_groupNode14$position","_n6","_n4","_getNodePositionInsid2","onResize","flex","DrawingNode","canvasInfo","currNode","architectureId","useViewport","resizedWidth","setResizedWidth","transformScale","setTransformScale","_currNode$style","_currNode$style2","initialWidth","initialHeight","scaleX","scaleY","scale","min","_node$data$path","_node$data$path$trim","isShow","path","trim","primaryColorRGBA","selectedTool","onMouseMove","buttons","dangerouslySetInnerHTML","__html","svgString","EmbedIframe","_node$data11","_node$data12","_node$data13","_node$data14","_node$data15","_getNodes","_getNodes$filter","_node$data17","_node$data17$data","_node$data18","_node$data19","_node$data20","_node$data20$data","_node$data21","_node$data21$data","_node$data22","_node$data22$data","_node$data23","_node$data23$data","_node$data24","_customizeEmbedIframe","_node$data25","_node$data25$data","_node$data26","_node$data26$data","showEmbedIframeModal","setEmbedIframeModal","iframeUrl","loading","setLoading","showEmbedIframeExtendModal","setEmbedIframeExtendModal","customizeEmbedIframe","setCustomizeIframe","logo","lock","favicon","showLinkMoreOptions","setShowLinkMoreOptions","getEdges","_node$data16","removeCurrentNode","reactFlowInstance","isIframeVisible","setIframeVisible","nodeWH","iframeRef","response","fetch","error","fetchMetaData","baseUrl","URL","origin","faviconUrl","isFaviconValid","url","img","Image","src","Promise","resolve","onload","onerror","isImgUrl","image","node1","getMetadata","selectedNodes","isMultiNodeSelected","updatedEdges","_parsedData5","SimpleCircularProgress","size","isVisible","marginTop","alignContent","IcExpand","infoshow","handleToggleInfo","_node1$data","IcEmbedIframeHide","IcEmbedIframeShow","handleRedirect","window","IcRedirectTo","CommonDivider","my","orientation","variant","flexItem","_nd$data2","_nd$data3","_nd$data3$data","showAddComment","saveFile","originalSize","hideImage","download","showCopyAsPng","exportShow","handleCopyasImage","getElementById","options","useCORS","allowTaint","antialias","logging","originalCanvas","html2canvas","desiredWidth","desiredHeight","fixedCanvas","createElement","aspectRatio","ctx","getContext","drawWidth","drawHeight","drawImage","dataUrl","toDataURL","link","href","click","handleClickDuplicate","childNodes","currentFrameWidth","currentFrameHeight","duplicatedFrame","getId","duplicateChildNodes","cNode","handleClickBringToFront","handleClickSendToBack","disabled","backgroundImage","backgroundSize","backgroundRepeat","backgroundPosition","IcVisibility","paddingY","alt","objectFit","endsWith","NodeResizer","handleStyle","EmbedIframeModal","handleClose","EmbedIframeExtendModal","iconMapping","AwsCloud","AwsCloudText","Region","AutoScaling","VPC","PrivateSubnet","PublicSubnet","ServerContents","CDC","AEB","EC2IC","SpotFleet","ASF","AwsAc","AwsOrg","GroupNode","_editor$getText","_currentNode$data","_currentNode$data2","_currentNode$data3","_node$data27","_ref$current2","_ref$current2$editor","_ref$current3","_ref$current3$editor","_ref$current4","_ref$current4$editor","_ref$current5","_ref$current5$editor","_ref$current6","_ref$current6$editor","_ref$current7","_ref$current7$editor","_ref$current8","_ref$current8$editor","_ref$current9","_ref$current9$editor","_ref$current10","_ref$current10$editor","_ref$current11","_ref$current11$editor","_ref$current12","_ref$current12$editor","_ref$current13","_ref$current13$editor","_node$data28","_node$data29","_node$data30","_node$data31","_node$data32","_node$data33","_node$data34","_node$data35","_node$data36","_node$data37","_node$data38","_currentNode$style","_node$data39","_node$data40","_node$data41","_node$data42","_node$data43","_node$data44","_node$data45","_node$data46","_node$data47","_node$data48","_node$data49","_node$data49$style","_node$data50","_node$data51","_node$data51$style","_ref4","_node$data52","editorRef","focusRef","socket","useSocketContext","permission","isDownload","isShowToolsPop","setIsShowToolsPop","isAutoFont","setIsAutoFont","currentNode","userRowData","userData","isWidthLessthan25","isWidthLessthan50","isWidthLessthan100","useZoomPercentages","isShowEditorToolbar","drawboard","isEditing","setIsEditing","isFirstTimeClicked","setIsFirstTimeClicked","groupContent","isIconShow","editorHTML","groupInnerTitle","tempFontSize","setTempFontSize","isEditorShow","setIsEditorShow","isInitialMount","timerForEditor","selectedTextRef","updateEditorHTML","newTextLength","getText","debounceUpdateJson","prevNodes","GroupIcon","chain","handleShowEditorToolbar","onResizeStart","resizedNode","find","_ref$current","_ref$current$editor","_resizedNode$position","_updatedNodes$find","_updatedNodes$find$po","_resizedNode$position2","_updatedNodes$find2","_updatedNodes$find2$p","lastModified","Date","now","forEach","newParentNode","findDeepestContainingGroup","allNodes","deepestGroup","maxDepth","calculateDepth","groupId","depth","group","potentialParent","outerNode","_innerNode$positionAb","_outerNode$positionAb","_innerNode$positionAb2","_outerNode$positionAb2","_innerNode$positionAb3","_outerNode$positionAb3","_innerNode$positionAb4","_outerNode$positionAb4","innerNode","isNodeInside","sortedNodes","sortNodes","sortByParent","sort","a","b","topLevelNodes","childrenAndSelf","getChildrenAndSelf","nodeId","result","addNodeAndChildren","push","child","handleKey","_focusRef$current","keyCode","blur","handleEditorClick","clearTimeout","selection","getSelection","detail","setTimeout","pos","posAtCoords","clientX","clientY","setTextSelection","insideGroupMouseEnter","_e$detail","insideGroupMouseLeave","_e$detail2","hoveredNodeIds","Set","delegateEvent","nodesUnderPointer","elementsFromPoint","element","classList","getAttribute","previousHoveredNodeIds","currentHoveredNodeIds","newHoveredNodeIds","has","removedHoveredNodeIds","clear","add","CustomPromptEvent","CustomEvent","hello","dispatchEvent","querySelectorAll","isHidden","borderVal","borderType","borderColor","metaKey","ctrlKey","preserveAspectRatio","strokeDasharray","vectorEffect","showGroupTitle","MindMapNodesToolbar","updateFontSize","currFontSize","isSticky","simpleRef","onBorderColorChange","isShowTextToolbar","isGroupIcon","hideDescriptions","isIconCenter","isTextCenter","outline","textColor","wordWrap","overflowWrap","name","timeStamp","onMouseUpCapture","onFocus","readOnly","commanService","downColoropacity","groupTitle","_editorRef$current","_editorRef$current2","_focusRef$current2","empty","removeAllRanges","_editorRef$current3","_focusRef$current3"],"sourceRoot":""}