@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.
Files changed (113) hide show
  1. package/dist/.ready +1 -1
  2. package/dist/Attachments.js +3 -3
  3. package/dist/Editor.js +10 -10
  4. package/dist/EditorContent.js +4 -4
  5. package/dist/FormikEditor.js +10 -10
  6. package/dist/Menu.js +7 -7
  7. package/dist/{chunk-BfQ_Kj4i.js → chunk-AexVHCkr.js} +4 -4
  8. package/dist/{chunk-BfQ_Kj4i.js.map → chunk-AexVHCkr.js.map} +1 -1
  9. package/dist/{chunk-CRUXOawK.js → chunk-B5LsYrmv.js} +4 -4
  10. package/dist/{chunk-CRUXOawK.js.map → chunk-B5LsYrmv.js.map} +1 -1
  11. package/dist/chunk-BHi0J28T.js +1970 -0
  12. package/dist/chunk-BHi0J28T.js.map +1 -0
  13. package/dist/{chunk-CxFTIgDS.js → chunk-BIgc5m-h.js} +2 -2
  14. package/dist/{chunk-CxFTIgDS.js.map → chunk-BIgc5m-h.js.map} +1 -1
  15. package/dist/{chunk-BNyLNMnb.js → chunk-Bktpw5vs.js} +5 -5
  16. package/dist/{chunk-BNyLNMnb.js.map → chunk-Bktpw5vs.js.map} +1 -1
  17. package/dist/{chunk-lEnpEBRB.js → chunk-BozdxlzB.js} +5 -5
  18. package/dist/{chunk-lEnpEBRB.js.map → chunk-BozdxlzB.js.map} +1 -1
  19. package/dist/{chunk-BpMZjml2.js → chunk-C9H9LYpP.js} +2 -2
  20. package/dist/chunk-C9H9LYpP.js.map +1 -0
  21. package/dist/{chunk-DhFieQe2.js → chunk-CLjWv4gG.js} +4 -4
  22. package/dist/{chunk-DhFieQe2.js.map → chunk-CLjWv4gG.js.map} +1 -1
  23. package/dist/{chunk-D_Lgx0N7.js → chunk-C_4zmIBQ.js} +2 -2
  24. package/dist/{chunk-D_Lgx0N7.js.map → chunk-C_4zmIBQ.js.map} +1 -1
  25. package/dist/{chunk-YhV82e9I.js → chunk-CivYrffM.js} +6 -6
  26. package/dist/{chunk-YhV82e9I.js.map → chunk-CivYrffM.js.map} +1 -1
  27. package/dist/{chunk-BV_wep_Y.js → chunk-D37Dlp9s.js} +4 -4
  28. package/dist/{chunk-BV_wep_Y.js.map → chunk-D37Dlp9s.js.map} +1 -1
  29. package/dist/{chunk-DYRpf9PJ.js → chunk-DPx9v04U.js} +3 -3
  30. package/dist/{chunk-DYRpf9PJ.js.map → chunk-DPx9v04U.js.map} +1 -1
  31. package/dist/{chunk-7ioLE0kx.js → chunk-DcxOAiAp.js} +2 -2
  32. package/dist/{chunk-7ioLE0kx.js.map → chunk-DcxOAiAp.js.map} +1 -1
  33. package/dist/{chunk-DN9pYQV5.js → chunk-DqSrbxqC.js} +2 -2
  34. package/dist/{chunk-DN9pYQV5.js.map → chunk-DqSrbxqC.js.map} +1 -1
  35. package/dist/{chunk-BGx6BSFw.js → chunk-DwQ7NJtm.js} +4 -4
  36. package/dist/{chunk-BGx6BSFw.js.map → chunk-DwQ7NJtm.js.map} +1 -1
  37. package/dist/{chunk-Br5h7rjn.js → chunk-GA-wADEN.js} +3 -3
  38. package/dist/{chunk-Br5h7rjn.js.map → chunk-GA-wADEN.js.map} +1 -1
  39. package/dist/{chunk-DfH1lF5p.js → chunk-LtUevT4I.js} +2 -2
  40. package/dist/{chunk-DfH1lF5p.js.map → chunk-LtUevT4I.js.map} +1 -1
  41. package/dist/{chunk-sn8HEeT6.js → chunk-yBvbLjSM.js} +4 -4
  42. package/dist/{chunk-sn8HEeT6.js.map → chunk-yBvbLjSM.js.map} +1 -1
  43. package/dist/cjs/Attachments.cjs.js +3 -3
  44. package/dist/cjs/Editor.cjs.js +10 -10
  45. package/dist/cjs/EditorContent.cjs.js +4 -4
  46. package/dist/cjs/FormikEditor.cjs.js +10 -10
  47. package/dist/cjs/Menu.cjs.js +7 -7
  48. package/dist/cjs/{chunk-BAse0j9m.cjs.js → chunk-BfHU_Ynq.cjs.js} +4 -4
  49. package/dist/cjs/{chunk-BAse0j9m.cjs.js.map → chunk-BfHU_Ynq.cjs.js.map} +1 -1
  50. package/dist/cjs/{chunk-QnVNXaqt.cjs.js → chunk-CAaxrndK.cjs.js} +6 -6
  51. package/dist/cjs/{chunk-QnVNXaqt.cjs.js.map → chunk-CAaxrndK.cjs.js.map} +1 -1
  52. package/dist/cjs/{chunk-DRnP2LQe.cjs.js → chunk-CJIIbW7G.cjs.js} +2 -2
  53. package/dist/cjs/{chunk-DRnP2LQe.cjs.js.map → chunk-CJIIbW7G.cjs.js.map} +1 -1
  54. package/dist/cjs/{chunk-V1V-Gqfy.cjs.js → chunk-CKbuSSOi.cjs.js} +5 -5
  55. package/dist/cjs/{chunk-V1V-Gqfy.cjs.js.map → chunk-CKbuSSOi.cjs.js.map} +1 -1
  56. package/dist/cjs/{chunk-CQLQEN5P.cjs.js → chunk-CU6dMPZV.cjs.js} +2 -2
  57. package/dist/cjs/{chunk-CQLQEN5P.cjs.js.map → chunk-CU6dMPZV.cjs.js.map} +1 -1
  58. package/dist/cjs/{chunk-BPJBeVDI.cjs.js → chunk-C_XHzWXy.cjs.js} +2 -2
  59. package/dist/cjs/chunk-C_XHzWXy.cjs.js.map +1 -0
  60. package/dist/cjs/{chunk-bfmPXyQJ.cjs.js → chunk-CddQ0UHU.cjs.js} +3 -3
  61. package/dist/cjs/{chunk-bfmPXyQJ.cjs.js.map → chunk-CddQ0UHU.cjs.js.map} +1 -1
  62. package/dist/cjs/{chunk-BPLEmkMA.cjs.js → chunk-CfiRFXt2.cjs.js} +2 -2
  63. package/dist/cjs/{chunk-BPLEmkMA.cjs.js.map → chunk-CfiRFXt2.cjs.js.map} +1 -1
  64. package/dist/cjs/{chunk-78VpxO0R.cjs.js → chunk-CkSG3yNC.cjs.js} +4 -4
  65. package/dist/cjs/{chunk-78VpxO0R.cjs.js.map → chunk-CkSG3yNC.cjs.js.map} +1 -1
  66. package/dist/cjs/{chunk-CHk_Gq2n.cjs.js → chunk-CpQ8t9br.cjs.js} +2 -2
  67. package/dist/cjs/{chunk-CHk_Gq2n.cjs.js.map → chunk-CpQ8t9br.cjs.js.map} +1 -1
  68. package/dist/cjs/chunk-Cr0FBhRs.cjs.js +1990 -0
  69. package/dist/cjs/chunk-Cr0FBhRs.cjs.js.map +1 -0
  70. package/dist/cjs/{chunk-DGPpvE8O.cjs.js → chunk-Ct6vCCZ0.cjs.js} +4 -4
  71. package/dist/cjs/{chunk-DGPpvE8O.cjs.js.map → chunk-Ct6vCCZ0.cjs.js.map} +1 -1
  72. package/dist/cjs/{chunk-CwY6UgZq.cjs.js → chunk-CxKWZyHq.cjs.js} +3 -3
  73. package/dist/cjs/{chunk-CwY6UgZq.cjs.js.map → chunk-CxKWZyHq.cjs.js.map} +1 -1
  74. package/dist/cjs/{chunk-j4T5BDua.cjs.js → chunk-Df33Mipq.cjs.js} +5 -5
  75. package/dist/cjs/{chunk-j4T5BDua.cjs.js.map → chunk-Df33Mipq.cjs.js.map} +1 -1
  76. package/dist/cjs/{chunk-D86ONI5s.cjs.js → chunk-Df43FB6u.cjs.js} +4 -4
  77. package/dist/cjs/{chunk-D86ONI5s.cjs.js.map → chunk-Df43FB6u.cjs.js.map} +1 -1
  78. package/dist/cjs/{chunk--47DtZYn.cjs.js → chunk-DuwgLqpD.cjs.js} +4 -4
  79. package/dist/cjs/{chunk--47DtZYn.cjs.js.map → chunk-DuwgLqpD.cjs.js.map} +1 -1
  80. package/dist/cjs/{chunk-bxP1kilM.cjs.js → chunk-Dwv-JqJN.cjs.js} +2 -2
  81. package/dist/cjs/{chunk-bxP1kilM.cjs.js.map → chunk-Dwv-JqJN.cjs.js.map} +1 -1
  82. package/dist/cjs/{chunk-CBswWnmM.cjs.js → chunk-Niprqtd_.cjs.js} +3 -3
  83. package/dist/cjs/{chunk-CBswWnmM.cjs.js.map → chunk-Niprqtd_.cjs.js.map} +1 -1
  84. package/dist/cjs/index.cjs.js +12 -12
  85. package/dist/cjs/utils.cjs.js +6 -6
  86. package/dist/cjs/v2/Attachments.cjs.js +3 -3
  87. package/dist/cjs/v2/Editor.cjs.js +872 -236
  88. package/dist/cjs/v2/Editor.cjs.js.map +1 -1
  89. package/dist/cjs/v2/EditorContent.cjs.js +4 -4
  90. package/dist/cjs/v2/FormikEditor.cjs.js +9 -9
  91. package/dist/cjs/v2/Menu.cjs.js +6 -6
  92. package/dist/cjs/v2/index.cjs.js +11 -11
  93. package/dist/cjs/v2/utils.cjs.js +6 -6
  94. package/dist/editor-stats.html +1 -19
  95. package/dist/index.js +12 -12
  96. package/dist/utils.js +6 -6
  97. package/dist/v2/Attachments.js +3 -3
  98. package/dist/v2/Editor.js +872 -236
  99. package/dist/v2/Editor.js.map +1 -1
  100. package/dist/v2/EditorContent.js +4 -4
  101. package/dist/v2/FormikEditor.js +9 -9
  102. package/dist/v2/Menu.js +6 -6
  103. package/dist/v2/index.js +11 -11
  104. package/dist/v2/styles.css +1 -1
  105. package/dist/v2/styles.js +1 -1
  106. package/dist/v2/utils.js +6 -6
  107. package/package.json +6 -4
  108. package/dist/chunk-BpMZjml2.js.map +0 -1
  109. package/dist/chunk-OP-lX765.js +0 -8654
  110. package/dist/chunk-OP-lX765.js.map +0 -1
  111. package/dist/cjs/chunk-BPJBeVDI.cjs.js.map +0 -1
  112. package/dist/cjs/chunk-Bde8Sbb1.cjs.js +0 -8674
  113. package/dist/cjs/chunk-Bde8Sbb1.cjs.js.map +0 -1
@@ -8,8 +8,8 @@ import Button from '@bigbinary/neetoui/Button';
8
8
  import { isEmpty } from 'ramda';
9
9
  import { D as DocViewer, a as DocViewerRenderers } from './chunk-CeoqieEt.js';
10
10
  import { useTranslation, Trans } from 'react-i18next';
11
- import { c as convertToFileSize } from './chunk-D_Lgx0N7.js';
12
- import { d as downloadFile, c as checkPreviewAvailability, a as ATTACHMENTS_PREVIEW_DATA_CY } from './chunk-DhFieQe2.js';
11
+ import { c as convertToFileSize } from './chunk-C_4zmIBQ.js';
12
+ import { d as downloadFile, c as checkPreviewAvailability, a as ATTACHMENTS_PREVIEW_DATA_CY } from './chunk-CLjWv4gG.js';
13
13
  import { jsxs, jsx } from 'react/jsx-runtime';
14
14
  import './chunk-BFTU3MAI.js';
15
15
  import '@babel/runtime/helpers/toConsumableArray';
@@ -19,7 +19,7 @@ import '@babel/runtime/helpers/asyncToGenerator';
19
19
  import 'zustand/shallow';
20
20
  import 'axios';
21
21
  import '@bigbinary/neetoui/Toastr';
22
- import './chunk-OP-lX765.js';
22
+ import './chunk-BHi0J28T.js';
23
23
  import '@babel/runtime/helpers/defineProperty';
24
24
  import '@bigbinary/neeto-commons-frontend/react-utils';
25
25
  import 'zustand';
@@ -202,4 +202,4 @@ var Preview = function Preview(_ref) {
202
202
  };
203
203
 
204
204
  export { Preview as default };
205
- //# sourceMappingURL=chunk-BV_wep_Y.js.map
205
+ //# sourceMappingURL=chunk-D37Dlp9s.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunk-BV_wep_Y.js","sources":["../app/javascript/src/components/Attachments/Preview.jsx"],"sourcesContent":["import { useEffect, useRef } from \"react\";\n\nimport { findIndexBy, truncate } from \"neetocist\";\nimport { Left, Right } from \"neetoicons\";\nimport { Modal, Typography, Button } from \"neetoui\";\nimport { isEmpty } from \"ramda\";\nimport DocViewer, { DocViewerRenderers } from \"react-doc-viewer\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { convertToFileSize } from \"components/Editor/MediaUploader/utils\";\n\nimport { ATTACHMENTS_PREVIEW_DATA_CY } from \"./constants\";\nimport { checkPreviewAvailability, downloadFile } from \"./utils\";\n\nconst Preview = ({\n onClose,\n attachments,\n selectedAttachment,\n setSelectedAttachment,\n setDidFetchPreviewBundle,\n}) => {\n const { t } = useTranslation();\n const downloadRef = useRef(null);\n\n const {\n filename = \"\",\n contentType = null,\n url = \"\",\n signedId = \"\",\n size = undefined,\n previewUrl = null,\n } = selectedAttachment;\n\n const attachmentIndex = findIndexBy({ signedId }, attachments);\n\n const handleRightArrowClick = () => {\n const newIndex = (attachmentIndex + 1) % attachments.length;\n setSelectedAttachment(attachments[newIndex]);\n downloadRef.current?.focus();\n };\n\n const handleLeftArrowClick = () => {\n const newIndex =\n (attachmentIndex - 1 + attachments.length) % attachments.length;\n setSelectedAttachment(attachments[newIndex]);\n downloadRef.current?.focus();\n };\n\n const handleKeyDown = event => {\n if (event.key === \"ArrowRight\") {\n handleRightArrowClick();\n } else if (event.key === \"ArrowLeft\") {\n handleLeftArrowClick();\n }\n };\n\n useEffect(() => {\n setDidFetchPreviewBundle(true);\n }, []);\n\n const handleDownload = () => downloadFile(url, filename);\n\n const setPreview = () => {\n const isPreviewAvailable = checkPreviewAvailability(\n contentType,\n previewUrl\n );\n\n if (isPreviewAvailable) {\n switch (contentType.split(\"/\")[0]) {\n case \"image\":\n return (\n <img\n data-testid={ATTACHMENTS_PREVIEW_DATA_CY}\n src={previewUrl || url}\n />\n );\n case \"video\":\n return (\n <video\n controls\n data-testid={ATTACHMENTS_PREVIEW_DATA_CY}\n src={url}\n />\n );\n case \"application\":\n case \"text\":\n if (contentType === \"application/pdf\") {\n return (\n <iframe\n data-testid={ATTACHMENTS_PREVIEW_DATA_CY}\n src={url}\n width=\"100%\"\n />\n );\n }\n\n return (\n <DocViewer\n className=\"ne-attachments-preview__body-docviewer\"\n data-testid={ATTACHMENTS_PREVIEW_DATA_CY}\n documents={[{ uri: url, fileType: contentType }]}\n pluginRenderers={DocViewerRenderers}\n config={{\n header: { disableHeader: true, disableFileName: true },\n }}\n />\n );\n default:\n return null;\n }\n }\n\n return (\n <Typography>\n <Trans\n i18nKey=\"neetoEditor.attachments.noPreview\"\n components={{\n span: (\n <span\n className=\"ne-attachments-preview__body-download\"\n onClick={handleDownload}\n />\n ),\n }}\n />\n </Typography>\n );\n };\n\n return (\n <Modal\n {...{ onClose }}\n className=\"ne-attachments-preview\"\n isOpen={!isEmpty(selectedAttachment)}\n size=\"fullScreen\"\n onKeyDown={handleKeyDown}\n >\n <Modal.Header className=\"ne-attachments-preview__header\">\n <div className=\"ne-attachments-preview__header__fileinfo\">\n <Typography style=\"h4\">{truncate(filename, 25)}</Typography>\n <Typography style=\"body2\">{convertToFileSize(size)}</Typography>\n </div>\n <Button\n data-testid=\"download-preview-button\"\n label={t(\"neetoEditor.common.download\")}\n ref={downloadRef}\n style=\"link\"\n onClick={handleDownload}\n />\n </Modal.Header>\n <Modal.Body className=\"ne-attachments-preview__body\">\n <Button\n className=\"ne-attachments-preview__body-left\"\n icon={Left}\n size=\"large\"\n style=\"tertiary\"\n onClick={handleLeftArrowClick}\n />\n <Button\n className=\"ne-attachments-preview__body-right\"\n icon={Right}\n size=\"large\"\n style=\"tertiary\"\n onClick={handleRightArrowClick}\n />\n {setPreview()}\n </Modal.Body>\n </Modal>\n );\n};\n\nexport default Preview;\n"],"names":["Preview","_ref","onClose","attachments","selectedAttachment","setSelectedAttachment","setDidFetchPreviewBundle","_useTranslation","useTranslation","t","downloadRef","useRef","_selectedAttachment$f","filename","_selectedAttachment$c","contentType","_selectedAttachment$u","url","_selectedAttachment$s","signedId","_selectedAttachment$s2","size","undefined","_selectedAttachment$p","previewUrl","attachmentIndex","findIndexBy","handleRightArrowClick","_downloadRef$current","newIndex","length","current","focus","handleLeftArrowClick","_downloadRef$current2","handleKeyDown","event","key","useEffect","handleDownload","downloadFile","setPreview","isPreviewAvailable","checkPreviewAvailability","split","_jsx","ATTACHMENTS_PREVIEW_DATA_CY","src","controls","width","DocViewer","className","documents","uri","fileType","pluginRenderers","DocViewerRenderers","config","header","disableHeader","disableFileName","Typography","children","Trans","i18nKey","components","span","onClick","_jsxs","Modal","isOpen","isEmpty","onKeyDown","Header","style","truncate","convertToFileSize","Button","label","ref","Body","icon","Left","Right"],"mappings":"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"}
1
+ {"version":3,"file":"chunk-D37Dlp9s.js","sources":["../app/javascript/src/components/Attachments/Preview.jsx"],"sourcesContent":["import { useEffect, useRef } from \"react\";\n\nimport { findIndexBy, truncate } from \"neetocist\";\nimport { Left, Right } from \"neetoicons\";\nimport { Modal, Typography, Button } from \"neetoui\";\nimport { isEmpty } from \"ramda\";\nimport DocViewer, { DocViewerRenderers } from \"react-doc-viewer\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { convertToFileSize } from \"components/Editor/MediaUploader/utils\";\n\nimport { ATTACHMENTS_PREVIEW_DATA_CY } from \"./constants\";\nimport { checkPreviewAvailability, downloadFile } from \"./utils\";\n\nconst Preview = ({\n onClose,\n attachments,\n selectedAttachment,\n setSelectedAttachment,\n setDidFetchPreviewBundle,\n}) => {\n const { t } = useTranslation();\n const downloadRef = useRef(null);\n\n const {\n filename = \"\",\n contentType = null,\n url = \"\",\n signedId = \"\",\n size = undefined,\n previewUrl = null,\n } = selectedAttachment;\n\n const attachmentIndex = findIndexBy({ signedId }, attachments);\n\n const handleRightArrowClick = () => {\n const newIndex = (attachmentIndex + 1) % attachments.length;\n setSelectedAttachment(attachments[newIndex]);\n downloadRef.current?.focus();\n };\n\n const handleLeftArrowClick = () => {\n const newIndex =\n (attachmentIndex - 1 + attachments.length) % attachments.length;\n setSelectedAttachment(attachments[newIndex]);\n downloadRef.current?.focus();\n };\n\n const handleKeyDown = event => {\n if (event.key === \"ArrowRight\") {\n handleRightArrowClick();\n } else if (event.key === \"ArrowLeft\") {\n handleLeftArrowClick();\n }\n };\n\n useEffect(() => {\n setDidFetchPreviewBundle(true);\n }, []);\n\n const handleDownload = () => downloadFile(url, filename);\n\n const setPreview = () => {\n const isPreviewAvailable = checkPreviewAvailability(\n contentType,\n previewUrl\n );\n\n if (isPreviewAvailable) {\n switch (contentType.split(\"/\")[0]) {\n case \"image\":\n return (\n <img\n data-testid={ATTACHMENTS_PREVIEW_DATA_CY}\n src={previewUrl || url}\n />\n );\n case \"video\":\n return (\n <video\n controls\n data-testid={ATTACHMENTS_PREVIEW_DATA_CY}\n src={url}\n />\n );\n case \"application\":\n case \"text\":\n if (contentType === \"application/pdf\") {\n return (\n <iframe\n data-testid={ATTACHMENTS_PREVIEW_DATA_CY}\n src={url}\n width=\"100%\"\n />\n );\n }\n\n return (\n <DocViewer\n className=\"ne-attachments-preview__body-docviewer\"\n data-testid={ATTACHMENTS_PREVIEW_DATA_CY}\n documents={[{ uri: url, fileType: contentType }]}\n pluginRenderers={DocViewerRenderers}\n config={{\n header: { disableHeader: true, disableFileName: true },\n }}\n />\n );\n default:\n return null;\n }\n }\n\n return (\n <Typography>\n <Trans\n i18nKey=\"neetoEditor.attachments.noPreview\"\n components={{\n span: (\n <span\n className=\"ne-attachments-preview__body-download\"\n onClick={handleDownload}\n />\n ),\n }}\n />\n </Typography>\n );\n };\n\n return (\n <Modal\n {...{ onClose }}\n className=\"ne-attachments-preview\"\n isOpen={!isEmpty(selectedAttachment)}\n size=\"fullScreen\"\n onKeyDown={handleKeyDown}\n >\n <Modal.Header className=\"ne-attachments-preview__header\">\n <div className=\"ne-attachments-preview__header__fileinfo\">\n <Typography style=\"h4\">{truncate(filename, 25)}</Typography>\n <Typography style=\"body2\">{convertToFileSize(size)}</Typography>\n </div>\n <Button\n data-testid=\"download-preview-button\"\n label={t(\"neetoEditor.common.download\")}\n ref={downloadRef}\n style=\"link\"\n onClick={handleDownload}\n />\n </Modal.Header>\n <Modal.Body className=\"ne-attachments-preview__body\">\n <Button\n className=\"ne-attachments-preview__body-left\"\n icon={Left}\n size=\"large\"\n style=\"tertiary\"\n onClick={handleLeftArrowClick}\n />\n <Button\n className=\"ne-attachments-preview__body-right\"\n icon={Right}\n size=\"large\"\n style=\"tertiary\"\n onClick={handleRightArrowClick}\n />\n {setPreview()}\n </Modal.Body>\n </Modal>\n );\n};\n\nexport default Preview;\n"],"names":["Preview","_ref","onClose","attachments","selectedAttachment","setSelectedAttachment","setDidFetchPreviewBundle","_useTranslation","useTranslation","t","downloadRef","useRef","_selectedAttachment$f","filename","_selectedAttachment$c","contentType","_selectedAttachment$u","url","_selectedAttachment$s","signedId","_selectedAttachment$s2","size","undefined","_selectedAttachment$p","previewUrl","attachmentIndex","findIndexBy","handleRightArrowClick","_downloadRef$current","newIndex","length","current","focus","handleLeftArrowClick","_downloadRef$current2","handleKeyDown","event","key","useEffect","handleDownload","downloadFile","setPreview","isPreviewAvailable","checkPreviewAvailability","split","_jsx","ATTACHMENTS_PREVIEW_DATA_CY","src","controls","width","DocViewer","className","documents","uri","fileType","pluginRenderers","DocViewerRenderers","config","header","disableHeader","disableFileName","Typography","children","Trans","i18nKey","components","span","onClick","_jsxs","Modal","isOpen","isEmpty","onKeyDown","Header","style","truncate","convertToFileSize","Button","label","ref","Body","icon","Left","Right"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,IAAMA,OAAO,GAAG,SAAVA,OAAOA,CAAAC,IAAA,EAMP;AAAA,EAAA,IALJC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IACPC,WAAW,GAAAF,IAAA,CAAXE,WAAW;IACXC,kBAAkB,GAAAH,IAAA,CAAlBG,kBAAkB;IAClBC,qBAAqB,GAAAJ,IAAA,CAArBI,qBAAqB;IACrBC,wBAAwB,GAAAL,IAAA,CAAxBK,wBAAwB;AAExB,EAAA,IAAAC,eAAA,GAAcC,cAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;AACT,EAAA,IAAMC,WAAW,GAAGC,MAAM,CAAC,IAAI,CAAC;AAEhC,EAAA,IAAAC,qBAAA,GAOIR,kBAAkB,CANpBS,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,qBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,qBAAA;IAAAE,qBAAA,GAMXV,kBAAkB,CALpBW,WAAW;AAAXA,IAAAA,WAAW,GAAAD,qBAAA,KAAA,MAAA,GAAG,IAAI,GAAAA,qBAAA;IAAAE,qBAAA,GAKhBZ,kBAAkB,CAJpBa,GAAG;AAAHA,IAAAA,GAAG,GAAAD,qBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,qBAAA;IAAAE,qBAAA,GAINd,kBAAkB,CAHpBe,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,qBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,qBAAA;IAAAE,sBAAA,GAGXhB,kBAAkB,CAFpBiB,IAAI;AAAJA,IAAAA,IAAI,GAAAD,sBAAA,KAAA,MAAA,GAAGE,SAAS,GAAAF,sBAAA;IAAAG,qBAAA,GAEdnB,kBAAkB,CADpBoB,UAAU;AAAVA,IAAAA,UAAU,GAAAD,qBAAA,KAAA,MAAA,GAAG,IAAI,GAAAA,qBAAA;EAGnB,IAAME,eAAe,GAAGC,WAAW,CAAC;AAAEP,IAAAA,QAAQ,EAARA;GAAU,EAAEhB,WAAW,CAAC;AAE9D,EAAA,IAAMwB,qBAAqB,GAAG,SAAxBA,qBAAqBA,GAAS;AAAA,IAAA,IAAAC,oBAAA;IAClC,IAAMC,QAAQ,GAAG,CAACJ,eAAe,GAAG,CAAC,IAAItB,WAAW,CAAC2B,MAAM;AAC3DzB,IAAAA,qBAAqB,CAACF,WAAW,CAAC0B,QAAQ,CAAC,CAAC;AAC5C,IAAA,CAAAD,oBAAA,GAAAlB,WAAW,CAACqB,OAAO,MAAA,IAAA,IAAAH,oBAAA,KAAA,MAAA,IAAnBA,oBAAA,CAAqBI,KAAK,EAAE;EAC9B,CAAC;AAED,EAAA,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,GAAS;AAAA,IAAA,IAAAC,qBAAA;AACjC,IAAA,IAAML,QAAQ,GACZ,CAACJ,eAAe,GAAG,CAAC,GAAGtB,WAAW,CAAC2B,MAAM,IAAI3B,WAAW,CAAC2B,MAAM;AACjEzB,IAAAA,qBAAqB,CAACF,WAAW,CAAC0B,QAAQ,CAAC,CAAC;AAC5C,IAAA,CAAAK,qBAAA,GAAAxB,WAAW,CAACqB,OAAO,MAAA,IAAA,IAAAG,qBAAA,KAAA,MAAA,IAAnBA,qBAAA,CAAqBF,KAAK,EAAE;EAC9B,CAAC;AAED,EAAA,IAAMG,aAAa,GAAG,SAAhBA,aAAaA,CAAGC,KAAK,EAAI;AAC7B,IAAA,IAAIA,KAAK,CAACC,GAAG,KAAK,YAAY,EAAE;AAC9BV,MAAAA,qBAAqB,EAAE;AACzB,IAAA,CAAC,MAAM,IAAIS,KAAK,CAACC,GAAG,KAAK,WAAW,EAAE;AACpCJ,MAAAA,oBAAoB,EAAE;AACxB,IAAA;EACF,CAAC;AAEDK,EAAAA,SAAS,CAAC,YAAM;IACdhC,wBAAwB,CAAC,IAAI,CAAC;EAChC,CAAC,EAAE,EAAE,CAAC;AAEN,EAAA,IAAMiC,cAAc,GAAG,SAAjBA,cAAcA,GAAA;AAAA,IAAA,OAASC,YAAY,CAACvB,GAAG,EAAEJ,QAAQ,CAAC;AAAA,EAAA,CAAA;AAExD,EAAA,IAAM4B,UAAU,GAAG,SAAbA,UAAUA,GAAS;AACvB,IAAA,IAAMC,kBAAkB,GAAGC,wBAAwB,CACjD5B,WAAW,EACXS,UACF,CAAC;AAED,IAAA,IAAIkB,kBAAkB,EAAE;MACtB,QAAQ3B,WAAW,CAAC6B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC/B,QAAA,KAAK,OAAO;AACV,UAAA,oBACEC,GAAA,CAAA,KAAA,EAAA;AACE,YAAA,aAAA,EAAaC,2BAA4B;YACzCC,GAAG,EAAEvB,UAAU,IAAIP;AAAI,WACxB,CAAC;AAEN,QAAA,KAAK,OAAO;AACV,UAAA,oBACE4B,GAAA,CAAA,OAAA,EAAA;YACEG,QAAQ,EAAA,IAAA;AACR,YAAA,aAAA,EAAaF,2BAA4B;AACzCC,YAAAA,GAAG,EAAE9B;AAAI,WACV,CAAC;AAEN,QAAA,KAAK,aAAa;AAClB,QAAA,KAAK,MAAM;UACT,IAAIF,WAAW,KAAK,iBAAiB,EAAE;AACrC,YAAA,oBACE8B,GAAA,CAAA,QAAA,EAAA;AACE,cAAA,aAAA,EAAaC,2BAA4B;AACzCC,cAAAA,GAAG,EAAE9B,GAAI;AACTgC,cAAAA,KAAK,EAAC;AAAM,aACb,CAAC;AAEN,UAAA;UAEA,oBACEJ,GAAA,CAACK,SAAS,EAAA;AACRC,YAAAA,SAAS,EAAC,wCAAwC;AAClD,YAAA,aAAA,EAAaL,2BAA4B;AACzCM,YAAAA,SAAS,EAAE,CAAC;AAAEC,cAAAA,GAAG,EAAEpC,GAAG;AAAEqC,cAAAA,QAAQ,EAAEvC;AAAY,aAAC,CAAE;AACjDwC,YAAAA,eAAe,EAAEC,kBAAmB;AACpCC,YAAAA,MAAM,EAAE;AACNC,cAAAA,MAAM,EAAE;AAAEC,gBAAAA,aAAa,EAAE,IAAI;AAAEC,gBAAAA,eAAe,EAAE;AAAK;AACvD;AAAE,WACH,CAAC;AAEN,QAAA;AACE,UAAA,OAAO,IAAI;AACf;AACF,IAAA;IAEA,oBACEf,GAAA,CAACgB,UAAU,EAAA;MAAAC,QAAA,eACTjB,GAAA,CAACkB,KAAK,EAAA;AACJC,QAAAA,OAAO,EAAC,mCAAmC;AAC3CC,QAAAA,UAAU,EAAE;AACVC,UAAAA,IAAI,eACFrB,GAAA,CAAA,MAAA,EAAA;AACEM,YAAAA,SAAS,EAAC,uCAAuC;AACjDgB,YAAAA,OAAO,EAAE5B;WACV;AAEL;OACD;AAAC,KACQ,CAAC;EAEjB,CAAC;EAED,oBACE6B,IAAA,CAACC,KAAK,EAAA;AACEnE,IAAAA,OAAO,EAAPA,OAAO;AACbiD,IAAAA,SAAS,EAAC,wBAAwB;AAClCmB,IAAAA,MAAM,EAAE,CAACC,OAAO,CAACnE,kBAAkB,CAAE;AACrCiB,IAAAA,IAAI,EAAC,YAAY;AACjBmD,IAAAA,SAAS,EAAErC,aAAc;AAAA2B,IAAAA,QAAA,EAAA,cAEzBM,IAAA,CAACC,KAAK,CAACI,MAAM,EAAA;AAACtB,MAAAA,SAAS,EAAC,gCAAgC;AAAAW,MAAAA,QAAA,gBACtDM,IAAA,CAAA,KAAA,EAAA;AAAKjB,QAAAA,SAAS,EAAC,0CAA0C;QAAAW,QAAA,EAAA,cACvDjB,GAAA,CAACgB,UAAU,EAAA;AAACa,UAAAA,KAAK,EAAC,IAAI;AAAAZ,UAAAA,QAAA,EAAEa,QAAQ,CAAC9D,QAAQ,EAAE,EAAE;AAAC,SAAa,CAAC,eAC5DgC,GAAA,CAACgB,UAAU,EAAA;AAACa,UAAAA,KAAK,EAAC,OAAO;UAAAZ,QAAA,EAAEc,iBAAiB,CAACvD,IAAI;AAAC,SAAa,CAAC;AAAA,OAC7D,CAAC,eACNwB,GAAA,CAACgC,MAAM,EAAA;AACL,QAAA,aAAA,EAAY,yBAAyB;AACrCC,QAAAA,KAAK,EAAErE,CAAC,CAAC,6BAA6B,CAAE;AACxCsE,QAAAA,GAAG,EAAErE,WAAY;AACjBgE,QAAAA,KAAK,EAAC,MAAM;AACZP,QAAAA,OAAO,EAAE5B;AAAe,OACzB,CAAC;AAAA,KACU,CAAC,eACf6B,IAAA,CAACC,KAAK,CAACW,IAAI,EAAA;AAAC7B,MAAAA,SAAS,EAAC,8BAA8B;MAAAW,QAAA,EAAA,cAClDjB,GAAA,CAACgC,MAAM,EAAA;AACL1B,QAAAA,SAAS,EAAC,mCAAmC;AAC7C8B,QAAAA,IAAI,EAAEC,IAAK;AACX7D,QAAAA,IAAI,EAAC,OAAO;AACZqD,QAAAA,KAAK,EAAC,UAAU;AAChBP,QAAAA,OAAO,EAAElC;AAAqB,OAC/B,CAAC,eACFY,GAAA,CAACgC,MAAM,EAAA;AACL1B,QAAAA,SAAS,EAAC,oCAAoC;AAC9C8B,QAAAA,IAAI,EAAEE,KAAM;AACZ9D,QAAAA,IAAI,EAAC,OAAO;AACZqD,QAAAA,KAAK,EAAC,UAAU;AAChBP,QAAAA,OAAO,EAAExC;AAAsB,OAChC,CAAC,EACDc,UAAU,EAAE;AAAA,KACH,CAAC;AAAA,GACR,CAAC;AAEZ;;;;"}
@@ -1,9 +1,9 @@
1
1
  import { createElement } from 'react';
2
- import { H as HighlightJS } from './chunk-7ioLE0kx.js';
2
+ import { H as HighlightJS } from './chunk-DcxOAiAp.js';
3
3
  import { findBy } from '@bigbinary/neeto-cist';
4
4
  import { isEmpty } from 'ramda';
5
5
  import { renderToString } from 'react-dom/server';
6
- import { V as VARIABLE_SPAN_REGEX, l as lowlight, C as CODE_BLOCK_REGEX, L as LANGUAGE_LIST } from './chunk-DfH1lF5p.js';
6
+ import { V as VARIABLE_SPAN_REGEX, l as lowlight, C as CODE_BLOCK_REGEX, L as LANGUAGE_LIST } from './chunk-LtUevT4I.js';
7
7
 
8
8
  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; } } }; }
9
9
  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; } }
@@ -132,4 +132,4 @@ var convertPlainTextToHtml = function convertPlainTextToHtml(htmlString) {
132
132
  };
133
133
 
134
134
  export { applySyntaxHighlightingAndLineNumbers as a, applyLineHighlighting as b, convertPlainTextToHtml as c, substituteVariables as s };
135
- //# sourceMappingURL=chunk-DYRpf9PJ.js.map
135
+ //# sourceMappingURL=chunk-DPx9v04U.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunk-DYRpf9PJ.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(/&gt;/g, \">\").replace(/&lt;/g, \"<\").replace(/&amp;/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-DPx9v04U.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(/&gt;/g, \">\").replace(/&lt;/g, \"<\").replace(/&amp;/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,5 +1,5 @@
1
1
  import { g as getDefaultExportFromCjs } from './chunk-BFTU3MAI.js';
2
- import { c as core } from './chunk-DfH1lF5p.js';
2
+ import { c as core } from './chunk-LtUevT4I.js';
3
3
 
4
4
  /*
5
5
  Language: HTML, XML
@@ -12507,4 +12507,4 @@ var common = hljs;
12507
12507
  var HighlightJS = /*@__PURE__*/getDefaultExportFromCjs(common);
12508
12508
 
12509
12509
  export { HighlightJS as H };
12510
- //# sourceMappingURL=chunk-7ioLE0kx.js.map
12510
+ //# sourceMappingURL=chunk-DcxOAiAp.js.map