{"version":3,"file":"static/js/main-49a8f843.ea424eff.js","mappings":"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","sources":["Components/Node/common-components/nodeTopToolbar/fontSize.js","Components/Node/common-components/nodeTopToolbar/MindMapNodesToolbar/ToolbarMenuItems/AIOptionsToolbarItem.jsx","Components/Node/common-components/nodeTopToolbar/MindMapNodesToolbar/ToolbarMenuItems/TextColorToolbarItem.jsx","Components/Node/common-components/nodeTopToolbar/MindMapNodesToolbar/ToolbarMenuItems/HighlightTextToolbarItem.jsx","Components/Node/common-components/nodeTopToolbar/MindMapNodesToolbar/ToolbarMenuItems/ListTypesToolbarItem.jsx","Components/Node/common-components/nodeTopToolbar/MindMapNodesToolbar/ToolbarMenuItems/TextAlignmentToolbarItem.jsx","Components/Node/common-components/nodeTopToolbar/MindMapNodesToolbar/ToolbarMenuItems/FontStyleToolbarItem.jsx","Components/Node/common-components/nodeTopToolbar/MindMapNodesToolbar/ToolbarMenuItems/FontSizeToolbarItem.jsx","Components/Node/common-components/nodeTopToolbar/MindMapNodesToolbar/ToolbarMenuItems/FontFamilyToolbarItem.jsx","Components/Node/common-components/nodeTopToolbar/MindMapNodesToolbar/ToolbarMenuItems/ContentTypeToolbarItem.jsx","Components/Node/common-components/nodeTopToolbar/MindMapNodesToolbar/ToolbarMenuItems/BorderToolbarItem.jsx","Components/Node/common-components/nodeTopToolbar/MindMapNodesToolbar/ToolbarMenuItems/BackgroundColorToolbarItem.jsx","Components/Node/common-components/nodeTopToolbar/MindMapNodesToolbar/ToolbarMenuItems/ShapesListToolbarItem.jsx","Components/Node/common-components/nodeTopToolbar/MindMapNodesToolbar/ToolbarMenuItems/StickyNoteTypesMenuItem.jsx","Components/Node/common-components/nodeTopToolbar/MindMapNodesToolbar/ToolbarMenuItems/AuthorToolbarItem.jsx","Components/Node/common-components/nodeTopToolbar/MindMapNodesToolbar/ToolbarMenuItems/LockUnlockToolbarItem.jsx","Components/Node/common-components/nodeTopToolbar/MindMapNodesToolbar/MindMapNodesToolbar.jsx","Components/Node/common-components/nodeTopToolbar/MindMapNodesToolbar/ToolbarMenuItems/constants.js","Components/Node/common-components/nodeTopToolbar/components/BackgroundTool.js","Components/Node/common-components/nodeTopToolbar/components/BorderTool.js","Components/Node/common-components/nodeTopToolbar/components/LinkTool.js"],"sourcesContent":["import { Extension } from '@tiptap/react';\r\n\r\n/**\r\n * FontSize - Custom Extension\r\n * editor.commands.setFontSize(e.target.value) :set the font-size.\r\n */\r\n\r\n\r\nconst FontSize = Extension.create({\r\n name: 'fontSize',\r\n addOptions() {\r\n return {\r\n types: ['textStyle'],\r\n };\r\n },\r\n addGlobalAttributes() {\r\n return [\r\n {\r\n types: this.options.types,\r\n attributes: {\r\n fontSize: {\r\n default: null,\r\n parseHTML: element => element.style.fontSize.replace(/['\"]+/g, ''),\r\n renderHTML: attributes => {\r\n if (!attributes.fontSize) {\r\n return {};\r\n }\r\n return {\r\n style: `font-size: ${attributes.fontSize}`,\r\n };\r\n },\r\n },\r\n },\r\n },\r\n ];\r\n },\r\n addCommands() {\r\n return {\r\n setFontSize: fontSize => ({ chain }) => {\r\n return chain()\r\n .setMark('textStyle', { fontSize: fontSize })\r\n .run();\r\n },\r\n unsetFontSize: () => ({ chain }) => {\r\n return chain()\r\n .setMark('textStyle', { fontSize: null })\r\n .removeEmptyTextStyle()\r\n .run();\r\n },\r\n };\r\n },\r\n});\r\n\r\nexport default FontSize;\r\n","import { Box, IconButton, Stack, Typography } from \"@mui/material\";\r\nimport {\r\n Ic3StarsColored,\r\n Ic3StartsFill,\r\n IcArrowDown2,\r\n} from \"../../../../../../assets/icon-components\";\r\nimport SimpleCircularProgress from \"../../../../../../common-components/SimpleCircularProgress\";\r\nimport ToolTipWithDisabled from \"../../../../../DrawBoard/top-toolbar/components/ToolTipWithDisabled\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useReactFlow } from \"reactflow\";\r\nimport { useState } from \"react\";\r\nimport commanService from \"../../../../../../CommanFunctions/commanService\";\r\nimport {\r\n getId,\r\n removeHTMLTags,\r\n} from \"../../../../../../CommanFunctions/commanFunctions\";\r\nimport { getNodesBoundingClient } from \"../../../../../GenerativeAI/utils\";\r\nimport { errorToast, warningToast } from \"../../../../../../Redux/toastSlice\";\r\nimport { changeToneData, documentTypesData, translateData } from \"./constants\";\r\nimport { CustomTooltip } from \"../../../../../DrawBoard/top-toolbar/components/CustomTooltip\";\r\nimport { Node } from \"../../../../../GenerativeAI/libs/Node\";\r\n\r\nexport default function AIOptionsToolbarItem({\r\n toggleToolbarItem,\r\n isActiveToolbarItem,\r\n editor,\r\n node,\r\n toolbarItemName = \"ai-options\",\r\n currentTextColor,\r\n onlybgColor,\r\n}) {\r\n const dispatch = useDispatch();\r\n const { setCenter, getZoom, getNodes } = useReactFlow();\r\n\r\n const [aiLoading, setAILoading] = useState(false);\r\n\r\n const [activeSubMenu, setActiveSubMenu] = useState(null);\r\n\r\n const toggleSubMenuItem = (subMenu = null) => {\r\n if (subMenu === activeSubMenu) {\r\n setActiveSubMenu(null);\r\n } else {\r\n setActiveSubMenu(subMenu);\r\n }\r\n };\r\n\r\n const isActiveSubMenu = (subMenu) => {\r\n return activeSubMenu === subMenu;\r\n };\r\n\r\n const handleDocumentGeneration = async (prompt) => {\r\n setAILoading(true);\r\n\r\n try {\r\n if (!prompt) {\r\n const CustomPromptEvent = new CustomEvent(\"CustomPromptEvent\", {\r\n detail: {\r\n selectedNodeId: node.id,\r\n },\r\n });\r\n document.dispatchEvent(CustomPromptEvent);\r\n return;\r\n }\r\n const response = await commanService.postApi(\r\n \"drawboard\",\r\n \"v2/generate/generate-content\",\r\n {\r\n prompt: JSON.stringify({\r\n topic: prompt.replace(\r\n \"{{context}}\",\r\n removeHTMLTags(node?.data?.editorHTML ?? node.data.label)\r\n ),\r\n parent_context: node?.data?.editorHTML ?? node.data.label,\r\n }),\r\n content_type: \"document_summary\",\r\n }\r\n );\r\n\r\n const result = response.data.data;\r\n\r\n const parser = new DOMParser();\r\n\r\n // Parse the HTML string into a Document object\r\n const doc = parser.parseFromString(result, \"text/html\");\r\n\r\n // Extract the content inside and <body>\r\n const title = doc.querySelector(\"title\")\r\n ? doc.querySelector(\"title\").textContent\r\n : \"\";\r\n const body = doc.querySelector(\"body\") ? doc.querySelector(\"body\") : \"\";\r\n\r\n const bodyText = body.innerHTML.replace(/<\\/?[^>]+(>|$)/g, \"\");\r\n\r\n // Split the cleaned text by spaces and filter out empty strings\r\n const words = bodyText\r\n .trim()\r\n .split(/\\s+/)\r\n .filter((word) => word.length > 0);\r\n const wordCount = words.length;\r\n\r\n let textNode = new Node({\r\n id: getId(),\r\n // height: 'auto',\r\n width: 550,\r\n key: \"document\",\r\n type: \"document\",\r\n backgroundColor: \"#ffff\",\r\n });\r\n\r\n const boundingClient = getNodesBoundingClient(getNodes());\r\n\r\n const position = {\r\n x: boundingClient.x + boundingClient.width + 100,\r\n y: boundingClient.y,\r\n };\r\n\r\n textNode = {\r\n ...textNode,\r\n position: position,\r\n positionAbsolute: position,\r\n name: title,\r\n style: {\r\n // height: \"auto\",\r\n width: 550,\r\n background: \"transparent\",\r\n minHeight: 750,\r\n },\r\n selected: true,\r\n data: {\r\n ...textNode.data,\r\n isInitialContent: true,\r\n editorHTML: body.innerHTML.toString(),\r\n word: wordCount,\r\n title: title,\r\n maxPosition: position,\r\n name: title,\r\n style: {\r\n minHeight: 750,\r\n borderStyle: \"none\",\r\n },\r\n },\r\n };\r\n\r\n delete textNode.data.catagory;\r\n delete textNode.data.editorState;\r\n delete textNode.data.isAutoFont;\r\n delete textNode.data.lastFontSize;\r\n delete textNode.data.word;\r\n delete textNode.data.provider;\r\n\r\n setCenter(position.x + 200, position.y + 200, {\r\n duration: 1000,\r\n zoom: getZoom(),\r\n });\r\n\r\n const GenAIResponse = new CustomEvent(\"GenAIResponse\", {\r\n detail: {\r\n nodes: [textNode],\r\n edges: [],\r\n },\r\n });\r\n\r\n document.dispatchEvent(GenAIResponse);\r\n } catch (error) {\r\n if (error.response.status !== 401) {\r\n if (error.response.status < 500) {\r\n dispatch(\r\n warningToast({\r\n message:\r\n error.response?.data?.message ||\r\n error.response.data?.error[0] ||\r\n error.message,\r\n })\r\n );\r\n } else {\r\n dispatch(\r\n errorToast({\r\n message: \"Oops! Something went wrong\",\r\n })\r\n );\r\n }\r\n }\r\n } finally {\r\n setAILoading(false);\r\n }\r\n };\r\n\r\n const handleChangeContentWithAI = async (content_type) => {\r\n setAILoading(true);\r\n try {\r\n editor.setEditable(true);\r\n editor.commands.focus();\r\n if (editor.state.selection.empty) {\r\n editor.commands.selectAll();\r\n }\r\n\r\n const selection = editor?.state?.selection;\r\n let content = editor?.data?.title ? editor.getHTML() : editor?.getText();\r\n if (!selection.empty) {\r\n content = editor.state.doc.textBetween(\r\n selection.from,\r\n selection.to,\r\n \" \"\r\n );\r\n }\r\n const response = await commanService.postApi(\r\n \"drawboard\",\r\n \"v2/generate/generate-content\",\r\n {\r\n prompt: content || \"\",\r\n content_type,\r\n }\r\n );\r\n\r\n let result = response.data.data;\r\n\r\n if (content.startsWith(\" \")) {\r\n result = \" \" + result;\r\n }\r\n\r\n // Check if str contains a space at the end\r\n if (content.endsWith(\" \")) {\r\n result = result + \" \";\r\n }\r\n\r\n if (!selection.empty) {\r\n editor\r\n .chain()\r\n .focus()\r\n .insertContentAt(\r\n {\r\n from: selection.from,\r\n to: selection.to,\r\n },\r\n result\r\n )\r\n .setColor(currentTextColor)\r\n .run();\r\n }\r\n toggleToolbarItem(toolbarItemName);\r\n } catch (error) {\r\n if (error.response.status < 500) {\r\n if (error.response.status !== 401) {\r\n dispatch(\r\n warningToast({\r\n message:\r\n error.response?.data?.message ||\r\n error.response.data?.error[0] ||\r\n error.message,\r\n })\r\n );\r\n } else {\r\n dispatch(\r\n errorToast({\r\n message: \"Oops! Something went wrong\",\r\n })\r\n );\r\n }\r\n }\r\n } finally {\r\n setAILoading(false);\r\n }\r\n };\r\n\r\n return (\r\n <Box\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n }}\r\n sx={{\r\n height: \"36px !important\",\r\n width: \"36px !important\",\r\n }}\r\n >\r\n <CustomTooltip\r\n mt={9}\r\n bg={\"transparent\"}\r\n // transform={\"translate(315px, 41px) !important\"}\r\n PopperProps={{\r\n disablePortal: true,\r\n }}\r\n onClose={() => toggleToolbarItem(toolbarItemName)}\r\n open={!aiLoading && isActiveToolbarItem(toolbarItemName)}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n <Stack\r\n sx={{\r\n minWidth: \"305px\",\r\n position: \"relative\",\r\n boxShadow: \"0px 2px 8px 0px #030B160D\",\r\n p: \"1px\",\r\n borderRadius: \"10px\",\r\n background:\r\n \"linear-gradient(167.78deg, rgba(212, 97, 240, 0.5) -6.05%, rgba(165, 135, 255, 0.5) 50.47%, rgba(97, 140, 255, 0.5) 101.6%)\",\r\n }}\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n }}\r\n >\r\n <Stack\r\n sx={{\r\n width: \"100%\",\r\n height: \"fit-content\",\r\n p: \"10px\",\r\n borderRadius: \"10px\",\r\n background: \"#FFF\",\r\n gap: \"2px\",\r\n }}\r\n >\r\n <Stack\r\n height={\"36px\"}\r\n direction={\"row\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"flex-start\"}\r\n gap={\"10px\"}\r\n px={\"13px\"}\r\n sx={{\r\n borderRadius: \"6px\",\r\n cursor: \"pointer\",\r\n transition: \"all 0.3s\",\r\n\r\n \"&:hover\": {\r\n background: \"#F7F7F7\",\r\n },\r\n }}\r\n onClick={() => handleChangeContentWithAI(\"grammer_fix\")}\r\n >\r\n <Ic3StarsColored />\r\n <Typography fontSize={14} height={\"20px\"} color={\"#18181B\"}>\r\n Fix grammar and spelling\r\n </Typography>\r\n </Stack>\r\n <Stack\r\n height={\"36px\"}\r\n direction={\"row\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"flex-start\"}\r\n gap={\"10px\"}\r\n px={\"13px\"}\r\n sx={{\r\n borderRadius: \"6px\",\r\n cursor: \"pointer\",\r\n transition: \"all 0.3s\",\r\n\r\n \"&:hover\": {\r\n background: \"#F7F7F7\",\r\n },\r\n }}\r\n onClick={() => handleChangeContentWithAI(\"rewrite\")}\r\n >\r\n <Ic3StarsColored />\r\n <Typography fontSize={14} height={\"20px\"} color={\"#18181B\"}>\r\n Rewrite for clarity\r\n </Typography>\r\n </Stack>\r\n <Stack\r\n height={\"36px\"}\r\n direction={\"row\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"space-between\"}\r\n gap={\"10px\"}\r\n px={\"13px\"}\r\n sx={{\r\n position: \"relative\",\r\n borderRadius: \"6px\",\r\n cursor: \"pointer\",\r\n transition: \"all 0.3s\",\r\n background: isActiveSubMenu(\"change-tones\")\r\n ? \"#F7F7F7\"\r\n : \"transparent\",\r\n\r\n \"&:hover\": {\r\n background: \"#F7F7F7\",\r\n },\r\n }}\r\n onClick={() => {\r\n toggleSubMenuItem(\"change-tones\");\r\n }}\r\n >\r\n <Stack\r\n direction={\"row\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"flex-start\"}\r\n gap={\"10px\"}\r\n >\r\n <Ic3StarsColored />\r\n <Typography fontSize={14} height={\"20px\"} color={\"#18181B\"}>\r\n Change tone\r\n </Typography>\r\n </Stack>\r\n <Box\r\n sx={{\r\n transform: \"rotate(-90deg)\",\r\n }}\r\n >\r\n <IcArrowDown2 width=\"20\" height=\"20\" fill=\"#18181B\" />\r\n </Box>\r\n\r\n {isActiveSubMenu(\"change-tones\") && (\r\n <Stack\r\n sx={{\r\n minWidth: \"140px\",\r\n position: \"absolute\",\r\n boxShadow: \"0px 2px 8px 0px #030B160D\",\r\n p: \"1px\",\r\n borderRadius: \"10px\",\r\n overflow: \"hidden\",\r\n top: \"-25%\",\r\n left: \"106%\",\r\n background:\r\n \"linear-gradient(167.78deg, rgba(212, 97, 240, 0.5) -6.05%, rgba(165, 135, 255, 0.5) 50.47%, rgba(97, 140, 255, 0.5) 101.6%)\",\r\n }}\r\n >\r\n <Stack\r\n sx={{\r\n width: \"100%\",\r\n height: \"100%\",\r\n p: \"10px\",\r\n borderRadius: \"10px\",\r\n background: \"#FFF\",\r\n gap: \"2px\",\r\n }}\r\n >\r\n {changeToneData.map((tone, i) => {\r\n return (\r\n <Stack\r\n key={i + 1}\r\n justifyContent={\"center\"}\r\n sx={{\r\n height: \"36px\",\r\n borderRadius: \"8px\",\r\n px: \"15px\",\r\n cursor: \"pointer\",\r\n transition: \"all 0.3s\",\r\n\r\n \"&:hover\": {\r\n background: \"#F7F7F7\",\r\n },\r\n }}\r\n onClick={() => handleChangeContentWithAI(tone.key)}\r\n >\r\n <Typography\r\n fontSize={14}\r\n color={\"#18181B\"}\r\n height={\"20px\"}\r\n >\r\n {tone.label}\r\n </Typography>\r\n </Stack>\r\n );\r\n })}\r\n </Stack>\r\n </Stack>\r\n )}\r\n </Stack>\r\n <Stack\r\n height={\"36px\"}\r\n direction={\"row\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"space-between\"}\r\n gap={\"10px\"}\r\n px={\"13px\"}\r\n sx={{\r\n position: \"relative\",\r\n borderRadius: \"6px\",\r\n cursor: \"pointer\",\r\n transition: \"all 0.3s\",\r\n background: isActiveSubMenu(\"translate\")\r\n ? \"#F7F7F7\"\r\n : \"transparent\",\r\n\r\n \"&:hover\": {\r\n background: \"#F7F7F7\",\r\n },\r\n }}\r\n onClick={() => {\r\n toggleSubMenuItem(\"translate\");\r\n }}\r\n >\r\n <Stack\r\n direction={\"row\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"flex-start\"}\r\n gap={\"10px\"}\r\n >\r\n <Ic3StarsColored />\r\n <Typography fontSize={14} height={\"20px\"} color={\"#18181B\"}>\r\n Translate\r\n </Typography>\r\n </Stack>\r\n <Box\r\n sx={{\r\n transform: \"rotate(-90deg)\",\r\n }}\r\n >\r\n <IcArrowDown2 width=\"20\" height=\"20\" fill=\"#18181B\" />\r\n </Box>\r\n\r\n {isActiveSubMenu(\"translate\") && (\r\n <Stack\r\n sx={{\r\n minWidth: \"140px\",\r\n position: \"absolute\",\r\n boxShadow: \"0px 2px 8px 0px #030B160D\",\r\n p: \"1px\",\r\n borderRadius: \"10px\",\r\n overflow: \"auto\",\r\n top: \"-50%\",\r\n left: \"106%\",\r\n maxHeight: \"400px\",\r\n background: \"transparent\",\r\n border: \"2px solid transparent\",\r\n backgroundImage:\r\n \"linear-gradient(#FFF, #FFF), linear-gradient(167.78deg, rgba(212, 97, 240, 0.5) -6.05%, rgba(165, 135, 255, 0.5) 50.47%, rgba(97, 140, 255, 0.5) 101.6%)\",\r\n backgroundOrigin: \"border-box\",\r\n backgroundClip: \"padding-box, border-box\",\r\n // background:\r\n // \"linear-gradient(167.78deg, rgba(212, 97, 240, 0.5) -6.05%, rgba(165, 135, 255, 0.5) 50.47%, rgba(97, 140, 255, 0.5) 101.6%)\",\r\n \"&::-webkit-scrollbar\": {\r\n width: \"0 !important\",\r\n height: \"0 !important\",\r\n },\r\n }}\r\n >\r\n <Stack\r\n sx={{\r\n p: \"10px\",\r\n borderRadius: \"10px\",\r\n background: \"#FFF\",\r\n gap: \"2px\",\r\n height: \"100%\",\r\n pointerEvents: \"all\",\r\n pr: \"5px\",\r\n \"&::-webkit-scrollbar\": {\r\n width: \"0 !important\",\r\n height: \"0 !important\",\r\n },\r\n }}\r\n onWheelCapture={(e) => {\r\n e.stopPropagation();\r\n }}\r\n >\r\n {translateData.map((translate, i) => {\r\n return (\r\n <Stack\r\n key={i + 1}\r\n justifyContent={\"center\"}\r\n sx={{\r\n minHeight: \"36px\",\r\n borderRadius: \"8px\",\r\n px: \"15px\",\r\n cursor: \"pointer\",\r\n transition: \"all 0.3s\",\r\n\r\n \"&:hover\": {\r\n background: \"#F7F7F7\",\r\n },\r\n }}\r\n onClick={() =>\r\n handleChangeContentWithAI(translate.key)\r\n }\r\n >\r\n <Typography\r\n fontSize={14}\r\n color={\"#18181B\"}\r\n height={\"20px\"}\r\n >\r\n {translate.label}\r\n </Typography>\r\n </Stack>\r\n );\r\n })}\r\n </Stack>\r\n </Stack>\r\n )}\r\n </Stack>\r\n {/* Document generation types */}\r\n <Stack\r\n height={\"36px\"}\r\n direction={\"row\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"space-between\"}\r\n gap={\"10px\"}\r\n px={\"13px\"}\r\n sx={{\r\n position: \"relative\",\r\n borderRadius: \"6px\",\r\n cursor: \"pointer\",\r\n transition: \"all 0.3s\",\r\n background: isActiveSubMenu(\"document-types\")\r\n ? \"#F7F7F7\"\r\n : \"transparent\",\r\n\r\n \"&:hover\": {\r\n background: \"#F7F7F7\",\r\n },\r\n }}\r\n onClick={() => {\r\n toggleSubMenuItem(\"document-types\");\r\n }}\r\n >\r\n <Stack\r\n direction={\"row\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"flex-start\"}\r\n gap={\"10px\"}\r\n >\r\n <Ic3StarsColored />\r\n <Typography fontSize={14} height={\"20px\"} color={\"#18181B\"}>\r\n Document\r\n </Typography>\r\n </Stack>\r\n <Box\r\n sx={{\r\n transform: \"rotate(-90deg)\",\r\n }}\r\n >\r\n <IcArrowDown2 width=\"20\" height=\"20\" fill=\"#18181B\" />\r\n </Box>\r\n\r\n {isActiveSubMenu(\"document-types\") && (\r\n <Stack\r\n sx={{\r\n minWidth: \"210px\",\r\n position: \"absolute\",\r\n boxShadow: \"0px 2px 8px 0px #030B160D\",\r\n p: \"1px\",\r\n borderRadius: \"10px\",\r\n overflow: \"auto\",\r\n top: \"-50%\",\r\n left: \"106%\",\r\n maxHeight: \"400px\",\r\n background:\r\n \"linear-gradient(167.78deg, rgba(212, 97, 240, 0.5) -6.05%, rgba(165, 135, 255, 0.5) 50.47%, rgba(97, 140, 255, 0.5) 101.6%)\",\r\n \"&::-webkit-scrollbar\": {\r\n width: \"0 !important\",\r\n height: \"0 !important\",\r\n },\r\n }}\r\n >\r\n <Stack\r\n sx={{\r\n p: \"10px\",\r\n borderRadius: \"10px\",\r\n background: \"#FFF\",\r\n gap: \"2px\",\r\n height: \"100%\",\r\n pointerEvents: \"all\",\r\n pr: \"5px\",\r\n \"&::-webkit-scrollbar\": {\r\n width: \"0 !important\",\r\n height: \"0 !important\",\r\n },\r\n }}\r\n onWheelCapture={(e) => {\r\n e.stopPropagation();\r\n }}\r\n >\r\n {documentTypesData.map((doc, i) => {\r\n return (\r\n <Stack\r\n key={i + 1}\r\n justifyContent={\"center\"}\r\n sx={{\r\n minHeight: \"36px\",\r\n borderRadius: \"8px\",\r\n px: \"15px\",\r\n cursor: \"pointer\",\r\n transition: \"all 0.3s\",\r\n\r\n \"&:hover\": {\r\n background: \"#F7F7F7\",\r\n },\r\n }}\r\n onClick={() => handleDocumentGeneration(doc.prompt)}\r\n >\r\n <Typography\r\n fontSize={14}\r\n color={\"#18181B\"}\r\n height={\"20px\"}\r\n >\r\n {doc.label}\r\n </Typography>\r\n </Stack>\r\n );\r\n })}\r\n </Stack>\r\n </Stack>\r\n )}\r\n </Stack>\r\n </Stack>\r\n </Stack>\r\n }\r\n >\r\n <Box\r\n sx={{\r\n marginRight: \"10px\",\r\n borderRight: \"1px solid #EAECF0\",\r\n height: \"36px !important\",\r\n width: \"45px !important\",\r\n }}\r\n >\r\n <ToolTipWithDisabled\r\n placement=\"top\"\r\n tooltipTitle={aiLoading.aiLoader ? \"Generating...\" : \"AI\"}\r\n disabled={isActiveToolbarItem(toolbarItemName)}\r\n >\r\n {aiLoading ? (\r\n <IconButton\r\n disabled={onlybgColor}\r\n sx={{\r\n height: \"36px !important\",\r\n width: \"36px !important\",\r\n borderRadius: \"8px\",\r\n display: \"flex\",\r\n padding: \"0px\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n }}\r\n >\r\n <SimpleCircularProgress\r\n size=\"1.2rem\"\r\n loaderColor=\"#618CFF\"\r\n loaderPathColor=\"#C5C5C5\"\r\n />\r\n </IconButton>\r\n ) : (\r\n <IconButton\r\n disabled={onlybgColor}\r\n sx={{\r\n height: \"36px !important\",\r\n // border: '1px solid blue',\r\n width: \"36px !important\",\r\n borderRadius: \"8px\",\r\n display: \"flex\",\r\n padding: \"0px\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n background:\r\n editor?.getText()?.trim()?.length > 0\r\n ? \"linear-gradient(167.78deg, #D461F0 -6.05%, #A587FF 50.47%, #618CFF 101.6%)\"\r\n : \"#F5F5F5\",\r\n }}\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n toggleToolbarItem(toolbarItemName);\r\n }}\r\n >\r\n <Ic3StartsFill\r\n width=\"21\"\r\n height=\"21\"\r\n fill={\r\n editor?.getText()?.trim()?.length > 0\r\n ? \"#FFFFFF\"\r\n : \"#C1C1C0\"\r\n }\r\n />\r\n </IconButton>\r\n )}\r\n </ToolTipWithDisabled>\r\n </Box>\r\n </CustomTooltip>\r\n </Box>\r\n );\r\n}\r\n","import { Box, IconButton } from \"@mui/material\";\r\nimport { IcTextColor } from \"../../../../../../assets/icon-components\";\r\nimport ToolTipWithDisabled from \"../../../../../DrawBoard/top-toolbar/components/ToolTipWithDisabled\";\r\nimport BackgroundTool from \"../../components/BackgroundTool\";\r\nimport { toRgba } from \"../../../../../../CommanFunctions/commanFunctions\";\r\nimport { CustomTooltip } from \"../../../../../DrawBoard/top-toolbar/components/CustomTooltip\";\r\n\r\nexport default function TextColorToolbarItem({\r\n toggleToolbarItem,\r\n isActiveToolbarItem,\r\n editor,\r\n node,\r\n onlybgColor,\r\n currentTextColor,\r\n handleChangeTextColor,\r\n toolbarItemName = \"text-color\",\r\n}) {\r\n return (\r\n <Box\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n }}\r\n >\r\n <CustomTooltip\r\n mt={9}\r\n PopperProps={{\r\n disablePortal: true,\r\n }}\r\n onClose={() => toggleToolbarItem(toolbarItemName)}\r\n open={isActiveToolbarItem(toolbarItemName)}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n <BackgroundTool\r\n node={node}\r\n colorHeading={\"Text Color\"}\r\n selectedNodeColor={toRgba(currentTextColor)}\r\n showOpacity={false}\r\n onChangeColor={handleChangeTextColor}\r\n />\r\n }\r\n >\r\n <Box>\r\n <ToolTipWithDisabled\r\n placement=\"top\"\r\n tooltipTitle={\"Text Color\"}\r\n disabled={isActiveToolbarItem(toolbarItemName)}\r\n >\r\n <IconButton\r\n disabled={onlybgColor}\r\n sx={{\r\n height: \"36px !important\",\r\n width: \"36px !important\",\r\n borderRadius: \"8px\",\r\n display: \"flex\",\r\n padding: \"0px\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n bgcolor: isActiveToolbarItem(toolbarItemName)\r\n ? \"#EFF0F3\"\r\n : \"#FFF\",\r\n \"&:hover\": { bgcolor: \"#F5F5F5\" },\r\n }}\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n toggleToolbarItem(toolbarItemName);\r\n }}\r\n >\r\n <IcTextColor fill={onlybgColor ? \"#84838280\" : \"#282828\"} />\r\n <Box\r\n sx={{\r\n mt: \"2px\",\r\n ml: \"0.9px\",\r\n height: \"3px\",\r\n width: \"20px\",\r\n backgroundColor: currentTextColor\r\n ? currentTextColor\r\n : node?.data?.color,\r\n outline: `0.5px solid #e6e6e6`,\r\n }}\r\n />\r\n </IconButton>\r\n </ToolTipWithDisabled>\r\n </Box>\r\n </CustomTooltip>\r\n </Box>\r\n );\r\n}\r\n","import { Box, IconButton, Stack } from \"@mui/material\";\r\nimport IcHighlightTransparent from \"../../../../../../assets/icon-components/IcHighlightTransparent\";\r\nimport { IcFillColor } from \"../../../../../../assets/icon-components\";\r\nimport ToolTipWithDisabled from \"../../../../../DrawBoard/top-toolbar/components/ToolTipWithDisabled\";\r\nimport BackgroundTool from \"../../components/BackgroundTool\";\r\nimport { toRgba } from \"../../../../../../CommanFunctions/commanFunctions\";\r\nimport { CustomTooltip } from \"../../../../../DrawBoard/top-toolbar/components/CustomTooltip\";\r\n\r\nexport default function HighlightTextToolbarItem({\r\n toggleToolbarItem,\r\n isActiveToolbarItem,\r\n editor,\r\n node,\r\n toolbarItemName = \"highlight-text\",\r\n onlybgColor,\r\n setCurrentTextHighlightColor,\r\n currentTextHighlightColor,\r\n}) {\r\n return (\r\n <Box\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n }}\r\n >\r\n <CustomTooltip\r\n mt={9}\r\n PopperProps={{\r\n disablePortal: true,\r\n }}\r\n onClose={() => toggleToolbarItem(toolbarItemName)}\r\n open={isActiveToolbarItem(toolbarItemName)}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n <BackgroundTool\r\n node={node}\r\n colorHeading={\"Highlight Text Color\"}\r\n selectedNodeColor={toRgba(currentTextHighlightColor)}\r\n showOpacity={false}\r\n onChangeColor={(color) => {\r\n const regex =\r\n /rgba\\((NaN|undefined),\\s*(NaN|undefined),\\s*(NaN|undefined),\\s*(\\d+(\\.\\d+)?)\\)/;\r\n\r\n if (!color.match(regex)) {\r\n setCurrentTextHighlightColor(color);\r\n if (editor.state.selection.empty) {\r\n editor\r\n .chain()\r\n .focus()\r\n .selectParentNode()\r\n .selectAll()\r\n .toggleHighlight({ color })\r\n .run();\r\n } else {\r\n editor.chain().focus().toggleHighlight({ color }).run();\r\n }\r\n toggleToolbarItem();\r\n }\r\n }}\r\n />\r\n }\r\n >\r\n <Box\r\n sx={{\r\n // paddingRight: \"7px\",\r\n // borderRight: \"1px solid #EFF0F3\",\r\n }}\r\n >\r\n <Stack>\r\n <ToolTipWithDisabled\r\n placement=\"top\"\r\n tooltipTitle={\"Highlight Text\"}\r\n disabled={isActiveToolbarItem(toolbarItemName)}\r\n >\r\n <IconButton\r\n disabled={onlybgColor}\r\n sx={{\r\n height: \"36px !important\",\r\n width: \"36px !important\",\r\n borderRadius: \"8px\",\r\n display: \"flex\",\r\n padding: \"0px\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n bgcolor: isActiveToolbarItem(toolbarItemName)\r\n ? \"#EFF0F3\"\r\n : \"#FFF\",\r\n \"&:hover\": { bgcolor: \"#F5F5F5\" },\r\n }}\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n toggleToolbarItem(toolbarItemName);\r\n }}\r\n >\r\n <IcFillColor fill={onlybgColor ? \"#84838280\" : \"#282828\"} />\r\n <Box\r\n sx={{\r\n mt: \"2px\",\r\n ml: \"0.9px\",\r\n height: \"3px\",\r\n width: \"20px\",\r\n backgroundColor:\r\n currentTextHighlightColor &&\r\n currentTextHighlightColor !== \"transparent\"\r\n ? currentTextHighlightColor\r\n : \"transparent\", // Set the box's background to transparent if the color is \"transparent\"\r\n outline: `0.5px solid #e6e6e6`,\r\n position: \"relative\", // Needed for icon positioning\r\n }}\r\n >\r\n {(!currentTextHighlightColor ||\r\n currentTextHighlightColor === \"transparent\" ||\r\n currentTextHighlightColor === \"rgba(0, 0, 0, 0)\") && (\r\n <Stack\r\n sx={{\r\n position: \"absolute\",\r\n top: \"50%\",\r\n left: \"50%\",\r\n transform: \"translate(-50%, -50%)\",\r\n outline: \"0px\",\r\n }}\r\n >\r\n <IcHighlightTransparent />\r\n </Stack>\r\n )}\r\n </Box>\r\n </IconButton>\r\n </ToolTipWithDisabled>\r\n </Stack>\r\n </Box>\r\n </CustomTooltip>\r\n </Box>\r\n );\r\n}\r\n","import { Box, IconButton, Stack } from \"@mui/material\";\r\nimport {\r\n IcListOutlined,\r\n IcNumberListOutlined,\r\n} from \"../../../../../../assets/icon-components\";\r\nimport ToolTipWithDisabled from \"../../../../../DrawBoard/top-toolbar/components/ToolTipWithDisabled\";\r\nimport { CustomTooltip } from \"../../../../../DrawBoard/top-toolbar/components/CustomTooltip\";\r\nimport { color } from \"../../../../../../Utils/style/color/color\";\r\n\r\nexport default function ListTypesToolbarItem({\r\n toggleToolbarItem,\r\n isActiveToolbarItem,\r\n editor,\r\n textStyles,\r\n onlybgColor,\r\n toolbarItemName = \"list-type\",\r\n}) {\r\n return (\r\n <Box>\r\n <CustomTooltip\r\n mt={9}\r\n // arrow\r\n PopperProps={{\r\n disablePortal: true,\r\n }}\r\n onClose={() => toggleToolbarItem(toolbarItemName)}\r\n open={isActiveToolbarItem(toolbarItemName)}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n <Stack\r\n direction={\"row\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"flex-start\"}\r\n gap={\"0px 5px\"}\r\n sx={{\r\n p: \"8px\",\r\n borderRadius: \"10px\",\r\n boxShadow: \"0px 3px 8px 0px #030B1614\",\r\n border: \"1px solid #EFF0F3\",\r\n }}\r\n >\r\n <IconButton\r\n sx={{\r\n height: \"36px !important\",\r\n width: \"36px !important\",\r\n borderRadius: \"5px\",\r\n transition: \"all 0.3s ease\",\r\n bgcolor:\r\n textStyles.listType === \"bullet\"\r\n ? color?.lightPrimary\r\n : \"#FFF\",\r\n \"&:hover\": { bgcolor: \"#F7F7F7\" },\r\n }}\r\n onClick={(_) => {\r\n editor.chain().focus().toggleBulletList().run();\r\n }}\r\n >\r\n <IcListOutlined\r\n fill={\r\n textStyles.listType === \"bullet\"\r\n ? color?.primaryColor\r\n : \"#18181B\"\r\n }\r\n />\r\n </IconButton>\r\n <IconButton\r\n sx={{\r\n height: \"36px !important\",\r\n width: \"36px !important\",\r\n borderRadius: \"5px\",\r\n transition: \"all 0.3s ease\",\r\n bgcolor:\r\n textStyles.listType === \"ordered\"\r\n ? color?.lightPrimary\r\n : \"#FFF\",\r\n \"&:hover\": { bgcolor: \"#F7F7F7\" },\r\n }}\r\n onClick={(_) => {\r\n editor.chain().focus().toggleOrderedList().run();\r\n }}\r\n >\r\n <IcNumberListOutlined\r\n fill={\r\n textStyles.listType === \"ordered\"\r\n ? color?.primaryColor\r\n : \"#282828\"\r\n }\r\n />\r\n </IconButton>\r\n </Stack>\r\n }\r\n >\r\n <Box>\r\n <ToolTipWithDisabled\r\n placement=\"top\"\r\n tooltipTitle={\"List\"}\r\n disabled={isActiveToolbarItem(toolbarItemName)}\r\n >\r\n <Stack\r\n sx={{\r\n paddingRight: \"7px\",\r\n borderRight: \"1px solid #EFF0F3\",\r\n }}\r\n >\r\n <IconButton\r\n disabled={onlybgColor}\r\n sx={{\r\n height: \"36px !important\",\r\n width: \"36px !important\",\r\n borderRadius: \"8px\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n gap: \"7px\",\r\n transition: \"all 0.3s ease\",\r\n bgcolor: isActiveToolbarItem(toolbarItemName)\r\n ? \"#EFF0F3\"\r\n : \"#FFF\",\r\n \"&:hover\": { bgcolor: \"#F5F5F5\" },\r\n }}\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n toggleToolbarItem(toolbarItemName);\r\n }}\r\n >\r\n {textStyles.listType === \"ordered\" ? (\r\n <IcNumberListOutlined\r\n fill={onlybgColor ? \"#84838280\" : \"#282828\"}\r\n />\r\n ) : (\r\n <IcListOutlined\r\n fill={onlybgColor ? \"#84838280\" : \"#282828\"}\r\n />\r\n )}\r\n </IconButton>\r\n </Stack>\r\n </ToolTipWithDisabled>\r\n </Box>\r\n </CustomTooltip>\r\n </Box>\r\n );\r\n}\r\n","import { Box, IconButton, Stack } from \"@mui/material\";\r\nimport {\r\n IcTextAlignCenter,\r\n IcTextAlignItemBottom,\r\n IcTextAlignItemCenter,\r\n IcTextAlignLeft,\r\n IcTextAlignRight,\r\n} from \"../../../../../../assets/icon-components\";\r\nimport ToolTipWithDisabled from \"../../../../../DrawBoard/top-toolbar/components/ToolTipWithDisabled\";\r\nimport { useReactFlow } from \"reactflow\";\r\nimport { CustomTooltip } from \"../../../../../DrawBoard/top-toolbar/components/CustomTooltip\";\r\nimport { updateLocalStorage } from \"../../../../../DrawBoard/utils\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useLocation, useParams } from \"react-router-dom\";\r\nimport { useUndoRedo } from \"../../../../../DrawBoard/dndUndoRedo/UndoRedoProvider\";\r\nimport { updateJson } from \"../../../../../../CommanFunctions/commanFunctions\";\r\nimport { color } from \"../../../../../../Utils/style/color/color\";\r\nimport CommonDivider from \"../../../../../../common-components/CommonDivider\";\r\n\r\nconst textAlignmentIcons = {\r\n left: IcTextAlignLeft,\r\n center: IcTextAlignCenter,\r\n right: IcTextAlignRight,\r\n};\r\n\r\nexport default function TextAlignmentToolbarItem({\r\n toggleToolbarItem,\r\n isActiveToolbarItem,\r\n node,\r\n editor,\r\n textStyles,\r\n onlybgColor,\r\n toolbarItemName = \"text-align\",\r\n}) {\r\n const { setNodes } = useReactFlow();\r\n const dispatch = useDispatch();\r\n const { id } = useParams();\r\n const location = useLocation();\r\n const { undo, takeSnapshot } = useUndoRedo();\r\n\r\n const currentTextAlignment =\r\n node?.type === \"simpleText\"\r\n ? node?.data?.style?.textAlign\r\n : textStyles?.textAlign;\r\n\r\n const TextAlignmentIcon =\r\n textAlignmentIcons[\r\n [\"left\", \"center\", \"right\"].includes(currentTextAlignment)\r\n ? currentTextAlignment\r\n : \"left\"\r\n ];\r\n\r\n const handleTextAlignmentChange =\r\n (alignment = \"left\") =>\r\n () => {\r\n if (node?.type === \"simpleText\") {\r\n setNodes((prevNodes) => {\r\n const updatedNodes = prevNodes.map((prevNode) => {\r\n if (prevNode.id === node.id) {\r\n return {\r\n ...prevNode,\r\n data: {\r\n ...prevNode.data,\r\n style: {\r\n ...prevNode.data.style,\r\n textAlign: alignment,\r\n },\r\n },\r\n };\r\n }\r\n return prevNode;\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 userRowData = localStorage.getItem(\"user_data\");\r\n const userData = userRowData ? JSON.parse(userRowData) : {};\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 return updatedNodes;\r\n });\r\n\r\n return;\r\n } else {\r\n if (editor.state.selection.empty) {\r\n editor\r\n .chain()\r\n .focus()\r\n .selectAll()\r\n .updateAttributes(\"paragraph\", {\r\n style: `text-align: ${\r\n alignment === \"left\" ? \"start\" : alignment\r\n };`,\r\n })\r\n .run();\r\n editor\r\n .chain()\r\n .focus()\r\n .selectAll()\r\n .updateAttributes(\"paragraph\", {\r\n textAlign: alignment === \"left\" ? \"start\" : alignment,\r\n })\r\n .run();\r\n // editor\r\n // .chain()\r\n // .focus()\r\n // .selectAll()\r\n // .setTextAlign(alignment)\r\n // .run();\r\n } else {\r\n editor\r\n .chain()\r\n .focus()\r\n .updateAttributes(\"paragraph\", {\r\n style: `text-align: ${alignment};`,\r\n })\r\n .run();\r\n editor\r\n .chain()\r\n .focus()\r\n .updateAttributes(\"paragraph\", {\r\n textAlign: alignment,\r\n })\r\n .run();\r\n editor.chain().focus().setTextAlign(alignment).run();\r\n }\r\n }\r\n\r\n toggleToolbarItem(toolbarItemName);\r\n };\r\n\r\n return (\r\n <Box>\r\n <CustomTooltip\r\n mt={9}\r\n // arrow\r\n PopperProps={{\r\n disablePortal: true,\r\n }}\r\n onClose={() => toggleToolbarItem(toolbarItemName)}\r\n open={isActiveToolbarItem(toolbarItemName)}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n <Stack\r\n sx={{\r\n p: \"8px\",\r\n borderRadius: \"10px\",\r\n boxShadow: \"0px 3px 8px 0px #030B1614\",\r\n width: \"136px\",\r\n }}\r\n >\r\n <Stack\r\n direction={\"row\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"flex-start\"}\r\n gap={\"0px 5px\"}\r\n flexWrap={\"wrap\"}\r\n >\r\n {Object.keys(textAlignmentIcons).map((key) => {\r\n const TextAlignmentIcon = textAlignmentIcons[key];\r\n return (\r\n <IconButton\r\n key={key}\r\n sx={{\r\n height: \"36px !important\",\r\n width: \"36px !important\",\r\n borderRadius: \"5px\",\r\n transition: \"all 0.3s ease\",\r\n bgcolor:\r\n currentTextAlignment === key\r\n ? color?.lightPrimary\r\n : \"#FFF\",\r\n \"&:hover\": { bgcolor: \"#F7F7F7\" },\r\n }}\r\n onClick={handleTextAlignmentChange(key)}\r\n >\r\n <TextAlignmentIcon\r\n fill={\r\n currentTextAlignment === key\r\n ? color?.primaryColor\r\n : \"#18181B\"\r\n }\r\n // height=\"14\"\r\n // width=\"18\"\r\n />\r\n </IconButton>\r\n );\r\n })}\r\n </Stack>\r\n {node?.type === \"Table\" ? (\r\n <>\r\n <CommonDivider\r\n my=\"0px\"\r\n sx={{\r\n margin: \"8px 0px !important\",\r\n }}\r\n />\r\n <Stack\r\n direction={\"row\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"flex-start\"}\r\n gap={\"0px 5px\"}\r\n flexWrap={\"wrap\"}\r\n >\r\n <IconButton\r\n sx={{\r\n height: \"36px !important\",\r\n width: \"36px !important\",\r\n borderRadius: \"5px\",\r\n transition: \"all 0.3s ease\",\r\n bgcolor:\r\n node?.data?.style?.alignItems === \"center\"\r\n ? color?.lightPrimary\r\n : \"#FFF\",\r\n \"&:hover\": {\r\n bgcolor: \"#F7F7F7\",\r\n },\r\n }}\r\n onClick={() => {\r\n let updatedNodes = [];\r\n setNodes(\r\n (prevNodes) =>\r\n (updatedNodes = prevNodes.map((n) =>\r\n n.id === node.id\r\n ? {\r\n ...n,\r\n data: {\r\n ...n.data,\r\n style: {\r\n ...n.data.style,\r\n alignItems: \"center\",\r\n textAlign: \"center\",\r\n },\r\n },\r\n }\r\n : n\r\n ))\r\n );\r\n }}\r\n >\r\n <IcTextAlignItemCenter\r\n // height=\"14\"\r\n // width=\"18\"\r\n fill={\r\n node?.data?.style?.alignItems === \"center\"\r\n ? color?.primaryColor\r\n : \"#18181B\"\r\n }\r\n />\r\n </IconButton>\r\n <IconButton\r\n sx={{\r\n height: \"36px !important\",\r\n width: \"36px !important\",\r\n borderRadius: \"5px\",\r\n transition: \"all 0.3s ease\",\r\n bgcolor:\r\n node?.data?.style?.alignItems === \"end\"\r\n ? color?.lightPrimary\r\n : \"#FFF\",\r\n \"&:hover\": {\r\n bgcolor: \"#F7F7F7\",\r\n },\r\n }}\r\n onClick={() => {\r\n let updatedNodes = [];\r\n setNodes(\r\n (prevNodes) =>\r\n (updatedNodes = prevNodes.map((n) =>\r\n n.id === node.id\r\n ? {\r\n ...n,\r\n data: {\r\n ...n.data,\r\n style: {\r\n ...n.data.style,\r\n alignItems: \"end\",\r\n textAlign: \"right\",\r\n },\r\n },\r\n }\r\n : n\r\n ))\r\n );\r\n }}\r\n >\r\n <IcTextAlignItemBottom\r\n fill={\r\n node?.data?.style?.alignItems === \"end\"\r\n ? \"red\"\r\n : \"#282828\"\r\n }\r\n />\r\n </IconButton>\r\n </Stack>\r\n </>\r\n ) : null}\r\n </Stack>\r\n }\r\n >\r\n <Box>\r\n <ToolTipWithDisabled\r\n placement=\"top\"\r\n tooltipTitle={\"Text Align\"}\r\n disabled={isActiveToolbarItem(toolbarItemName)}\r\n >\r\n <IconButton\r\n disabled={onlybgColor}\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: isActiveToolbarItem(toolbarItemName)\r\n ? \"#EFF0F3\"\r\n : \"#FFF\",\r\n \"&:hover\": { bgcolor: \"#F5F5F5\" },\r\n }}\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n toggleToolbarItem(toolbarItemName);\r\n }}\r\n >\r\n <TextAlignmentIcon fill={onlybgColor ? \"#84838280\" : \"#282828\"} />\r\n </IconButton>\r\n </ToolTipWithDisabled>\r\n </Box>\r\n </CustomTooltip>\r\n </Box>\r\n );\r\n}\r\n","import { Box, IconButton, Stack } from \"@mui/material\";\r\nimport {\r\n IcFontStyle,\r\n IcTextBold,\r\n IcTextItalic,\r\n IcTextStrickTrough,\r\n IcTextUnderline,\r\n} from \"../../../../../../assets/icon-components\";\r\nimport ToolTipWithDisabled from \"../../../../../DrawBoard/top-toolbar/components/ToolTipWithDisabled\";\r\nimport {\r\n CustomNameTooltip,\r\n CustomTooltip,\r\n} from \"../../../../../DrawBoard/top-toolbar/components/CustomTooltip\";\r\n\r\nexport default function FontStyleToolbarItem({\r\n toggleToolbarItem,\r\n isActiveToolbarItem,\r\n onlybgColor,\r\n textStyles,\r\n editor,\r\n toolbarItemName = \"font-style\",\r\n}) {\r\n return (\r\n <Box>\r\n <CustomTooltip\r\n mt={9}\r\n PopperProps={{\r\n disablePortal: true,\r\n }}\r\n onClose={() => toggleToolbarItem(toolbarItemName)}\r\n open={isActiveToolbarItem(toolbarItemName)}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n <Stack\r\n direction={\"row\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"flex-start\"}\r\n gap={\"0px 5px\"}\r\n sx={{\r\n p: \"8px\",\r\n borderRadius: \"10px\",\r\n boxShadow: \"0px 3px 8px 0px #030B1614\",\r\n border: \"1px solid #EFF0F3\",\r\n }}\r\n >\r\n <CustomNameTooltip placement=\"top\" title={\"Bold\"} arrow>\r\n <IconButton\r\n disabled={onlybgColor}\r\n sx={{\r\n height: \"36px !important\",\r\n width: \"36px !important\",\r\n borderRadius: \"5px\",\r\n transition: \"all 0.3s ease\",\r\n bgcolor: textStyles.isBold ? \"#F7F7F7\" : \"#FFF\",\r\n padding: \"0px\",\r\n \"&:hover\": { bgcolor: \"#F7F7F7\" },\r\n }}\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n if (editor.state.selection.empty) {\r\n editor\r\n .chain()\r\n .focus()\r\n .selectParentNode()\r\n .selectAll()\r\n .toggleBold()\r\n .run();\r\n } else {\r\n editor.chain().focus().toggleBold().run();\r\n }\r\n toggleToolbarItem(toolbarItemName);\r\n }}\r\n >\r\n <IcTextBold fill={onlybgColor ? \"#84838280\" : \"#121212\"} />\r\n </IconButton>\r\n </CustomNameTooltip>\r\n\r\n <CustomNameTooltip placement=\"top\" title={\"Italic\"} arrow>\r\n <IconButton\r\n disabled={onlybgColor}\r\n sx={{\r\n height: \"36px !important\",\r\n width: \"36px !important\",\r\n borderRadius: \"5px\",\r\n transition: \"all 0.3s ease\",\r\n bgcolor: textStyles.isItalic ? \"#F7F7F7\" : \"#FFF\",\r\n padding: \"0px\",\r\n \"&:hover\": { bgcolor: \"#F7F7F7\" },\r\n }}\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n if (editor.state.selection.empty) {\r\n editor\r\n .chain()\r\n .focus()\r\n .selectParentNode()\r\n .selectAll()\r\n .toggleItalic()\r\n .run();\r\n } else {\r\n editor.chain().focus().toggleItalic().run();\r\n }\r\n toggleToolbarItem(toolbarItemName);\r\n }}\r\n >\r\n <IcTextItalic fill={onlybgColor ? \"#84838280\" : \"#121212\"} />\r\n </IconButton>\r\n </CustomNameTooltip>\r\n\r\n <CustomNameTooltip placement=\"top\" title={\"Underline\"} arrow>\r\n <IconButton\r\n disabled={onlybgColor}\r\n sx={{\r\n height: \"36px !important\",\r\n width: \"36px !important\",\r\n padding: \"0px\",\r\n borderRadius: \"5px\",\r\n transition: \"all 0.3s ease\",\r\n bgcolor: textStyles.isUnderline ? \"#F7F7F7\" : \"#FFF\",\r\n \"&:hover\": { bgcolor: \"#F7F7F7\" },\r\n }}\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n if (editor.state.selection.empty) {\r\n editor\r\n .chain()\r\n .focus()\r\n .selectParentNode()\r\n .selectAll()\r\n .toggleUnderline()\r\n .run();\r\n } else {\r\n editor.chain().focus().toggleUnderline().run();\r\n }\r\n toggleToolbarItem(toolbarItemName);\r\n }}\r\n >\r\n <IcTextUnderline fill={onlybgColor ? \"#84838280\" : \"#121212\"} />\r\n </IconButton>\r\n </CustomNameTooltip>\r\n\r\n <CustomNameTooltip placement=\"top\" title={\"Strick Through\"} arrow>\r\n <IconButton\r\n disabled={onlybgColor}\r\n sx={{\r\n height: \"36px !important\",\r\n width: \"36px !important\",\r\n borderRadius: \"5px\",\r\n padding: \"0px\",\r\n transition: \"all 0.3s ease\",\r\n bgcolor: textStyles.isStrikethrough ? \"#F7F7F7\" : \"#FFF\",\r\n \"&:hover\": { bgcolor: \"#F7F7F7\" },\r\n }}\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n if (editor.state.selection.empty) {\r\n editor.chain().focus().selectAll().toggleStrike().run();\r\n } else {\r\n editor.chain().focus().toggleStrike().run();\r\n }\r\n toggleToolbarItem(toolbarItemName);\r\n }}\r\n >\r\n <IcTextStrickTrough\r\n fill={onlybgColor ? \"#84838280\" : \"#121212\"}\r\n />\r\n </IconButton>\r\n </CustomNameTooltip>\r\n </Stack>\r\n }\r\n >\r\n <Box>\r\n <ToolTipWithDisabled\r\n placement=\"top\"\r\n tooltipTitle={\"Font Style\"}\r\n disabled={isActiveToolbarItem(toolbarItemName)}\r\n >\r\n <IconButton\r\n disabled={onlybgColor}\r\n sx={{\r\n height: \"36px !important\",\r\n width: \"36px !important\",\r\n borderRadius: \"8px\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n gap: \"7px\",\r\n transition: \"all 0.3s ease\",\r\n bgcolor: isActiveToolbarItem(toolbarItemName)\r\n ? \"#EFF0F3\"\r\n : \"#FFF\",\r\n \"&:hover\": { bgcolor: \"#F5F5F5\" },\r\n }}\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n toggleToolbarItem(toolbarItemName);\r\n }}\r\n >\r\n <IcFontStyle fill={onlybgColor ? \"#84838280\" : \"#282828\"} />\r\n </IconButton>\r\n </ToolTipWithDisabled>\r\n </Box>\r\n </CustomTooltip>\r\n </Box>\r\n );\r\n}\r\n","import { Box, Stack, Typography } from \"@mui/material\";\r\nimport ToolTipWithDisabled from \"../../../../../DrawBoard/top-toolbar/components/ToolTipWithDisabled\";\r\nimport { CustomTooltip } from \"../../../../../DrawBoard/top-toolbar/components/CustomTooltip\";\r\nimport { debounce } from \"lodash\";\r\nimport { cqminToPx } from \"../../../../../DrawBoard/utils\";\r\nimport { useMemo } from \"react\";\r\nimport IcPlus from \"../../../../../../assets/icon-components/IcPlus\";\r\nimport { IcUpDownOutlined } from \"../../../../../../assets/icon-components\";\r\nimport { color } from \"../../../../../../Utils/style/color/color\";\r\n\r\nexport default function FontSizeToolbarItem({\r\n toggleToolbarItem,\r\n isActiveToolbarItem,\r\n isAutoFont,\r\n updateNodeFontsize,\r\n currentFontSize,\r\n node,\r\n toolbarItemName = \"font-size\",\r\n}) {\r\n const fontSizeArr = [\r\n // \"Auto\",\r\n ...Array.from({ length: 23 - 8 }, (_, i) => 8 + i), // Generate numbers from 8 to 22\r\n ];\r\n\r\n // const font = useMemo(() => {\r\n // const isFontSizeInCqmin = currentFontSize?.includes(\"cqmin\")\r\n\r\n // const fontSizeInPx = isFontSizeInCqmin ? cqminToPx(currentFontSize, node.id) : currentFontSize\r\n\r\n // const splittedFont = (currentFontSize ? String(currentFontSize) : \"\")?.split(\r\n // \"px\"\r\n // );\r\n // return parseFloat(splittedFont?.[0]);\r\n // }, [currentFontSize])\r\n\r\n const splittedFont = (currentFontSize ? String(currentFontSize) : \"\")?.split(\r\n \"px\"\r\n );\r\n const font = parseFloat(splittedFont?.[0]);\r\n\r\n\r\n const handleUpdateFontSize = debounce((fontSize) => {\r\n if (fontSize < 0) return;\r\n updateNodeFontsize(fontSize);\r\n }, 100);\r\n\r\n return (\r\n <Box>\r\n <CustomTooltip\r\n mt={9}\r\n // arrow\r\n PopperProps={{\r\n disablePortal: true,\r\n }}\r\n onClose={() => toggleToolbarItem(false)}\r\n open={isActiveToolbarItem(toolbarItemName)}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n <Stack\r\n alignItems={\"center\"}\r\n gap={\"12px\"}\r\n sx={{\r\n boxShadow: \"0px 3px 8px 0px #030B1614\",\r\n p: \"6px\",\r\n borderRadius: \"10px\",\r\n width: \"80px !important\",\r\n }}\r\n >\r\n {fontSizeArr?.map((val, i) => {\r\n return (\r\n <Typography\r\n key={i + 1}\r\n fontSize={14}\r\n fontWeight={500}\r\n p={\"12px 6px\"}\r\n color={font === val ? color.primaryColor : color.titleDark}\r\n height={\"20px\"}\r\n borderRadius={\"8px\"}\r\n bgcolor={font === val ? color.lightPrimary : color.whiteColor}\r\n sx={{\r\n cursor: \"pointer\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n \"&:hover\": {\r\n bgcolor: font !== val && \"#f5f5f5\",\r\n },\r\n }}\r\n onClick={(_) => {\r\n _.stopPropagation();\r\n handleUpdateFontSize(val);\r\n toggleToolbarItem(toolbarItemName);\r\n }}\r\n >\r\n {val}\r\n </Typography>\r\n );\r\n })}\r\n </Stack>\r\n }\r\n >\r\n <Box\r\n sx={{\r\n paddingRight: \"7px\",\r\n borderRight: \"1px solid #EFF0F3\",\r\n }}\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n toggleToolbarItem(toolbarItemName);\r\n }}\r\n >\r\n <ToolTipWithDisabled\r\n placement=\"top\"\r\n tooltipTitle={\"Font Size\"}\r\n disabled={false}\r\n >\r\n <Box\r\n sx={{\r\n height: \"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 cursor: \"pointer\",\r\n px: \"8px\",\r\n bgcolor: isActiveToolbarItem(toolbarItemName)\r\n ? \"#EFF0F3\"\r\n : \"#FFF\",\r\n \"&:hover\": { bgcolor: \"#F5F5F5\" },\r\n }}\r\n >\r\n {/* <Typography\r\n fontSize={14}\r\n fontWeight={500}\r\n color={\"#282828\"}\r\n height={\"20px\"}\r\n >\r\n {isAutoFont ? \"Auto\" : `${font}`}\r\n </Typography> */}\r\n {isAutoFont ? (\r\n <Typography\r\n fontSize={14}\r\n fontWeight={500}\r\n color={\"#282828\"}\r\n height={\"20px\"}\r\n >\r\n Auto\r\n </Typography>\r\n ) : (\r\n <input\r\n type=\"number\"\r\n min={1}\r\n max={300}\r\n value={font}\r\n style={{ border: 0, width: \"1.8rem\" }}\r\n onChange={(e) => handleUpdateFontSize(e.target.value)}\r\n />\r\n )}\r\n\r\n <IcUpDownOutlined />\r\n </Box>\r\n </ToolTipWithDisabled>\r\n </Box>\r\n </CustomTooltip>\r\n </Box>\r\n );\r\n}\r\n","import { Box, Stack, Typography } from \"@mui/material\";\r\nimport ToolTipWithDisabled from \"../../../../../DrawBoard/top-toolbar/components/ToolTipWithDisabled\";\r\nimport { fontFamilyArr } from \"./constants\";\r\nimport { CustomTooltip } from \"../../../../../DrawBoard/top-toolbar/components/CustomTooltip\";\r\nimport { useReactFlow } from \"reactflow\";\r\nimport CheckCircleOutlineIcon from \"@mui/icons-material/CheckCircleOutline\";\r\n\r\nexport default function FontFamilyToolbarItem({\r\n toggleToolbarItem,\r\n isActiveToolbarItem,\r\n editor,\r\n node,\r\n fontFamily,\r\n toolbarItemName = \"font-family\",\r\n}) {\r\n const { setNodes } = useReactFlow();\r\n\r\n const updateFontFamily = (fontFamily) => {\r\n if (!editor.state.selection.empty) {\r\n editor.chain().focus().setFontFamily(fontFamily).run();\r\n } else {\r\n editor\r\n .chain()\r\n .focus()\r\n .selectParentNode() // Select the entire sticky node\r\n .setFontFamily(fontFamily) // Apply the font family\r\n .run();\r\n setNodes((prevNodes) =>\r\n prevNodes.map((n) => {\r\n if (n.id === node.id) {\r\n return {\r\n ...n,\r\n style: { ...n.style, fontFamily: fontFamily },\r\n data: {\r\n ...n?.data,\r\n style: { ...n.data?.style, fontFamily: fontFamily },\r\n },\r\n };\r\n }\r\n return n;\r\n })\r\n );\r\n }\r\n toggleToolbarItem(toolbarItemName);\r\n };\r\n\r\n return (\r\n <Box>\r\n <CustomTooltip\r\n mt={9}\r\n PopperProps={{\r\n disablePortal: true,\r\n }}\r\n onClose={() => toggleToolbarItem(toolbarItemName)}\r\n open={isActiveToolbarItem(toolbarItemName)}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n <Stack\r\n onMouseLeave={() => {\r\n toggleToolbarItem(toolbarItemName);\r\n }}\r\n alignItems={\"center\"}\r\n gap={\"8px\"}\r\n overflow={\"auto\"}\r\n sx={{\r\n boxShadow: \"0px 2px 8px 0px #030B160D\",\r\n p: \"5px\",\r\n borderRadius: \"10px\",\r\n maxHeight: \"350px\",\r\n border: \"1px solid #EFF0F3\"\r\n }}\r\n onWheelCapture={(e) => {\r\n e.stopPropagation();\r\n }}\r\n >\r\n {fontFamilyArr?.map((val, i) => (\r\n <Typography\r\n key={i}\r\n fontSize={14}\r\n fontWeight={500}\r\n fontFamily={`${val.family} !important`}\r\n color={\"#18181B\"}\r\n padding={\"8px\"}\r\n sx={{\r\n cursor: \"pointer\",\r\n background: fontFamily === val.name ? \"#F7F7F7\" : \"#FFF\",\r\n width: \"100%\",\r\n \"&:hover\": { bgcolor: \"#F7F7F7\" },\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"5px\",\r\n borderRadius: \"8px\",\r\n }}\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n updateFontFamily(val.family);\r\n }}\r\n >\r\n {val.name}{\" \"}\r\n {fontFamily === val.name && (\r\n <CheckCircleOutlineIcon color=\"success\" fontSize=\"small\" />\r\n )}\r\n </Typography>\r\n ))}\r\n </Stack>\r\n }\r\n >\r\n <Box\r\n sx={{\r\n paddingRight: \"7px\",\r\n borderRight: \"1px solid #EFF0F3\",\r\n }}\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n toggleToolbarItem(toolbarItemName);\r\n }}\r\n >\r\n <ToolTipWithDisabled\r\n placement=\"top\"\r\n tooltipTitle={\"Font Family\"}\r\n disabled={false}\r\n >\r\n <Box\r\n sx={{\r\n height: \"36px !important\",\r\n borderRadius: \"8px\",\r\n transition: \"all 0.3s ease\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n cursor: \"pointer\",\r\n px: \"8px\",\r\n overflow: \"hidden\",\r\n bgcolor: isActiveToolbarItem(\"font-family\")\r\n ? \"#EFF0F3\"\r\n : \"#FFF\",\r\n \"&:hover\": { bgcolor: \"#F5F5F5\" },\r\n }}\r\n >\r\n <Typography\r\n fontSize={14}\r\n fontWeight={500}\r\n color={\"#282828\"}\r\n height={\"20px\"}\r\n sx={{\r\n whiteSpace: \"nowrap\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n maxWidth: \"100px\",\r\n }}\r\n >\r\n {fontFamily}\r\n </Typography>\r\n </Box>\r\n </ToolTipWithDisabled>\r\n </Box>\r\n </CustomTooltip>\r\n </Box>\r\n );\r\n}\r\n","import { Box, Stack, Typography } from \"@mui/material\";\r\nimport ToolTipWithDisabled from \"../../../../../DrawBoard/top-toolbar/components/ToolTipWithDisabled\";\r\nimport { CustomTooltip } from \"../../../../../DrawBoard/top-toolbar/components/CustomTooltip\";\r\nimport { IcHeadingOne, IcHeadingThree, IcHeadingTwo, IcListOutlined, IcNumberListOutlined, IcPlainText } from \"../../../../../../assets/icon-components\";\r\n\r\nexport default function ContentTypeToolbarItem({ toggleToolbarItem, isActiveToolbarItem, editor }) {\r\n\r\n const contentTypeKeyMap = {\r\n orderedList: \"Numbered List\",\r\n text: \"Plain Text\",\r\n bulletList: \"Bullet List\",\r\n heading1: \"H1\",\r\n heading2: \"H2\",\r\n heading3: \"H3\",\r\n };\r\n\r\n const contentTypes = [\r\n {\r\n label: contentTypeKeyMap.text,\r\n icon: IcPlainText,\r\n onClick: () => {\r\n editor?.commands.setParagraph();\r\n },\r\n },\r\n {\r\n label: contentTypeKeyMap.heading1,\r\n icon: IcHeadingOne,\r\n onClick: () => {\r\n editor?.commands.toggleHeading({ level: 1 });\r\n },\r\n },\r\n {\r\n label: contentTypeKeyMap.heading2,\r\n icon: IcHeadingTwo,\r\n onClick: () => {\r\n editor?.commands.toggleHeading({ level: 2 });\r\n },\r\n },\r\n {\r\n label: contentTypeKeyMap.heading3,\r\n icon: IcHeadingThree,\r\n onClick: () => {\r\n editor?.commands.toggleHeading({ level: 3 });\r\n },\r\n },\r\n {\r\n label: contentTypeKeyMap.orderedList,\r\n icon: IcNumberListOutlined,\r\n onClick: () => {\r\n editor.chain().focus().toggleOrderedList().run();\r\n },\r\n },\r\n {\r\n label: contentTypeKeyMap.bulletList,\r\n icon: IcListOutlined,\r\n onClick: () => {\r\n editor.chain().focus().toggleBulletList().run();\r\n },\r\n },\r\n ];\r\n\r\n const getSelectedContentType = () => {\r\n if (!editor) return contentTypeKeyMap.text;\r\n\r\n const { from, to } = editor.state.selection;\r\n let selectedType = null;\r\n\r\n editor.state.doc.nodesBetween(from, to, (node) => {\r\n if (!selectedType) {\r\n switch (node.type.name) {\r\n case \"heading\":\r\n selectedType = `heading${node.attrs.level}`;\r\n break;\r\n default:\r\n selectedType = node.type.name;\r\n break;\r\n }\r\n }\r\n });\r\n\r\n return contentTypeKeyMap[selectedType] || contentTypeKeyMap.text;\r\n };\r\n return (\r\n <Box>\r\n <CustomTooltip\r\n mt={9}\r\n PopperProps={{\r\n disablePortal: true,\r\n }}\r\n onClose={() => toggleToolbarItem()}\r\n open={isActiveToolbarItem('content-type')}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n <Stack\r\n // alignItems={\"center\"}\r\n gap={\"12px\"}\r\n sx={{\r\n boxShadow: \"0px 3px 8px 0px #030B1614\",\r\n p: \"20px 8px\",\r\n borderRadius: \"10px\",\r\n width: '10rem'\r\n }}\r\n >\r\n {contentTypes?.map((val, i) => {\r\n return (\r\n <Stack\r\n direction={\"row\"}\r\n gap={\"12px\"}\r\n key={i}\r\n alignItems=\"center\"\r\n >\r\n <val.icon\r\n height=\"15px\"\r\n width=\"15px\"\r\n fill=\"#18181B\"\r\n />\r\n <Typography\r\n key={i + 1}\r\n fontSize={14}\r\n fontWeight={500}\r\n color={\"#18181B\"}\r\n height={\"20px\"}\r\n sx={{ cursor: \"pointer\" }}\r\n onClick={val.onClick}\r\n >\r\n {val.label}\r\n </Typography>\r\n </Stack>\r\n );\r\n })}\r\n </Stack>\r\n }\r\n >\r\n <Box\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n toggleToolbarItem('content-type');\r\n }}\r\n >\r\n <ToolTipWithDisabled tooltipTitle={\"Type\"} disabled={false}>\r\n <Box\r\n sx={{\r\n height: \"40px !important\",\r\n\r\n transition: \"all 0.3s ease\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n // justifyContent: \"center\",\r\n cursor: \"pointer\",\r\n paddingLeft: \"8px\",\r\n overflow: \"hidden\",\r\n }}\r\n >\r\n <Typography\r\n fontSize={14}\r\n fontWeight={500}\r\n color={\"#18181B\"}\r\n height={\"20px\"}\r\n sx={{\r\n whiteSpace: \"nowrap\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n }}\r\n >\r\n {getSelectedContentType()}\r\n </Typography>\r\n </Box>\r\n </ToolTipWithDisabled>\r\n </Box>\r\n </CustomTooltip>\r\n </Box>\r\n )\r\n}","import { Box, Stack } from \"@mui/material\";\r\nimport ToolTipWithDisabled from \"../../../../../DrawBoard/top-toolbar/components/ToolTipWithDisabled\";\r\nimport FrameBorderToolbar from \"../../../../frameNode/FrameBorderToolbar\";\r\nimport BorderTool from \"../../components/BorderTool\";\r\nimport { CustomTooltip } from \"../../../../../DrawBoard/top-toolbar/components/CustomTooltip\";\r\n\r\nexport default function BorderToolbarItem({ toggleToolbarItem, isActiveToolbarItem, node, onBorderColorChange }) {\r\n return (\r\n <Box\r\n height={\"36px\"}\r\n width={\"36px\"}\r\n onClick={(e) => e.stopPropagation()}\r\n >\r\n <CustomTooltip\r\n mt={9}\r\n PopperProps={{\r\n disablePortal: true,\r\n }}\r\n onClose={() => {\r\n toggleToolbarItem();\r\n }}\r\n open={isActiveToolbarItem('border-selection')}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n node.type === \"group\" ? (\r\n <BorderTool\r\n node={node}\r\n onBorderColorChange={onBorderColorChange}\r\n />\r\n ) : (\r\n <FrameBorderToolbar node={node} />\r\n )\r\n }\r\n >\r\n <Box onClick={(e) => e.stopPropagation()}>\r\n <ToolTipWithDisabled\r\n placement=\"top\"\r\n tooltipTitle={\"Border\"}\r\n >\r\n <Stack\r\n direction={\"row\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"center\"}\r\n height={\"36px\"}\r\n width={\"36px\"}\r\n borderRadius={\"8px\"}\r\n sx={{\r\n background: isActiveToolbarItem('border-selection')\r\n ? \"#F5F5F5\"\r\n : \"transparent\",\r\n cursor: \"pointer\",\r\n transition: \"all 0.3s\",\r\n \"&:hover\": {\r\n background: \"#F5F5F5\",\r\n },\r\n }}\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n toggleToolbarItem('border-selection');\r\n }}\r\n >\r\n <Box\r\n sx={{\r\n height: \"20px\",\r\n width: \"20px\",\r\n border: `5px solid ${node?.data?.border?.borderColor ||\r\n node?.data?.borderColor ||\r\n \"rgba(3, 11, 22, 1)\"\r\n }`,\r\n borderRadius: \"50%\",\r\n background: \"transparent\",\r\n }}\r\n />\r\n </Stack>\r\n </ToolTipWithDisabled>\r\n </Box>\r\n </CustomTooltip>\r\n </Box>\r\n )\r\n}","import ToolTipWithDisabled from \"../../../../../DrawBoard/top-toolbar/components/ToolTipWithDisabled\";\r\nimport FrameBackgroundToolbar from \"../../../../frameNode/FrameBackgroundToolbar\";\r\nimport { CustomTooltip } from \"../../../../../DrawBoard/top-toolbar/components/CustomTooltip\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useMemo } from \"react\";\r\nimport { IcTransparentCircle } from \"../../../../../../assets/icon-components\";\r\nimport { Box, Stack } from \"@mui/material\";\r\n\r\nexport default function BackgroundColorToolbarItem({\r\n toggleToolbarItem,\r\n isActiveToolbarItem,\r\n node,\r\n}) {\r\n const { boardRef } = useSelector((e) => e?.drawboard);\r\n\r\n function isBackgroundTransparent() {\r\n if (node?.data?.provider === \"shapes\") {\r\n const nodeElement = boardRef?.querySelector(`[data-id=\"${node.id}\"]`);\r\n if (\r\n node?.data?.style?.background &&\r\n node?.data?.style?.background !== \"transparent\"\r\n ) {\r\n return !node?.data?.style?.background;\r\n } else if (node?.data?.style?.iconBg) {\r\n return !node?.data?.style?.iconBg;\r\n } else if (nodeElement) {\r\n const backgroundColor =\r\n nodeElement.querySelectorAll(\"path\")?.[1]?.getAttribute(\"fill\") ||\r\n nodeElement.querySelectorAll(\"path\")?.[1]?.getAttribute(\"stroke\") ||\r\n nodeElement.querySelectorAll(\"path\")?.[0]?.getAttribute(\"fill\") ||\r\n nodeElement.querySelectorAll(\"path\")?.[0]?.getAttribute(\"stroke\") ||\r\n nodeElement.querySelectorAll(\"rect\")?.[1]?.getAttribute(\"fill\") ||\r\n nodeElement.querySelectorAll(\"rect\")?.[1]?.getAttribute(\"stroke\") ||\r\n nodeElement.querySelectorAll(\"rect\")?.[0]?.getAttribute(\"fill\") ||\r\n nodeElement.querySelectorAll(\"rect\")?.[0]?.getAttribute(\"stroke\");\r\n\r\n return !backgroundColor;\r\n }\r\n }\r\n\r\n const background =\r\n node?.data?.style?.background ||\r\n node?.data?.style?.backgroundColor ||\r\n node?.data?.style?.iconBg ||\r\n \"transparent\";\r\n\r\n // Check if the background is explicitly 'transparent'\r\n if (background === \"transparent\" || !node?.data?.style) {\r\n return true;\r\n }\r\n\r\n // Check if the background is in 'rgba' format with 0 opacity\r\n const rgbaRegex =\r\n /^rgba\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}\\s*,\\s*\\d{1,3}\\s*,\\s*0(\\.0+)?\\s*\\)$/;\r\n return rgbaRegex.test(background);\r\n }\r\n\r\n const bgColorFromDon = useMemo(() => {\r\n if (node?.data?.provider === \"shapes\") {\r\n const nodeElement = boardRef?.querySelector(`[data-id=\"${node.id}\"]`);\r\n if (\r\n node?.data?.style?.background &&\r\n node?.data?.style?.background !== \"transparent\"\r\n ) {\r\n return node?.data?.style?.background;\r\n } else if (node?.data?.style?.iconBg) {\r\n return node?.data?.style?.iconBg;\r\n } else if (nodeElement) {\r\n const backgroundColor =\r\n nodeElement.querySelectorAll(\"path\")?.[1]?.getAttribute(\"fill\") ||\r\n nodeElement.querySelectorAll(\"path\")?.[1]?.getAttribute(\"stroke\") ||\r\n nodeElement.querySelectorAll(\"path\")?.[0]?.getAttribute(\"fill\") ||\r\n nodeElement.querySelectorAll(\"path\")?.[0]?.getAttribute(\"stroke\") ||\r\n nodeElement.querySelectorAll(\"rect\")?.[1]?.getAttribute(\"fill\") ||\r\n nodeElement.querySelectorAll(\"rect\")?.[1]?.getAttribute(\"stroke\") ||\r\n nodeElement.querySelectorAll(\"rect\")?.[0]?.getAttribute(\"fill\") ||\r\n nodeElement.querySelectorAll(\"rect\")?.[0]?.getAttribute(\"stroke\") ||\r\n \"transparent\";\r\n\r\n return backgroundColor;\r\n }\r\n } else {\r\n return (\r\n node?.data?.style?.background ||\r\n node?.data?.style?.iconBg ||\r\n \"transparent\"\r\n );\r\n }\r\n }, [boardRef, node]);\r\n\r\n return (\r\n <Box>\r\n <CustomTooltip\r\n mt={9}\r\n PopperProps={{\r\n disablePortal: true,\r\n }}\r\n onClose={() => toggleToolbarItem(\"background-color\")}\r\n open={isActiveToolbarItem(\"background-color\")}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={<FrameBackgroundToolbar node={node} />}\r\n >\r\n <Box\r\n sx={\r\n {\r\n // paddingRight: \"7px\",\r\n // borderRight: \"1px solid #EFF0F3\",\r\n }\r\n }\r\n >\r\n <ToolTipWithDisabled\r\n placement=\"top\"\r\n tooltipTitle={\"Background Color\"}\r\n >\r\n <Stack\r\n direction={\"row\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"center\"}\r\n height={\"36px\"}\r\n width={\"36px\"}\r\n borderRadius={\"8px\"}\r\n sx={{\r\n background: isActiveToolbarItem(\"background-color\")\r\n ? \"#F5F5F5\"\r\n : \"transparent\",\r\n cursor: \"pointer\",\r\n transition: \"all 0.3s\",\r\n \"&:hover\": {\r\n background: \"#F5F5F5\",\r\n },\r\n }}\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n toggleToolbarItem(\"background-color\");\r\n }}\r\n >\r\n <Box\r\n sx={{\r\n height: \"20px\",\r\n width: \"20px\",\r\n borderRadius: \"50%\",\r\n position: \"relative\",\r\n background: bgColorFromDon,\r\n ...(node?.data?.style?.background ===\r\n \"rgba(255, 255, 255, 1)\" ||\r\n node?.data?.style?.background === \"rgb(255, 255, 255)\" ||\r\n node?.data?.style?.background === \"#FFF\" ||\r\n node?.data?.style?.background === \"#FFFFFF\" ||\r\n node?.data?.style?.background === \"white\"\r\n ? { border: `1px solid black` }\r\n : {}),\r\n }}\r\n >\r\n {isBackgroundTransparent() && (\r\n <Stack\r\n sx={{\r\n position: \"absolute\",\r\n top: \"50%\",\r\n left: \"50%\",\r\n transform: \"translate(-50%, -50%)\",\r\n outline: \"0px\",\r\n borderRadius: \"50%\",\r\n }}\r\n >\r\n <IcTransparentCircle />\r\n </Stack>\r\n )}\r\n </Box>\r\n </Stack>\r\n </ToolTipWithDisabled>\r\n </Box>\r\n </CustomTooltip>\r\n </Box>\r\n );\r\n}\r\n","import { Box, Grid } from \"@mui/material\";\r\nimport {\r\n IcDownArrow,\r\n IcShapesOutlined2,\r\n} from \"../../../../../../assets/icon-components\";\r\nimport ToolTipWithDisabled from \"../../../../../DrawBoard/top-toolbar/components/ToolTipWithDisabled\";\r\nimport { updateJson } from \"../../../../../../CommanFunctions/commanFunctions\";\r\nimport { CustomTooltip } from \"../../../../../DrawBoard/top-toolbar/components/CustomTooltip\";\r\nimport { omit } from \"lodash\";\r\nimport * as ICONS from \"../../../../../../Utils/Icons\";\r\nimport { useReactFlow, useUpdateNodeInternals } from \"reactflow\";\r\nimport { useUndoRedo } from \"../../../../../DrawBoard/dndUndoRedo/UndoRedoProvider\";\r\nimport { useLocation, useParams } from \"react-router-dom\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { iconTypes } from \"../../../../../DrawBoard/const\";\r\nimport { color } from \"../../../../../../Utils/style/color/color\";\r\n\r\nexport default function ShapesListToolbarItem({\r\n toggleToolbarItem,\r\n isActiveToolbarItem,\r\n selectedNodes,\r\n node,\r\n}) {\r\n const location = useLocation();\r\n const dispatch = useDispatch();\r\n const { id } = useParams();\r\n const { undo, takeSnapshot } = useUndoRedo();\r\n const updateNodeInternals = useUpdateNodeInternals();\r\n\r\n const { setNodes } = useReactFlow();\r\n\r\n const excludedIcons = [\r\n \"SwimlessVertical\",\r\n \"SwimlessHorizontal\",\r\n \"Summing_junction\",\r\n \"Or\",\r\n \"Group\",\r\n \"Pool\",\r\n \"PoolOne\",\r\n \"Process_1\",\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 \"Uml_Classifier_11\",\r\n \"Uml_Interface_with_Attributes_1\",\r\n \"Arrow_Right_Square_Fill\",\r\n \"Arrow_Left_Square_Fill\",\r\n \"Arrow_Square_Left\",\r\n \"Arrow_Square_Right\",\r\n \"Control_ExitPoint\",\r\n \"Uml_Deletion_11\",\r\n \"Uml_Required_Interface\",\r\n \"Uml_Vertical_Fork\",\r\n \"Uml_Horizontal_Fork\",\r\n \"Uml_Activation_11\",\r\n \"Swimlanes_Horizontal_Pool_3_11\",\r\n \"Swimlanes_Vertical_Pool_3\",\r\n \"Swimlanes_Horizontal_2\",\r\n \"Swimlanes_Vertical_2\",\r\n \"Conversation\",\r\n \"Getway\",\r\n \"Choreography\",\r\n \"Uml_Assembly_1_11\",\r\n \"Branch_Merge\",\r\n \"Uml_Provided_Interface\",\r\n \"Pin\",\r\n \"Uml_History_Pseudostate\",\r\n \"IcLineShapes\",\r\n \"IcLineArrowSquare\",\r\n ];\r\n\r\n const generateIcon = omit(\r\n ICONS?.Icons?.shapes[\r\n node.data?.catagory || \"flowcharts_and_containers_shapes\"\r\n ],\r\n excludedIcons\r\n );\r\n\r\n return (\r\n <Box>\r\n <CustomTooltip\r\n mt={9}\r\n PopperProps={{\r\n disablePortal: true,\r\n }}\r\n onClose={() => toggleToolbarItem(\"shapes\")}\r\n open={isActiveToolbarItem(\"shapes\")}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n <Grid\r\n container\r\n sx={{\r\n boxShadow: \"0px 3px 9px 0px #030B1614\",\r\n borderRadius: \"10px\",\r\n width: \"175px\",\r\n p: \"8px\",\r\n }}\r\n >\r\n {generateIcon &&\r\n Object.keys(generateIcon)?.map((item, key) => {\r\n const IconComponent = generateIcon[item];\r\n return (\r\n <Grid\r\n item\r\n xs={12}\r\n sm={4}\r\n md={4}\r\n key={key}\r\n sx={{\r\n textAlign: \"center\",\r\n p: 1,\r\n borderRadius: \"8px\",\r\n cursor: \"pointer\",\r\n \"&:hover\": {\r\n bgcolor: color.commonHoverColor,\r\n },\r\n }}\r\n onClick={() => {\r\n let updatedNodes = [];\r\n setNodes((nds) => {\r\n updatedNodes = nds?.map((node1) => {\r\n if (node1.id === selectedNodes?.id) {\r\n return {\r\n ...node1,\r\n key: item,\r\n name: item,\r\n data: {\r\n ...node1.data,\r\n key: item,\r\n name: item,\r\n },\r\n };\r\n }\r\n return node1;\r\n });\r\n return updatedNodes;\r\n });\r\n updateNodeInternals(selectedNodes?.id);\r\n const user_data = localStorage.getItem(\"user_data\");\r\n // ! save data\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\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id,\r\n dispatch,\r\n undo,\r\n takeSnapshot,\r\n a_id,\r\n });\r\n }}\r\n >\r\n <IconComponent\r\n width=\"30px\"\r\n height=\"30px\"\r\n isFromSidebar={false}\r\n isScale={false}\r\n iconStyle={node?.data?.iconStyle ?? \"3D\"}\r\n iconType={node?.data?.iconType ?? iconTypes.BORDERED}\r\n fill={node?.data?.style?.background}\r\n />\r\n </Grid>\r\n );\r\n })}\r\n </Grid>\r\n }\r\n >\r\n <Box\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n toggleToolbarItem(\"shapes\");\r\n }}\r\n >\r\n <ToolTipWithDisabled\r\n placement=\"top\"\r\n tooltipTitle={\"Shapes\"}\r\n disabled={false}\r\n >\r\n <Box\r\n sx={{\r\n height: \"36px !important\",\r\n width: \"62px !important\",\r\n borderRadius: \"8px\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-evenly\",\r\n gap: \"7px\",\r\n transition: \"all 0.3s ease\",\r\n cursor: \"pointer\",\r\n bgcolor: isActiveToolbarItem(\"shapes\") ? \"#EFF0F3\" : \"#FFF\",\r\n \"&:hover\": { bgcolor: \"#F7F7F7\" },\r\n }}\r\n >\r\n <IcShapesOutlined2 />\r\n <IcDownArrow height=\"6\" width=\"12\" />\r\n </Box>\r\n </ToolTipWithDisabled>\r\n </Box>\r\n </CustomTooltip>\r\n </Box>\r\n );\r\n}\r\n","import { Box, Stack } from \"@mui/material\";\r\nimport {\r\n IcCircleStickyOutline,\r\n IcDownArrow,\r\n IcRectangleStickyOutline,\r\n IcSquareStickyOutline,\r\n} from \"../../../../../../assets/icon-components\";\r\nimport ToolTipWithDisabled from \"../../../../../DrawBoard/top-toolbar/components/ToolTipWithDisabled\";\r\nimport { CustomTooltip } from \"../../../../../DrawBoard/top-toolbar/components/CustomTooltip\";\r\nimport { updateJson } from \"../../../../../../CommanFunctions/commanFunctions\";\r\nimport { useLocation, useParams } from \"react-router-dom\";\r\nimport { useUndoRedo } from \"../../../../../DrawBoard/dndUndoRedo/UndoRedoProvider\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useReactFlow } from \"reactflow\";\r\nimport { color } from \"../../../../../../Utils/style/color/color\";\r\n\r\nexport default function StickyNoteTypesMenuItem({\r\n toggleToolbarItem,\r\n isActiveToolbarItem,\r\n content,\r\n setIsResized,\r\n editor,\r\n node,\r\n}) {\r\n const { getNodes, setNodes } = useReactFlow();\r\n\r\n const dispatch = useDispatch();\r\n const { id } = useParams();\r\n const { undo, takeSnapshot } = useUndoRedo();\r\n const location = useLocation();\r\n\r\n const handleChangeStickyNotesType = (type = \"square\") => {\r\n let updatedNodes = getNodes();\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 let updatedNode;\r\n setNodes((nodes) => {\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes,\r\n lastUpdatedBy: parsedData?.user_id,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n updatedNodes = nodes.map((nd) => {\r\n if (nd.id === node.id) {\r\n updatedNode = {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n variant: type,\r\n height:\r\n type === \"rectangle\"\r\n ? (nd.data.width * 60) / 100\r\n : nd.data.width,\r\n minHeight:\r\n type === \"rectangle\"\r\n ? (nd.data.width * 60) / 100\r\n : nd.data.width,\r\n },\r\n style: {\r\n ...nd.style,\r\n height: type === \"rectangle\" ? 100 : nd.data.width,\r\n width: type === \"rectangle\" ? 167 : nd.data.width,\r\n },\r\n };\r\n\r\n return updatedNode;\r\n }\r\n return nd;\r\n });\r\n return updatedNodes;\r\n });\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n 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 return (\r\n <Box>\r\n <CustomTooltip\r\n mt={13}\r\n PopperProps={{\r\n disablePortal: true,\r\n }}\r\n onClose={() => toggleToolbarItem(\"sticky-note-types\")}\r\n open={isActiveToolbarItem(\"sticky-note-types\")}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n <Stack\r\n gap={\"8px\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"center\"}\r\n p={\"6px\"}\r\n bgcolor={color.whiteColor}\r\n border={`1px solid ${color.darkGray}`}\r\n boxShadow=\"0px 4px 6px -2px #10182808 , 0px 12px 16px -4px #10182808\"\r\n borderRadius={\"10px\"}\r\n flexDirection={\"row\"}\r\n // ml={\"34px\"}\r\n >\r\n <Box\r\n sx={{\r\n cursor: \"pointer\",\r\n bgcolor:\r\n node.data.variant === \"square\"\r\n ? color.lightPrimary\r\n : \"transparent\",\r\n borderRadius: \"8px\",\r\n padding: \"4px\",\r\n }}\r\n onClick={() => {\r\n handleChangeStickyNotesType(\"square\"); // editor?.chain().focus();\r\n\r\n setIsResized(false);\r\n setTimeout(() => {\r\n editor?.commands.setContent(\r\n content.replace(/<\\/p>/, \"  </p>\")\r\n ); // isResizing.current = false;\r\n\r\n setIsResized(true);\r\n }, 800);\r\n }}\r\n >\r\n <IcSquareStickyOutline\r\n fill={\r\n node.data.variant === \"square\"\r\n ? color.primaryColor\r\n : color.editorIcon\r\n }\r\n />\r\n </Box>\r\n <Box\r\n sx={{\r\n cursor: \"pointer\",\r\n bgcolor:\r\n node.data.variant === \"rectangle\"\r\n ? color.lightPrimary\r\n : \"transparent\",\r\n borderRadius: \"8px\",\r\n padding: \"4px\",\r\n }}\r\n onClick={() => {\r\n handleChangeStickyNotesType(\"rectangle\"); // editor?.chain().focus();\r\n\r\n setIsResized(false);\r\n setTimeout(() => {\r\n editor?.commands.setContent(\r\n content.replace(/<\\/p>/, \"  </p>\")\r\n ); // isResizing.current = false;\r\n\r\n setIsResized(true);\r\n }, 800);\r\n }}\r\n >\r\n <IcRectangleStickyOutline\r\n fill={\r\n node.data.variant === \"rectangle\"\r\n ? color.primaryColor\r\n : color.editorIcon\r\n }\r\n />\r\n </Box>\r\n <Box\r\n sx={{\r\n cursor: \"pointer\",\r\n bgcolor:\r\n node.data.variant === \"circle\"\r\n ? color.lightPrimary\r\n : \"transparent\",\r\n borderRadius: \"8px\",\r\n padding: \"4px\",\r\n }}\r\n onClick={() => {\r\n handleChangeStickyNotesType(\"circle\");\r\n setIsResized(false); // editor?.chain().focus();\r\n\r\n setTimeout(() => {\r\n editor?.commands.setContent(\r\n content.replace(/<\\/p>/, \"  </p>\")\r\n ); // isResizing.current = false;\r\n\r\n setIsResized(true);\r\n }, 800);\r\n }}\r\n >\r\n <IcCircleStickyOutline\r\n fill={\r\n node.data.variant === \"circle\"\r\n ? color.primaryColor\r\n : color.editorIcon\r\n }\r\n />\r\n </Box>\r\n </Stack>\r\n }\r\n >\r\n <Box>\r\n <ToolTipWithDisabled placement=\"top\" tooltipTitle={\"Switch Type\"}>\r\n <Stack\r\n direction={\"row\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"center\"}\r\n height={\"36px\"}\r\n gap={\"8px\"}\r\n p={\"8px\"}\r\n borderRadius={\"8px\"}\r\n sx={{\r\n cursor: \"pointer\",\r\n \"&:hover\": {\r\n backgroundColor: \"#F5F5F5\",\r\n },\r\n }}\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n toggleToolbarItem(\"sticky-note-types\");\r\n }}\r\n >\r\n {node.data.variant === \"square\" ? (\r\n <IcSquareStickyOutline />\r\n ) : node.data.variant === \"circle\" ? (\r\n <IcCircleStickyOutline />\r\n ) : (\r\n <IcRectangleStickyOutline />\r\n )}\r\n <IcDownArrow />\r\n </Stack>\r\n </ToolTipWithDisabled>\r\n </Box>\r\n </CustomTooltip>\r\n </Box>\r\n );\r\n}\r\n","import { useDispatch } from \"react-redux\";\r\nimport { useLocation, useParams } from \"react-router-dom\";\r\nimport { useReactFlow } from \"reactflow\";\r\nimport { useUndoRedo } from \"../../../../../DrawBoard/dndUndoRedo/UndoRedoProvider\";\r\nimport { updateJson } from \"../../../../../../CommanFunctions/commanFunctions\";\r\nimport { Box, IconButton } from \"@mui/material\";\r\nimport { CustomNameTooltip } from \"../../../../../DrawBoard/top-toolbar/components/CustomTooltip\";\r\nimport { IcHideShowAuthor } from \"../../../../../../assets/icon-components\";\r\n\r\nexport default function AuthorToolbarItem({ node }) {\r\n const { getNodes, setNodes } = useReactFlow();\r\n const { id } = useParams();\r\n const location = useLocation();\r\n const dispatch = useDispatch();\r\n const { undo, takeSnapshot } = useUndoRedo();\r\n\r\n const toggleHideShow = () => {\r\n const user_data = localStorage.getItem(\"user_data\");\r\n let updatedNodes = getNodes();\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n let updatedNode;\r\n setNodes((nodes) => {\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes,\r\n lastUpdatedBy: parsedData?.user_id,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n updatedNodes = nodes.map((nd) => {\r\n if (nd.id === node.id) {\r\n updatedNode = {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n showAuthor: !nd?.data?.showAuthor,\r\n },\r\n };\r\n return updatedNode;\r\n }\r\n return nd;\r\n });\r\n return updatedNodes;\r\n });\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id,\r\n dispatch,\r\n undo,\r\n takeSnapshot,\r\n a_id,\r\n });\r\n };\r\n return (\r\n <Box>\r\n <CustomNameTooltip\r\n placement=\"top\"\r\n arrow\r\n title={\r\n node?.data?.showAuthor ? \"Show Author\" : \"Hide Author\"\r\n }\r\n >\r\n <IconButton\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 background: \"#FFF\",\r\n padding: \"0px\",\r\n cursor: \"pointer\",\r\n \"&:hover\": {\r\n background: \"#F5F5F5\",\r\n },\r\n }}\r\n onClick={toggleHideShow}\r\n >\r\n <IcHideShowAuthor />\r\n </IconButton>\r\n </CustomNameTooltip>\r\n </Box>\r\n )\r\n}","import { Box, IconButton } from \"@mui/material\";\r\nimport { CustomNameTooltip } from \"../../../../../DrawBoard/top-toolbar/components/CustomTooltip\";\r\nimport {\r\n IcLockLocked,\r\n IcLockUnLocked,\r\n} from \"../../../../../../assets/icon-components\";\r\nimport { updateJson } from \"../../../../../../CommanFunctions/commanFunctions\";\r\nimport { useReactFlow } from \"reactflow\";\r\nimport { useLocation, useParams } from \"react-router-dom\";\r\nimport { useUndoRedo } from \"../../../../../DrawBoard/dndUndoRedo/UndoRedoProvider\";\r\nimport { useDispatch } from \"react-redux\";\r\n\r\nexport default function LockUnlockToolbarItem({ node, toggleToolbarItem }) {\r\n const { getNodes, setNodes } = useReactFlow();\r\n const { id } = useParams();\r\n const location = useLocation();\r\n const { undo, takeSnapshot } = useUndoRedo();\r\n const dispatch = useDispatch();\r\n\r\n const toggleLockUnlock = (e) => {\r\n e.stopPropagation();\r\n toggleToolbarItem();\r\n\r\n let updatedNodes = getNodes();\r\n const user_data = localStorage.getItem(\"user_data\");\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n let updatedNode;\r\n setNodes((nodes) => {\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes,\r\n lastUpdatedBy: parsedData?.user_id,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n updatedNodes = nodes.map((nd) => {\r\n if (nd.id === node.id) {\r\n updatedNode = {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n locked: !nd?.data?.locked,\r\n data: {\r\n ...(nd?.data?.data || {}),\r\n locked: !nd?.data?.data?.locked,\r\n },\r\n },\r\n };\r\n return updatedNode;\r\n }\r\n return nd;\r\n });\r\n return updatedNodes;\r\n });\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id,\r\n dispatch,\r\n undo,\r\n a_id,\r\n takeSnapshot,\r\n });\r\n };\r\n\r\n return (\r\n <Box\r\n sx={{\r\n // paddingRight: \"7px\",\r\n // borderRight: \"1px solid #EFF0F3\",\r\n // borderLeft: \"1px solid #EFF0F3\",\r\n // px: \"7px\"\r\n }}\r\n >\r\n <CustomNameTooltip\r\n placement=\"top\"\r\n arrow\r\n title={node?.data?.data?.locked ? \"Unlock\" : \"Lock\"}\r\n >\r\n <IconButton\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 background: \"#FFF\",\r\n padding: \"0px\",\r\n cursor: \"pointer\",\r\n \"&:hover\": {\r\n background: \"#F5F5F5\",\r\n },\r\n }}\r\n onClick={toggleLockUnlock}\r\n >\r\n {node?.data?.data?.locked || node?.data?.locked ? (\r\n <IcLockLocked />\r\n ) : (\r\n <IcLockUnLocked />\r\n )}\r\n </IconButton>\r\n </CustomNameTooltip>\r\n </Box>\r\n );\r\n}\r\n","import { Color } from \"@tiptap/extension-color\";\r\nimport ListItem from \"@tiptap/extension-list-item\";\r\nimport TextStyle from \"@tiptap/extension-text-style\";\r\nimport Underline from \"@tiptap/extension-underline\";\r\nimport StarterKit from \"@tiptap/starter-kit\";\r\nimport Placeholder from \"@tiptap/extension-placeholder\";\r\nimport Highlight from \"@tiptap/extension-highlight\";\r\nimport React, { memo, useCallback, useEffect, useState } from \"react\";\r\nimport TextAlign from \"@tiptap/extension-text-align\";\r\nimport FontSize from \"../fontSize\";\r\nimport {\r\n Box,\r\n ClickAwayListener,\r\n Stack,\r\n} from \"@mui/material\";\r\nimport {\r\n IcMenuDotsVertical,\r\n} from \"../../../../../assets/icon-components\";\r\nimport {\r\n NodeToolbar,\r\n Position,\r\n useReactFlow,\r\n} from \"reactflow\";\r\nimport {\r\n CustomTooltip,\r\n} from \"../../../../DrawBoard/top-toolbar/components/CustomTooltip\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport FrameMoreMenus from \"../../../frameNode/FrameMoreMenus\";\r\nimport { getMarkAttributes } from \"@tiptap/react\";\r\nimport { useLocation, useParams } from \"react-router-dom\";\r\nimport { useUndoRedo } from \"../../../../DrawBoard/dndUndoRedo/UndoRedoProvider\";\r\nimport AIOptionsToolbarItem from \"./ToolbarMenuItems/AIOptionsToolbarItem\";\r\nimport TextColorToolbarItem from \"./ToolbarMenuItems/TextColorToolbarItem\";\r\nimport HighlightTextToolbarItem from \"./ToolbarMenuItems/HighlightTextToolbarItem\";\r\nimport LinkToolbarItem from \"./ToolbarMenuItems/LinkToolbarItem\";\r\nimport ListTypesToolbarItem from \"./ToolbarMenuItems/ListTypesToolbarItem\";\r\nimport TextAlignmentToolbarItem from \"./ToolbarMenuItems/TextAlignmentToolbarItem\";\r\nimport FontStyleToolbarItem from \"./ToolbarMenuItems/FontStyleToolbarItem\";\r\nimport FontSizeToolbarItem from \"./ToolbarMenuItems/FontSizeToolbarItem\";\r\nimport FontFamilyToolbarItem from \"./ToolbarMenuItems/FontFamilyToolbarItem\";\r\nimport ContentTypeToolbarItem from \"./ToolbarMenuItems/ContentTypeToolbarItem\";\r\nimport BorderToolbarItem from \"./ToolbarMenuItems/BorderToolbarItem\";\r\nimport BackgroundColorToolbarItem from \"./ToolbarMenuItems/BackgroundColorToolbarItem\";\r\nimport ShapesListToolbarItem from \"./ToolbarMenuItems/ShapesListToolbarItem\";\r\nimport StickyNoteTypesMenuItem from \"./ToolbarMenuItems/StickyNoteTypesMenuItem\";\r\nimport { fontFamilyArr } from \"./ToolbarMenuItems/constants\";\r\nimport AuthorToolbarItem from \"./ToolbarMenuItems/AuthorToolbarItem\";\r\nimport LockUnlockToolbarItem from \"./ToolbarMenuItems/LockUnlockToolbarItem\";\r\nimport { omit } from \"lodash\";\r\nimport { onEditorUpdateAdjustFontSize, pxToCqmin, updateLocalStorage } from \"../../../../DrawBoard/utils\";\r\nimport { updateJson } from \"../../../../../CommanFunctions/commanFunctions\";\r\n\r\nfunction RenderToolbarMenuItems({ toolbarItems = [] }) {\r\n return toolbarItems.map((item, index) => {\r\n const { Component, props, showIf } = item;\r\n return showIf && <Component\r\n key={index}\r\n {...props}\r\n />;\r\n })\r\n\r\n}\r\n\r\nexport const ToolbarMenuItems = ({\r\n editor,\r\n node,\r\n updateFontSize,\r\n currFontSize,\r\n isSticky = false,\r\n onlybgColor = false,\r\n isAutoFont = false,\r\n setIsResized,\r\n simpleRef,\r\n floating = false,\r\n onBorderColorChange,\r\n content,\r\n isShowTextToolbar,\r\n}) => {\r\n\r\n const [currentTextColor, setCurrentTextColor] = useState(\r\n node?.data?.style?.color || \"#18181B\"\r\n );\r\n\r\n const location = useLocation();\r\n const dispatch = useDispatch();\r\n const { id } = useParams();\r\n\r\n const { undo, takeSnapshot } = useUndoRedo();\r\n\r\n const [showFrameMoreOptions, setShowFrameMoreOptions] = useState(false);\r\n\r\n const [currentFontFamily, setCurrentFontFamily] = useState(node?.data?.style?.fontFamily ?? 'Inter');\r\n const [currentTextHighlightColor, setCurrentTextHighlightColor] =\r\n useState(\"transparent\");\r\n\r\n const [activeToolbarItem, setActiveToolbarItem] = useState(null);\r\n\r\n const [textStyles, setTextStyles] = useState({\r\n isBold: false,\r\n isItalic: false,\r\n isUnderline: false,\r\n isStrikethrough: false,\r\n textAlign: \"left\",\r\n listType: null,\r\n });\r\n\r\n const toggleToolbarItem = (itemName = null) => {\r\n if (showFrameMoreOptions) setShowFrameMoreOptions(false);\r\n setActiveToolbarItem((prev) => (prev === itemName ? null : itemName));\r\n }\r\n\r\n const isActiveToolbarItem = (itemName) => itemName === activeToolbarItem;\r\n\r\n const handleSelectedTextState = () => {\r\n if (editor) {\r\n const highlightAttrs = getMarkAttributes(editor.state, \"highlight\");\r\n if (highlightAttrs.color) {\r\n setCurrentTextHighlightColor(highlightAttrs.color);\r\n }\r\n\r\n const colorAttrs = editor.getAttributes(\"textStyle\");\r\n if (colorAttrs.color) {\r\n setCurrentTextColor(colorAttrs.color);\r\n }\r\n } else {\r\n setCurrentTextColor(\"rgba(0, 0, 0, 1)\");\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n handleSelectedTextState();\r\n }, [editor?.isFocused]);\r\n\r\n const handleUpdateFontSize = useCallback((fontSize = \"Auto\") => {\r\n // let updatedFontSize = ['stickyNoteEditor', 'simpleText', 'resizable'].includes(node.type) ? pxToCqmin(`${fontSize}px`, node.id) : `${fontSize}px`;\r\n\r\n // const textElement = document.querySelector(`#tiptap-${node.id}`);\r\n // const containerElement = document.querySelector(`#sticky_notes_${node.id}`);\r\n\r\n // if (fontSize === 'Auto') {\r\n // onEditorUpdateAdjustFontSize(textElement, containerElement)\r\n // }\r\n\r\n setNodes((prev) => {\r\n const updatedNodes = prev?.map((prev) => {\r\n if (prev.id === node.id) {\r\n if (fontSize === 'Auto') {\r\n return {\r\n ...prev,\r\n data: {\r\n ...prev.data,\r\n isAutoFont: true,\r\n // style: {\r\n // ...prev.data?.style,\r\n // fontSize: textElement.style.fontSize,\r\n // },\r\n\r\n }\r\n }\r\n } else {\r\n return {\r\n ...prev,\r\n data: {\r\n ...omit(prev.data, [\"lastFontSize\"]),\r\n isResized: true,\r\n isAutoFont: false,\r\n style: {\r\n ...prev.data?.style,\r\n fontSize: fontSize + \"px\",\r\n },\r\n },\r\n style: {\r\n ...prev.style,\r\n fontSize: fontSize + \"px\",\r\n },\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 userRowData = localStorage.getItem(\"user_data\");\r\n const userData = userRowData ? JSON.parse(userRowData) : {};\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 }, [id, location.search, node.id])\r\n\r\n const updateNodeFontsize = (fontSize) => {\r\n if (fontSize !== \"Auto\") {\r\n if (!onlybgColor) {\r\n if (updateFontSize && typeof updateFontSize === \"function\") {\r\n updateFontSize(`${fontSize}px`);\r\n }\r\n if ([\"stickyNoteEditor\", \"simpleText\", \"resizable\"].includes(node?.type)) {\r\n handleUpdateFontSize(fontSize);\r\n } else {\r\n editor?.chain().focus().setFontSize(`${fontSize}px`).run();\r\n }\r\n }\r\n } else {\r\n handleUpdateFontSize(\"Auto\");\r\n if (!isAutoFont) {\r\n setTimeout(() => {\r\n if (typeof setIsResized === \"function\") {\r\n setIsResized(true);\r\n }\r\n }, 300);\r\n }\r\n }\r\n };\r\n\r\n const { getNodes, setNodes, getNode } = useReactFlow();\r\n\r\n const currentNode = getNode(node?.id);\r\n\r\n const selectedNodes = getNodes()?.find((val) => val?.selected);\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 currentColor = currentStyles.textColor || node?.data?.color;\r\n const currentHighlightColor =\r\n currentStyles.highlightColor || \"transparent\";\r\n const currentFontFamily =\r\n fontFamilyArr.find(\r\n (font) => font.family === currentStyles.fontFamily\r\n )?.name ?? node?.data?.style?.fontFamily ?? \"Inter\";\r\n\r\n setTextStyles(currentStyles);\r\n setCurrentTextColor(currentColor);\r\n setCurrentTextHighlightColor(currentHighlightColor);\r\n setCurrentFontFamily(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 useEffect(() => {\r\n if (node?.data?.frame) {\r\n try {\r\n setNodes((nds) =>\r\n nds.map((n) => {\r\n if (n?.id === node?.id) {\r\n return {\r\n ...n,\r\n data: {\r\n ...n.data,\r\n frame: true,\r\n },\r\n selected: false,\r\n };\r\n }\r\n return n;\r\n })\r\n );\r\n } catch (error) {\r\n console.error(\"Error adding node:\", error);\r\n }\r\n }\r\n }, [node?.data?.frame]);\r\n\r\n const handleChangeTextColor = (color) => {\r\n setCurrentTextColor(color);\r\n if (editor.state.selection.empty) {\r\n editor\r\n .chain()\r\n .focus()\r\n .selectParentNode()\r\n .selectAll()\r\n .setColor(color)\r\n .focus(\"end\")\r\n .run();\r\n\r\n setNodes((prevNodes) =>\r\n prevNodes.map((n) => {\r\n if (n.id === node.id) {\r\n return {\r\n ...n,\r\n style: {\r\n ...n.style,\r\n color: color,\r\n },\r\n data: {\r\n ...n.data,\r\n style: {\r\n ...n.data.style,\r\n color: color,\r\n },\r\n },\r\n };\r\n }\r\n return n;\r\n })\r\n );\r\n toggleToolbarItem();\r\n } else {\r\n editor.chain().focus().setColor(color).run();\r\n toggleToolbarItem();\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (node.selected) {\r\n const hideAllOPenDropdowns = () => {\r\n toggleToolbarItem();\r\n setShowFrameMoreOptions(false);\r\n }\r\n\r\n document.addEventListener('closeAllToolbarItems', hideAllOPenDropdowns);\r\n return () => {\r\n document.removeEventListener('closeAllToolbarItems', hideAllOPenDropdowns);\r\n }\r\n }\r\n\r\n }, [node.selected])\r\n\r\n const toolbarItems = [\r\n {\r\n Component: StickyNoteTypesMenuItem,\r\n props: { toggleToolbarItem, isActiveToolbarItem, content, editor, setIsResized, node: currentNode },\r\n showIf: !node?.data?.locked && node.type === \"stickyNoteEditor\"\r\n },\r\n {\r\n Component: ShapesListToolbarItem,\r\n props: { toggleToolbarItem, isActiveToolbarItem, node: currentNode, selectedNodes },\r\n showIf: !node?.data?.locked && selectedNodes?.data?.provider === \"shapes\"\r\n },\r\n {\r\n Component: BackgroundColorToolbarItem,\r\n props: { toggleToolbarItem, isActiveToolbarItem, node: currentNode },\r\n showIf: !node?.data?.locked && !['document', 'TreeView'].includes(node?.type)\r\n },\r\n {\r\n Component: BorderToolbarItem,\r\n props: { toggleToolbarItem, isActiveToolbarItem, node: currentNode, onBorderColorChange },\r\n showIf: !node?.data?.locked && node?.data?.provider !== \"shapes\" && !['stickyNoteEditor', 'TreeView', 'simpleText', 'document'].includes(node?.type)\r\n },\r\n {\r\n Component: ContentTypeToolbarItem,\r\n props: { toggleToolbarItem, isActiveToolbarItem, editor },\r\n showIf: !node?.data?.locked && node?.type === \"document\"\r\n },\r\n {\r\n Component: FontFamilyToolbarItem,\r\n props: { toggleToolbarItem, isActiveToolbarItem, node: currentNode, editor, fontFamily: currentFontFamily },\r\n showIf: !node?.data?.locked && !node?.data?.className && node?.type !== \"document\" && isShowTextToolbar\r\n },\r\n {\r\n Component: FontSizeToolbarItem,\r\n props: { toggleToolbarItem, isActiveToolbarItem, node: currentNode, editor, updateNodeFontsize, isAutoFont, isSticky, currentFontSize: currFontSize },\r\n showIf: !node?.data?.locked && node?.type !== \"document\" && isShowTextToolbar\r\n },\r\n {\r\n Component: FontStyleToolbarItem,\r\n props: { toggleToolbarItem, isActiveToolbarItem, editor, onlybgColor, textStyles },\r\n showIf: !node?.data?.locked && isShowTextToolbar\r\n },\r\n {\r\n Component: TextAlignmentToolbarItem,\r\n props: { toggleToolbarItem, isActiveToolbarItem, node: currentNode, editor, textStyles, onlybgColor },\r\n showIf: !node?.data?.locked && node?.type !== \"document\" && isShowTextToolbar\r\n },\r\n {\r\n Component: ListTypesToolbarItem,\r\n props: { toggleToolbarItem, isActiveToolbarItem, node: currentNode, editor, onlybgColor, textStyles },\r\n showIf: !node?.data?.locked && !['group', 'document'].includes(node?.type)\r\n },\r\n {\r\n Component: TextColorToolbarItem,\r\n props: { toggleToolbarItem, isActiveToolbarItem, node: currentNode, editor, onlybgColor, currentTextColor, handleChangeTextColor },\r\n showIf: !node?.data?.locked && isShowTextToolbar\r\n },\r\n {\r\n Component: HighlightTextToolbarItem,\r\n props: { toggleToolbarItem, isActiveToolbarItem, editor, node: currentNode, onlybgColor, setCurrentTextHighlightColor, currentTextHighlightColor },\r\n showIf: !node?.data?.locked && isShowTextToolbar\r\n },\r\n // {\r\n // Component: LinkToolbarItem,\r\n // props: { toggleToolbarItem, isActiveToolbarItem, node: currentNode, editor },\r\n // showIf: !node?.data?.locked && ['simpleText', 'document'].includes(node?.type) && isShowTextToolbar\r\n // },\r\n {\r\n Component: AuthorToolbarItem,\r\n props: { node: currentNode },\r\n showIf: !node?.data?.locked && node.type === \"stickyNoteEditor\"\r\n },\r\n {\r\n Component: LockUnlockToolbarItem,\r\n props: { node: currentNode, toggleToolbarItem },\r\n showIf: !floating\r\n },\r\n {\r\n Component: AIOptionsToolbarItem,\r\n props: { toggleToolbarItem, isActiveToolbarItem, node: currentNode, editor, currentTextColor, onlybgColor },\r\n showIf: !node?.data?.locked && (node?.type === \"stickyNoteEditor\" || node?.type === \"simpleText\" || node?.type === 'document' || node?.data?.provider === \"shapes\")\r\n },\r\n ]\r\n\r\n return (\r\n <Box\r\n display={\"flex\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"center\"}\r\n gap={\"8px\"}\r\n px={\"7px\"}\r\n height={\"48px\"}\r\n sx={{\r\n background: \"#FFFFFF\",\r\n backgroundColor: \"#FFFFFF\",\r\n // border: \"1px solid #00000024\",\r\n boxShadow: \"0px 5px 15.2px 0px #030B1614\",\r\n borderRadius: \"12px\",\r\n }}\r\n onClick={() => {\r\n toggleToolbarItem()\r\n }}\r\n >\r\n <RenderToolbarMenuItems\r\n toolbarItems={toolbarItems}\r\n />\r\n\r\n {\r\n !floating && (\r\n <Box>\r\n <CustomTooltip\r\n mt={9}\r\n PopperProps={{\r\n disablePortal: true,\r\n }}\r\n onClose={() => setShowFrameMoreOptions(false)}\r\n open={showFrameMoreOptions}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n <FrameMoreMenus\r\n node={node}\r\n height={currentNode?.height / 2}\r\n width={currentNode?.width / 2}\r\n showCopyAsImage={true}\r\n showAddComment={true}\r\n showLockUnlock={true}\r\n showStyle={true}\r\n showDelete={true}\r\n showBringToFrontAndBack={true}\r\n showFrame={false}\r\n exportShow={true}\r\n setShowFrameMoreOptions={setShowFrameMoreOptions}\r\n simpleRef={simpleRef}\r\n showDuplicate={true}\r\n />\r\n }\r\n >\r\n <Stack\r\n direction={\"row\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"center\"}\r\n height={\"36px\"}\r\n width={\"36px\"}\r\n borderRadius={\"8px\"}\r\n sx={{\r\n cursor: \"pointer\",\r\n marginLeft: \"10px\",\r\n transition: \"all 0.3s\",\r\n transform: \"rotate(90deg)\",\r\n \"&:hover\": {\r\n background: \"#F5F5F5\",\r\n },\r\n }}\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n setShowFrameMoreOptions(!showFrameMoreOptions);\r\n toggleToolbarItem()\r\n }}\r\n >\r\n <IcMenuDotsVertical height=\"32\" width=\"32\" fill=\"#282828\" />\r\n </Stack>\r\n </CustomTooltip>\r\n </Box>\r\n )\r\n }\r\n </Box>\r\n );\r\n}\r\n ;\r\n\r\nconst MindMapNodesToolbar = ({\r\n updateFontfamily,\r\n editor,\r\n node,\r\n updateFontSize,\r\n currFontSize,\r\n isSticky = false,\r\n onlybgColor = false,\r\n isAutoFont = false,\r\n setIsResized,\r\n simpleRef,\r\n onBorderColorChange,\r\n content,\r\n isShowTextToolbar = true,\r\n}) => {\r\n const { getNodes } = useReactFlow();\r\n const isMultipleNodesSelected = getNodes().filter((node) => node.selected).length > 1;\r\n return (\r\n <>\r\n <NodeToolbar isVisible={!isMultipleNodesSelected && !node.dragging && !node?.data?.globalDragging && node.selected} position={Position.Top} offset={30}>\r\n <ToolbarMenuItems\r\n updateFontfamily={updateFontfamily}\r\n editor={editor}\r\n node={node}\r\n updateFontSize={updateFontSize}\r\n currFontSize={currFontSize}\r\n isSticky={isSticky}\r\n onlybgColor={onlybgColor}\r\n isAutoFont={isAutoFont}\r\n setIsResized={setIsResized}\r\n simpleRef={simpleRef}\r\n onBorderColorChange={onBorderColorChange}\r\n content={content}\r\n isShowTextToolbar={isShowTextToolbar}\r\n />\r\n </NodeToolbar>\r\n </>\r\n );\r\n};\r\n\r\nexport default MindMapNodesToolbar;\r\n\r\nexport const tipTapExtensions = (placeholder = \"\") => {\r\n return [\r\n Color.configure({ types: [TextStyle.name, ListItem.name] }),\r\n TextStyle.configure({ types: [ListItem.name] }),\r\n StarterKit.configure({\r\n bulletList: {\r\n keepMarks: true,\r\n keepAttributes: false, // TODO : Making this as `false` because marks are not preserved when I try to preserve attrs, awaiting a bit of help\r\n },\r\n orderedList: {\r\n keepMarks: true,\r\n keepAttributes: false, // TODO : Making this as `false` because marks are not preserved when I try to preserve attrs, awaiting a bit of help\r\n },\r\n }),\r\n Underline.configure(),\r\n Highlight.configure({\r\n multicolor: true,\r\n }),\r\n TextAlign.configure({\r\n types: [\"heading\", \"paragraph\", \"left\", \"center\", \"right\", \"justify\"],\r\n }),\r\n FontSize.configure(),\r\n Placeholder.configure({\r\n placeholder: placeholder,\r\n }),\r\n ];\r\n};\r\n","export const changeToneData = [\r\n {\r\n label: \"Friendly\",\r\n key: \"friendly\",\r\n },\r\n {\r\n label: \"Professional\",\r\n key: \"professional\",\r\n },\r\n {\r\n label: \"Business\",\r\n key: \"business\",\r\n },\r\n {\r\n label: \"Fun\",\r\n key: \"fun\",\r\n },\r\n];\r\n\r\nexport const documentTypesData = [\r\n {\r\n label: \"Retrospective Summary\",\r\n key: \"retrospective\",\r\n prompt:\r\n \"Create a retrospective summary document that includes a discussion summary, highlights of what went well, areas for improvement, ideas for improvement, key outcomes, action items, and open questions.\",\r\n },\r\n {\r\n label: \"Product Brief\",\r\n key: \"product_brief\",\r\n prompt:\r\n \"Create a comprehensive product brief for a {{context}} aimed at solving key problems identified from user feedback and data analysis, including an executive summary, problem statement, importance of solving the problem now, data points, opportunity, risks, target audience, definition of done, and success metrics/OKRs.\",\r\n },\r\n // {\r\n // label: \"Research Synthesis\",\r\n // key: \"research_synthesis\",\r\n // prompt:\r\n // \"Create a research synthesis document for a {{context}} that includes the title, goal of the study, key insights with supporting evidence, actionable recommendations with prioritization, and open questions with a note on why these questions are important.\",\r\n // },\r\n {\r\n label: \"Meeting Notes\",\r\n key: \"meeting_notes\",\r\n prompt:\r\n \"Create detailed meeting notes that include the meeting agenda, decisions taken, and action items with descriptions, assignees, and due dates.\",\r\n },\r\n // {\r\n // label: \"Summary\",\r\n // key: \"summary\",\r\n // prompt: \"\"\r\n // },\r\n // {\r\n // label: \"Custom Prompt\",\r\n // key: \"custom_prompt\",\r\n // prompt: null,\r\n // },\r\n];\r\n\r\nexport const translateData = [\r\n {\r\n label: \"English\",\r\n key: \"english\",\r\n },\r\n {\r\n label: \"Spanish\",\r\n key: \"spanish\",\r\n },\r\n {\r\n label: \"German\",\r\n key: \"german\",\r\n },\r\n {\r\n label: \"French\",\r\n key: \"french\",\r\n },\r\n {\r\n label: \"Japanese\",\r\n key: \"japanese\",\r\n },\r\n {\r\n label: \"Portuguese\",\r\n key: \"portuguese\",\r\n },\r\n {\r\n label: \"Hindi\",\r\n key: \"hindi\",\r\n },\r\n {\r\n label: \"Korean\",\r\n key: \"korean\",\r\n },\r\n {\r\n label: \"Polish\",\r\n key: \"polish\",\r\n },\r\n {\r\n label: \"Italian\",\r\n key: \"italian\",\r\n },\r\n {\r\n label: \"Arabic\",\r\n key: \"arabic\",\r\n },\r\n {\r\n label: \"Russian\",\r\n key: \"russian\",\r\n },\r\n {\r\n label: \"Danish\",\r\n key: \"danish\",\r\n },\r\n {\r\n label: \"Finnish\",\r\n key: \"finnish\",\r\n },\r\n {\r\n label: \"Norwegian\",\r\n key: \"norwegian\",\r\n },\r\n {\r\n label: \"Dutch\",\r\n key: \"dutch\",\r\n },\r\n {\r\n label: \"Swedish\",\r\n key: \"swedish\",\r\n },\r\n {\r\n label: \"Thai\",\r\n key: \"thai\",\r\n },\r\n];\r\n\r\nexport const fontFamilyArr = [\r\n { name: \"Inter\", family: \"Inter\" },\r\n { name: \"Comic Sans\", family: \"Comic Sans MS, Comic Sans\" },\r\n { name: \"Serif\", family: \"serif\" },\r\n { name: \"Monospace\", family: \"monospace\" },\r\n { name: \"Cursive\", family: \"cursive\" },\r\n { name: \"Comic Sans quoted\", family: `\"Comic Sans MS\", \"Comic Sans\"` },\r\n {\r\n name: \"Abril Fatface\",\r\n family: \"Abril Fatface\",\r\n },\r\n { name: \"Arial\", family: \"Arial\" },\r\n {\r\n name: \"Bangers\",\r\n family: \"Bangers\",\r\n },\r\n {\r\n name: \"Caveat\",\r\n family: \"Caveat\",\r\n },\r\n {\r\n name: \"EB Garamond\",\r\n family: \"EB Garamond\",\r\n },\r\n {\r\n name: \"Fredoka One\",\r\n family: \"Fredoka Bold\",\r\n },\r\n {\r\n name: \"Georgia\",\r\n family: \"Georgia\",\r\n },\r\n {\r\n name: \"Graduate\",\r\n family: \"Graduate\",\r\n },\r\n {\r\n name: \"Gravitas One\",\r\n family: \"Gravitas One\",\r\n },\r\n {\r\n name: \"IBM Plex Mono\",\r\n family: \"IBM Plex Mono\",\r\n },\r\n {\r\n name: \"IBM Plex Sans\",\r\n family: \"IBM Plex Sans\",\r\n },\r\n {\r\n name: \"IBM Plex Serif\",\r\n family: \"IBM Plex Serif\",\r\n },\r\n {\r\n name: \"Lemon Tuesday\",\r\n family: \"Lemon Tuesday\",\r\n },\r\n {\r\n name: \"Nixie One\",\r\n family: \"Nixie One\",\r\n },\r\n {\r\n name: \"Noto Sans\",\r\n family: \"Noto Sans\",\r\n },\r\n {\r\n name: \"Open Sans\",\r\n family: \"Open Sans\",\r\n },\r\n {\r\n name: \"PT Sans\",\r\n family: \"PT Sans\",\r\n },\r\n {\r\n name: \"PT Sans Narrow\",\r\n family: \"PT Sans Narrow\",\r\n },\r\n {\r\n name: \"PT Serif\",\r\n family: \"PT Serif\",\r\n },\r\n {\r\n name: \"Permanent Marker\",\r\n family: \"Permanent Marker\",\r\n },\r\n {\r\n name: \"Rammetto One\",\r\n family: \"Rammetto One\",\r\n },\r\n {\r\n name: \"Roboto\",\r\n family: \"Roboto\",\r\n },\r\n {\r\n name: \"Roboto Condensed\",\r\n family: \"Roboto Condensed\",\r\n },\r\n {\r\n name: \"Roboto Mono\",\r\n family: \"Roboto Mono\",\r\n },\r\n {\r\n name: \"Roboto Slab\",\r\n family: \"Roboto Slab\",\r\n },\r\n {\r\n name: \"Titan One\",\r\n family: \"Titan One\",\r\n },\r\n { name: \"CSS variable\", family: \"var(--title-font-family)\" },\r\n];","import React, { useEffect, useState, useMemo } from \"react\";\r\nimport { Box, Popover, Stack, Typography } from \"@mui/material\";\r\nimport { AlphaPicker } from \"react-color\";\r\nimport ColorPicker from \"react-best-gradient-color-picker\";\r\nimport { useReactFlow } from \"reactflow\";\r\nimport {\r\n convertToRgba,\r\n parseRGBColor,\r\n toRgba,\r\n updateJson,\r\n} from \"../../../../../CommanFunctions/commanFunctions\";\r\nimport {\r\n IcCloseThin,\r\n IcPlusCircleOutlined,\r\n} from \"../../../../../assets/icon-components\";\r\nimport { useLocation, useParams } from \"react-router-dom\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport IcHighlightCircleTransparent from \"../../../../../assets/icon-components/IcHighlightCircleTransparent\";\r\nimport { useUndoRedo } from \"../../../../DrawBoard/dndUndoRedo/UndoRedoProvider\";\r\nimport { color } from \"../../../../../Utils/style/color/color\";\r\n\r\nconst getColorString = ({ r, g, b, a = 1 }) => `rgba(${r}, ${g}, ${b}, ${a})`;\r\n\r\nconst BackgroundTool = ({\r\n setCustomBgOpen,\r\n node,\r\n colorHeading,\r\n onChangeColor,\r\n selectedNodeColor,\r\n showOpacity = true,\r\n isEdge,\r\n setShowTextColor,\r\n}) => {\r\n const { setNodes, getNodes } = useReactFlow();\r\n const [selectedColor, setSelectedColor] = useState({\r\n rgb: null,\r\n r: 1,\r\n g: 1,\r\n b: 1,\r\n a: 1,\r\n });\r\n const [allCustomColors, setAllCustomColors] = useState([]);\r\n const [anchorEl, setAnchorEl] = useState(null);\r\n const [customColor, setCustomColor] = useState(null);\r\n const [editCustomColor, setEditCustomColor] = useState(false);\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 handleChangeOpacity = (newOpacity) => {\r\n // const updatedColor = { ...selectedColor, a: newOpacity };\r\n // setSelectedColor(updatedColor);\r\n\r\n // // Send updated rgba values to `opacitt`\r\n // // if (opacitt) {\r\n // // opacitt = {\r\n // // r: opacity.r,\r\n // // g: opacity.g,\r\n // // b: opacity.b,\r\n // // a: newOpacity,\r\n // // };\r\n // // }\r\n // };\r\n\r\n const open = Boolean(anchorEl);\r\n const popoverId = open ? \"simple-popover\" : undefined;\r\n\r\n \r\n useEffect(() => {\r\n if (!open && customColor !== null) {\r\n const { r, g, b } = parseRGBColor(customColor);\r\n setAllCustomColors((prev) => {\r\n const updatedColors = [\r\n {\r\n rgb: customColor,\r\n r,\r\n g,\r\n b,\r\n a: 1,\r\n },\r\n ...prev,\r\n ];\r\n\r\n localStorage.setItem(\"customColors\", JSON.stringify(updatedColors));\r\n\r\n return updatedColors;\r\n });\r\n setCustomColor(null);\r\n }\r\n }, [customColor, open]);\r\n\r\n useEffect(() => {\r\n const localCustomColors = localStorage.getItem(\"customColors\");\r\n\r\n if (localCustomColors && localCustomColors !== null) {\r\n const parsedCustomColors = JSON.parse(localCustomColors);\r\n setAllCustomColors(parsedCustomColors);\r\n }\r\n }, []);\r\n\r\n const updateNodeBackground = (node, selectedColor) => {\r\n const newColor = getColorString(selectedColor);\r\n const user_data = localStorage.getItem(\"user_data\");\r\n let updatedNodes = getNodes();\r\n let updatedNode;\r\n if (isEdge) {\r\n // Do some changes if required\r\n } else {\r\n setNodes((nodes) => {\r\n updatedNodes = nodes.map((nd) => {\r\n if (nd.id === node.id) {\r\n updatedNode = {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n style: {\r\n ...nd.data.style,\r\n ...(node.type === \"shape\" || node.type === \"resizable\"\r\n ? // && node.data?.provider === \"shapes\"\r\n { iconBg: newColor }\r\n : { background: newColor }),\r\n },\r\n },\r\n };\r\n return updatedNode;\r\n }\r\n return nd;\r\n });\r\n return updatedNodes;\r\n });\r\n }\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 ...(isEdge ? { edges: updatedNodes } : { 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 initializeSelectedColor = (background, isStopUpdate = false) => {\r\n const {\r\n r,\r\n g,\r\n b,\r\n a = 1,\r\n } = background\r\n ? parseRGBColor(background)\r\n : { r: 255, g: 255, b: 255, a: 1 };\r\n if (!isStopUpdate) {\r\n setSelectedColor({ r, g, b, a, rgb: getColorString({ r, g, b, a }) });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (selectedColor.rgb !== null) {\r\n if (onChangeColor) {\r\n if (selectedNodeColor) {\r\n const { r, b, g, a } = selectedColor;\r\n selectedNodeColor !== `rgba(${r}, ${g}, ${b}, ${a})` &&\r\n onChangeColor(`rgba(${r}, ${g}, ${b}, ${a})`);\r\n }\r\n } else if (\r\n (((node.type === \"shape\" || node.type === \"resizable\") &&\r\n // && node.data?.provider === \"shapes\"\r\n node.data.style?.iconBg !== getColorString(selectedColor)) ||\r\n (node.type !== \"shape\" &&\r\n node.data.style?.background !== getColorString(selectedColor))) &&\r\n !onChangeColor\r\n ) {\r\n updateNodeBackground(node, selectedColor, setNodes);\r\n }\r\n }\r\n else if (\r\n selectedNodeColor ||\r\n ((node.type === \"shape\" || node.type === \"resizable\") &&\r\n // && node.data?.provider === \"shapes\"\r\n node.data.style?.iconBg) ||\r\n (node.type !== \"shape\" && node.data.style?.background)\r\n ) {\r\n initializeSelectedColor(\r\n selectedNodeColor\r\n ? toRgba(selectedNodeColor)\r\n : node.type === \"shape\" || node.type === \"resizable\"\r\n ? // && node.data?.provider === \"shapes\"\r\n node?.data?.style?.iconBg\r\n : node?.data?.style.background\r\n // setSelectedColor,\r\n // !node?.data?.style?.iconBg\r\n );\r\n }\r\n }, [node?.id, selectedColor]);\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n setCustomBgOpen && setCustomBgOpen(false);\r\n };\r\n\r\n const handleClick = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n setCustomBgOpen && setCustomBgOpen(true);\r\n };\r\n\r\n const CustomColorPopover = useMemo(\r\n () => (\r\n <Popover\r\n id={popoverId}\r\n open={open}\r\n anchorEl={anchorEl}\r\n onClose={handleClose}\r\n anchorOrigin={{\r\n vertical: \"top\",\r\n horizontal: \"right\",\r\n }}\r\n sx={{\r\n \"& .MuiPaper-root\": {\r\n p: { xs: \"8px\", xl: \"10px\" },\r\n ml: \"-10px\",\r\n boxShadow: \"none\",\r\n bgcolor: \"transparent\",\r\n },\r\n }}\r\n className=\"custom-color-popover\"\r\n >\r\n <Stack\r\n sx={{\r\n boxShadow: \"0px 3px 8px 0px #030B1614\",\r\n border: \"1px solid #EFF0F3\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n p: \"5px\",\r\n bgcolor: \"#FFF\",\r\n borderRadius: \"6px\",\r\n gap: \"10px\",\r\n minWidth: \"205px\",\r\n fontSize: 12,\r\n }}\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n }}\r\n >\r\n <ColorPicker\r\n width={260}\r\n height={240}\r\n value={customColor}\r\n onChange={(value) => {\r\n setCustomColor(value);\r\n }}\r\n hideOpacity\r\n hideGradientStop={true}\r\n hideAdvancedSliders={true}\r\n hideColorGuide={true}\r\n hideColorTypeBtns={true}\r\n hideControls={true}\r\n hidePresets={true}\r\n />\r\n </Stack>\r\n </Popover>\r\n ),\r\n [anchorEl, open, popoverId]\r\n );\r\n\r\n return (\r\n <>\r\n <Stack\r\n sx={{\r\n p: \"14px\",\r\n borderRadius: \"10px\",\r\n boxShadow: \"0px 2px 8px 0px #030B160D\",\r\n border: \"1px solid #EEEEEE\",\r\n width: \"300px\",\r\n }}\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n setShowTextColor && setShowTextColor(false);\r\n }}\r\n className=\"bg-color-tool\"\r\n >\r\n <Stack>\r\n {showOpacity && (\r\n <>\r\n {\" \"}\r\n <Stack\r\n width={\"100%\"}\r\n direction={\"row\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"space-between\"}\r\n >\r\n <Typography fontSize={12} color={\"#18181B\"}>\r\n Opacity\r\n </Typography>\r\n <Typography fontSize={12} color={\"#18181B\"}>\r\n {Math.round(selectedColor.a * 100)}%\r\n </Typography>\r\n </Stack>\r\n <Stack\r\n mt={\"9px\"}\r\n mb={\"14px\"}\r\n width={\"100%\"}\r\n position={\"relative\"}\r\n sx={{\r\n \"& .alpha-picker\": {\r\n borderRadius: \"100px\",\r\n overflow: \"hidden\",\r\n\r\n \"& div\": {\r\n \"& div:nth-of-type(3)\": {\r\n \"& div\": {\r\n \"& div\": {\r\n width: \"11px !important\",\r\n height: \"11px !important\",\r\n transform: \"translate(-6px, 0px) !important\",\r\n border: \"2px solid #FFFFFF !important\",\r\n boxShadow: \"0px 0px 5.7px 0px #28282859 !important\",\r\n background: \"transparent !important\",\r\n },\r\n },\r\n },\r\n },\r\n },\r\n }}\r\n >\r\n <AlphaPicker\r\n height=\"11px\"\r\n width=\"100%\"\r\n color={{\r\n r: selectedColor.r,\r\n g: selectedColor.g,\r\n b: selectedColor.b,\r\n a: selectedColor.a,\r\n }}\r\n onChange={(value) => {\r\n // handleChangeOpacity(value.rgb.a);\r\n setSelectedColor({\r\n ...selectedColor,\r\n a: value.rgb.a,\r\n });\r\n }}\r\n />\r\n </Stack>{\" \"}\r\n </>\r\n )}\r\n <Stack\r\n sx={{\r\n maxHeight: \"172px\",\r\n overflow: \"scroll\",\r\n \"&::-webkit-scrollbar\": {\r\n width: \"0px !important\",\r\n },\r\n }}\r\n onWheelCapture={(e) => {\r\n e.stopPropagation();\r\n }}\r\n >\r\n <Stack\r\n width={\"100%\"}\r\n direction={\"row\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"space-between\"}\r\n >\r\n <Typography fontSize={12} color={\"#18181B\"}>\r\n {colorHeading || \"Pen Color\"}\r\n </Typography>\r\n </Stack>\r\n <Stack\r\n mt={\"5px\"}\r\n direction={\"row\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"flex-start\"}\r\n gap={\"3px\"}\r\n flexWrap={\"wrap\"}\r\n width={\"100%\"}\r\n >\r\n {borderTransparentColors.map((color, i) => {\r\n return (\r\n <Stack\r\n key={i + 1}\r\n height={\"24px\"}\r\n width={\"24px\"}\r\n borderRadius={\"50%\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"center\"}\r\n sx={{\r\n border: `1px solid ${selectedColor.rgb === color.rgb\r\n ? \"rgba(0, 122, 255, 1)\"\r\n : \"transparent\"\r\n }`,\r\n cursor: \"pointer\",\r\n }}\r\n onClick={() => {\r\n setSelectedColor(color);\r\n }}\r\n >\r\n {/* <Box\r\n sx={{\r\n background: color.rgb,\r\n width: \"90%\",\r\n height: \"90%\",\r\n borderRadius: \"50%\",\r\n border: \"1px solid rgba(142, 152, 171, 0.3)\",\r\n }}\r\n /> */}\r\n\r\n <IcHighlightCircleTransparent />\r\n </Stack>\r\n );\r\n })}\r\n {borderColors.map((color, i) => {\r\n return (\r\n <Stack\r\n key={i + 1}\r\n height={\"24px\"}\r\n width={\"24px\"}\r\n borderRadius={\"50%\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"center\"}\r\n sx={{\r\n border: `1px solid ${selectedColor.rgb === color.rgb\r\n ? \"rgba(0, 122, 255, 1)\"\r\n : \"transparent\"\r\n }`,\r\n cursor: \"pointer\",\r\n }}\r\n onClick={() => {\r\n setSelectedColor(color);\r\n }}\r\n >\r\n <Box\r\n sx={{\r\n background: color.rgb,\r\n width: \"90%\",\r\n height: \"90%\",\r\n borderRadius: \"50%\",\r\n border: \"1px solid rgba(142, 152, 171, 0.3)\",\r\n }}\r\n />\r\n </Stack>\r\n );\r\n })}\r\n </Stack>\r\n <Stack\r\n width={\"100%\"}\r\n direction={\"row\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"space-between\"}\r\n mt={\"14px\"}\r\n >\r\n <Typography fontSize={12} color={\"#18181B\"}>\r\n Custom Color\r\n </Typography>\r\n {(allCustomColors.length > 0 || editCustomColor) &&\r\n (editCustomColor ? (\r\n <Typography\r\n fontSize={12}\r\n sx={{\r\n color: \"#848382\",\r\n transition: \"all 0.2s ease\",\r\n cursor: \"pointer\",\r\n \"&:hover\": {\r\n color: color?.primaryColor,\r\n },\r\n }}\r\n onClick={() => setEditCustomColor(false)}\r\n >\r\n Done\r\n </Typography>\r\n ) : (\r\n <Typography\r\n fontSize={12}\r\n sx={{\r\n color: \"#848382\",\r\n transition: \"all 0.2s ease\",\r\n cursor: \"pointer\",\r\n \"&:hover\": {\r\n color: color?.primaryColor,\r\n },\r\n }}\r\n onClick={() => setEditCustomColor(true)}\r\n >\r\n Edit\r\n </Typography>\r\n ))}\r\n </Stack>\r\n <Stack\r\n mt={\"5px\"}\r\n direction={\"row\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"flex-start\"}\r\n gap={\"3px\"}\r\n flexWrap={\"wrap\"}\r\n width={\"100%\"}\r\n >\r\n <Stack\r\n height={\"24px\"}\r\n width={\"24px\"}\r\n borderRadius={\"50%\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"center\"}\r\n sx={{\r\n cursor: \"pointer\",\r\n }}\r\n onClick={handleClick}\r\n >\r\n <IcPlusCircleOutlined height=\"22\" width=\"22\" fill=\"#848382\" />\r\n </Stack>\r\n\r\n {allCustomColors.map((color, i) => {\r\n return (\r\n <Stack\r\n key={i + 1}\r\n height={\"24px\"}\r\n width={\"24px\"}\r\n borderRadius={\"50%\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"center\"}\r\n sx={{\r\n position: \"relative\",\r\n border: `1px solid ${toRgba(selectedColor.rgb, 1) === toRgba(color.rgb, 1)\r\n ? \"rgba(0, 122, 255, 1)\"\r\n : \"transparent\"\r\n }`,\r\n cursor: \"pointer\",\r\n }}\r\n onClick={() => {\r\n setSelectedColor(color);\r\n }}\r\n >\r\n <Box\r\n borderRadius={\"50%\"}\r\n sx={{\r\n width: \"90%\",\r\n height: \"90%\",\r\n bgcolor: color.rgb,\r\n }}\r\n ></Box>\r\n {editCustomColor && (\r\n <Stack\r\n alignItems={\"center\"}\r\n justifyContent={\"center\"}\r\n height={\"10px\"}\r\n width={\"10px\"}\r\n borderRadius={\"50%\"}\r\n sx={{\r\n position: \"absolute\",\r\n right: \"-4px\",\r\n top: \"-4px\",\r\n bgcolor: \"#FFF\",\r\n boxShadow: \"0px 3px 6px 0px #11192829\",\r\n zIndex: 10,\r\n cursor: \"pointer\",\r\n }}\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n setAllCustomColors((prev) => {\r\n const updatedColors = prev.filter(\r\n (_, ci) => ci !== i\r\n );\r\n\r\n localStorage.setItem(\r\n \"customColors\",\r\n JSON.stringify(updatedColors)\r\n );\r\n\r\n return updatedColors;\r\n });\r\n }}\r\n >\r\n <IcCloseThin height=\"7\" width=\"7\" fill=\"#0F0F0F\" />\r\n </Stack>\r\n )}\r\n </Stack>\r\n );\r\n })}\r\n </Stack>\r\n </Stack>\r\n </Stack>\r\n </Stack>\r\n\r\n {CustomColorPopover}\r\n </>\r\n );\r\n};\r\n\r\nexport default BackgroundTool;\r\n\r\nconst borderTransparentColors = [\r\n {\r\n rgb: \"rgba(0, 0, 0, 1)\",\r\n r: 0,\r\n g: 0,\r\n b: 0,\r\n a: 0,\r\n },\r\n];\r\n\r\nconst borderColors = [\r\n {\r\n rgb: \"rgba(255, 255, 255, 1)\",\r\n r: 255,\r\n g: 255,\r\n b: 255,\r\n a: 1,\r\n },\r\n {\r\n rgb: \"rgba(142, 152, 171, 1)\",\r\n r: 142,\r\n g: 152,\r\n b: 171,\r\n a: 1,\r\n },\r\n {\r\n rgb: \"rgba(3, 11, 22, 1)\",\r\n r: 3,\r\n g: 11,\r\n b: 22,\r\n a: 1,\r\n },\r\n {\r\n rgb: \"rgba(65, 215, 251, 1)\",\r\n r: 65,\r\n g: 215,\r\n b: 251,\r\n a: 1,\r\n },\r\n {\r\n rgb: \"rgba(183, 136, 114, 1)\",\r\n r: 183,\r\n g: 136,\r\n b: 114,\r\n a: 1,\r\n },\r\n {\r\n rgb: \"rgba(255, 205, 153, 1)\",\r\n r: 255,\r\n g: 205,\r\n b: 153,\r\n a: 1,\r\n },\r\n {\r\n rgb: \"rgba(245, 220, 78, 1)\",\r\n r: 245,\r\n g: 220,\r\n b: 78,\r\n a: 1,\r\n },\r\n {\r\n rgb: \"rgba(85, 243, 188, 1)\",\r\n r: 85,\r\n g: 243,\r\n b: 188,\r\n a: 1,\r\n },\r\n {\r\n rgb: \"rgba(173, 220, 255, 1)\",\r\n r: 173,\r\n g: 220,\r\n b: 255,\r\n a: 1,\r\n },\r\n {\r\n rgb: \"rgba(248, 196, 237, 1)\",\r\n r: 248,\r\n g: 196,\r\n b: 237,\r\n a: 1,\r\n },\r\n {\r\n rgb: \"rgba(236, 72, 153, 1)\",\r\n r: 236,\r\n g: 72,\r\n b: 153,\r\n a: 1,\r\n },\r\n {\r\n rgb: \"rgba(244, 63, 94, 1)\",\r\n r: 244,\r\n g: 63,\r\n b: 94,\r\n a: 1,\r\n },\r\n {\r\n rgb: \"rgba(139, 92, 246, 1)\",\r\n r: 139,\r\n g: 92,\r\n b: 246,\r\n a: 1,\r\n },\r\n {\r\n rgb: \"rgba(0, 150, 242, 1)\",\r\n r: 0,\r\n g: 150,\r\n b: 242,\r\n a: 1,\r\n },\r\n {\r\n rgb: \"rgba(246, 154, 24, 1)\",\r\n r: 246,\r\n g: 154,\r\n b: 24,\r\n a: 1,\r\n },\r\n {\r\n rgb: \"rgba(249, 115, 22, 1)\",\r\n r: 249,\r\n g: 115,\r\n b: 22,\r\n a: 1,\r\n },\r\n {\r\n rgb: \"rgba(250, 204, 21, 1)\",\r\n r: 250,\r\n g: 204,\r\n b: 21,\r\n a: 1,\r\n },\r\n {\r\n rgb: \"rgba(16, 185, 129, 1)\",\r\n r: 16,\r\n g: 185,\r\n b: 129,\r\n a: 1,\r\n },\r\n {\r\n rgb: \"rgba(14, 165, 233, 1)\",\r\n r: 14,\r\n g: 165,\r\n b: 233,\r\n a: 1,\r\n },\r\n {\r\n rgb: \"rgba(238, 73, 214, 1)\",\r\n r: 238,\r\n g: 73,\r\n b: 214,\r\n a: 1,\r\n },\r\n];\r\n","import React, { useEffect, useMemo, useState } from \"react\";\r\nimport { Box, Popover, Slider, Stack, Typography } from \"@mui/material\";\r\nimport { AlphaPicker } from \"react-color\";\r\nimport ColorPicker from \"react-best-gradient-color-picker\";\r\nimport { useReactFlow } from \"reactflow\";\r\nimport CustomSwitch from \"../../../../../common-components/CustomSwitch\";\r\nimport {\r\n IcCloseThin,\r\n IcPlusCircleOutlined,\r\n} from \"../../../../../assets/icon-components\";\r\nimport { useLocation, useParams } from \"react-router-dom\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport {\r\n parseRGBColor,\r\n updateJson,\r\n} from \"../../../../../CommanFunctions/commanFunctions\";\r\nimport { useUndoRedo } from \"../../../../DrawBoard/dndUndoRedo/UndoRedoProvider\";\r\nimport { debounce } from \"lodash\";\r\nimport { color } from \"../../../../../Utils/style/color/color\";\r\n\r\nconst getColorString = ({ r, g, b, a = 1 }) => `rgba(${r}, ${g}, ${b}, ${a})`;\r\n\r\nconst BorderTool = ({\r\n node,\r\n showOnlyBorderColor = false,\r\n onBorderColorChange,\r\n}) => {\r\n const { setNodes, getNodes } = useReactFlow();\r\n const [selectedColor, setSelectedColor] = useState({\r\n rgb: \"rgba(3, 11, 22, 1)\",\r\n r: 3,\r\n g: 11,\r\n b: 22,\r\n a: 1,\r\n });\r\n const location = useLocation();\r\n const { id } = useParams();\r\n const dispatch = useDispatch();\r\n const { undo, takeSnapshot } = useUndoRedo();\r\n const user_data = localStorage.getItem(\"user_data\");\r\n const [allCustomColors, setAllCustomColors] = useState([]);\r\n const [anchorEl, setAnchorEl] = useState(null);\r\n const [customColor, setCustomColor] = useState(null);\r\n const [editCustomColor, setEditCustomColor] = useState(false);\r\n\r\n const open = Boolean(anchorEl);\r\n const popoverId = open ? \"simple-popover\" : undefined;\r\n\r\n useEffect(() => {\r\n if (!open && customColor !== null) {\r\n const { r, g, b } = parseRGBColor(customColor);\r\n setAllCustomColors((prev) => {\r\n const updatedColors = [\r\n {\r\n rgb: customColor,\r\n r,\r\n g,\r\n b,\r\n a: 1,\r\n },\r\n ...prev,\r\n ];\r\n\r\n localStorage.setItem(\"customColors\", JSON.stringify(updatedColors));\r\n\r\n return updatedColors;\r\n });\r\n setCustomColor(null);\r\n }\r\n }, [customColor, open]);\r\n\r\n useEffect(() => {\r\n const localCustomColors = localStorage.getItem(\"customColors\");\r\n\r\n if (localCustomColors && localCustomColors !== null) {\r\n const parsedCustomColors = JSON.parse(localCustomColors);\r\n setAllCustomColors(parsedCustomColors);\r\n }\r\n }, []);\r\n\r\n const updateNodeBorderColor = (node, selectedColor) => {\r\n const newColor = getColorString(selectedColor);\r\n const { a } = selectedColor;\r\n if (onBorderColorChange) {\r\n onBorderColorChange(newColor);\r\n } else {\r\n let updatedNodes = getNodes();\r\n let updatedNode;\r\n setNodes((nodes) => {\r\n updatedNodes = nodes.map((nd) => {\r\n if (nd.id === node.id) {\r\n updatedNode = {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n border: {\r\n ...nd.data.border,\r\n borderColor: newColor,\r\n opacity: a,\r\n },\r\n },\r\n };\r\n return updatedNode;\r\n }\r\n return nd;\r\n });\r\n return updatedNodes;\r\n });\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n 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 }\r\n };\r\n\r\n const updateNodeBorderThickness = (node, thickness) => {\r\n let updatedNodes = getNodes();\r\n let updatedNode;\r\n setNodes((nodes) => {\r\n updatedNodes = nodes.map((nd) => {\r\n if (nd.id === node.id) {\r\n updatedNode = {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n border: {\r\n ...nd.data.border,\r\n width: thickness,\r\n },\r\n },\r\n };\r\n return updatedNode;\r\n }\r\n return nd;\r\n });\r\n return updatedNodes;\r\n });\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n 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 };\r\n\r\n const updateNodeBorderStyle = (node, style) => {\r\n let updatedNodes = getNodes();\r\n let updatedNode;\r\n setNodes((nodes) => {\r\n updatedNodes = nodes.map((nd) => {\r\n if (nd.id === node.id) {\r\n updatedNode = {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n border: {\r\n ...nd.data.border,\r\n type: style,\r\n },\r\n },\r\n };\r\n return updatedNode;\r\n }\r\n return nd;\r\n });\r\n return updatedNodes;\r\n });\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n 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 };\r\n\r\n useEffect(() => {\r\n if (node.type === \"shapeTable\") {\r\n setSelectedColor({\r\n ...selectedColor,\r\n rgb: node?.data?.tableData?.borderColor,\r\n });\r\n } else if (\r\n node.type !== \"group\" &&\r\n node.data.showBorder &&\r\n selectedColor.rgb !== node.data.border.borderColor\r\n ) {\r\n setSelectedColor({\r\n ...selectedColor,\r\n rgb: node.data.border.borderColor,\r\n });\r\n } else if (\r\n node.type === \"group\" &&\r\n selectedColor.rgb !== node.data.borderColor\r\n ) {\r\n const { r, g, b, a } = parseRGBColor(node?.data?.borderColor || \"rgba(3, 11, 22, 1)\");\r\n setSelectedColor({\r\n ...selectedColor,\r\n rgb: node.data.borderColor,\r\n r,\r\n g,\r\n b,\r\n a,\r\n });\r\n }\r\n }, [node, selectedColor]);\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n const handleClick = (event) => {\r\n event.stopPropagation();\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n return (\r\n <>\r\n <Stack\r\n sx={{\r\n p: \"14px\",\r\n borderRadius: \"10px\",\r\n boxShadow: \"0px 2px 8px 0px #030B160D\",\r\n border: \"1px solid #EEEEEE\",\r\n width: \"300px\",\r\n }}\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n }}\r\n >\r\n {node.type !== \"group\" && !showOnlyBorderColor && (\r\n <Stack\r\n width={\"100%\"}\r\n direction={\"row\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"space-between\"}\r\n gap={\"25px\"}\r\n flexWrap={\"wrap\"}\r\n >\r\n <Typography fontSize={12} color={\"#282828\"} height={\"16px\"}>\r\n Show Border\r\n </Typography>\r\n <CustomSwitch\r\n checked={node.data.showBorder}\r\n onChange={(value) => {\r\n let updatedNodes = getNodes();\r\n let updatedNode;\r\n setNodes((nodes) => {\r\n updatedNodes = nodes.map((nd) => {\r\n if (nd.id === node.id) {\r\n updatedNode = {\r\n ...nd,\r\n data: { ...nd.data, showBorder: value },\r\n };\r\n return updatedNode;\r\n }\r\n return nd;\r\n });\r\n return updatedNodes;\r\n });\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n 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 }}\r\n />\r\n </Stack>\r\n )}\r\n <Stack\r\n sx={{\r\n visibility:\r\n node.data.showBorder ||\r\n showOnlyBorderColor ||\r\n node.type === \"group\"\r\n ? \"visible\"\r\n : \"hidden\",\r\n opacity:\r\n node.data.showBorder ||\r\n showOnlyBorderColor ||\r\n node.type === \"group\"\r\n ? 1\r\n : 0,\r\n maxHeight:\r\n node.data.showBorder ||\r\n showOnlyBorderColor ||\r\n node.type === \"group\"\r\n ? \"350px\"\r\n : \"0px\",\r\n transition: \"max-height 0.3s ease, visibility 0.4s, opacity 0.4s\",\r\n }}\r\n >\r\n {!showOnlyBorderColor && node.type !== \"group\" && (\r\n <Stack mt={\"18px\"}>\r\n <Typography fontSize={12} color={\"#282828\"} height={\"16px\"}>\r\n Border Style\r\n </Typography>\r\n <Stack\r\n mt={\"8px\"}\r\n bgcolor={\"#F5F5F5\"}\r\n height={\"30px\"}\r\n borderRadius={\"4px\"}\r\n direction={\"row\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"space-between\"}\r\n px={\"2px\"}\r\n >\r\n <Stack\r\n alignItems={\"center\"}\r\n justifyContent={\"center\"}\r\n height={\"26px\"}\r\n borderRadius={\"4px\"}\r\n width={\"calc(33.33% - 5px)\"}\r\n sx={{\r\n boxShadow:\r\n node?.data?.border?.type === \"solid\"\r\n ? \"0px 2px 4px 0px #0000001A\"\r\n : \"none\",\r\n background:\r\n node?.data?.border?.type === \"solid\"\r\n ? \"#FFFFFF\"\r\n : \"transparent\",\r\n cursor: \"pointer\",\r\n transition: \"all 0.3s\",\r\n }}\r\n onClick={() => updateNodeBorderStyle(node, \"solid\")}\r\n >\r\n <Box\r\n sx={{\r\n width: \"40px\",\r\n borderTop: \"3px solid #18181B\",\r\n }}\r\n />\r\n </Stack>\r\n <Stack\r\n alignItems={\"center\"}\r\n justifyContent={\"center\"}\r\n height={\"26px\"}\r\n borderRadius={\"4px\"}\r\n width={\"calc(33.33% - 5px)\"}\r\n sx={{\r\n boxShadow:\r\n node?.data?.border?.type === \"dashed\"\r\n ? \"0px 2px 4px 0px #0000001A\"\r\n : \"none\",\r\n background:\r\n node?.data?.border?.type === \"dashed\"\r\n ? \"#FFFFFF\"\r\n : \"transparent\",\r\n cursor: \"pointer\",\r\n transition: \"all 0.3s\",\r\n }}\r\n onClick={() => updateNodeBorderStyle(node, \"dashed\")}\r\n >\r\n <Box\r\n sx={{\r\n width: \"40px\",\r\n borderTop: \"3px dashed #18181B\",\r\n }}\r\n />\r\n </Stack>\r\n <Stack\r\n alignItems={\"center\"}\r\n justifyContent={\"center\"}\r\n height={\"26px\"}\r\n borderRadius={\"4px\"}\r\n width={\"calc(33.33% - 5px)\"}\r\n sx={{\r\n boxShadow:\r\n node?.data?.border?.type === \"dotted\"\r\n ? \"0px 2px 4px 0px #0000001A\"\r\n : \"none\",\r\n background:\r\n node?.data?.border?.type === \"dotted\"\r\n ? \"#FFFFFF\"\r\n : \"transparent\",\r\n cursor: \"pointer\",\r\n transition: \"all 0.3s\",\r\n }}\r\n onClick={() => updateNodeBorderStyle(node, \"dotted\")}\r\n >\r\n <Box\r\n sx={{\r\n width: \"40px\",\r\n borderTop: \"3px dotted #18181B\",\r\n }}\r\n />\r\n </Stack>\r\n </Stack>\r\n </Stack>\r\n )}\r\n <Stack mt={node.type !== \"group\" ? \"18px\" : \"0px\"}>\r\n {!showOnlyBorderColor && node.type !== \"group\" && (\r\n <>\r\n <Stack\r\n width={\"100%\"}\r\n direction={\"row\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"space-between\"}\r\n mb={\"9px\"}\r\n >\r\n <Typography fontSize={12} color={\"#18181B\"}>\r\n Thickness\r\n </Typography>\r\n <Stack\r\n direction={\"row\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"flex-end\"}\r\n gap={\"8px\"}\r\n >\r\n <Typography fontSize={12} color={\"#18181B\"}>\r\n {node?.data?.border?.width}\r\n </Typography>\r\n </Stack>\r\n </Stack>\r\n <Stack width={\"100%\"}>\r\n <Slider\r\n size=\"small\"\r\n aria-label=\"Small\"\r\n valueLabelDisplay=\"off\"\r\n max={10}\r\n min={1}\r\n value={node?.data?.border?.width}\r\n sx={{\r\n height: \"3px\",\r\n color: color?.primaryColor,\r\n \"& .MuiSlider-rail\": {\r\n background: \"#3C3C432E\",\r\n opacity: 1,\r\n },\r\n \"& .MuiSlider-thumb\": {\r\n \"&:hover\": {\r\n boxShadow: \"0px 0px 0px 5px rgba(25, 118, 210, 0.16)\",\r\n },\r\n \"&:active\": {\r\n boxShadow: \"0px 0px 0px 5px rgba(25, 118, 210, 0.16)\",\r\n },\r\n },\r\n }}\r\n onChange={(e, value) => {\r\n updateNodeBorderThickness(node, value);\r\n }}\r\n />\r\n </Stack>\r\n </>\r\n )}\r\n <Stack\r\n width={\"100%\"}\r\n direction={\"row\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"space-between\"}\r\n mt={node.type !== \"group\" ? \"10px\" : \"0px\"}\r\n >\r\n <Typography fontSize={12} color={\"#18181B\"}>\r\n Opacity\r\n </Typography>\r\n <Typography fontSize={12} color={\"#18181B\"}>\r\n {Math.round(selectedColor?.a * 100)}%\r\n </Typography>\r\n </Stack>\r\n <Stack\r\n mt={\"9px\"}\r\n width={\"100%\"}\r\n position={\"relative\"}\r\n sx={{\r\n \"& .alpha-picker\": {\r\n borderRadius: \"100px\",\r\n overflow: \"hidden\",\r\n\r\n \"& div\": {\r\n \"& div:nth-of-type(3)\": {\r\n \"& div\": {\r\n \"& div\": {\r\n width: \"11px !important\",\r\n height: \"11px !important\",\r\n transform: \"translate(-6px, 0px) !important\",\r\n border: \"2px solid #FFFFFF !important\",\r\n boxShadow: \"0px 0px 5.7px 0px #28282859 !important\",\r\n background: \"transparent !important\",\r\n },\r\n },\r\n },\r\n },\r\n },\r\n }}\r\n >\r\n <AlphaPicker\r\n height=\"11px\"\r\n width=\"100%\"\r\n color={{\r\n r: selectedColor.r,\r\n g: selectedColor.g,\r\n b: selectedColor.b,\r\n a: selectedColor.a,\r\n }}\r\n onChange={(value) => {\r\n setSelectedColor({\r\n ...selectedColor,\r\n a: value.rgb.a,\r\n });\r\n updateNodeBorderColor(node, {\r\n ...selectedColor,\r\n a: value.rgb.a,\r\n });\r\n }}\r\n />\r\n </Stack>\r\n <Stack\r\n mt={\"14px\"}\r\n sx={{\r\n maxHeight: \"172px\",\r\n overflow: \"auto\",\r\n \"&::-webkit-scrollbar\": {\r\n width: \"0px !important\",\r\n },\r\n }}\r\n onWheelCapture={(e) => {\r\n e.stopPropagation();\r\n }}\r\n >\r\n <Stack\r\n width={\"100%\"}\r\n direction={\"row\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"space-between\"}\r\n >\r\n <Typography fontSize={12} color={\"#18181B\"}>\r\n Border Color\r\n </Typography>\r\n </Stack>\r\n <Stack\r\n mt={\"5px\"}\r\n direction={\"row\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"flex-start\"}\r\n gap={\"3px\"}\r\n flexWrap={\"wrap\"}\r\n width={\"100%\"}\r\n >\r\n {borderColors.map((color, i) => {\r\n return (\r\n <Stack\r\n key={i + 1}\r\n height={\"24px\"}\r\n width={\"24px\"}\r\n borderRadius={\"50%\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"center\"}\r\n sx={{\r\n border: `1px solid ${selectedColor.rgb === color.rgb\r\n ? \"rgba(0, 122, 255, 1)\"\r\n : \"transparent\"\r\n }`,\r\n cursor: \"pointer\",\r\n }}\r\n onClick={() => {\r\n setSelectedColor(color);\r\n updateNodeBorderColor(node, color);\r\n }}\r\n >\r\n <Box\r\n sx={{\r\n background: color.rgb,\r\n width: \"90%\",\r\n height: \"90%\",\r\n borderRadius: \"50%\",\r\n border: \"1px solid rgba(142, 152, 171, 0.3)\",\r\n }}\r\n />\r\n </Stack>\r\n );\r\n })}\r\n </Stack>\r\n <Stack\r\n width={\"100%\"}\r\n direction={\"row\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"space-between\"}\r\n mt={\"14px\"}\r\n >\r\n <Typography fontSize={12} color={\"#18181B\"}>\r\n Custom Color\r\n </Typography>\r\n {(allCustomColors.length > 0 || editCustomColor) &&\r\n (editCustomColor ? (\r\n <Typography\r\n fontSize={12}\r\n sx={{\r\n color: \"#848382\",\r\n transition: \"all 0.2s ease\",\r\n cursor: \"pointer\",\r\n \"&:hover\": {\r\n color: color?.primaryColor,\r\n },\r\n }}\r\n onClick={() => setEditCustomColor(false)}\r\n >\r\n Done\r\n </Typography>\r\n ) : (\r\n <Typography\r\n fontSize={12}\r\n sx={{\r\n color: \"#848382\",\r\n transition: \"all 0.2s ease\",\r\n cursor: \"pointer\",\r\n \"&:hover\": {\r\n color: color?.primaryColor,\r\n },\r\n }}\r\n onClick={() => setEditCustomColor(true)}\r\n >\r\n Edit\r\n </Typography>\r\n ))}\r\n </Stack>\r\n <Stack\r\n mt={\"5px\"}\r\n direction={\"row\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"flex-start\"}\r\n gap={\"3px\"}\r\n flexWrap={\"wrap\"}\r\n width={\"100%\"}\r\n >\r\n <Stack\r\n height={\"24px\"}\r\n width={\"24px\"}\r\n borderRadius={\"50%\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"center\"}\r\n sx={{\r\n cursor: \"pointer\",\r\n }}\r\n onClick={handleClick}\r\n >\r\n <IcPlusCircleOutlined height=\"22\" width=\"22\" fill=\"#848382\" />\r\n </Stack>\r\n\r\n {allCustomColors.map((color, i) => {\r\n return (\r\n <Stack\r\n key={i + 1}\r\n height={\"24px\"}\r\n width={\"24px\"}\r\n borderRadius={\"50%\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"center\"}\r\n sx={{\r\n position: \"relative\",\r\n border: `1px solid ${selectedColor.rgb === color.rgb\r\n ? \"rgba(0, 122, 255, 1)\"\r\n : \"transparent\"\r\n }`,\r\n cursor: \"pointer\",\r\n }}\r\n onClick={() => {\r\n setSelectedColor(color);\r\n updateNodeBorderColor(node, color);\r\n }}\r\n >\r\n {editCustomColor && (\r\n <Stack\r\n alignItems={\"center\"}\r\n justifyContent={\"center\"}\r\n height={\"10px\"}\r\n width={\"10px\"}\r\n sx={{\r\n borderRadius: \"50%\",\r\n background: \"#FFFFFF\",\r\n position: \"absolute\",\r\n cursor: \"pointer\",\r\n top: 0,\r\n right: 0,\r\n }}\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n setAllCustomColors((prev) => {\r\n const updatedColors = prev.filter(\r\n (_, ci) => ci !== i\r\n );\r\n\r\n localStorage.setItem(\r\n \"customColors\",\r\n JSON.stringify(updatedColors)\r\n );\r\n\r\n return updatedColors;\r\n });\r\n }}\r\n >\r\n <IcCloseThin height=\"8\" width=\"8\" fill=\"#848382\" />\r\n </Stack>\r\n )}\r\n <Box\r\n sx={{\r\n background: color.rgb,\r\n width: \"90%\",\r\n height: \"90%\",\r\n borderRadius: \"50%\",\r\n border: \"1px solid rgba(142, 152, 171, 0.3)\",\r\n }}\r\n />\r\n </Stack>\r\n );\r\n })}\r\n </Stack>\r\n </Stack>\r\n </Stack>\r\n </Stack>\r\n </Stack>\r\n\r\n <Popover\r\n id={popoverId}\r\n open={open}\r\n anchorEl={anchorEl}\r\n onClose={handleClose}\r\n anchorOrigin={{\r\n vertical: \"top\",\r\n horizontal: \"right\",\r\n }}\r\n sx={{\r\n \"& .MuiPaper-root\": {\r\n p: {\r\n xs: \"8px\",\r\n xl: \"10px\",\r\n },\r\n ml: \"-10px\",\r\n boxShadow: \"none\",\r\n bgcolor: \"transparent\",\r\n },\r\n }}\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n }}\r\n >\r\n <Stack\r\n sx={{\r\n boxShadow: \"0px 3px 8px 0px #030B1614\",\r\n border: \"1px solid #EFF0F3\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n p: \"5px\",\r\n bgcolor: \"#FFF\",\r\n borderRadius: \"6px\",\r\n gap: \"10px\",\r\n minWidth: \"205px\",\r\n fontSize: 12,\r\n }}\r\n >\r\n <ColorPicker\r\n width={260}\r\n height={240}\r\n value={customColor}\r\n onChange={(value) => {\r\n setCustomColor(value);\r\n }}\r\n hideOpacity\r\n hideGradientStop={true}\r\n hideAdvancedSliders={true}\r\n hideColorGuide={true}\r\n hideColorTypeBtns={true}\r\n hideControls={true}\r\n \r\n hidePresets={true}\r\n />\r\n </Stack>\r\n </Popover>\r\n </>\r\n );\r\n};\r\n\r\nexport default BorderTool;\r\n\r\nconst borderColors = [\r\n {\r\n rgb: \"rgba(255, 255, 255, 1)\",\r\n r: 255,\r\n g: 255,\r\n b: 255,\r\n a: 1,\r\n },\r\n {\r\n rgb: \"rgba(142, 152, 171, 1)\",\r\n r: 142,\r\n g: 152,\r\n b: 171,\r\n a: 1,\r\n },\r\n {\r\n rgb: \"rgba(3, 11, 22, 1)\",\r\n r: 3,\r\n g: 11,\r\n b: 22,\r\n a: 1,\r\n },\r\n {\r\n rgb: \"rgba(65, 215, 251, 1)\",\r\n r: 65,\r\n g: 215,\r\n b: 251,\r\n a: 1,\r\n },\r\n {\r\n rgb: \"rgba(183, 136, 114, 1)\",\r\n r: 183,\r\n g: 136,\r\n b: 114,\r\n a: 1,\r\n },\r\n {\r\n rgb: \"rgba(255, 205, 153, 1)\",\r\n r: 255,\r\n g: 205,\r\n b: 153,\r\n a: 1,\r\n },\r\n {\r\n rgb: \"rgba(245, 220, 78, 1)\",\r\n r: 245,\r\n g: 220,\r\n b: 78,\r\n a: 1,\r\n },\r\n {\r\n rgb: \"rgba(85, 243, 188, 1)\",\r\n r: 85,\r\n g: 243,\r\n b: 188,\r\n a: 1,\r\n },\r\n {\r\n rgb: \"rgba(173, 220, 255, 1)\",\r\n r: 173,\r\n g: 220,\r\n b: 255,\r\n a: 1,\r\n },\r\n {\r\n rgb: \"rgba(248, 196, 237, 1)\",\r\n r: 248,\r\n g: 196,\r\n b: 237,\r\n a: 1,\r\n },\r\n {\r\n rgb: \"rgba(236, 72, 153, 1)\",\r\n r: 236,\r\n g: 72,\r\n b: 153,\r\n a: 1,\r\n },\r\n {\r\n rgb: \"rgba(244, 63, 94, 1)\",\r\n r: 244,\r\n g: 63,\r\n b: 94,\r\n a: 1,\r\n },\r\n {\r\n rgb: \"rgba(139, 92, 246, 1)\",\r\n r: 139,\r\n g: 92,\r\n b: 246,\r\n a: 1,\r\n },\r\n {\r\n rgb: \"rgba(0, 150, 242, 1)\",\r\n r: 0,\r\n g: 150,\r\n b: 242,\r\n a: 1,\r\n },\r\n {\r\n rgb: \"rgba(246, 154, 24, 1)\",\r\n r: 246,\r\n g: 154,\r\n b: 24,\r\n a: 1,\r\n },\r\n {\r\n rgb: \"rgba(249, 115, 22, 1)\",\r\n r: 249,\r\n g: 115,\r\n b: 22,\r\n a: 1,\r\n },\r\n {\r\n rgb: \"rgba(250, 204, 21, 1)\",\r\n r: 250,\r\n g: 204,\r\n b: 21,\r\n a: 1,\r\n },\r\n {\r\n rgb: \"rgba(16, 185, 129, 1)\",\r\n r: 16,\r\n g: 185,\r\n b: 129,\r\n a: 1,\r\n },\r\n {\r\n rgb: \"rgba(14, 165, 233, 1)\",\r\n r: 14,\r\n g: 165,\r\n b: 233,\r\n a: 1,\r\n },\r\n {\r\n rgb: \"rgba(238, 73, 214, 1)\",\r\n r: 238,\r\n g: 73,\r\n b: 214,\r\n a: 1,\r\n },\r\n];\r\n","import React from \"react\";\r\nimport { Stack, TextField } from \"@mui/material\";\r\nimport { IcLinkOutlined3 } from \"../../../../../assets/icon-components\";\r\n\r\nconst LinkTool = ({\r\n onChange,\r\n type = \"text\",\r\n name = \"link-text\",\r\n value = \"\",\r\n placeholder = \"\",\r\n inputFontSize = 14,\r\n onKeyPress = () => {},\r\n height = 40,\r\n}) => {\r\n return (\r\n <>\r\n <Stack\r\n direction={\"row\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"center\"}\r\n sx={{\r\n p: \"6px\",\r\n borderRadius: \"10px\",\r\n boxShadow: \"0px 2px 8px 0px #030B160D\",\r\n border: \"1px solid #EEEEEE\",\r\n width: \"325px\",\r\n background: \"#FFF\",\r\n }}\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n }}\r\n >\r\n <Stack\r\n alignItems={\"center\"}\r\n justifyContent={\"center\"}\r\n sx={{\r\n height: \"36px\",\r\n width: \"36px\",\r\n borderRight: \"1px solid #EAECF0\",\r\n }}\r\n >\r\n <IcLinkOutlined3 />\r\n </Stack>\r\n <TextField\r\n fullWidth\r\n type={type}\r\n label=\"\"\r\n name={name}\r\n value={value}\r\n placeholder={placeholder}\r\n onKeyPress={onKeyPress}\r\n sx={{\r\n \"& .MuiOutlinedInput-input\": {\r\n border: \"none !important\",\r\n },\r\n input: {\r\n py: 0,\r\n fontSize: inputFontSize,\r\n height: `${Number(height) - 2}px !important`,\r\n borderColor: \"none !important\",\r\n color: \"#18181B !important\",\r\n \"&::placeholder\": {\r\n fontSize: \"13.5px !important\",\r\n color: \"#959BA3 !important\",\r\n opacity: 1,\r\n fontWeight: 400,\r\n },\r\n },\r\n \"& fieldset\": {\r\n display: \"none !important\",\r\n },\r\n }}\r\n onChange={onChange}\r\n />\r\n </Stack>\r\n </>\r\n );\r\n};\r\n\r\nexport default LinkTool;\r\n"],"names":["Extension","create","name","addOptions","types","addGlobalAttributes","this","options","attributes","fontSize","default","parseHTML","element","style","replace","renderHTML","concat","addCommands","setFontSize","_ref","chain","setMark","run","unsetFontSize","_ref2","removeEmptyTextStyle","AIOptionsToolbarItem","_editor$getText","_editor$getText$trim","_editor$getText2","_editor$getText2$trim","toggleToolbarItem","isActiveToolbarItem","editor","node","toolbarItemName","currentTextColor","onlybgColor","dispatch","useDispatch","setCenter","getZoom","getNodes","useReactFlow","aiLoading","setAILoading","useState","activeSubMenu","setActiveSubMenu","toggleSubMenuItem","subMenu","arguments","length","undefined","isActiveSubMenu","handleChangeContentWithAI","async","_editor$state","_editor$data","setEditable","commands","focus","state","selection","empty","selectAll","content","data","title","getHTML","getText","doc","textBetween","from","to","result","commanService","postApi","prompt","content_type","startsWith","endsWith","insertContentAt","setColor","error","_error$response2","_error$response2$data","_error$response$data3","response","status","warningToast","message","errorToast","_jsx","Box","onClick","e","stopPropagation","sx","height","width","children","CustomTooltip","mt","bg","PopperProps","disablePortal","onClose","open","disableFocusListener","disableHoverListener","disableTouchListener","Stack","minWidth","position","boxShadow","p","borderRadius","background","_jsxs","gap","direction","alignItems","justifyContent","px","cursor","transition","Ic3StarsColored","Typography","color","transform","IcArrowDown2","fill","overflow","top","left","changeToneData","map","tone","i","key","label","maxHeight","border","backgroundImage","backgroundOrigin","backgroundClip","pointerEvents","pr","onWheelCapture","translateData","translate","minHeight","documentTypesData","_node$data$editorHTML","_node$data","_node$data$editorHTML2","_node$data2","CustomPromptEvent","CustomEvent","detail","selectedNodeId","id","document","dispatchEvent","JSON","stringify","topic","removeHTMLTags","editorHTML","parent_context","DOMParser","parseFromString","querySelector","textContent","body","wordCount","innerHTML","trim","split","filter","word","textNode","Node","getId","type","backgroundColor","boundingClient","getNodesBoundingClient","x","y","_objectSpread","positionAbsolute","selected","isInitialContent","toString","maxPosition","borderStyle","catagory","editorState","isAutoFont","lastFontSize","provider","duration","zoom","GenAIResponse","nodes","edges","_error$response","_error$response$data","_error$response$data2","handleDocumentGeneration","marginRight","borderRight","ToolTipWithDisabled","placement","tooltipTitle","aiLoader","disabled","IconButton","display","padding","flexDirection","SimpleCircularProgress","size","loaderColor","loaderPathColor","Ic3StartsFill","TextColorToolbarItem","handleChangeTextColor","BackgroundTool","colorHeading","selectedNodeColor","toRgba","showOpacity","onChangeColor","bgcolor","IcTextColor","ml","outline","HighlightTextToolbarItem","setCurrentTextHighlightColor","currentTextHighlightColor","match","selectParentNode","toggleHighlight","IcFillColor","IcHighlightTransparent","ListTypesToolbarItem","textStyles","listType","lightPrimary","_","toggleBulletList","IcListOutlined","primaryColor","toggleOrderedList","IcNumberListOutlined","paddingRight","textAlignmentIcons","IcTextAlignLeft","center","IcTextAlignCenter","right","IcTextAlignRight","TextAlignmentToolbarItem","_node$data$style","_node$data2$style","_node$data3","_node$data3$style","_node$data4","_node$data4$style","_node$data5","_node$data5$style","setNodes","useParams","location","useLocation","undo","takeSnapshot","useUndoRedo","currentTextAlignment","textAlign","TextAlignmentIcon","includes","handleTextAlignmentChange","alignment","updateAttributes","setTextAlign","prevNodes","updatedNodes","prevNode","updateLocalStorage","architecture_json","lastEvent","userRowData","localStorage","getItem","userData","parse","a_id","URLSearchParams","search","get","updateJson","json","lastUpdatedBy","user_id","flexWrap","Object","keys","_Fragment","CommonDivider","my","margin","n","IcTextAlignItemCenter","IcTextAlignItemBottom","FontStyleToolbarItem","CustomNameTooltip","arrow","isBold","toggleBold","IcTextBold","isItalic","toggleItalic","IcTextItalic","isUnderline","toggleUnderline","IcTextUnderline","isStrikethrough","toggleStrike","IcTextStrickTrough","IcFontStyle","FontSizeToolbarItem","updateNodeFontsize","currentFontSize","fontSizeArr","Array","splittedFont","String","font","parseFloat","handleUpdateFontSize","debounce","val","fontWeight","titleDark","whiteColor","min","max","value","onChange","target","IcUpDownOutlined","FontFamilyToolbarItem","fontFamily","onMouseLeave","fontFamilyArr","family","setFontFamily","_n$data","updateFontFamily","CheckCircleOutlineIcon","whiteSpace","textOverflow","maxWidth","ContentTypeToolbarItem","contentTypeKeyMap","orderedList","text","bulletList","heading1","heading2","heading3","contentTypes","icon","IcPlainText","setParagraph","IcHeadingOne","toggleHeading","level","IcHeadingTwo","IcHeadingThree","paddingLeft","getSelectedContentType","selectedType","nodesBetween","attrs","BorderToolbarItem","_node$data$border","onBorderColorChange","BorderTool","FrameBorderToolbar","borderColor","BackgroundColorToolbarItem","_node$data19","_node$data19$style","_node$data20","_node$data20$style","_node$data21","_node$data21$style","_node$data22","_node$data22$style","_node$data23","_node$data23$style","boardRef","useSelector","drawboard","bgColorFromDon","useMemo","_node$data11","_node$data17","_node$data17$style","_node$data18","_node$data18$style","iconBg","_node$data12","_node$data12$style","_node$data13","_node$data13$style","_node$data15","_node$data15$style","nodeElement","_node$data14","_node$data14$style","_node$data16","_node$data16$style","_nodeElement$querySel17","_nodeElement$querySel18","_nodeElement$querySel19","_nodeElement$querySel20","_nodeElement$querySel21","_nodeElement$querySel22","_nodeElement$querySel23","_nodeElement$querySel24","_nodeElement$querySel25","_nodeElement$querySel26","_nodeElement$querySel27","_nodeElement$querySel28","_nodeElement$querySel29","_nodeElement$querySel30","_nodeElement$querySel31","_nodeElement$querySel32","querySelectorAll","getAttribute","FrameBackgroundToolbar","_node$data7","_node$data7$style","_node$data8","_node$data8$style","_node$data9","_node$data9$style","_node$data10","_node$data6","_node$data6$style","_nodeElement$querySel","_nodeElement$querySel2","_nodeElement$querySel3","_nodeElement$querySel4","_nodeElement$querySel5","_nodeElement$querySel6","_nodeElement$querySel7","_nodeElement$querySel8","_nodeElement$querySel9","_nodeElement$querySel10","_nodeElement$querySel11","_nodeElement$querySel12","_nodeElement$querySel13","_nodeElement$querySel14","_nodeElement$querySel15","_nodeElement$querySel16","test","isBackgroundTransparent","IcTransparentCircle","ShapesListToolbarItem","_ICONS$Icons","_Object$keys","selectedNodes","updateNodeInternals","useUpdateNodeInternals","generateIcon","omit","ICONS","shapes","Grid","container","item","_node$data$iconStyle","_node$data$iconType","IconComponent","xs","sm","md","commonHoverColor","_parsedData","nds","node1","user_data","parsedData","isFromSidebar","isScale","iconStyle","iconType","iconTypes","BORDERED","IcShapesOutlined2","IcDownArrow","StickyNoteTypesMenuItem","setIsResized","handleChangeStickyNotesType","_parsedData2","updatedNode","setItem","nd","variant","darkGray","setTimeout","setContent","IcSquareStickyOutline","editorIcon","IcRectangleStickyOutline","IcCircleStickyOutline","AuthorToolbarItem","showAuthor","toggleHideShow","_nd$data","IcHideShowAuthor","LockUnlockToolbarItem","_node$data$data","_node$data2$data","locked","_nd$data2","_nd$data3","_nd$data3$data","IcLockLocked","IcLockUnLocked","RenderToolbarMenuItems","toolbarItems","index","Component","props","showIf","ToolbarMenuItems","_node$data$style$font","_getNodes","_selectedNodes$data","updateFontSize","currFontSize","isSticky","simpleRef","floating","isShowTextToolbar","setCurrentTextColor","showFrameMoreOptions","setShowFrameMoreOptions","currentFontFamily","setCurrentFontFamily","activeToolbarItem","setActiveToolbarItem","setTextStyles","itemName","prev","useEffect","handleSelectedTextState","highlightAttrs","getMarkAttributes","colorAttrs","getAttributes","isFocused","useCallback","_prev$data","isResized","getNode","currentNode","find","updateTextStyles","_ref3","_fontFamilyArr$find$n","_fontFamilyArr$find","currentStyles","isActive","textColor","highlightColor","getCurrentStyles","currentColor","currentHighlightColor","on","off","frame","hideAllOPenDropdowns","addEventListener","removeEventListener","className","FrameMoreMenus","showCopyAsImage","showAddComment","showLockUnlock","showStyle","showDelete","showBringToFrontAndBack","showFrame","exportShow","showDuplicate","marginLeft","IcMenuDotsVertical","_ref4","_node$data24","updateFontfamily","isMultipleNodesSelected","NodeToolbar","isVisible","dragging","globalDragging","Position","Top","offset","getColorString","r","g","b","a","setCustomBgOpen","isEdge","setShowTextColor","selectedColor","setSelectedColor","rgb","allCustomColors","setAllCustomColors","anchorEl","setAnchorEl","customColor","setCustomColor","editCustomColor","setEditCustomColor","Boolean","popoverId","parseRGBColor","updatedColors","localCustomColors","parsedCustomColors","_node$data$style3","_node$data$style4","_node$data$style2","updateNodeBackground","newColor","_node$data$style5","isStopUpdate","initializeSelectedColor","handleClose","CustomColorPopover","Popover","anchorOrigin","vertical","horizontal","xl","preventDefault","ColorPicker","hideOpacity","hideGradientStop","hideAdvancedSliders","hideColorGuide","hideColorTypeBtns","hideControls","hidePresets","Math","round","mb","AlphaPicker","borderTransparentColors","IcHighlightCircleTransparent","borderColors","event","currentTarget","IcPlusCircleOutlined","zIndex","ci","IcCloseThin","_node$data3$border","_node$data4$border","_node$data5$border","_node$data6$border","_node$data7$border","_node$data8$border","_node$data9$border","_node$data10$border","showOnlyBorderColor","updateNodeBorderColor","opacity","updateNodeBorderStyle","_parsedData3","_node$data$tableData","tableData","showBorder","CustomSwitch","checked","_parsedData4","visibility","borderTop","Slider","valueLabelDisplay","updateNodeBorderThickness","thickness","placeholder","inputFontSize","onKeyPress","IcLinkOutlined3","TextField","fullWidth","input","py","Number"],"sourceRoot":""}