@bigbinary/neeto-editor 1.47.78 → 1.47.80

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.
Files changed (66) hide show
  1. package/dist/Attachments.js +1 -1
  2. package/dist/Editor.js +28 -28
  3. package/dist/Editor.js.map +1 -1
  4. package/dist/EditorContent.js +1 -1
  5. package/dist/EditorContent.js.map +1 -1
  6. package/dist/FormikEditor.js +2 -2
  7. package/dist/Menu.js +1 -1
  8. package/dist/{chunk-DADua5Hs.js → chunk-2rW8X4h9.js} +6 -6
  9. package/dist/{chunk-DADua5Hs.js.map → chunk-2rW8X4h9.js.map} +1 -1
  10. package/dist/{chunk-CXmkXuF3.js → chunk-B7WnAQ8d.js} +44 -44
  11. package/dist/{chunk-CXmkXuF3.js.map → chunk-B7WnAQ8d.js.map} +1 -1
  12. package/dist/{chunk-CZULBD4z.js → chunk-CS2xPYV-.js} +8 -8
  13. package/dist/chunk-CS2xPYV-.js.map +1 -0
  14. package/dist/cjs/Attachments.cjs.js +1 -1
  15. package/dist/cjs/Editor.cjs.js +28 -28
  16. package/dist/cjs/Editor.cjs.js.map +1 -1
  17. package/dist/cjs/EditorContent.cjs.js +1 -1
  18. package/dist/cjs/EditorContent.cjs.js.map +1 -1
  19. package/dist/cjs/FormikEditor.cjs.js +2 -2
  20. package/dist/cjs/Menu.cjs.js +1 -1
  21. package/dist/cjs/{chunk-BWh2yM_t.cjs.js → chunk-31Z6mjff.cjs.js} +6 -6
  22. package/dist/cjs/{chunk-BWh2yM_t.cjs.js.map → chunk-31Z6mjff.cjs.js.map} +1 -1
  23. package/dist/cjs/{chunk-pQ98WW7j.cjs.js → chunk-CX8UXLae.cjs.js} +44 -44
  24. package/dist/cjs/{chunk-pQ98WW7j.cjs.js.map → chunk-CX8UXLae.cjs.js.map} +1 -1
  25. package/dist/cjs/{chunk-D6gUFJOw.cjs.js → chunk-afvFA8i1.cjs.js} +8 -8
  26. package/dist/cjs/chunk-afvFA8i1.cjs.js.map +1 -0
  27. package/dist/cjs/index.cjs.js +2 -2
  28. package/dist/editor-stats.html +1 -1
  29. package/dist/index.js +2 -2
  30. package/package.json +1 -1
  31. package/src/translations/ar.json +2 -2
  32. package/src/translations/bg.json +2 -2
  33. package/src/translations/ca.json +2 -2
  34. package/src/translations/cs.json +2 -2
  35. package/src/translations/da.json +2 -2
  36. package/src/translations/de.json +2 -2
  37. package/src/translations/es-MX.json +2 -2
  38. package/src/translations/es.json +2 -2
  39. package/src/translations/et.json +2 -2
  40. package/src/translations/fi.json +2 -2
  41. package/src/translations/fil.json +2 -2
  42. package/src/translations/fr.json +2 -2
  43. package/src/translations/he.json +2 -2
  44. package/src/translations/hi.json +2 -2
  45. package/src/translations/hr.json +2 -2
  46. package/src/translations/id.json +2 -2
  47. package/src/translations/it.json +2 -2
  48. package/src/translations/ja.json +2 -2
  49. package/src/translations/ko.json +2 -2
  50. package/src/translations/nl.json +2 -2
  51. package/src/translations/pl.json +2 -2
  52. package/src/translations/pt-BR.json +2 -2
  53. package/src/translations/pt.json +2 -2
  54. package/src/translations/ro.json +2 -2
  55. package/src/translations/ru.json +2 -2
  56. package/src/translations/sk.json +2 -2
  57. package/src/translations/sl.json +2 -2
  58. package/src/translations/sv.json +2 -2
  59. package/src/translations/th.json +2 -2
  60. package/src/translations/tr.json +2 -2
  61. package/src/translations/uk.json +2 -2
  62. package/src/translations/vi.json +2 -2
  63. package/src/translations/zh-CN.json +2 -2
  64. package/src/translations/zh-TW.json +2 -2
  65. package/dist/chunk-CZULBD4z.js.map +0 -1
  66. package/dist/cjs/chunk-D6gUFJOw.cjs.js.map +0 -1
@@ -233,7 +233,7 @@ var EditorContent = function EditorContent(_ref) {
233
233
  }, [content]);
234
234
  return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
235
235
  children: [/*#__PURE__*/jsxRuntime.jsx("div", _objectSpread({
236
- "data-cy": "neeto-editor-content",
236
+ "data-testid": "neeto-editor-content",
237
237
  ref: editorContentRef,
238
238
  className: classnames(common.EDITOR_CONTENT_CLASS_NAME, _defineProperty(_defineProperty({}, className, className), "neeto-editor-size--".concat(size), true)),
239
239
  dangerouslySetInnerHTML: {
@@ -1 +1 @@
1
- {"version":3,"file":"EditorContent.cjs.js","sources":["../../src/components/EditorContent/ImagePreview.jsx","../../src/components/EditorContent/utils/headers.js","../../src/components/EditorContent/utils/todoCheckbox.js","../../src/components/EditorContent/index.jsx"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport { useOnClickOutside } from \"neetocommons/react-utils\";\nimport { Close } from \"neetoicons\";\nimport { Button, Spinner } from \"neetoui\";\nimport { createPortal } from \"react-dom\";\nimport { useTranslation } from \"react-i18next\";\n\nconst ImagePreview = ({ imagePreviewDetails, setImagePreviewDetails }) => {\n const [isLoading, setIsLoading] = useState(true);\n\n const { t } = useTranslation();\n\n const imagePreviewRef = useRef(null);\n\n useOnClickOutside(imagePreviewRef, () => setImagePreviewDetails(null), {\n enabled: true,\n });\n\n useEffect(() => {\n if (!imagePreviewRef.current) return;\n\n imagePreviewRef.current.setAttribute(\"tabindex\", \"-1\");\n imagePreviewRef.current.focus();\n }, []);\n\n const handleKeyDown = e => {\n e.stopPropagation();\n e.key === \"Escape\" && setImagePreviewDetails(null);\n };\n\n return createPortal(\n <div className=\"ne-image-preview-wrapper active\">\n {isLoading && <Spinner className=\"ne-image-preview-wrapper__spinner\" />}\n {!isLoading && (\n <div className=\"close-button\">\n <Button\n icon={Close}\n style=\"secondary\"\n onClick={() => setImagePreviewDetails(null)}\n />\n </div>\n )}\n <div\n className={classnames(\"ne-image-preview\", {\n \"image-loaded\": !isLoading,\n })}\n >\n <img\n alt={t(\"neetoEditor.editorContent.imagePreviewAltText\")}\n ref={imagePreviewRef}\n src={imagePreviewDetails.src}\n onKeyDown={handleKeyDown}\n onLoad={() => setIsLoading(false)}\n />\n {imagePreviewDetails && (\n <p className=\"ne-image-preview__caption\">\n {imagePreviewDetails.caption}\n </p>\n )}\n </div>\n </div>,\n document.body\n );\n};\n\nexport default ImagePreview;\n","const buildLinkSVG = () => {\n const svgNS = \"http://www.w3.org/2000/svg\";\n\n const svgWrapper = document.createElement(\"span\");\n svgWrapper.classList.add(\"header-link-icon-wrapper\");\n const svg = document.createElementNS(svgNS, \"svg\");\n svg.setAttribute(\"aria-hidden\", \"true\");\n svg.setAttribute(\"height\", \"20\");\n svg.setAttribute(\"viewBox\", \"0 0 16 16\");\n svg.setAttribute(\"width\", \"20\");\n\n const path = document.createElementNS(svgNS, \"path\");\n path.setAttribute(\n \"d\",\n \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n );\n\n svg.appendChild(path);\n svgWrapper.appendChild(svg);\n\n return svgWrapper;\n};\n\nconst convertTextToId = text =>\n text\n .trim()\n .toLowerCase()\n .replace(/[^a-z0-9\\s]/g, \"\")\n .replace(/\\s+/g, \"-\");\n\nexport const buildHeaderLinks = editorContentNode => {\n const headerTags = editorContentNode.querySelectorAll(\n \"h1, h2, h3, h4, h5, h6\"\n );\n const usedIds = new Map();\n\n headerTags.forEach(heading => {\n if (heading.getAttribute(\"data-link\") === \"false\") {\n return;\n }\n\n let headingId = convertTextToId(heading.textContent);\n if (usedIds.has(headingId)) {\n const count = usedIds.get(headingId);\n usedIds.set(headingId, count + 1);\n headingId = `${headingId}-${count}`;\n } else usedIds.set(headingId, 1);\n\n heading.setAttribute(\"id\", headingId);\n\n const wrapper = document.createElement(\"div\");\n const anchor = document.createElement(\"a\");\n\n wrapper.classList.add(\"header-wrapper\");\n anchor.setAttribute(\"href\", `#${headingId}`);\n anchor.classList.add(\"header-wrapper__link\");\n anchor.appendChild(buildLinkSVG());\n\n wrapper.appendChild(heading.cloneNode(true));\n wrapper.appendChild(anchor);\n heading.replaceWith(wrapper);\n });\n};\n","export const handleTodoCheckboxClick = (event, editorContentRef, onChange) => {\n if (\n !(\n event.target.type === \"checkbox\" &&\n event.target.closest('ul[data-type=\"todoList\"] li[data-type=\"taskItem\"]')\n )\n ) {\n return;\n }\n\n const checkbox = event.target;\n const listItem = checkbox.closest(\"li\");\n\n if (listItem) {\n listItem.setAttribute(\"data-checked\", checkbox.checked.toString());\n\n if (checkbox.checked) {\n checkbox.setAttribute(\"checked\", \"checked\");\n } else {\n checkbox.removeAttribute(\"checked\");\n }\n\n onChange?.(editorContentRef?.innerHTML);\n }\n};\n\nexport const syncTodoCheckboxStates = editorContentRef => {\n if (!editorContentRef) return;\n\n const todoItems = editorContentRef.querySelectorAll(\n `ul[data-type=\"todoList\"] li[data-type=\"taskItem\"]`\n );\n\n todoItems.forEach(listItem => {\n const isChecked = listItem.getAttribute(\"data-checked\") === \"true\";\n const checkbox = listItem.querySelector('input[type=\"checkbox\"]');\n\n if (checkbox) {\n checkbox.checked = isChecked;\n\n if (isChecked) {\n checkbox.setAttribute(\"checked\", \"checked\");\n } else {\n checkbox.removeAttribute(\"checked\");\n }\n }\n });\n};\n","import { memo, useEffect, useRef, useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport DOMPurify from \"dompurify\";\nimport CopyToClipboardButton from \"neetomolecules/CopyToClipboardButton\";\nimport { isNil } from \"ramda\";\nimport { createRoot } from \"react-dom/client\";\n\nimport { EDITOR_SIZES } from \"src/common/constants\";\nimport \"src/styles/editor/editor-content.scss\";\nimport { removeEmptyTags } from \"utils\";\n\nimport {\n EDITOR_CONTENT_CLASS_NAME,\n EDITOR_CONTENT_DEFAULT_CONFIGURATION,\n SANITIZE_OPTIONS,\n} from \"./constants\";\nimport ImagePreview from \"./ImagePreview\";\nimport {\n substituteVariables,\n applyLineHighlighting,\n applySyntaxHighlightingAndLineNumbers,\n convertPlainTextToHtml,\n} from \"./utils\";\nimport { buildHeaderLinks } from \"./utils/headers\";\nimport {\n handleTodoCheckboxClick,\n syncTodoCheckboxStates,\n} from \"./utils/todoCheckbox\";\n\nconst EditorContent = ({\n content = \"\",\n variables = [],\n className,\n size = EDITOR_SIZES.SMALL,\n configuration = EDITOR_CONTENT_DEFAULT_CONFIGURATION,\n onChange,\n onClick,\n ...otherProps\n}) => {\n const [imagePreviewDetails, setImagePreviewDetails] = useState(null);\n const editorContentRef = useRef(null);\n\n const htmlContent = convertPlainTextToHtml(\n substituteVariables(\n applySyntaxHighlightingAndLineNumbers(removeEmptyTags(content)),\n variables\n )\n );\n const sanitize = DOMPurify.sanitize;\n\n const handleContentClick = event => {\n handleTodoCheckboxClick(event, editorContentRef.current, onChange);\n\n onClick?.(event);\n };\n\n const injectCopyButtonToCodeBlocks = () => {\n const preTags = editorContentRef.current?.querySelectorAll(\n `.${EDITOR_CONTENT_CLASS_NAME} pre`\n );\n\n preTags.forEach(preTag => {\n const button = document.createElement(\"div\");\n button.className = \"neeto-editor-codeblock-options\";\n const root = createRoot(button);\n root.render(\n <CopyToClipboardButton\n size=\"small\"\n style=\"tertiary\"\n value={preTag.textContent}\n />\n );\n preTag.appendChild(button);\n });\n };\n\n const bindImageClickListener = () => {\n const figureTags = editorContentRef.current?.querySelectorAll(\n `.${EDITOR_CONTENT_CLASS_NAME} figure`\n );\n\n figureTags.forEach(figureTag => {\n const image = figureTag.querySelector(\"img\");\n const link = figureTag.querySelector(\"a\");\n if (isNil(image) || isNil(link)) return;\n\n figureTag.addEventListener(\"click\", event => {\n event.preventDefault();\n const caption = figureTag.querySelector(\"figcaption\").innerText;\n setImagePreviewDetails({ src: image.src, caption });\n });\n });\n };\n\n useEffect(() => {\n injectCopyButtonToCodeBlocks();\n bindImageClickListener();\n syncTodoCheckboxStates(editorContentRef.current);\n applyLineHighlighting(editorContentRef.current);\n configuration.enableHeaderLinks &&\n buildHeaderLinks(editorContentRef.current);\n }, [content]);\n\n return (\n <>\n <div\n data-cy=\"neeto-editor-content\"\n ref={editorContentRef}\n className={classnames(EDITOR_CONTENT_CLASS_NAME, {\n [className]: className,\n [`neeto-editor-size--${size}`]: true,\n })}\n dangerouslySetInnerHTML={{\n __html: sanitize(htmlContent, SANITIZE_OPTIONS),\n }}\n onClick={handleContentClick}\n {...otherProps}\n />\n {imagePreviewDetails && (\n <ImagePreview {...{ imagePreviewDetails, setImagePreviewDetails }} />\n )}\n </>\n );\n};\n\nexport default memo(EditorContent);\n"],"names":["ImagePreview","_ref","imagePreviewDetails","setImagePreviewDetails","_useState","useState","_useState2","_slicedToArray","isLoading","setIsLoading","_useTranslation","useTranslation","t","imagePreviewRef","useRef","useOnClickOutside","enabled","useEffect","current","setAttribute","focus","handleKeyDown","e","stopPropagation","key","createPortal","_jsxs","className","children","_jsx","Spinner","Button","icon","Close","style","onClick","classnames","alt","ref","src","onKeyDown","onLoad","caption","document","body","buildLinkSVG","svgNS","svgWrapper","createElement","classList","add","svg","createElementNS","path","appendChild","convertTextToId","text","trim","toLowerCase","replace","buildHeaderLinks","editorContentNode","headerTags","querySelectorAll","usedIds","Map","forEach","heading","getAttribute","headingId","textContent","has","count","get","set","concat","wrapper","anchor","cloneNode","replaceWith","handleTodoCheckboxClick","event","editorContentRef","onChange","target","type","closest","checkbox","listItem","checked","toString","removeAttribute","innerHTML","syncTodoCheckboxStates","todoItems","isChecked","querySelector","EditorContent","_ref$content","content","_ref$variables","variables","_ref$size","size","EDITOR_SIZES","SMALL","_ref$configuration","configuration","EDITOR_CONTENT_DEFAULT_CONFIGURATION","otherProps","_objectWithoutProperties","_excluded","htmlContent","convertPlainTextToHtml","substituteVariables","applySyntaxHighlightingAndLineNumbers","removeEmptyTags","sanitize","DOMPurify","handleContentClick","injectCopyButtonToCodeBlocks","_editorContentRef$cur","preTags","EDITOR_CONTENT_CLASS_NAME","preTag","button","root","createRoot","render","CopyToClipboardButton","value","bindImageClickListener","_editorContentRef$cur2","figureTags","figureTag","image","link","isNil","addEventListener","preventDefault","innerText","applyLineHighlighting","enableHeaderLinks","_Fragment","_objectSpread","_defineProperty","dangerouslySetInnerHTML","__html","SANITIZE_OPTIONS","memo"],"mappings":"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"}
1
+ {"version":3,"file":"EditorContent.cjs.js","sources":["../../src/components/EditorContent/ImagePreview.jsx","../../src/components/EditorContent/utils/headers.js","../../src/components/EditorContent/utils/todoCheckbox.js","../../src/components/EditorContent/index.jsx"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport { useOnClickOutside } from \"neetocommons/react-utils\";\nimport { Close } from \"neetoicons\";\nimport { Button, Spinner } from \"neetoui\";\nimport { createPortal } from \"react-dom\";\nimport { useTranslation } from \"react-i18next\";\n\nconst ImagePreview = ({ imagePreviewDetails, setImagePreviewDetails }) => {\n const [isLoading, setIsLoading] = useState(true);\n\n const { t } = useTranslation();\n\n const imagePreviewRef = useRef(null);\n\n useOnClickOutside(imagePreviewRef, () => setImagePreviewDetails(null), {\n enabled: true,\n });\n\n useEffect(() => {\n if (!imagePreviewRef.current) return;\n\n imagePreviewRef.current.setAttribute(\"tabindex\", \"-1\");\n imagePreviewRef.current.focus();\n }, []);\n\n const handleKeyDown = e => {\n e.stopPropagation();\n e.key === \"Escape\" && setImagePreviewDetails(null);\n };\n\n return createPortal(\n <div className=\"ne-image-preview-wrapper active\">\n {isLoading && <Spinner className=\"ne-image-preview-wrapper__spinner\" />}\n {!isLoading && (\n <div className=\"close-button\">\n <Button\n icon={Close}\n style=\"secondary\"\n onClick={() => setImagePreviewDetails(null)}\n />\n </div>\n )}\n <div\n className={classnames(\"ne-image-preview\", {\n \"image-loaded\": !isLoading,\n })}\n >\n <img\n alt={t(\"neetoEditor.editorContent.imagePreviewAltText\")}\n ref={imagePreviewRef}\n src={imagePreviewDetails.src}\n onKeyDown={handleKeyDown}\n onLoad={() => setIsLoading(false)}\n />\n {imagePreviewDetails && (\n <p className=\"ne-image-preview__caption\">\n {imagePreviewDetails.caption}\n </p>\n )}\n </div>\n </div>,\n document.body\n );\n};\n\nexport default ImagePreview;\n","const buildLinkSVG = () => {\n const svgNS = \"http://www.w3.org/2000/svg\";\n\n const svgWrapper = document.createElement(\"span\");\n svgWrapper.classList.add(\"header-link-icon-wrapper\");\n const svg = document.createElementNS(svgNS, \"svg\");\n svg.setAttribute(\"aria-hidden\", \"true\");\n svg.setAttribute(\"height\", \"20\");\n svg.setAttribute(\"viewBox\", \"0 0 16 16\");\n svg.setAttribute(\"width\", \"20\");\n\n const path = document.createElementNS(svgNS, \"path\");\n path.setAttribute(\n \"d\",\n \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n );\n\n svg.appendChild(path);\n svgWrapper.appendChild(svg);\n\n return svgWrapper;\n};\n\nconst convertTextToId = text =>\n text\n .trim()\n .toLowerCase()\n .replace(/[^a-z0-9\\s]/g, \"\")\n .replace(/\\s+/g, \"-\");\n\nexport const buildHeaderLinks = editorContentNode => {\n const headerTags = editorContentNode.querySelectorAll(\n \"h1, h2, h3, h4, h5, h6\"\n );\n const usedIds = new Map();\n\n headerTags.forEach(heading => {\n if (heading.getAttribute(\"data-link\") === \"false\") {\n return;\n }\n\n let headingId = convertTextToId(heading.textContent);\n if (usedIds.has(headingId)) {\n const count = usedIds.get(headingId);\n usedIds.set(headingId, count + 1);\n headingId = `${headingId}-${count}`;\n } else usedIds.set(headingId, 1);\n\n heading.setAttribute(\"id\", headingId);\n\n const wrapper = document.createElement(\"div\");\n const anchor = document.createElement(\"a\");\n\n wrapper.classList.add(\"header-wrapper\");\n anchor.setAttribute(\"href\", `#${headingId}`);\n anchor.classList.add(\"header-wrapper__link\");\n anchor.appendChild(buildLinkSVG());\n\n wrapper.appendChild(heading.cloneNode(true));\n wrapper.appendChild(anchor);\n heading.replaceWith(wrapper);\n });\n};\n","export const handleTodoCheckboxClick = (event, editorContentRef, onChange) => {\n if (\n !(\n event.target.type === \"checkbox\" &&\n event.target.closest('ul[data-type=\"todoList\"] li[data-type=\"taskItem\"]')\n )\n ) {\n return;\n }\n\n const checkbox = event.target;\n const listItem = checkbox.closest(\"li\");\n\n if (listItem) {\n listItem.setAttribute(\"data-checked\", checkbox.checked.toString());\n\n if (checkbox.checked) {\n checkbox.setAttribute(\"checked\", \"checked\");\n } else {\n checkbox.removeAttribute(\"checked\");\n }\n\n onChange?.(editorContentRef?.innerHTML);\n }\n};\n\nexport const syncTodoCheckboxStates = editorContentRef => {\n if (!editorContentRef) return;\n\n const todoItems = editorContentRef.querySelectorAll(\n `ul[data-type=\"todoList\"] li[data-type=\"taskItem\"]`\n );\n\n todoItems.forEach(listItem => {\n const isChecked = listItem.getAttribute(\"data-checked\") === \"true\";\n const checkbox = listItem.querySelector('input[type=\"checkbox\"]');\n\n if (checkbox) {\n checkbox.checked = isChecked;\n\n if (isChecked) {\n checkbox.setAttribute(\"checked\", \"checked\");\n } else {\n checkbox.removeAttribute(\"checked\");\n }\n }\n });\n};\n","import { memo, useEffect, useRef, useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport DOMPurify from \"dompurify\";\nimport CopyToClipboardButton from \"neetomolecules/CopyToClipboardButton\";\nimport { isNil } from \"ramda\";\nimport { createRoot } from \"react-dom/client\";\n\nimport { EDITOR_SIZES } from \"src/common/constants\";\nimport \"src/styles/editor/editor-content.scss\";\nimport { removeEmptyTags } from \"utils\";\n\nimport {\n EDITOR_CONTENT_CLASS_NAME,\n EDITOR_CONTENT_DEFAULT_CONFIGURATION,\n SANITIZE_OPTIONS,\n} from \"./constants\";\nimport ImagePreview from \"./ImagePreview\";\nimport {\n substituteVariables,\n applyLineHighlighting,\n applySyntaxHighlightingAndLineNumbers,\n convertPlainTextToHtml,\n} from \"./utils\";\nimport { buildHeaderLinks } from \"./utils/headers\";\nimport {\n handleTodoCheckboxClick,\n syncTodoCheckboxStates,\n} from \"./utils/todoCheckbox\";\n\nconst EditorContent = ({\n content = \"\",\n variables = [],\n className,\n size = EDITOR_SIZES.SMALL,\n configuration = EDITOR_CONTENT_DEFAULT_CONFIGURATION,\n onChange,\n onClick,\n ...otherProps\n}) => {\n const [imagePreviewDetails, setImagePreviewDetails] = useState(null);\n const editorContentRef = useRef(null);\n\n const htmlContent = convertPlainTextToHtml(\n substituteVariables(\n applySyntaxHighlightingAndLineNumbers(removeEmptyTags(content)),\n variables\n )\n );\n const sanitize = DOMPurify.sanitize;\n\n const handleContentClick = event => {\n handleTodoCheckboxClick(event, editorContentRef.current, onChange);\n\n onClick?.(event);\n };\n\n const injectCopyButtonToCodeBlocks = () => {\n const preTags = editorContentRef.current?.querySelectorAll(\n `.${EDITOR_CONTENT_CLASS_NAME} pre`\n );\n\n preTags.forEach(preTag => {\n const button = document.createElement(\"div\");\n button.className = \"neeto-editor-codeblock-options\";\n const root = createRoot(button);\n root.render(\n <CopyToClipboardButton\n size=\"small\"\n style=\"tertiary\"\n value={preTag.textContent}\n />\n );\n preTag.appendChild(button);\n });\n };\n\n const bindImageClickListener = () => {\n const figureTags = editorContentRef.current?.querySelectorAll(\n `.${EDITOR_CONTENT_CLASS_NAME} figure`\n );\n\n figureTags.forEach(figureTag => {\n const image = figureTag.querySelector(\"img\");\n const link = figureTag.querySelector(\"a\");\n if (isNil(image) || isNil(link)) return;\n\n figureTag.addEventListener(\"click\", event => {\n event.preventDefault();\n const caption = figureTag.querySelector(\"figcaption\").innerText;\n setImagePreviewDetails({ src: image.src, caption });\n });\n });\n };\n\n useEffect(() => {\n injectCopyButtonToCodeBlocks();\n bindImageClickListener();\n syncTodoCheckboxStates(editorContentRef.current);\n applyLineHighlighting(editorContentRef.current);\n configuration.enableHeaderLinks &&\n buildHeaderLinks(editorContentRef.current);\n }, [content]);\n\n return (\n <>\n <div\n data-testid=\"neeto-editor-content\"\n ref={editorContentRef}\n className={classnames(EDITOR_CONTENT_CLASS_NAME, {\n [className]: className,\n [`neeto-editor-size--${size}`]: true,\n })}\n dangerouslySetInnerHTML={{\n __html: sanitize(htmlContent, SANITIZE_OPTIONS),\n }}\n onClick={handleContentClick}\n {...otherProps}\n />\n {imagePreviewDetails && (\n <ImagePreview {...{ imagePreviewDetails, setImagePreviewDetails }} />\n )}\n </>\n );\n};\n\nexport default memo(EditorContent);\n"],"names":["ImagePreview","_ref","imagePreviewDetails","setImagePreviewDetails","_useState","useState","_useState2","_slicedToArray","isLoading","setIsLoading","_useTranslation","useTranslation","t","imagePreviewRef","useRef","useOnClickOutside","enabled","useEffect","current","setAttribute","focus","handleKeyDown","e","stopPropagation","key","createPortal","_jsxs","className","children","_jsx","Spinner","Button","icon","Close","style","onClick","classnames","alt","ref","src","onKeyDown","onLoad","caption","document","body","buildLinkSVG","svgNS","svgWrapper","createElement","classList","add","svg","createElementNS","path","appendChild","convertTextToId","text","trim","toLowerCase","replace","buildHeaderLinks","editorContentNode","headerTags","querySelectorAll","usedIds","Map","forEach","heading","getAttribute","headingId","textContent","has","count","get","set","concat","wrapper","anchor","cloneNode","replaceWith","handleTodoCheckboxClick","event","editorContentRef","onChange","target","type","closest","checkbox","listItem","checked","toString","removeAttribute","innerHTML","syncTodoCheckboxStates","todoItems","isChecked","querySelector","EditorContent","_ref$content","content","_ref$variables","variables","_ref$size","size","EDITOR_SIZES","SMALL","_ref$configuration","configuration","EDITOR_CONTENT_DEFAULT_CONFIGURATION","otherProps","_objectWithoutProperties","_excluded","htmlContent","convertPlainTextToHtml","substituteVariables","applySyntaxHighlightingAndLineNumbers","removeEmptyTags","sanitize","DOMPurify","handleContentClick","injectCopyButtonToCodeBlocks","_editorContentRef$cur","preTags","EDITOR_CONTENT_CLASS_NAME","preTag","button","root","createRoot","render","CopyToClipboardButton","value","bindImageClickListener","_editorContentRef$cur2","figureTags","figureTag","image","link","isNil","addEventListener","preventDefault","innerText","applyLineHighlighting","enableHeaderLinks","_Fragment","_objectSpread","_defineProperty","dangerouslySetInnerHTML","__html","SANITIZE_OPTIONS","memo"],"mappings":"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"}
@@ -10,7 +10,7 @@ var Editor = require('./Editor.cjs.js');
10
10
  var jsxRuntime = require('react/jsx-runtime');
11
11
  require('@babel/runtime/helpers/toConsumableArray');
12
12
  require('@babel/runtime/helpers/slicedToArray');
13
- require('./chunk-pQ98WW7j.cjs.js');
13
+ require('./chunk-CX8UXLae.cjs.js');
14
14
  require('./chunk-vQvjPR2x.cjs.js');
15
15
  require('i18next');
16
16
  require('@bigbinary/neeto-icons/TextH1');
@@ -129,7 +129,7 @@ require('@bigbinary/neeto-icons/MergeSplit');
129
129
  require('@bigbinary/neeto-icons/ToggleHeaderRow');
130
130
  require('@bigbinary/neeto-icons/Edit');
131
131
  require('@bigbinary/neeto-icons/Articles');
132
- require('./chunk-D6gUFJOw.cjs.js');
132
+ require('./chunk-afvFA8i1.cjs.js');
133
133
  require('@bigbinary/neeto-icons/MenuVertical');
134
134
  require('@bigbinary/neetoui/Alert');
135
135
 
@@ -5,7 +5,7 @@ require('@babel/runtime/helpers/toConsumableArray');
5
5
  require('@babel/runtime/helpers/slicedToArray');
6
6
  require('react');
7
7
  require('ramda');
8
- var Menu = require('./chunk-pQ98WW7j.cjs.js');
8
+ var Menu = require('./chunk-CX8UXLae.cjs.js');
9
9
  require('./chunk-BHwZbfLM.cjs.js');
10
10
  require('react/jsx-runtime');
11
11
  require('./chunk-vQvjPR2x.cjs.js');
@@ -29,7 +29,7 @@ var _defineProperty = require('@babel/runtime/helpers/esm/defineProperty');
29
29
  var _toConsumableArray = require('@babel/runtime/helpers/esm/toConsumableArray');
30
30
  var _slicedToArray = require('@babel/runtime/helpers/esm/slicedToArray');
31
31
  var reactI18next = require('react-i18next');
32
- var Attachments = require('./chunk-D6gUFJOw.cjs.js');
32
+ var Attachments = require('./chunk-afvFA8i1.cjs.js');
33
33
  var jsxRuntime = require('react/jsx-runtime');
34
34
  require('@babel/runtime/helpers/toConsumableArray');
35
35
  require('@babel/runtime/helpers/slicedToArray');
@@ -68932,27 +68932,27 @@ var Preview = function Preview(_ref) {
68932
68932
  switch (contentType.split("/")[0]) {
68933
68933
  case "image":
68934
68934
  return /*#__PURE__*/jsxRuntime.jsx("img", {
68935
- "data-cy": Attachments.ATTACHMENTS_PREVIEW_DATA_CY,
68935
+ "data-testid": Attachments.ATTACHMENTS_PREVIEW_DATA_CY,
68936
68936
  src: url
68937
68937
  });
68938
68938
  case "video":
68939
68939
  return /*#__PURE__*/jsxRuntime.jsx("video", {
68940
68940
  controls: true,
68941
- "data-cy": Attachments.ATTACHMENTS_PREVIEW_DATA_CY,
68941
+ "data-testid": Attachments.ATTACHMENTS_PREVIEW_DATA_CY,
68942
68942
  src: url
68943
68943
  });
68944
68944
  case "application":
68945
68945
  case "text":
68946
68946
  if (contentType === "application/pdf") {
68947
68947
  return /*#__PURE__*/jsxRuntime.jsx("iframe", {
68948
- "data-cy": Attachments.ATTACHMENTS_PREVIEW_DATA_CY,
68948
+ "data-testid": Attachments.ATTACHMENTS_PREVIEW_DATA_CY,
68949
68949
  src: url,
68950
68950
  width: "100%"
68951
68951
  });
68952
68952
  }
68953
68953
  return /*#__PURE__*/jsxRuntime.jsx(DocViewer, {
68954
68954
  className: "ne-attachments-preview__body-docviewer",
68955
- "data-cy": Attachments.ATTACHMENTS_PREVIEW_DATA_CY,
68955
+ "data-testid": Attachments.ATTACHMENTS_PREVIEW_DATA_CY,
68956
68956
  documents: [{
68957
68957
  uri: url,
68958
68958
  fileType: contentType
@@ -69024,4 +69024,4 @@ var Preview = function Preview(_ref) {
69024
69024
  };
69025
69025
 
69026
69026
  exports.default = Preview;
69027
- //# sourceMappingURL=chunk-BWh2yM_t.cjs.js.map
69027
+ //# sourceMappingURL=chunk-31Z6mjff.cjs.js.map