{"version":3,"file":"static/js/main-d8ac5764.6311c67e.js","mappings":"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","sources":["Components/DrawBoard/Nodes-Types/OrgChartNodeComponents/OrgChartNodeToolbar.js","Components/DrawBoard/Nodes-Types/OrgChartNodeComponents/OrgChartNode.js","Components/DrawBoard/Nodes-Types/OrgChartNodeComponents/OrgChartUtils.js","Components/DrawBoard/Nodes-Types/PeopleNodeComponents/PeopleDraggingNode.js","Components/DrawBoard/Nodes-Types/PeopleNodeComponents/PeopleNodeDragPreview.js","Components/DrawBoard/Nodes-Types/PeopleNodeComponents/PeopleNode.js"],"sourcesContent":["import {\r\n Box,\r\n CircularProgress,\r\n ClickAwayListener,\r\n IconButton,\r\n Popover,\r\n Stack,\r\n Typography,\r\n} from \"@mui/material\";\r\nimport React, { useCallback, useEffect, useState } from \"react\";\r\nimport { NodeToolbar, Position, useReactFlow } from \"reactflow\";\r\nimport {\r\n CustomNameTooltip,\r\n CustomTooltip,\r\n} from \"../../top-toolbar/components/CustomTooltip\";\r\nimport ToolTipWithDisabled from \"../../top-toolbar/components/ToolTipWithDisabled\";\r\nimport {\r\n IcCheckBox,\r\n IcCheckBoxOutlineBlank,\r\n IcLockLocked,\r\n IcLockUnLocked,\r\n IcMenuDotsVertical,\r\n IcSettingsOutlined,\r\n} from \"../../../../assets/icon-components\";\r\nimport { debounce } from \"lodash\";\r\nimport { useLocation, useParams } from \"react-router-dom\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport {\r\n getId,\r\n getMaxAndMinZIndex,\r\n removeOrphanedNodes,\r\n toRgba,\r\n updateJson,\r\n} from \"../../../../CommanFunctions/commanFunctions\";\r\nimport BackgroundTool from \"../../../Node/common-components/nodeTopToolbar/components/BackgroundTool\";\r\nimport { useKeyboardShortcut } from \"../../../../Utils/hooks/useKeyboardShortcut\";\r\nimport useCopyPaste from \"../../dndCopyPaste/useCopyPaste\";\r\nimport html2canvas from \"html2canvas\";\r\nimport { processOrgChartFrames } from \"./OrgChartUtils\";\r\nimport { useUndoRedo } from \"../../dndUndoRedo/UndoRedoProvider\";\r\nimport CommonDivider from \"../../../../common-components/CommonDivider\";\r\nimport { successToast } from \"../../../../Redux/toastSlice\";\r\nimport { updateCopyAsImage } from \"../../../../Redux/mindMapSlice\";\r\n\r\nfunction OrgChartNodeToolbar({ node, nodeRef }) {\r\n const user_data = localStorage.getItem(\"user_data\");\r\n const { setNodes, getEdges, getNodes, getIntersectingNodes, getNode } =\r\n useReactFlow();\r\n\r\n const location = useLocation();\r\n const { undo, takeSnapshot } = useUndoRedo();\r\n const { id: architectureId } = useParams();\r\n const dispatch = useDispatch();\r\n const { data } = node;\r\n\r\n const [showColor, setShowColor] = useState(false);\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n const [showMoreOptions, setShowMoreOptions] = useState(false);\r\n const [, setShowShapesLimitModal] = useState(false);\r\n const [copyImageLoading, setCopyImageLoading] = useState(false);\r\n const [copyAsImage, setCopyAsImage] = useState(false);\r\n\r\n useEffect(() => {\r\n dispatch(updateCopyAsImage(copyAsImage));\r\n }, [copyAsImage, dispatch]);\r\n\r\n const { copy, paste } = useCopyPaste({\r\n setShowShapesLimitModal,\r\n });\r\n\r\n // Create a debounced version of updateJson\r\n const debouncedUpdateJson = useCallback(\r\n debounce((tempNodes, updatedEdges) => {\r\n setNodes(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 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 takeSnapshot,\r\n a_id,\r\n });\r\n }, 300), // Adjust the delay (in milliseconds) as needed\r\n [\r\n updateJson,\r\n user_data,\r\n location,\r\n getNodes,\r\n getEdges,\r\n architectureId,\r\n undo,\r\n takeSnapshot,\r\n ]\r\n );\r\n\r\n const handleColorChange = (color) => {\r\n let updatedNodes;\r\n setNodes((nds) => {\r\n updatedNodes = nds.map((nd) => {\r\n if (nd.id === node?.id) {\r\n return {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n cardColor: color,\r\n },\r\n };\r\n }\r\n return nd;\r\n });\r\n return updatedNodes;\r\n });\r\n debouncedUpdateJson(updatedNodes, getEdges());\r\n // setShowColor(false);\r\n };\r\n\r\n const handleToggleLock = () => {\r\n let updatedNodes;\r\n setNodes((nds) => {\r\n updatedNodes = nds.map((nd) => {\r\n if (nd.id === node?.id) {\r\n return {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n lock: !nd.data?.lock,\r\n },\r\n };\r\n }\r\n return nd;\r\n });\r\n return updatedNodes;\r\n });\r\n debouncedUpdateJson(updatedNodes, getEdges());\r\n };\r\n\r\n const handleCheckboxToggle = (option) => {\r\n const newOptionValue = data?.[option];\r\n\r\n let updatedNodes;\r\n setNodes((nds) => {\r\n updatedNodes = nds.map((nd) => {\r\n if (nd.id === node?.id) {\r\n return {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n [option]: !newOptionValue,\r\n },\r\n };\r\n }\r\n return nd;\r\n });\r\n return updatedNodes;\r\n });\r\n debouncedUpdateJson(updatedNodes, getEdges());\r\n };\r\n\r\n const convertNodeToImage = async () => {\r\n localStorage.removeItem(\"frameCopiedImage\");\r\n const selectedNodeElement = document.querySelector(\r\n `[data-id='${node.id}']`\r\n );\r\n\r\n if (selectedNodeElement) {\r\n const applyComputedStyles = (originalElement, clonedElement) => {\r\n const computedStyles = window.getComputedStyle(originalElement);\r\n for (let key of computedStyles) {\r\n clonedElement.style[key] = computedStyles[key];\r\n }\r\n };\r\n\r\n const getChildNodes = (nodeId) => {\r\n const children = getNodes().filter(\r\n (node) => node?.parentNode === nodeId\r\n );\r\n\r\n return children.reduce((acc, child) => {\r\n const childElement = document.querySelector(\r\n `[data-id='${child.id}']`\r\n );\r\n\r\n if (childElement) {\r\n const clonedChild = childElement.cloneNode(true);\r\n applyComputedStyles(childElement, clonedChild);\r\n clonedChild.style.position = \"absolute\";\r\n clonedChild.style.left = child.position.x + \"px\";\r\n clonedChild.style.top = child.position.y + \"px\";\r\n clonedChild.style.transform = \"none\";\r\n const nestedChildNodes = getChildNodes(child.id);\r\n nestedChildNodes.forEach((nestedChild) => {\r\n clonedChild.appendChild(nestedChild);\r\n });\r\n acc.push(clonedChild);\r\n }\r\n return acc;\r\n }, []);\r\n };\r\n\r\n const clonedSelectedNode = selectedNodeElement.cloneNode(true);\r\n\r\n const childNodes = getChildNodes(node.id);\r\n\r\n childNodes.forEach((child) => {\r\n clonedSelectedNode.appendChild(child);\r\n });\r\n\r\n clonedSelectedNode.style.position = \"absolute\";\r\n clonedSelectedNode.style.top = \"0px\";\r\n clonedSelectedNode.style.left = \"0px\";\r\n clonedSelectedNode.style.zIndex = \"-999999999999\";\r\n\r\n document.body.appendChild(clonedSelectedNode);\r\n\r\n try {\r\n const canvas = await html2canvas(clonedSelectedNode, {\r\n useCORS: true,\r\n scale: 2,\r\n backgroundColor: null,\r\n });\r\n\r\n canvas.toBlob(\r\n async (blob) => {\r\n if (blob) {\r\n try {\r\n await navigator.clipboard.write([\r\n new ClipboardItem({\r\n \"image/png\": blob, // Image content\r\n \"text/plain\": new Blob([\"frameImg\"], {\r\n type: \"text/plain\",\r\n }),\r\n }),\r\n ]);\r\n\r\n const currentNode = getNode(node.id);\r\n\r\n localStorage.setItem(\r\n \"frameCopiedImage\",\r\n JSON.stringify({\r\n width: currentNode?.width,\r\n height: currentNode?.height,\r\n })\r\n );\r\n } catch (error) {}\r\n } else {\r\n }\r\n document.body.removeChild(clonedSelectedNode);\r\n },\r\n \"image/png\",\r\n 1.0\r\n );\r\n dispatch(\r\n successToast({\r\n message: \"Image copied\",\r\n })\r\n );\r\n setShowMoreOptions(false);\r\n setCopyAsImage(false);\r\n setCopyImageLoading(false);\r\n } catch (error) {}\r\n }\r\n };\r\n\r\n const handleBringToFront = () => {\r\n const interSectedNodes = getIntersectingNodes(node, true);\r\n const { maxZIndex } = getMaxAndMinZIndex(interSectedNodes);\r\n setNodes((prevNodes) => {\r\n const updatedNodes = prevNodes.map((nd) => {\r\n if (nd.id === node?.id) {\r\n return {\r\n ...nd,\r\n style: {\r\n ...nd.style,\r\n zIndex: maxZIndex + 1,\r\n },\r\n };\r\n }\r\n return nd;\r\n });\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n },\r\n },\r\n id: architectureId,\r\n dispatch,\r\n undo,\r\n takeSnapshot,\r\n a_id,\r\n });\r\n return updatedNodes;\r\n });\r\n };\r\n\r\n const handleSendToBack = () => {\r\n const interSectedNodes = getIntersectingNodes(node, true);\r\n const { minZIndex } = getMaxAndMinZIndex(interSectedNodes);\r\n setNodes((prevNodes) => {\r\n const updatedNodes = prevNodes.map((nd) => {\r\n if (nd.id === node?.id) {\r\n return {\r\n ...nd,\r\n style: {\r\n ...nd.style,\r\n zIndex: minZIndex - 1,\r\n },\r\n };\r\n }\r\n return nd;\r\n });\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n },\r\n },\r\n id: architectureId,\r\n dispatch,\r\n undo,\r\n takeSnapshot,\r\n a_id,\r\n });\r\n return updatedNodes;\r\n });\r\n };\r\n\r\n const handleClickDuplicate = () => {\r\n let updatedNodes;\r\n const currNode = getNode(node?.id);\r\n const parentFrame = getNode(currNode?.data?.rootParentId);\r\n const { rootFrameId, rootParentId, ...updatedData } = currNode?.data || {};\r\n const duplicatedNode = {\r\n ...currNode,\r\n id: getId(),\r\n data: {\r\n ...updatedData,\r\n addChildButtonShow: false,\r\n },\r\n position: {\r\n x: parentFrame?.positionAbsolute?.x + parentFrame?.width + 50,\r\n y: currNode?.positionAbsolute?.y,\r\n },\r\n positionAbsolute: {\r\n ...currNode?.positionAbsolute,\r\n x: parentFrame?.positionAbsolute?.x + parentFrame?.width + 50,\r\n },\r\n parentNode: null,\r\n };\r\n setNodes((nds) => {\r\n updatedNodes = [...nds, duplicatedNode];\r\n return updatedNodes;\r\n });\r\n debouncedUpdateJson(updatedNodes, getEdges());\r\n };\r\n\r\n const handleClickDelete = () => {\r\n setShowMoreOptions(false);\r\n\r\n setNodes((prevNodes) => {\r\n let updatedNodes = prevNodes?.filter((nd) => nd.id !== node?.id);\r\n updatedNodes = removeOrphanedNodes(updatedNodes);\r\n\r\n updatedNodes = updatedNodes.filter((nd) => {\r\n // Check if the node is a frame with `isOrgChartFrame` set to true\r\n if (nd.type === \"frame\" && nd.data.isOrgChartFrame) {\r\n // Check if any other node has this node as its parent\r\n const hasChildNodes = updatedNodes.some(\r\n (otherNode) => otherNode.parentNode === nd.id\r\n );\r\n // Keep the node if it has children, remove it otherwise\r\n return hasChildNodes;\r\n }\r\n // Keep all other nodes\r\n return true;\r\n });\r\n\r\n updatedNodes = processOrgChartFrames(updatedNodes);\r\n\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id: architectureId,\r\n dispatch,\r\n undo,\r\n a_id,\r\n should_delete: updatedNodes?.length === 0,\r\n takeSnapshot,\r\n });\r\n\r\n return updatedNodes;\r\n });\r\n };\r\n\r\n const moreMenusData = [\r\n {\r\n id: \"child-1\",\r\n children: [\r\n {\r\n mainLabel: \"Copy\",\r\n shortCut: \"Ctrl + C\",\r\n onClick: () => {\r\n copy();\r\n setShowMoreOptions(false);\r\n },\r\n },\r\n // {\r\n // mainLabel: \"Paste\",\r\n // shortCut: \"Ctrl + V\",\r\n // disabled: true,\r\n // onClick: () => {\r\n // // paste();\r\n // // setShowMoreOptions(false);\r\n // },\r\n // },\r\n {\r\n mainLabel: \"Copy as Image\",\r\n shortCut: \"Ctrl + shift + C\",\r\n onClick: () => {\r\n setCopyImageLoading(true);\r\n setCopyAsImage(true);\r\n setTimeout(() => {\r\n convertNodeToImage();\r\n }, 100);\r\n },\r\n },\r\n {\r\n mainLabel: \"Duplicate\",\r\n shortCut: \"Ctrl + D\",\r\n onClick: () => {\r\n setShowMoreOptions(false);\r\n handleClickDuplicate();\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n id: \"child-3\",\r\n children: [\r\n {\r\n mainLabel: data?.locked ? \"Unlock\" : \"Lock\",\r\n shortCut: \"Ctrl + shift + L\",\r\n onClick: () => {\r\n setShowMoreOptions(false);\r\n handleToggleLock();\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n id: \"child-5\",\r\n children: [\r\n {\r\n mainLabel: \"Bring to front\",\r\n shortCut: \"Ctrl + shift + F\",\r\n onClick: () => {\r\n setShowMoreOptions(false);\r\n handleBringToFront();\r\n },\r\n },\r\n {\r\n mainLabel: \"Send to back\",\r\n shortCut: \"Ctrl + shift + B\",\r\n onClick: () => {\r\n setShowMoreOptions(false);\r\n handleSendToBack();\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n id: \"child-8\",\r\n children: [\r\n {\r\n mainLabel: \"Delete\",\r\n shortCut: \"Delete\",\r\n onClick: () => {\r\n setShowMoreOptions(false);\r\n handleClickDelete();\r\n },\r\n },\r\n ],\r\n },\r\n ];\r\n\r\n // shortCut keys added\r\n useKeyboardShortcut([\"Control\", \"Shift\", \"C\"], convertNodeToImage);\r\n useKeyboardShortcut([\"Control\", \"D\"], handleClickDuplicate);\r\n useKeyboardShortcut([\"Control\", \"Shift\", \"L\"], handleToggleLock);\r\n useKeyboardShortcut([\"Control\", \"Shift\", \"F\"], handleSendToBack);\r\n useKeyboardShortcut([\"Control\", \"Shift\", \"B\"], handleBringToFront);\r\n\r\n return (\r\n \r\n \r\n {!data?.lock && (\r\n <>\r\n \r\n setShowColor(false)}>\r\n {\r\n setShowColor(!showColor);\r\n setShowMoreOptions(false);\r\n setAnchorEl(null);\r\n }}\r\n >\r\n setShowColor(false)}\r\n open={showColor}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n {\r\n handleColorChange(color);\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 setShowColor(false);\r\n setShowMoreOptions(false);\r\n setAnchorEl(event.currentTarget);\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 handleToggleLock();\r\n setShowColor(false);\r\n setShowMoreOptions(false);\r\n setAnchorEl(null);\r\n }}\r\n >\r\n {data?.lock ? : }\r\n \r\n \r\n \r\n \r\n setShowMoreOptions(false)}\r\n open={showMoreOptions}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n \r\n {moreMenusData.map((moreMenu, mainIndex) => (\r\n \r\n {moreMenu.children.map((child, i) => (\r\n {\r\n child.onClick(event);\r\n }}\r\n >\r\n \r\n {child.mainLabel}\r\n \r\n {child.shortCut && (\r\n \r\n {/* {child.shortCut} */}\r\n {child?.mainLabel === \"Copy as Image\" &&\r\n copyImageLoading ? (\r\n \r\n ) : (\r\n child.shortCut\r\n )}\r\n \r\n )}\r\n {child.rightArrowIcons && child.rightArrowIcons}\r\n {child.subChild && (\r\n \r\n {child.subChild.map((subChild, subCI) => (\r\n \r\n \r\n {subChild.label}\r\n \r\n \r\n ))}\r\n \r\n )}\r\n \r\n ))}\r\n {mainIndex !== moreMenusData.length - 1 && (\r\n \r\n )}\r\n \r\n ))}\r\n \r\n }\r\n >\r\n {\r\n e.stopPropagation();\r\n setShowMoreOptions(!showMoreOptions);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n setAnchorEl(null)}\r\n anchorOrigin={{\r\n vertical: \"bottom\",\r\n horizontal: \"center\",\r\n }}\r\n transformOrigin={{\r\n vertical: \"top\",\r\n horizontal: \"center\",\r\n }}\r\n BackdropProps={{\r\n style: { backgroundColor: \"transparent\" },\r\n }}\r\n sx={{\r\n \"& .MuiPaper-root\": {\r\n p: \"10px\",\r\n ml: \"-10px\",\r\n boxShadow: \"none\",\r\n bgcolor: \"transparent\",\r\n },\r\n }}\r\n >\r\n \r\n handleCheckboxToggle(\"showImage\")}\r\n >\r\n {data?.showImage ? (\r\n \r\n ) : (\r\n \r\n )}\r\n Photo\r\n \r\n\r\n handleCheckboxToggle(\"showName\")}\r\n >\r\n {data?.showName ? (\r\n \r\n ) : (\r\n \r\n )}\r\n Name\r\n \r\n\r\n handleCheckboxToggle(\"showRole\")}\r\n >\r\n {data?.showRole ? (\r\n \r\n ) : (\r\n \r\n )}\r\n Role\r\n \r\n\r\n handleCheckboxToggle(\"showTeam\")}\r\n >\r\n {data?.showTeam ? (\r\n \r\n ) : (\r\n \r\n )}\r\n Team\r\n \r\n\r\n handleCheckboxToggle(\"showMail\")}\r\n >\r\n {data?.showMail ? (\r\n \r\n ) : (\r\n \r\n )}\r\n Email\r\n \r\n\r\n handleCheckboxToggle(\"showNumber\")}\r\n >\r\n {data?.showNumber ? (\r\n \r\n ) : (\r\n \r\n )}\r\n Phone Number\r\n \r\n\r\n handleCheckboxToggle(\"showLocation\")}\r\n >\r\n {data?.showLocation ? (\r\n \r\n ) : (\r\n \r\n )}\r\n Location\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default OrgChartNodeToolbar;\r\n","import React, { useState, useRef, useCallback, useEffect, memo } from \"react\";\r\nimport {\r\n Box,\r\n IconButton,\r\n Avatar,\r\n Typography,\r\n} from \"@mui/material\";\r\nimport { Handle } from \"reactflow\";\r\nimport { debounce } from \"lodash\";\r\nimport { useParams, useLocation } from \"react-router-dom\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { convertToRgba, findMinMaxHorizontalAbsolutePositions, getId, sortNodesByHierarchy, updateJson } from \"../../../../CommanFunctions/commanFunctions\";\r\nimport { IcAddRowCol, IcImagePlaceholder } from \"../../../../assets/icon-components\";\r\nimport { useReactFlow } from \"reactflow\";\r\nimport { createVerticalTreeLayout } from \"../../../../Utils/hooks/createHieararchy\";\r\nimport OrgChartNodeToolbar from \"./OrgChartNodeToolbar\";\r\nimport { useDropzone } from \"react-dropzone\";\r\nimport AutoWidthTextField from \"../../../../common-components/AutoWidthTextField\";\r\nimport { useUndoRedo } from \"../../dndUndoRedo/UndoRedoProvider\";\r\nimport { useSelector } from \"react-redux\";\r\nimport useNodeSelectionStarted from \"../../../../Utils/hooks/useNodeSelectionStarted\";\r\nimport { color } from \"../../../../Utils/style/color/color\";\r\nimport { adjustNodePositions } from \"./OrgChartUtils\";\r\n\r\nconst OrgChartNode = (node) => {\r\n\r\n const [details, setDetails] = useState({\r\n name: node?.data?.name,\r\n email: node?.data?.email,\r\n phone: node?.data?.phone,\r\n role: node?.data?.role,\r\n location: node?.data?.location,\r\n team: node?.data?.team,\r\n });\r\n const [isNodeChanging, setIsNodeChanging] = useState(false);\r\n\r\n const user_data = localStorage.getItem(\"user_data\");\r\n const { setNodes, getEdges, getNodes, setEdges, getNode } = useReactFlow();\r\n const [hoveredItem, setHoveredItem] = useState(\"\");\r\n const [showDots, setShowDots] = useState(false);\r\n const location = useLocation();\r\n const { undo, takeSnapshot } = useUndoRedo();\r\n const { id: architectureId } = useParams();\r\n const dispatch = useDispatch();\r\n const nodeRef = useRef(null);\r\n const [nodeSize, setNodeSize] = useState({ width: 0, height: 0 });\r\n const { connectionLinePath, copyAsImage } = useSelector((state) => state.mindMapStore)\r\n const { isNodeSelectionStarted } = useNodeSelectionStarted({ selected: node?.selected });\r\n const { id, data } = node;\r\n const currNode = getNode(id);\r\n\r\n const handleInputChange = (event, value) => {\r\n let imageUrl = null;\r\n if (value === \"image\") {\r\n const file = event.target.files[0];\r\n if (file) {\r\n imageUrl = URL.createObjectURL(file);\r\n }\r\n }\r\n\r\n setDetails((prevState) => ({\r\n ...prevState,\r\n [value]: value === \"image\" ? imageUrl : event.target.value,\r\n }));\r\n\r\n let updatedNodes = [];\r\n\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 [value]: value === \"image\" ? imageUrl : event.target.value,\r\n },\r\n };\r\n }\r\n return nd;\r\n });\r\n return updatedNodes;\r\n })\r\n\r\n setIsNodeChanging(true);\r\n\r\n debouncedUpdateJson(updatedNodes, getEdges());\r\n };\r\n\r\n useEffect(() => {\r\n if (isNodeChanging) return;\r\n\r\n const { image, ...updatedDetails } = details;\r\n const updatedData = {\r\n name: node?.data?.name,\r\n role: node?.data?.role,\r\n location: node?.data?.location,\r\n team: node?.data?.team,\r\n email: node?.data?.email,\r\n phone: node?.data?.phone,\r\n }\r\n if (JSON.stringify(updatedDetails) !== JSON.stringify(updatedData)) {\r\n setDetails({\r\n ...details,\r\n ...updatedData\r\n })\r\n }\r\n }, [node?.data])\r\n\r\n const onAddChild = useCallback(\r\n (parentId, details, side) => {\r\n const newNodeId = getId();\r\n const parentNode = getNode(parentId);\r\n const parentFrameNode = getNode(details.rootFrameId);\r\n const isRootParentNode = parentNode?.parentNode === details.rootFrameId;\r\n const rootParentNodeId = details.rootParentId;\r\n const afterNodeId = side === \"right\" ? parentId : null\r\n const beforeNodeId = side === \"left\" ? parentId : null\r\n\r\n let newNode = {\r\n id: newNodeId,\r\n type: details.childNodeType,\r\n data: {\r\n type: \"child\",\r\n edgeAlgorithm: details.edgeAlgorithm,\r\n childNodeType: details.childNodeType,\r\n rootParentId: details.rootParentId,\r\n rootFrameId: details.rootFrameId,\r\n addChildButtonShow: true,\r\n showImage: true,\r\n showName: true,\r\n showRole: true,\r\n showTeam: false,\r\n showNumber: false,\r\n showMail: false,\r\n showLocation: true,\r\n image: \"\",\r\n name: \"\",\r\n role: \"\",\r\n team: \"\",\r\n number: \"\",\r\n mail: \"\",\r\n location: \"\",\r\n },\r\n parentNode: side === \"bottom\" ? parentId : parentNode?.parentNode,\r\n draggable: true,\r\n position: { x: 0, y: 0 },\r\n positionAbsolute: { x: 0, y: 0 },\r\n };\r\n\r\n if (isRootParentNode && side === \"top\") {\r\n newNode = {\r\n ...newNode,\r\n parentNode: details.rootFrameId,\r\n position: parentNode.position,\r\n positionAbsolute: parentNode.positionAbsolute,\r\n }\r\n }\r\n\r\n let newEdge = {\r\n id: `e${parentId}-${newNodeId}`,\r\n type: \"step-edge\",\r\n markerStart: { color: \"rgb(0, 0, 0)\" },\r\n markerEnd: { color: \"rgb(0, 0, 0)\" },\r\n selected: false,\r\n data: {\r\n isTreeView: true,\r\n animate: false,\r\n animationDirection: \"ltr\",\r\n algorithm: details.edgeAlgorithm,\r\n isDashed: false,\r\n points: connectionLinePath?.map((point, i) => ({\r\n ...point,\r\n id: window.crypto.randomUUID(),\r\n prev: i === 0 ? undefined : connectionLinePath[i - 1],\r\n active: true,\r\n })),\r\n },\r\n sourceHandle: \"ddd\",\r\n targetHandle: \"aaa\",\r\n source: parentId,\r\n target: newNodeId,\r\n };\r\n\r\n if (side === \"top\") {\r\n newEdge = {\r\n ...newEdge,\r\n source: newNodeId,\r\n target: parentId,\r\n };\r\n } else if (side === \"left\" || side === \"right\") {\r\n newEdge = {\r\n ...newEdge,\r\n source: parentNode?.parentNode,\r\n target: newNodeId,\r\n };\r\n }\r\n\r\n let updatedNodes = getNodes()\r\n .filter((n) => n.data.rootParentId === details.rootParentId)\r\n .concat(newNode)\r\n\r\n if (side === \"top\") {\r\n updatedNodes = updatedNodes.map((node) => {\r\n if (node.id === parentId) {\r\n return {\r\n ...node,\r\n parentNode: newNodeId,\r\n };\r\n }\r\n return node;\r\n });\r\n }\r\n\r\n if (!isRootParentNode && side === \"top\") {\r\n updatedNodes = updatedNodes.map((node) => {\r\n if (node.id === parentNode?.parentNode) {\r\n return {\r\n ...node,\r\n data: {\r\n ...node.data,\r\n childrenOrder: node.data.childrenOrder.map((child) => {\r\n if (child.id === parentNode.id) {\r\n return {\r\n ...newNode,\r\n }\r\n }\r\n return child;\r\n }),\r\n }\r\n }\r\n } else if (node.id === newNodeId) {\r\n return {\r\n ...node,\r\n data: {\r\n ...node.data,\r\n childrenOrder: [{ ...parentNode, parentNode: newNodeId }],\r\n }\r\n }\r\n }\r\n return node;\r\n });\r\n }\r\n\r\n let updatedEdges = getEdges();\r\n\r\n if (!isRootParentNode && side === \"top\") {\r\n updatedEdges = updatedEdges.map((edge) => {\r\n if (edge.target === parentId) {\r\n return {\r\n ...edge,\r\n target: newNodeId,\r\n }\r\n }\r\n return edge;\r\n })\r\n }\r\n\r\n if (!isRootParentNode || (isRootParentNode && (side === \"bottom\" || side === \"top\"))) {\r\n updatedEdges = updatedEdges.concat(newEdge);\r\n }\r\n\r\n const result = createVerticalTreeLayout(\r\n updatedNodes,\r\n rootParentNodeId,\r\n newNodeId,\r\n afterNodeId,\r\n beforeNodeId,\r\n );\r\n\r\n let tempNodes = [];\r\n\r\n setNodes((nds) => {\r\n const updatedNodes = nds.map((n) => {\r\n // Check if there's a matching node in result.nodes by ID\r\n const matchingNode = result.nodes.find(\r\n (resNode) => resNode.id === n.id\r\n );\r\n\r\n // If a matching node is found, replace it; otherwise, keep the original node\r\n return matchingNode ? matchingNode : n;\r\n });\r\n\r\n // If there are any new nodes in result.nodes that don't exist in nds, add them\r\n const newNodes = result.nodes.filter(\r\n (resNode) => !nds.some((n) => n.id === resNode.id)\r\n );\r\n\r\n tempNodes = [...updatedNodes, ...newNodes];\r\n\r\n let allChartNode = tempNodes.filter((node) => node.type === \"orgChart\" && node.data.rootFrameId === details.rootFrameId);\r\n adjustNodePositions(allChartNode, parentFrameNode);\r\n\r\n const { minX, maxX, minY, maxY } = findMinMaxHorizontalAbsolutePositions(allChartNode);\r\n const nodesOnMaxY = allChartNode.filter((node) => node.positionAbsolute.y === maxY);\r\n const nodesOnMaxX = allChartNode.filter((node) => node.positionAbsolute.x === maxX);\r\n\r\n const nodeWithMaxHeightOnY = nodesOnMaxY.reduce((maxNode, currentNode) => {\r\n return currentNode.height > (maxNode?.height || 0) ? currentNode : maxNode;\r\n }, null);\r\n\r\n const nodeWithMaxWidthOnX = nodesOnMaxX.reduce((maxNode, currentNode) => {\r\n return currentNode.width > (maxNode?.width || 0) ? currentNode : maxNode;\r\n }, null);\r\n\r\n tempNodes = tempNodes.map((node) => {\r\n if (node.id === details.rootFrameId) {\r\n return {\r\n ...node,\r\n style: {\r\n height: maxY - minY + (nodeWithMaxHeightOnY?.height || currNode?.height || 175) + 70,\r\n width: maxX - minX + (nodeWithMaxWidthOnX?.width || currNode?.width || 209) + 70,\r\n }\r\n }\r\n }\r\n if (node.type === \"orgChart\" && node.parentNode === rootParentNodeId) {\r\n return {\r\n ...node,\r\n position: {\r\n x: node.positionAbsolute.x - minX + 35,\r\n y: 40\r\n }\r\n }\r\n }\r\n return node;\r\n });\r\n\r\n tempNodes = sortNodesByHierarchy(tempNodes);\r\n\r\n return tempNodes;\r\n });\r\n\r\n setEdges(updatedEdges);\r\n\r\n // Call the debounced update function\r\n debouncedUpdateJson(tempNodes, updatedEdges);\r\n },\r\n [setEdges, getNodes]\r\n );\r\n\r\n // Create a debounced version of updateJson\r\n const debouncedUpdateJson = useCallback(\r\n debounce((tempNodes, updatedEdges) => {\r\n // setNodes(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 edges: updatedEdges.length > 0 ? updatedEdges : getEdges(),\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id: architectureId,\r\n dispatch,\r\n undo,\r\n a_id,\r\n takeSnapshot\r\n });\r\n setIsNodeChanging(false);\r\n }, 300), // Adjust the delay (in milliseconds) as needed\r\n [updateJson, user_data, location, getNodes, getEdges, architectureId, dispatch, undo, takeSnapshot]\r\n );\r\n\r\n const updateTreeLayout = useCallback(() => {\r\n const updatedNodes = getNodes().filter(\r\n (n) => n.data.rootParentId === data.rootParentId\r\n );\r\n const result = createVerticalTreeLayout(\r\n updatedNodes,\r\n data.rootParentId\r\n );\r\n\r\n setNodes((nds) => {\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: nds,\r\n // lastUpdatedBy: parsedData?.user_id,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n\r\n let updatedNodes = nds.map((n) => {\r\n const matchingNode = result.nodes.find(\r\n (resNode) => resNode.id === n.id\r\n );\r\n return matchingNode ? { ...n, ...matchingNode } : n;\r\n });\r\n const frameNode = getNode(data.rootParentId);\r\n\r\n let allChartNode = updatedNodes.filter((node) => node.type === \"orgChart\" && node.data.rootFrameId === data.rootFrameId);\r\n adjustNodePositions(allChartNode, frameNode);\r\n\r\n const { minX, maxX, minY, maxY } = findMinMaxHorizontalAbsolutePositions(allChartNode);\r\n const nodesOnMaxY = allChartNode.filter((node) => node.positionAbsolute.y === maxY);\r\n const nodesOnMaxX = allChartNode.filter((node) => node.positionAbsolute.x === maxX);\r\n\r\n const nodeWithMaxHeightOnY = nodesOnMaxY.reduce((maxNode, currentNode) => {\r\n return currentNode.height > (maxNode?.height || 0) ? currentNode : maxNode;\r\n }, null);\r\n\r\n const nodeWithMaxWidthOnX = nodesOnMaxX.reduce((maxNode, currentNode) => {\r\n return currentNode.width > (maxNode?.width || 0) ? currentNode : maxNode;\r\n }, null);\r\n\r\n updatedNodes = updatedNodes.map((n) => {\r\n if (n.type === \"frame\" && n.id === data.rootFrameId) {\r\n return {\r\n ...n,\r\n style: {\r\n height: maxY - minY + (nodeWithMaxHeightOnY?.height || currNode?.height || 175) + 70,\r\n width: maxX - minX + (nodeWithMaxWidthOnX?.width || currNode?.width || 209) + 70,\r\n }\r\n }\r\n }\r\n if (n.type === \"orgChart\" && n.parentNode === data.rootParentId) {\r\n return {\r\n ...n,\r\n position: {\r\n x: n.positionAbsolute.x - minX + 35,\r\n y: 40\r\n }\r\n }\r\n }\r\n return n;\r\n })\r\n return updatedNodes;\r\n });\r\n }, [getNodes, setNodes, data.rootParentId, data.addition]);\r\n\r\n const debouncedUpdateTreeLayout = useCallback(\r\n debounce(updateTreeLayout, 100),\r\n [updateTreeLayout]\r\n );\r\n\r\n useEffect(() => {\r\n const nodeElement = nodeRef.current;\r\n\r\n if (!nodeElement || data?.isResizing) return;\r\n\r\n // Create a ResizeObserver instance\r\n const resizeObserver = new ResizeObserver((entries) => {\r\n for (let entry of entries) {\r\n const newHeight = entry.contentRect.height;\r\n const newWidth = entry.contentRect.width;\r\n\r\n // Only call the onHeightChange function if the height has changed\r\n if (newHeight !== nodeSize.height || newWidth !== nodeSize.width) {\r\n setNodeSize({ width: newWidth, height: newHeight }); // Update the height state\r\n debouncedUpdateTreeLayout(); // Call the dummy function\r\n }\r\n }\r\n });\r\n\r\n // Start observing the node element\r\n resizeObserver.observe(nodeElement);\r\n\r\n // Cleanup the observer on component unmount\r\n return () => {\r\n resizeObserver.unobserve(nodeElement);\r\n resizeObserver.disconnect();\r\n };\r\n }, [nodeSize]);\r\n\r\n const handleRemoveImage = () => {\r\n let updatedNodes = [];\r\n\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 image: null,\r\n },\r\n };\r\n }\r\n return nd;\r\n });\r\n return updatedNodes;\r\n })\r\n\r\n debouncedUpdateJson(updatedNodes, getEdges());\r\n };\r\n\r\n const { getRootProps, getInputProps } = useDropzone({\r\n accept: {\r\n 'image/jpeg': [],\r\n 'image/png': [],\r\n 'image/webp': [],\r\n 'image/heic': [],\r\n 'image/jfif': [],\r\n },\r\n multiple: false,\r\n onDrop: (files) => {\r\n const file = files[0];\r\n if (file) {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n\r\n reader.onload = () => {\r\n const base64String = reader.result;\r\n\r\n const img = new Image();\r\n img.src = base64String;\r\n\r\n img.onload = () => {\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 image: base64String,\r\n },\r\n };\r\n }\r\n return nd;\r\n });\r\n return updatedNodes;\r\n })\r\n\r\n debouncedUpdateJson(updatedNodes, getEdges());\r\n };\r\n\r\n img.onerror = (error) => {\r\n console.error(\r\n \"Error loading image for dimension extraction:\",\r\n error\r\n );\r\n };\r\n };\r\n\r\n reader.onerror = (error) => {\r\n console.error(\"Error converting file to base64:\", error);\r\n };\r\n }\r\n },\r\n });\r\n\r\n return (\r\n \r\n {!isNodeSelectionStarted && node.selected && !node.dragging && (\r\n \r\n )}\r\n\r\n {data?.showImage &&\r\n \r\n {data?.image ?\r\n \r\n \r\n :\r\n }\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {data?.image &&\r\n \r\n Remove\r\n \r\n }\r\n \r\n }\r\n\r\n {data?.showName &&\r\n handleInputChange(e, \"name\")}\r\n style={{\r\n lineHeight: \"17.64px\",\r\n fontSize: \"14px\",\r\n fontWeight: \"700\",\r\n }}\r\n node={node}\r\n />\r\n }\r\n\r\n {data?.showRole &&\r\n handleInputChange(e, \"role\")}\r\n style={{\r\n lineHeight: \"15.12px\",\r\n fontSize: \"12px\",\r\n fontWeight: \"400\",\r\n }}\r\n node={node}\r\n />\r\n }\r\n\r\n {data?.showTeam &&\r\n handleInputChange(e, \"team\")}\r\n style={{\r\n lineHeight: \"15.12px\",\r\n fontSize: \"12px\",\r\n fontWeight: \"400\",\r\n }}\r\n node={node}\r\n />\r\n }\r\n\r\n {data?.showMail &&\r\n handleInputChange(e, \"mail\")}\r\n style={{\r\n lineHeight: \"15.12px\",\r\n fontSize: \"12px\",\r\n fontWeight: \"400\",\r\n }}\r\n node={node}\r\n />\r\n }\r\n\r\n {data?.showNumber &&\r\n handleInputChange(e, \"number\")}\r\n style={{\r\n lineHeight: \"15.12px\",\r\n fontSize: \"12px\",\r\n fontWeight: \"400\",\r\n }}\r\n node={node}\r\n />\r\n }\r\n\r\n {data?.showLocation &&\r\n handleInputChange(e, \"location\")}\r\n style={{\r\n lineHeight: \"15.12px\",\r\n fontSize: \"12px\",\r\n fontWeight: \"400\",\r\n }}\r\n node={node}\r\n />\r\n }\r\n\r\n {data.addChildButtonShow &&\r\n <>\r\n {\r\n e.stopPropagation();\r\n onAddChild(id, data, \"top\");\r\n }}\r\n className=\"add-child-btn\"\r\n >\r\n \r\n \r\n {\r\n e.stopPropagation();\r\n onAddChild(id, data, \"left\");\r\n }}\r\n className=\"add-child-btn\"\r\n >\r\n \r\n \r\n {\r\n e.stopPropagation();\r\n onAddChild(id, data, \"bottom\");\r\n }}\r\n className=\"add-child-btn\"\r\n >\r\n \r\n \r\n {\r\n e.stopPropagation();\r\n onAddChild(id, data, \"right\");\r\n }}\r\n className=\"add-child-btn\"\r\n >\r\n \r\n \r\n \r\n }\r\n\r\n {!node?.dragging && !copyAsImage && (\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 \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 \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 \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 \r\n \r\n \r\n )}\r\n \r\n\r\n );\r\n};\r\n\r\nexport default memo(OrgChartNode, (prevProps, nextProps) => {\r\n return (\r\n prevProps.data.globalDragging && nextProps.data.globalDragging\r\n );\r\n});\r\n","import { findMinMaxHorizontalAbsolutePositions } from \"../../../../CommanFunctions/commanFunctions\";\r\nimport { createVerticalTreeLayout } from \"../../../../Utils/hooks/createHieararchy\";\r\n\r\nexport const getHierarchyDepthAndMaxNodes = (nodes) => {\r\n const levelMap = new Map(); // Store the level for each node\r\n let maxDepth = 0;\r\n let levelCounts = {}; // Count nodes at each level\r\n let maxNodesAtLevel = 0;\r\n\r\n // Find the root node (parentNode is null)\r\n const rootNode = nodes.find((node) => !node?.parentNode);\r\n if (!rootNode) return { maxDepth: 0, maxNodesAtLevel: 0 };\r\n\r\n const queue = [{ node: rootNode, level: 1 }];\r\n\r\n while (queue.length) {\r\n const { node, level } = queue.shift();\r\n\r\n maxDepth = Math.max(maxDepth, level);\r\n levelCounts[level] = (levelCounts[level] || 0) + 1;\r\n maxNodesAtLevel = Math.max(maxNodesAtLevel, levelCounts[level]);\r\n\r\n // Find children and push them into the queue\r\n nodes\r\n .filter((n) => n?.parentNode === node.id)\r\n .forEach((child) => queue.push({ node: child, level: level + 1 }));\r\n }\r\n\r\n return { maxDepth, maxNodesAtLevel };\r\n};\r\n\r\n\r\nexport function adjustNodePositions(nodes, frameNode) {\r\n function adjustChildrenPositions(parentNode) {\r\n const childNodes = nodes.filter((node) => node.parentNode === parentNode.id);\r\n\r\n // Adjust the position of each child node relative to its parent\r\n childNodes.forEach((childNode) => {\r\n // Initialize positionAbsolute if it doesn't exist\r\n if (!childNode.positionAbsolute) {\r\n childNode.positionAbsolute = { x: 0, y: 0 };\r\n }\r\n\r\n // Make sure parent has positionAbsolute\r\n if (!parentNode.positionAbsolute) {\r\n parentNode.positionAbsolute = { x: 0, y: 0 };\r\n }\r\n\r\n // Calculate absolute position based on parent's absolute position and child's relative position\r\n childNode.positionAbsolute = {\r\n x: parentNode.positionAbsolute.x + (childNode.position?.x || 0),\r\n y: parentNode.positionAbsolute.y + (childNode.position?.y || 0),\r\n };\r\n\r\n // Recursively adjust the position of subchildren\r\n adjustChildrenPositions(childNode);\r\n });\r\n }\r\n\r\n // Step 1: Find all root level nodes (nodes directly under frameNode)\r\n const rootNodes = nodes.filter((node) => node.parentNode === frameNode.id);\r\n\r\n if (rootNodes.length === 0) {\r\n console.error('No root nodes found');\r\n return nodes;\r\n }\r\n\r\n // Step 2: Initialize frameNode positionAbsolute if it doesn't exist\r\n if (!frameNode.positionAbsolute) {\r\n frameNode.positionAbsolute = { x: 0, y: 0 };\r\n }\r\n\r\n // Step 3: Process each root node\r\n rootNodes.forEach((rootNode) => {\r\n // Initialize positionAbsolute if it doesn't exist\r\n if (!rootNode.positionAbsolute) {\r\n rootNode.positionAbsolute = { x: 0, y: 0 };\r\n }\r\n\r\n // Set root node's absolute position relative to frameNode\r\n rootNode.positionAbsolute = {\r\n x: (rootNode.position?.x || 0) + frameNode.positionAbsolute.x,\r\n y: (rootNode.position?.y || 0) + frameNode.positionAbsolute.y\r\n };\r\n\r\n // Process all children of this root node\r\n adjustChildrenPositions(rootNode);\r\n });\r\n\r\n return nodes;\r\n}\r\n\r\nexport const processOrgChartFrames = (nodes) => {\r\n let updatedNodes = [...nodes];\r\n\r\n // Find all frames with `isOrgChart` set to `true`\r\n const orgChartFrames = updatedNodes.filter(\r\n (node) => node.type === \"frame\" && node.data?.isOrgChartFrame\r\n );\r\n\r\n orgChartFrames.forEach((frameNode) => {\r\n // Find all `orgChart` children of the current frame\r\n const orgChartChildren = updatedNodes.filter(\r\n (n) => n.type === \"orgChart\" && n.data.rootFrameId === frameNode.id\r\n );\r\n\r\n if (orgChartChildren.length === 0) return; // Skip if no orgChart children\r\n\r\n // Step 1: Create the vertical tree layout for the current frame's orgChart nodes\r\n const layoutResult = createVerticalTreeLayout(\r\n [frameNode, ...orgChartChildren],\r\n frameNode.id\r\n );\r\n\r\n // Step 2: Update positions of nodes in the layout result\r\n updatedNodes = updatedNodes.map((n) => {\r\n const matchingNode = layoutResult.nodes.find(\r\n (resNode) => resNode.id === n.id\r\n );\r\n return matchingNode ? { ...n, ...matchingNode } : n;\r\n });\r\n\r\n // Step 3: Get the bounding box for the orgChart children\r\n let allChartNode = layoutResult.nodes.filter(\r\n (nd) => nd.type === \"orgChart\" && nd.data.rootFrameId === frameNode.id\r\n );\r\n adjustNodePositions(allChartNode, frameNode);\r\n\r\n const boundingBox = findMinMaxHorizontalAbsolutePositions(allChartNode);\r\n const nodesOnMaxY = allChartNode.filter((node) => node.positionAbsolute.y === boundingBox.maxY);\r\n const nodesOnMaxX = allChartNode.filter((node) => node.positionAbsolute.x === boundingBox.maxX);\r\n\r\n const nodeWithMaxHeightOnY = nodesOnMaxY.reduce((maxNode, currentNode) => {\r\n return currentNode.height > (maxNode?.height || 0) ? currentNode : maxNode;\r\n }, null);\r\n\r\n const nodeWithMaxWidthOnX = nodesOnMaxX.reduce((maxNode, currentNode) => {\r\n return currentNode.width > (maxNode?.width || 0) ? currentNode : maxNode;\r\n }, null);\r\n\r\n // Step 4: Update dimensions and positions for frame and child nodes\r\n updatedNodes = updatedNodes.map((nd) => {\r\n // Update the frame size based on bounding box\r\n if (nd.id === frameNode.id) {\r\n return {\r\n ...nd,\r\n style: {\r\n height: boundingBox.maxY - boundingBox.minY + (nodeWithMaxHeightOnY?.height ? (nodeWithMaxHeightOnY.height + 70) : 250),\r\n width: boundingBox.maxX - boundingBox.minX + (nodeWithMaxWidthOnX?.width ? (nodeWithMaxWidthOnX.width + 70) : 270),\r\n }\r\n };\r\n }\r\n // Update the position for orgChart child nodes within the frame\r\n if (nd.type === \"orgChart\" && nd.parentNode === frameNode.id) {\r\n return {\r\n ...nd,\r\n position: {\r\n x: nd.positionAbsolute.x - boundingBox.minX + 35,\r\n y: 40\r\n }\r\n };\r\n }\r\n return nd;\r\n });\r\n });\r\n\r\n return updatedNodes;\r\n};","import React, { memo, useEffect, useMemo, useRef, useState } from \"react\";\r\nimport {\r\n Handle,\r\n NodeResizeControl,\r\n NodeToolbar,\r\n Position,\r\n useReactFlow,\r\n useStoreApi,\r\n} from \"reactflow\";\r\nimport { Box, IconButton, Tooltip, Typography } 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 { useUndoRedo } from \"../../dndUndoRedo/UndoRedoProvider\";\r\nimport useNodeSelectionStarted from \"../../../../Utils/hooks/useNodeSelectionStarted\";\r\nimport { color } from \"../../../../Utils/style/color/color\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nconst PeopleDraggingNode = (node) => {\r\n const [showDotVotingMoreOptions, setShowDotVotingMoreOptions] =\r\n useState(false);\r\n const [fontSize, setFontSize] = useState(node?.data?.fontSize || 16);\r\n\r\n const { getNodes, setNodes, getIntersectingNodes, getNode, getViewport } =\r\n useReactFlow();\r\n const nodeNW = getNode(node?.id);\r\n const { zoom } = getViewport();\r\n\r\n const DEFAULT_WIDTH = 50;\r\n const DEFAULT_HEIGHT = 50;\r\n const DEFAULT_FONT_SIZE = 20;\r\n\r\n useEffect(() => {\r\n if (nodeNW?.width && nodeNW?.height) {\r\n const scaleFactor = Math.min(\r\n nodeNW.width / DEFAULT_WIDTH,\r\n nodeNW.height / DEFAULT_HEIGHT\r\n );\r\n const calculatedFontSize = Math.max(12, DEFAULT_FONT_SIZE * scaleFactor);\r\n\r\n setFontSize(calculatedFontSize);\r\n }\r\n }, [nodeNW?.width, nodeNW?.height]);\r\n const sizeAsPerZoom =\r\n (nodeNW?.width > nodeNW?.height ? nodeNW?.width : nodeNW?.height) * zoom ||\r\n 100;\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 const [zoomPercentages] = useState(100);\r\n const [hoveredItem, setHoveredItem] = useState(\"\");\r\n const [showDots, setShowDots] = useState(false);\r\n const { isNodeSelectionStarted } = useNodeSelectionStarted({\r\n selected: node?.selected,\r\n });\r\n const isNodeSelected = getNodes().filter(\r\n (nd) => nd.id === node.id && node.selected === true\r\n );\r\n useEffect(() => {\r\n if (!node?.selected) {\r\n setShowDotVotingMoreOptions(false);\r\n }\r\n }, [node?.selected]);\r\n const frameMoreOptionsRef = useRef(null);\r\n\r\n const isWidthLessthan25 = useMemo(\r\n () => 12.5 < zoomPercentages && zoomPercentages <= 25,\r\n [zoomPercentages]\r\n );\r\n const selectedNodes = getNodes()?.filter(\r\n (val) => val?.selected && !val?.type === \"comment\"\r\n )?.length;\r\n const { showExport, copyAsImage, isDownload, permission } = useSelector(\r\n (state) => state?.mindMapStore\r\n );\r\n const isMultiNodeSelected = useMemo(() => {\r\n return selectedNodes > 1;\r\n }, [selectedNodes]);\r\n const isWidthLessthan50 = useMemo(\r\n () => 25 < zoomPercentages && zoomPercentages <= 50,\r\n [zoomPercentages]\r\n );\r\n const store = useStoreApi();\r\n\r\n const isWidthLessthan100 = useMemo(\r\n () => 50 < zoomPercentages && zoomPercentages <= 100,\r\n [zoomPercentages]\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 const isOnlyOneNodeSelected =\r\n getNodes().filter((n) => n.selected).length === 1;\r\n const mainDivRef = useRef(null);\r\n const onResizeEnd = (event, node) => {\r\n let updatedNodes = [];\r\n const updatedNode = [];\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n setNodes((nds) =>\r\n nds.map((n) => {\r\n if (n?.id === node?.id) {\r\n return {\r\n ...n,\r\n width: event.x,\r\n height: event.y,\r\n\r\n data: {\r\n ...n.data,\r\n width: event.x,\r\n height: event.y,\r\n dataWidth: event.x,\r\n dataHeight: event.y,\r\n },\r\n style: {\r\n width: event.x,\r\n height: event.y,\r\n },\r\n };\r\n }\r\n return n;\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 // Update the resized node\r\n updatedNodes = prev?.map((_) => {\r\n if (_?.id === node?.id) {\r\n _ = JSON.parse(JSON.stringify(_));\r\n _.style.width = Number(mainDivRef.current.offsetWidth || 0);\r\n _.style.height = Number(mainDivRef.current.offsetHeight || 0);\r\n _.data.dataWidth = Number(mainDivRef.current.offsetWidth || 0);\r\n _.data.dataHeight = Number(mainDivRef.current.offsetHeight || 0);\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 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 // node drop in in same Group\r\n return n; // do nothing but do not delete\r\n } else if (\r\n intersections.length &&\r\n node?.parentNode !== groupNode?.id &&\r\n !node?.parentNode\r\n ) {\r\n /**.NODE DROP IN GROUP*/\r\n if (n.id === groupNode.id) {\r\n updatedNode.push({\r\n ...n,\r\n className: \"\",\r\n });\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 updatedNode.push({\r\n ...n,\r\n position,\r\n parentNode: groupNode.id,\r\n // extent: 'parent',\r\n });\r\n return {\r\n ...n,\r\n position,\r\n parentNode: groupNode.id,\r\n // extent: 'parent',\r\n };\r\n } else return n;\r\n } else if (\r\n // node.type !== \"group\" &&\r\n node?.parentNode &&\r\n node?.parentNode !== groupNode?.id &&\r\n !groupNode\r\n ) {\r\n /** NODE DROP OUTSIDE */\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 let tempNode = {\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 updatedNode.push(tempNode);\r\n return tempNode;\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.type !== \"group\" &&\r\n node?.parentNode &&\r\n node?.parentNode !== groupNode?.id &&\r\n groupNode\r\n ) {\r\n /** NODE DIRECTLY DROP IN TO ONE GROUP TO ANOTHER GROUP*/\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 updatedNode.push(n);\r\n return n;\r\n } else return n;\r\n } else {\r\n if (n?.type === \"group\") {\r\n // n.dragging = false;\r\n }\r\n return n; // DO NOTHING\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 },\r\n },\r\n id,\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 }, [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 canvasRef = useRef(null);\r\n const convertToBase64 = async (imageUrl) => {\r\n try {\r\n if (!imageUrl) {\r\n console.warn(\"Please enter a valid image URL!\");\r\n return null;\r\n }\r\n\r\n return await new Promise((resolve, reject) => {\r\n const img = new Image();\r\n img.crossOrigin = \"anonymous\";\r\n img.src = imageUrl;\r\n\r\n img.onload = () => {\r\n try {\r\n const canvas = document.createElement(\"canvas\");\r\n const ctx = canvas.getContext(\"2d\");\r\n canvas.width = img.width;\r\n canvas.height = img.height;\r\n ctx.drawImage(img, 0, 0);\r\n\r\n // Convert canvas to Base64\r\n const base64String = canvas.toDataURL(\"image/png\");\r\n\r\n resolve(base64String);\r\n } catch (error) {\r\n console.error(\"Base64 conversion failed:\", error);\r\n resolve(null); // Continue execution by resolving with null\r\n }\r\n };\r\n\r\n img.onerror = (error) => {\r\n console.warn(\"Failed to load image. Please check the URL.\", error);\r\n resolve(null); // Continue execution by resolving with null\r\n };\r\n });\r\n } catch (error) {\r\n console.error(\"Unexpected error in convertToBase64:\", error);\r\n return null;\r\n }\r\n };\r\n // useEffect(() => {\r\n // const fetchBase64Image = async () => {\r\n // if (!node?.data?.value?.profile_picture) return;\r\n // };\r\n\r\n // fetchBase64Image();\r\n // }, [node?.data?.value?.profile_picture]);\r\n\r\n return (\r\n \r\n {sizeAsPerZoom > 25 &&\r\n !node?.dragging &&\r\n // !isMultiNodeSelected &&\r\n !isNodeSelectionStarted &&\r\n node?.selected &&\r\n !copyAsImage &&\r\n !node.data?.locked && (\r\n <>\r\n onResizeEnd(e, node)}\r\n // maxWidth={150}\r\n // maxHeight={150}\r\n minWidth={30}\r\n minHeight={30}\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 // maxWidth={150}\r\n // maxHeight={150}\r\n minWidth={30}\r\n minHeight={30}\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 // maxWidth={150}\r\n // maxHeight={150}\r\n minWidth={30}\r\n minHeight={30}\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 &&\r\n // !isMultiNodeSelected &&\r\n !isNodeSelectionStarted &&\r\n node?.selected &&\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 || isOnlyOneNodeSelected) && (\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 || isOnlyOneNodeSelected) && (\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 || isOnlyOneNodeSelected) && (\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 || isOnlyOneNodeSelected) && (\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 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 {node?.data?.value?.profile_picture ? (\r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n {node?.data?.value?.first_name[0]?.toUpperCase()}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default memo(PeopleDraggingNode, (prevProps, nextProps) => {\r\n return prevProps.data.globalDragging && nextProps.data.globalDragging;\r\n});\r\n","import { Box, SvgIcon, Typography } from \"@mui/material\";\r\nimport React, { useEffect, useRef, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useReactFlow } from \"reactflow\";\r\n\r\nexport const PeopleNodeDragPreview = ({\r\n name = \"PeopleNode\",\r\n id,\r\n children,\r\n onDragStart,\r\n nodeId,\r\n val,\r\n}) => {\r\n // const { peopleNodeDragData } = useSelector((state) => state.mindMapStore);\r\n // const [mousePosition, setMousePosition] = useState(null);\r\n\r\n // const selectedPeopleNode = storyPointIcons.filter(\r\n // (sp) => sp.id === peopleNodeDragData.peopleId\r\n // );\r\n\r\n // useEffect(() => {\r\n // const handlePeopleNodeMouseMove = (e) => {\r\n // setMousePosition({\r\n // x: e.detail.pageX,\r\n // y: e.detail.pageY,\r\n // });\r\n // };\r\n\r\n // if (!peopleNodeDragData.isDragging) {\r\n // setMousePosition(null);\r\n // }\r\n\r\n // if (peopleNodeDragData.isDragging) {\r\n // document.addEventListener(\r\n // \"peopleNodeMouseMove\",\r\n // handlePeopleNodeMouseMove\r\n // );\r\n // } else {\r\n // document.removeEventListener(\r\n // \"peopleNodeMouseMove\",\r\n // handlePeopleNodeMouseMove\r\n // );\r\n // }\r\n // return () => {\r\n // document.removeEventListener(\r\n // \"peopleNodeMouseMove\",\r\n // handlePeopleNodeMouseMove\r\n // );\r\n // };\r\n // }, [peopleNodeDragData.isDragging]);\r\n\r\n const { screenToFlowPosition, getNode, getZoom } = useReactFlow();\r\n const [isDragging, setIsDragging] = useState(false);\r\n const [dragPosition, setDragPosition] = useState({ x: 0, y: 0 });\r\n const [itemPosition, setItemPosition] = useState({ x: 0, y: 0 });\r\n const { boardRef } = useSelector((e) => e?.drawboard);\r\n const currNode = getNode(nodeId);\r\n const draggableRef = useRef(null);\r\n const zoom = getZoom();\r\n\r\n const handleDragStart = (e) => {\r\n const updatedObject = {\r\n type: \"PeopleNode\",\r\n key: \"PeopleNode\",\r\n data: {\r\n value: val,\r\n height: draggableRef.current.clientHeight,\r\n width: draggableRef.current.clientHeight,\r\n },\r\n };\r\n e.dataTransfer.setData(\"text/plain\", \"PeopleNode\");\r\n\r\n e.dataTransfer.setData(\"data/file\", JSON.stringify(updatedObject ?? {}));\r\n e.stopPropagation();\r\n\r\n const { clientX, clientY } = e;\r\n const containerRect = boardRef?.getBoundingClientRect();\r\n const itemRect = draggableRef?.current?.getBoundingClientRect();\r\n\r\n // Calculate item position first (before using it)\r\n const newItemPosition = {\r\n x: clientX - itemRect.left,\r\n y: clientY - itemRect.top,\r\n };\r\n setItemPosition(newItemPosition);\r\n\r\n // Create a proper transparent image for drag\r\n const img = document.createElement(\"img\");\r\n img.src =\r\n \"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\";\r\n e.dataTransfer.setDragImage(img, 0, 0);\r\n\r\n // Safari requires text/plain data type\r\n e.dataTransfer.setData(\"text/plain\", id);\r\n\r\n // Now use newItemPosition instead of itemPosition from state\r\n\r\n const x = clientX - containerRect.left;\r\n const y = clientY - containerRect.top;\r\n const projectedPosition = screenToFlowPosition({ x, y });\r\n\r\n setDragPosition({\r\n x: projectedPosition.x,\r\n y: projectedPosition.y,\r\n });\r\n\r\n setIsDragging(true);\r\n onDragStart(e, id, \"item\");\r\n };\r\n\r\n const handleDrag = (e) => {\r\n if (isDragging && boardRef) {\r\n const { clientX, clientY } = e;\r\n const containerRect = boardRef.getBoundingClientRect();\r\n const x = clientX - containerRect.left;\r\n const y = clientY - containerRect.top;\r\n const projectedPosition = screenToFlowPosition({ x, y });\r\n\r\n setDragPosition({\r\n x: projectedPosition.x,\r\n y: projectedPosition.y,\r\n });\r\n }\r\n };\r\n\r\n const handleDragEnd = (e) => {\r\n if (isDragging) {\r\n setIsDragging(false);\r\n setDragPosition({ x: 0, y: 0 });\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {\r\n const isColorPickerOpen =\r\n document.getElementsByClassName(\"bg-color-tool\");\r\n if (isColorPickerOpen.length === 0) {\r\n e.stopPropagation();\r\n }\r\n }}\r\n onDragStart={handleDragStart}\r\n onDrag={handleDrag}\r\n onDragEnd={handleDragEnd}\r\n style={{\r\n cursor: isDragging ? \"grabbing\" : \"grab\",\r\n userSelect: \"none\",\r\n }}\r\n >\r\n {children}\r\n \r\n\r\n {isDragging && (\r\n \r\n {val?.profile_picture ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n {val?.first_name[0]?.toUpperCase()}\r\n \r\n \r\n )}\r\n \r\n )}\r\n {/* {peopleNodeDragData.isDragging && (\r\n \r\n {selectedPeopleNode.length > 0 && (\r\n \r\n )}\r\n \r\n )} */}\r\n \r\n );\r\n};\r\n\r\nexport default PeopleNodeDragPreview;\r\n","import {\r\n Box,\r\n CircularProgress,\r\n IconButton,\r\n Stack,\r\n TextField,\r\n Typography,\r\n} from \"@mui/material\";\r\nimport IcPin from \"../../../../assets/icon-components/IcPin\";\r\nimport IcNoRecord from \"../../../../assets/icon-components/IcNoRecord\";\r\nimport React, {\r\n memo,\r\n useEffect,\r\n useMemo,\r\n useRef,\r\n useState,\r\n useCallback,\r\n} from \"react\";\r\nimport {\r\n IcLockLocked,\r\n IcLockUnLocked,\r\n IcMenuDotsVertical,\r\n IcSerch,\r\n} from \"../../../../assets/icon-components\";\r\nimport commanService from \"../../../../CommanFunctions/commanService\";\r\nimport {\r\n Handle,\r\n NodeResizeControl,\r\n NodeResizer,\r\n NodeToolbar,\r\n Position,\r\n useReactFlow,\r\n useStoreApi,\r\n useViewport,\r\n} from \"reactflow\";\r\nimport { useLocation, useParams } from \"react-router-dom\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { getNodePositionInsideParent } from \"../../../../Utils/grouping-utils\";\r\nimport { updateJson } from \"../../../../CommanFunctions/commanFunctions\";\r\nimport { useSelector } from \"react-redux\";\r\nimport FrameMoreMenus from \"../../../Node/frameNode/FrameMoreMenus\";\r\nimport {\r\n CustomNameTooltip,\r\n CustomTooltip,\r\n} from \"../../top-toolbar/components/CustomTooltip\";\r\nimport { useUndoRedo } from \"../../dndUndoRedo/UndoRedoProvider\";\r\nimport { updateIsPeopleDragClicked } from \"../../../../Redux/mindMapSlice\";\r\nimport useNodeSelectionStarted from \"../../../../Utils/hooks/useNodeSelectionStarted\";\r\nimport { color } from \"../../../../Utils/style/color/color\";\r\nimport CommonDivider from \"../../../../common-components/CommonDivider\";\r\nimport PeopleNodeDragPreview from \"./PeopleNodeDragPreview\";\r\n\r\nconst PeopleNode = (node) => {\r\n const location = useLocation();\r\n const { getNodes, setNodes, getIntersectingNodes, getNode } = useReactFlow();\r\n const [zoomPercentages] = useState(100);\r\n const [data, setData] = useState();\r\n\r\n const [hoveredItem, setHoveredItem] = useState(\"\");\r\n const [showDots, setShowDots] = useState(false);\r\n const { undo, takeSnapshot } = useUndoRedo();\r\n const { id } = useParams();\r\n const store = useStoreApi();\r\n const [searchValue, setSearchValue] = useState({ name: \"\" });\r\n const { isNodeSelectionStarted } = useNodeSelectionStarted({\r\n selected: node?.selected,\r\n });\r\n const { copyAsImage } = useSelector((state) => state?.mindMapStore);\r\n const isOnlyOneNodeSelected =\r\n getNodes().filter((n) => n.selected).length === 1;\r\n const [showLinkMoreOptions, setShowLinkMoreOptions] = useState(false);\r\n const [loading, setLoading] = useState(!node?.data?.allRecord ? true : false);\r\n const architectureData = useSelector(\r\n (data) => data?.archBoard?.architectureRes\r\n );\r\n const dragImageRef = useRef(null);\r\n const draggedItem = useRef(null);\r\n const handlePinClick = (userId, index) => {\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 setSearchValue({ name: \"\" });\r\n setNodes((nodes) => {\r\n updatedNodes = nodes.map((nd) => {\r\n if (nd.id === node.id) {\r\n return {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n allRecord: nd.data.allRecord.map((container1) => {\r\n if (container1.email_id === userId) {\r\n return {\r\n ...container1,\r\n pin: !container1?.pin || false,\r\n };\r\n }\r\n return container1;\r\n }),\r\n },\r\n };\r\n }\r\n return nd;\r\n });\r\n\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n lastUpdatedBy: parsedData?.user_id,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\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 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 calculatedWidth = 100;\r\n const calculatedHeight = 100;\r\n const handleDragStart = (e, id) => {\r\n draggedItem.current = { id };\r\n };\r\n\r\n // const handleDragStart = (event, val) => {\r\n // setData(val);\r\n // const updatedObject = {\r\n // type: \"PeopleNode\",\r\n // key: \"PeopleNode\",\r\n // data: {\r\n // value: val,\r\n // },\r\n // };\r\n\r\n // // Safari requires text/plain data type\r\n // event.dataTransfer.setData(\"text/plain\", \"PeopleNode\");\r\n\r\n // event.dataTransfer.setData(\r\n // \"data/file\",\r\n // JSON.stringify(updatedObject ?? {})\r\n // );\r\n // event.dataTransfer.effectAllowed = \"move\";\r\n // if (dragImageRef.current) {\r\n // const xPos = calculatedWidth / 2;\r\n // const yPos = calculatedHeight / 2;\r\n // dragImageRef.current.style.visibility = \"visible\";\r\n // event.dataTransfer.setDragImage(dragImageRef.current, xPos, yPos);\r\n // }\r\n // dispatch(updateIsPeopleDragClicked({ clicked: false }));\r\n // };\r\n useEffect(() => {\r\n if (dragImageRef.current) {\r\n dragImageRef.current.style.visibility = \"hidden\";\r\n }\r\n }, []);\r\n useEffect(() => {\r\n if (!node?.selected) {\r\n setShowLinkMoreOptions(false);\r\n }\r\n }, [node?.selected]);\r\n const onDragEnd = () => {\r\n if (dragImageRef.current) {\r\n dragImageRef.current.style.visibility = \"hidden\";\r\n setData(\"\");\r\n }\r\n };\r\n\r\n const mainDivRef = useRef(null);\r\n\r\n const nodeWH = getNode(node?.id);\r\n const { zoom } = useViewport();\r\n const sizeAsPerZoom =\r\n (nodeWH?.width > nodeWH?.height ? nodeWH?.width : nodeWH?.height) * zoom ||\r\n 100;\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 onResizeEnd = (event, node) => {\r\n setNodes((nds) =>\r\n nds.map((n) => {\r\n if (n?.id === node?.id) {\r\n return {\r\n ...n,\r\n width: event.x,\r\n height: event.y,\r\n\r\n data: {\r\n ...n.data,\r\n\r\n width: event.x,\r\n height: event.y,\r\n },\r\n style: {\r\n width: event.x,\r\n height: event.y,\r\n },\r\n };\r\n }\r\n return n;\r\n })\r\n );\r\n\r\n let updatedNodes = [];\r\n const updatedNode = [];\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 // Update the resized node\r\n updatedNodes = prev?.map((_) => {\r\n if (_?.id === node?.id) {\r\n _ = JSON.parse(JSON.stringify(_));\r\n _.style.width = Number(mainDivRef.current.offsetWidth || 0);\r\n _.style.height = Number(mainDivRef.current.offsetHeight || 0);\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 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 // node drop in in same Group\r\n return n; // do nothing but do not delete\r\n } else if (\r\n intersections.length &&\r\n node?.parentNode !== groupNode?.id &&\r\n !node?.parentNode\r\n ) {\r\n /**.NODE DROP IN GROUP*/\r\n if (n.id === groupNode.id) {\r\n updatedNode.push({\r\n ...n,\r\n className: \"\",\r\n });\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 updatedNode.push({\r\n ...n,\r\n position,\r\n parentNode: groupNode.id,\r\n // extent: 'parent',\r\n });\r\n return {\r\n ...n,\r\n position,\r\n parentNode: groupNode.id,\r\n // extent: 'parent',\r\n };\r\n } else return n;\r\n } else if (\r\n // node.type !== \"group\" &&\r\n node?.parentNode &&\r\n node?.parentNode !== groupNode?.id &&\r\n !groupNode\r\n ) {\r\n /** NODE DROP OUTSIDE */\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 let tempNode = {\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 updatedNode.push(tempNode);\r\n return tempNode;\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.type !== \"group\" &&\r\n node?.parentNode &&\r\n node?.parentNode !== groupNode?.id &&\r\n groupNode\r\n ) {\r\n /** NODE DIRECTLY DROP IN TO ONE GROUP TO ANOTHER GROUP*/\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 updatedNode.push(n);\r\n return n;\r\n } else return n;\r\n } else {\r\n if (n?.type === \"group\") {\r\n // n.dragging = false;\r\n }\r\n return n; // DO NOTHING\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 },\r\n },\r\n id,\r\n dispatch,\r\n undo,\r\n a_id,\r\n takeSnapshot,\r\n });\r\n };\r\n const [boardData, setBoardData] = useState(null);\r\n const user_data = localStorage.getItem(\"user_data\");\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 selectedNodes = getNodes()?.filter(\r\n (val) => val?.selected && !val?.type === \"comment\"\r\n )?.length;\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,\r\n dispatch,\r\n undo,\r\n takeSnapshot,\r\n a_id,\r\n });\r\n };\r\n\r\n const isMultiNodeSelected = useMemo(() => {\r\n return selectedNodes > 1;\r\n }, [selectedNodes]);\r\n\r\n // const getArchitectureById = useCallback(async () => {\r\n // try {\r\n // const search = new URLSearchParams(location.search);\r\n // const a_id = search.get(\"a_id\");\r\n // const response = await commanService.getApi(\r\n // \"drawboard/v1\",\r\n // `architectures/${location.pathname.replace(\"/cloudcollab/\", \"\")}${\r\n // a_id !== null && a_id !== undefined ? `?a_id=${a_id}` : \"\"\r\n // }`\r\n // );\r\n // const projectRes = a_id\r\n // ? \"\"\r\n // : await commanService.getApi(\r\n // \"drawboard/v1\",\r\n // `projects/${response.data.data.project_id}`\r\n // );\r\n // setBoardData({\r\n // ...response.data.data,\r\n // project_name: a_id ? \"\" : projectRes.data.data.project_name,\r\n // type: \"chart\",\r\n // });\r\n // } catch (error) {}\r\n // }, [location.pathname]);\r\n\r\n // useEffect(() => {\r\n // getArchitectureById();\r\n // }, []);\r\n\r\n async function handleArchitectureResponse() {\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n const projectRes = a_id\r\n ? \"\"\r\n : await commanService.getApi(\r\n \"drawboard/v1\",\r\n `projects/${architectureData?.project_id}`\r\n );\r\n setBoardData({\r\n ...architectureData,\r\n project_name: a_id ? \"\" : projectRes.data.data.project_name,\r\n type: \"chart\",\r\n // team_name: teamRes.data.data.teamInfo.team_name,\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n if (architectureData?.architecture_id) {\r\n handleArchitectureResponse();\r\n }\r\n }, [architectureData?.architecture_id]);\r\n const inputRef = useRef(null);\r\n\r\n useEffect(() => {\r\n getArchitectureMembers();\r\n }, [boardData]);\r\n\r\n const dispatch = useDispatch();\r\n const getArchitectureMembers = useCallback(async () => {\r\n const response = await commanService.getApi(\r\n \"drawboard/v1\",\r\n `architectures/members/${id}`\r\n );\r\n\r\n let updatedNodes = getNodes();\r\n let parsedData = {};\r\n\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n\r\n setNodes((nodes) => {\r\n updatedNodes = nodes.map((nd) => {\r\n if (nd.id === node.id) {\r\n const existingRecords = node?.data?.allRecord || [];\r\n const newRecords = response?.data?.data || [];\r\n\r\n // Find missing records (new users)\r\n const missingRecords = newRecords.filter(\r\n (newRecord) =>\r\n !existingRecords.some(\r\n (existingRecord) =>\r\n existingRecord.email_id === newRecord.email_id\r\n )\r\n );\r\n\r\n // Update profile_picture if changed\r\n const updatedRecords = existingRecords.map((existingRecord) => {\r\n const matchingNewRecord = newRecords.find(\r\n (newRecord) => newRecord.email_id === existingRecord.email_id\r\n );\r\n\r\n if (\r\n matchingNewRecord &&\r\n matchingNewRecord.profile_picture !==\r\n existingRecord.profile_picture\r\n ) {\r\n // If profile_picture is different, update it\r\n return {\r\n ...existingRecord,\r\n profile_picture: matchingNewRecord.profile_picture,\r\n };\r\n }\r\n return existingRecord;\r\n });\r\n\r\n return {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n allRecord: [...updatedRecords, ...missingRecords],\r\n },\r\n };\r\n }\r\n return nd;\r\n });\r\n\r\n setLoading(false);\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n lastUpdatedBy: parsedData?.user_id,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n\r\n return updatedNodes;\r\n });\r\n }, [boardData]);\r\n\r\n const frameMoreOptionsRef = useRef(null);\r\n const handleClickOutside = (event) => {\r\n if (mainDivRef.current && !mainDivRef.current.contains(event.target)) {\r\n inputRef.current?.blur();\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 filteredMembers =\r\n node?.data?.allRecord &&\r\n node?.data?.allRecord.filter((member) => {\r\n const fullName =\r\n `${member?.first_name} ${member?.last_name}`.toLowerCase();\r\n const email = member.email_id?.toLowerCase();\r\n return (\r\n fullName.includes(searchValue?.name?.toLowerCase()) ||\r\n (email && email.includes(searchValue?.name.toLowerCase()))\r\n );\r\n });\r\n\r\n return (\r\n <>\r\n \r\n {sizeAsPerZoom > 25 &&\r\n !node?.dragging &&\r\n !isMultiNodeSelected &&\r\n !isNodeSelectionStarted &&\r\n node?.selected &&\r\n !copyAsImage &&\r\n !node?.data?.data?.locked && (\r\n <>\r\n onResizeEnd(e, node)}\r\n />\r\n onResizeEnd(e, node)}\r\n minWidth={350}\r\n maxWidth={500}\r\n minHeight={579}\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 minWidth={350}\r\n maxWidth={500}\r\n minHeight={579}\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 minWidth={350}\r\n maxWidth={500}\r\n minHeight={579}\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 \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 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 setShowLinkMoreOptions(!showLinkMoreOptions)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!node?.dragging &&\r\n !isMultiNodeSelected &&\r\n !isNodeSelectionStarted &&\r\n node?.selected &&\r\n !copyAsImage &&\r\n !node?.data?.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 || isOnlyOneNodeSelected) && (\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 || isOnlyOneNodeSelected) && (\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 || isOnlyOneNodeSelected) && (\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 || isOnlyOneNodeSelected) && (\r\n \r\n )}\r\n \r\n \r\n )}\r\n\r\n {loading && (\r\n \r\n \r\n \r\n )}\r\n People\r\n e.stopPropagation()}\r\n onChange={(e) => {\r\n setSearchValue((prev) => ({\r\n ...prev,\r\n name: e.target.value,\r\n }));\r\n }}\r\n autoFocus\r\n onBlur={() => inputRef.current?.blur()}\r\n InputProps={{\r\n startAdornment: (\r\n \r\n \r\n \r\n ),\r\n }}\r\n sx={{\r\n \"& .MuiOutlinedInput-root\": {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n\r\n padding: \"1px\",\r\n borderRadius: \"8px\",\r\n \"&:hover fieldset\": {\r\n border: \"1px solid #EEEEEE\",\r\n },\r\n \"&.Mui-focused fieldset\": {\r\n border: `1.5px solid ${color?.primaryColor}`,\r\n boxShadow: \"0 0 0 3px rgba(0, 122, 255, 0.2)\",\r\n },\r\n },\r\n \"& .MuiInputBase-input::placeholder\": {\r\n color: \"#959BA3\",\r\n opacity: \"1\",\r\n },\r\n \"& .MuiInputBase-input\": {\r\n width: \"100%\",\r\n border: \"none\",\r\n padding: \"8px\",\r\n lineHeight: \"20px\",\r\n fontSize: !copyAsImage ? \"12px\" : \"auto\",\r\n cursor: \"pointer\",\r\n fontWeight: \"400\",\r\n },\r\n }}\r\n />\r\n\r\n {!searchValue?.name && (\r\n \r\n {node?.data?.allRecord &&\r\n node?.data?.allRecord.length > 0 &&\r\n node?.data?.allRecord?.filter((val) => val?.pin).length > 0 && (\r\n \r\n {\" \"}\r\n \r\n Pinned\r\n \r\n \r\n {node?.data?.allRecord\r\n ?.filter((val) => val?.pin)\r\n ?.map((user, i) => (\r\n \r\n \r\n e.stopPropagation()}\r\n draggable={true}\r\n // onDragStart={(e) => handleDragStart(e, user)}\r\n sx={{\r\n borderRadius: \"8px\",\r\n transition: \"all 0.3s ease\",\r\n cursor: \"pointer\",\r\n \"&:hover\": {\r\n bgcolor: \"#F5F5F5\",\r\n },\r\n \"&:hover .iconButton\": {\r\n opacity: 1,\r\n color: \"blue\",\r\n },\r\n }}\r\n >\r\n \r\n {user?.profile_picture ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n {user?.first_name[0]?.toUpperCase()}\r\n \r\n \r\n )}\r\n\r\n \r\n \r\n {user?.first_name +\r\n (user?.last_name\r\n ? \" \" + user.last_name\r\n : \"\")}\r\n \r\n \r\n {user?.email_id}\r\n \r\n \r\n \r\n \r\n handlePinClick(user?.email_id, false)\r\n }\r\n className=\"iconButton\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n {/* {node?.data?.allRecord\r\n ?.filter((val) => val?.pin)\r\n ?.map((user, i) => (\r\n \r\n e.stopPropagation()}\r\n draggable={true}\r\n onDragStart={(e) => handleDragStart(e, user)}\r\n sx={{\r\n borderRadius: \"8px\",\r\n transition: \"all 0.3s ease\",\r\n cursor: \"pointer\",\r\n \"&:hover\": {\r\n bgcolor: \"#F5F5F5\",\r\n },\r\n \"&:hover .iconButton\": {\r\n opacity: 1,\r\n color: \"blue\",\r\n },\r\n }}\r\n >\r\n \r\n {user?.profile_picture ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n {user?.first_name[0]?.toUpperCase()}\r\n \r\n \r\n )}\r\n\r\n \r\n \r\n {user?.first_name +\r\n (user?.last_name\r\n ? \" \" + user.last_name\r\n : \"\")}\r\n \r\n \r\n {user?.email_id}\r\n \r\n \r\n \r\n \r\n handlePinClick(user?.email_id, false)\r\n }\r\n className=\"iconButton\"\r\n >\r\n \r\n \r\n \r\n \r\n ))} */}\r\n \r\n \r\n )}\r\n {node?.data?.allRecord &&\r\n node?.data?.allRecord.length > 0 &&\r\n node?.data?.allRecord?.filter((val) => !val?.pin).length >\r\n 0 && (\r\n \r\n Online\r\n \r\n )}\r\n {node?.data?.allRecord && node?.data?.allRecord.length > 0\r\n ? node?.data?.allRecord\r\n ?.filter((val) => !val?.pin)\r\n .map((user, i) => (\r\n \r\n \r\n e.stopPropagation()}\r\n draggable={true}\r\n // onDragStart={(e) => handleDragStart(e, user)}\r\n >\r\n \r\n {user?.profile_picture ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n {user?.first_name[0]?.toUpperCase()}\r\n \r\n \r\n )}\r\n\r\n \r\n \r\n {user?.first_name +\r\n (user?.last_name\r\n ? \" \" + user.last_name\r\n : \"\")}\r\n \r\n \r\n {user?.email_id}\r\n \r\n \r\n \r\n \r\n handlePinClick(user?.email_id, true)\r\n }\r\n className=\"iconButton\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n ))\r\n : []}\r\n \r\n )}\r\n\r\n {searchValue?.name && (\r\n \r\n {\" \"}\r\n {filteredMembers.length > 0 ? (\r\n \r\n {\" \"}\r\n \r\n Result\r\n \r\n \r\n {filteredMembers?.map((user, i) => (\r\n \r\n \r\n e.stopPropagation()}\r\n draggable={true}\r\n // onDragStart={(e) => handleDragStart(e, user)}\r\n // onDragEnd={() => {\r\n // onDragEnd();\r\n // }}\r\n sx={{\r\n borderRadius: \"8px\",\r\n transition: \"all 0.3s ease\",\r\n cursor: \"pointer\",\r\n \"&:hover\": {\r\n bgcolor: \"#F5F5F5\",\r\n },\r\n \"&:hover .iconButton\": {\r\n opacity: 1,\r\n color: \"blue\",\r\n },\r\n }}\r\n >\r\n \r\n {user?.profile_picture ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n {user?.first_name[0]?.toUpperCase()}\r\n \r\n \r\n )}\r\n\r\n \r\n \r\n {user?.first_name +\r\n (user?.last_name\r\n ? \" \" + user.last_name\r\n : \"\")}\r\n \r\n \r\n {user?.email_id}\r\n \r\n \r\n \r\n \r\n handlePinClick(user?.email_id, false)\r\n }\r\n className=\"iconButton\"\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\n {data?.profile_picture ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n {data?.first_name?.[0]?.toUpperCase()}\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(PeopleNode, (prevProps, nextProps) => {\r\n return prevProps.data.globalDragging && nextProps.data.globalDragging;\r\n});\r\n"],"names":["_ref","node","nodeRef","user_data","localStorage","getItem","setNodes","getEdges","getNodes","getIntersectingNodes","getNode","useReactFlow","location","useLocation","undo","takeSnapshot","useUndoRedo","id","architectureId","useParams","dispatch","useDispatch","data","showColor","setShowColor","useState","anchorEl","setAnchorEl","React","showMoreOptions","setShowMoreOptions","setShowShapesLimitModal","copyImageLoading","setCopyImageLoading","copyAsImage","setCopyAsImage","useEffect","updateCopyAsImage","copy","paste","useCopyPaste","debouncedUpdateJson","useCallback","debounce","tempNodes","updatedEdges","_parsedData","parsedData","JSON","parse","a_id","URLSearchParams","search","get","updateJson","json","architecture_json","nodes","length","edges","lastUpdatedBy","user_id","handleToggleLock","updatedNodes","nds","map","nd","_nd$data","_objectSpread","lock","handleCheckboxToggle","option","newOptionValue","convertNodeToImage","async","removeItem","selectedNodeElement","document","querySelector","concat","applyComputedStyles","originalElement","clonedElement","computedStyles","window","getComputedStyle","key","style","getChildNodes","nodeId","children","filter","parentNode","reduce","acc","child","childElement","clonedChild","cloneNode","position","left","x","top","y","transform","forEach","nestedChild","appendChild","push","clonedSelectedNode","zIndex","body","html2canvas","useCORS","scale","backgroundColor","toBlob","blob","navigator","clipboard","write","ClipboardItem","Blob","type","currentNode","setItem","stringify","width","height","error","removeChild","successToast","message","handleBringToFront","interSectedNodes","maxZIndex","getMaxAndMinZIndex","prevNodes","handleSendToBack","minZIndex","handleClickDuplicate","_currNode$data","_parentFrame$position","_currNode$positionAbs","_parentFrame$position2","currNode","parentFrame","rootParentId","_ref2","rootFrameId","updatedData","_objectWithoutProperties","_excluded","duplicatedNode","getId","addChildButtonShow","positionAbsolute","moreMenusData","mainLabel","shortCut","onClick","setTimeout","locked","_parsedData2","_updatedNodes","removeOrphanedNodes","isOrgChartFrame","some","otherNode","processOrgChartFrames","should_delete","useKeyboardShortcut","_jsxs","NodeToolbar","Position","Top","Box","display","gap","p","sx","bgcolor","border","boxShadow","alignItems","borderRadius","_Fragment","_jsx","ClickAwayListener","onClickAway","CustomTooltip","PopperProps","disablePortal","onClose","open","disableFocusListener","disableHoverListener","disableTouchListener","title","BackgroundTool","selectedNodeColor","toRgba","cardColor","onChangeColor","color","handleColorChange","ToolTipWithDisabled","tooltipTitle","Stack","direction","justifyContent","background","CommonDivider","orientation","variant","flexItem","my","padding","CustomNameTooltip","arrow","IconButton","transition","event","currentTarget","IcSettingsOutlined","IcLockLocked","IcLockUnLocked","mt","moreMenu","mainIndex","py","i","activeState","cursor","disabled","opacity","Typography","fontSize","CircularProgress","size","rightArrowIcons","subChild","subCI","px","label","value","e","stopPropagation","IcMenuDotsVertical","fill","Popover","Boolean","anchorOrigin","vertical","horizontal","transformOrigin","BackdropProps","ml","flexDirection","showImage","IcCheckBox","IcCheckBoxOutlineBlank","showName","showRole","showTeam","showMail","showNumber","showLocation","OrgChartNode","_node$data","_node$data2","_node$data3","_node$data4","_node$data5","_node$data6","details","setDetails","name","email","phone","role","team","isNodeChanging","setIsNodeChanging","setEdges","hoveredItem","setHoveredItem","showDots","setShowDots","useRef","nodeSize","setNodeSize","connectionLinePath","useSelector","state","mindMapStore","isNodeSelectionStarted","useNodeSelectionStarted","selected","handleInputChange","imageUrl","file","target","files","URL","createObjectURL","prevState","_node$data7","_node$data8","_node$data9","_node$data10","_node$data11","_node$data12","image","updatedDetails","onAddChild","parentId","side","newNodeId","parentFrameNode","isRootParentNode","rootParentNodeId","afterNodeId","beforeNodeId","newNode","childNodeType","edgeAlgorithm","number","mail","draggable","newEdge","markerStart","markerEnd","isTreeView","animate","animationDirection","algorithm","isDashed","points","point","crypto","randomUUID","prev","undefined","active","sourceHandle","targetHandle","source","n","childrenOrder","edge","result","createVerticalTreeLayout","matchingNode","find","resNode","newNodes","allChartNode","adjustNodePositions","minX","maxX","minY","maxY","findMinMaxHorizontalAbsolutePositions","nodesOnMaxY","nodesOnMaxX","nodeWithMaxHeightOnY","maxNode","nodeWithMaxWidthOnX","sortNodesByHierarchy","updateTreeLayout","lastEvent","frameNode","addition","debouncedUpdateTreeLayout","nodeElement","current","isResizing","resizeObserver","ResizeObserver","entries","entry","newHeight","contentRect","newWidth","observe","unobserve","disconnect","getRootProps","getInputProps","useDropzone","accept","multiple","onDrop","reader","FileReader","readAsDataURL","onload","base64String","img","Image","src","onerror","console","className","ref","minHeight","minWidth","overflow","convertToRgba","visibility","dragging","OrgChartNodeToolbar","mb","objectFit","alt","Avatar","right","bottom","IcImagePlaceholder","textDecoration","handleRemoveImage","AutoWidthTextField","placeholder","onChange","lineHeight","fontWeight","stroke","primaryColor","IcAddRowCol","Handle","connectionMode","isConnectable","maxWidth","maxHeight","onMouseOver","onMouseLeave","preventDefault","pointerEvents","memo","prevProps","nextProps","globalDragging","adjustChildrenPositions","childNode","_childNode$position","_childNode$position2","rootNodes","rootNode","_rootNode$position","_rootNode$position2","orgChartChildren","layoutResult","boundingBox","PeopleDraggingNode","_getNodes","_getNodes$filter","_node$data8$value","_node$data9$value","_node$data10$value","_node$data11$value","_node$data12$value","_node$data13","_node$data13$value","_node$data13$value$fi","showDotVotingMoreOptions","setShowDotVotingMoreOptions","setFontSize","getViewport","nodeNW","zoom","scaleFactor","Math","min","calculatedFontSize","max","sizeAsPerZoom","zoomPercentages","frameMoreOptionsRef","selectedNodes","useMemo","val","showExport","isDownload","permission","isMultiNodeSelected","store","useStoreApi","handleClickOutside","contains","isOnlyOneNodeSelected","mainDivRef","onResizeEnd","updatedNode","dataWidth","dataHeight","_","Number","offsetWidth","offsetHeight","_groupNode","_groupNode2","_groupNode3","_groupNode4","intersections","groupNode","includes","_store$getState","_store$getState$nodeI","getState","nodeInternals","_n$position","_parentNode$positionA","_parentNode$positionA2","_n$position2","_parentNode$positionA3","_parentNode$positionA4","tempNode","expandParent","_n2","_groupNode5","_node$positionAbsolut","_groupNode6","_groupNode6$positionA","_node$positionAbsolut2","_groupNode7","_groupNode7$positionA","_n3","structuredClone","_n","_getNodePositionInsid","getNodePositionInsideParent","addEventListener","removeEventListener","canvasRef","NodeResizeControl","keepAspectRatio","transitionDuration","onConnect","params","log","placement","toggleLockUnlock","_parsedData4","_parsedData3","FrameMoreMenus","showRename","showCopyAsImage","showLockUnlock","showCopyLink","showLinkTo","showDelete","showDuplicate","showBringToFrontAndBack","setShowFrameMoreOptions","marginTop","margin","Tooltip","first_name","last_name","profile_picture","textAlign","profile_color","toUpperCase","_currNode$positionAbs2","_val$first_name$","onDragStart","screenToFlowPosition","getZoom","isDragging","setIsDragging","dragPosition","setDragPosition","itemPosition","setItemPosition","boardRef","drawboard","draggableRef","onMouseDownCapture","getElementsByClassName","_draggableRef$current","updatedObject","clientHeight","dataTransfer","setData","clientX","clientY","containerRect","getBoundingClientRect","itemRect","newItemPosition","createElement","setDragImage","projectedPosition","onDrag","onDragEnd","userSelect","PeopleNode","_node$data5$data","_node$data6$data","_node$data7$data","_node$data8$data","_node$data9$data","_node$data10$data","_node$data13$allRecor","_node$data14","_node$data14$allRecor","_node$data14$allRecor2","_node$data15","_node$data16","_node$data17","_node$data17$allRecor","_node$data18","_node$data19","_node$data20","_node$data20$allRecor","_data$first_name","_data$first_name$","searchValue","setSearchValue","showLinkMoreOptions","setShowLinkMoreOptions","loading","setLoading","allRecord","architectureData","_data$archBoard","archBoard","architectureRes","dragImageRef","draggedItem","handlePinClick","userId","index","container1","email_id","pin","calculatedWidth","calculatedHeight","handleDragStart","nodeWH","useViewport","boardData","setBoardData","architecture_id","projectRes","commanService","getApi","project_id","project_name","handleArchitectureResponse","inputRef","getArchitectureMembers","response","_parsedData7","_response$data","existingRecords","newRecords","missingRecords","newRecord","existingRecord","updatedRecords","matchingNewRecord","_inputRef$current","blur","filteredMembers","member","_member$email_id","_searchValue$name","fullName","toLowerCase","NodeResizer","isVisible","handleStyle","_parsedData6","_parsedData5","_nd$data2","_nd$data3","_nd$data3$data","showAddComment","saveFile","originalSize","hideImage","showFrame","download","exportShow","TextField","autoComplete","fullWidth","autoFocus","onBlur","_inputRef$current2","InputProps","startAdornment","marginLeft","IcSerch","marginBottom","user","_user$first_name$","PeopleNodeDragPreview","IcPin","_user$first_name$2","_user$first_name$3","whiteSpace","textOverflow","IcNoRecord"],"sourceRoot":""}