{"version":3,"file":"static/js/main-3316b678.928f686d.js","mappings":"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","sources":["Components/DrawBoard/Nodes-Types/UploadImage.js"],"sourcesContent":["import React, {\r\n useState,\r\n useRef,\r\n useEffect,\r\n useMemo,\r\n useCallback,\r\n memo,\r\n} from \"react\";\r\nimport { select } from \"d3-selection\";\r\nimport {\r\n Box,\r\n IconButton,\r\n Typography,\r\n Stack,\r\n CircularProgress,\r\n TextField,\r\n Popover,\r\n ClickAwayListener,\r\n} from \"@mui/material\";\r\nimport EditIcon from \"@mui/icons-material/Edit\";\r\nimport { drag } from \"d3-drag\";\r\nimport CancelIcon from \"@mui/icons-material/Cancel\";\r\nimport {\r\n IcTagOutlined,\r\n IcBorderStyle,\r\n IcCircle,\r\n IcCustom,\r\n IcEyeOpen,\r\n IcMessageOneBubbleOutlined,\r\n IcPlus2,\r\n IcRectangle,\r\n IcSquare,\r\n IcWide,\r\n} from \"../../../assets/icon-components\";\r\nimport SimpleCircularProgress from \"../../../common-components/SimpleCircularProgress\";\r\nimport {\r\n openImageandIcon,\r\n imageWHstate,\r\n isOpenImagesIcon,\r\n setReplaceImageId,\r\n} from \"../../../Redux/sidebarSlice\";\r\nimport { toJpeg, toPng, toSvg } from \"html-to-image\";\r\nimport FrameBorderToolbar from \"../../Node/frameNode/FrameBorderToolbar\";\r\nimport IcLaptop from \"../../../assets/icon-components/IcLaptop.js\";\r\nimport IcHideImg from \"../../../assets/icon-components/IcHideImg\";\r\nimport IcFlipHorizotal from \"../../../assets/icon-components/IcFlipHorizotal\";\r\nimport IcFlipVertical from \"../../../assets/icon-components/IcFlipVertical\";\r\nimport Cropper from \"react-cropper\";\r\nimport \"cropperjs/dist/cropper.css\";\r\nimport \"./style.scss\";\r\nimport UploadViaUrl from \"../../../common-components/modals/ImageUrlModal\";\r\nimport {\r\n Handle,\r\n Position,\r\n NodeToolbar,\r\n useReactFlow,\r\n useStoreApi,\r\n NodeResizeControl,\r\n useUpdateNodeInternals,\r\n NodeResizer,\r\n getNodesBounds,\r\n useViewport,\r\n} from \"reactflow\";\r\nimport { CustomTooltip } from \"../top-toolbar/components/CustomTooltip\";\r\nimport { CustomNameTooltip } from \"../top-toolbar/components/CustomTooltip\";\r\nimport {\r\n IcImageCrop,\r\n IcImageDownload,\r\n IcLockLocked,\r\n IcLockUnLocked,\r\n IcLinkOutlined3,\r\n IcReplaceImageFile,\r\n IcImageOutlined,\r\n IcMenuDotsVertical,\r\n} from \"../../../assets/icon-components\";\r\nimport { getNodePositionInsideParent } from \"../../../Utils/grouping-utils\";\r\nimport { useLocation, useParams } from \"react-router-dom\";\r\nimport IcOriginal from \"../../../assets/icon-components/IcOriginal.js\";\r\nimport IcPortails from \"../../../assets/icon-components/IcPortail\";\r\nimport { updateJson } from \"../../../CommanFunctions/commanFunctions\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useDropzone } from \"react-dropzone\";\r\nimport { debounce, omit } from \"lodash\";\r\nimport FrameMoreMenus from \"../../Node/frameNode/FrameMoreMenus\";\r\nimport ToolTipWithDisabled from \"../top-toolbar/components/ToolTipWithDisabled\";\r\nimport IcSmileHappyPlus from \"../../../assets/icon-components/IcSmileHappyPlus.js\";\r\nimport { useUndoRedo } from \"../dndUndoRedo/UndoRedoProvider.js\";\r\nimport VotingCommon from \"../../mind-map/VotingCommon.js\";\r\nimport { useSocketContext } from \"../../../Utils/hooks/useSocketContext.js\";\r\nimport { s3AssetsUrl, socketEvents } from \"../const.js\";\r\nimport commanService from \"../../../CommanFunctions/commanService.js\";\r\nimport useZoomPercentages from \"../../../Utils/hooks/useZoomPercentages.js\";\r\nimport useNodeSelectionStarted from \"../../../Utils/hooks/useNodeSelectionStarted.js\";\r\nimport { color } from \"../../../Utils/style/color/color.js\";\r\nimport CommonDivider from \"../../../common-components/CommonDivider.js\";\r\nimport EmojiPicker from \"../../Node/EmojiPicker.jsx\";\r\nimport { generateFontEmbedCss } from \"../utils.js\";\r\nimport { errorToast } from \"../../../Redux/toastSlice.js\";\r\n\r\nconst UploadImage = (node) => {\r\n const { id } = useParams();\r\n const user_data = localStorage.getItem(\"user_data\");\r\n const imageData = useRef(null);\r\n const imageData1 = useRef(null);\r\n const { zoom } = useViewport();\r\n const sizeAsPerZoom =\r\n (node?.data?.width < node?.data?.height\r\n ? node?.data?.width\r\n : node?.data?.height) * zoom || 100;\r\n\r\n const { showExport, copyAsImage, isDownload, permission } = useSelector(\r\n (state) => state?.mindMapStore\r\n );\r\n\r\n const [showFontSizeOpt, setShowFontSizeOpt] = useState(false);\r\n const borderWidth = node?.data?.border?.width;\r\n const borderStyle = node?.data?.border?.type;\r\n const borderColor = node?.data?.border?.borderColor;\r\n const opacity = node?.data?.border?.opacity;\r\n const { isNodeSelectionStarted } = useNodeSelectionStarted({\r\n selected: node?.selected,\r\n });\r\n const [loading, setLoading] = useState(true);\r\n\r\n const [cropLoader, setCropLoader] = useState(false);\r\n const [loadingDownload, setLoadingDownload] = useState(false);\r\n const [showReactionBottom, setShowReactionBottom] = useState(false);\r\n const [hoveredItem, setHoveredItem] = useState(\"\");\r\n const [showDots, setShowDots] = useState(false);\r\n const [showLinkMoreOptions, setShowLinkMoreOptions] = useState(false);\r\n const [replaceImage, setReplaceImages] = useState(false);\r\n const frameMoreOptionsRef = useRef(null);\r\n const store = useStoreApi();\r\n const [cropImg, setCropImg] = useState(false);\r\n const cropperRef = useRef(null);\r\n const [redius, setRedius] = useState(\" \");\r\n const [showBgColor, setShowBgColor] = useState(false);\r\n const location = useLocation();\r\n const [showAllEmojis, setShowAllEmojis] = useState(false);\r\n const [showAllTags, setShowAllTags] = useState(false);\r\n const [showImageviaUrlModal, setShowImageviaUrlModal] = useState(false);\r\n const { socket } = useSocketContext();\r\n const userRowData = localStorage.getItem(\"user_data\");\r\n const userDataLocal = userRowData ? JSON.parse(userRowData) : {};\r\n const [customize, setCustomize] = useState({\r\n imagePreview: node.data.Label\r\n ? typeof node.data.Label !== \"string\"\r\n ? URL.createObjectURL(node.data.Label)\r\n : node.data.Label\r\n : \"\",\r\n description: node.data.Description ? node.data.Description : \"\",\r\n cropShape: node.data.CropShape ? node.data.CropShape : \" \",\r\n ImageSize: node.data.ImageSize ? node.data.ImageSize : \"100%\",\r\n locked: node?.data?.data?.locked,\r\n flipHorizontal: node?.data?.flipHorizontal\r\n ? node?.data?.flipHorizontal\r\n : false,\r\n flipVertical: node?.data?.flipVertical ? node?.data?.flipVertical : false,\r\n rotationAngle: node?.data?.rotationAngle ? node?.data?.rotationAngle : 0,\r\n tag: node?.data?.tag || [],\r\n });\r\n\r\n const [flipShow, setFlipShow] = useState(node?.data?.crop ? true : false);\r\n const [showReaction, setShowReaction] = useState(false);\r\n const [newTag, setNewTag] = useState(\"\");\r\n const [error, setError] = useState(false);\r\n const [editTagIndex, setEditTagIndex] = useState(null);\r\n const [editTagValue, setEditTagValue] = useState(\"\");\r\n const [openTag, setOpenTag] = React.useState(false);\r\n const [anchorElTag, setAnchorElTag] = React.useState(null);\r\n const [isInputFocused, setIsInputFocused] = useState(false);\r\n const canBeOpenTag = openTag && Boolean(anchorElTag);\r\n const idTag = canBeOpenTag ? \"transition-popper\" : undefined;\r\n\r\n const containerRef = useRef(null);\r\n const borderPopupRef = useRef(null);\r\n const cropRef = useRef(null);\r\n const flipRef = useRef(null);\r\n const reactionRef = useRef(null);\r\n const replaceRef = useRef(null);\r\n const { id: architectureId } = useParams();\r\n const { setNodes, getNodes, getIntersectingNodes, getNode, getEdges } =\r\n useReactFlow();\r\n const dispatch = useDispatch();\r\n const { undo, takeSnapshot } = useUndoRedo();\r\n const isResizing = useRef(false);\r\n const nodeWH = getNode(node?.id);\r\n const {\r\n isItemToSmall,\r\n isWidthLessthan25,\r\n isWidthLessthan50,\r\n isWidthLessthan100,\r\n } = useZoomPercentages({ selected: node?.selected });\r\n const isOnlyOneNodeSelected =\r\n getNodes().filter((n) => n.selected).length === 1;\r\n const [newWh, setNewWh] = useState({\r\n width: nodeWH?.style?.width,\r\n height: nodeWH?.style?.height,\r\n });\r\n\r\n // const isItemToSmall = useMemo(\r\n // () => zoomPercentages <= 12.5,\r\n // [zoomPercentages]\r\n // );\r\n\r\n const handleResize = () => {\r\n isResizing.current = true;\r\n };\r\n\r\n const handleEditTag = (index, value) => {\r\n setEditTagIndex(index);\r\n setEditTagValue(value);\r\n };\r\n function isColorLight(color) {\r\n const rgb = parseInt(color.slice(1), 16);\r\n const r = (rgb >> 16) & 0xff;\r\n const g = (rgb >> 8) & 0xff;\r\n const b = (rgb >> 0) & 0xff;\r\n const luminance = 0.299 * r + 0.587 * g + 0.114 * b;\r\n return luminance > 186;\r\n }\r\n useEffect(() => {\r\n if (!node.selected) {\r\n setShowLinkMoreOptions(false);\r\n setShowAllEmojis(false);\r\n setShowAllTags(false);\r\n setShowBgColor(false);\r\n setIsInputFocused(false);\r\n setShowReaction(false);\r\n setReplaceImages(false);\r\n setShowReactionBottom(false);\r\n }\r\n }, [node?.selected]);\r\n\r\n const handleSaveEdit = (index) => {\r\n if (editTagValue.trim()) {\r\n const updatedTags = customize.tag.map((tag, idx) => {\r\n if (idx === index) {\r\n return { ...tag, name: editTagValue };\r\n }\r\n return tag;\r\n });\r\n let updatedNodes;\r\n setNodes((nds) => {\r\n updatedNodes = nds.map((node1) => {\r\n if (node1.id === node?.id) {\r\n return {\r\n ...node1,\r\n data: {\r\n ...node1.data,\r\n tag: updatedTags,\r\n },\r\n };\r\n }\r\n return node1;\r\n });\r\n return updatedNodes;\r\n });\r\n debouncedUpdateJson(updatedNodes, getEdges());\r\n setCustomize({ ...customize, tag: updatedTags });\r\n setEditTagIndex(null);\r\n setEditTagValue(\"\");\r\n setError(false);\r\n }\r\n };\r\n const nodeRotating = useRef(false);\r\n const rotateControlRef = useRef(null);\r\n const updateNodeInternals = useUpdateNodeInternals();\r\n useEffect(() => {\r\n if (!rotateControlRef.current) {\r\n return;\r\n }\r\n\r\n const selection = select(rotateControlRef.current);\r\n const dragHandler = drag()\r\n .on(\"drag\", (evt) => {\r\n nodeRotating.current = true;\r\n const dx = evt.x;\r\n const dy = evt.y;\r\n const rad = Math.atan2(dx, dy);\r\n const deg = rad * (180 / Math.PI);\r\n updateNodeInternals(id);\r\n\r\n const original = {\r\n x: node?.xPos,\r\n y: node?.yPos,\r\n w: nodeWH?.style?.width,\r\n h: nodeWH?.style?.height,\r\n deg: 360 - deg,\r\n };\r\n const rotated = rotateDiv(\r\n original.x,\r\n original.y,\r\n original.w,\r\n original.h,\r\n original.deg\r\n );\r\n setNodes((nodes) => {\r\n return nodes.map((nd) => {\r\n if (nd.id === node.id) {\r\n return {\r\n ...nd,\r\n data: {\r\n ...omit(nd.data, [\"editorState\"]),\r\n rotation: 360 - deg,\r\n newPosition: rotated,\r\n },\r\n };\r\n }\r\n return nd;\r\n });\r\n });\r\n })\r\n .on(\"end\", () => {\r\n RotateNodes();\r\n });\r\n\r\n selection.call(dragHandler);\r\n }, [id, updateNodeInternals]);\r\n\r\n const RotateNodes = async () => {\r\n let updatedNodes = getNodes();\r\n nodeRotating.current = false;\r\n let parsedData = {};\r\n const user_data = localStorage.getItem(\"user_data\");\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\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 handleClickTag = (event) => {\r\n setAnchorElTag(event.currentTarget);\r\n setOpenTag((previousOpen) => !previousOpen);\r\n };\r\n const hexToRgba = (hex, opacity) => {\r\n const bigint = parseInt(hex.replace(\"#\", \"\"), 16);\r\n const r = (bigint >> 16) & 255;\r\n const g = (bigint >> 8) & 255;\r\n const b = bigint & 255;\r\n\r\n return `rgba(${r},${g},${b},${opacity})`;\r\n };\r\n const randomColor = () => {\r\n const colors = [\r\n \"#059669\",\r\n \"#4F46E5\",\r\n \"#DC2626\",\r\n \"#1A84F9\",\r\n \"#D97706\",\r\n \"#65901F\",\r\n \"#1b5e20\",\r\n ];\r\n return colors[Math.floor(Math.random() * colors.length)];\r\n };\r\n const handleClickAway = () => {\r\n setShowAllEmojis(false);\r\n };\r\n\r\n useEffect(() => {\r\n const filteredNodes1 = getNodes()\r\n ?.filter((n) => n?.parentNode === node?.id && n?.type === \"comment\")\r\n ?.map((val) => val?.id);\r\n if (filteredNodes1) {\r\n const updatedNodes = getNodes().map((n) => {\r\n if (filteredNodes1.includes(n?.id)) {\r\n return {\r\n ...n,\r\n style: {\r\n ...n.style,\r\n zIndex: node?.data?.imageShow ? 999 : -1,\r\n },\r\n };\r\n }\r\n return n;\r\n });\r\n setNodes(updatedNodes);\r\n }\r\n }, [node?.data?.imageShow, getNodes, setNodes]);\r\n\r\n const handleAddTag = () => {\r\n if (newTag.trim() !== \"\" && customize?.tag?.length < 8) {\r\n const updatedTags = [\r\n ...customize.tag,\r\n { name: newTag, color: randomColor() },\r\n ];\r\n setCustomize({ ...customize, tag: updatedTags });\r\n let updatedNodes = [];\r\n setNodes((nds) => {\r\n updatedNodes = nds.map((node1) => {\r\n if (node1.id === node?.id) {\r\n return {\r\n ...node1,\r\n data: {\r\n ...node1.data,\r\n tag: updatedTags,\r\n },\r\n };\r\n }\r\n return node1;\r\n });\r\n return updatedNodes;\r\n });\r\n debouncedUpdateJson(updatedNodes, getEdges());\r\n setNewTag(\"\");\r\n setError(false);\r\n } else {\r\n setError(true);\r\n }\r\n };\r\n\r\n const handleRemoveTag = (index) => {\r\n const updatedTags = customize.tag.filter((_, i) => i !== index);\r\n setCustomize((prev) => ({\r\n ...prev,\r\n tag: updatedTags,\r\n }));\r\n let updatedNodes;\r\n setNodes((nds) => {\r\n updatedNodes = nds.map((node1) => {\r\n if (node1.id === node?.id) {\r\n return {\r\n ...node1,\r\n data: {\r\n ...node1.data,\r\n tag: updatedTags,\r\n },\r\n };\r\n }\r\n return node1;\r\n });\r\n return updatedNodes;\r\n });\r\n debouncedUpdateJson(updatedNodes, getEdges());\r\n setError(false);\r\n };\r\n const toggleLockUnlock = () => {\r\n setReplaceImages(false);\r\n setShowFontSizeOpt(false);\r\n setCropImg(false);\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 a_id,\r\n takeSnapshot,\r\n });\r\n };\r\n const onResizeStart = () => {\r\n if (node?.data?.isOrgChartFrame) {\r\n setNodes((prev) => {\r\n const updatedNodes = prev?.map((nd) => {\r\n if (nd.type === \"orgChart\" && nd?.data?.rootFrameId === node?.id) {\r\n return {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n previousWidth: nd.width,\r\n previousHeight: nd.height,\r\n previousPosition: nd.position,\r\n previousPositionAbsolute: nd.positionAbsolute,\r\n isResizing: true,\r\n },\r\n };\r\n }\r\n return nd;\r\n });\r\n return updatedNodes;\r\n });\r\n }\r\n };\r\n\r\n const onResize = (e, params) => {\r\n const { height, width } = params;\r\n\r\n const heightScale = height / node?.data?.previousHeight;\r\n const widthScale = width / node?.data?.previousWidth;\r\n\r\n if (node?.data?.isOrgChartFrame) {\r\n setNodes((prev) => {\r\n const updatedNodes = prev?.map((nd) => {\r\n if (nd.type === \"orgChart\" && nd?.data?.rootFrameId === node?.id) {\r\n return {\r\n ...nd,\r\n style: {\r\n ...nd.style,\r\n width: widthScale * nd.data.previousWidth,\r\n height: heightScale * nd.data.previousHeight,\r\n },\r\n position: {\r\n x: nd.data.previousPosition.x * widthScale,\r\n y: nd.data.previousPosition.y * heightScale,\r\n },\r\n positionAbsolute: {\r\n x: nd.data.previousPositionAbsolute.x * widthScale,\r\n y: nd.data.previousPositionAbsolute.y * heightScale,\r\n },\r\n };\r\n }\r\n return nd;\r\n });\r\n return updatedNodes;\r\n });\r\n }\r\n };\r\n const addEmoji = (Id, emoji) => {\r\n const addEmoji = getNodes().map((n) => {\r\n if (n.id === Id) {\r\n const existingEmojiIndex = n?.data?.emoji?.findIndex(\r\n (e) =>\r\n e.emoji.unified === emoji.unified && e.userId === userData?.user_id\r\n );\r\n if (existingEmojiIndex !== -1) {\r\n return {\r\n ...n,\r\n data: {\r\n ...n.data,\r\n emoji: n.data?.emoji?.filter(\r\n (_, index) => index !== existingEmojiIndex\r\n ),\r\n },\r\n };\r\n }\r\n return {\r\n ...n,\r\n data: {\r\n ...n.data,\r\n emoji: [...n?.data?.emoji, { emoji, userId: userData?.user_id }],\r\n },\r\n };\r\n }\r\n return n;\r\n });\r\n\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: getNodes(),\r\n // lastUpdatedBy: parsedData?.user_id,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n setNodes(addEmoji);\r\n debouncedUpdateJson(addEmoji);\r\n setShowReactionBottom(false);\r\n setShowReaction(false);\r\n };\r\n const emojiWidth = 40 + 6;\r\n const maxEmojis = Math.floor((nodeWH?.width - 60) / emojiWidth);\r\n const tagWidth = 70 + 6;\r\n const maxTags = Math.floor((nodeWH?.width - 60) / tagWidth);\r\n const emojiData = getNodes()?.reduce((acc, comment) => {\r\n if (!acc[comment.id]) {\r\n acc[comment.id] = {\r\n emoji: {},\r\n };\r\n }\r\n\r\n comment.data?.emoji?.forEach((e) => {\r\n if (!acc[comment.id].emoji[e.emoji.unified]) {\r\n acc[comment.id].emoji[e.emoji.unified] = {\r\n imageUrl: e.emoji.imageUrl,\r\n emoji: e.emoji.emoji,\r\n unified: e.emoji.unified,\r\n count: 0,\r\n };\r\n }\r\n acc[comment.id].emoji[e.emoji.unified].count++;\r\n });\r\n\r\n return acc;\r\n }, {});\r\n\r\n const emojiD = emojiData[node?.id] || { emoji: {} };\r\n\r\n const emojiCount = Object?.values(emojiD)[0];\r\n const adjustOpacity = (rgba, newOpacity) => {\r\n const parts = rgba.match(/rgba?\\((\\d+), (\\d+), (\\d+), ([\\d.]+)\\)/);\r\n if (!parts) return rgba;\r\n return `rgba(${parts[1]}, ${parts[2]}, ${parts[3]}, ${newOpacity})`;\r\n };\r\n const [imageDimensions, setImageDimensions] = useState({\r\n width: null,\r\n height: null,\r\n });\r\n const newBorderColor =\r\n borderColor && opacity ? adjustOpacity(borderColor, opacity) : \"\";\r\n\r\n useEffect(() => {\r\n setCustomize({ ...customize, imagePreview: node?.data?.Label });\r\n }, [node?.data?.Label]);\r\n\r\n useEffect(() => {\r\n if (socket) {\r\n socket.on(socketEvents.NODE_UPDATED, (data) => {\r\n const jsonData = data?.architecture_json;\r\n const currData = jsonData?.nodes?.find((val) => val?.id === node?.id);\r\n if (jsonData?.lastUpdatedBy !== userDataLocal?.user_id && !!currData) {\r\n setCustomize({\r\n ...customize,\r\n flipVertical: currData?.data?.flipVertical,\r\n flipHorizontal: currData?.data?.flipHorizontal,\r\n tag: currData?.data?.tag,\r\n imageShow: currData?.data?.imageShow,\r\n // ! this is issue of shapes change\r\n // typeof customize?.imagePreview === \"string\"\r\n // ? customize?.imagePreview\r\n // : URL.createObjectURL(customize?.imagePreview)\r\n imagePreview: currData?.data?.Label,\r\n ...(currData?.data?.cropShape && {\r\n cropShape: currData?.data?.cropShape,\r\n }),\r\n });\r\n setRedius(currData?.data?.redius);\r\n setImageDimensions({\r\n width: currData?.data?.width,\r\n height: currData?.data?.height,\r\n });\r\n setCropImg(false);\r\n }\r\n });\r\n // cropperRef.current.blur()\r\n }\r\n }, [socket]);\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 data: {\r\n ...n.data,\r\n scale: true,\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 setImageDimensions({\r\n width: event.x,\r\n height: event.y,\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 isResizing.current = false;\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 _.data.scale = false;\r\n _.style.width = Number(imageData?.current?.offsetWidth || 0);\r\n _.style.height = Number(imageData?.current?.offsetHeight);\r\n _.data.scale = true;\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\r\n const debouncedUpdateJson = useCallback(\r\n debounce((tempNodes, updatedEdges) => {\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: tempNodes?.length > 0 ? tempNodes : getNodes(),\r\n edges: updatedEdges?.length > 0 ? updatedEdges : getEdges(),\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id: architectureId,\r\n // dispatch: reduxDispatch,\r\n undo,\r\n takeSnapshot,\r\n a_id,\r\n });\r\n }, 200),\r\n [updateJson, user_data, id, dispatch, undo, location, getNodes, getEdges]\r\n );\r\n\r\n const userData = useSelector((state) => state.common.userData);\r\n const getTimeDifference = (commentTimestamp) => {\r\n const currentTime = Date.now();\r\n const differenceInMs = currentTime - commentTimestamp;\r\n\r\n const differenceInMinutes = Math.floor(differenceInMs / (1000 * 60));\r\n\r\n if (differenceInMinutes === 0) {\r\n return currentTime;\r\n } else {\r\n return currentTime - commentTimestamp;\r\n }\r\n };\r\n\r\n const handleAddComment = () => {\r\n setReplaceImages(false);\r\n setShowFontSizeOpt(false);\r\n setShowBgColor(false);\r\n setCropImg(false);\r\n const widthN = imageData1.current.offsetWidth / 2;\r\n const heightN = imageData1.current.offsetHeight / 2;\r\n\r\n const x = node?.xPos + widthN;\r\n const y = node?.yPos + heightN;\r\n\r\n const timeNow = Date.now();\r\n const newComment = {\r\n id: `comment-${Date.now()}`,\r\n type: \"comment\",\r\n key: \"comment\",\r\n data: {\r\n label: \"New Comment\",\r\n ...userData,\r\n timestamp: timeNow,\r\n replyData: [],\r\n emoji: [],\r\n maxPosition: {\r\n x: x - node?.xPos,\r\n y: y - node?.yPos,\r\n },\r\n new: true,\r\n resolved: false,\r\n read: false,\r\n replyTimeStamp: null,\r\n },\r\n style: {\r\n zIndex: 999999999999,\r\n background: \"transparent\",\r\n border: 0,\r\n outline: \"none\",\r\n },\r\n parentNode: node?.id,\r\n position: {\r\n x: x - node?.xPos,\r\n y: y - node?.yPos,\r\n },\r\n positionAbsolute: {\r\n x: x - node?.xPos,\r\n y: y - node?.yPos,\r\n },\r\n dragging: true,\r\n selected: false,\r\n selectable: false,\r\n };\r\n\r\n setNodes((prevNodes) => {\r\n const updatedNodes = getNodes().map((node) => {\r\n if (!node.data.timestamp) {\r\n return {\r\n ...node,\r\n data: {\r\n ...node.data,\r\n timestamp: getTimeDifference(node.data.timestamp),\r\n replyTimeStamp: getTimeDifference(node?.data?.replyTimeStamp),\r\n },\r\n };\r\n }\r\n return node;\r\n });\r\n const newCommentWithCurrentTime = {\r\n ...newComment,\r\n data: {\r\n ...newComment.data,\r\n timestamp: timeNow,\r\n },\r\n };\r\n const finalUpdatedNodes = [...updatedNodes, newCommentWithCurrentTime];\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: finalUpdatedNodes,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: finalUpdatedNodes,\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id,\r\n undo,\r\n a_id,\r\n takeSnapshot,\r\n });\r\n\r\n return finalUpdatedNodes;\r\n });\r\n };\r\n\r\n const createUrlForVideo = async (url) => {\r\n const response = await fetch(url);\r\n const blob = await response.blob();\r\n\r\n const urlBlob = URL.createObjectURL(blob);\r\n return urlBlob;\r\n };\r\n\r\n const handleClickOriginalImage = async () => {\r\n if (node?.data?.original) {\r\n setCustomize({\r\n ...customize,\r\n imagePreview: node?.data?.originalUrl,\r\n flipHorizontal: false,\r\n flipVertical: false,\r\n });\r\n } else {\r\n setCustomize({\r\n ...customize,\r\n imagePreview: node?.data?.Label,\r\n flipHorizontal: false,\r\n flipVertical: false,\r\n });\r\n }\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: node?.data?.width,\r\n height: node?.data?.height,\r\n data: {\r\n ...n.data,\r\n scale: false,\r\n width: node?.data?.width,\r\n height: node?.data?.height,\r\n },\r\n style: {\r\n width: node?.data?.width,\r\n height: node?.data?.height,\r\n },\r\n };\r\n }\r\n return n;\r\n })\r\n );\r\n setImageDimensions({\r\n width: null,\r\n height: null,\r\n });\r\n\r\n setCropImg(false);\r\n setRedius(\"\");\r\n };\r\n\r\n const handleHideImage = async () => {\r\n setReplaceImages(false);\r\n setShowFontSizeOpt(false);\r\n setCropImg(false);\r\n setNodes((nds) => {\r\n const updatedNodes = nds.map((n) => {\r\n if (n?.id === node?.id) {\r\n return {\r\n ...n,\r\n\r\n data: {\r\n ...n.data,\r\n imageShow: node?.data?.imageShow === true ? false : true,\r\n },\r\n };\r\n }\r\n return n;\r\n });\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n // edges: edges,\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 return updatedNodes;\r\n });\r\n };\r\n\r\n const handleFileExport = async () => {\r\n setReplaceImages(false);\r\n setShowFontSizeOpt(false);\r\n setCropImg(false);\r\n if (imageData.current) {\r\n setLoadingDownload(true);\r\n try {\r\n let dataUrl;\r\n let format = \"png\";\r\n if (node?.data?.filename?.endsWith(\".svg\")) {\r\n const fontEmbedCSS = await generateFontEmbedCss();\r\n dataUrl = await toSvg(imageData.current, {\r\n skipFonts: true,\r\n skipAutoScale: true,\r\n fontEmbedCSS: fontEmbedCSS,\r\n quality: 1,\r\n });\r\n format = \"svg\";\r\n } else if (\r\n node?.data?.filename?.endsWith(\".jpeg\") ||\r\n node?.data?.filename?.endsWith(\".jpg\")\r\n ) {\r\n const fontEmbedCSS = await generateFontEmbedCss();\r\n dataUrl = await toJpeg(imageData.current, {\r\n skipFonts: true,\r\n skipAutoScale: true,\r\n fontEmbedCSS: fontEmbedCSS,\r\n quality: 1,\r\n });\r\n format = \"jpeg\";\r\n } else {\r\n if (node?.data?.fileType === \"video\") {\r\n dataUrl = await createUrlForVideo(node?.data?.Label);\r\n format = node.data.filename.slice(\r\n node.data.filename.lastIndexOf(\".\") + 1\r\n );\r\n } else {\r\n const fontEmbedCSS = await generateFontEmbedCss();\r\n dataUrl = await toPng(imageData.current, {\r\n skipFonts: true,\r\n skipAutoScale: true,\r\n fontEmbedCSS: fontEmbedCSS,\r\n quality: 1,\r\n });\r\n format = \"png\";\r\n }\r\n }\r\n\r\n const link = document.createElement(\"a\");\r\n link.href = dataUrl;\r\n link.download = `${(node.data.filename || \"Image\").slice(\r\n 0,\r\n (node.data.filename || \"Image\").lastIndexOf(\".\")\r\n )}.${format}`;\r\n link.click();\r\n } catch (error) {\r\n console.error(\"Error exporting the image:\", error);\r\n } finally {\r\n setLoadingDownload(false);\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (customize?.cropShape !== \" \") {\r\n setNodes((nds) => {\r\n const cropCanvas = document.querySelector(\".cropper-canvas\");\r\n\r\n if (!cropCanvas) {\r\n setLoading(true);\r\n }\r\n const updatedNodes = nds.map((n) => {\r\n if (n?.id === node?.id) {\r\n return {\r\n ...n,\r\n width:\r\n imageDimensions.width !== null\r\n ? imageDimensions.width\r\n : node?.data?.imageWidth || node?.data?.width,\r\n height:\r\n imageDimensions.height !== null\r\n ? imageDimensions.height\r\n : node?.data?.imageHeigth || node?.data?.height,\r\n data: {\r\n ...n.data,\r\n original: false,\r\n cropShape: customize?.cropShape,\r\n Label: node?.data?.originalUrl,\r\n redius: \"\",\r\n scale: false,\r\n width:\r\n imageDimensions.width !== null\r\n ? imageDimensions.width\r\n : node?.data?.imageWidth || node?.data?.width,\r\n height:\r\n imageDimensions.height !== null\r\n ? imageDimensions.height\r\n : node?.data?.imageHeigth || node?.data?.height,\r\n },\r\n style: {\r\n width:\r\n imageDimensions.width !== null\r\n ? imageDimensions.width\r\n : node?.data?.imageWidth || node?.data?.width,\r\n height:\r\n imageDimensions.height !== null\r\n ? imageDimensions.height\r\n : node?.data?.imageHeigth || node?.data?.height,\r\n },\r\n };\r\n }\r\n return n;\r\n });\r\n let parsedData = {};\r\n\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id,\r\n dispatch,\r\n undo,\r\n a_id,\r\n takeSnapshot,\r\n });\r\n return updatedNodes;\r\n });\r\n }\r\n\r\n const cropper = cropperRef.current?.cropper;\r\n if (cropper) {\r\n cropper.setAspectRatio(getAspectRatio());\r\n }\r\n }, [customize?.cropShape]);\r\n\r\n useEffect(() => {\r\n if (cropperRef && !cropperRef?.current) {\r\n if (node?.data?.original) {\r\n setCustomize({ ...customize, imagePreview: node?.data?.originalUrl });\r\n } else {\r\n setCustomize({ ...customize, imagePreview: node?.data?.Label });\r\n }\r\n }\r\n }, [node]);\r\n\r\n const getAspectRatio = () => {\r\n switch (customize?.cropShape) {\r\n case \"square\":\r\n return 1;\r\n case \"portrait\":\r\n return 3 / 4;\r\n case \"landscape\":\r\n return 4 / 3;\r\n case \"wide\":\r\n return 16 / 9;\r\n default:\r\n return NaN;\r\n }\r\n };\r\n const seletedNode = getNodes()?.filter(\r\n (val) => val?.type !== \"uploadImage\" && val.selected\r\n );\r\n\r\n useEffect(() => {\r\n if (\r\n seletedNode?.length > 0 &&\r\n customize?.cropShape &&\r\n containerRef &&\r\n containerRef?.current\r\n ) {\r\n const handleCrop = async () => {\r\n if (\r\n cropperRef.current &&\r\n cropperRef.current.cropper &&\r\n customize?.cropShape\r\n ) {\r\n const cropper = cropperRef.current.cropper;\r\n try {\r\n const croppedCanvas = cropper.getCroppedCanvas();\r\n\r\n if (croppedCanvas) {\r\n setCropLoader(true);\r\n const croppedDataURL = croppedCanvas.toDataURL();\r\n const cropBoxElement = cropper.cropBox;\r\n const blob = await fetch(croppedDataURL).then((res) =>\r\n res.blob()\r\n );\r\n const file = new File([blob], `${blob?.type}.png`, {\r\n type: \"image/png\",\r\n });\r\n\r\n // Create FormData for upload\r\n const formData = new FormData();\r\n formData.append(\"file\", file);\r\n formData.append(\"fileName\", `${blob?.type}.png`);\r\n\r\n try {\r\n const imageUploadResponse = await commanService.uploadApi(\r\n \"drawboard\",\r\n `upload/files`,\r\n formData\r\n );\r\n\r\n const width = parseInt(cropBoxElement?.style?.width, 10) || 200;\r\n const height =\r\n parseInt(cropBoxElement?.style?.height, 10) || 200;\r\n\r\n if (\r\n imageUploadResponse?.data?.data &&\r\n customize?.cropShape !== \" \" &&\r\n containerRef &&\r\n containerRef?.current &&\r\n seletedNode?.length\r\n ) {\r\n setCustomize({\r\n ...customize,\r\n cropShape: \" \",\r\n imagePreview:\r\n imageUploadResponse?.data?.data?.[0]?.location,\r\n });\r\n setFlipShow(true);\r\n setNewWh({ width: width, height: height });\r\n setNodes((nds) => {\r\n const updatedNodes = nds.map((n) => {\r\n if (n?.id === node?.id) {\r\n return {\r\n ...n,\r\n width,\r\n height,\r\n data: {\r\n ...n.data,\r\n width,\r\n height,\r\n crop: true,\r\n Label:\r\n imageUploadResponse?.data?.data?.[0]?.location,\r\n },\r\n };\r\n }\r\n return n;\r\n });\r\n\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id,\r\n dispatch,\r\n undo,\r\n a_id,\r\n takeSnapshot,\r\n });\r\n return updatedNodes;\r\n });\r\n }\r\n } catch (error) {\r\n console.error(\"Error during image upload:\", error);\r\n } finally {\r\n setCropLoader(false);\r\n }\r\n } else {\r\n console.error(\"Unable to get cropped canvas.\");\r\n }\r\n } catch (error) {\r\n console.error(\"Error while cropping raster image:\", error);\r\n }\r\n }\r\n };\r\n\r\n handleCrop();\r\n }\r\n }, [seletedNode?.length > 0]);\r\n\r\n const handleClickOutside = (event) => {\r\n if (\r\n cropperRef.current &&\r\n containerRef.current &&\r\n !containerRef.current.contains(event.target)\r\n ) {\r\n cropImage();\r\n setShowFontSizeOpt(false);\r\n }\r\n if (\r\n frameMoreOptionsRef.current &&\r\n !frameMoreOptionsRef.current.contains(event.target)\r\n ) {\r\n setShowLinkMoreOptions(false);\r\n }\r\n\r\n if (cropRef?.current && cropRef.current.contains(event.target)) {\r\n setCropImg(true);\r\n } else {\r\n setCropImg(false);\r\n }\r\n if (flipRef?.current && flipRef.current.contains(event.target)) {\r\n setShowFontSizeOpt(true);\r\n } else {\r\n setShowFontSizeOpt(false);\r\n }\r\n if (reactionRef.current && !reactionRef.current.contains(event.target)) {\r\n setShowReaction(false);\r\n }\r\n };\r\n\r\n const cropImage = async () => {\r\n if (cropperRef.current && cropperRef.current.cropper) {\r\n const cropper = cropperRef.current.cropper;\r\n\r\n if (node?.data?.filename?.endsWith(\".svg\")) {\r\n try {\r\n const cropBoxElement = cropper.cropBox;\r\n const divElement = cropBoxElement.querySelector(\"span\");\r\n divElement.style.border = \"none\";\r\n const dataUrl = await toSvg(divElement);\r\n setCustomize({\r\n ...customize,\r\n cropShape: \" \",\r\n imagePreview: dataUrl,\r\n });\r\n const width = parseInt(cropBoxElement?.style?.width, 10) || 200;\r\n const height = parseInt(cropBoxElement?.style?.height, 10) || 200;\r\n setNodes((nds) => {\r\n const updatedNodes = nds.map((n) => {\r\n if (n?.id === node?.id) {\r\n return {\r\n ...n,\r\n width: width > 200 ? width : 200,\r\n height: height > 200 ? height : 200,\r\n data: {\r\n ...n.data,\r\n Label: dataUrl,\r\n crop: true,\r\n flipVertical: false,\r\n flipHorizontal: false,\r\n width: width > 200 ? width : 200,\r\n height: height > 200 ? height : 200,\r\n flipUrl: dataUrl,\r\n },\r\n style: {\r\n width: width > 200 ? width : 200,\r\n height: height > 200 ? height : 200,\r\n },\r\n };\r\n }\r\n return n;\r\n });\r\n setFlipShow(true);\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n // edges: edges,\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 return updatedNodes;\r\n });\r\n } catch (error) {\r\n console.error(\"Error while cropping SVG:\", error);\r\n }\r\n } else {\r\n try {\r\n setCropLoader(true);\r\n const croppedCanvas = cropper.getCroppedCanvas();\r\n if (croppedCanvas) {\r\n const croppedDataURL = croppedCanvas.toDataURL();\r\n const cropBoxElement = cropper.cropBox;\r\n const blob = await fetch(croppedDataURL).then((res) => res.blob());\r\n const file = new File([blob], `${blob?.type}.png`, {\r\n type: \"image/png\",\r\n });\r\n\r\n // Create FormData\r\n const formData = new FormData();\r\n formData.append(\"file\", file);\r\n formData.append(\"fileName\", `${blob?.type}.png`);\r\n\r\n if (\r\n node?.data?.Label?.includes(\"https://template.cloudairy.com\") ||\r\n node?.data?.flipUrl?.includes(\"https://template.cloudairy.com\")\r\n ) {\r\n await commanService.deleteApi(\"drawboard\", \"upload/delete-file\", {\r\n filePath: node?.data?.Label?.includes(\r\n \"https://template.cloudairy.com\"\r\n )\r\n ? node.data.Label\r\n : node?.data?.flipUrl,\r\n });\r\n }\r\n const imageUploadResponse = await commanService.uploadApi(\r\n \"drawboard\",\r\n `upload/files`,\r\n formData\r\n );\r\n const width = parseInt(cropBoxElement?.style?.width, 10) || 200;\r\n const height = parseInt(cropBoxElement?.style?.height, 10) || 200;\r\n setNewWh({ width: width, height: height });\r\n if (imageUploadResponse?.data?.data) {\r\n setNodes((nds) => {\r\n const updatedNodes = nds.map((n) => {\r\n if (n?.id === node?.id) {\r\n return {\r\n ...n,\r\n width: width,\r\n height: height,\r\n data: {\r\n ...n.data,\r\n width: width,\r\n height: height,\r\n Label: imageUploadResponse?.data?.data?.[0]?.location,\r\n crop: true,\r\n flipVertical: false,\r\n flipHorizontal: false,\r\n flipUrl: imageUploadResponse?.data?.data?.[0]?.location,\r\n },\r\n };\r\n }\r\n return n;\r\n });\r\n setCustomize({\r\n ...customize,\r\n cropShape: \" \",\r\n imagePreview: imageUploadResponse?.data?.data?.[0]?.location,\r\n flipVertical: false,\r\n flipHorizontal: false,\r\n });\r\n setFlipShow(true);\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n // edges: edges,\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 return updatedNodes;\r\n });\r\n }\r\n } else {\r\n console.error(\"Unable to get cropped canvas.\");\r\n }\r\n } catch (error) {\r\n console.error(\"Error while cropping raster image:\", error);\r\n }\r\n }\r\n } else {\r\n console.error(\"Cropper not initialized or image not loaded yet.\");\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (!cropLoader && node?.data?.crop && nodeWH) {\r\n setNodes((nds) => {\r\n const updatedNodes = nds.map((n) => {\r\n if (n?.id === node?.id) {\r\n return {\r\n ...n,\r\n\r\n style: {\r\n width: newWh?.width,\r\n height: newWh?.height,\r\n },\r\n };\r\n }\r\n return n;\r\n });\r\n\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id,\r\n dispatch,\r\n undo,\r\n a_id,\r\n takeSnapshot,\r\n });\r\n return updatedNodes;\r\n });\r\n }\r\n }, [cropLoader]);\r\n\r\n const { getRootProps, getInputProps } = useDropzone({\r\n maxSize: 2e6,\r\n accept: {\r\n \"image/png\": [\".png\"],\r\n \"image/jpeg\": [\".jpg\", \".jpeg\"],\r\n \"image/svg+xml\": [\".svg\"],\r\n },\r\n onDrop: async (files, rejectedFiles) => {\r\n if (rejectedFiles.length > 0) {\r\n dispatch(\r\n errorToast({ message: \"File is too large. Max size is 2MB.\" })\r\n );\r\n return;\r\n }\r\n const file = files[0];\r\n if (file) {\r\n const allowedTypes = [\"image/png\", \"image/jpeg\", \"image/svg+xml\"];\r\n if (!allowedTypes.includes(file.type)) {\r\n console.error(\r\n \"Invalid file type. Only PNG, JPG, and SVG are allowed.\"\r\n );\r\n return;\r\n }\r\n\r\n const formData = new FormData();\r\n formData.append(\"file\", file);\r\n formData.append(\"fileName\", `${file?.name}.png`);\r\n\r\n if (\r\n node?.data?.Label?.includes(\"https://template.cloudairy.com\") ||\r\n node?.data?.flipUrl?.includes(\"https://template.cloudairy.com\")\r\n ) {\r\n await commanService.deleteApi(\"drawboard\", \"upload/delete-file\", {\r\n filePath: node?.data?.Label?.includes(\r\n \"https://template.cloudairy.com\"\r\n )\r\n ? node.data.Label\r\n : node?.data?.flipUrl,\r\n });\r\n }\r\n const imageUploadResponse = await commanService.uploadApi(\r\n \"drawboard\",\r\n `upload/files`,\r\n formData\r\n );\r\n\r\n setCustomize((prev) => ({\r\n ...prev,\r\n imagePreview: imageUploadResponse?.data?.data?.[0]?.location,\r\n }));\r\n\r\n setNodes((nds) => {\r\n const updatedNodes = nds.map((n) => {\r\n if (n?.id === node?.id) {\r\n return {\r\n ...n,\r\n width: nodeWH?.width,\r\n height: nodeWH?.height,\r\n data: {\r\n ...n.data,\r\n Label: imageUploadResponse?.data?.data?.[0]?.location,\r\n originalUrl: imageUploadResponse?.data?.data?.[0]?.location,\r\n flipUrl: imageUploadResponse?.data?.data?.[0]?.location,\r\n imageWidth: n?.style?.width,\r\n imageHeigth: n?.style?.height,\r\n originalWidth: n?.style?.width,\r\n originalHeigth: n?.style?.height,\r\n },\r\n style: {\r\n width: n?.style?.width,\r\n height: n?.style?.height,\r\n },\r\n };\r\n }\r\n return n;\r\n });\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id,\r\n dispatch,\r\n undo,\r\n a_id,\r\n takeSnapshot,\r\n });\r\n return updatedNodes;\r\n });\r\n\r\n setCropImg(false);\r\n setRedius(\"\");\r\n }\r\n setReplaceImages(false);\r\n },\r\n });\r\n\r\n const handleKeyPress = (event) => {\r\n if (event.key === \"Enter\") {\r\n event.stopPropagation();\r\n if (cropperRef.current && containerRef.current) {\r\n cropImage();\r\n setCropImg(false);\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n const reactFlowPane = document.querySelector(\".react-flow__pane\");\r\n\r\n if (reactFlowPane && customize?.cropShape) {\r\n reactFlowPane.addEventListener(\"mousedown\", handleClickOutside);\r\n document.addEventListener(\"keydown\", handleKeyPress);\r\n }\r\n\r\n return () => {\r\n if (reactFlowPane) {\r\n reactFlowPane.removeEventListener(\"mousedown\", handleClickOutside);\r\n }\r\n document.removeEventListener(\"keydown\", handleKeyPress);\r\n };\r\n }, [customize?.cropShape]);\r\n\r\n const handleInputChange = useCallback(\r\n debounce((e) => {\r\n setNodes((nds) => {\r\n const newNodes = nds.map((n) =>\r\n n?.id === node?.id\r\n ? { ...n, data: { ...n.data, filename: e.target.value } }\r\n : n\r\n );\r\n\r\n debouncedUpdateJson(newNodes, getEdges());\r\n return newNodes;\r\n });\r\n }, 300),\r\n [node?.id, setNodes]\r\n );\r\n\r\n const handleChange = (e) => {\r\n handleInputChange(e);\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 isMultiNodeSelected = useMemo(() => {\r\n return selectedNodes > 1;\r\n }, [selectedNodes]);\r\n\r\n function rotateDiv(x, y, w, h, deg) {\r\n const rad = deg * (Math.PI / 180);\r\n const center_x = x + w / 2;\r\n const center_y = y + h / 2;\r\n const new_x =\r\n center_x +\r\n (x - center_x) * Math.cos(rad) -\r\n (y - center_y) * Math.sin(rad);\r\n const new_y =\r\n center_y +\r\n (x - center_x) * Math.sin(rad) +\r\n (y - center_y) * Math.cos(rad);\r\n const new_w = Math.abs(w * Math.cos(rad)) + Math.abs(h * Math.sin(rad));\r\n const new_h = Math.abs(h * Math.cos(rad)) + Math.abs(w * Math.sin(rad));\r\n\r\n return {\r\n new_x: new_x,\r\n new_y: new_y,\r\n new_w: new_w,\r\n new_h: new_h,\r\n };\r\n }\r\n\r\n // const selectedNodes1 = getNodes()?.filter(\r\n // (val) => val?.selected && val.type === \"uploadImage\"\r\n // );\r\n\r\n // const selectedNodes11 = getNodes()?.filter((val) => val?.selected);\r\n // const boundingClient = getNodesBounds(selectedNodes11);\r\n\r\n useEffect(() => {\r\n const cropperInstance = cropperRef?.current?.cropper;\r\n const checkCropBox = () => {\r\n if (cropperInstance) {\r\n const cropBoxElement = cropperInstance.cropBox;\r\n if (cropBoxElement) {\r\n setLoading(false);\r\n } else {\r\n setTimeout(checkCropBox, 100);\r\n }\r\n }\r\n };\r\n\r\n if (cropperInstance) {\r\n checkCropBox();\r\n }\r\n }, [cropperRef?.current?.cropper]);\r\n\r\n // useEffect(() => {\r\n // const uploadImageNodes = getNodes()?.filter(\r\n // (node) => node.type === \"uploadImage\" && node?.selected\r\n // );\r\n // let smallerXNodes = boundingClient.x;\r\n // let smallerYNodes = boundingClient.y;\r\n // let smallerWidthNodes = boundingClient?.width;\r\n // let smallerHeigthNodes = boundingClient?.height;\r\n // uploadImageNodes.forEach((node) => {\r\n // // if (node.data?.newPosition?.new_x < boundingClient?.x) {\r\n // // smallerXNodes = node.data?.newPosition?.new_x;\r\n // // smallerWidthNodes = boundingClient?.width\r\n // // const add = boundingClient?.x - node.data?.newPosition?.new_x;\r\n // // smallerWidthNodes += add;\r\n // // }\r\n // // if (node.data?.newPosition?.new_y > boundingClient?.y) {\r\n // // const add = node.data?.newPosition?.new_y - boundingClient?.y;\r\n // // const newY = boundingClient?.y - add;\r\n // // smallerHeigthNodes = boundingClient?.height;\r\n // // smallerYNodes = newY;\r\n // // smallerHeigthNodes += add;\r\n // // }\r\n // if (\r\n // node.data?.newPosition?.new_x + node.data?.newPosition?.new_w >\r\n // boundingClient.x + boundingClient.width\r\n // ) {\r\n // smallerWidthNodes = boundingClient?.width;\r\n // const add =\r\n // node.data?.newPosition?.new_x +\r\n // node.data?.newPosition?.new_w -\r\n // (boundingClient.x + boundingClient.width);\r\n // smallerWidthNodes = boundingClient.width + add;\r\n // }\r\n // if (\r\n // node.data?.newPosition?.new_y + node.data?.newPosition?.new_h >\r\n // boundingClient.y + boundingClient.height\r\n // ) {\r\n // smallerHeigthNodes = boundingClient?.height;\r\n // const add =\r\n // node.data?.newPosition?.new_y +\r\n // node.data?.newPosition?.new_h -\r\n // (boundingClient.y + boundingClient.height);\r\n // smallerHeigthNodes = boundingClient.height + add - 50;\r\n // }\r\n // });\r\n // }, [selectedNodes11]);\r\n\r\n return (\r\n <>\r\n {\r\n setShowDots(true);\r\n }}\r\n onMouseLeave={() => {\r\n setShowDots(false);\r\n }}\r\n >\r\n \r\n \r\n {node.selected && (\r\n <>\r\n {customize?.cropShape === \" \" && (\r\n \r\n \r\n \r\n {/* \r\n {node.data.filename.length > 20\r\n ? `${node.data.filename.slice(0, 17)}...`\r\n : node.data.filename.slice(\r\n 0,\r\n node.data.filename.lastIndexOf(\".\")\r\n ) || node.data.filename} */}\r\n 16\r\n // ? `${node.data.filename.slice(0, 16)}...`\r\n // : node.data.filename.slice(\r\n // 0,\r\n // node.data.filename.lastIndexOf(\".\")\r\n // ) || node.data.filename\r\n // }\r\n defaultValue={node.data.filename}\r\n disabled={node?.data?.data?.locked}\r\n onFocus={(e) => {\r\n if (node?.data?.data?.locked) {\r\n e.preventDefault();\r\n } else {\r\n setIsInputFocused(true);\r\n }\r\n }}\r\n onBlur={(e) => {\r\n if (node?.data?.data?.locked) {\r\n e.preventDefault();\r\n } else {\r\n setIsInputFocused(false);\r\n }\r\n }}\r\n onChange={(e) => {\r\n if (node?.data?.data?.locked) {\r\n e.preventDefault();\r\n } else {\r\n handleChange(e);\r\n }\r\n }}\r\n autoComplete=\"off\"\r\n sx={{\r\n height: \"18px\",\r\n\r\n \"& .MuiOutlinedInput-root\": {\r\n border: \"none\",\r\n padding: \"0px\",\r\n height: \"100%\",\r\n overflow: \"hidden\",\r\n\r\n \"& fieldset\": {\r\n border: \"none\",\r\n },\r\n \"&:hover fieldset\": {\r\n border: \"none\",\r\n },\r\n \"&.Mui-focused fieldset\": {\r\n border: \"none\",\r\n },\r\n\r\n \"& .MuiInputBase-input\": {\r\n // paddingX: \"3px\",\r\n paddingLeft: \"3px\",\r\n paddingRight: isInputFocused ? \"3px\" : \"1px\",\r\n fontSize: \"14px\",\r\n fontWeight: \"400\",\r\n border: \"none\",\r\n height: \"18px\",\r\n width: \"120px\",\r\n whiteSpace: isInputFocused\r\n ? \"normal\"\r\n : \"nowrap\",\r\n overflow: isInputFocused ? \"visible\" : \"hidden\",\r\n textOverflow: isInputFocused\r\n ? \"clip\"\r\n : \"ellipsis !important\",\r\n },\r\n },\r\n }}\r\n />\r\n \r\n \r\n \r\n )}\r\n\r\n {!node?.data?.data?.locked && customize?.cropShape === \" \" && (\r\n \r\n )}\r\n {!node?.data?.data?.locked && (\r\n <>\r\n {\" \"}\r\n {node?.data?.fileType !== \"video\" &&\r\n customize?.cropShape === \" \" && (\r\n \r\n setReplaceImages(false)}\r\n open={replaceImage}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n \r\n {\r\n dispatch(openImageandIcon(true));\r\n dispatch(isOpenImagesIcon(true));\r\n dispatch(setReplaceImageId(node?.id));\r\n dispatch(imageWHstate(nodeWH));\r\n setCropImg(false);\r\n setRedius(\"\");\r\n setReplaceImages(false);\r\n }}\r\n >\r\n \r\n {\" \"}\r\n \r\n \r\n Replace from library\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Upload from device\r\n \r\n \r\n \r\n \r\n \r\n {\r\n setShowImageviaUrlModal(true);\r\n setCustomize({\r\n ...customize,\r\n imagePreview: node?.data?.Label,\r\n });\r\n setImageDimensions({\r\n width: null,\r\n height: null,\r\n });\r\n setReplaceImages(false);\r\n setCropImg(false);\r\n setRedius(\"\");\r\n }}\r\n >\r\n \r\n \r\n \r\n Upload via URL\r\n \r\n \r\n \r\n \r\n }\r\n >\r\n {\r\n e.stopPropagation();\r\n setReplaceImages(!replaceImage);\r\n setShowFontSizeOpt(false);\r\n setCropImg(false);\r\n setShowLinkMoreOptions(false);\r\n setShowBgColor(false);\r\n setShowReaction(false);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {node?.data?.fileType !== \"video\" &&\r\n customize?.cropShape === \" \" && (\r\n \r\n setShowFontSizeOpt(false)}\r\n open={showFontSizeOpt}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n \r\n {\r\n setCustomize((prevCustomize) => ({\r\n ...prevCustomize,\r\n flipHorizontal:\r\n !prevCustomize.flipHorizontal,\r\n }));\r\n // setTimeout(() => {\r\n // setCustomize((prevCustomize) => ({\r\n // ...prevCustomize,\r\n // flipHorizontal: true,\r\n // }));\r\n // }, 200);\r\n let updatedNodes;\r\n setNodes((nds) => {\r\n updatedNodes = nds.map((node1) => {\r\n if (node1.id === node?.id) {\r\n return {\r\n ...node1,\r\n data: {\r\n ...node1.data,\r\n flipHorizontal:\r\n !node1.data.flipHorizontal,\r\n flipVertical:\r\n node1.data.flipVertical,\r\n },\r\n };\r\n }\r\n return node1;\r\n });\r\n return updatedNodes;\r\n });\r\n debouncedUpdateJson(\r\n updatedNodes,\r\n getEdges()\r\n );\r\n setShowFontSizeOpt(false);\r\n setFlipShow(false);\r\n }}\r\n sx={{\r\n cursor: \"pointer\",\r\n borderRadius: \"8px\",\r\n transition: \"all 0.3s ease\",\r\n color: \"black\",\r\n height: \"36px\",\r\n paddingX: \"8px\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#F5F5F5\",\r\n },\r\n }}\r\n >\r\n \r\n\r\n \r\n Flip Horizontal\r\n \r\n \r\n {\r\n setCustomize((prevCustomize) => ({\r\n ...prevCustomize,\r\n flipVertical: !prevCustomize.flipVertical,\r\n }));\r\n\r\n // setTimeout(() => {\r\n // setCustomize((prevCustomize) => ({\r\n // ...prevCustomize,\r\n // flipVertical: true,\r\n // }));\r\n // }, 200);\r\n let updatedNodes;\r\n setNodes((nds) => {\r\n updatedNodes = nds.map((node1) => {\r\n if (node1.id === node?.id) {\r\n return {\r\n ...node1,\r\n data: {\r\n ...node1.data,\r\n flipHorizontal:\r\n node1.data.flipHorizontal,\r\n flipVertical:\r\n !node1.data.flipVertical,\r\n },\r\n };\r\n }\r\n return node1;\r\n });\r\n return updatedNodes;\r\n });\r\n debouncedUpdateJson(\r\n updatedNodes,\r\n getEdges()\r\n );\r\n setShowFontSizeOpt(false);\r\n setFlipShow(false);\r\n }}\r\n sx={{\r\n cursor: \"pointer\",\r\n borderRadius: \"8px\",\r\n gap: \"14px\",\r\n color: \"black\",\r\n height: \"36px\",\r\n paddingX: \"8px\",\r\n transition: \"all 0.3s ease\",\r\n \"&:hover\": {\r\n backgroundColor: \"#F5F5F5\",\r\n },\r\n }}\r\n >\r\n \r\n \r\n Flip Vertical\r\n \r\n \r\n \r\n }\r\n >\r\n {\r\n e.stopPropagation();\r\n setShowFontSizeOpt(!showFontSizeOpt);\r\n setReplaceImages(false);\r\n setCropImg(false);\r\n setShowLinkMoreOptions(false);\r\n setShowBgColor(false);\r\n setShowReaction(false);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {customize?.cropShape === \" \" && (\r\n \r\n \r\n handleFileExport()}\r\n >\r\n {loadingDownload ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n )}\r\n {node?.data?.fileType !== \"video\" && (\r\n \r\n setCropImg(false)}\r\n open={cropImg}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n \r\n {\r\n setCustomize({\r\n ...customize,\r\n cropShape: \"custom\",\r\n imagePreview: node?.data?.Label,\r\n });\r\n if (\r\n node?.data?.Label?.includes(\r\n \"https://template.cloudairy.com\"\r\n ) ||\r\n node?.data?.flipUrl?.includes(\r\n \"https://template.cloudairy.com\"\r\n )\r\n ) {\r\n await commanService.deleteApi(\r\n \"drawboard\",\r\n \"upload/delete-file\",\r\n {\r\n filePath: node?.data?.Label?.includes(\r\n \"https://template.cloudairy.com\"\r\n )\r\n ? node.data.Label\r\n : node?.data?.flipUrl,\r\n }\r\n );\r\n }\r\n setCropImg(false);\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:\r\n imageDimensions.width !== null\r\n ? imageDimensions.width\r\n : node?.data?.imageWidth ||\r\n node?.data?.width,\r\n height:\r\n imageDimensions.height !== null\r\n ? imageDimensions.height\r\n : node?.data?.imageHeigth ||\r\n node?.data?.height,\r\n data: {\r\n ...n.data,\r\n cropShape: \"custom\",\r\n Label: node?.data?.originalUrl,\r\n flipUrl: node?.data?.originalUrl,\r\n redius: \"\",\r\n scale: false,\r\n original: false,\r\n width:\r\n imageDimensions.width !== null\r\n ? imageDimensions.width\r\n : node?.data?.imageWidth ||\r\n node?.data?.width,\r\n height:\r\n imageDimensions.height !== null\r\n ? imageDimensions.height\r\n : node?.data?.imageHeigth ||\r\n node?.data?.height,\r\n },\r\n style: {\r\n width:\r\n imageDimensions.width !== null\r\n ? imageDimensions.width\r\n : node?.data?.imageWidth ||\r\n node?.data?.width,\r\n height:\r\n imageDimensions.height !== null\r\n ? imageDimensions.height\r\n : node?.data?.imageHeigth ||\r\n node?.data?.height,\r\n },\r\n };\r\n }\r\n return n;\r\n })\r\n );\r\n\r\n setRedius(\"\");\r\n }}\r\n sx={{\r\n cursor: \"pointer\",\r\n borderRadius: \"8px\",\r\n transition: \"all 0.3s ease\",\r\n color: \"black\",\r\n height: \"36px\",\r\n paddingX: \"8px\",\r\n \"&:hover\": {\r\n backgroundColor: \"#F5F5F5\",\r\n },\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n Custom\r\n \r\n \r\n {customize?.cropShape === \" \" && (\r\n {\r\n setCustomize({\r\n ...customize,\r\n imagePreview: node?.data?.originalUrl,\r\n flipHorizontal: false,\r\n flipVertical: false,\r\n });\r\n\r\n if (\r\n node?.data?.Label?.includes(\r\n \"https://template.cloudairy.com\"\r\n ) ||\r\n node?.data?.flipUrl?.includes(\r\n \"https://template.cloudairy.com\"\r\n )\r\n ) {\r\n await commanService.deleteApi(\r\n \"drawboard\",\r\n \"upload/delete-file\",\r\n {\r\n filePath: node?.data?.Label?.includes(\r\n \"https://template.cloudairy.com\"\r\n )\r\n ? node.data.Label\r\n : node?.data?.flipUrl,\r\n }\r\n );\r\n }\r\n\r\n setNodes((nds) => {\r\n const updatedNodes = nds.map((n) => {\r\n if (n?.id === node?.id) {\r\n return {\r\n ...n,\r\n width:\r\n node?.data?.imageWidth ||\r\n node?.data?.width,\r\n height:\r\n node?.data?.imageHeigth ||\r\n node?.data?.height,\r\n data: {\r\n ...n.data,\r\n original: true,\r\n flipUrl: node?.data?.originalUrl,\r\n Label: node?.data?.originalUrl,\r\n width:\r\n node?.data?.imageWidth ||\r\n node?.data?.width,\r\n height:\r\n node?.data?.imageHeigth ||\r\n node?.data?.height,\r\n scale: false,\r\n cropShape: \"\",\r\n },\r\n style: {\r\n width:\r\n node?.data?.imageWidth ||\r\n node?.data?.width,\r\n height:\r\n node?.data?.imageHeigth ||\r\n node?.data?.height,\r\n },\r\n };\r\n }\r\n return n;\r\n });\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n const search = new URLSearchParams(\r\n location.search\r\n );\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 // edges: edges,\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 return updatedNodes;\r\n });\r\n setImageDimensions({\r\n width: null,\r\n height: null,\r\n });\r\n\r\n setCropImg(false);\r\n setRedius(\"\");\r\n }}\r\n sx={{\r\n cursor: \"pointer\",\r\n borderRadius: \"8px\",\r\n transition: \"all 0.3s ease\",\r\n color: \"black\",\r\n height: \"36px\",\r\n paddingX: \"8px\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#F5F5F5\",\r\n },\r\n }}\r\n >\r\n {/* */}\r\n \r\n {\" \"}\r\n \r\n \r\n\r\n \r\n Original\r\n \r\n \r\n )}\r\n \r\n {\r\n setCustomize({\r\n ...customize,\r\n cropShape: \"circle\",\r\n imagePreview: node?.data?.Label,\r\n });\r\n setRedius(\"circle\");\r\n\r\n setCropImg(false);\r\n }}\r\n sx={{\r\n cursor: \"pointer\",\r\n borderRadius: \"8px\",\r\n transition: \"all 0.3s ease\",\r\n color: \"black\",\r\n height: \"36px\",\r\n paddingX: \"8px\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#F5F5F5\",\r\n },\r\n }}\r\n >\r\n \r\n \r\n \r\n\r\n \r\n Circle\r\n \r\n \r\n\r\n {\r\n setCustomize({\r\n ...customize,\r\n cropShape: \"square\",\r\n imagePreview: node?.data?.Label,\r\n });\r\n\r\n setCropImg(false);\r\n\r\n setRedius(\"\");\r\n\r\n // setLoading(true);\r\n }}\r\n sx={{\r\n cursor: \"pointer\",\r\n borderRadius: \"8px\",\r\n transition: \"all 0.3s ease\",\r\n color: \"black\",\r\n height: \"36px\",\r\n paddingX: \"8px\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#F5F5F5\",\r\n },\r\n }}\r\n >\r\n \r\n {\" \"}\r\n \r\n \r\n\r\n \r\n Square\r\n \r\n \r\n {\r\n setCustomize({\r\n ...customize,\r\n cropShape: \"portrait\",\r\n imagePreview: node?.data?.Label,\r\n });\r\n\r\n setCropImg(false);\r\n setRedius(\"\");\r\n // setLoading(true);\r\n }}\r\n sx={{\r\n cursor: \"pointer\",\r\n borderRadius: \"8px\",\r\n transition: \"all 0.3s ease\",\r\n color: \"black\",\r\n height: \"36px\",\r\n paddingX: \"8px\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#F5F5F5\",\r\n },\r\n }}\r\n >\r\n \r\n {\" \"}\r\n \r\n \r\n\r\n \r\n Portrait (3:4)\r\n \r\n \r\n {\r\n setCustomize({\r\n ...customize,\r\n cropShape: \"landscape\",\r\n imagePreview: node?.data?.Label,\r\n });\r\n\r\n setCropImg(false);\r\n setRedius(\"\");\r\n // setLoading(true);\r\n }}\r\n sx={{\r\n cursor: \"pointer\",\r\n borderRadius: \"8px\",\r\n transition: \"all 0.3s ease\",\r\n color: \"black\",\r\n height: \"36px\",\r\n paddingX: \"8px\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#F5F5F5\",\r\n },\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n Landscape (4:3)\r\n \r\n \r\n {\r\n setCustomize({\r\n ...customize,\r\n cropShape: \"wide\",\r\n imagePreview: node?.data?.Label,\r\n });\r\n setCropImg(false);\r\n\r\n setRedius(\"\");\r\n // setLoading(true);\r\n }}\r\n sx={{\r\n cursor: \"pointer\",\r\n borderRadius: \"8px\",\r\n transition: \"all 0.3s ease\",\r\n color: \"black\",\r\n height: \"36px\",\r\n paddingX: \"8px\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#F5F5F5\",\r\n },\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n Wide (16:9)\r\n \r\n \r\n \r\n }\r\n >\r\n {\r\n e.stopPropagation();\r\n setCropImg(!cropImg);\r\n setReplaceImages(false);\r\n setShowFontSizeOpt(false);\r\n setShowLinkMoreOptions(false);\r\n setShowBgColor(false);\r\n setShowReaction(false);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}{\" \"}\r\n {customize?.cropShape === \" \" && (\r\n \r\n )}\r\n \r\n )}\r\n {!node?.data?.data?.locked && customize?.cropShape === \" \" && (\r\n setShowBgColor(false)}\r\n ref={borderPopupRef}\r\n >\r\n \r\n setShowBgColor(false)}\r\n open={showBgColor}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={}\r\n >\r\n \r\n \r\n {\r\n setShowBgColor(!showBgColor);\r\n setCropImg(false);\r\n setReplaceImages(false);\r\n setShowFontSizeOpt(false);\r\n setShowLinkMoreOptions(false);\r\n setShowReaction(false);\r\n }}\r\n >\r\n {node?.data?.showBorder ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {customize?.cropShape === \" \" && (\r\n \r\n )}\r\n\r\n {!node?.data?.data?.locked && customize?.cropShape === \" \" && (\r\n <>\r\n \r\n setShowReaction(false)}\r\n >\r\n {\r\n setShowReaction(!showReaction);\r\n setReplaceImages(false);\r\n setShowFontSizeOpt(false);\r\n setCropImg(false);\r\n setShowLinkMoreOptions(false);\r\n setShowBgColor(false);\r\n }}\r\n >\r\n setShowReaction(false)}\r\n open={showReaction}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n className={\"reactionPopper\"}\r\n title={\r\n {\r\n e.stopPropagation();\r\n }}\r\n onWheelCapture={(e) => {\r\n e.stopPropagation();\r\n }}\r\n >\r\n {\r\n addEmoji(node?.id, emoji);\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 handleClickTag(e);\r\n setShowReaction(false);\r\n setReplaceImages(false);\r\n setShowFontSizeOpt(false);\r\n setCropImg(false);\r\n setShowLinkMoreOptions(false);\r\n setShowBgColor(false);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {customize?.cropShape === \" \" && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {customize?.cropShape === \" \" && (\r\n \r\n )}\r\n {customize?.cropShape === \" \" && (\r\n \r\n \r\n \r\n {node?.data?.data?.locked ? (\r\n // \r\n \r\n ) : (\r\n // \r\n \r\n )}\r\n \r\n \r\n \r\n )}\r\n {!node?.data?.data?.locked && customize?.cropShape === \" \" && (\r\n <>\r\n \r\n \r\n \r\n \r\n {!node?.data?.imageShow ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n {\" \"}\r\n \r\n )}\r\n {customize?.cropShape === \" \" && (\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 handleHideImage()}\r\n handleClickOriginalImage={() =>\r\n handleClickOriginalImage()\r\n }\r\n handleClickDownload={() => handleFileExport()}\r\n />\r\n }\r\n >\r\n \r\n \r\n {\r\n setShowLinkMoreOptions(!showLinkMoreOptions);\r\n setCropImg(false);\r\n setReplaceImages(false);\r\n setShowFontSizeOpt(false);\r\n setShowBgColor(false);\r\n setShowReaction(false);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n\r\n {sizeAsPerZoom > 25 &&\r\n node?.selected &&\r\n !showExport &&\r\n customize?.cropShape === \" \" &&\r\n !node?.data?.data?.locked &&\r\n !isMultiNodeSelected &&\r\n !isNodeSelectionStarted &&\r\n !copyAsImage && (\r\n <>\r\n {!node?.data?.locked && (\r\n onResizeEnd(e, node)}\r\n onResize={(e) => {\r\n handleResize();\r\n }}\r\n />\r\n )}\r\n onResizeEnd(e, node)}\r\n onResize={onResize}\r\n onResizeStart={onResizeStart}\r\n minWidth={100}\r\n minHeight={100}\r\n style={{\r\n zIndex: 999999999999,\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid transparent\",\r\n }}\r\n >\r\n \r\n \r\n setIsResizing(true)}\r\n // keepAspectRatio={true}\r\n position=\"bottom-left\"\r\n onResizeEnd={(e) => onResizeEnd(e, node)}\r\n onResize={onResize}\r\n onResizeStart={onResizeStart}\r\n minWidth={100}\r\n minHeight={100}\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 onResize={onResize}\r\n onResizeStart={onResizeStart}\r\n minWidth={100}\r\n minHeight={100}\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 onResize={onResize}\r\n onResizeStart={onResizeStart}\r\n minWidth={100}\r\n minHeight={100}\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 !showExport &&\r\n !node.data.locked &&\r\n !copyAsImage &&\r\n !isDownload &&\r\n customize?.cropShape === \" \" && (\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 {loading && node?.data?.fileType !== \"video\" && (\r\n \r\n \r\n \r\n )}\r\n\r\n {cropLoader && (\r\n \r\n \r\n \r\n )}\r\n\r\n {customize?.cropShape !== \" \" && !cropLoader && (\r\n
\r\n \r\n
\r\n )}\r\n {customize?.cropShape === \" \" && node?.data?.Label !== \"loading\" && (\r\n \r\n {node?.data?.fileType !== \"video\" ? (\r\n <>\r\n {\r\n setLoading(false);\r\n setCropLoader(false);\r\n }}\r\n crossOrigin=\"anonymous\"\r\n onError={() => {\r\n setLoading(false);\r\n setCropLoader(false);\r\n }}\r\n alt=\"Drawing\"\r\n width={\"100%\"}\r\n height={\"100%\"}\r\n style={{\r\n objectFit: \"cover\",\r\n transform: `scale(${customize?.flipHorizontal ? -1 : 1}, ${\r\n customize?.flipVertical ? -1 : 1\r\n })`,\r\n transition: \"transform 0.3s ease\",\r\n borderRadius:\r\n node?.data?.cropShape === \"circle\" || redius === \"circle\"\r\n ? \"50%\"\r\n : \"0\",\r\n border:\r\n !loading &&\r\n node?.data?.showBorder &&\r\n node?.data?.imageShow === true\r\n ? `${borderWidth}px ${borderStyle} ${newBorderColor}`\r\n : \"0px solid transparent\",\r\n }}\r\n />\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n )}\r\n {/* \r\n {node.selected &&\r\n !node.data.locked &&\r\n !node.data.locked &&\r\n !showExport &&\r\n !copyAsImage &&\r\n customize?.cropShape === \" \" &&\r\n !isNodeSelectionStarted && (\r\n \r\n \r\n \r\n )}\r\n */}\r\n {customize?.cropShape === \" \" &&\r\n node?.data?.Label !== \"loading\" &&\r\n node?.data?.emoji &&\r\n !copyAsImage &&\r\n node?.data?.imageShow === true &&\r\n node?.data?.emoji.length > 0 && (\r\n \r\n \r\n \r\n {Object.values(emojiCount)\r\n .slice(0, showAllEmojis ? emojiCount.length : maxEmojis)\r\n .map((emoji, i) => (\r\n addEmoji(node?.id, emoji)}\r\n sx={{\r\n width: \"40px\",\r\n height: \"28px\",\r\n gap: \"6px\",\r\n borderRadius: \"68px\",\r\n border: `1px solid ${color?.primaryColor}`,\r\n alignContent: \"center\",\r\n justifyContent: \"center\",\r\n flexWrap: \"wrap\",\r\n backgroundColor: \"#E0EFFF\",\r\n }}\r\n >\r\n \r\n \r\n {emoji.count}\r\n \r\n \r\n ))}\r\n\r\n {!showAllEmojis && node?.data?.emoji.length > maxEmojis && (\r\n setShowAllEmojis(true)}\r\n >\r\n \r\n \r\n )}\r\n setShowReactionBottom(!showReactionBottom)}\r\n sx={{\r\n pointerEvents: node?.data?.data?.locked ? \"none\" : \"all\",\r\n cursor: \"pointer !important\",\r\n }}\r\n >\r\n setShowReactionBottom(false)}\r\n open={showReactionBottom}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n {\r\n e.stopPropagation();\r\n }}\r\n onWheelCapture={(e) => {\r\n e.stopPropagation();\r\n }}\r\n >\r\n {\r\n addEmoji(node?.id, emoji);\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 {customize?.cropShape === \" \" &&\r\n node?.data?.Label !== \"loading\" &&\r\n customize?.tag &&\r\n !copyAsImage &&\r\n node?.data?.imageShow === true &&\r\n customize?.tag?.length > 0 && (\r\n \r\n \r\n {node?.data?.tag?.length > 0 &&\r\n node.data?.tag\r\n .slice(0, showAllTags ? node?.data?.tag.length : maxTags)\r\n .map((val, index) => {\r\n const backgroundColor = val.color\r\n ? hexToRgba(val.color, 0.9)\r\n : \"gray\";\r\n const textColor =\r\n val.color && isColorLight(val.color) ? \"#333\" : \"#FFF\";\r\n\r\n return (\r\n \r\n {val.name.length > 12\r\n ? `${val.name.slice(0)}...`\r\n : val.name}\r\n \r\n );\r\n })}\r\n\r\n {!showAllTags &&\r\n customize?.tag &&\r\n customize?.tag?.length > maxTags && (\r\n setShowAllTags(true)}\r\n >\r\n \r\n \r\n )}\r\n \r\n \r\n )}\r\n\r\n {sizeAsPerZoom > 25 &&\r\n node?.selected &&\r\n !showExport &&\r\n !copyAsImage &&\r\n customize?.cropShape === \" \" &&\r\n !node?.data?.data?.locked &&\r\n !isMultiNodeSelected &&\r\n !isNodeSelectionStarted && (\r\n <>\r\n onResizeEnd(e, node)}\r\n style={{\r\n zIndex: 999999999999,\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid transparent\",\r\n }}\r\n >\r\n \r\n \r\n onResizeEnd(e, node)}\r\n style={{\r\n zIndex: 999999999999,\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid transparent\",\r\n }}\r\n >\r\n \r\n \r\n onResizeEnd(e, node)}\r\n style={{\r\n zIndex: 999999999999,\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid transparent\",\r\n }}\r\n >\r\n \r\n \r\n onResizeEnd(e, node)}\r\n style={{\r\n zIndex: 999999999999,\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid transparent\",\r\n }}\r\n >\r\n \r\n \r\n \r\n )}\r\n \r\n setOpenTag(false)}\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 sx={{\r\n \"& .MuiPaper-root\": {\r\n ml: \"-10px\",\r\n width: 277,\r\n mt: \"15px\",\r\n // top:\"790px !important\",\r\n // left:\"634px !important\",\r\n boxShadow: \"none\",\r\n bgcolor: \"transparent\",\r\n },\r\n }}\r\n BackdropProps={{\r\n style: { backgroundColor: \"transparent\" },\r\n onClick: () => setOpenTag(false),\r\n }}\r\n >\r\n \r\n {!editTagValue && (\r\n {\r\n setNewTag(e.target.value);\r\n setError(false);\r\n }}\r\n onKeyDown={(e) => {\r\n if (e.key === \"Enter\") {\r\n handleAddTag();\r\n }\r\n }}\r\n error={error}\r\n helperText={error ? \"You can add a maximum of 8 tags.\" : \"\"}\r\n fullWidth\r\n sx={{\r\n \"& .MuiOutlinedInput-root\": {\r\n padding: \"1px\",\r\n borderBottom: \"2px solid #EEEEEE\",\r\n\r\n \"& fieldset\": {\r\n border: \"none\",\r\n },\r\n \"&:hover fieldset\": {},\r\n \"&.Mui-focused fieldset\": {},\r\n \"& .MuiInputBase-input::placeholder\": {\r\n color: \"#959BA3\",\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: \"12px !important\",\r\n fontWeight: \"400 !important\",\r\n },\r\n },\r\n }}\r\n />\r\n )}\r\n \r\n {editTagValue && (\r\n {\r\n setEditTagValue(e.target.value);\r\n setError(false);\r\n }}\r\n fullWidth\r\n sx={{\r\n \"& .MuiOutlinedInput-root\": {\r\n padding: \"1px\",\r\n borderBottom: \"2px solid #EEEEEE\",\r\n\r\n \"& fieldset\": {\r\n border: \"none\",\r\n },\r\n \"&:hover fieldset\": {},\r\n \"&.Mui-focused fieldset\": {},\r\n \"& .MuiInputBase-input::placeholder\": {\r\n color: \"#959BA3\",\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: \"12px !important\",\r\n fontWeight: \"400 !important\",\r\n },\r\n },\r\n }}\r\n />\r\n )}\r\n {editTagValue && (\r\n handleSaveEdit(editTagIndex)}\r\n sx={{\r\n backgroundColor: \"none\",\r\n color: \"blue\",\r\n padding: \"2px\",\r\n fontSize: \"12px\",\r\n borderRadius: \"8px\",\r\n textTransform: \"none\",\r\n cursor: \"pointer\",\r\n \"&:hover\": {\r\n backgroundColor: \"none\",\r\n },\r\n }}\r\n >\r\n Save\r\n \r\n )}\r\n \r\n \r\n {customize?.tag?.length > 0 &&\r\n customize?.tag?.map((val, index) => (\r\n \r\n \r\n {val.name.length > 12\r\n ? `${val.name.slice(0, 12)}...`\r\n : val.name}\r\n \r\n handleEditTag(index, val.name)}\r\n sx={{\r\n padding: \"0px\",\r\n marginLeft: \"4px\",\r\n }}\r\n >\r\n \r\n \r\n handleRemoveTag(index)}\r\n sx={{\r\n padding: \"0px\",\r\n marginLeft: \"4px\",\r\n }}\r\n >\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n {showImageviaUrlModal && (\r\n {\r\n setShowImageviaUrlModal(false);\r\n }}\r\n node={node}\r\n nodeWH={nodeWH}\r\n uploadViaUrl={setCustomize}\r\n open={showImageviaUrlModal}\r\n />\r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default memo(UploadImage, (prevProps, nextProps) => {\r\n return prevProps.data.globalDragging && nextProps.data.globalDragging;\r\n});\r\n"],"names":["UploadImage","node","_node$data","_node$data2","_node$data3","_node$data4","_node$data5","_node$data5$border","_node$data6","_node$data6$border","_node$data7","_node$data7$border","_node$data8","_node$data8$border","_node$data9","_node$data9$data","_node$data10","_node$data11","_node$data12","_node$data13","_node$data14","_node$data15","_node$data16","_node$data17","_nodeWH$style","_nodeWH$style2","_node$data19","_getNodes2","_node$data25","_getNodes3","_getNodes4","_getNodes4$filter","_cropperRef$current3","_node$data68","_node$data69","_node$data70","_node$data70$data","_node$data74","_node$data74$data","_node$data75","_node$data75$data","_node$data76","_node$data78","_node$data79","_node$data123","_node$data123$data","_node$data124","_node$data125","_node$data125$border","_node$data126","_node$data126$data","_node$data127","_node$data127$data","_node$data128","_node$data128$data","_node$data129","_node$data129$data","_node$data130","_node$data131","_imageData1$current","_imageData1$current2","_node$data132","_node$data132$data","_node$data133","_node$data134","_node$data135","_node$data136","_node$data137","_node$data138","_node$data139","_node$data139$data","_node$data140","_node$data140$data","_node$data141","_node$data142","_node$data143","_node$data144","_node$data145","_node$data146","_node$data147","_node$data148","_node$data149","_node$data150","_node$data151","_node$data152","_node$data153","_node$data153$data","_node$data154","_node$data155","_customize$tag2","_node$data156","_node$data156$emoji","_node$data157","_node$data157$tag","_node$data158","_node$data159","_customize$tag3","_node$data160","_node$data160$data","_customize$tag4","_customize$tag5","id","useParams","user_data","localStorage","getItem","imageData","useRef","imageData1","zoom","useViewport","sizeAsPerZoom","data","width","height","showExport","copyAsImage","isDownload","permission","useSelector","state","mindMapStore","showFontSizeOpt","setShowFontSizeOpt","useState","borderWidth","border","borderStyle","type","borderColor","opacity","isNodeSelectionStarted","useNodeSelectionStarted","selected","loading","setLoading","cropLoader","setCropLoader","loadingDownload","setLoadingDownload","showReactionBottom","setShowReactionBottom","hoveredItem","setHoveredItem","showDots","setShowDots","showLinkMoreOptions","setShowLinkMoreOptions","replaceImage","setReplaceImages","frameMoreOptionsRef","store","useStoreApi","cropImg","setCropImg","cropperRef","redius","setRedius","showBgColor","setShowBgColor","location","useLocation","showAllEmojis","setShowAllEmojis","showAllTags","setShowAllTags","showImageviaUrlModal","setShowImageviaUrlModal","socket","useSocketContext","userRowData","userDataLocal","JSON","parse","customize","setCustomize","imagePreview","Label","URL","createObjectURL","description","Description","cropShape","CropShape","ImageSize","locked","flipHorizontal","flipVertical","rotationAngle","tag","flipShow","setFlipShow","crop","showReaction","setShowReaction","newTag","setNewTag","error","setError","editTagIndex","setEditTagIndex","editTagValue","setEditTagValue","openTag","setOpenTag","React","anchorElTag","setAnchorElTag","isInputFocused","setIsInputFocused","idTag","Boolean","undefined","containerRef","borderPopupRef","cropRef","flipRef","reactionRef","replaceRef","architectureId","setNodes","getNodes","getIntersectingNodes","getNode","getEdges","useReactFlow","dispatch","useDispatch","undo","takeSnapshot","useUndoRedo","isResizing","nodeWH","isItemToSmall","isWidthLessthan25","isWidthLessthan50","isWidthLessthan100","useZoomPercentages","isOnlyOneNodeSelected","filter","n","length","newWh","setNewWh","style","useEffect","nodeRotating","rotateControlRef","updateNodeInternals","useUpdateNodeInternals","current","selection","select","dragHandler","drag","on","evt","_nodeWH$style3","_nodeWH$style4","dx","x","dy","y","deg","Math","atan2","PI","original","xPos","yPos","w","h","rotated","rad","center_x","center_y","new_x","cos","sin","new_y","new_w","abs","new_h","rotateDiv","nodes","map","nd","_objectSpread","omit","rotation","newPosition","RotateNodes","call","async","_parsedData","updatedNodes","parsedData","a_id","URLSearchParams","search","get","updateJson","json","architecture_json","lastUpdatedBy","user_id","hexToRgba","hex","bigint","parseInt","replace","g","b","concat","randomColor","colors","floor","random","_getNodes","_getNodes$filter","filteredNodes1","parentNode","val","_node$data18","includes","zIndex","imageShow","onResizeStart","_node$data20","isOrgChartFrame","prev","_nd$data4","rootFrameId","previousWidth","previousHeight","previousPosition","position","previousPositionAbsolute","positionAbsolute","onResize","e","params","_node$data21","_node$data22","_node$data23","heightScale","widthScale","_nd$data5","addEmoji","Id","emoji","_n$data","_n$data$emoji","_n$data3","existingEmojiIndex","findIndex","unified","userId","userData","_n$data2","_n$data2$emoji","_","index","setItem","stringify","lastEvent","debouncedUpdateJson","maxEmojis","maxTags","emojiD","reduce","acc","comment","_comment$data","_comment$data$emoji","forEach","imageUrl","count","emojiCount","Object","values","imageDimensions","setImageDimensions","newBorderColor","adjustOpacity","rgba","newOpacity","parts","match","_node$data24","socketEvents","NODE_UPDATED","_jsonData$nodes","jsonData","currData","find","_currData$data","_currData$data2","_currData$data3","_currData$data4","_currData$data5","_currData$data6","_currData$data7","_currData$data8","_currData$data9","_currData$data10","onResizeEnd","event","_parsedData5","nds","scale","updatedNode","_parsedData4","_updatedNodes","_ref","_imageData$current","_imageData$current2","Number","offsetWidth","offsetHeight","_groupNode","_groupNode2","_groupNode3","_groupNode4","intersections","groupNode","_store$getState","_store$getState$nodeI","getState","nodeInternals","_n$position","_parentNode$positionA","_parentNode$positionA2","_n$position2","_parentNode$positionA3","_parentNode$positionA4","tempNode","expandParent","push","_n2","_groupNode5","_node$positionAbsolut","_groupNode6","_groupNode6$positionA","_node$positionAbsolut2","_groupNode7","_groupNode7$positionA","_n3","structuredClone","_n","className","_getNodePositionInsid","getNodePositionInsideParent","useCallback","debounce","tempNodes","updatedEdges","_parsedData6","edges","common","getTimeDifference","commentTimestamp","currentTime","Date","now","differenceInMs","handleHideImage","_parsedData8","_node$data36","handleFileExport","_node$data37","_node$data37$filename","_node$data38","_node$data38$filename","_node$data39","_node$data39$filename","dataUrl","format","filename","endsWith","fontEmbedCSS","generateFontEmbedCss","toSvg","skipFonts","skipAutoScale","quality","toJpeg","_node$data40","fileType","_node$data41","response","fetch","url","blob","createUrlForVideo","slice","lastIndexOf","toPng","link","document","createElement","href","download","click","console","_cropperRef$current","_parsedData9","querySelector","_node$data42","_node$data43","_node$data44","_node$data45","_node$data46","_node$data47","_node$data48","_node$data49","_node$data50","_node$data51","_node$data52","_node$data53","_node$data54","imageWidth","imageHeigth","originalUrl","cropper","setAspectRatio","getAspectRatio","_node$data55","_node$data56","_node$data57","NaN","seletedNode","handleCrop","croppedCanvas","getCroppedCanvas","croppedDataURL","toDataURL","cropBoxElement","cropBox","then","res","file","File","formData","FormData","append","_cropBoxElement$style","_cropBoxElement$style2","_imageUploadResponse$","imageUploadResponse","commanService","uploadApi","_imageUploadResponse$2","_imageUploadResponse$3","_imageUploadResponse$4","_parsedData10","_imageUploadResponse$5","_imageUploadResponse$6","_imageUploadResponse$7","handleClickOutside","contains","target","cropImage","_node$data58","_node$data58$filename","_cropBoxElement$style3","_cropBoxElement$style4","divElement","_parsedData11","flipUrl","_node$data59","_node$data59$Label","_node$data60","_node$data60$flipUrl","_cropBoxElement$style5","_cropBoxElement$style6","_imageUploadResponse$8","_node$data61","_node$data61$Label","_node$data62","deleteApi","filePath","_imageUploadResponse$15","_imageUploadResponse$16","_imageUploadResponse$17","_parsedData12","_imageUploadResponse$9","_imageUploadResponse$10","_imageUploadResponse$11","_imageUploadResponse$12","_imageUploadResponse$13","_imageUploadResponse$14","_node$data63","_parsedData13","getRootProps","getInputProps","useDropzone","maxSize","accept","onDrop","files","rejectedFiles","errorToast","message","_node$data64","_node$data64$Label","_node$data65","_node$data65$flipUrl","_node$data66","_node$data66$Label","_node$data67","name","_imageUploadResponse$18","_imageUploadResponse$19","_imageUploadResponse$20","_parsedData14","_imageUploadResponse$21","_imageUploadResponse$22","_imageUploadResponse$23","_imageUploadResponse$24","_imageUploadResponse$25","_imageUploadResponse$26","_imageUploadResponse$27","_imageUploadResponse$28","_imageUploadResponse$29","_n$style","_n$style2","_n$style3","_n$style4","_n$style5","_n$style6","originalWidth","originalHeigth","handleKeyPress","key","stopPropagation","reactFlowPane","addEventListener","removeEventListener","handleInputChange","newNodes","value","selectedNodes","isMultiNodeSelected","useMemo","_cropperRef$current2","cropperInstance","checkCropBox","setTimeout","_jsxs","_Fragment","children","Box","sx","transform","pointerEvents","onMouseOver","onMouseLeave","_jsx","NodeToolbar","isVisible","dragging","marginTop","Position","Top","display","gap","p","bgcolor","boxShadow","borderRadius","alignItems","justifyContent","alignContent","CustomNameTooltip","placement","arrow","padding","title","minWidth","TextField","defaultValue","disabled","onFocus","_node$data71","_node$data71$data","preventDefault","onBlur","_node$data72","_node$data72$data","onChange","_node$data73","_node$data73$data","handleChange","autoComplete","overflow","paddingLeft","paddingRight","fontSize","fontWeight","whiteSpace","textOverflow","CommonDivider","my","orientation","variant","flexItem","ref","CustomTooltip","mt","PopperProps","disablePortal","onClose","open","disableFocusListener","disableHoverListener","disableTouchListener","Stack","flexDirection","direction","paddingX","transition","cursor","onClick","openImageandIcon","isOpenImagesIcon","setReplaceImageId","imageWHstate","IcImageOutlined","Typography","lineHeight","color","IcLaptop","_node$data77","IcLinkOutlined3","ToolTipWithDisabled","tooltipTitle","IconButton","background","IcReplaceImageFile","onMouseDown","prevCustomize","node1","backgroundColor","IcFlipHorizotal","IcFlipVertical","marginRight","SimpleCircularProgress","size","IcImageDownload","_node$data80","_node$data81","_node$data81$Label","_node$data82","_node$data82$flipUrl","_node$data83","_node$data83$Label","_node$data84","_node$data85","_node$data86","_node$data87","_node$data88","_node$data89","_node$data90","_node$data91","_node$data92","_node$data93","_node$data94","_node$data95","_node$data96","_node$data97","_node$data98","marginLeft","IcCustom","letterSpacing","_node$data99","_node$data100","_node$data100$Label","_node$data101","_node$data101$flipUrl","_node$data102","_node$data102$Label","_node$data103","_parsedData15","_node$data104","_node$data105","_node$data106","_node$data107","_node$data108","_node$data109","_node$data110","_node$data111","_node$data112","_node$data113","_node$data114","_node$data115","_node$data116","_node$data117","IcOriginal","borderBottom","marginBottom","_node$data118","IcCircle","_node$data119","IcSquare","_node$data120","IcPortails","_node$data121","IcRectangle","_node$data122","IcWide","IcImageCrop","ClickAwayListener","onClickAway","FrameBorderToolbar","showBorder","IcBorderStyle","onWheelCapture","EmojiPicker","onEmojiClick","IcSmileHappyPlus","currentTarget","previousOpen","IcTagOutlined","handleAddComment","widthN","heightN","timeNow","newComment","label","timestamp","replyData","maxPosition","new","resolved","read","replyTimeStamp","outline","selectable","prevNodes","_parsedData7","_node$data26","finalUpdatedNodes","IcMessageOneBubbleOutlined","toggleLockUnlock","_parsedData3","_parsedData2","_nd$data","_nd$data2","_nd$data3","_nd$data3$data","IcLockLocked","IcLockUnLocked","IcEyeOpen","fill","IcHideImg","FrameMoreMenus","simpleRef","showRename","showDuplicate","showCopyAsImage","showAddComment","showLockUnlock","showCopyLink","exportShow","showLinkTo","saveFile","originalSize","hideImage","showDelete","showFrame","showBringToFrontAndBack","setShowFrameMoreOptions","handleClickOriginalImage","_node$data27","_node$data28","_node$data29","_node$data30","_node$data31","_node$data32","_node$data33","_node$data34","_node$data35","handleClickDownload","IcMenuDotsVertical","NodeResizer","keepAspectRatio","handleStyle","minHeight","NodeResizeControl","transformOrigin","primaryColor","Handle","connectionMode","isConnectable","maxWidth","visibility","maxHeight","transitionDuration","onConnect","log","left","top","CircularProgress","Cropper","crossOrigin","preview","zoomable","initialAspectRatio","checkOrientation","minCropBoxHeight","minCropBoxWidth","responsive","guides","autoCropArea","src","viewMode","s3AssetsUrl","onLoad","onError","alt","objectFit","controls","handleClickAway","bottom","flexWrap","i","IcPlus2","textColor","rgb","isColorLight","paddingY","Popover","anchorEl","anchorOrigin","vertical","horizontal","ml","BackdropProps","placeholder","onKeyDown","handleAddTag","_customize$tag","trim","updatedTags","helperText","fullWidth","idx","handleSaveEdit","textTransform","handleEditTag","EditIcon","handleRemoveTag","CancelIcon","UploadViaUrl","handleClose","uploadViaUrl","VotingCommon","memo","prevProps","nextProps","globalDragging"],"sourceRoot":""}