{"version":3,"file":"static/js/main-dc639ead.a0daf54b.js","mappings":"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","sources":["Components/DrawBoard/Nodes-Types/SimpleText.js"],"sourcesContent":["import { Box, Popover, Stack } from \"@mui/material\";\r\nimport \"./SimpleText.scss\";\r\nimport React, {\r\n useCallback,\r\n useEffect,\r\n useMemo,\r\n useRef,\r\n useState,\r\n} from \"react\";\r\nimport {\r\n Handle,\r\n NodeResizeControl,\r\n useReactFlow,\r\n useStore,\r\n useUpdateNodeInternals,\r\n useViewport,\r\n} from \"reactflow\";\r\nimport { useLocation, useParams } from \"react-router-dom\";\r\nimport {\r\n debounce,\r\n removeHTMLTags,\r\n updateJson,\r\n validateUrl,\r\n} from \"../../../CommanFunctions/commanFunctions\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { tipTapExtensions } from \"../tip-tap-editor\";\r\nimport { useEditor } from \"@tiptap/react\";\r\nimport MindMapNodesToolbar from \"../../Node/common-components/nodeTopToolbar/MindMapNodesToolbar/MindMapNodesToolbar\";\r\nimport {\r\n IcInfoOutlined,\r\n IcLinkOutlined3,\r\n} from \"../../../assets/icon-components\";\r\nimport { useUndoRedo } from \"../dndUndoRedo/UndoRedoProvider\";\r\nimport VotingCommon from \"../../mind-map/VotingCommon\";\r\nimport { omit } from \"lodash\";\r\nimport { drag } from \"d3-drag\";\r\nimport { select } from \"d3-selection\";\r\nimport { updateIsUrlLinkClicked } from \"../../../Redux/mindMapSlice\";\r\nimport { sanitizeHtml, updateLocalStorage } from \"../utils\";\r\nimport useZoomPercentages from \"../../../Utils/hooks/useZoomPercentages\";\r\nimport useNodeSelectionStarted from \"../../../Utils/hooks/useNodeSelectionStarted\";\r\nimport { s3AssetsUrl } from \"../const\";\r\nimport { color } from \"../../../Utils/style/color/color\";\r\n\r\nfunction CustomNodeResizeControl({\r\n node,\r\n textRef,\r\n editor,\r\n isAutoFont,\r\n content,\r\n handleOnResize,\r\n}) {\r\n const { setNodes } = useReactFlow();\r\n const { zoom } = useViewport();\r\n const sizeAsPerZoom =\r\n (node?.width < node?.height ? node?.width : node?.height) * zoom || 100;\r\n const { id } = useParams();\r\n const location = useLocation();\r\n const dispatch = useDispatch();\r\n const { undo, takeSnapshot } = useUndoRedo();\r\n const userRowData = localStorage.getItem(\"user_data\");\r\n const userData = userRowData ? JSON.parse(userRowData) : {};\r\n\r\n const updateFontSize = useCallback(\r\n (fontSize = null) => {\r\n setNodes((prev) => {\r\n const updatedNodes = prev?.map((prev) => {\r\n if (prev.id === node.id) {\r\n return {\r\n ...prev,\r\n data: {\r\n ...prev.data,\r\n isResized: true,\r\n style: {\r\n ...prev.data?.style,\r\n fontSize: fontSize || textRef?.current?.style?.fontSize,\r\n },\r\n },\r\n style: {\r\n ...omit(prev.style, [\"maxWidth\"]),\r\n fontSize: fontSize || textRef?.current?.style?.fontSize,\r\n },\r\n };\r\n }\r\n return prev;\r\n });\r\n\r\n updateLocalStorage(\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 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 takeSnapshot,\r\n a_id,\r\n });\r\n\r\n return updatedNodes;\r\n });\r\n },\r\n [id, location.search, node.id, textRef.current]\r\n );\r\n\r\n const handleOnResizeEnd = () => {\r\n if (!isAutoFont) {\r\n setTimeout(() => {\r\n updateFontSize();\r\n }, 500);\r\n }\r\n };\r\n\r\n const {\r\n isWidthLessthan25,\r\n isWidthLessthan50,\r\n isWidthLessthan100,\r\n isWidthLessthan200,\r\n isWidthLessthan300,\r\n } = useZoomPercentages({ selected: node.selected });\r\n\r\n // const nodeResizerMinDimensions = useMemo(() => {\r\n // const editorContent = editor?.getText();\r\n // if (editorContent?.length && !isAutoFont) {\r\n // const minWidth = Number(String(node?.data?.style?.fontSize)?.replace(\"px\", \"\")) * editorContent?.length * 0.62; // 0.62 font scaling factor\r\n // const minHeight = Number(String(node?.data?.style?.fontSize)?.replace(\"px\", \"\")) * 2; // 14px line height\r\n // return { minHeight, minWidth }\r\n // }\r\n // return { minWidth: 70, minHeight: 20 }\r\n // // eslint-disable-next-line react-hooks/exhaustive-deps\r\n // }, [content, isAutoFont, node?.data?.style?.fontSize]);\r\n if (sizeAsPerZoom < 25) {\r\n return null;\r\n }\r\n return (\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\nfunction NodeRotate({ node, nodeRotating, isNodeSelectionStarted }) {\r\n const { id } = useParams();\r\n const dispatch = useDispatch();\r\n const location = useLocation();\r\n const { undo, takeSnapshot } = useUndoRedo();\r\n const { setNodes, getNodes } = useReactFlow();\r\n\r\n const zoom = useStore((state) =>\r\n node?.selected && !isNodeSelectionStarted ? state?.transform?.[2] : 1\r\n );\r\n\r\n const getScaleFromZoom = (zoom) => {\r\n // Base scale is 1 (100% zoom), adjust scale based on zoom value\r\n return Math.max(0.5, Math.min(1.5, 1 / zoom)); // Scale ranges between 0.5 and 1.5\r\n };\r\n\r\n const scale = useMemo(() => getScaleFromZoom(zoom), [zoom]);\r\n\r\n const { showExport, copyAsImage } = useSelector(\r\n (state) => state?.mindMapStore\r\n );\r\n\r\n const rotateControlRef = useRef(null);\r\n const updateNodeInternals = useUpdateNodeInternals();\r\n useEffect(() => {\r\n if (!rotateControlRef.current) {\r\n return;\r\n }\r\n\r\n const selection = select(rotateControlRef.current);\r\n const dragHandler = drag()\r\n .on(\"drag\", (evt) => {\r\n nodeRotating.current = true;\r\n const dx = evt.x;\r\n const dy = evt.y;\r\n const rad = Math.atan2(dx, dy);\r\n const deg = rad * (180 / Math.PI);\r\n nodeRotating.current = false;\r\n setNodes((nodes) => {\r\n return nodes.map((nd) => {\r\n if (nd.id === node.id) {\r\n return {\r\n ...nd,\r\n data: {\r\n ...omit(nd.data, [\"editorState\"]),\r\n rotation: 360 - deg,\r\n },\r\n };\r\n }\r\n return nd;\r\n });\r\n });\r\n updateNodeInternals(id);\r\n })\r\n .on(\"end\", () => {\r\n RotateNodes();\r\n });\r\n\r\n selection.call(dragHandler);\r\n }, [id, updateNodeInternals]);\r\n\r\n const RotateNodes = async () => {\r\n nodeRotating.current = false;\r\n let parsedData = {};\r\n const user_data = localStorage.getItem(\"user_data\");\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: getNodes(),\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id,\r\n dispatch,\r\n undo,\r\n takeSnapshot,\r\n a_id,\r\n });\r\n };\r\n\r\n return (\r\n \r\n {node.selected &&\r\n !node.data.locked &&\r\n !node.data.locked &&\r\n !showExport &&\r\n !copyAsImage &&\r\n !isNodeSelectionStarted && (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nconst SimpleText = ({ id: nodeId, selected }) => {\r\n const dispatch = useDispatch();\r\n const { permission, isURLLinkClicked, showExport, copyAsImage } = useSelector(\r\n (state) => state?.mindMapStore\r\n );\r\n const location = useLocation();\r\n const { getNodes, setNodes, getNode } = useReactFlow();\r\n const node = getNode(nodeId);\r\n const { isNodeSelectionStarted } = useNodeSelectionStarted({\r\n selected: node?.selected,\r\n });\r\n const { zoom } = useViewport();\r\n const mainRef = useRef(null);\r\n const { id } = useParams();\r\n const userRowData = localStorage.getItem(\"user_data\");\r\n const userData = userRowData ? JSON.parse(userRowData) : {};\r\n const { undo, takeSnapshot } = useUndoRedo();\r\n const isAutoFont = false;\r\n // const isAutoFont = node?.data?.isAutoFont ?? false;\r\n\r\n const [urlError, setUrlError] = useState(\"\");\r\n const [urlLink, setUrlLink] = useState(\"\");\r\n const textRef = useRef();\r\n const previousNodeDimensions = useRef({\r\n previousWidth: node?.width,\r\n previousHeight: node?.height,\r\n });\r\n\r\n const isMultiNodeSelected =\r\n getNodes()?.filter((val) => val?.selected)?.length > 1;\r\n\r\n const nodeRotating = useRef(false);\r\n\r\n const extensions = tipTapExtensions(\"Type Somethings\");\r\n const editorContentRef = useRef(null);\r\n\r\n const editor = useEditor(\r\n {\r\n element: textRef.current,\r\n extensions: extensions,\r\n content: sanitizeHtml(node?.data?.editorHTML, \"font-size\") || \"\",\r\n editable: false,\r\n // autoFocus: true,\r\n onBlur: ({ editor }) => {\r\n editor.setEditable(false);\r\n if (editorContentRef.current !== editor?.getText()) {\r\n takeSnapshot({ nodes: getNodes(), edges: null });\r\n }\r\n },\r\n onUpdate: ({ editor }) => {\r\n const editorContent = editor?.getHTML();\r\n debouncedUpdateHTML(editorContent, isAutoFont);\r\n\r\n // if (node.selected && node?.data?.isResized && !node?.resizing && isAutoFont) {\r\n // adjustFontSize();\r\n // }\r\n },\r\n onCreate: ({ editor }) => {\r\n if (!editor.getText()?.length) {\r\n editor.setEditable(true);\r\n editor.commands.focus();\r\n }\r\n },\r\n onFocus: ({ editor }) => {\r\n editorContentRef.current = editor.getText();\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 handleDOMEvents: {\r\n keydown: (view, event) => {\r\n if (event.key === \"Enter\") {\r\n setNodes((nodes) => {\r\n return nodes.map((nd) => {\r\n if (nd.id === node.id) {\r\n return {\r\n ...nd,\r\n style: {\r\n ...nd?.style,\r\n height:\r\n nd?.style?.height !== undefined\r\n ? nd?.style?.height + 32\r\n : nd?.style?.height,\r\n },\r\n };\r\n }\r\n return nd;\r\n });\r\n });\r\n }\r\n },\r\n },\r\n },\r\n },\r\n [textRef.current]\r\n );\r\n\r\n useEffect(() => {\r\n if (editor && !editor.isFocused) {\r\n editor.commands.setContent(\r\n sanitizeHtml(node?.data?.editorHTML, \"font-size\")\r\n );\r\n }\r\n }, [editor, node?.data?.editorHTML]);\r\n\r\n const handleUrlChange = (e) => {\r\n const url = e.target.value;\r\n setUrlLink(url);\r\n setUrlError(\"\");\r\n };\r\n\r\n const handleFetchMetaData = async (e) => {\r\n e.stopPropagation();\r\n\r\n if (e.key === \"Enter\") {\r\n dispatch(updateIsUrlLinkClicked(false));\r\n const finalUrl = urlLink.includes(\"http\")\r\n ? urlLink\r\n : `https://${urlLink}`;\r\n if (finalUrl && validateUrl(finalUrl)) {\r\n editor\r\n .chain()\r\n .focus()\r\n .extendMarkRange(\"link\")\r\n .setLink({ href: finalUrl })\r\n .run();\r\n // handleCloseFloatingMenu();\r\n setUrlLink(\"\");\r\n\r\n // setShowAddLink(false);\r\n }\r\n }\r\n };\r\n\r\n const debouncedUpdateHTML = useMemo(() => {\r\n return debounce((value, isAutoFont) => {\r\n if (!node.selected) return;\r\n if (!editor?.getText()?.trim()?.length) return;\r\n const oldContent = sanitizeHtml(node?.data?.editorHTML, \"font-size\");\r\n const currentContent = sanitizeHtml(value, \"font-size\");\r\n if (oldContent === currentContent) return;\r\n\r\n updateLocalStorage(\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 const prev = getNodes()?.map((_) => {\r\n if (_?.id === node?.id) {\r\n _ = JSON.parse(JSON.stringify(_));\r\n _.data = {\r\n ...(omit(_?.data, [\"editorState\"]) || {}),\r\n editorHTML: currentContent,\r\n isAutoFont: isAutoFont,\r\n };\r\n return _;\r\n } else {\r\n return _;\r\n }\r\n });\r\n setNodes(prev);\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n\r\n const shouldTakeSnapshot =\r\n removeHTMLTags(oldContent) === removeHTMLTags(currentContent)\r\n ? { takeSnapshot }\r\n : {};\r\n\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: prev,\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 ...shouldTakeSnapshot,\r\n a_id,\r\n });\r\n }, 200);\r\n }, [\r\n node.selected,\r\n node?.data?.editorHTML,\r\n node?.id,\r\n editor,\r\n getNodes,\r\n setNodes,\r\n location.search,\r\n takeSnapshot,\r\n userData?.user_id,\r\n id,\r\n dispatch,\r\n undo,\r\n ]);\r\n\r\n useEffect(() => {\r\n const editorText = editor?.getText()?.trim().length;\r\n const nodeContentText = removeHTMLTags(node?.data?.editorHTML)?.trim()\r\n ?.length;\r\n if (!node.selected && !editorText && !nodeContentText) {\r\n setNodes((prevNodes) =>\r\n prevNodes?.filter((prevNode) => prevNode.id !== node.id)\r\n );\r\n }\r\n }, [node.selected, editor, node?.data?.editorHTML]);\r\n\r\n const [floatingMenu, setFloatingMenu] = useState(null);\r\n\r\n const handleCloseFloatingMenu = () => {\r\n setFloatingMenu(null);\r\n };\r\n\r\n // const adjustFontSize = ({ height = null, width = null } = {}) => {\r\n // if (!node.selected) return;\r\n\r\n // const container = mainRef.current;\r\n // const textElement = textRef.current;\r\n\r\n // if (container && textElement) {\r\n // // Get current dimensions\r\n // const containerWidth = width || container.offsetWidth;\r\n // const containerHeight = height || container.offsetHeight;\r\n\r\n // // Access previous dimensions\r\n // const { previousWidth, previousHeight } = previousNodeDimensions.current;\r\n\r\n // // Get the current font size\r\n // let currentFontSize = parseFloat(window.getComputedStyle(textElement).fontSize);\r\n\r\n // // Determine whether the size is increasing or decreasing\r\n // const isIncreasing =\r\n // (previousWidth !== null && containerWidth > previousWidth) ||\r\n // (previousHeight !== null && containerHeight > previousHeight);\r\n\r\n // // Adjust font size incrementally\r\n // if (isIncreasing) {\r\n // while (\r\n // (textElement.scrollWidth <= containerWidth &&\r\n // textElement.scrollHeight <= containerHeight) &&\r\n // currentFontSize < 1000 // Optional max limit\r\n // ) {\r\n // currentFontSize += 0.5;\r\n // textElement.style.fontSize = `${currentFontSize}px`;\r\n // }\r\n // } else {\r\n // while (\r\n // (textElement.scrollWidth > containerWidth ||\r\n // textElement.scrollHeight > containerHeight) &&\r\n // currentFontSize > 1 // Minimum font size\r\n // ) {\r\n // currentFontSize -= 0.5;\r\n // textElement.style.fontSize = `${currentFontSize}px`;\r\n // }\r\n // }\r\n\r\n // // Update previous dimensions\r\n // previousNodeDimensions.current = {\r\n // previousWidth: containerWidth,\r\n // previousHeight: containerHeight,\r\n // };\r\n // }\r\n // }\r\n\r\n // const handleOnResize = () => {\r\n // if (isAutoFont) adjustFontSize()\r\n // }\r\n\r\n useEffect(() => {\r\n if (node.data.locked) return;\r\n if (!editor) return;\r\n if (!node.selected) {\r\n editor.setEditable(false);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [node.selected, editor]);\r\n\r\n useEffect(() => {\r\n const currentNodeDom = document.querySelector(`[data-id=\"${nodeId}\"]`);\r\n if (!currentNodeDom || !editor) return;\r\n\r\n const handleNodeKeyDown = (e) => {\r\n if (!node.selected) return; // Prevent typing if node is not selected\r\n const isValidKey = /^[a-zA-Z\\d~!@#$%^&*()_+\\-={}\\[\\]|\\\\:;\"'<>,.?/]$/.test(\r\n e.key\r\n );\r\n\r\n if (!editor.isFocused && isValidKey) {\r\n editor.setEditable(true); // Enable editing\r\n editor.commands.clearContent(); // Clear existing content\r\n editor.commands.focus(\"end\"); // Focus on the editor\r\n editor.commands.insertContent(e.key);\r\n }\r\n };\r\n\r\n if (node.selected && !editor?.isEditable && !editor?.isFocused) {\r\n currentNodeDom.addEventListener(\"keydown\", handleNodeKeyDown, {\r\n once: true,\r\n });\r\n }\r\n if (!node.selected) {\r\n currentNodeDom.removeEventListener(\"keydown\", handleNodeKeyDown);\r\n }\r\n return () => {\r\n currentNodeDom.removeEventListener(\"keydown\", handleNodeKeyDown);\r\n if (!node.selected) {\r\n editor.setEditable(false);\r\n }\r\n };\r\n }, [node.selected, editor, nodeId]);\r\n\r\n const handleSingleClick = () => {\r\n if (node.data.locked) return;\r\n if (editor.isEditable) return;\r\n if (!node.selected) return;\r\n editor.setEditable(true);\r\n if (!editor.isFocused) {\r\n editor.commands.focus(\"end\");\r\n }\r\n };\r\n\r\n const handleDoubleClick = () => {\r\n if (node.data.locked) return;\r\n editor.setEditable(true);\r\n editor.commands.selectAll();\r\n };\r\n\r\n useEffect(() => {\r\n if (node.data.locked) editor?.setEditable(false);\r\n }, [node.data.locked, editor]);\r\n\r\n return (\r\n \r\n {/* */}\r\n\r\n {!node.data.locked &&\r\n selected &&\r\n !showExport &&\r\n !copyAsImage &&\r\n !isNodeSelectionStarted && (\r\n \r\n )}\r\n\r\n {editor &&\r\n !node.dragging &&\r\n selected &&\r\n !isNodeSelectionStarted &&\r\n !isMultiNodeSelected &&\r\n !nodeRotating.current && (\r\n <>\r\n \r\n \r\n )}\r\n\r\n {isURLLinkClicked && (\r\n \r\n \r\n \r\n {urlError ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n handleFetchMetaData(e)}\r\n style={{\r\n width: \"300px\",\r\n border: \"none\",\r\n }}\r\n />\r\n \r\n \r\n )}\r\n\r\n {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }}\r\n onDoubleClick={(e) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }}\r\n />\r\n \r\n \r\n );\r\n};\r\n\r\nexport default React.memo(SimpleText, (prevProps, nextProps) => {\r\n return prevProps.data.globalDragging && nextProps.data.globalDragging;\r\n});\r\n"],"names":["CustomNodeResizeControl","_ref","node","textRef","editor","isAutoFont","content","handleOnResize","setNodes","useReactFlow","zoom","useViewport","sizeAsPerZoom","width","height","id","useParams","location","useLocation","dispatch","useDispatch","undo","takeSnapshot","useUndoRedo","userRowData","localStorage","getItem","userData","JSON","parse","updateFontSize","useCallback","fontSize","arguments","length","undefined","prev","updatedNodes","map","_prev$data","_textRef$current","_textRef$current$styl","_textRef$current2","_textRef$current2$sty","_objectSpread","data","isResized","style","current","omit","updateLocalStorage","stringify","architecture_json","nodes","lastEvent","a_id","URLSearchParams","search","get","updateJson","json","lastUpdatedBy","user_id","concat","handleOnResizeEnd","setTimeout","isWidthLessthan25","isWidthLessthan50","isWidthLessthan100","isWidthLessthan200","isWidthLessthan300","useZoomPercentages","selected","_jsxs","_Fragment","children","_jsx","NodeResizeControl","variant","position","onResizeEnd","color","className","zIndex","backgroundColor","border","Box","sx","background","borderRadius","transform","primaryColor","bgcolor","transformOrigin","SimpleText","_ref3","_getNodes","_getNodes$filter","_node$data","_node$data3","_node$data5","_node$data7","_node$data8","_node$data8$style","_node$data9","_node$data9$style","_node$data10","_node$data10$data","_node$data11","_node$data11$style","_editor$state","_editor$state$selecti","_node$data12","_node$data13","_node$data13$style","_node$data$style$text","_node$data14","_node$data14$style","_node$data$style$text2","_node$data15","_node$data15$style","_node$data16","_node$data16$style","_node$data$style$font","_node$data17","_node$data17$style","nodeId","permission","isURLLinkClicked","showExport","copyAsImage","useSelector","state","mindMapStore","getNodes","getNode","isNodeSelectionStarted","useNodeSelectionStarted","mainRef","useRef","urlError","setUrlError","useState","urlLink","setUrlLink","isMultiNodeSelected","previousWidth","previousHeight","filter","val","nodeRotating","extensions","tipTapExtensions","editorContentRef","useEditor","element","sanitizeHtml","editorHTML","editable","onBlur","_ref4","setEditable","getText","edges","onUpdate","_ref5","editorContent","getHTML","debouncedUpdateHTML","onCreate","_ref6","_editor$getText","commands","focus","onFocus","_ref7","editorProps","handlePaste","view","event","pastedContent","clipboardData","getData","e","handleDOMEvents","keydown","key","nd","_nd$style","_nd$style2","_nd$style3","useEffect","_node$data2","isFocused","setContent","useMemo","debounce","value","_editor$getText2","_editor$getText2$trim","_node$data4","_getNodes2","trim","oldContent","currentContent","_","_ref8","_ref9","shouldTakeSnapshot","removeHTMLTags","_editor$getText3","_removeHTMLTags","_removeHTMLTags$trim","_node$data6","editorText","nodeContentText","prevNodes","prevNode","floatingMenu","setFloatingMenu","locked","currentNodeDom","document","querySelector","handleNodeKeyDown","isValidKey","test","clearContent","insertContent","isEditable","addEventListener","once","removeEventListener","ref","pointerEvents","cursor","boxShadow","textAlign","transition","onDoubleClick","handleDoubleClick","selectAll","onClick","handleSingleClick","dragging","MindMapNodesToolbar","currFontSize","String","simpleRef","Popover","open","selection","empty","onClose","handleCloseFloatingMenu","anchorReference","anchorPosition","top","mouseY","left","mouseX","p","overflow","padding","display","alignItems","justifyContent","gap","Stack","IcInfoOutlined","fill","IcLinkOutlined3","minWidth","type","placeholder","onChange","url","target","onKeyDown","async","stopPropagation","updateIsUrlLinkClicked","finalUrl","includes","validateUrl","chain","extendMarkRange","setLink","href","run","handleFetchMetaData","fontFamily","preventDefault","VotingCommon","React","prevProps","nextProps","globalDragging"],"sourceRoot":""}