{"version":3,"file":"static/js/main-02483739.68e3a8b3.js","mappings":"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","sources":["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, { 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 IcTransparentCircle,\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 } else {\r\n // Extract the backgroundColor from tableData\r\n const tableDataBackgroundColor = currentNode?.data?.backgroundColor;\r\n // Check if any cell's backgroundColor matches the tableData's backgroundColor\r\n let isMatch = false;\r\n for (const row of currentNode?.data?.tableData?.tableCells) {\r\n for (const cellKey in row) {\r\n if (row[cellKey].backgroundColor === tableDataBackgroundColor) {\r\n isMatch = true;\r\n break;\r\n }\r\n }\r\n if (isMatch) break;\r\n }\r\n\r\n // If no match is found, set the backgroundColor of the first cell in activeCellData\r\n if (!isMatch) {\r\n const firstCellKey = Object.keys(\r\n currentNode?.data?.tableData?.tableCells[0]\r\n )[0];\r\n const firstCellBackgroundColor =\r\n currentNode?.data?.tableData?.tableCells[0][firstCellKey]\r\n .backgroundColor;\r\n\r\n setActiveCellData({\r\n ...activeCellData,\r\n backgroundColor: firstCellBackgroundColor,\r\n });\r\n } else {\r\n // If there is a match, set the backgroundColor to tableData's backgroundColor\r\n setActiveCellData({\r\n ...activeCellData,\r\n backgroundColor: tableDataBackgroundColor,\r\n });\r\n }\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 const sizeAsPerZoom =\r\n (node?.data?.width > node?.data?.height\r\n ? node?.data?.width\r\n : node?.data?.height) * zoom || 100;\r\n const 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 backgroundColor: updatedObject?.backgroundColor,\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}-${\r\n 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}${\r\n (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}${\r\n (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 {color === \"transparent\" ||\r\n color === \"rgba(0, 0, 0, 0)\" ||\r\n color === null ||\r\n color === undefined ? (\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 {sizeAsPerZoom > 25 &&\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: 999999999999,\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid transparent\",\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: 999999999999,\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid transparent\",\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: 999999999999,\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid transparent\",\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: 999999999999,\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid transparent\",\r\n }}\r\n >\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {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 : `${\r\n row[column]?.backgroundColor ||\r\n \"transparent\"\r\n } !important`\r\n : `${currentBorderColor} !important`,\r\n minWidth: `${\r\n row[column]?.width || 100\r\n }px !important`,\r\n // maxWidth: `${\r\n // row[column]?.width || 100\r\n // }px !important`,\r\n width: \"100% !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 {activeCell === 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 node.data.key === \"SwimlessHorizontal\" ||\r\n node.data.key === \"SwimlessVertical\" ||\r\n node.data.key === \"Pool\" ||\r\n node.data.key === \"PoolOne\" ||\r\n node.data.key === \"Choreography\" ||\r\n node.data.key === \"DataStore_1\" ||\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 node.data.key === \"Uml_Package\" ||\r\n node.data.key === \"Uml_Frame\" ||\r\n node.data.key ===\r\n \"Swimlanes_Horizontal_Pool_3_11\" ||\r\n node.data.key ===\r\n \"Swimlanes_Vertical_Pool_3\" ||\r\n node.data.key === \"Swimlanes_Horizontal_2\" ||\r\n node.data.key === \"Swimlanes_Vertical_2\") && (\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\nimport { computeNewRow } from \"../TableNode\";\r\n\r\nconst TableInput = ({\r\n editorRef,\r\n row,\r\n rowIndex,\r\n isPopoverOpen,\r\n column,\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 isEditorShow,\r\n setIsEditorShow,\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\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\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 editable: activeCell !== \"table\",\r\n\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 if (activeCell === \"table\" && activeCell !== cellKey) {\r\n const htmlContent = content ?? row[column]?.editorHTML ?? \"\";\r\n if (htmlContent.trim().startsWith(\"\r\n computeNewRow(\r\n row,\r\n rIdx,\r\n column,\r\n editorHTML,\r\n editorHeight,\r\n multiActiveCells,\r\n isVertical\r\n )\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, activeCell]\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 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 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?.preventDefault();\r\n e?.stopPropagation();\r\n }}\r\n onMouseDownCapture={(e) => {\r\n e?.stopPropagation();\r\n const selection = window.getSelection();\r\n if (selection && selection.rangeCount > 0) {\r\n selection.removeAllRanges();\r\n editor.commands.focus();\r\n }\r\n }}\r\n onKeyDown={(e) => {\r\n // if ((e.ctrlKey || e.metaKey) && e.key === \"c\") {\r\n // navigator.clipboard.writeText(editor?.getText());\r\n // }\r\n if (isEditorFocused && isEditorShow) {\r\n e.stopPropagation();\r\n }\r\n if (\r\n ![\r\n \"Tab\",\r\n \"ArrowLeft\",\r\n \"ArrowRight\",\r\n \"ArrowDown\",\r\n \"ArrowUp\",\r\n ].includes(e.key)\r\n ) {\r\n e.stopPropagation();\r\n setIsEditorShow(true);\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":["_ref","_node$data2","_row$column17","_row$column18","_row$column19","_row$column20","_row$column21","_row$column22","_row$column23","_row$column24","_row$column25","_row$column26","_node$data3","row","rowIndex","column","activeCell","cellKey","multiActiveCells","node","colIndex","isCellShow","currentFontFamily","focusNodeId","isVertical","getNode","getNodes","setNodes","location","updateJson","id","dispatch","undo","setCellEditors","isCellActive","debouncedUpdateHTML","setTableCells","tableCells","cellEditors","setFontFamily","fontFamilyArr","takeSnapshot","getCellContent","_row$column","_row$column2","_row$column3","htmlContent","editorHTML","text","linkText","trim","startsWith","concat","content","setContent","useState","editorHeight","setEditorHeight","clickTimeSTamps","setClickTimeStamps","mouseDown","mouseUp","userRowData","localStorage","getItem","userData","JSON","parse","fontSizeRef","useRef","ref","useEffect","current","offsetHeight","editor","useEditor","extensions","tipTapExtensions","_ref2","_row$column4","onUpdate","_ref3","newRows","map","rIdx","_row$column5","_row$column6","_row$column7","_row$column8","_row$column9","_row$column10","includes","_objectSpread","getHTML","width","height","newContent","getText","prevContentRef","handleChange","onBlur","_ref4","nodes","edges","editorProps","handlePaste","view","event","pastedContent","clipboardData","getData","e","Object","keys","length","currentCell","document","getElementById","cellClick","chain","focus","run","addEventListener","removeEventListener","_row$column11","_row$column12","_row$column13","_row$column14","_row$column15","_row$column16","commands","totalHeight","reduce","Math","max","values","cell","maxCellsRow","maxRow","currentRow","totalWidth","sum","maxColumnWidth","_row$cellKey","updatedNode","updatedNodes","nd","data","tableData","style","debouncedUpdateHTMLContent","useMemo","debounce","async","json","architecture_json","lastUpdatedBy","user_id","lastEvent","a_id","URLSearchParams","search","get","prev","filter","item","_node$data","_node$data$tableData","updatedCellContent","stringify","querySelectorAll","forEach","element","stopPropagation","selection","window","getSelection","rangeCount","removeAllRanges","updateTextStyles","_fontFamilyArr$find","currentStyles","fontSize","getAttributes","isBold","isActive","isItalic","isUnderline","isStrikethrough","textAlign","listType","textColor","color","highlightColor","fontFamily","getCurrentStyles","find","font","family","name","on","off","processedContent","replace","_jsx","_Fragment","children","transform","transformOrigin","position","rowSpan","minWidth","top","display","alignItems","justifyContent","locked","wordWrap","minHeight","dangerouslySetInnerHTML","__html","EditorContent","className","cursor","readOnly","fontSizeArr","excludeDeleteBtn","ShapeTableNode","_node$data4","_node$data5","_node$data6","_currentNode$data5","_currentNode$data5$ta","_currentNode$data6","_currentNode$data6$ta","_currentNode$data7","_currentNode$data7$ta","_node$data16","_node$data16$tableDat","_tableCells$map","_node$data32","_node$data32$tableDat","_node$data33","_node$data33$tableSty","_node$data35","_node$data36","_node$data37","_node$data38","_node$data39","_node$data40","_node$data41","_node$data42","_node$data43","_node$data44","_node$data44$tableDat","_node$data45","_node$data45$tableDat","_node$data46","_node$data46$tableDat","_node$data47","_node$data47$tableDat","_node$data48","_node$data48$tableDat","_node$data49","_node$data49$tableDat","_node$data50","_node$data50$tableDat","_node$data51","_node$data51$tableDat","updateNodeInternals","useUpdateNodeInternals","user_data","showExport","copyAsImage","isDownload","useSelector","state","mindMapStore","isNodeSelectionStarted","useNodeSelectionStarted","selected","selectedCell","setSelectedCell","showBgColor","setShowBgColor","showBorderColor","setShowBorderColor","showTextColor","setShowTextColor","showLink","setShowLink","showAlignment","setShowAlignment","showTextDecoration","setShowTextDecoration","useReactFlow","currentNode","setActiveCell","setIsCellShow","activeCellData","setActiveCellData","setLinkText","zoomPercentages","setZoomPercentages","showDots","setShowDots","hoveredItem","setHoveredItem","showTableMoreOptions","setShowTableMoreOptions","showTableVariations","setShowTableVariations","customBgOpen","setCustomBgOpen","setMultiActiveCells","hoveredRowCol","setHoveredRowCol","col","setColor","linkPopup","setLinkPopup","linkPopupOpen","Boolean","linkPopupOpenId","undefined","useLocation","useParams","useDispatch","useUndoRedo","mainRef","isResizing","firstRowRef","simpleRef","resizingRef","tableHeaderRef","singleRow","singleColumn","selectedCellsKey","rows","columns","key","split","push","every","checkSingleRowOrColumn","childNodes","_nd$data","_nd$data2","_nd$data2$parentNodeD","_nd$data2$parentNodeD2","parentNodeData","timeoutRef","updateEdgeHandles","clearTimeout","setTimeout","backgroundColor","_currentNode$data","tableDataBackgroundColor","isMatch","_currentNode$data2","_currentNode$data2$ta","_currentNode$data3","_currentNode$data3$ta","_currentNode$data4","_currentNode$data4$ta","firstCellKey","firstCellBackgroundColor","setShowFontFamily","setShowFontSizeOpt","updateNodeJson","updatedData","_parsedData","removeChildIds","arguments","parsedData","nds","setItem","n","tableRef","debouncedHandleChange","_parsedData2","isNodeSelected","isItemToSmall","zoom","useStore","_state$transform","sizeAsPerZoom","showFontSizeOpt","showFontFamily","setFontSize","excludedKeys","overflow","currentBorderColor","borderColor","currentFontSize","_node$data14","_node$data14$tableDat","_node$data15","_node$data15$tableDat","onResizeEnd","_parsedData3","nodesToBeMove","nodesToBeMoveIds","_","_mainRef$current","_mainRef$current2","newNodeWidth","Number","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","x","y","onResizeNode","_mainRef$current3","_mainRef$current4","_cell$children2","tableVariationsTypesRef","backgroundPopupRef","borderPopupRef","fontFamilyPopupRef","fontSizePopupRef","textDecorationPopupRef","alignmentPopupRef","textColorPopupRef","moreOptionsPopupRef","handleClickOutside","contains","target","classList","inputFocusTimeOutRef","handleFocusInput","input","_mainRef$current5","_node$data26","_node$data26$tableDat","click","clickTimeout","setClickTimeout","handleSelectRowCol","type","selectedCellKeys","ck","selectableCellsKey","index","handleChangeMultiCellStyle","activeCellKey","rowI","updatedRow","checkAllSelectedCellHasKey","useCallback","value","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","_parsedData4","should_delete","_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$data29","_node$data29$tableDat","_node$data30","_node$data30$tableDat","rowHasColSpan","colSpanColKeys","_row$key","currentKey","_row$currentKey12","_row$currentKey13","_row$currentKey14","parseInt","slice","_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","splice","childToBeMoved","_row$cKey","_n$data5","parts","updatedParentId","join","handleAddRowAfter","rowKey","_node$data31","_node$data31$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","dragging","_jsxs","NodeToolbar","isVisible","Position","Top","Box","flexDirection","gap","px","sx","background","border","boxShadow","zIndex","borderRadius","CustomNameTooltip","placement","title","arrow","IconButton","transition","bgcolor","padding","onClick","IcAddRow","lastCellKey","longestRowLength","rowLength","findLastCellKeyWithLongestRow","IcAddCol","handleMergeCells","_sortedCells$","_node$data27","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$","_node$data28","cellData","cellToAdd","addedKey","keyAlpha","keyNum","sortedEntries","_ref5","keyA","keyB","_ref6","_ref7","rowCellToAdd","_ref8","_ref9","_ref10","_ref11","IcUnMergeCellOutlined","ClickAwayListener","onClickAway","CustomTooltip","mt","PopperProps","disablePortal","onClose","open","disableFocusListener","disableHoverListener","disableTouchListener","BackgroundTool","colorHeading","selectedNodeColor","onChangeColor","updatedObject","_node$data17","_node$data17$tableDat","_node$data18","updateTableColor","ToolTipWithDisabled","tooltipTitle","disabled","IcTransparentCircle","IcChangeBg","fill","tableStyle","headerColor","evenRowColor","BorderTool","showOnlyBorderColor","onBorderColorChange","_node$data34","IcChangeBorder","Stack","onMouseLeave","maxHeight","p","onWheelCapture","val","Typography","fontWeight","copiedTableCells","structuredClone","_ref12","empty","selectAll","CheckCircleOutlineIcon","whiteSpace","textOverflow","_ref13","IcUpArrowFilled","IcDownArrowFilled","direction","_ref14","toggleBold","IcTextBold","_ref15","toggleItalic","IcTextItalic","_ref16","toggleUnderline","IcTextUnderline","_ref17","toggleStrike","IcTextStrickTrough","IcChangeStyle","flexWrap","_ref18","setTextAlign","IcTextAlignLeft","_ref19","IcTextAlignCenter","_ref20","IcTextAlignRight","CommonDivider","my","IcTextAlignItemTop","colorsConst","primaryColor","IcTextAlignItemCenter","IcTextAlignItemBottom","toRgba","_ref21","IcTextColor","IcLinkOutlined3","IcDeleteOutlined","toggleLockedTable","IcLockLocked","IcLockUnLocked","FrameMoreMenus","showDuplicate","showCopyAsImage","showAddComment","showLockUnlock","showCopyLink","showLinkTo","showDelete","showFrame","pathname","showDeleteColumn","showDeleteRow","exportShow","setShowFrameMoreOptions","showBringToFrontAndBack","IcMenuDotsVertical","clsx","isGeneratedThroughAI","onMouseEnter","onContextMenu","preventDefault","onMouseDownCapture","Right","align","right","stroke","IcAddRowCol","Handle","connectionMode","isConnectable","visibility","left","transitionDuration","maxWidth","onMouseOver","pointerEvents","onConnect","params","console","log","NodeResizeControl","onResize","keepAspectRatio","borderWidth","primaryColorRGBA","TableContainer","Table","size","TableBody","maxCellHeight","TableRow","opacity","source","bottom","onMouseOverCapture","IcPlus2","_row$column9$fontFami","textVertical","isLastColumn","isOnlyColumn","TableCell","onKeyDown","handleChangeCellOnTab","newCell","_node$data23","_node$data23$tableDat","_node$data23$tableDat2","shiftKey","_node$data19","_node$data19$tableDat","_node$data20","_node$data20$tableDat","_node$data20$tableDat2","_node$data21","_node$data21$tableDat","_node$data21$tableDat2","nextRow","_node$data22","_node$data22$tableDat","_node$data24","_node$data24$tableDat","_node$data25","_node$data25$tableDat","_node$data52","ctrlKey","metaKey","toggleMultipleActiveCells","prevKey","currentTarget","handleResizeStartRow","_currentNode$data$tab","_currentNode$data$tab2","startY","clientY","initialRowHeights","_prev$rowIndex$key","shapesToBeMoved","afterCurrentCell","_row$cKey2","prevHeightOfNodes","handleMouseMoveRow","moveEvent","diffY","differenceHeight","_currentNode$data$tab3","_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$tab4","_currentNode$data$tab5","_currentNode$data$tab6","startX","clientX","initialColumnWidths","acc","_row$key7","currentColChildren","colWidthTillCurrentCol","_row$cKey3","_row$cKey4","maxLastPoint","lastPoint","prevWidthOfNodes","handleMouseMoveCol","diffX","differenceWidth","_currentNode$data$tab7","_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","orientation","margin","ShapeTableInput","textAreaHeight","handleChangeERD","_node$data2$tableData","_node$data2$tableData2","sanitizedHeight","toString","_node$data$tableData$","handleClick","timeout","Bottom","Popover","anchorEl","anchorOrigin","vertical","horizontal","disableAutoFocus","overflowY","LinkTool","onChange","_e$target","placeholder","onKeyPress","updateHeaderStyle","isBoolean","splittedVal","_node$data7","_node$data7$tableData","_node$data7$tableData2","updatedItem","currKey","_item$currKey","_item$currKey$splitte","_node$data8","_node$data9","_node$data10","variant","convertToRgba","_node$data11","_node$data11$tableDat","_node$data11$tableDat2","_row$splittedVal$","_node$data12","_node$data13","_node$data13$tableDat","_node$data13$tableDat2","headerIndex","ind","memo","prevProps","nextProps","globalDragging","editorRef","isPopoverOpen","isEditorShow","setIsEditorShow","setCellEditores","setFloatingMenu","floatingMenu","isEditorFocused","setIsEditorFocused","debouncedUpdate","editable","computeNewRow","onSelectionUpdate","rect","getRangeAt","getBoundingClientRect","mouseX","mouseY","onDoubleClick"],"sourceRoot":""}