@bigbinary/neeto-editor-frontend 2.2.3 → 2.2.5-beta1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/dist/.ready +1 -1
  2. package/dist/Attachments.js +3 -3
  3. package/dist/Editor.js +4 -4
  4. package/dist/FormikEditor.js +4 -4
  5. package/dist/Menu.js +3 -3
  6. package/dist/{chunk-BfQ_Kj4i.js → chunk-AexVHCkr.js} +4 -4
  7. package/dist/{chunk-BfQ_Kj4i.js.map → chunk-AexVHCkr.js.map} +1 -1
  8. package/dist/chunk-BHi0J28T.js +1970 -0
  9. package/dist/chunk-BHi0J28T.js.map +1 -0
  10. package/dist/{chunk-CxFTIgDS.js → chunk-BIgc5m-h.js} +2 -2
  11. package/dist/{chunk-CxFTIgDS.js.map → chunk-BIgc5m-h.js.map} +1 -1
  12. package/dist/{chunk-DGsiNcMa.js → chunk-Bktpw5vs.js} +3 -3
  13. package/dist/{chunk-DGsiNcMa.js.map → chunk-Bktpw5vs.js.map} +1 -1
  14. package/dist/{chunk-DhFieQe2.js → chunk-CLjWv4gG.js} +4 -4
  15. package/dist/{chunk-DhFieQe2.js.map → chunk-CLjWv4gG.js.map} +1 -1
  16. package/dist/{chunk-D_Lgx0N7.js → chunk-C_4zmIBQ.js} +2 -2
  17. package/dist/{chunk-D_Lgx0N7.js.map → chunk-C_4zmIBQ.js.map} +1 -1
  18. package/dist/{chunk-CcLntzzh.js → chunk-CivYrffM.js} +3 -3
  19. package/dist/{chunk-CcLntzzh.js.map → chunk-CivYrffM.js.map} +1 -1
  20. package/dist/{chunk-BV_wep_Y.js → chunk-D37Dlp9s.js} +4 -4
  21. package/dist/{chunk-BV_wep_Y.js.map → chunk-D37Dlp9s.js.map} +1 -1
  22. package/dist/{chunk-BGx6BSFw.js → chunk-DwQ7NJtm.js} +4 -4
  23. package/dist/{chunk-BGx6BSFw.js.map → chunk-DwQ7NJtm.js.map} +1 -1
  24. package/dist/cjs/Attachments.cjs.js +3 -3
  25. package/dist/cjs/Editor.cjs.js +4 -4
  26. package/dist/cjs/FormikEditor.cjs.js +4 -4
  27. package/dist/cjs/Menu.cjs.js +3 -3
  28. package/dist/cjs/{chunk-BAse0j9m.cjs.js → chunk-BfHU_Ynq.cjs.js} +4 -4
  29. package/dist/cjs/{chunk-BAse0j9m.cjs.js.map → chunk-BfHU_Ynq.cjs.js.map} +1 -1
  30. package/dist/cjs/{chunk-hjJXR4bM.cjs.js → chunk-CAaxrndK.cjs.js} +3 -3
  31. package/dist/cjs/{chunk-hjJXR4bM.cjs.js.map → chunk-CAaxrndK.cjs.js.map} +1 -1
  32. package/dist/cjs/{chunk-C-I6s_l9.cjs.js → chunk-CKbuSSOi.cjs.js} +3 -3
  33. package/dist/cjs/{chunk-C-I6s_l9.cjs.js.map → chunk-CKbuSSOi.cjs.js.map} +1 -1
  34. package/dist/cjs/{chunk-BPLEmkMA.cjs.js → chunk-CfiRFXt2.cjs.js} +2 -2
  35. package/dist/cjs/{chunk-BPLEmkMA.cjs.js.map → chunk-CfiRFXt2.cjs.js.map} +1 -1
  36. package/dist/cjs/{chunk-CHk_Gq2n.cjs.js → chunk-CpQ8t9br.cjs.js} +2 -2
  37. package/dist/cjs/{chunk-CHk_Gq2n.cjs.js.map → chunk-CpQ8t9br.cjs.js.map} +1 -1
  38. package/dist/cjs/chunk-Cr0FBhRs.cjs.js +1990 -0
  39. package/dist/cjs/chunk-Cr0FBhRs.cjs.js.map +1 -0
  40. package/dist/cjs/{chunk-DGPpvE8O.cjs.js → chunk-Ct6vCCZ0.cjs.js} +4 -4
  41. package/dist/cjs/{chunk-DGPpvE8O.cjs.js.map → chunk-Ct6vCCZ0.cjs.js.map} +1 -1
  42. package/dist/cjs/{chunk-D86ONI5s.cjs.js → chunk-Df43FB6u.cjs.js} +4 -4
  43. package/dist/cjs/{chunk-D86ONI5s.cjs.js.map → chunk-Df43FB6u.cjs.js.map} +1 -1
  44. package/dist/cjs/{chunk--47DtZYn.cjs.js → chunk-DuwgLqpD.cjs.js} +4 -4
  45. package/dist/cjs/{chunk--47DtZYn.cjs.js.map → chunk-DuwgLqpD.cjs.js.map} +1 -1
  46. package/dist/cjs/index.cjs.js +4 -4
  47. package/dist/cjs/v2/Attachments.cjs.js +3 -3
  48. package/dist/cjs/v2/Editor.cjs.js +4 -4
  49. package/dist/cjs/v2/FormikEditor.cjs.js +4 -4
  50. package/dist/cjs/v2/Menu.cjs.js +3 -3
  51. package/dist/cjs/v2/index.cjs.js +4 -4
  52. package/dist/editor-stats.html +1 -19
  53. package/dist/index.js +4 -4
  54. package/dist/v2/Attachments.js +3 -3
  55. package/dist/v2/Editor.js +4 -4
  56. package/dist/v2/FormikEditor.js +4 -4
  57. package/dist/v2/Menu.js +3 -3
  58. package/dist/v2/index.js +4 -4
  59. package/package.json +7 -6
  60. package/dist/chunk-OP-lX765.js +0 -8654
  61. package/dist/chunk-OP-lX765.js.map +0 -1
  62. package/dist/cjs/chunk-Bde8Sbb1.cjs.js +0 -8674
  63. package/dist/cjs/chunk-Bde8Sbb1.cjs.js.map +0 -1
package/dist/.ready CHANGED
@@ -1 +1 @@
1
- Built at 2026-10-23T11:18:51.400Z
1
+ Built at 2026-10-24T22:50:27.124Z
@@ -9,9 +9,9 @@ import '@bigbinary/neetoui/Button';
9
9
  import '@bigbinary/neetoui/Toastr';
10
10
  import 'ramda';
11
11
  import 'react-i18next';
12
- import './chunk-OP-lX765.js';
13
- import './chunk-D_Lgx0N7.js';
14
- export { A as default } from './chunk-DhFieQe2.js';
12
+ import './chunk-BHi0J28T.js';
13
+ import './chunk-C_4zmIBQ.js';
14
+ export { A as default } from './chunk-CLjWv4gG.js';
15
15
  import 'react/jsx-runtime';
16
16
  import '@bigbinary/neeto-commons-frontend/react-utils';
17
17
  import 'zustand';
package/dist/Editor.js CHANGED
@@ -19,7 +19,7 @@ import ReactDOM from 'react-dom/server';
19
19
  import { l as lowlight, d as decodeHtmlEntities, r as removeEmptyTags } from './chunk-LtUevT4I.js';
20
20
  import { L as LINK_VALIDATION_SCHEMA, D as DEFAULT_EDITOR_OPTIONS } from './chunk-CNIDH-FD.js';
21
21
  import Megaphone from '@bigbinary/neeto-icons/misc/Megaphone';
22
- import { C as CALLOUT_TYPES, E as EmojiPickerMenu, v as validateUrl, g as getLinkPopoverPosition, M as Menu$4, a as MenuDynamicVariables, b as MediaUploader, L as LinkAddPopOver } from './chunk-DGsiNcMa.js';
22
+ import { C as CALLOUT_TYPES, E as EmojiPickerMenu, v as validateUrl, g as getLinkPopoverPosition, M as Menu$4, a as MenuDynamicVariables, b as MediaUploader, L as LinkAddPopOver } from './chunk-Bktpw5vs.js';
23
23
  import Down from '@bigbinary/neeto-icons/Down';
24
24
  import Highlight from '@bigbinary/neeto-icons/Highlight';
25
25
  import CopyToClipboardButton from '@bigbinary/neeto-molecules/CopyToClipboardButton';
@@ -41,13 +41,13 @@ import { init, SearchIndex } from 'emoji-mart';
41
41
  import Spinner from '@bigbinary/neetoui/Spinner';
42
42
  import { globalProps } from '@bigbinary/neeto-commons-frontend/initializers';
43
43
  import Toastr from '@bigbinary/neetoui/Toastr';
44
- import { D as DirectUpload } from './chunk-OP-lX765.js';
44
+ import { D as DirectUpload } from './chunk-BHi0J28T.js';
45
45
  import Close from '@bigbinary/neeto-icons/Close';
46
46
  import Modal from '@bigbinary/neetoui/Modal';
47
47
  import MenuHorizontal from '@bigbinary/neeto-icons/MenuHorizontal';
48
48
  import AspectRatio from '@bigbinary/neeto-icons/AspectRatio';
49
49
  import Tooltip from '@bigbinary/neetoui/Tooltip';
50
- import { d as buildImageOptions, e as DEFAULT_ASPECT_RATIO } from './chunk-D_Lgx0N7.js';
50
+ import { d as buildImageOptions, e as DEFAULT_ASPECT_RATIO } from './chunk-C_4zmIBQ.js';
51
51
  import { S as Slice, F as Fragment$1 } from './chunk-C9H9LYpP.js';
52
52
  import Avatar from '@bigbinary/neetoui/Avatar';
53
53
  import Typography from '@bigbinary/neetoui/Typography';
@@ -93,7 +93,7 @@ import Form from '@bigbinary/neetoui/formik/Form';
93
93
  import Input$1 from '@bigbinary/neetoui/formik/Input';
94
94
  import Edit from '@bigbinary/neeto-icons/Edit';
95
95
  import Articles from '@bigbinary/neeto-icons/Articles';
96
- import { A as Attachments } from './chunk-DhFieQe2.js';
96
+ import { A as Attachments } from './chunk-CLjWv4gG.js';
97
97
  import 'axios';
98
98
  import 'zustand';
99
99
  import '@tanstack/react-query';
@@ -32,7 +32,7 @@ import 'i18next';
32
32
  import 'yup';
33
33
  import 'react-dom/server';
34
34
  import '@bigbinary/neeto-icons/misc/Megaphone';
35
- import './chunk-DGsiNcMa.js';
35
+ import './chunk-Bktpw5vs.js';
36
36
  import '@bigbinary/neeto-icons/TextH1';
37
37
  import '@bigbinary/neeto-icons/TextH2';
38
38
  import '@bigbinary/neeto-icons/TextH3';
@@ -81,8 +81,8 @@ import '@bigbinary/neeto-image-uploader-frontend/ImageUploader';
81
81
  import '@bigbinary/neetoui/Modal';
82
82
  import '@bigbinary/neetoui/Tab';
83
83
  import '@bigbinary/neetoui/Toastr';
84
- import './chunk-OP-lX765.js';
85
- import './chunk-D_Lgx0N7.js';
84
+ import './chunk-BHi0J28T.js';
85
+ import './chunk-C_4zmIBQ.js';
86
86
  import 'zustand/shallow';
87
87
  import '@bigbinary/neeto-icons/LeftAlign';
88
88
  import '@bigbinary/neeto-icons/CenterAlign';
@@ -131,7 +131,7 @@ import '@bigbinary/neeto-icons/MergeSplit';
131
131
  import '@bigbinary/neeto-icons/ToggleHeaderRow';
132
132
  import '@bigbinary/neeto-icons/Edit';
133
133
  import '@bigbinary/neeto-icons/Articles';
134
- import './chunk-DhFieQe2.js';
134
+ import './chunk-CLjWv4gG.js';
135
135
  import '@bigbinary/neeto-commons-frontend/react-utils/useOnClickOutside';
136
136
  import '@bigbinary/neeto-icons/MenuVertical';
137
137
  import '@bigbinary/neetoui/Alert';
package/dist/Menu.js CHANGED
@@ -3,7 +3,7 @@ import '@babel/runtime/helpers/toConsumableArray';
3
3
  import '@babel/runtime/helpers/slicedToArray';
4
4
  import 'react';
5
5
  import 'ramda';
6
- export { M as default } from './chunk-DGsiNcMa.js';
6
+ export { M as default } from './chunk-Bktpw5vs.js';
7
7
  import './chunk-CNIDH-FD.js';
8
8
  import 'react/jsx-runtime';
9
9
  import './chunk-C2dztUxs.js';
@@ -70,9 +70,9 @@ import '@bigbinary/neeto-image-uploader-frontend/ImageUploader';
70
70
  import '@bigbinary/neetoui/Modal';
71
71
  import '@bigbinary/neetoui/Tab';
72
72
  import '@bigbinary/neetoui/Toastr';
73
- import './chunk-OP-lX765.js';
73
+ import './chunk-BHi0J28T.js';
74
74
  import './chunk-BFTU3MAI.js';
75
- import './chunk-D_Lgx0N7.js';
75
+ import './chunk-C_4zmIBQ.js';
76
76
  import 'zustand/shallow';
77
77
  import '@bigbinary/neeto-icons/LeftAlign';
78
78
  import '@bigbinary/neeto-icons/CenterAlign';
@@ -5,8 +5,8 @@ import { findIndexBy } from '@bigbinary/neeto-cist';
5
5
  import { isEmpty } from 'ramda';
6
6
  import { D as DocViewer, a as DocViewerRenderers } from './chunk-CeoqieEt.js';
7
7
  import { useTranslation, Trans } from 'react-i18next';
8
- import { c as convertToFileSize, A as ATTACHMENTS_PREVIEW_DATA_CY } from './chunk-CxFTIgDS.js';
9
- import { d as downloadFile, c as checkPreviewAvailability } from './chunk-BGx6BSFw.js';
8
+ import { c as convertToFileSize, A as ATTACHMENTS_PREVIEW_DATA_CY } from './chunk-BIgc5m-h.js';
9
+ import { d as downloadFile, c as checkPreviewAvailability } from './chunk-DwQ7NJtm.js';
10
10
  import { jsxs, jsx } from 'react/jsx-runtime';
11
11
  import './chunk-BFTU3MAI.js';
12
12
  import '@babel/runtime/helpers/toConsumableArray';
@@ -15,7 +15,7 @@ import '@babel/runtime/helpers/objectWithoutProperties';
15
15
  import '@babel/runtime/helpers/asyncToGenerator';
16
16
  import 'zustand/shallow';
17
17
  import 'axios';
18
- import './chunk-OP-lX765.js';
18
+ import './chunk-BHi0J28T.js';
19
19
  import '@babel/runtime/helpers/defineProperty';
20
20
  import '@bigbinary/neeto-commons-frontend/react-utils';
21
21
  import 'zustand';
@@ -200,4 +200,4 @@ var Preview = function Preview(_ref) {
200
200
  };
201
201
 
202
202
  export { Preview as default };
203
- //# sourceMappingURL=chunk-BfQ_Kj4i.js.map
203
+ //# sourceMappingURL=chunk-AexVHCkr.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunk-BfQ_Kj4i.js","sources":["../app/javascript/src/v2/components/Attachments/Preview.jsx"],"sourcesContent":["import { useEffect, useRef } from \"react\";\n\nimport { Button, Dialog, Typography } from \"@bigbinary/neeto-atoms\";\nimport { ChevronLeft, ChevronRight } from \"lucide-react\";\nimport { findIndexBy } from \"neetocist\";\nimport { isEmpty } from \"ramda\";\nimport DocViewer, { DocViewerRenderers } from \"react-doc-viewer\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { convertToFileSize } from \"src/v2/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 <Dialog\n {...{ onClose }}\n className=\"ne-attachments-preview p-0\"\n isOpen={!isEmpty(selectedAttachment)}\n size=\"fullScreen\"\n onKeyDown={handleKeyDown}\n >\n <Dialog.Header className=\"ne-attachments-preview__header items-center\">\n <div className=\"ne-attachments-preview__header__fileinfo min-w-0 overflow-hidden\">\n <Dialog.Title className=\"min-w-0 overflow-hidden\">\n <Typography className=\"truncate\" variant=\"h5\">\n {filename}\n </Typography>\n </Dialog.Title>\n <Typography\n className=\"shrink-0 whitespace-nowrap\"\n color=\"muted\"\n variant=\"body2\"\n >\n {convertToFileSize(size)}\n </Typography>\n </div>\n <Button\n className=\"shrink-0\"\n data-testid=\"download-preview-button\"\n label={t(\"neetoEditor.common.download\")}\n ref={downloadRef}\n variant=\"link\"\n onClick={handleDownload}\n />\n </Dialog.Header>\n <Dialog.Body className=\"ne-attachments-preview__body w-full\">\n <Button\n className=\"ne-attachments-preview__body-left\"\n icon={<ChevronLeft className=\"size-8\" />}\n size=\"lg\"\n variant=\"ghost\"\n onClick={handleLeftArrowClick}\n />\n <Button\n className=\"ne-attachments-preview__body-right\"\n icon={<ChevronRight className=\"size-8\" />}\n size=\"lg\"\n variant=\"ghost\"\n onClick={handleRightArrowClick}\n />\n {setPreview()}\n </Dialog.Body>\n </Dialog>\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","Dialog","isOpen","isEmpty","onKeyDown","Header","Title","variant","color","convertToFileSize","Button","label","ref","Body","icon","ChevronLeft","ChevronRight"],"mappings":"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"}
1
+ {"version":3,"file":"chunk-AexVHCkr.js","sources":["../app/javascript/src/v2/components/Attachments/Preview.jsx"],"sourcesContent":["import { useEffect, useRef } from \"react\";\n\nimport { Button, Dialog, Typography } from \"@bigbinary/neeto-atoms\";\nimport { ChevronLeft, ChevronRight } from \"lucide-react\";\nimport { findIndexBy } from \"neetocist\";\nimport { isEmpty } from \"ramda\";\nimport DocViewer, { DocViewerRenderers } from \"react-doc-viewer\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { convertToFileSize } from \"src/v2/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 <Dialog\n {...{ onClose }}\n className=\"ne-attachments-preview p-0\"\n isOpen={!isEmpty(selectedAttachment)}\n size=\"fullScreen\"\n onKeyDown={handleKeyDown}\n >\n <Dialog.Header className=\"ne-attachments-preview__header items-center\">\n <div className=\"ne-attachments-preview__header__fileinfo min-w-0 overflow-hidden\">\n <Dialog.Title className=\"min-w-0 overflow-hidden\">\n <Typography className=\"truncate\" variant=\"h5\">\n {filename}\n </Typography>\n </Dialog.Title>\n <Typography\n className=\"shrink-0 whitespace-nowrap\"\n color=\"muted\"\n variant=\"body2\"\n >\n {convertToFileSize(size)}\n </Typography>\n </div>\n <Button\n className=\"shrink-0\"\n data-testid=\"download-preview-button\"\n label={t(\"neetoEditor.common.download\")}\n ref={downloadRef}\n variant=\"link\"\n onClick={handleDownload}\n />\n </Dialog.Header>\n <Dialog.Body className=\"ne-attachments-preview__body w-full\">\n <Button\n className=\"ne-attachments-preview__body-left\"\n icon={<ChevronLeft className=\"size-8\" />}\n size=\"lg\"\n variant=\"ghost\"\n onClick={handleLeftArrowClick}\n />\n <Button\n className=\"ne-attachments-preview__body-right\"\n icon={<ChevronRight className=\"size-8\" />}\n size=\"lg\"\n variant=\"ghost\"\n onClick={handleRightArrowClick}\n />\n {setPreview()}\n </Dialog.Body>\n </Dialog>\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","Dialog","isOpen","isEmpty","onKeyDown","Header","Title","variant","color","convertToFileSize","Button","label","ref","Body","icon","ChevronLeft","ChevronRight"],"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,MAAM,EAAA;AACCnE,IAAAA,OAAO,EAAPA,OAAO;AACbiD,IAAAA,SAAS,EAAC,4BAA4B;AACtCmB,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,MAAM,CAACI,MAAM,EAAA;AAACtB,MAAAA,SAAS,EAAC,6CAA6C;AAAAW,MAAAA,QAAA,gBACpEM,IAAA,CAAA,KAAA,EAAA;AAAKjB,QAAAA,SAAS,EAAC,kEAAkE;AAAAW,QAAAA,QAAA,EAAA,cAC/EjB,GAAA,CAACwB,MAAM,CAACK,KAAK,EAAA;AAACvB,UAAAA,SAAS,EAAC,yBAAyB;UAAAW,QAAA,eAC/CjB,GAAA,CAACgB,UAAU,EAAA;AAACV,YAAAA,SAAS,EAAC,UAAU;AAACwB,YAAAA,OAAO,EAAC,IAAI;AAAAb,YAAAA,QAAA,EAC1CjD;WACS;AAAC,SACD,CAAC,eACfgC,GAAA,CAACgB,UAAU,EAAA;AACTV,UAAAA,SAAS,EAAC,4BAA4B;AACtCyB,UAAAA,KAAK,EAAC,OAAO;AACbD,UAAAA,OAAO,EAAC,OAAO;UAAAb,QAAA,EAEde,iBAAiB,CAACxD,IAAI;AAAC,SACd,CAAC;AAAA,OACV,CAAC,eACNwB,GAAA,CAACiC,MAAM,EAAA;AACL3B,QAAAA,SAAS,EAAC,UAAU;AACpB,QAAA,aAAA,EAAY,yBAAyB;AACrC4B,QAAAA,KAAK,EAAEtE,CAAC,CAAC,6BAA6B,CAAE;AACxCuE,QAAAA,GAAG,EAAEtE,WAAY;AACjBiE,QAAAA,OAAO,EAAC,MAAM;AACdR,QAAAA,OAAO,EAAE5B;AAAe,OACzB,CAAC;AAAA,KACW,CAAC,eAChB6B,IAAA,CAACC,MAAM,CAACY,IAAI,EAAA;AAAC9B,MAAAA,SAAS,EAAC,qCAAqC;MAAAW,QAAA,EAAA,cAC1DjB,GAAA,CAACiC,MAAM,EAAA;AACL3B,QAAAA,SAAS,EAAC,mCAAmC;QAC7C+B,IAAI,eAAErC,GAAA,CAACsC,WAAW,EAAA;AAAChC,UAAAA,SAAS,EAAC;AAAQ,SAAE,CAAE;AACzC9B,QAAAA,IAAI,EAAC,IAAI;AACTsD,QAAAA,OAAO,EAAC,OAAO;AACfR,QAAAA,OAAO,EAAElC;AAAqB,OAC/B,CAAC,eACFY,GAAA,CAACiC,MAAM,EAAA;AACL3B,QAAAA,SAAS,EAAC,oCAAoC;QAC9C+B,IAAI,eAAErC,GAAA,CAACuC,YAAY,EAAA;AAACjC,UAAAA,SAAS,EAAC;AAAQ,SAAE,CAAE;AAC1C9B,QAAAA,IAAI,EAAC,IAAI;AACTsD,QAAAA,OAAO,EAAC,OAAO;AACfR,QAAAA,OAAO,EAAExC;AAAsB,OAChC,CAAC,EACDc,UAAU,EAAE;AAAA,KACF,CAAC;AAAA,GACR,CAAC;AAEb;;;;"}