@bigbinary/neeto-editor-frontend 2.2.2 → 2.2.4
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/Attachments.js +3 -3
- package/dist/Editor.js +10 -10
- package/dist/EditorContent.js +4 -4
- package/dist/FormikEditor.js +10 -10
- package/dist/Menu.js +7 -7
- package/dist/{chunk-BfQ_Kj4i.js → chunk-AexVHCkr.js} +4 -4
- package/dist/{chunk-BfQ_Kj4i.js.map → chunk-AexVHCkr.js.map} +1 -1
- package/dist/{chunk-CRUXOawK.js → chunk-B5LsYrmv.js} +4 -4
- package/dist/{chunk-CRUXOawK.js.map → chunk-B5LsYrmv.js.map} +1 -1
- package/dist/chunk-BHi0J28T.js +1970 -0
- package/dist/chunk-BHi0J28T.js.map +1 -0
- package/dist/{chunk-CxFTIgDS.js → chunk-BIgc5m-h.js} +2 -2
- package/dist/{chunk-CxFTIgDS.js.map → chunk-BIgc5m-h.js.map} +1 -1
- package/dist/{chunk-BNyLNMnb.js → chunk-Bktpw5vs.js} +5 -5
- package/dist/{chunk-BNyLNMnb.js.map → chunk-Bktpw5vs.js.map} +1 -1
- package/dist/{chunk-lEnpEBRB.js → chunk-BozdxlzB.js} +5 -5
- package/dist/{chunk-lEnpEBRB.js.map → chunk-BozdxlzB.js.map} +1 -1
- package/dist/{chunk-BpMZjml2.js → chunk-C9H9LYpP.js} +2 -2
- package/dist/chunk-C9H9LYpP.js.map +1 -0
- package/dist/{chunk-DhFieQe2.js → chunk-CLjWv4gG.js} +4 -4
- package/dist/{chunk-DhFieQe2.js.map → chunk-CLjWv4gG.js.map} +1 -1
- package/dist/{chunk-D_Lgx0N7.js → chunk-C_4zmIBQ.js} +2 -2
- package/dist/{chunk-D_Lgx0N7.js.map → chunk-C_4zmIBQ.js.map} +1 -1
- package/dist/{chunk-YhV82e9I.js → chunk-CivYrffM.js} +6 -6
- package/dist/{chunk-YhV82e9I.js.map → chunk-CivYrffM.js.map} +1 -1
- package/dist/{chunk-BV_wep_Y.js → chunk-D37Dlp9s.js} +4 -4
- package/dist/{chunk-BV_wep_Y.js.map → chunk-D37Dlp9s.js.map} +1 -1
- package/dist/{chunk-DYRpf9PJ.js → chunk-DPx9v04U.js} +3 -3
- package/dist/{chunk-DYRpf9PJ.js.map → chunk-DPx9v04U.js.map} +1 -1
- package/dist/{chunk-7ioLE0kx.js → chunk-DcxOAiAp.js} +2 -2
- package/dist/{chunk-7ioLE0kx.js.map → chunk-DcxOAiAp.js.map} +1 -1
- package/dist/{chunk-DN9pYQV5.js → chunk-DqSrbxqC.js} +2 -2
- package/dist/{chunk-DN9pYQV5.js.map → chunk-DqSrbxqC.js.map} +1 -1
- package/dist/{chunk-BGx6BSFw.js → chunk-DwQ7NJtm.js} +4 -4
- package/dist/{chunk-BGx6BSFw.js.map → chunk-DwQ7NJtm.js.map} +1 -1
- package/dist/{chunk-Br5h7rjn.js → chunk-GA-wADEN.js} +3 -3
- package/dist/{chunk-Br5h7rjn.js.map → chunk-GA-wADEN.js.map} +1 -1
- package/dist/{chunk-DfH1lF5p.js → chunk-LtUevT4I.js} +2 -2
- package/dist/{chunk-DfH1lF5p.js.map → chunk-LtUevT4I.js.map} +1 -1
- package/dist/{chunk-sn8HEeT6.js → chunk-yBvbLjSM.js} +4 -4
- package/dist/{chunk-sn8HEeT6.js.map → chunk-yBvbLjSM.js.map} +1 -1
- package/dist/cjs/Attachments.cjs.js +3 -3
- package/dist/cjs/Editor.cjs.js +10 -10
- package/dist/cjs/EditorContent.cjs.js +4 -4
- package/dist/cjs/FormikEditor.cjs.js +10 -10
- package/dist/cjs/Menu.cjs.js +7 -7
- package/dist/cjs/{chunk-BAse0j9m.cjs.js → chunk-BfHU_Ynq.cjs.js} +4 -4
- package/dist/cjs/{chunk-BAse0j9m.cjs.js.map → chunk-BfHU_Ynq.cjs.js.map} +1 -1
- package/dist/cjs/{chunk-QnVNXaqt.cjs.js → chunk-CAaxrndK.cjs.js} +6 -6
- package/dist/cjs/{chunk-QnVNXaqt.cjs.js.map → chunk-CAaxrndK.cjs.js.map} +1 -1
- package/dist/cjs/{chunk-DRnP2LQe.cjs.js → chunk-CJIIbW7G.cjs.js} +2 -2
- package/dist/cjs/{chunk-DRnP2LQe.cjs.js.map → chunk-CJIIbW7G.cjs.js.map} +1 -1
- package/dist/cjs/{chunk-V1V-Gqfy.cjs.js → chunk-CKbuSSOi.cjs.js} +5 -5
- package/dist/cjs/{chunk-V1V-Gqfy.cjs.js.map → chunk-CKbuSSOi.cjs.js.map} +1 -1
- package/dist/cjs/{chunk-CQLQEN5P.cjs.js → chunk-CU6dMPZV.cjs.js} +2 -2
- package/dist/cjs/{chunk-CQLQEN5P.cjs.js.map → chunk-CU6dMPZV.cjs.js.map} +1 -1
- package/dist/cjs/{chunk-BPJBeVDI.cjs.js → chunk-C_XHzWXy.cjs.js} +2 -2
- package/dist/cjs/chunk-C_XHzWXy.cjs.js.map +1 -0
- package/dist/cjs/{chunk-bfmPXyQJ.cjs.js → chunk-CddQ0UHU.cjs.js} +3 -3
- package/dist/cjs/{chunk-bfmPXyQJ.cjs.js.map → chunk-CddQ0UHU.cjs.js.map} +1 -1
- package/dist/cjs/{chunk-BPLEmkMA.cjs.js → chunk-CfiRFXt2.cjs.js} +2 -2
- package/dist/cjs/{chunk-BPLEmkMA.cjs.js.map → chunk-CfiRFXt2.cjs.js.map} +1 -1
- package/dist/cjs/{chunk-78VpxO0R.cjs.js → chunk-CkSG3yNC.cjs.js} +4 -4
- package/dist/cjs/{chunk-78VpxO0R.cjs.js.map → chunk-CkSG3yNC.cjs.js.map} +1 -1
- package/dist/cjs/{chunk-CHk_Gq2n.cjs.js → chunk-CpQ8t9br.cjs.js} +2 -2
- package/dist/cjs/{chunk-CHk_Gq2n.cjs.js.map → chunk-CpQ8t9br.cjs.js.map} +1 -1
- package/dist/cjs/chunk-Cr0FBhRs.cjs.js +1990 -0
- package/dist/cjs/chunk-Cr0FBhRs.cjs.js.map +1 -0
- package/dist/cjs/{chunk-DGPpvE8O.cjs.js → chunk-Ct6vCCZ0.cjs.js} +4 -4
- package/dist/cjs/{chunk-DGPpvE8O.cjs.js.map → chunk-Ct6vCCZ0.cjs.js.map} +1 -1
- package/dist/cjs/{chunk-CwY6UgZq.cjs.js → chunk-CxKWZyHq.cjs.js} +3 -3
- package/dist/cjs/{chunk-CwY6UgZq.cjs.js.map → chunk-CxKWZyHq.cjs.js.map} +1 -1
- package/dist/cjs/{chunk-j4T5BDua.cjs.js → chunk-Df33Mipq.cjs.js} +5 -5
- package/dist/cjs/{chunk-j4T5BDua.cjs.js.map → chunk-Df33Mipq.cjs.js.map} +1 -1
- package/dist/cjs/{chunk-D86ONI5s.cjs.js → chunk-Df43FB6u.cjs.js} +4 -4
- package/dist/cjs/{chunk-D86ONI5s.cjs.js.map → chunk-Df43FB6u.cjs.js.map} +1 -1
- package/dist/cjs/{chunk--47DtZYn.cjs.js → chunk-DuwgLqpD.cjs.js} +4 -4
- package/dist/cjs/{chunk--47DtZYn.cjs.js.map → chunk-DuwgLqpD.cjs.js.map} +1 -1
- package/dist/cjs/{chunk-bxP1kilM.cjs.js → chunk-Dwv-JqJN.cjs.js} +2 -2
- package/dist/cjs/{chunk-bxP1kilM.cjs.js.map → chunk-Dwv-JqJN.cjs.js.map} +1 -1
- package/dist/cjs/{chunk-CBswWnmM.cjs.js → chunk-Niprqtd_.cjs.js} +3 -3
- package/dist/cjs/{chunk-CBswWnmM.cjs.js.map → chunk-Niprqtd_.cjs.js.map} +1 -1
- package/dist/cjs/index.cjs.js +12 -12
- package/dist/cjs/utils.cjs.js +6 -6
- package/dist/cjs/v2/Attachments.cjs.js +3 -3
- package/dist/cjs/v2/Editor.cjs.js +872 -236
- package/dist/cjs/v2/Editor.cjs.js.map +1 -1
- package/dist/cjs/v2/EditorContent.cjs.js +4 -4
- package/dist/cjs/v2/FormikEditor.cjs.js +9 -9
- package/dist/cjs/v2/Menu.cjs.js +6 -6
- package/dist/cjs/v2/index.cjs.js +11 -11
- package/dist/cjs/v2/utils.cjs.js +6 -6
- package/dist/editor-stats.html +1 -19
- package/dist/index.js +12 -12
- package/dist/utils.js +6 -6
- package/dist/v2/Attachments.js +3 -3
- package/dist/v2/Editor.js +872 -236
- package/dist/v2/Editor.js.map +1 -1
- package/dist/v2/EditorContent.js +4 -4
- package/dist/v2/FormikEditor.js +9 -9
- package/dist/v2/Menu.js +6 -6
- package/dist/v2/index.js +11 -11
- package/dist/v2/styles.css +1 -1
- package/dist/v2/styles.js +1 -1
- package/dist/v2/utils.js +6 -6
- package/package.json +6 -4
- package/dist/chunk-BpMZjml2.js.map +0 -1
- package/dist/chunk-OP-lX765.js +0 -8654
- package/dist/chunk-OP-lX765.js.map +0 -1
- package/dist/cjs/chunk-BPJBeVDI.cjs.js.map +0 -1
- package/dist/cjs/chunk-Bde8Sbb1.cjs.js +0 -8674
- package/dist/cjs/chunk-Bde8Sbb1.cjs.js.map +0 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var React = require('react');
|
|
4
|
-
var common$1 = require('./chunk-
|
|
4
|
+
var common$1 = require('./chunk-Dwv-JqJN.cjs.js');
|
|
5
5
|
var neetoCist = require('@bigbinary/neeto-cist');
|
|
6
6
|
var ramda = require('ramda');
|
|
7
7
|
var ReactDOM = require('react-dom/server');
|
|
8
|
-
var common = require('./chunk-
|
|
8
|
+
var common = require('./chunk-CU6dMPZV.cjs.js');
|
|
9
9
|
|
|
10
10
|
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: true } : { done: false, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = true, u = false; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = true, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
11
11
|
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
@@ -137,4 +137,4 @@ exports.applyLineHighlighting = applyLineHighlighting;
|
|
|
137
137
|
exports.applySyntaxHighlightingAndLineNumbers = applySyntaxHighlightingAndLineNumbers;
|
|
138
138
|
exports.convertPlainTextToHtml = convertPlainTextToHtml;
|
|
139
139
|
exports.substituteVariables = substituteVariables;
|
|
140
|
-
//# sourceMappingURL=chunk-
|
|
140
|
+
//# sourceMappingURL=chunk-CddQ0UHU.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunk-bfmPXyQJ.cjs.js","sources":["../../app/javascript/src/components/EditorContent/utils/index.js"],"sourcesContent":["import { createElement } from \"react\";\n\nimport hljs from \"highlight.js/lib/common\";\nimport { lowlight } from \"lowlight\";\nimport { findBy } from \"neetocist\";\nimport { isEmpty } from \"ramda\";\nimport { renderToString } from \"react-dom/server\";\n\nimport {\n CODE_BLOCK_REGEX,\n LANGUAGE_LIST,\n VARIABLE_SPAN_REGEX,\n} from \"../constants\";\n\nconst transformCode = code =>\n code.replace(/>/g, \">\").replace(/</g, \"<\").replace(/&/g, \"&\");\n\nconst buildReactElementFromAST = element => {\n if (element.tagName) {\n const children = element.children\n ? element.children.map(buildReactElementFromAST)\n : null;\n\n return createElement(element.tagName, element.properties, children);\n }\n\n return element.value;\n};\n\nconst splitCodeBlockIntoLines = codeBlock => {\n codeBlock.innerHTML = codeBlock.innerHTML.replace(\n /([ \\S]*\\n|[ \\S]*$)/gm,\n match => `<div class=\"highlight-line\">${match}</div>`\n );\n};\n\nconst highlightLinesCode = (code, options) => {\n if (options === undefined) {\n return;\n }\n\n const paddingLeft = parseInt(window.getComputedStyle(code).paddingLeft);\n const paddingRight = parseInt(window.getComputedStyle(code).paddingRight);\n\n const lines = code.getElementsByClassName(\"highlight-line\");\n const scroll_width = code.scrollWidth;\n // eslint-disable-next-line @bigbinary/neeto/use-array-methods\n for (const option of options) {\n for (let j = option.start; j <= option.end; ++j) {\n if (j >= lines.length) return;\n lines[j].style.backgroundColor = option.color;\n lines[j].style.minWidth = `${\n scroll_width - paddingLeft - paddingRight\n }px`;\n }\n }\n};\n\nexport const highlightLinesElement = (code, options) => {\n // eslint-disable-next-line @bigbinary/neeto/use-array-methods\n for (const option of options) {\n --option.start;\n --option.end;\n }\n highlightLinesCode(code, options);\n};\n\nexport const applySyntaxHighlightingAndLineNumbers = content => {\n lowlight.highlightAuto(\"\");\n let highlightedAST = {};\n\n return content.replace(CODE_BLOCK_REGEX, (_, language, code) => {\n const highlightRegex = /data-highlighted-lines=\"([^\"]*)\"/;\n const linenumbersRegex = /data-linenumbers/;\n const highlightMatch = content.match(highlightRegex);\n\n if (language && LANGUAGE_LIST.includes(language)) {\n highlightedAST = lowlight.highlight(language, transformCode(code));\n } else {\n highlightedAST = hljs.highlightAuto(transformCode(code))._emitter.root;\n if (isEmpty(highlightedAST.children)) {\n highlightedAST = lowlight.highlight(\"javascript\", transformCode(code));\n }\n }\n\n const highlightedNode = highlightedAST.children.map(\n buildReactElementFromAST\n );\n\n const dataHighlight = `data-highlighted-lines=${highlightMatch?.[1] ?? \"\"}`;\n const dataLinenumbers = content.match(linenumbersRegex)\n ? `data-linenumbers=\"true\"`\n : \"\";\n\n return `<pre ${dataLinenumbers} ${dataHighlight}><code>${renderToString(\n highlightedNode\n )}</code></pre>`;\n });\n};\n\nexport const applyLineHighlighting = editorContent => {\n const codeTags = editorContent?.querySelectorAll(\"pre code\");\n\n codeTags.forEach(codeTag => {\n splitCodeBlockIntoLines(codeTag);\n\n const highlightedLines = codeTag\n .closest(\"pre\")\n .getAttribute(\"data-highlighted-lines\");\n\n if (highlightedLines) {\n const linesToHighlight = highlightedLines\n .split(\",\")\n .map(Number)\n .filter(Boolean);\n\n const highlightLinesOptions = linesToHighlight.map(line => ({\n start: line,\n end: line,\n color: \"rgba(255, 255, 0, 0.2)\",\n }));\n\n highlightLinesElement(codeTag, highlightLinesOptions);\n }\n });\n};\n\nexport const substituteVariables = (highlightedContent, variables) =>\n highlightedContent.replace(VARIABLE_SPAN_REGEX, (matchedSpan, _, key) => {\n const keySplitted = key.split(\".\");\n if (keySplitted.length > 1) {\n const category = findBy({ category: keySplitted[0] }, variables);\n const variable = findBy(\n { key: keySplitted[1] },\n category?.variables || []\n );\n\n return variable?.value ? variable.value : matchedSpan;\n }\n\n const variable = findBy({ key: keySplitted[0] }, variables);\n\n return variable?.value ? variable.value : matchedSpan;\n });\n\nexport const convertPlainTextToHtml = htmlString => {\n if (/^<[a-z].*>/i.test(htmlString.trim())) return htmlString;\n\n return htmlString\n .split(\"\\n\")\n .reduce((html, str) => `${html}<p>${str}</p>`, \"\");\n};\n"],"names":["transformCode","code","replace","buildReactElementFromAST","element","tagName","children","map","createElement","properties","value","splitCodeBlockIntoLines","codeBlock","innerHTML","match","concat","highlightLinesCode","options","undefined","paddingLeft","parseInt","window","getComputedStyle","paddingRight","lines","getElementsByClassName","scroll_width","scrollWidth","_iterator","_createForOfIteratorHelper","_step","s","n","done","option","j","start","end","length","style","backgroundColor","color","minWidth","err","e","f","highlightLinesElement","_iterator2","_step2","applySyntaxHighlightingAndLineNumbers","content","lowlight","highlightAuto","highlightedAST","CODE_BLOCK_REGEX","_","language","_highlightMatch$","highlightRegex","linenumbersRegex","highlightMatch","LANGUAGE_LIST","includes","highlight","hljs","_emitter","root","isEmpty","highlightedNode","dataHighlight","dataLinenumbers","renderToString","applyLineHighlighting","editorContent","codeTags","querySelectorAll","forEach","codeTag","highlightedLines","closest","getAttribute","linesToHighlight","split","Number","filter","Boolean","highlightLinesOptions","line","substituteVariables","highlightedContent","variables","VARIABLE_SPAN_REGEX","matchedSpan","key","keySplitted","category","findBy","variable","convertPlainTextToHtml","htmlString","test","trim","reduce","html","str"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chunk-CddQ0UHU.cjs.js","sources":["../../app/javascript/src/components/EditorContent/utils/index.js"],"sourcesContent":["import { createElement } from \"react\";\n\nimport hljs from \"highlight.js/lib/common\";\nimport { lowlight } from \"lowlight\";\nimport { findBy } from \"neetocist\";\nimport { isEmpty } from \"ramda\";\nimport { renderToString } from \"react-dom/server\";\n\nimport {\n CODE_BLOCK_REGEX,\n LANGUAGE_LIST,\n VARIABLE_SPAN_REGEX,\n} from \"../constants\";\n\nconst transformCode = code =>\n code.replace(/>/g, \">\").replace(/</g, \"<\").replace(/&/g, \"&\");\n\nconst buildReactElementFromAST = element => {\n if (element.tagName) {\n const children = element.children\n ? element.children.map(buildReactElementFromAST)\n : null;\n\n return createElement(element.tagName, element.properties, children);\n }\n\n return element.value;\n};\n\nconst splitCodeBlockIntoLines = codeBlock => {\n codeBlock.innerHTML = codeBlock.innerHTML.replace(\n /([ \\S]*\\n|[ \\S]*$)/gm,\n match => `<div class=\"highlight-line\">${match}</div>`\n );\n};\n\nconst highlightLinesCode = (code, options) => {\n if (options === undefined) {\n return;\n }\n\n const paddingLeft = parseInt(window.getComputedStyle(code).paddingLeft);\n const paddingRight = parseInt(window.getComputedStyle(code).paddingRight);\n\n const lines = code.getElementsByClassName(\"highlight-line\");\n const scroll_width = code.scrollWidth;\n // eslint-disable-next-line @bigbinary/neeto/use-array-methods\n for (const option of options) {\n for (let j = option.start; j <= option.end; ++j) {\n if (j >= lines.length) return;\n lines[j].style.backgroundColor = option.color;\n lines[j].style.minWidth = `${\n scroll_width - paddingLeft - paddingRight\n }px`;\n }\n }\n};\n\nexport const highlightLinesElement = (code, options) => {\n // eslint-disable-next-line @bigbinary/neeto/use-array-methods\n for (const option of options) {\n --option.start;\n --option.end;\n }\n highlightLinesCode(code, options);\n};\n\nexport const applySyntaxHighlightingAndLineNumbers = content => {\n lowlight.highlightAuto(\"\");\n let highlightedAST = {};\n\n return content.replace(CODE_BLOCK_REGEX, (_, language, code) => {\n const highlightRegex = /data-highlighted-lines=\"([^\"]*)\"/;\n const linenumbersRegex = /data-linenumbers/;\n const highlightMatch = content.match(highlightRegex);\n\n if (language && LANGUAGE_LIST.includes(language)) {\n highlightedAST = lowlight.highlight(language, transformCode(code));\n } else {\n highlightedAST = hljs.highlightAuto(transformCode(code))._emitter.root;\n if (isEmpty(highlightedAST.children)) {\n highlightedAST = lowlight.highlight(\"javascript\", transformCode(code));\n }\n }\n\n const highlightedNode = highlightedAST.children.map(\n buildReactElementFromAST\n );\n\n const dataHighlight = `data-highlighted-lines=${highlightMatch?.[1] ?? \"\"}`;\n const dataLinenumbers = content.match(linenumbersRegex)\n ? `data-linenumbers=\"true\"`\n : \"\";\n\n return `<pre ${dataLinenumbers} ${dataHighlight}><code>${renderToString(\n highlightedNode\n )}</code></pre>`;\n });\n};\n\nexport const applyLineHighlighting = editorContent => {\n const codeTags = editorContent?.querySelectorAll(\"pre code\");\n\n codeTags.forEach(codeTag => {\n splitCodeBlockIntoLines(codeTag);\n\n const highlightedLines = codeTag\n .closest(\"pre\")\n .getAttribute(\"data-highlighted-lines\");\n\n if (highlightedLines) {\n const linesToHighlight = highlightedLines\n .split(\",\")\n .map(Number)\n .filter(Boolean);\n\n const highlightLinesOptions = linesToHighlight.map(line => ({\n start: line,\n end: line,\n color: \"rgba(255, 255, 0, 0.2)\",\n }));\n\n highlightLinesElement(codeTag, highlightLinesOptions);\n }\n });\n};\n\nexport const substituteVariables = (highlightedContent, variables) =>\n highlightedContent.replace(VARIABLE_SPAN_REGEX, (matchedSpan, _, key) => {\n const keySplitted = key.split(\".\");\n if (keySplitted.length > 1) {\n const category = findBy({ category: keySplitted[0] }, variables);\n const variable = findBy(\n { key: keySplitted[1] },\n category?.variables || []\n );\n\n return variable?.value ? variable.value : matchedSpan;\n }\n\n const variable = findBy({ key: keySplitted[0] }, variables);\n\n return variable?.value ? variable.value : matchedSpan;\n });\n\nexport const convertPlainTextToHtml = htmlString => {\n if (/^<[a-z].*>/i.test(htmlString.trim())) return htmlString;\n\n return htmlString\n .split(\"\\n\")\n .reduce((html, str) => `${html}<p>${str}</p>`, \"\");\n};\n"],"names":["transformCode","code","replace","buildReactElementFromAST","element","tagName","children","map","createElement","properties","value","splitCodeBlockIntoLines","codeBlock","innerHTML","match","concat","highlightLinesCode","options","undefined","paddingLeft","parseInt","window","getComputedStyle","paddingRight","lines","getElementsByClassName","scroll_width","scrollWidth","_iterator","_createForOfIteratorHelper","_step","s","n","done","option","j","start","end","length","style","backgroundColor","color","minWidth","err","e","f","highlightLinesElement","_iterator2","_step2","applySyntaxHighlightingAndLineNumbers","content","lowlight","highlightAuto","highlightedAST","CODE_BLOCK_REGEX","_","language","_highlightMatch$","highlightRegex","linenumbersRegex","highlightMatch","LANGUAGE_LIST","includes","highlight","hljs","_emitter","root","isEmpty","highlightedNode","dataHighlight","dataLinenumbers","renderToString","applyLineHighlighting","editorContent","codeTags","querySelectorAll","forEach","codeTag","highlightedLines","closest","getAttribute","linesToHighlight","split","Number","filter","Boolean","highlightLinesOptions","line","substituteVariables","highlightedContent","variables","VARIABLE_SPAN_REGEX","matchedSpan","key","keySplitted","category","findBy","variable","convertPlainTextToHtml","htmlString","test","trim","reduce","html","str"],"mappings":";;;;;;;;;;;;AAcA,IAAMA,aAAa,GAAG,SAAhBA,aAAaA,CAAGC,IAAI,EAAA;EAAA,OACxBA,IAAI,CAACC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAACA,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAACA,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;AAAA,CAAA;AAEzE,IAAMC,yBAAwB,GAAG,SAA3BA,wBAAwBA,CAAGC,OAAO,EAAI;EAC1C,IAAIA,OAAO,CAACC,OAAO,EAAE;AACnB,IAAA,IAAMC,QAAQ,GAAGF,OAAO,CAACE,QAAQ,GAC7BF,OAAO,CAACE,QAAQ,CAACC,GAAG,CAACJ,yBAAwB,CAAC,GAC9C,IAAI;IAER,oBAAOK,mBAAa,CAACJ,OAAO,CAACC,OAAO,EAAED,OAAO,CAACK,UAAU,EAAEH,QAAQ,CAAC;AACrE,EAAA;EAEA,OAAOF,OAAO,CAACM,KAAK;AACtB,CAAC;AAED,IAAMC,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAGC,SAAS,EAAI;AAC3CA,EAAAA,SAAS,CAACC,SAAS,GAAGD,SAAS,CAACC,SAAS,CAACX,OAAO,CAC/C,sBAAsB,EACtB,UAAAY,KAAK,EAAA;IAAA,OAAA,gCAAA,CAAAC,MAAA,CAAmCD,KAAK,EAAA,QAAA,CAAA;AAAA,EAAA,CAC/C,CAAC;AACH,CAAC;AAED,IAAME,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIf,IAAI,EAAEgB,OAAO,EAAK;EAC5C,IAAIA,OAAO,KAAKC,SAAS,EAAE;AACzB,IAAA;AACF,EAAA;AAEA,EAAA,IAAMC,WAAW,GAAGC,QAAQ,CAACC,MAAM,CAACC,gBAAgB,CAACrB,IAAI,CAAC,CAACkB,WAAW,CAAC;AACvE,EAAA,IAAMI,YAAY,GAAGH,QAAQ,CAACC,MAAM,CAACC,gBAAgB,CAACrB,IAAI,CAAC,CAACsB,YAAY,CAAC;AAEzE,EAAA,IAAMC,KAAK,GAAGvB,IAAI,CAACwB,sBAAsB,CAAC,gBAAgB,CAAC;AAC3D,EAAA,IAAMC,YAAY,GAAGzB,IAAI,CAAC0B,WAAW;AACrC;AAAA,EAAA,IAAAC,SAAA,GAAAC,0BAAA,CACqBZ,OAAO,CAAA;IAAAa,KAAA;AAAA,EAAA,IAAA;IAA5B,KAAAF,SAAA,CAAAG,CAAA,EAAA,EAAA,CAAA,CAAAD,KAAA,GAAAF,SAAA,CAAAI,CAAA,EAAA,EAAAC,IAAA,GAA8B;AAAA,MAAA,IAAnBC,MAAM,GAAAJ,KAAA,CAAApB,KAAA;AACf,MAAA,KAAK,IAAIyB,CAAC,GAAGD,MAAM,CAACE,KAAK,EAAED,CAAC,IAAID,MAAM,CAACG,GAAG,EAAE,EAAEF,CAAC,EAAE;AAC/C,QAAA,IAAIA,CAAC,IAAIX,KAAK,CAACc,MAAM,EAAE;QACvBd,KAAK,CAACW,CAAC,CAAC,CAACI,KAAK,CAACC,eAAe,GAAGN,MAAM,CAACO,KAAK;AAC7CjB,QAAAA,KAAK,CAACW,CAAC,CAAC,CAACI,KAAK,CAACG,QAAQ,GAAA,EAAA,CAAA3B,MAAA,CACrBW,YAAY,GAAGP,WAAW,GAAGI,YAAY,EAAA,IAAA,CACvC;AACN,MAAA;AACF,IAAA;AAAC,EAAA,CAAA,CAAA,OAAAoB,GAAA,EAAA;IAAAf,SAAA,CAAAgB,CAAA,CAAAD,GAAA,CAAA;AAAA,EAAA,CAAA,SAAA;AAAAf,IAAAA,SAAA,CAAAiB,CAAA,EAAA;AAAA,EAAA;AACH,CAAC;AAEM,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAI7C,IAAI,EAAEgB,OAAO,EAAK;AACtD;AAAA,EAAA,IAAA8B,UAAA,GAAAlB,0BAAA,CACqBZ,OAAO,CAAA;IAAA+B,MAAA;AAAA,EAAA,IAAA;IAA5B,KAAAD,UAAA,CAAAhB,CAAA,EAAA,EAAA,CAAA,CAAAiB,MAAA,GAAAD,UAAA,CAAAf,CAAA,EAAA,EAAAC,IAAA,GAA8B;AAAA,MAAA,IAAnBC,MAAM,GAAAc,MAAA,CAAAtC,KAAA;MACf,EAAEwB,MAAM,CAACE,KAAK;MACd,EAAEF,MAAM,CAACG,GAAG;AACd,IAAA;AAAC,EAAA,CAAA,CAAA,OAAAM,GAAA,EAAA;IAAAI,UAAA,CAAAH,CAAA,CAAAD,GAAA,CAAA;AAAA,EAAA,CAAA,SAAA;AAAAI,IAAAA,UAAA,CAAAF,CAAA,EAAA;AAAA,EAAA;AACD7B,EAAAA,kBAAkB,CAACf,IAAI,EAAEgB,OAAO,CAAC;AACnC,CAAC;IAEYgC,qCAAqC,GAAG,SAAxCA,qCAAqCA,CAAGC,OAAO,EAAI;AAC9DC,EAAAA,eAAQ,CAACC,aAAa,CAAC,EAAE,CAAC;EAC1B,IAAIC,cAAc,GAAG,EAAE;AAEvB,EAAA,OAAOH,OAAO,CAAChD,OAAO,CAACoD,uBAAgB,EAAE,UAACC,CAAC,EAAEC,QAAQ,EAAEvD,IAAI,EAAK;AAAA,IAAA,IAAAwD,gBAAA;IAC9D,IAAMC,cAAc,GAAG,kCAAkC;IACzD,IAAMC,gBAAgB,GAAG,kBAAkB;AAC3C,IAAA,IAAMC,cAAc,GAAGV,OAAO,CAACpC,KAAK,CAAC4C,cAAc,CAAC;IAEpD,IAAIF,QAAQ,IAAIK,oBAAa,CAACC,QAAQ,CAACN,QAAQ,CAAC,EAAE;MAChDH,cAAc,GAAGF,eAAQ,CAACY,SAAS,CAACP,QAAQ,EAAExD,aAAa,CAACC,IAAI,CAAC,CAAC;AACpE,IAAA,CAAC,MAAM;AACLoD,MAAAA,cAAc,GAAGW,oBAAI,CAACZ,aAAa,CAACpD,aAAa,CAACC,IAAI,CAAC,CAAC,CAACgE,QAAQ,CAACC,IAAI;AACtE,MAAA,IAAIC,aAAO,CAACd,cAAc,CAAC/C,QAAQ,CAAC,EAAE;QACpC+C,cAAc,GAAGF,eAAQ,CAACY,SAAS,CAAC,YAAY,EAAE/D,aAAa,CAACC,IAAI,CAAC,CAAC;AACxE,MAAA;AACF,IAAA;IAEA,IAAMmE,eAAe,GAAGf,cAAc,CAAC/C,QAAQ,CAACC,GAAG,CACjDJ,yBACF,CAAC;IAED,IAAMkE,aAAa,6BAAAtD,MAAA,CAAA,CAAA0C,gBAAA,GAA6BG,cAAc,aAAdA,cAAc,KAAA,MAAA,GAAA,MAAA,GAAdA,cAAc,CAAG,CAAC,CAAC,MAAA,IAAA,IAAAH,gBAAA,cAAAA,gBAAA,GAAI,EAAE,CAAE;IAC3E,IAAMa,eAAe,GAAGpB,OAAO,CAACpC,KAAK,CAAC6C,gBAAgB,CAAC,GAAA,2BAAA,GAEnD,EAAE;AAEN,IAAA,OAAA,OAAA,CAAA5C,MAAA,CAAeuD,eAAe,EAAA,GAAA,CAAA,CAAAvD,MAAA,CAAIsD,aAAa,EAAA,SAAA,CAAA,CAAAtD,MAAA,CAAUwD,uBAAc,CACrEH,eACF,CAAC,EAAA,eAAA,CAAA;AACH,EAAA,CAAC,CAAC;AACJ;IAEaI,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAGC,aAAa,EAAI;EACpD,IAAMC,QAAQ,GAAGD,aAAa,KAAA,IAAA,IAAbA,aAAa,KAAA,MAAA,GAAA,MAAA,GAAbA,aAAa,CAAEE,gBAAgB,CAAC,UAAU,CAAC;AAE5DD,EAAAA,QAAQ,CAACE,OAAO,CAAC,UAAAC,OAAO,EAAI;IAC1BlE,uBAAuB,CAACkE,OAAO,CAAC;AAEhC,IAAA,IAAMC,gBAAgB,GAAGD,OAAO,CAC7BE,OAAO,CAAC,KAAK,CAAC,CACdC,YAAY,CAAC,wBAAwB,CAAC;AAEzC,IAAA,IAAIF,gBAAgB,EAAE;AACpB,MAAA,IAAMG,gBAAgB,GAAGH,gBAAgB,CACtCI,KAAK,CAAC,GAAG,CAAC,CACV3E,GAAG,CAAC4E,MAAM,CAAC,CACXC,MAAM,CAACC,OAAO,CAAC;AAElB,MAAA,IAAMC,qBAAqB,GAAGL,gBAAgB,CAAC1E,GAAG,CAAC,UAAAgF,IAAI,EAAA;QAAA,OAAK;AAC1DnD,UAAAA,KAAK,EAAEmD,IAAI;AACXlD,UAAAA,GAAG,EAAEkD,IAAI;AACT9C,UAAAA,KAAK,EAAE;SACR;AAAA,MAAA,CAAC,CAAC;AAEHK,MAAAA,qBAAqB,CAAC+B,OAAO,EAAES,qBAAqB,CAAC;AACvD,IAAA;AACF,EAAA,CAAC,CAAC;AACJ;AAEO,IAAME,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIC,kBAAkB,EAAEC,SAAS,EAAA;AAAA,EAAA,OAC/DD,kBAAkB,CAACvF,OAAO,CAACyF,0BAAmB,EAAE,UAACC,WAAW,EAAErC,CAAC,EAAEsC,GAAG,EAAK;AACvE,IAAA,IAAMC,WAAW,GAAGD,GAAG,CAACX,KAAK,CAAC,GAAG,CAAC;AAClC,IAAA,IAAIY,WAAW,CAACxD,MAAM,GAAG,CAAC,EAAE;MAC1B,IAAMyD,QAAQ,GAAGC,gBAAM,CAAC;QAAED,QAAQ,EAAED,WAAW,CAAC,CAAC;OAAG,EAAEJ,SAAS,CAAC;MAChE,IAAMO,SAAQ,GAAGD,gBAAM,CACrB;QAAEH,GAAG,EAAEC,WAAW,CAAC,CAAC;OAAG,EACvB,CAAAC,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAAA,MAAA,GAAA,MAAA,GAARA,QAAQ,CAAEL,SAAS,KAAI,EACzB,CAAC;AAED,MAAA,OAAOO,SAAQ,KAAA,IAAA,IAARA,SAAQ,KAAA,MAAA,IAARA,SAAQ,CAAEvF,KAAK,GAAGuF,SAAQ,CAACvF,KAAK,GAAGkF,WAAW;AACvD,IAAA;IAEA,IAAMK,QAAQ,GAAGD,gBAAM,CAAC;MAAEH,GAAG,EAAEC,WAAW,CAAC,CAAC;KAAG,EAAEJ,SAAS,CAAC;AAE3D,IAAA,OAAOO,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAAA,MAAA,IAARA,QAAQ,CAAEvF,KAAK,GAAGuF,QAAQ,CAACvF,KAAK,GAAGkF,WAAW;AACvD,EAAA,CAAC,CAAC;AAAA;IAESM,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAGC,UAAU,EAAI;AAClD,EAAA,IAAI,aAAa,CAACC,IAAI,CAACD,UAAU,CAACE,IAAI,EAAE,CAAC,EAAE,OAAOF,UAAU;AAE5D,EAAA,OAAOA,UAAU,CACdjB,KAAK,CAAC,IAAI,CAAC,CACXoB,MAAM,CAAC,UAACC,IAAI,EAAEC,GAAG,EAAA;AAAA,IAAA,OAAA,EAAA,CAAAzF,MAAA,CAAQwF,IAAI,EAAA,KAAA,CAAA,CAAAxF,MAAA,CAAMyF,GAAG,EAAA,MAAA,CAAA;EAAA,CAAM,EAAE,EAAE,CAAC;AACtD;;;;;;;"}
|
|
@@ -11,7 +11,7 @@ var axios = require('axios');
|
|
|
11
11
|
var neetoCist = require('@bigbinary/neeto-cist');
|
|
12
12
|
var ramda = require('ramda');
|
|
13
13
|
var reactI18next = require('react-i18next');
|
|
14
|
-
var reactFileIcon_esm = require('./chunk-
|
|
14
|
+
var reactFileIcon_esm = require('./chunk-Cr0FBhRs.cjs.js');
|
|
15
15
|
var i18n = require('i18next');
|
|
16
16
|
var initializers = require('@bigbinary/neeto-commons-frontend/v2/initializers');
|
|
17
17
|
var constants = require('./chunk-BxKa_XOs.cjs.js');
|
|
@@ -486,4 +486,4 @@ exports.VIDEO_EMBED_FORM_VALIDATION_SCHEMA = VIDEO_EMBED_FORM_VALIDATION_SCHEMA;
|
|
|
486
486
|
exports.convertToFileSize = convertToFileSize;
|
|
487
487
|
exports.getTabs = getTabs;
|
|
488
488
|
exports.useFileUploader = useFileUploader;
|
|
489
|
-
//# sourceMappingURL=chunk-
|
|
489
|
+
//# sourceMappingURL=chunk-CfiRFXt2.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunk-BPLEmkMA.cjs.js","sources":["../../app/javascript/src/v2/components/Attachments/constants.js","../../app/javascript/src/v2/components/Editor/MediaUploader/constants.js","../../app/javascript/src/v2/components/Editor/MediaUploader/utils.js","../../app/javascript/src/v2/hooks/utils/fileUploader.js","../../app/javascript/src/v2/hooks/useFileUploader.js","../../app/javascript/src/v2/components/Common/constants.js","../../app/javascript/src/v2/components/Common/FileIcon.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { globalProps } from \"neetocommons/v2/initializers\";\n\nimport { DIRECT_UPLOAD_ENDPOINT } from \"src/common/constants\";\n\nexport const DEFAULT_FILE_UPLOAD_CONFIG = {\n directUploadEndpoint: DIRECT_UPLOAD_ENDPOINT,\n restrictions: {\n maxFileSize: globalProps.endUserUploadedFileSizeLimitInMb * 1024 * 1024,\n },\n};\n\nexport const ATTACHMENT_OPTIONS = {\n OPEN_IN_NEW_TAB: t(\"neetoEditor.common.openInNewTab\"),\n DOWNLOAD: t(\"neetoEditor.common.download\"),\n RENAME: t(\"neetoEditor.attachments.rename\"),\n DELETE: t(\"neetoEditor.menu.delete\"),\n};\n\nexport const ATTACHMENTS_PREVIEW_DATA_CY = \"ne-attachments-preview-content\";\n","import { t } from \"i18next\";\nimport { globalProps } from \"neetocommons/v2/initializers\";\nimport * as yup from \"yup\";\n\nimport { DIRECT_UPLOAD_ENDPOINT, URL_REGEXP } from \"src/common/constants\";\n\nconst MAX_VIDEO_SIZE_IN_MB = 100;\n\nconst maxVideoSizeInMb = globalProps.directUploadsMaxFileSizeInMb\n ? Math.min(MAX_VIDEO_SIZE_IN_MB, globalProps.directUploadsMaxFileSizeInMb)\n : MAX_VIDEO_SIZE_IN_MB;\n\nexport const FILE_SIZE_UNITS = [\"B\", \"KB\", \"MB\", \"GB\"];\n\nexport const ALLOWED_IMAGE_TYPES = [\".jpg\", \".jpeg\", \".png\", \".gif\"];\nexport const ALLOWED_VIDEO_TYPES = [\".mp4\", \".mov\", \".avi\", \".mkv\"];\n\nexport const DEFAULT_IMAGE_UPLOAD_CONFIG = {\n directUploadEndpoint: DIRECT_UPLOAD_ENDPOINT,\n restrictions: {\n maxNumberOfFiles: 5,\n maxFileSize: globalProps.endUserUploadedFileSizeLimitInMb * 1024 * 1024,\n allowedFileTypes: ALLOWED_IMAGE_TYPES,\n },\n};\n\nexport const DEFAULT_VIDEO_UPLOAD_CONFIG = {\n directUploadEndpoint: DIRECT_UPLOAD_ENDPOINT,\n restrictions: {\n maxNumberOfFiles: 5,\n maxFileSize: maxVideoSizeInMb * 1024 * 1024,\n allowedFileTypes: ALLOWED_VIDEO_TYPES,\n },\n};\n\nexport const VIDEO_EMBED_FORM_VALIDATION_SCHEMA = yup.object().shape({\n url: yup\n .string()\n .required(t(\"neetoEditor.error.fieldRequired\"))\n .matches(URL_REGEXP, t(\"neetoEditor.error.invalidUrl\")),\n});\n\nexport const DEFAULT_ASPECT_RATIO = \"16/9\";\n","import { t } from \"i18next\";\nimport {\n LeftAlign,\n CenterAlign,\n RightAlign,\n Delete,\n CustomSize,\n BorderDisable,\n BorderEnable,\n AspectRatio11,\n AspectRatio169,\n AspectRatio916,\n AspectRatio43,\n AspectRatio32,\n} from \"neetoicons\";\n\nimport { FILE_SIZE_UNITS } from \"./constants\";\n\nexport const convertToFileSize = (size = 10 * 1024 * 1024) => {\n let fileSize = size;\n let i = 0;\n while (fileSize >= 1024 && i < FILE_SIZE_UNITS.length) {\n fileSize /= 1024;\n ++i;\n }\n\n return `${fileSize.toFixed(1)} ${FILE_SIZE_UNITS[i]}`;\n};\n\nexport const buildImageOptions = (border = true, showAspectRatio = false) => {\n const options = [\n {\n Icon: LeftAlign,\n type: \"button\",\n alignPos: \"left\",\n optionName: t(\"neetoEditor.menu.alignLeft\"),\n },\n {\n Icon: CenterAlign,\n type: \"button\",\n alignPos: \"center\",\n optionName: t(\"neetoEditor.menu.alignCenter\"),\n },\n {\n Icon: RightAlign,\n type: \"button\",\n alignPos: \"right\",\n optionName: t(\"neetoEditor.menu.alignRight\"),\n },\n ];\n\n if (showAspectRatio) {\n options.push({\n Icon: CustomSize,\n type: \"dropdown\",\n alignPos: \"center\",\n optionName: t(\"neetoEditor.menu.aspectRatio\"),\n items: [\n { ratio: \"16/9\", tooltipLabel: \"16/9\", icon: AspectRatio169 },\n { ratio: \"9/16\", tooltipLabel: \"9/16\", icon: AspectRatio916 },\n { ratio: \"4/3\", tooltipLabel: \"4/3\", icon: AspectRatio43 },\n { ratio: \"3/2\", tooltipLabel: \"3/2\", icon: AspectRatio32 },\n { ratio: \"1/1\", tooltipLabel: \"1/1\", icon: AspectRatio11 },\n ],\n });\n }\n\n options.push(\n {\n Icon: border ? BorderDisable : BorderEnable,\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: Delete,\n type: \"button\",\n optionName: t(\"neetoEditor.menu.delete\"),\n }\n );\n\n return options;\n};\n\nexport const getTabs = mediaUploader => {\n if (mediaUploader.video) {\n return [\n { title: \"Upload\", key: \"local\" },\n { title: \"Embed\", key: \"embed\" },\n ];\n }\n\n return [];\n};\n","import { Toastr } from \"@bigbinary/neeto-atoms\";\nimport { t } from \"i18next\";\nimport { isPresent } from \"neetocist\";\nimport { mergeRight } from \"ramda\";\n\nimport { DEFAULT_FILE_UPLOAD_CONFIG } from \"src/v2/components/Attachments/constants\";\nimport { convertToFileSize } from \"src/v2/components/Editor/MediaUploader/utils\";\n\nconst getFileExtension = filename => {\n if (!filename) return \"\";\n const parts = filename.split(\".\");\n\n return parts.length > 1 ? `.${parts.pop()}` : \"\";\n};\n\nconst showWarningToastr = ({\n selectedFiles,\n initialFiles,\n config,\n largeFilesCount,\n unSupportedFilesCount,\n}) => {\n const { maxNumberOfFiles, maxFileSize } = config.restrictions;\n\n if (unSupportedFilesCount > 0 || largeFilesCount > 0) {\n if (unSupportedFilesCount > 0) {\n Toastr.error(t(\"neetoEditor.error.fileNotAllowed\"));\n }\n\n if (largeFilesCount > 0) {\n Toastr.error(\n t(\"neetoEditor.error.fileIsTooLarge\", {\n maxFileSize: convertToFileSize(maxFileSize),\n })\n );\n }\n } else if (selectedFiles.length < initialFiles.length) {\n Toastr.warning(\n t(\"neetoEditor.attachments.maxNumberOfFiles\", {\n entity: maxNumberOfFiles,\n })\n );\n }\n};\n\nexport const buildFileUploadConfig = config =>\n mergeRight(DEFAULT_FILE_UPLOAD_CONFIG, config);\n\nexport const shouldAddFile = config => file => {\n const { maxFileSize, allowedFileTypes } = config.restrictions;\n\n if (isPresent(maxFileSize) && file.size > maxFileSize) {\n return { canAdd: false };\n }\n\n if (isPresent(allowedFileTypes)) {\n const fileExtension = getFileExtension(file.name);\n const mimeType = file.type;\n\n const extensionAllowed = allowedFileTypes.includes(fileExtension);\n const mimeAllowed = allowedFileTypes.includes(mimeType);\n\n const canAdd = extensionAllowed || mimeAllowed;\n\n return { canAdd, isUnsupportedFile: !canAdd };\n }\n\n return { canAdd: true };\n};\n\nexport const selectFiles = ({ previousAttachmentsCount, config, files }) => {\n let addedFilesCount = 0,\n largeFilesCount = 0,\n unSupportedFilesCount = 0;\n const fallbackMaxNumberOfFiles = previousAttachmentsCount + files.length;\n const { maxNumberOfFiles = fallbackMaxNumberOfFiles } = config.restrictions;\n const canAddFile = shouldAddFile(config);\n\n const remainingAttachments = maxNumberOfFiles - previousAttachmentsCount;\n\n if (remainingAttachments <= 0) {\n Toastr.warning(\n t(\"neetoEditor.attachments.maxNumberOfFiles\", {\n entity: maxNumberOfFiles,\n })\n );\n\n return [];\n }\n\n const selectedFiles = files.filter(file => {\n const { canAdd, isUnsupportedFile } = canAddFile(file);\n\n if (canAdd && addedFilesCount + 1 <= remainingAttachments) {\n addedFilesCount += 1;\n\n return true;\n }\n\n if (isUnsupportedFile) unSupportedFilesCount += 1;\n else if (!canAdd) largeFilesCount += 1;\n\n return false;\n });\n\n showWarningToastr({\n selectedFiles,\n initialFiles: files,\n config,\n unSupportedFilesCount,\n largeFilesCount,\n });\n\n return selectedFiles;\n};\n","// eslint-disable-next-line @bigbinary/neeto/use-snake-case-for-api-connector-filename\nimport { useRef } from \"react\";\n\nimport { Toastr } from \"@bigbinary/neeto-atoms\";\n// eslint-disable-next-line @bigbinary/neeto/no-axios-import-outside-apis,\nimport axios from \"axios\";\nimport { noop, hyphenate, isNot, isNotPresent } from \"neetocist\";\nimport { omit, pluck } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { FILE_UPLOAD_STATUS } from \"hooks/constants/fileUploader\";\nimport { getRandomString } from \"hooks/utils\";\nimport useFileUploadStore from \"src/stores/useFileUploadStore\";\nimport DirectUpload from \"utils/DirectUpload\";\n\nimport { selectFiles } from \"./utils/fileUploader\";\n\nlet uploadControllers = {};\n\nconst useFileUploader = ({\n config,\n attachments: previousAttachments = [],\n setIsUploadingOnHost = noop,\n}) => {\n const contextIdRef = useRef(getRandomString());\n const { t } = useTranslation();\n\n const { current: contextId } = contextIdRef;\n const {\n addFiles: addFilesToStore,\n getNextQueuedFile,\n updateFileStatus,\n removeFilesFromQueue,\n setIsUploading,\n updateFileUploadProgress,\n removeFile,\n } = useFileUploadStore.pick();\n const { files = [], isUploading } = useFileUploadStore.pick([contextId]);\n\n const handleUploadProgress = (xhr, file) => {\n if (!xhr.event.lengthComputable) return;\n const bytesUploaded = xhr.loaded;\n const bytesTotal = xhr.total;\n const progress = Math.round((bytesUploaded / bytesTotal) * 100);\n updateFileUploadProgress(contextId, file.id, progress);\n };\n\n const uploadFile = async file => {\n const upload = new DirectUpload({\n file: file.data,\n url: config.directUploadEndpoint,\n progress: xhr => handleUploadProgress(xhr, file),\n });\n\n uploadControllers[file.id] = upload;\n\n try {\n const { data = {}, ...response } = await upload.create();\n updateFileStatus(contextId, file.id, FILE_UPLOAD_STATUS.UPLOADED);\n\n return {\n id: file.id,\n filename: file.filename,\n signedId: data.signed_id ?? response.signed_id,\n url: data.blob_url ?? response.blob_url,\n contentType: data.content_type ?? response.content_type,\n };\n } catch (error) {\n if (!axios.isCancel(error)) {\n Toastr.error(t(\"neetoEditor.error.uploadFileFailed\"));\n }\n // eslint-disable-next-line no-console\n console.error(\"Attachment upload failed\", error);\n removeFile(contextId, file.id);\n\n return null;\n }\n };\n\n const handleUploadFiles = async () => {\n const queuedFile = getNextQueuedFile(contextId);\n\n if (isNotPresent(queuedFile)) {\n setIsUploading(contextId, false);\n setIsUploadingOnHost(false);\n\n return [];\n }\n\n updateFileStatus(contextId, queuedFile.id, FILE_UPLOAD_STATUS.UPLOADING);\n\n const [uploadedFile, remainingUploadedFiles] = await Promise.all([\n uploadFile(queuedFile),\n handleUploadFiles(),\n ]);\n\n const uploadedFiles = [uploadedFile, ...remainingUploadedFiles];\n const uploadedFileIds = pluck(\"id\", uploadedFiles);\n removeFilesFromQueue(contextId, uploadedFileIds);\n uploadControllers = omit(uploadedFileIds, uploadControllers);\n\n return uploadedFiles.filter(isNot(null));\n };\n\n const uploadFiles = () => {\n setIsUploading(contextId, true);\n setIsUploadingOnHost(true);\n\n return handleUploadFiles();\n };\n\n const addFiles = addedFiles => {\n const selectedFiles = selectFiles({\n previousAttachmentsCount: previousAttachments.length,\n config,\n files: Array.from(addedFiles),\n }).map(file => ({\n id: hyphenate(`${file.name.toLowerCase()}-${Date.now()}`),\n data: file,\n filename: file.name,\n signedId: \"awaiting\",\n url: \"\",\n type: file.type,\n status: FILE_UPLOAD_STATUS.QUEUED,\n }));\n\n addFilesToStore(contextId, selectedFiles);\n };\n\n const cancelUpload = fileId => {\n uploadControllers[fileId]?.abort?.();\n removeFile(contextId, fileId);\n };\n\n return {\n addFiles,\n uploadFiles,\n queuedFiles: files,\n cancelUpload,\n isUploading,\n };\n};\n\nexport default useFileUploader;\n","import { Globe, Grid3x3, Layers } from \"lucide-react\";\n\n// react-file-icon has no styles for these image formats, and gives xml the\n// same {} glyph as json; code2 is </>.\nexport const EXTRA_FILE_ICON_STYLES = {\n avif: { type: \"image\" },\n heic: { type: \"image\" },\n heif: { type: \"image\" },\n webp: { type: \"image\" },\n xml: { type: \"code2\" },\n};\n\n// Lucide glyphs for image formats that get their own icon. Other images use\n// lucide's Image.\nexport const FILE_ICON_GLYPH_BY_EXTENSION = {\n bmp: Grid3x3,\n tif: Layers,\n tiff: Layers,\n webp: Globe,\n};\n\nexport const FILE_ICON_CATEGORY_BY_EXTENSION = {\n pdf: \"pdf\",\n key: \"pdf\",\n ppt: \"pdf\",\n pptx: \"pdf\",\n csv: \"spreadsheet\",\n numbers: \"spreadsheet\",\n xls: \"spreadsheet\",\n xlsx: \"spreadsheet\",\n doc: \"document\",\n docx: \"document\",\n md: \"document\",\n pages: \"document\",\n rtf: \"document\",\n txt: \"document\",\n};\n\n// react-file-icon glyph type -> colour category. svg (\"vector\") is grouped\n// with images.\nexport const FILE_ICON_CATEGORY_BY_TYPE = {\n audio: \"audio\",\n image: \"image\",\n vector: \"image\",\n video: \"video\",\n};\n","import classnames from \"classnames\";\nimport { Image } from \"lucide-react\";\nimport { FileIcon as ReactFileIcon, defaultStyles } from \"react-file-icon\";\n\nimport {\n EXTRA_FILE_ICON_STYLES,\n FILE_ICON_CATEGORY_BY_EXTENSION,\n FILE_ICON_CATEGORY_BY_TYPE,\n FILE_ICON_GLYPH_BY_EXTENSION,\n} from \"./constants\";\n\nconst getExtension = fileName =>\n fileName?.match(/\\.([^.]+)$/)?.[1]?.toLowerCase();\n\n// Only the glyph shape is taken from react-file-icon. Colours come from\n// neeto-atoms tokens in _attachments.scss, keyed on the category class.\nconst getCategory = (extension, type) =>\n FILE_ICON_CATEGORY_BY_EXTENSION[extension] ??\n FILE_ICON_CATEGORY_BY_TYPE[type] ??\n \"default\";\n\nconst File = ({ fileName, className }) => {\n const extension = getExtension(fileName);\n const type = (EXTRA_FILE_ICON_STYLES[extension] ?? defaultStyles[extension])\n ?.type;\n\n // The library's image glyph is a mountain; draw a lucide glyph on top of a\n // glyph-less icon instead.\n const Glyph =\n FILE_ICON_GLYPH_BY_EXTENSION[extension] ??\n (type === \"image\" ? Image : null);\n\n return (\n <div\n aria-hidden=\"true\"\n className={classnames(\n \"ne-file-icon\",\n `ne-file-icon--${getCategory(extension, type)}`,\n className\n )}\n >\n <ReactFileIcon\n {...{ extension }}\n labelUppercase\n type={Glyph ? undefined : type}\n />\n {Glyph && <Glyph className=\"ne-file-icon__glyph\" />}\n </div>\n );\n};\n\nexport default File;\n"],"names":["DEFAULT_FILE_UPLOAD_CONFIG","directUploadEndpoint","DIRECT_UPLOAD_ENDPOINT","restrictions","maxFileSize","globalProps","endUserUploadedFileSizeLimitInMb","ATTACHMENT_OPTIONS","OPEN_IN_NEW_TAB","t","DOWNLOAD","RENAME","DELETE","ATTACHMENTS_PREVIEW_DATA_CY","MAX_VIDEO_SIZE_IN_MB","maxVideoSizeInMb","directUploadsMaxFileSizeInMb","Math","min","FILE_SIZE_UNITS","ALLOWED_IMAGE_TYPES","ALLOWED_VIDEO_TYPES","DEFAULT_IMAGE_UPLOAD_CONFIG","maxNumberOfFiles","allowedFileTypes","DEFAULT_VIDEO_UPLOAD_CONFIG","VIDEO_EMBED_FORM_VALIDATION_SCHEMA","yup","object","shape","url","string","required","matches","URL_REGEXP","DEFAULT_ASPECT_RATIO","convertToFileSize","size","arguments","length","undefined","fileSize","i","concat","toFixed","getTabs","mediaUploader","video","title","key","getFileExtension","filename","parts","split","pop","showWarningToastr","_ref","selectedFiles","initialFiles","config","largeFilesCount","unSupportedFilesCount","_config$restrictions","Toastr","error","warning","entity","shouldAddFile","file","_config$restrictions2","isPresent","canAdd","fileExtension","name","mimeType","type","extensionAllowed","includes","mimeAllowed","isUnsupportedFile","selectFiles","_ref2","previousAttachmentsCount","files","addedFilesCount","fallbackMaxNumberOfFiles","_config$restrictions$","canAddFile","remainingAttachments","filter","_canAddFile","e","r","Symbol","n","iterator","o","toStringTag","c","prototype","Generator","u","Object","create","_regeneratorDefine2","f","p","y","G","v","a","d","bind","l","TypeError","call","done","value","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","defineProperty","_regeneratorDefine","_invoke","enumerable","configurable","writable","uploadControllers","useFileUploader","_ref$attachments","attachments","previousAttachments","_ref$setIsUploadingOn","setIsUploadingOnHost","noop","contextIdRef","useRef","getRandomString","_useTranslation","useTranslation","contextId","current","_useFileUploadStore","useFileUploadStore","useShallow","store","addFiles","getNextQueuedFile","updateFileStatus","removeFilesFromQueue","setIsUploading","updateFileUploadProgress","removeFile","addFilesToStore","_useFileUploadStore2","_store$contextId","_store$contextId2","isUploading","_useFileUploadStore2$","handleUploadProgress","xhr","event","lengthComputable","bytesUploaded","loaded","bytesTotal","total","progress","round","id","uploadFile","_asyncToGenerator","_callee","upload","_data$signed_id","_data$blob_url","_data$content_type","_yield$upload$create","_yield$upload$create$","data","response","_t","_context","DirectUpload","_objectWithoutProperties","_excluded","FILE_UPLOAD_STATUS","UPLOADED","signedId","signed_id","blob_url","contentType","content_type","axios","isCancel","console","_x","apply","handleUploadFiles","_ref3","_callee2","queuedFile","_yield$Promise$all","_yield$Promise$all2","uploadedFile","remainingUploadedFiles","uploadedFiles","uploadedFileIds","_context2","isNotPresent","UPLOADING","Promise","all","_slicedToArray","_toConsumableArray","pluck","omit","isNot","uploadFiles","addedFiles","Array","from","map","hyphenate","toLowerCase","Date","now","status","QUEUED","cancelUpload","fileId","_uploadControllers$fi","_uploadControllers$fi2","abort","queuedFiles","EXTRA_FILE_ICON_STYLES","avif","heic","heif","webp","xml","FILE_ICON_GLYPH_BY_EXTENSION","bmp","Grid3x3","tif","Layers","tiff","Globe","FILE_ICON_CATEGORY_BY_EXTENSION","pdf","ppt","pptx","csv","numbers","xls","xlsx","doc","docx","md","pages","rtf","txt","FILE_ICON_CATEGORY_BY_TYPE","audio","image","vector","getExtension","fileName","_fileName$match","match","getCategory","extension","_FILE_ICON_CATEGORY_B","File","_EXTRA_FILE_ICON_STYL","_FILE_ICON_GLYPH_BY_E","className","defaultStyles","Glyph","Image","_jsxs","classnames","children","_jsx","ReactFileIcon","labelUppercase"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chunk-CfiRFXt2.cjs.js","sources":["../../app/javascript/src/v2/components/Attachments/constants.js","../../app/javascript/src/v2/components/Editor/MediaUploader/constants.js","../../app/javascript/src/v2/components/Editor/MediaUploader/utils.js","../../app/javascript/src/v2/hooks/utils/fileUploader.js","../../app/javascript/src/v2/hooks/useFileUploader.js","../../app/javascript/src/v2/components/Common/constants.js","../../app/javascript/src/v2/components/Common/FileIcon.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { globalProps } from \"neetocommons/v2/initializers\";\n\nimport { DIRECT_UPLOAD_ENDPOINT } from \"src/common/constants\";\n\nexport const DEFAULT_FILE_UPLOAD_CONFIG = {\n directUploadEndpoint: DIRECT_UPLOAD_ENDPOINT,\n restrictions: {\n maxFileSize: globalProps.endUserUploadedFileSizeLimitInMb * 1024 * 1024,\n },\n};\n\nexport const ATTACHMENT_OPTIONS = {\n OPEN_IN_NEW_TAB: t(\"neetoEditor.common.openInNewTab\"),\n DOWNLOAD: t(\"neetoEditor.common.download\"),\n RENAME: t(\"neetoEditor.attachments.rename\"),\n DELETE: t(\"neetoEditor.menu.delete\"),\n};\n\nexport const ATTACHMENTS_PREVIEW_DATA_CY = \"ne-attachments-preview-content\";\n","import { t } from \"i18next\";\nimport { globalProps } from \"neetocommons/v2/initializers\";\nimport * as yup from \"yup\";\n\nimport { DIRECT_UPLOAD_ENDPOINT, URL_REGEXP } from \"src/common/constants\";\n\nconst MAX_VIDEO_SIZE_IN_MB = 100;\n\nconst maxVideoSizeInMb = globalProps.directUploadsMaxFileSizeInMb\n ? Math.min(MAX_VIDEO_SIZE_IN_MB, globalProps.directUploadsMaxFileSizeInMb)\n : MAX_VIDEO_SIZE_IN_MB;\n\nexport const FILE_SIZE_UNITS = [\"B\", \"KB\", \"MB\", \"GB\"];\n\nexport const ALLOWED_IMAGE_TYPES = [\".jpg\", \".jpeg\", \".png\", \".gif\"];\nexport const ALLOWED_VIDEO_TYPES = [\".mp4\", \".mov\", \".avi\", \".mkv\"];\n\nexport const DEFAULT_IMAGE_UPLOAD_CONFIG = {\n directUploadEndpoint: DIRECT_UPLOAD_ENDPOINT,\n restrictions: {\n maxNumberOfFiles: 5,\n maxFileSize: globalProps.endUserUploadedFileSizeLimitInMb * 1024 * 1024,\n allowedFileTypes: ALLOWED_IMAGE_TYPES,\n },\n};\n\nexport const DEFAULT_VIDEO_UPLOAD_CONFIG = {\n directUploadEndpoint: DIRECT_UPLOAD_ENDPOINT,\n restrictions: {\n maxNumberOfFiles: 5,\n maxFileSize: maxVideoSizeInMb * 1024 * 1024,\n allowedFileTypes: ALLOWED_VIDEO_TYPES,\n },\n};\n\nexport const VIDEO_EMBED_FORM_VALIDATION_SCHEMA = yup.object().shape({\n url: yup\n .string()\n .required(t(\"neetoEditor.error.fieldRequired\"))\n .matches(URL_REGEXP, t(\"neetoEditor.error.invalidUrl\")),\n});\n\nexport const DEFAULT_ASPECT_RATIO = \"16/9\";\n","import { t } from \"i18next\";\nimport {\n LeftAlign,\n CenterAlign,\n RightAlign,\n Delete,\n CustomSize,\n BorderDisable,\n BorderEnable,\n AspectRatio11,\n AspectRatio169,\n AspectRatio916,\n AspectRatio43,\n AspectRatio32,\n} from \"neetoicons\";\n\nimport { FILE_SIZE_UNITS } from \"./constants\";\n\nexport const convertToFileSize = (size = 10 * 1024 * 1024) => {\n let fileSize = size;\n let i = 0;\n while (fileSize >= 1024 && i < FILE_SIZE_UNITS.length) {\n fileSize /= 1024;\n ++i;\n }\n\n return `${fileSize.toFixed(1)} ${FILE_SIZE_UNITS[i]}`;\n};\n\nexport const buildImageOptions = (border = true, showAspectRatio = false) => {\n const options = [\n {\n Icon: LeftAlign,\n type: \"button\",\n alignPos: \"left\",\n optionName: t(\"neetoEditor.menu.alignLeft\"),\n },\n {\n Icon: CenterAlign,\n type: \"button\",\n alignPos: \"center\",\n optionName: t(\"neetoEditor.menu.alignCenter\"),\n },\n {\n Icon: RightAlign,\n type: \"button\",\n alignPos: \"right\",\n optionName: t(\"neetoEditor.menu.alignRight\"),\n },\n ];\n\n if (showAspectRatio) {\n options.push({\n Icon: CustomSize,\n type: \"dropdown\",\n alignPos: \"center\",\n optionName: t(\"neetoEditor.menu.aspectRatio\"),\n items: [\n { ratio: \"16/9\", tooltipLabel: \"16/9\", icon: AspectRatio169 },\n { ratio: \"9/16\", tooltipLabel: \"9/16\", icon: AspectRatio916 },\n { ratio: \"4/3\", tooltipLabel: \"4/3\", icon: AspectRatio43 },\n { ratio: \"3/2\", tooltipLabel: \"3/2\", icon: AspectRatio32 },\n { ratio: \"1/1\", tooltipLabel: \"1/1\", icon: AspectRatio11 },\n ],\n });\n }\n\n options.push(\n {\n Icon: border ? BorderDisable : BorderEnable,\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: Delete,\n type: \"button\",\n optionName: t(\"neetoEditor.menu.delete\"),\n }\n );\n\n return options;\n};\n\nexport const getTabs = mediaUploader => {\n if (mediaUploader.video) {\n return [\n { title: \"Upload\", key: \"local\" },\n { title: \"Embed\", key: \"embed\" },\n ];\n }\n\n return [];\n};\n","import { Toastr } from \"@bigbinary/neeto-atoms\";\nimport { t } from \"i18next\";\nimport { isPresent } from \"neetocist\";\nimport { mergeRight } from \"ramda\";\n\nimport { DEFAULT_FILE_UPLOAD_CONFIG } from \"src/v2/components/Attachments/constants\";\nimport { convertToFileSize } from \"src/v2/components/Editor/MediaUploader/utils\";\n\nconst getFileExtension = filename => {\n if (!filename) return \"\";\n const parts = filename.split(\".\");\n\n return parts.length > 1 ? `.${parts.pop()}` : \"\";\n};\n\nconst showWarningToastr = ({\n selectedFiles,\n initialFiles,\n config,\n largeFilesCount,\n unSupportedFilesCount,\n}) => {\n const { maxNumberOfFiles, maxFileSize } = config.restrictions;\n\n if (unSupportedFilesCount > 0 || largeFilesCount > 0) {\n if (unSupportedFilesCount > 0) {\n Toastr.error(t(\"neetoEditor.error.fileNotAllowed\"));\n }\n\n if (largeFilesCount > 0) {\n Toastr.error(\n t(\"neetoEditor.error.fileIsTooLarge\", {\n maxFileSize: convertToFileSize(maxFileSize),\n })\n );\n }\n } else if (selectedFiles.length < initialFiles.length) {\n Toastr.warning(\n t(\"neetoEditor.attachments.maxNumberOfFiles\", {\n entity: maxNumberOfFiles,\n })\n );\n }\n};\n\nexport const buildFileUploadConfig = config =>\n mergeRight(DEFAULT_FILE_UPLOAD_CONFIG, config);\n\nexport const shouldAddFile = config => file => {\n const { maxFileSize, allowedFileTypes } = config.restrictions;\n\n if (isPresent(maxFileSize) && file.size > maxFileSize) {\n return { canAdd: false };\n }\n\n if (isPresent(allowedFileTypes)) {\n const fileExtension = getFileExtension(file.name);\n const mimeType = file.type;\n\n const extensionAllowed = allowedFileTypes.includes(fileExtension);\n const mimeAllowed = allowedFileTypes.includes(mimeType);\n\n const canAdd = extensionAllowed || mimeAllowed;\n\n return { canAdd, isUnsupportedFile: !canAdd };\n }\n\n return { canAdd: true };\n};\n\nexport const selectFiles = ({ previousAttachmentsCount, config, files }) => {\n let addedFilesCount = 0,\n largeFilesCount = 0,\n unSupportedFilesCount = 0;\n const fallbackMaxNumberOfFiles = previousAttachmentsCount + files.length;\n const { maxNumberOfFiles = fallbackMaxNumberOfFiles } = config.restrictions;\n const canAddFile = shouldAddFile(config);\n\n const remainingAttachments = maxNumberOfFiles - previousAttachmentsCount;\n\n if (remainingAttachments <= 0) {\n Toastr.warning(\n t(\"neetoEditor.attachments.maxNumberOfFiles\", {\n entity: maxNumberOfFiles,\n })\n );\n\n return [];\n }\n\n const selectedFiles = files.filter(file => {\n const { canAdd, isUnsupportedFile } = canAddFile(file);\n\n if (canAdd && addedFilesCount + 1 <= remainingAttachments) {\n addedFilesCount += 1;\n\n return true;\n }\n\n if (isUnsupportedFile) unSupportedFilesCount += 1;\n else if (!canAdd) largeFilesCount += 1;\n\n return false;\n });\n\n showWarningToastr({\n selectedFiles,\n initialFiles: files,\n config,\n unSupportedFilesCount,\n largeFilesCount,\n });\n\n return selectedFiles;\n};\n","// eslint-disable-next-line @bigbinary/neeto/use-snake-case-for-api-connector-filename\nimport { useRef } from \"react\";\n\nimport { Toastr } from \"@bigbinary/neeto-atoms\";\n// eslint-disable-next-line @bigbinary/neeto/no-axios-import-outside-apis,\nimport axios from \"axios\";\nimport { noop, hyphenate, isNot, isNotPresent } from \"neetocist\";\nimport { omit, pluck } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { FILE_UPLOAD_STATUS } from \"hooks/constants/fileUploader\";\nimport { getRandomString } from \"hooks/utils\";\nimport useFileUploadStore from \"src/stores/useFileUploadStore\";\nimport DirectUpload from \"utils/DirectUpload\";\n\nimport { selectFiles } from \"./utils/fileUploader\";\n\nlet uploadControllers = {};\n\nconst useFileUploader = ({\n config,\n attachments: previousAttachments = [],\n setIsUploadingOnHost = noop,\n}) => {\n const contextIdRef = useRef(getRandomString());\n const { t } = useTranslation();\n\n const { current: contextId } = contextIdRef;\n const {\n addFiles: addFilesToStore,\n getNextQueuedFile,\n updateFileStatus,\n removeFilesFromQueue,\n setIsUploading,\n updateFileUploadProgress,\n removeFile,\n } = useFileUploadStore.pick();\n const { files = [], isUploading } = useFileUploadStore.pick([contextId]);\n\n const handleUploadProgress = (xhr, file) => {\n if (!xhr.event.lengthComputable) return;\n const bytesUploaded = xhr.loaded;\n const bytesTotal = xhr.total;\n const progress = Math.round((bytesUploaded / bytesTotal) * 100);\n updateFileUploadProgress(contextId, file.id, progress);\n };\n\n const uploadFile = async file => {\n const upload = new DirectUpload({\n file: file.data,\n url: config.directUploadEndpoint,\n progress: xhr => handleUploadProgress(xhr, file),\n });\n\n uploadControllers[file.id] = upload;\n\n try {\n const { data = {}, ...response } = await upload.create();\n updateFileStatus(contextId, file.id, FILE_UPLOAD_STATUS.UPLOADED);\n\n return {\n id: file.id,\n filename: file.filename,\n signedId: data.signed_id ?? response.signed_id,\n url: data.blob_url ?? response.blob_url,\n contentType: data.content_type ?? response.content_type,\n };\n } catch (error) {\n if (!axios.isCancel(error)) {\n Toastr.error(t(\"neetoEditor.error.uploadFileFailed\"));\n }\n // eslint-disable-next-line no-console\n console.error(\"Attachment upload failed\", error);\n removeFile(contextId, file.id);\n\n return null;\n }\n };\n\n const handleUploadFiles = async () => {\n const queuedFile = getNextQueuedFile(contextId);\n\n if (isNotPresent(queuedFile)) {\n setIsUploading(contextId, false);\n setIsUploadingOnHost(false);\n\n return [];\n }\n\n updateFileStatus(contextId, queuedFile.id, FILE_UPLOAD_STATUS.UPLOADING);\n\n const [uploadedFile, remainingUploadedFiles] = await Promise.all([\n uploadFile(queuedFile),\n handleUploadFiles(),\n ]);\n\n const uploadedFiles = [uploadedFile, ...remainingUploadedFiles];\n const uploadedFileIds = pluck(\"id\", uploadedFiles);\n removeFilesFromQueue(contextId, uploadedFileIds);\n uploadControllers = omit(uploadedFileIds, uploadControllers);\n\n return uploadedFiles.filter(isNot(null));\n };\n\n const uploadFiles = () => {\n setIsUploading(contextId, true);\n setIsUploadingOnHost(true);\n\n return handleUploadFiles();\n };\n\n const addFiles = addedFiles => {\n const selectedFiles = selectFiles({\n previousAttachmentsCount: previousAttachments.length,\n config,\n files: Array.from(addedFiles),\n }).map(file => ({\n id: hyphenate(`${file.name.toLowerCase()}-${Date.now()}`),\n data: file,\n filename: file.name,\n signedId: \"awaiting\",\n url: \"\",\n type: file.type,\n status: FILE_UPLOAD_STATUS.QUEUED,\n }));\n\n addFilesToStore(contextId, selectedFiles);\n };\n\n const cancelUpload = fileId => {\n uploadControllers[fileId]?.abort?.();\n removeFile(contextId, fileId);\n };\n\n return {\n addFiles,\n uploadFiles,\n queuedFiles: files,\n cancelUpload,\n isUploading,\n };\n};\n\nexport default useFileUploader;\n","import { Globe, Grid3x3, Layers } from \"lucide-react\";\n\n// react-file-icon has no styles for these image formats, and gives xml the\n// same {} glyph as json; code2 is </>.\nexport const EXTRA_FILE_ICON_STYLES = {\n avif: { type: \"image\" },\n heic: { type: \"image\" },\n heif: { type: \"image\" },\n webp: { type: \"image\" },\n xml: { type: \"code2\" },\n};\n\n// Lucide glyphs for image formats that get their own icon. Other images use\n// lucide's Image.\nexport const FILE_ICON_GLYPH_BY_EXTENSION = {\n bmp: Grid3x3,\n tif: Layers,\n tiff: Layers,\n webp: Globe,\n};\n\nexport const FILE_ICON_CATEGORY_BY_EXTENSION = {\n pdf: \"pdf\",\n key: \"pdf\",\n ppt: \"pdf\",\n pptx: \"pdf\",\n csv: \"spreadsheet\",\n numbers: \"spreadsheet\",\n xls: \"spreadsheet\",\n xlsx: \"spreadsheet\",\n doc: \"document\",\n docx: \"document\",\n md: \"document\",\n pages: \"document\",\n rtf: \"document\",\n txt: \"document\",\n};\n\n// react-file-icon glyph type -> colour category. svg (\"vector\") is grouped\n// with images.\nexport const FILE_ICON_CATEGORY_BY_TYPE = {\n audio: \"audio\",\n image: \"image\",\n vector: \"image\",\n video: \"video\",\n};\n","import classnames from \"classnames\";\nimport { Image } from \"lucide-react\";\nimport { FileIcon as ReactFileIcon, defaultStyles } from \"react-file-icon\";\n\nimport {\n EXTRA_FILE_ICON_STYLES,\n FILE_ICON_CATEGORY_BY_EXTENSION,\n FILE_ICON_CATEGORY_BY_TYPE,\n FILE_ICON_GLYPH_BY_EXTENSION,\n} from \"./constants\";\n\nconst getExtension = fileName =>\n fileName?.match(/\\.([^.]+)$/)?.[1]?.toLowerCase();\n\n// Only the glyph shape is taken from react-file-icon. Colours come from\n// neeto-atoms tokens in _attachments.scss, keyed on the category class.\nconst getCategory = (extension, type) =>\n FILE_ICON_CATEGORY_BY_EXTENSION[extension] ??\n FILE_ICON_CATEGORY_BY_TYPE[type] ??\n \"default\";\n\nconst File = ({ fileName, className }) => {\n const extension = getExtension(fileName);\n const type = (EXTRA_FILE_ICON_STYLES[extension] ?? defaultStyles[extension])\n ?.type;\n\n // The library's image glyph is a mountain; draw a lucide glyph on top of a\n // glyph-less icon instead.\n const Glyph =\n FILE_ICON_GLYPH_BY_EXTENSION[extension] ??\n (type === \"image\" ? Image : null);\n\n return (\n <div\n aria-hidden=\"true\"\n className={classnames(\n \"ne-file-icon\",\n `ne-file-icon--${getCategory(extension, type)}`,\n className\n )}\n >\n <ReactFileIcon\n {...{ extension }}\n labelUppercase\n type={Glyph ? undefined : type}\n />\n {Glyph && <Glyph className=\"ne-file-icon__glyph\" />}\n </div>\n );\n};\n\nexport default File;\n"],"names":["DEFAULT_FILE_UPLOAD_CONFIG","directUploadEndpoint","DIRECT_UPLOAD_ENDPOINT","restrictions","maxFileSize","globalProps","endUserUploadedFileSizeLimitInMb","ATTACHMENT_OPTIONS","OPEN_IN_NEW_TAB","t","DOWNLOAD","RENAME","DELETE","ATTACHMENTS_PREVIEW_DATA_CY","MAX_VIDEO_SIZE_IN_MB","maxVideoSizeInMb","directUploadsMaxFileSizeInMb","Math","min","FILE_SIZE_UNITS","ALLOWED_IMAGE_TYPES","ALLOWED_VIDEO_TYPES","DEFAULT_IMAGE_UPLOAD_CONFIG","maxNumberOfFiles","allowedFileTypes","DEFAULT_VIDEO_UPLOAD_CONFIG","VIDEO_EMBED_FORM_VALIDATION_SCHEMA","yup","object","shape","url","string","required","matches","URL_REGEXP","DEFAULT_ASPECT_RATIO","convertToFileSize","size","arguments","length","undefined","fileSize","i","concat","toFixed","getTabs","mediaUploader","video","title","key","getFileExtension","filename","parts","split","pop","showWarningToastr","_ref","selectedFiles","initialFiles","config","largeFilesCount","unSupportedFilesCount","_config$restrictions","Toastr","error","warning","entity","shouldAddFile","file","_config$restrictions2","isPresent","canAdd","fileExtension","name","mimeType","type","extensionAllowed","includes","mimeAllowed","isUnsupportedFile","selectFiles","_ref2","previousAttachmentsCount","files","addedFilesCount","fallbackMaxNumberOfFiles","_config$restrictions$","canAddFile","remainingAttachments","filter","_canAddFile","e","r","Symbol","n","iterator","o","toStringTag","c","prototype","Generator","u","Object","create","_regeneratorDefine2","f","p","y","G","v","a","d","bind","l","TypeError","call","done","value","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","defineProperty","_regeneratorDefine","_invoke","enumerable","configurable","writable","uploadControllers","useFileUploader","_ref$attachments","attachments","previousAttachments","_ref$setIsUploadingOn","setIsUploadingOnHost","noop","contextIdRef","useRef","getRandomString","_useTranslation","useTranslation","contextId","current","_useFileUploadStore","useFileUploadStore","useShallow","store","addFiles","getNextQueuedFile","updateFileStatus","removeFilesFromQueue","setIsUploading","updateFileUploadProgress","removeFile","addFilesToStore","_useFileUploadStore2","_store$contextId","_store$contextId2","isUploading","_useFileUploadStore2$","handleUploadProgress","xhr","event","lengthComputable","bytesUploaded","loaded","bytesTotal","total","progress","round","id","uploadFile","_asyncToGenerator","_callee","upload","_data$signed_id","_data$blob_url","_data$content_type","_yield$upload$create","_yield$upload$create$","data","response","_t","_context","DirectUpload","_objectWithoutProperties","_excluded","FILE_UPLOAD_STATUS","UPLOADED","signedId","signed_id","blob_url","contentType","content_type","axios","isCancel","console","_x","apply","handleUploadFiles","_ref3","_callee2","queuedFile","_yield$Promise$all","_yield$Promise$all2","uploadedFile","remainingUploadedFiles","uploadedFiles","uploadedFileIds","_context2","isNotPresent","UPLOADING","Promise","all","_slicedToArray","_toConsumableArray","pluck","omit","isNot","uploadFiles","addedFiles","Array","from","map","hyphenate","toLowerCase","Date","now","status","QUEUED","cancelUpload","fileId","_uploadControllers$fi","_uploadControllers$fi2","abort","queuedFiles","EXTRA_FILE_ICON_STYLES","avif","heic","heif","webp","xml","FILE_ICON_GLYPH_BY_EXTENSION","bmp","Grid3x3","tif","Layers","tiff","Globe","FILE_ICON_CATEGORY_BY_EXTENSION","pdf","ppt","pptx","csv","numbers","xls","xlsx","doc","docx","md","pages","rtf","txt","FILE_ICON_CATEGORY_BY_TYPE","audio","image","vector","getExtension","fileName","_fileName$match","match","getCategory","extension","_FILE_ICON_CATEGORY_B","File","_EXTRA_FILE_ICON_STYL","_FILE_ICON_GLYPH_BY_E","className","defaultStyles","Glyph","Image","_jsxs","classnames","children","_jsx","ReactFileIcon","labelUppercase"],"mappings":"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"}
|
|
@@ -11,11 +11,11 @@ var ramda = require('ramda');
|
|
|
11
11
|
var client = require('react-dom/client');
|
|
12
12
|
var constants = require('./chunk-BxKa_XOs.cjs.js');
|
|
13
13
|
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
14
|
-
var common = require('./chunk-
|
|
15
|
-
var common$1 = require('./chunk-
|
|
14
|
+
var common = require('./chunk-CU6dMPZV.cjs.js');
|
|
15
|
+
var common$1 = require('./chunk-Dwv-JqJN.cjs.js');
|
|
16
16
|
var neetoCist = require('@bigbinary/neeto-cist');
|
|
17
17
|
var ReactDOM = require('react-dom/server');
|
|
18
|
-
require('./chunk-
|
|
18
|
+
require('./chunk-C_XHzWXy.cjs.js');
|
|
19
19
|
require('./chunk-CQ-j2kAX.cjs.js');
|
|
20
20
|
var neetoAtoms = require('@bigbinary/neeto-atoms');
|
|
21
21
|
var lucideReact = require('lucide-react');
|
|
@@ -392,4 +392,4 @@ var index = /*#__PURE__*/React.memo(EditorContent);
|
|
|
392
392
|
|
|
393
393
|
exports.index = index;
|
|
394
394
|
exports.substituteVariables = substituteVariables;
|
|
395
|
-
//# sourceMappingURL=chunk-
|
|
395
|
+
//# sourceMappingURL=chunk-CkSG3yNC.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunk-78VpxO0R.cjs.js","sources":["../../app/javascript/src/v2/components/EditorContent/constants/index.js","../../app/javascript/src/v2/components/EditorContent/utils/index.js","../../app/javascript/src/v2/components/EditorContent/utils/headers.js","../../app/javascript/src/v2/components/EditorContent/utils/todoCheckbox.js","../../app/javascript/src/v2/components/EditorContent/ImagePreview.jsx","../../app/javascript/src/v2/components/EditorContent/index.jsx"],"sourcesContent":["import { lowlight } from \"lowlight\";\n\nexport const EDITOR_CONTENT_CLASS_NAME = \"neeto-editor-content\";\n\nexport const SANITIZE_OPTIONS = {\n ADD_TAGS: [\"iframe\"],\n ADD_ATTR: [\"target\", \"allow\", \"allowfullscreen\", \"frameborder\"],\n};\n\nexport const CODE_BLOCK_REGEX =\n /<pre(?:\\s+[^>]+)?><code(?:\\s+class=\"language-([^\"]*)\")?>([\\S\\s]*?)<\\/code><\\/pre>/gim;\n\nexport const VARIABLE_SPAN_REGEX =\n /<span data-variable=\"\" [^>]*data-label=\"([^\"]+)\">{{([^}]+)}}<\\/span>/g;\n\nexport const LANGUAGE_LIST = [...lowlight.listLanguages(), \"html\"];\n\nexport const EDITOR_CONTENT_DEFAULT_CONFIGURATION = {\n enableHeaderLinks: false,\n};\n","import { createElement } from \"react\";\n\nimport hljs from \"highlight.js/lib/common\";\nimport { lowlight } from \"lowlight\";\nimport { findBy } from \"neetocist\";\nimport { isEmpty } from \"ramda\";\nimport { renderToString } from \"react-dom/server\";\n\nimport {\n CODE_BLOCK_REGEX,\n LANGUAGE_LIST,\n VARIABLE_SPAN_REGEX,\n} from \"../constants\";\n\nconst transformCode = code =>\n code.replace(/>/g, \">\").replace(/</g, \"<\").replace(/&/g, \"&\");\n\nconst buildReactElementFromAST = element => {\n if (element.tagName) {\n const children = element.children\n ? element.children.map(buildReactElementFromAST)\n : null;\n\n return createElement(element.tagName, element.properties, children);\n }\n\n return element.value;\n};\n\nconst splitCodeBlockIntoLines = codeBlock => {\n codeBlock.innerHTML = codeBlock.innerHTML.replace(\n /([ \\S]*\\n|[ \\S]*$)/gm,\n match => `<div class=\"highlight-line\">${match}</div>`\n );\n};\n\nconst highlightLinesCode = (code, options) => {\n if (options === undefined) {\n return;\n }\n\n const paddingLeft = parseInt(window.getComputedStyle(code).paddingLeft);\n const paddingRight = parseInt(window.getComputedStyle(code).paddingRight);\n\n const lines = code.getElementsByClassName(\"highlight-line\");\n const scroll_width = code.scrollWidth;\n // eslint-disable-next-line @bigbinary/neeto/use-array-methods\n for (const option of options) {\n for (let j = option.start; j <= option.end; ++j) {\n if (j >= lines.length) return;\n lines[j].style.backgroundColor = option.color;\n lines[j].style.minWidth = `${\n scroll_width - paddingLeft - paddingRight\n }px`;\n }\n }\n};\n\nexport const highlightLinesElement = (code, options) => {\n // eslint-disable-next-line @bigbinary/neeto/use-array-methods\n for (const option of options) {\n --option.start;\n --option.end;\n }\n highlightLinesCode(code, options);\n};\n\nexport const applySyntaxHighlightingAndLineNumbers = content => {\n lowlight.highlightAuto(\"\");\n let highlightedAST = {};\n\n return content.replace(CODE_BLOCK_REGEX, (_, language, code) => {\n const highlightRegex = /data-highlighted-lines=\"([^\"]*)\"/;\n const linenumbersRegex = /data-linenumbers/;\n const highlightMatch = content.match(highlightRegex);\n\n if (language && LANGUAGE_LIST.includes(language)) {\n highlightedAST = lowlight.highlight(language, transformCode(code));\n } else {\n highlightedAST = hljs.highlightAuto(transformCode(code))._emitter.root;\n if (isEmpty(highlightedAST.children)) {\n highlightedAST = lowlight.highlight(\"javascript\", transformCode(code));\n }\n }\n\n const highlightedNode = highlightedAST.children.map(\n buildReactElementFromAST\n );\n\n const dataHighlight = `data-highlighted-lines=${highlightMatch?.[1] ?? \"\"}`;\n const dataLinenumbers = content.match(linenumbersRegex)\n ? `data-linenumbers=\"true\"`\n : \"\";\n\n return `<pre ${dataLinenumbers} ${dataHighlight}><code>${renderToString(\n highlightedNode\n )}</code></pre>`;\n });\n};\n\nexport const applyLineHighlighting = editorContent => {\n const codeTags = editorContent?.querySelectorAll(\"pre code\");\n\n codeTags.forEach(codeTag => {\n splitCodeBlockIntoLines(codeTag);\n\n const highlightedLines = codeTag\n .closest(\"pre\")\n .getAttribute(\"data-highlighted-lines\");\n\n if (highlightedLines) {\n const linesToHighlight = highlightedLines\n .split(\",\")\n .map(Number)\n .filter(Boolean);\n\n const highlightLinesOptions = linesToHighlight.map(line => ({\n start: line,\n end: line,\n color: \"rgba(255, 255, 0, 0.2)\",\n }));\n\n highlightLinesElement(codeTag, highlightLinesOptions);\n }\n });\n};\n\nexport const substituteVariables = (highlightedContent, variables) =>\n highlightedContent.replace(VARIABLE_SPAN_REGEX, (matchedSpan, _, key) => {\n const keySplitted = key.split(\".\");\n if (keySplitted.length > 1) {\n const category = findBy({ category: keySplitted[0] }, variables);\n const variable = findBy(\n { key: keySplitted[1] },\n category?.variables || []\n );\n\n return variable?.value ? variable.value : matchedSpan;\n }\n\n const variable = findBy({ key: keySplitted[0] }, variables);\n\n return variable?.value ? variable.value : matchedSpan;\n });\n\nexport const convertPlainTextToHtml = htmlString => {\n if (/^<[a-z].*>/i.test(htmlString.trim())) return htmlString;\n\n return htmlString\n .split(\"\\n\")\n .reduce((html, str) => `${html}<p>${str}</p>`, \"\");\n};\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 { useEffect, useRef, useState } from \"react\";\n\nimport { Button, Spinner } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { X } from \"lucide-react\";\nimport { useOnClickOutside } from \"neetocommons/v2/react-utils\";\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 <div\n className={classnames(\"ne-image-preview\", {\n \"image-loaded\": !isLoading,\n })}\n >\n {!isLoading && (\n <div className=\"close-button\">\n <Button\n icon={X}\n variant=\"secondary\"\n onClick={() => setImagePreviewDetails(null)}\n />\n </div>\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","import { memo, useEffect, useRef, useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport DOMPurify from \"dompurify\";\nimport CopyToClipboardButton from \"neetomolecules/v2/CopyToClipboardButton\";\nimport { isNil } from \"ramda\";\nimport { createRoot } from \"react-dom/client\";\n\nimport { EDITOR_SIZES } from \"src/common/constants\";\nimport {\n EDITOR_CONTENT_CLASS_NAME,\n EDITOR_CONTENT_DEFAULT_CONFIGURATION,\n SANITIZE_OPTIONS,\n} from \"src/v2/components/EditorContent/constants\";\nimport {\n applyLineHighlighting,\n applySyntaxHighlightingAndLineNumbers,\n convertPlainTextToHtml,\n substituteVariables,\n} from \"src/v2/components/EditorContent/utils\";\nimport { buildHeaderLinks } from \"src/v2/components/EditorContent/utils/headers\";\nimport {\n handleTodoCheckboxClick,\n syncTodoCheckboxStates,\n} from \"src/v2/components/EditorContent/utils/todoCheckbox\";\nimport { removeEmptyTags } from \"utils\";\n\nimport ImagePreview from \"./ImagePreview\";\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=\"sm\"\n value={preTag.textContent}\n variant=\"ghost\"\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":["EDITOR_CONTENT_CLASS_NAME","SANITIZE_OPTIONS","ADD_TAGS","ADD_ATTR","CODE_BLOCK_REGEX","VARIABLE_SPAN_REGEX","LANGUAGE_LIST","concat","_toConsumableArray","lowlight","listLanguages","EDITOR_CONTENT_DEFAULT_CONFIGURATION","enableHeaderLinks","transformCode","code","replace","buildReactElementFromAST","element","tagName","children","map","createElement","properties","value","splitCodeBlockIntoLines","codeBlock","innerHTML","match","highlightLinesCode","options","undefined","paddingLeft","parseInt","window","getComputedStyle","paddingRight","lines","getElementsByClassName","scroll_width","scrollWidth","_iterator","_createForOfIteratorHelper","_step","s","n","done","option","j","start","end","length","style","backgroundColor","color","minWidth","err","e","f","highlightLinesElement","_iterator2","_step2","applySyntaxHighlightingAndLineNumbers","content","highlightAuto","highlightedAST","_","language","_highlightMatch$","highlightRegex","linenumbersRegex","highlightMatch","includes","highlight","hljs","_emitter","root","isEmpty","highlightedNode","dataHighlight","dataLinenumbers","renderToString","applyLineHighlighting","editorContent","codeTags","querySelectorAll","forEach","codeTag","highlightedLines","closest","getAttribute","linesToHighlight","split","Number","filter","Boolean","highlightLinesOptions","line","substituteVariables","highlightedContent","variables","matchedSpan","key","keySplitted","category","findBy","variable","convertPlainTextToHtml","htmlString","test","trim","reduce","html","str","buildLinkSVG","svgNS","svgWrapper","document","classList","add","svg","createElementNS","setAttribute","path","appendChild","convertTextToId","text","toLowerCase","buildHeaderLinks","editorContentNode","headerTags","usedIds","Map","heading","headingId","textContent","has","count","get","set","wrapper","anchor","cloneNode","replaceWith","handleTodoCheckboxClick","event","editorContentRef","onChange","target","type","checkbox","listItem","checked","toString","removeAttribute","syncTodoCheckboxStates","todoItems","isChecked","querySelector","ImagePreview","_ref","imagePreviewDetails","setImagePreviewDetails","_useState","useState","_useState2","_slicedToArray","isLoading","setIsLoading","_useTranslation","useTranslation","t","imagePreviewRef","useRef","useOnClickOutside","enabled","useEffect","current","focus","handleKeyDown","stopPropagation","createPortal","_jsxs","className","_jsx","Spinner","classnames","Button","icon","X","variant","onClick","alt","ref","src","onKeyDown","onLoad","caption","body","EditorContent","_ref$content","_ref$variables","_ref$size","size","EDITOR_SIZES","SMALL","_ref$configuration","configuration","otherProps","_objectWithoutProperties","_excluded","htmlContent","removeEmptyTags","sanitize","DOMPurify","handleContentClick","injectCopyButtonToCodeBlocks","_editorContentRef$cur","preTags","preTag","button","createRoot","render","CopyToClipboardButton","bindImageClickListener","_editorContentRef$cur2","figureTags","figureTag","image","link","isNil","addEventListener","_figureTag$querySelec","preventDefault","innerText","_Fragment","_objectSpread","_defineProperty","dangerouslySetInnerHTML","__html","memo"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chunk-CkSG3yNC.cjs.js","sources":["../../app/javascript/src/v2/components/EditorContent/constants/index.js","../../app/javascript/src/v2/components/EditorContent/utils/index.js","../../app/javascript/src/v2/components/EditorContent/utils/headers.js","../../app/javascript/src/v2/components/EditorContent/utils/todoCheckbox.js","../../app/javascript/src/v2/components/EditorContent/ImagePreview.jsx","../../app/javascript/src/v2/components/EditorContent/index.jsx"],"sourcesContent":["import { lowlight } from \"lowlight\";\n\nexport const EDITOR_CONTENT_CLASS_NAME = \"neeto-editor-content\";\n\nexport const SANITIZE_OPTIONS = {\n ADD_TAGS: [\"iframe\"],\n ADD_ATTR: [\"target\", \"allow\", \"allowfullscreen\", \"frameborder\"],\n};\n\nexport const CODE_BLOCK_REGEX =\n /<pre(?:\\s+[^>]+)?><code(?:\\s+class=\"language-([^\"]*)\")?>([\\S\\s]*?)<\\/code><\\/pre>/gim;\n\nexport const VARIABLE_SPAN_REGEX =\n /<span data-variable=\"\" [^>]*data-label=\"([^\"]+)\">{{([^}]+)}}<\\/span>/g;\n\nexport const LANGUAGE_LIST = [...lowlight.listLanguages(), \"html\"];\n\nexport const EDITOR_CONTENT_DEFAULT_CONFIGURATION = {\n enableHeaderLinks: false,\n};\n","import { createElement } from \"react\";\n\nimport hljs from \"highlight.js/lib/common\";\nimport { lowlight } from \"lowlight\";\nimport { findBy } from \"neetocist\";\nimport { isEmpty } from \"ramda\";\nimport { renderToString } from \"react-dom/server\";\n\nimport {\n CODE_BLOCK_REGEX,\n LANGUAGE_LIST,\n VARIABLE_SPAN_REGEX,\n} from \"../constants\";\n\nconst transformCode = code =>\n code.replace(/>/g, \">\").replace(/</g, \"<\").replace(/&/g, \"&\");\n\nconst buildReactElementFromAST = element => {\n if (element.tagName) {\n const children = element.children\n ? element.children.map(buildReactElementFromAST)\n : null;\n\n return createElement(element.tagName, element.properties, children);\n }\n\n return element.value;\n};\n\nconst splitCodeBlockIntoLines = codeBlock => {\n codeBlock.innerHTML = codeBlock.innerHTML.replace(\n /([ \\S]*\\n|[ \\S]*$)/gm,\n match => `<div class=\"highlight-line\">${match}</div>`\n );\n};\n\nconst highlightLinesCode = (code, options) => {\n if (options === undefined) {\n return;\n }\n\n const paddingLeft = parseInt(window.getComputedStyle(code).paddingLeft);\n const paddingRight = parseInt(window.getComputedStyle(code).paddingRight);\n\n const lines = code.getElementsByClassName(\"highlight-line\");\n const scroll_width = code.scrollWidth;\n // eslint-disable-next-line @bigbinary/neeto/use-array-methods\n for (const option of options) {\n for (let j = option.start; j <= option.end; ++j) {\n if (j >= lines.length) return;\n lines[j].style.backgroundColor = option.color;\n lines[j].style.minWidth = `${\n scroll_width - paddingLeft - paddingRight\n }px`;\n }\n }\n};\n\nexport const highlightLinesElement = (code, options) => {\n // eslint-disable-next-line @bigbinary/neeto/use-array-methods\n for (const option of options) {\n --option.start;\n --option.end;\n }\n highlightLinesCode(code, options);\n};\n\nexport const applySyntaxHighlightingAndLineNumbers = content => {\n lowlight.highlightAuto(\"\");\n let highlightedAST = {};\n\n return content.replace(CODE_BLOCK_REGEX, (_, language, code) => {\n const highlightRegex = /data-highlighted-lines=\"([^\"]*)\"/;\n const linenumbersRegex = /data-linenumbers/;\n const highlightMatch = content.match(highlightRegex);\n\n if (language && LANGUAGE_LIST.includes(language)) {\n highlightedAST = lowlight.highlight(language, transformCode(code));\n } else {\n highlightedAST = hljs.highlightAuto(transformCode(code))._emitter.root;\n if (isEmpty(highlightedAST.children)) {\n highlightedAST = lowlight.highlight(\"javascript\", transformCode(code));\n }\n }\n\n const highlightedNode = highlightedAST.children.map(\n buildReactElementFromAST\n );\n\n const dataHighlight = `data-highlighted-lines=${highlightMatch?.[1] ?? \"\"}`;\n const dataLinenumbers = content.match(linenumbersRegex)\n ? `data-linenumbers=\"true\"`\n : \"\";\n\n return `<pre ${dataLinenumbers} ${dataHighlight}><code>${renderToString(\n highlightedNode\n )}</code></pre>`;\n });\n};\n\nexport const applyLineHighlighting = editorContent => {\n const codeTags = editorContent?.querySelectorAll(\"pre code\");\n\n codeTags.forEach(codeTag => {\n splitCodeBlockIntoLines(codeTag);\n\n const highlightedLines = codeTag\n .closest(\"pre\")\n .getAttribute(\"data-highlighted-lines\");\n\n if (highlightedLines) {\n const linesToHighlight = highlightedLines\n .split(\",\")\n .map(Number)\n .filter(Boolean);\n\n const highlightLinesOptions = linesToHighlight.map(line => ({\n start: line,\n end: line,\n color: \"rgba(255, 255, 0, 0.2)\",\n }));\n\n highlightLinesElement(codeTag, highlightLinesOptions);\n }\n });\n};\n\nexport const substituteVariables = (highlightedContent, variables) =>\n highlightedContent.replace(VARIABLE_SPAN_REGEX, (matchedSpan, _, key) => {\n const keySplitted = key.split(\".\");\n if (keySplitted.length > 1) {\n const category = findBy({ category: keySplitted[0] }, variables);\n const variable = findBy(\n { key: keySplitted[1] },\n category?.variables || []\n );\n\n return variable?.value ? variable.value : matchedSpan;\n }\n\n const variable = findBy({ key: keySplitted[0] }, variables);\n\n return variable?.value ? variable.value : matchedSpan;\n });\n\nexport const convertPlainTextToHtml = htmlString => {\n if (/^<[a-z].*>/i.test(htmlString.trim())) return htmlString;\n\n return htmlString\n .split(\"\\n\")\n .reduce((html, str) => `${html}<p>${str}</p>`, \"\");\n};\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 { useEffect, useRef, useState } from \"react\";\n\nimport { Button, Spinner } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { X } from \"lucide-react\";\nimport { useOnClickOutside } from \"neetocommons/v2/react-utils\";\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 <div\n className={classnames(\"ne-image-preview\", {\n \"image-loaded\": !isLoading,\n })}\n >\n {!isLoading && (\n <div className=\"close-button\">\n <Button\n icon={X}\n variant=\"secondary\"\n onClick={() => setImagePreviewDetails(null)}\n />\n </div>\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","import { memo, useEffect, useRef, useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport DOMPurify from \"dompurify\";\nimport CopyToClipboardButton from \"neetomolecules/v2/CopyToClipboardButton\";\nimport { isNil } from \"ramda\";\nimport { createRoot } from \"react-dom/client\";\n\nimport { EDITOR_SIZES } from \"src/common/constants\";\nimport {\n EDITOR_CONTENT_CLASS_NAME,\n EDITOR_CONTENT_DEFAULT_CONFIGURATION,\n SANITIZE_OPTIONS,\n} from \"src/v2/components/EditorContent/constants\";\nimport {\n applyLineHighlighting,\n applySyntaxHighlightingAndLineNumbers,\n convertPlainTextToHtml,\n substituteVariables,\n} from \"src/v2/components/EditorContent/utils\";\nimport { buildHeaderLinks } from \"src/v2/components/EditorContent/utils/headers\";\nimport {\n handleTodoCheckboxClick,\n syncTodoCheckboxStates,\n} from \"src/v2/components/EditorContent/utils/todoCheckbox\";\nimport { removeEmptyTags } from \"utils\";\n\nimport ImagePreview from \"./ImagePreview\";\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=\"sm\"\n value={preTag.textContent}\n variant=\"ghost\"\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":["EDITOR_CONTENT_CLASS_NAME","SANITIZE_OPTIONS","ADD_TAGS","ADD_ATTR","CODE_BLOCK_REGEX","VARIABLE_SPAN_REGEX","LANGUAGE_LIST","concat","_toConsumableArray","lowlight","listLanguages","EDITOR_CONTENT_DEFAULT_CONFIGURATION","enableHeaderLinks","transformCode","code","replace","buildReactElementFromAST","element","tagName","children","map","createElement","properties","value","splitCodeBlockIntoLines","codeBlock","innerHTML","match","highlightLinesCode","options","undefined","paddingLeft","parseInt","window","getComputedStyle","paddingRight","lines","getElementsByClassName","scroll_width","scrollWidth","_iterator","_createForOfIteratorHelper","_step","s","n","done","option","j","start","end","length","style","backgroundColor","color","minWidth","err","e","f","highlightLinesElement","_iterator2","_step2","applySyntaxHighlightingAndLineNumbers","content","highlightAuto","highlightedAST","_","language","_highlightMatch$","highlightRegex","linenumbersRegex","highlightMatch","includes","highlight","hljs","_emitter","root","isEmpty","highlightedNode","dataHighlight","dataLinenumbers","renderToString","applyLineHighlighting","editorContent","codeTags","querySelectorAll","forEach","codeTag","highlightedLines","closest","getAttribute","linesToHighlight","split","Number","filter","Boolean","highlightLinesOptions","line","substituteVariables","highlightedContent","variables","matchedSpan","key","keySplitted","category","findBy","variable","convertPlainTextToHtml","htmlString","test","trim","reduce","html","str","buildLinkSVG","svgNS","svgWrapper","document","classList","add","svg","createElementNS","setAttribute","path","appendChild","convertTextToId","text","toLowerCase","buildHeaderLinks","editorContentNode","headerTags","usedIds","Map","heading","headingId","textContent","has","count","get","set","wrapper","anchor","cloneNode","replaceWith","handleTodoCheckboxClick","event","editorContentRef","onChange","target","type","checkbox","listItem","checked","toString","removeAttribute","syncTodoCheckboxStates","todoItems","isChecked","querySelector","ImagePreview","_ref","imagePreviewDetails","setImagePreviewDetails","_useState","useState","_useState2","_slicedToArray","isLoading","setIsLoading","_useTranslation","useTranslation","t","imagePreviewRef","useRef","useOnClickOutside","enabled","useEffect","current","focus","handleKeyDown","stopPropagation","createPortal","_jsxs","className","_jsx","Spinner","classnames","Button","icon","X","variant","onClick","alt","ref","src","onKeyDown","onLoad","caption","body","EditorContent","_ref$content","_ref$variables","_ref$size","size","EDITOR_SIZES","SMALL","_ref$configuration","configuration","otherProps","_objectWithoutProperties","_excluded","htmlContent","removeEmptyTags","sanitize","DOMPurify","handleContentClick","injectCopyButtonToCodeBlocks","_editorContentRef$cur","preTags","preTag","button","createRoot","render","CopyToClipboardButton","bindImageClickListener","_editorContentRef$cur2","figureTags","figureTag","image","link","isNil","addEventListener","_figureTag$querySelec","preventDefault","innerText","_Fragment","_objectSpread","_defineProperty","dangerouslySetInnerHTML","__html","memo"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEO,IAAMA,yBAAyB,GAAG,sBAAsB;AAExD,IAAMC,gBAAgB,GAAG;EAC9BC,QAAQ,EAAE,CAAC,QAAQ,CAAC;EACpBC,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,iBAAiB,EAAE,aAAa;AAChE,CAAC;AAEM,IAAMC,gBAAgB,GAC3B,sFAAsF;AAEjF,IAAMC,mBAAmB,GAC9B,uEAAuE;AAElE,IAAMC,aAAa,GAAA,EAAA,CAAAC,MAAA,CAAAC,mCAAA,CAAOC,eAAQ,CAACC,aAAa,EAAE,CAAA,EAAA,CAAE,MAAM,CAAA,CAAC;AAE3D,IAAMC,oCAAoC,GAAG;AAClDC,EAAAA,iBAAiB,EAAE;AACrB,CAAC;;;;;ACLD,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAGC,IAAI,EAAA;EAAA,OACxBA,IAAI,CAACC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAACA,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAACA,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;AAAA,CAAA;AAEzE,IAAMC,yBAAwB,GAAG,SAA3BA,wBAAwBA,CAAGC,OAAO,EAAI;EAC1C,IAAIA,OAAO,CAACC,OAAO,EAAE;AACnB,IAAA,IAAMC,QAAQ,GAAGF,OAAO,CAACE,QAAQ,GAC7BF,OAAO,CAACE,QAAQ,CAACC,GAAG,CAACJ,yBAAwB,CAAC,GAC9C,IAAI;IAER,oBAAOK,mBAAa,CAACJ,OAAO,CAACC,OAAO,EAAED,OAAO,CAACK,UAAU,EAAEH,QAAQ,CAAC;AACrE,EAAA;EAEA,OAAOF,OAAO,CAACM,KAAK;AACtB,CAAC;AAED,IAAMC,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAGC,SAAS,EAAI;AAC3CA,EAAAA,SAAS,CAACC,SAAS,GAAGD,SAAS,CAACC,SAAS,CAACX,OAAO,CAC/C,sBAAsB,EACtB,UAAAY,KAAK,EAAA;IAAA,OAAA,gCAAA,CAAApB,MAAA,CAAmCoB,KAAK,EAAA,QAAA,CAAA;AAAA,EAAA,CAC/C,CAAC;AACH,CAAC;AAED,IAAMC,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAId,IAAI,EAAEe,OAAO,EAAK;EAC5C,IAAIA,OAAO,KAAKC,SAAS,EAAE;AACzB,IAAA;AACF,EAAA;AAEA,EAAA,IAAMC,WAAW,GAAGC,QAAQ,CAACC,MAAM,CAACC,gBAAgB,CAACpB,IAAI,CAAC,CAACiB,WAAW,CAAC;AACvE,EAAA,IAAMI,YAAY,GAAGH,QAAQ,CAACC,MAAM,CAACC,gBAAgB,CAACpB,IAAI,CAAC,CAACqB,YAAY,CAAC;AAEzE,EAAA,IAAMC,KAAK,GAAGtB,IAAI,CAACuB,sBAAsB,CAAC,gBAAgB,CAAC;AAC3D,EAAA,IAAMC,YAAY,GAAGxB,IAAI,CAACyB,WAAW;AACrC;AAAA,EAAA,IAAAC,SAAA,GAAAC,0BAAA,CACqBZ,OAAO,CAAA;IAAAa,KAAA;AAAA,EAAA,IAAA;IAA5B,KAAAF,SAAA,CAAAG,CAAA,EAAA,EAAA,CAAA,CAAAD,KAAA,GAAAF,SAAA,CAAAI,CAAA,EAAA,EAAAC,IAAA,GAA8B;AAAA,MAAA,IAAnBC,MAAM,GAAAJ,KAAA,CAAAnB,KAAA;AACf,MAAA,KAAK,IAAIwB,CAAC,GAAGD,MAAM,CAACE,KAAK,EAAED,CAAC,IAAID,MAAM,CAACG,GAAG,EAAE,EAAEF,CAAC,EAAE;AAC/C,QAAA,IAAIA,CAAC,IAAIX,KAAK,CAACc,MAAM,EAAE;QACvBd,KAAK,CAACW,CAAC,CAAC,CAACI,KAAK,CAACC,eAAe,GAAGN,MAAM,CAACO,KAAK;AAC7CjB,QAAAA,KAAK,CAACW,CAAC,CAAC,CAACI,KAAK,CAACG,QAAQ,GAAA,EAAA,CAAA/C,MAAA,CACrB+B,YAAY,GAAGP,WAAW,GAAGI,YAAY,EAAA,IAAA,CACvC;AACN,MAAA;AACF,IAAA;AAAC,EAAA,CAAA,CAAA,OAAAoB,GAAA,EAAA;IAAAf,SAAA,CAAAgB,CAAA,CAAAD,GAAA,CAAA;AAAA,EAAA,CAAA,SAAA;AAAAf,IAAAA,SAAA,CAAAiB,CAAA,EAAA;AAAA,EAAA;AACH,CAAC;AAEM,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAI5C,IAAI,EAAEe,OAAO,EAAK;AACtD;AAAA,EAAA,IAAA8B,UAAA,GAAAlB,0BAAA,CACqBZ,OAAO,CAAA;IAAA+B,MAAA;AAAA,EAAA,IAAA;IAA5B,KAAAD,UAAA,CAAAhB,CAAA,EAAA,EAAA,CAAA,CAAAiB,MAAA,GAAAD,UAAA,CAAAf,CAAA,EAAA,EAAAC,IAAA,GAA8B;AAAA,MAAA,IAAnBC,MAAM,GAAAc,MAAA,CAAArC,KAAA;MACf,EAAEuB,MAAM,CAACE,KAAK;MACd,EAAEF,MAAM,CAACG,GAAG;AACd,IAAA;AAAC,EAAA,CAAA,CAAA,OAAAM,GAAA,EAAA;IAAAI,UAAA,CAAAH,CAAA,CAAAD,GAAA,CAAA;AAAA,EAAA,CAAA,SAAA;AAAAI,IAAAA,UAAA,CAAAF,CAAA,EAAA;AAAA,EAAA;AACD7B,EAAAA,kBAAkB,CAACd,IAAI,EAAEe,OAAO,CAAC;AACnC,CAAC;AAEM,IAAMgC,qCAAqC,GAAG,SAAxCA,qCAAqCA,CAAGC,OAAO,EAAI;AAC9DrD,EAAAA,eAAQ,CAACsD,aAAa,CAAC,EAAE,CAAC;EAC1B,IAAIC,cAAc,GAAG,EAAE;AAEvB,EAAA,OAAOF,OAAO,CAAC/C,OAAO,CAACX,gBAAgB,EAAE,UAAC6D,CAAC,EAAEC,QAAQ,EAAEpD,IAAI,EAAK;AAAA,IAAA,IAAAqD,gBAAA;IAC9D,IAAMC,cAAc,GAAG,kCAAkC;IACzD,IAAMC,gBAAgB,GAAG,kBAAkB;AAC3C,IAAA,IAAMC,cAAc,GAAGR,OAAO,CAACnC,KAAK,CAACyC,cAAc,CAAC;IAEpD,IAAIF,QAAQ,IAAI5D,aAAa,CAACiE,QAAQ,CAACL,QAAQ,CAAC,EAAE;MAChDF,cAAc,GAAGvD,eAAQ,CAAC+D,SAAS,CAACN,QAAQ,EAAErD,aAAa,CAACC,IAAI,CAAC,CAAC;AACpE,IAAA,CAAC,MAAM;AACLkD,MAAAA,cAAc,GAAGS,oBAAI,CAACV,aAAa,CAAClD,aAAa,CAACC,IAAI,CAAC,CAAC,CAAC4D,QAAQ,CAACC,IAAI;AACtE,MAAA,IAAIC,aAAO,CAACZ,cAAc,CAAC7C,QAAQ,CAAC,EAAE;QACpC6C,cAAc,GAAGvD,eAAQ,CAAC+D,SAAS,CAAC,YAAY,EAAE3D,aAAa,CAACC,IAAI,CAAC,CAAC;AACxE,MAAA;AACF,IAAA;IAEA,IAAM+D,eAAe,GAAGb,cAAc,CAAC7C,QAAQ,CAACC,GAAG,CACjDJ,yBACF,CAAC;IAED,IAAM8D,aAAa,6BAAAvE,MAAA,CAAA,CAAA4D,gBAAA,GAA6BG,cAAc,aAAdA,cAAc,KAAA,MAAA,GAAA,MAAA,GAAdA,cAAc,CAAG,CAAC,CAAC,MAAA,IAAA,IAAAH,gBAAA,cAAAA,gBAAA,GAAI,EAAE,CAAE;IAC3E,IAAMY,eAAe,GAAGjB,OAAO,CAACnC,KAAK,CAAC0C,gBAAgB,CAAC,GAAA,2BAAA,GAEnD,EAAE;AAEN,IAAA,OAAA,OAAA,CAAA9D,MAAA,CAAewE,eAAe,EAAA,GAAA,CAAA,CAAAxE,MAAA,CAAIuE,aAAa,EAAA,SAAA,CAAA,CAAAvE,MAAA,CAAUyE,uBAAc,CACrEH,eACF,CAAC,EAAA,eAAA,CAAA;AACH,EAAA,CAAC,CAAC;AACJ,CAAC;AAEM,IAAMI,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAGC,aAAa,EAAI;EACpD,IAAMC,QAAQ,GAAGD,aAAa,KAAA,IAAA,IAAbA,aAAa,KAAA,MAAA,GAAA,MAAA,GAAbA,aAAa,CAAEE,gBAAgB,CAAC,UAAU,CAAC;AAE5DD,EAAAA,QAAQ,CAACE,OAAO,CAAC,UAAAC,OAAO,EAAI;IAC1B9D,uBAAuB,CAAC8D,OAAO,CAAC;AAEhC,IAAA,IAAMC,gBAAgB,GAAGD,OAAO,CAC7BE,OAAO,CAAC,KAAK,CAAC,CACdC,YAAY,CAAC,wBAAwB,CAAC;AAEzC,IAAA,IAAIF,gBAAgB,EAAE;AACpB,MAAA,IAAMG,gBAAgB,GAAGH,gBAAgB,CACtCI,KAAK,CAAC,GAAG,CAAC,CACVvE,GAAG,CAACwE,MAAM,CAAC,CACXC,MAAM,CAACC,OAAO,CAAC;AAElB,MAAA,IAAMC,qBAAqB,GAAGL,gBAAgB,CAACtE,GAAG,CAAC,UAAA4E,IAAI,EAAA;QAAA,OAAK;AAC1DhD,UAAAA,KAAK,EAAEgD,IAAI;AACX/C,UAAAA,GAAG,EAAE+C,IAAI;AACT3C,UAAAA,KAAK,EAAE;SACR;AAAA,MAAA,CAAC,CAAC;AAEHK,MAAAA,qBAAqB,CAAC4B,OAAO,EAAES,qBAAqB,CAAC;AACvD,IAAA;AACF,EAAA,CAAC,CAAC;AACJ,CAAC;AAEM,IAAME,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIC,kBAAkB,EAAEC,SAAS,EAAA;AAAA,EAAA,OAC/DD,kBAAkB,CAACnF,OAAO,CAACV,mBAAmB,EAAE,UAAC+F,WAAW,EAAEnC,CAAC,EAAEoC,GAAG,EAAK;AACvE,IAAA,IAAMC,WAAW,GAAGD,GAAG,CAACV,KAAK,CAAC,GAAG,CAAC;AAClC,IAAA,IAAIW,WAAW,CAACpD,MAAM,GAAG,CAAC,EAAE;MAC1B,IAAMqD,QAAQ,GAAGC,gBAAM,CAAC;QAAED,QAAQ,EAAED,WAAW,CAAC,CAAC;OAAG,EAAEH,SAAS,CAAC;MAChE,IAAMM,SAAQ,GAAGD,gBAAM,CACrB;QAAEH,GAAG,EAAEC,WAAW,CAAC,CAAC;OAAG,EACvB,CAAAC,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAAA,MAAA,GAAA,MAAA,GAARA,QAAQ,CAAEJ,SAAS,KAAI,EACzB,CAAC;AAED,MAAA,OAAOM,SAAQ,KAAA,IAAA,IAARA,SAAQ,KAAA,MAAA,IAARA,SAAQ,CAAElF,KAAK,GAAGkF,SAAQ,CAAClF,KAAK,GAAG6E,WAAW;AACvD,IAAA;IAEA,IAAMK,QAAQ,GAAGD,gBAAM,CAAC;MAAEH,GAAG,EAAEC,WAAW,CAAC,CAAC;KAAG,EAAEH,SAAS,CAAC;AAE3D,IAAA,OAAOM,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAAA,MAAA,IAARA,QAAQ,CAAElF,KAAK,GAAGkF,QAAQ,CAAClF,KAAK,GAAG6E,WAAW;AACvD,EAAA,CAAC,CAAC;AAAA;AAEG,IAAMM,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAGC,UAAU,EAAI;AAClD,EAAA,IAAI,aAAa,CAACC,IAAI,CAACD,UAAU,CAACE,IAAI,EAAE,CAAC,EAAE,OAAOF,UAAU;AAE5D,EAAA,OAAOA,UAAU,CACdhB,KAAK,CAAC,IAAI,CAAC,CACXmB,MAAM,CAAC,UAACC,IAAI,EAAEC,GAAG,EAAA;AAAA,IAAA,OAAA,EAAA,CAAAzG,MAAA,CAAQwG,IAAI,EAAA,KAAA,CAAA,CAAAxG,MAAA,CAAMyG,GAAG,EAAA,MAAA,CAAA;EAAA,CAAM,EAAE,EAAE,CAAC;AACtD,CAAC;;ACvJD,IAAMC,YAAY,GAAG,SAAfA,YAAYA,GAAS;EACzB,IAAMC,KAAK,GAAG,4BAA4B;AAE1C,EAAA,IAAMC,UAAU,GAAGC,QAAQ,CAAC/F,aAAa,CAAC,MAAM,CAAC;AACjD8F,EAAAA,UAAU,CAACE,SAAS,CAACC,GAAG,CAAC,0BAA0B,CAAC;EACpD,IAAMC,GAAG,GAAGH,QAAQ,CAACI,eAAe,CAACN,KAAK,EAAE,KAAK,CAAC;AAClDK,EAAAA,GAAG,CAACE,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC;AACvCF,EAAAA,GAAG,CAACE,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC;AAChCF,EAAAA,GAAG,CAACE,YAAY,CAAC,SAAS,EAAE,WAAW,CAAC;AACxCF,EAAAA,GAAG,CAACE,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC;EAE/B,IAAMC,IAAI,GAAGN,QAAQ,CAACI,eAAe,CAACN,KAAK,EAAE,MAAM,CAAC;AACpDQ,EAAAA,IAAI,CAACD,YAAY,CACf,GAAG,EACH,+UACF,CAAC;AAEDF,EAAAA,GAAG,CAACI,WAAW,CAACD,IAAI,CAAC;AACrBP,EAAAA,UAAU,CAACQ,WAAW,CAACJ,GAAG,CAAC;AAE3B,EAAA,OAAOJ,UAAU;AACnB,CAAC;AAED,IAAMS,eAAe,GAAG,SAAlBA,eAAeA,CAAGC,IAAI,EAAA;EAAA,OAC1BA,IAAI,CACDhB,IAAI,EAAE,CACNiB,WAAW,EAAE,CACb/G,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAC3BA,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;AAAA,CAAA;AAElB,IAAMgH,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAGC,iBAAiB,EAAI;AACnD,EAAA,IAAMC,UAAU,GAAGD,iBAAiB,CAAC5C,gBAAgB,CACnD,wBACF,CAAC;AACD,EAAA,IAAM8C,OAAO,GAAG,IAAIC,GAAG,EAAE;AAEzBF,EAAAA,UAAU,CAAC5C,OAAO,CAAC,UAAA+C,OAAO,EAAI;IAC5B,IAAIA,OAAO,CAAC3C,YAAY,CAAC,WAAW,CAAC,KAAK,OAAO,EAAE;AACjD,MAAA;AACF,IAAA;AAEA,IAAA,IAAI4C,SAAS,GAAGT,eAAe,CAACQ,OAAO,CAACE,WAAW,CAAC;AACpD,IAAA,IAAIJ,OAAO,CAACK,GAAG,CAACF,SAAS,CAAC,EAAE;AAC1B,MAAA,IAAMG,KAAK,GAAGN,OAAO,CAACO,GAAG,CAACJ,SAAS,CAAC;MACpCH,OAAO,CAACQ,GAAG,CAACL,SAAS,EAAEG,KAAK,GAAG,CAAC,CAAC;MACjCH,SAAS,GAAA,EAAA,CAAA9H,MAAA,CAAM8H,SAAS,OAAA9H,MAAA,CAAIiI,KAAK,CAAE;IACrC,CAAC,MAAMN,OAAO,CAACQ,GAAG,CAACL,SAAS,EAAE,CAAC,CAAC;AAEhCD,IAAAA,OAAO,CAACX,YAAY,CAAC,IAAI,EAAEY,SAAS,CAAC;AAErC,IAAA,IAAMM,OAAO,GAAGvB,QAAQ,CAAC/F,aAAa,CAAC,KAAK,CAAC;AAC7C,IAAA,IAAMuH,MAAM,GAAGxB,QAAQ,CAAC/F,aAAa,CAAC,GAAG,CAAC;AAE1CsH,IAAAA,OAAO,CAACtB,SAAS,CAACC,GAAG,CAAC,gBAAgB,CAAC;IACvCsB,MAAM,CAACnB,YAAY,CAAC,MAAM,MAAAlH,MAAA,CAAM8H,SAAS,CAAE,CAAC;AAC5CO,IAAAA,MAAM,CAACvB,SAAS,CAACC,GAAG,CAAC,sBAAsB,CAAC;AAC5CsB,IAAAA,MAAM,CAACjB,WAAW,CAACV,YAAY,EAAE,CAAC;IAElC0B,OAAO,CAAChB,WAAW,CAACS,OAAO,CAACS,SAAS,CAAC,IAAI,CAAC,CAAC;AAC5CF,IAAAA,OAAO,CAAChB,WAAW,CAACiB,MAAM,CAAC;AAC3BR,IAAAA,OAAO,CAACU,WAAW,CAACH,OAAO,CAAC;AAC9B,EAAA,CAAC,CAAC;AACJ,CAAC;;AC9DM,IAAMI,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAIC,KAAK,EAAEC,gBAAgB,EAAEC,QAAQ,EAAK;AAC5E,EAAA,IACE,EACEF,KAAK,CAACG,MAAM,CAACC,IAAI,KAAK,UAAU,IAChCJ,KAAK,CAACG,MAAM,CAAC3D,OAAO,CAAC,mDAAmD,CAAC,CAC1E,EACD;AACA,IAAA;AACF,EAAA;AAEA,EAAA,IAAM6D,QAAQ,GAAGL,KAAK,CAACG,MAAM;AAC7B,EAAA,IAAMG,QAAQ,GAAGD,QAAQ,CAAC7D,OAAO,CAAC,IAAI,CAAC;AAEvC,EAAA,IAAI8D,QAAQ,EAAE;AACZA,IAAAA,QAAQ,CAAC7B,YAAY,CAAC,cAAc,EAAE4B,QAAQ,CAACE,OAAO,CAACC,QAAQ,EAAE,CAAC;IAElE,IAAIH,QAAQ,CAACE,OAAO,EAAE;AACpBF,MAAAA,QAAQ,CAAC5B,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC;AAC7C,IAAA,CAAC,MAAM;AACL4B,MAAAA,QAAQ,CAACI,eAAe,CAAC,SAAS,CAAC;AACrC,IAAA;AAEAP,IAAAA,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAAA,MAAA,IAARA,QAAQ,CAAGD,gBAAgB,KAAA,IAAA,IAAhBA,gBAAgB,KAAA,MAAA,GAAA,MAAA,GAAhBA,gBAAgB,CAAEvH,SAAS,CAAC;AACzC,EAAA;AACF,CAAC;AAEM,IAAMgI,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAGT,gBAAgB,EAAI;EACxD,IAAI,CAACA,gBAAgB,EAAE;AAEvB,EAAA,IAAMU,SAAS,GAAGV,gBAAgB,CAAC7D,gBAAgB,wDAEnD,CAAC;AAEDuE,EAAAA,SAAS,CAACtE,OAAO,CAAC,UAAAiE,QAAQ,EAAI;IAC5B,IAAMM,SAAS,GAAGN,QAAQ,CAAC7D,YAAY,CAAC,cAAc,CAAC,KAAK,MAAM;AAClE,IAAA,IAAM4D,QAAQ,GAAGC,QAAQ,CAACO,aAAa,CAAC,wBAAwB,CAAC;AAEjE,IAAA,IAAIR,QAAQ,EAAE;MACZA,QAAQ,CAACE,OAAO,GAAGK,SAAS;AAE5B,MAAA,IAAIA,SAAS,EAAE;AACbP,QAAAA,QAAQ,CAAC5B,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC;AAC7C,MAAA,CAAC,MAAM;AACL4B,QAAAA,QAAQ,CAACI,eAAe,CAAC,SAAS,CAAC;AACrC,MAAA;AACF,IAAA;AACF,EAAA,CAAC,CAAC;AACJ,CAAC;;ACtCD,IAAMK,YAAY,GAAG,SAAfA,YAAYA,CAAAC,IAAA,EAAwD;AAAA,EAAA,IAAlDC,mBAAmB,GAAAD,IAAA,CAAnBC,mBAAmB;IAAEC,sBAAsB,GAAAF,IAAA,CAAtBE,sBAAsB;AACjE,EAAA,IAAAC,SAAA,GAAkCC,cAAQ,CAAC,IAAI,CAAC;IAAAC,UAAA,GAAAC,+BAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAzCI,IAAAA,SAAS,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,YAAY,GAAAH,UAAA,CAAA,CAAA,CAAA;AAE9B,EAAA,IAAAI,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;AAET,EAAA,IAAMC,eAAe,GAAGC,YAAM,CAAC,IAAI,CAAC;EAEpCC,4BAAiB,CAACF,eAAe,EAAE,YAAA;IAAA,OAAMV,sBAAsB,CAAC,IAAI,CAAC;EAAA,CAAA,EAAE;AACrEa,IAAAA,OAAO,EAAE;AACX,GAAC,CAAC;AAEFC,EAAAA,eAAS,CAAC,YAAM;AACd,IAAA,IAAI,CAACJ,eAAe,CAACK,OAAO,EAAE;IAE9BL,eAAe,CAACK,OAAO,CAACvD,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC;AACtDkD,IAAAA,eAAe,CAACK,OAAO,CAACC,KAAK,EAAE;EACjC,CAAC,EAAE,EAAE,CAAC;AAEN,EAAA,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAG1H,CAAC,EAAI;IACzBA,CAAC,CAAC2H,eAAe,EAAE;IACnB3H,CAAC,CAAC6C,GAAG,KAAK,QAAQ,IAAI4D,sBAAsB,CAAC,IAAI,CAAC;EACpD,CAAC;EAED,oBAAOmB,uBAAY,cACjBC,eAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,iCAAiC;AAAAnK,IAAAA,QAAA,EAAA,CAC7CmJ,SAAS,iBAAIiB,cAAA,CAACC,kBAAO,EAAA;AAACF,MAAAA,SAAS,EAAC;KAAqC,CAAC,eACvED,eAAA,CAAA,KAAA,EAAA;AACEC,MAAAA,SAAS,EAAEG,2BAAU,CAAC,kBAAkB,EAAE;AACxC,QAAA,cAAc,EAAE,CAACnB;AACnB,OAAC,CAAE;AAAAnJ,MAAAA,QAAA,EAAA,CAEF,CAACmJ,SAAS,iBACTiB,cAAA,CAAA,KAAA,EAAA;AAAKD,QAAAA,SAAS,EAAC,cAAc;QAAAnK,QAAA,eAC3BoK,cAAA,CAACG,iBAAM,EAAA;AACLC,UAAAA,IAAI,EAAEC,aAAE;AACRC,UAAAA,OAAO,EAAC,WAAW;UACnBC,OAAO,EAAE,SAATA,OAAOA,GAAA;YAAA,OAAQ7B,sBAAsB,CAAC,IAAI,CAAC;AAAA,UAAA;SAC5C;OACE,CACN,eACDsB,cAAA,CAAA,KAAA,EAAA;AACEQ,QAAAA,GAAG,EAAErB,CAAC,CAAC,+CAA+C,CAAE;AACxDsB,QAAAA,GAAG,EAAErB,eAAgB;QACrBsB,GAAG,EAAEjC,mBAAmB,CAACiC,GAAI;AAC7BC,QAAAA,SAAS,EAAEhB,aAAc;QACzBiB,MAAM,EAAE,SAARA,MAAMA,GAAA;UAAA,OAAQ5B,YAAY,CAAC,KAAK,CAAC;AAAA,QAAA;AAAC,OACnC,CAAC,EACDP,mBAAmB,iBAClBuB,cAAA,CAAA,GAAA,EAAA;AAAGD,QAAAA,SAAS,EAAC,2BAA2B;QAAAnK,QAAA,EACrC6I,mBAAmB,CAACoC;AAAO,OAC3B,CACJ;AAAA,KACE,CAAC;AAAA,GACH,CAAC,EACNhF,QAAQ,CAACiF,IACX,CAAC;AACH,CAAC;;;;;ACpCD,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAAvC,IAAA,EASb;AAAA,EAAA,IAAAwC,YAAA,GAAAxC,IAAA,CARJjG,OAAO;AAAPA,IAAAA,OAAO,GAAAyI,YAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,YAAA;IAAAC,cAAA,GAAAzC,IAAA,CACZ5D,SAAS;AAATA,IAAAA,SAAS,GAAAqG,cAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,cAAA;IACdlB,SAAS,GAAAvB,IAAA,CAATuB,SAAS;IAAAmB,SAAA,GAAA1C,IAAA,CACT2C,IAAI;AAAJA,IAAAA,IAAI,GAAAD,SAAA,KAAA,MAAA,GAAGE,sBAAY,CAACC,KAAK,GAAAH,SAAA;IAAAI,kBAAA,GAAA9C,IAAA,CACzB+C,aAAa;AAAbA,IAAAA,aAAa,GAAAD,kBAAA,KAAA,MAAA,GAAGlM,oCAAoC,GAAAkM,kBAAA;IACpD3D,QAAQ,GAAAa,IAAA,CAARb,QAAQ;IACR4C,OAAO,GAAA/B,IAAA,CAAP+B,OAAO;AACJiB,IAAAA,UAAU,GAAAC,yCAAA,CAAAjD,IAAA,EAAAkD,SAAA,CAAA;AAEb,EAAA,IAAA/C,SAAA,GAAsDC,cAAQ,CAAC,IAAI,CAAC;IAAAC,UAAA,GAAAC,+BAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAA7DF,IAAAA,mBAAmB,GAAAI,UAAA,CAAA,CAAA,CAAA;AAAEH,IAAAA,sBAAsB,GAAAG,UAAA,CAAA,CAAA,CAAA;AAClD,EAAA,IAAMnB,gBAAgB,GAAG2B,YAAM,CAAC,IAAI,CAAC;AAErC,EAAA,IAAMsC,WAAW,GAAGxG,sBAAsB,CACxCT,mBAAmB,CACjBpC,qCAAqC,CAACsJ,sBAAe,CAACrJ,OAAO,CAAC,CAAC,EAC/DqC,SACF,CACF,CAAC;AACD,EAAA,IAAMiH,QAAQ,GAAGC,0BAAS,CAACD,QAAQ;AAEnC,EAAA,IAAME,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAGtE,KAAK,EAAI;IAClCD,uBAAuB,CAACC,KAAK,EAAEC,gBAAgB,CAAC+B,OAAO,EAAE9B,QAAQ,CAAC;AAElE4C,IAAAA,OAAO,aAAPA,OAAO,KAAA,MAAA,IAAPA,OAAO,CAAG9C,KAAK,CAAC;EAClB,CAAC;AAED,EAAA,IAAMuE,4BAA4B,GAAG,SAA/BA,4BAA4BA,GAAS;AAAA,IAAA,IAAAC,qBAAA;AACzC,IAAA,IAAMC,OAAO,GAAA,CAAAD,qBAAA,GAAGvE,gBAAgB,CAAC+B,OAAO,MAAA,IAAA,IAAAwC,qBAAA,KAAA,MAAA,GAAA,MAAA,GAAxBA,qBAAA,CAA0BpI,gBAAgB,CAAA,GAAA,CAAA7E,MAAA,CACpDP,yBAAyB,SAC/B,CAAC;AAEDyN,IAAAA,OAAO,CAACpI,OAAO,CAAC,UAAAqI,MAAM,EAAI;AACxB,MAAA,IAAMC,MAAM,GAAGvG,QAAQ,CAAC/F,aAAa,CAAC,KAAK,CAAC;MAC5CsM,MAAM,CAACrC,SAAS,GAAG,gCAAgC;AACnD,MAAA,IAAM3G,IAAI,GAAGiJ,iBAAU,CAACD,MAAM,CAAC;AAC/BhJ,MAAAA,IAAI,CAACkJ,MAAM,cACTtC,cAAA,CAACuC,sCAAqB,EAAA;AACpBpB,QAAAA,IAAI,EAAC,IAAI;QACTnL,KAAK,EAAEmM,MAAM,CAACpF,WAAY;AAC1BuD,QAAAA,OAAO,EAAC;AAAO,OAChB,CACH,CAAC;AACD6B,MAAAA,MAAM,CAAC/F,WAAW,CAACgG,MAAM,CAAC;AAC5B,IAAA,CAAC,CAAC;EACJ,CAAC;AAED,EAAA,IAAMI,sBAAsB,GAAG,SAAzBA,sBAAsBA,GAAS;AAAA,IAAA,IAAAC,sBAAA;AACnC,IAAA,IAAMC,UAAU,GAAA,CAAAD,sBAAA,GAAG/E,gBAAgB,CAAC+B,OAAO,MAAA,IAAA,IAAAgD,sBAAA,KAAA,MAAA,GAAA,MAAA,GAAxBA,sBAAA,CAA0B5I,gBAAgB,CAAA,GAAA,CAAA7E,MAAA,CACvDP,yBAAyB,YAC/B,CAAC;AAEDiO,IAAAA,UAAU,CAAC5I,OAAO,CAAC,UAAA6I,SAAS,EAAI;AAC9B,MAAA,IAAMC,KAAK,GAAGD,SAAS,CAACrE,aAAa,CAAC,KAAK,CAAC;AAC5C,MAAA,IAAMuE,IAAI,GAAGF,SAAS,CAACrE,aAAa,CAAC,GAAG,CAAC;MACzC,IAAIwE,WAAK,CAACF,KAAK,CAAC,IAAIE,WAAK,CAACD,IAAI,CAAC,EAAE;AAEjCF,MAAAA,SAAS,CAACI,gBAAgB,CAAC,OAAO,EAAE,UAAAtF,KAAK,EAAI;AAAA,QAAA,IAAAuF,qBAAA;QAC3CvF,KAAK,CAACwF,cAAc,EAAE;AACtB,QAAA,IAAMpC,OAAO,GAAA,CAAAmC,qBAAA,GAAGL,SAAS,CAACrE,aAAa,CAAC,YAAY,CAAC,MAAA,IAAA,IAAA0E,qBAAA,KAAA,MAAA,GAAA,MAAA,GAArCA,qBAAA,CAAuCE,SAAS;AAChExE,QAAAA,sBAAsB,CAAC;UAAEgC,GAAG,EAAEkC,KAAK,CAAClC,GAAG;AAAEG,UAAAA,OAAO,EAAPA;AAAQ,SAAC,CAAC;AACrD,MAAA,CAAC,CAAC;AACJ,IAAA,CAAC,CAAC;EACJ,CAAC;AAEDrB,EAAAA,eAAS,CAAC,YAAM;AACdwC,IAAAA,4BAA4B,EAAE;AAC9BQ,IAAAA,sBAAsB,EAAE;AACxBrE,IAAAA,sBAAsB,CAACT,gBAAgB,CAAC+B,OAAO,CAAC;AAChD/F,IAAAA,qBAAqB,CAACgE,gBAAgB,CAAC+B,OAAO,CAAC;IAC/C8B,aAAa,CAAClM,iBAAiB,IAC7BmH,gBAAgB,CAACkB,gBAAgB,CAAC+B,OAAO,CAAC;AAC9C,EAAA,CAAC,EAAE,CAAClH,OAAO,CAAC,CAAC;EAEb,oBACEuH,eAAA,CAAAqD,mBAAA,EAAA;IAAAvN,QAAA,EAAA,cACEoK,cAAA,CAAA,KAAA,EAAAoD,aAAA,CAAA;AACE,MAAA,aAAA,EAAY,sBAAsB;AAClC3C,MAAAA,GAAG,EAAE/C,gBAAiB;AACtBqC,MAAAA,SAAS,EAAEG,2BAAU,CAACzL,yBAAyB,EAAA4O,gCAAA,CAAAA,gCAAA,CAAA,EAAA,EAC5CtD,SAAS,EAAGA,SAAS,yBAAA/K,MAAA,CACCmM,IAAI,CAAA,EAAK,IAAI,CACrC,CAAE;AACHmC,MAAAA,uBAAuB,EAAE;AACvBC,QAAAA,MAAM,EAAE1B,QAAQ,CAACF,WAAW,EAAEjN,gBAAgB;OAC9C;AACF6L,MAAAA,OAAO,EAAEwB;KAAmB,EACxBP,UAAU,CACf,CAAC,EACD/C,mBAAmB,iBAClBuB,cAAA,CAACzB,YAAY,EAAA;AAAOE,MAAAA,mBAAmB,EAAnBA,mBAAmB;AAAEC,MAAAA,sBAAsB,EAAtBA;AAAsB,KAAK,CACrE;AAAA,GACD,CAAC;AAEP,CAAC;AAED,YAAA,aAAe8E,UAAI,CAACzC,aAAa,CAAC;;;;;"}
|
|
@@ -11,7 +11,7 @@ var neetoCist = require('@bigbinary/neeto-cist');
|
|
|
11
11
|
var Toastr = require('@bigbinary/neetoui/Toastr');
|
|
12
12
|
var ramda = require('ramda');
|
|
13
13
|
var reactI18next = require('react-i18next');
|
|
14
|
-
var reactFileIcon_esm = require('./chunk-
|
|
14
|
+
var reactFileIcon_esm = require('./chunk-Cr0FBhRs.cjs.js');
|
|
15
15
|
var i18n = require('i18next');
|
|
16
16
|
var LeftAlign = require('@bigbinary/neeto-icons/LeftAlign');
|
|
17
17
|
var CenterAlign = require('@bigbinary/neeto-icons/CenterAlign');
|
|
@@ -470,4 +470,4 @@ exports.buildImageOptions = buildImageOptions;
|
|
|
470
470
|
exports.convertToFileSize = convertToFileSize;
|
|
471
471
|
exports.getTabs = getTabs;
|
|
472
472
|
exports.useFileUploader = useFileUploader;
|
|
473
|
-
//# sourceMappingURL=chunk-
|
|
473
|
+
//# sourceMappingURL=chunk-CpQ8t9br.cjs.js.map
|