{"version":3,"file":"static/js/main-f540223c.5da48827.js","mappings":"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","sources":["Components/Node/Document/Components/TemplatesSelection.jsx","Components/Node/Document/Components/Extensions.js","Components/Node/Document/Components/CommandsList.jsx","Components/Node/Document/Components/CommandsSuggestion.js","Components/Node/Document/constant.js","Components/Node/Document/Components/DocumentLoadingSkeleton.jsx","Components/Node/Document/Components/ResizeControls.jsx","Components/Node/Document/Document.jsx","Components/Node/Document/index.js","Components/Node/EmojiPicker.jsx","Components/Node/ResizeLink.js"],"sourcesContent":["import { Box, Stack, Typography } from \"@mui/material\";\r\nimport { IcDocsOutlined } from \"../../../../assets/icon-components\";\r\n\r\nexport default function TemplatesSelection(props) {\r\n return (\r\n \r\n Choose a starting template\r\n \r\n \r\n {props.documentTemplatesData.map(template => props.handleCreateTemplate(template.content)}>\r\n \r\n {template.label}\r\n )}\r\n \r\n );\r\n}\r\n","import Suggestion from \"@tiptap/suggestion\"\r\nimport TiptapDocument from '@tiptap/extension-document'\r\nimport { Extension } from \"@tiptap/react\";\r\n\r\nexport const Commands = Extension.create({\r\n name: 'slashCommands',\r\n\r\n addOptions() {\r\n return {\r\n suggestion: {\r\n char: '/',\r\n command: ({ editor, range, props }) => {\r\n props.command({ editor, range })\r\n },\r\n },\r\n }\r\n },\r\n\r\n addProseMirrorPlugins() {\r\n return [\r\n Suggestion({\r\n editor: this.editor,\r\n ...this.options.suggestion,\r\n }),\r\n ]\r\n },\r\n})\r\n\r\nexport const CustomDocument = TiptapDocument.extend({\r\n content: 'heading paragraph block*',\r\n})\r\n\r\n","import { Stack, Typography } from \"@mui/material\"\r\nimport { forwardRef } from \"react\"\r\n\r\nexport default forwardRef((props, ref) => {\r\n return (\r\n \r\n {props.items.length\r\n ? props?.items?.map((item, index) => (\r\n props.command(item)}\r\n sx={{\r\n gap: \"10px\",\r\n padding: \"10px 20px\",\r\n borderRadius: \"8px\",\r\n cursor: 'pointer',\r\n \"&:hover\": {\r\n backgroundColor: \"#F5F5F5\",\r\n },\r\n }}\r\n >\r\n \r\n {item.title}\r\n \r\n ))\r\n : No result\r\n }\r\n \r\n )\r\n})","import { ReactRenderer } from \"@tiptap/react\";\r\nimport tippy from \"tippy.js\";\r\nimport CommandsList from \"./CommandsList\";\r\nimport { IcHeadingOne, IcHeadingThree, IcHeadingTwo, IcListOutlined, IcNumberListOutlined, IcPlainText } from \"../../../../assets/icon-components\";\r\n\r\nconst CommandsSuggestion = {\r\n items: ({ query }) => {\r\n return [\r\n {\r\n title: \"Plain Text\",\r\n icon: IcPlainText,\r\n command: ({ editor, range }) => {\r\n editor\r\n .chain()\r\n .focus()\r\n .deleteRange(range)\r\n .setParagraph()\r\n .run();\r\n }\r\n },\r\n {\r\n title: \"H1\",\r\n icon: IcHeadingOne,\r\n command: ({ editor, range }) => {\r\n editor\r\n .chain()\r\n .focus()\r\n .deleteRange(range)\r\n .setNode('heading', { level: 1 })\r\n .run();\r\n }\r\n },\r\n {\r\n title: \"H2\",\r\n icon: IcHeadingTwo,\r\n command: ({ editor, range }) => {\r\n editor\r\n .chain()\r\n .focus('end')\r\n .deleteRange(range)\r\n .setNode(\"heading\", { level: 2 })\r\n .run();\r\n }\r\n },\r\n {\r\n title: \"H3\",\r\n icon: IcHeadingThree,\r\n command: ({ editor, range }) => {\r\n editor\r\n .chain()\r\n .focus()\r\n .deleteRange(range)\r\n .setNode(\"heading\", { level: 3 })\r\n .run();\r\n }\r\n },\r\n {\r\n title: \"Numbered List\",\r\n icon: IcNumberListOutlined,\r\n command: ({ editor, range }) => {\r\n editor\r\n .chain()\r\n .focus()\r\n .deleteRange(range)\r\n .toggleOrderedList()\r\n .run();\r\n }\r\n },\r\n {\r\n title: \"Bullet List\",\r\n icon: IcListOutlined,\r\n command: ({ editor, range }) => {\r\n editor\r\n .chain()\r\n .focus()\r\n .deleteRange(range)\r\n .toggleBulletList()\r\n .run();\r\n\r\n }\r\n }\r\n ]\r\n },\r\n\r\n render: () => {\r\n let component\r\n let popup\r\n\r\n return {\r\n onStart: props => {\r\n component = new ReactRenderer(CommandsList, {\r\n props,\r\n editor: props.editor,\r\n })\r\n\r\n if (!props.clientRect) {\r\n return\r\n }\r\n\r\n popup = tippy('body', {\r\n getReferenceClientRect: props.clientRect,\r\n appendTo: () => document.body,\r\n content: component.element,\r\n showOnCreate: true,\r\n interactive: true,\r\n trigger: 'manual',\r\n placement: 'bottom-start',\r\n })\r\n },\r\n\r\n onUpdate(props) {\r\n component.updateProps(props)\r\n\r\n if (!props.clientRect) {\r\n return\r\n }\r\n\r\n popup[0].setProps({\r\n getReferenceClientRect: props.clientRect,\r\n })\r\n },\r\n\r\n onKeyDown(props) {\r\n if (props.event.key === 'Escape') {\r\n popup[0].hide()\r\n\r\n return true\r\n }\r\n\r\n return component.ref?.onKeyDown(props)\r\n },\r\n\r\n onExit() {\r\n popup[0].destroy()\r\n component.destroy()\r\n },\r\n }\r\n },\r\n}\r\n\r\nexport default CommandsSuggestion;","import Placeholder from \"@tiptap/extension-placeholder\";\r\nimport Color from \"@tiptap/extension-color\";\r\nimport TextStyle from \"@tiptap/extension-text-style\";\r\nimport StarterKit from \"@tiptap/starter-kit\";\r\nimport Underline from \"@tiptap/extension-underline\";\r\nimport Highlight from \"@tiptap/extension-highlight\";\r\nimport TextAlign from \"@tiptap/extension-text-align\";\r\nimport FontFamily from \"@tiptap/extension-font-family\";\r\nimport Link from \"@tiptap/extension-link\";\r\nimport FontSize from \"../../DrawBoard/tip-tap-editor/fontSize\";\r\nimport ListItem from \"@tiptap/extension-list-item\";\r\nimport { Commands, CustomDocument } from \"./Components/Extensions\";\r\nimport CommandsSuggestion from \"./Components/CommandsSuggestion\";\r\n\r\nexport const documentTemplatesData = [\r\n {\r\n label: \"Retrospective Summary\",\r\n key: \"retrospective\",\r\n prompt: \"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 content: `Retrospective Summary Document

Retrospective Summary

Discussion Summary

During the retrospective, team members shared their experiences and insights regarding the recent project. The focus was on understanding team dynamics and evaluating the effectiveness of processes. Through open dialogue, various perspectives were shared, leading to a richer understanding of the project challenges and triumphs.

Highlights of What Went Well

  1. Effective Collaboration:

    Team members worked well together, demonstrating strong communication and cooperation, which contributed to timely project completion.

  2. Adherence to Timelines:

    Key milestones were met as planned, ensuring the project stayed on track.

  3. Stakeholder Engagement:

    Stakeholders were actively involved throughout the project, providing valuable feedback that enhanced the overall outcomes.

Areas for Improvement

  1. Resource Allocation:

    There was a noticeable strain on resources in certain phases, leading to increased stress among team members.

  2. Documentation Practices:

    Improper documentation led to some confusion regarding project requirements and changes.

Ideas for Improvement

  1. Establish Clear Roles:

    Clearly defined roles and responsibilities can help in optimizing resource allocation and accountability.

  2. Implement Regular Check-ins:

    Frequent team meetings can encourage better communication and address any issues before they escalate.

  3. Enhance Documentation Training:

    Providing training sessions on effective documentation practices can help mitigate confusion in future projects.

Key Outcomes

  1. Successful Project Delivery:

    The project was delivered successfully within the deadline, meeting most of the initial objectives.

  2. Increased Team Morale:

    Despite challenges, the team demonstrated resilience and adaptability, resulting in a positive work environment.

Action Items

  1. Conduct a Resource Review:

    Evaluate current resource distribution and make necessary adjustments to prevent future strain.

  2. Set Up Documentation Guidelines:

    Create a clear set of documentation guidelines to aid team members in maintaining consistent records.

  3. Schedule Follow-up Meetings:

    Arrange bi-weekly follow-up meetings to monitor progress on implementing the discussed improvements.

Open Questions

  1. How can we better integrate stakeholder feedback into our development process?
  2. What specific tools can enhance our documentation practices?
  3. Are there training opportunities available for team development that we should consider?
`\r\n },\r\n {\r\n label: \"Product Brief\",\r\n key: \"product_brief\",\r\n prompt: \"Create a comprehensive product brief for a VR headset 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 content: `VR Headset Product Brief

VR Headset Product Brief

Executive Summary

This product brief outlines the development of a new VR headset aimed at addressing significant issues identified through user feedback and data analysis. The proposed headset incorporates advanced technology and user-friendly features to enhance the overall virtual reality experience, ensuring higher satisfaction and engagement rates among users.

Problem Statement

Users have reported several key issues with current VR headsets, including discomfort during prolonged use, inadequate visual quality, difficulty in setup, and limited content options. These problems hinder the potential of VR technology to provide immersive experiences that attract a wider audience.

Importance of Solving the Problem Now

The VR market is rapidly evolving with increasing competition. Addressing user feedback promptly is vital to not only retain current users but also attract new customers. Improving the headset's comfort, quality, and accessibility will position our product as a leading option in the market.

Data Points

  • Feedback Analysis: 75% of users reported discomfort after 30 minutes of use.
  • Market Surveys: 60% expressed dissatisfaction with current visual quality.
  • Setup Efficiency: 50% of users found setup processes overly complicated.
  • Content Engagement: Less than 40% of users engage with VR content regularly.

Opportunity

The current landscape indicates a substantial opportunity to innovate by creating a VR headset that prioritizes user comfort and low-friction usability. Enhanced visual fidelity and a broader content library could drastically increase customer satisfaction and market share.

Risks

  1. Technical Challenges: Innovating technology to meet user expectations may face unforeseen hurdles.
  2. Market Saturation: Increased competition may slow down our product uptake.
  3. Cost Management: Balancing advanced features with production costs could impact pricing strategy.

Target Audience

The primary target audience includes tech-savvy consumers aged 18-35, gamers seeking immersive experiences, and professionals in training environments that require VR technologies. Secondary audiences include educational institutions and healthcare organizations exploring innovative training solutions.

Definition of Done

The project will be considered complete when the VR headset meets the following criteria: comfort for prolonged use, resolution exceeding 4K per eye, user-friendly setup process, and a minimum library of 50 engaging content options at launch.

Success Metrics/OKRs

  1. User Satisfaction: Achieve a satisfaction rating of over 85% in user feedback surveys.
  2. Market Penetration: Target to capture at least 20% market share within the first year post-launch.
  3. Engagement Rates: Ensure at least 60% of users regularly engage with the VR content provided.
`\r\n },\r\n // {\r\n // label: \"Research Synthesis\",\r\n // key: \"research_synthesis\",\r\n // prompt: \"Create a research synthesis document for a new VR headset product 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: \"Create detailed meeting notes that include the meeting agenda, decisions taken, and action items with descriptions, assignees, and due dates.\",\r\n content: `Meeting Notes

Meeting Notes

Date: October 9, 2023

Participants: John, Emily, Sarah, Mike

Meeting Agenda

  1. Review of Q3 Performance:

    Discuss the performance metrics of the third quarter and identify areas for improvement.

  2. New Marketing Strategy:

    Present and evaluate the proposed marketing strategy for the upcoming quarter.

  3. Budget Allocation:

    Discuss and approve the budget allocation for various departments.

Decisions Taken

  1. Q3 Performance Review:

    It was decided to focus on enhancing customer engagement and increasing sales through targeted marketing efforts.

  2. Marketing Strategy:

    The new marketing strategy was approved with a focus on digital channels and social media outreach.

  3. Budget Approval:

    Budget allocation to the marketing department was increased by 15% to support the new strategy.

Action Items

  1. Action Item: Analyze Q3 Customer Feedback

    Description: Emily will compile customer feedback from Q3 performance to identify trends and insights.

    Assignee: Emily

    Due Date: October 20, 2023
  • Action Item: Develop Marketing Campaign

    Description: Sarah to develop a detailed plan for the new marketing campaign based on the approved strategy.

    Assignee: Sarah

    Due Date: October 30, 2023
  • Action Item: Budget Report

    Description: Mike to prepare a detailed report on the updated budget allocation and present it in the next meeting.

    Assignee: Mike

    Due Date: October 15, 2023
  • `\r\n }];\r\n\r\nexport const DocumentEditorExtensions = [\r\n CustomDocument,\r\n Color.configure({ types: [TextStyle.name, ListItem.name] }),\r\n TextStyle.configure({ types: [ListItem.name] }),\r\n Commands.configure({ suggestion: CommandsSuggestion }),\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 document: false,\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 FontFamily.configure({\r\n types: [\"textStyle\"],\r\n }),\r\n Link.configure({\r\n openOnClick: true,\r\n linkOnPaste: false,\r\n }),\r\n Placeholder.configure({\r\n placeholder: ({ pos, editor }) => {\r\n const editorHasContent = editor?.getText()?.trim()?.length\r\n if (pos === 0 && !editorHasContent) return \"Heading\";\r\n if (pos === 2 && !editorHasContent) return \"Press '/' for options or start writing\";\r\n return \"\"; // No placeholder for other nodes\r\n // return \"Press '/' for options or start writing\"\r\n },\r\n emptyEditorClass: 'is-empty',\r\n emptyNodeClass: 'is-empty',\r\n showOnlyCurrent: false,\r\n considerAnyAsEmpty: true,\r\n }),\r\n]","import { Skeleton, Stack } from \"@mui/material\";\r\n\r\nexport default function DocumentLoadingSkeleton({ loading = false }) {\r\n if (!loading) return null;\r\n return (\r\n \r\n \r\n \r\n );\r\n}","import React, { forwardRef, useEffect, useMemo, useRef } from \"react\";\r\nimport {\r\n NodeResizeControl,\r\n useReactFlow,\r\n useStore,\r\n useStoreApi,\r\n} from \"reactflow\";\r\nimport { updateJson } from \"../../../../CommanFunctions/commanFunctions\";\r\nimport { useLocation, useParams } from \"react-router-dom\";\r\nimport { Box } from \"@mui/material\";\r\nimport { useUndoRedo } from \"../../../DrawBoard/dndUndoRedo/UndoRedoProvider\";\r\nimport { getNodePositionInsideParent } from \"../../../../Utils/grouping-utils\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { color } from \"../../../../Utils/style/color/color\";\r\n\r\nconst ResizeControls = forwardRef(({ node, isNodeSelectionStarted }, ref) => {\r\n const location = useLocation();\r\n const { setNodes, getIntersectingNodes } = useReactFlow();\r\n\r\n const { undo, takeSnapshot } = useUndoRedo();\r\n const zoomPercentages = useRef(100);\r\n const store = useStoreApi();\r\n const dispatch = useDispatch();\r\n const { id } = useParams();\r\n\r\n const zoom = useStore((state) =>\r\n node?.selected && !isNodeSelectionStarted ? state?.transform?.[2] : 1\r\n );\r\n useEffect(() => {\r\n if (ref.current && !isNodeSelectionStarted) {\r\n zoomPercentages.current = zoom * 100;\r\n }\r\n }, [zoom]);\r\n\r\n const isWidthLessthan25 = zoomPercentages <= 25;\r\n const isWidthLessthan50 = 25 < zoomPercentages && zoomPercentages <= 50;\r\n const isWidthLessthan100 = 50 < zoomPercentages && zoomPercentages <= 100;\r\n\r\n const onResizeEnd = (event, node) => {\r\n let updatedNodes = [];\r\n const updatedNode = [];\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 setNodes((prev) => {\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: prev,\r\n // lastUpdatedBy: userData?.user_id,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n // Update the resized node\r\n updatedNodes = prev?.map((_) => {\r\n if (_?.id === node?.id) {\r\n _ = JSON.parse(JSON.stringify(_));\r\n _.style.width = Number(ref?.current?.offsetWidth || 0);\r\n _.style.height = Number(ref?.current?.offsetHeight || 0);\r\n return _;\r\n } else {\r\n return _;\r\n }\r\n });\r\n\r\n // Check for intersections and handle node placement\r\n updatedNodes = updatedNodes?.map((n) => {\r\n const intersections = getIntersectingNodes(node, false);\r\n\r\n let groupNode = null;\r\n if (intersections?.length > 0) {\r\n groupNode = intersections[intersections?.length - 1];\r\n }\r\n\r\n if (\r\n node.type !== \"group\" &&\r\n node?.parentNode &&\r\n node?.parentNode === groupNode?.id\r\n ) {\r\n // node drop in in same Group\r\n return n; // do nothing but do not delete\r\n } else if (\r\n intersections.length &&\r\n node?.parentNode !== groupNode?.id &&\r\n !node?.parentNode\r\n ) {\r\n /**.NODE DROP IN GROUP*/\r\n if (n.id === groupNode.id) {\r\n updatedNode.push({\r\n ...n,\r\n className: \"\",\r\n });\r\n return {\r\n ...n,\r\n className: \"\",\r\n };\r\n } else if (n.id === node.id && !n?.parentNode) {\r\n const position = getNodePositionInsideParent(n, groupNode) ?? {\r\n x: 0,\r\n y: 0,\r\n };\r\n updatedNode.push({\r\n ...n,\r\n position,\r\n parentNode: groupNode.id,\r\n // extent: 'parent',\r\n });\r\n return {\r\n ...n,\r\n position,\r\n parentNode: groupNode.id,\r\n // extent: 'parent',\r\n };\r\n } else return n;\r\n } else if (\r\n // node.type !== \"group\" &&\r\n node?.parentNode &&\r\n node?.parentNode !== groupNode?.id &&\r\n !groupNode\r\n ) {\r\n /** NODE DROP OUTSIDE */\r\n if ([node?.id].includes(n.id) && node?.parentNode) {\r\n const parentNode = store\r\n .getState()\r\n ?.nodeInternals?.get(node?.parentNode);\r\n if (parentNode) {\r\n let tempNode = {\r\n ...n,\r\n position: {\r\n x: n.position.x + (parentNode?.positionAbsolute?.x ?? 0),\r\n y: n.position.y + (parentNode?.positionAbsolute?.y ?? 0),\r\n },\r\n expandParent: undefined,\r\n parentNode: undefined,\r\n };\r\n updatedNode.push(tempNode);\r\n return tempNode;\r\n } else {\r\n return n;\r\n }\r\n } else {\r\n return n;\r\n }\r\n } else if (\r\n // node.type !== \"group\" &&\r\n node?.parentNode &&\r\n node?.parentNode !== groupNode?.id &&\r\n groupNode\r\n ) {\r\n /** NODE DIRECTLY DROP IN TO ONE GROUP TO ANOTHER GROUP*/\r\n if (n?.id === node?.id) {\r\n n = structuredClone(n);\r\n n.parentNode = groupNode?.id;\r\n n.position = {\r\n x:\r\n (node?.positionAbsolute?.x || 0) -\r\n (groupNode?.positionAbsolute?.x || 0),\r\n y:\r\n (node?.positionAbsolute?.y || 0) -\r\n (groupNode?.positionAbsolute?.y || 0),\r\n };\r\n updatedNode.push(n);\r\n return n;\r\n } else return n;\r\n } else {\r\n if (n?.type === \"group\") {\r\n // n.dragging = false;\r\n }\r\n return n; // DO NOTHING\r\n }\r\n });\r\n\r\n return updatedNodes;\r\n });\r\n\r\n // Call updateJson once\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n lastUpdatedBy: parsedData?.user_id,\r\n lastEvent: `editor_changed_${node?.id}`,\r\n },\r\n },\r\n id,\r\n dispatch,\r\n undo,\r\n a_id,\r\n takeSnapshot,\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n onResizeEnd(e, node)}\r\n style={{\r\n zIndex: 999999999999,\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid transparent\",\r\n }}\r\n >\r\n \r\n \r\n onResizeEnd(e, node)}\r\n style={{\r\n zIndex: 999999999999,\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid transparent\",\r\n }}\r\n >\r\n \r\n \r\n onResizeEnd(e, node)}\r\n style={{\r\n zIndex: 999999999999,\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid transparent\",\r\n }}\r\n >\r\n \r\n \r\n onResizeEnd(e, node)}\r\n style={{\r\n zIndex: 999999999999,\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid transparent\",\r\n }}\r\n >\r\n \r\n \r\n \r\n );\r\n});\r\n\r\nexport default React.memo(ResizeControls);\r\n","import \"./Document.scss\";\r\nimport React, { useEffect, useMemo, useRef, useState } from \"react\";\r\nimport { useReactFlow, useViewport } from \"reactflow\";\r\nimport { useLocation, useParams } from \"react-router-dom\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { EditorContent, useEditor } from \"@tiptap/react\";\r\nimport MindMapNodesToolbar from \"../common-components/nodeTopToolbar/MindMapNodesToolbar/MindMapNodesToolbar\";\r\nimport { debounce, updateJson } from \"../../../CommanFunctions/commanFunctions\";\r\n\r\nimport commanService from \"../../../CommanFunctions/commanService\";\r\nimport { omit } from \"lodash\";\r\nimport { useUndoRedo } from \"../../DrawBoard/dndUndoRedo/UndoRedoProvider\";\r\n\r\nimport TemplatesSelection from \"./Components/TemplatesSelection\";\r\nimport { DocumentEditorExtensions, documentTemplatesData } from \"./constant\";\r\nimport DocumentLoadingSkeleton from \"./Components/DocumentLoadingSkeleton\";\r\nimport ResizeControls from \"./Components/ResizeControls\";\r\nimport useNodeSelectionStarted from \"../../../Utils/hooks/useNodeSelectionStarted\";\r\nimport clsx from \"clsx\";\r\nimport { errorToast } from \"../../../Redux/toastSlice\";\r\nimport { color } from \"../../../Utils/style/color/color\";\r\n\r\nconst Document = (node) => {\r\n const dispatch = useDispatch();\r\n const location = useLocation();\r\n const { permission, showExport, copyAsImage } = useSelector(\r\n (state) => state?.mindMapStore\r\n );\r\n\r\n const { isNodeSelectionStarted } = useNodeSelectionStarted({\r\n selected: node?.selected,\r\n });\r\n const { setNodes, getNodes, getNode } = useReactFlow();\r\n\r\n const mainRef = useRef(null);\r\n const { id } = useParams();\r\n const userRowData = localStorage.getItem(\"user_data\");\r\n const userData = userRowData ? JSON.parse(userRowData) : {};\r\n\r\n const currentNode = getNode(node?.id);\r\n const { zoom } = useViewport();\r\n const sizeAsPerZoom = currentNode?.height * zoom || 100;\r\n const { undo } = useUndoRedo();\r\n\r\n const [loading, setLoading] = useState(false);\r\n\r\n const [tempFontSize, setTempFontSize] = useState(\r\n node?.data?.lastFontSize || \"10px\"\r\n );\r\n\r\n const selectedNodes = getNodes()?.filter((val) => val?.selected)?.length;\r\n\r\n const isMultiNodeSelected = selectedNodes > 1;\r\n\r\n const handleEditorCreateEvent = ({ editor }) => {\r\n if (!editor?.getText()?.trim()?.length) {\r\n editor.setEditable(true);\r\n editor.commands.focus();\r\n }\r\n };\r\n\r\n const handleEditorUpdateEvent = ({ editor }) => {\r\n debouncedUpdateHTML(editor?.getHTML());\r\n };\r\n\r\n const editor = useEditor({\r\n extensions: DocumentEditorExtensions,\r\n content: node?.data?.isInitialContent ? \"\" : node?.data?.editorHTML,\r\n autofocus: false,\r\n editable: false,\r\n onUpdate: handleEditorUpdateEvent,\r\n onCreate: handleEditorCreateEvent,\r\n editorProps: {\r\n handlePaste: (view, event) => {\r\n const pastedContent = event.clipboardData.getData(\"text/plain\");\r\n try {\r\n JSON.parse(pastedContent);\r\n // If it's valid JSON, prevent paste\r\n return true;\r\n } catch (e) {\r\n // If it's not valid JSON, allow paste\r\n return false;\r\n }\r\n },\r\n },\r\n });\r\n\r\n const debouncedUpdateHTML = useMemo(\r\n () =>\r\n debounce((value, lastFontSize) => {\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: getNodes(),\r\n // lastUpdatedBy: userData?.user_id,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n let updatedNode;\r\n const prev = getNodes()?.map((_) => {\r\n if (_?.id === node?.id) {\r\n _ = JSON.parse(JSON.stringify(_));\r\n _.data = {\r\n ...(_?.data || {}),\r\n editorHTML: value,\r\n ...(lastFontSize && { lastFontSize }),\r\n };\r\n\r\n updatedNode = _;\r\n return _;\r\n } else {\r\n return _;\r\n }\r\n });\r\n setNodes(prev);\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: prev,\r\n lastUpdatedBy: userData?.user_id,\r\n lastEvent: `editor_changed_${node?.id}`,\r\n },\r\n },\r\n id,\r\n dispatch,\r\n undo,\r\n a_id,\r\n });\r\n }, 500),\r\n [id, dispatch, undo, location.search]\r\n );\r\n\r\n const [typing, setTyping] = useState(node?.data?.isAiGenerated);\r\n\r\n const removeInitialContentFlag = (nodeId) => {\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n\r\n const updatedNodes = getNodes().map((n) => {\r\n if (n.id === nodeId) {\r\n return {\r\n ...n,\r\n data: omit(n?.data, \"isInitialContent\"),\r\n };\r\n }\r\n return n;\r\n });\r\n\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n // lastUpdatedBy: userData?.user_id,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n lastUpdatedBy: userData?.user_id,\r\n },\r\n },\r\n id,\r\n dispatch,\r\n undo,\r\n a_id,\r\n should_delete: updatedNodes?.length === 0,\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (!typing && !editor && !node?.data?.editorHTML) return;\r\n if (\r\n typing &&\r\n node?.data?.isInitialContent &&\r\n node?.data?.isAiGenerated &&\r\n editor\r\n ) {\r\n editor?.commands?.clearContent();\r\n let index = 0;\r\n let timeout = null;\r\n const textInsertDelay = 20;\r\n const textContent = node?.data?.editorHTML?.split(\" \");\r\n const typeText = () => {\r\n if (index < textContent.length) {\r\n editor\r\n ?.chain()\r\n ?.insertContent(textContent[index] + \" \")\r\n ?.run();\r\n index++;\r\n timeout = setTimeout(typeText, textInsertDelay);\r\n } else {\r\n editor?.commands?.setContent(node?.data?.editorHTML);\r\n clearTimeout(timeout);\r\n setTyping(false);\r\n setTimeout(() => {\r\n removeInitialContentFlag(node?.id);\r\n }, 3000);\r\n }\r\n };\r\n typeText();\r\n }\r\n }, [editor]);\r\n\r\n const handleCreateTemplate = async (content) => {\r\n try {\r\n setLoading(true);\r\n // let openAIResponse = await commanService.openAIApi(\r\n // prompt,\r\n // \"document_summary\",\r\n // false\r\n // );\r\n\r\n // let response = openAIResponse.data.data;\r\n\r\n const response = content;\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(response, \"text/html\");\r\n\r\n // Extract the content inside and <body>\r\n const body = doc.querySelector(\"body\") ? doc.querySelector(\"body\") : \"\";\r\n\r\n const documentContent = body.innerHTML.toString();\r\n\r\n setLoading(false);\r\n\r\n let index = 0;\r\n let timeout = null;\r\n const textInsertDelay = 10;\r\n const textContent = documentContent?.split(\" \");\r\n const typeText = () => {\r\n if (index < textContent.length) {\r\n editor\r\n ?.chain()\r\n ?.insertContent(textContent[index] + \" \")\r\n ?.run();\r\n index++;\r\n timeout = setTimeout(typeText, textInsertDelay);\r\n } else {\r\n clearTimeout(timeout);\r\n editor?.commands?.setContent(documentContent, true);\r\n }\r\n };\r\n typeText();\r\n } catch (error) {\r\n let message = error.message ?? \"Something went wrong. Please try again.\";\r\n if (process.env.REACT_APP_ENVIRONMENT === \"production\") {\r\n message = \"I'm sorry, but I can't assist with that. Please try again.\";\r\n } else if (error?.name === \"AxiosError\") {\r\n message = error?.response?.data?.message;\r\n }\r\n setLoading(false);\r\n dispatch(\r\n errorToast({\r\n message: message,\r\n })\r\n );\r\n } finally {\r\n setLoading(false);\r\n }\r\n };\r\n\r\n const clickCount = useRef(0);\r\n\r\n useEffect(() => {\r\n if (node.data.locked) return;\r\n if (!editor) return;\r\n if (!currentNode.selected) {\r\n editor.setEditable(false);\r\n clickCount.current = 0;\r\n window.getSelection().empty();\r\n }\r\n }, [currentNode.selected, editor]);\r\n\r\n const handleSingleClick = () => {\r\n if (node.data.locked) return;\r\n if (editor.isEditable && editor.isFocused) return;\r\n if (!node.selected) return;\r\n editor.setEditable(true);\r\n if (!editor.isFocused) {\r\n editor.commands.focus(\"end\");\r\n }\r\n };\r\n\r\n const handleDoubleClick = () => {\r\n if (node.data.locked) return;\r\n editor.setEditable(true);\r\n editor.commands.selectAll();\r\n };\r\n\r\n const stopEventPropagation = (event) => {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n };\r\n\r\n const editorHasContent = editor?.getText()?.trim()?.length;\r\n\r\n useEffect(() => {\r\n if (node.data.locked && editor) editor.setEditable(false);\r\n }, [node.data.locked, editor]);\r\n\r\n const shouldShowPlaceholder =\r\n !editor?.isEditable && !editor?.isFocused && !editor?.getText()?.trim();\r\n\r\n return (\r\n <>\r\n <div\r\n ref={mainRef}\r\n style={{\r\n height: \"100%\",\r\n width: \"100%\",\r\n position: \"relative\",\r\n zIndex: 9999999999999,\r\n pointerEvents: permission === \"can_edit\" ? \"all\" : \"none\",\r\n ...(node?.data?.style?.borderRadius === \"8px\" && {\r\n borderRadius: \"8px\",\r\n }),\r\n cursor: \"move\",\r\n ...omit(node?.data?.style, [\r\n \"borderStyle\",\r\n \"width\",\r\n \"background\",\r\n \"backgroundColor\",\r\n \"border\",\r\n ]),\r\n backgroundColor:\r\n node?.data?.style?.background &&\r\n node?.data?.style?.background !== \"transparent\"\r\n ? node?.data?.style?.background\r\n : \"#FFFFFF\",\r\n alignItems: node?.data?.style?.alignItems,\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n padding: \"15px\",\r\n // border:\r\n // node.selected && !showExport && !copyAsImage\r\n // ? `1px solid ${color?.primaryColor}`\r\n // : \"1px solid transparent\",\r\n // borderRadius: \"10px\",\r\n boxShadow:\r\n node.selected && !showExport && !copyAsImage\r\n ? `0px 0px 0px ${1.2 / zoom}px rgba(103,98,254,1)`\r\n : \"0 4px 8px 0 rgba(0, 0, 0, 0.1), 0 6px 20px 0 rgba(0, 0, 0, 0.1)\",\r\n }}\r\n className={clsx(\r\n \"StickyNoteEditor\",\r\n \"StickyNoteEditor-textArea\",\r\n \"texteditor\",\r\n \"Commonfonts\",\r\n {\r\n \"selection-none\": !node?.selected,\r\n nodrag: node?.data?.data?.locked,\r\n }\r\n )}\r\n onClick={handleSingleClick}\r\n onDoubleClick={handleDoubleClick}\r\n >\r\n {typing && <div className=\"border-animation\"></div>}\r\n {sizeAsPerZoom > 25 &&\r\n !node?.data?.locked &&\r\n node?.selected &&\r\n !showExport &&\r\n !copyAsImage &&\r\n !isNodeSelectionStarted && (\r\n <ResizeControls\r\n ref={mainRef}\r\n node={node}\r\n isNodeSelectionStarted={isNodeSelectionStarted}\r\n />\r\n )}\r\n\r\n <DocumentLoadingSkeleton loading={loading} />\r\n\r\n {node?.selected &&\r\n !isNodeSelectionStarted &&\r\n !isMultiNodeSelected &&\r\n !node.dragging && (\r\n <MindMapNodesToolbar\r\n editor={editor}\r\n node={node}\r\n updateFontSize={setTempFontSize}\r\n currFontSize={tempFontSize}\r\n simpleRef={mainRef}\r\n />\r\n )}\r\n\r\n {shouldShowPlaceholder && (\r\n <div className=\"documentPlaceholder\">\r\n <h1>Heading</h1>\r\n <p>Press '/' for options or start writing</p>\r\n </div>\r\n )}\r\n\r\n <EditorContent\r\n editor={editor}\r\n id={`tiptap-${node?.id}`}\r\n className={`Commonfonts documentEditor ${node?.data?.className}`}\r\n style={{\r\n cursor: editor?.isEditable ? \"text\" : \"grab\",\r\n width: \"100%\",\r\n pointerEvents: editor?.isFocused ? \"auto\" : \"none\",\r\n padding: \"0px 10px\",\r\n visibility: loading ? \"hidden\" : \"visible\",\r\n }}\r\n onClick={stopEventPropagation}\r\n onDoubleClick={stopEventPropagation}\r\n />\r\n\r\n {!loading && !editorHasContent && (\r\n <TemplatesSelection\r\n documentTemplatesData={documentTemplatesData}\r\n handleCreateTemplate={handleCreateTemplate}\r\n />\r\n )}\r\n </div>\r\n </>\r\n );\r\n};\r\n\r\nexport default React.memo(Document, (prevProps, nextProps) => {\r\n return prevProps.data.globalDragging && nextProps.data.globalDragging;\r\n});\r\n","import Document from './Document';\r\n\r\nexport default Document;","import React, { useEffect, useState } from \"react\";\r\nimport Picker from \"@emoji-mart/react\";\r\n\r\nconst EmojiPicker = ({ onEmojiClick }) => {\r\n const [emojiData, setEmojiData] = useState(null);\r\n\r\n useEffect(() => {\r\n if (window.EmojiMartAppleData) {\r\n setEmojiData(window.EmojiMartAppleData);\r\n } else {\r\n fetch(\r\n \"https://cdn.jsdelivr.net/npm/@emoji-mart/data@latest/sets/15/apple.json\"\r\n )\r\n .then((response) => response.json())\r\n .then((data) => setEmojiData(data))\r\n .catch((error) => console.error(\"Failed to load emoji data\", error));\r\n }\r\n }, []);\r\n return (\r\n <Picker\r\n data={emojiData}\r\n onEmojiSelect={(e) =>\r\n onEmojiClick({\r\n ...e,\r\n emoji: e.native,\r\n imageUrl: `https://cdn.jsdelivr.net/npm/emoji-datasource-apple/img/apple/64/${e.unified}.png`,\r\n })\r\n }\r\n set=\"apple\"\r\n emojiSize={30}\r\n />\r\n );\r\n};\r\n\r\nexport default EmojiPicker;\r\n","import React, { memo, useEffect, useMemo, useRef, useState } from \"react\";\r\nimport {\r\n Box,\r\n Stack,\r\n IconButton,\r\n Typography,\r\n CircularProgress,\r\n} from \"@mui/material\";\r\nimport {\r\n IcCardView,\r\n IcEditlink,\r\n IcEyeOpen,\r\n IcInfoOutlined,\r\n IcLinkOutlined3,\r\n IcLockLocked,\r\n IcLockUnLocked,\r\n IcMenuDotsVertical,\r\n IcNetwork,\r\n IcPreview,\r\n IcRedirectTo,\r\n IcSettingsOutlined,\r\n IcTextView,\r\n} from \"../../assets/icon-components\";\r\nimport { CustomTooltip } from \"../DrawBoard/top-toolbar/components/CustomTooltip\";\r\nimport {\r\n Position,\r\n NodeToolbar,\r\n useReactFlow,\r\n NodeResizeControl,\r\n useStore,\r\n NodeResizer,\r\n} from \"reactflow\";\r\nimport { CustomNameTooltip } from \"../DrawBoard/top-toolbar/components/CustomTooltip\";\r\nimport FrameMoreMenus from \"./frameNode/FrameMoreMenus\";\r\nimport SimpleCheckBox from \"../../common-components/SimpleCheckBox\";\r\nimport { useLocation, useParams } from \"react-router-dom\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { updateJson, validateUrl } from \"../../CommanFunctions/commanFunctions\";\r\nimport { useUndoRedo } from \"../DrawBoard/dndUndoRedo/UndoRedoProvider\";\r\nimport { useSocketContext } from \"../../Utils/hooks/useSocketContext\";\r\nimport { socketEvents } from \"../DrawBoard/const\";\r\nimport ToolTipWithDisabled from \"../DrawBoard/top-toolbar/components/ToolTipWithDisabled\";\r\nimport { useSelector } from \"react-redux\";\r\nimport useNodeSelectionStarted from \"../../Utils/hooks/useNodeSelectionStarted\";\r\nimport { color } from \"../../Utils/style/color/color\";\r\n\r\nfunction ResizeLink(node) {\r\n const { showExport, copyAsImage } = useSelector(\r\n (state) => state?.mindMapStore\r\n );\r\n\r\n const { isNodeSelectionStarted } = useNodeSelectionStarted({\r\n selected: node?.selected,\r\n });\r\n const { setNodes, getNodes, getNode } = useReactFlow();\r\n const mainRef = useRef(null);\r\n const cardRef = useRef(null);\r\n const editRef = useRef(null);\r\n const [error, setError] = useState(\"\");\r\n const [edit, setEdit] = useState(false);\r\n const currNode = getNode(node.id);\r\n const [showLinkMoreOptions, setShowLinkMoreOptions] = useState(false);\r\n const [showEditLink, setShowEditLink] = useState(false);\r\n const [iframeOverly, setIframeOverlay] = useState(true);\r\n const [showCardSettings, setShowCardSettings] = useState(false);\r\n const [zoomPercentages, setZoomPercentages] = useState(100);\r\n const [loading, setLoading] = useState(false);\r\n const [previewLoading, setPreviewLoading] = useState(false);\r\n const [isCapturing, setIsCapturing] = useState(false);\r\n const location = useLocation();\r\n const { id } = useParams();\r\n const dispatch = useDispatch();\r\n const clickTimeout = useRef(null);\r\n const { undo, takeSnapshot } = useUndoRedo();\r\n const user_data = localStorage.getItem(\"user_data\");\r\n const inputRef = useRef(null);\r\n const main = useRef(null);\r\n const { socket } = useSocketContext();\r\n const userRowData = localStorage.getItem(\"user_data\");\r\n const userData = userRowData ? JSON.parse(userRowData) : {};\r\n\r\n const handleIsCapturing = (toggleCapture) => {\r\n setIsCapturing(toggleCapture);\r\n };\r\n const onResizeEnd = () => {\r\n let updatedNodes = [];\r\n\r\n setNodes((prev) => {\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: prev,\r\n lastUpdatedBy: userData?.user_id,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n\r\n const newWidth = Number(mainRef?.current?.offsetWidth || 100);\r\n const newHeight = Number(mainRef?.current?.offsetHeight || 100);\r\n\r\n updatedNodes = prev?.map((_) => {\r\n if (_?.id === node?.id) {\r\n _ = JSON.parse(JSON.stringify(_));\r\n _.style.width = newWidth;\r\n _.style.height = newHeight;\r\n\r\n _.data.width = newWidth;\r\n _.data.height = newHeight;\r\n\r\n return _;\r\n } else {\r\n return _;\r\n }\r\n });\r\n\r\n return updatedNodes;\r\n });\r\n\r\n // Call updateJson once\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id,\r\n dispatch,\r\n undo,\r\n a_id,\r\n takeSnapshot,\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n setNodes((nodes) =>\r\n nodes.map((nd) => {\r\n if (nd.id === node.id) {\r\n nd = JSON.parse(JSON.stringify(nd));\r\n nd.style.width = Number(mainRef?.current?.offsetWidth || 300);\r\n nd.style.height = Number(mainRef?.current?.offsetHeight || 280);\r\n\r\n return {\r\n ...nd,\r\n };\r\n }\r\n return nd;\r\n })\r\n );\r\n }, [mainRef]);\r\n useEffect(() => {\r\n const timeout = setTimeout(() => {\r\n if (node?.data?.previewType !== \"normal\") {\r\n setNodes((nodes) =>\r\n nodes.map((nd) => {\r\n if (nd.id === node.id) {\r\n nd = JSON.parse(JSON.stringify(nd));\r\n nd.style.width = Number(mainRef?.current?.offsetWidth || 300);\r\n nd.style.height = Number(mainRef?.current?.offsetHeight || 280);\r\n\r\n return {\r\n ...nd,\r\n };\r\n }\r\n return nd;\r\n })\r\n );\r\n }\r\n }, 300);\r\n return () => clearTimeout(timeout);\r\n }, [mainRef, node?.data?.previewType]);\r\n\r\n function isImgUrl(url) {\r\n const img = new Image();\r\n img.src = url;\r\n return new Promise((resolve) => {\r\n img.onload = () => resolve(true);\r\n img.onerror = () => resolve(false);\r\n });\r\n }\r\n\r\n const handleEditClick = () => {\r\n if (!node?.data?.locked) {\r\n setShowEditLink(true);\r\n setEdit(true);\r\n setTimeout(() => {\r\n inputRef.current?.focus();\r\n inputRef.current.select();\r\n }, 0);\r\n }\r\n };\r\n\r\n const toggleLockUnlock = () => {\r\n let updatedNodes = getNodes();\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n let updatedNode;\r\n setNodes((nodes) => {\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes,\r\n lastUpdatedBy: parsedData?.user_id,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n updatedNodes = nodes.map((nd) => {\r\n if (nd.id === node.id) {\r\n updatedNode = {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n locked: !nd?.data?.locked,\r\n data: {\r\n ...(nd?.data?.data || {}),\r\n locked: !nd?.data?.data?.locked,\r\n },\r\n },\r\n };\r\n return updatedNode;\r\n }\r\n return nd;\r\n });\r\n return updatedNodes;\r\n });\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n 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 fetchMetaData = async (url) => {\r\n try {\r\n const response = await fetch(\r\n `https://api.linkpreview.net/?key=6e9053758e090b83d6a9d42e2c742113&q=${url}`\r\n );\r\n const data = await response.json();\r\n let imageRes = false;\r\n\r\n if (data.image) {\r\n imageRes = await isImgUrl(data.image);\r\n }\r\n\r\n const baseUrl = new URL(url).origin;\r\n const faviconUrl = `${baseUrl}/favicon.ico`;\r\n const isFaviconValid = await isImgUrl(faviconUrl);\r\n\r\n return {\r\n title: data?.title || \"Unable to Obtain Website Title\",\r\n description:\r\n data?.description === \"Invalid response status code (403)\"\r\n ? \"Unable to get website description information\"\r\n : data?.description,\r\n image: imageRes ? data?.image : \"\",\r\n favicon: isFaviconValid ? faviconUrl : data?.image, // Use verified favicon URL\r\n };\r\n } catch (error) {\r\n console.error(\"Error fetching metadata:\", error);\r\n return {\r\n title: \"Error\",\r\n description: \"Unable to fetch metadata\",\r\n image: \"\",\r\n favicon: \"\",\r\n };\r\n }\r\n };\r\n\r\n const handleFetchMetaData = async (e) => {\r\n e.stopPropagation();\r\n setLoading(true);\r\n if (e.key === \"Enter\") {\r\n const finalUrl = node?.data?.url.includes(\"http\")\r\n ? node?.data?.url\r\n : `https://${node?.data?.url}`;\r\n if (finalUrl && validateUrl(finalUrl)) {\r\n try {\r\n setError(\"\");\r\n const data = await fetchMetaData(finalUrl);\r\n\r\n let updatedNodes = [];\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n\r\n setNodes((prev) => {\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: prev,\r\n lastUpdatedBy: parsedData?.user_id,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n\r\n updatedNodes = prev?.map((_) => {\r\n if (_?.id === node?.id) {\r\n _ = JSON.parse(JSON.stringify(_));\r\n _.data.metaData = data;\r\n _.style.width =\r\n node?.data?.previewType === \"text\"\r\n ? Number(_.data.textViewRation.width || 400)\r\n : Number(_.data.cardViewRatio.width || 390);\r\n _.style.height =\r\n node?.data?.previewType === \"text\"\r\n ? Number(_.data.textViewRation.height || 30)\r\n : Number(_.data.cardViewRatio.height || 460);\r\n\r\n _.data.style.width =\r\n node?.data?.previewType === \"text\"\r\n ? Number(_.data.textViewRation.width || 400)\r\n : Number(_.data.cardViewRatio.width || 390);\r\n _.data.style.height =\r\n node?.data?.previewType === \"text\"\r\n ? Number(_.data.textViewRation.height || 30)\r\n : Number(_.data.cardViewRatio.height || 460);\r\n\r\n _.data.width =\r\n node?.data?.previewType === \"text\"\r\n ? Number(_.data.textViewRation.width || 400)\r\n : Number(_.data.cardViewRatio.width || 390);\r\n _.data.height =\r\n node?.data?.previewType === \"text\"\r\n ? Number(_.data.textViewRation.height || 30)\r\n : Number(_.data.cardViewRatio.height || 460);\r\n\r\n return _;\r\n } else {\r\n return _;\r\n }\r\n });\r\n // ! new one\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id,\r\n dispatch,\r\n undo,\r\n a_id,\r\n takeSnapshot,\r\n });\r\n return updatedNodes;\r\n });\r\n\r\n setTimeout(() => {\r\n setNodes((nodes) =>\r\n nodes.map((nd) => {\r\n if (nd.id === node.id) {\r\n nd = JSON.parse(JSON.stringify(nd));\r\n nd.style.width = Number(mainRef?.current?.offsetWidth || 300);\r\n nd.style.height = Number(\r\n mainRef?.current?.offsetHeight || 280\r\n );\r\n\r\n return {\r\n ...nd,\r\n };\r\n }\r\n return nd;\r\n })\r\n );\r\n }, 300);\r\n } catch (err) {\r\n setError(\"Failed to fetch metadata.\");\r\n }\r\n } else {\r\n setError(\"Please enter a valid URL.\");\r\n }\r\n }\r\n setLoading(false);\r\n };\r\n\r\n const handleUrlChange = (e) => {\r\n const url = e.target.value;\r\n\r\n setNodes((prev) => {\r\n return prev.map((nd) => {\r\n if (nd.id === node.id) {\r\n return {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n url,\r\n },\r\n };\r\n }\r\n return nd;\r\n });\r\n });\r\n\r\n setError(\"\");\r\n };\r\n\r\n const handleRedirect = () => {\r\n window.open(\r\n node?.data?.url.includes(\"http\")\r\n ? node?.data?.url\r\n : `https://${node?.data?.url}`,\r\n \"_blank\",\r\n \"noopener,noreferrer\"\r\n );\r\n };\r\n\r\n const handleRedirectDescription = () => {\r\n if (node?.data?.link) {\r\n window.open(node?.data?.link, \"_blank\", \"noopener,noreferrer\");\r\n }\r\n };\r\n\r\n const frameMoreOptionsRef = useRef(null);\r\n\r\n const handleClickOutside = (event) => {\r\n if (\r\n frameMoreOptionsRef.current &&\r\n !frameMoreOptionsRef.current.contains(event.target)\r\n ) {\r\n setShowLinkMoreOptions(false);\r\n }\r\n if (editRef.current && !editRef.current.contains(event.target)) {\r\n setShowEditLink(false);\r\n setEdit(false);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleClickOutside);\r\n };\r\n }, [showLinkMoreOptions]);\r\n\r\n const zoom = useStore((state) =>\r\n node?.selected ? state?.transform?.[2] : 1\r\n );\r\n const sizeAsPerZoom = node?.data?.height * zoom || 100;\r\n useEffect(() => {\r\n if (mainRef.current && !isNodeSelectionStarted) {\r\n setZoomPercentages(zoom * 100);\r\n }\r\n }, [zoom]);\r\n\r\n const isItemToSmall = useMemo(\r\n () => zoomPercentages <= 12.5,\r\n [zoomPercentages]\r\n );\r\n\r\n const isWidthLessthan25 = useMemo(\r\n () => 12.5 < zoomPercentages && zoomPercentages <= 25,\r\n [zoomPercentages]\r\n );\r\n\r\n const isWidthLessthan50 = useMemo(\r\n () => 25 < zoomPercentages && zoomPercentages <= 50,\r\n [zoomPercentages]\r\n );\r\n\r\n const isWidthLessthan100 = useMemo(\r\n () => 50 < zoomPercentages && zoomPercentages <= 100,\r\n [zoomPercentages]\r\n );\r\n\r\n const handleSettingChange = (properties) => {\r\n setNodes((nodes) => {\r\n const updatedNodes = nodes.map((nd) => {\r\n if (nd.id === node.id) {\r\n return {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n [properties]: !nd?.data?.[properties],\r\n },\r\n };\r\n }\r\n return nd;\r\n });\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n // edges: edges,\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id,\r\n dispatch,\r\n undo,\r\n a_id,\r\n takeSnapshot,\r\n });\r\n return updatedNodes;\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (!node?.selected) {\r\n setShowLinkMoreOptions(false);\r\n setShowCardSettings(false);\r\n }\r\n }, [node]);\r\n const nodeWH = getNode(node?.id);\r\n\r\n useEffect(() => {\r\n if (socket) {\r\n socket.on(socketEvents.NODE_UPDATED, (data) => {\r\n const jsonData = data?.architecture_json;\r\n const currentNode = jsonData?.nodes?.find(\r\n (val) => val?.id === node?.id\r\n );\r\n\r\n if (jsonData?.lastUpdatedBy !== userData?.user_id) {\r\n // setState(currentNode?.data?.data);\r\n }\r\n });\r\n }\r\n }, [socket, node?.id]);\r\n\r\n return (\r\n <>\r\n {!isNodeSelectionStarted && node?.selected && !node.dragging && (\r\n <NodeToolbar\r\n isVisible={node.selected ? true : false}\r\n position={Position.Top}\r\n >\r\n <Box\r\n display={\"flex\"}\r\n gap={\"8px\"}\r\n p={\"0px 7px\"}\r\n sx={{\r\n background: \"#FFFFFF\",\r\n border: \"1px solid #EEEEEE\",\r\n boxShadow:\r\n \"0px 4px 6px -2px #10182808, 0px 12px 16px -4px #10182808\",\r\n zIndex: 9999,\r\n borderRadius: \"10px\",\r\n marginBottom: \"18px\",\r\n height: \"48px\",\r\n flexWrap: \"wrap\",\r\n alignContent: \"center\",\r\n }}\r\n >\r\n {node.selected && (\r\n <>\r\n {!node.data.locked && node?.data?.metaData && (\r\n <>\r\n <Box>\r\n <CustomNameTooltip\r\n placement=\"top\"\r\n arrow\r\n title={\"Text View\"}\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:\r\n node?.data?.previewType === \"text\"\r\n ? \"#E6F2FF\"\r\n : \"#FFF\",\r\n padding: \"0px\",\r\n cursor: \"pointer\",\r\n\r\n \"&:hover\": {\r\n background:\r\n node?.data?.previewType === \"text\"\r\n ? \"#E6F2FF\"\r\n : \"#F5F5F5\",\r\n },\r\n }}\r\n onClick={() => {\r\n setShowCardSettings(false);\r\n setNodes((nodes) => {\r\n const updatedNodes = nodes.map((nd) => {\r\n if (nd.id === node.id) {\r\n nd = JSON.parse(JSON.stringify(nd));\r\n nd.style.width = Number(\r\n nd.data.textViewRation?.width || 400\r\n );\r\n nd.style.height = Number(\r\n nd.data.textViewRation?.height || 28\r\n );\r\n nd.data.previewType = \"text\";\r\n nd.data.style.width = Number(\r\n nd.data.textViewRation?.width || 400\r\n );\r\n nd.data.style.height = Number(\r\n nd.data.textViewRation?.height || 28\r\n );\r\n\r\n nd.data.width = Number(\r\n nd.data.textViewRation?.width || 400\r\n );\r\n nd.data.height = Number(\r\n nd.data.textViewRation?.height || 28\r\n );\r\n return {\r\n ...nd,\r\n };\r\n }\r\n return nd;\r\n });\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n const search = new URLSearchParams(\r\n location.search\r\n );\r\n const a_id = search.get(\"a_id\");\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n // edges: edges,\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id,\r\n dispatch,\r\n undo,\r\n a_id,\r\n takeSnapshot,\r\n });\r\n return updatedNodes;\r\n });\r\n }}\r\n >\r\n <IcTextView\r\n fill={\r\n node?.data?.previewType === \"text\"\r\n ? color?.primaryColor\r\n : \"#282828\"\r\n }\r\n />\r\n </IconButton>\r\n </CustomNameTooltip>\r\n </Box>\r\n <Box>\r\n <CustomNameTooltip\r\n placement=\"top\"\r\n arrow\r\n title={\"Card View\"}\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:\r\n node?.data?.previewType === \"card\"\r\n ? \"#E6F2FF\"\r\n : \"#FFF\",\r\n padding: \"0px\",\r\n cursor: \"pointer\",\r\n \"&:hover\": {\r\n background:\r\n node?.data?.previewType === \"card\"\r\n ? \"#E6F2FF\"\r\n : \"#F5F5F5\",\r\n },\r\n }}\r\n onClick={() => {\r\n setNodes((nodes) => {\r\n const updatedNodes = nodes.map((nd) => {\r\n if (nd.id === node.id) {\r\n nd = JSON.parse(JSON.stringify(nd));\r\n\r\n nd.style.width =\r\n nd.data.cardViewRatio?.width || 390;\r\n nd.style.height =\r\n nd.data.cardViewRatio?.height || 460;\r\n nd.data.previewType = \"card\";\r\n nd.data.style.width =\r\n nd.data.cardViewRatio?.width || 390;\r\n nd.data.style.height =\r\n nd.data.cardViewRatio?.height || 460;\r\n\r\n nd.data.width =\r\n nd.data.cardViewRatio?.width || 390;\r\n nd.data.height =\r\n nd.data.cardViewRatio?.height || 460;\r\n return {\r\n ...nd,\r\n };\r\n }\r\n return nd;\r\n });\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n const search = new URLSearchParams(\r\n location.search\r\n );\r\n const a_id = search.get(\"a_id\");\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n // edges: edges,\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id,\r\n dispatch,\r\n undo,\r\n a_id,\r\n takeSnapshot,\r\n });\r\n return updatedNodes;\r\n });\r\n }}\r\n >\r\n <IcCardView\r\n fill={\r\n node?.data?.previewType === \"card\"\r\n ? color?.primaryColor\r\n : \"#282828\"\r\n }\r\n />\r\n </IconButton>\r\n </CustomNameTooltip>\r\n </Box>\r\n\r\n <Box>\r\n <CustomNameTooltip\r\n placement=\"top\"\r\n arrow\r\n title={\"Preview\"}\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:\r\n node?.data?.previewType === \"normal\"\r\n ? \"#E6F2FF\"\r\n : \"#FFF\",\r\n padding: \"0px\",\r\n cursor: \"pointer\",\r\n \"&:hover\": {\r\n background:\r\n node?.data?.previewType === \"normal\"\r\n ? \"#E6F2FF\"\r\n : \"#F5F5F5\",\r\n },\r\n }}\r\n onClick={() => {\r\n setPreviewLoading(true);\r\n setShowCardSettings(false);\r\n setNodes((nodes) => {\r\n const updatedNodes = nodes.map((nd) => {\r\n if (nd.id === node.id) {\r\n nd = JSON.parse(JSON.stringify(nd));\r\n\r\n nd.style.width =\r\n nd.data.preViewRation?.width || 860;\r\n nd.style.height =\r\n nd.data.preViewRation?.height || 475;\r\n nd.data.previewType = \"normal\";\r\n nd.data.style.width =\r\n nd.data.preViewRation?.width || 860;\r\n nd.data.style.height =\r\n nd.data.preViewRation?.height || 475;\r\n\r\n nd.data.width =\r\n nd.data.preViewRation?.width || 860;\r\n nd.data.height =\r\n nd.data.preViewRation?.height || 475;\r\n return {\r\n ...nd,\r\n };\r\n }\r\n return nd;\r\n });\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n const search = new URLSearchParams(\r\n location.search\r\n );\r\n const a_id = search.get(\"a_id\");\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n // edges: edges,\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id,\r\n dispatch,\r\n undo,\r\n a_id,\r\n takeSnapshot,\r\n });\r\n return updatedNodes;\r\n });\r\n }}\r\n >\r\n <IcPreview\r\n fill={\r\n node?.data?.previewType === \"normal\"\r\n ? color?.primaryColor\r\n : \"#282828\"\r\n }\r\n />\r\n </IconButton>\r\n </CustomNameTooltip>\r\n </Box>\r\n <Box\r\n sx={{\r\n height: \"36px\",\r\n width: \"1px\",\r\n background: \"#EAECF0\",\r\n }}\r\n />\r\n\r\n <CustomTooltip\r\n mt={9}\r\n PopperProps={{\r\n disablePortal: true,\r\n }}\r\n onClose={() => setShowCardSettings(false)}\r\n open={\r\n node?.data?.previewType === \"card\" && showCardSettings\r\n }\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n <Stack\r\n p={\"14px 10px\"}\r\n sx={{\r\n background: \"#FFFFFF\",\r\n border: \"1px solid #EFF0F3\",\r\n borderRadius: \"10px\",\r\n gap: \"14px\",\r\n minWidth: \"155px\",\r\n boxShadow: \"0px 2px 8px 0px #030B160D\",\r\n }}\r\n >\r\n {node?.data?.metaData?.image !== \"\" && (\r\n <SimpleCheckBox\r\n label=\"Image\"\r\n labelFontSize={14}\r\n labelStyle={{\r\n color: \"#282828\",\r\n }}\r\n mainSx={{\r\n gap: \"10px !important\",\r\n }}\r\n // !-------\r\n checked={node?.data?.showImage}\r\n onChange={() => {\r\n handleSettingChange(\"showImage\");\r\n }}\r\n />\r\n )}\r\n {node?.data?.metaData.title && (\r\n <SimpleCheckBox\r\n label=\"Title\"\r\n labelFontSize={14}\r\n labelStyle={{\r\n color: \"#282828\",\r\n }}\r\n mainSx={{\r\n gap: \"10px !important\",\r\n }}\r\n checked={node?.data?.showTitle}\r\n onChange={() => {\r\n handleSettingChange(\"showTitle\");\r\n }}\r\n />\r\n )}\r\n {node?.data?.metaData.description && (\r\n <SimpleCheckBox\r\n label=\"Description\"\r\n labelFontSize={14}\r\n labelStyle={{\r\n color: \"#282828\",\r\n }}\r\n mainSx={{\r\n gap: \"10px !important\",\r\n }}\r\n checked={node?.data?.showDescription}\r\n onChange={() => {\r\n handleSettingChange(\"showDescription\");\r\n }}\r\n />\r\n )}\r\n </Stack>\r\n }\r\n >\r\n <Box>\r\n <CustomNameTooltip\r\n placement=\"top\"\r\n arrow\r\n title={\"Card Settings\"}\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: showCardSettings\r\n ? \"#E6F2FF\"\r\n : node?.data?.previewType !== \"card\"\r\n ? \"#F5F5F5\"\r\n : \"#FFF\",\r\n padding: \"0px\",\r\n cursor: \"pointer\",\r\n \"&:hover\": {\r\n background: \"#F5F5F5\",\r\n },\r\n }}\r\n onClick={\r\n node?.data?.previewType !== \"card\"\r\n ? () => {}\r\n : () => setShowCardSettings(!showCardSettings)\r\n }\r\n >\r\n <IcSettingsOutlined\r\n fill={\r\n showCardSettings\r\n ? color?.primaryColor\r\n : node?.data?.previewType !== \"card\"\r\n ? \"#C1C1C0\"\r\n : \"#18181B\"\r\n }\r\n width=\"24\"\r\n height=\"24\"\r\n />\r\n </IconButton>\r\n </CustomNameTooltip>\r\n </Box>\r\n </CustomTooltip>\r\n <Box\r\n sx={{\r\n height: \"36px\",\r\n width: \"1px\",\r\n background: \"#EAECF0\",\r\n }}\r\n />\r\n <Box>\r\n <CustomNameTooltip\r\n placement=\"top\"\r\n arrow\r\n title={\"Redirect to\"}\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={handleRedirect}\r\n >\r\n <IcRedirectTo />\r\n </IconButton>\r\n </CustomNameTooltip>\r\n </Box>\r\n <Box\r\n sx={{\r\n height: \"36px\",\r\n width: \"1px\",\r\n background: \"#EAECF0\",\r\n }}\r\n />\r\n </>\r\n )}\r\n <Box>\r\n <CustomNameTooltip\r\n placement=\"top\"\r\n arrow\r\n title={node.data.locked ? \"Unlocked\" : \"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 // bgcolor: \"#FFF\",\r\n // padding: \"0px\",\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\r\n \"&:hover\": {\r\n background: \"#F5F5F5\",\r\n },\r\n }}\r\n onClick={toggleLockUnlock}\r\n >\r\n {node.data.locked ? (\r\n // <LockIcon fill={\"#121212\"} size={\"small\"} />\r\n <IcLockLocked />\r\n ) : (\r\n // <LockOpenIcon fill={\"#121212\"} size={\"small\"} />\r\n <IcLockUnLocked />\r\n )}\r\n </IconButton>\r\n </CustomNameTooltip>\r\n </Box>\r\n <Box\r\n sx={{\r\n height: \"36px\",\r\n width: \"1px\",\r\n background: \"#EAECF0\",\r\n }}\r\n />\r\n\r\n <Box ref={frameMoreOptionsRef}>\r\n <CustomTooltip\r\n mt={9}\r\n PopperProps={{\r\n disablePortal: true,\r\n }}\r\n onClose={() => setShowLinkMoreOptions(false)}\r\n open={showLinkMoreOptions}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n <FrameMoreMenus\r\n node={node}\r\n width={node?.data?.width / 2}\r\n height={node?.data?.height / 2}\r\n showRename={false}\r\n showDuplicate={true}\r\n showCopyAsImage={true}\r\n showAddComment={true}\r\n showLockUnlock={true}\r\n showCopyLink={true}\r\n showLinkTo={true}\r\n showDelete={true}\r\n exportShow={true}\r\n showBringToFrontAndBack={true}\r\n showFrame={true}\r\n setShowFrameMoreOptions={setShowLinkMoreOptions}\r\n simpleRef={mainRef}\r\n handleIsCapturing={handleIsCapturing}\r\n />\r\n }\r\n >\r\n <Box>\r\n <ToolTipWithDisabled\r\n placement=\"top\"\r\n tooltipTitle=\"More\"\r\n disabled={showLinkMoreOptions}\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 transform: \"rotate(90deg)\",\r\n \"&:hover\": {\r\n background: \"#F5F5F5\",\r\n },\r\n }}\r\n onClick={() =>\r\n setShowLinkMoreOptions(!showLinkMoreOptions)\r\n }\r\n >\r\n <IcMenuDotsVertical\r\n height=\"32\"\r\n width=\"32\"\r\n fill=\"#282828\"\r\n />\r\n </IconButton>\r\n </ToolTipWithDisabled>\r\n </Box>\r\n </CustomTooltip>\r\n </Box>\r\n </>\r\n )}\r\n </Box>\r\n </NodeToolbar>\r\n )}\r\n\r\n <Box\r\n onMouseLeave={() => setIframeOverlay(true)}\r\n ref={mainRef}\r\n width={node?.data?.previewType === \"text\" ? \"fit-content\" : `100%`}\r\n position={\"relative\"}\r\n margin={\"auto\"}\r\n height={\"100%\"}\r\n sx={{\r\n boxShadow:\r\n node?.selected && !copyAsImage\r\n ? `0px 0px 0px ${1.2 / zoom}px ${color?.primaryColor}`\r\n : \"none\",\r\n // border:\r\n // node?.selected && !copyAsImage\r\n // ? isCapturing\r\n // ? \"1px solid transparent !important\"\r\n // : `1px solid ${color?.primaryColor}`\r\n // : \"1px solid transparent\",\r\n }}\r\n onMouseDownCapture={(e) =>\r\n node.data.locked === true && e.stopPropagation()\r\n }\r\n >\r\n {node?.data?.previewType === \"normal\" ? (\r\n <Box\r\n sx={{\r\n position: \"absolute\",\r\n top: \"-23px\",\r\n left: 0,\r\n fontWeight: \"500\",\r\n fontSize: \"13px\",\r\n color: \"#282828\",\r\n backgroundColor: \"transparent\",\r\n }}\r\n >\r\n {node?.data?.metaData.title}\r\n </Box>\r\n ) : (\r\n \"\"\r\n )}\r\n\r\n {sizeAsPerZoom > 25 &&\r\n node?.data?.metaData &&\r\n node?.data?.previewType !== \"text\" &&\r\n node?.selected &&\r\n !showExport &&\r\n !copyAsImage &&\r\n !isItemToSmall &&\r\n !isCapturing && (\r\n <>\r\n <NodeResizer\r\n color=\"transparent\"\r\n minWidth={250}\r\n minHeight={250}\r\n onResizeEnd={onResizeEnd}\r\n handleStyle={{\r\n display: \"none\",\r\n }}\r\n />\r\n <NodeResizeControl\r\n keepAspectRatio={false}\r\n position=\"bottom-right\"\r\n style={{\r\n zIndex: 999999999999,\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid transparent\",\r\n }}\r\n onResizeEnd={onResizeEnd}\r\n minWidth={250}\r\n minHeight={250}\r\n maxWidth={\r\n node?.data?.previewType === \"normal\" ||\r\n !node?.data?.metaData?.image\r\n ? 1200\r\n : 800\r\n }\r\n maxHeight={800}\r\n >\r\n <Box\r\n sx={{\r\n background: node?.selected ? \"#FFFFFF\" : \"transparent\",\r\n width: \"12px\",\r\n height: \"12px\",\r\n borderRadius: \"1.5px\",\r\n transform: `scale(${1 / zoom}) translate(-${zoom * 5}px, -${\r\n zoom * 5\r\n }px)`,\r\n transformOrigin: \"center\",\r\n border: node?.selected\r\n ? `1px solid ${color?.primaryColor}`\r\n : \"none\",\r\n \"&:hover\": { bgcolor: color?.primaryColor },\r\n }}\r\n />\r\n </NodeResizeControl>\r\n <NodeResizeControl\r\n position=\"bottom-left\"\r\n onResizeEnd={onResizeEnd}\r\n minWidth={250}\r\n minHeight={250}\r\n maxWidth={\r\n node?.data?.previewType === \"normal\" ||\r\n !node?.data?.metaData?.image\r\n ? 1200\r\n : 800\r\n }\r\n maxHeight={800}\r\n style={{\r\n zIndex: 999999999999,\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid transparent\",\r\n }}\r\n >\r\n <Box\r\n sx={{\r\n background: node?.selected ? \"#FFFFFF\" : \"transparent\",\r\n width: \"12px\",\r\n height: \"12px\",\r\n borderRadius: \"1.5px\",\r\n transform: `scale(${1 / zoom}) translate(-${zoom * 5}px, -${\r\n zoom * 5\r\n }px)`,\r\n transformOrigin: \"center\",\r\n border: node?.selected\r\n ? `1px solid ${color?.primaryColor}`\r\n : \"none\",\r\n \"&:hover\": { bgcolor: color?.primaryColor },\r\n }}\r\n />\r\n </NodeResizeControl>\r\n <NodeResizeControl\r\n position=\"top-right\"\r\n onResizeEnd={onResizeEnd}\r\n minWidth={250}\r\n minHeight={250}\r\n maxWidth={\r\n node?.data?.previewType === \"normal\" ||\r\n !node?.data?.metaData?.image\r\n ? 1200\r\n : 800\r\n }\r\n maxHeight={800}\r\n style={{\r\n zIndex: 999999999999,\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid transparent\",\r\n }}\r\n >\r\n <Box\r\n sx={{\r\n background: node?.selected ? \"#FFFFFF\" : \"transparent\",\r\n width: \"12px\",\r\n height: \"12px\",\r\n borderRadius: \"1.5px\",\r\n transform: `scale(${1 / zoom}) translate(-${zoom * 5}px, -${\r\n zoom * 5\r\n }px)`,\r\n transformOrigin: \"center\",\r\n border: node?.selected\r\n ? `1px solid ${color?.primaryColor}`\r\n : \"none\",\r\n \"&:hover\": { bgcolor: color?.primaryColor },\r\n }}\r\n />\r\n </NodeResizeControl>\r\n <NodeResizeControl\r\n position=\"top-left\"\r\n onResizeEnd={onResizeEnd}\r\n minWidth={250}\r\n minHeight={250}\r\n maxWidth={\r\n node?.data?.previewType === \"normal\" ||\r\n !node?.data?.metaData?.image\r\n ? 1200\r\n : 800\r\n }\r\n maxHeight={800}\r\n style={{\r\n zIndex: 999999999999,\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid transparent\",\r\n }}\r\n >\r\n <Box\r\n sx={{\r\n background: node?.selected ? \"#FFFFFF\" : \"transparent\",\r\n width: \"12px\",\r\n height: \"12px\",\r\n borderRadius: \"1.5px\",\r\n transform: `scale(${1 / zoom}) translate(-${zoom * 5}px, -${\r\n zoom * 5\r\n }px)`,\r\n transformOrigin: \"center\",\r\n border: node?.selected\r\n ? `1px solid ${color?.primaryColor}`\r\n : \"none\",\r\n \"&:hover\": { bgcolor: color?.primaryColor },\r\n }}\r\n />\r\n </NodeResizeControl>\r\n </>\r\n )}\r\n\r\n {!node?.data?.metaData && (\r\n <>\r\n {loading ? (\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n width: \"100%\",\r\n height: \"100%\",\r\n margin: \"30px 0px\",\r\n }}\r\n >\r\n <CircularProgress\r\n size={30}\r\n sx={{\r\n color: color?.primaryColor,\r\n }}\r\n />\r\n </Box>\r\n ) : (\r\n <Box\r\n sx={{\r\n p: \"24px\",\r\n background: \"#FFFFFF\",\r\n boxShadow: \"0px 2px 8px 0px #030B160D\",\r\n border: \"1px solid #EEEEEE\",\r\n borderRadius: \"10px\",\r\n height: \"100%\",\r\n }}\r\n >\r\n <Typography\r\n fontSize={16}\r\n fontWeight={600}\r\n color={\"#282828\"}\r\n height={\"22px\"}\r\n mb={\"10px\"}\r\n >\r\n Link\r\n </Typography>\r\n <Box\r\n sx={{\r\n border: `1px solid ${error ? \"#F14F4A\" : \"#E1E1E1\"}`,\r\n outline: `3px solid ${error ? \"#F14F4A45\" : \"transparent\"}`,\r\n borderRadius: \"8px\",\r\n wordBreak: \"break-all\",\r\n textAlign: \"center\",\r\n height: \"44px\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"flex-start\",\r\n gap: \"10px\",\r\n boxShadow: \"0px 1px 2px 0px #1018280D\",\r\n\r\n \"& input\": {\r\n color: \"#18181B !important\",\r\n fontSize: \"16px !important\",\r\n lineHeight: \"24px !important\",\r\n \"&::placeholder\": {\r\n color: \"#84838299 !important\",\r\n fontSize: \"16px !important\",\r\n },\r\n },\r\n }}\r\n >\r\n <Stack\r\n justifyContent={\"center\"}\r\n alignItems={\"center\"}\r\n sx={{\r\n px: \"14px\",\r\n wordBreak: \"auto-phrase\",\r\n background: \"#F5F5F5\",\r\n height: \"100%\",\r\n // border-bottom-left-radius:\"8px\"\r\n borderBottomLeftRadius: \"8px\",\r\n borderTopLeftRadius: \"8px\",\r\n // borderRadius:\"5px\",\r\n borderRight: `1px solid ${error ? \"#F14F4A\" : \"#E1E1E1\"}`,\r\n }}\r\n >\r\n <Typography\r\n fontSize={16}\r\n color={\"#848382\"}\r\n Width={\"max-content\"}\r\n lineHeight={\"24px\"}\r\n >\r\n https://\r\n </Typography>\r\n </Stack>\r\n\r\n <input\r\n className=\"nodrag\"\r\n disabled={node?.data?.locked}\r\n type=\"text\"\r\n placeholder={error ? error : \"www.example.com\"}\r\n onChange={handleUrlChange}\r\n value={node?.data?.url}\r\n disabled={node?.data?.locked}\r\n onKeyDown={(e) => handleFetchMetaData(e)}\r\n style={{\r\n width: \"78%\",\r\n padding: \"5px\",\r\n height: \"auto\",\r\n border: \"none\",\r\n }}\r\n />\r\n </Box>\r\n <Typography\r\n fontSize={14}\r\n lineHeight={\"24px\"}\r\n color={\"#84838299\"}\r\n fontWeight={300}\r\n mt={\"6px\"}\r\n >\r\n Type or paste url and press enter\r\n </Typography>\r\n </Box>\r\n )}\r\n </>\r\n )}\r\n\r\n {node?.data?.metaData &&\r\n (node?.data?.previewType === \"normal\" ? (\r\n <Box\r\n sx={{\r\n width: \"100%\",\r\n height: \"100%\",\r\n border: \"1px solid #E3E3E3\",\r\n borderRadius: \"10px !important\",\r\n overflow: \"hidden\",\r\n }}\r\n // onMouseDownCapture={(e) => e.stopPropagation()}\r\n >\r\n {previewLoading && (\r\n <Box\r\n sx={{\r\n position: \"absolute\",\r\n top: 0,\r\n left: 0,\r\n width: \"100%\",\r\n height: \"100%\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n gap: \"16px\",\r\n alignItems: \"center\",\r\n flexDirection: \"column\",\r\n backgroundColor: \"rgba(255, 255, 255, 0.8)\",\r\n zIndex: 1,\r\n }}\r\n >\r\n <CircularProgress sx={{ color: color?.primaryColor }} />\r\n <p sx={{ fontSize: \"14px\", color: color?.primaryColor }}>\r\n Loading...\r\n </p>\r\n </Box>\r\n )}\r\n {iframeOverly && (\r\n <Box\r\n sx={{\r\n position: \"absolute\",\r\n top: \"0px\",\r\n right: \"0px\",\r\n width: \"100%\",\r\n height: \"100%\",\r\n zIndex: 9,\r\n background: \"rgba(1,1,1,0.2)\",\r\n display: \"flex\",\r\n borderRadius: \"inherit\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n \"& svg\": {\r\n \"& path\": {\r\n fill: \"back\",\r\n },\r\n },\r\n }}\r\n >\r\n <Box\r\n onClick={() => setIframeOverlay(false)}\r\n sx={{\r\n height: \"100px\",\r\n width: \"100px\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n background: \"rgba(1,1,1,0.4)\",\r\n borderRadius: \"50%\",\r\n transitionDuration: \"300ms\",\r\n cursor: \"pointer\",\r\n \"&:hover\": {\r\n background: \"rgba(1,1,1,0.6)\",\r\n },\r\n }}\r\n >\r\n <IcEyeOpen fill=\"white\" height=\"40\" width=\"40\" />\r\n </Box>\r\n </Box>\r\n )}\r\n <iframe\r\n draggable\r\n src={\r\n node?.data?.url.includes(\"http\")\r\n ? node?.data?.url\r\n : `https://${node?.data?.url}`\r\n }\r\n title={node?.data?.metaData.title}\r\n width={\"100%\"}\r\n height={\"100%\"}\r\n onLoad={() => setPreviewLoading(false)}\r\n // style={{\r\n // pointerEvents: \"none\",\r\n // }}\r\n ></iframe>\r\n </Box>\r\n ) : node?.data?.previewType === \"text\" ? (\r\n <Box ref={editRef}>\r\n <CustomTooltip\r\n maxWidth={333}\r\n PopperProps={{\r\n disablePortal: true,\r\n }}\r\n // onClose={() => setShowEditLink(false)}\r\n open={showEditLink}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n <Box\r\n sx={{\r\n border: \"1px solid #EEEEEE\",\r\n margin: \"0px\",\r\n borderRadius: \"10px\",\r\n padding: \"6px\",\r\n textAlign: \"center\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"flex-start\",\r\n\r\n // gap: \"10px\",\r\n // px: \"14px\",\r\n mt: \"-6px !important\",\r\n boxShadow: \"0px 4px 6px -2px #10182808\",\r\n\r\n \"& input\": {\r\n fontSize: 14,\r\n \"&::placeholder\": {\r\n color: \"#84838299 !important\",\r\n fontSize: \"14px !important\",\r\n },\r\n },\r\n }}\r\n onMouseOverCapture={() => {\r\n setShowEditLink(true);\r\n }}\r\n // onMouseOutCapture={() => setShowEditLink(false)}\r\n >\r\n <Stack\r\n sx={{\r\n height: \"36px\",\r\n width: \"36px\",\r\n flexWrap: \"wrap\",\r\n justifyContent: \"center\",\r\n alignContent: \"center\",\r\n }}\r\n >\r\n {error ? (\r\n <IcInfoOutlined height=\"24\" width=\"24\" fill=\"#FF5E3C\" />\r\n ) : (\r\n <IcLinkOutlined3\r\n height=\"24\"\r\n width=\"24\"\r\n fill=\"#282828\"\r\n />\r\n )}\r\n </Stack>\r\n {/* <Box\r\n sx={{\r\n height: \"36px\",\r\n minWidth: \"1px\",\r\n background: \"#EAECF0\",\r\n }}\r\n /> */}\r\n\r\n {edit && (\r\n <input\r\n ref={inputRef}\r\n type=\"text\"\r\n placeholder={error ? error : \"Type or paste URL\"}\r\n onChange={(e) => {\r\n handleUrlChange(e);\r\n }}\r\n value={node?.data?.url}\r\n onKeyDown={(e) => {\r\n handleFetchMetaData(e);\r\n if (e.key === \"Enter\") {\r\n setShowEditLink(false);\r\n setEdit(false);\r\n }\r\n }}\r\n onFocus={(e) => {\r\n e.stopPropagation();\r\n setShowEditLink(true);\r\n }}\r\n onClick={(e) => {\r\n if (clickTimeout.current) {\r\n clearTimeout(clickTimeout.current);\r\n }\r\n\r\n clickTimeout.current = setTimeout(() => {\r\n const input = e.target;\r\n const selectionStart = input.selectionStart;\r\n const selectionEnd = input.selectionEnd;\r\n\r\n if (selectionStart !== selectionEnd) {\r\n const clickPosition =\r\n e.nativeEvent.offsetX / input.scrollWidth;\r\n const cursorIndex = Math.floor(\r\n clickPosition * input.value.length\r\n );\r\n input.setSelectionRange(cursorIndex, cursorIndex);\r\n }\r\n }, 300);\r\n }}\r\n onDoubleClick={(e) => {\r\n if (clickTimeout.current) {\r\n clearTimeout(clickTimeout.current);\r\n }\r\n }}\r\n onBlur={() => setShowEditLink(false)}\r\n style={{\r\n width: \"245px\",\r\n border: \"none\",\r\n pointerEvents: \"all\",\r\n }}\r\n className=\"nodrag\"\r\n />\r\n )}\r\n {!edit && (\r\n <Box\r\n sx={{\r\n width: \"245px\",\r\n display: \"flex\",\r\n justifyContent: \"start\",\r\n color: \"black\",\r\n textDecoration: \"none\",\r\n }}\r\n >\r\n <CustomNameTooltip\r\n placement=\"top\"\r\n title={\"Jump to link\"}\r\n arrow\r\n >\r\n <a\r\n href={\r\n node?.data?.url.includes(\"http\")\r\n ? node?.data?.url\r\n : `https://${node?.data?.url}`\r\n }\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n style={{\r\n color: \"black\",\r\n textDecoration: \"none\",\r\n fontSize: \"14px\",\r\n fontWeight: \"400\",\r\n maxWidth: \"225px\",\r\n }}\r\n onClick={(e) => e.stopPropagation()}\r\n >\r\n {node?.data?.url}\r\n </a>\r\n </CustomNameTooltip>\r\n </Box>\r\n )}\r\n <Box\r\n sx={{\r\n height: \"36px\",\r\n minWidth: \"1px\",\r\n background: \"#EAECF0\",\r\n marginRight: \"4px\",\r\n marginLeft: \"4px\",\r\n }}\r\n />\r\n <IconButton\r\n sx={{ borderRadius: \"8px\" }}\r\n disabled={node?.data?.locked}\r\n onClick={handleEditClick}\r\n >\r\n <IcEditlink\r\n height=\"24\"\r\n width=\"24\"\r\n fill={\r\n node?.data?.locked\r\n ? color.disableText\r\n : color.editorIcon\r\n }\r\n />\r\n </IconButton>\r\n </Box>\r\n }\r\n >\r\n <Stack\r\n direction={\"row\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"flex-start\"}\r\n gap={\"6px\"}\r\n sx={{\r\n cursor: \"pointer\",\r\n \"& img\": {\r\n height: \"20px\",\r\n width: \"20px\",\r\n objectFit: \"contain\",\r\n },\r\n }}\r\n ref={main}\r\n onMouseOverCapture={() => {\r\n setShowEditLink(true);\r\n }}\r\n // onMouseOutCapture={() => setShowEditLink(false)}\r\n >\r\n {node?.data?.metaData.favicon ? (\r\n <img src={node?.data?.metaData.favicon} alt=\"Logo\" />\r\n ) : (\r\n <IcNetwork />\r\n )}\r\n <Typography\r\n fontSize={16}\r\n color={color?.primaryColor}\r\n lineHeight={\"28px\"}\r\n sx={{\r\n textDecoration: \"underline\",\r\n width: \"max-content\",\r\n }}\r\n onClick={handleRedirect}\r\n >\r\n {node?.data?.metaData.title}\r\n </Typography>\r\n </Stack>\r\n </CustomTooltip>\r\n </Box>\r\n ) : (\r\n <Box\r\n p={\"16px\"}\r\n sx={{\r\n background: \"#FFFFFF\",\r\n boxShadow: \"0px 2px 10.4px 0px #0000000D\",\r\n borderRadius: \"20px\",\r\n width: \"100%\",\r\n height: \"100%\",\r\n }}\r\n ref={cardRef}\r\n >\r\n {node?.data?.showImage && node?.data?.metaData.image && (\r\n <Box\r\n sx={{\r\n height: \"calc(100% - 155px)\",\r\n width: \"100%\",\r\n p: node?.data?.width < 350 ? \"5px\" : \"15px\",\r\n border: \"1px solid #E3E3E3\",\r\n borderRadius: \"16px\",\r\n mb: \"12px\",\r\n }}\r\n >\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n backgroundImage: `url(${node?.data?.metaData.image})`,\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n backgroundRepeat: \"no-repeat\",\r\n backgroundSize: \"contain\",\r\n backgroundPosition: \"center\",\r\n height: \"100%\",\r\n width: \"100%\",\r\n }}\r\n ></Box>\r\n </Box>\r\n )}\r\n\r\n <Stack\r\n sx={{\r\n maxHeight: \"155px\",\r\n justifyContent: \"space-evenly\",\r\n }}\r\n >\r\n {node?.data?.showTitle && node?.data?.metaData.title && (\r\n <Box\r\n mb={\"6px\"}\r\n sx={{\r\n \"& p\": {\r\n color: \"#18181B\",\r\n fontSize: \"16\",\r\n fontWeight: 600,\r\n wordBreak: \"break-all\",\r\n lineHeight: \"28px\",\r\n cursor: \"pointer\",\r\n },\r\n }}\r\n >\r\n <Typography onClick={handleRedirect}>\r\n {node?.data?.metaData.title}\r\n </Typography>\r\n </Box>\r\n )}\r\n {node?.data?.showDescription &&\r\n node?.data?.metaData.description && (\r\n <Typography\r\n sx={{\r\n fontSize: \"14px\",\r\n color: \"#848382\",\r\n cursor: node?.data?.link ? \"pointer\" : \"default\",\r\n display: \"-webkit-box\",\r\n overflow: \"scroll\",\r\n padding: \"2px\",\r\n wordBreak: \"break-all\",\r\n textOverflow: \"ellipsis\",\r\n WebkitLineClamp: 3,\r\n WebkitBoxOrient: \"vertical\",\r\n }}\r\n onClick={handleRedirectDescription}\r\n onWheelCapture={(e) => {\r\n e.stopPropagation();\r\n }}\r\n >\r\n {node?.data?.metaData.description}\r\n </Typography>\r\n )}\r\n <Stack\r\n direction={\"row\"}\r\n alignItems={\"center\"}\r\n justifyContent={\"flex-start\"}\r\n gap={\"6px\"}\r\n sx={{\r\n cursor: \"pointer\",\r\n \"& img\": {\r\n height: \"18px\",\r\n width: \"18px\",\r\n objectFit: \"contain\",\r\n },\r\n }}\r\n onClick={handleRedirect}\r\n >\r\n {node?.data?.metaData.favicon ? (\r\n <img src={node?.data?.metaData.favicon} alt=\"Logo\" />\r\n ) : (\r\n <IcNetwork />\r\n )}\r\n <Typography\r\n fontSize={14}\r\n color={\"#B5B5B4\"}\r\n lineHeight={\"28px\"}\r\n overflow={\"hidden\"}\r\n width={\"100%\"}\r\n // sx={{ wordBreak: \"break-all\" }}\r\n >\r\n {node?.data?.url.includes(\"http\")\r\n ? node?.data?.url\r\n : `https://${node?.data?.url}`}\r\n </Typography>\r\n </Stack>\r\n </Stack>\r\n </Box>\r\n ))}\r\n </Box>\r\n </>\r\n );\r\n}\r\n\r\nexport default memo(ResizeLink, (prevProps, nextProps) => {\r\n return prevProps.data.globalDragging && nextProps.data.globalDragging;\r\n});\r\n"],"names":["TemplatesSelection","props","_jsxs","Box","mt","children","_jsx","Typography","sx","fontSize","fontWeight","color","ml","Stack","direction","gap","flexWrap","documentTemplatesData","map","template","backgroundColor","borderRadius","padding","cursor","onClick","handleCreateTemplate","content","IcDocsOutlined","height","width","fill","label","key","Commands","Extension","create","name","addOptions","suggestion","char","command","_ref","editor","range","addProseMirrorPlugins","Suggestion","_objectSpread","this","options","CustomDocument","TiptapDocument","extend","forwardRef","ref","_props$items","zIndex","overflowY","border","boxShadow","background","items","length","item","index","alignItems","icon","title","paddingLeft","query","IcPlainText","_ref2","chain","focus","deleteRange","setParagraph","run","IcHeadingOne","_ref3","setNode","level","IcHeadingTwo","_ref4","IcHeadingThree","_ref5","IcNumberListOutlined","_ref6","toggleOrderedList","IcListOutlined","_ref7","toggleBulletList","render","component","popup","onStart","ReactRenderer","CommandsList","clientRect","tippy","getReferenceClientRect","appendTo","document","body","element","showOnCreate","interactive","trigger","placement","onUpdate","updateProps","setProps","onKeyDown","_component$ref","event","hide","onExit","destroy","prompt","DocumentEditorExtensions","Color","configure","types","TextStyle","ListItem","CommandsSuggestion","StarterKit","bulletList","keepMarks","keepAttributes","orderedList","Underline","Highlight","multicolor","TextAlign","FontSize","FontFamily","Link","openOnClick","linkOnPaste","Placeholder","placeholder","_editor$getText","_editor$getText$trim","pos","editorHasContent","getText","trim","emptyEditorClass","emptyNodeClass","showOnlyCurrent","considerAnyAsEmpty","DocumentLoadingSkeleton","loading","spacing","Skeleton","variant","ResizeControls","node","isNodeSelectionStarted","location","useLocation","setNodes","getIntersectingNodes","useReactFlow","undo","takeSnapshot","useUndoRedo","zoomPercentages","useRef","store","useStoreApi","dispatch","useDispatch","id","useParams","zoom","useStore","state","_state$transform","selected","transform","useEffect","current","onResizeEnd","_parsedData","updatedNodes","updatedNode","parsedData","user_data","localStorage","getItem","JSON","parse","prev","_updatedNodes","setItem","stringify","architecture_json","nodes","lastEvent","_","_ref$current","_ref$current2","style","Number","offsetWidth","offsetHeight","n","_groupNode","_groupNode2","_groupNode3","_groupNode4","intersections","groupNode","type","parentNode","includes","_store$getState","_store$getState$nodeI","getState","nodeInternals","get","_parentNode$positionA","_parentNode$positionA2","_parentNode$positionA3","_parentNode$positionA4","tempNode","position","x","positionAbsolute","y","expandParent","undefined","push","_n2","_groupNode5","_node$positionAbsolut","_groupNode6","_groupNode6$positionA","_node$positionAbsolut2","_groupNode7","_groupNode7$positionA","_n3","structuredClone","_n","className","_getNodePositionInsid","getNodePositionInsideParent","a_id","URLSearchParams","search","updateJson","json","lastUpdatedBy","user_id","concat","_Fragment","NodeResizeControl","e","transformOrigin","primaryColor","bgcolor","React","Document","_node$data","_getNodes","_getNodes$filter","_node$data2","_node$data3","_node$data4","_editor$getText2","_editor$getText2$trim","_editor$getText3","_node$data10","_node$data10$style","_node$data11","_node$data12","_node$data12$style","_node$data13","_node$data13$style","_node$data14","_node$data14$style","_node$data15","_node$data15$style","_node$data16","_node$data16$data","_node$data17","_node$data18","permission","showExport","copyAsImage","useSelector","mindMapStore","useNodeSelectionStarted","getNodes","getNode","mainRef","userRowData","userData","currentNode","useViewport","sizeAsPerZoom","setLoading","useState","tempFontSize","setTempFontSize","data","lastFontSize","isMultiNodeSelected","filter","val","useEditor","extensions","isInitialContent","editorHTML","autofocus","editable","debouncedUpdateHTML","getHTML","onCreate","setEditable","commands","editorProps","handlePaste","view","pastedContent","clipboardData","getData","useMemo","debounce","value","_getNodes2","typing","setTyping","isAiGenerated","_node$data5","_node$data6","_node$data7","_editor$commands","_node$data8","_node$data8$editorHTM","clearContent","timeout","textInsertDelay","textContent","split","typeText","_editor$chain","_editor$chain$insertC","_editor$commands2","_node$data9","insertContent","setTimeout","setContent","clearTimeout","nodeId","omit","should_delete","removeInitialContentFlag","clickCount","locked","window","getSelection","empty","stopEventPropagation","preventDefault","stopPropagation","shouldShowPlaceholder","isEditable","isFocused","pointerEvents","display","flexDirection","clsx","nodrag","handleSingleClick","onDoubleClick","handleDoubleClick","selectAll","dragging","MindMapNodesToolbar","updateFontSize","currFontSize","simpleRef","EditorContent","visibility","async","response","doc","DOMParser","parseFromString","documentContent","querySelector","innerHTML","toString","_editor$chain2","_editor$chain2$insert","_editor$commands3","error","_error$message","message","process","REACT_APP_ENVIRONMENT","_error$response","_error$response$data","errorToast","prevProps","nextProps","globalDragging","onEmojiClick","emojiData","setEmojiData","EmojiMartAppleData","fetch","then","catch","console","Picker","onEmojiSelect","emoji","native","imageUrl","unified","set","emojiSize","ResizeLink","_node$data19","_node$data20","_node$data21","_node$data22","_node$data23","_node$data24","_node$data25","_node$data26","_node$data27","_node$data28","_node$data29","_node$data30","_node$data30$metaData","_node$data31","_node$data32","_node$data33","_node$data34","_node$data35","_node$data36","_node$data37","_node$data38","_node$data39","_node$data40","_node$data41","_node$data42","_node$data43","_node$data44","_node$data45","_node$data46","_node$data47","_node$data47$metaData","_node$data48","_node$data49","_node$data49$metaData","_node$data50","_node$data51","_node$data51$metaData","_node$data52","_node$data53","_node$data53$metaData","_node$data54","_node$data55","_node$data56","_node$data57","_node$data58","_node$data59","_node$data60","_node$data61","_node$data62","_node$data63","_node$data64","_node$data65","_node$data66","_node$data67","_node$data68","_node$data69","_node$data70","_node$data71","_node$data72","_node$data73","_node$data74","_node$data75","_node$data76","_node$data77","_node$data78","_node$data79","_node$data80","_node$data81","_node$data82","_node$data83","_node$data84","_node$data85","_node$data86","_node$data87","_node$data88","_node$data89","_node$data90","cardRef","editRef","setError","edit","setEdit","showLinkMoreOptions","setShowLinkMoreOptions","showEditLink","setShowEditLink","iframeOverly","setIframeOverlay","showCardSettings","setShowCardSettings","setZoomPercentages","previewLoading","setPreviewLoading","isCapturing","setIsCapturing","clickTimeout","inputRef","main","socket","useSocketContext","_mainRef$current","_mainRef$current2","newWidth","newHeight","isImgUrl","url","img","Image","src","Promise","resolve","onload","onerror","nd","_mainRef$current3","_mainRef$current4","previewType","_mainRef$current5","_mainRef$current6","handleFetchMetaData","finalUrl","validateUrl","imageRes","image","baseUrl","URL","origin","faviconUrl","isFaviconValid","description","favicon","fetchMetaData","_parsedData4","_parsedData5","metaData","textViewRation","cardViewRatio","_mainRef$current7","_mainRef$current8","err","handleUrlChange","target","handleRedirect","open","frameMoreOptionsRef","handleClickOutside","contains","addEventListener","removeEventListener","isItemToSmall","handleSettingChange","properties","_parsedData6","_nd$data4","on","socketEvents","NODE_UPDATED","_jsonData$nodes","jsonData","find","NodeToolbar","isVisible","Position","Top","p","marginBottom","alignContent","CustomNameTooltip","arrow","IconButton","transition","_parsedData7","_nd$data$textViewRati","_nd$data$textViewRati2","_nd$data$textViewRati3","_nd$data$textViewRati4","_nd$data$textViewRati5","_nd$data$textViewRati6","IcTextView","_parsedData8","_nd$data$cardViewRati","_nd$data$cardViewRati2","_nd$data$cardViewRati3","_nd$data$cardViewRati4","_nd$data$cardViewRati5","_nd$data$cardViewRati6","IcCardView","_parsedData9","_nd$data$preViewRatio","_nd$data$preViewRatio2","_nd$data$preViewRatio3","_nd$data$preViewRatio4","_nd$data$preViewRatio5","_nd$data$preViewRatio6","preViewRation","IcPreview","CustomTooltip","PopperProps","disablePortal","onClose","disableFocusListener","disableHoverListener","disableTouchListener","minWidth","SimpleCheckBox","labelFontSize","labelStyle","mainSx","checked","showImage","onChange","showTitle","showDescription","IcSettingsOutlined","IcRedirectTo","toggleLockUnlock","_parsedData3","_parsedData2","_nd$data","_nd$data2","_nd$data3","_nd$data3$data","IcLockLocked","IcLockUnLocked","FrameMoreMenus","showRename","showDuplicate","showCopyAsImage","showAddComment","showLockUnlock","showCopyLink","showLinkTo","showDelete","exportShow","showBringToFrontAndBack","showFrame","setShowFrameMoreOptions","handleIsCapturing","toggleCapture","ToolTipWithDisabled","tooltipTitle","disabled","IcMenuDotsVertical","onMouseLeave","margin","onMouseDownCapture","top","left","NodeResizer","minHeight","handleStyle","keepAspectRatio","maxWidth","maxHeight","justifyContent","CircularProgress","size","mb","outline","wordBreak","textAlign","lineHeight","px","borderBottomLeftRadius","borderTopLeftRadius","borderRight","Width","overflow","right","transitionDuration","IcEyeOpen","draggable","onLoad","onMouseOverCapture","IcInfoOutlined","IcLinkOutlined3","onFocus","input","selectionStart","selectionEnd","clickPosition","nativeEvent","offsetX","scrollWidth","cursorIndex","Math","floor","setSelectionRange","onBlur","textDecoration","href","rel","marginRight","marginLeft","handleEditClick","_inputRef$current","select","IcEditlink","disableText","editorIcon","objectFit","alt","IcNetwork","backgroundImage","backgroundRepeat","backgroundSize","backgroundPosition","link","textOverflow","WebkitLineClamp","WebkitBoxOrient","handleRedirectDescription","onWheelCapture","memo"],"sourceRoot":""}