{"version":3,"file":"static/js/main-57da5e41.e175077b.js","mappings":"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","sources":["Components/DrawBoard/Nodes-Types/UserCardNode.js","Components/DrawBoard/Nodes-Types/UserStoryMapNode.js","Components/DrawBoard/Nodes-Types/shape-table/ShapeTableInput.js","Components/DrawBoard/Nodes-Types/shape-table/ShapeTableNode.js","Components/DrawBoard/Nodes-Types/tableNodeComponents/TableInput.js"],"sourcesContent":["import React, {\r\n useState,\r\n useRef,\r\n useCallback,\r\n useMemo,\r\n useEffect,\r\n memo,\r\n} from \"react\";\r\nimport {\r\n TextField,\r\n Box,\r\n IconButton,\r\n ClickAwayListener,\r\n Stack,\r\n Popover,\r\n} from \"@mui/material\";\r\nimport { Handle, NodeResizeControl } from \"reactflow\";\r\nimport { debounce } from \"lodash\";\r\nimport { useParams, useLocation } from \"react-router-dom\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport {\r\n convertToRgba,\r\n updateJson,\r\n} from \"../../../CommanFunctions/commanFunctions\";\r\nimport {\r\n IcHiring,\r\n IcLockLocked,\r\n IcLockUnLocked,\r\n IcSettingsOutlined,\r\n} from \"../../../assets/icon-components\";\r\nimport { IcMenuDotsVertical } from \"../../../assets/icon-components\";\r\nimport { Position, NodeToolbar } from \"reactflow\";\r\nimport { IcChangeBg } from \"../../../assets/icon-components\";\r\nimport ToolTipWithDisabled from \"../top-toolbar/components/ToolTipWithDisabled\";\r\nimport ColorPicker from \"react-best-gradient-color-picker\";\r\nimport { CustomTooltip } from \"../top-toolbar/components/CustomTooltip\";\r\nimport { CustomNameTooltip } from \"../top-toolbar/components/CustomTooltip\";\r\nimport { useReactFlow } from \"reactflow\";\r\nimport FrameMoreMenus from \"../../Node/frameNode/FrameMoreMenus\";\r\nimport SimpleCheckBox from \"../../../common-components/SimpleCheckBox\";\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 CommonDivider from \"../../../common-components/CommonDivider\";\r\n\r\nconst UserCardNode = (node) => {\r\n const cardRef = useRef(null);\r\n const user_data = localStorage.getItem(\"user_data\");\r\n const { setNodes, getNodes } = useReactFlow();\r\n const [hoveredItem, setHoveredItem] = useState(\"\");\r\n const [hovered, setHovered] = useState(false);\r\n const [isFocused, setIsFocused] = useState({\r\n isLocation: false,\r\n isTeam: false,\r\n });\r\n const frameMoreOptionsRef = useRef(null);\r\n const [showFrameMoreOptions, setShowFrameMoreOptions] = useState(false);\r\n const borderPopupRef = useRef(null);\r\n useEffect(() => {\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleClickOutside);\r\n };\r\n }, []);\r\n const handleClickOutside = (event) => {\r\n if (\r\n borderPopupRef?.current &&\r\n borderPopupRef.current.contains(event.target)\r\n ) {\r\n setShowColor(true);\r\n } else {\r\n setShowColor(false);\r\n }\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 { copyAsImage } = useSelector((state) => state?.mindMapStore);\r\n const { isNodeSelectionStarted } = useNodeSelectionStarted({\r\n selected: node?.selected,\r\n });\r\n const [showColor, setShowColor] = useState(false);\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n const [open, setOpen] = React.useState(false);\r\n const canBeOpen = open && Boolean(anchorEl);\r\n const [zoomPercentages, setZoomPercentages] = useState(100);\r\n const id = canBeOpen ? \"transition-popper\" : undefined;\r\n const handleClick = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n setOpen((previousOpen) => !previousOpen);\r\n setShowFrameMoreOptions(false);\r\n };\r\n const isWidthLessthan25 = useMemo(\r\n () => zoomPercentages <= 25,\r\n [zoomPercentages]\r\n );\r\n const isWidthLessthan50 = useMemo(\r\n () => 25 < zoomPercentages && zoomPercentages <= 50,\r\n [zoomPercentages]\r\n );\r\n const isWidthLessthan100 = useMemo(\r\n () => 50 < zoomPercentages && zoomPercentages <= 100,\r\n [zoomPercentages]\r\n );\r\n\r\n const handleCheckboxToggle = (option) => {\r\n const newOptionValue = !node?.data?.[option];\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);\r\n };\r\n const handleInputChange = (value, name) => {\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 [name]: value,\r\n },\r\n };\r\n }\r\n return nd;\r\n });\r\n return updatedNodes;\r\n });\r\n debouncedUpdateJson(updatedNodes);\r\n };\r\n\r\n const debouncedUpdateJson = useCallback(\r\n debounce((tempNodes) => {\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: tempNodes.length > 0 ? tempNodes : getNodes(),\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id: architectureId,\r\n dispatch,\r\n undo,\r\n takeSnapshot,\r\n a_id,\r\n });\r\n }, 500),\r\n [updateJson, user_data, id, dispatch, undo]\r\n );\r\n\r\n useEffect(() => {\r\n if (cardRef?.current?.offsetHeight) {\r\n let updatedNodes = [];\r\n const parsedData = user_data ? JSON.parse(user_data) : {};\r\n\r\n setNodes((prev) => {\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: prev,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n\r\n updatedNodes = prev.map((node) => {\r\n if (node?.id === id) {\r\n return {\r\n ...node,\r\n style: {\r\n ...node.style,\r\n height: Number(cardRef.current.offsetHeight + 30),\r\n },\r\n };\r\n }\r\n return node;\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\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n lastUpdatedBy: parsedData?.user_id,\r\n lastEvent: `editor_changed_${id}`,\r\n },\r\n },\r\n id: architectureId,\r\n dispatch,\r\n undo,\r\n a_id,\r\n });\r\n }\r\n }, [cardRef?.current?.offsetHeight]);\r\n\r\n const selectedNodes = getNodes()?.filter((val) => val?.selected)?.length;\r\n\r\n const isMultiNodeSelected = useMemo(() => {\r\n return selectedNodes > 1;\r\n }, [selectedNodes]);\r\n\r\n const onResizeEnd = (event, node) => {\r\n if (event.x > 330 && event.x < 650) {\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 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 let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n setNodes((prev) => {\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: prev,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n updatedNodes = prev?.map((_) => {\r\n if (_?.id === node?.id) {\r\n _ = JSON.parse(JSON.stringify(_));\r\n _.style.width = Number(event?.x);\r\n _.style.height = Number(cardRef?.current?.offsetHeight + 40);\r\n\r\n return _;\r\n } else {\r\n return _;\r\n }\r\n });\r\n\r\n return updatedNodes;\r\n });\r\n\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n lastUpdatedBy: parsedData?.user_id,\r\n lastEvent: `editor_changed_${node?.id}`,\r\n },\r\n },\r\n id: architectureId,\r\n dispatch,\r\n undo,\r\n a_id,\r\n takeSnapshot,\r\n });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (!node?.selected) {\r\n setShowFrameMoreOptions(false);\r\n }\r\n }, [node?.selected]);\r\n\r\n return (\r\n setHovered(true)}\r\n onMouseOut={() => setHovered(false)}\r\n >\r\n {node?.selected && !isMultiNodeSelected && (\r\n \r\n \r\n {node.selected && (\r\n <>\r\n {!node?.data?.lock && (\r\n <>\r\n \r\n setShowColor(false)}\r\n >\r\n setShowColor(!showColor)}>\r\n setShowColor(false)}\r\n open={showColor}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n {\r\n e.stopPropagation();\r\n setShowFrameMoreOptions(false);\r\n }}\r\n >\r\n \r\n handleInputChange(color, \"cardColor\")\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 \r\n \r\n \r\n \r\n {\" \"}\r\n \r\n )}\r\n \r\n \r\n {\r\n setShowFrameMoreOptions(false);\r\n handleCheckboxToggle(\"lock\");\r\n }}\r\n >\r\n {node?.data?.lock ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n {\" \"}\r\n \r\n setShowFrameMoreOptions(false)}\r\n open={showFrameMoreOptions}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n \r\n }\r\n >\r\n {\r\n setShowColor(false);\r\n // setShowBackgroundPopup(false);\r\n // setShowBorderPopup(false);\r\n setShowFrameMoreOptions(!showFrameMoreOptions);\r\n // setIsShowToolsPop(true);\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 handleInputChange(e.target.value, \"title\");\r\n }}\r\n autoComplete=\"off\"\r\n sx={{\r\n \"& .MuiOutlinedInput-root\": {\r\n width: \"100%\",\r\n border: \"none\",\r\n borderRadius: \"0px\",\r\n padding: node?.data?.hiring ? \"0px 85px 0px 0px\" : \"0px\",\r\n height: \"100%\",\r\n overflow: \"auto\",\r\n maxHeight: \"160px\",\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 \"& .MuiInputBase-input::placeholder\": {\r\n color: \"#848382 !important\",\r\n },\r\n \"&.Mui-focused .MuiInputBase-input::placeholder\": {\r\n color: \"#84838299 !important\",\r\n },\r\n \"& .MuiInputBase-input\": {\r\n pointerEvents: \"all\",\r\n padding: \"0\",\r\n width: \"100%\",\r\n border: \"none\",\r\n borderRadius: \"0px\",\r\n lineHeight: \"20.16px\",\r\n fontSize: \"16px !important\",\r\n fontWeight: \"700 !important\",\r\n height: \"auto\",\r\n minHeight: \"15px\",\r\n overflow: \"hidden\",\r\n resize: \"none\",\r\n },\r\n },\r\n }}\r\n />\r\n {node?.data?.hiring && (\r\n \r\n \r\n \r\n )}\r\n \r\n {node?.data?.descriptionShow && (\r\n handleInputChange(e.target.value, \"description\")}\r\n autoComplete=\"off\"\r\n sx={{\r\n \"& .MuiOutlinedInput-root\": {\r\n width: \"100%\",\r\n border: \"none\",\r\n padding: \"0px\",\r\n height: \"100%\",\r\n overflow: \"auto\",\r\n maxHeight: \"160px\",\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 \"& .MuiInputBase-input::placeholder\": {\r\n color: \"#848382 !important\",\r\n },\r\n \"&.Mui-focused .MuiInputBase-input::placeholder\": {\r\n color: \"#B5B5B4 !important\",\r\n },\r\n \"& .MuiInputBase-input\": {\r\n pointerEvents: \"all\",\r\n borderRadius: \"0px\",\r\n padding: \"0\",\r\n width: \"100%\",\r\n border: \"none\",\r\n lineHeight: \"17.64px\",\r\n fontSize: \"14px !important\",\r\n fontWeight: \"400 !important\",\r\n height: \"auto\",\r\n minHeight: \"15px\",\r\n overflow: \"hidden\",\r\n resize: \"none\",\r\n },\r\n },\r\n }}\r\n />\r\n )}\r\n\r\n {(node?.data?.teamShow || node?.data?.locationShow) && (\r\n \r\n \r\n \r\n )}\r\n\r\n {node?.data?.locationShow && (\r\n \r\n \r\n Location\r\n \r\n setIsFocused({ isLocation: true })}\r\n onBlur={() => setIsFocused(false)}\r\n onChange={(e) => handleInputChange(e.target.value, \"location\")}\r\n autoComplete=\"off\"\r\n sx={{\r\n \"& .MuiOutlinedInput-root\": {\r\n border: \"none\",\r\n padding: \"0px\",\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 \"& .MuiInputBase-input::placeholder\": {\r\n color: \"#848382\",\r\n textAlign: \"end\",\r\n },\r\n \"&.Mui-focused .MuiInputBase-input::placeholder\": {\r\n color: \"#84838299\",\r\n },\r\n \"& .MuiInputBase-input\": {\r\n padding: \"0\",\r\n border: \"none\",\r\n lineHeight: \"17.64px\",\r\n textAlign: \"end\",\r\n fontSize: \"14px !important\",\r\n fontWeight: \"400 !important\",\r\n height: \"auto\",\r\n minHeight: \"18px\",\r\n resize: \"none\",\r\n },\r\n },\r\n }}\r\n />\r\n \r\n )}\r\n {node?.data?.teamShow && (\r\n \r\n \r\n Team\r\n \r\n\r\n setIsFocused({ isTeam: true })}\r\n onBlur={() => setIsFocused(false)}\r\n onChange={(e) => handleInputChange(e.target.value, \"team\")}\r\n autoComplete=\"off\"\r\n sx={{\r\n \"& .MuiOutlinedInput-root\": {\r\n border: \"none\",\r\n padding: \"0px\",\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 \"& .MuiInputBase-input::placeholder\": {\r\n color: \"#848382\",\r\n textAlign: \"end\",\r\n },\r\n \"&.Mui-focused .MuiInputBase-input::placeholder\": {\r\n color: \"#84838299\",\r\n },\r\n \"& .MuiInputBase-input\": {\r\n padding: \"0\",\r\n border: \"none\",\r\n lineHeight: \"17.64px\",\r\n textAlign: \"end\",\r\n fontSize: \"14px !important\",\r\n fontWeight: \"400 !important\",\r\n height: \"auto\",\r\n minHeight: \"18px\",\r\n overflow: \"hidden\",\r\n resize: \"none\",\r\n },\r\n },\r\n }}\r\n />\r\n \r\n )}\r\n \r\n {!node?.dragging && !copyAsImage && (\r\n <>\r\n {\r\n setHoveredItem(\"bottom\");\r\n }}\r\n onMouseLeave={() => {\r\n setHoveredItem(\"\");\r\n }}\r\n onClick={(e) => {\r\n e.preventDefault();\r\n }}\r\n >\r\n \r\n \r\n {\r\n setHoveredItem(\"right\");\r\n }}\r\n onMouseLeave={() => {\r\n setHoveredItem(\"\");\r\n }}\r\n onClick={(e) => {\r\n e.preventDefault();\r\n }}\r\n >\r\n \r\n \r\n {\r\n setHoveredItem(\"top\");\r\n }}\r\n onMouseLeave={() => {\r\n setHoveredItem(\"\");\r\n }}\r\n onClick={(e) => {\r\n e.preventDefault();\r\n }}\r\n >\r\n \r\n \r\n {\r\n setHoveredItem(\"left\");\r\n }}\r\n onMouseLeave={() => {\r\n setHoveredItem(\"\");\r\n }}\r\n onClick={(e) => {\r\n e.preventDefault();\r\n }}\r\n >\r\n \r\n \r\n \r\n )}\r\n {node.selected && !copyAsImage && (\r\n <>\r\n onResizeEnd(e, node)}\r\n >\r\n \r\n \r\n onResizeEnd(e, node)}\r\n >\r\n \r\n \r\n onResizeEnd(e, node)}\r\n >\r\n \r\n \r\n onResizeEnd(e, node)}\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 mt: \"-10px\",\r\n my: \"9px\",\r\n boxShadow: \"none\",\r\n bgcolor: \"transparent\",\r\n },\r\n }}\r\n >\r\n \r\n \r\n handleCheckboxToggle(\"hiring\")}\r\n sx={{ margin: 0 }}\r\n mainSx={{\r\n gap: \"18px !important\",\r\n }}\r\n labelFontSize={14}\r\n labelStyle={{\r\n color: \"#282828\",\r\n }}\r\n />\r\n \r\n\r\n handleCheckboxToggle(\"descriptionShow\")}\r\n >\r\n handleCheckboxToggle(\"descriptionShow\")}\r\n sx={{ margin: 0 }}\r\n mainSx={{ gap: \"18px !important\" }}\r\n labelFontSize={14}\r\n labelStyle={{ color: \"#282828\" }}\r\n />\r\n \r\n\r\n handleCheckboxToggle(\"locationShow\")}\r\n >\r\n handleCheckboxToggle(\"locationShow\")}\r\n sx={{ margin: 0 }}\r\n mainSx={{ gap: \"18px !important\" }}\r\n labelFontSize={14}\r\n labelStyle={{ color: \"#282828\" }}\r\n />\r\n \r\n\r\n handleCheckboxToggle(\"teamShow\")}\r\n >\r\n handleCheckboxToggle(\"teamShow\")}\r\n sx={{ margin: 0 }}\r\n mainSx={{ gap: \"18px !important\" }}\r\n labelFontSize={14}\r\n labelStyle={{ color: \"#282828\" }}\r\n />\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default memo(UserCardNode, (prevProps, nextProps) => {\r\n return prevProps.data.globalDragging && nextProps.data.globalDragging;\r\n});\r\n","import React, { memo, useCallback, useMemo, useState } from \"react\";\r\nimport { useReactFlow } from \"reactflow\";\r\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\r\nimport {\r\n Avatar,\r\n Box,\r\n IconButton,\r\n Stack,\r\n TextField,\r\n Typography,\r\n} from \"@mui/material\";\r\nimport { IcArrowExpand, IcPlus2 } from \"../../../assets/icon-components\";\r\nimport UserStoryMapModal, {\r\n getPriorityFill,\r\n getStatusFill,\r\n hexToRgba,\r\n} from \"../../../common-components/modals/UserStoryMapModal\";\r\nimport IcPriorityLevel from \"../../../assets/icon-components/IcPriorityLevel\";\r\nimport { CustomTooltip } from \"../top-toolbar/components/CustomTooltip\";\r\nimport { updateJson } from \"../../../CommanFunctions/commanFunctions\";\r\nimport { useLocation, useParams } from \"react-router-dom\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { debounce } from \"lodash\";\r\nimport { useUndoRedo } from \"../dndUndoRedo/UndoRedoProvider\";\r\nimport { s3AssetsUrl } from \"../const\";\r\n\r\nconst UserStoryMapNode = (node) => {\r\n const { data } = node;\r\n const { setNodes, getZoom, getNodes } = useReactFlow();\r\n\r\n const { id: architectureId } = useParams();\r\n const user_data = localStorage.getItem(\"user_data\");\r\n const { undo, takeSnapshot } = useUndoRedo();\r\n const location = useLocation();\r\n const dispatch = useDispatch();\r\n\r\n const [showDetailsModal, setShowDetailsModal] = useState(false);\r\n const [selectedCardData, setSelectedCardData] = useState({});\r\n\r\n const orderedKeys = [\"activities\", \"tasks\", \"releases\"];\r\n\r\n const onDragEnd = (result) => {\r\n const { source, destination } = result;\r\n let updatedNodes = getNodes();\r\n\r\n // Drop outside the list\r\n if (!destination) return;\r\n\r\n // Same position\r\n if (\r\n source.droppableId === destination.droppableId &&\r\n source.index === destination.index\r\n )\r\n return;\r\n\r\n // Get source and destination lists\r\n const sourceList = [...data?.sections[source.droppableId]];\r\n const destList =\r\n source.droppableId === destination.droppableId\r\n ? sourceList\r\n : [...data?.sections[destination.droppableId]];\r\n\r\n // Check if this is a release item being moved to tasks or activities\r\n const isReleaseToTaskOrActivity =\r\n source.droppableId === \"releases\" &&\r\n (destination.droppableId === \"activities\" ||\r\n destination.droppableId === \"tasks\");\r\n\r\n // If it's not a move within the same category AND not a release to task/activity, prevent the move\r\n if (\r\n source.droppableId !== destination.droppableId &&\r\n !isReleaseToTaskOrActivity\r\n ) {\r\n return;\r\n }\r\n\r\n // Remove from source list\r\n const [removed] = sourceList.splice(source.index, 1);\r\n\r\n // Handle placement based on destination\r\n if (source.droppableId === destination.droppableId) {\r\n // Same category reordering\r\n sourceList.splice(destination.index, 0, removed);\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 sections: {\r\n ...nd.data.sections,\r\n [source.droppableId]: sourceList,\r\n },\r\n },\r\n };\r\n }\r\n return nd;\r\n });\r\n\r\n return updatedNodes;\r\n });\r\n } else if (isReleaseToTaskOrActivity) {\r\n // Release to task/activity movement\r\n destList.splice(destination.index, 0, removed);\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 sections: {\r\n ...nd.data.sections,\r\n [source.droppableId]: sourceList,\r\n [destination.droppableId]: destList,\r\n },\r\n },\r\n };\r\n }\r\n return nd;\r\n });\r\n\r\n return updatedNodes;\r\n });\r\n }\r\n\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n\r\n 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\r\n const addNewItem = (section) => {\r\n const borderColor = {\r\n activities: \"#A815FF\",\r\n tasks: \"#FF9900\",\r\n releases: \"#D9D9D9\",\r\n };\r\n const newItem = {\r\n id: `${section}-${Math.random().toString(36).substr(2, 9)}`,\r\n type: section,\r\n title: \"\",\r\n description: \"\",\r\n status: \"\",\r\n priority: \"\",\r\n date: \"\",\r\n assignee: [],\r\n tag: [],\r\n borderColor: borderColor[section],\r\n };\r\n\r\n setNodes((prevNodes) => {\r\n const updatedNodes = prevNodes.map((nd) => {\r\n if (nd.id === node?.id) {\r\n return {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n sections: {\r\n ...nd.data.sections,\r\n [section]: [...nd.data.sections[section], newItem],\r\n },\r\n },\r\n };\r\n }\r\n return nd;\r\n });\r\n\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id: architectureId,\r\n dispatch,\r\n undo,\r\n a_id,\r\n should_delete: updatedNodes?.length === 0,\r\n takeSnapshot,\r\n });\r\n return updatedNodes;\r\n });\r\n };\r\n\r\n const debouncedUpdateJson = useCallback(\r\n debounce((tempNodes) => {\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: tempNodes.length > 0 ? tempNodes : getNodes(),\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id: architectureId,\r\n dispatch,\r\n undo,\r\n a_id,\r\n });\r\n }, 500),\r\n [updateJson, user_data, dispatch, undo]\r\n );\r\n\r\n const handleTitleChange = (e, sectionKey, itemId) => {\r\n let updatedNodes = getNodes();\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 sections: {\r\n ...nd.data.sections,\r\n [sectionKey]: nd.data.sections[sectionKey].map((item) => {\r\n if (item.id === itemId) {\r\n return {\r\n ...item,\r\n title: e.target.value,\r\n };\r\n }\r\n return item;\r\n }),\r\n },\r\n },\r\n };\r\n }\r\n return nd;\r\n });\r\n\r\n return updatedNodes;\r\n });\r\n\r\n debouncedUpdateJson(updatedNodes);\r\n };\r\n\r\n const handleCloseModal = () => {\r\n setShowDetailsModal(false);\r\n\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: getNodes(),\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id: architectureId,\r\n dispatch,\r\n undo,\r\n a_id,\r\n });\r\n };\r\n\r\n const getDragStyle = useMemo(() => {\r\n return (draggableStyle, isDragging, zoom) => {\r\n if (!isDragging) return draggableStyle;\r\n\r\n // Calculate fixed dimensions once\r\n const fixedWidth = draggableStyle.width\r\n ? draggableStyle.width / zoom\r\n : \"auto\";\r\n const fixedHeight = draggableStyle.height\r\n ? draggableStyle.height / zoom\r\n : \"auto\";\r\n\r\n return {\r\n ...draggableStyle,\r\n position: \"static\",\r\n width: fixedWidth,\r\n height: fixedHeight,\r\n };\r\n };\r\n }, []);\r\n\r\n const renderSection = (sectionKey, sectionValue) => (\r\n \r\n \r\n \r\n {sectionKey === \"releases\"\r\n ? \"Releases\"\r\n : sectionKey === \"tasks\"\r\n ? \"Tasks\"\r\n : \"Activities\"}\r\n \r\n addNewItem(sectionKey)}\r\n >\r\n \r\n \r\n \r\n \r\n {sectionKey === \"releases\"\r\n ? \"Add story\"\r\n : sectionKey === \"tasks\"\r\n ? \"Add task\"\r\n : \"Add activity\"}\r\n \r\n \r\n \r\n \r\n {(provided, snapshot) => (\r\n \r\n {sectionValue.map((item, index) => (\r\n \r\n {(provided, snapshot) => {\r\n const zoom = getZoom();\r\n const dragStyle = getDragStyle(\r\n provided.draggableProps.style,\r\n snapshot.isDragging,\r\n zoom\r\n );\r\n\r\n const fillColorStatus = getStatusFill(item?.status);\r\n const fillColorPriority = getPriorityFill(item?.priority);\r\n\r\n return (\r\n e.stopPropagation()}\r\n style={dragStyle}\r\n sx={{\r\n width: \"294px\",\r\n minHeight: \"50px\",\r\n borderWidth: \"4px 1px 1px 1px\",\r\n borderColor: item.borderColor,\r\n borderStyle: \"solid\",\r\n borderRadius: \"8px\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"center\",\r\n padding: \"8px\",\r\n gap: \"12px\",\r\n boxShadow: snapshot.isDragging\r\n ? \"0 5px 10px rgba(0,0,0,0.2)\"\r\n : \"none\",\r\n }}\r\n >\r\n \r\n \r\n handleTitleChange(e, sectionKey, item.id)\r\n }\r\n placeholder={\r\n sectionKey === \"releases\"\r\n ? \"Add Story\"\r\n : sectionKey === \"tasks\"\r\n ? \"Add Task\"\r\n : \"Add Activity\"\r\n }\r\n sx={{\r\n \"& .MuiOutlinedInput-root\": {\r\n border: \"none\",\r\n padding: \"0px\",\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 \"& .MuiInputBase-input::placeholder\": {\r\n color: \"#848382\",\r\n },\r\n \"&.Mui-focused .MuiInputBase-input::placeholder\":\r\n {\r\n color: \"#84838299\",\r\n },\r\n \"& .MuiInputBase-input\": {\r\n padding: \"0\",\r\n border: \"none\",\r\n lineHeight: \"20.64px\",\r\n fontSize: \"14px !important\",\r\n fontWeight: \"400 !important\",\r\n height: \"auto\",\r\n minHeight: \"10px\",\r\n overflow: \"hidden\",\r\n resize: \"none\",\r\n },\r\n },\r\n }}\r\n style={{\r\n backgroundColor: \"transparent\",\r\n border: \"none\",\r\n outline: \"none\",\r\n width: \"100%\",\r\n }}\r\n />\r\n {\r\n setShowDetailsModal(true);\r\n setSelectedCardData(item);\r\n }}\r\n >\r\n \r\n \r\n \r\n\r\n \r\n {item?.priority && (\r\n \r\n {\" \"}\r\n \r\n {item?.priority}{\" \"}\r\n \r\n )}\r\n\r\n {item?.status && (\r\n \r\n \r\n {fillColorStatus?.Icon && (\r\n \r\n )}\r\n \r\n {item?.status} \r\n \r\n )}\r\n\r\n {item?.date && (\r\n \r\n {\r\n \r\n }{\" \"}\r\n {item?.date}\r\n \r\n )}\r\n \r\n\r\n {item?.assignee.length > 0 && (\r\n \r\n \r\n {item?.assignee\r\n ?.slice(0, 5)\r\n .map((val, index) => (\r\n \r\n \r\n {val.charAt(0).toUpperCase()}\r\n \r\n \r\n \r\n {val}\r\n \r\n \r\n \r\n ))}\r\n \r\n }\r\n placement=\"bottom\"\r\n isAvatarGroup\r\n >\r\n \r\n {item?.assignee.slice(0, 5).map((val, index) => {\r\n return (\r\n \r\n \r\n {val.charAt(0).toUpperCase()}\r\n \r\n \r\n );\r\n })}\r\n {item?.assignee.length > 5 && (\r\n \r\n \r\n +{5}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n )}\r\n\r\n {item?.tag.length > 0 && (\r\n \r\n {item?.tag?.map((val, index) => {\r\n return (\r\n \r\n {val?.name}\r\n \r\n );\r\n })}\r\n \r\n )}\r\n \r\n );\r\n }}\r\n \r\n ))}\r\n {provided.placeholder}\r\n \r\n )}\r\n \r\n \r\n );\r\n\r\n return (\r\n \r\n \r\n {orderedKeys.map((key) => {\r\n const items = data.sections[key] || [];\r\n return renderSection(key, items);\r\n })}\r\n \r\n\r\n \r\n \r\n );\r\n};\r\n\r\nexport default memo(UserStoryMapNode, (prevProps, nextProps) => {\r\n return prevProps.data.globalDragging && nextProps.data.globalDragging;\r\n});\r\n","import React, { useState, useMemo, useRef, useEffect } from \"react\";\r\nimport { EditorContent, useEditor } from \"@tiptap/react\";\r\nimport { debounce } from \"lodash\";\r\nimport { tipTapExtensions } from \"../../tip-tap-editor\";\r\n\r\nconst ShapeTableInput = ({\r\n row,\r\n rowIndex,\r\n column,\r\n // handleChange,\r\n // handleClick,\r\n activeCell,\r\n cellKey,\r\n multiActiveCells,\r\n node,\r\n colIndex,\r\n isCellShow,\r\n currentFontFamily,\r\n focusNodeId,\r\n isVertical,\r\n getNode,\r\n getNodes,\r\n setNodes,\r\n location,\r\n updateJson,\r\n id,\r\n dispatch,\r\n undo,\r\n setCellEditors,\r\n isCellActive,\r\n debouncedUpdateHTML,\r\n setTableCells,\r\n tableCells,\r\n cellEditors,\r\n setFontFamily,\r\n fontFamilyArr,\r\n takeSnapshot,\r\n}) => {\r\n const getCellContent = (row, column) => {\r\n const htmlContent =\r\n (row && column && row[column] && row[column]?.editorHTML) ||\r\n (row && column && row[column] && row[column]?.text) ||\r\n (row && column && row[column] && row[column]?.linkText) ||\r\n \"\";\r\n if (htmlContent.trim().startsWith(\"${htmlContent}

`;\r\n };\r\n const [content, setContent] = useState(() => getCellContent(row, column));\r\n const [editorHeight, setEditorHeight] = useState(0);\r\n const [clickTimeSTamps, setClickTimeStamps] = useState({\r\n mouseDown: 0,\r\n mouseUp: 0,\r\n });\r\n const userRowData = localStorage.getItem(\"user_data\");\r\n const userData = userRowData ? JSON.parse(userRowData) : {};\r\n const fontSizeRef = useRef(\"10px\");\r\n const ref = useRef(null);\r\n\r\n useEffect(() => {\r\n if (ref.current) {\r\n setEditorHeight(ref.current.offsetHeight);\r\n }\r\n }, [content, ref.current]);\r\n\r\n const editor = useEditor(\r\n {\r\n extensions: tipTapExtensions(),\r\n content: (() => {\r\n const htmlContent = content ?? row[column]?.editorHTML ?? \"\";\r\n if (htmlContent.trim().startsWith(\"${htmlContent}

`;\r\n })(),\r\n onUpdate: ({ editor }) => {\r\n const newRows = tableCells?.map((row, rIdx) => {\r\n const cellKey = `${rIdx}-${column}`;\r\n return multiActiveCells.includes(cellKey)\r\n ? {\r\n ...row,\r\n [column]: {\r\n ...row?.[column],\r\n editorHTML: editor?.getHTML(),\r\n width: isVertical\r\n ? editorHeight >= row?.[column]?.width\r\n ? editorHeight\r\n : row?.[column]?.width\r\n : row?.[column]?.width,\r\n height: !isVertical\r\n ? editorHeight >= row?.[column]?.height\r\n ? editorHeight\r\n : row?.[column]?.height\r\n : row?.[column]?.height,\r\n },\r\n }\r\n : row;\r\n });\r\n\r\n setTableCells(newRows);\r\n\r\n const newContent = editor?.getText();\r\n const prevContent = prevContentRef.current;\r\n\r\n if (newContent !== prevContent) {\r\n prevContentRef.current = newContent;\r\n handleChange(newRows);\r\n }\r\n setContent(editor?.getHTML());\r\n },\r\n onBlur: ({ editor }) => {\r\n takeSnapshot({ nodes: getNodes(), edges: null });\r\n },\r\n editorProps: {\r\n handlePaste: (view, event) => {\r\n const pastedContent = event.clipboardData.getData(\"text/plain\");\r\n try {\r\n JSON.parse(pastedContent);\r\n return true;\r\n } catch (e) {\r\n return false;\r\n }\r\n },\r\n },\r\n },\r\n [Object.keys(row).length, tableCells.length]\r\n );\r\n\r\n useEffect(() => {\r\n let currentCell = document.getElementById(`${node?.id}-${cellKey}`);\r\n const cellClick = (e) => {\r\n editor.chain().focus().run();\r\n };\r\n if (editor) {\r\n if (currentCell) {\r\n currentCell.addEventListener(\"click\", cellClick);\r\n }\r\n }\r\n return () => {\r\n currentCell.removeEventListener(\"click\", cellClick);\r\n };\r\n }, [editor]);\r\n\r\n useEffect(() => {\r\n if (editor) {\r\n editor.commands.setContent(\r\n row[column]?.editorHTML ||\r\n row[column]?.text ||\r\n row[column]?.linkText ||\r\n \"\"\r\n );\r\n setContent(\r\n row[column]?.editorHTML ||\r\n row[column]?.text ||\r\n row[column]?.linkText ||\r\n \"\"\r\n );\r\n }\r\n }, [editor]);\r\n\r\n const handleChange = (newRows) => {\r\n let totalHeight = newRows.reduce((totalHeight, row) => {\r\n const rowHeight = Math.max(\r\n ...Object.values(row).map((cell) => {\r\n return cell?.height || 0;\r\n })\r\n );\r\n return totalHeight + rowHeight + 10;\r\n }, 0);\r\n\r\n const maxCellsRow = newRows.reduce((maxRow, currentRow) => {\r\n return Object.keys(currentRow).length > Object.keys(maxRow).length\r\n ? currentRow\r\n : maxRow;\r\n }, newRows[0]);\r\n\r\n const totalWidth = Object.keys(maxCellsRow).reduce((sum, cellKey) => {\r\n const maxColumnWidth = Math.max(\r\n ...newRows.map((row) => row[cellKey]?.width || 0)\r\n );\r\n return sum + maxColumnWidth;\r\n }, 0);\r\n\r\n let updatedNode;\r\n let updatedNodes = getNodes().map((nd) => {\r\n if (nd.id === node.id) {\r\n updatedNode = {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n tableCells: newRows,\r\n tableData: {\r\n ...nd.data.tableData,\r\n tableCells: newRows,\r\n },\r\n height: totalHeight + 10,\r\n width: totalWidth + 10,\r\n style: {\r\n ...nd.data.style,\r\n height: totalHeight + 10,\r\n width: totalWidth + 10,\r\n },\r\n },\r\n style: {\r\n ...nd.style,\r\n height: totalHeight + 10,\r\n width: totalWidth + 10,\r\n },\r\n };\r\n return updatedNode;\r\n }\r\n return nd;\r\n });\r\n\r\n setNodes(updatedNodes);\r\n debouncedUpdateHTMLContent([updatedNodes]);\r\n };\r\n\r\n const debouncedUpdateHTMLContent = useMemo(\r\n () =>\r\n debounce(async (updatedNodes) => {\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n lastUpdatedBy: userData?.user_id,\r\n lastEvent: `editor_changed_${node?.id}`,\r\n },\r\n },\r\n id,\r\n dispatch,\r\n undo,\r\n a_id: new URLSearchParams(location.search).get(\"a_id\"),\r\n });\r\n }, 500),\r\n [id, dispatch, undo, location.search]\r\n );\r\n\r\n const prevContentRef = useRef(editor?.getText());\r\n\r\n useEffect(() => {\r\n if (setCellEditors && editor) {\r\n if (activeCell === \"table\") {\r\n setCellEditors((prev) => {\r\n const uniqueEditors = [\r\n ...prev.filter(\r\n (item) => !(item.rowIndex === rowIndex && item.column === column)\r\n ),\r\n { editor, rowIndex, column },\r\n ];\r\n return uniqueEditors;\r\n });\r\n } else if (multiActiveCells.length > 1) {\r\n setCellEditors((prev) => [...prev, { editor, rowIndex, column }]);\r\n } else if (isCellActive) {\r\n setCellEditors((prev) => [{ editor, rowIndex, column }]);\r\n } else {\r\n setCellEditors((prev) =>\r\n prev.filter(\r\n (item) => !(item.rowIndex === rowIndex && item.column === column)\r\n )\r\n );\r\n }\r\n }\r\n }, [editor, isCellActive, activeCell]);\r\n\r\n useEffect(() => {\r\n const updatedCellContent = getCellContent(\r\n node.data?.tableData?.tableCells[rowIndex],\r\n column\r\n );\r\n if (JSON.stringify(updatedCellContent) !== JSON.stringify(content)) {\r\n setContent(updatedCellContent);\r\n }\r\n if (\r\n editor &&\r\n JSON.stringify(updatedCellContent) !== JSON.stringify(content)\r\n ) {\r\n editor?.commands.setContent(updatedCellContent);\r\n }\r\n }, [node?.data?.tableData, editor]);\r\n\r\n const handleClick = (e) => {\r\n ref?.current?.focus();\r\n if (clickTimeSTamps.mouseUp - clickTimeSTamps.mouseDown <= 20) {\r\n if (e.detail === 1) {\r\n if (window.getSelection) {\r\n if (window.getSelection().empty) {\r\n window.getSelection().empty();\r\n\r\n ref?.current?.focus();\r\n } else if (window.getSelection().removeAllRanges) {\r\n window.getSelection().removeAllRanges();\r\n ref?.current?.focus();\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n const editorElements = document.querySelectorAll(\".tiptap, .tiptap *\");\r\n editorElements.forEach((element) => {\r\n element.addEventListener(\r\n \"mousedown\",\r\n (e) => {\r\n e.stopPropagation();\r\n const selection = window.getSelection();\r\n // Check if a selection exists and clear it\r\n if (selection && selection.rangeCount > 0) {\r\n selection.removeAllRanges();\r\n }\r\n },\r\n true\r\n ); // Use capture phase to ensure it triggers before other handlers\r\n });\r\n\r\n const getCurrentStyles = (editor) => {\r\n return {\r\n fontSize:\r\n editor.getAttributes(\"textStyle\").fontSize ||\r\n editor.getAttributes(\"paragraph\").fontSize ||\r\n \"10px\",\r\n isBold: editor.isActive(\"bold\"),\r\n isItalic: editor.isActive(\"italic\"),\r\n isUnderline: editor.isActive(\"underline\"),\r\n isStrikethrough: editor.isActive(\"strike\"),\r\n textAlign: editor.isActive({ textAlign: \"left\" })\r\n ? \"left\"\r\n : editor.isActive({ textAlign: \"center\" })\r\n ? \"center\"\r\n : editor.isActive({ textAlign: \"right\" })\r\n ? \"right\"\r\n : \"left\",\r\n listType: editor.isActive(\"bulletList\")\r\n ? \"bullet\"\r\n : editor.isActive(\"orderedList\")\r\n ? \"ordered\"\r\n : null,\r\n textColor: editor.isActive(\"textStyle\")\r\n ? editor.getAttributes(\"textStyle\").color\r\n : editor.getAttributes(\"paragraph\").color,\r\n highlightColor: editor.getAttributes(\"highlight\").color,\r\n fontFamily:\r\n editor.getAttributes(\"fontFamily\").fontFamily ||\r\n editor.getAttributes(\"textStyle\").fontFamily ||\r\n \"default-font\",\r\n };\r\n };\r\n\r\n useEffect(() => {\r\n if (editor) {\r\n const updateTextStyles = () => {\r\n const currentStyles = getCurrentStyles(editor);\r\n const currentFontFamily =\r\n fontFamilyArr.find((font) => font.family === currentStyles.fontFamily)\r\n ?.name || \"Inter\";\r\n setFontFamily(currentFontFamily);\r\n };\r\n\r\n editor.on(\"selectionUpdate\", updateTextStyles);\r\n editor.on(\"transaction\", updateTextStyles);\r\n\r\n return () => {\r\n editor.off(\"selectionUpdate\", updateTextStyles);\r\n editor.off(\"transaction\", updateTextStyles);\r\n };\r\n }\r\n }, [editor]);\r\n\r\n const adjustEmptyPTags = (htmlContent) => {\r\n return htmlContent.replace(/

\\s*<\\/p>/g, \"


\");\r\n };\r\n\r\n const processedContent = adjustEmptyPTags(content);\r\n\r\n return (\r\n <>\r\n \r\n {!node?.data?.locked &&\r\n activeCell === cellKey &&\r\n multiActiveCells.includes(cellKey) ? (\r\n {\r\n // e?.stopPropagation();\r\n // e?.preventDefault();\r\n // // handleClick(e);\r\n // }}\r\n // onDoubleClick={(e) => {\r\n // e?.preventDefault();\r\n // e?.stopPropagation();\r\n // }}\r\n // onMouseDownCapture={(e) => {\r\n // e?.stopPropagation();\r\n // setClickTimeStamps((prev) => ({\r\n // ...prev,\r\n // mouseDown: e.timeStamp,\r\n // }));\r\n // }}\r\n // onMouseUpCapture={(e) =>\r\n // setClickTimeStamps((prev) => ({\r\n // ...prev,\r\n // mouseUp: e.timeStamp,\r\n // }))\r\n // }\r\n />\r\n ) : (\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ShapeTableInput;\r\n","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 Table from \"@mui/material/Table\";\r\nimport TableBody from \"@mui/material/TableBody\";\r\nimport TableCell from \"@mui/material/TableCell\";\r\nimport TableContainer from \"@mui/material/TableContainer\";\r\nimport TableRow from \"@mui/material/TableRow\";\r\nimport {\r\n IcAddRow,\r\n IcChangeBg,\r\n IcChangeBorder,\r\n IcChangeStyle,\r\n IcAddRowCol,\r\n IcMenuDotsVertical,\r\n IcTextBold,\r\n IcTextItalic,\r\n IcTextUnderline,\r\n IcTextStrickTrough,\r\n IcLinkOutlined3,\r\n IcLockLocked,\r\n IcLockUnLocked,\r\n IcTextAlignCenter,\r\n IcTextAlignLeft,\r\n IcTextAlignRight,\r\n IcTextColor,\r\n IcDeleteOutlined,\r\n IcPlus2,\r\n IcMergeCellOutlined,\r\n IcUnMergeCellOutlined,\r\n IcTextAlignItemTop,\r\n IcTextAlignItemCenter,\r\n IcTextAlignItemBottom,\r\n IcDownArrowFilled,\r\n IcUpArrowFilled,\r\n IcAddCol,\r\n} from \"../../../../assets/icon-components\";\r\nimport {\r\n useReactFlow,\r\n Handle,\r\n Position,\r\n NodeResizeControl,\r\n NodeToolbar,\r\n useStore,\r\n useUpdateNodeInternals,\r\n} from \"reactflow\";\r\nimport {\r\n Stack,\r\n ClickAwayListener,\r\n Box,\r\n IconButton,\r\n Typography,\r\n} from \"@mui/material\";\r\nimport ToolTipWithDisabled from \"../../top-toolbar/components/ToolTipWithDisabled\";\r\nimport { CustomTooltip } from \"../../top-toolbar/components/CustomTooltip\";\r\nimport \"../style.scss\";\r\nimport { CustomNameTooltip } from \"../../top-toolbar/components/CustomTooltip\";\r\nimport Popover from \"@mui/material/Popover\";\r\nimport { useSelector } from \"react-redux\";\r\nimport BackgroundTool from \"../../../Node/common-components/nodeTopToolbar/components/BackgroundTool\";\r\nimport BorderTool from \"../../../Node/common-components/nodeTopToolbar/components/BorderTool\";\r\nimport LinkTool from \"../../../Node/common-components/nodeTopToolbar/components/LinkTool\";\r\nimport FrameMoreMenus from \"../../../Node/frameNode/FrameMoreMenus\";\r\nimport { useLocation, useParams } from \"react-router-dom\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport {\r\n calculateHeightWidthFromPercentage,\r\n calculateHeightWidthInPercentage,\r\n convertToRgba,\r\n toRgba,\r\n updateJson,\r\n} from \"../../../../CommanFunctions/commanFunctions\";\r\nimport debounce from \"lodash.debounce\";\r\nimport { useUndoRedo } from \"../../dndUndoRedo/UndoRedoProvider\";\r\nimport CheckCircleOutlineIcon from \"@mui/icons-material/CheckCircleOutline\";\r\nimport ShapeTableInput from \"./ShapeTableInput\";\r\nimport CommonDivider from \"../../../../common-components/CommonDivider\";\r\nimport { color as colorsConst } from \"../../../../Utils/style/color/color\";\r\nimport useNodeSelectionStarted from \"../../../../Utils/hooks/useNodeSelectionStarted\";\r\nimport clsx from \"clsx\";\r\nimport { fontFamilyArr } from \"../../../Node/common-components/nodeTopToolbar/MindMapNodesToolbar/ToolbarMenuItems/constants\";\r\n\r\nconst fontSizeArr = [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22];\r\n\r\nfunction checkSingleRowOrColumn(selectedCellsKey) {\r\n const rows = [];\r\n const columns = [];\r\n\r\n selectedCellsKey.forEach((key) => {\r\n const [row, column] = key.split(\"-\");\r\n rows.push(row);\r\n columns.push(column);\r\n });\r\n\r\n const allInSingleRow = rows.every((row) => row === rows[0]);\r\n const allInSingleColumn = columns.every((column) => column === columns[0]);\r\n\r\n return {\r\n singleRow: allInSingleRow,\r\n singleColumn: allInSingleColumn,\r\n };\r\n}\r\n\r\nconst excludeDeleteBtn = [\r\n \"Uml_Package\",\r\n \"Uml_Interface_with_Attributes_11\",\r\n \"Uml_Class\",\r\n \"Process_1\",\r\n \"Choreography\",\r\n \"DataStore_1\",\r\n \"Erd_Field_22\",\r\n \"Erd_Field_23\",\r\n \"Erd_Field_24\",\r\n \"Erd_Field_25\",\r\n];\r\n\r\nconst ShapeTableNode = (node) => {\r\n const updateNodeInternals = useUpdateNodeInternals();\r\n const user_data = localStorage.getItem(\"user_data\");\r\n const { showExport, copyAsImage, isDownload } = useSelector(\r\n (state) => state?.mindMapStore\r\n );\r\n const { isNodeSelectionStarted } = useNodeSelectionStarted({\r\n selected: node?.selected,\r\n });\r\n const [selectedCell, setSelectedCell] = useState(null);\r\n const [showBgColor, setShowBgColor] = useState(false);\r\n const [showBorderColor, setShowBorderColor] = useState(false);\r\n const [showTextColor, setShowTextColor] = useState(false);\r\n const [showLink, setShowLink] = useState(false);\r\n const [showAlignment, setShowAlignment] = useState(false);\r\n const [showTextDecoration, setShowTextDecoration] = useState(false);\r\n const { setNodes, getNode, getNodes } = useReactFlow();\r\n const currentNode = getNode(node?.id);\r\n const [activeCell, setActiveCell] = useState(\"false\");\r\n const [isCellShow, setIsCellShow] = useState(\"\");\r\n const [activeCellData, setActiveCellData] = useState({});\r\n const [linkText, setLinkText] = useState(\"\");\r\n const [zoomPercentages, setZoomPercentages] = useState(100);\r\n const [showDots, setShowDots] = useState(false);\r\n const [hoveredItem, setHoveredItem] = useState(\"\");\r\n const [showTableMoreOptions, setShowTableMoreOptions] = useState(false);\r\n const [showTableVariations, setShowTableVariations] = useState(false);\r\n const [tableCells, setTableCells] = useState([]);\r\n const [customBgOpen, setCustomBgOpen] = useState(false);\r\n const [multiActiveCells, setMultiActiveCells] = useState([]);\r\n const [hoveredRowCol, setHoveredRowCol] = useState({\r\n row: null,\r\n col: null,\r\n });\r\n const [color, setColor] = useState();\r\n const [linkPopup, setLinkPopup] = useState(null);\r\n const linkPopupOpen = Boolean(linkPopup);\r\n const linkPopupOpenId = linkPopupOpen ? \"simple-popover\" : undefined;\r\n const location = useLocation();\r\n const { id } = useParams();\r\n const dispatch = useDispatch();\r\n const { undo, takeSnapshot } = useUndoRedo();\r\n\r\n const mainRef = useRef(null);\r\n const isResizing = useRef(false);\r\n const firstRowRef = useRef(null);\r\n let simpleRef = useRef(null);\r\n const resizingRef = useRef(false);\r\n const tableHeaderRef = useRef(null);\r\n const [cellEditors, setCellEditors] = useState([]);\r\n const userRowData = localStorage.getItem(\"user_data\");\r\n const userData = userRowData ? JSON.parse(userRowData) : {};\r\n\r\n const { singleRow, singleColumn } = checkSingleRowOrColumn(multiActiveCells);\r\n const childNodes = getNodes().filter(\r\n (nd) =>\r\n nd.data?.parentNodeData &&\r\n nd.data?.parentNodeData?.id?.includes(currentNode.id)\r\n );\r\n\r\n const timeoutRef = useRef();\r\n const updateEdgeHandles = () => {\r\n if (timeoutRef.current) clearTimeout(timeoutRef.current);\r\n\r\n timeoutRef.current = setTimeout(() => {\r\n updateNodeInternals(node.id);\r\n }, 100);\r\n };\r\n\r\n useEffect(() => {\r\n updateEdgeHandles();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (activeCellData?.backgroundColor) {\r\n setColor(activeCellData?.backgroundColor);\r\n }\r\n }, [activeCellData?.backgroundColor]);\r\n\r\n useEffect(() => {\r\n if (!currentNode.selected) {\r\n setActiveCell(\"\");\r\n setIsCellShow(\"\");\r\n setActiveCellData({});\r\n setShowTableVariations(false);\r\n setShowBgColor(false);\r\n setShowBorderColor(false);\r\n setShowFontFamily(false);\r\n setShowFontSizeOpt(false);\r\n setShowTextDecoration(false);\r\n setShowAlignment(false);\r\n setShowTextColor(false);\r\n setShowTableMoreOptions(false);\r\n setMultiActiveCells([]);\r\n setHoveredRowCol({\r\n row: null,\r\n col: null,\r\n });\r\n setCellEditors([]);\r\n }\r\n }, [currentNode.selected]);\r\n\r\n const debouncedUpdateHTML = useMemo(\r\n () =>\r\n debounce((newRows) => {\r\n let totalHeight = newRows.reduce((totalHeight, row) => {\r\n const rowHeight = Math.max(\r\n ...Object.values(row).map((cell) => {\r\n return cell?.height || 0;\r\n })\r\n );\r\n return totalHeight + rowHeight + 10;\r\n }, 0);\r\n let updatedNode;\r\n let updatedNodes = getNodes().map((nd) => {\r\n if (nd.id === node.id) {\r\n updatedNode = {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n tableCells: newRows,\r\n tableData: {\r\n ...nd.data.tableData,\r\n tableCells: newRows,\r\n },\r\n height: totalHeight + 10,\r\n style: {\r\n ...nd.data.style,\r\n height: totalHeight + 10,\r\n },\r\n },\r\n style: {\r\n ...nd.style,\r\n height: totalHeight + 10,\r\n },\r\n };\r\n return updatedNode;\r\n }\r\n return nd;\r\n });\r\n\r\n setNodes(updatedNodes);\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n lastUpdatedBy: userData?.user_id,\r\n lastEvent: `editor_changed_${node?.id}`,\r\n },\r\n },\r\n id,\r\n dispatch,\r\n undo,\r\n a_id: new URLSearchParams(location.search).get(\"a_id\"),\r\n });\r\n }, 500),\r\n [id, dispatch, undo, location.search]\r\n );\r\n\r\n const updateNodeJson = (updatedData, removeChildIds = []) => {\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n\r\n let updatedNodes = getNodes();\r\n let updatedNode;\r\n setNodes((nds) => {\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: nds,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n updatedNodes = nds\r\n .filter((nd) => !removeChildIds.includes(nd.id))\r\n .map((n) => {\r\n if (n?.id === node?.id) {\r\n updatedNode = {\r\n ...n,\r\n data: {\r\n ...n?.data,\r\n ...updatedData,\r\n },\r\n };\r\n return updatedNode;\r\n }\r\n return 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 tableRef = useRef(null);\r\n\r\n const toggleLockedTable = () => {\r\n updateNodeJson({ ...node.data, locked: !node.data.locked });\r\n };\r\n\r\n const debouncedHandleChange = useMemo(\r\n () =>\r\n debounce(async (updatedNodes) => {\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: getNodes(),\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\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 });\r\n }, 200),\r\n []\r\n );\r\n\r\n const handleChange = (e, rowIndex, column) => {\r\n const newRows = node?.data?.tableData?.tableCells?.map((row, rIdx) =>\r\n rIdx === rowIndex\r\n ? {\r\n ...row,\r\n [column]: {\r\n ...row?.[column],\r\n text: e.target.value,\r\n },\r\n }\r\n : row\r\n );\r\n setTableCells(newRows);\r\n let updatedNode;\r\n let updatedNodes = getNodes().map((nd) => {\r\n if (nd.id === node.id) {\r\n updatedNode = {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n tableData: {\r\n ...nd.data.tableData,\r\n tableCells: newRows,\r\n },\r\n },\r\n };\r\n return updatedNode;\r\n }\r\n return nd;\r\n });\r\n setNodes(updatedNodes);\r\n debouncedHandleChange([updatedNode]);\r\n };\r\n\r\n const handleChangeERD = (e, rowIndex, column, textAreaHeight) => {\r\n const sanitizedHeight = parseInt(\r\n textAreaHeight?.toString().replace(/[^0-9]/g, \"\"),\r\n 10\r\n );\r\n\r\n const newRows = node?.data?.tableData?.tableCells?.map((row, rIdx) =>\r\n rIdx === rowIndex\r\n ? {\r\n ...row,\r\n [column]: {\r\n ...row?.[column],\r\n text: e.target.value,\r\n height:\r\n sanitizedHeight >= 50 ? sanitizedHeight : row?.[column]?.height,\r\n },\r\n }\r\n : row\r\n );\r\n setTableCells(newRows);\r\n\r\n let totalHeight = newRows.reduce((totalHeight, row) => {\r\n const rowHeight = Math.max(\r\n ...Object.values(row).map((cell) => {\r\n return cell?.height || 0;\r\n })\r\n );\r\n return totalHeight + rowHeight + 10;\r\n }, 0);\r\n\r\n let updatedNode;\r\n let updatedNodes = getNodes().map((nd) => {\r\n if (nd.id === node.id) {\r\n updatedNode = {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n tableCells: newRows,\r\n tableData: {\r\n ...nd.data.tableData,\r\n tableCells: newRows,\r\n },\r\n height: totalHeight + 10,\r\n style: {\r\n ...nd.data.style,\r\n height: totalHeight + 10,\r\n },\r\n },\r\n style: {\r\n ...nd.style,\r\n height: totalHeight + 10,\r\n },\r\n };\r\n return updatedNode;\r\n }\r\n return nd;\r\n });\r\n\r\n setNodes(updatedNodes);\r\n debouncedHandleChange([updatedNode]);\r\n };\r\n\r\n const isNodeSelected = getNodes().filter(\r\n (nd) => nd.id === node.id && node.selected === true\r\n );\r\n\r\n const isItemToSmall = useMemo(\r\n () => zoomPercentages <= 12.5,\r\n [zoomPercentages]\r\n );\r\n\r\n const zoom = useStore((state) =>\r\n (node?.selected || showDots) && !isNodeSelectionStarted\r\n ? state?.transform?.[2]\r\n : 1\r\n );\r\n\r\n const isWidthLessThan25 = useMemo(\r\n () => 12.5 < zoomPercentages && zoomPercentages <= 25,\r\n [zoomPercentages]\r\n );\r\n\r\n const isWidthLessThan50 = useMemo(\r\n () => 25 < zoomPercentages && zoomPercentages <= 50,\r\n [zoomPercentages]\r\n );\r\n\r\n const isWidthLessThan100 = useMemo(\r\n () => 50 < zoomPercentages && zoomPercentages <= 100,\r\n [zoomPercentages]\r\n );\r\n\r\n useEffect(() => {\r\n if (mainRef.current && !isNodeSelectionStarted) {\r\n setZoomPercentages(zoom * 100);\r\n }\r\n }, [zoom]);\r\n\r\n const [showFontSizeOpt, setShowFontSizeOpt] = useState(false);\r\n const [showFontFamily, setShowFontFamily] = useState(false);\r\n const [fontSize, setFontSize] = useState(\"10\");\r\n const [fontFamily, setFontFamily] = useState(\"Inter\");\r\n const excludedKeys = useMemo(() => {\r\n return [\"Erd_Field_22\", \"Erd_Field_23\", \"Erd_Field_24\", \"Erd_Field_25\"];\r\n }, []);\r\n\r\n const style = {\r\n width: currentNode?.width || \"auto\",\r\n height: currentNode?.height,\r\n overflow: \"visible\",\r\n position: \"relative\",\r\n };\r\n\r\n const currentBorderColor =\r\n currentNode?.data?.tableData?.borderColor || \"#E1E1E1\";\r\n const currentFontSize = currentNode?.data?.tableData?.fontSize || \"10\";\r\n const currentFontFamily = currentNode?.data?.tableData?.fontFamily || \"Inter\";\r\n\r\n const updateHeaderStyle = (isBoolean, key, value) => {\r\n const splittedVal = activeCell?.split(\"-\");\r\n\r\n if (activeCell === \"table\") {\r\n const updatedData = node?.data?.tableData?.tableCells?.map(\r\n (item, rowIndex) => {\r\n const updatedItem = {};\r\n Object.keys(item).forEach((currKey) => {\r\n updatedItem[currKey] = {\r\n ...item[currKey],\r\n [key]: isBoolean\r\n ? !!!item[currKey]?.[splittedVal?.[1]]?.[currKey]\r\n : node?.data?.variant === 1\r\n ? value\r\n : node?.data?.variant === 5\r\n ? rowIndex === 0 || rowIndex % 2 === 0\r\n ? value\r\n : \"FFFFFF\"\r\n : node?.data?.variant === 6\r\n ? rowIndex === 0\r\n ? value\r\n : \"FFFFFF\"\r\n : rowIndex === 0\r\n ? value\r\n : rowIndex % 2 === 0\r\n ? convertToRgba(value, 0.12)\r\n : \"FFFFFF\",\r\n };\r\n });\r\n return updatedItem;\r\n }\r\n );\r\n setTableCells(updatedData);\r\n updateNodeJson({\r\n ...node.data,\r\n tableData: {\r\n ...node.data.tableData,\r\n tableCells: updatedData,\r\n backgroundColor: value,\r\n },\r\n tableStyle: {\r\n headerColor: value,\r\n evenRowColor: convertToRgba(value, 0.12),\r\n },\r\n });\r\n } else {\r\n if (splittedVal?.[0] !== \"header\") {\r\n const rowIndex = parseInt(splittedVal?.[0]);\r\n const newRows = node?.data?.tableData?.tableCells?.map((row, rIdx) => {\r\n const updatedCellData = {\r\n [splittedVal?.[1]]: {\r\n ...row?.[splittedVal?.[1]],\r\n [key]: isBoolean ? !!!row?.[splittedVal?.[1]]?.[key] : value,\r\n },\r\n };\r\n setActiveCellData(updatedCellData);\r\n\r\n return rIdx === rowIndex\r\n ? {\r\n ...row,\r\n ...updatedCellData,\r\n }\r\n : row;\r\n });\r\n setTableCells(newRows);\r\n updateNodeJson({\r\n ...node.data,\r\n tableData: {\r\n ...node.data.tableData,\r\n tableCells: newRows,\r\n },\r\n });\r\n } else {\r\n const headerIndex = parseInt(splittedVal?.[1]);\r\n updateNodeJson({\r\n ...node?.data,\r\n tableData: {\r\n ...(node?.data?.tableData || {}),\r\n headers: node?.data?.tableData?.headers?.map((data, ind) => {\r\n if (ind === headerIndex) {\r\n return {\r\n ...data,\r\n [key]: isBoolean ? !!!data?.[key] : value,\r\n };\r\n } else {\r\n return data;\r\n }\r\n }),\r\n },\r\n });\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (\r\n JSON.stringify(node?.data?.tableData?.tableCells) !==\r\n JSON.stringify(tableCells)\r\n ) {\r\n setTableCells(node?.data?.tableData?.tableCells);\r\n }\r\n }, [node?.data?.tableData?.tableCells]);\r\n\r\n const updateTableColor = (updatedObject) => {\r\n const updatedTableCells = node?.data?.tableData?.tableCells.map((row) =>\r\n Object.fromEntries(\r\n Object.entries(row).map(([key, cell]) => [\r\n key,\r\n { ...cell, ...updatedObject },\r\n ])\r\n )\r\n );\r\n\r\n setTableCells(updatedTableCells);\r\n\r\n updateNodeJson({\r\n ...node?.data,\r\n tableCells: updatedTableCells,\r\n tableData: {\r\n ...(node?.data?.tableData || {}),\r\n tableCells: updatedTableCells,\r\n },\r\n });\r\n };\r\n\r\n const onResizeEnd = (event, node) => {\r\n resizingRef.current = false;\r\n let updatedNodes = [];\r\n let parsedData = {};\r\n\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n isResizing.current = false;\r\n\r\n let nodesToBeMove = [];\r\n let nodesToBeMoveIds = [];\r\n setNodes((prev) => {\r\n updatedNodes = prev\r\n .map((_) => {\r\n if (_.id === node.id) {\r\n const newNodeWidth = Number(mainRef?.current?.offsetWidth || 0);\r\n const newNodeHeight = Number(mainRef?.current?.offsetHeight || 0);\r\n const oldNodeHeight = _.data.height || 0;\r\n const oldNodeWidth = _.data.width || 0;\r\n const heightDiff = newNodeHeight - oldNodeHeight;\r\n const widthDiff = newNodeWidth - oldNodeWidth;\r\n\r\n _ = JSON.parse(JSON.stringify(_));\r\n _.style.width = newNodeWidth;\r\n _.style.height = newNodeHeight;\r\n\r\n _.data.width = newNodeWidth;\r\n _.data.height = newNodeHeight;\r\n\r\n const updatedTableCells = _.data.tableData.tableCells.map(\r\n (row, rowIndex) => {\r\n return Object.fromEntries(\r\n Object.entries(row).map(([key, cell]) => {\r\n if (node.data.key === \"Uml_Frame\" && rowIndex === 0) {\r\n return [key, cell];\r\n }\r\n const oldHeight = cell.height || 45;\r\n const oldWidth = cell.width || 100;\r\n\r\n const proportionalHeightIncrease =\r\n (oldHeight / oldNodeHeight) * heightDiff;\r\n const proportionalWidthIncrease =\r\n (oldWidth / oldNodeWidth) * widthDiff;\r\n\r\n const newHeight = Math.max(\r\n 20,\r\n oldHeight + proportionalHeightIncrease\r\n );\r\n const newWidth = Math.max(\r\n 20,\r\n oldWidth + proportionalWidthIncrease\r\n );\r\n\r\n const { widthChangeInPer, heightChangeInPer } =\r\n calculateHeightWidthInPercentage(\r\n { height: oldHeight, width: oldWidth },\r\n { height: newHeight, width: newWidth }\r\n );\r\n cell?.children?.forEach((childId) => {\r\n nodesToBeMoveIds = [...nodesToBeMoveIds, childId];\r\n nodesToBeMove = [\r\n ...nodesToBeMove,\r\n {\r\n id: childId,\r\n widthChangeInPer,\r\n heightChangeInPer,\r\n },\r\n ];\r\n });\r\n\r\n return [\r\n key,\r\n {\r\n ...cell,\r\n height: newHeight,\r\n width: newWidth,\r\n },\r\n ];\r\n })\r\n );\r\n }\r\n );\r\n _.data.tableCells = updatedTableCells;\r\n _.data.tableData.tableCells = updatedTableCells;\r\n\r\n setTableCells(updatedTableCells);\r\n\r\n return _;\r\n }\r\n return _;\r\n })\r\n .map((nd) => {\r\n if (nodesToBeMoveIds.includes(nd.id)) {\r\n const matchNodeInMoveData = nodesToBeMove.filter(\r\n (matchNd) => matchNd.id === nd.id\r\n )[0];\r\n const { newWidth, newHeight } = calculateHeightWidthFromPercentage(\r\n { height: nd.style.height, width: nd.style.width },\r\n {\r\n widthChange: matchNodeInMoveData.widthChangeInPer,\r\n heightChange: matchNodeInMoveData.heightChangeInPer,\r\n }\r\n );\r\n\r\n return {\r\n ...nd,\r\n height: newHeight < 10 ? 10 : newHeight,\r\n width: newWidth < 10 ? 10 : newWidth,\r\n position: {\r\n x:\r\n nd.position.x +\r\n nd.position.x * (matchNodeInMoveData.widthChangeInPer / 100),\r\n y:\r\n nd.position.y +\r\n nd.position.y * (matchNodeInMoveData.heightChangeInPer / 100),\r\n },\r\n style: {\r\n ...nd.style,\r\n height: newHeight < 10 ? 10 : newHeight,\r\n width: newWidth < 10 ? 10 : newWidth,\r\n },\r\n data: {\r\n ...nd.data,\r\n height: newHeight < 10 ? 10 : newHeight,\r\n width: newWidth < 10 ? 10 : newWidth,\r\n parentNodeData: {\r\n ...nd.data.parentNodeData,\r\n position: {\r\n x:\r\n nd.position.x +\r\n nd.position.x *\r\n (matchNodeInMoveData.widthChangeInPer / 100),\r\n y:\r\n nd.position.y +\r\n nd.position.y *\r\n (matchNodeInMoveData.heightChangeInPer / 100),\r\n },\r\n },\r\n },\r\n };\r\n }\r\n\r\n return nd;\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 onResizeNode = (event, node) => {\r\n resizingRef.current = false;\r\n let updatedNodes = [];\r\n\r\n isResizing.current = false;\r\n\r\n let nodesToBeMove = [];\r\n let nodesToBeMoveIds = [];\r\n setNodes((prev) => {\r\n updatedNodes = prev\r\n .map((_) => {\r\n if (_.id === node.id) {\r\n const newNodeWidth = Number(mainRef?.current?.offsetWidth || 0);\r\n const newNodeHeight = Number(mainRef?.current?.offsetHeight || 0);\r\n const oldNodeHeight = _.data.height || 0;\r\n const oldNodeWidth = _.data.width || 0;\r\n const heightDiff = newNodeHeight - oldNodeHeight;\r\n const widthDiff = newNodeWidth - oldNodeWidth;\r\n\r\n _ = JSON.parse(JSON.stringify(_));\r\n _.style.width = newNodeWidth;\r\n _.style.height = newNodeHeight;\r\n\r\n _.data.width = newNodeWidth;\r\n _.data.height = newNodeHeight;\r\n\r\n const updatedTableCells = _.data.tableData.tableCells.map(\r\n (row, rowIndex) => {\r\n return Object.fromEntries(\r\n Object.entries(row).map(([key, cell]) => {\r\n if (node.data.key === \"Uml_Frame\" && rowIndex === 0) {\r\n return [key, cell];\r\n }\r\n const oldHeight = cell.height || 45;\r\n const oldWidth = cell.width || 100;\r\n\r\n const proportionalHeightIncrease =\r\n (oldHeight / oldNodeHeight) * heightDiff;\r\n const proportionalWidthIncrease =\r\n (oldWidth / oldNodeWidth) * widthDiff;\r\n\r\n const newHeight = Math.max(\r\n 20,\r\n oldHeight + proportionalHeightIncrease\r\n );\r\n const newWidth = Math.max(\r\n 20,\r\n oldWidth + proportionalWidthIncrease\r\n );\r\n\r\n const { widthChangeInPer, heightChangeInPer } =\r\n calculateHeightWidthInPercentage(\r\n { height: oldHeight, width: oldWidth },\r\n { height: newHeight, width: newWidth }\r\n );\r\n cell?.children?.forEach((childId) => {\r\n nodesToBeMoveIds = [...nodesToBeMoveIds, childId];\r\n nodesToBeMove = [\r\n ...nodesToBeMove,\r\n {\r\n id: childId,\r\n widthChangeInPer,\r\n heightChangeInPer,\r\n },\r\n ];\r\n });\r\n\r\n return [\r\n key,\r\n {\r\n ...cell,\r\n height: newHeight,\r\n width: newWidth,\r\n },\r\n ];\r\n })\r\n );\r\n }\r\n );\r\n _.data.tableCells = updatedTableCells;\r\n _.data.tableData.tableCells = updatedTableCells;\r\n\r\n setTableCells(updatedTableCells);\r\n\r\n return _;\r\n }\r\n return _;\r\n })\r\n .map((nd) => {\r\n if (nodesToBeMoveIds.includes(nd.id)) {\r\n const matchNodeInMoveData = nodesToBeMove.filter(\r\n (matchNd) => matchNd.id === nd.id\r\n )[0];\r\n const { newWidth, newHeight } = calculateHeightWidthFromPercentage(\r\n { height: nd.style.height, width: nd.style.width },\r\n {\r\n widthChange: matchNodeInMoveData.widthChangeInPer,\r\n heightChange: matchNodeInMoveData.heightChangeInPer,\r\n }\r\n );\r\n\r\n return {\r\n ...nd,\r\n height: newHeight < 10 ? 10 : newHeight,\r\n width: newWidth < 10 ? 10 : newWidth,\r\n position: {\r\n x:\r\n nd.position.x +\r\n nd.position.x * (matchNodeInMoveData.widthChangeInPer / 100),\r\n y:\r\n nd.position.y +\r\n nd.position.y * (matchNodeInMoveData.heightChangeInPer / 100),\r\n },\r\n style: {\r\n ...nd.style,\r\n height: newHeight < 10 ? 10 : newHeight,\r\n width: newWidth < 10 ? 10 : newWidth,\r\n },\r\n data: {\r\n ...nd.data,\r\n height: newHeight < 10 ? 10 : newHeight,\r\n width: newWidth < 10 ? 10 : newWidth,\r\n parentNodeData: {\r\n ...nd.data.parentNodeData,\r\n position: {\r\n x:\r\n nd.position.x +\r\n nd.position.x *\r\n (matchNodeInMoveData.widthChangeInPer / 100),\r\n y:\r\n nd.position.y +\r\n nd.position.y *\r\n (matchNodeInMoveData.heightChangeInPer / 100),\r\n },\r\n },\r\n },\r\n };\r\n }\r\n\r\n return nd;\r\n });\r\n\r\n return updatedNodes;\r\n });\r\n };\r\n\r\n const tableVariationsTypesRef = useRef(null);\r\n const backgroundPopupRef = useRef(null);\r\n const borderPopupRef = useRef(null);\r\n const fontFamilyPopupRef = useRef(null);\r\n const fontSizePopupRef = useRef(null);\r\n const textDecorationPopupRef = useRef(null);\r\n const alignmentPopupRef = useRef(null);\r\n const textColorPopupRef = useRef(null);\r\n const moreOptionsPopupRef = useRef(null);\r\n\r\n const handleClickOutside = (event) => {\r\n if (\r\n !node?.selected &&\r\n mainRef.current &&\r\n !mainRef.current.contains(event.target)\r\n ) {\r\n window.getSelection().removeAllRanges();\r\n }\r\n\r\n if (\r\n tableVariationsTypesRef.current &&\r\n !tableVariationsTypesRef.current.contains(event.target)\r\n ) {\r\n setShowTableVariations(false);\r\n }\r\n if (\r\n backgroundPopupRef.current &&\r\n !backgroundPopupRef.current.contains(event.target) &&\r\n event.target.classList.length > 0 &&\r\n !event.target.classList.contains(\"MuiBackdrop-root\") &&\r\n !event.target.id.includes(\"rbgcp\") &&\r\n !customBgOpen\r\n ) {\r\n setShowBgColor(false);\r\n }\r\n if (\r\n borderPopupRef.current &&\r\n !borderPopupRef.current.contains(event.target) &&\r\n event.target.classList.length > 0 &&\r\n !event.target.classList.contains(\"MuiBackdrop-root\") &&\r\n !event.target.id.includes(\"rbgcp\")\r\n ) {\r\n setShowBorderColor(false);\r\n }\r\n if (\r\n fontFamilyPopupRef.current &&\r\n !fontFamilyPopupRef.current.contains(event.target)\r\n ) {\r\n setShowFontFamily(false);\r\n }\r\n if (\r\n fontSizePopupRef.current &&\r\n !fontSizePopupRef.current.contains(event.target)\r\n ) {\r\n setShowFontSizeOpt(false);\r\n }\r\n if (\r\n textDecorationPopupRef.current &&\r\n !textDecorationPopupRef.current.contains(event.target)\r\n ) {\r\n setShowTextDecoration(false);\r\n }\r\n if (\r\n alignmentPopupRef.current &&\r\n !alignmentPopupRef.current.contains(event.target)\r\n ) {\r\n setShowAlignment(false);\r\n }\r\n if (\r\n textColorPopupRef.current &&\r\n !textColorPopupRef.current.contains(event.target) &&\r\n event.target.classList.length > 0 &&\r\n !event.target.classList.contains(\"MuiBackdrop-root\") &&\r\n !event.target.id.includes(\"rbgcp\")\r\n ) {\r\n setShowTextColor(false);\r\n }\r\n if (\r\n moreOptionsPopupRef.current &&\r\n !moreOptionsPopupRef.current.contains(event.target)\r\n ) {\r\n setShowTableMoreOptions(false);\r\n } else {\r\n setShowTableVariations(false);\r\n setShowBgColor(false);\r\n setShowBorderColor(false);\r\n setShowFontFamily(false);\r\n setShowFontSizeOpt(false);\r\n setShowTextDecoration(false);\r\n setShowAlignment(false);\r\n setShowTextColor(false);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleClickOutside);\r\n };\r\n }, []);\r\n\r\n const inputFocusTimeOutRef = useRef();\r\n\r\n const handleFocusInput = (id) => {\r\n if (inputFocusTimeOutRef.current)\r\n clearTimeout(inputFocusTimeOutRef.current);\r\n\r\n inputFocusTimeOutRef.current = setTimeout(() => {\r\n const input = document.getElementById(id);\r\n input?.focus();\r\n }, 0);\r\n };\r\n\r\n const handleChangeCellOnTab = (e, row, colIndex, rowIndex) => {\r\n if (\r\n e.key === \"Tab\"\r\n // || e.key === \"ArrowLeft\" || e.key === \"ArrowRight\"\r\n ) {\r\n let newCell;\r\n if (\r\n e.key === \"Tab\" &&\r\n e.shiftKey\r\n // || e.key === \"ArrowLeft\"\r\n ) {\r\n if (colIndex === 0) {\r\n if (rowIndex === 0) {\r\n const nextRow = Object.keys(\r\n node?.data?.tableData?.tableCells[\r\n node?.data?.tableData?.tableCells?.length - 1\r\n ]\r\n );\r\n newCell = `${node?.data?.tableData?.tableCells?.length - 1}-${nextRow[nextRow.length - 1]\r\n }`;\r\n handleFocusInput(`${newCell}-${nextRow.length - 1}`);\r\n } else {\r\n const nextRow = Object.keys(\r\n node?.data?.tableData?.tableCells[rowIndex - 1]\r\n );\r\n newCell = `${rowIndex - 1}-${nextRow[nextRow.length - 1]}`;\r\n handleFocusInput(`${newCell}-${nextRow.length - 1}`);\r\n }\r\n } else {\r\n newCell = `${rowIndex}-${Object.keys(row)[colIndex - 1]}`;\r\n handleFocusInput(`${newCell}-${colIndex - 1}`);\r\n }\r\n } else {\r\n if (Object.keys(row).length - 1 === colIndex) {\r\n if (node?.data?.tableData?.tableCells?.length - 1 === rowIndex) {\r\n const nextRow = Object.keys(node?.data?.tableData?.tableCells[0]);\r\n newCell = `${0}-${nextRow[0]}`;\r\n handleFocusInput(`${newCell}-${0}`);\r\n } else {\r\n const nextRow = Object.keys(\r\n node?.data?.tableData?.tableCells[rowIndex + 1]\r\n );\r\n newCell = `${rowIndex + 1}-${nextRow[0]}`;\r\n handleFocusInput(`${newCell}-${0}`);\r\n }\r\n } else {\r\n newCell = `${rowIndex}-${Object.keys(row)[colIndex + 1]}`;\r\n handleFocusInput(`${newCell}-${colIndex + 1}`);\r\n }\r\n }\r\n setMultiActiveCells([newCell]);\r\n setActiveCell(newCell);\r\n }\r\n // else if (e.key === \"ArrowDown\") {\r\n // let newCell;\r\n // const cellKey = Object.keys(row)[colIndex];\r\n\r\n // if (rowIndex === tableCells.length - 1) {\r\n // const nextRowHasCell = tableCells[0][cellKey];\r\n // if (nextRowHasCell) {\r\n // newCell = `${0}-${cellKey}`;\r\n // handleFocusInput(`${newCell}-${colIndex}`);\r\n // } else {\r\n // const prevCellKey = Object.keys(row)[colIndex - 1];\r\n // newCell = `${0}-${prevCellKey}`;\r\n // handleFocusInput(`${newCell}-${colIndex - 1}`);\r\n // }\r\n // } else {\r\n // const nextRowHasCell = tableCells[rowIndex + 1][cellKey];\r\n // if (nextRowHasCell) {\r\n // newCell = `${rowIndex + 1}-${cellKey}`;\r\n // handleFocusInput(`${newCell}-${colIndex}`);\r\n // } else {\r\n // const prevCellKey = Object.keys(row)[colIndex - 1];\r\n // newCell = `${rowIndex + 1}-${prevCellKey}`;\r\n // handleFocusInput(`${newCell}-${colIndex - 1}`);\r\n // }\r\n // }\r\n // setMultiActiveCells([newCell]);\r\n // setActiveCell(newCell);\r\n // } else if (e.key === \"ArrowUp\") {\r\n // let newCell;\r\n // const cellKey = Object.keys(row)[colIndex];\r\n\r\n // if (rowIndex === 0) {\r\n // const nextRowHasCell = tableCells[tableCells.length - 1][cellKey];\r\n // if (nextRowHasCell) {\r\n // newCell = `${tableCells.length - 1}-${cellKey}`;\r\n // handleFocusInput(`${newCell}-${colIndex}`);\r\n // } else {\r\n // const prevCellKey = Object.keys(row)[colIndex - 1];\r\n // newCell = `${tableCells.length - 1}-${prevCellKey}`;\r\n // handleFocusInput(`${newCell}-${colIndex - 1}`);\r\n // }\r\n // } else {\r\n // const nextRowHasCell = tableCells[rowIndex - 1][cellKey];\r\n // if (nextRowHasCell) {\r\n // newCell = `${rowIndex - 1}-${cellKey}`;\r\n // handleFocusInput(`${newCell}-${colIndex}`);\r\n // } else {\r\n // const prevCellKey = Object.keys(row)[colIndex - 1];\r\n // newCell = `${rowIndex - 1}-${prevCellKey}`;\r\n // handleFocusInput(`${newCell}-${colIndex - 1}`);\r\n // }\r\n // }\r\n // setMultiActiveCells([newCell]);\r\n // setActiveCell(newCell);\r\n // }\r\n };\r\n\r\n useEffect(() => {\r\n if (node?.id) {\r\n mainRef?.current?.click();\r\n setTableCells(node?.data?.tableData?.tableCells);\r\n }\r\n }, [node?.id]);\r\n\r\n const [clickTimeout, setClickTimeout] = useState(null);\r\n\r\n const handleClick = (e, row, column) => {\r\n if (clickTimeout) {\r\n clearTimeout(clickTimeout);\r\n setClickTimeout(null);\r\n return;\r\n }\r\n\r\n const timeout = setTimeout(() => {\r\n const selection = window.getSelection();\r\n\r\n if (selection && selection.type === \"Range\") {\r\n selection.removeAllRanges();\r\n selection.empty();\r\n }\r\n\r\n if (row[column]?.linkText) {\r\n e.stopPropagation();\r\n window.open(row[column]?.linkText, \"_blank\");\r\n }\r\n\r\n setClickTimeout(null);\r\n }, 200);\r\n\r\n setClickTimeout(timeout);\r\n };\r\n\r\n const toggleMultipleActiveCells = (event, cellKey) => {\r\n if (event.ctrlKey || event.metaKey) {\r\n if (multiActiveCells.includes(cellKey)) {\r\n setMultiActiveCells((prev) =>\r\n prev.filter((prevKey) => prevKey !== cellKey)\r\n );\r\n setActiveCell(\"\");\r\n } else {\r\n setMultiActiveCells([...multiActiveCells, cellKey]);\r\n }\r\n }\r\n };\r\n\r\n const handleMergeCells = () => {\r\n const sortedCells = multiActiveCells.sort((a, b) => {\r\n const [rowA, colA] = a.split(\"-\");\r\n const [rowB, colB] = b.split(\"-\");\r\n\r\n const rowComparison = Number(rowA) - Number(rowB);\r\n\r\n if (rowComparison !== 0) {\r\n return rowComparison;\r\n }\r\n\r\n return colA.localeCompare(colB);\r\n });\r\n\r\n const [rowIndex, cellKey] = sortedCells[0]?.split(\"-\");\r\n\r\n const updatedCellsData = tableCells.map((row, i) => {\r\n let copyRow = { ...row };\r\n if (i === Number(rowIndex)) {\r\n let updatedCellData = { ...copyRow[cellKey] };\r\n if (singleRow) {\r\n updatedCellData.colSpan = updatedCellData.colSpan\r\n ? updatedCellData.colSpan + sortedCells.length - 1\r\n : sortedCells.length;\r\n const columns = [];\r\n sortedCells\r\n .filter((_, i) => i !== 0)\r\n .forEach((cell) => {\r\n const [row, col] = cell.split(\"-\");\r\n columns.push(col);\r\n });\r\n\r\n if (updatedCellData?.text?.trim()?.length <= 0) {\r\n let textAdded = false;\r\n columns.forEach((cellK) => {\r\n if (copyRow[cellK]?.text?.trim()?.length > 0 && !textAdded) {\r\n updatedCellData.text = copyRow[cellK]?.text;\r\n textAdded = true;\r\n }\r\n delete copyRow[cellK];\r\n });\r\n } else {\r\n columns.forEach((cellK) => {\r\n delete copyRow[cellK];\r\n });\r\n }\r\n } else if (singleColumn) {\r\n updatedCellData.rowSpan = updatedCellData.rowSpan\r\n ? updatedCellData.rowSpan + sortedCells.length - 1\r\n : sortedCells.length;\r\n\r\n if (updatedCellData?.text?.trim()?.length <= 0) {\r\n let textAdded = false;\r\n sortedCells\r\n .filter((_, i) => i !== 0)\r\n .forEach((cell) => {\r\n const [row, col] = cell.split(\"-\");\r\n const nextText = tableCells[row][col]?.text;\r\n\r\n if (nextText?.trim()?.length > 0 && !textAdded) {\r\n updatedCellData.text = nextText;\r\n textAdded = true;\r\n }\r\n });\r\n }\r\n }\r\n\r\n setMultiActiveCells([sortedCells[0]]);\r\n setActiveCellData(updatedCellData);\r\n return {\r\n ...copyRow,\r\n [cellKey]: updatedCellData,\r\n };\r\n } else {\r\n if (singleColumn) {\r\n sortedCells\r\n .filter((_, i) => i !== 0)\r\n .forEach((cell) => {\r\n const [row, col] = cell.split(\"-\");\r\n\r\n if (i === Number(row)) {\r\n delete copyRow[col];\r\n }\r\n });\r\n\r\n return copyRow;\r\n } else {\r\n return row;\r\n }\r\n }\r\n });\r\n\r\n setTableCells(updatedCellsData);\r\n updateNodeJson({\r\n ...node?.data,\r\n tableData: {\r\n ...(node?.data?.tableData || {}),\r\n tableCells: updatedCellsData,\r\n },\r\n });\r\n };\r\n\r\n const handleUnMergeCells = () => {\r\n const [rowIndex, cellKey] = multiActiveCells[0]?.split(\"-\");\r\n\r\n const updatedCellsData = tableCells.map((row, i) => {\r\n let copyRow = { ...row };\r\n if (i === Number(rowIndex)) {\r\n let cellData = { ...copyRow[cellKey] };\r\n if (cellData?.colSpan && cellData?.rowSpan) {\r\n const cellToAdd = cellData?.colSpan - 1;\r\n delete cellData?.colSpan;\r\n delete cellData?.rowSpan;\r\n copyRow = {\r\n ...copyRow,\r\n [cellKey]: cellData,\r\n };\r\n\r\n let addedKey = null;\r\n for (let index = 1; index <= cellToAdd; index++) {\r\n const [keyAlpha, keyNum] = cellKey.split(\"\");\r\n const newKey = `${keyAlpha}${(addedKey ? addedKey : Number(keyNum)) + 1\r\n }`;\r\n addedKey = (addedKey ? addedKey : Number(keyNum)) + 1;\r\n setActiveCellData({\r\n ...copyRow[cellKey],\r\n text: \"\",\r\n });\r\n copyRow = {\r\n ...copyRow,\r\n [newKey]: {\r\n ...copyRow[cellKey],\r\n text: \"\",\r\n },\r\n };\r\n\r\n const sortedEntries = Object.entries(copyRow).sort(\r\n ([keyA], [keyB]) => {\r\n const numA = parseInt(keyA.slice(1));\r\n const numB = parseInt(keyB.slice(1));\r\n return numA - numB;\r\n }\r\n );\r\n\r\n copyRow = Object.fromEntries(sortedEntries);\r\n }\r\n } else if (cellData?.colSpan) {\r\n const cellToAdd = cellData?.colSpan - 1;\r\n delete cellData?.colSpan;\r\n copyRow = {\r\n ...copyRow,\r\n [cellKey]: cellData,\r\n };\r\n\r\n let addedKey = null;\r\n for (let index = 1; index <= cellToAdd; index++) {\r\n const [keyAlpha, keyNum] = cellKey.split(\"\");\r\n const newKey = `${keyAlpha}${(addedKey ? addedKey : Number(keyNum)) + 1\r\n }`;\r\n addedKey = (addedKey ? addedKey : Number(keyNum)) + 1;\r\n setActiveCellData({\r\n ...copyRow[cellKey],\r\n text: \"\",\r\n });\r\n copyRow = {\r\n ...copyRow,\r\n [newKey]: {\r\n ...copyRow[cellKey],\r\n text: \"\",\r\n },\r\n };\r\n\r\n const sortedEntries = Object.entries(copyRow).sort(\r\n ([keyA], [keyB]) => {\r\n const numA = parseInt(keyA.slice(1));\r\n const numB = parseInt(keyB.slice(1));\r\n return numA - numB;\r\n }\r\n );\r\n\r\n copyRow = Object.fromEntries(sortedEntries);\r\n }\r\n } else if (cellData?.rowSpan) {\r\n delete cellData?.rowSpan;\r\n setActiveCellData(cellData);\r\n copyRow = {\r\n ...copyRow,\r\n [cellKey]: cellData,\r\n };\r\n }\r\n } else {\r\n let cellData = { ...tableCells[rowIndex][cellKey] };\r\n if (cellData?.colSpan && cellData?.rowSpan) {\r\n const rowCellToAdd = cellData?.rowSpan - 1;\r\n const cellToAdd = cellData?.colSpan - 1;\r\n if (i > Number(rowIndex) && i <= Number(rowIndex) + rowCellToAdd) {\r\n delete cellData?.rowSpan;\r\n delete cellData?.colSpan;\r\n\r\n let addedKey = null;\r\n for (let index = 0; index <= cellToAdd; index++) {\r\n const [keyAlpha, keyNum] = cellKey.split(\"\");\r\n const newKey = addedKey\r\n ? `${keyAlpha}${addedKey ? addedKey : Number(keyNum) + 1}`\r\n : cellKey;\r\n addedKey = (addedKey ? addedKey : Number(keyNum)) + 1;\r\n copyRow = {\r\n ...copyRow,\r\n [newKey]: {\r\n ...cellData,\r\n text: \"\",\r\n addedKey,\r\n },\r\n };\r\n }\r\n\r\n const sortedEntries = Object.entries(copyRow).sort(\r\n ([keyA], [keyB]) => {\r\n const numA = parseInt(keyA.slice(1));\r\n const numB = parseInt(keyB.slice(1));\r\n return numA - numB;\r\n }\r\n );\r\n copyRow = Object.fromEntries(sortedEntries);\r\n }\r\n } else if (cellData?.rowSpan) {\r\n const cellToAdd = cellData?.rowSpan - 1;\r\n\r\n delete cellData?.rowSpan;\r\n if (i > Number(rowIndex) && i <= Number(rowIndex) + cellToAdd) {\r\n copyRow = {\r\n ...copyRow,\r\n [cellKey]: { ...cellData, text: \"\" },\r\n };\r\n\r\n const sortedEntries = Object.entries(copyRow).sort(\r\n ([keyA], [keyB]) => {\r\n const numA = parseInt(keyA.slice(1));\r\n const numB = parseInt(keyB.slice(1));\r\n return numA - numB;\r\n }\r\n );\r\n\r\n copyRow = Object.fromEntries(sortedEntries);\r\n }\r\n }\r\n }\r\n\r\n return copyRow;\r\n });\r\n\r\n setTableCells(updatedCellsData);\r\n updateNodeJson({\r\n ...node?.data,\r\n tableData: {\r\n ...(node?.data?.tableData || {}),\r\n tableCells: updatedCellsData,\r\n },\r\n });\r\n };\r\n\r\n const handleSelectRowCol = (type, data) => {\r\n if (type === \"row\") {\r\n const selectedCellKeys = Object.keys(data).map(\r\n (ck) => `${hoveredRowCol.row}-${ck}`\r\n );\r\n setMultiActiveCells(selectedCellKeys);\r\n } else {\r\n let selectableCellsKey = [];\r\n for (let index = 0; index < tableCells.length; index++) {\r\n selectableCellsKey.push(`${index}-${data}`);\r\n }\r\n setMultiActiveCells(selectableCellsKey);\r\n }\r\n setActiveCellData({});\r\n setActiveCell(\"\");\r\n setSelectedCell(null);\r\n };\r\n\r\n const handleChangeMultiCellStyle = (data) => {\r\n let updatedTableCells = [...tableCells];\r\n multiActiveCells.forEach((activeCellKey) => {\r\n const [rowI, cellKey] = activeCellKey.split(\"-\");\r\n let updatedRow = { ...updatedTableCells[rowI] };\r\n updatedRow[cellKey] = {\r\n ...updatedRow[cellKey],\r\n ...data,\r\n };\r\n\r\n setActiveCellData(updatedRow[cellKey]);\r\n updatedTableCells[rowI] = updatedRow;\r\n });\r\n setTableCells(updatedTableCells);\r\n updateNodeJson({\r\n ...node.data,\r\n tableData: {\r\n ...node.data.tableData,\r\n tableCells: updatedTableCells,\r\n },\r\n });\r\n };\r\n\r\n const checkAllSelectedCellHasKey = useCallback(\r\n (keyName = \"\") => {\r\n let hasKey = true;\r\n let value = undefined;\r\n let hasSameValue = true;\r\n multiActiveCells.forEach((activeCellKey) => {\r\n const [rowI, cellKey] = activeCellKey.split(\"-\");\r\n\r\n const selectedCellData = tableCells[rowI][cellKey];\r\n\r\n if (selectedCellData && keyName in selectedCellData) {\r\n if (hasKey === true) {\r\n if (value === undefined) {\r\n value = selectedCellData[keyName];\r\n } else if (value !== selectedCellData[keyName]) {\r\n hasSameValue = false;\r\n }\r\n } else {\r\n hasSameValue = false;\r\n }\r\n } else {\r\n hasKey = false;\r\n }\r\n });\r\n\r\n return {\r\n hasKey,\r\n value,\r\n hasSameValue,\r\n };\r\n },\r\n [multiActiveCells, tableCells]\r\n );\r\n\r\n const multiCellTextColor = useMemo(() => {\r\n const { hasSameValue, value } = checkAllSelectedCellHasKey(\"textColor\");\r\n\r\n if (multiActiveCells.length > 1 && hasSameValue) return value;\r\n\r\n return \"rgb(0, 0, 0)\";\r\n }, [checkAllSelectedCellHasKey, multiActiveCells.length]);\r\n\r\n const checkSingleRowOrColumn2 = (selectedCells) => {\r\n const rows = [];\r\n const cols = [];\r\n\r\n selectedCells.forEach((cell) => {\r\n const [row, col] = cell.split(\"-\");\r\n rows.push(Number(row));\r\n cols.push(col);\r\n });\r\n\r\n const isSingleRow = rows.every((row) => row === rows[0]);\r\n\r\n const isSingleColumn = cols.every((col) => col === cols[0]);\r\n\r\n return { isSingleRow, isSingleColumn };\r\n };\r\n\r\n const isEntireRowOrCol = useMemo(() => {\r\n if (multiActiveCells.length > 0) {\r\n const [rowIndex, cellKey] = multiActiveCells[0].split(\"-\");\r\n const { isSingleRow, isSingleColumn } =\r\n checkSingleRowOrColumn2(multiActiveCells);\r\n if (\r\n node.data.key === \"Erd_Field_22\" ||\r\n node.data.key === \"Erd_Field_23\" ||\r\n node.data.key === \"Erd_Field_24\" ||\r\n node.data.key === \"Erd_Field_25\"\r\n ) {\r\n return { isEntireRowSelected: true, isEntireColumnSelected: false };\r\n }\r\n if (isSingleRow) {\r\n let colSpanCount = 0;\r\n let rowSpanCount = 0;\r\n Object.keys(tableCells[rowIndex]).forEach((cellK) => {\r\n if (\r\n tableCells[rowIndex][cellK] &&\r\n \"colSpan\" in tableCells[rowIndex][cellK]\r\n ) {\r\n colSpanCount += tableCells[rowIndex][cellK]?.colSpan - 1;\r\n }\r\n\r\n if (\r\n tableCells[rowIndex][cellK] &&\r\n \"rowSpan\" in tableCells[rowIndex][cellK]\r\n ) {\r\n rowSpanCount += tableCells[rowIndex][cellK]?.rowSpan - 1;\r\n }\r\n });\r\n\r\n let maxLength = 0;\r\n\r\n tableCells.forEach((obj) => {\r\n const keysLength = Object.keys(obj).length;\r\n if (keysLength > maxLength) {\r\n maxLength = keysLength;\r\n }\r\n });\r\n\r\n if (\r\n rowSpanCount <= 0 &&\r\n colSpanCount <= 0 &&\r\n multiActiveCells.length === maxLength\r\n ) {\r\n return { isEntireRowSelected: true, isEntireColumnSelected: false };\r\n } else {\r\n if (colSpanCount > 0 && rowSpanCount <= 0) {\r\n if (colSpanCount + multiActiveCells.length !== maxLength) {\r\n return {\r\n isEntireRowSelected: false,\r\n isEntireColumnSelected: false,\r\n };\r\n } else if (\r\n Object.keys(tableCells[rowIndex]).length ===\r\n multiActiveCells.length\r\n ) {\r\n return {\r\n isEntireRowSelected: true,\r\n isEntireColumnSelected: false,\r\n };\r\n } else if (colSpanCount + multiActiveCells.length === maxLength) {\r\n return {\r\n isEntireRowSelected: true,\r\n isEntireColumnSelected: false,\r\n };\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (isSingleColumn) {\r\n let maxLength = 0;\r\n\r\n tableCells.forEach((obj) => {\r\n if (Object.keys(obj).includes(cellKey)) {\r\n maxLength += 1;\r\n }\r\n });\r\n\r\n let colSpanCount = 0;\r\n let rowSpanCount = 0;\r\n\r\n for (let i = 0; i <= tableCells.length - 1; i++) {\r\n if (tableCells[i][cellKey]) {\r\n if (tableCells[i][cellKey]?.rowSpan) {\r\n rowSpanCount += tableCells[i][cellKey]?.rowSpan - 1;\r\n }\r\n\r\n if (tableCells[i][cellKey]?.colSpan) {\r\n colSpanCount += tableCells[i][cellKey]?.colSpan - 1;\r\n }\r\n }\r\n }\r\n\r\n if (\r\n rowSpanCount <= 0 &&\r\n colSpanCount <= 0 &&\r\n maxLength === multiActiveCells.length\r\n ) {\r\n return { isEntireRowSelected: false, isEntireColumnSelected: true };\r\n } else {\r\n if (\r\n rowSpanCount > 0 &&\r\n rowSpanCount + maxLength === tableCells.length\r\n ) {\r\n return { isEntireRowSelected: false, isEntireColumnSelected: true };\r\n }\r\n }\r\n }\r\n }\r\n return { isEntireRowSelected: false, isEntireColumnSelected: false };\r\n }, [multiActiveCells, node.data.key, tableCells]);\r\n\r\n const handleClickDeleteRowCol = () => {\r\n if (multiActiveCells.length > 0) {\r\n if (isEntireRowOrCol.isEntireRowSelected) {\r\n const rowIndex = multiActiveCells[0].split(\"-\")[0];\r\n const childToBeRemoved = childNodes\r\n .filter((nd) => {\r\n const childNodeInRowIndex = nd.data.parentNodeData.id.split(\"-\")[1];\r\n\r\n if (childNodeInRowIndex === rowIndex) return true;\r\n return false;\r\n })\r\n .map((nd) => nd.id);\r\n\r\n const updatedTableCells = tableCells.filter(\r\n (_, i) => i !== Number(rowIndex)\r\n );\r\n\r\n let totalHeight = updatedTableCells.reduce((totalHeight, row) => {\r\n const rowHeight = Math.max(\r\n ...Object.values(row).map((cell) => {\r\n return cell?.height || 0;\r\n })\r\n );\r\n return totalHeight + rowHeight + 10;\r\n }, 0);\r\n if (updatedTableCells.length > 0) {\r\n setMultiActiveCells([]);\r\n setSelectedCell(null);\r\n setActiveCell(\"\");\r\n setActiveCellData({});\r\n setTableCells(updatedTableCells);\r\n\r\n let updatedNode;\r\n let updatedNodes = getNodes()\r\n .filter((nd) => !childToBeRemoved.includes(nd.id))\r\n .map((nd) => {\r\n if (nd.id === node.id) {\r\n updatedNode = {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n tableCells: updatedTableCells,\r\n tableData: {\r\n ...nd.data.tableData,\r\n tableCells: updatedTableCells,\r\n },\r\n height: totalHeight + 10,\r\n style: {\r\n ...nd.data.style,\r\n height: totalHeight + 10,\r\n },\r\n },\r\n style: {\r\n ...nd.style,\r\n height: totalHeight + 10,\r\n },\r\n };\r\n return updatedNode;\r\n }\r\n return nd;\r\n });\r\n\r\n setNodes(updatedNodes);\r\n setCellEditors([]);\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 should_delete: updatedNodes.length > 0 ? false : true,\r\n takeSnapshot,\r\n });\r\n } else {\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n\r\n let updatedNodes = getNodes();\r\n setNodes((nds) => {\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: nds,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n updatedNodes = nds.filter((n) => n.id !== node.id);\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 should_delete: updatedNodes.length > 0 ? false : true,\r\n takeSnapshot,\r\n });\r\n }\r\n } else if (isEntireRowOrCol.isEntireColumnSelected) {\r\n let childrenToMove = [];\r\n let newWidth = 0;\r\n const cellKey = multiActiveCells[0].split(\"-\")[1];\r\n const childToBeRemoved = childNodes\r\n .filter((nd) => {\r\n const childNodeInColKey = nd.data.parentNodeData.id.split(\"-\")[2];\r\n\r\n if (childNodeInColKey === cellKey) return true;\r\n return false;\r\n })\r\n .map((nd) => nd.id);\r\n\r\n let afterDeletedKey = false;\r\n const updatedTableCells = tableCells.map((row) => {\r\n let copyRow = { ...row };\r\n afterDeletedKey = false;\r\n Object.keys(copyRow).forEach((cKey) => {\r\n if (cKey === cellKey) {\r\n afterDeletedKey = true;\r\n newWidth = copyRow[cKey]?.width || 0;\r\n }\r\n if (afterDeletedKey) {\r\n childrenToMove = [\r\n ...childrenToMove,\r\n {\r\n children: copyRow[cKey]?.children || [],\r\n newKey: cKey,\r\n },\r\n ];\r\n }\r\n });\r\n delete copyRow[cellKey];\r\n return copyRow;\r\n });\r\n\r\n let totalWidth = Object.values(updatedTableCells[0]).reduce(\r\n (totalW, cell) => {\r\n return totalW + cell?.width || 100;\r\n },\r\n 0\r\n );\r\n\r\n if (updatedTableCells.length > 0) {\r\n setMultiActiveCells([]);\r\n setSelectedCell(null);\r\n setActiveCell(\"\");\r\n setActiveCellData({});\r\n setTableCells(updatedTableCells);\r\n\r\n let updatedNode;\r\n let updatedNodes = getNodes()\r\n .filter((nd) => !childToBeRemoved.includes(nd.id))\r\n .map((nd) => {\r\n if (nd.id === node.id) {\r\n updatedNode = {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n tableCells: updatedTableCells,\r\n tableData: {\r\n ...nd.data.tableData,\r\n tableCells: updatedTableCells,\r\n },\r\n width: totalWidth,\r\n style: {\r\n ...nd.data.style,\r\n width: totalWidth,\r\n },\r\n },\r\n style: {\r\n ...nd.style,\r\n width: totalWidth,\r\n },\r\n };\r\n return updatedNode;\r\n }\r\n\r\n const childrenIds = childrenToMove\r\n .map((ch) => ch.children)\r\n .flat(Infinity);\r\n\r\n if (childrenIds.includes(nd.id)) {\r\n return {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n parentNodeData: {\r\n ...nd.data.parentNodeData,\r\n position: {\r\n ...nd.data.parentNodeData.position,\r\n x: nd.position.x - newWidth,\r\n },\r\n },\r\n },\r\n position: {\r\n ...nd.position,\r\n x: nd.position.x - newWidth,\r\n },\r\n };\r\n }\r\n\r\n return nd;\r\n });\r\n\r\n setNodes(updatedNodes);\r\n setCellEditors([]);\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 should_delete: updatedNodes.length > 0 ? false : true,\r\n takeSnapshot,\r\n });\r\n } else {\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n\r\n let updatedNodes = getNodes();\r\n setNodes((nds) => {\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: nds,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n updatedNodes = nds.filter((n) => n.id !== node.id);\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 should_delete: updatedNodes.length > 0 ? false : true,\r\n takeSnapshot,\r\n });\r\n }\r\n }\r\n }\r\n updateEdgeHandles();\r\n };\r\n\r\n const tableHasRowColSpan = () => {\r\n let hasColSpan = false;\r\n let hasRowSpan = false;\r\n\r\n tableCells.forEach((row) => {\r\n Object.keys(row).forEach((cellKey) => {\r\n if (row[cellKey]?.rowSpan) hasRowSpan = true;\r\n\r\n if (row[cellKey]?.colSpan) hasColSpan = true;\r\n });\r\n });\r\n\r\n return { hasColSpan, hasRowSpan };\r\n };\r\n\r\n function findLatestColSpanKey(object, startKey) {\r\n const startKeyIndex = startKey.replace(\"A\", \"\");\r\n let keys = Object.keys(object);\r\n let colSpanColKeys = [];\r\n let nearestColSpanKey = null;\r\n\r\n keys.forEach((key) => {\r\n if (object[key]?.colSpan) {\r\n colSpanColKeys.push(key);\r\n }\r\n });\r\n\r\n colSpanColKeys.forEach((key) => {\r\n const currKeyIndex = key.replace(\"A\", \"\");\r\n if (Number(currKeyIndex) < Number(startKeyIndex)) {\r\n if (nearestColSpanKey === null) {\r\n nearestColSpanKey = `A${currKeyIndex}`;\r\n } else {\r\n const nearKeyIndex = nearestColSpanKey.replace(\"A\", \"\");\r\n if (Number(currKeyIndex) > Number(nearKeyIndex)) {\r\n nearestColSpanKey = `A${currKeyIndex}`;\r\n }\r\n }\r\n }\r\n });\r\n\r\n return nearestColSpanKey;\r\n }\r\n\r\n const handleAddColumnAfter = (colKey) => {\r\n const { hasColSpan } = tableHasRowColSpan();\r\n let updatedCellData = [...tableCells];\r\n let newWidth = 0;\r\n let childrenToMove = [];\r\n if (!hasColSpan) {\r\n updatedCellData = node?.data?.tableData?.tableCells.map((row) => {\r\n let keys = Object.keys(row);\r\n let updatedRow = {};\r\n\r\n for (let i = 0; i < keys.length; i++) {\r\n let currentKey = keys[i];\r\n\r\n if (currentKey === colKey) {\r\n const previousEditorHTML = row[currentKey]?.editorHTML || \"\";\r\n\r\n const defaultText = [\r\n \"Erd_Field_22\",\r\n \"Erd_Field_23\",\r\n \"Erd_Field_24\",\r\n \"Erd_Field_25\",\r\n ].includes(node.data.key)\r\n ? row[currentKey]?.defaultText\r\n : \"\";\r\n const parser = new DOMParser();\r\n const doc = parser.parseFromString(previousEditorHTML, \"text/html\");\r\n const updateTextRecursively = (element) => {\r\n if (element.nodeType === Node.ELEMENT_NODE) {\r\n element.childNodes.forEach((child) =>\r\n updateTextRecursively(child)\r\n );\r\n } else if (element.nodeType === Node.TEXT_NODE) {\r\n element.textContent = defaultText;\r\n }\r\n };\r\n\r\n updateTextRecursively(doc.body);\r\n\r\n const updatedHTML = doc.body.innerHTML;\r\n\r\n updatedRow[currentKey] = row[currentKey];\r\n let newKey = `A${parseInt(currentKey.slice(1)) + 1}`;\r\n const height = row[currentKey]?.height || 100;\r\n const width = row[currentKey]?.width || 100;\r\n newWidth = width;\r\n updatedRow[newKey] = {\r\n ...row[currentKey],\r\n text: [\r\n \"Erd_Field_22\",\r\n \"Erd_Field_23\",\r\n \"Erd_Field_24\",\r\n \"Erd_Field_25\",\r\n ].includes(node.data.key)\r\n ? row[currentKey]?.defaultText\r\n : \"\",\r\n width,\r\n height,\r\n editorHTML: [\r\n \"Erd_Field_22\",\r\n \"Erd_Field_23\",\r\n \"Erd_Field_24\",\r\n \"Erd_Field_25\",\r\n ].includes(node.data.key)\r\n ? updatedHTML\r\n : \"\",\r\n children: [],\r\n };\r\n } else if (\r\n parseInt(currentKey.slice(1)) > parseInt(colKey.slice(1))\r\n ) {\r\n let shiftedKey = `A${parseInt(currentKey.slice(1)) + 1}`;\r\n updatedRow[shiftedKey] = row[currentKey];\r\n childrenToMove = [\r\n ...childrenToMove,\r\n {\r\n children: row[currentKey]?.children || [],\r\n newKey: shiftedKey,\r\n },\r\n ];\r\n } else {\r\n updatedRow[currentKey] = row[currentKey];\r\n }\r\n }\r\n return updatedRow;\r\n });\r\n } else if (hasColSpan) {\r\n updatedCellData = node?.data?.tableData?.tableCells.map((row) => {\r\n let keys = Object.keys(row);\r\n let updatedRow = {};\r\n let rowHasColSpan = false;\r\n let colSpanColKeys = [];\r\n\r\n keys.forEach((key) => {\r\n if (row[key]?.colSpan) {\r\n rowHasColSpan = true;\r\n colSpanColKeys.push(key);\r\n }\r\n });\r\n\r\n if (!rowHasColSpan) {\r\n for (let i = 0; i < keys.length; i++) {\r\n let currentKey = keys[i];\r\n\r\n if (currentKey === colKey) {\r\n const previousEditorHTML = row[currentKey]?.editorHTML || \"\";\r\n\r\n const defaultText = row[currentKey]?.defaultText || \"\";\r\n const parser = new DOMParser();\r\n const doc = parser.parseFromString(\r\n previousEditorHTML,\r\n \"text/html\"\r\n );\r\n const updateTextRecursively = (element) => {\r\n if (element.nodeType === Node.ELEMENT_NODE) {\r\n element.childNodes.forEach((child) =>\r\n updateTextRecursively(child)\r\n );\r\n } else if (element.nodeType === Node.TEXT_NODE) {\r\n element.textContent = defaultText;\r\n }\r\n };\r\n\r\n updateTextRecursively(doc.body);\r\n\r\n const updatedHTML = doc.body.innerHTML;\r\n updatedRow[currentKey] = row[currentKey];\r\n\r\n let newKey = `A${parseInt(currentKey.slice(1)) + 1}`;\r\n\r\n updatedRow[newKey] = {\r\n ...row[currentKey],\r\n text: [\r\n \"Erd_Field_22\",\r\n \"Erd_Field_23\",\r\n \"Erd_Field_24\",\r\n \"Erd_Field_25\",\r\n ].includes(node.data.key)\r\n ? row[currentKey]?.defaultText\r\n : \"\",\r\n width: row[currentKey]?.width || 100,\r\n height: row[currentKey]?.height || 100,\r\n editorHTML: [\r\n \"Erd_Field_22\",\r\n \"Erd_Field_23\",\r\n \"Erd_Field_24\",\r\n \"Erd_Field_25\",\r\n ].includes(node.data.key)\r\n ? updatedHTML\r\n : \"\",\r\n };\r\n } else if (\r\n parseInt(currentKey.slice(1)) > parseInt(colKey.slice(1))\r\n ) {\r\n let shiftedKey = `A${parseInt(currentKey.slice(1)) + 1}`;\r\n updatedRow[shiftedKey] = row[currentKey];\r\n } else {\r\n updatedRow[currentKey] = row[currentKey];\r\n }\r\n }\r\n } else if (rowHasColSpan) {\r\n for (let i = 0; i < keys.length; i++) {\r\n let currentKey = keys[i];\r\n if (currentKey === colKey) {\r\n if (colSpanColKeys.includes(currentKey)) {\r\n updatedRow[currentKey] = {\r\n ...row[currentKey],\r\n colSpan: row[currentKey]?.colSpan + 1,\r\n };\r\n } else {\r\n updatedRow[currentKey] = row[currentKey];\r\n let newKey = `A${parseInt(currentKey.slice(1)) + 1}`;\r\n updatedRow[newKey] = {\r\n ...row[currentKey],\r\n text: \"\",\r\n editorHTML: [\r\n \"Erd_Field_22\",\r\n \"Erd_Field_23\",\r\n \"Erd_Field_24\",\r\n \"Erd_Field_25\",\r\n ].includes(node.data.key)\r\n ? row[currentKey]?.editorHTML || \"\"\r\n : \"\",\r\n width: 100,\r\n height: row[currentKey]?.height || 100,\r\n };\r\n }\r\n } else if (\r\n parseInt(currentKey.slice(1)) > parseInt(colKey.slice(1))\r\n ) {\r\n let shiftedKey = `A${parseInt(currentKey.slice(1)) + 1}`;\r\n updatedRow[shiftedKey] = {\r\n ...row[currentKey],\r\n text: [\r\n \"Erd_Field_22\",\r\n \"Erd_Field_23\",\r\n \"Erd_Field_24\",\r\n \"Erd_Field_25\",\r\n ].includes(node.data.key)\r\n ? row[currentKey]?.editorHTML || \"\"\r\n : \"\",\r\n editorHTML: [\r\n \"Erd_Field_22\",\r\n \"Erd_Field_23\",\r\n \"Erd_Field_24\",\r\n \"Erd_Field_25\",\r\n ].includes(node.data.key)\r\n ? row[currentKey]?.editorHTML || \"\"\r\n : \"\",\r\n };\r\n } else {\r\n updatedRow[currentKey] = {\r\n ...row[currentKey],\r\n text: [\r\n \"Erd_Field_22\",\r\n \"Erd_Field_23\",\r\n \"Erd_Field_24\",\r\n \"Erd_Field_25\",\r\n ].includes(node.data.key)\r\n ? row[currentKey]?.editorHTML || \"\"\r\n : \"\",\r\n editorHTML: [\r\n \"Erd_Field_22\",\r\n \"Erd_Field_23\",\r\n \"Erd_Field_24\",\r\n \"Erd_Field_25\",\r\n ].includes(node.data.key)\r\n ? row[currentKey]?.editorHTML || \"\"\r\n : \"\",\r\n };\r\n }\r\n }\r\n }\r\n\r\n if (!updatedRow[colKey]) {\r\n const lastColSpan = findLatestColSpanKey(updatedRow, colKey);\r\n\r\n if (lastColSpan) {\r\n updatedRow[lastColSpan] = {\r\n ...updatedRow[lastColSpan],\r\n colSpan: updatedRow[lastColSpan]?.colSpan + 1,\r\n };\r\n }\r\n }\r\n\r\n return updatedRow;\r\n });\r\n }\r\n\r\n let updatedNodes = getNodes();\r\n let updatedNode;\r\n\r\n const maxCellsRow = updatedCellData.reduce((maxRow, currentRow) => {\r\n return Object.keys(currentRow).length > Object.keys(maxRow).length\r\n ? currentRow\r\n : maxRow;\r\n }, updatedCellData[0]);\r\n\r\n const totalWidth = Object.keys(maxCellsRow).reduce((sum, cellKey) => {\r\n const maxColumnWidth = Math.max(\r\n ...updatedCellData.map((row) => row[cellKey]?.width || 0)\r\n );\r\n return sum + maxColumnWidth;\r\n }, 0);\r\n\r\n setNodes((nds) => {\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: nds,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n updatedNodes = nds.map((n) => {\r\n if (n?.id === node?.id) {\r\n const updatedHeaders = [\r\n ...n?.data?.tableData?.headers,\r\n {\r\n text: Object.keys(updatedCellData[0]).map((key) => ({\r\n text: key,\r\n })),\r\n },\r\n ];\r\n updatedNode = {\r\n ...n,\r\n selected: true,\r\n data: {\r\n ...n?.data,\r\n rowsAndCols: {\r\n ...n.data.rowsAndCols,\r\n col: n.data.rowsAndCols.col + 1,\r\n },\r\n tableData: {\r\n ...(n?.data?.tableData || {}),\r\n rowsAndCols: {\r\n ...n.data.tableData.rowsAndCols,\r\n col: n.data.tableData.rowsAndCols.col + 1,\r\n },\r\n tableCells: updatedCellData,\r\n headers: updatedHeaders,\r\n },\r\n width: totalWidth + 5,\r\n style: {\r\n ...n.data.style,\r\n width: totalWidth + 5,\r\n },\r\n },\r\n style: {\r\n ...n.style,\r\n width: totalWidth + 5,\r\n },\r\n width: totalWidth + 5,\r\n };\r\n\r\n return updatedNode;\r\n }\r\n\r\n const childrenIds = childrenToMove\r\n .map((ch) => ch.children)\r\n .flat(Infinity);\r\n\r\n if (childrenIds.includes(n.id)) {\r\n const matchedCellKey = childrenToMove.filter((ch) =>\r\n ch.children.includes(n.id)\r\n );\r\n\r\n return {\r\n ...n,\r\n data: {\r\n ...n.data,\r\n parentNodeData: {\r\n ...n.data.parentNodeData,\r\n id:\r\n n.data.parentNodeData.id.slice(0, -2) +\r\n matchedCellKey[0]?.newKey,\r\n position: {\r\n ...n.data.parentNodeData.position,\r\n x: n.position.x + newWidth,\r\n },\r\n },\r\n },\r\n position: {\r\n ...n.position,\r\n x: n.position.x + newWidth,\r\n },\r\n };\r\n }\r\n\r\n return n;\r\n });\r\n\r\n return updatedNodes;\r\n });\r\n setTableCells(updatedCellData);\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 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 updateEdgeHandles();\r\n };\r\n\r\n const handleAddColumnAtStart = (colKey) => {\r\n let updatedCellsData = tableCells.map((row) => {\r\n let updatedRowData = {};\r\n const rowKeys = Object.keys(row);\r\n updatedRowData[rowKeys[0]] = { ...row[rowKeys[0]], text: \"\" };\r\n\r\n if (updatedRowData[rowKeys[0]]?.colSpan) {\r\n delete updatedRowData[rowKeys[0]]?.colSpan;\r\n }\r\n\r\n for (let i = 1; i <= rowKeys.length; i++) {\r\n if (rowKeys[i]) {\r\n updatedRowData[rowKeys[i]] = {\r\n ...row[rowKeys[i - 1]],\r\n text: [\r\n \"Erd_Field_22\",\r\n \"Erd_Field_23\",\r\n \"Erd_Field_24\",\r\n \"Erd_Field_25\",\r\n ].includes(node.data.key)\r\n ? row[rowKeys[i - 1]]?.editorHTML || \"\"\r\n : \"\",\r\n editorHTML: [\r\n \"Erd_Field_22\",\r\n \"Erd_Field_23\",\r\n \"Erd_Field_24\",\r\n \"Erd_Field_25\",\r\n ].includes(node.data.key)\r\n ? row[rowKeys[i - 1]]?.editorHTML || \"\"\r\n : \"\",\r\n };\r\n } else {\r\n const lastColKeyNum = rowKeys[rowKeys.length - 1].replace(\"A\", \"\");\r\n updatedRowData[`A${Number(lastColKeyNum) + 1}`] = {\r\n ...row[rowKeys[i - 1]],\r\n text: [\r\n \"Erd_Field_22\",\r\n \"Erd_Field_23\",\r\n \"Erd_Field_24\",\r\n \"Erd_Field_25\",\r\n ].includes(node.data.key)\r\n ? row[rowKeys[i - 1]]?.editorHTML || \"\"\r\n : \"\",\r\n editorHTML: [\r\n \"Erd_Field_22\",\r\n \"Erd_Field_23\",\r\n \"Erd_Field_24\",\r\n \"Erd_Field_25\",\r\n ].includes(node.data.key)\r\n ? row[rowKeys[i - 1]]?.editorHTML || \"\"\r\n : \"\",\r\n };\r\n }\r\n }\r\n\r\n return updatedRowData;\r\n });\r\n\r\n let updatedNodes = getNodes();\r\n let updatedNode;\r\n\r\n const maxCellsRow = updatedCellsData.reduce((maxRow, currentRow) => {\r\n return Object.keys(currentRow).length > Object.keys(maxRow).length\r\n ? currentRow\r\n : maxRow;\r\n }, updatedCellsData[0]);\r\n\r\n const totalWidth = Object.keys(maxCellsRow).reduce((sum, cellKey) => {\r\n const maxColumnWidth = Math.max(\r\n ...updatedCellsData.map((row) => row[cellKey]?.width || 0)\r\n );\r\n return sum + maxColumnWidth;\r\n }, 0);\r\n\r\n setNodes((nds) => {\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: nds,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n updatedNodes = nds.map((n) => {\r\n if (n?.id === node?.id) {\r\n const updatedHeaders = [\r\n ...n?.data?.tableData?.headers,\r\n {\r\n text: Object.keys(updatedCellsData[0]).map((key) => ({\r\n text: key,\r\n })),\r\n },\r\n ];\r\n updatedNode = {\r\n ...n,\r\n selected: true,\r\n data: {\r\n ...n?.data,\r\n rowsAndCols: {\r\n ...n.data.rowsAndCols,\r\n col: n.data.rowsAndCols.col + 1,\r\n },\r\n tableData: {\r\n ...(n?.data?.tableData || {}),\r\n rowsAndCols: {\r\n ...n.data.tableData.rowsAndCols,\r\n col: n.data.tableData.rowsAndCols.col + 1,\r\n },\r\n tableCells: updatedCellsData,\r\n headers: updatedHeaders,\r\n },\r\n width: totalWidth + 5,\r\n style: {\r\n ...n.data.style,\r\n width: totalWidth + 5,\r\n },\r\n },\r\n style: {\r\n ...n.style,\r\n width: totalWidth + 5,\r\n },\r\n };\r\n\r\n return updatedNode;\r\n }\r\n return n;\r\n });\r\n\r\n return updatedNodes;\r\n });\r\n setTableCells(updatedCellsData);\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 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 updateEdgeHandles();\r\n };\r\n\r\n let maxLength = 0;\r\n const maxRowLength = tableCells\r\n ?.map((obj) => {\r\n const keysLength = Object.keys(obj).length;\r\n if (keysLength > maxLength) {\r\n maxLength = keysLength;\r\n return keysLength;\r\n }\r\n\r\n return 0;\r\n })\r\n ?.reduce((perv, current) => current + perv, 0);\r\n\r\n const handleAddRowBetween = (place, index) => {\r\n if (index < 0 || index >= tableCells?.length) {\r\n return;\r\n }\r\n\r\n const insertIndex = place === \"after\" ? index + 1 : index;\r\n\r\n const keys = Array.from(new Set(tableCells.flatMap(Object.keys)));\r\n\r\n const newRowData = {};\r\n let newPosAddInChild = 0;\r\n keys.forEach((key) => {\r\n const refCellData = { ...(tableCells[index][key] || {}) };\r\n newPosAddInChild = refCellData.height;\r\n const row = tableCells[index];\r\n\r\n if (Object.keys(refCellData).length === 0) {\r\n return;\r\n }\r\n\r\n if (refCellData.rowSpan) delete refCellData.rowSpan;\r\n if (refCellData.colSpan) delete refCellData.colSpan;\r\n\r\n const previousEditorHTML = row[key]?.editorHTML || \"\";\r\n\r\n const defaultText = [\r\n \"Erd_Field_22\",\r\n \"Erd_Field_23\",\r\n \"Erd_Field_24\",\r\n \"Erd_Field_25\",\r\n ].includes(node.data.key)\r\n ? row[key]?.defaultText\r\n : \"\";\r\n const parser = new DOMParser();\r\n const doc = parser.parseFromString(previousEditorHTML, \"text/html\");\r\n const updateTextRecursively = (element) => {\r\n if (element.nodeType === Node.ELEMENT_NODE) {\r\n element.childNodes.forEach((child) => updateTextRecursively(child));\r\n } else if (element.nodeType === Node.TEXT_NODE) {\r\n element.textContent = [\r\n \"Erd_Field_22\",\r\n \"Erd_Field_23\",\r\n \"Erd_Field_24\",\r\n \"Erd_Field_25\",\r\n ].includes(node.data.key)\r\n ? defaultText\r\n : \"\";\r\n }\r\n };\r\n\r\n updateTextRecursively(doc.body);\r\n\r\n const updatedHTML = doc.body.innerHTML;\r\n\r\n newRowData[key] = {\r\n ...refCellData,\r\n children: [],\r\n text: [\r\n \"Erd_Field_22\",\r\n \"Erd_Field_23\",\r\n \"Erd_Field_24\",\r\n \"Erd_Field_25\",\r\n ].includes(node.data.key)\r\n ? row[key]?.defaultText\r\n : \"\",\r\n editorHTML: [\r\n \"Erd_Field_22\",\r\n \"Erd_Field_23\",\r\n \"Erd_Field_24\",\r\n \"Erd_Field_25\",\r\n ].includes(node.data.key)\r\n ? updatedHTML\r\n : \"\",\r\n };\r\n });\r\n\r\n const updatedTableData = tableCells?.map((row, rowIndex) => {\r\n const updatedRow = { ...row };\r\n\r\n Object.keys(row).forEach((colKey) => {\r\n const cell = row[colKey];\r\n\r\n if (\r\n cell.rowSpan &&\r\n rowIndex < insertIndex &&\r\n rowIndex + cell.rowSpan > insertIndex\r\n ) {\r\n updatedRow[colKey] = { ...cell, rowSpan: cell.rowSpan + 1 };\r\n }\r\n });\r\n\r\n return updatedRow;\r\n });\r\n\r\n const previousRow = tableCells[index];\r\n const skipKeys = Object.keys(previousRow).filter((key) => {\r\n const cell = previousRow[key];\r\n return (\r\n cell.rowSpan &&\r\n index < insertIndex &&\r\n insertIndex < index + cell.rowSpan\r\n );\r\n });\r\n\r\n skipKeys.forEach((key) => {\r\n delete newRowData[key];\r\n });\r\n\r\n updatedTableData.splice(insertIndex, 0, newRowData);\r\n\r\n const childToBeMoved = updatedTableData\r\n .filter((row, i) => i > insertIndex)\r\n .map((row) => {\r\n return Object.keys(row).map((cKey) => {\r\n return row[cKey]?.children || [];\r\n });\r\n })\r\n .flat(Infinity);\r\n\r\n let updatedNodes = getNodes();\r\n let updatedNode;\r\n\r\n const totalHeight = updatedTableData.reduce((totalHeight, row) => {\r\n const rowHeight = Math.max(\r\n ...Object.values(row).map((cell) => cell?.height || 0)\r\n );\r\n return totalHeight + rowHeight + 10;\r\n }, 0);\r\n\r\n setNodes((nds) => {\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: nds,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n\r\n updatedNodes = nds?.map((n) => {\r\n if (n?.id === node?.id) {\r\n updatedNode = {\r\n ...n,\r\n selected: true,\r\n data: {\r\n ...n?.data,\r\n rowsAndCols: {\r\n ...n.data.rowsAndCols,\r\n col: n.data.rowsAndCols.col + 1,\r\n },\r\n tableCells: updatedTableData,\r\n tableData: {\r\n ...(n?.data?.tableData || {}),\r\n rowsAndCols: {\r\n ...n.data.tableData.rowsAndCols,\r\n col: n.data.tableData.rowsAndCols.col + 1,\r\n },\r\n tableCells: updatedTableData,\r\n },\r\n height: totalHeight,\r\n style: {\r\n ...n.data.style,\r\n height: totalHeight,\r\n },\r\n },\r\n style: {\r\n ...n.style,\r\n height: totalHeight,\r\n },\r\n };\r\n\r\n return updatedNode;\r\n }\r\n\r\n if (childToBeMoved.includes(n.id)) {\r\n let input = n.data.parentNodeData.id;\r\n let parts = input.split(\"-\");\r\n parts[1] = Number(parts[1]) + 1;\r\n let updatedParentId = parts.join(\"-\");\r\n\r\n return {\r\n ...n,\r\n data: {\r\n ...n.data,\r\n parentNodeData: {\r\n ...n.data.parentNodeData,\r\n id: updatedParentId,\r\n position: {\r\n ...n.data.parentNodeData.position,\r\n y: n.position.y + newPosAddInChild,\r\n },\r\n },\r\n },\r\n position: {\r\n ...n.position,\r\n y: n.position.y + newPosAddInChild,\r\n },\r\n };\r\n }\r\n\r\n return n;\r\n });\r\n setTableCells(updatedTableData);\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 let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\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 updateEdgeHandles();\r\n };\r\n\r\n const handleAddRowAfter = (rowKey) => {\r\n const { hasRowSpan } = tableHasRowColSpan();\r\n\r\n let updatedCellData = [...node?.data?.tableData?.tableCells];\r\n\r\n if (!hasRowSpan) {\r\n updatedCellData.splice(rowKey + 1, 0, {\r\n ...Object.keys(updatedCellData[rowKey]).reduce((newRow, key) => {\r\n const previousEditorHTML = [\r\n \"Erd_Field_22\",\r\n \"Erd_Field_23\",\r\n \"Erd_Field_24\",\r\n \"Erd_Field_25\",\r\n ].includes(node.data.key)\r\n ? updatedCellData[rowKey][key]?.editorHTML\r\n : \"\";\r\n const defaultText = [\r\n \"Erd_Field_22\",\r\n \"Erd_Field_23\",\r\n \"Erd_Field_24\",\r\n \"Erd_Field_25\",\r\n ].includes(node.data.key)\r\n ? updatedCellData[rowKey][key]?.defaultText\r\n : \"\";\r\n const parser = new DOMParser();\r\n const doc = parser.parseFromString(previousEditorHTML, \"text/html\");\r\n const updateTextRecursively = (element) => {\r\n if (element.nodeType === Node.ELEMENT_NODE) {\r\n element.childNodes.forEach((child) =>\r\n updateTextRecursively(child)\r\n );\r\n } else if (element.nodeType === Node.TEXT_NODE) {\r\n element.textContent = [\r\n \"Erd_Field_22\",\r\n \"Erd_Field_23\",\r\n \"Erd_Field_24\",\r\n \"Erd_Field_25\",\r\n ].includes(node.data.key)\r\n ? defaultText\r\n : \"\";\r\n }\r\n };\r\n\r\n updateTextRecursively(doc.body);\r\n\r\n const updatedHTML = doc.body.innerHTML;\r\n\r\n newRow[key] = {\r\n ...updatedCellData[rowKey][key],\r\n text: [\r\n \"Erd_Field_22\",\r\n \"Erd_Field_23\",\r\n \"Erd_Field_24\",\r\n \"Erd_Field_25\",\r\n ].includes(node.data.key)\r\n ? updatedCellData[rowKey][key]?.defaultText\r\n : \"\",\r\n width: updatedCellData[rowKey][key]?.width || 100,\r\n height: updatedCellData[rowKey][key]?.height || 100,\r\n editorHTML: [\r\n \"Erd_Field_22\",\r\n \"Erd_Field_23\",\r\n \"Erd_Field_24\",\r\n \"Erd_Field_25\",\r\n ].includes(node.data.key)\r\n ? updatedHTML\r\n : \"\",\r\n };\r\n return newRow;\r\n }, {}),\r\n });\r\n } else {\r\n updatedCellData = updatedCellData.map((row, index) => {\r\n return Object.keys(row).reduce((newRow, key) => {\r\n newRow[key] = {\r\n ...row[key],\r\n rowSpan: row[key]?.rowSpan ? row[key]?.rowSpan + 1 : undefined,\r\n };\r\n return newRow;\r\n }, {});\r\n });\r\n\r\n updatedCellData.splice(rowKey + 1, 0, {\r\n ...Object.keys(updatedCellData[0]).reduce((newRow, key) => {\r\n const cell = updatedCellData[rowKey][key];\r\n\r\n if (!cell || (cell?.rowSpan && cell.rowSpan > 1)) {\r\n return newRow;\r\n }\r\n\r\n const previousEditorHTML = [\r\n \"Erd_Field_22\",\r\n \"Erd_Field_23\",\r\n \"Erd_Field_24\",\r\n \"Erd_Field_25\",\r\n ].includes(node.data.key)\r\n ? cell?.editorHTML\r\n : \"\";\r\n const defaultText = [\r\n \"Erd_Field_22\",\r\n \"Erd_Field_23\",\r\n \"Erd_Field_24\",\r\n \"Erd_Field_25\",\r\n ].includes(node.data.key)\r\n ? cell?.defaultText\r\n : \"\";\r\n\r\n const updatedHTML = (() => {\r\n const parser = new DOMParser();\r\n const doc = parser.parseFromString(previousEditorHTML, \"text/html\");\r\n const updateTextRecursively = (element) => {\r\n if (element.nodeType === Node.ELEMENT_NODE) {\r\n element.childNodes.forEach(updateTextRecursively);\r\n } else if (element.nodeType === Node.TEXT_NODE) {\r\n element.textContent = [\r\n \"Erd_Field_22\",\r\n \"Erd_Field_23\",\r\n \"Erd_Field_24\",\r\n \"Erd_Field_25\",\r\n ].includes(node.data.key)\r\n ? defaultText\r\n : \"\";\r\n }\r\n };\r\n updateTextRecursively(doc.body);\r\n return doc.body.innerHTML;\r\n })();\r\n\r\n newRow[key] = {\r\n ...cell,\r\n text: [\r\n \"Erd_Field_22\",\r\n \"Erd_Field_23\",\r\n \"Erd_Field_24\",\r\n \"Erd_Field_25\",\r\n ].includes(node.data.key)\r\n ? defaultText\r\n : \"\",\r\n width: updatedCellData[0][key]?.width || 100,\r\n height: updatedCellData[0][key]?.height || 100,\r\n editorHTML: [\r\n \"Erd_Field_22\",\r\n \"Erd_Field_23\",\r\n \"Erd_Field_24\",\r\n \"Erd_Field_25\",\r\n ].includes(node.data.key)\r\n ? updatedHTML\r\n : \"\",\r\n };\r\n\r\n return newRow;\r\n }, {}),\r\n });\r\n }\r\n\r\n let updatedNodes = getNodes();\r\n let updatedNode;\r\n\r\n setNodes((nds) => {\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: nds,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n\r\n updatedNodes = nds.map((n) => {\r\n if (n?.id === node?.id) {\r\n const updatedRows = [...(n?.data?.tableData?.rows || [])];\r\n updatedRows.splice(rowKey + 1, 0, {\r\n ...Object.keys(updatedCellData[0]).reduce((newRow, key) => {\r\n newRow[key] = {\r\n ...updatedCellData[rowKey][key],\r\n text: updatedCellData[rowKey][key]?.defaultText || \"\",\r\n width: updatedCellData[0][key]?.width || 100,\r\n height: updatedCellData[0][key]?.height || 100,\r\n editorHTML: \"\",\r\n };\r\n return newRow;\r\n }, {}),\r\n });\r\n\r\n let totalHeight = updatedCellData.reduce((totalHeight, row) => {\r\n const rowHeight = Math.max(\r\n ...Object.values(row).map((cell) => {\r\n return cell?.height || 0;\r\n })\r\n );\r\n return totalHeight + rowHeight + 10;\r\n }, 0);\r\n\r\n updatedNode = {\r\n ...n,\r\n selected: true,\r\n data: {\r\n ...n?.data,\r\n rowsAndCols: {\r\n ...n.data.rowsAndCols,\r\n row: n.data.rowsAndCols.row + 1,\r\n },\r\n height: totalHeight + 10,\r\n style: {\r\n ...n.data.style,\r\n height: totalHeight + 10,\r\n },\r\n tableCells: updatedCellData,\r\n tableData: {\r\n ...(n?.data?.tableData || {}),\r\n rowsAndCols: {\r\n ...n.data.tableData.rowsAndCols,\r\n row: n.data.tableData.rowsAndCols.row + 1,\r\n },\r\n tableCells: updatedCellData,\r\n rows: updatedRows,\r\n },\r\n },\r\n style: {\r\n ...n.style,\r\n height: totalHeight + 10,\r\n },\r\n };\r\n\r\n return updatedNode;\r\n }\r\n return n;\r\n });\r\n\r\n return updatedNodes;\r\n });\r\n\r\n setTableCells(updatedCellData);\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,\r\n dispatch,\r\n undo,\r\n a_id,\r\n takeSnapshot,\r\n });\r\n updateEdgeHandles();\r\n };\r\n\r\n const handleResizeStartRow = (e, rowIndex) => {\r\n const startY = e.clientY;\r\n let initialRowHeights = [];\r\n\r\n setTableCells((prev) => {\r\n initialRowHeights = Object.keys(prev[rowIndex] || {}).map(\r\n (key) => prev[rowIndex][key]?.height || 45\r\n );\r\n return prev;\r\n });\r\n\r\n let shapesToBeMoved = [];\r\n let afterCurrentCell = false;\r\n currentNode.data.tableData?.tableCells?.forEach((row, i) => {\r\n if (i === rowIndex) {\r\n afterCurrentCell = true;\r\n }\r\n\r\n if (i > rowIndex && afterCurrentCell) {\r\n Object.keys(row).forEach((cKey) => {\r\n shapesToBeMoved = [\r\n ...shapesToBeMoved,\r\n row[cKey]?.children || [],\r\n ].flat(Infinity);\r\n });\r\n }\r\n });\r\n\r\n let prevHeightOfNodes = {};\r\n\r\n const handleMouseMoveRow = (moveEvent) => {\r\n const diffY = moveEvent.clientY - startY;\r\n const differenceHeight =\r\n initialRowHeights[rowIndex] + diffY - initialRowHeights[rowIndex];\r\n\r\n setTableCells((prev) => {\r\n const updatedTableCells = currentNode.data.tableData?.tableCells.map(\r\n (row, i) => {\r\n if (i === rowIndex) {\r\n const updatedRow = {};\r\n Object.keys(row).forEach((cellKey, colIndex) => {\r\n updatedRow[cellKey] = {\r\n ...row[cellKey],\r\n height: Math.max(20, initialRowHeights[colIndex] + diffY),\r\n };\r\n });\r\n return updatedRow;\r\n }\r\n return row;\r\n }\r\n );\r\n\r\n let updatedNodes;\r\n setNodes((nds) => {\r\n updatedNodes = nds.map((n) => {\r\n if (n?.id === node?.id) {\r\n const totalHeight = updatedTableCells.reduce(\r\n (totalHeight, row) => {\r\n const rowHeight = Math.max(\r\n ...Object.values(row).map((cell) => {\r\n return cell?.height || 0;\r\n })\r\n );\r\n return totalHeight + rowHeight + 10;\r\n },\r\n 0\r\n );\r\n\r\n return {\r\n ...n,\r\n selected: true,\r\n data: {\r\n ...n?.data,\r\n height: totalHeight,\r\n tableCells: updatedTableCells,\r\n tableData: {\r\n ...(n?.data?.tableData || {}),\r\n tableCells: updatedTableCells,\r\n },\r\n },\r\n style: {\r\n ...n.style,\r\n height: totalHeight,\r\n },\r\n height: totalHeight,\r\n };\r\n }\r\n\r\n if (shapesToBeMoved.includes(n.id)) {\r\n const isCurrentNodeHeightSaved = Object.keys(\r\n prevHeightOfNodes\r\n ).includes(n.id);\r\n\r\n if (!isCurrentNodeHeightSaved) {\r\n prevHeightOfNodes = {\r\n ...prevHeightOfNodes,\r\n [n.id]: n.data.parentNodeData?.position?.y || n.position.y,\r\n };\r\n }\r\n\r\n return {\r\n ...n,\r\n data: {\r\n ...n.data,\r\n parentNodeData: {\r\n ...n.data.parentNodeData,\r\n position: {\r\n ...n.data.parentNodeData.position,\r\n y:\r\n (isCurrentNodeHeightSaved\r\n ? prevHeightOfNodes[n.id]\r\n : n.data.parentNodeData?.position?.y ||\r\n n.position.y) + differenceHeight,\r\n },\r\n },\r\n },\r\n position: {\r\n ...n.position,\r\n y:\r\n (isCurrentNodeHeightSaved\r\n ? prevHeightOfNodes[n.id]\r\n : n.data.parentNodeData?.position?.y || n.position.y) +\r\n differenceHeight,\r\n },\r\n };\r\n }\r\n\r\n return n;\r\n });\r\n\r\n return updatedNodes;\r\n });\r\n\r\n debouncedUpdateNodeHeightForRow(updatedNodes, node?.id);\r\n\r\n return updatedTableCells;\r\n });\r\n };\r\n\r\n const handleMouseUp = () => {\r\n document.removeEventListener(\"mousemove\", handleMouseMoveRow);\r\n document.removeEventListener(\"mouseup\", handleMouseUp);\r\n };\r\n\r\n document.addEventListener(\"mousemove\", handleMouseMoveRow);\r\n document.addEventListener(\"mouseup\", handleMouseUp);\r\n };\r\n\r\n const handleResizeStartCol = (e, columnKey) => {\r\n const startX = e.clientX;\r\n\r\n let initialColumnWidths = {};\r\n\r\n initialColumnWidths = currentNode.data.tableData?.tableCells.reduce(\r\n (acc, row) => {\r\n Object.keys(row).forEach((key) => {\r\n if (!acc[key]) {\r\n acc[key] = row[key]?.width || 100;\r\n }\r\n });\r\n return acc;\r\n },\r\n {}\r\n );\r\n\r\n let shapesToBeMoved = [];\r\n let currentColChildren = [];\r\n let colWidthTillCurrentCol = 0;\r\n currentNode.data.tableData?.tableCells?.forEach((row, i) => {\r\n let afterCurrentCell = false;\r\n Object.keys(row).forEach((cKey) => {\r\n if (i === 0 && !afterCurrentCell && cKey !== columnKey) {\r\n colWidthTillCurrentCol = colWidthTillCurrentCol + row[cKey].width;\r\n }\r\n\r\n if (cKey === columnKey) {\r\n afterCurrentCell = true;\r\n currentColChildren = [\r\n ...currentColChildren,\r\n ...(row[cKey]?.children || []),\r\n ];\r\n }\r\n\r\n if (cKey !== columnKey && afterCurrentCell) {\r\n shapesToBeMoved = [\r\n ...shapesToBeMoved,\r\n row[cKey]?.children || [],\r\n ].flat(Infinity);\r\n }\r\n });\r\n });\r\n\r\n let maxLastPoint = 0;\r\n getNodes()\r\n .filter((nd) => currentColChildren.includes(nd.id))\r\n .map((nd) => ({\r\n id: nd.id,\r\n lastPoint:\r\n nd.position.x + (nd.width || nd.data.width || nd.data.style.width),\r\n }))\r\n .filter((nd) => {\r\n if (nd.lastPoint > maxLastPoint) {\r\n maxLastPoint = nd.lastPoint;\r\n return true;\r\n }\r\n\r\n return false;\r\n });\r\n\r\n let prevWidthOfNodes = {};\r\n const handleMouseMoveCol = (moveEvent) => {\r\n const diffX = moveEvent.clientX - startX;\r\n const differenceWidth =\r\n initialColumnWidths[columnKey] + diffX - initialColumnWidths[columnKey];\r\n const newWidth = Math.max(20, initialColumnWidths[columnKey] + diffX);\r\n const stopResizing = maxLastPoint - colWidthTillCurrentCol <= newWidth;\r\n\r\n if (stopResizing) {\r\n setTableCells((prev) => {\r\n const updatedTableCells = currentNode.data.tableData?.tableCells.map(\r\n (row) => {\r\n const updatedRow = { ...row };\r\n\r\n if (row[columnKey]) {\r\n updatedRow[columnKey] = {\r\n ...row[columnKey],\r\n width: newWidth,\r\n };\r\n }\r\n\r\n return updatedRow;\r\n }\r\n );\r\n\r\n let updatedNodes;\r\n\r\n setNodes((nds) => {\r\n updatedNodes = nds.map((n) => {\r\n if (n?.id === node?.id) {\r\n const maxCellsRow = updatedTableCells.reduce(\r\n (maxRow, currentRow) => {\r\n return Object.keys(currentRow).length >\r\n Object.keys(maxRow).length\r\n ? currentRow\r\n : maxRow;\r\n },\r\n updatedTableCells[0]\r\n );\r\n\r\n const totalWidth = Object.keys(maxCellsRow).reduce(\r\n (sum, cellKey) => {\r\n const maxColumnWidth = Math.max(\r\n ...updatedTableCells.map(\r\n (row) => row[cellKey]?.width || 0\r\n )\r\n );\r\n return sum + maxColumnWidth;\r\n },\r\n 0\r\n );\r\n\r\n return {\r\n ...n,\r\n data: {\r\n ...n?.data,\r\n width: totalWidth + 5,\r\n tableCells: updatedTableCells,\r\n tableData: {\r\n ...(n?.data?.tableData || {}),\r\n tableCells: updatedTableCells,\r\n },\r\n },\r\n style: {\r\n ...n.style,\r\n width: totalWidth + 5,\r\n },\r\n width: totalWidth + 5,\r\n };\r\n }\r\n\r\n if (shapesToBeMoved.includes(n.id)) {\r\n const isCurrentNodeWidthSaved = Object.keys(\r\n prevWidthOfNodes\r\n ).includes(n.id);\r\n\r\n if (!isCurrentNodeWidthSaved) {\r\n prevWidthOfNodes = {\r\n ...prevWidthOfNodes,\r\n [n.id]: n.data.parentNodeData?.position?.x || n.position.x,\r\n };\r\n }\r\n\r\n return {\r\n ...n,\r\n data: {\r\n ...n.data,\r\n parentNodeData: {\r\n ...n.data.parentNodeData,\r\n position: {\r\n ...n.data.parentNodeData.position,\r\n x:\r\n (isCurrentNodeWidthSaved\r\n ? prevWidthOfNodes[n.id]\r\n : n.data.parentNodeData?.position?.x ||\r\n n.position.x) + differenceWidth,\r\n },\r\n },\r\n },\r\n position: {\r\n ...n.position,\r\n x:\r\n (isCurrentNodeWidthSaved\r\n ? prevWidthOfNodes[n.id]\r\n : n.data.parentNodeData?.position?.x || n.position.x) +\r\n differenceWidth,\r\n },\r\n };\r\n }\r\n\r\n return n;\r\n });\r\n\r\n return updatedNodes;\r\n });\r\n\r\n debouncedUpdateNodeHeightForRow(updatedNodes);\r\n\r\n return updatedTableCells;\r\n });\r\n }\r\n };\r\n\r\n const handleMouseUp = () => {\r\n document.removeEventListener(\"mousemove\", handleMouseMoveCol);\r\n document.removeEventListener(\"mouseup\", handleMouseUp);\r\n };\r\n\r\n document.addEventListener(\"mousemove\", handleMouseMoveCol);\r\n document.addEventListener(\"mouseup\", handleMouseUp);\r\n };\r\n\r\n const debouncedUpdateNodeHeightForRow = useMemo(\r\n () =>\r\n debounce((updatedNodes) => {\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n const parsedData = user_data ? JSON.parse(user_data) : {};\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 }, 500),\r\n [location.search, user_data, id, dispatch, undo, takeSnapshot]\r\n );\r\n\r\n const cellBorderWidth = useMemo(() => {\r\n return (rowIndex, nodeKey, colIndex) => {\r\n if (!excludedKeys.includes(nodeKey)) {\r\n if (node.data.key === \"Choreography\") {\r\n return rowIndex === 0 ? \"0px\" : \"1px 0px 0px 0px\";\r\n }\r\n if (\r\n node.data.key === \"Process_1\" ||\r\n node.data.key === \"Uml_Class\" ||\r\n node.data.key === \"Uml_Interface_with_Attributes_11\"\r\n ) {\r\n return rowIndex === 0 ? \"0px\" : \"1px 0px 0px 0px\";\r\n }\r\n if (node.data.key === \"DataStore_1\") {\r\n return colIndex === 0 ? \"0px\" : \"0px 0px 0px 1px\";\r\n }\r\n if (node.data.key === \"Uml_Package\") {\r\n return rowIndex === 0 ? (colIndex === 0 ? \"1px\" : \"0px\") : \"1px\";\r\n }\r\n if (node.data.key === \"Uml_Frame\") {\r\n return rowIndex === 0\r\n ? colIndex === 0\r\n ? \"0px 1px 1px 0px\"\r\n : \"0px 0px 1px 0px\"\r\n : \"0px\";\r\n }\r\n return \"1px\";\r\n }\r\n return rowIndex === 0\r\n ? \"0px 0px 2px 0px\"\r\n : colIndex === 0\r\n ? \"0px\"\r\n : rowIndex === tableCells.length - 1\r\n ? \"0px 0px 0px 2px\"\r\n : \"0px 0px 0px 2px\";\r\n };\r\n }, [excludedKeys, node.data.key, tableCells.length]);\r\n\r\n useEffect(() => {\r\n if (node.dragging) {\r\n setActiveCell(\"table\");\r\n setSelectedCell(\"table\");\r\n }\r\n }, [node.dragging]);\r\n\r\n return (\r\n <>\r\n 0) &&\r\n node.selected &&\r\n !node.dragging\r\n ? true\r\n : false\r\n }\r\n position={Position.Top}\r\n style={{\r\n top: \"-40px\",\r\n }}\r\n >\r\n \r\n {(selectedCell || multiActiveCells.length > 0) && node.selected && (\r\n <>\r\n {!node.data.locked &&\r\n node.data.key !== \"Erd_Field_22\" &&\r\n node.data.key !== \"Erd_Field_23\" &&\r\n node.data.key !== \"Erd_Field_24\" &&\r\n node.data.key !== \"Erd_Field_25\" &&\r\n node.data.key !== \"Process_1\" &&\r\n node.data.key !== \"Choreography\" &&\r\n node.data.key !== \"Uml_Class\" &&\r\n node.data.key !== \"Uml_Frame\" &&\r\n node.data.key !== \"Uml_Package\" &&\r\n node.data.key !== \"Uml_Interface_with_Attributes_11\" &&\r\n node.data.key !== \"DataStore_1\" && (\r\n <>\r\n \r\n {\r\n handleAddRowAfter(tableCells.length - 1);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n {\r\n const findLastCellKeyWithLongestRow = (\r\n tableCells\r\n ) => {\r\n let longestRowLength = 0;\r\n let lastCellKey = \"\";\r\n\r\n tableCells.forEach((row) => {\r\n const rowLength = Object.keys(row).length;\r\n if (rowLength > longestRowLength) {\r\n longestRowLength = rowLength;\r\n lastCellKey = Object.keys(row)[rowLength - 1];\r\n }\r\n });\r\n\r\n return lastCellKey;\r\n };\r\n const lastCellKey =\r\n findLastCellKeyWithLongestRow(tableCells);\r\n handleAddColumnAfter(lastCellKey);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n )}\r\n {node.data.key !== \"Process_1\" &&\r\n node.data.key !== \"Choreography\" &&\r\n node.data.key !== \"Uml_Class\" &&\r\n node.data.key !== \"Uml_Frame\" &&\r\n node.data.key !== \"Uml_Package\" &&\r\n node.data.key !== \"Uml_Interface_with_Attributes_11\" &&\r\n node.data.key !== \"DataStore_1\" &&\r\n node.data.key !== \"Erd_Field_22\" &&\r\n node.data.key !== \"Erd_Field_23\" &&\r\n node.data.key !== \"Erd_Field_24\" &&\r\n node.data.key !== \"Erd_Field_25\" && (\r\n \r\n )}\r\n {node.data.key !== \"Erd_Field_22\" &&\r\n node.data.key !== \"Erd_Field_23\" &&\r\n node.data.key !== \"Erd_Field_24\" &&\r\n node.data.key !== \"Erd_Field_25\" &&\r\n node.data.key !== \"Process_1\" &&\r\n node.data.key !== \"Choreography\" &&\r\n node.data.key !== \"Uml_Class\" &&\r\n node.data.key !== \"Uml_Frame\" &&\r\n node.data.key !== \"Uml_Package\" &&\r\n node.data.key !== \"Uml_Interface_with_Attributes_11\" &&\r\n node.data.key !== \"DataStore_1\" &&\r\n multiActiveCells.length > 1 &&\r\n (singleColumn || singleRow) && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {node.data.key !== \"Erd_Field_22\" &&\r\n node.data.key !== \"Erd_Field_23\" &&\r\n node.data.key !== \"Erd_Field_24\" &&\r\n node.data.key !== \"Erd_Field_25\" &&\r\n node.data.key !== \"Process_1\" &&\r\n node.data.key !== \"Choreography\" &&\r\n node.data.key !== \"Uml_Frame\" &&\r\n node.data.key !== \"Uml_Class\" &&\r\n node.data.key !== \"Uml_Package\" &&\r\n node.data.key !== \"Uml_Interface_with_Attributes_11\" &&\r\n node.data.key !== \"DataStore_1\" &&\r\n multiActiveCells.length === 1 &&\r\n (activeCellData?.colSpan || activeCellData?.rowSpan) && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {!node.data.locked && (\r\n <>\r\n \r\n {\r\n setShowBgColor(false);\r\n }}\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 if (multiActiveCells.length > 0) {\r\n handleChangeMultiCellStyle({\r\n backgroundColor: color,\r\n });\r\n } else {\r\n updateTableColor({\r\n backgroundColor: color,\r\n });\r\n }\r\n setActiveCellData((prev) => ({\r\n ...prev,\r\n backgroundColor: color,\r\n }));\r\n }}\r\n />\r\n \r\n }\r\n >\r\n {\r\n setShowBgColor(!showBgColor);\r\n setShowTableVariations(false);\r\n setShowBorderColor(false);\r\n setShowFontFamily(false);\r\n setShowFontSizeOpt(false);\r\n setShowTextDecoration(false);\r\n setShowAlignment(false);\r\n setShowTextColor(false);\r\n setShowTableMoreOptions(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 setShowBorderColor(false)}\r\n >\r\n \r\n setShowBorderColor(false)}\r\n open={showBorderColor}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n {\r\n updateNodeJson({\r\n ...node?.data,\r\n tableData: {\r\n ...(node?.data?.tableData || {}),\r\n borderColor: color,\r\n },\r\n });\r\n }}\r\n />\r\n }\r\n >\r\n {\r\n setShowBorderColor(!showBorderColor);\r\n setShowTableVariations(false);\r\n setShowBgColor(false);\r\n setShowFontFamily(false);\r\n setShowFontSizeOpt(false);\r\n setShowTextDecoration(false);\r\n setShowAlignment(false);\r\n setShowTextColor(false);\r\n setShowTableMoreOptions(false);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setShowFontFamily(false)}\r\n >\r\n setShowFontFamily(false)}\r\n open={showFontFamily}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n {\r\n setShowFontFamily(false);\r\n }}\r\n alignItems={\"center\"}\r\n gap={\"8px\"}\r\n maxHeight={\"350px\"}\r\n overflow={\"auto\"}\r\n sx={{\r\n boxShadow: \"0px 4px 12px rgba(3, 11, 22, 0.15)\",\r\n p: \"5px\",\r\n borderRadius: \"10px\",\r\n }}\r\n onWheelCapture={(e) => {\r\n e.stopPropagation();\r\n }}\r\n >\r\n {fontFamilyArr?.map((val, i) => (\r\n {\r\n let copiedTableCells =\r\n structuredClone(tableCells);\r\n cellEditors.forEach(\r\n ({ editor, rowIndex, column }) => {\r\n editor\r\n .chain()\r\n .focus()\r\n .setFontFamily(val.family)\r\n .run();\r\n setShowFontFamily(false);\r\n if (editor?.state.selection.empty) {\r\n editor\r\n .chain()\r\n .focus()\r\n .selectAll()\r\n .setFontFamily(val.family)\r\n .run();\r\n }\r\n\r\n copiedTableCells[rowIndex][column] = {\r\n ...copiedTableCells[rowIndex][column],\r\n editorHTML: editor?.getHTML(),\r\n };\r\n }\r\n );\r\n setFontFamily(val.name);\r\n setShowFontFamily(false);\r\n debouncedUpdateHTML(copiedTableCells);\r\n }}\r\n >\r\n {val.name}{\" \"}\r\n {fontFamily === val.name && (\r\n \r\n )}\r\n \r\n ))}\r\n \r\n }\r\n >\r\n {\r\n e.stopPropagation();\r\n setShowTableVariations(false);\r\n setShowBgColor(false);\r\n setShowBorderColor(false);\r\n setShowFontSizeOpt(false);\r\n setShowTextDecoration(false);\r\n setShowAlignment(false);\r\n setShowTextColor(false);\r\n setShowTableMoreOptions(false);\r\n setShowFontFamily(!showFontFamily);\r\n }}\r\n >\r\n \r\n \r\n {`${fontFamily}`}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setShowFontSizeOpt(false)}\r\n >\r\n setShowFontSizeOpt(false)}\r\n open={showFontSizeOpt}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n \r\n {fontSizeArr?.map((val, i) => {\r\n return (\r\n {\r\n let copiedTableCells =\r\n structuredClone(tableCells);\r\n cellEditors.forEach(\r\n ({ editor, rowIndex, column }) => {\r\n if (editor.state.selection.empty) {\r\n editor\r\n .chain()\r\n .focus()\r\n .selectAll()\r\n .setFontSize(`${val}px`)\r\n .run();\r\n } else {\r\n editor\r\n .chain()\r\n .focus()\r\n .setFontSize(`${val}px`)\r\n .run();\r\n }\r\n copiedTableCells[rowIndex][column] = {\r\n ...copiedTableCells[rowIndex][\r\n column\r\n ],\r\n editorHTML: editor?.getHTML(),\r\n };\r\n }\r\n );\r\n setFontSize(val);\r\n setShowFontSizeOpt(false);\r\n debouncedUpdateHTML(copiedTableCells);\r\n }}\r\n >\r\n {val}\r\n \r\n );\r\n })}\r\n \r\n }\r\n >\r\n {\r\n e.stopPropagation();\r\n setShowTableVariations(false);\r\n setShowBgColor(false);\r\n setShowBorderColor(false);\r\n setShowFontFamily(false);\r\n setShowTextDecoration(false);\r\n setShowAlignment(false);\r\n setShowTextColor(false);\r\n setShowTableMoreOptions(false);\r\n setShowFontSizeOpt(!showFontSizeOpt);\r\n }}\r\n >\r\n \r\n \r\n {fontSize}\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 setShowTextDecoration(false)}\r\n >\r\n {\r\n setShowTextDecoration(!showTextDecoration);\r\n setShowTableVariations(false);\r\n setShowBgColor(false);\r\n setShowBorderColor(false);\r\n setShowFontFamily(false);\r\n setShowFontSizeOpt(false);\r\n setShowAlignment(false);\r\n setShowTextColor(false);\r\n setShowTableMoreOptions(false);\r\n }}\r\n >\r\n setShowTextDecoration(false)}\r\n open={showTextDecoration}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n \r\n {\r\n e.stopPropagation();\r\n let copiedTableCells =\r\n structuredClone(tableCells);\r\n\r\n cellEditors.forEach(\r\n ({ editor, rowIndex, column }) => {\r\n if (editor.state.selection.empty) {\r\n editor\r\n .chain()\r\n .focus()\r\n .selectAll()\r\n .toggleBold()\r\n .run();\r\n } else {\r\n editor\r\n .chain()\r\n .focus()\r\n .toggleBold()\r\n .run();\r\n }\r\n copiedTableCells[rowIndex][column] = {\r\n ...copiedTableCells[rowIndex][column],\r\n editorHTML: editor?.getHTML(),\r\n };\r\n }\r\n );\r\n debouncedUpdateHTML(copiedTableCells);\r\n }}\r\n >\r\n \r\n \r\n {\r\n e.stopPropagation();\r\n let copiedTableCells =\r\n structuredClone(tableCells);\r\n cellEditors.forEach(\r\n ({ editor, rowIndex, column }) => {\r\n if (editor.state.selection.empty) {\r\n editor\r\n .chain()\r\n .focus()\r\n .selectAll()\r\n .toggleItalic()\r\n .run();\r\n } else {\r\n editor\r\n .chain()\r\n .focus()\r\n .toggleItalic()\r\n .run();\r\n }\r\n copiedTableCells[rowIndex][column] = {\r\n ...copiedTableCells[rowIndex][column],\r\n editorHTML: editor?.getHTML(),\r\n };\r\n }\r\n );\r\n debouncedUpdateHTML(copiedTableCells);\r\n }}\r\n sx={{\r\n height: \"36px !important\",\r\n width: \"36px !important\",\r\n borderRadius: \"8px\",\r\n transition: \"all 0.3s ease\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n gap: \"7px\",\r\n bgcolor: \"#FFF\",\r\n \"&:hover\": { bgcolor: \"#EFF0F3\" },\r\n }}\r\n >\r\n \r\n \r\n\r\n {\r\n e.stopPropagation();\r\n e.stopPropagation();\r\n let copiedTableCells =\r\n structuredClone(tableCells);\r\n cellEditors.forEach(\r\n ({ editor, rowIndex, column }) => {\r\n if (editor.state.selection.empty) {\r\n editor\r\n .chain()\r\n .focus()\r\n .selectAll()\r\n .toggleUnderline()\r\n .run();\r\n } else {\r\n editor\r\n .chain()\r\n .focus()\r\n .toggleUnderline()\r\n .run();\r\n }\r\n copiedTableCells[rowIndex][column] = {\r\n ...copiedTableCells[rowIndex][column],\r\n editorHTML: editor?.getHTML(),\r\n };\r\n }\r\n );\r\n debouncedUpdateHTML(copiedTableCells);\r\n }}\r\n sx={{\r\n height: \"36px !important\",\r\n width: \"36px !important\",\r\n borderRadius: \"8px\",\r\n transition: \"all 0.3s ease\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n gap: \"7px\",\r\n bgcolor: \"#FFF\",\r\n \"&:hover\": { bgcolor: \"#EFF0F3\" },\r\n }}\r\n >\r\n \r\n \r\n {\r\n e.stopPropagation();\r\n let copiedTableCells =\r\n structuredClone(tableCells);\r\n cellEditors.forEach(\r\n ({ editor, rowIndex, column }) => {\r\n editor\r\n .chain()\r\n .focus()\r\n .toggleStrike()\r\n .run();\r\n copiedTableCells[rowIndex][column] = {\r\n ...copiedTableCells[rowIndex][column],\r\n editorHTML: editor?.getHTML(),\r\n };\r\n }\r\n );\r\n debouncedUpdateHTML(copiedTableCells);\r\n }}\r\n sx={{\r\n height: \"36px !important\",\r\n width: \"36px !important\",\r\n borderRadius: \"8px\",\r\n transition: \"all 0.3s ease\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n gap: \"7px\",\r\n bgcolor: \"#FFF\",\r\n \"&:hover\": { bgcolor: \"#EFF0F3\" },\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 setShowAlignment(false)}\r\n >\r\n {\r\n setShowAlignment(!showAlignment);\r\n setShowTableVariations(false);\r\n setShowBgColor(false);\r\n setShowBorderColor(false);\r\n setShowFontFamily(false);\r\n setShowFontSizeOpt(false);\r\n setShowTextDecoration(false);\r\n setShowTextColor(false);\r\n setShowTableMoreOptions(false);\r\n }}\r\n >\r\n setShowAlignment(false)}\r\n open={showAlignment}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n \r\n \r\n {\r\n let copiedTableCells =\r\n structuredClone(tableCells);\r\n cellEditors.forEach(\r\n ({ editor, rowIndex, column }) => {\r\n if (editor.state.selection.empty) {\r\n editor\r\n .chain()\r\n .focus()\r\n .selectAll()\r\n .setTextAlign(\"justify\")\r\n .run();\r\n } else {\r\n editor\r\n .chain()\r\n .focus()\r\n .setTextAlign(\"justify\")\r\n .run();\r\n }\r\n copiedTableCells[rowIndex][column] = {\r\n ...copiedTableCells[rowIndex][column],\r\n editorHTML: editor?.getHTML(),\r\n };\r\n }\r\n );\r\n debouncedUpdateHTML(copiedTableCells);\r\n }}\r\n sx={{\r\n height: \"36px !important\",\r\n width: \"36px !important\",\r\n borderRadius: \"8px\",\r\n transition: \"all 0.3s ease\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n gap: \"7px\",\r\n bgcolor: \"#FFF\",\r\n \"&:hover\": { bgcolor: \"#EFF0F3\" },\r\n }}\r\n >\r\n \r\n \r\n {\r\n let copiedTableCells =\r\n structuredClone(tableCells);\r\n cellEditors.forEach(\r\n ({ editor, rowIndex, column }) => {\r\n if (editor.state.selection.empty) {\r\n editor\r\n .chain()\r\n .focus()\r\n .selectAll()\r\n .setTextAlign(\"center\")\r\n .run();\r\n } else {\r\n editor\r\n .chain()\r\n .focus()\r\n .setTextAlign(\"center\")\r\n .run();\r\n }\r\n copiedTableCells[rowIndex][column] = {\r\n ...copiedTableCells[rowIndex][column],\r\n editorHTML: editor?.getHTML(),\r\n };\r\n }\r\n );\r\n debouncedUpdateHTML(copiedTableCells);\r\n }}\r\n sx={{\r\n height: \"36px !important\",\r\n width: \"36px !important\",\r\n borderRadius: \"8px\",\r\n transition: \"all 0.3s ease\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n gap: \"7px\",\r\n bgcolor: \"#FFF\",\r\n \"&:hover\": { bgcolor: \"#EFF0F3\" },\r\n }}\r\n >\r\n \r\n \r\n {\r\n let copiedTableCells =\r\n structuredClone(tableCells);\r\n cellEditors.forEach(\r\n ({ editor, rowIndex, column }) => {\r\n if (editor.state.selection.empty) {\r\n editor\r\n .chain()\r\n .focus()\r\n .selectAll()\r\n .setTextAlign(\"right\")\r\n .run();\r\n } else {\r\n editor\r\n .chain()\r\n .focus()\r\n .setTextAlign(\"right\")\r\n .run();\r\n }\r\n copiedTableCells[rowIndex][column] = {\r\n ...copiedTableCells[rowIndex][column],\r\n editorHTML: editor?.getHTML(),\r\n };\r\n }\r\n );\r\n debouncedUpdateHTML(copiedTableCells);\r\n }}\r\n sx={{\r\n height: \"36px !important\",\r\n width: \"36px !important\",\r\n borderRadius: \"8px\",\r\n transition: \"all 0.3s ease\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n gap: \"7px\",\r\n bgcolor: \"#FFF\",\r\n \"&:hover\": { bgcolor: \"#EFF0F3\" },\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n {\r\n handleChangeMultiCellStyle({\r\n justifyContent: \"flex-start\",\r\n });\r\n }}\r\n >\r\n \r\n \r\n {\r\n handleChangeMultiCellStyle({\r\n justifyContent: \"center\",\r\n });\r\n }}\r\n >\r\n \r\n \r\n {\r\n handleChangeMultiCellStyle({\r\n justifyContent: \"flex-end\",\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 \r\n \r\n setShowTextColor(false)}\r\n >\r\n {\r\n setShowTextColor(!showTextColor);\r\n setShowTableVariations(false);\r\n setShowBgColor(false);\r\n setShowBorderColor(false);\r\n setShowFontFamily(false);\r\n setShowFontSizeOpt(false);\r\n setShowTextDecoration(false);\r\n setShowAlignment(false);\r\n setShowTableMoreOptions(false);\r\n }}\r\n >\r\n setShowTextColor(false)}\r\n open={showTextColor}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n 1\r\n ? multiCellTextColor\r\n : activeCellData?.textColor || \"#000\"\r\n )}\r\n onChangeColor={(color) => {\r\n let copiedTableCells =\r\n structuredClone(tableCells);\r\n cellEditors.forEach(\r\n ({ editor, rowIndex, column }) => {\r\n if (editor.state.selection.empty) {\r\n editor\r\n .chain()\r\n .focus()\r\n .selectAll()\r\n .setColor(color)\r\n .run();\r\n } else {\r\n editor\r\n .chain()\r\n .focus()\r\n .setColor(color)\r\n .run();\r\n }\r\n copiedTableCells[rowIndex][column] = {\r\n ...copiedTableCells[rowIndex][column],\r\n editorHTML: editor?.getHTML(),\r\n };\r\n }\r\n );\r\n debouncedUpdateHTML(copiedTableCells);\r\n }}\r\n />\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n 1\r\n ? multiCellTextColor\r\n : activeCellData?.textColor ||\r\n \"#18181B\",\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!node.data.locked && (\r\n \r\n )}\r\n {multiActiveCells.length <= 1 &&\r\n activeCell &&\r\n activeCell !== \"table\" && (\r\n <>\r\n setShowLink(false)}\r\n >\r\n setShowLink(!showLink)}>\r\n setShowLink(false)}\r\n open={showLink}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n // title={\r\n // \r\n // setLinkText(e?.target?.value)\r\n // }\r\n // value={linkText}\r\n // placeholder=\"Paste/enter links\"\r\n // onKeyPress={(e) => {\r\n // if (e.key === \"Enter\") {\r\n // updateHeaderStyle(\r\n // false,\r\n // \"linkText\",\r\n // linkText\r\n // );\r\n // setShowLink(false);\r\n // }\r\n // }}\r\n // />\r\n // }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n\r\n {(!excludeDeleteBtn.includes(node?.data?.key) ||\r\n (excludedKeys.includes(node?.data?.key) &&\r\n selectedCell &&\r\n selectedCell[0] !== \"0\")) &&\r\n (isEntireRowOrCol.isEntireColumnSelected ||\r\n isEntireRowOrCol.isEntireRowSelected) && (\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.locked ? : }\r\n \r\n \r\n \r\n \r\n setShowTableMoreOptions(false)}\r\n open={showTableMoreOptions}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n \r\n }\r\n >\r\n {\r\n setShowTableVariations(false);\r\n setShowBgColor(false);\r\n setShowBorderColor(false);\r\n setShowFontFamily(false);\r\n setShowFontSizeOpt(false);\r\n setShowTextDecoration(false);\r\n setShowAlignment(false);\r\n setShowTextColor(false);\r\n setShowTableMoreOptions(!showTableMoreOptions);\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 handleClickOutside(e);\r\n if (node.data.key === \"Uml_Frame\") {\r\n setActiveCell(\"table\");\r\n setSelectedCell(\"table\");\r\n }\r\n }}\r\n onMouseEnter={() => setShowDots(true)}\r\n onContextMenu={(e) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }}\r\n onMouseLeave={() => {\r\n setShowDots(false);\r\n setHoveredRowCol({\r\n row: null,\r\n col: null,\r\n });\r\n }}\r\n onMouseDownCapture={(e) =>\r\n node.data.locked === true && e.stopPropagation()\r\n }\r\n >\r\n {node.selected &&\r\n !node.data.locked &&\r\n node.data.key !== \"Erd_Field_22\" &&\r\n node.data.key !== \"Erd_Field_23\" &&\r\n node.data.key !== \"Erd_Field_24\" &&\r\n node.data.key !== \"Erd_Field_25\" &&\r\n node.data.key !== \"Process_1\" &&\r\n node.data.key !== \"Choreography\" &&\r\n node.data.key !== \"Uml_Class\" &&\r\n node.data.key !== \"Uml_Frame\" &&\r\n node.data.key !== \"Uml_Package\" &&\r\n node.data.key !== \"Uml_Interface_with_Attributes_11\" &&\r\n node.data.key !== \"DataStore_1\" && (\r\n <>\r\n {!showAlignment && !showTextColor && !showTableMoreOptions && (\r\n \r\n {\r\n const findLastCellKeyWithLongestRow = (tableCells) => {\r\n let longestRowLength = 0;\r\n let lastCellKey = \"\";\r\n\r\n tableCells.forEach((row) => {\r\n const rowLength = Object.keys(row).length;\r\n if (rowLength > longestRowLength) {\r\n longestRowLength = rowLength;\r\n lastCellKey = Object.keys(row)[rowLength - 1];\r\n }\r\n });\r\n\r\n return lastCellKey;\r\n };\r\n const lastCellKey =\r\n findLastCellKeyWithLongestRow(tableCells);\r\n handleAddColumnAfter(lastCellKey);\r\n }}\r\n >\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n {![\r\n \"SwimlessHorizontal\",\r\n \"SwimlessVertical\",\r\n \"Pool\",\r\n \"PoolOne\",\r\n \"Swimlanes_Horizontal_Pool_3_11\",\r\n \"Swimlanes_Vertical_Pool_3\",\r\n \"Swimlanes_Vertical_2\",\r\n \"Swimlanes_Horizontal_2\",\r\n ].includes(node.data.key) &&\r\n !node?.dragging &&\r\n !showExport &&\r\n !isItemToSmall &&\r\n !node.data.locked &&\r\n !copyAsImage &&\r\n !isDownload && (\r\n <>\r\n {\r\n setShowDots(true);\r\n setHoveredItem(\"top\");\r\n }}\r\n onMouseLeave={() => {\r\n setShowDots(false);\r\n setHoveredItem(\"\");\r\n }}\r\n onClick={(e) => {\r\n e.preventDefault();\r\n }}\r\n >\r\n {(!isNodeSelectionStarted || isNodeSelected <= 0) && (\r\n \r\n )}\r\n \r\n \r\n console.log(\"handle onConnect\", params)\r\n }\r\n onMouseOver={() => {\r\n setShowDots(true);\r\n setHoveredItem(\"bottom\");\r\n }}\r\n onMouseLeave={() => {\r\n setShowDots(false);\r\n setHoveredItem(\"\");\r\n }}\r\n onClick={(e) => {\r\n e.preventDefault();\r\n }}\r\n >\r\n {(!isNodeSelectionStarted || isNodeSelected <= 0) && (\r\n \r\n )}\r\n \r\n \r\n )}\r\n\r\n {![\r\n \"SwimlessHorizontal\",\r\n \"SwimlessVertical\",\r\n \"Pool\",\r\n \"PoolOne\",\r\n \"Swimlanes_Horizontal_Pool_3_11\",\r\n \"Swimlanes_Vertical_Pool_3\",\r\n \"Swimlanes_Vertical_2\",\r\n \"Swimlanes_Horizontal_2\",\r\n \"Erd_Field_22\",\r\n \"Erd_Field_23\",\r\n \"Erd_Field_24\",\r\n \"Erd_Field_25\",\r\n \"Uml_Class\",\r\n ].includes(node.data.key) &&\r\n !node?.dragging &&\r\n !showExport &&\r\n !isItemToSmall &&\r\n !node.data.locked &&\r\n !copyAsImage &&\r\n !isDownload && (\r\n <>\r\n \r\n console.log(\"handle onConnect\", params)\r\n }\r\n onMouseOver={() => {\r\n setShowDots(true);\r\n setHoveredItem(\"left\");\r\n }}\r\n onMouseLeave={() => {\r\n setShowDots(false);\r\n setHoveredItem(\"\");\r\n }}\r\n onClick={(e) => {\r\n e.preventDefault();\r\n }}\r\n >\r\n {(!isNodeSelectionStarted || isNodeSelected <= 0) && (\r\n \r\n )}\r\n \r\n \r\n console.log(\"handle onConnect\", params)\r\n }\r\n onMouseOver={() => {\r\n setShowDots(true);\r\n setHoveredItem(\"right\");\r\n }}\r\n onMouseLeave={() => {\r\n setShowDots(false);\r\n setHoveredItem(\"\");\r\n }}\r\n onClick={(e) => {\r\n e.preventDefault();\r\n }}\r\n >\r\n {(!isNodeSelectionStarted || isNodeSelected <= 0) && (\r\n \r\n )}\r\n \r\n \r\n )}\r\n {node?.selected &&\r\n !node.data.locked &&\r\n !showExport &&\r\n !copyAsImage &&\r\n !isDownload &&\r\n !isNodeSelectionStarted && (\r\n <>\r\n {\r\n resizingRef.current = true;\r\n onResizeNode(e, node);\r\n }}\r\n onResizeEnd={(e) => onResizeEnd(e, node)}\r\n keepAspectRatio={\r\n node.data.key === \"Erd_Field_22\" ||\r\n node.data.key === \"Erd_Field_23\" ||\r\n node.data.key === \"Erd_Field_24\" ||\r\n node.data.key === \"Erd_Field_25\"\r\n ? false\r\n : true\r\n }\r\n minWidth={node?.data?.tableData?.width || maxRowLength * 75}\r\n minHeight={\r\n node.data.key === \"Erd_Field_22\" ||\r\n node.data.key === \"Erd_Field_23\" ||\r\n node.data.key === \"Erd_Field_24\" ||\r\n node.data.key === \"Erd_Field_25\"\r\n ? currentNode?.height\r\n : node?.data?.tableData?.height || tableCells?.length * 45\r\n }\r\n {...((node.data.key === \"Erd_Field_22\" ||\r\n node.data.key === \"Erd_Field_23\" ||\r\n node.data.key === \"Erd_Field_24\" ||\r\n node.data.key === \"Erd_Field_25\") && {\r\n maxHeight: currentNode?.height,\r\n })}\r\n style={{\r\n zIndex: 99,\r\n }}\r\n >\r\n \r\n \r\n {\r\n resizingRef.current = true;\r\n onResizeNode(e, node);\r\n }}\r\n keepAspectRatio={\r\n node.data.key === \"Erd_Field_22\" ||\r\n node.data.key === \"Erd_Field_23\" ||\r\n node.data.key === \"Erd_Field_24\" ||\r\n node.data.key === \"Erd_Field_25\"\r\n ? false\r\n : true\r\n }\r\n onResizeEnd={(e) => onResizeEnd(e, node)}\r\n minWidth={node?.data?.tableData?.width || maxRowLength * 75}\r\n minHeight={\r\n node.data.key === \"Erd_Field_22\" ||\r\n node.data.key === \"Erd_Field_23\" ||\r\n node.data.key === \"Erd_Field_24\" ||\r\n node.data.key === \"Erd_Field_25\"\r\n ? currentNode?.height\r\n : node?.data?.tableData?.height || tableCells?.length * 45\r\n }\r\n {...((node.data.key === \"Erd_Field_22\" ||\r\n node.data.key === \"Erd_Field_23\" ||\r\n node.data.key === \"Erd_Field_24\" ||\r\n node.data.key === \"Erd_Field_25\") && {\r\n maxHeight: currentNode?.height,\r\n })}\r\n style={{\r\n zIndex: 99,\r\n }}\r\n >\r\n \r\n \r\n {\r\n resizingRef.current = true;\r\n onResizeNode(e, node);\r\n }}\r\n keepAspectRatio={\r\n node.data.key === \"Erd_Field_22\" ||\r\n node.data.key === \"Erd_Field_23\" ||\r\n node.data.key === \"Erd_Field_24\" ||\r\n node.data.key === \"Erd_Field_25\"\r\n ? false\r\n : true\r\n }\r\n onResizeEnd={(e) => onResizeEnd(e, node)}\r\n minWidth={node?.data?.tableData?.width || maxRowLength * 75}\r\n minHeight={\r\n node.data.key === \"Erd_Field_22\" ||\r\n node.data.key === \"Erd_Field_23\" ||\r\n node.data.key === \"Erd_Field_24\" ||\r\n node.data.key === \"Erd_Field_25\"\r\n ? currentNode?.height\r\n : node?.data?.tableData?.height || tableCells?.length * 45\r\n }\r\n {...((node.data.key === \"Erd_Field_22\" ||\r\n node.data.key === \"Erd_Field_23\" ||\r\n node.data.key === \"Erd_Field_24\" ||\r\n node.data.key === \"Erd_Field_25\") && {\r\n maxHeight: currentNode?.height,\r\n })}\r\n style={{\r\n zIndex: 99,\r\n }}\r\n >\r\n \r\n \r\n {\r\n resizingRef.current = true;\r\n onResizeNode(e, node);\r\n }}\r\n keepAspectRatio={\r\n node.data.key === \"Erd_Field_22\" ||\r\n node.data.key === \"Erd_Field_23\" ||\r\n node.data.key === \"Erd_Field_24\" ||\r\n node.data.key === \"Erd_Field_25\"\r\n ? false\r\n : true\r\n }\r\n onResizeEnd={(e) => onResizeEnd(e, node)}\r\n minWidth={node?.data?.tableData?.width || maxRowLength * 75}\r\n minHeight={\r\n node.data.key === \"Erd_Field_22\" ||\r\n node.data.key === \"Erd_Field_23\" ||\r\n node.data.key === \"Erd_Field_24\" ||\r\n node.data.key === \"Erd_Field_25\"\r\n ? currentNode?.height\r\n : node?.data?.tableData?.height || tableCells?.length * 45\r\n }\r\n {...((node.data.key === \"Erd_Field_22\" ||\r\n node.data.key === \"Erd_Field_23\" ||\r\n node.data.key === \"Erd_Field_24\" ||\r\n node.data.key === \"Erd_Field_25\") && {\r\n maxHeight: currentNode?.height,\r\n })}\r\n style={{\r\n zIndex: 99,\r\n }}\r\n >\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {tableCells?.map((row, rowIndex) => {\r\n const maxCellHeight = Object.values(row).reduce(\r\n (maxHeight, cell) =>\r\n Math.max(maxHeight, cell?.height || 0),\r\n 0\r\n );\r\n\r\n const isActiveRow =\r\n activeCell && activeCell.startsWith(`${rowIndex}-`);\r\n\r\n return (\r\n \r\n {(node.data.key === \"Erd_Field_22\" ||\r\n node.data.key === \"Erd_Field_23\" ||\r\n node.data.key === \"Erd_Field_24\" ||\r\n node.data.key === \"Erd_Field_25\" ||\r\n node.data.key === \"Uml_Class\") && (\r\n <>\r\n {\r\n updateNodeInternals(params.source);\r\n updateNodeInternals(params.target);\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 \r\n \r\n {\r\n updateNodeInternals(params.source);\r\n updateNodeInternals(params.target);\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 \r\n \r\n \r\n )}\r\n {!node.data.locked &&\r\n node.data.key !== \"Erd_Field_22\" &&\r\n node.data.key !== \"Erd_Field_23\" &&\r\n node.data.key !== \"Erd_Field_24\" &&\r\n node.data.key !== \"Erd_Field_25\" &&\r\n node.data.key !== \"Process_1\" &&\r\n node.data.key !== \"Choreography\" &&\r\n node.data.key !== \"Uml_Class\" &&\r\n node.data.key !== \"Uml_Frame\" &&\r\n node.data.key !== \"Uml_Package\" &&\r\n node.data.key !== \"DataStore_1\" &&\r\n node.data.key !==\r\n \"Uml_Interface_with_Attributes_11\" && (\r\n {\r\n setHoveredRowCol({\r\n row: rowIndex,\r\n col: null,\r\n });\r\n }}\r\n >\r\n {\r\n e.stopPropagation();\r\n handleAddRowBetween(\"before\", rowIndex);\r\n }}\r\n >\r\n \r\n \r\n {\r\n e.stopPropagation();\r\n handleSelectRowCol(\"row\", row);\r\n }}\r\n onMouseOverCapture={() => {\r\n setHoveredRowCol({\r\n col: null,\r\n row: rowIndex,\r\n });\r\n }}\r\n >\r\n \r\n \r\n {\r\n e.stopPropagation();\r\n handleAddRowBetween(\"after\", rowIndex);\r\n }}\r\n >\r\n \r\n \r\n \r\n )}\r\n\r\n {Object.keys(row).map((column, colIndex) => {\r\n const cellKey = `${rowIndex}-${column}`;\r\n const isVertical = row[column]?.textVertical;\r\n const isLastColumn =\r\n colIndex === Object.keys(row).length - 1;\r\n const isOnlyColumn = Object.keys(row).length === 1;\r\n\r\n return (\r\n 1\r\n ? colIndex === 0\r\n ? \"11px 0px 0px 0px\"\r\n : isLastColumn\r\n ? \"0px 11px 0px 0px\"\r\n : \"0px\"\r\n : rowIndex === tableCells.length - 1\r\n ? isOnlyColumn\r\n ? \"0px 0px 11px 11px\"\r\n : colIndex === 0\r\n ? \"0px 0px 0px 11px\"\r\n : isLastColumn\r\n ? \"0px 0px 11px 0px\"\r\n : \"0px\"\r\n : \"0px\"\r\n : node.data.key === \"Erd_Field_22\" ||\r\n node.data.key === \"Erd_Field_23\" ||\r\n node.data.key === \"Erd_Field_24\" ||\r\n node.data.key === \"Erd_Field_25\" ||\r\n node.data.key === \"Choreography\" ||\r\n node.data.key === \"Process_1\" ||\r\n node.data.key === \"Uml_Class\" ||\r\n node.data.key ===\r\n \"Uml_Interface_with_Attributes_11\"\r\n ? rowIndex === 0\r\n ? \"11px 11px 0px 0px\"\r\n : rowIndex === tableCells.length - 1\r\n ? isOnlyColumn\r\n ? \"0px 0px 11px 11px\"\r\n : colIndex === 0\r\n ? \"0px 0px 0px 11px\"\r\n : isLastColumn\r\n ? \"0px 0px 11px 0px\"\r\n : \"0px\"\r\n : \"0px\"\r\n : \"0px\",\r\n fontSize: currentFontSize,\r\n fontFamily: row[column]?.fontFamily\r\n ? row[column]?.fontFamily?.includes(\r\n \"important\"\r\n )\r\n ? row[column]?.fontFamily\r\n : `${row[column]?.fontFamily} !important`\r\n : currentFontFamily?.includes(\"important\")\r\n ? currentFontFamily\r\n : `${currentFontFamily} !important`,\r\n borderColor:\r\n node.data.key === \"Uml_Frame\"\r\n ? rowIndex === 0 && colIndex === 0\r\n ? `${currentBorderColor} !important`\r\n : `${row[column]?.backgroundColor ||\r\n \"transparent\"\r\n } !important`\r\n : `${currentBorderColor} !important`,\r\n minWidth: `${row[column]?.width || 100\r\n }px !important`,\r\n maxWidth: `${row[column]?.width || 100\r\n }px !important`,\r\n position: \"relative\",\r\n padding: \"0px !important\",\r\n \"& .MuiOutlinedInput-input\": {\r\n padding: \"0px !important\",\r\n },\r\n \"& .MuiTableCell-root\": {\r\n padding: \"0px !important\",\r\n },\r\n }}\r\n onKeyDown={(e) =>\r\n handleChangeCellOnTab(\r\n e,\r\n row,\r\n colIndex,\r\n rowIndex\r\n )\r\n }\r\n onClick={(e) => {\r\n if (!node?.data?.locked) {\r\n if (\r\n showTableVariations ||\r\n showBgColor ||\r\n showBorderColor ||\r\n showFontFamily ||\r\n showFontSizeOpt ||\r\n showTextDecoration ||\r\n showAlignment ||\r\n showTextColor ||\r\n showTableMoreOptions\r\n ) {\r\n setShowTableVariations(false);\r\n setShowBgColor(false);\r\n setShowBorderColor(false);\r\n setShowFontFamily(false);\r\n setShowFontSizeOpt(false);\r\n setShowTextDecoration(false);\r\n setShowAlignment(false);\r\n setShowTextColor(false);\r\n setShowTableMoreOptions(false);\r\n } else {\r\n if (node.selected) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (e.ctrlKey || e.metaKey) {\r\n toggleMultipleActiveCells(e, cellKey);\r\n } else {\r\n setSelectedCell(cellKey);\r\n setActiveCell(cellKey);\r\n setActiveCellData(row[column]);\r\n if (showLink) {\r\n setLinkPopup(e.currentTarget);\r\n }\r\n setColor(\r\n row[column]?.backgroundColor\r\n ? row[column]?.backgroundColor\r\n : rowIndex\r\n );\r\n setLinkText(\r\n row[column]?.linkText || \"\"\r\n );\r\n setIsCellShow(\"active\");\r\n setMultiActiveCells([cellKey]);\r\n const input = document.getElementById(\r\n `${node?.id}-${cellKey}-${colIndex}`\r\n );\r\n input?.focus();\r\n }\r\n } else {\r\n setActiveCell(\"table\");\r\n setSelectedCell(\"table\");\r\n }\r\n }\r\n }\r\n }}\r\n onMouseOverCapture={(e) => {\r\n setHoveredRowCol({\r\n row: rowIndex,\r\n col: colIndex,\r\n });\r\n }}\r\n >\r\n {node.data.key !== \"Erd_Field_22\" &&\r\n node.data.key !== \"Erd_Field_23\" &&\r\n node.data.key !== \"Erd_Field_24\" &&\r\n node.data.key !== \"Erd_Field_25\" &&\r\n node.data.key !== \"Process_1\" &&\r\n node.data.key !== \"Choreography\" &&\r\n node.data.key !== \"Uml_Class\" &&\r\n node.data.key !== \"Uml_Frame\" &&\r\n node.data.key !== \"Uml_Package\" &&\r\n node.data.key !==\r\n \"Uml_Interface_with_Attributes_11\" &&\r\n node.data.key !== \"DataStore_1\" && (\r\n <>\r\n {\r\n e.stopPropagation();\r\n handleResizeStartRow(e, rowIndex);\r\n }}\r\n >\r\n {\r\n e.stopPropagation();\r\n handleResizeStartCol(e, column);\r\n }}\r\n >\r\n \r\n )}\r\n {!node.data.locked &&\r\n rowIndex === 0 &&\r\n node.data.key !== \"Erd_Field_22\" &&\r\n node.data.key !== \"Erd_Field_23\" &&\r\n node.data.key !== \"Erd_Field_24\" &&\r\n node.data.key !== \"Erd_Field_25\" &&\r\n node.data.key !== \"Process_1\" &&\r\n node.data.key !== \"Choreography\" &&\r\n node.data.key !== \"Uml_Class\" &&\r\n node.data.key !== \"Uml_Frame\" &&\r\n node.data.key !== \"Uml_Package\" &&\r\n node.data.key !==\r\n \"Uml_Interface_with_Attributes_11\" &&\r\n node.data.key !== \"DataStore_1\" && (\r\n {\r\n setHoveredRowCol({\r\n row: null,\r\n col: colIndex,\r\n });\r\n }}\r\n >\r\n {\r\n e.stopPropagation();\r\n if (colIndex > 0) {\r\n const rowKeys = Object.keys(row);\r\n const currKeyIndex =\r\n rowKeys[colIndex - 1];\r\n handleAddColumnAfter(currKeyIndex);\r\n } else {\r\n handleAddColumnAtStart(column);\r\n }\r\n }}\r\n >\r\n \r\n \r\n {\r\n e.stopPropagation();\r\n handleSelectRowCol(\"col\", column);\r\n }}\r\n >\r\n \r\n \r\n {\r\n e.stopPropagation();\r\n handleAddColumnAfter(column);\r\n }}\r\n >\r\n \r\n \r\n \r\n )}\r\n {isActiveRow &&\r\n (node.data.key === \"Erd_Field_22\" ||\r\n node.data.key === \"Erd_Field_23\" ||\r\n node.data.key === \"Erd_Field_24\" ||\r\n node.data.key === \"Erd_Field_25\") && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {(activeCell === cellKey ||\r\n multiActiveCells.includes(cellKey)) &&\r\n node.data.key !== \"Erd_Field_22\" &&\r\n node.data.key !== \"Erd_Field_23\" &&\r\n node.data.key !== \"Erd_Field_24\" &&\r\n node.data.key !== \"Erd_Field_25\" && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n {\r\n if (!excludedKeys.includes(node.data.key)) {\r\n handleChange(e, rowIndex, column);\r\n } else {\r\n handleChangeERD(\r\n e,\r\n rowIndex,\r\n column,\r\n textAreaHeight\r\n );\r\n }\r\n }}\r\n handleClick={(e) =>\r\n handleClick(e, row, column)\r\n }\r\n activeCell={activeCell}\r\n cellKey={cellKey}\r\n multiActiveCells={multiActiveCells}\r\n node={node}\r\n colIndex={colIndex}\r\n isCellShow={isCellShow}\r\n currentFontFamily={currentFontFamily}\r\n focusNodeId={node?.id}\r\n isVertical={isVertical}\r\n getNode={getNode}\r\n getNodes={getNodes}\r\n setNodes={setNodes}\r\n location={location}\r\n updateJson={updateJson}\r\n id={id}\r\n dispatch={dispatch}\r\n undo={undo}\r\n setCellEditors={setCellEditors}\r\n cellEditors={cellEditors}\r\n isCellActive={\r\n activeCell === cellKey ||\r\n multiActiveCells.includes(cellKey)\r\n }\r\n debouncedUpdateHTML={debouncedUpdateHTML}\r\n setTableCells={setTableCells}\r\n tableCells={tableCells}\r\n setFontFamily={setFontFamily}\r\n fontFamilyArr={fontFamilyArr}\r\n takeSnapshot={takeSnapshot}\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 {node.selected &&\r\n !node.data.locked &&\r\n !showBgColor &&\r\n !showBorderColor &&\r\n !showFontFamily &&\r\n !showFontSizeOpt &&\r\n node.data.key !== \"Process_1\" &&\r\n node.data.key !== \"Choreography\" &&\r\n node.data.key !== \"Uml_Class\" &&\r\n node.data.key !== \"Uml_Frame\" &&\r\n node.data.key !== \"Uml_Package\" &&\r\n node.data.key !== \"Uml_Interface_with_Attributes_11\" &&\r\n node.data.key !== \"DataStore_1\" && (\r\n \r\n {\r\n handleAddRowAfter(tableCells.length - 1);\r\n }}\r\n >\r\n \r\n \r\n \r\n )}\r\n\r\n {\r\n setLinkPopup(null);\r\n setShowLink(false);\r\n }}\r\n anchorOrigin={{\r\n vertical: \"bottom\",\r\n horizontal: \"left\",\r\n }}\r\n transformOrigin={{\r\n vertical: \"top\",\r\n horizontal: \"left\",\r\n }}\r\n sx={{\r\n \"& .MuiPaper-root\": {\r\n p: \"0px 10px\",\r\n boxShadow: \"none\",\r\n bgcolor: \"transparent\",\r\n },\r\n }}\r\n disableAutoFocus\r\n >\r\n \r\n setLinkText(e?.target?.value)}\r\n value={linkText}\r\n placeholder=\"Paste/enter links\"\r\n onKeyPress={(e) => {\r\n if (e.key === \"Enter\") {\r\n updateHeaderStyle(false, \"linkText\", linkText);\r\n setShowLink(false);\r\n setLinkPopup(null);\r\n }\r\n }}\r\n />\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default memo(ShapeTableNode, (prevProps, nextProps) => {\r\n return prevProps.data.globalDragging && nextProps.data.globalDragging;\r\n});\r\n","import React, { useState, useMemo, useRef, useEffect } from \"react\";\r\nimport { EditorContent, useEditor } from \"@tiptap/react\";\r\nimport { debounce } from \"lodash\";\r\nimport { tipTapExtensions } from \"../../tip-tap-editor\";\r\nimport \"../style.scss\";\r\nconst TableInput = ({\r\n editorRef,\r\n row,\r\n rowIndex,\r\n isPopoverOpen,\r\n column,\r\n // handleChange,\r\n // handleClick,\r\n activeCell,\r\n cellKey,\r\n multiActiveCells,\r\n node,\r\n colIndex,\r\n isCellShow,\r\n currentFontFamily,\r\n focusNodeId,\r\n isVertical,\r\n\r\n getNode,\r\n getNodes,\r\n setNodes,\r\n location,\r\n updateJson,\r\n id,\r\n dispatch,\r\n undo,\r\n isEditorShow,\r\n isEditing,\r\n setCellEditores,\r\n isCellActive,\r\n debouncedUpdateHTML,\r\n setFloatingMenu,\r\n floatingMenu,\r\n setTableCells,\r\n tableCells,\r\n cellEditors,\r\n setFontFamily,\r\n fontFamilyArr,\r\n takeSnapshot,\r\n}) => {\r\n const getCellContent = (row, column) => {\r\n const htmlContent =\r\n (row && column && row[column] && row[column]?.editorHTML) ||\r\n (row && column && row[column] && row[column]?.text) ||\r\n (row && column && row[column] && row[column]?.linkText) ||\r\n \"\";\r\n if (htmlContent.trim().startsWith(\"${htmlContent}

`;\r\n };\r\n const [content, setContent] = useState(() => getCellContent(row, column));\r\n\r\n const [editorHeight, setEditorHeight] = useState(0);\r\n const [clickTimeSTamps, setClickTimeStamps] = useState({\r\n mouseDown: 0,\r\n mouseUp: 0,\r\n });\r\n const userRowData = localStorage.getItem(\"user_data\");\r\n const userData = userRowData ? JSON.parse(userRowData) : {};\r\n const fontSizeRef = useRef(\"10px\");\r\n const ref = useRef(null);\r\n const [isEditorFocused, setIsEditorFocused] = useState(false);\r\n\r\n useEffect(() => {\r\n if (ref.current) {\r\n setEditorHeight(ref.current.offsetHeight);\r\n }\r\n }, [content, ref.current]);\r\n const computeNewRow = (row, rIdx, column, editorHTML, editorHeight) => {\r\n const cellKey = `${rIdx}-${column}`;\r\n if (!multiActiveCells.includes(cellKey)) return row;\r\n\r\n return {\r\n ...row,\r\n [column]: {\r\n ...row?.[column],\r\n editorHTML,\r\n width: isVertical\r\n ? Math.max(editorHeight, row?.[column]?.width)\r\n : row?.[column]?.width,\r\n height: !isVertical\r\n ? Math.max(editorHeight, row?.[column]?.height)\r\n : row?.[column]?.height,\r\n },\r\n };\r\n };\r\n const debouncedUpdate = debounce((newRows, editorHTML) => {\r\n setTableCells(newRows);\r\n setContent(editorHTML);\r\n handleChange(newRows);\r\n }, 100);\r\n\r\n const editor = useEditor(\r\n {\r\n extensions: tipTapExtensions(),\r\n content: (() => {\r\n const htmlContent = content ?? row[column]?.editorHTML ?? \"\";\r\n if (htmlContent.trim().startsWith(\"${htmlContent}

`;\r\n })(),\r\n\r\n onUpdate: ({ editor }) => {\r\n const editorHTML = editor?.getHTML();\r\n const newRows = tableCells?.map((row, rIdx) =>\r\n computeNewRow(row, rIdx, column, editorHTML, editorHeight)\r\n );\r\n\r\n debouncedUpdate(newRows, editorHTML);\r\n },\r\n onBlur: ({ editor }) => {\r\n takeSnapshot({ nodes: getNodes(), edges: null });\r\n },\r\n editorProps: {\r\n handlePaste: (view, event) => {\r\n const pastedContent = event.clipboardData.getData(\"text/plain\");\r\n try {\r\n JSON.parse(pastedContent);\r\n return true;\r\n } catch (e) {\r\n return false;\r\n }\r\n },\r\n },\r\n onSelectionUpdate: async ({ editor }) => {\r\n const selection = window.getSelection();\r\n if (selection && selection.rangeCount > 0) {\r\n const range = selection.getRangeAt(0);\r\n const rect = range.getBoundingClientRect();\r\n\r\n const x = rect.left;\r\n const y = rect.top;\r\n setFloatingMenu({\r\n mouseX: x,\r\n mouseY: y + 15,\r\n });\r\n }\r\n },\r\n },\r\n [Object.keys(row).length, tableCells.length]\r\n );\r\n\r\n useEffect(() => {\r\n if (editor) {\r\n editor.on(\"focus\", () => setIsEditorFocused(true));\r\n editor.on(\"blur\", () => setIsEditorFocused(false));\r\n\r\n return () => {\r\n editor.off(\"focus\", () => setIsEditorFocused(true));\r\n editor.off(\"blur\", () => setIsEditorFocused(false));\r\n };\r\n }\r\n }, [ref.current]);\r\n\r\n useEffect(() => {\r\n if (editor && editorRef) {\r\n editorRef.current = editor;\r\n }\r\n }, [editor, editorRef]);\r\n\r\n // useEffect(() => {\r\n // let currentCell = document.getElementById(\r\n // `${node?.id}-${cellKey}-${colIndex}-${rowIndex}`\r\n // );\r\n\r\n // const cellClick = (e) => {\r\n // editor.chain().focus().run();\r\n // editor.commands.setTextAlign(\"center\");\r\n // };\r\n // if (editor) {\r\n // if (currentCell) {\r\n // currentCell.addEventListener(\"click\", cellClick);\r\n // }\r\n // }\r\n // return () => {\r\n // currentCell.removeEventListener(\"click\", cellClick);\r\n // };\r\n // }, [editor, colIndex]);\r\n\r\n useEffect(() => {\r\n const updatedCellContent = getCellContent(\r\n node.data?.tableData?.tableCells[rowIndex],\r\n column\r\n );\r\n if (JSON.stringify(updatedCellContent) !== JSON.stringify(content)) {\r\n setContent(updatedCellContent);\r\n }\r\n if (\r\n editor &&\r\n JSON.stringify(updatedCellContent) !== JSON.stringify(content)\r\n ) {\r\n editor?.commands.setContent(updatedCellContent);\r\n }\r\n }, [node?.data?.tableData, editor]);\r\n\r\n useEffect(() => {\r\n if (editor) {\r\n editor.commands.setContent(\r\n row[column]?.editorHTML ||\r\n row[column]?.text ||\r\n row[column]?.linkText ||\r\n \"\"\r\n );\r\n setContent(\r\n row[column]?.editorHTML ||\r\n row[column]?.text ||\r\n row[column]?.linkText ||\r\n \"\"\r\n );\r\n }\r\n }, [editor, isPopoverOpen]);\r\n\r\n const handleChange = (newRows) => {\r\n let totalHeight = newRows.reduce((totalHeight, row) => {\r\n const rowHeight = Math.max(\r\n ...Object.values(row).map((cell) => {\r\n return cell?.height || 0;\r\n })\r\n );\r\n return totalHeight + rowHeight;\r\n }, 0);\r\n\r\n const maxCellsRow = newRows.reduce((maxRow, currentRow) => {\r\n return Object.keys(currentRow).length > Object.keys(maxRow).length\r\n ? currentRow\r\n : maxRow;\r\n }, newRows[0]);\r\n\r\n const totalWidth = Object.keys(maxCellsRow).reduce((sum, cellKey) => {\r\n const maxColumnWidth = Math.max(\r\n ...newRows.map((row) => row[cellKey]?.width || 0)\r\n );\r\n return sum + maxColumnWidth;\r\n }, 0);\r\n\r\n let updatedNode;\r\n let updatedNodes = getNodes().map((nd) => {\r\n if (nd.id === node.id) {\r\n updatedNode = {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n tableCells: newRows,\r\n tableData: {\r\n ...nd.data.tableData,\r\n tableCells: newRows,\r\n height: totalHeight + 5,\r\n },\r\n height: totalHeight + 5,\r\n width: totalWidth + 5,\r\n style: {\r\n ...nd.data.style,\r\n height: totalHeight + 5,\r\n width: totalWidth + 5,\r\n },\r\n },\r\n style: {\r\n ...nd.style,\r\n height: totalHeight + 5,\r\n width: totalWidth + 5,\r\n },\r\n };\r\n return updatedNode;\r\n }\r\n return nd;\r\n });\r\n\r\n setNodes(updatedNodes);\r\n debouncedUpdateHTMLContent([updatedNodes]);\r\n };\r\n\r\n const debouncedUpdateHTMLContent = useMemo(\r\n () =>\r\n debounce(async (updatedNodes) => {\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n lastUpdatedBy: userData?.user_id,\r\n lastEvent: `editor_changed_${node?.id}`,\r\n },\r\n },\r\n id,\r\n dispatch,\r\n undo,\r\n a_id: new URLSearchParams(location.search).get(\"a_id\"),\r\n });\r\n }, 500),\r\n [id, dispatch, undo, location.search]\r\n );\r\n\r\n const prevContentRef = useRef(editor?.getText());\r\n\r\n useEffect(() => {\r\n if (setCellEditores && editor) {\r\n if (activeCell === \"table\") {\r\n setCellEditores((prev) => {\r\n const uniqueEditors = [\r\n ...prev.filter(\r\n (item) => !(item.rowIndex === rowIndex && item.column === column)\r\n ),\r\n { editor, rowIndex, column },\r\n ];\r\n return uniqueEditors;\r\n });\r\n } else if (multiActiveCells.length > 1) {\r\n setCellEditores((prev) => [...prev, { editor, rowIndex, column }]);\r\n } else if (isCellActive) {\r\n setCellEditores((prev) => [{ editor, rowIndex, column }]);\r\n } else {\r\n setCellEditores((prev) =>\r\n prev.filter(\r\n (item) => !(item.rowIndex === rowIndex && item.column === column)\r\n )\r\n );\r\n }\r\n }\r\n }, [editor, isCellActive, activeCell]);\r\n\r\n const handleClick = (e) => {\r\n ref?.current?.focus();\r\n if (clickTimeSTamps.mouseUp - clickTimeSTamps.mouseDown <= 90) {\r\n if (e.detail === 1) {\r\n if (window.getSelection) {\r\n if (window.getSelection().empty) {\r\n window.getSelection().empty();\r\n\r\n ref?.current?.focus();\r\n } else if (window.getSelection().removeAllRanges) {\r\n window.getSelection().removeAllRanges();\r\n ref?.current?.focus();\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n const getCurrentStyles = (editor) => {\r\n return {\r\n fontSize:\r\n editor.getAttributes(\"textStyle\").fontSize ||\r\n editor.getAttributes(\"paragraph\").fontSize ||\r\n \"10px\",\r\n isBold: editor.isActive(\"bold\"),\r\n isItalic: editor.isActive(\"italic\"),\r\n isUnderline: editor.isActive(\"underline\"),\r\n isStrikethrough: editor.isActive(\"strike\"),\r\n textAlign: editor.isActive({ textAlign: \"left\" })\r\n ? \"left\"\r\n : editor.isActive({ textAlign: \"center\" })\r\n ? \"center\"\r\n : editor.isActive({ textAlign: \"right\" })\r\n ? \"right\"\r\n : \"center\",\r\n listType: editor.isActive(\"bulletList\")\r\n ? \"bullet\"\r\n : editor.isActive(\"orderedList\")\r\n ? \"ordered\"\r\n : null,\r\n textColor: editor.isActive(\"textStyle\")\r\n ? editor.getAttributes(\"textStyle\").color\r\n : editor.getAttributes(\"paragraph\").color,\r\n highlightColor: editor.getAttributes(\"highlight\").color,\r\n fontFamily:\r\n editor.getAttributes(\"fontFamily\").fontFamily ||\r\n editor.getAttributes(\"textStyle\").fontFamily ||\r\n \"default-font\",\r\n };\r\n };\r\n\r\n useEffect(() => {\r\n if (editor) {\r\n const updateTextStyles = () => {\r\n const currentStyles = getCurrentStyles(editor);\r\n const currentFontFamily =\r\n fontFamilyArr.find((font) => font.family === currentStyles.fontFamily)\r\n ?.name || \"Inter\";\r\n setFontFamily(currentFontFamily);\r\n };\r\n\r\n editor.on(\"selectionUpdate\", updateTextStyles);\r\n editor.on(\"transaction\", updateTextStyles);\r\n\r\n return () => {\r\n editor.off(\"selectionUpdate\", updateTextStyles);\r\n editor.off(\"transaction\", updateTextStyles);\r\n };\r\n }\r\n }, [editor]);\r\n\r\n const adjustEmptyPTags = (htmlContent) => {\r\n return htmlContent;\r\n };\r\n\r\n const processedContent = adjustEmptyPTags(content);\r\n\r\n return (\r\n <>\r\n \r\n {!node?.data?.locked &&\r\n activeCell === cellKey &&\r\n multiActiveCells.includes(cellKey) ? (\r\n {\r\n e?.stopPropagation();\r\n e?.preventDefault();\r\n handleClick(e);\r\n }}\r\n onDoubleClick={(e) => {\r\n e?.preventDefault();\r\n e?.stopPropagation();\r\n }}\r\n onMouseDownCapture={(e) => {\r\n e?.stopPropagation();\r\n setClickTimeStamps((prev) => ({\r\n ...prev,\r\n mouseDown: e.timeStamp,\r\n }));\r\n }}\r\n onKeyDown={(e) => {\r\n if (isEditorFocused) {\r\n e.stopPropagation();\r\n }\r\n }}\r\n onMouseUpCapture={(e) =>\r\n setClickTimeStamps((prev) => ({\r\n ...prev,\r\n mouseUp: e.timeStamp,\r\n }))\r\n }\r\n />\r\n ) : (\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default TableInput;\r\n"],"names":["UserCardNode","node","_cardRef$current2","_getNodes","_getNodes$filter","_node$data2","_node$data3","_node$data4","_node$data5","_node$data6","_node$data7","_node$data8","_node$data9","_node$data10","_node$data11","_node$data12","_node$data13","_node$data14","_node$data15","_node$data16","_node$data17","_node$data18","_node$data19","_node$data20","_cardRef$current4","_cardRef$current5","_cardRef$current6","_cardRef$current7","_cardRef$current8","_cardRef$current9","_cardRef$current10","_cardRef$current11","_cardRef$current12","_cardRef$current13","_cardRef$current14","_cardRef$current15","_node$data21","_node$data22","_node$data23","_node$data24","cardRef","useRef","user_data","localStorage","getItem","setNodes","getNodes","useReactFlow","hoveredItem","setHoveredItem","useState","hovered","setHovered","isFocused","setIsFocused","isLocation","isTeam","frameMoreOptionsRef","showFrameMoreOptions","setShowFrameMoreOptions","borderPopupRef","useEffect","document","addEventListener","handleClickOutside","removeEventListener","event","current","contains","target","setShowColor","location","useLocation","undo","takeSnapshot","useUndoRedo","id","architectureId","useParams","dispatch","useDispatch","copyAsImage","useSelector","state","mindMapStore","isNodeSelectionStarted","useNodeSelectionStarted","selected","showColor","anchorEl","setAnchorEl","React","open","setOpen","canBeOpen","Boolean","zoomPercentages","setZoomPercentages","undefined","isWidthLessthan25","useMemo","isWidthLessthan50","isWidthLessthan100","handleCheckboxToggle","option","_node$data","newOptionValue","data","updatedNodes","nds","map","nd","_objectSpread","debouncedUpdateJson","handleInputChange","value","name","useCallback","debounce","tempNodes","_parsedData","parsedData","JSON","parse","a_id","URLSearchParams","search","get","updateJson","json","architecture_json","nodes","length","lastUpdatedBy","user_id","_cardRef$current","offsetHeight","prev","setItem","stringify","lastEvent","style","height","Number","concat","selectedNodes","filter","val","isMultiNodeSelected","onResizeEnd","x","_parsedData2","n","width","y","_","_ref","_cardRef$current3","_jsxs","Stack","sx","onMouseOver","onMouseOut","children","_jsx","NodeToolbar","isVisible","dragging","position","Position","Top","Box","display","gap","px","py","background","border","boxShadow","zIndex","alignItems","borderRadius","_Fragment","lock","ref","ClickAwayListener","onClickAway","onClick","CustomTooltip","mt","PopperProps","disablePortal","onClose","disableFocusListener","disableHoverListener","disableTouchListener","title","p","e","stopPropagation","ColorPicker","hideGradientStop","hideAdvancedSliders","hideColorGuide","hideColorTypeBtns","hideControls","hideOpacity","onChange","color","ToolTipWithDisabled","placement","tooltipTitle","disabled","IconButton","padding","flexDirection","justifyContent","IcChangeBg","fill","cardColor","CommonDivider","my","orientation","variant","flexItem","CustomNameTooltip","arrow","transition","bgcolor","currentTarget","previousOpen","IcSettingsOutlined","IcLockLocked","size","IcLockUnLocked","FrameMoreMenus","showRename","showDuplicate","showCopyAsImage","showFrame","showLockUnlock","showCopyLink","showLinkTo","showDelete","showBringToFrontAndBack","direction","cursor","transform","IcMenuDotsVertical","className","overflow","hiring","convertToRgba","fontSize","fontWeight","TextField","multiline","minRows","maxRows","fullWidth","placeholder","autoComplete","maxHeight","pointerEvents","lineHeight","minHeight","resize","right","top","IcHiring","descriptionShow","description","teamShow","locationShow","onFocus","onBlur","textAlign","team","Handle","connectionMode","isConnectable","left","bottom","onMouseLeave","preventDefault","primaryColor","NodeResizeControl","minWidth","maxWidth","Popover","anchorOrigin","vertical","horizontal","transformOrigin","BackdropProps","backgroundColor","SimpleCheckBox","label","checked","margin","mainSx","labelFontSize","labelStyle","memo","prevProps","nextProps","globalDragging","UserStoryMapNode","getZoom","showDetailsModal","setShowDetailsModal","selectedCardData","setSelectedCardData","_parsedData3","getDragStyle","draggableStyle","isDragging","zoom","fixedWidth","fixedHeight","renderSection","sectionKey","sectionValue","Typography","section","newItem","Math","random","toString","substr","type","status","priority","date","assignee","tag","borderColor","activities","tasks","releases","prevNodes","sections","should_delete","addNewItem","IcPlus2","Droppable","droppableId","provided","snapshot","innerRef","droppableProps","isDraggingOver","item","index","Draggable","draggableId","_item$assignee","_item$tag","dragStyle","draggableProps","fillColorStatus","getStatusFill","fillColorPriority","getPriorityFill","dragHandleProps","onMouseDownCapture","borderWidth","borderStyle","handleTitleChange","itemId","outline","mr","IcArrowExpand","flexWrap","hexToRgba","paddingX","paddingY","alignContent","IcPriorityLevel","Icon","src","s3AssetsUrl","alt","slice","Avatar","marginRight","charAt","toUpperCase","isAvatarGroup","DragDropContext","onDragEnd","result","_updatedNodes","source","destination","sourceList","destList","isReleaseToTaskOrActivity","removed","splice","key","items","UserStoryMapModal","handleClose","handleCloseModal","_parsedData4","cardData","_row$column17","_row$column18","_row$column19","_row$column20","_row$column21","_row$column22","_row$column23","_row$column24","_row$column25","_row$column26","row","rowIndex","column","activeCell","cellKey","multiActiveCells","colIndex","isCellShow","currentFontFamily","focusNodeId","isVertical","getNode","setCellEditors","isCellActive","debouncedUpdateHTML","setTableCells","tableCells","cellEditors","setFontFamily","fontFamilyArr","getCellContent","_row$column","_row$column2","_row$column3","htmlContent","editorHTML","text","linkText","trim","startsWith","content","setContent","editorHeight","setEditorHeight","clickTimeSTamps","setClickTimeStamps","mouseDown","mouseUp","userRowData","userData","fontSizeRef","editor","useEditor","extensions","tipTapExtensions","_ref2","_row$column4","onUpdate","_ref3","newRows","rIdx","_row$column5","_row$column6","_row$column7","_row$column8","_row$column9","_row$column10","includes","getHTML","newContent","getText","prevContentRef","handleChange","_ref4","edges","editorProps","handlePaste","view","pastedContent","clipboardData","getData","Object","keys","currentCell","getElementById","cellClick","chain","focus","run","_row$column11","_row$column12","_row$column13","_row$column14","_row$column15","_row$column16","commands","totalHeight","reduce","max","values","cell","maxCellsRow","maxRow","currentRow","totalWidth","sum","maxColumnWidth","_row$cellKey","updatedNode","tableData","debouncedUpdateHTMLContent","async","_node$data$tableData","updatedCellContent","querySelectorAll","forEach","element","selection","window","getSelection","rangeCount","removeAllRanges","updateTextStyles","_fontFamilyArr$find","currentStyles","getAttributes","isBold","isActive","isItalic","isUnderline","isStrikethrough","listType","textColor","highlightColor","fontFamily","getCurrentStyles","find","font","family","on","off","processedContent","replace","rowSpan","locked","wordWrap","dangerouslySetInnerHTML","__html","EditorContent","readOnly","fontSizeArr","excludeDeleteBtn","ShapeTableNode","_currentNode$data","_currentNode$data$tab","_currentNode$data2","_currentNode$data2$ta","_currentNode$data3","_currentNode$data3$ta","_node$data12$tableDat","_tableCells$map","_node$data28","_node$data28$tableDat","_node$data29","_node$data29$tableSty","_node$data31","_node$data32","_node$data33","_node$data34","_node$data35","_node$data36","_node$data37","_node$data38","_node$data39","_node$data40","_node$data40$tableDat","_node$data41","_node$data41$tableDat","_node$data42","_node$data42$tableDat","_node$data43","_node$data43$tableDat","_node$data44","_node$data44$tableDat","_node$data45","_node$data45$tableDat","_node$data46","_node$data46$tableDat","_node$data47","_node$data47$tableDat","updateNodeInternals","useUpdateNodeInternals","showExport","isDownload","selectedCell","setSelectedCell","showBgColor","setShowBgColor","showBorderColor","setShowBorderColor","showTextColor","setShowTextColor","showLink","setShowLink","showAlignment","setShowAlignment","showTextDecoration","setShowTextDecoration","currentNode","setActiveCell","setIsCellShow","activeCellData","setActiveCellData","setLinkText","showDots","setShowDots","showTableMoreOptions","setShowTableMoreOptions","showTableVariations","setShowTableVariations","customBgOpen","setCustomBgOpen","setMultiActiveCells","hoveredRowCol","setHoveredRowCol","col","setColor","linkPopup","setLinkPopup","linkPopupOpen","linkPopupOpenId","mainRef","isResizing","firstRowRef","simpleRef","resizingRef","tableHeaderRef","singleRow","singleColumn","selectedCellsKey","rows","columns","split","push","every","checkSingleRowOrColumn","childNodes","_nd$data","_nd$data2","_nd$data2$parentNodeD","_nd$data2$parentNodeD2","parentNodeData","timeoutRef","updateEdgeHandles","clearTimeout","setTimeout","setShowFontFamily","setShowFontSizeOpt","updateNodeJson","updatedData","removeChildIds","arguments","tableRef","debouncedHandleChange","isNodeSelected","isItemToSmall","useStore","_state$transform","isWidthLessThan25","isWidthLessThan50","isWidthLessThan100","showFontSizeOpt","showFontFamily","setFontSize","excludedKeys","currentBorderColor","currentFontSize","_node$data10$tableDat","_node$data11$tableDat","nodesToBeMove","nodesToBeMoveIds","_mainRef$current","_mainRef$current2","newNodeWidth","offsetWidth","newNodeHeight","oldNodeHeight","oldNodeWidth","heightDiff","widthDiff","updatedTableCells","fromEntries","entries","_cell$children","oldHeight","oldWidth","proportionalHeightIncrease","proportionalWidthIncrease","newHeight","newWidth","widthChangeInPer","heightChangeInPer","calculateHeightWidthInPercentage","childId","matchNodeInMoveData","matchNd","calculateHeightWidthFromPercentage","widthChange","heightChange","onResizeNode","_mainRef$current3","_mainRef$current4","_cell$children2","tableVariationsTypesRef","backgroundPopupRef","fontFamilyPopupRef","fontSizePopupRef","textDecorationPopupRef","alignmentPopupRef","textColorPopupRef","moreOptionsPopupRef","classList","inputFocusTimeOutRef","handleFocusInput","input","_mainRef$current5","_node$data22$tableDat","click","clickTimeout","setClickTimeout","handleSelectRowCol","selectedCellKeys","ck","selectableCellsKey","handleChangeMultiCellStyle","activeCellKey","rowI","updatedRow","checkAllSelectedCellHasKey","keyName","hasKey","hasSameValue","selectedCellData","multiCellTextColor","isEntireRowOrCol","isSingleRow","isSingleColumn","selectedCells","cols","checkSingleRowOrColumn2","isEntireRowSelected","isEntireColumnSelected","colSpanCount","rowSpanCount","cellK","_tableCells$rowIndex$","_tableCells$rowIndex$2","colSpan","maxLength","obj","keysLength","i","_tableCells$i$cellKey","_tableCells$i$cellKey3","_tableCells$i$cellKey2","_tableCells$i$cellKey4","handleClickDeleteRowCol","childToBeRemoved","_parsedData5","childrenToMove","afterDeletedKey","copyRow","cKey","_copyRow$cKey","_copyRow$cKey2","newKey","totalW","_parsedData6","ch","flat","Infinity","_parsedData7","tableHasRowColSpan","hasColSpan","hasRowSpan","_row$cellKey2","handleAddColumnAfter","colKey","_parsedData8","updatedCellData","_node$data25","_node$data25$tableDat","_node$data26","_node$data26$tableDat","rowHasColSpan","colSpanColKeys","_row$key","currentKey","_row$currentKey12","_row$currentKey13","_row$currentKey14","parseInt","_row$currentKey15","_row$currentKey16","_row$currentKey17","_row$currentKey18","_row$currentKey7","_row$currentKey8","_row$currentKey9","_row$currentKey10","_row$currentKey11","previousEditorHTML","defaultText","doc","DOMParser","parseFromString","updateTextRecursively","nodeType","Node","ELEMENT_NODE","child","TEXT_NODE","textContent","body","updatedHTML","innerHTML","lastColSpan","object","startKey","startKeyIndex","nearestColSpanKey","_object$key","currKeyIndex","nearKeyIndex","findLatestColSpanKey","_updatedRow$lastColSp","_row$currentKey","_row$currentKey2","_row$currentKey3","_row$currentKey4","_row$currentKey5","_row$currentKey6","shiftedKey","_row$cellKey3","_n$data","_n$data$tableData","_n$data2","updatedHeaders","headers","rowsAndCols","_matchedCellKey$","matchedCellKey","maxRowLength","perv","handleAddRowBetween","place","_parsedData10","insertIndex","Array","from","Set","flatMap","newRowData","newPosAddInChild","_row$key2","_row$key3","_row$key4","refCellData","updatedTableData","previousRow","childToBeMoved","_row$cKey","_n$data5","parts","updatedParentId","join","handleAddRowAfter","rowKey","_node$data27","_node$data27$tableDat","_parsedData11","newRow","_row$key5","_row$key6","_updatedCellData$0$ke","_updatedCellData$0$ke2","_updatedCellData$rowK","_updatedCellData$rowK2","_updatedCellData$rowK3","_updatedCellData$rowK4","_updatedCellData$rowK5","_n$data6","_n$data6$tableData","_n$data7","updatedRows","_updatedCellData$rowK6","_updatedCellData$0$ke3","_updatedCellData$0$ke4","debouncedUpdateNodeHeightForRow","cellBorderWidth","nodeKey","IcAddRow","lastCellKey","longestRowLength","rowLength","findLastCellKeyWithLongestRow","IcAddCol","handleMergeCells","_sortedCells$","sortedCells","sort","a","b","rowA","colA","rowB","colB","rowComparison","localeCompare","updatedCellsData","_updatedCellData$text","_updatedCellData$text2","textAdded","_copyRow$cellK","_copyRow$cellK$text","_copyRow$cellK$text$t","_copyRow$cellK2","_updatedCellData$text3","_updatedCellData$text4","_tableCells$row$col","_nextText$trim","nextText","IcMergeCellOutlined","handleUnMergeCells","_multiActiveCells$","cellData","cellToAdd","addedKey","keyAlpha","keyNum","sortedEntries","_ref5","keyA","keyB","_ref6","_ref7","rowCellToAdd","_ref8","_ref9","_ref10","_ref11","IcUnMergeCellOutlined","BackgroundTool","colorHeading","selectedNodeColor","onChangeColor","updatedObject","_node$data13$tableDat","updateTableColor","tableStyle","headerColor","evenRowColor","BorderTool","showOnlyBorderColor","onBorderColorChange","_node$data30","IcChangeBorder","onWheelCapture","copiedTableCells","structuredClone","_ref12","empty","selectAll","CheckCircleOutlineIcon","whiteSpace","textOverflow","_ref13","IcUpArrowFilled","IcDownArrowFilled","_ref14","toggleBold","IcTextBold","_ref15","toggleItalic","IcTextItalic","_ref16","toggleUnderline","IcTextUnderline","_ref17","toggleStrike","IcTextStrickTrough","IcChangeStyle","_ref18","setTextAlign","IcTextAlignLeft","_ref19","IcTextAlignCenter","_ref20","IcTextAlignRight","IcTextAlignItemTop","colorsConst","IcTextAlignItemCenter","IcTextAlignItemBottom","toRgba","_ref21","IcTextColor","IcLinkOutlined3","IcDeleteOutlined","toggleLockedTable","showAddComment","pathname","showDeleteColumn","showDeleteRow","exportShow","clsx","isGeneratedThroughAI","onMouseEnter","onContextMenu","Right","align","stroke","IcAddRowCol","onConnect","params","onResize","keepAspectRatio","TableContainer","Table","TableBody","maxCellHeight","isActiveRow","TableRow","opacity","onMouseOverCapture","_row$column9$fontFami","textVertical","isLastColumn","isOnlyColumn","TableCell","onKeyDown","handleChangeCellOnTab","newCell","_node$data19$tableDat","_node$data19$tableDat2","shiftKey","_node$data15$tableDat","_node$data16$tableDat","_node$data16$tableDat2","_node$data17$tableDat","_node$data17$tableDat2","nextRow","_node$data18$tableDat","_node$data20$tableDat","_node$data21$tableDat","_node$data48","ctrlKey","metaKey","toggleMultipleActiveCells","prevKey","handleResizeStartRow","_currentNode$data$tab2","_currentNode$data$tab3","startY","clientY","initialRowHeights","_prev$rowIndex$key","shapesToBeMoved","afterCurrentCell","_row$cKey2","prevHeightOfNodes","handleMouseMoveRow","moveEvent","diffY","differenceHeight","_currentNode$data$tab4","_n$data8","_n$data$parentNodeDat3","_n$data$parentNodeDat4","_n$data$parentNodeDat5","_n$data$parentNodeDat6","isCurrentNodeHeightSaved","_n$data$parentNodeDat","_n$data$parentNodeDat2","handleMouseUp","handleResizeStartCol","columnKey","_currentNode$data$tab5","_currentNode$data$tab6","_currentNode$data$tab7","startX","clientX","initialColumnWidths","acc","_row$key7","currentColChildren","colWidthTillCurrentCol","_row$cKey3","_row$cKey4","maxLastPoint","lastPoint","prevWidthOfNodes","handleMouseMoveCol","diffX","differenceWidth","_currentNode$data$tab8","_n$data9","_row$cellKey5","_n$data$parentNodeDat9","_n$data$parentNodeDat10","_n$data$parentNodeDat11","_n$data$parentNodeDat12","isCurrentNodeWidthSaved","_n$data$parentNodeDat7","_n$data$parentNodeDat8","_parsedData9","_updatedRowData$rowKe","updatedRowData","rowKeys","_updatedRowData$rowKe2","_row$rowKeys","_row$rowKeys2","_row$rowKeys3","_row$rowKeys4","lastColKeyNum","_row$cellKey4","_n$data3","_n$data3$tableData","_n$data4","handleAddColumnAtStart","ShapeTableInput","textAreaHeight","handleChangeERD","_node$data2$tableData","_node$data2$tableData2","sanitizedHeight","_node$data$tableData$","handleClick","timeout","Bottom","disableAutoFocus","overflowY","LinkTool","_e$target","onKeyPress","updateHeaderStyle","isBoolean","splittedVal","_node$data3$tableData","_node$data3$tableData2","updatedItem","currKey","_item$currKey","_item$currKey$splitte","_node$data7$tableData","_node$data7$tableData2","_row$splittedVal$","_node$data9$tableData","_node$data9$tableData2","headerIndex","ind","editorRef","isPopoverOpen","isEditorShow","isEditing","setCellEditores","setFloatingMenu","floatingMenu","isEditorFocused","setIsEditorFocused","debouncedUpdate","computeNewRow","onSelectionUpdate","rect","getRangeAt","getBoundingClientRect","mouseX","mouseY","_ref$current","_ref$current2","detail","_ref$current3","onDoubleClick","timeStamp","onMouseUpCapture"],"sourceRoot":""}