@bigbinary/neeto-editor 1.45.18 → 1.45.20

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 (69) hide show
  1. package/dist/Attachments.js +3 -3
  2. package/dist/Editor.js +16 -9
  3. package/dist/Editor.js.map +1 -1
  4. package/dist/EditorContent.js +8 -5
  5. package/dist/EditorContent.js.map +1 -1
  6. package/dist/FormikEditor.js +8 -7
  7. package/dist/FormikEditor.js.map +1 -1
  8. package/dist/Menu.js +6 -5
  9. package/dist/Menu.js.map +1 -1
  10. package/dist/chunk-BMJOPQ2b.js +19 -0
  11. package/dist/chunk-BMJOPQ2b.js.map +1 -0
  12. package/dist/{chunk-DBch3tqq.js → chunk-CXjxEHI4.js} +75 -3
  13. package/dist/chunk-CXjxEHI4.js.map +1 -0
  14. package/dist/{chunk-D86RZ044.js → chunk-CxUlY2ns.js} +2 -2
  15. package/dist/{chunk-D86RZ044.js.map → chunk-CxUlY2ns.js.map} +1 -1
  16. package/dist/{chunk-CrOyRwyj.js → chunk-DLd26xqr.js} +5 -4
  17. package/dist/{chunk-CrOyRwyj.js.map → chunk-DLd26xqr.js.map} +1 -1
  18. package/dist/{chunk-B8oM63AV.js → chunk-Dt1M1PSn.js} +2 -2
  19. package/dist/{chunk-B8oM63AV.js.map → chunk-Dt1M1PSn.js.map} +1 -1
  20. package/dist/{chunk-B4UG02G1.js → chunk-DzSwFO6-.js} +4 -4
  21. package/dist/{chunk-B4UG02G1.js.map → chunk-DzSwFO6-.js.map} +1 -1
  22. package/dist/{chunk-BV0txNQ1.js → chunk-Q8kq5V5L.js} +4 -4
  23. package/dist/{chunk-BV0txNQ1.js.map → chunk-Q8kq5V5L.js.map} +1 -1
  24. package/dist/{chunk-CDBSVHz6.js → chunk-mYLzFJMK.js} +4 -17
  25. package/dist/chunk-mYLzFJMK.js.map +1 -0
  26. package/dist/{chunk-UtuZMtPZ.js → chunk-vS_ygswz.js} +4 -18
  27. package/dist/chunk-vS_ygswz.js.map +1 -0
  28. package/dist/cjs/Editor.cjs.js +17 -10
  29. package/dist/cjs/Editor.cjs.js.map +1 -1
  30. package/dist/cjs/EditorContent.cjs.js +12 -9
  31. package/dist/cjs/EditorContent.cjs.js.map +1 -1
  32. package/dist/cjs/FormikEditor.cjs.js +5 -4
  33. package/dist/cjs/FormikEditor.cjs.js.map +1 -1
  34. package/dist/cjs/Menu.cjs.js +5 -4
  35. package/dist/cjs/Menu.cjs.js.map +1 -1
  36. package/dist/cjs/{chunk-4ozALwYT.cjs.js → chunk-3udi5E4s.cjs.js} +4 -3
  37. package/dist/cjs/{chunk-4ozALwYT.cjs.js.map → chunk-3udi5E4s.cjs.js.map} +1 -1
  38. package/dist/cjs/chunk-Cuak8W9P.cjs.js +48 -0
  39. package/dist/cjs/chunk-Cuak8W9P.cjs.js.map +1 -0
  40. package/dist/cjs/{chunk-Juybs_3x.cjs.js → chunk-DK-1ndCW.cjs.js} +4 -39
  41. package/dist/cjs/chunk-DK-1ndCW.cjs.js.map +1 -0
  42. package/dist/cjs/{chunk-BIff7Ppc.cjs.js → chunk-DOGA_bpR.cjs.js} +5 -21
  43. package/dist/cjs/chunk-DOGA_bpR.cjs.js.map +1 -0
  44. package/dist/cjs/{chunk-Dh0stJ0O.cjs.js → chunk-DoS4ZUHL.cjs.js} +83 -1
  45. package/dist/cjs/chunk-DoS4ZUHL.cjs.js.map +1 -0
  46. package/dist/cjs/index.cjs.js +5 -6
  47. package/dist/cjs/index.cjs.js.map +1 -1
  48. package/dist/cjs/utils.cjs.js +4 -5
  49. package/dist/cjs/utils.cjs.js.map +1 -1
  50. package/dist/editor-stats.html +1 -19
  51. package/dist/index.js +8 -9
  52. package/dist/index.js.map +1 -1
  53. package/dist/utils.js +5 -6
  54. package/dist/utils.js.map +1 -1
  55. package/package.json +1 -1
  56. package/dist/chunk-B88REGV6.js +0 -59
  57. package/dist/chunk-B88REGV6.js.map +0 -1
  58. package/dist/chunk-CDBSVHz6.js.map +0 -1
  59. package/dist/chunk-DBch3tqq.js.map +0 -1
  60. package/dist/chunk-LjMXcuRe.js +0 -6
  61. package/dist/chunk-LjMXcuRe.js.map +0 -1
  62. package/dist/chunk-UtuZMtPZ.js.map +0 -1
  63. package/dist/cjs/chunk-BIff7Ppc.cjs.js.map +0 -1
  64. package/dist/cjs/chunk-DN1S-KLQ.cjs.js +0 -10
  65. package/dist/cjs/chunk-DN1S-KLQ.cjs.js.map +0 -1
  66. package/dist/cjs/chunk-Dh0stJ0O.cjs.js.map +0 -1
  67. package/dist/cjs/chunk-Juybs_3x.cjs.js.map +0 -1
  68. package/dist/cjs/chunk-a-cnTJIr.cjs.js +0 -63
  69. package/dist/cjs/chunk-a-cnTJIr.cjs.js.map +0 -1
@@ -7,9 +7,12 @@ import DOMPurify from 'dompurify';
7
7
  import CopyToClipboardButton from '@bigbinary/neeto-molecules/CopyToClipboardButton';
8
8
  import { isNil } from 'ramda';
9
9
  import { createRoot } from 'react-dom/client';
10
- import { E as EDITOR_SIZES } from './chunk-D86RZ044.js';
10
+ import { a as EDITOR_SIZES } from './chunk-CxUlY2ns.js';
11
11
  import { n } from './chunk-DmrvuTKK.js';
12
- import { s as substituteVariables, a as applySyntaxHighlightingAndLineNumbers, b as applyLineHighlighting, E as EDITOR_CONTENT_CLASS_NAME, S as SANITIZE_OPTIONS, c as EDITOR_CONTENT_DEFAULT_CONFIGURATION } from './chunk-CDBSVHz6.js';
12
+ import '@bigbinary/neeto-cist';
13
+ import './chunk-BMJOPQ2b.js';
14
+ import { s as substituteVariables, a as applySyntaxHighlightingAndLineNumbers, b as applyLineHighlighting } from './chunk-mYLzFJMK.js';
15
+ import { r as removeEmptyTags, E as EDITOR_CONTENT_CLASS_NAME, S as SANITIZE_OPTIONS, b as EDITOR_CONTENT_DEFAULT_CONFIGURATION } from './chunk-CXjxEHI4.js';
13
16
  import { useOnClickOutside } from '@bigbinary/neeto-commons-frontend/react-utils';
14
17
  import Close from '@bigbinary/neeto-icons/Close';
15
18
  import Button from '@bigbinary/neetoui/Button';
@@ -17,8 +20,8 @@ import Spinner from '@bigbinary/neetoui/Spinner';
17
20
  import { createPortal } from 'react-dom';
18
21
  import { useTranslation } from 'react-i18next';
19
22
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
20
- import './chunk-DBch3tqq.js';
21
- import '@bigbinary/neeto-cist';
23
+ import 'i18next';
24
+ import 'yup';
22
25
  import 'react-dom/server';
23
26
  import '@babel/runtime/helpers/toConsumableArray';
24
27
 
@@ -139,7 +142,7 @@ var EditorContent = function EditorContent(_ref) {
139
142
  imagePreviewDetails = _useState2[0],
140
143
  setImagePreviewDetails = _useState2[1];
141
144
  var editorContentRef = useRef(null);
142
- var htmlContent = substituteVariables(applySyntaxHighlightingAndLineNumbers(content), variables);
145
+ var htmlContent = substituteVariables(applySyntaxHighlightingAndLineNumbers(removeEmptyTags(content)), variables);
143
146
  var sanitize = DOMPurify.sanitize;
144
147
  var injectCopyButtonToCodeBlocks = function injectCopyButtonToCodeBlocks() {
145
148
  var _editorContentRef$cur;
@@ -1 +1 @@
1
- {"version":3,"file":"EditorContent.js","sources":["../src/components/EditorContent/ImagePreview.jsx","../src/components/EditorContent/utils/headers.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 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 anchor = document.createElement(\"a\");\n anchor.setAttribute(\"href\", `#${headingId}`);\n anchor.classList.add(\"header-wrapper-link\");\n anchor.appendChild(buildLinkSVG());\n anchor.appendChild(heading.cloneNode(true));\n\n heading.replaceWith(anchor);\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\";\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} from \"./utils\";\nimport { buildHeaderLinks } from \"./utils/headers\";\n\nconst EditorContent = ({\n content = \"\",\n variables = [],\n className,\n size = EDITOR_SIZES.SMALL,\n configuration = EDITOR_CONTENT_DEFAULT_CONFIGURATION,\n ...otherProps\n}) => {\n const [imagePreviewDetails, setImagePreviewDetails] = useState(null);\n const editorContentRef = useRef(null);\n\n const htmlContent = substituteVariables(\n applySyntaxHighlightingAndLineNumbers(content),\n variables\n );\n const sanitize = DOMPurify.sanitize;\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 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 {...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","headingId","textContent","has","count","get","set","concat","anchor","cloneNode","replaceWith","EditorContent","_ref$content","content","_ref$variables","variables","_ref$size","size","EDITOR_SIZES","SMALL","_ref$configuration","configuration","EDITOR_CONTENT_DEFAULT_CONFIGURATION","otherProps","_objectWithoutProperties","_excluded","editorContentRef","htmlContent","substituteVariables","applySyntaxHighlightingAndLineNumbers","sanitize","DOMPurify","injectCopyButtonToCodeBlocks","_editorContentRef$cur","preTags","EDITOR_CONTENT_CLASS_NAME","preTag","button","root","createRoot","render","CopyToClipboardButton","value","bindImageClickListener","_editorContentRef$cur2","figureTags","figureTag","image","querySelector","link","isNil","addEventListener","event","preventDefault","innerText","applyLineHighlighting","enableHeaderLinks","_Fragment","_objectSpread","_defineProperty","dangerouslySetInnerHTML","__html","SANITIZE_OPTIONS","memo"],"mappings":"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"}
1
+ {"version":3,"file":"EditorContent.js","sources":["../src/components/EditorContent/ImagePreview.jsx","../src/components/EditorContent/utils/headers.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 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 anchor = document.createElement(\"a\");\n anchor.setAttribute(\"href\", `#${headingId}`);\n anchor.classList.add(\"header-wrapper-link\");\n anchor.appendChild(buildLinkSVG());\n anchor.appendChild(heading.cloneNode(true));\n\n heading.replaceWith(anchor);\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} from \"./utils\";\nimport { buildHeaderLinks } from \"./utils/headers\";\n\nconst EditorContent = ({\n content = \"\",\n variables = [],\n className,\n size = EDITOR_SIZES.SMALL,\n configuration = EDITOR_CONTENT_DEFAULT_CONFIGURATION,\n ...otherProps\n}) => {\n const [imagePreviewDetails, setImagePreviewDetails] = useState(null);\n const editorContentRef = useRef(null);\n\n const htmlContent = substituteVariables(\n applySyntaxHighlightingAndLineNumbers(removeEmptyTags(content)),\n variables\n );\n const sanitize = DOMPurify.sanitize;\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 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 {...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","headingId","textContent","has","count","get","set","concat","anchor","cloneNode","replaceWith","EditorContent","_ref$content","content","_ref$variables","variables","_ref$size","size","EDITOR_SIZES","SMALL","_ref$configuration","configuration","EDITOR_CONTENT_DEFAULT_CONFIGURATION","otherProps","_objectWithoutProperties","_excluded","editorContentRef","htmlContent","substituteVariables","applySyntaxHighlightingAndLineNumbers","removeEmptyTags","sanitize","DOMPurify","injectCopyButtonToCodeBlocks","_editorContentRef$cur","preTags","EDITOR_CONTENT_CLASS_NAME","preTag","button","root","createRoot","render","CopyToClipboardButton","value","bindImageClickListener","_editorContentRef$cur2","figureTags","figureTag","image","querySelector","link","isNil","addEventListener","event","preventDefault","innerText","applyLineHighlighting","enableHeaderLinks","_Fragment","_objectSpread","_defineProperty","dangerouslySetInnerHTML","__html","SANITIZE_OPTIONS","memo"],"mappings":"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"}
@@ -7,12 +7,13 @@ import Editor from './Editor.js';
7
7
  import { jsx } from 'react/jsx-runtime';
8
8
  import '@babel/runtime/helpers/toConsumableArray';
9
9
  import '@babel/runtime/helpers/slicedToArray';
10
- import './chunk-CrOyRwyj.js';
10
+ import './chunk-DLd26xqr.js';
11
11
  import 'ramda';
12
12
  import './chunk-DmrvuTKK.js';
13
13
  import 'i18next';
14
- import './chunk-UtuZMtPZ.js';
15
- import './chunk-D86RZ044.js';
14
+ import './chunk-vS_ygswz.js';
15
+ import './chunk-CxUlY2ns.js';
16
+ import './chunk-BMJOPQ2b.js';
16
17
  import 'yup';
17
18
  import 'tippy.js';
18
19
  import 'react-dom';
@@ -64,7 +65,7 @@ import 'react-colorful';
64
65
  import '@bigbinary/neeto-molecules/DynamicVariables';
65
66
  import '@bigbinary/neetoui/Modal';
66
67
  import '@bigbinary/neetoui/Tab';
67
- import './chunk-B8oM63AV.js';
68
+ import './chunk-Dt1M1PSn.js';
68
69
  import 'zustand/shallow';
69
70
  import '@bigbinary/neetoui/Toastr';
70
71
  import 'zustand';
@@ -79,11 +80,11 @@ import '@bigbinary/neetoui/Checkbox';
79
80
  import '@bigbinary/neeto-icons/MenuHorizontal';
80
81
  import '@tippyjs/react';
81
82
  import '@bigbinary/neeto-icons/File';
83
+ import 'react-dom/server';
84
+ import './chunk-CXjxEHI4.js';
82
85
  import 'yjs';
83
86
  import '@bigbinary/neeto-icons/Down';
84
87
  import '@bigbinary/neeto-molecules/CopyToClipboardButton';
85
- import './chunk-DBch3tqq.js';
86
- import './chunk-LjMXcuRe.js';
87
88
  import '@bigbinary/neeto-icons/Paragraph';
88
89
  import '@bigbinary/neeto-icons/TextH1';
89
90
  import '@bigbinary/neeto-icons/TextH2';
@@ -100,7 +101,7 @@ import '@bigbinary/neeto-icons/MergeSplit';
100
101
  import '@bigbinary/neeto-icons/ToggleHeaderRow';
101
102
  import '@bigbinary/neetoui/formik/Form';
102
103
  import '@bigbinary/neetoui/formik/Input';
103
- import './chunk-BV0txNQ1.js';
104
+ import './chunk-Q8kq5V5L.js';
104
105
  import '@bigbinary/neeto-icons/MenuVertical';
105
106
  import '@bigbinary/neetoui/Alert';
106
107
 
@@ -1 +1 @@
1
- {"version":3,"file":"FormikEditor.js","sources":["../src/components/Editor/FormikEditor.jsx"],"sourcesContent":["import { forwardRef, memo } from \"react\";\n\nimport { FastField } from \"formik\";\nimport { noop } from \"neetocist\";\n\nimport Editor from \".\";\n\nconst FormikEditor = (\n {\n name,\n onChange = noop,\n shouldUpdate,\n attachments = [],\n mentions = [],\n variables = [],\n ...otherProps\n },\n ref\n) => {\n // Similar to the `shouldComponentUpdate` logic of FastField component.\n // https://github.com/jaredpalmer/formik/blob/main/packages/formik/src/FastField.tsx#L75-L93\n // Additionally calls the shouldUpdate function passed from the host application and compares to\n // the rest of the values.\n const internalShouldUpdate = (prevProps, nextProps) => {\n const prevFormikProps = prevProps.formik;\n const nextFormikProps = nextProps.formik;\n\n return (\n prevFormikProps.errors[name] !== nextFormikProps.errors[name] ||\n prevFormikProps.touched[name] !== nextFormikProps.touched[name] ||\n Object.keys(nextProps).length !== Object.keys(prevProps).length ||\n prevFormikProps.isSubmitting !== nextFormikProps.isSubmitting ||\n Boolean(shouldUpdate?.(prevProps, nextProps))\n );\n };\n\n return (\n <FastField\n {...{ attachments, mentions, name, variables }}\n shouldUpdate={internalShouldUpdate}\n >\n {({ field, form, meta }) => (\n <Editor\n {...{ attachments, mentions, name, ref, variables }}\n error={meta.touched ? meta.error : \"\"}\n initialValue={field.value}\n onBlur={() => {\n form.setFieldTouched(name, true);\n }}\n onChange={value => {\n form.setFieldValue(name, value);\n onChange?.(value);\n }}\n {...otherProps}\n />\n )}\n </FastField>\n );\n};\n\nFormikEditor.displayName = \"FormikNeetoEditor\";\n\nexport default memo(forwardRef(FormikEditor));\n"],"names":["FormikEditor","_ref","ref","name","_ref$onChange","onChange","noop","shouldUpdate","_ref$attachments","attachments","_ref$mentions","mentions","_ref$variables","variables","otherProps","_objectWithoutProperties","_excluded","internalShouldUpdate","prevProps","nextProps","prevFormikProps","formik","nextFormikProps","errors","touched","Object","keys","length","isSubmitting","Boolean","_jsx","FastField","children","_ref2","field","form","meta","Editor","_objectSpread","error","initialValue","value","onBlur","setFieldTouched","setFieldValue","displayName","memo","forwardRef"],"mappings":"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"}
1
+ {"version":3,"file":"FormikEditor.js","sources":["../src/components/Editor/FormikEditor.jsx"],"sourcesContent":["import { forwardRef, memo } from \"react\";\n\nimport { FastField } from \"formik\";\nimport { noop } from \"neetocist\";\n\nimport Editor from \".\";\n\nconst FormikEditor = (\n {\n name,\n onChange = noop,\n shouldUpdate,\n attachments = [],\n mentions = [],\n variables = [],\n ...otherProps\n },\n ref\n) => {\n // Similar to the `shouldComponentUpdate` logic of FastField component.\n // https://github.com/jaredpalmer/formik/blob/main/packages/formik/src/FastField.tsx#L75-L93\n // Additionally calls the shouldUpdate function passed from the host application and compares to\n // the rest of the values.\n const internalShouldUpdate = (prevProps, nextProps) => {\n const prevFormikProps = prevProps.formik;\n const nextFormikProps = nextProps.formik;\n\n return (\n prevFormikProps.errors[name] !== nextFormikProps.errors[name] ||\n prevFormikProps.touched[name] !== nextFormikProps.touched[name] ||\n Object.keys(nextProps).length !== Object.keys(prevProps).length ||\n prevFormikProps.isSubmitting !== nextFormikProps.isSubmitting ||\n Boolean(shouldUpdate?.(prevProps, nextProps))\n );\n };\n\n return (\n <FastField\n {...{ attachments, mentions, name, variables }}\n shouldUpdate={internalShouldUpdate}\n >\n {({ field, form, meta }) => (\n <Editor\n {...{ attachments, mentions, name, ref, variables }}\n error={meta.touched ? meta.error : \"\"}\n initialValue={field.value}\n onBlur={() => {\n form.setFieldTouched(name, true);\n }}\n onChange={value => {\n form.setFieldValue(name, value);\n onChange?.(value);\n }}\n {...otherProps}\n />\n )}\n </FastField>\n );\n};\n\nFormikEditor.displayName = \"FormikNeetoEditor\";\n\nexport default memo(forwardRef(FormikEditor));\n"],"names":["FormikEditor","_ref","ref","name","_ref$onChange","onChange","noop","shouldUpdate","_ref$attachments","attachments","_ref$mentions","mentions","_ref$variables","variables","otherProps","_objectWithoutProperties","_excluded","internalShouldUpdate","prevProps","nextProps","prevFormikProps","formik","nextFormikProps","errors","touched","Object","keys","length","isSubmitting","Boolean","_jsx","FastField","children","_ref2","field","form","meta","Editor","_objectSpread","error","initialValue","value","onBlur","setFieldTouched","setFieldValue","displayName","memo","forwardRef"],"mappings":"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"}
package/dist/Menu.js CHANGED
@@ -3,16 +3,17 @@ import '@babel/runtime/helpers/toConsumableArray';
3
3
  import '@babel/runtime/helpers/slicedToArray';
4
4
  import 'react';
5
5
  import 'ramda';
6
- export { M as default } from './chunk-CrOyRwyj.js';
7
- import './chunk-UtuZMtPZ.js';
6
+ export { M as default } from './chunk-DLd26xqr.js';
7
+ import './chunk-BMJOPQ2b.js';
8
8
  import 'react/jsx-runtime';
9
9
  import './chunk-DmrvuTKK.js';
10
10
  import 'i18next';
11
+ import './chunk-vS_ygswz.js';
12
+ import '@bigbinary/neeto-cist';
13
+ import './chunk-CxUlY2ns.js';
11
14
  import 'tippy.js';
12
15
  import 'react-dom';
13
16
  import 'classnames';
14
- import './chunk-D86RZ044.js';
15
- import '@bigbinary/neeto-cist';
16
17
  import 'tippy.js/dist/svg-arrow.css';
17
18
  import '@bigbinary/neeto-icons/Link';
18
19
  import '@bigbinary/neeto-icons/Column';
@@ -61,7 +62,7 @@ import '@babel/runtime/helpers/objectWithoutProperties';
61
62
  import '@bigbinary/neeto-molecules/DynamicVariables';
62
63
  import '@bigbinary/neetoui/Modal';
63
64
  import '@bigbinary/neetoui/Tab';
64
- import './chunk-B8oM63AV.js';
65
+ import './chunk-Dt1M1PSn.js';
65
66
  import 'zustand/shallow';
66
67
  import '@bigbinary/neetoui/Toastr';
67
68
  import 'zustand';
package/dist/Menu.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Menu.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,19 @@
1
+ import { U as URL_REGEXP, E as EDITOR_OPTIONS } from './chunk-CxUlY2ns.js';
2
+ import { t } from 'i18next';
3
+ import * as yup from 'yup';
4
+
5
+ var DEFAULT_EDITOR_OPTIONS = [EDITOR_OPTIONS.BOLD, EDITOR_OPTIONS.ITALIC, EDITOR_OPTIONS.UNDERLINE, EDITOR_OPTIONS.STRIKETHROUGH, EDITOR_OPTIONS.LINK, EDITOR_OPTIONS.PARAGRAPH, EDITOR_OPTIONS.H1, EDITOR_OPTIONS.H2, EDITOR_OPTIONS.LIST_BULLETS, EDITOR_OPTIONS.LIST_ORDERED, EDITOR_OPTIONS.CODE];
6
+ var EDITOR_PADDING_SIZE = 12;
7
+ var EDITOR_BORDER_SIZE = 1;
8
+ var EDITOR_LINE_HEIGHT = 21;
9
+ var IMAGE_REGEX = new RegExp(/(<img[^>]*?>)(?![\s\S]*<\/figure>)/g);
10
+ var IMAGE_REPLACEMENT_PATTERN = "<figure>$1</figure>";
11
+ var EMPTY_DIV_REGEX = new RegExp(/<div[^>]*?>\s*(?:<br[^>]*?>)\s*<\/div>/g);
12
+ var TRAILING_BR_REGEX = new RegExp(/\s*(?:<br[^>]*?>)+\s*$/);
13
+ var LINK_VALIDATION_SCHEMA = yup.object().shape({
14
+ textContent: yup.string().required(t("neetoEditor.error.textRequired")),
15
+ urlString: yup.string().matches(URL_REGEXP, t("neetoEditor.error.invalidUrl")).required(t("neetoEditor.error.urlRequired"))
16
+ });
17
+
18
+ export { DEFAULT_EDITOR_OPTIONS as D, EMPTY_DIV_REGEX as E, IMAGE_REGEX as I, LINK_VALIDATION_SCHEMA as L, TRAILING_BR_REGEX as T, IMAGE_REPLACEMENT_PATTERN as a, EDITOR_LINE_HEIGHT as b, EDITOR_PADDING_SIZE as c, EDITOR_BORDER_SIZE as d };
19
+ //# sourceMappingURL=chunk-BMJOPQ2b.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk-BMJOPQ2b.js","sources":["../src/components/Editor/constants.js"],"sourcesContent":["import { EDITOR_OPTIONS, URL_REGEXP } from \"common/constants\";\nimport { t } from \"i18next\";\nimport * as yup from \"yup\";\n\nexport const DEFAULT_EDITOR_OPTIONS = [\n EDITOR_OPTIONS.BOLD,\n EDITOR_OPTIONS.ITALIC,\n EDITOR_OPTIONS.UNDERLINE,\n EDITOR_OPTIONS.STRIKETHROUGH,\n EDITOR_OPTIONS.LINK,\n EDITOR_OPTIONS.PARAGRAPH,\n EDITOR_OPTIONS.H1,\n EDITOR_OPTIONS.H2,\n EDITOR_OPTIONS.LIST_BULLETS,\n EDITOR_OPTIONS.LIST_ORDERED,\n EDITOR_OPTIONS.CODE,\n];\nexport const EDITOR_PADDING_SIZE = 12;\n\nexport const EDITOR_BORDER_SIZE = 1;\n\nexport const EDITOR_LINE_HEIGHT = 21;\n\nexport const IMAGE_REGEX = new RegExp(/(<img[^>]*?>)(?![\\s\\S]*<\\/figure>)/g);\nexport const IMAGE_REPLACEMENT_PATTERN = \"<figure>$1</figure>\";\nexport const EMPTY_DIV_REGEX = new RegExp(\n /<div[^>]*?>\\s*(?:<br[^>]*?>)\\s*<\\/div>/g\n);\nexport const TRAILING_BR_REGEX = new RegExp(/\\s*(?:<br[^>]*?>)+\\s*$/);\n\nexport const LINK_VALIDATION_SCHEMA = yup.object().shape({\n textContent: yup.string().required(t(\"neetoEditor.error.textRequired\")),\n urlString: yup\n .string()\n .matches(URL_REGEXP, t(\"neetoEditor.error.invalidUrl\"))\n .required(t(\"neetoEditor.error.urlRequired\")),\n});\n"],"names":["DEFAULT_EDITOR_OPTIONS","EDITOR_OPTIONS","BOLD","ITALIC","UNDERLINE","STRIKETHROUGH","LINK","PARAGRAPH","H1","H2","LIST_BULLETS","LIST_ORDERED","CODE","EDITOR_PADDING_SIZE","EDITOR_BORDER_SIZE","EDITOR_LINE_HEIGHT","IMAGE_REGEX","RegExp","IMAGE_REPLACEMENT_PATTERN","EMPTY_DIV_REGEX","TRAILING_BR_REGEX","LINK_VALIDATION_SCHEMA","yup","object","shape","textContent","string","required","t","urlString","matches","URL_REGEXP"],"mappings":";;;;AAIO,IAAMA,sBAAsB,GAAG,CACpCC,cAAc,CAACC,IAAI,EACnBD,cAAc,CAACE,MAAM,EACrBF,cAAc,CAACG,SAAS,EACxBH,cAAc,CAACI,aAAa,EAC5BJ,cAAc,CAACK,IAAI,EACnBL,cAAc,CAACM,SAAS,EACxBN,cAAc,CAACO,EAAE,EACjBP,cAAc,CAACQ,EAAE,EACjBR,cAAc,CAACS,YAAY,EAC3BT,cAAc,CAACU,YAAY,EAC3BV,cAAc,CAACW,IAAI,EACpB;AACM,IAAMC,mBAAmB,GAAG,GAAE;AAE9B,IAAMC,kBAAkB,GAAG,EAAC;AAE5B,IAAMC,kBAAkB,GAAG,GAAE;IAEvBC,WAAW,GAAG,IAAIC,MAAM,CAAC,qCAAqC,EAAC;AACrE,IAAMC,yBAAyB,GAAG,sBAAqB;IACjDC,eAAe,GAAG,IAAIF,MAAM,CACvC,yCACF,EAAC;IACYG,iBAAiB,GAAG,IAAIH,MAAM,CAAC,wBAAwB,EAAC;AAE9D,IAAMI,sBAAsB,GAAGC,GAAG,CAACC,MAAM,EAAE,CAACC,KAAK,CAAC;AACvDC,EAAAA,WAAW,EAAEH,GAAG,CAACI,MAAM,EAAE,CAACC,QAAQ,CAACC,CAAC,CAAC,gCAAgC,CAAC,CAAC;EACvEC,SAAS,EAAEP,GAAG,CACXI,MAAM,EAAE,CACRI,OAAO,CAACC,UAAU,EAAEH,CAAC,CAAC,8BAA8B,CAAC,CAAC,CACtDD,QAAQ,CAACC,CAAC,CAAC,+BAA+B,CAAC,CAAA;AAChD,CAAC;;;;"}
@@ -1,4 +1,6 @@
1
- import { g as getDefaultExportFromCjs } from './chunk-D86RZ044.js';
1
+ import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
2
+ import { g as getDefaultExportFromCjs } from './chunk-CxUlY2ns.js';
3
+ import { isNotPresent } from '@bigbinary/neeto-cist';
2
4
 
3
5
  var deepFreezeEs6 = {exports: {}};
4
6
 
@@ -16143,5 +16145,75 @@ lowlight.registerLanguage('wasm', wasm);
16143
16145
  lowlight.registerLanguage('xml', xml);
16144
16146
  lowlight.registerLanguage('yaml', yaml);
16145
16147
 
16146
- export { core as c, lowlight as l };
16147
- //# sourceMappingURL=chunk-DBch3tqq.js.map
16148
+ var EDITOR_CONTENT_CLASS_NAME = "neeto-editor-content";
16149
+ var SANITIZE_OPTIONS = {
16150
+ ADD_TAGS: ["iframe"],
16151
+ ADD_ATTR: ["target", "allow", "allowfullscreen", "frameborder"]
16152
+ };
16153
+ var CODE_BLOCK_REGEX = /<pre(?:\s+[^>]+)?><code(?:\s+class="language-([^"]*)")?>([\S\s]*?)<\/code><\/pre>/gim;
16154
+ var VARIABLE_SPAN_REGEX = /<span data-variable="" [^>]*data-label="([^"]+)">{{([^}]+)}}<\/span>/g;
16155
+ var LANGUAGE_LIST = [].concat(_toConsumableArray(lowlight.listLanguages()), ["html"]);
16156
+ var EDITOR_CONTENT_DEFAULT_CONFIGURATION = {
16157
+ enableHeaderLinks: false
16158
+ };
16159
+
16160
+ var NON_EMPTY_TAGS = ["img", "iframe"];
16161
+ var MARGIN_HEIGHT = 8;
16162
+ var EMPTY_TAGS_TO_REMOVE = ["p", "h1", "h2", "h3", "h4", "h5", "h6", "br"];
16163
+
16164
+ var removeTagsStart = function removeTagsStart(node) {
16165
+ while (node.firstChild && EMPTY_TAGS_TO_REMOVE.includes((_node$firstChild$tagN = node.firstChild.tagName) === null || _node$firstChild$tagN === void 0 ? void 0 : _node$firstChild$tagN.toLowerCase())) {
16166
+ var _node$firstChild$tagN;
16167
+ if (!node.firstChild.innerHTML) {
16168
+ node.firstChild.remove();
16169
+ } else {
16170
+ removeTagsStart(node.firstChild);
16171
+ if (node.firstChild.innerHTML) {
16172
+ break;
16173
+ }
16174
+ }
16175
+ }
16176
+ };
16177
+ var removeTagsEnd = function removeTagsEnd(node) {
16178
+ while (node.lastChild && EMPTY_TAGS_TO_REMOVE.includes((_node$lastChild$tagNa = node.lastChild.tagName) === null || _node$lastChild$tagNa === void 0 ? void 0 : _node$lastChild$tagNa.toLowerCase())) {
16179
+ var _node$lastChild$tagNa;
16180
+ if (!node.lastChild.innerHTML) {
16181
+ node.lastChild.remove();
16182
+ } else {
16183
+ removeTagsEnd(node.lastChild);
16184
+ if (node.lastChild.innerHTML) {
16185
+ break;
16186
+ }
16187
+ }
16188
+ }
16189
+ };
16190
+ var removeEmptyTags = function removeEmptyTags(html) {
16191
+ var tempDiv = document.createElement("div");
16192
+ tempDiv.innerHTML = html;
16193
+ removeTagsStart(tempDiv);
16194
+ removeTagsEnd(tempDiv);
16195
+ return tempDiv.innerHTML;
16196
+ };
16197
+ var isEditorEmpty = function isEditorEmpty(htmlContent) {
16198
+ var _element$textContent;
16199
+ if (isNotPresent(htmlContent)) return true;
16200
+ if (NON_EMPTY_TAGS.some(function (tag) {
16201
+ return htmlContent.includes(tag);
16202
+ })) return false;
16203
+ var element = document.createElement("div");
16204
+ element.innerHTML = htmlContent;
16205
+ var editorIsEmpty = isNotPresent((_element$textContent = element.textContent) === null || _element$textContent === void 0 ? void 0 : _element$textContent.trim());
16206
+ element.remove();
16207
+ return editorIsEmpty;
16208
+ };
16209
+ var isEditorContentWithinLimit = function isEditorContentWithinLimit(htmlContent, maxLength) {
16210
+ if (isNotPresent(htmlContent)) return true;
16211
+ var element = document.createElement("div");
16212
+ element.innerHTML = htmlContent;
16213
+ var isLengthWithinLimit = element.textContent.length <= maxLength;
16214
+ element.remove();
16215
+ return isLengthWithinLimit;
16216
+ };
16217
+
16218
+ export { CODE_BLOCK_REGEX as C, EDITOR_CONTENT_CLASS_NAME as E, LANGUAGE_LIST as L, MARGIN_HEIGHT as M, SANITIZE_OPTIONS as S, VARIABLE_SPAN_REGEX as V, isEditorContentWithinLimit as a, EDITOR_CONTENT_DEFAULT_CONFIGURATION as b, core as c, isEditorEmpty as i, lowlight as l, removeEmptyTags as r };
16219
+ //# sourceMappingURL=chunk-CXjxEHI4.js.map