@bigbinary/neeto-editor-frontend 2.3.2 → 2.4.0-beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.ready +1 -1
- package/dist/cjs/v2/Editor.cjs.js +4 -1
- package/dist/cjs/v2/Editor.cjs.js.map +1 -1
- package/dist/editor-stats.html +1 -1
- package/dist/v2/Editor.js +4 -1
- package/dist/v2/Editor.js.map +1 -1
- package/package.json +11 -11
package/dist/v2/Editor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Editor.js","sources":["../../app/javascript/src/v2/components/Common/ErrorWrapper.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/CharacterCount/index.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/Attachment/constants.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Attachment/utils.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Attachment/AttachmentComponent.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/Attachment/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/BackgroundColor/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/BulletList/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Callout/CalloutComponent.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/Callout/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/CodeBlock/plugins.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/CodeBlock/constants.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/CodeBlock/CodeBlockComponent.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/CodeBlock/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/CustomCommands/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/DeletedArticleDecoration/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/EditorContainer/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Emoji/EmojiPicker/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Emoji/EmojiSuggestion/constants.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Emoji/EmojiSuggestion/utils.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Emoji/EmojiSuggestion/EmojiSuggestionMenu.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/Emoji/EmojiSuggestion/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Image/constants.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Image/ImagePreviewModal.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/Image/Menu.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/Image/ImageComponent.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/Image/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Image/FigCaption.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Italic/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/KeyboardShortcuts/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Link/constants.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Link/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Mention/MentionList.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/Mention/utils.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Mention/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/OrderedList/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Placeholder/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/SelectionDecoration/ExtensionConfig.js","../../node_modules/@popperjs/core/lib/enums.js","../../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../../node_modules/@popperjs/core/lib/utils/math.js","../../node_modules/@popperjs/core/lib/utils/userAgent.js","../../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../../node_modules/@popperjs/core/lib/dom-utils/contains.js","../../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../../node_modules/@popperjs/core/lib/utils/getVariation.js","../../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/SlashCommands/constants.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/SlashCommands/utils.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/SlashCommands/Menu.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/SlashCommands/CommandsList.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/SlashCommands/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/SpecialMentions/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Table/constants.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Table/actionPreviewPlugin.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Table/TableView.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Table/utils.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Table/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/TodoList/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Variable/constants.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Variable/VariableComponent.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/Variable/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Video/VideoComponent.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/Embeds/EmbedComponent.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/Video/ExtensionConfig.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/hooks/useCustomExtensions.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/LinkKbArticles/constants.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/LinkKbArticles/hooks/useArticleNavigation.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/LinkKbArticles/utils.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/LinkKbArticles/ArticlesList.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/LinkKbArticles/ArticlePicker.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/LinkKbArticles/ArticleSelector.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/Table/TableActionMenu.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/LinkKbArticles/KbArticleDeletedModal.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/LinkKbArticles/KbArticleEdit.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/LinkKbArticles/KbArticleView.jsx","../../app/javascript/src/v2/components/Editor/LinkPopOver.jsx","../../app/javascript/src/v2/components/Editor/index.jsx"],"sourcesContent":["import { memo } from \"react\";\n\nimport classnames from \"classnames\";\nimport { isNotPresent } from \"neetocist\";\nimport { is } from \"ramda\";\n\nconst ErrorWrapper = ({ error, children, className }) => {\n const isError = !isNotPresent(error);\n const wrapperClasses = classnames({\n \"neeto-editor-error\": isError,\n [className]: className,\n });\n\n const getErrorMessage = () => {\n if (!error) return null;\n\n let message;\n\n if (is(String, error)) {\n message = error;\n } else if (is(Array, error)) {\n message = error[0];\n } else if (is(Object, error)) {\n message = error.message;\n }\n\n if (isNotPresent(message)) return null;\n\n return message;\n };\n\n return (\n <>\n <div className={wrapperClasses}>{children}</div>\n {isError && (\n <p\n className=\"neeto-ui-input__error\"\n data-testid=\"neeto-editor-error-text\"\n >\n {getErrorMessage()}\n </p>\n )}\n </>\n );\n};\n\nexport default memo(ErrorWrapper);\n","import { useEditorState } from \"@tiptap/react\";\n\nconst CharacterCountWrapper = ({ editor, children }) => {\n const characters = useEditorState({\n editor,\n selector: ({ editor }) => editor?.storage.characterCount.characters() ?? 0,\n });\n\n if (!editor) return children;\n\n return (\n <>\n {children}\n <p\n className=\"neeto-editor-character-count\"\n data-testid=\"neeto-editor-character-count\"\n >\n {characters} characters\n </p>\n </>\n );\n};\n\nexport default CharacterCountWrapper;\n","export const NODE_NAME = \"attachment\";\n\n// Files larger than this are shown as a chip, never as an inline preview.\nexport const DEFAULT_INLINE_PREVIEW_MAX_SIZE = 20 * 1024 * 1024;\n\nexport const PDF_THUMBNAIL_WIDTH = 800;\n\nexport const PREVIEW_TYPES = { IMAGE: \"image\", VIDEO: \"video\", PDF: \"pdf\" };\n\nexport const INLINE_PREVIEW_IMAGE_TYPES = [\n \"image/jpeg\",\n \"image/jpg\",\n \"image/png\",\n \"image/gif\",\n \"image/webp\",\n];\n\nexport const PDF_CONTENT_TYPE = \"application/pdf\";\n","import { isPresent } from \"neetocist\";\n\nimport DirectUpload from \"utils/DirectUpload\";\n\nimport {\n INLINE_PREVIEW_IMAGE_TYPES,\n PDF_CONTENT_TYPE,\n PDF_THUMBNAIL_WIDTH,\n PREVIEW_TYPES,\n} from \"./constants\";\n\n// pdf.js normally runs in a web worker loaded from a separate file, which a\n// host app bundling this package can't be relied on to serve. Exposing the\n// worker module on `globalThis.pdfjsWorker` makes pdf.js run it in-page.\nconst loadPdfjs = async () => {\n const [pdfjs, worker] = await Promise.all([\n import(\"pdfjs-dist\"),\n import(\"pdfjs-dist/build/pdf.worker.min.mjs\"),\n ]);\n globalThis.pdfjsWorker ??= worker;\n\n return pdfjs;\n};\n\nconst canvasToBlob = canvas =>\n new Promise(resolve => canvas.toBlob(resolve, \"image/png\"));\n\nexport const getPreviewType = (\n { contentType, size, thumbnailUrl },\n maxSize\n) => {\n if (!contentType || (isPresent(size) && Number(size) > maxSize)) return null;\n\n if (INLINE_PREVIEW_IMAGE_TYPES.includes(contentType)) {\n return PREVIEW_TYPES.IMAGE;\n }\n\n if (contentType.startsWith(\"video/\")) return PREVIEW_TYPES.VIDEO;\n\n if (contentType === PDF_CONTENT_TYPE && isPresent(thumbnailUrl)) {\n return PREVIEW_TYPES.PDF;\n }\n\n return null;\n};\n\nexport const getPreviewSrc = ({ url, thumbnailUrl }, previewType) =>\n previewType === PREVIEW_TYPES.PDF ? thumbnailUrl : url;\n\nexport const uploadFile = async (file, endpoint) => {\n const { data = {}, ...response } = await new DirectUpload({\n file,\n url: endpoint,\n }).create();\n\n return {\n url: data.blob_url ?? response.blob_url,\n signedId: data.signed_id ?? response.signed_id,\n };\n};\n\nexport const generatePdfThumbnail = async file => {\n const pdfjs = await loadPdfjs();\n const pdf = await pdfjs.getDocument({ data: await file.arrayBuffer() })\n .promise;\n\n try {\n const page = await pdf.getPage(1);\n const { width } = page.getViewport({ scale: 1 });\n const viewport = page.getViewport({ scale: PDF_THUMBNAIL_WIDTH / width });\n\n const canvas = document.createElement(\"canvas\");\n canvas.width = viewport.width;\n canvas.height = viewport.height;\n await page.render({ canvasContext: canvas.getContext(\"2d\"), viewport })\n .promise;\n\n const blob = await canvasToBlob(canvas);\n if (!blob) return null;\n\n const name = `${file.name.replace(/\\.pdf$/i, \"\")}-preview.png`;\n\n return new File([blob], name, { type: \"image/png\" });\n } finally {\n pdf.destroy();\n }\n};\n\nexport const findNodePosByUploadId = (doc, uploadId) => {\n let foundPos = -1;\n doc.descendants((node, pos) => {\n if (foundPos !== -1) return false;\n\n if (node.attrs?.uploadId === uploadId) foundPos = pos;\n\n return foundPos === -1;\n });\n\n return foundPos;\n};\n\nexport const countAttachmentNodes = (doc, nodeName) => {\n let count = 0;\n doc.descendants(node => {\n if (node.type.name === nodeName) count += 1;\n });\n\n return count;\n};\n","import { lazy, Suspense, useState } from \"react\";\n\nimport { NodeViewWrapper } from \"@tiptap/react\";\nimport { Download, ExternalLink, Eye, Trash2 } from \"lucide-react\";\nimport { Button, Spinner, Tooltip } from \"neetoatoms\";\nimport { noop } from \"neetocist\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n checkPreviewAvailability,\n downloadFile,\n} from \"src/v2/components/Attachments/utils\";\nimport FileIcon from \"src/v2/components/Common/FileIcon\";\nimport { convertToFileSize } from \"src/v2/components/Editor/MediaUploader/utils\";\n\nimport { PREVIEW_TYPES } from \"./constants\";\nimport { getPreviewSrc, getPreviewType } from \"./utils\";\n\nconst Preview = lazy(() => import(\"src/v2/components/Attachments/Preview\"));\n\nconst AttachmentComponent = ({ node, extension, editor, deleteNode }) => {\n const { t } = useTranslation();\n const [isPreviewOpen, setIsPreviewOpen] = useState(false);\n\n const { url, filename, contentType, size, signedId, uploadId } = node.attrs;\n const attachment = { url, filename, contentType, size, signedId };\n\n const previewType = getPreviewType(\n node.attrs,\n extension.options.previewMaxSize\n );\n const previewSrc = getPreviewSrc(node.attrs, previewType);\n const canView = checkPreviewAvailability(contentType);\n\n const actions = [\n canView && {\n key: \"view\",\n icon: Eye,\n label: t(\"neetoEditor.attachments.view\"),\n onClick: () => setIsPreviewOpen(true),\n },\n {\n key: \"download\",\n icon: Download,\n label: t(\"neetoEditor.common.download\"),\n onClick: () => downloadFile(url, filename),\n },\n {\n key: \"open\",\n icon: ExternalLink,\n label: t(\"neetoEditor.common.openInNewTab\"),\n onClick: () => window.open(url, \"_blank\", \"noopener,noreferrer\"),\n },\n editor.isEditable && {\n key: \"delete\",\n icon: Trash2,\n label: t(\"neetoEditor.menu.delete\"),\n onClick: deleteNode,\n },\n ].filter(Boolean);\n\n if (uploadId) {\n return (\n <NodeViewWrapper\n className=\"neeto-editor__attachment neeto-editor__attachment--uploading\"\n data-testid=\"neeto-editor-attachment-uploading\"\n >\n <div className=\"neeto-editor__attachment-file\">\n <Spinner />\n <span className=\"neeto-editor__attachment-name\">{filename}</span>\n <span className=\"neeto-editor__attachment-size\">\n {t(\"neetoEditor.attachments.uploading\")}\n </span>\n </div>\n </NodeViewWrapper>\n );\n }\n\n return (\n <NodeViewWrapper\n data-drag-handle\n className=\"neeto-editor__attachment\"\n data-testid=\"neeto-editor-attachment\"\n >\n {previewType && (\n <div\n className=\"neeto-editor__attachment-preview\"\n onClick={\n previewType === PREVIEW_TYPES.VIDEO\n ? noop\n : () => setIsPreviewOpen(true)\n }\n >\n {previewType === PREVIEW_TYPES.VIDEO ? (\n <video controls playsInline preload=\"metadata\" src={previewSrc} />\n ) : (\n <img alt={filename} draggable={false} src={previewSrc} />\n )}\n </div>\n )}\n <div className=\"neeto-editor__attachment-file\">\n <FileIcon\n className=\"neeto-editor__attachment-icon\"\n fileName={filename}\n />\n <span className=\"neeto-editor__attachment-name\">{filename}</span>\n {size && (\n <span className=\"neeto-editor__attachment-size\">\n {convertToFileSize(Number(size))}\n </span>\n )}\n <div className=\"neeto-editor__attachment-actions\">\n {actions.map(({ key, icon, label, onClick }) => (\n <Tooltip content={label} key={key} position=\"top\">\n <Button\n {...{ icon, onClick }}\n aria-label={label}\n data-testid={`neeto-editor-attachment-${key}-button`}\n size=\"sm\"\n variant=\"ghost\"\n />\n </Tooltip>\n ))}\n </div>\n </div>\n <Suspense fallback={<span />}>\n {isPreviewOpen && (\n <Preview\n attachments={[attachment]}\n selectedAttachment={attachment}\n setDidFetchPreviewBundle={noop}\n setSelectedAttachment={noop}\n onClose={() => setIsPreviewOpen(false)}\n />\n )}\n </Suspense>\n </NodeViewWrapper>\n );\n};\n\nexport default AttachmentComponent;\n","import { Node } from \"@tiptap/core\";\nimport { Plugin } from \"@tiptap/pm/state\";\nimport { ReactNodeViewRenderer } from \"@tiptap/react\";\nimport { t } from \"i18next\";\nimport { Toastr } from \"neetoatoms\";\nimport { isEmpty } from \"ramda\";\n\nimport { getRandomString } from \"hooks/utils\";\nimport { buildFileUploadConfig } from \"src/v2/components/Attachments/utils\";\nimport { convertToFileSize } from \"src/v2/components/Editor/MediaUploader/utils\";\nimport { selectFiles } from \"src/v2/hooks/utils/fileUploader\";\n\nimport AttachmentComponent from \"./AttachmentComponent\";\nimport {\n DEFAULT_INLINE_PREVIEW_MAX_SIZE,\n NODE_NAME,\n PDF_CONTENT_TYPE,\n PREVIEW_TYPES,\n} from \"./constants\";\nimport {\n countAttachmentNodes,\n findNodePosByUploadId,\n generatePdfThumbnail,\n getPreviewSrc,\n getPreviewType,\n uploadFile,\n} from \"./utils\";\n\nconst dataAttribute = (name, attribute) => ({\n default: null,\n parseHTML: element => element.getAttribute(attribute),\n renderHTML: attributes =>\n attributes[name] ? { [attribute]: attributes[name] } : {},\n});\n\nconst uploadThumbnail = async (file, endpoint) => {\n try {\n const thumbnail = await generatePdfThumbnail(file);\n\n return thumbnail ? (await uploadFile(thumbnail, endpoint)).url : null;\n } catch (error) {\n // A missing thumbnail only means the PDF is shown as a chip.\n // eslint-disable-next-line no-console\n console.error(\"Failed to generate the PDF thumbnail\", error);\n\n return null;\n }\n};\n\nexport default Node.create({\n name: NODE_NAME,\n\n group: \"block\",\n\n atom: true,\n\n draggable: true,\n\n selectable: true,\n\n addOptions() {\n return {\n config: {},\n previewMaxSize: DEFAULT_INLINE_PREVIEW_MAX_SIZE,\n getExternalAttachmentsCount: () => 0,\n setIsUploading: () => {},\n };\n },\n\n addStorage() {\n return { pendingUploadsCount: 0 };\n },\n\n addAttributes() {\n return {\n url: dataAttribute(\"url\", \"data-url\"),\n filename: dataAttribute(\"filename\", \"data-filename\"),\n contentType: dataAttribute(\"contentType\", \"data-content-type\"),\n size: dataAttribute(\"size\", \"data-size\"),\n signedId: dataAttribute(\"signedId\", \"data-signed-id\"),\n thumbnailUrl: dataAttribute(\"thumbnailUrl\", \"data-thumbnail-url\"),\n uploadId: { default: null, rendered: false },\n };\n },\n\n parseHTML() {\n return [{ tag: \"div[data-attachment]\" }];\n },\n\n renderHTML({ node, HTMLAttributes }) {\n const { url, filename, size } = node.attrs;\n\n // Still uploading: leave nothing behind in the saved HTML.\n if (!url) return [\"span\"];\n\n const previewType = getPreviewType(node.attrs, this.options.previewMaxSize);\n const linkAttrs = {\n href: url,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n };\n const previewSrc = getPreviewSrc(node.attrs, previewType);\n\n const preview =\n previewType === PREVIEW_TYPES.VIDEO\n ? [\n \"video\",\n {\n src: previewSrc,\n controls: true,\n playsinline: true,\n preload: \"metadata\",\n },\n ]\n : [\n \"a\",\n linkAttrs,\n [\"img\", { src: previewSrc, alt: filename, loading: \"lazy\" }],\n ];\n\n const file = [\n \"a\",\n { ...linkAttrs, class: \"neeto-editor__attachment-file\" },\n [\"span\", { class: \"neeto-editor__attachment-name\" }, filename],\n ...(size\n ? [\n [\n \"span\",\n { class: \"neeto-editor__attachment-size\" },\n convertToFileSize(Number(size)),\n ],\n ]\n : []),\n ];\n\n return [\n \"div\",\n {\n ...HTMLAttributes,\n \"data-attachment\": \"\",\n class: \"neeto-editor__attachment\",\n },\n ...(previewType\n ? [[\"div\", { class: \"neeto-editor__attachment-preview\" }, preview]]\n : []),\n file,\n ];\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(AttachmentComponent);\n },\n\n addCommands() {\n return {\n uploadAttachments:\n (files, position) =>\n ({ editor }) => {\n this.storage.uploadFiles(editor, Array.from(files), position);\n\n return true;\n },\n };\n },\n\n onCreate() {\n const { options, storage } = this;\n const config = buildFileUploadConfig(options.config);\n const endpoint = config.directUploadEndpoint;\n\n const updateUploadingState = delta => {\n storage.pendingUploadsCount += delta;\n options.setIsUploading(storage.pendingUploadsCount > 0);\n };\n\n const replacePlaceholder = (editor, uploadId, attrs) => {\n if (editor.isDestroyed) return;\n\n const { state, view } = editor;\n const pos = findNodePosByUploadId(state.doc, uploadId);\n if (pos === -1) return; // Removed by the user while uploading.\n\n const node = state.doc.nodeAt(pos);\n const tr = attrs\n ? state.tr.setNodeMarkup(pos, undefined, { ...node.attrs, ...attrs })\n : state.tr.delete(pos, pos + node.nodeSize);\n view.dispatch(tr.setMeta(\"addToHistory\", false));\n };\n\n const uploadPlaceholder = async (editor, { file, uploadId }) => {\n try {\n const shouldGenerateThumbnail =\n file.type === PDF_CONTENT_TYPE && file.size <= options.previewMaxSize;\n\n const [uploaded, thumbnailUrl] = await Promise.all([\n uploadFile(file, endpoint),\n shouldGenerateThumbnail ? uploadThumbnail(file, endpoint) : null,\n ]);\n\n replacePlaceholder(editor, uploadId, {\n ...uploaded,\n thumbnailUrl,\n uploadId: null,\n });\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Attachment upload failed\", error);\n replacePlaceholder(editor, uploadId, null);\n Toastr.error(t(\"neetoEditor.error.uploadFileFailed\"));\n } finally {\n updateUploadingState(-1);\n }\n };\n\n storage.uploadFiles = (editor, files, position) => {\n const selectedFiles = selectFiles({\n previousAttachmentsCount:\n countAttachmentNodes(editor.state.doc, NODE_NAME) +\n options.getExternalAttachmentsCount(),\n config,\n files,\n });\n\n if (isEmpty(selectedFiles)) return;\n\n const placeholders = selectedFiles.map(file => ({\n file,\n uploadId: getRandomString(),\n }));\n\n const nodes = placeholders.map(({ file, uploadId }) => ({\n type: NODE_NAME,\n attrs: {\n uploadId,\n filename: file.name,\n contentType: file.type,\n size: file.size,\n },\n }));\n\n editor\n .chain()\n .focus()\n .insertContentAt(position ?? editor.state.selection, nodes)\n .run();\n\n updateUploadingState(placeholders.length);\n placeholders.forEach(placeholder =>\n uploadPlaceholder(editor, placeholder)\n );\n };\n },\n\n addProseMirrorPlugins() {\n const { editor, storage } = this;\n\n return [\n new Plugin({\n props: {\n handleDrop: (view, event, _slice, moved) => {\n const files = Array.from(event.dataTransfer?.files ?? []);\n if (moved || isEmpty(files)) return false;\n\n const coordinates = view.posAtCoords({\n left: event.clientX,\n top: event.clientY,\n });\n event.preventDefault();\n storage.uploadFiles(editor, files, coordinates?.pos);\n\n return true;\n },\n // Pasted images are handled by the image extension.\n handlePaste: (_view, event) => {\n const files = Array.from(event.clipboardData?.files ?? []).filter(\n file => !/image/i.test(file.type)\n );\n if (isEmpty(files)) return false;\n\n storage.uploadFiles(editor, files);\n\n return true;\n },\n },\n }),\n ];\n },\n});\n","import { Extension } from \"@tiptap/core\";\nimport \"@tiptap/extension-text-style\";\n\nexport default Extension.create({\n name: \"HighlightInternal\",\n\n addOptions() {\n return { types: [\"textStyle\"] };\n },\n\n addGlobalAttributes() {\n return [\n {\n types: this.options.types,\n attributes: {\n backgroundColor: {\n default: null,\n parseHTML: element =>\n element.style.backgroundColor.replace(/['\"]+/g, \"\"),\n renderHTML: attributes => {\n if (!attributes.backgroundColor) {\n return {};\n }\n\n return {\n style: `background-color: ${attributes.backgroundColor}`,\n };\n },\n },\n },\n },\n ];\n },\n\n addCommands() {\n return {\n setHighlightInternal:\n color =>\n ({ chain }) =>\n chain().setMark(\"textStyle\", { backgroundColor: color }).run(),\n unsetHighlightInternal:\n () =>\n ({ chain }) =>\n chain().setMark(\"textStyle\", { backgroundColor: null }).run(),\n };\n },\n});\n","import { BulletList } from \"@tiptap/extension-list\";\n\nexport default BulletList.configure({\n HTMLAttributes: { class: \"bulletList\" },\n itemTypeName: \"listItem\",\n});\n","import { NodeViewContent, NodeViewWrapper } from \"@tiptap/react\";\nimport { findBy } from \"neetocist\";\nimport { Megaphone } from \"neetoicons/misc\";\n\nimport { CALLOUT_TYPES } from \"src/v2/components/Editor/Menu/Fixed/components/CalloutDropdown/constants\";\n\nconst CalloutComponent = ({ node }) => {\n const { type } = node.attrs;\n const Icon = findBy({ type }, CALLOUT_TYPES)?.icon || Megaphone;\n\n return (\n <NodeViewWrapper\n className={`neeto-editor__callout neeto-editor__callout--${type} group`}\n data-emoji={type}\n >\n <div className=\"callout-container\">\n <span className=\"callout-emoji\">\n <Icon />\n </span>\n <NodeViewContent\n className=\"callout-content\"\n data-testid=\"callout-content\"\n />\n </div>\n </NodeViewWrapper>\n );\n};\n\nexport default CalloutComponent;\n","import { Node, mergeAttributes } from \"@tiptap/core\";\nimport { ReactNodeViewRenderer } from \"@tiptap/react\";\nimport { findBy } from \"neetocist\";\nimport { Megaphone } from \"neetoicons/misc\";\nimport ReactDOM from \"react-dom/server\";\n\nimport { CALLOUT_TYPES } from \"src/v2/components/Editor/Menu/Fixed/components/CalloutDropdown/constants\";\n\nimport CalloutComponent from \"./CalloutComponent\";\n\nexport default Node.create({\n name: \"callout\",\n\n inline: false,\n\n group: \"block\",\n\n content: \"block+\",\n\n defining: true,\n\n draggable: true,\n\n addAttributes() {\n return {\n type: {\n default: \"default\",\n parseHTML: element => element.getAttribute(\"data-type\") || \"default\",\n renderHTML: attributes => ({ \"data-type\": attributes.type }),\n },\n };\n },\n\n parseHTML() {\n return [{ tag: \"div[data-emoji]\", contentElement: \".callout-content\" }];\n },\n\n renderHTML({ HTMLAttributes, node }) {\n const { type } = node.attrs;\n const Icon = findBy({ type }, CALLOUT_TYPES)?.icon || Megaphone;\n // eslint-disable-next-line react/jsx-filename-extension\n const svgString = ReactDOM.renderToStaticMarkup(<Icon />);\n\n const svgContainer = document.createElement(\"div\");\n svgContainer.innerHTML = svgString;\n const svgNode = svgContainer.firstChild;\n\n return [\n \"div\",\n mergeAttributes(this.options.HTMLAttributes, HTMLAttributes, {\n class: `neeto-editor__callout neeto-editor__callout--${type}`,\n \"data-emoji\": type,\n }),\n [\n \"div\",\n { class: \"callout-container\" },\n [\"span\", { class: \"callout-emoji\" }, svgNode],\n [\"div\", { class: \"callout-content\" }, 0],\n ],\n ];\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(CalloutComponent);\n },\n\n addCommands() {\n return {\n setCallout:\n (attributes = {}) =>\n ({ chain }) => {\n const { type = \"default\" } = attributes;\n\n return chain()\n .toggleWrap(this.name, { type })\n .command(({ tr, state, dispatch }) => {\n const { selection } = state;\n const { $from } = selection;\n\n const calloutNode = $from.node($from.depth - 1);\n\n if (calloutNode?.type.name === \"callout\") {\n const pos = $from.after($from.depth - 1);\n const nextNode = state.doc.nodeAt(pos);\n\n if (!nextNode || nextNode.type.name !== \"paragraph\") {\n tr.insert(pos, state.schema.nodes.paragraph.create());\n }\n }\n\n if (dispatch) {\n dispatch(tr);\n }\n\n return true;\n })\n .focus()\n .run();\n },\n };\n },\n\n addKeyboardShortcuts() {\n return {\n Backspace: () => {\n const { state, commands } = this.editor;\n const { $from, empty } = state.selection;\n\n if (!empty) return false;\n\n if ($from.parentOffset === 0) {\n const currentNode = $from.parent;\n\n if (currentNode.content.size === 0) {\n return commands.lift(this.name);\n }\n\n const calloutNode = $from.node($from.depth - 1);\n if (calloutNode?.type.name === \"callout\") {\n return commands.lift(this.name);\n }\n }\n\n return false;\n },\n ArrowDown: () => {\n const { state, commands } = this.editor;\n const { $from, empty } = state.selection;\n\n if (!empty) return false;\n\n const currentNode = $from.parent;\n const calloutNode = $from.node($from.depth - 1);\n\n if (calloutNode?.type.name === \"callout\") {\n const isAtEnd = $from.parentOffset === currentNode.content.size;\n\n const calloutContent = calloutNode.content;\n const currentNodeIndex = $from.index($from.depth - 1);\n const isLastNode = currentNodeIndex === calloutContent.childCount - 1;\n\n if (isAtEnd && isLastNode) {\n const pos = $from.after($from.depth - 1);\n\n if (pos < state.doc.content.size) {\n const nextNode = state.doc.nodeAt(pos);\n if (nextNode) {\n const endPos = pos + nextNode.nodeSize - 1;\n\n return commands.setTextSelection(endPos);\n }\n\n return commands.setTextSelection(pos);\n }\n\n return (\n commands.insertContentAt(pos, { type: \"paragraph\" }) &&\n commands.setTextSelection(pos + 1)\n );\n }\n }\n\n return false;\n },\n };\n },\n});\n","/* eslint-disable @bigbinary/neeto/file-name-and-export-name-standards */\nimport { Plugin, PluginKey } from \"prosemirror-state\";\nimport { Decoration, DecorationSet } from \"prosemirror-view\";\n\nconst codeBlockHighlightKey = new PluginKey(\"codeBlockHighlight\");\n\nfunction createLineDecoration(from, lineNumber) {\n return Decoration.widget(from, view => {\n const line = document.createElement(\"div\");\n line.className = \"highlighted-line\";\n line.setAttribute(\"data-line-number\", lineNumber.toString());\n\n // Set the height of the highlight to match the line height\n const lineElement = view.domAtPos(from).node;\n if (lineElement instanceof Element) {\n const lineHeight = window.getComputedStyle(lineElement).lineHeight;\n line.style.height = lineHeight;\n }\n\n return line;\n });\n}\n\nfunction getLineRanges(node, pos) {\n const lines = node.textContent.split(\"\\n\");\n let currentPos = pos + 1; // +1 to skip the opening tag of the code block\n\n return lines.map((line, index) => {\n const from = currentPos;\n const to = from + line.length; // +1 for newline, except last line\n currentPos = to + (index < lines.length - 1 ? 1 : 0);\n\n return { from, to, lineNumber: index + 1 };\n });\n}\n\nconst codeBlockHighlightPlugin = new Plugin({\n key: codeBlockHighlightKey,\n state: {\n init() {\n return DecorationSet.empty;\n },\n apply(tr, set) {\n set = set.map(tr.mapping, tr.doc);\n\n if (tr.getMeta(codeBlockHighlightKey)) {\n const decorations = [];\n tr.doc.descendants((node, pos) => {\n if (node.type.name !== \"codeBlock\") return;\n\n const highlightedLines = node.attrs.highlightedLines || [];\n const lineRanges = getLineRanges(node, pos);\n\n lineRanges.forEach(({ from, lineNumber }) => {\n if (highlightedLines.includes(lineNumber)) {\n decorations.push(createLineDecoration(from, lineNumber));\n }\n });\n });\n\n return DecorationSet.create(tr.doc, decorations);\n }\n\n return set;\n },\n },\n props: {\n decorations(state) {\n return this.getState(state);\n },\n },\n});\n\nexport { codeBlockHighlightPlugin, codeBlockHighlightKey };\n","import { t } from \"i18next\";\nimport { lowlight } from \"lowlight\";\n\nexport const SORTED_LANGUAGE_LIST = [\n ...lowlight.listLanguages(),\n \"html\",\n].sort();\n\nexport const LINE_NUMBER_OPTIONS = [\n { label: t(\"neetoEditor.codeblock.showLineNumbers\"), value: \"true\" },\n { label: t(\"neetoEditor.codeblock.hideLineNumbers\"), value: \"false\" },\n];\n","import { useRef, useState, useCallback, useEffect } from \"react\";\n\nimport { Button, DropdownMenu, Input } from \"@bigbinary/neeto-atoms\";\nimport { NodeViewWrapper, NodeViewContent } from \"@tiptap/react\";\nimport { ChevronDown, Highlighter } from \"lucide-react\";\nimport CopyToClipboardButton from \"neetomolecules/v2/CopyToClipboardButton\";\nimport { difference, intersection, union } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n LINE_NUMBER_OPTIONS,\n SORTED_LANGUAGE_LIST,\n} from \"src/v2/components/Editor/CustomExtensions/CodeBlock/constants\";\nimport { codeBlockHighlightKey } from \"src/v2/components/Editor/CustomExtensions/CodeBlock/plugins\";\n\nconst { Menu, MenuItem } = DropdownMenu;\n\nconst CodeBlockComponent = ({ node, editor, updateAttributes }) => {\n const [keyword, setKeyword] = useState(\"\");\n const [showHighlightButton, setShowHighlightButton] = useState(false);\n const [showLineNumbers, setShowLineNumbers] = useState(\n node.attrs.linenumbers\n );\n const ref = useRef();\n\n const { t } = useTranslation();\n\n const filteredAndSortedLanguageList = SORTED_LANGUAGE_LIST.filter(language =>\n language.includes(keyword)\n );\n\n const handleLanguageSelect = language => {\n updateAttributes({ language });\n setKeyword(\"\");\n editor?.commands?.focus();\n };\n\n const handleContentMount = node => {\n if (ref.current && node?.offsetHeight) {\n ref.current.style.minHeight = `${node.offsetHeight}px`;\n }\n };\n\n const handleSelectionChange = useCallback(() => {\n const { from, to } = editor.state.selection;\n const isCodeBlockSelected = editor.isActive(\"codeBlock\");\n setShowHighlightButton(isCodeBlockSelected && from !== to);\n }, [editor]);\n\n useEffect(() => {\n editor.on(\"selectionUpdate\", handleSelectionChange);\n\n return () => {\n editor.off(\"selectionUpdate\", handleSelectionChange);\n };\n }, [editor, handleSelectionChange]);\n\n useEffect(() => {\n editor.view.dispatch(editor.state.tr.setMeta(codeBlockHighlightKey, true));\n }, []);\n\n const handleHighlight = () => {\n const { from, to } = editor.state.selection;\n const $from = editor.state.doc.resolve(from);\n\n const codeBlock = $from.node($from.depth);\n const codeBlockStart = $from.start($from.depth);\n\n const textBeforeSelection = codeBlock.textBetween(0, from - codeBlockStart);\n const startLine = textBeforeSelection.split(\"\\n\").length;\n const selectedText = codeBlock.textBetween(\n from - codeBlockStart,\n to - codeBlockStart\n );\n const selectedLines = selectedText.split(\"\\n\");\n\n const newSelectedLines = selectedLines.map((_, index) => startLine + index);\n const currentHighlightedLines = codeBlock.attrs.highlightedLines || [];\n\n const overlapLines = intersection(\n currentHighlightedLines,\n newSelectedLines\n );\n\n let highlightedLines;\n\n if (overlapLines.length === newSelectedLines.length) {\n highlightedLines = difference(currentHighlightedLines, newSelectedLines);\n } else {\n highlightedLines = union(currentHighlightedLines, newSelectedLines);\n }\n\n editor.commands.updateAttributes(codeBlock.type, { highlightedLines });\n editor.view.dispatch(editor.state.tr.setMeta(codeBlockHighlightKey, true));\n };\n\n return (\n <NodeViewWrapper\n className=\"ne-codeblock-nodeview-wrapper ne-codeblock--v2\"\n data-testid=\"neeto-editor-code-block\"\n >\n <div {...{ ref }}>\n <pre ref={handleContentMount}>\n <div\n className=\"neeto-editor-codeblock-options\"\n contentEditable={false}\n >\n <DropdownMenu\n buttonProps={{ size: \"sm\", variant: \"secondary\" }}\n dropdownProps={{ className: \"ne-editor-dropdown\" }}\n icon={ChevronDown}\n label={\n showLineNumbers === \"true\"\n ? LINE_NUMBER_OPTIONS[0].label\n : LINE_NUMBER_OPTIONS[1].label\n }\n >\n <Menu className=\"neeto-editor-codeblock-options__menu\">\n {LINE_NUMBER_OPTIONS.map(({ label, value }) => (\n <MenuItem\n key={label}\n onClick={() => {\n setShowLineNumbers(value);\n updateAttributes({ linenumbers: value });\n }}\n >\n {label}\n </MenuItem>\n ))}\n </Menu>\n </DropdownMenu>\n <DropdownMenu\n buttonProps={{ size: \"sm\", variant: \"secondary\" }}\n dropdownProps={{ className: \"ne-editor-dropdown\" }}\n icon={ChevronDown}\n label={node.attrs?.language || t(\"neetoEditor.common.auto\")}\n >\n <Input\n autoFocus\n className=\"neeto-editor-codeblock-options__input\"\n placeholder={t(\"neetoEditor.placeholders.searchLanguages\")}\n size=\"small\"\n value={keyword}\n onChange={e => setKeyword(e.target.value)}\n onClick={e => {\n e.preventDefault();\n e.stopPropagation();\n }}\n />\n <Menu className=\"neeto-editor-codeblock-options__menu\">\n {filteredAndSortedLanguageList.map(language => (\n <MenuItem\n key={language}\n onClick={() => handleLanguageSelect(language)}\n >\n {language || t(\"neetoEditor.common.auto\")}\n </MenuItem>\n ))}\n </Menu>\n </DropdownMenu>\n <CopyToClipboardButton\n size=\"sm\"\n value={node?.content?.content[0]?.text}\n variant=\"ghost\"\n />\n {showHighlightButton && (\n <Button\n icon={Highlighter}\n size=\"sm\"\n tooltipProps={{ content: t(\"neetoEditor.menu.highlight\") }}\n variant=\"secondary\"\n onClick={handleHighlight}\n />\n )}\n </div>\n <NodeViewContent as=\"code\" />\n </pre>\n </div>\n </NodeViewWrapper>\n );\n};\n\nexport default CodeBlockComponent;\n","import CodeBlockLowlight from \"@tiptap/extension-code-block-lowlight\";\nimport { ReactNodeViewRenderer } from \"@tiptap/react\";\nimport { lowlight } from \"lowlight\";\n\nimport { codeBlockHighlightPlugin } from \"src/v2/components/Editor/CustomExtensions/CodeBlock/plugins\";\n\nimport CodeBlockComponent from \"./CodeBlockComponent\";\n\nexport default CodeBlockLowlight.extend({\n addAttributes() {\n return {\n ...this.parent?.(),\n highlightedLines: {\n default: [],\n parseHTML: element =>\n element.dataset.highlightedLines\n ?.split(\",\")\n .map(Number)\n .filter(Boolean) || [],\n renderHTML: attributes => ({\n \"data-highlighted-lines\":\n attributes.highlightedLines?.join(\",\") ?? \"\",\n }),\n },\n linenumbers: {\n default: \"false\",\n parseHTML: element => element.dataset.linenumbers || \"false\",\n renderHTML: attributes =>\n attributes.linenumbers === \"true\"\n ? { \"data-linenumbers\": \"true\" }\n : {},\n },\n };\n },\n addProseMirrorPlugins() {\n return [...(this.parent?.() || []), codeBlockHighlightPlugin];\n },\n addNodeView() {\n return ReactNodeViewRenderer(CodeBlockComponent);\n },\n}).configure({ lowlight, defaultLanguage: \"plaintext\" });\n","import { Extension } from \"@tiptap/core\";\n\nexport default Extension.create({\n name: \"paste-unformatted\",\n\n addCommands() {\n return {\n pasteUnformatted:\n () =>\n async ({ editor }) => {\n const text = await navigator.clipboard.readText();\n editor.commands.insertContent(text);\n },\n };\n },\n});\n","import { Extension } from \"@tiptap/core\";\nimport { Plugin, PluginKey } from \"@tiptap/pm/state\";\nimport { Decoration, DecorationSet } from \"@tiptap/pm/view\";\n\nconst DeletedArticleDecoration = Extension.create({\n name: \"deletedArticleDecoration\",\n\n addOptions() {\n return { deletedArticleIds: new Set() };\n },\n\n addProseMirrorPlugins() {\n return [\n new Plugin({\n key: new PluginKey(\"deletedArticleDecoration\"),\n props: {\n decorations: ({ doc }) => {\n const decorations = [];\n\n doc.descendants((node, pos) => {\n if (!node.marks) return;\n\n node.marks.forEach(mark => {\n if (\n !(\n mark.type.name === \"link\" &&\n mark.attrs[\"data-neeto-kb-article\"] === \"true\" &&\n mark.attrs[\"data-article-id\"]\n )\n ) {\n return;\n }\n\n const articleId = mark.attrs[\"data-article-id\"];\n if (!this.options.deletedArticleIds.has(articleId)) return;\n\n const decoration = Decoration.inline(pos, pos + node.nodeSize, {\n \"data-article-deleted\": \"true\",\n class: \"neeto-kb-article-deleted\",\n });\n decorations.push(decoration);\n });\n });\n\n return DecorationSet.create(doc, decorations);\n },\n },\n }),\n ];\n },\n\n addCommands() {\n return {\n updateDeletedArticles: deletedArticleIds => () => {\n this.options.deletedArticleIds = deletedArticleIds;\n this.editor.view.updateState(this.editor.state);\n\n return true;\n },\n };\n },\n});\n\nexport default DeletedArticleDecoration;\n","import { Extension } from \"@tiptap/core\";\n\nconst EditorContainer = Extension.create({\n name: \"editorContainer\",\n\n addOptions() {\n return { containerRef: null, appendSuggestionsToBody: false };\n },\n\n addStorage() {\n return { containerRef: null, appendSuggestionsToBody: false };\n },\n\n onBeforeCreate() {\n this.storage.containerRef = this.options.containerRef;\n this.storage.appendSuggestionsToBody = this.options.appendSuggestionsToBody;\n },\n});\n\nexport default EditorContainer;\n","import { Node } from \"@tiptap/core\";\nimport { PluginKey } from \"@tiptap/pm/state\";\nimport { ReactRenderer } from \"@tiptap/react\";\nimport Suggestion from \"@tiptap/suggestion\";\nimport tippy from \"tippy.js\";\n\nimport { getSuggestionAppendTo } from \"src/v2/components/Editor/utils\";\n\nimport EmojiPickerMenu from \"./EmojiPickerMenu\";\n\nconst EmojiPickerPluginKey = new PluginKey(\"emoji-picker\");\n\nconst EmojiPicker = Node.create({\n name: \"emojiPicker\",\n\n group: \"inline\",\n\n inline: true,\n\n selectable: false,\n\n atom: true,\n\n addOptions() {\n return {\n suggestion: {\n char: \"::\",\n startOfLine: false,\n pluginKey: EmojiPickerPluginKey,\n items: () => [],\n\n render: () => {\n let reactRenderer;\n let popup;\n\n return {\n onStart(props) {\n reactRenderer = new ReactRenderer(EmojiPickerMenu, {\n props,\n editor: props.editor,\n });\n\n popup = tippy(\"body\", {\n theme: \"light\",\n getReferenceClientRect: props.clientRect,\n appendTo: getSuggestionAppendTo(props.editor),\n content: reactRenderer.element,\n showOnCreate: true,\n interactive: true,\n trigger: \"manual\",\n placement: \"bottom-start\",\n zIndex: 99999,\n });\n },\n\n onKeyDown(props) {\n return reactRenderer.ref?.onKeyDown(props);\n },\n\n onExit() {\n popup[0].destroy();\n reactRenderer.destroy();\n },\n };\n },\n },\n };\n },\n\n addProseMirrorPlugins() {\n return [Suggestion({ editor: this.editor, ...this.options.suggestion })];\n },\n});\n\nexport default EmojiPicker;\n","export const DEFAULT_EMOJI_PRIORITIES_LIST = [\n \"+1\",\n \"-1\",\n \"heart\",\n \"heart_eyes\",\n \"tada\",\n \"partying_face\",\n \"joy\",\n \"sob\",\n \"white_frowning_face\",\n \"rocket\",\n \"eyes\",\n \"raised_hands\",\n \"open_mouth\",\n];\n\nexport const EMOJI_QUERY_REGEX = /^[a-z0-9_+-]+$/i;\n","import { DEFAULT_EMOJI_PRIORITIES_LIST } from \"./constants\";\n\nexport const filterEmojiSuggestions = (suggestions, frequentlyUsedEmojis) => {\n const mergedEmojiList = DEFAULT_EMOJI_PRIORITIES_LIST.concat(\n frequentlyUsedEmojis.filter(\n emoji => !DEFAULT_EMOJI_PRIORITIES_LIST.includes(emoji)\n )\n );\n\n return suggestions\n .sort((a, b) => {\n const aIndex = mergedEmojiList.indexOf(a.id);\n const bIndex = mergedEmojiList.indexOf(b.id);\n if (aIndex === -1 && bIndex === -1) {\n return 0;\n } else if (aIndex === -1) {\n return 1;\n } else if (bIndex === -1) {\n return -1;\n }\n\n return aIndex - bIndex;\n })\n .slice(0, 5);\n};\n","import React from \"react\";\n\nimport { Spinner } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { init, SearchIndex } from \"emoji-mart\";\nimport { isNotEmpty } from \"neetocist\";\nimport { isEmpty } from \"ramda\";\n\nimport emojiPickerApi from \"apis/emoji_picker\";\nimport { filterEmojiSuggestions } from \"src/v2/components/Editor/CustomExtensions/Emoji/EmojiSuggestion/utils\";\n\nclass EmojiSuggestionMenu extends React.Component {\n state = {\n isLoading: false,\n selectedIndex: 0,\n emojiSuggestions: [],\n frequentlyUsedEmojis: {},\n };\n\n componentDidMount() {\n this.setState({\n frequentlyUsedEmojis: Object.keys(\n // eslint-disable-next-line @bigbinary/neeto/no-local-storage\n JSON.parse(localStorage.getItem(\"emoji-mart.frequently\") || \"{}\")\n ),\n });\n\n init({\n data: this.fetchEmojiData,\n theme: \"light\",\n previewPosition: \"none\",\n });\n this.searchEmojiAndSetState();\n }\n\n componentDidUpdate(oldProps) {\n if (this.props.query !== oldProps.query) {\n this.searchEmojiAndSetState();\n }\n }\n\n fetchEmojiData = async () => {\n this.setState({ isLoading: true });\n try {\n const { data } = await emojiPickerApi.fetch();\n this.setState({ isLoading: false });\n\n return data;\n } catch {\n this.setState({ isLoading: false });\n\n return {};\n }\n };\n\n // eslint-disable-next-line require-await\n searchEmoji = async () =>\n this.props.query ? SearchIndex.search(this.props.query) : [];\n\n searchEmojiAndSetState = async () => {\n try {\n const suggestions = await this.searchEmoji();\n const frequentlyUsedEmojis = this.state.frequentlyUsedEmojis;\n this.setState({\n emojiSuggestions: filterEmojiSuggestions(\n suggestions,\n frequentlyUsedEmojis\n ),\n });\n } catch {\n this.setState({ emojiSuggestions: [] });\n }\n };\n\n setEditorState = async () => {\n const suggestions = await this.searchEmoji();\n this.props.editor\n .chain()\n .focus()\n .deleteRange(this.props.range)\n .setEmoji(suggestions[0])\n .run();\n };\n\n onKeyDown = ({ event }) => {\n if (isEmpty(this.state.emojiSuggestions)) {\n return false;\n }\n\n if (event.key === \"ArrowLeft\" || event.key === \"ArrowDown\") {\n this.setState(({ selectedIndex, emojiSuggestions }) => ({\n selectedIndex:\n (selectedIndex + emojiSuggestions.length - 1) %\n emojiSuggestions.length,\n }));\n\n return true;\n }\n\n if (event.key === \"ArrowRight\" || event.key === \"ArrowUp\") {\n this.setState(({ selectedIndex, emojiSuggestions }) => ({\n selectedIndex: (selectedIndex + 1) % emojiSuggestions.length,\n }));\n\n return true;\n }\n\n if (event.key === \"Enter\") {\n this.selectItem(this.state.selectedIndex);\n\n return true;\n }\n\n if (event.key === \"Escape\") {\n this.props.editor.chain().focus().insertContent(\" \").run();\n\n return true;\n }\n\n return false;\n };\n\n selectItem = index => {\n this.props.editor\n .chain()\n .focus()\n .deleteRange(this.props.range)\n .setEmoji(this.state.emojiSuggestions[index])\n .run();\n };\n\n render() {\n if (isEmpty(this.state.emojiSuggestions)) {\n return null;\n }\n\n return (\n <div className=\"neeto-editor-emoji-suggestion\">\n {this.state.isLoading && <Spinner />}\n {!this.state.isLoading &&\n (isNotEmpty(this.state.emojiSuggestions) ? (\n this.state.emojiSuggestions.map((emoji, index) => (\n <div\n data-testid={`neeto-editor-emoji-suggestion-${emoji.id}`}\n key={emoji.id}\n className={classnames(\"neeto-editor-emoji-suggestion__item\", {\n \"neeto-editor-emoji-suggestion__item--selected\":\n index === this.state.selectedIndex,\n })}\n onClick={() => this.selectItem(index)}\n >\n {emoji.skins[0].native}\n </div>\n ))\n ) : (\n <p>No results</p>\n ))}\n </div>\n );\n }\n}\n\nexport default EmojiSuggestionMenu;\n","import { Node, mergeAttributes } from \"@tiptap/core\";\nimport { PluginKey } from \"@tiptap/pm/state\";\nimport { ReactRenderer } from \"@tiptap/react\";\nimport Suggestion from \"@tiptap/suggestion\";\nimport { isNil } from \"ramda\";\nimport tippy from \"tippy.js\";\n\nimport { EMOJI_QUERY_REGEX } from \"src/v2/components/Editor/CustomExtensions/Emoji/EmojiSuggestion/constants\";\nimport { getSuggestionAppendTo } from \"src/v2/components/Editor/utils\";\n\nimport EmojiSuggestionMenu from \"./EmojiSuggestionMenu\";\n\nconst EmojiSuggestionPluginKey = new PluginKey(\"emoji-suggestion\");\nconst EmojiSuggestion = Node.create({\n name: \"emojiSuggestion\",\n\n group: \"inline\",\n\n inline: true,\n\n selectable: false,\n\n atom: true,\n\n addOptions() {\n return {\n HTMLAttributes: { class: \"neeto-editor-emoji\" },\n renderEmoji({ node }) {\n return node.attrs.label;\n },\n suggestion: {},\n };\n },\n\n addAttributes() {\n return {\n label: {\n default: null,\n parseHTML: element => element.getAttribute(\"data-label\"),\n renderHTML: attributes => {\n if (!attributes.label) {\n return {};\n }\n\n return { \"data-label\": attributes.label };\n },\n },\n };\n },\n\n parseHTML() {\n return [{ tag: \"span[data-emoji]\" }];\n },\n\n renderHTML({ node, HTMLAttributes }) {\n return [\n \"span\",\n mergeAttributes(\n { \"data-emoji\": \"\" },\n this.options.HTMLAttributes,\n HTMLAttributes\n ),\n this.options.renderEmoji({ node }),\n ];\n },\n\n renderText({ node }) {\n return this.options.renderEmoji({ node });\n },\n\n addCommands() {\n return {\n setEmoji:\n emoji =>\n ({ chain }) =>\n chain()\n .focus()\n .insertContent([\n {\n type: this.name,\n attrs: {\n label: emoji?.native || emoji?.skins[0]?.native || \"\",\n },\n },\n { type: \"text\", text: \" \" },\n ])\n .run(),\n };\n },\n\n addProseMirrorPlugins() {\n return [Suggestion({ editor: this.editor, ...this.options.suggestion })];\n },\n});\n\nconst suggestionConfig = {\n char: \":\",\n startOfLine: false,\n pluginKey: EmojiSuggestionPluginKey,\n command: ({ editor, range, props }) => {\n editor.chain().focus().deleteRange(range).setEmoji(props).run();\n },\n\n items: () => [],\n\n render: () => {\n let reactRenderer;\n let popup;\n\n return {\n onStart(props) {\n if (props.editor.view.input.lastKeyCode === 37) {\n reactRenderer = null;\n popup = null;\n }\n },\n\n onUpdate(props) {\n const isArrowNavigation =\n props.editor.view.input.lastKeyCode === 39 ||\n props.editor.view.input.lastKeyCode === 37;\n\n if (\n isNil(reactRenderer) &&\n !isArrowNavigation &&\n props.query.length === 1 &&\n EMOJI_QUERY_REGEX.test(props.query)\n ) {\n reactRenderer = new ReactRenderer(EmojiSuggestionMenu, {\n props,\n editor: props.editor,\n });\n\n popup = tippy(\"body\", {\n theme: \"neeto-editor-emoji-suggestion-tippy\",\n arrow: false,\n getReferenceClientRect: props.clientRect,\n appendTo: getSuggestionAppendTo(props.editor),\n content: reactRenderer.element,\n showOnCreate: true,\n interactive: true,\n trigger: \"manual\",\n placement: \"top-start\",\n zIndex: 99999,\n });\n }\n reactRenderer && reactRenderer.updateProps(props);\n\n !isNil(popup) &&\n popup[0]?.setProps({\n getReferenceClientRect: props.clientRect,\n });\n },\n\n onKeyDown(props) {\n return reactRenderer?.ref?.onKeyDown(props);\n },\n\n onExit() {\n !isNil(popup) && popup[0]?.destroy();\n reactRenderer?.destroy();\n reactRenderer = null;\n },\n };\n },\n};\n\nexport default EmojiSuggestion.configure({ suggestion: suggestionConfig });\n","const imageSkeletonContainer = document.createElement(\"div\");\nimageSkeletonContainer.classList.add(\"neeto-editor-image__skeleton\");\n\nconst imageSkeleton = document.createElement(\"div\");\nimageSkeleton.classList.add(\"skeleton\");\n\nimageSkeletonContainer.appendChild(imageSkeleton);\n\nexport const IMAGE_PLACEHOLDER = imageSkeletonContainer;\n\nexport const LARGE_IMAGE_ERROR = \"IMAGE_SIZE_LARGER\";\n","import { useEffect, useRef, useState } from \"react\";\n\nimport { Button, Spinner } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { X } from \"lucide-react\";\nimport { isPresent } from \"neetocist\";\nimport { useOnClickOutside } from \"neetocommons/v2/react-utils\";\nimport { createPortal } from \"react-dom\";\n\nconst ImagePreviewModal = ({ previewUrl, setPreviewUrl }) => {\n const [isLoading, setIsLoading] = useState(true);\n\n const imagePreviewRef = useRef(null);\n\n const handleClose = () => {\n setIsLoading(true);\n setPreviewUrl(null);\n };\n\n useOnClickOutside(imagePreviewRef, handleClose, {\n enabled: isPresent(previewUrl),\n });\n\n useEffect(() => {\n if (!previewUrl || !imagePreviewRef.current) return;\n\n imagePreviewRef.current.setAttribute(\"tabindex\", \"-1\");\n imagePreviewRef.current.focus();\n }, [previewUrl]);\n\n const handleKeyDown = e => {\n e.stopPropagation();\n e.key === \"Escape\" && handleClose();\n };\n\n if (!isPresent(previewUrl)) return null;\n\n return createPortal(\n <div className=\"ne-image-preview-wrapper active\">\n {isLoading && <Spinner className=\"ne-image-preview-wrapper__spinner\" />}\n <div\n className={classnames(\"ne-image-preview\", {\n \"image-loaded\": !isLoading,\n })}\n >\n {!isLoading && (\n <div className=\"close-button\">\n <Button icon={X} variant=\"secondary\" onClick={handleClose} />\n </div>\n )}\n <img\n alt=\"Preview\"\n ref={imagePreviewRef}\n src={previewUrl}\n onKeyDown={handleKeyDown}\n onLoad={() => setIsLoading(false)}\n />\n </div>\n </div>,\n document.body\n );\n};\n\nexport default ImagePreviewModal;\n","import { Button, DropdownMenu, Tooltip } from \"@bigbinary/neeto-atoms\";\nimport { t } from \"i18next\";\nimport {\n AlignCenter,\n AlignLeft,\n AlignRight,\n ChevronDown,\n Ellipsis,\n Ratio,\n RectangleHorizontal,\n RectangleVertical,\n Square,\n SquareDashed,\n Trash2,\n} from \"lucide-react\";\n\nconst { Menu: DropdownMenuList, MenuItem } = DropdownMenu;\n\nconst buildImageOptions = (border, showAspectRatio) => {\n const options = [\n {\n Icon: AlignLeft,\n type: \"button\",\n alignPos: \"left\",\n optionName: t(\"neetoEditor.menu.alignLeft\"),\n },\n {\n Icon: AlignCenter,\n type: \"button\",\n alignPos: \"center\",\n optionName: t(\"neetoEditor.menu.alignCenter\"),\n },\n {\n Icon: AlignRight,\n type: \"button\",\n alignPos: \"right\",\n optionName: t(\"neetoEditor.menu.alignRight\"),\n },\n ];\n\n if (showAspectRatio) {\n options.push({\n Icon: Ratio,\n type: \"dropdown\",\n alignPos: \"center\",\n optionName: t(\"neetoEditor.menu.aspectRatio\"),\n items: [\n { ratio: \"16/9\", tooltipLabel: \"16/9\", icon: RectangleHorizontal },\n { ratio: \"9/16\", tooltipLabel: \"9/16\", icon: RectangleVertical },\n { ratio: \"4/3\", tooltipLabel: \"4/3\", icon: RectangleHorizontal },\n { ratio: \"3/2\", tooltipLabel: \"3/2\", icon: RectangleHorizontal },\n { ratio: \"1/1\", tooltipLabel: \"1/1\", icon: Square },\n ],\n });\n }\n\n options.push(\n {\n Icon: border ? SquareDashed : Square,\n type: \"button\",\n alignPos: \"center\",\n borderToggle: true,\n optionName: border\n ? t(\"neetoEditor.menu.removeBorder\")\n : t(\"neetoEditor.menu.addBorder\"),\n },\n {\n Icon: Trash2,\n type: \"button\",\n optionName: t(\"neetoEditor.menu.delete\"),\n }\n );\n\n return options;\n};\n\nconst Menu = ({\n align,\n border,\n editor,\n updateAttributes,\n deleteNode,\n showAspectRatio,\n}) => {\n const menuOptions = buildImageOptions(border, showAspectRatio);\n\n const handleClick = (alignPos, borderToggle) => {\n if (borderToggle) {\n updateAttributes({ border: !border });\n } else if (alignPos) {\n updateAttributes({ align: alignPos });\n } else {\n deleteNode();\n }\n editor.commands.focus();\n };\n\n return (\n <DropdownMenu\n position=\"top-end\"\n customTarget={\n <Button\n className=\"neeto-editor__image-menu-btn\"\n icon={Ellipsis}\n size=\"lg\"\n variant=\"secondary\"\n />\n }\n dropdownProps={{\n className: \"ne-editor-dropdown w-auto flex flex-row items-center gap-1\",\n }}\n >\n {menuOptions.map(\n ({ Icon, optionName, alignPos, type, items, border, borderToggle }) =>\n type === \"button\" ? (\n <Button\n className=\"ne-toolbar-item\"\n data-testid={`neeto-editor-image-menu-${optionName}`}\n icon={Icon}\n key={optionName}\n tooltipProps={{ content: optionName, position: \"top\" }}\n variant={\n alignPos === align || (borderToggle && border)\n ? \"secondary\"\n : \"ghost\"\n }\n onClick={() => handleClick(alignPos, borderToggle)}\n />\n ) : (\n <DropdownMenu\n dropdownProps={{ className: \"ne-editor-dropdown\" }}\n key={optionName}\n position=\"bottom-start\"\n buttonProps={{\n tooltipProps: {\n content: optionName,\n position: \"top\",\n },\n }}\n customTarget={\n <MenuItem className=\"ne-toolbar-item !relative\">\n <Tooltip content={optionName} position=\"top\">\n <div className=\"flex items-center justify-center gap-x-1\">\n <Ratio size={18} />\n <ChevronDown size={14} />\n </div>\n </Tooltip>\n </MenuItem>\n }\n onClick={event => event.stopPropagation()}\n >\n <DropdownMenuList className=\"mb-0\">\n {items?.map(({ ratio, icon: Icon }) => (\n <MenuItem\n key={ratio}\n prefix={Icon ? <Icon size={16} /> : undefined}\n onClick={() => updateAttributes({ aspectRatio: ratio })}\n >\n {ratio}\n </MenuItem>\n ))}\n </DropdownMenuList>\n </DropdownMenu>\n )\n )}\n </DropdownMenu>\n );\n};\n\nexport default Menu;\n","import { useRef, useState } from \"react\";\n\nimport { Spinner } from \"@bigbinary/neeto-atoms\";\nimport { NodeViewContent, NodeViewWrapper } from \"@tiptap/react\";\nimport classNames from \"classnames\";\nimport { isNotPresent } from \"neetocist\";\nimport { isEmpty, mergeRight } from \"ramda\";\nimport { Resizable } from \"re-resizable\";\n\nimport ImagePreviewModal from \"./ImagePreviewModal\";\nimport Menu from \"./Menu\";\n\nconst ImageComponent = ({\n node,\n editor,\n getPos,\n updateAttributes,\n deleteNode,\n}) => {\n const { src, figheight, figwidth, align, alt, border } = node.attrs;\n\n const [captionWidth, setCaptionWidth] = useState(figwidth || 0);\n const [previewUrl, setPreviewUrl] = useState(null);\n const figureRef = useRef(null);\n\n const { view } = editor;\n let height = figheight;\n let width = figwidth;\n const caption = node?.content?.content?.[0]?.text || \"\";\n\n const editorElement = figureRef.current?.closest(\".neeto-editor\");\n const maxImageWidth = editorElement?.offsetWidth - 50;\n\n const handleResizeStop = (_event, _direction, ref) => {\n height = ref.offsetHeight;\n width = ref.offsetWidth;\n\n if (width > maxImageWidth) {\n width = maxImageWidth;\n const aspectRatio = ref.offsetHeight / ref.offsetWidth;\n height = width * aspectRatio;\n }\n setCaptionWidth(width);\n view.dispatch(\n view.state.tr.setNodeMarkup(\n getPos(),\n undefined,\n mergeRight(node.attrs, {\n figheight: height,\n figwidth: width,\n height,\n width,\n })\n )\n );\n editor.commands.focus();\n };\n\n if (isNotPresent(src) && isNotPresent(alt)) return null;\n\n return (\n <NodeViewWrapper\n data-testid=\"neeto-editor-image-wrapper\"\n className={classNames(\n \"neeto-editor__image-wrapper\",\n `neeto-editor__image--${align}`,\n { \"neeto-editor__image--bordered\": border }\n )}\n >\n <figure ref={figureRef}>\n <Menu {...{ align, border, deleteNode, editor, updateAttributes }} />\n {src ? (\n <Resizable\n lockAspectRatio\n className=\"neeto-editor__image\"\n minWidth=\"50px\"\n size={{ height, width }}\n onResizeStop={handleResizeStop}\n onResize={(_event, _direction, ref) =>\n setCaptionWidth(ref.offsetWidth)\n }\n >\n <img\n {...{ ...node.attrs, src }}\n alt={caption}\n data-border={border}\n onClick={e => {\n e.stopPropagation();\n setPreviewUrl(src);\n }}\n />\n </Resizable>\n ) : (\n <div className=\"neeto-editor__image-placeholder\">\n <Spinner />\n </div>\n )}\n <NodeViewContent\n as=\"figcaption\"\n className={classNames({ \"is-empty\": isEmpty(caption) })}\n style={{ width: `${captionWidth}px` }}\n />\n </figure>\n <ImagePreviewModal {...{ previewUrl, setPreviewUrl }} />\n </NodeViewWrapper>\n );\n};\n\nexport default ImageComponent;\n","import { Toastr } from \"@bigbinary/neeto-atoms\";\nimport { mergeAttributes, Node } from \"@tiptap/core\";\nimport { Plugin, Selection } from \"@tiptap/pm/state\";\nimport { ReactNodeViewRenderer } from \"@tiptap/react\";\nimport classnames from \"classnames\";\nimport { t } from \"i18next\";\nimport { globalProps } from \"neetocommons/v2/initializers\";\nimport { isEmpty } from \"ramda\";\n\nimport { DIRECT_UPLOAD_ENDPOINT } from \"src/common/constants\";\nimport { LARGE_IMAGE_ERROR } from \"src/v2/components/Editor/CustomExtensions/Image/constants\";\nimport DirectUpload from \"utils/DirectUpload\";\n\nimport ImageComponent from \"./ImageComponent\";\n\nconst upload = async (file, url) => {\n if (file.size <= globalProps.endUserUploadedFileSizeLimitInMb * 1024 * 1024) {\n const uploader = new DirectUpload({ file, url });\n const response = await uploader.create();\n\n return response.data?.blob_url || response.blob_url;\n }\n\n throw new Error(LARGE_IMAGE_ERROR);\n};\n\nconst findNextTextPos = (editor, pos) => {\n const doc = editor.state.doc;\n let foundPos = -1;\n\n doc.nodesBetween(pos, doc.content.size, (node, nodePos) => {\n if (foundPos >= pos) return false;\n else if (!node.type.isTextblock) return true;\n foundPos = nodePos;\n\n return false;\n });\n\n return foundPos;\n};\n\nexport default Node.create({\n name: \"image\",\n\n addOptions() {\n return { HTMLAttributes: {}, openImageInNewTab: true };\n },\n\n group: \"block\",\n\n content: \"inline*\",\n\n draggable: false,\n\n isolating: true,\n\n addAttributes() {\n return {\n id: {\n default: null,\n parseHTML: element => element.getAttribute(\"id\"),\n },\n\n src: {\n default: null,\n parseHTML: element => element.querySelector(\"img\")?.getAttribute(\"src\"),\n },\n\n alt: {\n default: \"image\",\n parseHTML: element =>\n element.querySelector(\"img\")?.getAttribute(\"alt\") || \"image\",\n },\n\n figheight: {\n default: \"auto\",\n parseHTML: element =>\n element.querySelector(\"img\")?.getAttribute(\"figheight\"),\n },\n\n figwidth: {\n default: 500,\n parseHTML: element =>\n element.querySelector(\"img\")?.getAttribute(\"figwidth\"),\n },\n\n align: {\n default: \"left\",\n parseHTML: element =>\n element.querySelector(\"img\")?.getAttribute(\"align\"),\n },\n\n border: {\n default: true,\n parseHTML: element =>\n element.querySelector(\"img\")?.getAttribute(\"data-border\") === \"true\",\n },\n };\n },\n\n parseHTML() {\n return [{ tag: \"figure\" }];\n },\n\n renderHTML({ node, HTMLAttributes }) {\n const { align, src, figheight, figwidth, border } = node.attrs;\n\n if (!src) return [\"span\"];\n\n const openImageInNewTab = this.options.openImageInNewTab;\n\n const wrapperDivAttrs = {\n class: classnames(\n \"neeto-editor__image-wrapper\",\n `neeto-editor__image--${align}`,\n { \"neeto-editor__image--bordered\": border }\n ),\n };\n\n const wrapperLinkPointerEventsStyle = openImageInNewTab\n ? \"\"\n : \"pointer-events:none;\";\n\n const heightStyle = figheight === \"auto\" ? \"auto\" : `${figheight}px`;\n const wrapperLinkAttrs = {\n href: src,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n class: \"neeto-editor__image\",\n style: `height:${heightStyle};width:${figwidth}px;display:inline-block;${wrapperLinkPointerEventsStyle}`,\n };\n\n const captionAttrs = { style: `width:${figwidth}px;` };\n\n return [\n \"div\",\n wrapperDivAttrs,\n [\n \"figure\",\n this.options.HTMLAttributes,\n [\n \"a\",\n wrapperLinkAttrs,\n [\n \"img\",\n mergeAttributes(HTMLAttributes, {\n draggable: false,\n contenteditable: false,\n \"data-border\": border,\n }),\n ],\n ],\n [\"figcaption\", captionAttrs, 0],\n ],\n ];\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(ImageComponent);\n },\n\n addCommands() {\n return {\n setFigure:\n ({ caption, ...attrs }) =>\n ({ chain }) =>\n chain()\n .insertContent({\n type: this.name,\n attrs,\n content: caption ? [{ type: \"text\", text: caption }] : [],\n })\n .run(),\n };\n },\n\n addKeyboardShortcuts() {\n return {\n Enter: () => {\n const head = this.editor.state.selection.$head;\n if (head.node().type.name !== \"image\") return false;\n\n const chain = this.editor.chain();\n const tail = head.after();\n\n let nextTextPos = findNextTextPos(this.editor, tail);\n if (nextTextPos < 0) {\n chain.insertContentAt(tail, { type: \"paragraph\", content: \"\" });\n nextTextPos = tail;\n }\n\n chain\n .setTextSelection(nextTextPos + 1) // Node boundary + 1\n .focus()\n .run();\n\n return true;\n },\n // The caption shares its textblock with the non-editable image above it,\n // so the native caret can't move up past the image. Handle it manually.\n ArrowUp: () => {\n const { state, view } = this.editor;\n const { $head, empty } = state.selection;\n if (!empty || $head.parent.type.name !== this.name) return false;\n\n const lineTop = view.coordsAtPos($head.start());\n const caret = view.coordsAtPos($head.pos);\n if (caret.top >= lineTop.bottom) return false; // Not on the first line\n\n const before = $head.before();\n if (before === 0) {\n return this.editor\n .chain()\n .insertContentAt(0, { type: \"paragraph\" })\n .setTextSelection(1)\n .scrollIntoView()\n .run();\n }\n\n const tr = state.tr.setSelection(\n Selection.near(state.doc.resolve(before), -1)\n );\n view.dispatch(tr.scrollIntoView());\n\n return true;\n },\n };\n },\n\n addProseMirrorPlugins() {\n return [\n new Plugin({\n props: {\n handleDOMEvents: {\n paste(view, event) {\n const {\n schema,\n selection: {\n $anchor: { pos },\n },\n } = view.state;\n\n // Microsoft Excel and a few other products might copy content as\n // both `text/plain` and `text/html`. If `text/plain` exists,\n // an early return will ensure that it fallbacks to tiptap's\n // default paste behavior.\n const text = event?.clipboardData?.getData(\"text/plain\");\n const hasFiles = event.clipboardData?.files?.length;\n\n if (!hasFiles) return;\n\n if (hasFiles && text) {\n event.preventDefault();\n const plainText =\n new DOMParser().parseFromString(text, \"text/html\").body\n .textContent ?? \"\";\n view.pasteText(plainText);\n\n return;\n }\n\n const images = Array.from(event.clipboardData.files).filter(\n file => /image/i.test(file.type)\n );\n\n if (isEmpty(images)) return;\n\n event.preventDefault();\n\n const currentPos = pos;\n\n images.forEach(async image => {\n let emptyImageNode;\n const id = Math.random().toString(36).substring(7);\n try {\n emptyImageNode = schema.nodes.image.create({\n id,\n src: \"\",\n alt: t(\"neetoEditor.attachments.uploading\"),\n });\n\n const tr = view.state.tr\n .insert(currentPos, emptyImageNode)\n .setMeta(\"addToHistory\", false);\n view.dispatch(tr);\n\n const url = await upload(image, DIRECT_UPLOAD_ENDPOINT);\n if (url) {\n const imageNode = schema.nodes.image.create({\n id,\n src: url,\n alt: \"image\",\n });\n\n const { tr, doc } = view.state;\n let nodePos = -1;\n doc.descendants((node, pos) => {\n if (node.type.name === \"image\" && node.attrs.id === id) {\n nodePos = pos;\n\n return false;\n }\n\n return true;\n });\n\n if (nodePos !== -1) {\n tr.replaceWith(\n nodePos,\n nodePos + emptyImageNode.nodeSize,\n imageNode\n ).setMeta(\"addToHistory\", false);\n view.dispatch(tr);\n }\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Failed to insert the image\", error);\n\n const doc = view.state.doc;\n const tr = view.state.tr;\n doc.descendants((node, pos) => {\n if (node.type.name === \"image\" && node.attrs.id === id) {\n tr.delete(pos, pos + emptyImageNode.nodeSize).setMeta(\n \"addToHistory\",\n false\n );\n\n return false;\n }\n\n return true;\n });\n view.dispatch(tr);\n\n if (error.message === LARGE_IMAGE_ERROR) {\n Toastr.error(\n t(\"neetoEditor.error.imageSizeIsShouldBeLess\", {\n limit: globalProps.endUserUploadedFileSizeLimitInMb,\n })\n );\n } else {\n Toastr.error(t(\"neetoEditor.error.imageUploadFailed\"));\n }\n }\n });\n },\n },\n },\n }),\n ];\n },\n});\n","import { mergeAttributes, Node } from \"@tiptap/core\";\n\nexport default Node.create({\n name: \"figcaption\",\n\n content: \"text*\",\n\n selectable: false,\n\n draggable: false,\n\n parseHTML() {\n return [{ tag: \"figcaption\" }];\n },\n\n renderHTML({ HTMLAttributes }) {\n return [\"figcaption\", mergeAttributes(HTMLAttributes), 0];\n },\n});\n","import Italic from \"@tiptap/extension-italic\";\n\nexport default Italic.extend({\n addInputRules() {\n return [];\n },\n addPasteRules() {\n return [];\n },\n});\n","import { Extension } from \"@tiptap/core\";\n\nconst KeyboardShortcuts = ({ onSubmit, shortcuts, isBlockQuoteActive }) =>\n Extension.create({\n name: \"keyboard-shortcuts\",\n\n addKeyboardShortcuts() {\n return {\n \"Mod-Enter\": () => {\n onSubmit?.(this.editor.getHTML());\n\n return true;\n },\n \"Mod-Shift-b\": () => {\n if (isBlockQuoteActive) {\n this.editor.chain().focus().toggleBlockquote().run();\n\n return true;\n }\n\n return false;\n },\n ...shortcuts,\n };\n },\n });\n\nexport default {\n configure: ({ onSubmit, shortcuts, isBlockQuoteActive }) =>\n KeyboardShortcuts({ onSubmit, shortcuts, isBlockQuoteActive }),\n};\n","export const LINK_MARKDOWN_INPUT_REGEX =\n /(?:^|\\s)\\[([^\\]]*)?\\]\\((\\S+)(?: [\"“](.+)[\"”])?\\)$/i;\n","import { InputRule, markInputRule, mergeAttributes } from \"@tiptap/core\";\nimport { Link } from \"@tiptap/extension-link\";\nimport { Fragment, Slice } from \"@tiptap/pm/model\";\nimport { Plugin } from \"@tiptap/pm/state\";\n\nimport { LINK_MARKDOWN_INPUT_REGEX } from \"./constants\";\n\nconst linkInputRule = config => {\n const defaultMarkInputRule = markInputRule(config);\n\n return new InputRule({\n find: config.find,\n handler(props) {\n try {\n const { tr } = props.state;\n defaultMarkInputRule.handler(props);\n tr.setMeta(\"preventAutolink\", true);\n } catch (error) {\n // https://app.honeybadger.io/projects/94805/faults/108936285\n if (!(error instanceof RangeError)) throw error;\n }\n },\n });\n};\n\n// TipTap's paste handler links the selected text only when the pasted text is\n// exactly a URL, so a URL copied with surrounding whitespace replaces the\n// selection instead. Hand it a trimmed copy of the pasted text.\nconst withTrimmedLinkPaste = plugin => {\n const { handlePaste } = plugin.props;\n\n return new Plugin({\n ...plugin.spec,\n props: {\n ...plugin.props,\n handlePaste: (view, event, slice) => {\n let textContent = \"\";\n slice.content.forEach(node => {\n textContent += node.textContent;\n });\n const trimmedText = textContent.trim();\n\n if (!trimmedText || trimmedText === textContent) {\n return handlePaste(view, event, slice);\n }\n\n const trimmedSlice = new Slice(\n Fragment.from(view.state.schema.text(trimmedText)),\n 0,\n 0\n );\n\n return handlePaste(view, event, trimmedSlice);\n },\n },\n });\n};\n\nexport default Link.extend({\n inclusive: false,\n addAttributes() {\n return {\n ...this.parent?.(),\n title: { default: null },\n \"data-neeto-kb-article\": {\n default: null,\n parseHTML: element => element.getAttribute(\"data-neeto-kb-article\"),\n renderHTML: attributes =>\n attributes[\"data-neeto-kb-article\"]\n ? { \"data-neeto-kb-article\": attributes[\"data-neeto-kb-article\"] }\n : {},\n },\n \"data-article-id\": {\n default: null,\n parseHTML: element => element.getAttribute(\"data-article-id\"),\n renderHTML: attributes =>\n attributes[\"data-article-id\"]\n ? { \"data-article-id\": attributes[\"data-article-id\"] }\n : {},\n },\n \"data-article-deleted\": {\n default: null,\n parseHTML: element => element.getAttribute(\"data-article-deleted\"),\n renderHTML: attributes =>\n attributes[\"data-article-deleted\"]\n ? { \"data-article-deleted\": attributes[\"data-article-deleted\"] }\n : {},\n },\n };\n },\n\n parseHTML() {\n return [\n {\n tag: 'a[href]:not([data-type=\"button\"]):not([href *= \"javascript:\" i])',\n },\n ];\n },\n renderHTML({ HTMLAttributes }) {\n return [\n \"a\",\n mergeAttributes(this.options.HTMLAttributes, HTMLAttributes, {\n class: \"link\",\n }),\n 0,\n ];\n },\n\n addProseMirrorPlugins() {\n // Match on the handlePaste prop rather than TipTap's internal plugin key;\n // the paste handler is the only Link plugin that handles pastes.\n return (this.parent?.() ?? []).map(plugin =>\n plugin.props.handlePaste ? withTrimmedLinkPaste(plugin) : plugin\n );\n },\n\n addInputRules() {\n return [\n linkInputRule({\n find: LINK_MARKDOWN_INPUT_REGEX,\n type: this.type,\n getAttributes(match) {\n return {\n title: match.pop()?.trim(),\n href: match.pop()?.trim(),\n };\n },\n }),\n ];\n },\n});\n","import React from \"react\";\n\nimport { Avatar, Typography } from \"@bigbinary/neeto-atoms\";\nimport classNames from \"classnames\";\nimport { t } from \"i18next\";\nimport { isEmpty } from \"ramda\";\n\nimport { scrollHandler } from \"utils/scrollhandler\";\n\nexport class MentionList extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = { selectedIndex: 0 };\n this.mentionRef = React.createRef();\n }\n\n componentDidUpdate(prevProps) {\n const { items } = this.props;\n if (items !== prevProps.items) {\n this.setState({ selectedIndex: 0 });\n }\n\n scrollHandler({\n wrapperRef: this.mentionRef,\n index: this.state.selectedIndex,\n });\n }\n\n selectItem = index => {\n const { items, command } = this.props;\n const item = items[index];\n\n if (item) {\n command({ label: item.name, id: item.key });\n }\n };\n\n upHandler = () => {\n const { items } = this.props;\n this.setState(prevState => {\n const { selectedIndex } = prevState;\n const nextSelectedIndex =\n (selectedIndex + items.length - 1) % items.length;\n\n return { selectedIndex: nextSelectedIndex };\n });\n };\n\n downHandler = () => {\n const { items } = this.props;\n this.setState(prevState => {\n const { selectedIndex } = prevState;\n const nextSelectedIndex = (selectedIndex + 1) % items.length;\n\n return { selectedIndex: nextSelectedIndex };\n });\n };\n\n enterHandler = () => {\n const { selectedIndex } = this.state;\n this.selectItem(selectedIndex);\n };\n\n tabHandler = () => {\n const { selectedIndex } = this.state;\n this.selectItem(selectedIndex);\n };\n\n onKeyDown = ({ event }) => {\n const keyDownHandlers = {\n ArrowUp: this.upHandler,\n ArrowDown: this.downHandler,\n Enter: this.enterHandler,\n Tab: this.tabHandler,\n };\n\n if (Object.prototype.hasOwnProperty.call(keyDownHandlers, event.key)) {\n keyDownHandlers[event.key]();\n\n return true;\n }\n\n return false;\n };\n\n render() {\n const { selectedIndex } = this.state;\n const { items } = this.props;\n\n if (isEmpty(items)) {\n return (\n <div className=\"neeto-editor-mentions__wrapper\">\n <p className=\"neeto-editor-mentions__item\">\n {t(\"neetoEditor.error.noResults\")}\n </p>\n </div>\n );\n }\n\n // Plain <button>s instead of `DropdownMenu.MenuItem`. The popup is portaled\n // into document.body by tippy, so it sits outside any `DropdownMenu` Root\n // — Radix's `MenuItem` would call `useMenuScope` and throw\n // \"MenuItem must be used within Menu\". Styling lives in _v2-toolbar.scss\n // under `.neeto-editor-mentions__wrapper` / `__item`.\n return (\n <div\n className=\"neeto-editor-mentions__wrapper\"\n data-testid=\"neeto-editor-mention-list\"\n ref={this.mentionRef}\n >\n {items.map(({ key, name, imageUrl }, index) => (\n <button\n data-testid={`neeto-editor-mention-list-${name}`}\n key={key}\n type=\"button\"\n className={classNames(\"neeto-editor-mentions__item\", {\n active: index === selectedIndex,\n })}\n onClick={() => this.selectItem(index)}\n >\n <Avatar size=\"sm\" user={{ name, imageUrl }} />\n <Typography variant=\"body2\">{name}</Typography>\n </button>\n ))}\n </div>\n );\n }\n}\n","export const createMentionSuggestions =\n (mentions = []) =>\n ({ query = \"\" }) => {\n if (!query) {\n return mentions.slice(0, 10);\n }\n\n return mentions\n .filter(mention =>\n mention.name\n .replace(/\\s/g, \"\")\n .toLowerCase()\n .includes(query.trim().toLowerCase())\n )\n .slice(0, 10);\n };\n","import Mention from \"@tiptap/extension-mention\";\nimport { ReactRenderer } from \"@tiptap/react\";\nimport tippy from \"tippy.js\";\n\nimport { getSuggestionAppendTo } from \"src/v2/components/Editor/utils\";\n\nimport { MentionList } from \"./MentionList\";\nimport { createMentionSuggestions } from \"./utils\";\n\nconst suggestion = {\n render: () => {\n let reactRenderer;\n let popup;\n\n return {\n onStart: props => {\n reactRenderer = new ReactRenderer(MentionList, {\n props,\n editor: props.editor,\n });\n\n popup = tippy(\"body\", {\n theme: \"light neeto-editor-mentions-tooltip\",\n getReferenceClientRect: props.clientRect,\n appendTo: getSuggestionAppendTo(props.editor),\n content: reactRenderer.element,\n showOnCreate: true,\n interactive: true,\n trigger: \"manual\",\n placement: \"bottom-start\",\n zIndex: 99999,\n arrow: false,\n });\n },\n\n onUpdate(props) {\n reactRenderer.updateProps(props);\n\n popup[0].setProps({\n getReferenceClientRect: props.clientRect,\n });\n },\n\n onKeyDown(props) {\n if (props.event.key === \"Escape\") {\n popup[0].hide();\n\n return true;\n }\n\n return reactRenderer.ref?.onKeyDown(props);\n },\n\n onExit() {\n popup?.[0]?.destroy();\n reactRenderer?.destroy();\n },\n };\n },\n};\n\nconst Mentions = Mention.extend({\n addCommands() {\n return {\n setMention:\n ({ id, label }) =>\n ({ chain }) => {\n chain()\n .focus()\n .insertContent([\n { type: this.name, attrs: { id, label } },\n { type: \"text\", text: \" \" },\n ])\n .run();\n },\n };\n },\n});\n\nexport default {\n configure: ({ suggestion: suggestionConfig = {}, ...otherConfig }) =>\n Mentions.configure({\n ...otherConfig,\n suggestion: { ...suggestion, ...suggestionConfig },\n }),\n};\n\nexport { createMentionSuggestions };\n","import { OrderedList } from \"@tiptap/extension-list\";\n\nexport default OrderedList.configure({\n HTMLAttributes: { class: \"orderedList\" },\n itemTypeName: \"listItem\",\n});\n","import { Extension } from \"@tiptap/core\";\nimport { Plugin } from \"@tiptap/pm/state\";\nimport { Decoration, DecorationSet } from \"@tiptap/pm/view\";\nimport { t } from \"i18next\";\n\nconst Placeholder = Extension.create({\n name: \"placeholder\",\n\n addOptions() {\n return {\n excludeNodeTypes: [\"variable\", \"codeBlock\"],\n emptyEditorClass: \"is-editor-empty\",\n emptyNodeClass: \"is-empty\",\n placeholder: t(\"neetoEditor.placeholders.writeSomething\"),\n slashCommandsPlaceholder: t(\n \"neetoEditor.placeholders.typeSlashForCommands\"\n ),\n showOnlyWhenEditable: true,\n showOnlyCurrent: false,\n includeChildren: false,\n };\n },\n\n addProseMirrorPlugins() {\n return [\n new Plugin({\n props: {\n decorations: ({ doc, selection }) => {\n const active =\n this.editor.isEditable || !this.options.showOnlyWhenEditable;\n const { anchor } = selection;\n const decorations = [];\n\n if (!active) {\n return null;\n }\n\n doc.descendants((node, pos) => {\n const hasAnchor = anchor >= pos && anchor <= pos + node.nodeSize;\n const isEmpty = !node.isLeaf && !node.childCount;\n\n const isExcluded = this.options.excludeNodeTypes.includes(\n node.type.name\n );\n\n if (\n (hasAnchor || !this.options.showOnlyCurrent) &&\n !isExcluded &&\n isEmpty\n ) {\n const classes = [this.options.emptyNodeClass];\n\n let placeholderText = this.options.placeholder;\n\n if (this.editor.isEmpty) {\n classes.push(this.options.emptyEditorClass);\n\n if (\n this.options.isSlashCommandsActive &&\n !this.options.placeholder\n ) {\n classes.push(\"is-slash-command-placeholder\");\n placeholderText = this.options.slashCommandsPlaceholder;\n }\n } else if (\n hasAnchor &&\n this.editor.isFocused &&\n this.options.isSlashCommandsActive &&\n node.type.name === \"paragraph\"\n ) {\n classes.push(\"is-current-slash-placeholder\");\n classes.push(\"is-slash-command-placeholder\");\n placeholderText = this.options.slashCommandsPlaceholder;\n }\n\n const decoration = Decoration.node(pos, pos + node.nodeSize, {\n class: classes.join(\" \"),\n \"data-placeholder\": placeholderText,\n });\n decorations.push(decoration);\n }\n\n return this.options.includeChildren;\n });\n\n return DecorationSet.create(doc, decorations);\n },\n },\n }),\n ];\n },\n});\n\nexport default Placeholder;\n","import Document from \"@tiptap/extension-document\";\nimport { Plugin, PluginKey } from \"@tiptap/pm/state\";\nimport { Decoration, DecorationSet } from \"@tiptap/pm/view\";\n\nexport default Document.extend({\n name: \"selectionDecorator\",\n addProseMirrorPlugins() {\n const { editor } = this;\n\n return [\n new Plugin({\n key: new PluginKey(\"selectionDecorator\"),\n state: {\n init() {\n return {\n decorations: DecorationSet.empty,\n selectedTextDecoration: null,\n };\n },\n apply(tr, oldState) {\n const { doc, selection } = tr;\n let { decorations, selectedTextDecoration } = oldState;\n\n if (selectedTextDecoration) {\n decorations = decorations.remove([selectedTextDecoration]);\n }\n\n if (!selection.empty) {\n selectedTextDecoration = Decoration.inline(\n selection.from,\n selection.to,\n { class: \"selected-text\" }\n );\n decorations = decorations.add(doc, [selectedTextDecoration]);\n } else {\n selectedTextDecoration = null;\n }\n\n return { decorations, selectedTextDecoration };\n },\n },\n props: {\n decorations(state) {\n if (editor.isFocused) return DecorationSet.empty;\n\n return this.getState(state).decorations;\n },\n },\n }),\n ];\n },\n});\n","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import { t } from \"i18next\";\nimport { noop } from \"neetocist\";\nimport {\n TextP,\n TextH1,\n TextH2,\n TextH3,\n TextH4,\n TextH5,\n ListDot,\n ListNumber,\n Checkbox,\n Blockquote,\n ImageUpload,\n CodeBlock,\n Smiley,\n Minus,\n Video,\n Notes,\n Column,\n TextBold,\n TextItalic,\n Underline,\n Link,\n Attachment,\n MessageSquare,\n File,\n} from \"neetoicons\";\n\nimport { EDITOR_OPTIONS } from \"common/constants\";\n\nexport const MENU_ITEMS = [\n {\n optionName: EDITOR_OPTIONS.PARAGRAPH,\n title: t(\"neetoEditor.menu.normalText\"),\n description: t(\"neetoEditor.menu.normalTextDescription\"),\n Icon: TextP,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).setNode(\"paragraph\").run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.BOLD,\n title: t(\"neetoEditor.menu.bold\"),\n description: t(\"neetoEditor.menu.boldDescription\"),\n Icon: TextBold,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).toggleBold().run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.ITALIC,\n title: t(\"neetoEditor.menu.italic\"),\n description: t(\"neetoEditor.menu.italicDescription\"),\n Icon: TextItalic,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).toggleItalic().run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.UNDERLINE,\n title: t(\"neetoEditor.menu.underline\"),\n description: t(\"neetoEditor.menu.underlineDescription\"),\n Icon: Underline,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).toggleUnderline().run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.H1,\n title: t(\"neetoEditor.menu.heading1\"),\n description: t(\"neetoEditor.menu.h1Description\"),\n Icon: TextH1,\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setNode(\"heading\", { level: 1 })\n .run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.H2,\n title: t(\"neetoEditor.menu.heading2\"),\n description: t(\"neetoEditor.menu.h2Description\"),\n Icon: TextH2,\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setNode(\"heading\", { level: 2 })\n .run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.H3,\n title: t(\"neetoEditor.menu.heading3\"),\n description: t(\"neetoEditor.menu.h3Description\"),\n Icon: TextH3,\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setNode(\"heading\", { level: 3 })\n .run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.H4,\n title: t(\"neetoEditor.menu.heading4\"),\n description: t(\"neetoEditor.menu.h4Description\"),\n Icon: TextH4,\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setNode(\"heading\", { level: 4 })\n .run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.H5,\n title: t(\"neetoEditor.menu.heading5\"),\n description: t(\"neetoEditor.menu.h5Description\"),\n Icon: TextH5,\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setNode(\"heading\", { level: 5 })\n .run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.LIST_ORDERED,\n title: t(\"neetoEditor.menu.numberedList\"),\n description: t(\"neetoEditor.menu.numberedListDescription\"),\n Icon: ListNumber,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).toggleOrderedList().run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.LIST_BULLETS,\n title: t(\"neetoEditor.menu.bulletList\"),\n description: t(\"neetoEditor.menu.bulletListDescription\"),\n Icon: ListDot,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).toggleBulletList().run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.LINK,\n title: t(\"neetoEditor.menu.link\"),\n description: t(\"neetoEditor.menu.linkDescription\"),\n Icon: Link,\n command: noop,\n },\n {\n optionName: EDITOR_OPTIONS.NEETO_KB_ARTICLE,\n title: t(\"neetoEditor.menu.linkToNeetoKbArticle\"),\n description: t(\"neetoEditor.menu.linkToNeetoKbArticleDescription\"),\n Icon: File,\n command: noop,\n },\n {\n optionName: EDITOR_OPTIONS.ATTACHMENTS,\n title: t(\"neetoEditor.menu.file\"),\n description: t(\"neetoEditor.menu.attachmentsDescription\"),\n Icon: Attachment,\n command: noop,\n },\n {\n optionName: EDITOR_OPTIONS.TODO_LIST,\n title: t(\"neetoEditor.menu.todoList\"),\n description: t(\"neetoEditor.menu.todoListDescription\"),\n Icon: Checkbox,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).toggleTaskList().run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.IMAGE_UPLOAD,\n title: t(\"neetoEditor.menu.image\"),\n description: t(\"neetoEditor.menu.imageDescription\"),\n Icon: ImageUpload,\n command: noop,\n },\n {\n optionName: EDITOR_OPTIONS.VIDEO_UPLOAD,\n title: t(\"neetoEditor.menu.video\"),\n description: t(\"neetoEditor.menu.videoDescription\"),\n Icon: Video,\n command: noop,\n },\n {\n optionName: EDITOR_OPTIONS.BLOCKQUOTE,\n title: t(\"neetoEditor.menu.blockQuote\"),\n description: t(\"neetoEditor.menu.blockQuoteDescription\"),\n Icon: Blockquote,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).toggleBlockquote().run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.CODE_BLOCK,\n title: t(\"neetoEditor.menu.codeBlock\"),\n description: t(\"neetoEditor.menu.codeDescription\"),\n Icon: CodeBlock,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).toggleCodeBlock().run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.EMOJI,\n title: t(\"neetoEditor.menu.emoji\"),\n description: t(\"neetoEditor.menu.emojiDescription\"),\n Icon: Smiley,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).insertContent(\"::\").run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.DIVIDER,\n title: t(\"neetoEditor.menu.divider\"),\n description: t(\"neetoEditor.menu.dividerDescription\"),\n Icon: Minus,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).setHorizontalRule().run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.PASTE_UNFORMATTED,\n title: t(\"neetoEditor.menu.pasteUnformatted\"),\n description: t(\"neetoEditor.menu.pasteUnformattedDescription\"),\n Icon: Notes,\n command: ({ editor, range }) =>\n editor.chain().focus().deleteRange(range).pasteUnformatted().run(),\n },\n {\n optionName: EDITOR_OPTIONS.TABLE,\n title: t(\"neetoEditor.menu.table\"),\n description: t(\"neetoEditor.menu.tableDescription\"),\n Icon: Column,\n command: ({ editor, range }) =>\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .insertTable({ rows: 3, cols: 3, withHeaderRow: true })\n .run(),\n },\n {\n optionName: EDITOR_OPTIONS.CALLOUT,\n title: t(\"neetoEditor.menu.callout\"),\n description: t(\"neetoEditor.menu.calloutDescription\"),\n Icon: MessageSquare,\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setCallout({ type: \"default\" })\n .run();\n },\n items: [\n {\n optionName: `${EDITOR_OPTIONS.CALLOUT}_default`,\n title: t(\"neetoEditor.menu.calloutDefault\"),\n description: t(\"neetoEditor.menu.calloutDescription\"),\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setCallout({ type: \"default\" })\n .run();\n },\n },\n {\n optionName: `${EDITOR_OPTIONS.CALLOUT}_info`,\n title: t(\"neetoEditor.menu.calloutInfo\"),\n description: t(\"neetoEditor.menu.calloutDescription\"),\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setCallout({ type: \"info\" })\n .run();\n },\n },\n {\n optionName: `${EDITOR_OPTIONS.CALLOUT}_warning`,\n title: t(\"neetoEditor.menu.calloutWarning\"),\n description: t(\"neetoEditor.menu.calloutDescription\"),\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setCallout({ type: \"warning\" })\n .run();\n },\n },\n {\n optionName: `${EDITOR_OPTIONS.CALLOUT}_error`,\n title: t(\"neetoEditor.menu.calloutError\"),\n description: t(\"neetoEditor.menu.calloutDescription\"),\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setCallout({ type: \"error\" })\n .run();\n },\n },\n {\n optionName: `${EDITOR_OPTIONS.CALLOUT}_success`,\n title: t(\"neetoEditor.menu.calloutSuccess\"),\n description: t(\"neetoEditor.menu.calloutDescription\"),\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setCallout({ type: \"success\" })\n .run();\n },\n },\n ],\n },\n];\n\nexport const NO_RESULT_MENU_ITEM = {\n title: t(\"neetoEditor.menu.noResults\"),\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).run();\n },\n};\n\nexport const MENU_MAX_HEIGHT = 384;\n\nexport const MENU_BOUNDARY_PADDING = 8;\n\nexport const MENU_MAX_HEIGHT_CSS_VARIABLE =\n \"--neeto-editor-slash-commands-max-height\";\n","import { detectOverflow } from \"@popperjs/core\";\nimport { assoc } from \"ramda\";\n\nimport { EDITOR_OPTIONS } from \"common/constants\";\n\nimport {\n MENU_BOUNDARY_PADDING,\n MENU_ITEMS,\n MENU_MAX_HEIGHT,\n MENU_MAX_HEIGHT_CSS_VARIABLE,\n} from \"./constants\";\n\nconst imageCommand =\n setMediaUploader =>\n ({ editor, range }) => {\n setMediaUploader(assoc(\"image\", true));\n editor.chain().focus().deleteRange(range).run();\n };\n\nconst videoCommand =\n setMediaUploader =>\n ({ editor, range }) => {\n setMediaUploader(assoc(\"video\", true));\n editor.chain().focus().deleteRange(range).run();\n };\n\nconst linkCommand =\n setIsAddLinkActive =>\n ({ editor, range }) => {\n setIsAddLinkActive(true);\n editor.chain().focus().deleteRange(range).run();\n };\n\nconst attachmentCommand =\n attachmentProps =>\n ({ editor, range }) => {\n attachmentProps?.handleUploadAttachments();\n editor.chain().focus().deleteRange(range).run();\n };\n\nconst neetoKbArticleCommand =\n setIsNeetoKbArticleActive =>\n ({ editor, range }) => {\n // Get cursor position for positioning the modal\n const cursorPos = editor.view.coordsAtPos(range.from);\n setIsNeetoKbArticleActive({\n active: true,\n editor,\n range,\n cursorPos,\n });\n editor.chain().focus().deleteRange(range).run();\n };\n\nconst getOppositePlacement = placement =>\n placement.replace(/^(top|bottom)/, side =>\n side === \"top\" ? \"bottom\" : \"top\"\n );\n\nconst getOffsetDistance = (state, placement) =>\n Math.abs(state.modifiersData.offset?.[placement]?.y ?? 0);\n\nexport const buildCommandItems = ({\n options,\n addonCommands,\n setMediaUploader,\n setIsAddLinkActive,\n attachmentProps,\n setIsNeetoKbArticleActive,\n}) => {\n const commandItems = MENU_ITEMS.map(item => {\n if (item.optionName === EDITOR_OPTIONS.IMAGE_UPLOAD) {\n return assoc(\"command\", imageCommand(setMediaUploader), item);\n } else if (item.optionName === EDITOR_OPTIONS.VIDEO_UPLOAD) {\n return assoc(\"command\", videoCommand(setMediaUploader), item);\n } else if (item.optionName === EDITOR_OPTIONS.LINK) {\n return assoc(\"command\", linkCommand(setIsAddLinkActive), item);\n } else if (item.optionName === EDITOR_OPTIONS.ATTACHMENTS) {\n return assoc(\"command\", attachmentCommand(attachmentProps), item);\n } else if (item.optionName === EDITOR_OPTIONS.NEETO_KB_ARTICLE) {\n return assoc(\n \"command\",\n neetoKbArticleCommand(setIsNeetoKbArticleActive),\n item\n );\n }\n\n return item;\n });\n\n const permittedCommandItems = commandItems.filter(({ optionName }) =>\n options.includes(optionName)\n );\n\n const adddonCommandItems = addonCommands.map(command => ({\n ...command,\n title: command.label,\n Icon: command.icon,\n }));\n\n return [...permittedCommandItems, ...adddonCommandItems];\n};\n\n// Replaces Popper's flip for the slash commands menu. When the menu fits on\n// neither side, flip keeps the preferred side and lets the menu overflow, so on\n// short screens it gets cut off. Here we pick the side with more room instead\n// and cap the menu's height to the space available on that side.\nexport const fitToAvailableHeight = {\n name: \"fitToAvailableHeight\",\n enabled: true,\n phase: \"main\",\n requiresIfExists: [\"offset\"],\n fn: ({ state, name }) => {\n if (state.modifiersData[name]._skip) return;\n\n const menu = state.elements.popper.querySelector(\n \".neeto-editor-slash-commands__wrapper\"\n );\n if (!menu) return;\n\n const { top, bottom } = detectOverflow(state, {\n elementContext: \"reference\",\n altBoundary: true,\n padding: MENU_BOUNDARY_PADDING,\n });\n const isVertical = /^(top|bottom)/.test(state.placement);\n const menuChromeHeight = state.rects.popper.height - menu.offsetHeight;\n const menuContentHeight = Math.min(menu.scrollHeight, MENU_MAX_HEIGHT);\n\n let placement = state.placement;\n let availableHeight = state.rects.reference.height - top - bottom;\n\n if (isVertical) {\n const preferredPlacement = state.options.placement;\n const oppositePlacement = getOppositePlacement(preferredPlacement);\n const getSpace = candidatePlacement =>\n (candidatePlacement.startsWith(\"top\") ? -top : -bottom) -\n getOffsetDistance(state, candidatePlacement);\n\n const preferredSpace = getSpace(preferredPlacement);\n const oppositeSpace = getSpace(oppositePlacement);\n const menuHeight = menuChromeHeight + menuContentHeight;\n const shouldUseOpposite =\n menuHeight > preferredSpace &&\n (menuHeight <= oppositeSpace || oppositeSpace > preferredSpace);\n\n placement = shouldUseOpposite ? oppositePlacement : preferredPlacement;\n availableHeight = shouldUseOpposite ? oppositeSpace : preferredSpace;\n }\n\n const menuMaxHeight = Math.max(\n Math.floor(availableHeight - menuChromeHeight),\n 0\n );\n\n state.elements.popper.style.setProperty(\n MENU_MAX_HEIGHT_CSS_VARIABLE,\n `${menuMaxHeight}px`\n );\n\n const popperHeight =\n menuChromeHeight + Math.min(menuContentHeight, menuMaxHeight);\n if (\n placement === state.placement &&\n popperHeight === state.rects.popper.height\n ) {\n return;\n }\n\n state.modifiersData[name]._skip = true;\n state.placement = placement;\n state.rects.popper = { ...state.rects.popper, height: popperHeight };\n state.reset = true;\n },\n};\n","import React, { forwardRef } from \"react\";\n\nimport Tippy from \"@tippyjs/react\";\nimport classnames from \"classnames\";\nimport { isNotPresent } from \"neetocist\";\n\nimport { scrollHandler } from \"utils/scrollhandler\";\n\nimport { fitToAvailableHeight } from \"./utils\";\n\nclass Menu extends React.Component {\n constructor(props) {\n super(props);\n this.state = { selectedIndex: 0 };\n this.menuRef = React.createRef();\n }\n\n componentDidMount() {\n const { menuIndex, activeMenuIndex } = this.props;\n const isCurrentMenuActive = menuIndex === activeMenuIndex;\n if (isCurrentMenuActive) {\n document.addEventListener(\"keydown\", this.keydownHandler);\n }\n }\n\n componentWillUnmount() {\n document.removeEventListener(\"keydown\", this.keydownHandler);\n }\n\n componentDidUpdate(oldProps) {\n const { items, menuIndex, activeMenuIndex } = this.props;\n const isCurrentMenuActive = menuIndex === activeMenuIndex;\n\n if (items !== oldProps.items) this.setState({ selectedIndex: 0 });\n\n scrollHandler({\n wrapperRef: this.menuRef,\n index: this.state.selectedIndex,\n });\n\n if (isCurrentMenuActive) {\n document.addEventListener(\"keydown\", this.keydownHandler);\n } else document.removeEventListener(\"keydown\", this.keydownHandler);\n }\n\n keydownHandler = event => {\n const listeners = {\n Enter: this.enterHandler,\n ArrowUp: this.upHandler,\n ArrowDown: this.downHandler,\n ArrowLeft: this.leftArrowHandler,\n ArrowRight: this.rightArrowHandler,\n };\n\n if (event.key in listeners) listeners[event.key](event);\n };\n\n selectItem = index => {\n const { items, editor, range } = this.props;\n const selectedItem = items[index];\n const hasCommand = selectedItem && selectedItem.command;\n if (hasCommand) selectedItem.command({ editor, range });\n };\n\n upHandler = () => {\n const { items } = this.props;\n const { selectedIndex } = this.state;\n this.setState({\n selectedIndex: (selectedIndex + items.length - 1) % items.length,\n });\n };\n\n downHandler = () => {\n const { items } = this.props;\n const { selectedIndex } = this.state;\n this.setState({ selectedIndex: (selectedIndex + 1) % items.length });\n };\n\n enterHandler = () => {\n const { selectedIndex } = this.state;\n this.selectItem(selectedIndex);\n };\n\n leftArrowHandler = () => {\n const { menuIndex, setActiveMenuIndex } = this.props;\n if (menuIndex > 0) setActiveMenuIndex(menuIndex - 1);\n };\n\n rightArrowHandler = () => {\n const { menuIndex, setActiveMenuIndex, items } = this.props;\n const { selectedIndex } = this.state;\n const selectedItem = items[selectedIndex];\n const hasSubItems = selectedItem && !isNotPresent(selectedItem.items);\n if (hasSubItems) setActiveMenuIndex(menuIndex + 1);\n };\n\n render() {\n const { items, menuIndex, activeMenuIndex } = this.props;\n const { selectedIndex } = this.state;\n const isCurrentMenuActive = menuIndex === activeMenuIndex;\n\n return (\n <div\n className=\"neeto-editor-slash-commands__wrapper\"\n data-testid=\"neeto-editor-slash-commands-wrapper\"\n ref={this.menuRef}\n >\n {items.map((item, index) => {\n const isLeafNode = isNotPresent(item.items);\n\n const nodeElement = (\n <MenuItem\n {...{ index, item }}\n key={item.optionName}\n selectItem={() => this.selectItem(index)}\n selectedIndex={isCurrentMenuActive ? selectedIndex : -1}\n onHover={() => this.setState({ selectedIndex: index })}\n />\n );\n\n if (isLeafNode) return nodeElement;\n\n return (\n <Tippy\n interactive\n key={item.optionName}\n placement=\"right\"\n popperOptions={{ modifiers: [fitToAvailableHeight] }}\n theme=\"light neeto-editor-slash-commands-tippy\"\n visible={selectedIndex === index}\n content={\n <Menu\n {...this.props}\n items={item.items}\n menuIndex={menuIndex + 1}\n />\n }\n onCreate={({ popper }) => (popper.style.width = \"max-content\")}\n onHide={() => {\n this.isSubmenuOpened = false;\n }}\n onShow={() => {\n this.isSubmenuOpened = true;\n }}\n >\n {nodeElement}\n </Tippy>\n );\n })}\n </div>\n );\n }\n}\n\n// eslint-disable-next-line react/display-name\nconst MenuItem = forwardRef(\n ({ item, selectedIndex, index, selectItem, onHover }, ref) => {\n const { Icon } = item;\n\n return (\n <button\n {...{ ref }}\n data-testid={`neeto-editor-command-list-item-${index}`}\n className={classnames(\"neeto-editor-slash-commands__item\", {\n active: index === selectedIndex,\n })}\n onClick={selectItem}\n onMouseEnter={onHover}\n >\n {Icon && <Icon size={20} />}\n <span className=\"neeto-editor-slash-commands__item-content\">\n <span\n className=\"neeto-editor-slash-commands__item-title\"\n data-testid=\"neeto-editor-command-list-item-block-heading\"\n >\n {item.title}\n </span>\n </span>\n </button>\n );\n }\n);\n\nexport default Menu;\n","import React from \"react\";\n\nimport Menu from \"./Menu\";\n\nclass CommandsList extends React.Component {\n state = { activeMenuIndex: 0 };\n\n onKeyDown = ({ event }) =>\n [\"Enter\", \"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"].includes(\n event.key\n );\n\n setActiveMenuIndex = index => this.setState({ activeMenuIndex: index });\n\n render() {\n return (\n <Menu\n {...this.props}\n activeMenuIndex={this.state.activeMenuIndex}\n items={this.props.items}\n menuIndex={0}\n setActiveMenuIndex={this.setActiveMenuIndex}\n />\n );\n }\n}\n\nexport default CommandsList;\n","import { Extension } from \"@tiptap/core\";\nimport { PluginKey } from \"@tiptap/pm/state\";\nimport { ReactRenderer } from \"@tiptap/react\";\nimport Suggestion from \"@tiptap/suggestion\";\nimport { isEmpty } from \"ramda\";\nimport tippy from \"tippy.js\";\n\nimport { getSuggestionAppendTo } from \"src/v2/components/Editor/utils\";\nimport {\n highlightFocussedNode,\n resetFocussedNode,\n} from \"utils/focusHighlighter\";\nimport { fuzzySearch } from \"utils/fuzzySearch\";\n\nimport CommandsList from \"./CommandsList\";\nimport { NO_RESULT_MENU_ITEM } from \"./constants\";\nimport { buildCommandItems, fitToAvailableHeight } from \"./utils\";\n\nconst CommandsPluginKey = new PluginKey(\"commands\");\n\nexport default {\n configure: ({\n addonCommands,\n options,\n setMediaUploader,\n setIsAddLinkActive,\n attachmentProps,\n setIsNeetoKbArticleActive,\n }) => {\n const commandItems = buildCommandItems({\n options,\n addonCommands,\n setMediaUploader,\n setIsAddLinkActive,\n attachmentProps,\n setIsNeetoKbArticleActive,\n });\n\n return Extension.create({\n name: \"slash-commands\",\n\n addOptions() {\n return {\n HTMLAttributes: { class: \"commands\" },\n suggestion: {\n char: \"/\",\n startOfLine: false,\n pluginKey: CommandsPluginKey,\n command: ({ editor, range, props }) => {\n props.command({ editor, range });\n },\n\n items: ({ query }) => {\n if (!query) return commandItems;\n const filteredItems = fuzzySearch(commandItems, query);\n\n return isEmpty(filteredItems)\n ? [NO_RESULT_MENU_ITEM]\n : filteredItems;\n },\n\n render: () => {\n let reactRenderer;\n let popup;\n\n return {\n onStart: props => {\n if (\n props.editor.isActive(\"image\") ||\n props.editor.isActive(\"codeBlock\")\n ) {\n return;\n }\n\n reactRenderer = new ReactRenderer(CommandsList, {\n props,\n editor: props.editor,\n });\n\n popup = tippy(\"body\", {\n getReferenceClientRect: props.clientRect,\n appendTo: getSuggestionAppendTo(props.editor),\n content: reactRenderer.element,\n showOnCreate: true,\n interactive: true,\n trigger: \"manual\",\n placement: \"bottom-start\",\n arrow: false,\n zIndex: 99999,\n role: \"dropdown\",\n theme: \"light neeto-editor-slash-commands-tippy\",\n popperOptions: {\n modifiers: [\n { name: \"flip\", enabled: false },\n fitToAvailableHeight,\n ],\n },\n });\n\n highlightFocussedNode();\n },\n onUpdate(props) {\n if (\n props.editor.isActive(\"image\") ||\n props.editor.isActive(\"codeBlock\")\n ) {\n return;\n }\n reactRenderer?.updateProps(props);\n\n popup[0].setProps({\n getReferenceClientRect: props.clientRect,\n });\n },\n onKeyDown(props) {\n if (props.event.key === \"Escape\") {\n popup[0].hide();\n\n return true;\n }\n\n return reactRenderer && reactRenderer?.ref?.onKeyDown(props);\n },\n onExit() {\n popup && popup[0].destroy();\n reactRenderer && reactRenderer.destroy();\n resetFocussedNode();\n },\n };\n },\n },\n };\n },\n\n addProseMirrorPlugins() {\n return [\n Suggestion({\n editor: this.editor,\n ...this.options.suggestion,\n }),\n ];\n },\n });\n },\n};\n","import { mergeAttributes } from \"@tiptap/core\";\nimport Mention from \"@tiptap/extension-mention\";\nimport { PluginKey } from \"@tiptap/pm/state\";\nimport { ReactRenderer } from \"@tiptap/react\";\nimport tippy from \"tippy.js\";\n\nimport { getSuggestionAppendTo } from \"src/v2/components/Editor/utils\";\n\nimport { MentionList } from \"../Mention/MentionList\";\nimport { createMentionSuggestions } from \"../Mention/utils\";\n\nconst SpecialMentionPluginKey = new PluginKey(\"special-mention\");\n\nconst renderLabel = ({ options, node }) =>\n `${options.suggestion.char}${node.attrs.label ?? node.attrs.id}`;\n\nconst suggestion = {\n char: \"@@\",\n pluginKey: SpecialMentionPluginKey,\n\n render: () => {\n let reactRenderer;\n let popup;\n\n return {\n onStart: props => {\n reactRenderer = new ReactRenderer(MentionList, {\n props,\n editor: props.editor,\n });\n\n popup = tippy(\"body\", {\n theme: \"light neeto-editor-mentions-tooltip\",\n getReferenceClientRect: props.clientRect,\n appendTo: getSuggestionAppendTo(props.editor),\n content: reactRenderer.element,\n showOnCreate: true,\n interactive: true,\n trigger: \"manual\",\n placement: \"bottom-start\",\n zIndex: 99999,\n arrow: false,\n });\n },\n\n onUpdate(props) {\n reactRenderer.updateProps(props);\n\n popup[0].setProps({\n getReferenceClientRect: props.clientRect,\n });\n },\n\n onKeyDown(props) {\n if (props.event.key === \"Escape\") {\n popup[0].hide();\n\n return true;\n }\n\n return reactRenderer.ref?.onKeyDown(props);\n },\n\n onExit() {\n popup[0].destroy();\n reactRenderer.destroy();\n },\n };\n },\n};\n\nconst SpecialMentions = Mention.extend({\n name: \"special-mention\",\n\n renderHTML({ node, HTMLAttributes }) {\n return [\n \"span\",\n mergeAttributes(\n { \"data-type\": this.name },\n this.options.HTMLAttributes,\n HTMLAttributes\n ),\n renderLabel({ options: this.options, node }),\n ];\n },\n});\n\nexport default {\n configure: ({ suggestion: suggestionConfig = {}, ...otherConfig }) =>\n SpecialMentions.configure({\n ...otherConfig,\n suggestion: { ...suggestion, ...suggestionConfig },\n }),\n};\n\nexport { createMentionSuggestions };\n","const PREVIEW_CLASS_PREFIX = \"neeto-editor-table__cell--preview\";\n\n// Three default columns add up to the table toolbar width. Keep in sync with\n// $table-column-width in v2/styles/partials/_table.scss and the toolbar width\n// in v2/styles/partials/_menu.scss.\nexport const DEFAULT_COLUMN_WIDTH = 125;\n\n// Column min-width written into saved table HTML (unchanged from before).\nexport const SAVED_COLUMN_MIN_WIDTH = 100;\n\n// Cells to decorate, and how, for each toolbar hover preview.\nexport const TABLE_ACTION_PREVIEWS = {\n deleteRow: ({ map, top, bottom }) => ({\n rect: { top, bottom, left: 0, right: map.width },\n className: `${PREVIEW_CLASS_PREFIX}-delete`,\n }),\n deleteColumn: ({ map, left, right }) => ({\n rect: { top: 0, bottom: map.height, left, right },\n className: `${PREVIEW_CLASS_PREFIX}-delete`,\n }),\n deleteTable: ({ map }) => ({\n rect: { top: 0, bottom: map.height, left: 0, right: map.width },\n className: `${PREVIEW_CLASS_PREFIX}-delete`,\n }),\n insertRow: ({ map, bottom }) => ({\n rect: { top: bottom - 1, bottom, left: 0, right: map.width },\n className: `${PREVIEW_CLASS_PREFIX}-insert-row`,\n }),\n insertColumn: ({ map, right }) => ({\n rect: { top: 0, bottom: map.height, left: right - 1, right },\n className: `${PREVIEW_CLASS_PREFIX}-insert-column`,\n }),\n};\n","import { Plugin, PluginKey } from \"@tiptap/pm/state\";\nimport { isInTable, selectedRect } from \"@tiptap/pm/tables\";\nimport { Decoration, DecorationSet } from \"@tiptap/pm/view\";\n\nimport { TABLE_ACTION_PREVIEWS } from \"./constants\";\n\n// Previews what a toolbar \"−\"/\"+\" button would do while it is hovered: the\n// cells that would be deleted, or a line where the new row/column would go.\nconst actionPreviewKey = new PluginKey(\"tableActionPreview\");\n\nconst actionPreviewPlugin = () =>\n new Plugin({\n key: actionPreviewKey,\n state: {\n init: () => null,\n apply: (tr, action) => {\n const meta = tr.getMeta(actionPreviewKey);\n if (meta !== undefined) return meta;\n\n return tr.docChanged || tr.selectionSet ? null : action;\n },\n },\n props: {\n decorations: state => {\n const action = actionPreviewKey.getState(state);\n if (!action || !isInTable(state)) return null;\n\n const tableRect = selectedRect(state);\n const { rect, className } = TABLE_ACTION_PREVIEWS[action](tableRect);\n const decorations = tableRect.map.cellsInRect(rect).map(cellPos => {\n const from = tableRect.tableStart + cellPos;\n const to = from + tableRect.table.nodeAt(cellPos).nodeSize;\n\n return Decoration.node(from, to, { class: className });\n });\n\n return DecorationSet.create(state.doc, decorations);\n },\n },\n });\n\n// action: a key of TABLE_ACTION_PREVIEWS, or null to clear\nconst setActionPreview = (editor, action) =>\n editor.view.dispatch(editor.state.tr.setMeta(actionPreviewKey, action));\n\nexport { actionPreviewPlugin, setActionPreview };\n","function updateColumns(node, colgroup, table, cellMinWidth) {\n let totalWidth = 0;\n let nextDOM = colgroup.firstChild;\n const row = node.firstChild;\n\n for (let i = 0, col = 0; i < row.childCount; i += 1) {\n const { colspan, colwidth } = row.child(i).attrs;\n\n for (let j = 0; j < colspan; j += 1, col += 1) {\n // In auto table layout a col width acts as the column's minimum, so the\n // column keeps this width until its content overflows it.\n const width = (colwidth && colwidth[j]) || cellMinWidth;\n const cssWidth = `${width}px`;\n\n totalWidth += width;\n\n if (!nextDOM) {\n colgroup.appendChild(document.createElement(\"col\")).style.width =\n cssWidth;\n } else {\n if (nextDOM.style.width !== cssWidth) {\n nextDOM.style.width = cssWidth;\n }\n\n nextDOM = nextDOM.nextSibling;\n }\n }\n }\n\n while (nextDOM) {\n const after = nextDOM.nextSibling;\n\n nextDOM.parentNode.removeChild(nextDOM);\n nextDOM = after;\n }\n\n table.style.width = \"\";\n table.style.minWidth = `${totalWidth}px`;\n}\n\nexport class TableView {\n constructor(node, cellMinWidth) {\n this.node = node;\n this.cellMinWidth = cellMinWidth;\n this.dom = document.createElement(\"div\");\n\n const alignmentSuffix = node.attrs?.textAlign || \"left\";\n const alignmentClass = `neeto-editor-table--${alignmentSuffix}`;\n this.dom.className = `neeto-editor-table ${alignmentClass}`;\n this.wrapper = document.createElement(\"div\");\n this.wrapper.className = \"neeto-editor-table__wrapper\";\n this.table = this.dom\n .appendChild(this.wrapper)\n .appendChild(document.createElement(\"table\"));\n this.colgroup = this.table.appendChild(document.createElement(\"colgroup\"));\n updateColumns(node, this.colgroup, this.table, cellMinWidth);\n this.contentDOM = this.table.appendChild(document.createElement(\"tbody\"));\n }\n\n update(node) {\n if (node.type !== this.node.type) {\n return false;\n }\n\n this.node = node;\n updateColumns(node, this.colgroup, this.table, this.cellMinWidth);\n\n const alignmentSuffix = node.attrs?.textAlign || \"left\";\n const currentAlignmentClass = `neeto-editor-table--${alignmentSuffix}`;\n\n this.dom.classList.remove(\n \"neeto-editor-table--left\",\n \"neeto-editor-table--center\",\n \"neeto-editor-table--right\"\n );\n\n this.dom.classList.add(currentAlignmentClass);\n\n return true;\n }\n\n ignoreMutation(mutation) {\n return (\n mutation.type === \"attributes\" &&\n (mutation.target === this.table ||\n this.colgroup.contains(mutation.target))\n );\n }\n}\n","import { TextSelection } from \"@tiptap/pm/state\";\nimport { TableMap, addRow, findTable } from \"@tiptap/pm/tables\";\n\nconst getTableRect = state => {\n const table = findTable(state.selection.$from);\n if (!table) return null;\n\n return {\n map: TableMap.get(table.node),\n table: table.node,\n tableStart: table.start,\n };\n};\n\nconst getTableSize = editor => {\n const rect = editor ? getTableRect(editor.state) : null;\n\n return rect\n ? { rows: rect.map.height, columns: rect.map.width }\n : { rows: 0, columns: 0 };\n};\n\n// Suggestion popups (emoji, mention, slash commands) handle Enter themselves.\nconst isSuggestionActive = state =>\n state.plugins.some(plugin => {\n const pluginState = plugin.getState(state);\n\n return pluginState?.active === true && pluginState?.range;\n });\n\nconst moveToCellBelow = editor => {\n const { state, view } = editor;\n const { selection } = state;\n if (!(selection instanceof TextSelection) || isSuggestionActive(state)) {\n return false;\n }\n\n // Only when the cursor is in a paragraph directly inside a cell, so lists\n // and code blocks inside cells keep their own Enter behaviour.\n const { $from } = selection;\n const cellDepth = $from.depth - 1;\n const cellRole = $from.node(cellDepth)?.type.spec.tableRole;\n if (\n $from.parent.type.name !== \"paragraph\" ||\n (cellRole !== \"cell\" && cellRole !== \"header_cell\")\n ) {\n return false;\n }\n\n const table = findTable($from);\n const map = TableMap.get(table.node);\n const { left, bottom } = map.findCell($from.before(cellDepth) - table.start);\n const { tr } = state;\n\n if (bottom >= map.height) {\n addRow(tr, { map, table: table.node, tableStart: table.start }, map.height);\n }\n\n const updatedMap = TableMap.get(tr.doc.nodeAt(table.pos));\n const cellPos =\n table.start + updatedMap.map[bottom * updatedMap.width + left];\n tr.setSelection(TextSelection.near(tr.doc.resolve(cellPos + 1)));\n view.dispatch(tr.scrollIntoView());\n\n return true;\n};\n\n// Moves the cursor to just after the table, adding a paragraph if there is\n// nothing to land on.\nconst exitTable = editor => {\n const { state, view } = editor;\n const table = findTable(state.selection.$from);\n if (!table) return false;\n\n const { tr } = state;\n const afterTable = table.pos + table.node.nodeSize;\n const nodeAfter = tr.doc.resolve(afterTable).nodeAfter;\n\n if (!nodeAfter?.isTextblock) {\n tr.insert(afterTable, state.schema.nodes.paragraph.create());\n }\n\n tr.setSelection(TextSelection.create(tr.doc, afterTable + 1));\n view.dispatch(tr.scrollIntoView());\n\n return true;\n};\n\nexport { getTableSize, moveToCellBelow, exitTable };\n","import { Table as TiptapTable } from \"@tiptap/extension-table\";\n\nimport { actionPreviewPlugin } from \"./actionPreviewPlugin\";\nimport { DEFAULT_COLUMN_WIDTH, SAVED_COLUMN_MIN_WIDTH } from \"./constants\";\nimport { TableView } from \"./TableView\";\nimport { exitTable, moveToCellBelow } from \"./utils\";\n\nconst Table = TiptapTable.extend({\n addOptions() {\n return {\n HTMLAttributes: {},\n resizable: true,\n handleWidth: 5,\n cellMinWidth: DEFAULT_COLUMN_WIDTH,\n View: TableView,\n lastColumnResizable: true,\n allowTableNodeSelection: true,\n };\n },\n\n parseHTML() {\n const getAlignmentFromElement = element => {\n if (!element) return null;\n\n const dataAlign = element.getAttribute(\"data-text-align\");\n if (dataAlign) return dataAlign;\n\n if (element.classList.contains(\"neeto-editor-table--center\")) {\n return \"center\";\n }\n\n if (element.classList.contains(\"neeto-editor-table--right\")) {\n return \"right\";\n }\n\n if (element.classList.contains(\"neeto-editor-table--left\")) {\n return \"left\";\n }\n\n return null;\n };\n\n return [\n {\n tag: \"table\",\n priority: 100,\n getAttrs: node => {\n const alignment = getAlignmentFromElement(node);\n if (alignment) {\n return { textAlign: alignment };\n }\n\n const parent = node.parentElement;\n if (parent && parent.classList.contains(\"table-responsive\")) {\n const parentAlignment = getAlignmentFromElement(parent);\n if (parentAlignment) {\n return { textAlign: parentAlignment };\n }\n }\n\n return { textAlign: \"left\" };\n },\n },\n ];\n },\n\n addAttributes() {\n return {\n ...this.parent?.(),\n textAlign: {\n default: \"left\",\n renderHTML: attributes => {\n if (!attributes.textAlign) return {};\n\n return {\n class: `neeto-editor-table--${attributes.textAlign}`,\n \"data-text-align\": attributes.textAlign,\n };\n },\n },\n };\n },\n\n renderHTML({ node }) {\n let totalWidth = 0;\n let fixedWidth = true;\n\n const colgroups = [];\n // Saved HTML keeps the previous minimum so re-saved tables do not widen.\n const cellMinWidth = SAVED_COLUMN_MIN_WIDTH;\n const firstRow = node.content?.firstChild;\n\n if (firstRow && firstRow.childCount) {\n for (let i = 0; i < firstRow.childCount; i++) {\n const cell = firstRow.child(i);\n const { colspan, colwidth } = cell.attrs;\n const span = colspan || 1;\n\n for (let j = 0; j < span; j++) {\n const hasWidth = colwidth && colwidth[j];\n totalWidth += Number(hasWidth) || cellMinWidth;\n if (!hasWidth) fixedWidth = false;\n\n const style = hasWidth\n ? `min-width: ${cellMinWidth}px; width: ${Number(hasWidth)}px;`\n : `min-width: ${cellMinWidth}px;`;\n\n colgroups.push([\"col\", { style }]);\n }\n }\n }\n\n let tableStyle = \"\";\n if (totalWidth > 0) {\n tableStyle = fixedWidth\n ? `width: ${totalWidth}px;`\n : `min-width: ${totalWidth}px;`;\n }\n\n const alignmentClass = node.attrs?.textAlign\n ? `neeto-editor-table--${node.attrs.textAlign}`\n : \"neeto-editor-table--left\";\n\n return [\n \"div\",\n {\n class: `table-responsive ${alignmentClass}`,\n \"data-text-align\": node.attrs?.textAlign || \"left\",\n },\n [\n \"table\",\n tableStyle ? { style: tableStyle } : {},\n [\"colgroup\", ...colgroups],\n [\"tbody\", 0],\n ],\n ];\n },\n\n addProseMirrorPlugins() {\n return [...(this.parent?.() ?? []), actionPreviewPlugin()];\n },\n\n addKeyboardShortcuts() {\n return {\n ...this.parent?.(),\n Enter: () => moveToCellBelow(this.editor),\n // Tab from the last cell leaves the table instead of adding a row.\n Tab: () => this.editor.commands.goToNextCell() || exitTable(this.editor),\n \"Mod-alt-t\": () =>\n this.editor\n .chain()\n .focus()\n .insertTable({ rows: 3, cols: 3, withHeaderRow: true })\n .updateAttributes(\"table\", { textAlign: \"left\" })\n .run(),\n };\n },\n});\n\nexport default Table.configure({});\n","import { TaskItem, TaskList } from \"@tiptap/extension-list\";\n\nexport const TodoListExtension = TaskList.extend({\n name: \"todoList\",\n addKeyboardShortcuts() {\n return {\n \"Mod-Shift-9\": () => this.editor.commands.toggleTaskList(),\n };\n },\n});\n\nexport const TodoItemExtension = TaskItem.extend({\n addKeyboardShortcuts() {\n return {\n Enter: () => this.editor.commands.splitListItem(this.name),\n Tab: () => this.editor.commands.sinkListItem(this.name),\n \"Shift-Tab\": () => this.editor.commands.liftListItem(this.name),\n };\n },\n}).configure({ nested: true });\n\nexport default TodoListExtension;\n","export const MAX_VARIABLE_NAME_DISPLAY_LENGTH = 25;\n","import { NodeViewWrapper } from \"@tiptap/react\";\nimport { Tooltip } from \"neetoatoms\";\n\nimport { getVariableDisplay } from \"src/common/variableDisplay\";\nimport { MAX_VARIABLE_NAME_DISPLAY_LENGTH } from \"src/v2/components/Editor/CustomExtensions/Variable/constants\";\n\nconst VariableComponent = ({ node, extension }) => {\n const { id } = node.attrs;\n\n const { variableName, shouldTruncate } = getVariableDisplay(\n node.attrs,\n MAX_VARIABLE_NAME_DISPLAY_LENGTH\n );\n\n return (\n <NodeViewWrapper\n as=\"span\"\n className=\"neeto-editor-variable\"\n data-label={id}\n data-variable=\"\"\n >\n {extension.options.charOpen}\n <Tooltip content={variableName} disabled={!shouldTruncate} position=\"top\">\n {variableName?.substr(0, MAX_VARIABLE_NAME_DISPLAY_LENGTH)?.trim()}\n {shouldTruncate && \"...\"}\n </Tooltip>\n {extension.options.charClose}\n </NodeViewWrapper>\n );\n};\n\nexport default VariableComponent;\n","import { Node, mergeAttributes } from \"@tiptap/core\";\nimport { PluginKey } from \"@tiptap/pm/state\";\nimport { ReactNodeViewRenderer } from \"@tiptap/react\";\n\nimport VariableComponent from \"./VariableComponent\";\n\nconst VariablePluginKey = new PluginKey(\"variables\");\nconst Variable = Node.create({\n name: \"variable\",\n addOptions() {\n return {\n HTMLAttributes: { class: \"neeto-editor-variable\" },\n charOpen: \"{{\",\n charClose: \"}}\",\n renderLabel({ options, node }) {\n return `${options.charOpen}${node.attrs.id || node.attrs.label}${\n options.charClose\n }`;\n },\n suggestion: {},\n };\n },\n group: \"inline\",\n inline: true,\n selectable: false,\n atom: true,\n addAttributes() {\n return {\n id: {\n default: null,\n parseHTML: element => element.getAttribute(\"data-id\"),\n renderHTML: attributes => {\n if (!attributes.id) return {};\n\n return { \"data-id\": attributes.id };\n },\n },\n label: {\n default: null,\n parseHTML: element => element.getAttribute(\"data-label\"),\n renderHTML: attributes => {\n if (!attributes.label) return {};\n\n return { \"data-label\": attributes.label };\n },\n },\n };\n },\n\n parseHTML() {\n return [{ tag: \"span[data-variable]\" }];\n },\n\n renderHTML({ node, HTMLAttributes }) {\n return [\n \"span\",\n mergeAttributes(\n { \"data-variable\": \"\" },\n this.options.HTMLAttributes,\n HTMLAttributes\n ),\n this.options.renderLabel({ options: this.options, node }),\n ];\n },\n\n renderText({ node }) {\n return this.options.renderLabel({ options: this.options, node });\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(VariableComponent);\n },\n\n addCommands() {\n return {\n setVariable:\n attributes =>\n ({ chain }) => {\n chain()\n .focus()\n .insertContent([\n { type: this.name, attrs: attributes },\n { type: \"text\", text: \" \" },\n ])\n .run();\n },\n };\n },\n});\n\nexport default Variable;\n\nexport { VariablePluginKey };\n","import { useRef, useState } from \"react\";\n\nimport { NodeViewContent, NodeViewWrapper } from \"@tiptap/react\";\nimport classNames from \"classnames\";\nimport { isNotPresent } from \"neetocist\";\nimport { isEmpty, mergeRight } from \"ramda\";\nimport { Resizable } from \"re-resizable\";\n\nimport Menu from \"../Image/Menu\";\n\nconst VideoComponent = ({\n node,\n editor,\n getPos,\n updateAttributes,\n deleteNode,\n}) => {\n const { src, vidheight, vidwidth, align, border } = node.attrs;\n\n const [captionWidth, setCaptionWidth] = useState(vidwidth || 0);\n\n const figureRef = useRef(null);\n\n const { view } = editor;\n let height = vidheight;\n let width = vidwidth;\n const caption = node?.content?.content[0]?.text || \"\";\n\n const editorElement = figureRef.current?.closest(\".neeto-editor\");\n const maxVideoWidth = editorElement?.offsetWidth - 50;\n\n const handleResize = (_event, _direction, ref) => {\n height = ref.offsetHeight;\n width = ref.offsetWidth;\n\n if (width > maxVideoWidth) {\n width = maxVideoWidth;\n const aspectRatio = ref.offsetHeight / ref.offsetWidth;\n height = width * aspectRatio;\n }\n setCaptionWidth(width);\n view.dispatch(\n view.state.tr.setNodeMarkup(\n getPos(),\n undefined,\n mergeRight(node.attrs, {\n vidheight: height,\n vidwidth: width,\n height,\n width,\n })\n )\n );\n editor.commands.focus();\n };\n\n if (isNotPresent(src)) return null;\n\n return (\n <NodeViewWrapper\n className={classNames(\n \"neeto-editor__image-wrapper\",\n `neeto-editor__image--${align}`,\n { \"neeto-editor__image--bordered\": border }\n )}\n >\n <figure ref={figureRef}>\n <Menu {...{ align, border, deleteNode, editor, updateAttributes }} />\n <Resizable\n lockAspectRatio\n className=\"neeto-editor__image\"\n size={{ height, width }}\n onResizeStop={handleResize}\n onResize={(_event, _direction, ref) =>\n setCaptionWidth(ref.offsetWidth)\n }\n >\n <video\n controls\n {...{ ...node.attrs, src }}\n alt={caption}\n data-border={border}\n preload=\"metadata\"\n />\n </Resizable>\n <NodeViewContent\n as=\"figcaption\"\n className={classNames({ \"is-empty\": isEmpty(caption) })}\n style={{ width: `${captionWidth}px` }}\n />\n </figure>\n </NodeViewWrapper>\n );\n};\n\nexport default VideoComponent;\n","import { NodeViewContent, NodeViewWrapper } from \"@tiptap/react\";\nimport classnames from \"classnames\";\nimport { mergeRight } from \"ramda\";\nimport { Resizable } from \"re-resizable\";\n\nimport Menu from \"../Image/Menu\";\n\nconst EmbedComponent = ({\n node,\n editor,\n getPos,\n updateAttributes,\n deleteNode,\n}) => {\n const { figheight, figwidth, align, border, aspectRatio } = node.attrs;\n const { view } = editor;\n let height = figheight;\n let width = figwidth;\n\n const handleResize = (_event, _direction, ref) => {\n height = ref.offsetHeight;\n width = ref.offsetWidth;\n view.dispatch(\n view.state.tr.setNodeMarkup(\n getPos(),\n undefined,\n mergeRight(node.attrs, {\n figheight: height,\n figwidth: width,\n height,\n width,\n })\n )\n );\n editor.commands.focus();\n };\n\n return (\n <NodeViewWrapper\n data-testid=\"neeto-editor-video-wrapper\"\n className={classnames(\n \"neeto-editor__video-wrapper\",\n `neeto-editor__video--${align}`,\n { \"neeto-editor__video--bordered\": border }\n )}\n >\n <NodeViewContent className=\"neeto-editor__video-content\" />\n <Resizable\n lockAspectRatio\n size={{ height, width }}\n className={classnames(\"neeto-editor__video-iframe\", {\n \"neeto-editor-aspect-1-1\": aspectRatio === \"1/1\",\n \"neeto-editor-aspect-16-9\": aspectRatio === \"16/9\",\n \"neeto-editor-aspect-9-16\": aspectRatio === \"9/16\",\n \"neeto-editor-aspect-4-3\": aspectRatio === \"4/3\",\n \"neeto-editor-aspect-3-2\": aspectRatio === \"3/2\",\n })}\n onResizeStop={handleResize}\n >\n <Menu\n {...{ align, border, deleteNode, editor, updateAttributes }}\n showAspectRatio\n />\n <iframe {...node.attrs} allowFullScreen data-border={border} />\n </Resizable>\n </NodeViewWrapper>\n );\n};\n\nexport default EmbedComponent;\n","import { mergeAttributes, Node, PasteRule } from \"@tiptap/core\";\nimport { TextSelection } from \"@tiptap/pm/state\";\nimport { ReactNodeViewRenderer } from \"@tiptap/react\";\nimport classnames from \"classnames\";\n\nimport { COMBINED_REGEX } from \"common/constants\";\nimport getVideoDimension from \"common/getVideoDimension\";\nimport { validateUrl } from \"src/v2/components/Editor/CustomExtensions/Embeds/utils\";\nimport { DEFAULT_ASPECT_RATIO } from \"src/v2/components/Editor/MediaUploader/constants\";\n\nimport VideoComponent from \"./VideoComponent\";\n\nimport EmbedComponent from \"../Embeds/EmbedComponent\";\n\nconst getSharedAttributes = () => ({\n src: {\n default: null,\n parseHTML: element => {\n if (element.tagName === \"IFRAME\") return element.getAttribute(\"src\");\n\n const iframe = element.querySelector(\"iframe\");\n const video = element.querySelector(\"video\");\n\n return iframe?.getAttribute(\"src\") || video?.getAttribute(\"src\");\n },\n },\n align: {\n default: \"left\",\n parseHTML: element =>\n element.getAttribute(\"align\") ||\n element.querySelector(\"video\")?.getAttribute(\"align\"),\n },\n videoType: {\n default: \"upload\",\n parseHTML: element => {\n const iframe =\n element.tagName === \"IFRAME\"\n ? element\n : element.querySelector(\"iframe\");\n\n return iframe ? \"embed\" : \"upload\";\n },\n },\n border: {\n default: true,\n parseHTML: element =>\n element.querySelector(\"video\")?.getAttribute(\"data-border\") === \"true\" ||\n element.querySelector(\"iframe\")?.getAttribute(\"data-border\") === \"true\",\n },\n});\n\nconst getUploadAttributes = () => ({\n alt: {\n default: \"\",\n parseHTML: element => element.querySelector(\"video\")?.getAttribute(\"alt\"),\n },\n vidheight: {\n default: \"fit-content\",\n parseHTML: element =>\n element.querySelector(\"video\")?.getAttribute(\"vidheight\"),\n },\n vidwidth: {\n default: 502,\n parseHTML: element =>\n element.querySelector(\"video\")?.getAttribute(\"vidwidth\"),\n },\n});\n\nconst getEmbedAttributes = () => ({\n figheight: {\n default: 281,\n parseHTML: element =>\n getVideoDimension(\n (element.querySelector(\"iframe\") ?? element).getAttribute(\"figheight\"),\n 281\n ),\n },\n figwidth: {\n default: 500,\n parseHTML: element =>\n getVideoDimension(\n (element.querySelector(\"iframe\") ?? element).getAttribute(\"figwidth\"),\n 500\n ),\n },\n aspectRatio: {\n default: DEFAULT_ASPECT_RATIO,\n parseHTML: element => {\n const iframe = element.querySelector(\".neeto-editor__video-iframe\");\n\n return iframe?.getAttribute(\"data-aspect-ratio\") || DEFAULT_ASPECT_RATIO;\n },\n },\n title: { default: null },\n originalUrl: {\n default: \"\",\n parseHTML: element => {\n const iframe = element.querySelector(\".neeto-editor__video-iframe\");\n\n return (\n iframe?.getAttribute(\"data-original-url\") ||\n iframe?.querySelector(\"iframe\")?.getAttribute(\"data-original-url\") ||\n \"\"\n );\n },\n },\n frameBorder: \"0\",\n allow:\n \"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; fullscreen\",\n allowfullscreen: true,\n});\n\nconst renderEmbedHTML = (node, HTMLAttributes, options) => {\n const { align, figheight, figwidth, border, aspectRatio, originalUrl } =\n node.attrs;\n\n return [\n \"div\",\n {\n class: classnames(\n \"neeto-editor__video-wrapper\",\n `neeto-editor__video--${align}`,\n { \"neeto-editor__video--bordered\": border }\n ),\n },\n [\"div\", { class: \"neeto-editor__video-content\" }, 0],\n [\n \"div\",\n {\n class: classnames(\"neeto-editor__video-iframe\", {\n \"neeto-editor-aspect-1-1\": aspectRatio === \"1/1\",\n \"neeto-editor-aspect-16-9\": aspectRatio === \"16/9\",\n \"neeto-editor-aspect-9-16\": aspectRatio === \"9/16\",\n \"neeto-editor-aspect-4-3\": aspectRatio === \"4/3\",\n \"neeto-editor-aspect-3-2\": aspectRatio === \"3/2\",\n }),\n style: `width: ${getVideoDimension(figwidth, 500)}px; height: ${getVideoDimension(figheight, 281)}px;`,\n \"data-aspect-ratio\": aspectRatio,\n },\n [\n \"iframe\",\n mergeAttributes(options.HTMLAttributes, {\n ...HTMLAttributes,\n allowfullscreen: true,\n \"data-border\": border,\n \"data-original-url\": originalUrl,\n }),\n ],\n ],\n ];\n};\n\nconst renderUploadHTML = (node, HTMLAttributes, options) => {\n const { align, vidheight, vidwidth, border } = node.attrs;\n\n const wrapperDivAttrs = {\n class: classnames(\n \"neeto-editor__image-wrapper\",\n `neeto-editor__image--${align}`,\n { \"neeto-editor__image--bordered\": border }\n ),\n };\n\n const heightStyle =\n vidheight === \"fit-content\" ? \"fit-content\" : `${vidheight}px`;\n\n const wrapperLinkAttrs = {\n rel: \"noopener noreferrer\",\n class: \"neeto-editor__image\",\n style: `height:${heightStyle};width:${vidwidth}px;display:inline-block;`,\n };\n\n const captionAttrs = { style: `width:${vidwidth}px;` };\n\n return [\n \"div\",\n wrapperDivAttrs,\n [\n \"figure\",\n mergeAttributes(options.HTMLAttributes, { \"data-video\": \"\" }),\n [\n \"a\",\n wrapperLinkAttrs,\n [\n \"video\",\n mergeAttributes(HTMLAttributes, {\n preload: \"metadata\",\n controls: true,\n draggable: false,\n contenteditable: false,\n \"data-border\": border,\n }),\n ],\n ],\n [\"figcaption\", captionAttrs, 0],\n ],\n ];\n};\n\nconst handleVideoPaste = ({ state, range, match }) => {\n state.tr.delete(range.from, range.to);\n state.tr.setSelection(TextSelection.create(state.doc, range.from + 1));\n\n const validatedUrl = validateUrl(match[0]);\n\n if (validatedUrl) {\n const node = state.schema.nodes[\"unified-video\"].create({\n src: validatedUrl,\n videoType: \"embed\",\n originalUrl: match[0],\n });\n\n state.tr.insert(range.from, node);\n state.tr.insert(\n range.from + node.nodeSize + 1,\n state.schema.nodes.paragraph.create()\n );\n\n state.tr.setSelection(\n TextSelection.create(state.tr.doc, range.from + node.nodeSize + 1)\n );\n }\n};\n\nconst UnifiedVideoExtension = Node.create({\n name: \"unified-video\",\n\n addOptions() {\n return { HTMLAttributes: {} };\n },\n\n group: \"block\",\n content: \"inline*\",\n draggable: true,\n isolating: true,\n\n addAttributes() {\n return {\n ...getSharedAttributes(),\n ...getUploadAttributes(),\n ...getEmbedAttributes(),\n };\n },\n\n parseHTML() {\n return [\n {\n tag: \"div.neeto-editor__image-wrapper\",\n getAttrs: node => {\n const figure = node.querySelector(\"figure[data-video]\");\n\n if (!figure) return false;\n\n const videoSrc = figure.querySelector(\"video\")?.getAttribute(\"src\");\n const iframeSrc = figure.querySelector(\"iframe\")?.getAttribute(\"src\");\n\n if (!videoSrc && !iframeSrc) return false;\n\n return node.style.fontWeight !== \"normal\" && null;\n },\n contentElement: \"figcaption\",\n },\n {\n tag: \"iframe[src]\",\n // iframes inside our own embed markup are consumed by the\n // div.neeto-editor__video-wrapper rule below.\n getAttrs: element =>\n element.closest(\"div.neeto-editor__video-wrapper\") ? false : null,\n },\n {\n tag: \"div.neeto-editor__video-wrapper\",\n getAttrs: element =>\n element.querySelector(\"iframe[src]\") ? null : false,\n contentElement: element =>\n element.querySelector(\".neeto-editor__video-content\") || element,\n },\n ];\n },\n\n renderHTML({ node, HTMLAttributes }) {\n const { videoType } = node.attrs;\n\n return videoType === \"embed\"\n ? renderEmbedHTML(node, HTMLAttributes, this.options)\n : renderUploadHTML(node, HTMLAttributes, this.options);\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(({ node, ...props }) => {\n const { videoType } = node.attrs;\n\n return videoType === \"embed\" ? (\n <EmbedComponent {...{ ...props, node }} />\n ) : (\n <VideoComponent {...{ ...props, node }} />\n );\n });\n },\n\n addCommands() {\n return {\n setVideo:\n ({ caption, ...attrs }) =>\n ({ chain }) =>\n chain()\n .insertContent({\n type: this.name,\n attrs: { ...attrs, videoType: \"upload\" },\n content: caption ? [{ type: \"text\", text: caption }] : [],\n })\n .command(({ tr, commands }) => {\n const { doc, selection } = tr;\n const position = doc.resolve(selection.to).end();\n\n return commands.setTextSelection(position);\n })\n .run(),\n\n setExternalVideo:\n options =>\n ({ chain }) =>\n chain()\n .insertContent({\n type: this.name,\n attrs: { ...options, videoType: \"embed\" },\n })\n .command(({ tr, commands }) => {\n const { $to } = tr.selection;\n if ($to.parent.type.name !== this.name) return true;\n\n const position = $to.after();\n if (tr.doc.nodeAt(position)?.type.name !== \"paragraph\") {\n commands.insertContentAt(position, { type: \"paragraph\" });\n }\n\n return commands.setTextSelection(position + 1);\n })\n .run(),\n };\n },\n\n addPasteRules() {\n return [\n new PasteRule({\n find: COMBINED_REGEX,\n handler: handleVideoPaste,\n }),\n ];\n },\n});\n\nexport default UnifiedVideoExtension;\n","import Code from \"@tiptap/extension-code\";\nimport Collaboration from \"@tiptap/extension-collaboration\";\nimport CollaborationCaret from \"@tiptap/extension-collaboration-caret\";\nimport Document from \"@tiptap/extension-document\";\nimport Highlight from \"@tiptap/extension-highlight\";\nimport { ListItem } from \"@tiptap/extension-list\";\nimport { TableCell, TableHeader, TableRow } from \"@tiptap/extension-table\";\nimport { Color, TextStyle } from \"@tiptap/extension-text-style\";\nimport Underline from \"@tiptap/extension-underline\";\nimport { CharacterCount, Focus } from \"@tiptap/extensions\";\nimport StarterKit from \"@tiptap/starter-kit\";\nimport { isEmpty } from \"ramda\";\n\nimport { EDITOR_OPTIONS } from \"common/constants\";\nimport safeListKeymap from \"common/safeListKeymap\";\nimport safeSplitBlock from \"common/safeSplitBlock\";\nimport { buildLevelsFromOptions } from \"src/v2/components/Editor/utils\";\n\nimport AttachmentExtension from \"../Attachment/ExtensionConfig\";\nimport HighlightInternal from \"../BackgroundColor/ExtensionConfig\";\nimport BulletList from \"../BulletList/ExtensionConfig\";\nimport Callout from \"../Callout/ExtensionConfig\";\nimport CodeBlock from \"../CodeBlock/ExtensionConfig\";\nimport CustomCommands from \"../CustomCommands/ExtensionConfig\";\nimport DeletedArticleDecoration from \"../DeletedArticleDecoration/ExtensionConfig\";\nimport EditorContainer from \"../EditorContainer/ExtensionConfig\";\nimport EmojiPicker from \"../Emoji/EmojiPicker/ExtensionConfig\";\nimport EmojiSuggestion from \"../Emoji/EmojiSuggestion/ExtensionConfig\";\nimport ImageExtension from \"../Image/ExtensionConfig\";\nimport FigCaption from \"../Image/FigCaption\";\nimport Italic from \"../Italic/ExtensionConfig\";\nimport KeyboardShortcuts from \"../KeyboardShortcuts/ExtensionConfig\";\nimport Link from \"../Link/ExtensionConfig\";\nimport Mention, { createMentionSuggestions } from \"../Mention/ExtensionConfig\";\nimport OrderedList from \"../OrderedList/ExtensionConfig\";\nimport Placeholder from \"../Placeholder/ExtensionConfig\";\nimport SelectionDecoration from \"../SelectionDecoration/ExtensionConfig\";\nimport SlashCommands from \"../SlashCommands/ExtensionConfig\";\nimport SpecialMentions from \"../SpecialMentions/ExtensionConfig\";\nimport Table from \"../Table/ExtensionConfig\";\nimport {\n TodoListExtension,\n TodoItemExtension,\n} from \"../TodoList/ExtensionConfig\";\nimport Variable from \"../Variable/ExtensionConfig\";\nimport UnifiedVideoExtension from \"../Video/ExtensionConfig\";\n\nconst useCustomExtensions = ({\n placeholder,\n extensions,\n mentions,\n variables,\n isSlashCommandsActive,\n options,\n addonCommands,\n onSubmit,\n keyboardShortcuts,\n setMediaUploader,\n setIsAddLinkActive,\n attachmentProps,\n openImageInNewTab,\n openLinkInNewTab,\n enableReactNodeViewOptimization,\n collaborationProvider,\n setIsNeetoKbArticleActive,\n containerRef,\n appendSuggestionsToBody,\n inlineAttachmentsOptions,\n}) => {\n let customExtensions = [\n EditorContainer.configure({ containerRef, appendSuggestionsToBody }),\n CharacterCount,\n Code,\n CodeBlock.configure({ enableReactNodeViewOptimization }),\n CustomCommands,\n Document,\n FigCaption,\n HighlightInternal,\n SelectionDecoration,\n Focus.configure({ mode: \"shallowest\" }),\n Highlight,\n ImageExtension.configure({\n openImageInNewTab,\n enableReactNodeViewOptimization,\n }),\n Link.configure({\n HTMLAttributes: { target: openLinkInNewTab ? \"_blank\" : null },\n }),\n Placeholder.configure({ placeholder, isSlashCommandsActive }),\n StarterKit.configure({\n document: false,\n codeBlock: false,\n code: false,\n bulletList: false,\n listItem: false,\n blockquote: options.includes(EDITOR_OPTIONS.BLOCKQUOTE),\n orderedList: false,\n italic: false,\n link: false, // v3 StarterKit bundles Link; we register a custom Link extension\n underline: false, // v3 StarterKit bundles Underline; we register it explicitly below\n listKeymap: false, // replaced by safeListKeymap, registered below\n trailingNode: false, // new in v3 StarterKit; disabled to keep v2 behavior\n undoRedo: !collaborationProvider,\n heading: { levels: buildLevelsFromOptions(options) },\n }),\n safeSplitBlock,\n safeListKeymap,\n TextStyle,\n Underline,\n Italic,\n KeyboardShortcuts.configure({\n onSubmit,\n shortcuts: keyboardShortcuts,\n isBlockQuoteActive: options.includes(EDITOR_OPTIONS.BLOCKQUOTE),\n }),\n EmojiSuggestion,\n EmojiPicker,\n ];\n\n if (options.includes(EDITOR_OPTIONS.VIDEO_UPLOAD)) {\n customExtensions.push(UnifiedVideoExtension);\n }\n\n if (options.includes(EDITOR_OPTIONS.INLINE_ATTACHMENTS)) {\n customExtensions.push(\n AttachmentExtension.configure(inlineAttachmentsOptions)\n );\n }\n\n if (options.includes(EDITOR_OPTIONS.NEETO_KB_ARTICLE)) {\n customExtensions.push(\n DeletedArticleDecoration.configure({\n deletedArticleIds: new Set(),\n })\n );\n }\n\n if (options.includes(EDITOR_OPTIONS.TABLE)) {\n customExtensions.push(\n Table.configure({ resizable: true }),\n TableRow,\n TableHeader,\n TableCell\n );\n }\n\n if (\n options.includes(EDITOR_OPTIONS.TEXT_COLOR) ||\n options.includes(EDITOR_OPTIONS.HIGHLIGHT)\n ) {\n customExtensions.push(Color);\n }\n\n if (options.includes(EDITOR_OPTIONS.LIST_BULLETS)) {\n customExtensions.push(BulletList);\n }\n\n if (options.includes(EDITOR_OPTIONS.LIST_ORDERED)) {\n customExtensions.push(OrderedList);\n }\n\n if (\n options.includes(EDITOR_OPTIONS.LIST_BULLETS) ||\n options.includes(EDITOR_OPTIONS.LIST_ORDERED)\n ) {\n customExtensions.push(ListItem);\n }\n\n if (options.includes(EDITOR_OPTIONS.CALLOUT)) {\n customExtensions.push(Callout);\n }\n\n if (options.includes(EDITOR_OPTIONS.TODO_LIST)) {\n customExtensions.push(TodoListExtension);\n customExtensions.push(TodoItemExtension);\n }\n\n if (isSlashCommandsActive) {\n customExtensions.push(\n SlashCommands.configure({\n options,\n addonCommands,\n setMediaUploader,\n setIsAddLinkActive,\n attachmentProps,\n setIsNeetoKbArticleActive,\n })\n );\n }\n\n if (!isEmpty(mentions)) {\n const items = createMentionSuggestions(mentions);\n\n customExtensions.push(Mention.configure({ suggestion: { items } }));\n\n customExtensions.push(SpecialMentions.configure({ suggestion: { items } }));\n }\n\n if (!isEmpty(variables)) {\n customExtensions.push(Variable);\n }\n\n if (collaborationProvider) {\n customExtensions.push(\n Collaboration.configure({\n document: collaborationProvider.document ?? collaborationProvider.doc,\n })\n );\n\n customExtensions.push(\n CollaborationCaret.configure({\n provider: collaborationProvider,\n })\n );\n }\n\n customExtensions = customExtensions.concat(extensions);\n\n return customExtensions;\n};\n\nexport default useCustomExtensions;\n","import { globalProps } from \"neetocommons/v2/initializers\";\n\nexport const NEETO_KB_ENDPOINT = globalProps?.kbUrl;\nexport const NEETO_KB_ARTICLES_URL = \"/api/v1/articles\";\nexport const NEETO_KB_CATEGORIES_URL = \"/api/v1/categories\";\n\nexport const MODE = { MODAL: \"modal\", SELECT: \"select\" };\n\nexport const MODAL_BOTTOM_MARGIN = 50;\nexport const MODAL_LEFT_OFFSET = 50;\nexport const MODAL_TOP_OFFSET = 22;\nexport const MODAL_TRANSFORM_Y = 52;\nexport const MODAL_TRANSFORM_X = 8;\n","import { useState, useEffect, useCallback } from \"react\";\n\nconst useArticleNavigation = ({\n articles = [],\n articlesContainerRef,\n mode,\n onClose,\n handleModalArticleSelect,\n searchTerm,\n}) => {\n const [highlightedIndex, setHighlightedIndex] = useState(0);\n\n useEffect(() => {\n setHighlightedIndex(0);\n }, [articles, searchTerm]);\n\n useEffect(() => {\n if (!articlesContainerRef?.current || !articles?.length) return;\n\n const container = articlesContainerRef.current;\n const highlightedItem = container.querySelector(\n `[data-index=\"${highlightedIndex}\"]`\n );\n\n if (!highlightedItem) return;\n\n const containerRect = container.getBoundingClientRect();\n const itemRect = highlightedItem.getBoundingClientRect();\n\n const isItemAbove = itemRect.top < containerRect.top;\n const isItemBelow = itemRect.bottom > containerRect.bottom;\n\n if (isItemAbove) {\n container.scrollTop -= containerRect.top - itemRect.top;\n } else if (isItemBelow) {\n container.scrollTop += itemRect.bottom - containerRect.bottom;\n }\n }, [highlightedIndex, articles.length, articlesContainerRef]);\n\n const navigationHandlers = {\n down: prev => (prev < articles.length - 1 ? prev + 1 : 0),\n up: prev => (prev > 0 ? prev - 1 : articles.length - 1),\n };\n\n const keyActions = {\n Escape: () => onClose?.(),\n ArrowDown: () => setHighlightedIndex(navigationHandlers[\"down\"]),\n ArrowUp: () => setHighlightedIndex(navigationHandlers[\"up\"]),\n Tab: event =>\n setHighlightedIndex(navigationHandlers[event.shiftKey ? \"up\" : \"down\"]),\n Enter: () => {\n if (articles[highlightedIndex]) {\n handleModalArticleSelect?.(articles[highlightedIndex]);\n }\n },\n };\n\n const handleKeyboardNavigation = useCallback(\n event => {\n if (mode !== \"modal\") return;\n\n const action = keyActions[event.key];\n if (!action) return;\n\n event.preventDefault();\n action(event);\n },\n [mode, articles, highlightedIndex, onClose, handleModalArticleSelect]\n );\n\n useEffect(() => {\n if (mode !== \"modal\") return undefined;\n\n document.addEventListener(\"keydown\", handleKeyboardNavigation);\n\n return () => {\n document.removeEventListener(\"keydown\", handleKeyboardNavigation);\n };\n }, [mode, handleKeyboardNavigation]);\n\n return { highlightedIndex };\n};\n\nexport default useArticleNavigation;\n","import { decodeHtmlEntities } from \"src/utils/common\";\n\nimport { NEETO_KB_ENDPOINT } from \"./constants\";\n\nexport const buildArticleFullUrl = slug =>\n slug ? `${NEETO_KB_ENDPOINT}/articles/${slug}` : null;\n\nexport const createArticleOptions = articles =>\n articles.map(article => ({\n label: decodeHtmlEntities(article.title),\n value: article.id,\n data: { type: \"article\", ...article },\n }));\n\nexport const extractKbArticleIds = editor => {\n if (!editor) return [];\n\n const articleIds = [];\n const { doc } = editor.state;\n\n doc.descendants(node => {\n if (node.marks) {\n node.marks.forEach(mark => {\n if (\n mark.type.name === \"link\" &&\n mark.attrs[\"data-neeto-kb-article\"] === \"true\" &&\n mark.attrs[\"data-article-id\"]\n ) {\n articleIds.push(mark.attrs[\"data-article-id\"]);\n }\n });\n }\n });\n\n return [...new Set(articleIds)];\n};\n","import React from \"react\";\n\nimport { Typography } from \"@bigbinary/neeto-atoms\";\nimport classNames from \"classnames\";\nimport { isNotEmpty } from \"neetocist\";\nimport { withT } from \"neetocommons/v2/react-utils\";\n\nimport { decodeHtmlEntities } from \"src/utils/common\";\n\nconst ArticlesList = withT(\n ({\n t,\n articles = [],\n onSelectArticle,\n highlightedIndex = 0,\n containerRef,\n }) => (\n <div className=\"max-h-40 overflow-y-auto\" ref={containerRef}>\n {isNotEmpty(articles) ? (\n <div className=\"space-y-1\">\n {articles.map((article, index) => (\n <button\n data-index={index}\n key={article?.id}\n className={classNames(\n \"w-full rounded p-2 text-left hover:bg-gray-200 focus:bg-gray-200 focus:outline-none\",\n { \"bg-gray-200\": index === highlightedIndex }\n )}\n onClick={() => onSelectArticle?.(article)}\n >\n <div className=\"text-sm font-medium\">\n {decodeHtmlEntities(article?.title)}\n </div>\n </button>\n ))}\n </div>\n ) : (\n <div className=\"py-4 text-center text-gray-500\">\n <Typography variant=\"body2\">\n {t(\"neetoEditor.error.noResults\")}\n </Typography>\n </div>\n )}\n </div>\n )\n);\n\nexport default ArticlesList;\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { Select, Spinner } from \"@bigbinary/neeto-atoms\";\nimport { findBy } from \"neetocist\";\nimport Search from \"neetomolecules/v2/Search\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useFetchKbArticles } from \"hooks/reactQuery/kbArticle/useArticleFetching\";\nimport {\n MODE,\n MODAL_BOTTOM_MARGIN,\n MODAL_LEFT_OFFSET,\n MODAL_TOP_OFFSET,\n MODAL_TRANSFORM_Y,\n MODAL_TRANSFORM_X,\n} from \"src/v2/components/Editor/CustomExtensions/LinkKbArticles/constants\";\nimport useArticleNavigation from \"src/v2/components/Editor/CustomExtensions/LinkKbArticles/hooks/useArticleNavigation\";\nimport {\n buildArticleFullUrl,\n createArticleOptions,\n} from \"src/v2/components/Editor/CustomExtensions/LinkKbArticles/utils\";\n\nimport ArticlesList from \"./ArticlesList\";\n\nconst ArticlePicker = ({\n mode = MODE.MODAL,\n cursorPos,\n onClose,\n isLoading: externalIsLoading,\n options: externalOptions,\n value,\n onChange,\n placeholder,\n label,\n name,\n className,\n onArticleSelect,\n}) => {\n const { t } = useTranslation();\n const [searchTerm, setSearchTerm] = useState(\"\");\n const modalRef = useRef(null);\n const articlesContainerRef = useRef(null);\n\n const { data: articles = [], isLoading: isLoadingArticles } =\n useFetchKbArticles({\n searchTerm,\n reactQueryOptions: { enabled: !externalOptions },\n });\n\n const isLoading = externalIsLoading || isLoadingArticles;\n\n const selectOptions =\n mode === MODE.SELECT ? createArticleOptions(articles) : [];\n\n const handleModalArticleSelect = article => {\n if (mode !== MODE.MODAL || !article) return;\n\n const articleWithUrl = {\n ...article,\n full_url: buildArticleFullUrl(article.slug),\n };\n\n onArticleSelect(article, articleWithUrl);\n onClose?.();\n };\n\n const { highlightedIndex } = useArticleNavigation({\n articles,\n articlesContainerRef,\n mode,\n onClose,\n handleModalArticleSelect,\n searchTerm,\n });\n\n const handleSelectChange = selectedValueString => {\n const options = externalOptions || selectOptions;\n const selectedOption = findBy({ value: selectedValueString }, options);\n\n if (selectedOption?.data?.type === \"article\" && onChange) {\n onChange(\n { value: selectedOption.value, label: selectedOption.label },\n undefined\n );\n }\n };\n\n useEffect(() => {\n if (mode !== MODE.MODAL || !modalRef.current || !cursorPos) return;\n\n const modal = modalRef.current;\n\n const modalRect = modal.getBoundingClientRect();\n const modalWidth = modalRect.width || 320;\n const modalHeight = modalRect.height || 200;\n\n const maxLeft = window.innerWidth - modalWidth;\n const maxTop = window.innerHeight - modalHeight - MODAL_BOTTOM_MARGIN;\n\n const adjustedLeft = Math.min(cursorPos.left - MODAL_LEFT_OFFSET, maxLeft);\n const adjustedTop = Math.min(cursorPos.top - MODAL_TOP_OFFSET, maxTop);\n\n Object.assign(modal.style, {\n position: \"fixed\",\n top: `${adjustedTop}px`,\n left: `${adjustedLeft}px`,\n transform: `translateY(${MODAL_TRANSFORM_Y}px) translateX(${MODAL_TRANSFORM_X}px)`,\n zIndex: 99999,\n });\n }, [mode, cursorPos]);\n\n useEffect(() => {\n if (mode !== MODE.MODAL) return undefined;\n\n const handleClickOutside = event => {\n if (modalRef.current && !modalRef.current.contains(event.target)) {\n onClose?.();\n }\n };\n\n document.addEventListener(\"mousedown\", handleClickOutside);\n\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [mode, onClose]);\n\n if (mode === MODE.MODAL) {\n return (\n <div className=\"ne-article-picker-popover w-80 border\" ref={modalRef}>\n <div className=\"mb-4\">\n <Search\n autoFocus\n placeholder={t(\"neetoEditor.placeholders.searchArticles\")}\n onSearch={setSearchTerm}\n />\n </div>\n {isLoading ? (\n <div className=\"flex items-center justify-center py-8\">\n <Spinner />\n </div>\n ) : (\n <div>\n <ArticlesList\n {...{ articles, highlightedIndex, searchTerm }}\n containerRef={articlesContainerRef}\n onSelectArticle={handleModalArticleSelect}\n />\n </div>\n )}\n </div>\n );\n }\n\n return (\n <Select\n {...{ className, label, name, placeholder }}\n isSearchable\n isDisabled={isLoading}\n options={externalOptions || selectOptions}\n value={typeof value === \"object\" ? value?.value : value}\n onChange={handleSelectChange}\n />\n );\n};\n\nexport default ArticlePicker;\n","import React from \"react\";\n\nimport { MODE } from \"src/v2/components/Editor/CustomExtensions/LinkKbArticles/constants\";\n\nimport ArticlePicker from \"./ArticlePicker\";\n\nconst ArticleSelector = ({\n editor,\n cursorPos,\n onClose,\n deletedArticlesHook,\n}) => {\n const handleArticleSelect = (article, detailedArticle) => {\n if (!detailedArticle.full_url) return;\n const { from, to } = editor.state.selection;\n\n const linkText = detailedArticle.title || article.title;\n const isDeleted = deletedArticlesHook?.isArticleDeleted(article.id);\n\n const attrs = {\n href: detailedArticle.full_url,\n \"data-neeto-kb-article\": \"true\",\n \"data-article-id\": article.id,\n \"data-article-deleted\": isDeleted ? \"true\" : null,\n title: detailedArticle.title || article.title,\n };\n\n const linkMark = editor.state.schema.marks.link.create(attrs);\n const linkTextWithMark = editor.state.schema.text(linkText, [linkMark]);\n\n const tr = editor.state.tr.replaceWith(from, to, linkTextWithMark);\n editor.view.dispatch(tr);\n editor.view.focus();\n };\n\n return (\n <ArticlePicker\n {...{ cursorPos, deletedArticlesHook, editor, onClose }}\n mode={MODE.MODAL}\n onArticleSelect={handleArticleSelect}\n />\n );\n};\n\nexport default ArticleSelector;\n","import { useCallback } from \"react\";\n\nimport { Button } from \"@bigbinary/neeto-atoms\";\nimport { findTable } from \"@tiptap/pm/tables\";\nimport { useEditorState } from \"@tiptap/react\";\nimport { BubbleMenu } from \"@tiptap/react/menus\";\nimport { Minus, Plus, Trash2 } from \"lucide-react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { setActionPreview } from \"./actionPreviewPlugin\";\nimport { getTableSize } from \"./utils\";\n\nconst Counter = ({\n label,\n onDecrement,\n onDecrementHover,\n onIncrementHover,\n onIncrement,\n decrementLabel,\n incrementLabel,\n isDecrementDisabled,\n}) => (\n <div className=\"neeto-editor-table-menu__group neeto-editor-table-menu__group--counter\">\n <Button\n className=\"ne-toolbar-item\"\n disabled={isDecrementDisabled}\n icon={Minus}\n size=\"sm\"\n tooltipProps={{ content: decrementLabel, position: \"top\" }}\n variant=\"ghost\"\n onClick={onDecrement}\n onMouseEnter={() => !isDecrementDisabled && onDecrementHover(true)}\n onMouseLeave={() => onDecrementHover(false)}\n />\n <span className=\"neeto-editor-table-menu__count\">{label}</span>\n <Button\n className=\"ne-toolbar-item\"\n icon={Plus}\n size=\"sm\"\n tooltipProps={{ content: incrementLabel, position: \"top\" }}\n variant=\"ghost\"\n onClick={onIncrement}\n onMouseEnter={() => onIncrementHover(true)}\n onMouseLeave={() => onIncrementHover(false)}\n />\n </div>\n);\n\nconst TableActionMenu = ({ editor }) => {\n const { t } = useTranslation();\n\n const { rows, columns } = useEditorState({\n editor,\n selector: ({ editor }) => getTableSize(editor),\n }) ?? { rows: 0, columns: 0 };\n\n const getReferenceClientRect = useCallback(() => {\n const table = editor && findTable(editor.state.selection.$from);\n const element = table && editor.view.nodeDOM(table.pos);\n\n return element?.getBoundingClientRect?.() ?? new DOMRect(0, 0, 0, 0);\n }, [editor]);\n\n const shouldShow = useCallback(\n () => editor?.isFocused && editor?.isActive(\"table\"),\n [editor]\n );\n\n if (!editor) return null;\n\n return (\n <BubbleMenu\n {...{ editor, shouldShow }}\n className=\"neeto-editor-table-menu\"\n options={{ placement: \"top-start\", offset: 8, flip: false }}\n style={{ zIndex: 99999 }}\n getReferencedVirtualElement={() => ({\n getBoundingClientRect: getReferenceClientRect,\n })}\n >\n <Counter\n decrementLabel={t(\"neetoEditor.table.deleteRow\")}\n incrementLabel={t(\"neetoEditor.table.insertRow\")}\n isDecrementDisabled={rows <= 1}\n label={t(\"neetoEditor.table.rowCount\", { count: rows })}\n onDecrement={() => editor.chain().focus().deleteRow().run()}\n onIncrement={() => editor.chain().focus().addRowAfter().run()}\n onDecrementHover={isHovering =>\n setActionPreview(editor, isHovering ? \"deleteRow\" : null)\n }\n onIncrementHover={isHovering =>\n setActionPreview(editor, isHovering ? \"insertRow\" : null)\n }\n />\n <Counter\n decrementLabel={t(\"neetoEditor.table.deleteColumn\")}\n incrementLabel={t(\"neetoEditor.table.insertColumn\")}\n isDecrementDisabled={columns <= 1}\n label={t(\"neetoEditor.table.columnCount\", { count: columns })}\n onDecrement={() => editor.chain().focus().deleteColumn().run()}\n onIncrement={() => editor.chain().focus().addColumnAfter().run()}\n onDecrementHover={isHovering =>\n setActionPreview(editor, isHovering ? \"deleteColumn\" : null)\n }\n onIncrementHover={isHovering =>\n setActionPreview(editor, isHovering ? \"insertColumn\" : null)\n }\n />\n <div className=\"neeto-editor-table-menu__group\">\n <Button\n className=\"ne-toolbar-item\"\n icon={Trash2}\n size=\"sm\"\n variant=\"ghost\"\n tooltipProps={{\n content: t(\"neetoEditor.table.delete\"),\n position: \"top\",\n }}\n onClick={() => editor.chain().focus().deleteTable().run()}\n onMouseEnter={() => setActionPreview(editor, \"deleteTable\")}\n onMouseLeave={() => setActionPreview(editor, null)}\n />\n </div>\n </BubbleMenu>\n );\n};\n\nexport default TableActionMenu;\n","import React from \"react\";\n\nimport { Button, Dialog } from \"@bigbinary/neeto-atoms\";\nimport { withT } from \"neetocommons/v2/react-utils\";\n\nconst KbArticleDeletedModal = withT(({ t, isOpen, onClose }) => (\n <Dialog {...{ isOpen, onClose }}>\n <Dialog.Header>\n <Dialog.Title>{t(\"neetoEditor.linkKb.articleDeletedTitle\")}</Dialog.Title>\n </Dialog.Header>\n <Dialog.Body>\n <p>{t(\"neetoEditor.linkKb.articleDeletedDescription\")}</p>\n </Dialog.Body>\n <Dialog.Footer>\n <Button label={t(\"neetoEditor.common.close\")} onClick={onClose} />\n </Dialog.Footer>\n </Dialog>\n));\n\nexport default KbArticleDeletedModal;\n","import React from \"react\";\n\nimport { Button } from \"@bigbinary/neeto-atoms\";\nimport { Form, Input } from \"@bigbinary/neeto-atoms/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { decodeHtmlEntities } from \"src/utils/common\";\nimport { MODE } from \"src/v2/components/Editor/CustomExtensions/LinkKbArticles/constants\";\n\nimport ArticlePicker from \"./ArticlePicker\";\n\nconst KbArticleEdit = ({\n linkAttributes,\n getCurrentTextContent,\n getCurrentArticleOption,\n handleKbArticleSubmit,\n handleSelectChange,\n handleKeyDown,\n isLoadingKbData,\n selectOptions,\n setIsEditing,\n}) => {\n const initialValues = {\n textContent:\n getCurrentTextContent?.() ||\n decodeHtmlEntities(linkAttributes?.title || \"\") ||\n \"\",\n pageSelection: getCurrentArticleOption(),\n };\n\n const { t } = useTranslation();\n\n return (\n <Form\n className=\"w-64\"\n formikProps={{\n initialValues,\n onSubmit: handleKbArticleSubmit,\n enableReinitialize: true,\n }}\n >\n {({ dirty, isSubmitting, setFieldValue, values }) => (\n <div className=\"flex w-full flex-col items-start gap-2\">\n <Input\n required\n unlimitedChars\n className=\"w-full\"\n data-testid=\"neeto-editor-edit-kb-link-text-input\"\n label={t(\"neetoEditor.common.text\")}\n name=\"textContent\"\n placeholder={t(\"neetoEditor.placeholders.enterText\")}\n onKeyDown={handleKeyDown}\n />\n <ArticlePicker\n className=\"w-full\"\n data-testid=\"neeto-editor-edit-kb-link-page-select\"\n isLoading={isLoadingKbData}\n label={t(\"neetoEditor.linkKb.articleLabel\")}\n mode={MODE.SELECT}\n name=\"pageSelection\"\n options={selectOptions}\n placeholder={t(\"neetoEditor.linkKb.selectArticle\")}\n value={values.pageSelection}\n onChange={value => handleSelectChange(value, { setFieldValue })}\n />\n <div className=\"ne-link-popover__edit-prompt-buttons\">\n <Button\n data-testid=\"neeto-editor-edit-kb-link-done\"\n disabled={!dirty}\n label={t(\"neetoEditor.common.done\")}\n loading={isSubmitting}\n size=\"sm\"\n type=\"submit\"\n />\n <Button\n data-testid=\"neeto-editor-edit-kb-link-cancel\"\n label={t(\"neetoEditor.common.cancel\")}\n size=\"sm\"\n variant=\"ghost\"\n onClick={() => setIsEditing(false)}\n />\n </div>\n </div>\n )}\n </Form>\n );\n};\n\nexport default KbArticleEdit;\n","import { Button } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { BookOpen, Pencil } from \"lucide-react\";\nimport { withT } from \"neetocommons/v2/react-utils\";\nimport CopyToClipboardButton from \"neetomolecules/v2/CopyToClipboardButton\";\n\nimport { decodeHtmlEntities } from \"src/utils/common\";\n\nconst KbArticleView = withT(\n ({ t, linkAttributes, isDeleted, onEdit, onDeletedClick, currentText }) => (\n <div>\n <div className=\"flex items-center gap-3\">\n <BookOpen className=\"text-gray-600\" size={16} />\n <a\n href={linkAttributes?.href}\n rel=\"noreferrer\"\n target=\"_blank\"\n className={classnames(\"ne-link-popover__kb-article-link\", {\n \"ne-link-popover__kb-article-link--deleted\": isDeleted,\n })}\n onClick={event => {\n if (!isDeleted) return;\n event.preventDefault();\n onDeletedClick?.();\n }}\n >\n {currentText ||\n decodeHtmlEntities(linkAttributes?.title || \"\") ||\n linkAttributes?.href}\n </a>\n <div className=\"flex items-center gap-0.5\">\n <CopyToClipboardButton\n size=\"sm\"\n value={linkAttributes?.href}\n variant=\"ghost\"\n />\n <Button\n className=\"ne-link-popover__option-button mx-0\"\n data-testid=\"neeto-editor-link-popover-edit\"\n icon={Pencil}\n size=\"sm\"\n variant=\"ghost\"\n tooltipProps={{\n content: t(\"neetoEditor.common.edit\"),\n position: \"top\",\n }}\n onClick={onEdit}\n />\n </div>\n </div>\n {isDeleted && (\n <div className=\"mt-2 rounded p-2 text-sm\">\n {t(\"neetoEditor.linkKb.articleDeletedDescription\")}\n </div>\n )}\n </div>\n )\n);\n\nexport default KbArticleView;\n","import { useEffect, useState, useRef } from \"react\";\n\nimport { getMarkRange, getMarkType } from \"@tiptap/react\";\nimport { Button, Checkbox } from \"neetoatoms\";\nimport { Form, Input } from \"neetoatoms/formik\";\nimport { findBy } from \"neetocist\";\nimport { useOnClickOutside } from \"neetocommons/v2/react-utils\";\nimport { equals, isNil } from \"ramda\";\nimport { createPortal } from \"react-dom\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useFetchKbArticles } from \"hooks/reactQuery/kbArticle/useArticleFetching\";\nimport { decodeHtmlEntities } from \"src/utils/common\";\nimport { LINK_VALIDATION_SCHEMA } from \"src/v2/components/Editor/constants\";\nimport {\n buildArticleFullUrl,\n createArticleOptions,\n} from \"src/v2/components/Editor/CustomExtensions/LinkKbArticles/utils\";\nimport { getLinkPopoverPosition } from \"src/v2/components/Editor/Menu/Fixed/utils\";\nimport { validateAndFormatUrl } from \"src/v2/components/Editor/utils\";\n\nimport KbArticleDeletedModal from \"./CustomExtensions/LinkKbArticles/KbArticleDeletedModal\";\nimport KbArticleEdit from \"./CustomExtensions/LinkKbArticles/KbArticleEdit\";\nimport KbArticleView from \"./CustomExtensions/LinkKbArticles/KbArticleView\";\n\nconst LinkPopOver = ({ editor, deletedArticlesHook, containerRef }) => {\n const { view } = editor || {};\n const { from } = editor.state.selection;\n const initialTextContent = view?.state?.doc?.nodeAt(from)?.text || \"\";\n\n const [arrowPosition, setArrowPosition] = useState({ top: 0, left: 0 });\n const [popoverPosition, setPopoverPosition] = useState({ top: 0, left: 0 });\n const [isEditing, setIsEditing] = useState(false);\n const [isLinkActive, setIsLinkActive] = useState(editor?.isActive(\"link\"));\n const [linkAttributes, setLinkAttributes] = useState(\n editor?.getAttributes(\"link\")\n );\n\n const [showDeletedModal, setShowDeletedModal] = useState(false);\n\n const popoverRef = useRef(null);\n\n const { t } = useTranslation();\n const isNeetoKbArticle = linkAttributes?.[\"data-neeto-kb-article\"] === \"true\";\n\n const { data: articles = [], isLoading: isLoadingKbData } =\n useFetchKbArticles({\n searchTerm: \"\",\n reactQueryOptions: { enabled: isEditing && isNeetoKbArticle },\n });\n\n const selectOptions = createArticleOptions(articles);\n\n const handleSelectChange = (value, { setFieldValue }) => {\n const selectedOption = findBy({ value: value?.value }, selectOptions);\n\n if (selectedOption?.data?.type === \"article\") {\n setFieldValue(\"pageSelection\", value);\n }\n };\n\n const updatePopoverPosition = () => {\n if (!view) return;\n\n const { arrowPosition, popoverPosition } = getLinkPopoverPosition(\n editor,\n popoverRef\n );\n\n setPopoverPosition({\n top: parseInt(popoverPosition.top),\n left: parseInt(popoverPosition.left),\n });\n\n setArrowPosition({\n top: parseInt(arrowPosition.top),\n left: parseInt(arrowPosition.left),\n });\n };\n\n const handleUnlink = () =>\n editor.chain().focus().extendMarkRange(\"link\").unsetLink().run();\n\n const removePopover = () => {\n setIsEditing(false);\n setIsLinkActive(false);\n };\n\n const popoverStyle = {\n display: \"block\",\n position: \"fixed\",\n top: popoverPosition.top,\n left: popoverPosition.left,\n transform: `translateY(52px) translateX(${isEditing ? \"8px\" : \"3px\"})`,\n };\n\n const handleSubmit = ({ textContent, urlString, openInNewTab }) => {\n const formattedUrl = validateAndFormatUrl(urlString);\n if (equals(textContent, initialTextContent)) {\n editor\n .chain()\n .focus()\n .extendMarkRange(\"link\")\n .setLink({\n href: formattedUrl,\n target: openInNewTab ? \"_blank\" : \"_self\",\n })\n .run();\n\n setIsEditing(false);\n\n return;\n }\n const { state, dispatch } = editor.view;\n const type = getMarkType(\"link\", state.schema);\n const { $to } = state.selection;\n const { from = null, to = null } = getMarkRange($to, type) || {};\n\n if (isNil(from) || isNil(to)) return;\n\n const attrs = {\n href: formattedUrl,\n target: openInNewTab ? \"_blank\" : \"_self\",\n };\n\n const linkMark = state.schema.marks.link.create(attrs);\n const linkTextWithMark = state.schema.text(textContent, [linkMark]);\n\n const tr = state.tr.replaceWith(from, to, linkTextWithMark);\n\n dispatch(tr);\n\n setIsEditing(false);\n editor.view.focus();\n editor.commands.extendMarkRange(\"link\");\n };\n\n const handleKbArticleSubmit = ({ textContent, pageSelection }) => {\n if (!pageSelection || pageSelection === \"\") {\n const { state, dispatch } = editor.view;\n const type = getMarkType(\"link\", state.schema);\n const { $to } = state.selection;\n const { from = null, to = null } = getMarkRange($to, type) || {};\n\n if (isNil(from) || isNil(to)) return;\n\n const articleId = linkAttributes?.[\"data-article-id\"];\n const isDeleted = deletedArticlesHook?.isArticleDeleted(articleId);\n\n const attrs = {\n href: linkAttributes?.href,\n \"data-neeto-kb-article\": linkAttributes?.[\"data-neeto-kb-article\"],\n \"data-article-id\": articleId,\n \"data-article-deleted\": isDeleted ? \"true\" : null,\n title: textContent || decodeHtmlEntities(linkAttributes?.title || \"\"),\n };\n\n const linkMark = state.schema.marks.link.create(attrs);\n const linkTextWithMark = state.schema.text(textContent, [linkMark]);\n\n const tr = state.tr.replaceWith(from, to, linkTextWithMark);\n dispatch(tr);\n\n setIsEditing(false);\n editor.view.focus();\n editor.commands.extendMarkRange(\"link\");\n\n return;\n }\n\n const selectedOption = findBy(\n { value: pageSelection?.value },\n selectOptions\n );\n\n if (!selectedOption) return;\n\n const { data } = selectedOption;\n\n if (data?.type === \"article\") {\n const full_url = buildArticleFullUrl(data.slug);\n\n if (full_url) {\n const { state, dispatch } = editor.view;\n const type = getMarkType(\"link\", state.schema);\n const { $to } = state.selection;\n const { from = null, to = null } = getMarkRange($to, type) || {};\n\n if (isNil(from) || isNil(to)) return;\n\n const isDeleted = deletedArticlesHook?.isArticleDeleted(data.id);\n\n const attrs = {\n href: full_url,\n \"data-neeto-kb-article\": \"true\",\n \"data-article-id\": data.id,\n \"data-article-deleted\": isDeleted ? \"true\" : null,\n title: decodeHtmlEntities(data.title || \"\"),\n };\n\n const linkMark = state.schema.marks.link.create(attrs);\n const linkTextWithMark = state.schema.text(\n textContent || decodeHtmlEntities(data.title || \"\"),\n [linkMark]\n );\n\n const tr = state.tr.replaceWith(from, to, linkTextWithMark);\n dispatch(tr);\n\n setIsEditing(false);\n editor.view.focus();\n editor.commands.extendMarkRange(\"link\");\n }\n }\n };\n\n const handleKeyDown = event =>\n equals(event.key, \"Escape\") && setIsEditing(false);\n\n useOnClickOutside(popoverRef, removePopover, { enabled: true });\n\n useEffect(() => {\n const isActive = editor?.isActive(\"link\");\n\n setIsLinkActive(isActive);\n if (isActive) {\n updatePopoverPosition();\n const currentLinkAttributes = editor?.getAttributes(\"link\");\n\n setLinkAttributes(currentLinkAttributes);\n }\n }, [view?.state?.selection?.$from?.pos, isEditing]);\n\n const getCurrentArticleOption = () => {\n const articleId = linkAttributes?.[\"data-article-id\"];\n if (!articleId) return \"\";\n\n const currentArticleOption = findBy(\n { data: { type: \"article\", id: articleId } },\n selectOptions || []\n );\n\n if (!currentArticleOption && linkAttributes?.title) {\n return {\n label: decodeHtmlEntities(linkAttributes.title),\n value: articleId,\n };\n }\n\n return currentArticleOption || \"\";\n };\n\n const getCurrentTextContent = () => {\n const { state } = editor.view;\n const type = getMarkType(\"link\", state.schema);\n const { $to } = state.selection;\n const { from = null, to = null } = getMarkRange($to, type) || {};\n\n if (from !== null && to !== null) {\n return state.doc.textBetween(from, to);\n }\n const { $from } = state.selection;\n\n return state.doc.textBetween($from.pos, $to.pos);\n };\n\n const renderEditingMode = () => {\n const initialValues = {\n textContent: initialTextContent,\n urlString: linkAttributes?.href || \"\",\n openInNewTab: linkAttributes?.target === \"_blank\",\n };\n\n return (\n <Form\n key={`${linkAttributes?.href}-${linkAttributes?.target}`}\n formikProps={{\n initialValues,\n onSubmit: handleSubmit,\n validationSchema: LINK_VALIDATION_SCHEMA,\n }}\n >\n {({ dirty, isSubmitting, setFieldValue, values }) => (\n <>\n <Input\n required\n data-testid=\"neeto-editor-edit-link-text-input\"\n label={t(\"neetoEditor.common.text\")}\n name=\"textContent\"\n placeholder={t(\"neetoEditor.placeholders.enterText\")}\n style={{ width: \"250px\" }}\n onKeyDown={handleKeyDown}\n />\n <Input\n autoFocus\n required\n className=\"ne-link-popover__url-input\"\n data-testid=\"neeto-editor-edit-link-url-input\"\n label={t(\"neetoEditor.common.url\")}\n name=\"urlString\"\n placeholder={t(\"neetoEditor.placeholders.url\")}\n style={{ width: \"250px\" }}\n onKeyDown={handleKeyDown}\n />\n <Checkbox\n checked={values.openInNewTab}\n className=\"ne-link-popover__checkbox\"\n label={t(\"neetoEditor.common.openInNewTab\")}\n onCheckedChange={checked => {\n setFieldValue(\"openInNewTab\", Boolean(checked));\n }}\n />\n <div className=\"ne-link-popover__edit-prompt-buttons\">\n <Button\n data-testid=\"neeto-editor-edit-link\"\n disabled={!dirty}\n label={t(\"neetoEditor.menu.link\")}\n loading={isSubmitting}\n size=\"sm\"\n type=\"submit\"\n />\n <Button\n data-testid=\"neeto-editor-edit-link-cancel\"\n label={t(\"neetoEditor.common.cancel\")}\n size=\"sm\"\n variant=\"ghost\"\n onClick={() => setIsEditing(false)}\n />\n </div>\n </>\n )}\n </Form>\n );\n };\n\n const renderEditingModeForKbArticle = () => (\n <KbArticleEdit\n {...{\n getCurrentArticleOption,\n getCurrentTextContent,\n handleKbArticleSubmit,\n handleKeyDown,\n handleSelectChange,\n isLoadingKbData,\n linkAttributes,\n selectOptions,\n setIsEditing,\n }}\n />\n );\n\n const renderViewModeForKbArticle = () => {\n const articleId = linkAttributes?.[\"data-article-id\"];\n const isDeleted = deletedArticlesHook?.isArticleDeleted(articleId);\n\n return (\n <KbArticleView\n {...{ isDeleted, linkAttributes }}\n currentText={getCurrentTextContent()}\n onEdit={() => setIsEditing(true)}\n onDeletedClick={() => {\n removePopover();\n setShowDeletedModal(true);\n }}\n />\n );\n };\n\n const renderViewMode = () => (\n <>\n <a href={linkAttributes?.href} rel=\"noreferrer noopener\" target=\"_blank\">\n {linkAttributes?.href}\n </a>\n {\" - \"}\n <Button\n className=\"ne-link-popover__option-button\"\n data-testid=\"neeto-editor-link-popover-edit\"\n label={t(\"neetoEditor.common.edit\")}\n size=\"sm\"\n variant=\"link\"\n onClick={() => setIsEditing(true)}\n />\n <span>|</span>\n <Button\n className=\"ne-link-popover__option-button\"\n data-testid=\"neeto-editor-link-popover-unlink\"\n label={t(\"neetoEditor.common.unlink\")}\n size=\"sm\"\n variant=\"link\"\n onClick={handleUnlink}\n />\n </>\n );\n\n const renderPopoverContent = () => {\n if (isEditing) {\n return isNeetoKbArticle\n ? renderEditingModeForKbArticle()\n : renderEditingMode();\n }\n\n return isNeetoKbArticle ? renderViewModeForKbArticle() : renderViewMode();\n };\n\n return (\n <>\n {createPortal(\n isLinkActive ? (\n <>\n <div\n className=\"ne-link-arrow fade-in\"\n style={{ top: arrowPosition.top, left: arrowPosition.left }}\n />\n <div\n className=\"ne-link-popover fade-in\"\n id=\"ne-link-view-popover\"\n ref={popoverRef}\n style={popoverStyle}\n >\n {renderPopoverContent()}\n </div>\n </>\n ) : null,\n containerRef?.current ?? document.body\n )}\n <KbArticleDeletedModal\n isOpen={showDeletedModal}\n onClose={() => setShowDeletedModal(false)}\n />\n </>\n );\n};\n\nexport default LinkPopOver;\n","import {\n forwardRef,\n useImperativeHandle,\n useState,\n useRef,\n memo,\n useEffect,\n} from \"react\";\n\nimport { useEditor, EditorContent, useEditorState } from \"@tiptap/react\";\nimport classnames from \"classnames\";\nimport { Label } from \"neetoatoms\";\nimport { isNotEmpty, noop, slugify } from \"neetocist\";\nimport { useFuncDebounce } from \"neetocommons/v2/react-utils\";\nimport { createPortal } from \"react-dom\";\n\nimport { useDeletedArticles } from \"hooks/reactQuery/kbArticle/useDeletedArticles\";\nimport useEditorWarnings from \"hooks/useEditorWarnings\";\nimport { EDITOR_OPTIONS, EDITOR_SIZES } from \"src/common/constants\";\nimport { removeEmptyTags } from \"src/utils\";\nimport ErrorWrapper from \"src/v2/components/Common/ErrorWrapper\";\nimport { DEFAULT_EDITOR_OPTIONS } from \"src/v2/components/Editor/constants\";\nimport {\n clipboardTextParser,\n getEditorStyles,\n handlePaste,\n setInitialPosition,\n transformPastedHTML,\n} from \"src/v2/components/Editor/utils\";\n\nimport CharacterCountWrapper from \"./CustomExtensions/CharacterCount\";\nimport useCustomExtensions from \"./CustomExtensions/hooks/useCustomExtensions\";\nimport ArticleSelector from \"./CustomExtensions/LinkKbArticles/ArticleSelector\";\nimport TableActionMenu from \"./CustomExtensions/Table/TableActionMenu\";\nimport LinkPopOver from \"./LinkPopOver\";\nimport MediaUploader from \"./MediaUploader\";\nimport Menu from \"./Menu\";\nimport MenuDynamicVariables from \"./Menu/DynamicVariables\";\nimport LinkAddPopOver from \"./Menu/Fixed/components/LinkAddPopOver\";\n\nimport Attachments from \"../Attachments\";\n\nconst Editor = (\n {\n addonCommands = [],\n addons = [],\n attachments = [],\n attachmentsConfig = {},\n autoFocus = false,\n className,\n contentClassName,\n contentWrapperClassName,\n errorWrapperClassName,\n contentAttributes = {},\n menuClassName,\n attachmentsClassName,\n isMenuIndependent = false,\n defaults = DEFAULT_EDITOR_OPTIONS,\n editorSecrets = {},\n error = null,\n extensions = [],\n hideSlashCommands = true,\n appendSuggestionsToBody = false,\n initialValue = \"\",\n isCharacterCountActive = false,\n keyboardShortcuts = [],\n label = \"\",\n mentions = [],\n menuType = \"fixed\",\n placeholder,\n required = false,\n rows = 6,\n tooltips = {},\n variables = [],\n disableTrimOnBlur = false,\n onChange = noop,\n onFocus = noop,\n onBlur = noop,\n onSubmit = noop,\n onChangeAttachments = noop,\n children,\n openImageInNewTab = true,\n openLinkInNewTab = false,\n showAssetLibrary = true,\n collaborationProvider = null,\n enableReactNodeViewOptimization = false,\n size = EDITOR_SIZES.SMALL,\n otherAttachmentProps = {},\n ...otherProps\n },\n ref\n) => {\n const [isAttachmentsUploading, setIsAttachmentsUploading] = useState(false);\n const wrapperRef = useRef(null);\n const isArticleOptActive = addons.includes(EDITOR_OPTIONS.NEETO_KB_ARTICLE);\n const isAttachmentsActive = addons.includes(EDITOR_OPTIONS.ATTACHMENTS);\n const isInlineAttachmentsActive = addons.includes(\n EDITOR_OPTIONS.INLINE_ATTACHMENTS\n );\n\n // Inline attachments reuse the attachments toolbar button and slash command.\n const menuAddons =\n isInlineAttachmentsActive && !isAttachmentsActive\n ? [...addons, EDITOR_OPTIONS.ATTACHMENTS]\n : addons;\n\n const isMediaUploaderActive =\n addons.includes(EDITOR_OPTIONS.IMAGE_UPLOAD) ||\n addons.includes(EDITOR_OPTIONS.VIDEO_UPLOAD);\n const isFixedMenuActive = menuType === \"fixed\";\n const isBubbleMenuActive = menuType === \"bubble\";\n const isSlashCommandsActive =\n !hideSlashCommands || (isBubbleMenuActive && !hideSlashCommands);\n const isPlaceholderActive = !!placeholder || isSlashCommandsActive;\n const [isAddLinkActive, setIsAddLinkActive] = useState(false);\n const [mediaUploader, setMediaUploader] = useState({\n image: false,\n video: false,\n });\n\n const [neetoKbArticleState, setNeetoKbArticleState] = useState({\n active: false,\n editor: null,\n range: null,\n cursorPos: null,\n });\n\n const addAttachmentsRef = useRef(null);\n const inlineAttachmentInputRef = useRef(null);\n const attachmentsCountRef = useRef(attachments.length);\n attachmentsCountRef.current = attachments.length;\n\n const attachmentProps = {\n handleUploadAttachments: () =>\n isInlineAttachmentsActive\n ? inlineAttachmentInputRef.current?.click()\n : addAttachmentsRef.current?.handleUploadAttachments(),\n isDisabled: isAttachmentsUploading,\n };\n\n const inlineAttachmentsOptions = {\n config: attachmentsConfig,\n getExternalAttachmentsCount: () => attachmentsCountRef.current,\n setIsUploading: setIsAttachmentsUploading,\n };\n\n const debouncedOnChangeHandler = useFuncDebounce(({ editor }) => {\n if (!editor.isDestroyed) onChange(editor.getHTML());\n }, 100);\n\n useEffect(() => debouncedOnChangeHandler.cancel, []);\n\n const handleBlur = props => {\n const { editor } = props;\n if (!disableTrimOnBlur) {\n const content = editor.getHTML();\n const trimmedContent = removeEmptyTags(content);\n\n if (content !== trimmedContent) onChange(trimmedContent);\n }\n onBlur(props);\n };\n\n const customExtensions = useCustomExtensions({\n placeholder,\n extensions,\n mentions,\n variables,\n isSlashCommandsActive,\n options: [...defaults, ...menuAddons],\n addonCommands,\n onSubmit,\n keyboardShortcuts,\n setMediaUploader,\n setIsAddLinkActive,\n attachmentProps,\n openImageInNewTab,\n openLinkInNewTab,\n enableReactNodeViewOptimization,\n collaborationProvider,\n setIsNeetoKbArticleActive: setNeetoKbArticleState,\n containerRef: wrapperRef,\n appendSuggestionsToBody,\n inlineAttachmentsOptions,\n });\n useEditorWarnings({ initialValue });\n\n const editorClasses = classnames(\"neeto-editor\", {\n \"fixed-menu-active\": isFixedMenuActive,\n \"bubble-menu-active\": isBubbleMenuActive,\n \"placeholder-active\": isPlaceholderActive,\n \"attachments-active\": isAttachmentsActive,\n \"neeto-editor-size--large\": size === EDITOR_SIZES.LARGE,\n \"neeto-editor-size--medium\": size === EDITOR_SIZES.MEDIUM,\n \"neeto-editor-size--small\": size === EDITOR_SIZES.SMALL,\n [contentClassName]: contentClassName,\n });\n\n const ariaAttributes = {\n role: \"textbox\",\n \"aria-label\": \"editor-content\",\n \"aria-multiline\": \"true\",\n \"aria-labelledby\": \"labelId\",\n \"aria-required\": required,\n \"aria-roledescription\": \"editor\",\n };\n\n const editor = useEditor({\n extensions: customExtensions,\n content: initialValue,\n injectCSS: false,\n immediatelyRender: false,\n shouldRerenderOnTransaction: false,\n autofocus: autoFocus && \"end\",\n editorProps: {\n attributes: {\n class: editorClasses,\n style: getEditorStyles({ rows }),\n \"data-testid\": \"neeto-editor-content\",\n ...ariaAttributes,\n ...contentAttributes,\n },\n clipboardTextParser,\n handlePaste,\n transformPastedHTML,\n },\n parseOptions: { preserveWhitespace: true },\n onCreate: ({ editor }) => !autoFocus && setInitialPosition(editor),\n onUpdate: debouncedOnChangeHandler,\n onFocus,\n onBlur: handleBlur,\n });\n\n useEditorState({\n editor,\n selector: () => ({\n isMediaUploaderActive,\n isLinkActive: editor?.isActive(\"link\"),\n }),\n });\n\n const deletedArticlesHook = useDeletedArticles(\n isArticleOptActive ? editor : null\n );\n\n useImperativeHandle(\n ref,\n () => ({ editor, focus: () => editor?.commands?.focus?.() }),\n [editor]\n );\n\n useEffect(() => {\n if (!editor && neetoKbArticleState.active) {\n setNeetoKbArticleState({\n active: false,\n editor: null,\n range: null,\n cursorPos: null,\n });\n }\n }, [editor, neetoKbArticleState.active]);\n\n useEffect(() => {\n if (!editor || !deletedArticlesHook.deletedArticleIds.size) return;\n\n editor.commands.updateDeletedArticles(\n deletedArticlesHook.deletedArticleIds\n );\n }, [editor, deletedArticlesHook.deletedArticleIds]);\n\n const handleInlineAttachmentsChange = event => {\n editor?.commands.uploadAttachments(event.target.files);\n event.target.value = null;\n };\n\n return (\n <div\n data-testid=\"neeto-editor-wrapper\"\n ref={wrapperRef}\n className={classnames(\"ne-editor--v2\", {\n [className]: className,\n \"ne-attachments__wrapper\": isAttachmentsActive,\n })}\n >\n {label && (\n <Label\n {...{ required }}\n className=\"mb-2\"\n data-testid={`${slugify(label)}-editor-label`}\n >\n {label}\n </Label>\n )}\n <ErrorWrapper {...{ error }} className={errorWrapperClassName}>\n <>\n {menuType !== \"none\" && (\n <Menu\n {...{\n addonCommands,\n attachmentProps,\n defaults,\n editor,\n editorSecrets,\n mentions,\n menuType,\n neetoKbArticleState,\n openLinkInNewTab,\n showAssetLibrary,\n tooltips,\n variables,\n }}\n addons={menuAddons}\n className={menuClassName}\n containerRef={wrapperRef}\n isIndependant={isMenuIndependent}\n setIsNeetoKbArticleActive={setNeetoKbArticleState}\n />\n )}\n {children}\n {menuType === \"none\" && (\n <div className=\"neeto-editor-fixed-menu-standalone-variables-wrapper\">\n <MenuDynamicVariables {...{ editor, variables }} standalone />\n </div>\n )}\n <EditorContent\n className={contentWrapperClassName}\n {...{ editor, ...otherProps }}\n />\n {isMediaUploaderActive && (\n <MediaUploader\n {...{ editor, mediaUploader, showAssetLibrary }}\n onClose={() => setMediaUploader({ image: false, video: false })}\n />\n )}\n {isInlineAttachmentsActive && (\n <input\n hidden\n data-testid=\"neeto-editor-inline-attachments-input\"\n multiple={attachmentsConfig.restrictions?.maxNumberOfFiles !== 1}\n ref={inlineAttachmentInputRef}\n type=\"file\"\n accept={attachmentsConfig.restrictions?.allowedFileTypes?.join(\n \",\"\n )}\n onChange={handleInlineAttachmentsChange}\n />\n )}\n {isAttachmentsActive &&\n (!isInlineAttachmentsActive || isNotEmpty(attachments)) && (\n <Attachments\n {...{ attachments }}\n config={attachmentsConfig}\n dragDropRef={isInlineAttachmentsActive ? null : wrapperRef}\n isIndependent={false}\n ref={addAttachmentsRef}\n setIsUploading={setIsAttachmentsUploading}\n className={classnames(\"ne-attachments--integrated\", {\n [attachmentsClassName]: attachmentsClassName,\n })}\n onChange={onChangeAttachments}\n {...otherAttachmentProps}\n />\n )}\n {editor?.isActive(\"link\") && (\n <LinkPopOver\n {...{ deletedArticlesHook, editor }}\n containerRef={wrapperRef}\n />\n )}\n {isAddLinkActive && (\n <LinkAddPopOver\n {...{\n editor,\n isAddLinkActive,\n openLinkInNewTab,\n setIsAddLinkActive,\n }}\n containerRef={wrapperRef}\n />\n )}\n {neetoKbArticleState.active &&\n neetoKbArticleState.cursorPos &&\n createPortal(\n <ArticleSelector\n {...{ deletedArticlesHook }}\n cursorPos={neetoKbArticleState.cursorPos}\n editor={neetoKbArticleState.editor}\n onClose={() =>\n setNeetoKbArticleState({\n active: false,\n editor: null,\n range: null,\n cursorPos: null,\n })\n }\n />,\n wrapperRef.current ?? document.body\n )}\n <TableActionMenu {...{ editor }} appendTo={wrapperRef} />\n {isCharacterCountActive && <CharacterCountWrapper {...{ editor }} />}\n </>\n </ErrorWrapper>\n </div>\n );\n};\n\nEditor.displayName = \"NeetoEditor\";\n\nexport default memo(forwardRef(Editor));\n"],"names":["ErrorWrapper","_ref","error","children","className","isError","isNotPresent","wrapperClasses","classnames","_defineProperty","getErrorMessage","message","is","String","Array","Object","_jsxs","_Fragment","_jsx","memo","CharacterCountWrapper","editor","characters","useEditorState","selector","_ref2","_editor$storage$chara","storage","characterCount","NODE_NAME","DEFAULT_INLINE_PREVIEW_MAX_SIZE","PDF_THUMBNAIL_WIDTH","PREVIEW_TYPES","IMAGE","VIDEO","PDF","INLINE_PREVIEW_IMAGE_TYPES","PDF_CONTENT_TYPE","_regenerator","e","t","r","Symbol","n","iterator","o","toStringTag","i","c","prototype","Generator","u","create","_regeneratorDefine2","f","p","y","G","v","a","d","bind","length","l","TypeError","call","done","value","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","w","m","defineProperty","_regeneratorDefine","_invoke","enumerable","configurable","writable","loadPdfjs","_asyncToGenerator","_callee","_globalThis$pdfjsWork","_yield$Promise$all","_yield$Promise$all2","pdfjs","worker","_context","Promise","all","_slicedToArray","globalThis","pdfjsWorker","apply","arguments","canvasToBlob","canvas","resolve","toBlob","getPreviewType","maxSize","contentType","size","thumbnailUrl","isPresent","Number","includes","startsWith","getPreviewSrc","_ref3","previewType","url","uploadFile","_ref4","_callee2","file","endpoint","_data$blob_url","_data$signed_id","_yield$DirectUpload$c","_yield$DirectUpload$c2","data","response","_context2","DirectUpload","_objectWithoutProperties","_excluded","blob_url","signedId","signed_id","_x","_x2","generatePdfThumbnail","_ref5","_callee3","pdf","page","_page$getViewport","width","viewport","blob","name","_t","_t2","_context3","arrayBuffer","getDocument","promise","getPage","getViewport","scale","document","createElement","height","render","canvasContext","getContext","concat","replace","File","type","destroy","_x3","findNodePosByUploadId","doc","uploadId","foundPos","descendants","node","pos","_node$attrs","attrs","countAttachmentNodes","nodeName","count","Preview","lazy","AttachmentComponent","extension","deleteNode","_useTranslation","useTranslation","_useState","useState","_useState2","isPreviewOpen","setIsPreviewOpen","filename","attachment","options","previewMaxSize","previewSrc","canView","checkPreviewAvailability","actions","key","icon","Eye","label","onClick","Download","downloadFile","ExternalLink","window","open","isEditable","Trash2","filter","Boolean","NodeViewWrapper","Spinner","noop","controls","playsInline","preload","src","alt","draggable","FileIcon","fileName","convertToFileSize","map","Tooltip","content","position","Button","variant","Suspense","fallback","attachments","selectedAttachment","setDidFetchPreviewBundle","setSelectedAttachment","onClose","dataAttribute","attribute","parseHTML","element","getAttribute","renderHTML","attributes","uploadThumbnail","thumbnail","console","Node","group","atom","selectable","addOptions","config","getExternalAttachmentsCount","setIsUploading","addStorage","pendingUploadsCount","addAttributes","rendered","tag","HTMLAttributes","linkAttrs","href","target","rel","preview","playsinline","loading","_objectSpread","_toConsumableArray","addNodeView","ReactNodeViewRenderer","addCommands","_this","uploadAttachments","files","uploadFiles","from","onCreate","buildFileUploadConfig","directUploadEndpoint","updateUploadingState","delta","replacePlaceholder","isDestroyed","state","view","nodeAt","tr","setNodeMarkup","undefined","nodeSize","dispatch","setMeta","uploadPlaceholder","_ref6","shouldGenerateThumbnail","uploaded","_t3","Toastr","_x4","selectedFiles","selectFiles","previousAttachmentsCount","isEmpty","placeholders","getRandomString","nodes","_ref7","chain","focus","insertContentAt","selection","run","forEach","placeholder","addProseMirrorPlugins","Plugin","props","handleDrop","event","_slice","moved","_event$dataTransfer$f","_event$dataTransfer","dataTransfer","coordinates","posAtCoords","left","clientX","top","clientY","preventDefault","handlePaste","_view","_event$clipboardData$","_event$clipboardData","clipboardData","test","Extension","types","addGlobalAttributes","backgroundColor","style","setHighlightInternal","color","setMark","unsetHighlightInternal","BulletList","configure","itemTypeName","CalloutComponent","_findBy","Icon","findBy","CALLOUT_TYPES","Megaphone","NodeViewContent","inline","defining","contentElement","svgString","ReactDOM","renderToStaticMarkup","svgContainer","innerHTML","svgNode","firstChild","mergeAttributes","setCallout","_attributes$type","toggleWrap","command","$from","calloutNode","depth","after","nextNode","insert","schema","paragraph","addKeyboardShortcuts","_this2","Backspace","_this2$editor","commands","_state$selection","empty","parentOffset","currentNode","parent","lift","ArrowDown","_this2$editor2","_state$selection2","isAtEnd","calloutContent","currentNodeIndex","index","isLastNode","childCount","endPos","setTextSelection","codeBlockHighlightKey","PluginKey","createLineDecoration","lineNumber","Decoration","widget","line","setAttribute","toString","lineElement","domAtPos","Element","lineHeight","getComputedStyle","getLineRanges","lines","textContent","split","currentPos","to","codeBlockHighlightPlugin","init","DecorationSet","set","mapping","getMeta","decorations","highlightedLines","lineRanges","push","getState","SORTED_LANGUAGE_LIST","lowlight","listLanguages","sort","LINE_NUMBER_OPTIONS","Menu","DropdownMenu","MenuItem","CodeBlockComponent","_node$content","updateAttributes","keyword","setKeyword","_useState3","_useState4","showHighlightButton","setShowHighlightButton","_useState5","linenumbers","_useState6","showLineNumbers","setShowLineNumbers","ref","useRef","filteredAndSortedLanguageList","language","handleLanguageSelect","_editor$commands","handleContentMount","current","offsetHeight","minHeight","handleSelectionChange","useCallback","_editor$state$selecti","isCodeBlockSelected","isActive","useEffect","on","off","handleHighlight","_editor$state$selecti2","codeBlock","codeBlockStart","start","textBeforeSelection","textBetween","startLine","selectedText","selectedLines","newSelectedLines","_","currentHighlightedLines","overlapLines","intersection","difference","union","contentEditable","buttonProps","dropdownProps","ChevronDown","Input","autoFocus","onChange","stopPropagation","CopyToClipboardButton","text","Highlighter","tooltipProps","as","CodeBlockLowlight","extend","_this$parent","_element$dataset$high","dataset","_attributes$highlight","_attributes$highlight2","join","_this$parent2","defaultLanguage","pasteUnformatted","navigator","clipboard","readText","insertContent","DeletedArticleDecoration","deletedArticleIds","Set","marks","mark","articleId","has","decoration","updateDeletedArticles","updateState","EditorContainer","containerRef","appendSuggestionsToBody","onBeforeCreate","EmojiPickerPluginKey","EmojiPicker","suggestion","startOfLine","pluginKey","items","reactRenderer","popup","onStart","ReactRenderer","EmojiPickerMenu","tippy","theme","getReferenceClientRect","clientRect","appendTo","getSuggestionAppendTo","showOnCreate","interactive","trigger","placement","zIndex","onKeyDown","_reactRenderer$ref","onExit","Suggestion","DEFAULT_EMOJI_PRIORITIES_LIST","EMOJI_QUERY_REGEX","filterEmojiSuggestions","suggestions","frequentlyUsedEmojis","mergedEmojiList","emoji","b","aIndex","indexOf","id","bIndex","slice","_callSuper","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","constructor","valueOf","EmojiSuggestionMenu","_React$Component","_classCallCheck","_len","args","_key","isLoading","selectedIndex","emojiSuggestions","_yield$emojiPickerApi","setState","emojiPickerApi","fetch","query","SearchIndex","search","searchEmoji","_callee4","_context4","deleteRange","range","setEmoji","selectItem","_inherits","_createClass","componentDidMount","keys","JSON","parse","localStorage","getItem","fetchEmojiData","previewPosition","searchEmojiAndSetState","componentDidUpdate","oldProps","isNotEmpty","skins","React","Component","EmojiSuggestionPluginKey","EmojiSuggestion","renderEmoji","renderText","_emoji$skins$","suggestionConfig","input","lastKeyCode","onUpdate","_popup$","isArrowNavigation","isNil","arrow","updateProps","setProps","_reactRenderer","_popup$2","_reactRenderer2","imageSkeletonContainer","classList","add","imageSkeleton","appendChild","LARGE_IMAGE_ERROR","ImagePreviewModal","previewUrl","setPreviewUrl","setIsLoading","imagePreviewRef","handleClose","useOnClickOutside","enabled","handleKeyDown","createPortal","X","onLoad","body","DropdownMenuList","buildImageOptions","border","showAspectRatio","AlignLeft","alignPos","optionName","AlignCenter","AlignRight","Ratio","ratio","tooltipLabel","RectangleHorizontal","RectangleVertical","Square","SquareDashed","borderToggle","align","menuOptions","handleClick","customTarget","Ellipsis","prefix","aspectRatio","ImageComponent","_figureRef$current","getPos","figheight","figwidth","captionWidth","setCaptionWidth","figureRef","caption","editorElement","closest","maxImageWidth","offsetWidth","handleResizeStop","_event","_direction","mergeRight","classNames","Resizable","lockAspectRatio","minWidth","onResizeStop","onResize","upload","_response$data","uploader","globalProps","endUserUploadedFileSizeLimitInMb","Error","findNextTextPos","nodesBetween","nodePos","isTextblock","openImageInNewTab","isolating","_element$querySelecto","querySelector","_element$querySelecto2","_element$querySelecto3","_element$querySelecto4","_element$querySelecto5","_element$querySelecto6","wrapperDivAttrs","wrapperLinkPointerEventsStyle","heightStyle","wrapperLinkAttrs","captionAttrs","contenteditable","setFigure","Enter","head","$head","tail","nextTextPos","ArrowUp","lineTop","coordsAtPos","caret","bottom","before","scrollIntoView","setSelection","Selection","near","handleDOMEvents","paste","_event$clipboardData2","_view$state","$anchor","getData","hasFiles","_DOMParser$parseFromS","plainText","DOMParser","parseFromString","pasteText","images","image","emptyImageNode","imageNode","_view$state2","_tr","_doc","_tr2","Math","random","substring","DIRECT_UPLOAD_ENDPOINT","replaceWith","limit","Italic","addInputRules","addPasteRules","KeyboardShortcuts","onSubmit","shortcuts","isBlockQuoteActive","ModEnter","getHTML","ModShiftB","toggleBlockquote","LINK_MARKDOWN_INPUT_REGEX","linkInputRule","defaultMarkInputRule","markInputRule","InputRule","find","handler","RangeError","withTrimmedLinkPaste","plugin","spec","trimmedText","trim","trimmedSlice","Slice","Fragment","Link","inclusive","title","_this$parent3","getAttributes","match","_match$pop","_match$pop2","pop","MentionList","_this$props","item","prevState","nextSelectedIndex","keyDownHandlers","upHandler","downHandler","enterHandler","Tab","tabHandler","hasOwnProperty","mentionRef","createRef","prevProps","scrollHandler","wrapperRef","imageUrl","active","Avatar","user","Typography","createMentionSuggestions","mentions","_ref$query","mention","toLowerCase","hide","_popup","Mentions","Mention","setMention","_ref3$suggestion","otherConfig","OrderedList","Placeholder","excludeNodeTypes","emptyEditorClass","emptyNodeClass","slashCommandsPlaceholder","showOnlyWhenEditable","showOnlyCurrent","includeChildren","anchor","hasAnchor","isLeaf","isExcluded","classes","placeholderText","isSlashCommandsActive","isFocused","Document","selectedTextDecoration","oldState","remove","MENU_ITEMS","EDITOR_OPTIONS","PARAGRAPH","description","TextP","setNode","BOLD","TextBold","toggleBold","ITALIC","TextItalic","toggleItalic","UNDERLINE","Underline","toggleUnderline","H1","TextH1","level","H2","TextH2","H3","TextH3","H4","TextH4","_ref8","H5","TextH5","_ref9","LIST_ORDERED","ListNumber","_ref0","toggleOrderedList","LIST_BULLETS","ListDot","_ref1","toggleBulletList","LINK","NEETO_KB_ARTICLE","ATTACHMENTS","Attachment","TODO_LIST","Checkbox","_ref10","toggleTaskList","IMAGE_UPLOAD","ImageUpload","VIDEO_UPLOAD","Video","BLOCKQUOTE","Blockquote","_ref11","CODE_BLOCK","CodeBlock","_ref12","toggleCodeBlock","EMOJI","Smiley","_ref13","DIVIDER","Minus","_ref14","setHorizontalRule","PASTE_UNFORMATTED","Notes","_ref15","TABLE","Column","_ref16","insertTable","rows","cols","withHeaderRow","CALLOUT","MessageSquare","_ref17","_ref18","_ref19","_ref20","_ref21","_ref22","NO_RESULT_MENU_ITEM","_ref23","MENU_MAX_HEIGHT","MENU_BOUNDARY_PADDING","MENU_MAX_HEIGHT_CSS_VARIABLE","imageCommand","setMediaUploader","assoc","videoCommand","linkCommand","setIsAddLinkActive","attachmentCommand","attachmentProps","handleUploadAttachments","neetoKbArticleCommand","setIsNeetoKbArticleActive","cursorPos","getOppositePlacement","side","getOffsetDistance","_state$modifiersData$","_state$modifiersData$2","abs","modifiersData","offset","buildCommandItems","addonCommands","commandItems","permittedCommandItems","adddonCommandItems","fitToAvailableHeight","phase","requiresIfExists","fn","_skip","menu","elements","popper","_detectOverflow","detectOverflow","elementContext","altBoundary","padding","isVertical","menuChromeHeight","rects","menuContentHeight","min","scrollHeight","availableHeight","reference","preferredPlacement","oppositePlacement","getSpace","candidatePlacement","preferredSpace","oppositeSpace","menuHeight","shouldUseOpposite","menuMaxHeight","max","floor","setProperty","popperHeight","reset","listeners","ArrowLeft","leftArrowHandler","ArrowRight","rightArrowHandler","selectedItem","hasCommand","_this$props2","menuIndex","setActiveMenuIndex","_this$props3","hasSubItems","menuRef","_this$props4","activeMenuIndex","isCurrentMenuActive","addEventListener","keydownHandler","componentWillUnmount","removeEventListener","_this$props5","_this$props6","isLeafNode","nodeElement","_createElement","onHover","Tippy","popperOptions","modifiers","visible","onHide","isSubmenuOpened","onShow","forwardRef","onMouseEnter","CommandsList","CommandsPluginKey","filteredItems","fuzzySearch","role","highlightFocussedNode","resetFocussedNode","SpecialMentionPluginKey","renderLabel","_node$attrs$label","SpecialMentions","PREVIEW_CLASS_PREFIX","DEFAULT_COLUMN_WIDTH","SAVED_COLUMN_MIN_WIDTH","TABLE_ACTION_PREVIEWS","deleteRow","rect","right","deleteColumn","deleteTable","insertRow","insertColumn","actionPreviewKey","actionPreviewPlugin","action","meta","docChanged","selectionSet","isInTable","tableRect","selectedRect","_TABLE_ACTION_PREVIEW","cellsInRect","cellPos","tableStart","table","setActionPreview","updateColumns","colgroup","cellMinWidth","totalWidth","nextDOM","row","col","_row$child$attrs","child","colspan","colwidth","j","cssWidth","nextSibling","parentNode","removeChild","TableView","dom","alignmentSuffix","textAlign","alignmentClass","wrapper","contentDOM","update","_node$attrs2","currentAlignmentClass","ignoreMutation","mutation","contains","getTableRect","findTable","TableMap","get","getTableSize","columns","isSuggestionActive","plugins","some","pluginState","moveToCellBelow","_$from$node","TextSelection","cellDepth","cellRole","tableRole","_map$findCell","findCell","addRow","updatedMap","exitTable","afterTable","nodeAfter","Table","TiptapTable","resizable","handleWidth","View","lastColumnResizable","allowTableNodeSelection","getAlignmentFromElement","dataAlign","priority","getAttrs","alignment","parentElement","parentAlignment","fixedWidth","colgroups","firstRow","cell","_cell$attrs","span","hasWidth","tableStyle","_this$parent4","goToNextCell","ModAltT","TodoListExtension","TaskList","ModShift9","TodoItemExtension","TaskItem","splitListItem","sinkListItem","ShiftTab","liftListItem","nested","MAX_VARIABLE_NAME_DISPLAY_LENGTH","VariableComponent","_variableName$substr","_getVariableDisplay","getVariableDisplay","variableName","shouldTruncate","charOpen","disabled","substr","charClose","Variable","setVariable","VideoComponent","vidheight","vidwidth","maxVideoWidth","handleResize","EmbedComponent","allowFullScreen","getSharedAttributes","tagName","iframe","video","videoType","getUploadAttributes","getEmbedAttributes","_element$querySelecto7","getVideoDimension","_element$querySelecto8","DEFAULT_ASPECT_RATIO","originalUrl","_iframe$querySelector","frameBorder","allow","allowfullscreen","renderEmbedHTML","renderUploadHTML","handleVideoPaste","validatedUrl","validateUrl","UnifiedVideoExtension","_figure$querySelector","_figure$querySelector2","figure","videoSrc","iframeSrc","fontWeight","setVideo","_excluded2","end","setExternalVideo","_tr$doc$nodeAt","$to","PasteRule","COMBINED_REGEX","useCustomExtensions","extensions","variables","keyboardShortcuts","openLinkInNewTab","enableReactNodeViewOptimization","collaborationProvider","inlineAttachmentsOptions","customExtensions","CharacterCount","Code","CustomCommands","FigCaption","HighlightInternal","SelectionDecoration","Focus","mode","Highlight","ImageExtension","StarterKit","code","bulletList","listItem","blockquote","orderedList","italic","link","underline","listKeymap","trailingNode","undoRedo","heading","levels","buildLevelsFromOptions","safeSplitBlock","safeListKeymap","TextStyle","INLINE_ATTACHMENTS","AttachmentExtension","TableRow","TableHeader","TableCell","TEXT_COLOR","HIGHLIGHT","Color","ListItem","Callout","SlashCommands","_collaborationProvide","Collaboration","CollaborationCaret","provider","NEETO_KB_ENDPOINT","kbUrl","MODE","MODAL","SELECT","MODAL_BOTTOM_MARGIN","MODAL_LEFT_OFFSET","MODAL_TOP_OFFSET","MODAL_TRANSFORM_Y","MODAL_TRANSFORM_X","useArticleNavigation","_ref$articles","articles","articlesContainerRef","handleModalArticleSelect","searchTerm","highlightedIndex","setHighlightedIndex","container","highlightedItem","containerRect","getBoundingClientRect","itemRect","isItemAbove","isItemBelow","scrollTop","navigationHandlers","down","prev","up","keyActions","Escape","shiftKey","handleKeyboardNavigation","buildArticleFullUrl","slug","createArticleOptions","article","decodeHtmlEntities","ArticlesList","withT","onSelectArticle","_ref$highlightedIndex","ArticlePicker","_ref$mode","externalIsLoading","externalOptions","onArticleSelect","setSearchTerm","modalRef","_useFetchKbArticles","useFetchKbArticles","reactQueryOptions","_useFetchKbArticles$d","isLoadingArticles","selectOptions","articleWithUrl","full_url","_useArticleNavigation","handleSelectChange","selectedValueString","_selectedOption$data","selectedOption","modal","modalRect","modalWidth","modalHeight","maxLeft","innerWidth","maxTop","innerHeight","adjustedLeft","adjustedTop","assign","transform","handleClickOutside","Search","onSearch","Select","isSearchable","isDisabled","_typeof","ArticleSelector","deletedArticlesHook","handleArticleSelect","detailedArticle","linkText","isDeleted","isArticleDeleted","linkMark","linkTextWithMark","Counter","onDecrement","onDecrementHover","onIncrementHover","onIncrement","decrementLabel","incrementLabel","isDecrementDisabled","onMouseLeave","Plus","TableActionMenu","_useEditorState","_element$getBoundingC","_element$getBoundingC2","nodeDOM","DOMRect","shouldShow","BubbleMenu","flip","getReferencedVirtualElement","addRowAfter","isHovering","addColumnAfter","KbArticleDeletedModal","isOpen","Dialog","Header","Title","Body","Footer","KbArticleEdit","linkAttributes","getCurrentTextContent","getCurrentArticleOption","handleKbArticleSubmit","isLoadingKbData","setIsEditing","initialValues","pageSelection","Form","formikProps","enableReinitialize","dirty","isSubmitting","setFieldValue","values","required","unlimitedChars","KbArticleView","onEdit","onDeletedClick","currentText","BookOpen","Pencil","LinkPopOver","_containerRef$current","initialTextContent","arrowPosition","setArrowPosition","popoverPosition","setPopoverPosition","isEditing","_useState7","_useState8","isLinkActive","setIsLinkActive","_useState9","_useState0","setLinkAttributes","_useState1","_useState10","showDeletedModal","setShowDeletedModal","popoverRef","isNeetoKbArticle","updatePopoverPosition","_getLinkPopoverPositi","getLinkPopoverPosition","parseInt","handleUnlink","extendMarkRange","unsetLink","removePopover","popoverStyle","display","handleSubmit","urlString","openInNewTab","formattedUrl","validateAndFormatUrl","equals","setLink","_editor$view","getMarkType","getMarkRange","_ref5$from","_ref5$to","_editor$view2","_ref7$from","_ref7$to","_editor$view3","_ref8$from","_ref8$to","currentLinkAttributes","currentArticleOption","_ref9$from","_ref9$to","renderEditingMode","validationSchema","LINK_VALIDATION_SCHEMA","checked","onCheckedChange","renderEditingModeForKbArticle","renderViewModeForKbArticle","renderViewMode","renderPopoverContent","Editor","_attachmentsConfig$re","_attachmentsConfig$re2","_wrapperRef$current","_ref$addonCommands","_ref$addons","addons","_ref$attachments","_ref$attachmentsConfi","attachmentsConfig","_ref$autoFocus","contentClassName","contentWrapperClassName","errorWrapperClassName","_ref$contentAttribute","contentAttributes","menuClassName","attachmentsClassName","_ref$isMenuIndependen","isMenuIndependent","_ref$defaults","defaults","DEFAULT_EDITOR_OPTIONS","_ref$editorSecrets","editorSecrets","_ref$error","_ref$extensions","_ref$hideSlashCommand","hideSlashCommands","_ref$appendSuggestion","_ref$initialValue","initialValue","_ref$isCharacterCount","isCharacterCountActive","_ref$keyboardShortcut","_ref$label","_ref$mentions","_ref$menuType","menuType","_ref$required","_ref$rows","_ref$tooltips","tooltips","_ref$variables","_ref$disableTrimOnBlu","disableTrimOnBlur","_ref$onChange","_ref$onFocus","onFocus","_ref$onBlur","onBlur","_ref$onSubmit","_ref$onChangeAttachme","onChangeAttachments","_ref$openImageInNewTa","_ref$openLinkInNewTab","_ref$showAssetLibrary","showAssetLibrary","_ref$collaborationPro","_ref$enableReactNodeV","_ref$size","EDITOR_SIZES","SMALL","_ref$otherAttachmentP","otherAttachmentProps","otherProps","isAttachmentsUploading","setIsAttachmentsUploading","isArticleOptActive","isAttachmentsActive","isInlineAttachmentsActive","menuAddons","isMediaUploaderActive","isFixedMenuActive","isBubbleMenuActive","isPlaceholderActive","isAddLinkActive","mediaUploader","neetoKbArticleState","setNeetoKbArticleState","addAttachmentsRef","inlineAttachmentInputRef","attachmentsCountRef","_inlineAttachmentInpu","_addAttachmentsRef$cu","click","debouncedOnChangeHandler","useFuncDebounce","cancel","handleBlur","trimmedContent","removeEmptyTags","useEditorWarnings","editorClasses","LARGE","MEDIUM","ariaAttributes","useEditor","injectCSS","immediatelyRender","shouldRerenderOnTransaction","autofocus","editorProps","getEditorStyles","clipboardTextParser","transformPastedHTML","parseOptions","preserveWhitespace","setInitialPosition","useDeletedArticles","useImperativeHandle","_editor$commands$focu","handleInlineAttachmentsChange","Label","slugify","isIndependant","MenuDynamicVariables","standalone","EditorContent","MediaUploader","hidden","multiple","restrictions","maxNumberOfFiles","accept","allowedFileTypes","Attachments","dragDropRef","isIndependent","LinkAddPopOver"],"mappings":"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","x_google_ignoreList":[38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68]}
|
|
1
|
+
{"version":3,"file":"Editor.js","sources":["../../app/javascript/src/v2/components/Common/ErrorWrapper.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/CharacterCount/index.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/Attachment/constants.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Attachment/utils.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Attachment/AttachmentComponent.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/Attachment/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/BackgroundColor/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/BulletList/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Callout/CalloutComponent.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/Callout/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/CodeBlock/plugins.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/CodeBlock/constants.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/CodeBlock/CodeBlockComponent.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/CodeBlock/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/CustomCommands/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/DeletedArticleDecoration/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/EditorContainer/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Emoji/EmojiPicker/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Emoji/EmojiSuggestion/constants.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Emoji/EmojiSuggestion/utils.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Emoji/EmojiSuggestion/EmojiSuggestionMenu.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/Emoji/EmojiSuggestion/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Image/constants.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Image/ImagePreviewModal.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/Image/Menu.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/Image/ImageComponent.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/Image/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Image/FigCaption.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Italic/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/KeyboardShortcuts/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Link/constants.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Link/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Mention/MentionList.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/Mention/utils.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Mention/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/OrderedList/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Placeholder/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/SelectionDecoration/ExtensionConfig.js","../../node_modules/@popperjs/core/lib/enums.js","../../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../../node_modules/@popperjs/core/lib/utils/math.js","../../node_modules/@popperjs/core/lib/utils/userAgent.js","../../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../../node_modules/@popperjs/core/lib/dom-utils/contains.js","../../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../../node_modules/@popperjs/core/lib/utils/getVariation.js","../../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/SlashCommands/constants.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/SlashCommands/utils.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/SlashCommands/Menu.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/SlashCommands/CommandsList.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/SlashCommands/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/SpecialMentions/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Table/constants.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Table/actionPreviewPlugin.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Table/TableView.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Table/utils.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Table/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/TodoList/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Variable/constants.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Variable/VariableComponent.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/Variable/ExtensionConfig.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/Video/VideoComponent.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/Embeds/EmbedComponent.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/Video/ExtensionConfig.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/hooks/useCustomExtensions.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/LinkKbArticles/constants.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/LinkKbArticles/hooks/useArticleNavigation.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/LinkKbArticles/utils.js","../../app/javascript/src/v2/components/Editor/CustomExtensions/LinkKbArticles/ArticlesList.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/LinkKbArticles/ArticlePicker.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/LinkKbArticles/ArticleSelector.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/Table/TableActionMenu.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/LinkKbArticles/KbArticleDeletedModal.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/LinkKbArticles/KbArticleEdit.jsx","../../app/javascript/src/v2/components/Editor/CustomExtensions/LinkKbArticles/KbArticleView.jsx","../../app/javascript/src/v2/components/Editor/LinkPopOver.jsx","../../app/javascript/src/v2/components/Editor/index.jsx"],"sourcesContent":["import { memo } from \"react\";\n\nimport classnames from \"classnames\";\nimport { isNotPresent } from \"neetocist\";\nimport { is } from \"ramda\";\n\nconst ErrorWrapper = ({ error, children, className }) => {\n const isError = !isNotPresent(error);\n const wrapperClasses = classnames({\n \"neeto-editor-error\": isError,\n [className]: className,\n });\n\n const getErrorMessage = () => {\n if (!error) return null;\n\n let message;\n\n if (is(String, error)) {\n message = error;\n } else if (is(Array, error)) {\n message = error[0];\n } else if (is(Object, error)) {\n message = error.message;\n }\n\n if (isNotPresent(message)) return null;\n\n return message;\n };\n\n return (\n <>\n <div className={wrapperClasses}>{children}</div>\n {isError && (\n <p\n className=\"neeto-ui-input__error\"\n data-testid=\"neeto-editor-error-text\"\n >\n {getErrorMessage()}\n </p>\n )}\n </>\n );\n};\n\nexport default memo(ErrorWrapper);\n","import { useEditorState } from \"@tiptap/react\";\n\nconst CharacterCountWrapper = ({ editor, children }) => {\n const characters = useEditorState({\n editor,\n selector: ({ editor }) => editor?.storage.characterCount.characters() ?? 0,\n });\n\n if (!editor) return children;\n\n return (\n <>\n {children}\n <p\n className=\"neeto-editor-character-count\"\n data-testid=\"neeto-editor-character-count\"\n >\n {characters} characters\n </p>\n </>\n );\n};\n\nexport default CharacterCountWrapper;\n","export const NODE_NAME = \"attachment\";\n\n// Files larger than this are shown as a chip, never as an inline preview.\nexport const DEFAULT_INLINE_PREVIEW_MAX_SIZE = 20 * 1024 * 1024;\n\nexport const PDF_THUMBNAIL_WIDTH = 800;\n\nexport const PREVIEW_TYPES = { IMAGE: \"image\", VIDEO: \"video\", PDF: \"pdf\" };\n\nexport const INLINE_PREVIEW_IMAGE_TYPES = [\n \"image/jpeg\",\n \"image/jpg\",\n \"image/png\",\n \"image/gif\",\n \"image/webp\",\n];\n\nexport const PDF_CONTENT_TYPE = \"application/pdf\";\n","import { isPresent } from \"neetocist\";\n\nimport DirectUpload from \"utils/DirectUpload\";\n\nimport {\n INLINE_PREVIEW_IMAGE_TYPES,\n PDF_CONTENT_TYPE,\n PDF_THUMBNAIL_WIDTH,\n PREVIEW_TYPES,\n} from \"./constants\";\n\n// pdf.js normally runs in a web worker loaded from a separate file, which a\n// host app bundling this package can't be relied on to serve. Exposing the\n// worker module on `globalThis.pdfjsWorker` makes pdf.js run it in-page.\nconst loadPdfjs = async () => {\n const [pdfjs, worker] = await Promise.all([\n import(\"pdfjs-dist\"),\n import(\"pdfjs-dist/build/pdf.worker.min.mjs\"),\n ]);\n globalThis.pdfjsWorker ??= worker;\n\n return pdfjs;\n};\n\nconst canvasToBlob = canvas =>\n new Promise(resolve => canvas.toBlob(resolve, \"image/png\"));\n\nexport const getPreviewType = (\n { contentType, size, thumbnailUrl },\n maxSize\n) => {\n if (!contentType || (isPresent(size) && Number(size) > maxSize)) return null;\n\n if (INLINE_PREVIEW_IMAGE_TYPES.includes(contentType)) {\n return PREVIEW_TYPES.IMAGE;\n }\n\n if (contentType.startsWith(\"video/\")) return PREVIEW_TYPES.VIDEO;\n\n if (contentType === PDF_CONTENT_TYPE && isPresent(thumbnailUrl)) {\n return PREVIEW_TYPES.PDF;\n }\n\n return null;\n};\n\nexport const getPreviewSrc = ({ url, thumbnailUrl }, previewType) =>\n previewType === PREVIEW_TYPES.PDF ? thumbnailUrl : url;\n\nexport const uploadFile = async (file, endpoint) => {\n const { data = {}, ...response } = await new DirectUpload({\n file,\n url: endpoint,\n }).create();\n\n return {\n url: data.blob_url ?? response.blob_url,\n signedId: data.signed_id ?? response.signed_id,\n };\n};\n\nexport const generatePdfThumbnail = async file => {\n const pdfjs = await loadPdfjs();\n const pdf = await pdfjs.getDocument({ data: await file.arrayBuffer() })\n .promise;\n\n try {\n const page = await pdf.getPage(1);\n const { width } = page.getViewport({ scale: 1 });\n const viewport = page.getViewport({ scale: PDF_THUMBNAIL_WIDTH / width });\n\n const canvas = document.createElement(\"canvas\");\n canvas.width = viewport.width;\n canvas.height = viewport.height;\n await page.render({ canvasContext: canvas.getContext(\"2d\"), viewport })\n .promise;\n\n const blob = await canvasToBlob(canvas);\n if (!blob) return null;\n\n const name = `${file.name.replace(/\\.pdf$/i, \"\")}-preview.png`;\n\n return new File([blob], name, { type: \"image/png\" });\n } finally {\n pdf.destroy();\n }\n};\n\nexport const findNodePosByUploadId = (doc, uploadId) => {\n let foundPos = -1;\n doc.descendants((node, pos) => {\n if (foundPos !== -1) return false;\n\n if (node.attrs?.uploadId === uploadId) foundPos = pos;\n\n return foundPos === -1;\n });\n\n return foundPos;\n};\n\nexport const countAttachmentNodes = (doc, nodeName) => {\n let count = 0;\n doc.descendants(node => {\n if (node.type.name === nodeName) count += 1;\n });\n\n return count;\n};\n","import { lazy, Suspense, useState } from \"react\";\n\nimport { NodeViewWrapper } from \"@tiptap/react\";\nimport { Download, ExternalLink, Eye, Trash2 } from \"lucide-react\";\nimport { Button, Spinner, Tooltip } from \"neetoatoms\";\nimport { noop } from \"neetocist\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n checkPreviewAvailability,\n downloadFile,\n} from \"src/v2/components/Attachments/utils\";\nimport FileIcon from \"src/v2/components/Common/FileIcon\";\nimport { convertToFileSize } from \"src/v2/components/Editor/MediaUploader/utils\";\n\nimport { PREVIEW_TYPES } from \"./constants\";\nimport { getPreviewSrc, getPreviewType } from \"./utils\";\n\nconst Preview = lazy(() => import(\"src/v2/components/Attachments/Preview\"));\n\nconst AttachmentComponent = ({ node, extension, editor, deleteNode }) => {\n const { t } = useTranslation();\n const [isPreviewOpen, setIsPreviewOpen] = useState(false);\n\n const { url, filename, contentType, size, signedId, uploadId } = node.attrs;\n const attachment = { url, filename, contentType, size, signedId };\n\n const previewType = getPreviewType(\n node.attrs,\n extension.options.previewMaxSize\n );\n const previewSrc = getPreviewSrc(node.attrs, previewType);\n const canView = checkPreviewAvailability(contentType);\n\n const actions = [\n canView && {\n key: \"view\",\n icon: Eye,\n label: t(\"neetoEditor.attachments.view\"),\n onClick: () => setIsPreviewOpen(true),\n },\n {\n key: \"download\",\n icon: Download,\n label: t(\"neetoEditor.common.download\"),\n onClick: () => downloadFile(url, filename),\n },\n {\n key: \"open\",\n icon: ExternalLink,\n label: t(\"neetoEditor.common.openInNewTab\"),\n onClick: () => window.open(url, \"_blank\", \"noopener,noreferrer\"),\n },\n editor.isEditable && {\n key: \"delete\",\n icon: Trash2,\n label: t(\"neetoEditor.menu.delete\"),\n onClick: deleteNode,\n },\n ].filter(Boolean);\n\n if (uploadId) {\n return (\n <NodeViewWrapper\n className=\"neeto-editor__attachment neeto-editor__attachment--uploading\"\n data-testid=\"neeto-editor-attachment-uploading\"\n >\n <div className=\"neeto-editor__attachment-file\">\n <Spinner />\n <span className=\"neeto-editor__attachment-name\">{filename}</span>\n <span className=\"neeto-editor__attachment-size\">\n {t(\"neetoEditor.attachments.uploading\")}\n </span>\n </div>\n </NodeViewWrapper>\n );\n }\n\n return (\n <NodeViewWrapper\n data-drag-handle\n className=\"neeto-editor__attachment\"\n data-testid=\"neeto-editor-attachment\"\n >\n {previewType && (\n <div\n className=\"neeto-editor__attachment-preview\"\n onClick={\n previewType === PREVIEW_TYPES.VIDEO\n ? noop\n : () => setIsPreviewOpen(true)\n }\n >\n {previewType === PREVIEW_TYPES.VIDEO ? (\n <video controls playsInline preload=\"metadata\" src={previewSrc} />\n ) : (\n <img alt={filename} draggable={false} src={previewSrc} />\n )}\n </div>\n )}\n <div className=\"neeto-editor__attachment-file\">\n <FileIcon\n className=\"neeto-editor__attachment-icon\"\n fileName={filename}\n />\n <span className=\"neeto-editor__attachment-name\">{filename}</span>\n {size && (\n <span className=\"neeto-editor__attachment-size\">\n {convertToFileSize(Number(size))}\n </span>\n )}\n <div className=\"neeto-editor__attachment-actions\">\n {actions.map(({ key, icon, label, onClick }) => (\n <Tooltip content={label} key={key} position=\"top\">\n <Button\n {...{ icon, onClick }}\n aria-label={label}\n data-testid={`neeto-editor-attachment-${key}-button`}\n size=\"sm\"\n variant=\"ghost\"\n />\n </Tooltip>\n ))}\n </div>\n </div>\n <Suspense fallback={<span />}>\n {isPreviewOpen && (\n <Preview\n attachments={[attachment]}\n selectedAttachment={attachment}\n setDidFetchPreviewBundle={noop}\n setSelectedAttachment={noop}\n onClose={() => setIsPreviewOpen(false)}\n />\n )}\n </Suspense>\n </NodeViewWrapper>\n );\n};\n\nexport default AttachmentComponent;\n","import { Node } from \"@tiptap/core\";\nimport { Plugin } from \"@tiptap/pm/state\";\nimport { ReactNodeViewRenderer } from \"@tiptap/react\";\nimport { t } from \"i18next\";\nimport { Toastr } from \"neetoatoms\";\nimport { isEmpty } from \"ramda\";\n\nimport { getRandomString } from \"hooks/utils\";\nimport { buildFileUploadConfig } from \"src/v2/components/Attachments/utils\";\nimport { convertToFileSize } from \"src/v2/components/Editor/MediaUploader/utils\";\nimport { selectFiles } from \"src/v2/hooks/utils/fileUploader\";\n\nimport AttachmentComponent from \"./AttachmentComponent\";\nimport {\n DEFAULT_INLINE_PREVIEW_MAX_SIZE,\n NODE_NAME,\n PDF_CONTENT_TYPE,\n PREVIEW_TYPES,\n} from \"./constants\";\nimport {\n countAttachmentNodes,\n findNodePosByUploadId,\n generatePdfThumbnail,\n getPreviewSrc,\n getPreviewType,\n uploadFile,\n} from \"./utils\";\n\nconst dataAttribute = (name, attribute) => ({\n default: null,\n parseHTML: element => element.getAttribute(attribute),\n renderHTML: attributes =>\n attributes[name] ? { [attribute]: attributes[name] } : {},\n});\n\nconst uploadThumbnail = async (file, endpoint) => {\n try {\n const thumbnail = await generatePdfThumbnail(file);\n\n return thumbnail ? (await uploadFile(thumbnail, endpoint)).url : null;\n } catch (error) {\n // A missing thumbnail only means the PDF is shown as a chip.\n // eslint-disable-next-line no-console\n console.error(\"Failed to generate the PDF thumbnail\", error);\n\n return null;\n }\n};\n\nexport default Node.create({\n name: NODE_NAME,\n\n group: \"block\",\n\n atom: true,\n\n draggable: true,\n\n selectable: true,\n\n addOptions() {\n return {\n config: {},\n previewMaxSize: DEFAULT_INLINE_PREVIEW_MAX_SIZE,\n getExternalAttachmentsCount: () => 0,\n setIsUploading: () => {},\n };\n },\n\n addStorage() {\n return { pendingUploadsCount: 0 };\n },\n\n addAttributes() {\n return {\n url: dataAttribute(\"url\", \"data-url\"),\n filename: dataAttribute(\"filename\", \"data-filename\"),\n contentType: dataAttribute(\"contentType\", \"data-content-type\"),\n size: dataAttribute(\"size\", \"data-size\"),\n signedId: dataAttribute(\"signedId\", \"data-signed-id\"),\n thumbnailUrl: dataAttribute(\"thumbnailUrl\", \"data-thumbnail-url\"),\n uploadId: { default: null, rendered: false },\n };\n },\n\n parseHTML() {\n return [{ tag: \"div[data-attachment]\" }];\n },\n\n renderHTML({ node, HTMLAttributes }) {\n const { url, filename, size } = node.attrs;\n\n // Still uploading: leave nothing behind in the saved HTML.\n if (!url) return [\"span\"];\n\n const previewType = getPreviewType(node.attrs, this.options.previewMaxSize);\n const linkAttrs = {\n href: url,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n };\n const previewSrc = getPreviewSrc(node.attrs, previewType);\n\n const preview =\n previewType === PREVIEW_TYPES.VIDEO\n ? [\n \"video\",\n {\n src: previewSrc,\n controls: true,\n playsinline: true,\n preload: \"metadata\",\n },\n ]\n : [\n \"a\",\n linkAttrs,\n [\"img\", { src: previewSrc, alt: filename, loading: \"lazy\" }],\n ];\n\n const file = [\n \"a\",\n { ...linkAttrs, class: \"neeto-editor__attachment-file\" },\n [\"span\", { class: \"neeto-editor__attachment-name\" }, filename],\n ...(size\n ? [\n [\n \"span\",\n { class: \"neeto-editor__attachment-size\" },\n convertToFileSize(Number(size)),\n ],\n ]\n : []),\n ];\n\n return [\n \"div\",\n {\n ...HTMLAttributes,\n \"data-attachment\": \"\",\n class: \"neeto-editor__attachment\",\n },\n ...(previewType\n ? [[\"div\", { class: \"neeto-editor__attachment-preview\" }, preview]]\n : []),\n file,\n ];\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(AttachmentComponent);\n },\n\n addCommands() {\n return {\n uploadAttachments:\n (files, position) =>\n ({ editor, tr }) => {\n // uploadFiles dispatches its own transaction, so this command's tr is stale.\n tr.setMeta(\"preventDispatch\", true);\n this.storage.uploadFiles(editor, Array.from(files), position);\n\n return true;\n },\n };\n },\n\n onCreate() {\n const { options, storage } = this;\n const config = buildFileUploadConfig(options.config);\n const endpoint = config.directUploadEndpoint;\n\n const updateUploadingState = delta => {\n storage.pendingUploadsCount += delta;\n options.setIsUploading(storage.pendingUploadsCount > 0);\n };\n\n const replacePlaceholder = (editor, uploadId, attrs) => {\n if (editor.isDestroyed) return;\n\n const { state, view } = editor;\n const pos = findNodePosByUploadId(state.doc, uploadId);\n if (pos === -1) return; // Removed by the user while uploading.\n\n const node = state.doc.nodeAt(pos);\n const tr = attrs\n ? state.tr.setNodeMarkup(pos, undefined, { ...node.attrs, ...attrs })\n : state.tr.delete(pos, pos + node.nodeSize);\n view.dispatch(tr.setMeta(\"addToHistory\", false));\n };\n\n const uploadPlaceholder = async (editor, { file, uploadId }) => {\n try {\n const shouldGenerateThumbnail =\n file.type === PDF_CONTENT_TYPE && file.size <= options.previewMaxSize;\n\n const [uploaded, thumbnailUrl] = await Promise.all([\n uploadFile(file, endpoint),\n shouldGenerateThumbnail ? uploadThumbnail(file, endpoint) : null,\n ]);\n\n replacePlaceholder(editor, uploadId, {\n ...uploaded,\n thumbnailUrl,\n uploadId: null,\n });\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Attachment upload failed\", error);\n replacePlaceholder(editor, uploadId, null);\n Toastr.error(t(\"neetoEditor.error.uploadFileFailed\"));\n } finally {\n updateUploadingState(-1);\n }\n };\n\n storage.uploadFiles = (editor, files, position) => {\n const selectedFiles = selectFiles({\n previousAttachmentsCount:\n countAttachmentNodes(editor.state.doc, NODE_NAME) +\n options.getExternalAttachmentsCount(),\n config,\n files,\n });\n\n if (isEmpty(selectedFiles)) return;\n\n const placeholders = selectedFiles.map(file => ({\n file,\n uploadId: getRandomString(),\n }));\n\n const nodes = placeholders.map(({ file, uploadId }) => ({\n type: NODE_NAME,\n attrs: {\n uploadId,\n filename: file.name,\n contentType: file.type,\n size: file.size,\n },\n }));\n\n editor\n .chain()\n .focus()\n .insertContentAt(position ?? editor.state.selection, nodes)\n .run();\n\n updateUploadingState(placeholders.length);\n placeholders.forEach(placeholder =>\n uploadPlaceholder(editor, placeholder)\n );\n };\n },\n\n addProseMirrorPlugins() {\n const { editor, storage } = this;\n\n return [\n new Plugin({\n props: {\n handleDrop: (view, event, _slice, moved) => {\n const files = Array.from(event.dataTransfer?.files ?? []);\n if (moved || isEmpty(files)) return false;\n\n const coordinates = view.posAtCoords({\n left: event.clientX,\n top: event.clientY,\n });\n event.preventDefault();\n storage.uploadFiles(editor, files, coordinates?.pos);\n\n return true;\n },\n // Pasted images are handled by the image extension.\n handlePaste: (_view, event) => {\n const files = Array.from(event.clipboardData?.files ?? []).filter(\n file => !/image/i.test(file.type)\n );\n if (isEmpty(files)) return false;\n\n storage.uploadFiles(editor, files);\n\n return true;\n },\n },\n }),\n ];\n },\n});\n","import { Extension } from \"@tiptap/core\";\nimport \"@tiptap/extension-text-style\";\n\nexport default Extension.create({\n name: \"HighlightInternal\",\n\n addOptions() {\n return { types: [\"textStyle\"] };\n },\n\n addGlobalAttributes() {\n return [\n {\n types: this.options.types,\n attributes: {\n backgroundColor: {\n default: null,\n parseHTML: element =>\n element.style.backgroundColor.replace(/['\"]+/g, \"\"),\n renderHTML: attributes => {\n if (!attributes.backgroundColor) {\n return {};\n }\n\n return {\n style: `background-color: ${attributes.backgroundColor}`,\n };\n },\n },\n },\n },\n ];\n },\n\n addCommands() {\n return {\n setHighlightInternal:\n color =>\n ({ chain }) =>\n chain().setMark(\"textStyle\", { backgroundColor: color }).run(),\n unsetHighlightInternal:\n () =>\n ({ chain }) =>\n chain().setMark(\"textStyle\", { backgroundColor: null }).run(),\n };\n },\n});\n","import { BulletList } from \"@tiptap/extension-list\";\n\nexport default BulletList.configure({\n HTMLAttributes: { class: \"bulletList\" },\n itemTypeName: \"listItem\",\n});\n","import { NodeViewContent, NodeViewWrapper } from \"@tiptap/react\";\nimport { findBy } from \"neetocist\";\nimport { Megaphone } from \"neetoicons/misc\";\n\nimport { CALLOUT_TYPES } from \"src/v2/components/Editor/Menu/Fixed/components/CalloutDropdown/constants\";\n\nconst CalloutComponent = ({ node }) => {\n const { type } = node.attrs;\n const Icon = findBy({ type }, CALLOUT_TYPES)?.icon || Megaphone;\n\n return (\n <NodeViewWrapper\n className={`neeto-editor__callout neeto-editor__callout--${type} group`}\n data-emoji={type}\n >\n <div className=\"callout-container\">\n <span className=\"callout-emoji\">\n <Icon />\n </span>\n <NodeViewContent\n className=\"callout-content\"\n data-testid=\"callout-content\"\n />\n </div>\n </NodeViewWrapper>\n );\n};\n\nexport default CalloutComponent;\n","import { Node, mergeAttributes } from \"@tiptap/core\";\nimport { ReactNodeViewRenderer } from \"@tiptap/react\";\nimport { findBy } from \"neetocist\";\nimport { Megaphone } from \"neetoicons/misc\";\nimport ReactDOM from \"react-dom/server\";\n\nimport { CALLOUT_TYPES } from \"src/v2/components/Editor/Menu/Fixed/components/CalloutDropdown/constants\";\n\nimport CalloutComponent from \"./CalloutComponent\";\n\nexport default Node.create({\n name: \"callout\",\n\n inline: false,\n\n group: \"block\",\n\n content: \"block+\",\n\n defining: true,\n\n draggable: true,\n\n addAttributes() {\n return {\n type: {\n default: \"default\",\n parseHTML: element => element.getAttribute(\"data-type\") || \"default\",\n renderHTML: attributes => ({ \"data-type\": attributes.type }),\n },\n };\n },\n\n parseHTML() {\n return [{ tag: \"div[data-emoji]\", contentElement: \".callout-content\" }];\n },\n\n renderHTML({ HTMLAttributes, node }) {\n const { type } = node.attrs;\n const Icon = findBy({ type }, CALLOUT_TYPES)?.icon || Megaphone;\n // eslint-disable-next-line react/jsx-filename-extension\n const svgString = ReactDOM.renderToStaticMarkup(<Icon />);\n\n const svgContainer = document.createElement(\"div\");\n svgContainer.innerHTML = svgString;\n const svgNode = svgContainer.firstChild;\n\n return [\n \"div\",\n mergeAttributes(this.options.HTMLAttributes, HTMLAttributes, {\n class: `neeto-editor__callout neeto-editor__callout--${type}`,\n \"data-emoji\": type,\n }),\n [\n \"div\",\n { class: \"callout-container\" },\n [\"span\", { class: \"callout-emoji\" }, svgNode],\n [\"div\", { class: \"callout-content\" }, 0],\n ],\n ];\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(CalloutComponent);\n },\n\n addCommands() {\n return {\n setCallout:\n (attributes = {}) =>\n ({ chain }) => {\n const { type = \"default\" } = attributes;\n\n return chain()\n .toggleWrap(this.name, { type })\n .command(({ tr, state, dispatch }) => {\n const { selection } = state;\n const { $from } = selection;\n\n const calloutNode = $from.node($from.depth - 1);\n\n if (calloutNode?.type.name === \"callout\") {\n const pos = $from.after($from.depth - 1);\n const nextNode = state.doc.nodeAt(pos);\n\n if (!nextNode || nextNode.type.name !== \"paragraph\") {\n tr.insert(pos, state.schema.nodes.paragraph.create());\n }\n }\n\n if (dispatch) {\n dispatch(tr);\n }\n\n return true;\n })\n .focus()\n .run();\n },\n };\n },\n\n addKeyboardShortcuts() {\n return {\n Backspace: () => {\n const { state, commands } = this.editor;\n const { $from, empty } = state.selection;\n\n if (!empty) return false;\n\n if ($from.parentOffset === 0) {\n const currentNode = $from.parent;\n\n if (currentNode.content.size === 0) {\n return commands.lift(this.name);\n }\n\n const calloutNode = $from.node($from.depth - 1);\n if (calloutNode?.type.name === \"callout\") {\n return commands.lift(this.name);\n }\n }\n\n return false;\n },\n ArrowDown: () => {\n const { state, commands } = this.editor;\n const { $from, empty } = state.selection;\n\n if (!empty) return false;\n\n const currentNode = $from.parent;\n const calloutNode = $from.node($from.depth - 1);\n\n if (calloutNode?.type.name === \"callout\") {\n const isAtEnd = $from.parentOffset === currentNode.content.size;\n\n const calloutContent = calloutNode.content;\n const currentNodeIndex = $from.index($from.depth - 1);\n const isLastNode = currentNodeIndex === calloutContent.childCount - 1;\n\n if (isAtEnd && isLastNode) {\n const pos = $from.after($from.depth - 1);\n\n if (pos < state.doc.content.size) {\n const nextNode = state.doc.nodeAt(pos);\n if (nextNode) {\n const endPos = pos + nextNode.nodeSize - 1;\n\n return commands.setTextSelection(endPos);\n }\n\n return commands.setTextSelection(pos);\n }\n\n return (\n commands.insertContentAt(pos, { type: \"paragraph\" }) &&\n commands.setTextSelection(pos + 1)\n );\n }\n }\n\n return false;\n },\n };\n },\n});\n","/* eslint-disable @bigbinary/neeto/file-name-and-export-name-standards */\nimport { Plugin, PluginKey } from \"prosemirror-state\";\nimport { Decoration, DecorationSet } from \"prosemirror-view\";\n\nconst codeBlockHighlightKey = new PluginKey(\"codeBlockHighlight\");\n\nfunction createLineDecoration(from, lineNumber) {\n return Decoration.widget(from, view => {\n const line = document.createElement(\"div\");\n line.className = \"highlighted-line\";\n line.setAttribute(\"data-line-number\", lineNumber.toString());\n\n // Set the height of the highlight to match the line height\n const lineElement = view.domAtPos(from).node;\n if (lineElement instanceof Element) {\n const lineHeight = window.getComputedStyle(lineElement).lineHeight;\n line.style.height = lineHeight;\n }\n\n return line;\n });\n}\n\nfunction getLineRanges(node, pos) {\n const lines = node.textContent.split(\"\\n\");\n let currentPos = pos + 1; // +1 to skip the opening tag of the code block\n\n return lines.map((line, index) => {\n const from = currentPos;\n const to = from + line.length; // +1 for newline, except last line\n currentPos = to + (index < lines.length - 1 ? 1 : 0);\n\n return { from, to, lineNumber: index + 1 };\n });\n}\n\nconst codeBlockHighlightPlugin = new Plugin({\n key: codeBlockHighlightKey,\n state: {\n init() {\n return DecorationSet.empty;\n },\n apply(tr, set) {\n set = set.map(tr.mapping, tr.doc);\n\n if (tr.getMeta(codeBlockHighlightKey)) {\n const decorations = [];\n tr.doc.descendants((node, pos) => {\n if (node.type.name !== \"codeBlock\") return;\n\n const highlightedLines = node.attrs.highlightedLines || [];\n const lineRanges = getLineRanges(node, pos);\n\n lineRanges.forEach(({ from, lineNumber }) => {\n if (highlightedLines.includes(lineNumber)) {\n decorations.push(createLineDecoration(from, lineNumber));\n }\n });\n });\n\n return DecorationSet.create(tr.doc, decorations);\n }\n\n return set;\n },\n },\n props: {\n decorations(state) {\n return this.getState(state);\n },\n },\n});\n\nexport { codeBlockHighlightPlugin, codeBlockHighlightKey };\n","import { t } from \"i18next\";\nimport { lowlight } from \"lowlight\";\n\nexport const SORTED_LANGUAGE_LIST = [\n ...lowlight.listLanguages(),\n \"html\",\n].sort();\n\nexport const LINE_NUMBER_OPTIONS = [\n { label: t(\"neetoEditor.codeblock.showLineNumbers\"), value: \"true\" },\n { label: t(\"neetoEditor.codeblock.hideLineNumbers\"), value: \"false\" },\n];\n","import { useRef, useState, useCallback, useEffect } from \"react\";\n\nimport { Button, DropdownMenu, Input } from \"@bigbinary/neeto-atoms\";\nimport { NodeViewWrapper, NodeViewContent } from \"@tiptap/react\";\nimport { ChevronDown, Highlighter } from \"lucide-react\";\nimport CopyToClipboardButton from \"neetomolecules/v2/CopyToClipboardButton\";\nimport { difference, intersection, union } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n LINE_NUMBER_OPTIONS,\n SORTED_LANGUAGE_LIST,\n} from \"src/v2/components/Editor/CustomExtensions/CodeBlock/constants\";\nimport { codeBlockHighlightKey } from \"src/v2/components/Editor/CustomExtensions/CodeBlock/plugins\";\n\nconst { Menu, MenuItem } = DropdownMenu;\n\nconst CodeBlockComponent = ({ node, editor, updateAttributes }) => {\n const [keyword, setKeyword] = useState(\"\");\n const [showHighlightButton, setShowHighlightButton] = useState(false);\n const [showLineNumbers, setShowLineNumbers] = useState(\n node.attrs.linenumbers\n );\n const ref = useRef();\n\n const { t } = useTranslation();\n\n const filteredAndSortedLanguageList = SORTED_LANGUAGE_LIST.filter(language =>\n language.includes(keyword)\n );\n\n const handleLanguageSelect = language => {\n updateAttributes({ language });\n setKeyword(\"\");\n editor?.commands?.focus();\n };\n\n const handleContentMount = node => {\n if (ref.current && node?.offsetHeight) {\n ref.current.style.minHeight = `${node.offsetHeight}px`;\n }\n };\n\n const handleSelectionChange = useCallback(() => {\n const { from, to } = editor.state.selection;\n const isCodeBlockSelected = editor.isActive(\"codeBlock\");\n setShowHighlightButton(isCodeBlockSelected && from !== to);\n }, [editor]);\n\n useEffect(() => {\n editor.on(\"selectionUpdate\", handleSelectionChange);\n\n return () => {\n editor.off(\"selectionUpdate\", handleSelectionChange);\n };\n }, [editor, handleSelectionChange]);\n\n useEffect(() => {\n editor.view.dispatch(editor.state.tr.setMeta(codeBlockHighlightKey, true));\n }, []);\n\n const handleHighlight = () => {\n const { from, to } = editor.state.selection;\n const $from = editor.state.doc.resolve(from);\n\n const codeBlock = $from.node($from.depth);\n const codeBlockStart = $from.start($from.depth);\n\n const textBeforeSelection = codeBlock.textBetween(0, from - codeBlockStart);\n const startLine = textBeforeSelection.split(\"\\n\").length;\n const selectedText = codeBlock.textBetween(\n from - codeBlockStart,\n to - codeBlockStart\n );\n const selectedLines = selectedText.split(\"\\n\");\n\n const newSelectedLines = selectedLines.map((_, index) => startLine + index);\n const currentHighlightedLines = codeBlock.attrs.highlightedLines || [];\n\n const overlapLines = intersection(\n currentHighlightedLines,\n newSelectedLines\n );\n\n let highlightedLines;\n\n if (overlapLines.length === newSelectedLines.length) {\n highlightedLines = difference(currentHighlightedLines, newSelectedLines);\n } else {\n highlightedLines = union(currentHighlightedLines, newSelectedLines);\n }\n\n editor.commands.updateAttributes(codeBlock.type, { highlightedLines });\n editor.view.dispatch(editor.state.tr.setMeta(codeBlockHighlightKey, true));\n };\n\n return (\n <NodeViewWrapper\n className=\"ne-codeblock-nodeview-wrapper ne-codeblock--v2\"\n data-testid=\"neeto-editor-code-block\"\n >\n <div {...{ ref }}>\n <pre ref={handleContentMount}>\n <div\n className=\"neeto-editor-codeblock-options\"\n contentEditable={false}\n >\n <DropdownMenu\n buttonProps={{ size: \"sm\", variant: \"secondary\" }}\n dropdownProps={{ className: \"ne-editor-dropdown\" }}\n icon={ChevronDown}\n label={\n showLineNumbers === \"true\"\n ? LINE_NUMBER_OPTIONS[0].label\n : LINE_NUMBER_OPTIONS[1].label\n }\n >\n <Menu className=\"neeto-editor-codeblock-options__menu\">\n {LINE_NUMBER_OPTIONS.map(({ label, value }) => (\n <MenuItem\n key={label}\n onClick={() => {\n setShowLineNumbers(value);\n updateAttributes({ linenumbers: value });\n }}\n >\n {label}\n </MenuItem>\n ))}\n </Menu>\n </DropdownMenu>\n <DropdownMenu\n buttonProps={{ size: \"sm\", variant: \"secondary\" }}\n dropdownProps={{ className: \"ne-editor-dropdown\" }}\n icon={ChevronDown}\n label={node.attrs?.language || t(\"neetoEditor.common.auto\")}\n >\n <Input\n autoFocus\n className=\"neeto-editor-codeblock-options__input\"\n placeholder={t(\"neetoEditor.placeholders.searchLanguages\")}\n size=\"small\"\n value={keyword}\n onChange={e => setKeyword(e.target.value)}\n onClick={e => {\n e.preventDefault();\n e.stopPropagation();\n }}\n />\n <Menu className=\"neeto-editor-codeblock-options__menu\">\n {filteredAndSortedLanguageList.map(language => (\n <MenuItem\n key={language}\n onClick={() => handleLanguageSelect(language)}\n >\n {language || t(\"neetoEditor.common.auto\")}\n </MenuItem>\n ))}\n </Menu>\n </DropdownMenu>\n <CopyToClipboardButton\n size=\"sm\"\n value={node?.content?.content[0]?.text}\n variant=\"ghost\"\n />\n {showHighlightButton && (\n <Button\n icon={Highlighter}\n size=\"sm\"\n tooltipProps={{ content: t(\"neetoEditor.menu.highlight\") }}\n variant=\"secondary\"\n onClick={handleHighlight}\n />\n )}\n </div>\n <NodeViewContent as=\"code\" />\n </pre>\n </div>\n </NodeViewWrapper>\n );\n};\n\nexport default CodeBlockComponent;\n","import CodeBlockLowlight from \"@tiptap/extension-code-block-lowlight\";\nimport { ReactNodeViewRenderer } from \"@tiptap/react\";\nimport { lowlight } from \"lowlight\";\n\nimport { codeBlockHighlightPlugin } from \"src/v2/components/Editor/CustomExtensions/CodeBlock/plugins\";\n\nimport CodeBlockComponent from \"./CodeBlockComponent\";\n\nexport default CodeBlockLowlight.extend({\n addAttributes() {\n return {\n ...this.parent?.(),\n highlightedLines: {\n default: [],\n parseHTML: element =>\n element.dataset.highlightedLines\n ?.split(\",\")\n .map(Number)\n .filter(Boolean) || [],\n renderHTML: attributes => ({\n \"data-highlighted-lines\":\n attributes.highlightedLines?.join(\",\") ?? \"\",\n }),\n },\n linenumbers: {\n default: \"false\",\n parseHTML: element => element.dataset.linenumbers || \"false\",\n renderHTML: attributes =>\n attributes.linenumbers === \"true\"\n ? { \"data-linenumbers\": \"true\" }\n : {},\n },\n };\n },\n addProseMirrorPlugins() {\n return [...(this.parent?.() || []), codeBlockHighlightPlugin];\n },\n addNodeView() {\n return ReactNodeViewRenderer(CodeBlockComponent);\n },\n}).configure({ lowlight, defaultLanguage: \"plaintext\" });\n","import { Extension } from \"@tiptap/core\";\n\nexport default Extension.create({\n name: \"paste-unformatted\",\n\n addCommands() {\n return {\n pasteUnformatted:\n () =>\n async ({ editor }) => {\n const text = await navigator.clipboard.readText();\n editor.commands.insertContent(text);\n },\n };\n },\n});\n","import { Extension } from \"@tiptap/core\";\nimport { Plugin, PluginKey } from \"@tiptap/pm/state\";\nimport { Decoration, DecorationSet } from \"@tiptap/pm/view\";\n\nconst DeletedArticleDecoration = Extension.create({\n name: \"deletedArticleDecoration\",\n\n addOptions() {\n return { deletedArticleIds: new Set() };\n },\n\n addProseMirrorPlugins() {\n return [\n new Plugin({\n key: new PluginKey(\"deletedArticleDecoration\"),\n props: {\n decorations: ({ doc }) => {\n const decorations = [];\n\n doc.descendants((node, pos) => {\n if (!node.marks) return;\n\n node.marks.forEach(mark => {\n if (\n !(\n mark.type.name === \"link\" &&\n mark.attrs[\"data-neeto-kb-article\"] === \"true\" &&\n mark.attrs[\"data-article-id\"]\n )\n ) {\n return;\n }\n\n const articleId = mark.attrs[\"data-article-id\"];\n if (!this.options.deletedArticleIds.has(articleId)) return;\n\n const decoration = Decoration.inline(pos, pos + node.nodeSize, {\n \"data-article-deleted\": \"true\",\n class: \"neeto-kb-article-deleted\",\n });\n decorations.push(decoration);\n });\n });\n\n return DecorationSet.create(doc, decorations);\n },\n },\n }),\n ];\n },\n\n addCommands() {\n return {\n updateDeletedArticles: deletedArticleIds => () => {\n this.options.deletedArticleIds = deletedArticleIds;\n this.editor.view.updateState(this.editor.state);\n\n return true;\n },\n };\n },\n});\n\nexport default DeletedArticleDecoration;\n","import { Extension } from \"@tiptap/core\";\n\nconst EditorContainer = Extension.create({\n name: \"editorContainer\",\n\n addOptions() {\n return { containerRef: null, appendSuggestionsToBody: false };\n },\n\n addStorage() {\n return { containerRef: null, appendSuggestionsToBody: false };\n },\n\n onBeforeCreate() {\n this.storage.containerRef = this.options.containerRef;\n this.storage.appendSuggestionsToBody = this.options.appendSuggestionsToBody;\n },\n});\n\nexport default EditorContainer;\n","import { Node } from \"@tiptap/core\";\nimport { PluginKey } from \"@tiptap/pm/state\";\nimport { ReactRenderer } from \"@tiptap/react\";\nimport Suggestion from \"@tiptap/suggestion\";\nimport tippy from \"tippy.js\";\n\nimport { getSuggestionAppendTo } from \"src/v2/components/Editor/utils\";\n\nimport EmojiPickerMenu from \"./EmojiPickerMenu\";\n\nconst EmojiPickerPluginKey = new PluginKey(\"emoji-picker\");\n\nconst EmojiPicker = Node.create({\n name: \"emojiPicker\",\n\n group: \"inline\",\n\n inline: true,\n\n selectable: false,\n\n atom: true,\n\n addOptions() {\n return {\n suggestion: {\n char: \"::\",\n startOfLine: false,\n pluginKey: EmojiPickerPluginKey,\n items: () => [],\n\n render: () => {\n let reactRenderer;\n let popup;\n\n return {\n onStart(props) {\n reactRenderer = new ReactRenderer(EmojiPickerMenu, {\n props,\n editor: props.editor,\n });\n\n popup = tippy(\"body\", {\n theme: \"light\",\n getReferenceClientRect: props.clientRect,\n appendTo: getSuggestionAppendTo(props.editor),\n content: reactRenderer.element,\n showOnCreate: true,\n interactive: true,\n trigger: \"manual\",\n placement: \"bottom-start\",\n zIndex: 99999,\n });\n },\n\n onKeyDown(props) {\n return reactRenderer.ref?.onKeyDown(props);\n },\n\n onExit() {\n popup[0].destroy();\n reactRenderer.destroy();\n },\n };\n },\n },\n };\n },\n\n addProseMirrorPlugins() {\n return [Suggestion({ editor: this.editor, ...this.options.suggestion })];\n },\n});\n\nexport default EmojiPicker;\n","export const DEFAULT_EMOJI_PRIORITIES_LIST = [\n \"+1\",\n \"-1\",\n \"heart\",\n \"heart_eyes\",\n \"tada\",\n \"partying_face\",\n \"joy\",\n \"sob\",\n \"white_frowning_face\",\n \"rocket\",\n \"eyes\",\n \"raised_hands\",\n \"open_mouth\",\n];\n\nexport const EMOJI_QUERY_REGEX = /^[a-z0-9_+-]+$/i;\n","import { DEFAULT_EMOJI_PRIORITIES_LIST } from \"./constants\";\n\nexport const filterEmojiSuggestions = (suggestions, frequentlyUsedEmojis) => {\n const mergedEmojiList = DEFAULT_EMOJI_PRIORITIES_LIST.concat(\n frequentlyUsedEmojis.filter(\n emoji => !DEFAULT_EMOJI_PRIORITIES_LIST.includes(emoji)\n )\n );\n\n return suggestions\n .sort((a, b) => {\n const aIndex = mergedEmojiList.indexOf(a.id);\n const bIndex = mergedEmojiList.indexOf(b.id);\n if (aIndex === -1 && bIndex === -1) {\n return 0;\n } else if (aIndex === -1) {\n return 1;\n } else if (bIndex === -1) {\n return -1;\n }\n\n return aIndex - bIndex;\n })\n .slice(0, 5);\n};\n","import React from \"react\";\n\nimport { Spinner } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { init, SearchIndex } from \"emoji-mart\";\nimport { isNotEmpty } from \"neetocist\";\nimport { isEmpty } from \"ramda\";\n\nimport emojiPickerApi from \"apis/emoji_picker\";\nimport { filterEmojiSuggestions } from \"src/v2/components/Editor/CustomExtensions/Emoji/EmojiSuggestion/utils\";\n\nclass EmojiSuggestionMenu extends React.Component {\n state = {\n isLoading: false,\n selectedIndex: 0,\n emojiSuggestions: [],\n frequentlyUsedEmojis: {},\n };\n\n componentDidMount() {\n this.setState({\n frequentlyUsedEmojis: Object.keys(\n // eslint-disable-next-line @bigbinary/neeto/no-local-storage\n JSON.parse(localStorage.getItem(\"emoji-mart.frequently\") || \"{}\")\n ),\n });\n\n init({\n data: this.fetchEmojiData,\n theme: \"light\",\n previewPosition: \"none\",\n });\n this.searchEmojiAndSetState();\n }\n\n componentDidUpdate(oldProps) {\n if (this.props.query !== oldProps.query) {\n this.searchEmojiAndSetState();\n }\n }\n\n fetchEmojiData = async () => {\n this.setState({ isLoading: true });\n try {\n const { data } = await emojiPickerApi.fetch();\n this.setState({ isLoading: false });\n\n return data;\n } catch {\n this.setState({ isLoading: false });\n\n return {};\n }\n };\n\n // eslint-disable-next-line require-await\n searchEmoji = async () =>\n this.props.query ? SearchIndex.search(this.props.query) : [];\n\n searchEmojiAndSetState = async () => {\n try {\n const suggestions = await this.searchEmoji();\n const frequentlyUsedEmojis = this.state.frequentlyUsedEmojis;\n this.setState({\n emojiSuggestions: filterEmojiSuggestions(\n suggestions,\n frequentlyUsedEmojis\n ),\n });\n } catch {\n this.setState({ emojiSuggestions: [] });\n }\n };\n\n setEditorState = async () => {\n const suggestions = await this.searchEmoji();\n this.props.editor\n .chain()\n .focus()\n .deleteRange(this.props.range)\n .setEmoji(suggestions[0])\n .run();\n };\n\n onKeyDown = ({ event }) => {\n if (isEmpty(this.state.emojiSuggestions)) {\n return false;\n }\n\n if (event.key === \"ArrowLeft\" || event.key === \"ArrowDown\") {\n this.setState(({ selectedIndex, emojiSuggestions }) => ({\n selectedIndex:\n (selectedIndex + emojiSuggestions.length - 1) %\n emojiSuggestions.length,\n }));\n\n return true;\n }\n\n if (event.key === \"ArrowRight\" || event.key === \"ArrowUp\") {\n this.setState(({ selectedIndex, emojiSuggestions }) => ({\n selectedIndex: (selectedIndex + 1) % emojiSuggestions.length,\n }));\n\n return true;\n }\n\n if (event.key === \"Enter\") {\n this.selectItem(this.state.selectedIndex);\n\n return true;\n }\n\n if (event.key === \"Escape\") {\n this.props.editor.chain().focus().insertContent(\" \").run();\n\n return true;\n }\n\n return false;\n };\n\n selectItem = index => {\n this.props.editor\n .chain()\n .focus()\n .deleteRange(this.props.range)\n .setEmoji(this.state.emojiSuggestions[index])\n .run();\n };\n\n render() {\n if (isEmpty(this.state.emojiSuggestions)) {\n return null;\n }\n\n return (\n <div className=\"neeto-editor-emoji-suggestion\">\n {this.state.isLoading && <Spinner />}\n {!this.state.isLoading &&\n (isNotEmpty(this.state.emojiSuggestions) ? (\n this.state.emojiSuggestions.map((emoji, index) => (\n <div\n data-testid={`neeto-editor-emoji-suggestion-${emoji.id}`}\n key={emoji.id}\n className={classnames(\"neeto-editor-emoji-suggestion__item\", {\n \"neeto-editor-emoji-suggestion__item--selected\":\n index === this.state.selectedIndex,\n })}\n onClick={() => this.selectItem(index)}\n >\n {emoji.skins[0].native}\n </div>\n ))\n ) : (\n <p>No results</p>\n ))}\n </div>\n );\n }\n}\n\nexport default EmojiSuggestionMenu;\n","import { Node, mergeAttributes } from \"@tiptap/core\";\nimport { PluginKey } from \"@tiptap/pm/state\";\nimport { ReactRenderer } from \"@tiptap/react\";\nimport Suggestion from \"@tiptap/suggestion\";\nimport { isNil } from \"ramda\";\nimport tippy from \"tippy.js\";\n\nimport { EMOJI_QUERY_REGEX } from \"src/v2/components/Editor/CustomExtensions/Emoji/EmojiSuggestion/constants\";\nimport { getSuggestionAppendTo } from \"src/v2/components/Editor/utils\";\n\nimport EmojiSuggestionMenu from \"./EmojiSuggestionMenu\";\n\nconst EmojiSuggestionPluginKey = new PluginKey(\"emoji-suggestion\");\nconst EmojiSuggestion = Node.create({\n name: \"emojiSuggestion\",\n\n group: \"inline\",\n\n inline: true,\n\n selectable: false,\n\n atom: true,\n\n addOptions() {\n return {\n HTMLAttributes: { class: \"neeto-editor-emoji\" },\n renderEmoji({ node }) {\n return node.attrs.label;\n },\n suggestion: {},\n };\n },\n\n addAttributes() {\n return {\n label: {\n default: null,\n parseHTML: element => element.getAttribute(\"data-label\"),\n renderHTML: attributes => {\n if (!attributes.label) {\n return {};\n }\n\n return { \"data-label\": attributes.label };\n },\n },\n };\n },\n\n parseHTML() {\n return [{ tag: \"span[data-emoji]\" }];\n },\n\n renderHTML({ node, HTMLAttributes }) {\n return [\n \"span\",\n mergeAttributes(\n { \"data-emoji\": \"\" },\n this.options.HTMLAttributes,\n HTMLAttributes\n ),\n this.options.renderEmoji({ node }),\n ];\n },\n\n renderText({ node }) {\n return this.options.renderEmoji({ node });\n },\n\n addCommands() {\n return {\n setEmoji:\n emoji =>\n ({ chain }) =>\n chain()\n .focus()\n .insertContent([\n {\n type: this.name,\n attrs: {\n label: emoji?.native || emoji?.skins[0]?.native || \"\",\n },\n },\n { type: \"text\", text: \" \" },\n ])\n .run(),\n };\n },\n\n addProseMirrorPlugins() {\n return [Suggestion({ editor: this.editor, ...this.options.suggestion })];\n },\n});\n\nconst suggestionConfig = {\n char: \":\",\n startOfLine: false,\n pluginKey: EmojiSuggestionPluginKey,\n command: ({ editor, range, props }) => {\n editor.chain().focus().deleteRange(range).setEmoji(props).run();\n },\n\n items: () => [],\n\n render: () => {\n let reactRenderer;\n let popup;\n\n return {\n onStart(props) {\n if (props.editor.view.input.lastKeyCode === 37) {\n reactRenderer = null;\n popup = null;\n }\n },\n\n onUpdate(props) {\n const isArrowNavigation =\n props.editor.view.input.lastKeyCode === 39 ||\n props.editor.view.input.lastKeyCode === 37;\n\n if (\n isNil(reactRenderer) &&\n !isArrowNavigation &&\n props.query.length === 1 &&\n EMOJI_QUERY_REGEX.test(props.query)\n ) {\n reactRenderer = new ReactRenderer(EmojiSuggestionMenu, {\n props,\n editor: props.editor,\n });\n\n popup = tippy(\"body\", {\n theme: \"neeto-editor-emoji-suggestion-tippy\",\n arrow: false,\n getReferenceClientRect: props.clientRect,\n appendTo: getSuggestionAppendTo(props.editor),\n content: reactRenderer.element,\n showOnCreate: true,\n interactive: true,\n trigger: \"manual\",\n placement: \"top-start\",\n zIndex: 99999,\n });\n }\n reactRenderer && reactRenderer.updateProps(props);\n\n !isNil(popup) &&\n popup[0]?.setProps({\n getReferenceClientRect: props.clientRect,\n });\n },\n\n onKeyDown(props) {\n return reactRenderer?.ref?.onKeyDown(props);\n },\n\n onExit() {\n !isNil(popup) && popup[0]?.destroy();\n reactRenderer?.destroy();\n reactRenderer = null;\n },\n };\n },\n};\n\nexport default EmojiSuggestion.configure({ suggestion: suggestionConfig });\n","const imageSkeletonContainer = document.createElement(\"div\");\nimageSkeletonContainer.classList.add(\"neeto-editor-image__skeleton\");\n\nconst imageSkeleton = document.createElement(\"div\");\nimageSkeleton.classList.add(\"skeleton\");\n\nimageSkeletonContainer.appendChild(imageSkeleton);\n\nexport const IMAGE_PLACEHOLDER = imageSkeletonContainer;\n\nexport const LARGE_IMAGE_ERROR = \"IMAGE_SIZE_LARGER\";\n","import { useEffect, useRef, useState } from \"react\";\n\nimport { Button, Spinner } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { X } from \"lucide-react\";\nimport { isPresent } from \"neetocist\";\nimport { useOnClickOutside } from \"neetocommons/v2/react-utils\";\nimport { createPortal } from \"react-dom\";\n\nconst ImagePreviewModal = ({ previewUrl, setPreviewUrl }) => {\n const [isLoading, setIsLoading] = useState(true);\n\n const imagePreviewRef = useRef(null);\n\n const handleClose = () => {\n setIsLoading(true);\n setPreviewUrl(null);\n };\n\n useOnClickOutside(imagePreviewRef, handleClose, {\n enabled: isPresent(previewUrl),\n });\n\n useEffect(() => {\n if (!previewUrl || !imagePreviewRef.current) return;\n\n imagePreviewRef.current.setAttribute(\"tabindex\", \"-1\");\n imagePreviewRef.current.focus();\n }, [previewUrl]);\n\n const handleKeyDown = e => {\n e.stopPropagation();\n e.key === \"Escape\" && handleClose();\n };\n\n if (!isPresent(previewUrl)) return null;\n\n return createPortal(\n <div className=\"ne-image-preview-wrapper active\">\n {isLoading && <Spinner className=\"ne-image-preview-wrapper__spinner\" />}\n <div\n className={classnames(\"ne-image-preview\", {\n \"image-loaded\": !isLoading,\n })}\n >\n {!isLoading && (\n <div className=\"close-button\">\n <Button icon={X} variant=\"secondary\" onClick={handleClose} />\n </div>\n )}\n <img\n alt=\"Preview\"\n ref={imagePreviewRef}\n src={previewUrl}\n onKeyDown={handleKeyDown}\n onLoad={() => setIsLoading(false)}\n />\n </div>\n </div>,\n document.body\n );\n};\n\nexport default ImagePreviewModal;\n","import { Button, DropdownMenu, Tooltip } from \"@bigbinary/neeto-atoms\";\nimport { t } from \"i18next\";\nimport {\n AlignCenter,\n AlignLeft,\n AlignRight,\n ChevronDown,\n Ellipsis,\n Ratio,\n RectangleHorizontal,\n RectangleVertical,\n Square,\n SquareDashed,\n Trash2,\n} from \"lucide-react\";\n\nconst { Menu: DropdownMenuList, MenuItem } = DropdownMenu;\n\nconst buildImageOptions = (border, showAspectRatio) => {\n const options = [\n {\n Icon: AlignLeft,\n type: \"button\",\n alignPos: \"left\",\n optionName: t(\"neetoEditor.menu.alignLeft\"),\n },\n {\n Icon: AlignCenter,\n type: \"button\",\n alignPos: \"center\",\n optionName: t(\"neetoEditor.menu.alignCenter\"),\n },\n {\n Icon: AlignRight,\n type: \"button\",\n alignPos: \"right\",\n optionName: t(\"neetoEditor.menu.alignRight\"),\n },\n ];\n\n if (showAspectRatio) {\n options.push({\n Icon: Ratio,\n type: \"dropdown\",\n alignPos: \"center\",\n optionName: t(\"neetoEditor.menu.aspectRatio\"),\n items: [\n { ratio: \"16/9\", tooltipLabel: \"16/9\", icon: RectangleHorizontal },\n { ratio: \"9/16\", tooltipLabel: \"9/16\", icon: RectangleVertical },\n { ratio: \"4/3\", tooltipLabel: \"4/3\", icon: RectangleHorizontal },\n { ratio: \"3/2\", tooltipLabel: \"3/2\", icon: RectangleHorizontal },\n { ratio: \"1/1\", tooltipLabel: \"1/1\", icon: Square },\n ],\n });\n }\n\n options.push(\n {\n Icon: border ? SquareDashed : Square,\n type: \"button\",\n alignPos: \"center\",\n borderToggle: true,\n optionName: border\n ? t(\"neetoEditor.menu.removeBorder\")\n : t(\"neetoEditor.menu.addBorder\"),\n },\n {\n Icon: Trash2,\n type: \"button\",\n optionName: t(\"neetoEditor.menu.delete\"),\n }\n );\n\n return options;\n};\n\nconst Menu = ({\n align,\n border,\n editor,\n updateAttributes,\n deleteNode,\n showAspectRatio,\n}) => {\n const menuOptions = buildImageOptions(border, showAspectRatio);\n\n const handleClick = (alignPos, borderToggle) => {\n if (borderToggle) {\n updateAttributes({ border: !border });\n } else if (alignPos) {\n updateAttributes({ align: alignPos });\n } else {\n deleteNode();\n }\n editor.commands.focus();\n };\n\n return (\n <DropdownMenu\n position=\"top-end\"\n customTarget={\n <Button\n className=\"neeto-editor__image-menu-btn\"\n icon={Ellipsis}\n size=\"lg\"\n variant=\"secondary\"\n />\n }\n dropdownProps={{\n className: \"ne-editor-dropdown w-auto flex flex-row items-center gap-1\",\n }}\n >\n {menuOptions.map(\n ({ Icon, optionName, alignPos, type, items, border, borderToggle }) =>\n type === \"button\" ? (\n <Button\n className=\"ne-toolbar-item\"\n data-testid={`neeto-editor-image-menu-${optionName}`}\n icon={Icon}\n key={optionName}\n tooltipProps={{ content: optionName, position: \"top\" }}\n variant={\n alignPos === align || (borderToggle && border)\n ? \"secondary\"\n : \"ghost\"\n }\n onClick={() => handleClick(alignPos, borderToggle)}\n />\n ) : (\n <DropdownMenu\n dropdownProps={{ className: \"ne-editor-dropdown\" }}\n key={optionName}\n position=\"bottom-start\"\n buttonProps={{\n tooltipProps: {\n content: optionName,\n position: \"top\",\n },\n }}\n customTarget={\n <MenuItem className=\"ne-toolbar-item !relative\">\n <Tooltip content={optionName} position=\"top\">\n <div className=\"flex items-center justify-center gap-x-1\">\n <Ratio size={18} />\n <ChevronDown size={14} />\n </div>\n </Tooltip>\n </MenuItem>\n }\n onClick={event => event.stopPropagation()}\n >\n <DropdownMenuList className=\"mb-0\">\n {items?.map(({ ratio, icon: Icon }) => (\n <MenuItem\n key={ratio}\n prefix={Icon ? <Icon size={16} /> : undefined}\n onClick={() => updateAttributes({ aspectRatio: ratio })}\n >\n {ratio}\n </MenuItem>\n ))}\n </DropdownMenuList>\n </DropdownMenu>\n )\n )}\n </DropdownMenu>\n );\n};\n\nexport default Menu;\n","import { useRef, useState } from \"react\";\n\nimport { Spinner } from \"@bigbinary/neeto-atoms\";\nimport { NodeViewContent, NodeViewWrapper } from \"@tiptap/react\";\nimport classNames from \"classnames\";\nimport { isNotPresent } from \"neetocist\";\nimport { isEmpty, mergeRight } from \"ramda\";\nimport { Resizable } from \"re-resizable\";\n\nimport ImagePreviewModal from \"./ImagePreviewModal\";\nimport Menu from \"./Menu\";\n\nconst ImageComponent = ({\n node,\n editor,\n getPos,\n updateAttributes,\n deleteNode,\n}) => {\n const { src, figheight, figwidth, align, alt, border } = node.attrs;\n\n const [captionWidth, setCaptionWidth] = useState(figwidth || 0);\n const [previewUrl, setPreviewUrl] = useState(null);\n const figureRef = useRef(null);\n\n const { view } = editor;\n let height = figheight;\n let width = figwidth;\n const caption = node?.content?.content?.[0]?.text || \"\";\n\n const editorElement = figureRef.current?.closest(\".neeto-editor\");\n const maxImageWidth = editorElement?.offsetWidth - 50;\n\n const handleResizeStop = (_event, _direction, ref) => {\n height = ref.offsetHeight;\n width = ref.offsetWidth;\n\n if (width > maxImageWidth) {\n width = maxImageWidth;\n const aspectRatio = ref.offsetHeight / ref.offsetWidth;\n height = width * aspectRatio;\n }\n setCaptionWidth(width);\n view.dispatch(\n view.state.tr.setNodeMarkup(\n getPos(),\n undefined,\n mergeRight(node.attrs, {\n figheight: height,\n figwidth: width,\n height,\n width,\n })\n )\n );\n editor.commands.focus();\n };\n\n if (isNotPresent(src) && isNotPresent(alt)) return null;\n\n return (\n <NodeViewWrapper\n data-testid=\"neeto-editor-image-wrapper\"\n className={classNames(\n \"neeto-editor__image-wrapper\",\n `neeto-editor__image--${align}`,\n { \"neeto-editor__image--bordered\": border }\n )}\n >\n <figure ref={figureRef}>\n <Menu {...{ align, border, deleteNode, editor, updateAttributes }} />\n {src ? (\n <Resizable\n lockAspectRatio\n className=\"neeto-editor__image\"\n minWidth=\"50px\"\n size={{ height, width }}\n onResizeStop={handleResizeStop}\n onResize={(_event, _direction, ref) =>\n setCaptionWidth(ref.offsetWidth)\n }\n >\n <img\n {...{ ...node.attrs, src }}\n alt={caption}\n data-border={border}\n onClick={e => {\n e.stopPropagation();\n setPreviewUrl(src);\n }}\n />\n </Resizable>\n ) : (\n <div className=\"neeto-editor__image-placeholder\">\n <Spinner />\n </div>\n )}\n <NodeViewContent\n as=\"figcaption\"\n className={classNames({ \"is-empty\": isEmpty(caption) })}\n style={{ width: `${captionWidth}px` }}\n />\n </figure>\n <ImagePreviewModal {...{ previewUrl, setPreviewUrl }} />\n </NodeViewWrapper>\n );\n};\n\nexport default ImageComponent;\n","import { Toastr } from \"@bigbinary/neeto-atoms\";\nimport { mergeAttributes, Node } from \"@tiptap/core\";\nimport { Plugin, Selection } from \"@tiptap/pm/state\";\nimport { ReactNodeViewRenderer } from \"@tiptap/react\";\nimport classnames from \"classnames\";\nimport { t } from \"i18next\";\nimport { globalProps } from \"neetocommons/v2/initializers\";\nimport { isEmpty } from \"ramda\";\n\nimport { DIRECT_UPLOAD_ENDPOINT } from \"src/common/constants\";\nimport { LARGE_IMAGE_ERROR } from \"src/v2/components/Editor/CustomExtensions/Image/constants\";\nimport DirectUpload from \"utils/DirectUpload\";\n\nimport ImageComponent from \"./ImageComponent\";\n\nconst upload = async (file, url) => {\n if (file.size <= globalProps.endUserUploadedFileSizeLimitInMb * 1024 * 1024) {\n const uploader = new DirectUpload({ file, url });\n const response = await uploader.create();\n\n return response.data?.blob_url || response.blob_url;\n }\n\n throw new Error(LARGE_IMAGE_ERROR);\n};\n\nconst findNextTextPos = (editor, pos) => {\n const doc = editor.state.doc;\n let foundPos = -1;\n\n doc.nodesBetween(pos, doc.content.size, (node, nodePos) => {\n if (foundPos >= pos) return false;\n else if (!node.type.isTextblock) return true;\n foundPos = nodePos;\n\n return false;\n });\n\n return foundPos;\n};\n\nexport default Node.create({\n name: \"image\",\n\n addOptions() {\n return { HTMLAttributes: {}, openImageInNewTab: true };\n },\n\n group: \"block\",\n\n content: \"inline*\",\n\n draggable: false,\n\n isolating: true,\n\n addAttributes() {\n return {\n id: {\n default: null,\n parseHTML: element => element.getAttribute(\"id\"),\n },\n\n src: {\n default: null,\n parseHTML: element => element.querySelector(\"img\")?.getAttribute(\"src\"),\n },\n\n alt: {\n default: \"image\",\n parseHTML: element =>\n element.querySelector(\"img\")?.getAttribute(\"alt\") || \"image\",\n },\n\n figheight: {\n default: \"auto\",\n parseHTML: element =>\n element.querySelector(\"img\")?.getAttribute(\"figheight\"),\n },\n\n figwidth: {\n default: 500,\n parseHTML: element =>\n element.querySelector(\"img\")?.getAttribute(\"figwidth\"),\n },\n\n align: {\n default: \"left\",\n parseHTML: element =>\n element.querySelector(\"img\")?.getAttribute(\"align\"),\n },\n\n border: {\n default: true,\n parseHTML: element =>\n element.querySelector(\"img\")?.getAttribute(\"data-border\") === \"true\",\n },\n };\n },\n\n parseHTML() {\n return [{ tag: \"figure\" }];\n },\n\n renderHTML({ node, HTMLAttributes }) {\n const { align, src, figheight, figwidth, border } = node.attrs;\n\n if (!src) return [\"span\"];\n\n const openImageInNewTab = this.options.openImageInNewTab;\n\n const wrapperDivAttrs = {\n class: classnames(\n \"neeto-editor__image-wrapper\",\n `neeto-editor__image--${align}`,\n { \"neeto-editor__image--bordered\": border }\n ),\n };\n\n const wrapperLinkPointerEventsStyle = openImageInNewTab\n ? \"\"\n : \"pointer-events:none;\";\n\n const heightStyle = figheight === \"auto\" ? \"auto\" : `${figheight}px`;\n const wrapperLinkAttrs = {\n href: src,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n class: \"neeto-editor__image\",\n style: `height:${heightStyle};width:${figwidth}px;display:inline-block;${wrapperLinkPointerEventsStyle}`,\n };\n\n const captionAttrs = { style: `width:${figwidth}px;` };\n\n return [\n \"div\",\n wrapperDivAttrs,\n [\n \"figure\",\n this.options.HTMLAttributes,\n [\n \"a\",\n wrapperLinkAttrs,\n [\n \"img\",\n mergeAttributes(HTMLAttributes, {\n draggable: false,\n contenteditable: false,\n \"data-border\": border,\n }),\n ],\n ],\n [\"figcaption\", captionAttrs, 0],\n ],\n ];\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(ImageComponent);\n },\n\n addCommands() {\n return {\n setFigure:\n ({ caption, ...attrs }) =>\n ({ chain }) =>\n chain()\n .insertContent({\n type: this.name,\n attrs,\n content: caption ? [{ type: \"text\", text: caption }] : [],\n })\n .run(),\n };\n },\n\n addKeyboardShortcuts() {\n return {\n Enter: () => {\n const head = this.editor.state.selection.$head;\n if (head.node().type.name !== \"image\") return false;\n\n const chain = this.editor.chain();\n const tail = head.after();\n\n let nextTextPos = findNextTextPos(this.editor, tail);\n if (nextTextPos < 0) {\n chain.insertContentAt(tail, { type: \"paragraph\", content: \"\" });\n nextTextPos = tail;\n }\n\n chain\n .setTextSelection(nextTextPos + 1) // Node boundary + 1\n .focus()\n .run();\n\n return true;\n },\n // The caption shares its textblock with the non-editable image above it,\n // so the native caret can't move up past the image. Handle it manually.\n ArrowUp: () => {\n const { state, view } = this.editor;\n const { $head, empty } = state.selection;\n if (!empty || $head.parent.type.name !== this.name) return false;\n\n const lineTop = view.coordsAtPos($head.start());\n const caret = view.coordsAtPos($head.pos);\n if (caret.top >= lineTop.bottom) return false; // Not on the first line\n\n const before = $head.before();\n if (before === 0) {\n return this.editor\n .chain()\n .insertContentAt(0, { type: \"paragraph\" })\n .setTextSelection(1)\n .scrollIntoView()\n .run();\n }\n\n const tr = state.tr.setSelection(\n Selection.near(state.doc.resolve(before), -1)\n );\n view.dispatch(tr.scrollIntoView());\n\n return true;\n },\n };\n },\n\n addProseMirrorPlugins() {\n return [\n new Plugin({\n props: {\n handleDOMEvents: {\n paste(view, event) {\n const {\n schema,\n selection: {\n $anchor: { pos },\n },\n } = view.state;\n\n // Microsoft Excel and a few other products might copy content as\n // both `text/plain` and `text/html`. If `text/plain` exists,\n // an early return will ensure that it fallbacks to tiptap's\n // default paste behavior.\n const text = event?.clipboardData?.getData(\"text/plain\");\n const hasFiles = event.clipboardData?.files?.length;\n\n if (!hasFiles) return;\n\n if (hasFiles && text) {\n event.preventDefault();\n const plainText =\n new DOMParser().parseFromString(text, \"text/html\").body\n .textContent ?? \"\";\n view.pasteText(plainText);\n\n return;\n }\n\n const images = Array.from(event.clipboardData.files).filter(\n file => /image/i.test(file.type)\n );\n\n if (isEmpty(images)) return;\n\n event.preventDefault();\n\n const currentPos = pos;\n\n images.forEach(async image => {\n let emptyImageNode;\n const id = Math.random().toString(36).substring(7);\n try {\n emptyImageNode = schema.nodes.image.create({\n id,\n src: \"\",\n alt: t(\"neetoEditor.attachments.uploading\"),\n });\n\n const tr = view.state.tr\n .insert(currentPos, emptyImageNode)\n .setMeta(\"addToHistory\", false);\n view.dispatch(tr);\n\n const url = await upload(image, DIRECT_UPLOAD_ENDPOINT);\n if (url) {\n const imageNode = schema.nodes.image.create({\n id,\n src: url,\n alt: \"image\",\n });\n\n const { tr, doc } = view.state;\n let nodePos = -1;\n doc.descendants((node, pos) => {\n if (node.type.name === \"image\" && node.attrs.id === id) {\n nodePos = pos;\n\n return false;\n }\n\n return true;\n });\n\n if (nodePos !== -1) {\n tr.replaceWith(\n nodePos,\n nodePos + emptyImageNode.nodeSize,\n imageNode\n ).setMeta(\"addToHistory\", false);\n view.dispatch(tr);\n }\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Failed to insert the image\", error);\n\n const doc = view.state.doc;\n const tr = view.state.tr;\n doc.descendants((node, pos) => {\n if (node.type.name === \"image\" && node.attrs.id === id) {\n tr.delete(pos, pos + emptyImageNode.nodeSize).setMeta(\n \"addToHistory\",\n false\n );\n\n return false;\n }\n\n return true;\n });\n view.dispatch(tr);\n\n if (error.message === LARGE_IMAGE_ERROR) {\n Toastr.error(\n t(\"neetoEditor.error.imageSizeIsShouldBeLess\", {\n limit: globalProps.endUserUploadedFileSizeLimitInMb,\n })\n );\n } else {\n Toastr.error(t(\"neetoEditor.error.imageUploadFailed\"));\n }\n }\n });\n },\n },\n },\n }),\n ];\n },\n});\n","import { mergeAttributes, Node } from \"@tiptap/core\";\n\nexport default Node.create({\n name: \"figcaption\",\n\n content: \"text*\",\n\n selectable: false,\n\n draggable: false,\n\n parseHTML() {\n return [{ tag: \"figcaption\" }];\n },\n\n renderHTML({ HTMLAttributes }) {\n return [\"figcaption\", mergeAttributes(HTMLAttributes), 0];\n },\n});\n","import Italic from \"@tiptap/extension-italic\";\n\nexport default Italic.extend({\n addInputRules() {\n return [];\n },\n addPasteRules() {\n return [];\n },\n});\n","import { Extension } from \"@tiptap/core\";\n\nconst KeyboardShortcuts = ({ onSubmit, shortcuts, isBlockQuoteActive }) =>\n Extension.create({\n name: \"keyboard-shortcuts\",\n\n addKeyboardShortcuts() {\n return {\n \"Mod-Enter\": () => {\n onSubmit?.(this.editor.getHTML());\n\n return true;\n },\n \"Mod-Shift-b\": () => {\n if (isBlockQuoteActive) {\n this.editor.chain().focus().toggleBlockquote().run();\n\n return true;\n }\n\n return false;\n },\n ...shortcuts,\n };\n },\n });\n\nexport default {\n configure: ({ onSubmit, shortcuts, isBlockQuoteActive }) =>\n KeyboardShortcuts({ onSubmit, shortcuts, isBlockQuoteActive }),\n};\n","export const LINK_MARKDOWN_INPUT_REGEX =\n /(?:^|\\s)\\[([^\\]]*)?\\]\\((\\S+)(?: [\"“](.+)[\"”])?\\)$/i;\n","import { InputRule, markInputRule, mergeAttributes } from \"@tiptap/core\";\nimport { Link } from \"@tiptap/extension-link\";\nimport { Fragment, Slice } from \"@tiptap/pm/model\";\nimport { Plugin } from \"@tiptap/pm/state\";\n\nimport { LINK_MARKDOWN_INPUT_REGEX } from \"./constants\";\n\nconst linkInputRule = config => {\n const defaultMarkInputRule = markInputRule(config);\n\n return new InputRule({\n find: config.find,\n handler(props) {\n try {\n const { tr } = props.state;\n defaultMarkInputRule.handler(props);\n tr.setMeta(\"preventAutolink\", true);\n } catch (error) {\n // https://app.honeybadger.io/projects/94805/faults/108936285\n if (!(error instanceof RangeError)) throw error;\n }\n },\n });\n};\n\n// TipTap's paste handler links the selected text only when the pasted text is\n// exactly a URL, so a URL copied with surrounding whitespace replaces the\n// selection instead. Hand it a trimmed copy of the pasted text.\nconst withTrimmedLinkPaste = plugin => {\n const { handlePaste } = plugin.props;\n\n return new Plugin({\n ...plugin.spec,\n props: {\n ...plugin.props,\n handlePaste: (view, event, slice) => {\n let textContent = \"\";\n slice.content.forEach(node => {\n textContent += node.textContent;\n });\n const trimmedText = textContent.trim();\n\n if (!trimmedText || trimmedText === textContent) {\n return handlePaste(view, event, slice);\n }\n\n const trimmedSlice = new Slice(\n Fragment.from(view.state.schema.text(trimmedText)),\n 0,\n 0\n );\n\n return handlePaste(view, event, trimmedSlice);\n },\n },\n });\n};\n\nexport default Link.extend({\n inclusive: false,\n addAttributes() {\n return {\n ...this.parent?.(),\n title: { default: null },\n \"data-neeto-kb-article\": {\n default: null,\n parseHTML: element => element.getAttribute(\"data-neeto-kb-article\"),\n renderHTML: attributes =>\n attributes[\"data-neeto-kb-article\"]\n ? { \"data-neeto-kb-article\": attributes[\"data-neeto-kb-article\"] }\n : {},\n },\n \"data-article-id\": {\n default: null,\n parseHTML: element => element.getAttribute(\"data-article-id\"),\n renderHTML: attributes =>\n attributes[\"data-article-id\"]\n ? { \"data-article-id\": attributes[\"data-article-id\"] }\n : {},\n },\n \"data-article-deleted\": {\n default: null,\n parseHTML: element => element.getAttribute(\"data-article-deleted\"),\n renderHTML: attributes =>\n attributes[\"data-article-deleted\"]\n ? { \"data-article-deleted\": attributes[\"data-article-deleted\"] }\n : {},\n },\n };\n },\n\n parseHTML() {\n return [\n {\n tag: 'a[href]:not([data-type=\"button\"]):not([href *= \"javascript:\" i])',\n },\n ];\n },\n renderHTML({ HTMLAttributes }) {\n return [\n \"a\",\n mergeAttributes(this.options.HTMLAttributes, HTMLAttributes, {\n class: \"link\",\n }),\n 0,\n ];\n },\n\n addProseMirrorPlugins() {\n // Match on the handlePaste prop rather than TipTap's internal plugin key;\n // the paste handler is the only Link plugin that handles pastes.\n return (this.parent?.() ?? []).map(plugin =>\n plugin.props.handlePaste ? withTrimmedLinkPaste(plugin) : plugin\n );\n },\n\n addInputRules() {\n return [\n linkInputRule({\n find: LINK_MARKDOWN_INPUT_REGEX,\n type: this.type,\n getAttributes(match) {\n return {\n title: match.pop()?.trim(),\n href: match.pop()?.trim(),\n };\n },\n }),\n ];\n },\n});\n","import React from \"react\";\n\nimport { Avatar, Typography } from \"@bigbinary/neeto-atoms\";\nimport classNames from \"classnames\";\nimport { t } from \"i18next\";\nimport { isEmpty } from \"ramda\";\n\nimport { scrollHandler } from \"utils/scrollhandler\";\n\nexport class MentionList extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = { selectedIndex: 0 };\n this.mentionRef = React.createRef();\n }\n\n componentDidUpdate(prevProps) {\n const { items } = this.props;\n if (items !== prevProps.items) {\n this.setState({ selectedIndex: 0 });\n }\n\n scrollHandler({\n wrapperRef: this.mentionRef,\n index: this.state.selectedIndex,\n });\n }\n\n selectItem = index => {\n const { items, command } = this.props;\n const item = items[index];\n\n if (item) {\n command({ label: item.name, id: item.key });\n }\n };\n\n upHandler = () => {\n const { items } = this.props;\n this.setState(prevState => {\n const { selectedIndex } = prevState;\n const nextSelectedIndex =\n (selectedIndex + items.length - 1) % items.length;\n\n return { selectedIndex: nextSelectedIndex };\n });\n };\n\n downHandler = () => {\n const { items } = this.props;\n this.setState(prevState => {\n const { selectedIndex } = prevState;\n const nextSelectedIndex = (selectedIndex + 1) % items.length;\n\n return { selectedIndex: nextSelectedIndex };\n });\n };\n\n enterHandler = () => {\n const { selectedIndex } = this.state;\n this.selectItem(selectedIndex);\n };\n\n tabHandler = () => {\n const { selectedIndex } = this.state;\n this.selectItem(selectedIndex);\n };\n\n onKeyDown = ({ event }) => {\n const keyDownHandlers = {\n ArrowUp: this.upHandler,\n ArrowDown: this.downHandler,\n Enter: this.enterHandler,\n Tab: this.tabHandler,\n };\n\n if (Object.prototype.hasOwnProperty.call(keyDownHandlers, event.key)) {\n keyDownHandlers[event.key]();\n\n return true;\n }\n\n return false;\n };\n\n render() {\n const { selectedIndex } = this.state;\n const { items } = this.props;\n\n if (isEmpty(items)) {\n return (\n <div className=\"neeto-editor-mentions__wrapper\">\n <p className=\"neeto-editor-mentions__item\">\n {t(\"neetoEditor.error.noResults\")}\n </p>\n </div>\n );\n }\n\n // Plain <button>s instead of `DropdownMenu.MenuItem`. The popup is portaled\n // into document.body by tippy, so it sits outside any `DropdownMenu` Root\n // — Radix's `MenuItem` would call `useMenuScope` and throw\n // \"MenuItem must be used within Menu\". Styling lives in _v2-toolbar.scss\n // under `.neeto-editor-mentions__wrapper` / `__item`.\n return (\n <div\n className=\"neeto-editor-mentions__wrapper\"\n data-testid=\"neeto-editor-mention-list\"\n ref={this.mentionRef}\n >\n {items.map(({ key, name, imageUrl }, index) => (\n <button\n data-testid={`neeto-editor-mention-list-${name}`}\n key={key}\n type=\"button\"\n className={classNames(\"neeto-editor-mentions__item\", {\n active: index === selectedIndex,\n })}\n onClick={() => this.selectItem(index)}\n >\n <Avatar size=\"sm\" user={{ name, imageUrl }} />\n <Typography variant=\"body2\">{name}</Typography>\n </button>\n ))}\n </div>\n );\n }\n}\n","export const createMentionSuggestions =\n (mentions = []) =>\n ({ query = \"\" }) => {\n if (!query) {\n return mentions.slice(0, 10);\n }\n\n return mentions\n .filter(mention =>\n mention.name\n .replace(/\\s/g, \"\")\n .toLowerCase()\n .includes(query.trim().toLowerCase())\n )\n .slice(0, 10);\n };\n","import Mention from \"@tiptap/extension-mention\";\nimport { ReactRenderer } from \"@tiptap/react\";\nimport tippy from \"tippy.js\";\n\nimport { getSuggestionAppendTo } from \"src/v2/components/Editor/utils\";\n\nimport { MentionList } from \"./MentionList\";\nimport { createMentionSuggestions } from \"./utils\";\n\nconst suggestion = {\n render: () => {\n let reactRenderer;\n let popup;\n\n return {\n onStart: props => {\n reactRenderer = new ReactRenderer(MentionList, {\n props,\n editor: props.editor,\n });\n\n popup = tippy(\"body\", {\n theme: \"light neeto-editor-mentions-tooltip\",\n getReferenceClientRect: props.clientRect,\n appendTo: getSuggestionAppendTo(props.editor),\n content: reactRenderer.element,\n showOnCreate: true,\n interactive: true,\n trigger: \"manual\",\n placement: \"bottom-start\",\n zIndex: 99999,\n arrow: false,\n });\n },\n\n onUpdate(props) {\n reactRenderer.updateProps(props);\n\n popup[0].setProps({\n getReferenceClientRect: props.clientRect,\n });\n },\n\n onKeyDown(props) {\n if (props.event.key === \"Escape\") {\n popup[0].hide();\n\n return true;\n }\n\n return reactRenderer.ref?.onKeyDown(props);\n },\n\n onExit() {\n popup?.[0]?.destroy();\n reactRenderer?.destroy();\n },\n };\n },\n};\n\nconst Mentions = Mention.extend({\n addCommands() {\n return {\n setMention:\n ({ id, label }) =>\n ({ chain }) => {\n chain()\n .focus()\n .insertContent([\n { type: this.name, attrs: { id, label } },\n { type: \"text\", text: \" \" },\n ])\n .run();\n },\n };\n },\n});\n\nexport default {\n configure: ({ suggestion: suggestionConfig = {}, ...otherConfig }) =>\n Mentions.configure({\n ...otherConfig,\n suggestion: { ...suggestion, ...suggestionConfig },\n }),\n};\n\nexport { createMentionSuggestions };\n","import { OrderedList } from \"@tiptap/extension-list\";\n\nexport default OrderedList.configure({\n HTMLAttributes: { class: \"orderedList\" },\n itemTypeName: \"listItem\",\n});\n","import { Extension } from \"@tiptap/core\";\nimport { Plugin } from \"@tiptap/pm/state\";\nimport { Decoration, DecorationSet } from \"@tiptap/pm/view\";\nimport { t } from \"i18next\";\n\nconst Placeholder = Extension.create({\n name: \"placeholder\",\n\n addOptions() {\n return {\n excludeNodeTypes: [\"variable\", \"codeBlock\"],\n emptyEditorClass: \"is-editor-empty\",\n emptyNodeClass: \"is-empty\",\n placeholder: t(\"neetoEditor.placeholders.writeSomething\"),\n slashCommandsPlaceholder: t(\n \"neetoEditor.placeholders.typeSlashForCommands\"\n ),\n showOnlyWhenEditable: true,\n showOnlyCurrent: false,\n includeChildren: false,\n };\n },\n\n addProseMirrorPlugins() {\n return [\n new Plugin({\n props: {\n decorations: ({ doc, selection }) => {\n const active =\n this.editor.isEditable || !this.options.showOnlyWhenEditable;\n const { anchor } = selection;\n const decorations = [];\n\n if (!active) {\n return null;\n }\n\n doc.descendants((node, pos) => {\n const hasAnchor = anchor >= pos && anchor <= pos + node.nodeSize;\n const isEmpty = !node.isLeaf && !node.childCount;\n\n const isExcluded = this.options.excludeNodeTypes.includes(\n node.type.name\n );\n\n if (\n (hasAnchor || !this.options.showOnlyCurrent) &&\n !isExcluded &&\n isEmpty\n ) {\n const classes = [this.options.emptyNodeClass];\n\n let placeholderText = this.options.placeholder;\n\n if (this.editor.isEmpty) {\n classes.push(this.options.emptyEditorClass);\n\n if (\n this.options.isSlashCommandsActive &&\n !this.options.placeholder\n ) {\n classes.push(\"is-slash-command-placeholder\");\n placeholderText = this.options.slashCommandsPlaceholder;\n }\n } else if (\n hasAnchor &&\n this.editor.isFocused &&\n this.options.isSlashCommandsActive &&\n node.type.name === \"paragraph\"\n ) {\n classes.push(\"is-current-slash-placeholder\");\n classes.push(\"is-slash-command-placeholder\");\n placeholderText = this.options.slashCommandsPlaceholder;\n }\n\n const decoration = Decoration.node(pos, pos + node.nodeSize, {\n class: classes.join(\" \"),\n \"data-placeholder\": placeholderText,\n });\n decorations.push(decoration);\n }\n\n return this.options.includeChildren;\n });\n\n return DecorationSet.create(doc, decorations);\n },\n },\n }),\n ];\n },\n});\n\nexport default Placeholder;\n","import Document from \"@tiptap/extension-document\";\nimport { Plugin, PluginKey } from \"@tiptap/pm/state\";\nimport { Decoration, DecorationSet } from \"@tiptap/pm/view\";\n\nexport default Document.extend({\n name: \"selectionDecorator\",\n addProseMirrorPlugins() {\n const { editor } = this;\n\n return [\n new Plugin({\n key: new PluginKey(\"selectionDecorator\"),\n state: {\n init() {\n return {\n decorations: DecorationSet.empty,\n selectedTextDecoration: null,\n };\n },\n apply(tr, oldState) {\n const { doc, selection } = tr;\n let { decorations, selectedTextDecoration } = oldState;\n\n if (selectedTextDecoration) {\n decorations = decorations.remove([selectedTextDecoration]);\n }\n\n if (!selection.empty) {\n selectedTextDecoration = Decoration.inline(\n selection.from,\n selection.to,\n { class: \"selected-text\" }\n );\n decorations = decorations.add(doc, [selectedTextDecoration]);\n } else {\n selectedTextDecoration = null;\n }\n\n return { decorations, selectedTextDecoration };\n },\n },\n props: {\n decorations(state) {\n if (editor.isFocused) return DecorationSet.empty;\n\n return this.getState(state).decorations;\n },\n },\n }),\n ];\n },\n});\n","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import { t } from \"i18next\";\nimport { noop } from \"neetocist\";\nimport {\n TextP,\n TextH1,\n TextH2,\n TextH3,\n TextH4,\n TextH5,\n ListDot,\n ListNumber,\n Checkbox,\n Blockquote,\n ImageUpload,\n CodeBlock,\n Smiley,\n Minus,\n Video,\n Notes,\n Column,\n TextBold,\n TextItalic,\n Underline,\n Link,\n Attachment,\n MessageSquare,\n File,\n} from \"neetoicons\";\n\nimport { EDITOR_OPTIONS } from \"common/constants\";\n\nexport const MENU_ITEMS = [\n {\n optionName: EDITOR_OPTIONS.PARAGRAPH,\n title: t(\"neetoEditor.menu.normalText\"),\n description: t(\"neetoEditor.menu.normalTextDescription\"),\n Icon: TextP,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).setNode(\"paragraph\").run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.BOLD,\n title: t(\"neetoEditor.menu.bold\"),\n description: t(\"neetoEditor.menu.boldDescription\"),\n Icon: TextBold,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).toggleBold().run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.ITALIC,\n title: t(\"neetoEditor.menu.italic\"),\n description: t(\"neetoEditor.menu.italicDescription\"),\n Icon: TextItalic,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).toggleItalic().run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.UNDERLINE,\n title: t(\"neetoEditor.menu.underline\"),\n description: t(\"neetoEditor.menu.underlineDescription\"),\n Icon: Underline,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).toggleUnderline().run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.H1,\n title: t(\"neetoEditor.menu.heading1\"),\n description: t(\"neetoEditor.menu.h1Description\"),\n Icon: TextH1,\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setNode(\"heading\", { level: 1 })\n .run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.H2,\n title: t(\"neetoEditor.menu.heading2\"),\n description: t(\"neetoEditor.menu.h2Description\"),\n Icon: TextH2,\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setNode(\"heading\", { level: 2 })\n .run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.H3,\n title: t(\"neetoEditor.menu.heading3\"),\n description: t(\"neetoEditor.menu.h3Description\"),\n Icon: TextH3,\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setNode(\"heading\", { level: 3 })\n .run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.H4,\n title: t(\"neetoEditor.menu.heading4\"),\n description: t(\"neetoEditor.menu.h4Description\"),\n Icon: TextH4,\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setNode(\"heading\", { level: 4 })\n .run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.H5,\n title: t(\"neetoEditor.menu.heading5\"),\n description: t(\"neetoEditor.menu.h5Description\"),\n Icon: TextH5,\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setNode(\"heading\", { level: 5 })\n .run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.LIST_ORDERED,\n title: t(\"neetoEditor.menu.numberedList\"),\n description: t(\"neetoEditor.menu.numberedListDescription\"),\n Icon: ListNumber,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).toggleOrderedList().run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.LIST_BULLETS,\n title: t(\"neetoEditor.menu.bulletList\"),\n description: t(\"neetoEditor.menu.bulletListDescription\"),\n Icon: ListDot,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).toggleBulletList().run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.LINK,\n title: t(\"neetoEditor.menu.link\"),\n description: t(\"neetoEditor.menu.linkDescription\"),\n Icon: Link,\n command: noop,\n },\n {\n optionName: EDITOR_OPTIONS.NEETO_KB_ARTICLE,\n title: t(\"neetoEditor.menu.linkToNeetoKbArticle\"),\n description: t(\"neetoEditor.menu.linkToNeetoKbArticleDescription\"),\n Icon: File,\n command: noop,\n },\n {\n optionName: EDITOR_OPTIONS.ATTACHMENTS,\n title: t(\"neetoEditor.menu.file\"),\n description: t(\"neetoEditor.menu.attachmentsDescription\"),\n Icon: Attachment,\n command: noop,\n },\n {\n optionName: EDITOR_OPTIONS.TODO_LIST,\n title: t(\"neetoEditor.menu.todoList\"),\n description: t(\"neetoEditor.menu.todoListDescription\"),\n Icon: Checkbox,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).toggleTaskList().run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.IMAGE_UPLOAD,\n title: t(\"neetoEditor.menu.image\"),\n description: t(\"neetoEditor.menu.imageDescription\"),\n Icon: ImageUpload,\n command: noop,\n },\n {\n optionName: EDITOR_OPTIONS.VIDEO_UPLOAD,\n title: t(\"neetoEditor.menu.video\"),\n description: t(\"neetoEditor.menu.videoDescription\"),\n Icon: Video,\n command: noop,\n },\n {\n optionName: EDITOR_OPTIONS.BLOCKQUOTE,\n title: t(\"neetoEditor.menu.blockQuote\"),\n description: t(\"neetoEditor.menu.blockQuoteDescription\"),\n Icon: Blockquote,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).toggleBlockquote().run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.CODE_BLOCK,\n title: t(\"neetoEditor.menu.codeBlock\"),\n description: t(\"neetoEditor.menu.codeDescription\"),\n Icon: CodeBlock,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).toggleCodeBlock().run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.EMOJI,\n title: t(\"neetoEditor.menu.emoji\"),\n description: t(\"neetoEditor.menu.emojiDescription\"),\n Icon: Smiley,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).insertContent(\"::\").run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.DIVIDER,\n title: t(\"neetoEditor.menu.divider\"),\n description: t(\"neetoEditor.menu.dividerDescription\"),\n Icon: Minus,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).setHorizontalRule().run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.PASTE_UNFORMATTED,\n title: t(\"neetoEditor.menu.pasteUnformatted\"),\n description: t(\"neetoEditor.menu.pasteUnformattedDescription\"),\n Icon: Notes,\n command: ({ editor, range }) =>\n editor.chain().focus().deleteRange(range).pasteUnformatted().run(),\n },\n {\n optionName: EDITOR_OPTIONS.TABLE,\n title: t(\"neetoEditor.menu.table\"),\n description: t(\"neetoEditor.menu.tableDescription\"),\n Icon: Column,\n command: ({ editor, range }) =>\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .insertTable({ rows: 3, cols: 3, withHeaderRow: true })\n .run(),\n },\n {\n optionName: EDITOR_OPTIONS.CALLOUT,\n title: t(\"neetoEditor.menu.callout\"),\n description: t(\"neetoEditor.menu.calloutDescription\"),\n Icon: MessageSquare,\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setCallout({ type: \"default\" })\n .run();\n },\n items: [\n {\n optionName: `${EDITOR_OPTIONS.CALLOUT}_default`,\n title: t(\"neetoEditor.menu.calloutDefault\"),\n description: t(\"neetoEditor.menu.calloutDescription\"),\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setCallout({ type: \"default\" })\n .run();\n },\n },\n {\n optionName: `${EDITOR_OPTIONS.CALLOUT}_info`,\n title: t(\"neetoEditor.menu.calloutInfo\"),\n description: t(\"neetoEditor.menu.calloutDescription\"),\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setCallout({ type: \"info\" })\n .run();\n },\n },\n {\n optionName: `${EDITOR_OPTIONS.CALLOUT}_warning`,\n title: t(\"neetoEditor.menu.calloutWarning\"),\n description: t(\"neetoEditor.menu.calloutDescription\"),\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setCallout({ type: \"warning\" })\n .run();\n },\n },\n {\n optionName: `${EDITOR_OPTIONS.CALLOUT}_error`,\n title: t(\"neetoEditor.menu.calloutError\"),\n description: t(\"neetoEditor.menu.calloutDescription\"),\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setCallout({ type: \"error\" })\n .run();\n },\n },\n {\n optionName: `${EDITOR_OPTIONS.CALLOUT}_success`,\n title: t(\"neetoEditor.menu.calloutSuccess\"),\n description: t(\"neetoEditor.menu.calloutDescription\"),\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setCallout({ type: \"success\" })\n .run();\n },\n },\n ],\n },\n];\n\nexport const NO_RESULT_MENU_ITEM = {\n title: t(\"neetoEditor.menu.noResults\"),\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).run();\n },\n};\n\nexport const MENU_MAX_HEIGHT = 384;\n\nexport const MENU_BOUNDARY_PADDING = 8;\n\nexport const MENU_MAX_HEIGHT_CSS_VARIABLE =\n \"--neeto-editor-slash-commands-max-height\";\n","import { detectOverflow } from \"@popperjs/core\";\nimport { assoc } from \"ramda\";\n\nimport { EDITOR_OPTIONS } from \"common/constants\";\n\nimport {\n MENU_BOUNDARY_PADDING,\n MENU_ITEMS,\n MENU_MAX_HEIGHT,\n MENU_MAX_HEIGHT_CSS_VARIABLE,\n} from \"./constants\";\n\nconst imageCommand =\n setMediaUploader =>\n ({ editor, range }) => {\n setMediaUploader(assoc(\"image\", true));\n editor.chain().focus().deleteRange(range).run();\n };\n\nconst videoCommand =\n setMediaUploader =>\n ({ editor, range }) => {\n setMediaUploader(assoc(\"video\", true));\n editor.chain().focus().deleteRange(range).run();\n };\n\nconst linkCommand =\n setIsAddLinkActive =>\n ({ editor, range }) => {\n setIsAddLinkActive(true);\n editor.chain().focus().deleteRange(range).run();\n };\n\nconst attachmentCommand =\n attachmentProps =>\n ({ editor, range }) => {\n attachmentProps?.handleUploadAttachments();\n editor.chain().focus().deleteRange(range).run();\n };\n\nconst neetoKbArticleCommand =\n setIsNeetoKbArticleActive =>\n ({ editor, range }) => {\n // Get cursor position for positioning the modal\n const cursorPos = editor.view.coordsAtPos(range.from);\n setIsNeetoKbArticleActive({\n active: true,\n editor,\n range,\n cursorPos,\n });\n editor.chain().focus().deleteRange(range).run();\n };\n\nconst getOppositePlacement = placement =>\n placement.replace(/^(top|bottom)/, side =>\n side === \"top\" ? \"bottom\" : \"top\"\n );\n\nconst getOffsetDistance = (state, placement) =>\n Math.abs(state.modifiersData.offset?.[placement]?.y ?? 0);\n\nexport const buildCommandItems = ({\n options,\n addonCommands,\n setMediaUploader,\n setIsAddLinkActive,\n attachmentProps,\n setIsNeetoKbArticleActive,\n}) => {\n const commandItems = MENU_ITEMS.map(item => {\n if (item.optionName === EDITOR_OPTIONS.IMAGE_UPLOAD) {\n return assoc(\"command\", imageCommand(setMediaUploader), item);\n } else if (item.optionName === EDITOR_OPTIONS.VIDEO_UPLOAD) {\n return assoc(\"command\", videoCommand(setMediaUploader), item);\n } else if (item.optionName === EDITOR_OPTIONS.LINK) {\n return assoc(\"command\", linkCommand(setIsAddLinkActive), item);\n } else if (item.optionName === EDITOR_OPTIONS.ATTACHMENTS) {\n return assoc(\"command\", attachmentCommand(attachmentProps), item);\n } else if (item.optionName === EDITOR_OPTIONS.NEETO_KB_ARTICLE) {\n return assoc(\n \"command\",\n neetoKbArticleCommand(setIsNeetoKbArticleActive),\n item\n );\n }\n\n return item;\n });\n\n const permittedCommandItems = commandItems.filter(({ optionName }) =>\n options.includes(optionName)\n );\n\n const adddonCommandItems = addonCommands.map(command => ({\n ...command,\n title: command.label,\n Icon: command.icon,\n }));\n\n return [...permittedCommandItems, ...adddonCommandItems];\n};\n\n// Replaces Popper's flip for the slash commands menu. When the menu fits on\n// neither side, flip keeps the preferred side and lets the menu overflow, so on\n// short screens it gets cut off. Here we pick the side with more room instead\n// and cap the menu's height to the space available on that side.\nexport const fitToAvailableHeight = {\n name: \"fitToAvailableHeight\",\n enabled: true,\n phase: \"main\",\n requiresIfExists: [\"offset\"],\n fn: ({ state, name }) => {\n if (state.modifiersData[name]._skip) return;\n\n const menu = state.elements.popper.querySelector(\n \".neeto-editor-slash-commands__wrapper\"\n );\n if (!menu) return;\n\n const { top, bottom } = detectOverflow(state, {\n elementContext: \"reference\",\n altBoundary: true,\n padding: MENU_BOUNDARY_PADDING,\n });\n const isVertical = /^(top|bottom)/.test(state.placement);\n const menuChromeHeight = state.rects.popper.height - menu.offsetHeight;\n const menuContentHeight = Math.min(menu.scrollHeight, MENU_MAX_HEIGHT);\n\n let placement = state.placement;\n let availableHeight = state.rects.reference.height - top - bottom;\n\n if (isVertical) {\n const preferredPlacement = state.options.placement;\n const oppositePlacement = getOppositePlacement(preferredPlacement);\n const getSpace = candidatePlacement =>\n (candidatePlacement.startsWith(\"top\") ? -top : -bottom) -\n getOffsetDistance(state, candidatePlacement);\n\n const preferredSpace = getSpace(preferredPlacement);\n const oppositeSpace = getSpace(oppositePlacement);\n const menuHeight = menuChromeHeight + menuContentHeight;\n const shouldUseOpposite =\n menuHeight > preferredSpace &&\n (menuHeight <= oppositeSpace || oppositeSpace > preferredSpace);\n\n placement = shouldUseOpposite ? oppositePlacement : preferredPlacement;\n availableHeight = shouldUseOpposite ? oppositeSpace : preferredSpace;\n }\n\n const menuMaxHeight = Math.max(\n Math.floor(availableHeight - menuChromeHeight),\n 0\n );\n\n state.elements.popper.style.setProperty(\n MENU_MAX_HEIGHT_CSS_VARIABLE,\n `${menuMaxHeight}px`\n );\n\n const popperHeight =\n menuChromeHeight + Math.min(menuContentHeight, menuMaxHeight);\n if (\n placement === state.placement &&\n popperHeight === state.rects.popper.height\n ) {\n return;\n }\n\n state.modifiersData[name]._skip = true;\n state.placement = placement;\n state.rects.popper = { ...state.rects.popper, height: popperHeight };\n state.reset = true;\n },\n};\n","import React, { forwardRef } from \"react\";\n\nimport Tippy from \"@tippyjs/react\";\nimport classnames from \"classnames\";\nimport { isNotPresent } from \"neetocist\";\n\nimport { scrollHandler } from \"utils/scrollhandler\";\n\nimport { fitToAvailableHeight } from \"./utils\";\n\nclass Menu extends React.Component {\n constructor(props) {\n super(props);\n this.state = { selectedIndex: 0 };\n this.menuRef = React.createRef();\n }\n\n componentDidMount() {\n const { menuIndex, activeMenuIndex } = this.props;\n const isCurrentMenuActive = menuIndex === activeMenuIndex;\n if (isCurrentMenuActive) {\n document.addEventListener(\"keydown\", this.keydownHandler);\n }\n }\n\n componentWillUnmount() {\n document.removeEventListener(\"keydown\", this.keydownHandler);\n }\n\n componentDidUpdate(oldProps) {\n const { items, menuIndex, activeMenuIndex } = this.props;\n const isCurrentMenuActive = menuIndex === activeMenuIndex;\n\n if (items !== oldProps.items) this.setState({ selectedIndex: 0 });\n\n scrollHandler({\n wrapperRef: this.menuRef,\n index: this.state.selectedIndex,\n });\n\n if (isCurrentMenuActive) {\n document.addEventListener(\"keydown\", this.keydownHandler);\n } else document.removeEventListener(\"keydown\", this.keydownHandler);\n }\n\n keydownHandler = event => {\n const listeners = {\n Enter: this.enterHandler,\n ArrowUp: this.upHandler,\n ArrowDown: this.downHandler,\n ArrowLeft: this.leftArrowHandler,\n ArrowRight: this.rightArrowHandler,\n };\n\n if (event.key in listeners) listeners[event.key](event);\n };\n\n selectItem = index => {\n const { items, editor, range } = this.props;\n const selectedItem = items[index];\n const hasCommand = selectedItem && selectedItem.command;\n if (hasCommand) selectedItem.command({ editor, range });\n };\n\n upHandler = () => {\n const { items } = this.props;\n const { selectedIndex } = this.state;\n this.setState({\n selectedIndex: (selectedIndex + items.length - 1) % items.length,\n });\n };\n\n downHandler = () => {\n const { items } = this.props;\n const { selectedIndex } = this.state;\n this.setState({ selectedIndex: (selectedIndex + 1) % items.length });\n };\n\n enterHandler = () => {\n const { selectedIndex } = this.state;\n this.selectItem(selectedIndex);\n };\n\n leftArrowHandler = () => {\n const { menuIndex, setActiveMenuIndex } = this.props;\n if (menuIndex > 0) setActiveMenuIndex(menuIndex - 1);\n };\n\n rightArrowHandler = () => {\n const { menuIndex, setActiveMenuIndex, items } = this.props;\n const { selectedIndex } = this.state;\n const selectedItem = items[selectedIndex];\n const hasSubItems = selectedItem && !isNotPresent(selectedItem.items);\n if (hasSubItems) setActiveMenuIndex(menuIndex + 1);\n };\n\n render() {\n const { items, menuIndex, activeMenuIndex } = this.props;\n const { selectedIndex } = this.state;\n const isCurrentMenuActive = menuIndex === activeMenuIndex;\n\n return (\n <div\n className=\"neeto-editor-slash-commands__wrapper\"\n data-testid=\"neeto-editor-slash-commands-wrapper\"\n ref={this.menuRef}\n >\n {items.map((item, index) => {\n const isLeafNode = isNotPresent(item.items);\n\n const nodeElement = (\n <MenuItem\n {...{ index, item }}\n key={item.optionName}\n selectItem={() => this.selectItem(index)}\n selectedIndex={isCurrentMenuActive ? selectedIndex : -1}\n onHover={() => this.setState({ selectedIndex: index })}\n />\n );\n\n if (isLeafNode) return nodeElement;\n\n return (\n <Tippy\n interactive\n key={item.optionName}\n placement=\"right\"\n popperOptions={{ modifiers: [fitToAvailableHeight] }}\n theme=\"light neeto-editor-slash-commands-tippy\"\n visible={selectedIndex === index}\n content={\n <Menu\n {...this.props}\n items={item.items}\n menuIndex={menuIndex + 1}\n />\n }\n onCreate={({ popper }) => (popper.style.width = \"max-content\")}\n onHide={() => {\n this.isSubmenuOpened = false;\n }}\n onShow={() => {\n this.isSubmenuOpened = true;\n }}\n >\n {nodeElement}\n </Tippy>\n );\n })}\n </div>\n );\n }\n}\n\n// eslint-disable-next-line react/display-name\nconst MenuItem = forwardRef(\n ({ item, selectedIndex, index, selectItem, onHover }, ref) => {\n const { Icon } = item;\n\n return (\n <button\n {...{ ref }}\n data-testid={`neeto-editor-command-list-item-${index}`}\n className={classnames(\"neeto-editor-slash-commands__item\", {\n active: index === selectedIndex,\n })}\n onClick={selectItem}\n onMouseEnter={onHover}\n >\n {Icon && <Icon size={20} />}\n <span className=\"neeto-editor-slash-commands__item-content\">\n <span\n className=\"neeto-editor-slash-commands__item-title\"\n data-testid=\"neeto-editor-command-list-item-block-heading\"\n >\n {item.title}\n </span>\n </span>\n </button>\n );\n }\n);\n\nexport default Menu;\n","import React from \"react\";\n\nimport Menu from \"./Menu\";\n\nclass CommandsList extends React.Component {\n state = { activeMenuIndex: 0 };\n\n onKeyDown = ({ event }) =>\n [\"Enter\", \"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"].includes(\n event.key\n );\n\n setActiveMenuIndex = index => this.setState({ activeMenuIndex: index });\n\n render() {\n return (\n <Menu\n {...this.props}\n activeMenuIndex={this.state.activeMenuIndex}\n items={this.props.items}\n menuIndex={0}\n setActiveMenuIndex={this.setActiveMenuIndex}\n />\n );\n }\n}\n\nexport default CommandsList;\n","import { Extension } from \"@tiptap/core\";\nimport { PluginKey } from \"@tiptap/pm/state\";\nimport { ReactRenderer } from \"@tiptap/react\";\nimport Suggestion from \"@tiptap/suggestion\";\nimport { isEmpty } from \"ramda\";\nimport tippy from \"tippy.js\";\n\nimport { getSuggestionAppendTo } from \"src/v2/components/Editor/utils\";\nimport {\n highlightFocussedNode,\n resetFocussedNode,\n} from \"utils/focusHighlighter\";\nimport { fuzzySearch } from \"utils/fuzzySearch\";\n\nimport CommandsList from \"./CommandsList\";\nimport { NO_RESULT_MENU_ITEM } from \"./constants\";\nimport { buildCommandItems, fitToAvailableHeight } from \"./utils\";\n\nconst CommandsPluginKey = new PluginKey(\"commands\");\n\nexport default {\n configure: ({\n addonCommands,\n options,\n setMediaUploader,\n setIsAddLinkActive,\n attachmentProps,\n setIsNeetoKbArticleActive,\n }) => {\n const commandItems = buildCommandItems({\n options,\n addonCommands,\n setMediaUploader,\n setIsAddLinkActive,\n attachmentProps,\n setIsNeetoKbArticleActive,\n });\n\n return Extension.create({\n name: \"slash-commands\",\n\n addOptions() {\n return {\n HTMLAttributes: { class: \"commands\" },\n suggestion: {\n char: \"/\",\n startOfLine: false,\n pluginKey: CommandsPluginKey,\n command: ({ editor, range, props }) => {\n props.command({ editor, range });\n },\n\n items: ({ query }) => {\n if (!query) return commandItems;\n const filteredItems = fuzzySearch(commandItems, query);\n\n return isEmpty(filteredItems)\n ? [NO_RESULT_MENU_ITEM]\n : filteredItems;\n },\n\n render: () => {\n let reactRenderer;\n let popup;\n\n return {\n onStart: props => {\n if (\n props.editor.isActive(\"image\") ||\n props.editor.isActive(\"codeBlock\")\n ) {\n return;\n }\n\n reactRenderer = new ReactRenderer(CommandsList, {\n props,\n editor: props.editor,\n });\n\n popup = tippy(\"body\", {\n getReferenceClientRect: props.clientRect,\n appendTo: getSuggestionAppendTo(props.editor),\n content: reactRenderer.element,\n showOnCreate: true,\n interactive: true,\n trigger: \"manual\",\n placement: \"bottom-start\",\n arrow: false,\n zIndex: 99999,\n role: \"dropdown\",\n theme: \"light neeto-editor-slash-commands-tippy\",\n popperOptions: {\n modifiers: [\n { name: \"flip\", enabled: false },\n fitToAvailableHeight,\n ],\n },\n });\n\n highlightFocussedNode();\n },\n onUpdate(props) {\n if (\n props.editor.isActive(\"image\") ||\n props.editor.isActive(\"codeBlock\")\n ) {\n return;\n }\n reactRenderer?.updateProps(props);\n\n popup[0].setProps({\n getReferenceClientRect: props.clientRect,\n });\n },\n onKeyDown(props) {\n if (props.event.key === \"Escape\") {\n popup[0].hide();\n\n return true;\n }\n\n return reactRenderer && reactRenderer?.ref?.onKeyDown(props);\n },\n onExit() {\n popup && popup[0].destroy();\n reactRenderer && reactRenderer.destroy();\n resetFocussedNode();\n },\n };\n },\n },\n };\n },\n\n addProseMirrorPlugins() {\n return [\n Suggestion({\n editor: this.editor,\n ...this.options.suggestion,\n }),\n ];\n },\n });\n },\n};\n","import { mergeAttributes } from \"@tiptap/core\";\nimport Mention from \"@tiptap/extension-mention\";\nimport { PluginKey } from \"@tiptap/pm/state\";\nimport { ReactRenderer } from \"@tiptap/react\";\nimport tippy from \"tippy.js\";\n\nimport { getSuggestionAppendTo } from \"src/v2/components/Editor/utils\";\n\nimport { MentionList } from \"../Mention/MentionList\";\nimport { createMentionSuggestions } from \"../Mention/utils\";\n\nconst SpecialMentionPluginKey = new PluginKey(\"special-mention\");\n\nconst renderLabel = ({ options, node }) =>\n `${options.suggestion.char}${node.attrs.label ?? node.attrs.id}`;\n\nconst suggestion = {\n char: \"@@\",\n pluginKey: SpecialMentionPluginKey,\n\n render: () => {\n let reactRenderer;\n let popup;\n\n return {\n onStart: props => {\n reactRenderer = new ReactRenderer(MentionList, {\n props,\n editor: props.editor,\n });\n\n popup = tippy(\"body\", {\n theme: \"light neeto-editor-mentions-tooltip\",\n getReferenceClientRect: props.clientRect,\n appendTo: getSuggestionAppendTo(props.editor),\n content: reactRenderer.element,\n showOnCreate: true,\n interactive: true,\n trigger: \"manual\",\n placement: \"bottom-start\",\n zIndex: 99999,\n arrow: false,\n });\n },\n\n onUpdate(props) {\n reactRenderer.updateProps(props);\n\n popup[0].setProps({\n getReferenceClientRect: props.clientRect,\n });\n },\n\n onKeyDown(props) {\n if (props.event.key === \"Escape\") {\n popup[0].hide();\n\n return true;\n }\n\n return reactRenderer.ref?.onKeyDown(props);\n },\n\n onExit() {\n popup[0].destroy();\n reactRenderer.destroy();\n },\n };\n },\n};\n\nconst SpecialMentions = Mention.extend({\n name: \"special-mention\",\n\n renderHTML({ node, HTMLAttributes }) {\n return [\n \"span\",\n mergeAttributes(\n { \"data-type\": this.name },\n this.options.HTMLAttributes,\n HTMLAttributes\n ),\n renderLabel({ options: this.options, node }),\n ];\n },\n});\n\nexport default {\n configure: ({ suggestion: suggestionConfig = {}, ...otherConfig }) =>\n SpecialMentions.configure({\n ...otherConfig,\n suggestion: { ...suggestion, ...suggestionConfig },\n }),\n};\n\nexport { createMentionSuggestions };\n","const PREVIEW_CLASS_PREFIX = \"neeto-editor-table__cell--preview\";\n\n// Three default columns add up to the table toolbar width. Keep in sync with\n// $table-column-width in v2/styles/partials/_table.scss and the toolbar width\n// in v2/styles/partials/_menu.scss.\nexport const DEFAULT_COLUMN_WIDTH = 125;\n\n// Column min-width written into saved table HTML (unchanged from before).\nexport const SAVED_COLUMN_MIN_WIDTH = 100;\n\n// Cells to decorate, and how, for each toolbar hover preview.\nexport const TABLE_ACTION_PREVIEWS = {\n deleteRow: ({ map, top, bottom }) => ({\n rect: { top, bottom, left: 0, right: map.width },\n className: `${PREVIEW_CLASS_PREFIX}-delete`,\n }),\n deleteColumn: ({ map, left, right }) => ({\n rect: { top: 0, bottom: map.height, left, right },\n className: `${PREVIEW_CLASS_PREFIX}-delete`,\n }),\n deleteTable: ({ map }) => ({\n rect: { top: 0, bottom: map.height, left: 0, right: map.width },\n className: `${PREVIEW_CLASS_PREFIX}-delete`,\n }),\n insertRow: ({ map, bottom }) => ({\n rect: { top: bottom - 1, bottom, left: 0, right: map.width },\n className: `${PREVIEW_CLASS_PREFIX}-insert-row`,\n }),\n insertColumn: ({ map, right }) => ({\n rect: { top: 0, bottom: map.height, left: right - 1, right },\n className: `${PREVIEW_CLASS_PREFIX}-insert-column`,\n }),\n};\n","import { Plugin, PluginKey } from \"@tiptap/pm/state\";\nimport { isInTable, selectedRect } from \"@tiptap/pm/tables\";\nimport { Decoration, DecorationSet } from \"@tiptap/pm/view\";\n\nimport { TABLE_ACTION_PREVIEWS } from \"./constants\";\n\n// Previews what a toolbar \"−\"/\"+\" button would do while it is hovered: the\n// cells that would be deleted, or a line where the new row/column would go.\nconst actionPreviewKey = new PluginKey(\"tableActionPreview\");\n\nconst actionPreviewPlugin = () =>\n new Plugin({\n key: actionPreviewKey,\n state: {\n init: () => null,\n apply: (tr, action) => {\n const meta = tr.getMeta(actionPreviewKey);\n if (meta !== undefined) return meta;\n\n return tr.docChanged || tr.selectionSet ? null : action;\n },\n },\n props: {\n decorations: state => {\n const action = actionPreviewKey.getState(state);\n if (!action || !isInTable(state)) return null;\n\n const tableRect = selectedRect(state);\n const { rect, className } = TABLE_ACTION_PREVIEWS[action](tableRect);\n const decorations = tableRect.map.cellsInRect(rect).map(cellPos => {\n const from = tableRect.tableStart + cellPos;\n const to = from + tableRect.table.nodeAt(cellPos).nodeSize;\n\n return Decoration.node(from, to, { class: className });\n });\n\n return DecorationSet.create(state.doc, decorations);\n },\n },\n });\n\n// action: a key of TABLE_ACTION_PREVIEWS, or null to clear\nconst setActionPreview = (editor, action) =>\n editor.view.dispatch(editor.state.tr.setMeta(actionPreviewKey, action));\n\nexport { actionPreviewPlugin, setActionPreview };\n","function updateColumns(node, colgroup, table, cellMinWidth) {\n let totalWidth = 0;\n let nextDOM = colgroup.firstChild;\n const row = node.firstChild;\n\n for (let i = 0, col = 0; i < row.childCount; i += 1) {\n const { colspan, colwidth } = row.child(i).attrs;\n\n for (let j = 0; j < colspan; j += 1, col += 1) {\n // In auto table layout a col width acts as the column's minimum, so the\n // column keeps this width until its content overflows it.\n const width = (colwidth && colwidth[j]) || cellMinWidth;\n const cssWidth = `${width}px`;\n\n totalWidth += width;\n\n if (!nextDOM) {\n colgroup.appendChild(document.createElement(\"col\")).style.width =\n cssWidth;\n } else {\n if (nextDOM.style.width !== cssWidth) {\n nextDOM.style.width = cssWidth;\n }\n\n nextDOM = nextDOM.nextSibling;\n }\n }\n }\n\n while (nextDOM) {\n const after = nextDOM.nextSibling;\n\n nextDOM.parentNode.removeChild(nextDOM);\n nextDOM = after;\n }\n\n table.style.width = \"\";\n table.style.minWidth = `${totalWidth}px`;\n}\n\nexport class TableView {\n constructor(node, cellMinWidth) {\n this.node = node;\n this.cellMinWidth = cellMinWidth;\n this.dom = document.createElement(\"div\");\n\n const alignmentSuffix = node.attrs?.textAlign || \"left\";\n const alignmentClass = `neeto-editor-table--${alignmentSuffix}`;\n this.dom.className = `neeto-editor-table ${alignmentClass}`;\n this.wrapper = document.createElement(\"div\");\n this.wrapper.className = \"neeto-editor-table__wrapper\";\n this.table = this.dom\n .appendChild(this.wrapper)\n .appendChild(document.createElement(\"table\"));\n this.colgroup = this.table.appendChild(document.createElement(\"colgroup\"));\n updateColumns(node, this.colgroup, this.table, cellMinWidth);\n this.contentDOM = this.table.appendChild(document.createElement(\"tbody\"));\n }\n\n update(node) {\n if (node.type !== this.node.type) {\n return false;\n }\n\n this.node = node;\n updateColumns(node, this.colgroup, this.table, this.cellMinWidth);\n\n const alignmentSuffix = node.attrs?.textAlign || \"left\";\n const currentAlignmentClass = `neeto-editor-table--${alignmentSuffix}`;\n\n this.dom.classList.remove(\n \"neeto-editor-table--left\",\n \"neeto-editor-table--center\",\n \"neeto-editor-table--right\"\n );\n\n this.dom.classList.add(currentAlignmentClass);\n\n return true;\n }\n\n ignoreMutation(mutation) {\n return (\n mutation.type === \"attributes\" &&\n (mutation.target === this.table ||\n this.colgroup.contains(mutation.target))\n );\n }\n}\n","import { TextSelection } from \"@tiptap/pm/state\";\nimport { TableMap, addRow, findTable } from \"@tiptap/pm/tables\";\n\nconst getTableRect = state => {\n const table = findTable(state.selection.$from);\n if (!table) return null;\n\n return {\n map: TableMap.get(table.node),\n table: table.node,\n tableStart: table.start,\n };\n};\n\nconst getTableSize = editor => {\n const rect = editor ? getTableRect(editor.state) : null;\n\n return rect\n ? { rows: rect.map.height, columns: rect.map.width }\n : { rows: 0, columns: 0 };\n};\n\n// Suggestion popups (emoji, mention, slash commands) handle Enter themselves.\nconst isSuggestionActive = state =>\n state.plugins.some(plugin => {\n const pluginState = plugin.getState(state);\n\n return pluginState?.active === true && pluginState?.range;\n });\n\nconst moveToCellBelow = editor => {\n const { state, view } = editor;\n const { selection } = state;\n if (!(selection instanceof TextSelection) || isSuggestionActive(state)) {\n return false;\n }\n\n // Only when the cursor is in a paragraph directly inside a cell, so lists\n // and code blocks inside cells keep their own Enter behaviour.\n const { $from } = selection;\n const cellDepth = $from.depth - 1;\n const cellRole = $from.node(cellDepth)?.type.spec.tableRole;\n if (\n $from.parent.type.name !== \"paragraph\" ||\n (cellRole !== \"cell\" && cellRole !== \"header_cell\")\n ) {\n return false;\n }\n\n const table = findTable($from);\n const map = TableMap.get(table.node);\n const { left, bottom } = map.findCell($from.before(cellDepth) - table.start);\n const { tr } = state;\n\n if (bottom >= map.height) {\n addRow(tr, { map, table: table.node, tableStart: table.start }, map.height);\n }\n\n const updatedMap = TableMap.get(tr.doc.nodeAt(table.pos));\n const cellPos =\n table.start + updatedMap.map[bottom * updatedMap.width + left];\n tr.setSelection(TextSelection.near(tr.doc.resolve(cellPos + 1)));\n view.dispatch(tr.scrollIntoView());\n\n return true;\n};\n\n// Moves the cursor to just after the table, adding a paragraph if there is\n// nothing to land on.\nconst exitTable = editor => {\n const { state, view } = editor;\n const table = findTable(state.selection.$from);\n if (!table) return false;\n\n const { tr } = state;\n const afterTable = table.pos + table.node.nodeSize;\n const nodeAfter = tr.doc.resolve(afterTable).nodeAfter;\n\n if (!nodeAfter?.isTextblock) {\n tr.insert(afterTable, state.schema.nodes.paragraph.create());\n }\n\n tr.setSelection(TextSelection.create(tr.doc, afterTable + 1));\n view.dispatch(tr.scrollIntoView());\n\n return true;\n};\n\nexport { getTableSize, moveToCellBelow, exitTable };\n","import { Table as TiptapTable } from \"@tiptap/extension-table\";\n\nimport { actionPreviewPlugin } from \"./actionPreviewPlugin\";\nimport { DEFAULT_COLUMN_WIDTH, SAVED_COLUMN_MIN_WIDTH } from \"./constants\";\nimport { TableView } from \"./TableView\";\nimport { exitTable, moveToCellBelow } from \"./utils\";\n\nconst Table = TiptapTable.extend({\n addOptions() {\n return {\n HTMLAttributes: {},\n resizable: true,\n handleWidth: 5,\n cellMinWidth: DEFAULT_COLUMN_WIDTH,\n View: TableView,\n lastColumnResizable: true,\n allowTableNodeSelection: true,\n };\n },\n\n parseHTML() {\n const getAlignmentFromElement = element => {\n if (!element) return null;\n\n const dataAlign = element.getAttribute(\"data-text-align\");\n if (dataAlign) return dataAlign;\n\n if (element.classList.contains(\"neeto-editor-table--center\")) {\n return \"center\";\n }\n\n if (element.classList.contains(\"neeto-editor-table--right\")) {\n return \"right\";\n }\n\n if (element.classList.contains(\"neeto-editor-table--left\")) {\n return \"left\";\n }\n\n return null;\n };\n\n return [\n {\n tag: \"table\",\n priority: 100,\n getAttrs: node => {\n const alignment = getAlignmentFromElement(node);\n if (alignment) {\n return { textAlign: alignment };\n }\n\n const parent = node.parentElement;\n if (parent && parent.classList.contains(\"table-responsive\")) {\n const parentAlignment = getAlignmentFromElement(parent);\n if (parentAlignment) {\n return { textAlign: parentAlignment };\n }\n }\n\n return { textAlign: \"left\" };\n },\n },\n ];\n },\n\n addAttributes() {\n return {\n ...this.parent?.(),\n textAlign: {\n default: \"left\",\n renderHTML: attributes => {\n if (!attributes.textAlign) return {};\n\n return {\n class: `neeto-editor-table--${attributes.textAlign}`,\n \"data-text-align\": attributes.textAlign,\n };\n },\n },\n };\n },\n\n renderHTML({ node }) {\n let totalWidth = 0;\n let fixedWidth = true;\n\n const colgroups = [];\n // Saved HTML keeps the previous minimum so re-saved tables do not widen.\n const cellMinWidth = SAVED_COLUMN_MIN_WIDTH;\n const firstRow = node.content?.firstChild;\n\n if (firstRow && firstRow.childCount) {\n for (let i = 0; i < firstRow.childCount; i++) {\n const cell = firstRow.child(i);\n const { colspan, colwidth } = cell.attrs;\n const span = colspan || 1;\n\n for (let j = 0; j < span; j++) {\n const hasWidth = colwidth && colwidth[j];\n totalWidth += Number(hasWidth) || cellMinWidth;\n if (!hasWidth) fixedWidth = false;\n\n const style = hasWidth\n ? `min-width: ${cellMinWidth}px; width: ${Number(hasWidth)}px;`\n : `min-width: ${cellMinWidth}px;`;\n\n colgroups.push([\"col\", { style }]);\n }\n }\n }\n\n let tableStyle = \"\";\n if (totalWidth > 0) {\n tableStyle = fixedWidth\n ? `width: ${totalWidth}px;`\n : `min-width: ${totalWidth}px;`;\n }\n\n const alignmentClass = node.attrs?.textAlign\n ? `neeto-editor-table--${node.attrs.textAlign}`\n : \"neeto-editor-table--left\";\n\n return [\n \"div\",\n {\n class: `table-responsive ${alignmentClass}`,\n \"data-text-align\": node.attrs?.textAlign || \"left\",\n },\n [\n \"table\",\n tableStyle ? { style: tableStyle } : {},\n [\"colgroup\", ...colgroups],\n [\"tbody\", 0],\n ],\n ];\n },\n\n addProseMirrorPlugins() {\n return [...(this.parent?.() ?? []), actionPreviewPlugin()];\n },\n\n addKeyboardShortcuts() {\n return {\n ...this.parent?.(),\n Enter: () => moveToCellBelow(this.editor),\n // Tab from the last cell leaves the table instead of adding a row.\n Tab: () => this.editor.commands.goToNextCell() || exitTable(this.editor),\n \"Mod-alt-t\": () =>\n this.editor\n .chain()\n .focus()\n .insertTable({ rows: 3, cols: 3, withHeaderRow: true })\n .updateAttributes(\"table\", { textAlign: \"left\" })\n .run(),\n };\n },\n});\n\nexport default Table.configure({});\n","import { TaskItem, TaskList } from \"@tiptap/extension-list\";\n\nexport const TodoListExtension = TaskList.extend({\n name: \"todoList\",\n addKeyboardShortcuts() {\n return {\n \"Mod-Shift-9\": () => this.editor.commands.toggleTaskList(),\n };\n },\n});\n\nexport const TodoItemExtension = TaskItem.extend({\n addKeyboardShortcuts() {\n return {\n Enter: () => this.editor.commands.splitListItem(this.name),\n Tab: () => this.editor.commands.sinkListItem(this.name),\n \"Shift-Tab\": () => this.editor.commands.liftListItem(this.name),\n };\n },\n}).configure({ nested: true });\n\nexport default TodoListExtension;\n","export const MAX_VARIABLE_NAME_DISPLAY_LENGTH = 25;\n","import { NodeViewWrapper } from \"@tiptap/react\";\nimport { Tooltip } from \"neetoatoms\";\n\nimport { getVariableDisplay } from \"src/common/variableDisplay\";\nimport { MAX_VARIABLE_NAME_DISPLAY_LENGTH } from \"src/v2/components/Editor/CustomExtensions/Variable/constants\";\n\nconst VariableComponent = ({ node, extension }) => {\n const { id } = node.attrs;\n\n const { variableName, shouldTruncate } = getVariableDisplay(\n node.attrs,\n MAX_VARIABLE_NAME_DISPLAY_LENGTH\n );\n\n return (\n <NodeViewWrapper\n as=\"span\"\n className=\"neeto-editor-variable\"\n data-label={id}\n data-variable=\"\"\n >\n {extension.options.charOpen}\n <Tooltip content={variableName} disabled={!shouldTruncate} position=\"top\">\n {variableName?.substr(0, MAX_VARIABLE_NAME_DISPLAY_LENGTH)?.trim()}\n {shouldTruncate && \"...\"}\n </Tooltip>\n {extension.options.charClose}\n </NodeViewWrapper>\n );\n};\n\nexport default VariableComponent;\n","import { Node, mergeAttributes } from \"@tiptap/core\";\nimport { PluginKey } from \"@tiptap/pm/state\";\nimport { ReactNodeViewRenderer } from \"@tiptap/react\";\n\nimport VariableComponent from \"./VariableComponent\";\n\nconst VariablePluginKey = new PluginKey(\"variables\");\nconst Variable = Node.create({\n name: \"variable\",\n addOptions() {\n return {\n HTMLAttributes: { class: \"neeto-editor-variable\" },\n charOpen: \"{{\",\n charClose: \"}}\",\n renderLabel({ options, node }) {\n return `${options.charOpen}${node.attrs.id || node.attrs.label}${\n options.charClose\n }`;\n },\n suggestion: {},\n };\n },\n group: \"inline\",\n inline: true,\n selectable: false,\n atom: true,\n addAttributes() {\n return {\n id: {\n default: null,\n parseHTML: element => element.getAttribute(\"data-id\"),\n renderHTML: attributes => {\n if (!attributes.id) return {};\n\n return { \"data-id\": attributes.id };\n },\n },\n label: {\n default: null,\n parseHTML: element => element.getAttribute(\"data-label\"),\n renderHTML: attributes => {\n if (!attributes.label) return {};\n\n return { \"data-label\": attributes.label };\n },\n },\n };\n },\n\n parseHTML() {\n return [{ tag: \"span[data-variable]\" }];\n },\n\n renderHTML({ node, HTMLAttributes }) {\n return [\n \"span\",\n mergeAttributes(\n { \"data-variable\": \"\" },\n this.options.HTMLAttributes,\n HTMLAttributes\n ),\n this.options.renderLabel({ options: this.options, node }),\n ];\n },\n\n renderText({ node }) {\n return this.options.renderLabel({ options: this.options, node });\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(VariableComponent);\n },\n\n addCommands() {\n return {\n setVariable:\n attributes =>\n ({ chain }) => {\n chain()\n .focus()\n .insertContent([\n { type: this.name, attrs: attributes },\n { type: \"text\", text: \" \" },\n ])\n .run();\n },\n };\n },\n});\n\nexport default Variable;\n\nexport { VariablePluginKey };\n","import { useRef, useState } from \"react\";\n\nimport { NodeViewContent, NodeViewWrapper } from \"@tiptap/react\";\nimport classNames from \"classnames\";\nimport { isNotPresent } from \"neetocist\";\nimport { isEmpty, mergeRight } from \"ramda\";\nimport { Resizable } from \"re-resizable\";\n\nimport Menu from \"../Image/Menu\";\n\nconst VideoComponent = ({\n node,\n editor,\n getPos,\n updateAttributes,\n deleteNode,\n}) => {\n const { src, vidheight, vidwidth, align, border } = node.attrs;\n\n const [captionWidth, setCaptionWidth] = useState(vidwidth || 0);\n\n const figureRef = useRef(null);\n\n const { view } = editor;\n let height = vidheight;\n let width = vidwidth;\n const caption = node?.content?.content[0]?.text || \"\";\n\n const editorElement = figureRef.current?.closest(\".neeto-editor\");\n const maxVideoWidth = editorElement?.offsetWidth - 50;\n\n const handleResize = (_event, _direction, ref) => {\n height = ref.offsetHeight;\n width = ref.offsetWidth;\n\n if (width > maxVideoWidth) {\n width = maxVideoWidth;\n const aspectRatio = ref.offsetHeight / ref.offsetWidth;\n height = width * aspectRatio;\n }\n setCaptionWidth(width);\n view.dispatch(\n view.state.tr.setNodeMarkup(\n getPos(),\n undefined,\n mergeRight(node.attrs, {\n vidheight: height,\n vidwidth: width,\n height,\n width,\n })\n )\n );\n editor.commands.focus();\n };\n\n if (isNotPresent(src)) return null;\n\n return (\n <NodeViewWrapper\n className={classNames(\n \"neeto-editor__image-wrapper\",\n `neeto-editor__image--${align}`,\n { \"neeto-editor__image--bordered\": border }\n )}\n >\n <figure ref={figureRef}>\n <Menu {...{ align, border, deleteNode, editor, updateAttributes }} />\n <Resizable\n lockAspectRatio\n className=\"neeto-editor__image\"\n size={{ height, width }}\n onResizeStop={handleResize}\n onResize={(_event, _direction, ref) =>\n setCaptionWidth(ref.offsetWidth)\n }\n >\n <video\n controls\n {...{ ...node.attrs, src }}\n alt={caption}\n data-border={border}\n preload=\"metadata\"\n />\n </Resizable>\n <NodeViewContent\n as=\"figcaption\"\n className={classNames({ \"is-empty\": isEmpty(caption) })}\n style={{ width: `${captionWidth}px` }}\n />\n </figure>\n </NodeViewWrapper>\n );\n};\n\nexport default VideoComponent;\n","import { NodeViewContent, NodeViewWrapper } from \"@tiptap/react\";\nimport classnames from \"classnames\";\nimport { mergeRight } from \"ramda\";\nimport { Resizable } from \"re-resizable\";\n\nimport Menu from \"../Image/Menu\";\n\nconst EmbedComponent = ({\n node,\n editor,\n getPos,\n updateAttributes,\n deleteNode,\n}) => {\n const { figheight, figwidth, align, border, aspectRatio } = node.attrs;\n const { view } = editor;\n let height = figheight;\n let width = figwidth;\n\n const handleResize = (_event, _direction, ref) => {\n height = ref.offsetHeight;\n width = ref.offsetWidth;\n view.dispatch(\n view.state.tr.setNodeMarkup(\n getPos(),\n undefined,\n mergeRight(node.attrs, {\n figheight: height,\n figwidth: width,\n height,\n width,\n })\n )\n );\n editor.commands.focus();\n };\n\n return (\n <NodeViewWrapper\n data-testid=\"neeto-editor-video-wrapper\"\n className={classnames(\n \"neeto-editor__video-wrapper\",\n `neeto-editor__video--${align}`,\n { \"neeto-editor__video--bordered\": border }\n )}\n >\n <NodeViewContent className=\"neeto-editor__video-content\" />\n <Resizable\n lockAspectRatio\n size={{ height, width }}\n className={classnames(\"neeto-editor__video-iframe\", {\n \"neeto-editor-aspect-1-1\": aspectRatio === \"1/1\",\n \"neeto-editor-aspect-16-9\": aspectRatio === \"16/9\",\n \"neeto-editor-aspect-9-16\": aspectRatio === \"9/16\",\n \"neeto-editor-aspect-4-3\": aspectRatio === \"4/3\",\n \"neeto-editor-aspect-3-2\": aspectRatio === \"3/2\",\n })}\n onResizeStop={handleResize}\n >\n <Menu\n {...{ align, border, deleteNode, editor, updateAttributes }}\n showAspectRatio\n />\n <iframe {...node.attrs} allowFullScreen data-border={border} />\n </Resizable>\n </NodeViewWrapper>\n );\n};\n\nexport default EmbedComponent;\n","import { mergeAttributes, Node, PasteRule } from \"@tiptap/core\";\nimport { TextSelection } from \"@tiptap/pm/state\";\nimport { ReactNodeViewRenderer } from \"@tiptap/react\";\nimport classnames from \"classnames\";\n\nimport { COMBINED_REGEX } from \"common/constants\";\nimport getVideoDimension from \"common/getVideoDimension\";\nimport { validateUrl } from \"src/v2/components/Editor/CustomExtensions/Embeds/utils\";\nimport { DEFAULT_ASPECT_RATIO } from \"src/v2/components/Editor/MediaUploader/constants\";\n\nimport VideoComponent from \"./VideoComponent\";\n\nimport EmbedComponent from \"../Embeds/EmbedComponent\";\n\nconst getSharedAttributes = () => ({\n src: {\n default: null,\n parseHTML: element => {\n if (element.tagName === \"IFRAME\") return element.getAttribute(\"src\");\n\n const iframe = element.querySelector(\"iframe\");\n const video = element.querySelector(\"video\");\n\n return iframe?.getAttribute(\"src\") || video?.getAttribute(\"src\");\n },\n },\n align: {\n default: \"left\",\n parseHTML: element =>\n element.getAttribute(\"align\") ||\n element.querySelector(\"video\")?.getAttribute(\"align\"),\n },\n videoType: {\n default: \"upload\",\n parseHTML: element => {\n const iframe =\n element.tagName === \"IFRAME\"\n ? element\n : element.querySelector(\"iframe\");\n\n return iframe ? \"embed\" : \"upload\";\n },\n },\n border: {\n default: true,\n parseHTML: element =>\n element.querySelector(\"video\")?.getAttribute(\"data-border\") === \"true\" ||\n element.querySelector(\"iframe\")?.getAttribute(\"data-border\") === \"true\",\n },\n});\n\nconst getUploadAttributes = () => ({\n alt: {\n default: \"\",\n parseHTML: element => element.querySelector(\"video\")?.getAttribute(\"alt\"),\n },\n vidheight: {\n default: \"fit-content\",\n parseHTML: element =>\n element.querySelector(\"video\")?.getAttribute(\"vidheight\"),\n },\n vidwidth: {\n default: 502,\n parseHTML: element =>\n element.querySelector(\"video\")?.getAttribute(\"vidwidth\"),\n },\n});\n\nconst getEmbedAttributes = () => ({\n figheight: {\n default: 281,\n parseHTML: element =>\n getVideoDimension(\n (element.querySelector(\"iframe\") ?? element).getAttribute(\"figheight\"),\n 281\n ),\n },\n figwidth: {\n default: 500,\n parseHTML: element =>\n getVideoDimension(\n (element.querySelector(\"iframe\") ?? element).getAttribute(\"figwidth\"),\n 500\n ),\n },\n aspectRatio: {\n default: DEFAULT_ASPECT_RATIO,\n parseHTML: element => {\n const iframe = element.querySelector(\".neeto-editor__video-iframe\");\n\n return iframe?.getAttribute(\"data-aspect-ratio\") || DEFAULT_ASPECT_RATIO;\n },\n },\n title: { default: null },\n originalUrl: {\n default: \"\",\n parseHTML: element => {\n const iframe = element.querySelector(\".neeto-editor__video-iframe\");\n\n return (\n iframe?.getAttribute(\"data-original-url\") ||\n iframe?.querySelector(\"iframe\")?.getAttribute(\"data-original-url\") ||\n \"\"\n );\n },\n },\n frameBorder: \"0\",\n allow:\n \"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; fullscreen\",\n allowfullscreen: true,\n});\n\nconst renderEmbedHTML = (node, HTMLAttributes, options) => {\n const { align, figheight, figwidth, border, aspectRatio, originalUrl } =\n node.attrs;\n\n return [\n \"div\",\n {\n class: classnames(\n \"neeto-editor__video-wrapper\",\n `neeto-editor__video--${align}`,\n { \"neeto-editor__video--bordered\": border }\n ),\n },\n [\"div\", { class: \"neeto-editor__video-content\" }, 0],\n [\n \"div\",\n {\n class: classnames(\"neeto-editor__video-iframe\", {\n \"neeto-editor-aspect-1-1\": aspectRatio === \"1/1\",\n \"neeto-editor-aspect-16-9\": aspectRatio === \"16/9\",\n \"neeto-editor-aspect-9-16\": aspectRatio === \"9/16\",\n \"neeto-editor-aspect-4-3\": aspectRatio === \"4/3\",\n \"neeto-editor-aspect-3-2\": aspectRatio === \"3/2\",\n }),\n style: `width: ${getVideoDimension(figwidth, 500)}px; height: ${getVideoDimension(figheight, 281)}px;`,\n \"data-aspect-ratio\": aspectRatio,\n },\n [\n \"iframe\",\n mergeAttributes(options.HTMLAttributes, {\n ...HTMLAttributes,\n allowfullscreen: true,\n \"data-border\": border,\n \"data-original-url\": originalUrl,\n }),\n ],\n ],\n ];\n};\n\nconst renderUploadHTML = (node, HTMLAttributes, options) => {\n const { align, vidheight, vidwidth, border } = node.attrs;\n\n const wrapperDivAttrs = {\n class: classnames(\n \"neeto-editor__image-wrapper\",\n `neeto-editor__image--${align}`,\n { \"neeto-editor__image--bordered\": border }\n ),\n };\n\n const heightStyle =\n vidheight === \"fit-content\" ? \"fit-content\" : `${vidheight}px`;\n\n const wrapperLinkAttrs = {\n rel: \"noopener noreferrer\",\n class: \"neeto-editor__image\",\n style: `height:${heightStyle};width:${vidwidth}px;display:inline-block;`,\n };\n\n const captionAttrs = { style: `width:${vidwidth}px;` };\n\n return [\n \"div\",\n wrapperDivAttrs,\n [\n \"figure\",\n mergeAttributes(options.HTMLAttributes, { \"data-video\": \"\" }),\n [\n \"a\",\n wrapperLinkAttrs,\n [\n \"video\",\n mergeAttributes(HTMLAttributes, {\n preload: \"metadata\",\n controls: true,\n draggable: false,\n contenteditable: false,\n \"data-border\": border,\n }),\n ],\n ],\n [\"figcaption\", captionAttrs, 0],\n ],\n ];\n};\n\nconst handleVideoPaste = ({ state, range, match }) => {\n state.tr.delete(range.from, range.to);\n state.tr.setSelection(TextSelection.create(state.doc, range.from + 1));\n\n const validatedUrl = validateUrl(match[0]);\n\n if (validatedUrl) {\n const node = state.schema.nodes[\"unified-video\"].create({\n src: validatedUrl,\n videoType: \"embed\",\n originalUrl: match[0],\n });\n\n state.tr.insert(range.from, node);\n state.tr.insert(\n range.from + node.nodeSize + 1,\n state.schema.nodes.paragraph.create()\n );\n\n state.tr.setSelection(\n TextSelection.create(state.tr.doc, range.from + node.nodeSize + 1)\n );\n }\n};\n\nconst UnifiedVideoExtension = Node.create({\n name: \"unified-video\",\n\n addOptions() {\n return { HTMLAttributes: {} };\n },\n\n group: \"block\",\n content: \"inline*\",\n draggable: true,\n isolating: true,\n\n addAttributes() {\n return {\n ...getSharedAttributes(),\n ...getUploadAttributes(),\n ...getEmbedAttributes(),\n };\n },\n\n parseHTML() {\n return [\n {\n tag: \"div.neeto-editor__image-wrapper\",\n getAttrs: node => {\n const figure = node.querySelector(\"figure[data-video]\");\n\n if (!figure) return false;\n\n const videoSrc = figure.querySelector(\"video\")?.getAttribute(\"src\");\n const iframeSrc = figure.querySelector(\"iframe\")?.getAttribute(\"src\");\n\n if (!videoSrc && !iframeSrc) return false;\n\n return node.style.fontWeight !== \"normal\" && null;\n },\n contentElement: \"figcaption\",\n },\n {\n tag: \"iframe[src]\",\n // iframes inside our own embed markup are consumed by the\n // div.neeto-editor__video-wrapper rule below.\n getAttrs: element =>\n element.closest(\"div.neeto-editor__video-wrapper\") ? false : null,\n },\n {\n tag: \"div.neeto-editor__video-wrapper\",\n getAttrs: element =>\n element.querySelector(\"iframe[src]\") ? null : false,\n contentElement: element =>\n element.querySelector(\".neeto-editor__video-content\") || element,\n },\n ];\n },\n\n renderHTML({ node, HTMLAttributes }) {\n const { videoType } = node.attrs;\n\n return videoType === \"embed\"\n ? renderEmbedHTML(node, HTMLAttributes, this.options)\n : renderUploadHTML(node, HTMLAttributes, this.options);\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(({ node, ...props }) => {\n const { videoType } = node.attrs;\n\n return videoType === \"embed\" ? (\n <EmbedComponent {...{ ...props, node }} />\n ) : (\n <VideoComponent {...{ ...props, node }} />\n );\n });\n },\n\n addCommands() {\n return {\n setVideo:\n ({ caption, ...attrs }) =>\n ({ chain }) =>\n chain()\n .insertContent({\n type: this.name,\n attrs: { ...attrs, videoType: \"upload\" },\n content: caption ? [{ type: \"text\", text: caption }] : [],\n })\n .command(({ tr, commands }) => {\n const { doc, selection } = tr;\n const position = doc.resolve(selection.to).end();\n\n return commands.setTextSelection(position);\n })\n .run(),\n\n setExternalVideo:\n options =>\n ({ chain }) =>\n chain()\n .insertContent({\n type: this.name,\n attrs: { ...options, videoType: \"embed\" },\n })\n .command(({ tr, commands }) => {\n const { $to } = tr.selection;\n if ($to.parent.type.name !== this.name) return true;\n\n const position = $to.after();\n if (tr.doc.nodeAt(position)?.type.name !== \"paragraph\") {\n commands.insertContentAt(position, { type: \"paragraph\" });\n }\n\n return commands.setTextSelection(position + 1);\n })\n .run(),\n };\n },\n\n addPasteRules() {\n return [\n new PasteRule({\n find: COMBINED_REGEX,\n handler: handleVideoPaste,\n }),\n ];\n },\n});\n\nexport default UnifiedVideoExtension;\n","import Code from \"@tiptap/extension-code\";\nimport Collaboration from \"@tiptap/extension-collaboration\";\nimport CollaborationCaret from \"@tiptap/extension-collaboration-caret\";\nimport Document from \"@tiptap/extension-document\";\nimport Highlight from \"@tiptap/extension-highlight\";\nimport { ListItem } from \"@tiptap/extension-list\";\nimport { TableCell, TableHeader, TableRow } from \"@tiptap/extension-table\";\nimport { Color, TextStyle } from \"@tiptap/extension-text-style\";\nimport Underline from \"@tiptap/extension-underline\";\nimport { CharacterCount, Focus } from \"@tiptap/extensions\";\nimport StarterKit from \"@tiptap/starter-kit\";\nimport { isEmpty } from \"ramda\";\n\nimport { EDITOR_OPTIONS } from \"common/constants\";\nimport safeListKeymap from \"common/safeListKeymap\";\nimport safeSplitBlock from \"common/safeSplitBlock\";\nimport { buildLevelsFromOptions } from \"src/v2/components/Editor/utils\";\n\nimport AttachmentExtension from \"../Attachment/ExtensionConfig\";\nimport HighlightInternal from \"../BackgroundColor/ExtensionConfig\";\nimport BulletList from \"../BulletList/ExtensionConfig\";\nimport Callout from \"../Callout/ExtensionConfig\";\nimport CodeBlock from \"../CodeBlock/ExtensionConfig\";\nimport CustomCommands from \"../CustomCommands/ExtensionConfig\";\nimport DeletedArticleDecoration from \"../DeletedArticleDecoration/ExtensionConfig\";\nimport EditorContainer from \"../EditorContainer/ExtensionConfig\";\nimport EmojiPicker from \"../Emoji/EmojiPicker/ExtensionConfig\";\nimport EmojiSuggestion from \"../Emoji/EmojiSuggestion/ExtensionConfig\";\nimport ImageExtension from \"../Image/ExtensionConfig\";\nimport FigCaption from \"../Image/FigCaption\";\nimport Italic from \"../Italic/ExtensionConfig\";\nimport KeyboardShortcuts from \"../KeyboardShortcuts/ExtensionConfig\";\nimport Link from \"../Link/ExtensionConfig\";\nimport Mention, { createMentionSuggestions } from \"../Mention/ExtensionConfig\";\nimport OrderedList from \"../OrderedList/ExtensionConfig\";\nimport Placeholder from \"../Placeholder/ExtensionConfig\";\nimport SelectionDecoration from \"../SelectionDecoration/ExtensionConfig\";\nimport SlashCommands from \"../SlashCommands/ExtensionConfig\";\nimport SpecialMentions from \"../SpecialMentions/ExtensionConfig\";\nimport Table from \"../Table/ExtensionConfig\";\nimport {\n TodoListExtension,\n TodoItemExtension,\n} from \"../TodoList/ExtensionConfig\";\nimport Variable from \"../Variable/ExtensionConfig\";\nimport UnifiedVideoExtension from \"../Video/ExtensionConfig\";\n\nconst useCustomExtensions = ({\n placeholder,\n extensions,\n mentions,\n variables,\n isSlashCommandsActive,\n options,\n addonCommands,\n onSubmit,\n keyboardShortcuts,\n setMediaUploader,\n setIsAddLinkActive,\n attachmentProps,\n openImageInNewTab,\n openLinkInNewTab,\n enableReactNodeViewOptimization,\n collaborationProvider,\n setIsNeetoKbArticleActive,\n containerRef,\n appendSuggestionsToBody,\n inlineAttachmentsOptions,\n}) => {\n let customExtensions = [\n EditorContainer.configure({ containerRef, appendSuggestionsToBody }),\n CharacterCount,\n Code,\n CodeBlock.configure({ enableReactNodeViewOptimization }),\n CustomCommands,\n Document,\n FigCaption,\n HighlightInternal,\n SelectionDecoration,\n Focus.configure({ mode: \"shallowest\" }),\n Highlight,\n ImageExtension.configure({\n openImageInNewTab,\n enableReactNodeViewOptimization,\n }),\n Link.configure({\n HTMLAttributes: { target: openLinkInNewTab ? \"_blank\" : null },\n }),\n Placeholder.configure({ placeholder, isSlashCommandsActive }),\n StarterKit.configure({\n document: false,\n codeBlock: false,\n code: false,\n bulletList: false,\n listItem: false,\n blockquote: options.includes(EDITOR_OPTIONS.BLOCKQUOTE),\n orderedList: false,\n italic: false,\n link: false, // v3 StarterKit bundles Link; we register a custom Link extension\n underline: false, // v3 StarterKit bundles Underline; we register it explicitly below\n listKeymap: false, // replaced by safeListKeymap, registered below\n trailingNode: false, // new in v3 StarterKit; disabled to keep v2 behavior\n undoRedo: !collaborationProvider,\n heading: { levels: buildLevelsFromOptions(options) },\n }),\n safeSplitBlock,\n safeListKeymap,\n TextStyle,\n Underline,\n Italic,\n KeyboardShortcuts.configure({\n onSubmit,\n shortcuts: keyboardShortcuts,\n isBlockQuoteActive: options.includes(EDITOR_OPTIONS.BLOCKQUOTE),\n }),\n EmojiSuggestion,\n EmojiPicker,\n ];\n\n if (options.includes(EDITOR_OPTIONS.VIDEO_UPLOAD)) {\n customExtensions.push(UnifiedVideoExtension);\n }\n\n if (options.includes(EDITOR_OPTIONS.INLINE_ATTACHMENTS)) {\n customExtensions.push(\n AttachmentExtension.configure(inlineAttachmentsOptions)\n );\n }\n\n if (options.includes(EDITOR_OPTIONS.NEETO_KB_ARTICLE)) {\n customExtensions.push(\n DeletedArticleDecoration.configure({\n deletedArticleIds: new Set(),\n })\n );\n }\n\n if (options.includes(EDITOR_OPTIONS.TABLE)) {\n customExtensions.push(\n Table.configure({ resizable: true }),\n TableRow,\n TableHeader,\n TableCell\n );\n }\n\n if (\n options.includes(EDITOR_OPTIONS.TEXT_COLOR) ||\n options.includes(EDITOR_OPTIONS.HIGHLIGHT)\n ) {\n customExtensions.push(Color);\n }\n\n if (options.includes(EDITOR_OPTIONS.LIST_BULLETS)) {\n customExtensions.push(BulletList);\n }\n\n if (options.includes(EDITOR_OPTIONS.LIST_ORDERED)) {\n customExtensions.push(OrderedList);\n }\n\n if (\n options.includes(EDITOR_OPTIONS.LIST_BULLETS) ||\n options.includes(EDITOR_OPTIONS.LIST_ORDERED)\n ) {\n customExtensions.push(ListItem);\n }\n\n if (options.includes(EDITOR_OPTIONS.CALLOUT)) {\n customExtensions.push(Callout);\n }\n\n if (options.includes(EDITOR_OPTIONS.TODO_LIST)) {\n customExtensions.push(TodoListExtension);\n customExtensions.push(TodoItemExtension);\n }\n\n if (isSlashCommandsActive) {\n customExtensions.push(\n SlashCommands.configure({\n options,\n addonCommands,\n setMediaUploader,\n setIsAddLinkActive,\n attachmentProps,\n setIsNeetoKbArticleActive,\n })\n );\n }\n\n if (!isEmpty(mentions)) {\n const items = createMentionSuggestions(mentions);\n\n customExtensions.push(Mention.configure({ suggestion: { items } }));\n\n customExtensions.push(SpecialMentions.configure({ suggestion: { items } }));\n }\n\n if (!isEmpty(variables)) {\n customExtensions.push(Variable);\n }\n\n if (collaborationProvider) {\n customExtensions.push(\n Collaboration.configure({\n document: collaborationProvider.document ?? collaborationProvider.doc,\n })\n );\n\n customExtensions.push(\n CollaborationCaret.configure({\n provider: collaborationProvider,\n })\n );\n }\n\n customExtensions = customExtensions.concat(extensions);\n\n return customExtensions;\n};\n\nexport default useCustomExtensions;\n","import { globalProps } from \"neetocommons/v2/initializers\";\n\nexport const NEETO_KB_ENDPOINT = globalProps?.kbUrl;\nexport const NEETO_KB_ARTICLES_URL = \"/api/v1/articles\";\nexport const NEETO_KB_CATEGORIES_URL = \"/api/v1/categories\";\n\nexport const MODE = { MODAL: \"modal\", SELECT: \"select\" };\n\nexport const MODAL_BOTTOM_MARGIN = 50;\nexport const MODAL_LEFT_OFFSET = 50;\nexport const MODAL_TOP_OFFSET = 22;\nexport const MODAL_TRANSFORM_Y = 52;\nexport const MODAL_TRANSFORM_X = 8;\n","import { useState, useEffect, useCallback } from \"react\";\n\nconst useArticleNavigation = ({\n articles = [],\n articlesContainerRef,\n mode,\n onClose,\n handleModalArticleSelect,\n searchTerm,\n}) => {\n const [highlightedIndex, setHighlightedIndex] = useState(0);\n\n useEffect(() => {\n setHighlightedIndex(0);\n }, [articles, searchTerm]);\n\n useEffect(() => {\n if (!articlesContainerRef?.current || !articles?.length) return;\n\n const container = articlesContainerRef.current;\n const highlightedItem = container.querySelector(\n `[data-index=\"${highlightedIndex}\"]`\n );\n\n if (!highlightedItem) return;\n\n const containerRect = container.getBoundingClientRect();\n const itemRect = highlightedItem.getBoundingClientRect();\n\n const isItemAbove = itemRect.top < containerRect.top;\n const isItemBelow = itemRect.bottom > containerRect.bottom;\n\n if (isItemAbove) {\n container.scrollTop -= containerRect.top - itemRect.top;\n } else if (isItemBelow) {\n container.scrollTop += itemRect.bottom - containerRect.bottom;\n }\n }, [highlightedIndex, articles.length, articlesContainerRef]);\n\n const navigationHandlers = {\n down: prev => (prev < articles.length - 1 ? prev + 1 : 0),\n up: prev => (prev > 0 ? prev - 1 : articles.length - 1),\n };\n\n const keyActions = {\n Escape: () => onClose?.(),\n ArrowDown: () => setHighlightedIndex(navigationHandlers[\"down\"]),\n ArrowUp: () => setHighlightedIndex(navigationHandlers[\"up\"]),\n Tab: event =>\n setHighlightedIndex(navigationHandlers[event.shiftKey ? \"up\" : \"down\"]),\n Enter: () => {\n if (articles[highlightedIndex]) {\n handleModalArticleSelect?.(articles[highlightedIndex]);\n }\n },\n };\n\n const handleKeyboardNavigation = useCallback(\n event => {\n if (mode !== \"modal\") return;\n\n const action = keyActions[event.key];\n if (!action) return;\n\n event.preventDefault();\n action(event);\n },\n [mode, articles, highlightedIndex, onClose, handleModalArticleSelect]\n );\n\n useEffect(() => {\n if (mode !== \"modal\") return undefined;\n\n document.addEventListener(\"keydown\", handleKeyboardNavigation);\n\n return () => {\n document.removeEventListener(\"keydown\", handleKeyboardNavigation);\n };\n }, [mode, handleKeyboardNavigation]);\n\n return { highlightedIndex };\n};\n\nexport default useArticleNavigation;\n","import { decodeHtmlEntities } from \"src/utils/common\";\n\nimport { NEETO_KB_ENDPOINT } from \"./constants\";\n\nexport const buildArticleFullUrl = slug =>\n slug ? `${NEETO_KB_ENDPOINT}/articles/${slug}` : null;\n\nexport const createArticleOptions = articles =>\n articles.map(article => ({\n label: decodeHtmlEntities(article.title),\n value: article.id,\n data: { type: \"article\", ...article },\n }));\n\nexport const extractKbArticleIds = editor => {\n if (!editor) return [];\n\n const articleIds = [];\n const { doc } = editor.state;\n\n doc.descendants(node => {\n if (node.marks) {\n node.marks.forEach(mark => {\n if (\n mark.type.name === \"link\" &&\n mark.attrs[\"data-neeto-kb-article\"] === \"true\" &&\n mark.attrs[\"data-article-id\"]\n ) {\n articleIds.push(mark.attrs[\"data-article-id\"]);\n }\n });\n }\n });\n\n return [...new Set(articleIds)];\n};\n","import React from \"react\";\n\nimport { Typography } from \"@bigbinary/neeto-atoms\";\nimport classNames from \"classnames\";\nimport { isNotEmpty } from \"neetocist\";\nimport { withT } from \"neetocommons/v2/react-utils\";\n\nimport { decodeHtmlEntities } from \"src/utils/common\";\n\nconst ArticlesList = withT(\n ({\n t,\n articles = [],\n onSelectArticle,\n highlightedIndex = 0,\n containerRef,\n }) => (\n <div className=\"max-h-40 overflow-y-auto\" ref={containerRef}>\n {isNotEmpty(articles) ? (\n <div className=\"space-y-1\">\n {articles.map((article, index) => (\n <button\n data-index={index}\n key={article?.id}\n className={classNames(\n \"w-full rounded p-2 text-left hover:bg-gray-200 focus:bg-gray-200 focus:outline-none\",\n { \"bg-gray-200\": index === highlightedIndex }\n )}\n onClick={() => onSelectArticle?.(article)}\n >\n <div className=\"text-sm font-medium\">\n {decodeHtmlEntities(article?.title)}\n </div>\n </button>\n ))}\n </div>\n ) : (\n <div className=\"py-4 text-center text-gray-500\">\n <Typography variant=\"body2\">\n {t(\"neetoEditor.error.noResults\")}\n </Typography>\n </div>\n )}\n </div>\n )\n);\n\nexport default ArticlesList;\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { Select, Spinner } from \"@bigbinary/neeto-atoms\";\nimport { findBy } from \"neetocist\";\nimport Search from \"neetomolecules/v2/Search\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useFetchKbArticles } from \"hooks/reactQuery/kbArticle/useArticleFetching\";\nimport {\n MODE,\n MODAL_BOTTOM_MARGIN,\n MODAL_LEFT_OFFSET,\n MODAL_TOP_OFFSET,\n MODAL_TRANSFORM_Y,\n MODAL_TRANSFORM_X,\n} from \"src/v2/components/Editor/CustomExtensions/LinkKbArticles/constants\";\nimport useArticleNavigation from \"src/v2/components/Editor/CustomExtensions/LinkKbArticles/hooks/useArticleNavigation\";\nimport {\n buildArticleFullUrl,\n createArticleOptions,\n} from \"src/v2/components/Editor/CustomExtensions/LinkKbArticles/utils\";\n\nimport ArticlesList from \"./ArticlesList\";\n\nconst ArticlePicker = ({\n mode = MODE.MODAL,\n cursorPos,\n onClose,\n isLoading: externalIsLoading,\n options: externalOptions,\n value,\n onChange,\n placeholder,\n label,\n name,\n className,\n onArticleSelect,\n}) => {\n const { t } = useTranslation();\n const [searchTerm, setSearchTerm] = useState(\"\");\n const modalRef = useRef(null);\n const articlesContainerRef = useRef(null);\n\n const { data: articles = [], isLoading: isLoadingArticles } =\n useFetchKbArticles({\n searchTerm,\n reactQueryOptions: { enabled: !externalOptions },\n });\n\n const isLoading = externalIsLoading || isLoadingArticles;\n\n const selectOptions =\n mode === MODE.SELECT ? createArticleOptions(articles) : [];\n\n const handleModalArticleSelect = article => {\n if (mode !== MODE.MODAL || !article) return;\n\n const articleWithUrl = {\n ...article,\n full_url: buildArticleFullUrl(article.slug),\n };\n\n onArticleSelect(article, articleWithUrl);\n onClose?.();\n };\n\n const { highlightedIndex } = useArticleNavigation({\n articles,\n articlesContainerRef,\n mode,\n onClose,\n handleModalArticleSelect,\n searchTerm,\n });\n\n const handleSelectChange = selectedValueString => {\n const options = externalOptions || selectOptions;\n const selectedOption = findBy({ value: selectedValueString }, options);\n\n if (selectedOption?.data?.type === \"article\" && onChange) {\n onChange(\n { value: selectedOption.value, label: selectedOption.label },\n undefined\n );\n }\n };\n\n useEffect(() => {\n if (mode !== MODE.MODAL || !modalRef.current || !cursorPos) return;\n\n const modal = modalRef.current;\n\n const modalRect = modal.getBoundingClientRect();\n const modalWidth = modalRect.width || 320;\n const modalHeight = modalRect.height || 200;\n\n const maxLeft = window.innerWidth - modalWidth;\n const maxTop = window.innerHeight - modalHeight - MODAL_BOTTOM_MARGIN;\n\n const adjustedLeft = Math.min(cursorPos.left - MODAL_LEFT_OFFSET, maxLeft);\n const adjustedTop = Math.min(cursorPos.top - MODAL_TOP_OFFSET, maxTop);\n\n Object.assign(modal.style, {\n position: \"fixed\",\n top: `${adjustedTop}px`,\n left: `${adjustedLeft}px`,\n transform: `translateY(${MODAL_TRANSFORM_Y}px) translateX(${MODAL_TRANSFORM_X}px)`,\n zIndex: 99999,\n });\n }, [mode, cursorPos]);\n\n useEffect(() => {\n if (mode !== MODE.MODAL) return undefined;\n\n const handleClickOutside = event => {\n if (modalRef.current && !modalRef.current.contains(event.target)) {\n onClose?.();\n }\n };\n\n document.addEventListener(\"mousedown\", handleClickOutside);\n\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [mode, onClose]);\n\n if (mode === MODE.MODAL) {\n return (\n <div className=\"ne-article-picker-popover w-80 border\" ref={modalRef}>\n <div className=\"mb-4\">\n <Search\n autoFocus\n placeholder={t(\"neetoEditor.placeholders.searchArticles\")}\n onSearch={setSearchTerm}\n />\n </div>\n {isLoading ? (\n <div className=\"flex items-center justify-center py-8\">\n <Spinner />\n </div>\n ) : (\n <div>\n <ArticlesList\n {...{ articles, highlightedIndex, searchTerm }}\n containerRef={articlesContainerRef}\n onSelectArticle={handleModalArticleSelect}\n />\n </div>\n )}\n </div>\n );\n }\n\n return (\n <Select\n {...{ className, label, name, placeholder }}\n isSearchable\n isDisabled={isLoading}\n options={externalOptions || selectOptions}\n value={typeof value === \"object\" ? value?.value : value}\n onChange={handleSelectChange}\n />\n );\n};\n\nexport default ArticlePicker;\n","import React from \"react\";\n\nimport { MODE } from \"src/v2/components/Editor/CustomExtensions/LinkKbArticles/constants\";\n\nimport ArticlePicker from \"./ArticlePicker\";\n\nconst ArticleSelector = ({\n editor,\n cursorPos,\n onClose,\n deletedArticlesHook,\n}) => {\n const handleArticleSelect = (article, detailedArticle) => {\n if (!detailedArticle.full_url) return;\n const { from, to } = editor.state.selection;\n\n const linkText = detailedArticle.title || article.title;\n const isDeleted = deletedArticlesHook?.isArticleDeleted(article.id);\n\n const attrs = {\n href: detailedArticle.full_url,\n \"data-neeto-kb-article\": \"true\",\n \"data-article-id\": article.id,\n \"data-article-deleted\": isDeleted ? \"true\" : null,\n title: detailedArticle.title || article.title,\n };\n\n const linkMark = editor.state.schema.marks.link.create(attrs);\n const linkTextWithMark = editor.state.schema.text(linkText, [linkMark]);\n\n const tr = editor.state.tr.replaceWith(from, to, linkTextWithMark);\n editor.view.dispatch(tr);\n editor.view.focus();\n };\n\n return (\n <ArticlePicker\n {...{ cursorPos, deletedArticlesHook, editor, onClose }}\n mode={MODE.MODAL}\n onArticleSelect={handleArticleSelect}\n />\n );\n};\n\nexport default ArticleSelector;\n","import { useCallback } from \"react\";\n\nimport { Button } from \"@bigbinary/neeto-atoms\";\nimport { findTable } from \"@tiptap/pm/tables\";\nimport { useEditorState } from \"@tiptap/react\";\nimport { BubbleMenu } from \"@tiptap/react/menus\";\nimport { Minus, Plus, Trash2 } from \"lucide-react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { setActionPreview } from \"./actionPreviewPlugin\";\nimport { getTableSize } from \"./utils\";\n\nconst Counter = ({\n label,\n onDecrement,\n onDecrementHover,\n onIncrementHover,\n onIncrement,\n decrementLabel,\n incrementLabel,\n isDecrementDisabled,\n}) => (\n <div className=\"neeto-editor-table-menu__group neeto-editor-table-menu__group--counter\">\n <Button\n className=\"ne-toolbar-item\"\n disabled={isDecrementDisabled}\n icon={Minus}\n size=\"sm\"\n tooltipProps={{ content: decrementLabel, position: \"top\" }}\n variant=\"ghost\"\n onClick={onDecrement}\n onMouseEnter={() => !isDecrementDisabled && onDecrementHover(true)}\n onMouseLeave={() => onDecrementHover(false)}\n />\n <span className=\"neeto-editor-table-menu__count\">{label}</span>\n <Button\n className=\"ne-toolbar-item\"\n icon={Plus}\n size=\"sm\"\n tooltipProps={{ content: incrementLabel, position: \"top\" }}\n variant=\"ghost\"\n onClick={onIncrement}\n onMouseEnter={() => onIncrementHover(true)}\n onMouseLeave={() => onIncrementHover(false)}\n />\n </div>\n);\n\nconst TableActionMenu = ({ editor }) => {\n const { t } = useTranslation();\n\n const { rows, columns } = useEditorState({\n editor,\n selector: ({ editor }) => getTableSize(editor),\n }) ?? { rows: 0, columns: 0 };\n\n const getReferenceClientRect = useCallback(() => {\n const table = editor && findTable(editor.state.selection.$from);\n const element = table && editor.view.nodeDOM(table.pos);\n\n return element?.getBoundingClientRect?.() ?? new DOMRect(0, 0, 0, 0);\n }, [editor]);\n\n const shouldShow = useCallback(\n () => editor?.isFocused && editor?.isActive(\"table\"),\n [editor]\n );\n\n if (!editor) return null;\n\n return (\n <BubbleMenu\n {...{ editor, shouldShow }}\n className=\"neeto-editor-table-menu\"\n options={{ placement: \"top-start\", offset: 8, flip: false }}\n style={{ zIndex: 99999 }}\n getReferencedVirtualElement={() => ({\n getBoundingClientRect: getReferenceClientRect,\n })}\n >\n <Counter\n decrementLabel={t(\"neetoEditor.table.deleteRow\")}\n incrementLabel={t(\"neetoEditor.table.insertRow\")}\n isDecrementDisabled={rows <= 1}\n label={t(\"neetoEditor.table.rowCount\", { count: rows })}\n onDecrement={() => editor.chain().focus().deleteRow().run()}\n onIncrement={() => editor.chain().focus().addRowAfter().run()}\n onDecrementHover={isHovering =>\n setActionPreview(editor, isHovering ? \"deleteRow\" : null)\n }\n onIncrementHover={isHovering =>\n setActionPreview(editor, isHovering ? \"insertRow\" : null)\n }\n />\n <Counter\n decrementLabel={t(\"neetoEditor.table.deleteColumn\")}\n incrementLabel={t(\"neetoEditor.table.insertColumn\")}\n isDecrementDisabled={columns <= 1}\n label={t(\"neetoEditor.table.columnCount\", { count: columns })}\n onDecrement={() => editor.chain().focus().deleteColumn().run()}\n onIncrement={() => editor.chain().focus().addColumnAfter().run()}\n onDecrementHover={isHovering =>\n setActionPreview(editor, isHovering ? \"deleteColumn\" : null)\n }\n onIncrementHover={isHovering =>\n setActionPreview(editor, isHovering ? \"insertColumn\" : null)\n }\n />\n <div className=\"neeto-editor-table-menu__group\">\n <Button\n className=\"ne-toolbar-item\"\n icon={Trash2}\n size=\"sm\"\n variant=\"ghost\"\n tooltipProps={{\n content: t(\"neetoEditor.table.delete\"),\n position: \"top\",\n }}\n onClick={() => editor.chain().focus().deleteTable().run()}\n onMouseEnter={() => setActionPreview(editor, \"deleteTable\")}\n onMouseLeave={() => setActionPreview(editor, null)}\n />\n </div>\n </BubbleMenu>\n );\n};\n\nexport default TableActionMenu;\n","import React from \"react\";\n\nimport { Button, Dialog } from \"@bigbinary/neeto-atoms\";\nimport { withT } from \"neetocommons/v2/react-utils\";\n\nconst KbArticleDeletedModal = withT(({ t, isOpen, onClose }) => (\n <Dialog {...{ isOpen, onClose }}>\n <Dialog.Header>\n <Dialog.Title>{t(\"neetoEditor.linkKb.articleDeletedTitle\")}</Dialog.Title>\n </Dialog.Header>\n <Dialog.Body>\n <p>{t(\"neetoEditor.linkKb.articleDeletedDescription\")}</p>\n </Dialog.Body>\n <Dialog.Footer>\n <Button label={t(\"neetoEditor.common.close\")} onClick={onClose} />\n </Dialog.Footer>\n </Dialog>\n));\n\nexport default KbArticleDeletedModal;\n","import React from \"react\";\n\nimport { Button } from \"@bigbinary/neeto-atoms\";\nimport { Form, Input } from \"@bigbinary/neeto-atoms/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { decodeHtmlEntities } from \"src/utils/common\";\nimport { MODE } from \"src/v2/components/Editor/CustomExtensions/LinkKbArticles/constants\";\n\nimport ArticlePicker from \"./ArticlePicker\";\n\nconst KbArticleEdit = ({\n linkAttributes,\n getCurrentTextContent,\n getCurrentArticleOption,\n handleKbArticleSubmit,\n handleSelectChange,\n handleKeyDown,\n isLoadingKbData,\n selectOptions,\n setIsEditing,\n}) => {\n const initialValues = {\n textContent:\n getCurrentTextContent?.() ||\n decodeHtmlEntities(linkAttributes?.title || \"\") ||\n \"\",\n pageSelection: getCurrentArticleOption(),\n };\n\n const { t } = useTranslation();\n\n return (\n <Form\n className=\"w-64\"\n formikProps={{\n initialValues,\n onSubmit: handleKbArticleSubmit,\n enableReinitialize: true,\n }}\n >\n {({ dirty, isSubmitting, setFieldValue, values }) => (\n <div className=\"flex w-full flex-col items-start gap-2\">\n <Input\n required\n unlimitedChars\n className=\"w-full\"\n data-testid=\"neeto-editor-edit-kb-link-text-input\"\n label={t(\"neetoEditor.common.text\")}\n name=\"textContent\"\n placeholder={t(\"neetoEditor.placeholders.enterText\")}\n onKeyDown={handleKeyDown}\n />\n <ArticlePicker\n className=\"w-full\"\n data-testid=\"neeto-editor-edit-kb-link-page-select\"\n isLoading={isLoadingKbData}\n label={t(\"neetoEditor.linkKb.articleLabel\")}\n mode={MODE.SELECT}\n name=\"pageSelection\"\n options={selectOptions}\n placeholder={t(\"neetoEditor.linkKb.selectArticle\")}\n value={values.pageSelection}\n onChange={value => handleSelectChange(value, { setFieldValue })}\n />\n <div className=\"ne-link-popover__edit-prompt-buttons\">\n <Button\n data-testid=\"neeto-editor-edit-kb-link-done\"\n disabled={!dirty}\n label={t(\"neetoEditor.common.done\")}\n loading={isSubmitting}\n size=\"sm\"\n type=\"submit\"\n />\n <Button\n data-testid=\"neeto-editor-edit-kb-link-cancel\"\n label={t(\"neetoEditor.common.cancel\")}\n size=\"sm\"\n variant=\"ghost\"\n onClick={() => setIsEditing(false)}\n />\n </div>\n </div>\n )}\n </Form>\n );\n};\n\nexport default KbArticleEdit;\n","import { Button } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { BookOpen, Pencil } from \"lucide-react\";\nimport { withT } from \"neetocommons/v2/react-utils\";\nimport CopyToClipboardButton from \"neetomolecules/v2/CopyToClipboardButton\";\n\nimport { decodeHtmlEntities } from \"src/utils/common\";\n\nconst KbArticleView = withT(\n ({ t, linkAttributes, isDeleted, onEdit, onDeletedClick, currentText }) => (\n <div>\n <div className=\"flex items-center gap-3\">\n <BookOpen className=\"text-gray-600\" size={16} />\n <a\n href={linkAttributes?.href}\n rel=\"noreferrer\"\n target=\"_blank\"\n className={classnames(\"ne-link-popover__kb-article-link\", {\n \"ne-link-popover__kb-article-link--deleted\": isDeleted,\n })}\n onClick={event => {\n if (!isDeleted) return;\n event.preventDefault();\n onDeletedClick?.();\n }}\n >\n {currentText ||\n decodeHtmlEntities(linkAttributes?.title || \"\") ||\n linkAttributes?.href}\n </a>\n <div className=\"flex items-center gap-0.5\">\n <CopyToClipboardButton\n size=\"sm\"\n value={linkAttributes?.href}\n variant=\"ghost\"\n />\n <Button\n className=\"ne-link-popover__option-button mx-0\"\n data-testid=\"neeto-editor-link-popover-edit\"\n icon={Pencil}\n size=\"sm\"\n variant=\"ghost\"\n tooltipProps={{\n content: t(\"neetoEditor.common.edit\"),\n position: \"top\",\n }}\n onClick={onEdit}\n />\n </div>\n </div>\n {isDeleted && (\n <div className=\"mt-2 rounded p-2 text-sm\">\n {t(\"neetoEditor.linkKb.articleDeletedDescription\")}\n </div>\n )}\n </div>\n )\n);\n\nexport default KbArticleView;\n","import { useEffect, useState, useRef } from \"react\";\n\nimport { getMarkRange, getMarkType } from \"@tiptap/react\";\nimport { Button, Checkbox } from \"neetoatoms\";\nimport { Form, Input } from \"neetoatoms/formik\";\nimport { findBy } from \"neetocist\";\nimport { useOnClickOutside } from \"neetocommons/v2/react-utils\";\nimport { equals, isNil } from \"ramda\";\nimport { createPortal } from \"react-dom\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useFetchKbArticles } from \"hooks/reactQuery/kbArticle/useArticleFetching\";\nimport { decodeHtmlEntities } from \"src/utils/common\";\nimport { LINK_VALIDATION_SCHEMA } from \"src/v2/components/Editor/constants\";\nimport {\n buildArticleFullUrl,\n createArticleOptions,\n} from \"src/v2/components/Editor/CustomExtensions/LinkKbArticles/utils\";\nimport { getLinkPopoverPosition } from \"src/v2/components/Editor/Menu/Fixed/utils\";\nimport { validateAndFormatUrl } from \"src/v2/components/Editor/utils\";\n\nimport KbArticleDeletedModal from \"./CustomExtensions/LinkKbArticles/KbArticleDeletedModal\";\nimport KbArticleEdit from \"./CustomExtensions/LinkKbArticles/KbArticleEdit\";\nimport KbArticleView from \"./CustomExtensions/LinkKbArticles/KbArticleView\";\n\nconst LinkPopOver = ({ editor, deletedArticlesHook, containerRef }) => {\n const { view } = editor || {};\n const { from } = editor.state.selection;\n const initialTextContent = view?.state?.doc?.nodeAt(from)?.text || \"\";\n\n const [arrowPosition, setArrowPosition] = useState({ top: 0, left: 0 });\n const [popoverPosition, setPopoverPosition] = useState({ top: 0, left: 0 });\n const [isEditing, setIsEditing] = useState(false);\n const [isLinkActive, setIsLinkActive] = useState(editor?.isActive(\"link\"));\n const [linkAttributes, setLinkAttributes] = useState(\n editor?.getAttributes(\"link\")\n );\n\n const [showDeletedModal, setShowDeletedModal] = useState(false);\n\n const popoverRef = useRef(null);\n\n const { t } = useTranslation();\n const isNeetoKbArticle = linkAttributes?.[\"data-neeto-kb-article\"] === \"true\";\n\n const { data: articles = [], isLoading: isLoadingKbData } =\n useFetchKbArticles({\n searchTerm: \"\",\n reactQueryOptions: { enabled: isEditing && isNeetoKbArticle },\n });\n\n const selectOptions = createArticleOptions(articles);\n\n const handleSelectChange = (value, { setFieldValue }) => {\n const selectedOption = findBy({ value: value?.value }, selectOptions);\n\n if (selectedOption?.data?.type === \"article\") {\n setFieldValue(\"pageSelection\", value);\n }\n };\n\n const updatePopoverPosition = () => {\n if (!view) return;\n\n const { arrowPosition, popoverPosition } = getLinkPopoverPosition(\n editor,\n popoverRef\n );\n\n setPopoverPosition({\n top: parseInt(popoverPosition.top),\n left: parseInt(popoverPosition.left),\n });\n\n setArrowPosition({\n top: parseInt(arrowPosition.top),\n left: parseInt(arrowPosition.left),\n });\n };\n\n const handleUnlink = () =>\n editor.chain().focus().extendMarkRange(\"link\").unsetLink().run();\n\n const removePopover = () => {\n setIsEditing(false);\n setIsLinkActive(false);\n };\n\n const popoverStyle = {\n display: \"block\",\n position: \"fixed\",\n top: popoverPosition.top,\n left: popoverPosition.left,\n transform: `translateY(52px) translateX(${isEditing ? \"8px\" : \"3px\"})`,\n };\n\n const handleSubmit = ({ textContent, urlString, openInNewTab }) => {\n const formattedUrl = validateAndFormatUrl(urlString);\n if (equals(textContent, initialTextContent)) {\n editor\n .chain()\n .focus()\n .extendMarkRange(\"link\")\n .setLink({\n href: formattedUrl,\n target: openInNewTab ? \"_blank\" : \"_self\",\n })\n .run();\n\n setIsEditing(false);\n\n return;\n }\n const { state, dispatch } = editor.view;\n const type = getMarkType(\"link\", state.schema);\n const { $to } = state.selection;\n const { from = null, to = null } = getMarkRange($to, type) || {};\n\n if (isNil(from) || isNil(to)) return;\n\n const attrs = {\n href: formattedUrl,\n target: openInNewTab ? \"_blank\" : \"_self\",\n };\n\n const linkMark = state.schema.marks.link.create(attrs);\n const linkTextWithMark = state.schema.text(textContent, [linkMark]);\n\n const tr = state.tr.replaceWith(from, to, linkTextWithMark);\n\n dispatch(tr);\n\n setIsEditing(false);\n editor.view.focus();\n editor.commands.extendMarkRange(\"link\");\n };\n\n const handleKbArticleSubmit = ({ textContent, pageSelection }) => {\n if (!pageSelection || pageSelection === \"\") {\n const { state, dispatch } = editor.view;\n const type = getMarkType(\"link\", state.schema);\n const { $to } = state.selection;\n const { from = null, to = null } = getMarkRange($to, type) || {};\n\n if (isNil(from) || isNil(to)) return;\n\n const articleId = linkAttributes?.[\"data-article-id\"];\n const isDeleted = deletedArticlesHook?.isArticleDeleted(articleId);\n\n const attrs = {\n href: linkAttributes?.href,\n \"data-neeto-kb-article\": linkAttributes?.[\"data-neeto-kb-article\"],\n \"data-article-id\": articleId,\n \"data-article-deleted\": isDeleted ? \"true\" : null,\n title: textContent || decodeHtmlEntities(linkAttributes?.title || \"\"),\n };\n\n const linkMark = state.schema.marks.link.create(attrs);\n const linkTextWithMark = state.schema.text(textContent, [linkMark]);\n\n const tr = state.tr.replaceWith(from, to, linkTextWithMark);\n dispatch(tr);\n\n setIsEditing(false);\n editor.view.focus();\n editor.commands.extendMarkRange(\"link\");\n\n return;\n }\n\n const selectedOption = findBy(\n { value: pageSelection?.value },\n selectOptions\n );\n\n if (!selectedOption) return;\n\n const { data } = selectedOption;\n\n if (data?.type === \"article\") {\n const full_url = buildArticleFullUrl(data.slug);\n\n if (full_url) {\n const { state, dispatch } = editor.view;\n const type = getMarkType(\"link\", state.schema);\n const { $to } = state.selection;\n const { from = null, to = null } = getMarkRange($to, type) || {};\n\n if (isNil(from) || isNil(to)) return;\n\n const isDeleted = deletedArticlesHook?.isArticleDeleted(data.id);\n\n const attrs = {\n href: full_url,\n \"data-neeto-kb-article\": \"true\",\n \"data-article-id\": data.id,\n \"data-article-deleted\": isDeleted ? \"true\" : null,\n title: decodeHtmlEntities(data.title || \"\"),\n };\n\n const linkMark = state.schema.marks.link.create(attrs);\n const linkTextWithMark = state.schema.text(\n textContent || decodeHtmlEntities(data.title || \"\"),\n [linkMark]\n );\n\n const tr = state.tr.replaceWith(from, to, linkTextWithMark);\n dispatch(tr);\n\n setIsEditing(false);\n editor.view.focus();\n editor.commands.extendMarkRange(\"link\");\n }\n }\n };\n\n const handleKeyDown = event =>\n equals(event.key, \"Escape\") && setIsEditing(false);\n\n useOnClickOutside(popoverRef, removePopover, { enabled: true });\n\n useEffect(() => {\n const isActive = editor?.isActive(\"link\");\n\n setIsLinkActive(isActive);\n if (isActive) {\n updatePopoverPosition();\n const currentLinkAttributes = editor?.getAttributes(\"link\");\n\n setLinkAttributes(currentLinkAttributes);\n }\n }, [view?.state?.selection?.$from?.pos, isEditing]);\n\n const getCurrentArticleOption = () => {\n const articleId = linkAttributes?.[\"data-article-id\"];\n if (!articleId) return \"\";\n\n const currentArticleOption = findBy(\n { data: { type: \"article\", id: articleId } },\n selectOptions || []\n );\n\n if (!currentArticleOption && linkAttributes?.title) {\n return {\n label: decodeHtmlEntities(linkAttributes.title),\n value: articleId,\n };\n }\n\n return currentArticleOption || \"\";\n };\n\n const getCurrentTextContent = () => {\n const { state } = editor.view;\n const type = getMarkType(\"link\", state.schema);\n const { $to } = state.selection;\n const { from = null, to = null } = getMarkRange($to, type) || {};\n\n if (from !== null && to !== null) {\n return state.doc.textBetween(from, to);\n }\n const { $from } = state.selection;\n\n return state.doc.textBetween($from.pos, $to.pos);\n };\n\n const renderEditingMode = () => {\n const initialValues = {\n textContent: initialTextContent,\n urlString: linkAttributes?.href || \"\",\n openInNewTab: linkAttributes?.target === \"_blank\",\n };\n\n return (\n <Form\n key={`${linkAttributes?.href}-${linkAttributes?.target}`}\n formikProps={{\n initialValues,\n onSubmit: handleSubmit,\n validationSchema: LINK_VALIDATION_SCHEMA,\n }}\n >\n {({ dirty, isSubmitting, setFieldValue, values }) => (\n <>\n <Input\n required\n data-testid=\"neeto-editor-edit-link-text-input\"\n label={t(\"neetoEditor.common.text\")}\n name=\"textContent\"\n placeholder={t(\"neetoEditor.placeholders.enterText\")}\n style={{ width: \"250px\" }}\n onKeyDown={handleKeyDown}\n />\n <Input\n autoFocus\n required\n className=\"ne-link-popover__url-input\"\n data-testid=\"neeto-editor-edit-link-url-input\"\n label={t(\"neetoEditor.common.url\")}\n name=\"urlString\"\n placeholder={t(\"neetoEditor.placeholders.url\")}\n style={{ width: \"250px\" }}\n onKeyDown={handleKeyDown}\n />\n <Checkbox\n checked={values.openInNewTab}\n className=\"ne-link-popover__checkbox\"\n label={t(\"neetoEditor.common.openInNewTab\")}\n onCheckedChange={checked => {\n setFieldValue(\"openInNewTab\", Boolean(checked));\n }}\n />\n <div className=\"ne-link-popover__edit-prompt-buttons\">\n <Button\n data-testid=\"neeto-editor-edit-link\"\n disabled={!dirty}\n label={t(\"neetoEditor.menu.link\")}\n loading={isSubmitting}\n size=\"sm\"\n type=\"submit\"\n />\n <Button\n data-testid=\"neeto-editor-edit-link-cancel\"\n label={t(\"neetoEditor.common.cancel\")}\n size=\"sm\"\n variant=\"ghost\"\n onClick={() => setIsEditing(false)}\n />\n </div>\n </>\n )}\n </Form>\n );\n };\n\n const renderEditingModeForKbArticle = () => (\n <KbArticleEdit\n {...{\n getCurrentArticleOption,\n getCurrentTextContent,\n handleKbArticleSubmit,\n handleKeyDown,\n handleSelectChange,\n isLoadingKbData,\n linkAttributes,\n selectOptions,\n setIsEditing,\n }}\n />\n );\n\n const renderViewModeForKbArticle = () => {\n const articleId = linkAttributes?.[\"data-article-id\"];\n const isDeleted = deletedArticlesHook?.isArticleDeleted(articleId);\n\n return (\n <KbArticleView\n {...{ isDeleted, linkAttributes }}\n currentText={getCurrentTextContent()}\n onEdit={() => setIsEditing(true)}\n onDeletedClick={() => {\n removePopover();\n setShowDeletedModal(true);\n }}\n />\n );\n };\n\n const renderViewMode = () => (\n <>\n <a href={linkAttributes?.href} rel=\"noreferrer noopener\" target=\"_blank\">\n {linkAttributes?.href}\n </a>\n {\" - \"}\n <Button\n className=\"ne-link-popover__option-button\"\n data-testid=\"neeto-editor-link-popover-edit\"\n label={t(\"neetoEditor.common.edit\")}\n size=\"sm\"\n variant=\"link\"\n onClick={() => setIsEditing(true)}\n />\n <span>|</span>\n <Button\n className=\"ne-link-popover__option-button\"\n data-testid=\"neeto-editor-link-popover-unlink\"\n label={t(\"neetoEditor.common.unlink\")}\n size=\"sm\"\n variant=\"link\"\n onClick={handleUnlink}\n />\n </>\n );\n\n const renderPopoverContent = () => {\n if (isEditing) {\n return isNeetoKbArticle\n ? renderEditingModeForKbArticle()\n : renderEditingMode();\n }\n\n return isNeetoKbArticle ? renderViewModeForKbArticle() : renderViewMode();\n };\n\n return (\n <>\n {createPortal(\n isLinkActive ? (\n <>\n <div\n className=\"ne-link-arrow fade-in\"\n style={{ top: arrowPosition.top, left: arrowPosition.left }}\n />\n <div\n className=\"ne-link-popover fade-in\"\n id=\"ne-link-view-popover\"\n ref={popoverRef}\n style={popoverStyle}\n >\n {renderPopoverContent()}\n </div>\n </>\n ) : null,\n containerRef?.current ?? document.body\n )}\n <KbArticleDeletedModal\n isOpen={showDeletedModal}\n onClose={() => setShowDeletedModal(false)}\n />\n </>\n );\n};\n\nexport default LinkPopOver;\n","import {\n forwardRef,\n useImperativeHandle,\n useState,\n useRef,\n memo,\n useEffect,\n} from \"react\";\n\nimport { useEditor, EditorContent, useEditorState } from \"@tiptap/react\";\nimport classnames from \"classnames\";\nimport { Label } from \"neetoatoms\";\nimport { isNotEmpty, noop, slugify } from \"neetocist\";\nimport { useFuncDebounce } from \"neetocommons/v2/react-utils\";\nimport { createPortal } from \"react-dom\";\n\nimport { useDeletedArticles } from \"hooks/reactQuery/kbArticle/useDeletedArticles\";\nimport useEditorWarnings from \"hooks/useEditorWarnings\";\nimport { EDITOR_OPTIONS, EDITOR_SIZES } from \"src/common/constants\";\nimport { removeEmptyTags } from \"src/utils\";\nimport ErrorWrapper from \"src/v2/components/Common/ErrorWrapper\";\nimport { DEFAULT_EDITOR_OPTIONS } from \"src/v2/components/Editor/constants\";\nimport {\n clipboardTextParser,\n getEditorStyles,\n handlePaste,\n setInitialPosition,\n transformPastedHTML,\n} from \"src/v2/components/Editor/utils\";\n\nimport CharacterCountWrapper from \"./CustomExtensions/CharacterCount\";\nimport useCustomExtensions from \"./CustomExtensions/hooks/useCustomExtensions\";\nimport ArticleSelector from \"./CustomExtensions/LinkKbArticles/ArticleSelector\";\nimport TableActionMenu from \"./CustomExtensions/Table/TableActionMenu\";\nimport LinkPopOver from \"./LinkPopOver\";\nimport MediaUploader from \"./MediaUploader\";\nimport Menu from \"./Menu\";\nimport MenuDynamicVariables from \"./Menu/DynamicVariables\";\nimport LinkAddPopOver from \"./Menu/Fixed/components/LinkAddPopOver\";\n\nimport Attachments from \"../Attachments\";\n\nconst Editor = (\n {\n addonCommands = [],\n addons = [],\n attachments = [],\n attachmentsConfig = {},\n autoFocus = false,\n className,\n contentClassName,\n contentWrapperClassName,\n errorWrapperClassName,\n contentAttributes = {},\n menuClassName,\n attachmentsClassName,\n isMenuIndependent = false,\n defaults = DEFAULT_EDITOR_OPTIONS,\n editorSecrets = {},\n error = null,\n extensions = [],\n hideSlashCommands = true,\n appendSuggestionsToBody = false,\n initialValue = \"\",\n isCharacterCountActive = false,\n keyboardShortcuts = [],\n label = \"\",\n mentions = [],\n menuType = \"fixed\",\n placeholder,\n required = false,\n rows = 6,\n tooltips = {},\n variables = [],\n disableTrimOnBlur = false,\n onChange = noop,\n onFocus = noop,\n onBlur = noop,\n onSubmit = noop,\n onChangeAttachments = noop,\n children,\n openImageInNewTab = true,\n openLinkInNewTab = false,\n showAssetLibrary = true,\n collaborationProvider = null,\n enableReactNodeViewOptimization = false,\n size = EDITOR_SIZES.SMALL,\n otherAttachmentProps = {},\n ...otherProps\n },\n ref\n) => {\n const [isAttachmentsUploading, setIsAttachmentsUploading] = useState(false);\n const wrapperRef = useRef(null);\n const isArticleOptActive = addons.includes(EDITOR_OPTIONS.NEETO_KB_ARTICLE);\n const isAttachmentsActive = addons.includes(EDITOR_OPTIONS.ATTACHMENTS);\n const isInlineAttachmentsActive = addons.includes(\n EDITOR_OPTIONS.INLINE_ATTACHMENTS\n );\n\n // Inline attachments reuse the attachments toolbar button and slash command.\n const menuAddons =\n isInlineAttachmentsActive && !isAttachmentsActive\n ? [...addons, EDITOR_OPTIONS.ATTACHMENTS]\n : addons;\n\n const isMediaUploaderActive =\n addons.includes(EDITOR_OPTIONS.IMAGE_UPLOAD) ||\n addons.includes(EDITOR_OPTIONS.VIDEO_UPLOAD);\n const isFixedMenuActive = menuType === \"fixed\";\n const isBubbleMenuActive = menuType === \"bubble\";\n const isSlashCommandsActive =\n !hideSlashCommands || (isBubbleMenuActive && !hideSlashCommands);\n const isPlaceholderActive = !!placeholder || isSlashCommandsActive;\n const [isAddLinkActive, setIsAddLinkActive] = useState(false);\n const [mediaUploader, setMediaUploader] = useState({\n image: false,\n video: false,\n });\n\n const [neetoKbArticleState, setNeetoKbArticleState] = useState({\n active: false,\n editor: null,\n range: null,\n cursorPos: null,\n });\n\n const addAttachmentsRef = useRef(null);\n const inlineAttachmentInputRef = useRef(null);\n const attachmentsCountRef = useRef(attachments.length);\n attachmentsCountRef.current = attachments.length;\n\n const attachmentProps = {\n handleUploadAttachments: () =>\n isInlineAttachmentsActive\n ? inlineAttachmentInputRef.current?.click()\n : addAttachmentsRef.current?.handleUploadAttachments(),\n isDisabled: isAttachmentsUploading,\n };\n\n const inlineAttachmentsOptions = {\n config: attachmentsConfig,\n getExternalAttachmentsCount: () => attachmentsCountRef.current,\n setIsUploading: setIsAttachmentsUploading,\n };\n\n const debouncedOnChangeHandler = useFuncDebounce(({ editor }) => {\n if (!editor.isDestroyed) onChange(editor.getHTML());\n }, 100);\n\n useEffect(() => debouncedOnChangeHandler.cancel, []);\n\n const handleBlur = props => {\n const { editor } = props;\n if (!disableTrimOnBlur) {\n const content = editor.getHTML();\n const trimmedContent = removeEmptyTags(content);\n\n if (content !== trimmedContent) onChange(trimmedContent);\n }\n onBlur(props);\n };\n\n const customExtensions = useCustomExtensions({\n placeholder,\n extensions,\n mentions,\n variables,\n isSlashCommandsActive,\n options: [...defaults, ...menuAddons],\n addonCommands,\n onSubmit,\n keyboardShortcuts,\n setMediaUploader,\n setIsAddLinkActive,\n attachmentProps,\n openImageInNewTab,\n openLinkInNewTab,\n enableReactNodeViewOptimization,\n collaborationProvider,\n setIsNeetoKbArticleActive: setNeetoKbArticleState,\n containerRef: wrapperRef,\n appendSuggestionsToBody,\n inlineAttachmentsOptions,\n });\n useEditorWarnings({ initialValue });\n\n const editorClasses = classnames(\"neeto-editor\", {\n \"fixed-menu-active\": isFixedMenuActive,\n \"bubble-menu-active\": isBubbleMenuActive,\n \"placeholder-active\": isPlaceholderActive,\n \"attachments-active\": isAttachmentsActive,\n \"neeto-editor-size--large\": size === EDITOR_SIZES.LARGE,\n \"neeto-editor-size--medium\": size === EDITOR_SIZES.MEDIUM,\n \"neeto-editor-size--small\": size === EDITOR_SIZES.SMALL,\n [contentClassName]: contentClassName,\n });\n\n const ariaAttributes = {\n role: \"textbox\",\n \"aria-label\": \"editor-content\",\n \"aria-multiline\": \"true\",\n \"aria-labelledby\": \"labelId\",\n \"aria-required\": required,\n \"aria-roledescription\": \"editor\",\n };\n\n const editor = useEditor({\n extensions: customExtensions,\n content: initialValue,\n injectCSS: false,\n immediatelyRender: false,\n shouldRerenderOnTransaction: false,\n autofocus: autoFocus && \"end\",\n editorProps: {\n attributes: {\n class: editorClasses,\n style: getEditorStyles({ rows }),\n \"data-testid\": \"neeto-editor-content\",\n ...ariaAttributes,\n ...contentAttributes,\n },\n clipboardTextParser,\n handlePaste,\n transformPastedHTML,\n },\n parseOptions: { preserveWhitespace: true },\n onCreate: ({ editor }) => !autoFocus && setInitialPosition(editor),\n onUpdate: debouncedOnChangeHandler,\n onFocus,\n onBlur: handleBlur,\n });\n\n useEditorState({\n editor,\n selector: () => ({\n isMediaUploaderActive,\n isLinkActive: editor?.isActive(\"link\"),\n }),\n });\n\n const deletedArticlesHook = useDeletedArticles(\n isArticleOptActive ? editor : null\n );\n\n useImperativeHandle(\n ref,\n () => ({ editor, focus: () => editor?.commands?.focus?.() }),\n [editor]\n );\n\n useEffect(() => {\n if (!editor && neetoKbArticleState.active) {\n setNeetoKbArticleState({\n active: false,\n editor: null,\n range: null,\n cursorPos: null,\n });\n }\n }, [editor, neetoKbArticleState.active]);\n\n useEffect(() => {\n if (!editor || !deletedArticlesHook.deletedArticleIds.size) return;\n\n editor.commands.updateDeletedArticles(\n deletedArticlesHook.deletedArticleIds\n );\n }, [editor, deletedArticlesHook.deletedArticleIds]);\n\n const handleInlineAttachmentsChange = event => {\n editor?.commands.uploadAttachments(event.target.files);\n event.target.value = null;\n };\n\n return (\n <div\n data-testid=\"neeto-editor-wrapper\"\n ref={wrapperRef}\n className={classnames(\"ne-editor--v2\", {\n [className]: className,\n \"ne-attachments__wrapper\": isAttachmentsActive,\n })}\n >\n {label && (\n <Label\n {...{ required }}\n className=\"mb-2\"\n data-testid={`${slugify(label)}-editor-label`}\n >\n {label}\n </Label>\n )}\n <ErrorWrapper {...{ error }} className={errorWrapperClassName}>\n <>\n {menuType !== \"none\" && (\n <Menu\n {...{\n addonCommands,\n attachmentProps,\n defaults,\n editor,\n editorSecrets,\n mentions,\n menuType,\n neetoKbArticleState,\n openLinkInNewTab,\n showAssetLibrary,\n tooltips,\n variables,\n }}\n addons={menuAddons}\n className={menuClassName}\n containerRef={wrapperRef}\n isIndependant={isMenuIndependent}\n setIsNeetoKbArticleActive={setNeetoKbArticleState}\n />\n )}\n {children}\n {menuType === \"none\" && (\n <div className=\"neeto-editor-fixed-menu-standalone-variables-wrapper\">\n <MenuDynamicVariables {...{ editor, variables }} standalone />\n </div>\n )}\n <EditorContent\n className={contentWrapperClassName}\n {...{ editor, ...otherProps }}\n />\n {isMediaUploaderActive && (\n <MediaUploader\n {...{ editor, mediaUploader, showAssetLibrary }}\n onClose={() => setMediaUploader({ image: false, video: false })}\n />\n )}\n {isInlineAttachmentsActive && (\n <input\n hidden\n data-testid=\"neeto-editor-inline-attachments-input\"\n multiple={attachmentsConfig.restrictions?.maxNumberOfFiles !== 1}\n ref={inlineAttachmentInputRef}\n type=\"file\"\n accept={attachmentsConfig.restrictions?.allowedFileTypes?.join(\n \",\"\n )}\n onChange={handleInlineAttachmentsChange}\n />\n )}\n {isAttachmentsActive &&\n (!isInlineAttachmentsActive || isNotEmpty(attachments)) && (\n <Attachments\n {...{ attachments }}\n config={attachmentsConfig}\n dragDropRef={isInlineAttachmentsActive ? null : wrapperRef}\n isIndependent={false}\n ref={addAttachmentsRef}\n setIsUploading={setIsAttachmentsUploading}\n className={classnames(\"ne-attachments--integrated\", {\n [attachmentsClassName]: attachmentsClassName,\n })}\n onChange={onChangeAttachments}\n {...otherAttachmentProps}\n />\n )}\n {editor?.isActive(\"link\") && (\n <LinkPopOver\n {...{ deletedArticlesHook, editor }}\n containerRef={wrapperRef}\n />\n )}\n {isAddLinkActive && (\n <LinkAddPopOver\n {...{\n editor,\n isAddLinkActive,\n openLinkInNewTab,\n setIsAddLinkActive,\n }}\n containerRef={wrapperRef}\n />\n )}\n {neetoKbArticleState.active &&\n neetoKbArticleState.cursorPos &&\n createPortal(\n <ArticleSelector\n {...{ deletedArticlesHook }}\n cursorPos={neetoKbArticleState.cursorPos}\n editor={neetoKbArticleState.editor}\n onClose={() =>\n setNeetoKbArticleState({\n active: false,\n editor: null,\n range: null,\n cursorPos: null,\n })\n }\n />,\n wrapperRef.current ?? document.body\n )}\n <TableActionMenu {...{ editor }} appendTo={wrapperRef} />\n {isCharacterCountActive && <CharacterCountWrapper {...{ editor }} />}\n </>\n </ErrorWrapper>\n </div>\n );\n};\n\nEditor.displayName = \"NeetoEditor\";\n\nexport default memo(forwardRef(Editor));\n"],"names":["ErrorWrapper","_ref","error","children","className","isError","isNotPresent","wrapperClasses","classnames","_defineProperty","getErrorMessage","message","is","String","Array","Object","_jsxs","_Fragment","_jsx","memo","CharacterCountWrapper","editor","characters","useEditorState","selector","_ref2","_editor$storage$chara","storage","characterCount","NODE_NAME","DEFAULT_INLINE_PREVIEW_MAX_SIZE","PDF_THUMBNAIL_WIDTH","PREVIEW_TYPES","IMAGE","VIDEO","PDF","INLINE_PREVIEW_IMAGE_TYPES","PDF_CONTENT_TYPE","_regenerator","e","t","r","Symbol","n","iterator","o","toStringTag","i","c","prototype","Generator","u","create","_regeneratorDefine2","f","p","y","G","v","a","d","bind","length","l","TypeError","call","done","value","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","w","m","defineProperty","_regeneratorDefine","_invoke","enumerable","configurable","writable","loadPdfjs","_asyncToGenerator","_callee","_globalThis$pdfjsWork","_yield$Promise$all","_yield$Promise$all2","pdfjs","worker","_context","Promise","all","_slicedToArray","globalThis","pdfjsWorker","apply","arguments","canvasToBlob","canvas","resolve","toBlob","getPreviewType","maxSize","contentType","size","thumbnailUrl","isPresent","Number","includes","startsWith","getPreviewSrc","_ref3","previewType","url","uploadFile","_ref4","_callee2","file","endpoint","_data$blob_url","_data$signed_id","_yield$DirectUpload$c","_yield$DirectUpload$c2","data","response","_context2","DirectUpload","_objectWithoutProperties","_excluded","blob_url","signedId","signed_id","_x","_x2","generatePdfThumbnail","_ref5","_callee3","pdf","page","_page$getViewport","width","viewport","blob","name","_t","_t2","_context3","arrayBuffer","getDocument","promise","getPage","getViewport","scale","document","createElement","height","render","canvasContext","getContext","concat","replace","File","type","destroy","_x3","findNodePosByUploadId","doc","uploadId","foundPos","descendants","node","pos","_node$attrs","attrs","countAttachmentNodes","nodeName","count","Preview","lazy","AttachmentComponent","extension","deleteNode","_useTranslation","useTranslation","_useState","useState","_useState2","isPreviewOpen","setIsPreviewOpen","filename","attachment","options","previewMaxSize","previewSrc","canView","checkPreviewAvailability","actions","key","icon","Eye","label","onClick","Download","downloadFile","ExternalLink","window","open","isEditable","Trash2","filter","Boolean","NodeViewWrapper","Spinner","noop","controls","playsInline","preload","src","alt","draggable","FileIcon","fileName","convertToFileSize","map","Tooltip","content","position","Button","variant","Suspense","fallback","attachments","selectedAttachment","setDidFetchPreviewBundle","setSelectedAttachment","onClose","dataAttribute","attribute","parseHTML","element","getAttribute","renderHTML","attributes","uploadThumbnail","thumbnail","console","Node","group","atom","selectable","addOptions","config","getExternalAttachmentsCount","setIsUploading","addStorage","pendingUploadsCount","addAttributes","rendered","tag","HTMLAttributes","linkAttrs","href","target","rel","preview","playsinline","loading","_objectSpread","_toConsumableArray","addNodeView","ReactNodeViewRenderer","addCommands","_this","uploadAttachments","files","tr","setMeta","uploadFiles","from","onCreate","buildFileUploadConfig","directUploadEndpoint","updateUploadingState","delta","replacePlaceholder","isDestroyed","state","view","nodeAt","setNodeMarkup","undefined","nodeSize","dispatch","uploadPlaceholder","_ref6","shouldGenerateThumbnail","uploaded","_t3","Toastr","_x4","selectedFiles","selectFiles","previousAttachmentsCount","isEmpty","placeholders","getRandomString","nodes","_ref7","chain","focus","insertContentAt","selection","run","forEach","placeholder","addProseMirrorPlugins","Plugin","props","handleDrop","event","_slice","moved","_event$dataTransfer$f","_event$dataTransfer","dataTransfer","coordinates","posAtCoords","left","clientX","top","clientY","preventDefault","handlePaste","_view","_event$clipboardData$","_event$clipboardData","clipboardData","test","Extension","types","addGlobalAttributes","backgroundColor","style","setHighlightInternal","color","setMark","unsetHighlightInternal","BulletList","configure","itemTypeName","CalloutComponent","_findBy","Icon","findBy","CALLOUT_TYPES","Megaphone","NodeViewContent","inline","defining","contentElement","svgString","ReactDOM","renderToStaticMarkup","svgContainer","innerHTML","svgNode","firstChild","mergeAttributes","setCallout","_attributes$type","toggleWrap","command","$from","calloutNode","depth","after","nextNode","insert","schema","paragraph","addKeyboardShortcuts","_this2","Backspace","_this2$editor","commands","_state$selection","empty","parentOffset","currentNode","parent","lift","ArrowDown","_this2$editor2","_state$selection2","isAtEnd","calloutContent","currentNodeIndex","index","isLastNode","childCount","endPos","setTextSelection","codeBlockHighlightKey","PluginKey","createLineDecoration","lineNumber","Decoration","widget","line","setAttribute","toString","lineElement","domAtPos","Element","lineHeight","getComputedStyle","getLineRanges","lines","textContent","split","currentPos","to","codeBlockHighlightPlugin","init","DecorationSet","set","mapping","getMeta","decorations","highlightedLines","lineRanges","push","getState","SORTED_LANGUAGE_LIST","lowlight","listLanguages","sort","LINE_NUMBER_OPTIONS","Menu","DropdownMenu","MenuItem","CodeBlockComponent","_node$content","updateAttributes","keyword","setKeyword","_useState3","_useState4","showHighlightButton","setShowHighlightButton","_useState5","linenumbers","_useState6","showLineNumbers","setShowLineNumbers","ref","useRef","filteredAndSortedLanguageList","language","handleLanguageSelect","_editor$commands","handleContentMount","current","offsetHeight","minHeight","handleSelectionChange","useCallback","_editor$state$selecti","isCodeBlockSelected","isActive","useEffect","on","off","handleHighlight","_editor$state$selecti2","codeBlock","codeBlockStart","start","textBeforeSelection","textBetween","startLine","selectedText","selectedLines","newSelectedLines","_","currentHighlightedLines","overlapLines","intersection","difference","union","contentEditable","buttonProps","dropdownProps","ChevronDown","Input","autoFocus","onChange","stopPropagation","CopyToClipboardButton","text","Highlighter","tooltipProps","as","CodeBlockLowlight","extend","_this$parent","_element$dataset$high","dataset","_attributes$highlight","_attributes$highlight2","join","_this$parent2","defaultLanguage","pasteUnformatted","navigator","clipboard","readText","insertContent","DeletedArticleDecoration","deletedArticleIds","Set","marks","mark","articleId","has","decoration","updateDeletedArticles","updateState","EditorContainer","containerRef","appendSuggestionsToBody","onBeforeCreate","EmojiPickerPluginKey","EmojiPicker","suggestion","startOfLine","pluginKey","items","reactRenderer","popup","onStart","ReactRenderer","EmojiPickerMenu","tippy","theme","getReferenceClientRect","clientRect","appendTo","getSuggestionAppendTo","showOnCreate","interactive","trigger","placement","zIndex","onKeyDown","_reactRenderer$ref","onExit","Suggestion","DEFAULT_EMOJI_PRIORITIES_LIST","EMOJI_QUERY_REGEX","filterEmojiSuggestions","suggestions","frequentlyUsedEmojis","mergedEmojiList","emoji","b","aIndex","indexOf","id","bIndex","slice","_callSuper","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","constructor","valueOf","EmojiSuggestionMenu","_React$Component","_classCallCheck","_len","args","_key","isLoading","selectedIndex","emojiSuggestions","_yield$emojiPickerApi","setState","emojiPickerApi","fetch","query","SearchIndex","search","searchEmoji","_callee4","_context4","deleteRange","range","setEmoji","selectItem","_inherits","_createClass","componentDidMount","keys","JSON","parse","localStorage","getItem","fetchEmojiData","previewPosition","searchEmojiAndSetState","componentDidUpdate","oldProps","isNotEmpty","skins","React","Component","EmojiSuggestionPluginKey","EmojiSuggestion","renderEmoji","renderText","_emoji$skins$","suggestionConfig","input","lastKeyCode","onUpdate","_popup$","isArrowNavigation","isNil","arrow","updateProps","setProps","_reactRenderer","_popup$2","_reactRenderer2","imageSkeletonContainer","classList","add","imageSkeleton","appendChild","LARGE_IMAGE_ERROR","ImagePreviewModal","previewUrl","setPreviewUrl","setIsLoading","imagePreviewRef","handleClose","useOnClickOutside","enabled","handleKeyDown","createPortal","X","onLoad","body","DropdownMenuList","buildImageOptions","border","showAspectRatio","AlignLeft","alignPos","optionName","AlignCenter","AlignRight","Ratio","ratio","tooltipLabel","RectangleHorizontal","RectangleVertical","Square","SquareDashed","borderToggle","align","menuOptions","handleClick","customTarget","Ellipsis","prefix","aspectRatio","ImageComponent","_figureRef$current","getPos","figheight","figwidth","captionWidth","setCaptionWidth","figureRef","caption","editorElement","closest","maxImageWidth","offsetWidth","handleResizeStop","_event","_direction","mergeRight","classNames","Resizable","lockAspectRatio","minWidth","onResizeStop","onResize","upload","_response$data","uploader","globalProps","endUserUploadedFileSizeLimitInMb","Error","findNextTextPos","nodesBetween","nodePos","isTextblock","openImageInNewTab","isolating","_element$querySelecto","querySelector","_element$querySelecto2","_element$querySelecto3","_element$querySelecto4","_element$querySelecto5","_element$querySelecto6","wrapperDivAttrs","wrapperLinkPointerEventsStyle","heightStyle","wrapperLinkAttrs","captionAttrs","contenteditable","setFigure","Enter","head","$head","tail","nextTextPos","ArrowUp","lineTop","coordsAtPos","caret","bottom","before","scrollIntoView","setSelection","Selection","near","handleDOMEvents","paste","_event$clipboardData2","_view$state","$anchor","getData","hasFiles","_DOMParser$parseFromS","plainText","DOMParser","parseFromString","pasteText","images","image","emptyImageNode","imageNode","_view$state2","_tr","_doc","_tr2","Math","random","substring","DIRECT_UPLOAD_ENDPOINT","replaceWith","limit","Italic","addInputRules","addPasteRules","KeyboardShortcuts","onSubmit","shortcuts","isBlockQuoteActive","ModEnter","getHTML","ModShiftB","toggleBlockquote","LINK_MARKDOWN_INPUT_REGEX","linkInputRule","defaultMarkInputRule","markInputRule","InputRule","find","handler","RangeError","withTrimmedLinkPaste","plugin","spec","trimmedText","trim","trimmedSlice","Slice","Fragment","Link","inclusive","title","_this$parent3","getAttributes","match","_match$pop","_match$pop2","pop","MentionList","_this$props","item","prevState","nextSelectedIndex","keyDownHandlers","upHandler","downHandler","enterHandler","Tab","tabHandler","hasOwnProperty","mentionRef","createRef","prevProps","scrollHandler","wrapperRef","imageUrl","active","Avatar","user","Typography","createMentionSuggestions","mentions","_ref$query","mention","toLowerCase","hide","_popup","Mentions","Mention","setMention","_ref3$suggestion","otherConfig","OrderedList","Placeholder","excludeNodeTypes","emptyEditorClass","emptyNodeClass","slashCommandsPlaceholder","showOnlyWhenEditable","showOnlyCurrent","includeChildren","anchor","hasAnchor","isLeaf","isExcluded","classes","placeholderText","isSlashCommandsActive","isFocused","Document","selectedTextDecoration","oldState","remove","MENU_ITEMS","EDITOR_OPTIONS","PARAGRAPH","description","TextP","setNode","BOLD","TextBold","toggleBold","ITALIC","TextItalic","toggleItalic","UNDERLINE","Underline","toggleUnderline","H1","TextH1","level","H2","TextH2","H3","TextH3","H4","TextH4","_ref8","H5","TextH5","_ref9","LIST_ORDERED","ListNumber","_ref0","toggleOrderedList","LIST_BULLETS","ListDot","_ref1","toggleBulletList","LINK","NEETO_KB_ARTICLE","ATTACHMENTS","Attachment","TODO_LIST","Checkbox","_ref10","toggleTaskList","IMAGE_UPLOAD","ImageUpload","VIDEO_UPLOAD","Video","BLOCKQUOTE","Blockquote","_ref11","CODE_BLOCK","CodeBlock","_ref12","toggleCodeBlock","EMOJI","Smiley","_ref13","DIVIDER","Minus","_ref14","setHorizontalRule","PASTE_UNFORMATTED","Notes","_ref15","TABLE","Column","_ref16","insertTable","rows","cols","withHeaderRow","CALLOUT","MessageSquare","_ref17","_ref18","_ref19","_ref20","_ref21","_ref22","NO_RESULT_MENU_ITEM","_ref23","MENU_MAX_HEIGHT","MENU_BOUNDARY_PADDING","MENU_MAX_HEIGHT_CSS_VARIABLE","imageCommand","setMediaUploader","assoc","videoCommand","linkCommand","setIsAddLinkActive","attachmentCommand","attachmentProps","handleUploadAttachments","neetoKbArticleCommand","setIsNeetoKbArticleActive","cursorPos","getOppositePlacement","side","getOffsetDistance","_state$modifiersData$","_state$modifiersData$2","abs","modifiersData","offset","buildCommandItems","addonCommands","commandItems","permittedCommandItems","adddonCommandItems","fitToAvailableHeight","phase","requiresIfExists","fn","_skip","menu","elements","popper","_detectOverflow","detectOverflow","elementContext","altBoundary","padding","isVertical","menuChromeHeight","rects","menuContentHeight","min","scrollHeight","availableHeight","reference","preferredPlacement","oppositePlacement","getSpace","candidatePlacement","preferredSpace","oppositeSpace","menuHeight","shouldUseOpposite","menuMaxHeight","max","floor","setProperty","popperHeight","reset","listeners","ArrowLeft","leftArrowHandler","ArrowRight","rightArrowHandler","selectedItem","hasCommand","_this$props2","menuIndex","setActiveMenuIndex","_this$props3","hasSubItems","menuRef","_this$props4","activeMenuIndex","isCurrentMenuActive","addEventListener","keydownHandler","componentWillUnmount","removeEventListener","_this$props5","_this$props6","isLeafNode","nodeElement","_createElement","onHover","Tippy","popperOptions","modifiers","visible","onHide","isSubmenuOpened","onShow","forwardRef","onMouseEnter","CommandsList","CommandsPluginKey","filteredItems","fuzzySearch","role","highlightFocussedNode","resetFocussedNode","SpecialMentionPluginKey","renderLabel","_node$attrs$label","SpecialMentions","PREVIEW_CLASS_PREFIX","DEFAULT_COLUMN_WIDTH","SAVED_COLUMN_MIN_WIDTH","TABLE_ACTION_PREVIEWS","deleteRow","rect","right","deleteColumn","deleteTable","insertRow","insertColumn","actionPreviewKey","actionPreviewPlugin","action","meta","docChanged","selectionSet","isInTable","tableRect","selectedRect","_TABLE_ACTION_PREVIEW","cellsInRect","cellPos","tableStart","table","setActionPreview","updateColumns","colgroup","cellMinWidth","totalWidth","nextDOM","row","col","_row$child$attrs","child","colspan","colwidth","j","cssWidth","nextSibling","parentNode","removeChild","TableView","dom","alignmentSuffix","textAlign","alignmentClass","wrapper","contentDOM","update","_node$attrs2","currentAlignmentClass","ignoreMutation","mutation","contains","getTableRect","findTable","TableMap","get","getTableSize","columns","isSuggestionActive","plugins","some","pluginState","moveToCellBelow","_$from$node","TextSelection","cellDepth","cellRole","tableRole","_map$findCell","findCell","addRow","updatedMap","exitTable","afterTable","nodeAfter","Table","TiptapTable","resizable","handleWidth","View","lastColumnResizable","allowTableNodeSelection","getAlignmentFromElement","dataAlign","priority","getAttrs","alignment","parentElement","parentAlignment","fixedWidth","colgroups","firstRow","cell","_cell$attrs","span","hasWidth","tableStyle","_this$parent4","goToNextCell","ModAltT","TodoListExtension","TaskList","ModShift9","TodoItemExtension","TaskItem","splitListItem","sinkListItem","ShiftTab","liftListItem","nested","MAX_VARIABLE_NAME_DISPLAY_LENGTH","VariableComponent","_variableName$substr","_getVariableDisplay","getVariableDisplay","variableName","shouldTruncate","charOpen","disabled","substr","charClose","Variable","setVariable","VideoComponent","vidheight","vidwidth","maxVideoWidth","handleResize","EmbedComponent","allowFullScreen","getSharedAttributes","tagName","iframe","video","videoType","getUploadAttributes","getEmbedAttributes","_element$querySelecto7","getVideoDimension","_element$querySelecto8","DEFAULT_ASPECT_RATIO","originalUrl","_iframe$querySelector","frameBorder","allow","allowfullscreen","renderEmbedHTML","renderUploadHTML","handleVideoPaste","validatedUrl","validateUrl","UnifiedVideoExtension","_figure$querySelector","_figure$querySelector2","figure","videoSrc","iframeSrc","fontWeight","setVideo","_excluded2","end","setExternalVideo","_tr$doc$nodeAt","$to","PasteRule","COMBINED_REGEX","useCustomExtensions","extensions","variables","keyboardShortcuts","openLinkInNewTab","enableReactNodeViewOptimization","collaborationProvider","inlineAttachmentsOptions","customExtensions","CharacterCount","Code","CustomCommands","FigCaption","HighlightInternal","SelectionDecoration","Focus","mode","Highlight","ImageExtension","StarterKit","code","bulletList","listItem","blockquote","orderedList","italic","link","underline","listKeymap","trailingNode","undoRedo","heading","levels","buildLevelsFromOptions","safeSplitBlock","safeListKeymap","TextStyle","INLINE_ATTACHMENTS","AttachmentExtension","TableRow","TableHeader","TableCell","TEXT_COLOR","HIGHLIGHT","Color","ListItem","Callout","SlashCommands","_collaborationProvide","Collaboration","CollaborationCaret","provider","NEETO_KB_ENDPOINT","kbUrl","MODE","MODAL","SELECT","MODAL_BOTTOM_MARGIN","MODAL_LEFT_OFFSET","MODAL_TOP_OFFSET","MODAL_TRANSFORM_Y","MODAL_TRANSFORM_X","useArticleNavigation","_ref$articles","articles","articlesContainerRef","handleModalArticleSelect","searchTerm","highlightedIndex","setHighlightedIndex","container","highlightedItem","containerRect","getBoundingClientRect","itemRect","isItemAbove","isItemBelow","scrollTop","navigationHandlers","down","prev","up","keyActions","Escape","shiftKey","handleKeyboardNavigation","buildArticleFullUrl","slug","createArticleOptions","article","decodeHtmlEntities","ArticlesList","withT","onSelectArticle","_ref$highlightedIndex","ArticlePicker","_ref$mode","externalIsLoading","externalOptions","onArticleSelect","setSearchTerm","modalRef","_useFetchKbArticles","useFetchKbArticles","reactQueryOptions","_useFetchKbArticles$d","isLoadingArticles","selectOptions","articleWithUrl","full_url","_useArticleNavigation","handleSelectChange","selectedValueString","_selectedOption$data","selectedOption","modal","modalRect","modalWidth","modalHeight","maxLeft","innerWidth","maxTop","innerHeight","adjustedLeft","adjustedTop","assign","transform","handleClickOutside","Search","onSearch","Select","isSearchable","isDisabled","_typeof","ArticleSelector","deletedArticlesHook","handleArticleSelect","detailedArticle","linkText","isDeleted","isArticleDeleted","linkMark","linkTextWithMark","Counter","onDecrement","onDecrementHover","onIncrementHover","onIncrement","decrementLabel","incrementLabel","isDecrementDisabled","onMouseLeave","Plus","TableActionMenu","_useEditorState","_element$getBoundingC","_element$getBoundingC2","nodeDOM","DOMRect","shouldShow","BubbleMenu","flip","getReferencedVirtualElement","addRowAfter","isHovering","addColumnAfter","KbArticleDeletedModal","isOpen","Dialog","Header","Title","Body","Footer","KbArticleEdit","linkAttributes","getCurrentTextContent","getCurrentArticleOption","handleKbArticleSubmit","isLoadingKbData","setIsEditing","initialValues","pageSelection","Form","formikProps","enableReinitialize","dirty","isSubmitting","setFieldValue","values","required","unlimitedChars","KbArticleView","onEdit","onDeletedClick","currentText","BookOpen","Pencil","LinkPopOver","_containerRef$current","initialTextContent","arrowPosition","setArrowPosition","popoverPosition","setPopoverPosition","isEditing","_useState7","_useState8","isLinkActive","setIsLinkActive","_useState9","_useState0","setLinkAttributes","_useState1","_useState10","showDeletedModal","setShowDeletedModal","popoverRef","isNeetoKbArticle","updatePopoverPosition","_getLinkPopoverPositi","getLinkPopoverPosition","parseInt","handleUnlink","extendMarkRange","unsetLink","removePopover","popoverStyle","display","handleSubmit","urlString","openInNewTab","formattedUrl","validateAndFormatUrl","equals","setLink","_editor$view","getMarkType","getMarkRange","_ref5$from","_ref5$to","_editor$view2","_ref7$from","_ref7$to","_editor$view3","_ref8$from","_ref8$to","currentLinkAttributes","currentArticleOption","_ref9$from","_ref9$to","renderEditingMode","validationSchema","LINK_VALIDATION_SCHEMA","checked","onCheckedChange","renderEditingModeForKbArticle","renderViewModeForKbArticle","renderViewMode","renderPopoverContent","Editor","_attachmentsConfig$re","_attachmentsConfig$re2","_wrapperRef$current","_ref$addonCommands","_ref$addons","addons","_ref$attachments","_ref$attachmentsConfi","attachmentsConfig","_ref$autoFocus","contentClassName","contentWrapperClassName","errorWrapperClassName","_ref$contentAttribute","contentAttributes","menuClassName","attachmentsClassName","_ref$isMenuIndependen","isMenuIndependent","_ref$defaults","defaults","DEFAULT_EDITOR_OPTIONS","_ref$editorSecrets","editorSecrets","_ref$error","_ref$extensions","_ref$hideSlashCommand","hideSlashCommands","_ref$appendSuggestion","_ref$initialValue","initialValue","_ref$isCharacterCount","isCharacterCountActive","_ref$keyboardShortcut","_ref$label","_ref$mentions","_ref$menuType","menuType","_ref$required","_ref$rows","_ref$tooltips","tooltips","_ref$variables","_ref$disableTrimOnBlu","disableTrimOnBlur","_ref$onChange","_ref$onFocus","onFocus","_ref$onBlur","onBlur","_ref$onSubmit","_ref$onChangeAttachme","onChangeAttachments","_ref$openImageInNewTa","_ref$openLinkInNewTab","_ref$showAssetLibrary","showAssetLibrary","_ref$collaborationPro","_ref$enableReactNodeV","_ref$size","EDITOR_SIZES","SMALL","_ref$otherAttachmentP","otherAttachmentProps","otherProps","isAttachmentsUploading","setIsAttachmentsUploading","isArticleOptActive","isAttachmentsActive","isInlineAttachmentsActive","menuAddons","isMediaUploaderActive","isFixedMenuActive","isBubbleMenuActive","isPlaceholderActive","isAddLinkActive","mediaUploader","neetoKbArticleState","setNeetoKbArticleState","addAttachmentsRef","inlineAttachmentInputRef","attachmentsCountRef","_inlineAttachmentInpu","_addAttachmentsRef$cu","click","debouncedOnChangeHandler","useFuncDebounce","cancel","handleBlur","trimmedContent","removeEmptyTags","useEditorWarnings","editorClasses","LARGE","MEDIUM","ariaAttributes","useEditor","injectCSS","immediatelyRender","shouldRerenderOnTransaction","autofocus","editorProps","getEditorStyles","clipboardTextParser","transformPastedHTML","parseOptions","preserveWhitespace","setInitialPosition","useDeletedArticles","useImperativeHandle","_editor$commands$focu","handleInlineAttachmentsChange","Label","slugify","isIndependant","MenuDynamicVariables","standalone","EditorContent","MediaUploader","hidden","multiple","restrictions","maxNumberOfFiles","accept","allowedFileTypes","Attachments","dragDropRef","isIndependent","LinkAddPopOver"],"mappings":"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","x_google_ignoreList":[38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68]}
|