@bigbinary/neeto-editor 1.47.127 → 1.47.131

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 (93) hide show
  1. package/dist/Attachments.js +3 -3
  2. package/dist/Editor.js +51 -38
  3. package/dist/Editor.js.map +1 -1
  4. package/dist/EditorContent.js +2 -2
  5. package/dist/FormikEditor.js +6 -6
  6. package/dist/Menu.js +5 -5
  7. package/dist/{chunk-KiXJWA8i.js → chunk-1vCNA-at.js} +2 -2
  8. package/dist/{chunk-KiXJWA8i.js.map → chunk-1vCNA-at.js.map} +1 -1
  9. package/dist/{chunk-DtQctlVh.js → chunk-BN2ot0eJ.js} +4 -4
  10. package/dist/{chunk-DtQctlVh.js.map → chunk-BN2ot0eJ.js.map} +1 -1
  11. package/dist/{chunk--BjpQHaY.js → chunk-BaRCz8kF.js} +3 -3
  12. package/dist/{chunk--BjpQHaY.js.map → chunk-BaRCz8kF.js.map} +1 -1
  13. package/dist/{chunk-DdxH-PMo.js → chunk-C3QLxTd-.js} +4 -4
  14. package/dist/{chunk-DdxH-PMo.js.map → chunk-C3QLxTd-.js.map} +1 -1
  15. package/dist/{chunk-DSFIk2ef.js → chunk-Cjrs-UjE.js} +4 -4
  16. package/dist/{chunk-DSFIk2ef.js.map → chunk-Cjrs-UjE.js.map} +1 -1
  17. package/dist/{chunk-BwyS6si8.js → chunk-D3UBgQom.js} +3 -3
  18. package/dist/{chunk-BwyS6si8.js.map → chunk-D3UBgQom.js.map} +1 -1
  19. package/dist/{chunk-CF5f8-fy.js → chunk-DDFZ40sK.js} +2 -2
  20. package/dist/{chunk-CF5f8-fy.js.map → chunk-DDFZ40sK.js.map} +1 -1
  21. package/dist/{chunk-DDwycKmK.js → chunk-DrHVV_g1.js} +9 -4
  22. package/dist/chunk-DrHVV_g1.js.map +1 -0
  23. package/dist/{chunk-C8O6gt0z.js → chunk-LieRrhol.js} +18 -4
  24. package/dist/chunk-LieRrhol.js.map +1 -0
  25. package/dist/{chunk-CDPeBjvi.js → chunk-Pu0d3ZId.js} +9 -8
  26. package/dist/chunk-Pu0d3ZId.js.map +1 -0
  27. package/dist/{chunk-xCgPoq9w.js → chunk-QsL6T6V5.js} +2 -2
  28. package/dist/{chunk-xCgPoq9w.js.map → chunk-QsL6T6V5.js.map} +1 -1
  29. package/dist/{chunk-C_jttcYg.js → chunk-vncKwq6q.js} +3 -3
  30. package/dist/{chunk-C_jttcYg.js.map → chunk-vncKwq6q.js.map} +1 -1
  31. package/dist/cjs/Attachments.cjs.js +3 -3
  32. package/dist/cjs/Editor.cjs.js +51 -38
  33. package/dist/cjs/Editor.cjs.js.map +1 -1
  34. package/dist/cjs/EditorContent.cjs.js +2 -2
  35. package/dist/cjs/FormikEditor.cjs.js +6 -6
  36. package/dist/cjs/Menu.cjs.js +5 -5
  37. package/dist/cjs/{chunk-DS2JcxXk.cjs.js → chunk-9Fllxi6z.cjs.js} +3 -3
  38. package/dist/cjs/{chunk-DS2JcxXk.cjs.js.map → chunk-9Fllxi6z.cjs.js.map} +1 -1
  39. package/dist/cjs/{chunk-2HrSPdAV.cjs.js → chunk-Bmjmsp-E.cjs.js} +9 -4
  40. package/dist/cjs/chunk-Bmjmsp-E.cjs.js.map +1 -0
  41. package/dist/cjs/{chunk-n7U2G1az.cjs.js → chunk-CLoLWFsx.cjs.js} +4 -4
  42. package/dist/cjs/{chunk-n7U2G1az.cjs.js.map → chunk-CLoLWFsx.cjs.js.map} +1 -1
  43. package/dist/cjs/{chunk-DkzRRlJ6.cjs.js → chunk-CLrHidij.cjs.js} +18 -3
  44. package/dist/cjs/chunk-CLrHidij.cjs.js.map +1 -0
  45. package/dist/cjs/{chunk-62QG5j0v.cjs.js → chunk-CMN8WDYd.cjs.js} +4 -4
  46. package/dist/cjs/{chunk-62QG5j0v.cjs.js.map → chunk-CMN8WDYd.cjs.js.map} +1 -1
  47. package/dist/cjs/{chunk-Cvxaj__T.cjs.js → chunk-DJosicB7.cjs.js} +3 -3
  48. package/dist/cjs/{chunk-Cvxaj__T.cjs.js.map → chunk-DJosicB7.cjs.js.map} +1 -1
  49. package/dist/cjs/{chunk-D8Uup1eh.cjs.js → chunk-Dyzo4vqK.cjs.js} +4 -4
  50. package/dist/cjs/{chunk-D8Uup1eh.cjs.js.map → chunk-Dyzo4vqK.cjs.js.map} +1 -1
  51. package/dist/cjs/{chunk-CDAiAyof.cjs.js → chunk-LN_Txjhy.cjs.js} +2 -2
  52. package/dist/cjs/{chunk-CDAiAyof.cjs.js.map → chunk-LN_Txjhy.cjs.js.map} +1 -1
  53. package/dist/cjs/{chunk-BGy3NmZC.cjs.js → chunk-hfcF0hnk.cjs.js} +2 -2
  54. package/dist/cjs/{chunk-BGy3NmZC.cjs.js.map → chunk-hfcF0hnk.cjs.js.map} +1 -1
  55. package/dist/cjs/{chunk-Zpn4p-0s.cjs.js → chunk-u9FgmzyG.cjs.js} +9 -8
  56. package/dist/cjs/chunk-u9FgmzyG.cjs.js.map +1 -0
  57. package/dist/cjs/{chunk-B_7qxIrt.cjs.js → chunk-vT9IzHYQ.cjs.js} +3 -3
  58. package/dist/cjs/{chunk-B_7qxIrt.cjs.js.map → chunk-vT9IzHYQ.cjs.js.map} +1 -1
  59. package/dist/cjs/{chunk-yX0BlnxV.cjs.js → chunk-vq1owZ-6.cjs.js} +2 -2
  60. package/dist/cjs/{chunk-yX0BlnxV.cjs.js.map → chunk-vq1owZ-6.cjs.js.map} +1 -1
  61. package/dist/cjs/constants.cjs.js +2 -2
  62. package/dist/cjs/index.cjs.js +6 -6
  63. package/dist/cjs/utils.cjs.js +3 -3
  64. package/dist/cjs/v2/Attachments.cjs.js +3 -3
  65. package/dist/cjs/v2/Editor.cjs.js +24 -31
  66. package/dist/cjs/v2/Editor.cjs.js.map +1 -1
  67. package/dist/cjs/v2/EditorContent.cjs.js +3 -3
  68. package/dist/cjs/v2/FormikEditor.cjs.js +5 -5
  69. package/dist/cjs/v2/Menu.cjs.js +3 -3
  70. package/dist/cjs/v2/constants.cjs.js +2 -2
  71. package/dist/cjs/v2/index.cjs.js +6 -6
  72. package/dist/cjs/v2/utils.cjs.js +3 -3
  73. package/dist/constants.js +2 -2
  74. package/dist/editor-stats.html +2 -2
  75. package/dist/index.js +6 -6
  76. package/dist/utils.js +3 -3
  77. package/dist/v2/Attachments.js +3 -3
  78. package/dist/v2/Editor.js +24 -31
  79. package/dist/v2/Editor.js.map +1 -1
  80. package/dist/v2/EditorContent.js +3 -3
  81. package/dist/v2/FormikEditor.js +5 -5
  82. package/dist/v2/Menu.js +3 -3
  83. package/dist/v2/constants.js +2 -2
  84. package/dist/v2/index.js +6 -6
  85. package/dist/v2/utils.js +3 -3
  86. package/package.json +1 -1
  87. package/types.d.ts +1 -0
  88. package/dist/chunk-C8O6gt0z.js.map +0 -1
  89. package/dist/chunk-CDPeBjvi.js.map +0 -1
  90. package/dist/chunk-DDwycKmK.js.map +0 -1
  91. package/dist/cjs/chunk-2HrSPdAV.cjs.js.map +0 -1
  92. package/dist/cjs/chunk-DkzRRlJ6.cjs.js.map +0 -1
  93. package/dist/cjs/chunk-Zpn4p-0s.cjs.js.map +0 -1
@@ -7,10 +7,10 @@ import DOMPurify from 'dompurify';
7
7
  import CopyToClipboardButton from '@bigbinary/neeto-molecules/CopyToClipboardButton';
8
8
  import { isNil } from 'ramda';
9
9
  import { createRoot } from 'react-dom/client';
10
- import { a as EDITOR_SIZES } from './chunk-DDwycKmK.js';
10
+ import { a as EDITOR_SIZES } from './chunk-DrHVV_g1.js';
11
11
  import { n } from './chunk-C2dztUxs.js';
12
12
  import '@bigbinary/neeto-cist';
13
- import './chunk-CF5f8-fy.js';
13
+ import './chunk-DDFZ40sK.js';
14
14
  import { c as convertPlainTextToHtml, s as substituteVariables, a as applySyntaxHighlightingAndLineNumbers, b as applyLineHighlighting } from './chunk-aCTMceVU.js';
15
15
  import { r as removeEmptyTags, E as EDITOR_CONTENT_DEFAULT_CONFIGURATION, S as SANITIZE_OPTIONS, b as EDITOR_CONTENT_CLASS_NAME } from './chunk-Qg4uQqj3.js';
16
16
  import { useOnClickOutside } from '@bigbinary/neeto-commons-frontend/react-utils';
@@ -15,7 +15,7 @@ import 'react-dom';
15
15
  import '@bigbinary/neeto-commons-frontend/react-utils';
16
16
  import 'zustand';
17
17
  import 'classnames';
18
- import './chunk-DDwycKmK.js';
18
+ import './chunk-DrHVV_g1.js';
19
19
  import '@bigbinary/neetoui/Label';
20
20
  import './chunk-Be5ikGpm.js';
21
21
  import './chunk-Qg4uQqj3.js';
@@ -26,13 +26,13 @@ import '@babel/runtime/regenerator';
26
26
  import '@tanstack/react-query';
27
27
  import 'yjs';
28
28
  import './chunk-C2dztUxs.js';
29
- import './chunk-C_jttcYg.js';
30
- import './chunk-CF5f8-fy.js';
29
+ import './chunk-vncKwq6q.js';
30
+ import './chunk-DDFZ40sK.js';
31
31
  import 'i18next';
32
32
  import 'yup';
33
33
  import 'react-dom/server';
34
34
  import '@bigbinary/neeto-icons/misc/Megaphone';
35
- import './chunk-CDPeBjvi.js';
35
+ import './chunk-Pu0d3ZId.js';
36
36
  import '@bigbinary/neeto-icons/TextH1';
37
37
  import '@bigbinary/neeto-icons/TextH2';
38
38
  import '@bigbinary/neeto-icons/TextH3';
@@ -82,7 +82,7 @@ import '@bigbinary/neetoui/Modal';
82
82
  import '@bigbinary/neetoui/Tab';
83
83
  import '@bigbinary/neetoui/Toastr';
84
84
  import './chunk-BFKmIsWV.js';
85
- import './chunk-xCgPoq9w.js';
85
+ import './chunk-QsL6T6V5.js';
86
86
  import 'zustand/shallow';
87
87
  import '@bigbinary/neeto-icons/LeftAlign';
88
88
  import '@bigbinary/neeto-icons/CenterAlign';
@@ -130,7 +130,7 @@ import '@bigbinary/neeto-icons/MergeSplit';
130
130
  import '@bigbinary/neeto-icons/ToggleHeaderRow';
131
131
  import '@bigbinary/neeto-icons/Edit';
132
132
  import '@bigbinary/neeto-icons/Articles';
133
- import './chunk-DdxH-PMo.js';
133
+ import './chunk-C3QLxTd-.js';
134
134
  import '@bigbinary/neeto-commons-frontend/react-utils/useOnClickOutside';
135
135
  import '@bigbinary/neeto-icons/MenuVertical';
136
136
  import '@bigbinary/neetoui/Alert';
package/dist/Menu.js CHANGED
@@ -3,8 +3,8 @@ 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-CDPeBjvi.js';
7
- import './chunk-CF5f8-fy.js';
6
+ export { M as default } from './chunk-Pu0d3ZId.js';
7
+ import './chunk-DDFZ40sK.js';
8
8
  import 'react/jsx-runtime';
9
9
  import './chunk-C2dztUxs.js';
10
10
  import 'i18next';
@@ -21,7 +21,7 @@ import 'react-dom';
21
21
  import '@bigbinary/neeto-commons-frontend/react-utils';
22
22
  import 'zustand';
23
23
  import 'classnames';
24
- import './chunk-DDwycKmK.js';
24
+ import './chunk-DrHVV_g1.js';
25
25
  import '@bigbinary/neeto-cist';
26
26
  import '@bigbinary/neeto-icons/Link';
27
27
  import '@bigbinary/neeto-icons/Column';
@@ -30,7 +30,7 @@ import '@bigbinary/neetoui/Dropdown';
30
30
  import 'react-i18next';
31
31
  import '@bigbinary/neeto-icons/Close';
32
32
  import '@bigbinary/neetoui/Button';
33
- import './chunk-C_jttcYg.js';
33
+ import './chunk-vncKwq6q.js';
34
34
  import '@bigbinary/neeto-commons-frontend/utils';
35
35
  import '@bigbinary/neeto-icons/Check';
36
36
  import '@bigbinary/neetoui/Label';
@@ -72,7 +72,7 @@ import '@bigbinary/neetoui/Tab';
72
72
  import '@bigbinary/neetoui/Toastr';
73
73
  import './chunk-BFKmIsWV.js';
74
74
  import './chunk-BFTU3MAI.js';
75
- import './chunk-xCgPoq9w.js';
75
+ import './chunk-QsL6T6V5.js';
76
76
  import 'zustand/shallow';
77
77
  import '@bigbinary/neeto-icons/LeftAlign';
78
78
  import '@bigbinary/neeto-icons/CenterAlign';
@@ -13,7 +13,7 @@ import { useTranslation } from 'react-i18next';
13
13
  import { g as getRandomString, a as useFileUploadStore, b as FILE_UPLOAD_STATUS, D as DirectUpload, F as FileIcon, c as defaultStyles } from './chunk-BFKmIsWV.js';
14
14
  import { t } from 'i18next';
15
15
  import { globalProps } from '@bigbinary/neeto-commons-frontend/v2/initializers';
16
- import { D as DIRECT_UPLOAD_ENDPOINT, U as URL_REGEXP } from './chunk-DDwycKmK.js';
16
+ import { D as DIRECT_UPLOAD_ENDPOINT, U as URL_REGEXP } from './chunk-DrHVV_g1.js';
17
17
  import '@bigbinary/neeto-icons/LeftAlign';
18
18
  import '@bigbinary/neeto-icons/CenterAlign';
19
19
  import '@bigbinary/neeto-icons/RightAlign';
@@ -375,4 +375,4 @@ var File = function File(_ref) {
375
375
  };
376
376
 
377
377
  export { ATTACHMENTS_PREVIEW_DATA_CY as A, DEFAULT_FILE_UPLOAD_CONFIG as D, File as F, VIDEO_EMBED_FORM_VALIDATION_SCHEMA as V, ATTACHMENT_OPTIONS as a, ALLOWED_IMAGE_TYPES as b, convertToFileSize as c, ALLOWED_VIDEO_TYPES as d, DEFAULT_IMAGE_UPLOAD_CONFIG as e, DEFAULT_VIDEO_UPLOAD_CONFIG as f, getTabs as g, DEFAULT_ASPECT_RATIO as h, useFileUploader as u };
378
- //# sourceMappingURL=chunk-KiXJWA8i.js.map
378
+ //# sourceMappingURL=chunk-1vCNA-at.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunk-KiXJWA8i.js","sources":["../src/v2/components/Attachments/constants.js","../src/v2/components/Editor/MediaUploader/constants.js","../src/v2/components/Editor/MediaUploader/utils.js","../src/v2/hooks/utils/fileUploader.js","../src/v2/hooks/useFileUploader.js","../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 = 100 * 1024 * 1024; // 100 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: MAX_VIDEO_SIZE,\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 { FileIcon, defaultStyles } from \"react-file-icon\";\n\nconst File = ({ fileName, className }) => {\n const extension = fileName.match(/([^.]+)$/) & [1];\n\n return (\n <div {...{ className }}>\n <FileIcon\n {...{ extension }}\n labelColor=\"#4558f9\"\n {...defaultStyles[extension]}\n />\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","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","uploadControllers","useFileUploader","_ref$attachments","attachments","previousAttachments","_ref$setIsUploadingOn","setIsUploadingOnHost","noop","contextIdRef","useRef","getRandomString","_useTranslation","useTranslation","contextId","current","_useFileUploadStore","useFileUploadStore","store","addFiles","getNextQueuedFile","updateFileStatus","removeFilesFromQueue","setIsUploading","updateFileUploadProgress","removeFile","shallow","addFilesToStore","_useFileUploadStore2","_store$contextId","_store$contextId2","isUploading","_useFileUploadStore2$","handleUploadProgress","xhr","event","lengthComputable","bytesUploaded","loaded","bytesTotal","total","progress","Math","round","id","uploadFile","_asyncToGenerator","_regeneratorRuntime","mark","_callee","upload","_data$signed_id","_data$blob_url","_data$content_type","_yield$upload$create","_yield$upload$create$","data","response","wrap","_callee$","_context","prev","next","DirectUpload","create","sent","_objectWithoutProperties","_excluded","FILE_UPLOAD_STATUS","UPLOADED","abrupt","signedId","signed_id","blob_url","contentType","content_type","t0","axios","isCancel","console","stop","_x","apply","handleUploadFiles","_ref3","_callee2","queuedFile","_yield$Promise$all","_yield$Promise$all2","uploadedFile","remainingUploadedFiles","uploadedFiles","uploadedFileIds","_callee2$","_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","call","queuedFiles","File","fileName","className","extension","match","_jsx","children","FileIcon","_objectSpread","labelColor","defaultStyles"],"mappings":"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"}
1
+ {"version":3,"file":"chunk-1vCNA-at.js","sources":["../src/v2/components/Attachments/constants.js","../src/v2/components/Editor/MediaUploader/constants.js","../src/v2/components/Editor/MediaUploader/utils.js","../src/v2/hooks/utils/fileUploader.js","../src/v2/hooks/useFileUploader.js","../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 = 100 * 1024 * 1024; // 100 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: MAX_VIDEO_SIZE,\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 { FileIcon, defaultStyles } from \"react-file-icon\";\n\nconst File = ({ fileName, className }) => {\n const extension = fileName.match(/([^.]+)$/) & [1];\n\n return (\n <div {...{ className }}>\n <FileIcon\n {...{ extension }}\n labelColor=\"#4558f9\"\n {...defaultStyles[extension]}\n />\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","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","uploadControllers","useFileUploader","_ref$attachments","attachments","previousAttachments","_ref$setIsUploadingOn","setIsUploadingOnHost","noop","contextIdRef","useRef","getRandomString","_useTranslation","useTranslation","contextId","current","_useFileUploadStore","useFileUploadStore","store","addFiles","getNextQueuedFile","updateFileStatus","removeFilesFromQueue","setIsUploading","updateFileUploadProgress","removeFile","shallow","addFilesToStore","_useFileUploadStore2","_store$contextId","_store$contextId2","isUploading","_useFileUploadStore2$","handleUploadProgress","xhr","event","lengthComputable","bytesUploaded","loaded","bytesTotal","total","progress","Math","round","id","uploadFile","_asyncToGenerator","_regeneratorRuntime","mark","_callee","upload","_data$signed_id","_data$blob_url","_data$content_type","_yield$upload$create","_yield$upload$create$","data","response","wrap","_callee$","_context","prev","next","DirectUpload","create","sent","_objectWithoutProperties","_excluded","FILE_UPLOAD_STATUS","UPLOADED","abrupt","signedId","signed_id","blob_url","contentType","content_type","t0","axios","isCancel","console","stop","_x","apply","handleUploadFiles","_ref3","_callee2","queuedFile","_yield$Promise$all","_yield$Promise$all2","uploadedFile","remainingUploadedFiles","uploadedFiles","uploadedFileIds","_callee2$","_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","call","queuedFiles","File","fileName","className","extension","match","_jsx","children","FileIcon","_objectSpread","labelColor","defaultStyles"],"mappings":"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"}
@@ -5,8 +5,8 @@ import { findIndexBy, truncate } 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-KiXJWA8i.js';
9
- import { d as downloadFile, c as checkPreviewAvailability } from './chunk--BjpQHaY.js';
8
+ import { c as convertToFileSize, A as ATTACHMENTS_PREVIEW_DATA_CY } from './chunk-1vCNA-at.js';
9
+ import { d as downloadFile, c as checkPreviewAvailability } from './chunk-BaRCz8kF.js';
10
10
  import { jsxs, jsx } from 'react/jsx-runtime';
11
11
  import './chunk-BFTU3MAI.js';
12
12
  import '@babel/runtime/helpers/toConsumableArray';
@@ -24,7 +24,7 @@ import '@babel/runtime/helpers/createClass';
24
24
  import '@babel/runtime/helpers/classCallCheck';
25
25
  import 'i18next';
26
26
  import '@bigbinary/neeto-commons-frontend/v2/initializers';
27
- import './chunk-DDwycKmK.js';
27
+ import './chunk-DrHVV_g1.js';
28
28
  import '@bigbinary/neeto-icons/LeftAlign';
29
29
  import '@bigbinary/neeto-icons/CenterAlign';
30
30
  import '@bigbinary/neeto-icons/RightAlign';
@@ -189,4 +189,4 @@ var Preview = function Preview(_ref) {
189
189
  };
190
190
 
191
191
  export { Preview as default };
192
- //# sourceMappingURL=chunk-DtQctlVh.js.map
192
+ //# sourceMappingURL=chunk-BN2ot0eJ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunk-DtQctlVh.js","sources":["../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, truncate } 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 } = 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(contentType);\n\n if (isPreviewAvailable) {\n switch (contentType.split(\"/\")[0]) {\n case \"image\":\n return <img data-testid={ATTACHMENTS_PREVIEW_DATA_CY} src={url} />;\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\"\n isOpen={!isEmpty(selectedAttachment)}\n size=\"fullScreen\"\n onKeyDown={handleKeyDown}\n >\n <Dialog.Header className=\"ne-attachments-preview__header\">\n <div className=\"ne-attachments-preview__header__fileinfo\">\n <Dialog.Title>\n <Typography variant=\"h4\">{truncate(filename, 25)}</Typography>\n </Dialog.Title>\n <Typography variant=\"body2\">{convertToFileSize(size)}</Typography>\n </div>\n <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\">\n <Button\n className=\"ne-attachments-preview__body-left\"\n icon={ChevronLeft}\n size=\"lg\"\n variant=\"ghost\"\n onClick={handleLeftArrowClick}\n />\n <Button\n className=\"ne-attachments-preview__body-right\"\n icon={ChevronRight}\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","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","truncate","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,GAMIR,kBAAkB,CALpBS,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,qBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,qBAAA;IAAAE,qBAAA,GAKXV,kBAAkB,CAJpBW,WAAW;AAAXA,IAAAA,WAAW,GAAAD,qBAAA,KAAA,MAAA,GAAG,IAAI,GAAAA,qBAAA;IAAAE,qBAAA,GAIhBZ,kBAAkB,CAHpBa,GAAG;AAAHA,IAAAA,GAAG,GAAAD,qBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,qBAAA;IAAAE,qBAAA,GAGNd,kBAAkB,CAFpBe,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,qBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,qBAAA;IAAAE,sBAAA,GAEXhB,kBAAkB,CADpBiB,IAAI;AAAJA,IAAAA,IAAI,GAAAD,sBAAA,KAAA,MAAA,GAAGE,SAAS,GAAAF,sBAAA;EAGlB,IAAMG,eAAe,GAAGC,WAAW,CAAC;AAAEL,IAAAA,QAAQ,EAARA;GAAU,EAAEhB,WAAW,CAAC;AAE9D,EAAA,IAAMsB,qBAAqB,GAAG,SAAxBA,qBAAqBA,GAAS;AAAA,IAAA,IAAAC,oBAAA;IAClC,IAAMC,QAAQ,GAAG,CAACJ,eAAe,GAAG,CAAC,IAAIpB,WAAW,CAACyB,MAAM;AAC3DvB,IAAAA,qBAAqB,CAACF,WAAW,CAACwB,QAAQ,CAAC,CAAC;AAC5C,IAAA,CAAAD,oBAAA,GAAAhB,WAAW,CAACmB,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,GAAGpB,WAAW,CAACyB,MAAM,IAAIzB,WAAW,CAACyB,MAAM;AACjEvB,IAAAA,qBAAqB,CAACF,WAAW,CAACwB,QAAQ,CAAC,CAAC;AAC5C,IAAA,CAAAK,qBAAA,GAAAtB,WAAW,CAACmB,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;IACd9B,wBAAwB,CAAC,IAAI,CAAC;EAChC,CAAC,EAAE,EAAE,CAAC;AAEN,EAAA,IAAM+B,cAAc,GAAG,SAAjBA,cAAcA,GAAA;AAAA,IAAA,OAASC,YAAY,CAACrB,GAAG,EAAEJ,QAAQ,CAAC;AAAA,EAAA,CAAA;AAExD,EAAA,IAAM0B,UAAU,GAAG,SAAbA,UAAUA,GAAS;AACvB,IAAA,IAAMC,kBAAkB,GAAGC,wBAAwB,CAAC1B,WAAW,CAAC;AAEhE,IAAA,IAAIyB,kBAAkB,EAAE;MACtB,QAAQzB,WAAW,CAAC2B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC/B,QAAA,KAAK,OAAO;AACV,UAAA,oBAAOC,GAAA,CAAA,KAAA,EAAA;AAAK,YAAA,aAAA,EAAaC,2BAA4B;AAACC,YAAAA,GAAG,EAAE5B;AAAI,WAAE,CAAC;AACpE,QAAA,KAAK,OAAO;AACV,UAAA,oBACE0B,GAAA,CAAA,OAAA,EAAA;YACEG,QAAQ,EAAA,IAAA;AACR,YAAA,aAAA,EAAaF,2BAA4B;AACzCC,YAAAA,GAAG,EAAE5B;AAAI,WACV,CAAC;AAEN,QAAA,KAAK,aAAa;AAClB,QAAA,KAAK,MAAM;UACT,IAAIF,WAAW,KAAK,iBAAiB,EAAE;AACrC,YAAA,oBACE4B,GAAA,CAAA,QAAA,EAAA;AACE,cAAA,aAAA,EAAaC,2BAA4B;AACzCC,cAAAA,GAAG,EAAE5B,GAAI;AACT8B,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,EAAElC,GAAG;AAAEmC,cAAAA,QAAQ,EAAErC;AAAY,aAAC,CAAE;AACjDsC,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;AACCjE,IAAAA,OAAO,EAAPA,OAAO;AACb+C,IAAAA,SAAS,EAAC,wBAAwB;AAClCmB,IAAAA,MAAM,EAAE,CAACC,OAAO,CAACjE,kBAAkB,CAAE;AACrCiB,IAAAA,IAAI,EAAC,YAAY;AACjBiD,IAAAA,SAAS,EAAErC,aAAc;AAAA2B,IAAAA,QAAA,EAAA,cAEzBM,IAAA,CAACC,MAAM,CAACI,MAAM,EAAA;AAACtB,MAAAA,SAAS,EAAC,gCAAgC;AAAAW,MAAAA,QAAA,gBACvDM,IAAA,CAAA,KAAA,EAAA;AAAKjB,QAAAA,SAAS,EAAC,0CAA0C;AAAAW,QAAAA,QAAA,EAAA,cACvDjB,GAAA,CAACwB,MAAM,CAACK,KAAK,EAAA;UAAAZ,QAAA,eACXjB,GAAA,CAACgB,UAAU,EAAA;AAACc,YAAAA,OAAO,EAAC,IAAI;AAAAb,YAAAA,QAAA,EAAEc,QAAQ,CAAC7D,QAAQ,EAAE,EAAE;WAAc;AAAC,SAClD,CAAC,eACf8B,GAAA,CAACgB,UAAU,EAAA;AAACc,UAAAA,OAAO,EAAC,OAAO;UAAAb,QAAA,EAAEe,iBAAiB,CAACtD,IAAI;AAAC,SAAa,CAAC;AAAA,OAC/D,CAAC,eACNsB,GAAA,CAACiC,MAAM,EAAA;AACLC,QAAAA,KAAK,EAAEpE,CAAC,CAAC,6BAA6B,CAAE;AACxCqE,QAAAA,GAAG,EAAEpE,WAAY;AACjB+D,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,8BAA8B;MAAAW,QAAA,EAAA,cACnDjB,GAAA,CAACiC,MAAM,EAAA;AACL3B,QAAAA,SAAS,EAAC,mCAAmC;AAC7C+B,QAAAA,IAAI,EAAEC,WAAY;AAClB5D,QAAAA,IAAI,EAAC,IAAI;AACToD,QAAAA,OAAO,EAAC,OAAO;AACfR,QAAAA,OAAO,EAAElC;AAAqB,OAC/B,CAAC,eACFY,GAAA,CAACiC,MAAM,EAAA;AACL3B,QAAAA,SAAS,EAAC,oCAAoC;AAC9C+B,QAAAA,IAAI,EAAEE,YAAa;AACnB7D,QAAAA,IAAI,EAAC,IAAI;AACToD,QAAAA,OAAO,EAAC,OAAO;AACfR,QAAAA,OAAO,EAAExC;AAAsB,OAChC,CAAC,EACDc,UAAU,EAAE;AAAA,KACF,CAAC;AAAA,GACR,CAAC;AAEb;;;;"}
1
+ {"version":3,"file":"chunk-BN2ot0eJ.js","sources":["../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, truncate } 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 } = 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(contentType);\n\n if (isPreviewAvailable) {\n switch (contentType.split(\"/\")[0]) {\n case \"image\":\n return <img data-testid={ATTACHMENTS_PREVIEW_DATA_CY} src={url} />;\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\"\n isOpen={!isEmpty(selectedAttachment)}\n size=\"fullScreen\"\n onKeyDown={handleKeyDown}\n >\n <Dialog.Header className=\"ne-attachments-preview__header\">\n <div className=\"ne-attachments-preview__header__fileinfo\">\n <Dialog.Title>\n <Typography variant=\"h4\">{truncate(filename, 25)}</Typography>\n </Dialog.Title>\n <Typography variant=\"body2\">{convertToFileSize(size)}</Typography>\n </div>\n <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\">\n <Button\n className=\"ne-attachments-preview__body-left\"\n icon={ChevronLeft}\n size=\"lg\"\n variant=\"ghost\"\n onClick={handleLeftArrowClick}\n />\n <Button\n className=\"ne-attachments-preview__body-right\"\n icon={ChevronRight}\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","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","truncate","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,GAMIR,kBAAkB,CALpBS,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,qBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,qBAAA;IAAAE,qBAAA,GAKXV,kBAAkB,CAJpBW,WAAW;AAAXA,IAAAA,WAAW,GAAAD,qBAAA,KAAA,MAAA,GAAG,IAAI,GAAAA,qBAAA;IAAAE,qBAAA,GAIhBZ,kBAAkB,CAHpBa,GAAG;AAAHA,IAAAA,GAAG,GAAAD,qBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,qBAAA;IAAAE,qBAAA,GAGNd,kBAAkB,CAFpBe,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,qBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,qBAAA;IAAAE,sBAAA,GAEXhB,kBAAkB,CADpBiB,IAAI;AAAJA,IAAAA,IAAI,GAAAD,sBAAA,KAAA,MAAA,GAAGE,SAAS,GAAAF,sBAAA;EAGlB,IAAMG,eAAe,GAAGC,WAAW,CAAC;AAAEL,IAAAA,QAAQ,EAARA;GAAU,EAAEhB,WAAW,CAAC;AAE9D,EAAA,IAAMsB,qBAAqB,GAAG,SAAxBA,qBAAqBA,GAAS;AAAA,IAAA,IAAAC,oBAAA;IAClC,IAAMC,QAAQ,GAAG,CAACJ,eAAe,GAAG,CAAC,IAAIpB,WAAW,CAACyB,MAAM;AAC3DvB,IAAAA,qBAAqB,CAACF,WAAW,CAACwB,QAAQ,CAAC,CAAC;AAC5C,IAAA,CAAAD,oBAAA,GAAAhB,WAAW,CAACmB,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,GAAGpB,WAAW,CAACyB,MAAM,IAAIzB,WAAW,CAACyB,MAAM;AACjEvB,IAAAA,qBAAqB,CAACF,WAAW,CAACwB,QAAQ,CAAC,CAAC;AAC5C,IAAA,CAAAK,qBAAA,GAAAtB,WAAW,CAACmB,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;IACd9B,wBAAwB,CAAC,IAAI,CAAC;EAChC,CAAC,EAAE,EAAE,CAAC;AAEN,EAAA,IAAM+B,cAAc,GAAG,SAAjBA,cAAcA,GAAA;AAAA,IAAA,OAASC,YAAY,CAACrB,GAAG,EAAEJ,QAAQ,CAAC;AAAA,EAAA,CAAA;AAExD,EAAA,IAAM0B,UAAU,GAAG,SAAbA,UAAUA,GAAS;AACvB,IAAA,IAAMC,kBAAkB,GAAGC,wBAAwB,CAAC1B,WAAW,CAAC;AAEhE,IAAA,IAAIyB,kBAAkB,EAAE;MACtB,QAAQzB,WAAW,CAAC2B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC/B,QAAA,KAAK,OAAO;AACV,UAAA,oBAAOC,GAAA,CAAA,KAAA,EAAA;AAAK,YAAA,aAAA,EAAaC,2BAA4B;AAACC,YAAAA,GAAG,EAAE5B;AAAI,WAAE,CAAC;AACpE,QAAA,KAAK,OAAO;AACV,UAAA,oBACE0B,GAAA,CAAA,OAAA,EAAA;YACEG,QAAQ,EAAA,IAAA;AACR,YAAA,aAAA,EAAaF,2BAA4B;AACzCC,YAAAA,GAAG,EAAE5B;AAAI,WACV,CAAC;AAEN,QAAA,KAAK,aAAa;AAClB,QAAA,KAAK,MAAM;UACT,IAAIF,WAAW,KAAK,iBAAiB,EAAE;AACrC,YAAA,oBACE4B,GAAA,CAAA,QAAA,EAAA;AACE,cAAA,aAAA,EAAaC,2BAA4B;AACzCC,cAAAA,GAAG,EAAE5B,GAAI;AACT8B,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,EAAElC,GAAG;AAAEmC,cAAAA,QAAQ,EAAErC;AAAY,aAAC,CAAE;AACjDsC,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;AACCjE,IAAAA,OAAO,EAAPA,OAAO;AACb+C,IAAAA,SAAS,EAAC,wBAAwB;AAClCmB,IAAAA,MAAM,EAAE,CAACC,OAAO,CAACjE,kBAAkB,CAAE;AACrCiB,IAAAA,IAAI,EAAC,YAAY;AACjBiD,IAAAA,SAAS,EAAErC,aAAc;AAAA2B,IAAAA,QAAA,EAAA,cAEzBM,IAAA,CAACC,MAAM,CAACI,MAAM,EAAA;AAACtB,MAAAA,SAAS,EAAC,gCAAgC;AAAAW,MAAAA,QAAA,gBACvDM,IAAA,CAAA,KAAA,EAAA;AAAKjB,QAAAA,SAAS,EAAC,0CAA0C;AAAAW,QAAAA,QAAA,EAAA,cACvDjB,GAAA,CAACwB,MAAM,CAACK,KAAK,EAAA;UAAAZ,QAAA,eACXjB,GAAA,CAACgB,UAAU,EAAA;AAACc,YAAAA,OAAO,EAAC,IAAI;AAAAb,YAAAA,QAAA,EAAEc,QAAQ,CAAC7D,QAAQ,EAAE,EAAE;WAAc;AAAC,SAClD,CAAC,eACf8B,GAAA,CAACgB,UAAU,EAAA;AAACc,UAAAA,OAAO,EAAC,OAAO;UAAAb,QAAA,EAAEe,iBAAiB,CAACtD,IAAI;AAAC,SAAa,CAAC;AAAA,OAC/D,CAAC,eACNsB,GAAA,CAACiC,MAAM,EAAA;AACLC,QAAAA,KAAK,EAAEpE,CAAC,CAAC,6BAA6B,CAAE;AACxCqE,QAAAA,GAAG,EAAEpE,WAAY;AACjB+D,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,8BAA8B;MAAAW,QAAA,EAAA,cACnDjB,GAAA,CAACiC,MAAM,EAAA;AACL3B,QAAAA,SAAS,EAAC,mCAAmC;AAC7C+B,QAAAA,IAAI,EAAEC,WAAY;AAClB5D,QAAAA,IAAI,EAAC,IAAI;AACToD,QAAAA,OAAO,EAAC,OAAO;AACfR,QAAAA,OAAO,EAAElC;AAAqB,OAC/B,CAAC,eACFY,GAAA,CAACiC,MAAM,EAAA;AACL3B,QAAAA,SAAS,EAAC,oCAAoC;AAC9C+B,QAAAA,IAAI,EAAEE,YAAa;AACnB7D,QAAAA,IAAI,EAAC,IAAI;AACToD,QAAAA,OAAO,EAAC,OAAO;AACfR,QAAAA,OAAO,EAAExC;AAAsB,OAChC,CAAC,EACDc,UAAU,EAAE;AAAA,KACF,CAAC;AAAA,GACR,CAAC;AAEb;;;;"}
@@ -10,7 +10,7 @@ import { removeBy, noop, isPresent, isNotEmpty } from '@bigbinary/neeto-cist';
10
10
  import { mergeRight, isEmpty, assoc } from 'ramda';
11
11
  import { useTranslation, Trans } from 'react-i18next';
12
12
  import { d as directUploadsApi, F as FileIcon, u as useDropFiles } from './chunk-BFKmIsWV.js';
13
- import { D as DEFAULT_FILE_UPLOAD_CONFIG, a as ATTACHMENT_OPTIONS, F as File, u as useFileUploader } from './chunk-KiXJWA8i.js';
13
+ import { D as DEFAULT_FILE_UPLOAD_CONFIG, a as ATTACHMENT_OPTIONS, F as File, u as useFileUploader } from './chunk-1vCNA-at.js';
14
14
  import { Check, X, EllipsisVertical } from 'lucide-react';
15
15
  import useOnClickOutside from '@bigbinary/neeto-commons-frontend/v2/react-utils/useOnClickOutside';
16
16
  import { withEventTargetValue } from '@bigbinary/neeto-commons-frontend/v2/utils';
@@ -381,7 +381,7 @@ var AttachmentProgress = function AttachmentProgress(_ref) {
381
381
  };
382
382
 
383
383
  var Preview = /*#__PURE__*/lazy(function () {
384
- return import('./chunk-DtQctlVh.js');
384
+ return import('./chunk-BN2ot0eJ.js');
385
385
  });
386
386
  var Attachments = function Attachments(_ref, ref) {
387
387
  var _fileUploadConfig$all;
@@ -551,4 +551,4 @@ Attachments.displayName = "NeetoEditorAttachments";
551
551
  var Attachments$1 = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(Attachments));
552
552
 
553
553
  export { Attachments$1 as A, checkPreviewAvailability as c, downloadFile as d };
554
- //# sourceMappingURL=chunk--BjpQHaY.js.map
554
+ //# sourceMappingURL=chunk-BaRCz8kF.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunk--BjpQHaY.js","sources":["../src/v2/components/Attachments/utils.js","../src/v2/components/Attachments/Attachment.jsx","../src/v2/components/Attachments/AttachmentProgress.jsx","../src/v2/components/Attachments/index.jsx"],"sourcesContent":["import { Toastr } from \"@bigbinary/neeto-atoms\";\nimport { mergeRight } from \"ramda\";\n\nimport { DEFAULT_FILE_UPLOAD_CONFIG } from \"./constants\";\n\nexport const buildFileUploadConfig = config =>\n mergeRight(DEFAULT_FILE_UPLOAD_CONFIG, config);\n\nexport const downloadFile = async (fileUrl, filename) => {\n try {\n const response = await fetch(fileUrl);\n const blob = await response.blob();\n const blobUrl = URL.createObjectURL(blob);\n\n const a = document.createElement(\"a\");\n a.href = blobUrl;\n a.setAttribute(\"download\", filename);\n a.style.display = \"none\";\n document.body.appendChild(a);\n\n a.click();\n\n document.body.removeChild(a);\n URL.revokeObjectURL(blobUrl);\n } catch (error) {\n Toastr.error(error);\n }\n};\n\nexport const checkPreviewAvailability = contentType =>\n contentType &&\n (contentType.startsWith(\"video/\") ||\n contentType === \"application/pdf\" ||\n contentType === \"image/jpeg\" ||\n contentType === \"image/gif\" ||\n contentType === \"image/png\" ||\n contentType === \"image/webp\" ||\n contentType === \"text/plain\" ||\n contentType === \"image/bmp\" ||\n contentType === \"application/msword\" ||\n contentType ===\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\" ||\n contentType === \"image/jpg\" ||\n contentType === \"application/vnd.ms-powerpoint\" ||\n contentType ===\n \"application/vnd.openxmlformats-officedocument.presentationml.presentation\" ||\n contentType === \"image/tiff\" ||\n contentType === \"application/vnd.ms-excel\" ||\n contentType ===\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\");\n","import { useState, useRef } from \"react\";\n\nimport {\n Alert,\n Button,\n DropdownMenu,\n Input,\n Spinner,\n Toastr,\n Tooltip,\n Typography,\n} from \"@bigbinary/neeto-atoms\";\nimport { Check, EllipsisVertical, X } from \"lucide-react\";\nimport { removeBy } from \"neetocist\";\nimport useOnClickOutside from \"neetocommons/v2/react-utils/useOnClickOutside\";\nimport { withEventTargetValue } from \"neetocommons/v2/utils\";\nimport { isEmpty, assoc } from \"ramda\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport directUploadsApi from \"apis/direct_uploads\";\nimport FileIcon from \"src/v2/components/Common/FileIcon\";\n\nimport { ATTACHMENT_OPTIONS } from \"./constants\";\nimport { downloadFile } from \"./utils\";\n\nconst { Menu, MenuItem } = DropdownMenu;\n\nconst Attachment = ({\n attachment,\n attachments,\n disabled,\n onChange,\n setSelectedAttachment,\n isLoading,\n allowDelete,\n allowOpenInNewTab,\n}) => {\n const { t } = useTranslation();\n\n const [isRenaming, setIsRenaming] = useState(false);\n const [isUpdating, setIsUpdating] = useState(false);\n const [isDeleteAlertOpen, setIsDeleteAlertOpen] = useState(false);\n const [isDeleting, setIsDeleting] = useState(false);\n const [newFilename, setNewFilename] = useState(\"\");\n\n const renameRef = useRef(null);\n\n useOnClickOutside(renameRef, () => {\n if (!isRenaming) return;\n setIsRenaming(false);\n setNewFilename(\"\");\n });\n\n const handleDownload = () =>\n downloadFile(attachment.url, attachment.filename);\n\n const handleOpenInNewTab = () =>\n window.open(attachment.url, \"_blank\", \"noopener,noreferrer\");\n\n const handleRename = async () => {\n try {\n setIsUpdating(true);\n const { signedId } = attachment;\n const payload = { blob: { filename: newFilename } };\n\n const response = await directUploadsApi.update({ signedId, payload });\n const filename = response.data?.blob?.filename || response.blob.filename;\n\n onChange(\n attachments.map(attachment =>\n attachment.signedId === signedId\n ? assoc(\"filename\", filename, attachment)\n : attachment\n )\n );\n } catch (error) {\n Toastr.error(error);\n } finally {\n setIsRenaming(false);\n setIsUpdating(false);\n setNewFilename(\"\");\n }\n };\n\n const handleDelete = async () => {\n if (!allowDelete) return;\n\n setIsDeleting(true);\n try {\n const { signedId } = attachment;\n await directUploadsApi.destroy(signedId);\n onChange(removeBy({ signedId }, attachments));\n } catch (error) {\n Toastr.error(error);\n }\n };\n\n const handlers = {\n ...(allowOpenInNewTab && {\n [ATTACHMENT_OPTIONS.OPEN_IN_NEW_TAB]: handleOpenInNewTab,\n }),\n [ATTACHMENT_OPTIONS.DOWNLOAD]: handleDownload,\n [ATTACHMENT_OPTIONS.RENAME]: handleRename,\n ...(allowDelete && { [ATTACHMENT_OPTIONS.DELETE]: handleDelete }),\n };\n\n const onMenuItemClick = ({ key, handler }) => {\n if (key === ATTACHMENT_OPTIONS.RENAME) {\n setIsRenaming(true);\n setNewFilename(attachment.filename);\n } else if (key === ATTACHMENT_OPTIONS.DELETE) {\n setNewFilename(attachment.filename);\n setIsDeleteAlertOpen(true);\n } else {\n handler();\n }\n };\n\n const handleKeyDown = ({ event, key }) => {\n const handler = handlers[key];\n\n if (event.key === \"Enter\" && handler && !isEmpty(newFilename)) {\n event.stopPropagation();\n event.preventDefault();\n handler();\n }\n\n if (event.key === \"Escape\") {\n setIsRenaming(false);\n setNewFilename(\"\");\n }\n };\n\n return (\n <>\n <div\n className=\"ne-attachments__preview\"\n data-testid=\"ne-attachments-wrapper\"\n >\n {isRenaming ? (\n <div ref={renameRef}>\n <Tooltip content={newFilename} position=\"top\">\n <Input\n autoFocus\n data-testid=\"neeto-editor-preview-rename-input\"\n size=\"small\"\n value={newFilename}\n error={\n isEmpty(newFilename)\n ? t(\"neetoEditor.attachments.nameEmpty\")\n : \"\"\n }\n suffix={\n <div className=\"flex items-center justify-end\">\n <Button\n data-testid=\"neeto-editor-preview-rename-submit-button\"\n disabled={isEmpty(newFilename) || isUpdating}\n icon={Check}\n loading={isUpdating}\n size=\"sm\"\n variant=\"ghost\"\n onClick={handleRename}\n />\n <Button\n data-testid=\"neeto-editor-preview-rename-cancel-button\"\n disabled={isUpdating}\n icon={X}\n size=\"sm\"\n variant=\"ghost\"\n onClick={() => {\n setIsRenaming(false);\n setNewFilename(\"\");\n }}\n />\n </div>\n }\n onChange={withEventTargetValue(setNewFilename)}\n onKeyDown={event =>\n handleKeyDown({\n event,\n key: ATTACHMENT_OPTIONS.RENAME,\n })\n }\n />\n </Tooltip>\n </div>\n ) : (\n <>\n <div\n className=\"ne-attachments__preview-wrapper\"\n onClick={() => setSelectedAttachment(attachment)}\n >\n <FileIcon\n className=\"ne-attachments__preview-wrapper__icon\"\n fileName={attachment.filename}\n />\n <Tooltip content={attachment.filename} position=\"top\">\n <Typography variant=\"body2\">{attachment.filename}</Typography>\n </Tooltip>\n {isLoading && <Spinner className=\"attachment-button-loader\" />}\n </div>\n <Tooltip\n content={t(\"neetoEditor.attachments.actionsBlocked\")}\n disabled={!disabled}\n position=\"top\"\n >\n <DropdownMenu\n {...{ disabled }}\n // neeto-atoms's default rich trigger always appends a\n // ChevronDown as trailing icon. For an ellipsis \"more\n // actions\" button the ellipsis itself signals a menu —\n // use customTarget to render the icon-only button without\n // the redundant chevron.\n dropdownProps={{ className: \"ne-editor-dropdown\" }}\n customTarget={\n <Button\n {...{ disabled }}\n data-testid=\"neeto-editor-attachment-actions\"\n icon={EllipsisVertical}\n size=\"sm\"\n variant=\"ghost\"\n />\n }\n >\n <Menu>\n {Object.entries(handlers).map(([label, handler]) => (\n <MenuItem\n data-testid={`neeto-editor-preview-${label.toLowerCase()}-button`}\n key={label}\n onClick={() => onMenuItemClick({ key: label, handler })}\n >\n {label}\n </MenuItem>\n ))}\n </Menu>\n </DropdownMenu>\n </Tooltip>\n </>\n )}\n </div>\n <Alert\n isOpen={isDeleteAlertOpen}\n isSubmitting={isDeleting}\n style=\"danger\"\n submitButtonLabel={t(\"neetoEditor.menu.delete\")}\n title={t(\"neetoEditor.attachments.deleteTitle\")}\n message={\n <Trans\n i18nKey=\"neetoEditor.attachments.deleteConfirmation\"\n values={{ entity: newFilename }}\n />\n }\n onClose={() => setIsDeleteAlertOpen(false)}\n onSubmit={handleDelete}\n />\n </>\n );\n};\n\nexport default Attachment;\n","import { Button, Typography } from \"@bigbinary/neeto-atoms\";\nimport { X } from \"lucide-react\";\nimport { FileIcon } from \"react-file-icon\";\n\nconst AttachmentProgress = ({ attachment, cancelUpload }) => {\n const progressPercentage = `${attachment.progress ?? 0}%`;\n\n const handleCancel = () => {\n cancelUpload(attachment.id);\n };\n\n return (\n <div className=\"ne-attachments__preview\">\n <div className=\"ne-attachments__preview__progress-icon\">\n <FileIcon />\n </div>\n <div className=\"ne-attachments__preview__progress\">\n <Typography variant=\"body2\">{attachment.filename}</Typography>\n <Typography variant=\"body2\">{progressPercentage}</Typography>\n </div>\n <Button\n data-testid=\"neeto-editor-preview-upload-cancel-button\"\n icon={X}\n size=\"sm\"\n variant=\"ghost\"\n onClick={handleCancel}\n />\n </div>\n );\n};\n\nexport default AttachmentProgress;\n","import {\n forwardRef,\n useRef,\n useState,\n useImperativeHandle,\n lazy,\n Suspense,\n useMemo,\n memo,\n} from \"react\";\n\nimport { Button, Toastr } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { isNotEmpty, isPresent, noop } from \"neetocist\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport useDropFiles from \"hooks/useDropFiles\";\nimport useFileUploader from \"src/v2/hooks/useFileUploader\";\n\nimport Attachment from \"./Attachment\";\nimport AttachmentProgress from \"./AttachmentProgress\";\nimport { buildFileUploadConfig } from \"./utils\";\n\nconst Preview = lazy(() => import(\"./Preview\"));\n\nconst Attachments = (\n {\n attachments = [],\n className = \"\",\n onChange = noop,\n isIndependent = true,\n disabled = false,\n dragDropRef = null,\n config = {},\n setIsUploading = noop,\n allowDelete = true,\n allowOpenInNewTab = true,\n },\n ref\n) => {\n const { t } = useTranslation();\n\n const [selectedAttachment, setSelectedAttachment] = useState({});\n const [didFetchPreviewBundle, setDidFetchPreviewBundle] = useState(false);\n\n const attachmentInputRef = useRef(null);\n\n const fileUploadConfig = useMemo(\n () => buildFileUploadConfig(config),\n [config]\n );\n\n const { addFiles, uploadFiles, queuedFiles, cancelUpload, isUploading } =\n useFileUploader({\n config: fileUploadConfig,\n setIsUploadingOnHost: setIsUploading,\n attachments,\n });\n\n const handleAddFile = async event => {\n addFiles(event.target.files);\n const uploadedFiles = await uploadFiles();\n isNotEmpty(uploadedFiles) && onChange([...attachments, ...uploadedFiles]);\n attachmentInputRef.current.value = null;\n };\n\n const handleUploadAttachments = () => attachmentInputRef.current.click();\n\n const handleFileInputClick = event => {\n if (!(!isEmpty(attachments) && fileUploadConfig.maxNumberOfFiles === 1)) {\n return;\n }\n event.preventDefault();\n Toastr.warning(t(\"neetoEditor.attachments.oneAttachmentAllowed\"));\n };\n\n useImperativeHandle(ref, () => ({ handleUploadAttachments }), []);\n\n const handleFilesDrop = async files => {\n addFiles(files);\n const uploadedFiles = await uploadFiles();\n isNotEmpty(uploadedFiles) && onChange([...attachments, ...uploadedFiles]);\n };\n\n useDropFiles({\n dropTargetRef: dragDropRef,\n attachments,\n onDrop: handleFilesDrop,\n });\n\n return (\n <div className={classnames(\"ne-attachments\", { [className]: className })}>\n <div className=\"ne-attachments__items\">\n {attachments.map(attachment => (\n <Attachment\n {...{\n allowDelete,\n allowOpenInNewTab,\n attachment,\n attachments,\n disabled,\n onChange,\n setSelectedAttachment,\n }}\n key={attachment.signedId}\n isLoading={\n !didFetchPreviewBundle &&\n selectedAttachment.url === attachment.url\n }\n />\n ))}\n {queuedFiles.map(attachment => (\n <AttachmentProgress\n {...{ attachment, cancelUpload }}\n key={attachment.id}\n />\n ))}\n </div>\n <div>\n {isIndependent && (\n <Button\n data-testid=\"neeto-editor-attachments-upload-button\"\n disabled={isUploading}\n label={t(\"neetoEditor.attachments.add\")}\n loading={isUploading}\n variant=\"link\"\n onClick={handleUploadAttachments}\n />\n )}\n <input\n accept={fileUploadConfig.allowedFileTypes?.join(\",\")}\n multiple={fileUploadConfig.maxNumberOfFiles !== 1}\n ref={attachmentInputRef}\n type=\"file\"\n onChange={handleAddFile}\n onClick={handleFileInputClick}\n />\n <Suspense fallback={<span />}>\n {isPresent(selectedAttachment) && (\n <Preview\n {...{\n attachments,\n selectedAttachment,\n setDidFetchPreviewBundle,\n setSelectedAttachment,\n }}\n onClose={() => setSelectedAttachment({})}\n />\n )}\n </Suspense>\n </div>\n </div>\n );\n};\n\nAttachments.displayName = \"NeetoEditorAttachments\";\n\nexport default memo(forwardRef(Attachments));\n"],"names":["buildFileUploadConfig","config","mergeRight","DEFAULT_FILE_UPLOAD_CONFIG","downloadFile","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","fileUrl","filename","response","blob","blobUrl","a","wrap","_callee$","_context","prev","next","fetch","sent","URL","createObjectURL","document","createElement","href","setAttribute","style","display","body","appendChild","click","removeChild","revokeObjectURL","t0","Toastr","error","stop","_x","_x2","apply","arguments","checkPreviewAvailability","contentType","startsWith","Menu","DropdownMenu","MenuItem","Attachment","attachment","attachments","disabled","onChange","setSelectedAttachment","isLoading","allowDelete","allowOpenInNewTab","_useTranslation","useTranslation","t","_useState","useState","_useState2","_slicedToArray","isRenaming","setIsRenaming","_useState3","_useState4","isUpdating","setIsUpdating","_useState5","_useState6","isDeleteAlertOpen","setIsDeleteAlertOpen","_useState7","_useState8","isDeleting","setIsDeleting","_useState9","_useState0","newFilename","setNewFilename","renameRef","useRef","useOnClickOutside","handleDownload","url","handleOpenInNewTab","window","open","handleRename","_ref2","_response$data","signedId","payload","directUploadsApi","update","data","map","assoc","finish","handleDelete","_ref3","_callee2","_callee2$","_context2","abrupt","destroy","removeBy","handlers","_objectSpread","_defineProperty","ATTACHMENT_OPTIONS","OPEN_IN_NEW_TAB","DOWNLOAD","RENAME","DELETE","onMenuItemClick","_ref6","key","handler","handleKeyDown","_ref7","event","isEmpty","stopPropagation","preventDefault","_jsxs","_Fragment","children","_jsx","className","ref","Tooltip","content","position","Input","autoFocus","size","value","suffix","Button","icon","Check","loading","variant","onClick","X","withEventTargetValue","onKeyDown","FileIcon","fileName","Typography","Spinner","dropdownProps","customTarget","EllipsisVertical","Object","entries","_ref8","_ref9","label","concat","toLowerCase","Alert","isOpen","isSubmitting","submitButtonLabel","title","message","Trans","i18nKey","values","entity","onClose","onSubmit","AttachmentProgress","_attachment$progress","cancelUpload","progressPercentage","progress","handleCancel","id","Preview","lazy","Attachments","_fileUploadConfig$all","_ref$attachments","_ref$className","_ref$onChange","noop","_ref$isIndependent","isIndependent","_ref$disabled","_ref$dragDropRef","dragDropRef","_ref$config","_ref$setIsUploading","setIsUploading","_ref$allowDelete","_ref$allowOpenInNewTa","selectedAttachment","didFetchPreviewBundle","setDidFetchPreviewBundle","attachmentInputRef","fileUploadConfig","useMemo","_useFileUploader","useFileUploader","setIsUploadingOnHost","addFiles","uploadFiles","queuedFiles","isUploading","handleAddFile","uploadedFiles","target","files","isNotEmpty","_toConsumableArray","current","handleUploadAttachments","handleFileInputClick","maxNumberOfFiles","warning","useImperativeHandle","handleFilesDrop","useDropFiles","dropTargetRef","onDrop","classnames","_createElement","accept","allowedFileTypes","join","multiple","type","Suspense","fallback","isPresent","displayName","memo","forwardRef"],"mappings":"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"}
1
+ {"version":3,"file":"chunk-BaRCz8kF.js","sources":["../src/v2/components/Attachments/utils.js","../src/v2/components/Attachments/Attachment.jsx","../src/v2/components/Attachments/AttachmentProgress.jsx","../src/v2/components/Attachments/index.jsx"],"sourcesContent":["import { Toastr } from \"@bigbinary/neeto-atoms\";\nimport { mergeRight } from \"ramda\";\n\nimport { DEFAULT_FILE_UPLOAD_CONFIG } from \"./constants\";\n\nexport const buildFileUploadConfig = config =>\n mergeRight(DEFAULT_FILE_UPLOAD_CONFIG, config);\n\nexport const downloadFile = async (fileUrl, filename) => {\n try {\n const response = await fetch(fileUrl);\n const blob = await response.blob();\n const blobUrl = URL.createObjectURL(blob);\n\n const a = document.createElement(\"a\");\n a.href = blobUrl;\n a.setAttribute(\"download\", filename);\n a.style.display = \"none\";\n document.body.appendChild(a);\n\n a.click();\n\n document.body.removeChild(a);\n URL.revokeObjectURL(blobUrl);\n } catch (error) {\n Toastr.error(error);\n }\n};\n\nexport const checkPreviewAvailability = contentType =>\n contentType &&\n (contentType.startsWith(\"video/\") ||\n contentType === \"application/pdf\" ||\n contentType === \"image/jpeg\" ||\n contentType === \"image/gif\" ||\n contentType === \"image/png\" ||\n contentType === \"image/webp\" ||\n contentType === \"text/plain\" ||\n contentType === \"image/bmp\" ||\n contentType === \"application/msword\" ||\n contentType ===\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\" ||\n contentType === \"image/jpg\" ||\n contentType === \"application/vnd.ms-powerpoint\" ||\n contentType ===\n \"application/vnd.openxmlformats-officedocument.presentationml.presentation\" ||\n contentType === \"image/tiff\" ||\n contentType === \"application/vnd.ms-excel\" ||\n contentType ===\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\");\n","import { useState, useRef } from \"react\";\n\nimport {\n Alert,\n Button,\n DropdownMenu,\n Input,\n Spinner,\n Toastr,\n Tooltip,\n Typography,\n} from \"@bigbinary/neeto-atoms\";\nimport { Check, EllipsisVertical, X } from \"lucide-react\";\nimport { removeBy } from \"neetocist\";\nimport useOnClickOutside from \"neetocommons/v2/react-utils/useOnClickOutside\";\nimport { withEventTargetValue } from \"neetocommons/v2/utils\";\nimport { isEmpty, assoc } from \"ramda\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport directUploadsApi from \"apis/direct_uploads\";\nimport FileIcon from \"src/v2/components/Common/FileIcon\";\n\nimport { ATTACHMENT_OPTIONS } from \"./constants\";\nimport { downloadFile } from \"./utils\";\n\nconst { Menu, MenuItem } = DropdownMenu;\n\nconst Attachment = ({\n attachment,\n attachments,\n disabled,\n onChange,\n setSelectedAttachment,\n isLoading,\n allowDelete,\n allowOpenInNewTab,\n}) => {\n const { t } = useTranslation();\n\n const [isRenaming, setIsRenaming] = useState(false);\n const [isUpdating, setIsUpdating] = useState(false);\n const [isDeleteAlertOpen, setIsDeleteAlertOpen] = useState(false);\n const [isDeleting, setIsDeleting] = useState(false);\n const [newFilename, setNewFilename] = useState(\"\");\n\n const renameRef = useRef(null);\n\n useOnClickOutside(renameRef, () => {\n if (!isRenaming) return;\n setIsRenaming(false);\n setNewFilename(\"\");\n });\n\n const handleDownload = () =>\n downloadFile(attachment.url, attachment.filename);\n\n const handleOpenInNewTab = () =>\n window.open(attachment.url, \"_blank\", \"noopener,noreferrer\");\n\n const handleRename = async () => {\n try {\n setIsUpdating(true);\n const { signedId } = attachment;\n const payload = { blob: { filename: newFilename } };\n\n const response = await directUploadsApi.update({ signedId, payload });\n const filename = response.data?.blob?.filename || response.blob.filename;\n\n onChange(\n attachments.map(attachment =>\n attachment.signedId === signedId\n ? assoc(\"filename\", filename, attachment)\n : attachment\n )\n );\n } catch (error) {\n Toastr.error(error);\n } finally {\n setIsRenaming(false);\n setIsUpdating(false);\n setNewFilename(\"\");\n }\n };\n\n const handleDelete = async () => {\n if (!allowDelete) return;\n\n setIsDeleting(true);\n try {\n const { signedId } = attachment;\n await directUploadsApi.destroy(signedId);\n onChange(removeBy({ signedId }, attachments));\n } catch (error) {\n Toastr.error(error);\n }\n };\n\n const handlers = {\n ...(allowOpenInNewTab && {\n [ATTACHMENT_OPTIONS.OPEN_IN_NEW_TAB]: handleOpenInNewTab,\n }),\n [ATTACHMENT_OPTIONS.DOWNLOAD]: handleDownload,\n [ATTACHMENT_OPTIONS.RENAME]: handleRename,\n ...(allowDelete && { [ATTACHMENT_OPTIONS.DELETE]: handleDelete }),\n };\n\n const onMenuItemClick = ({ key, handler }) => {\n if (key === ATTACHMENT_OPTIONS.RENAME) {\n setIsRenaming(true);\n setNewFilename(attachment.filename);\n } else if (key === ATTACHMENT_OPTIONS.DELETE) {\n setNewFilename(attachment.filename);\n setIsDeleteAlertOpen(true);\n } else {\n handler();\n }\n };\n\n const handleKeyDown = ({ event, key }) => {\n const handler = handlers[key];\n\n if (event.key === \"Enter\" && handler && !isEmpty(newFilename)) {\n event.stopPropagation();\n event.preventDefault();\n handler();\n }\n\n if (event.key === \"Escape\") {\n setIsRenaming(false);\n setNewFilename(\"\");\n }\n };\n\n return (\n <>\n <div\n className=\"ne-attachments__preview\"\n data-testid=\"ne-attachments-wrapper\"\n >\n {isRenaming ? (\n <div ref={renameRef}>\n <Tooltip content={newFilename} position=\"top\">\n <Input\n autoFocus\n data-testid=\"neeto-editor-preview-rename-input\"\n size=\"small\"\n value={newFilename}\n error={\n isEmpty(newFilename)\n ? t(\"neetoEditor.attachments.nameEmpty\")\n : \"\"\n }\n suffix={\n <div className=\"flex items-center justify-end\">\n <Button\n data-testid=\"neeto-editor-preview-rename-submit-button\"\n disabled={isEmpty(newFilename) || isUpdating}\n icon={Check}\n loading={isUpdating}\n size=\"sm\"\n variant=\"ghost\"\n onClick={handleRename}\n />\n <Button\n data-testid=\"neeto-editor-preview-rename-cancel-button\"\n disabled={isUpdating}\n icon={X}\n size=\"sm\"\n variant=\"ghost\"\n onClick={() => {\n setIsRenaming(false);\n setNewFilename(\"\");\n }}\n />\n </div>\n }\n onChange={withEventTargetValue(setNewFilename)}\n onKeyDown={event =>\n handleKeyDown({\n event,\n key: ATTACHMENT_OPTIONS.RENAME,\n })\n }\n />\n </Tooltip>\n </div>\n ) : (\n <>\n <div\n className=\"ne-attachments__preview-wrapper\"\n onClick={() => setSelectedAttachment(attachment)}\n >\n <FileIcon\n className=\"ne-attachments__preview-wrapper__icon\"\n fileName={attachment.filename}\n />\n <Tooltip content={attachment.filename} position=\"top\">\n <Typography variant=\"body2\">{attachment.filename}</Typography>\n </Tooltip>\n {isLoading && <Spinner className=\"attachment-button-loader\" />}\n </div>\n <Tooltip\n content={t(\"neetoEditor.attachments.actionsBlocked\")}\n disabled={!disabled}\n position=\"top\"\n >\n <DropdownMenu\n {...{ disabled }}\n // neeto-atoms's default rich trigger always appends a\n // ChevronDown as trailing icon. For an ellipsis \"more\n // actions\" button the ellipsis itself signals a menu —\n // use customTarget to render the icon-only button without\n // the redundant chevron.\n dropdownProps={{ className: \"ne-editor-dropdown\" }}\n customTarget={\n <Button\n {...{ disabled }}\n data-testid=\"neeto-editor-attachment-actions\"\n icon={EllipsisVertical}\n size=\"sm\"\n variant=\"ghost\"\n />\n }\n >\n <Menu>\n {Object.entries(handlers).map(([label, handler]) => (\n <MenuItem\n data-testid={`neeto-editor-preview-${label.toLowerCase()}-button`}\n key={label}\n onClick={() => onMenuItemClick({ key: label, handler })}\n >\n {label}\n </MenuItem>\n ))}\n </Menu>\n </DropdownMenu>\n </Tooltip>\n </>\n )}\n </div>\n <Alert\n isOpen={isDeleteAlertOpen}\n isSubmitting={isDeleting}\n style=\"danger\"\n submitButtonLabel={t(\"neetoEditor.menu.delete\")}\n title={t(\"neetoEditor.attachments.deleteTitle\")}\n message={\n <Trans\n i18nKey=\"neetoEditor.attachments.deleteConfirmation\"\n values={{ entity: newFilename }}\n />\n }\n onClose={() => setIsDeleteAlertOpen(false)}\n onSubmit={handleDelete}\n />\n </>\n );\n};\n\nexport default Attachment;\n","import { Button, Typography } from \"@bigbinary/neeto-atoms\";\nimport { X } from \"lucide-react\";\nimport { FileIcon } from \"react-file-icon\";\n\nconst AttachmentProgress = ({ attachment, cancelUpload }) => {\n const progressPercentage = `${attachment.progress ?? 0}%`;\n\n const handleCancel = () => {\n cancelUpload(attachment.id);\n };\n\n return (\n <div className=\"ne-attachments__preview\">\n <div className=\"ne-attachments__preview__progress-icon\">\n <FileIcon />\n </div>\n <div className=\"ne-attachments__preview__progress\">\n <Typography variant=\"body2\">{attachment.filename}</Typography>\n <Typography variant=\"body2\">{progressPercentage}</Typography>\n </div>\n <Button\n data-testid=\"neeto-editor-preview-upload-cancel-button\"\n icon={X}\n size=\"sm\"\n variant=\"ghost\"\n onClick={handleCancel}\n />\n </div>\n );\n};\n\nexport default AttachmentProgress;\n","import {\n forwardRef,\n useRef,\n useState,\n useImperativeHandle,\n lazy,\n Suspense,\n useMemo,\n memo,\n} from \"react\";\n\nimport { Button, Toastr } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { isNotEmpty, isPresent, noop } from \"neetocist\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport useDropFiles from \"hooks/useDropFiles\";\nimport useFileUploader from \"src/v2/hooks/useFileUploader\";\n\nimport Attachment from \"./Attachment\";\nimport AttachmentProgress from \"./AttachmentProgress\";\nimport { buildFileUploadConfig } from \"./utils\";\n\nconst Preview = lazy(() => import(\"./Preview\"));\n\nconst Attachments = (\n {\n attachments = [],\n className = \"\",\n onChange = noop,\n isIndependent = true,\n disabled = false,\n dragDropRef = null,\n config = {},\n setIsUploading = noop,\n allowDelete = true,\n allowOpenInNewTab = true,\n },\n ref\n) => {\n const { t } = useTranslation();\n\n const [selectedAttachment, setSelectedAttachment] = useState({});\n const [didFetchPreviewBundle, setDidFetchPreviewBundle] = useState(false);\n\n const attachmentInputRef = useRef(null);\n\n const fileUploadConfig = useMemo(\n () => buildFileUploadConfig(config),\n [config]\n );\n\n const { addFiles, uploadFiles, queuedFiles, cancelUpload, isUploading } =\n useFileUploader({\n config: fileUploadConfig,\n setIsUploadingOnHost: setIsUploading,\n attachments,\n });\n\n const handleAddFile = async event => {\n addFiles(event.target.files);\n const uploadedFiles = await uploadFiles();\n isNotEmpty(uploadedFiles) && onChange([...attachments, ...uploadedFiles]);\n attachmentInputRef.current.value = null;\n };\n\n const handleUploadAttachments = () => attachmentInputRef.current.click();\n\n const handleFileInputClick = event => {\n if (!(!isEmpty(attachments) && fileUploadConfig.maxNumberOfFiles === 1)) {\n return;\n }\n event.preventDefault();\n Toastr.warning(t(\"neetoEditor.attachments.oneAttachmentAllowed\"));\n };\n\n useImperativeHandle(ref, () => ({ handleUploadAttachments }), []);\n\n const handleFilesDrop = async files => {\n addFiles(files);\n const uploadedFiles = await uploadFiles();\n isNotEmpty(uploadedFiles) && onChange([...attachments, ...uploadedFiles]);\n };\n\n useDropFiles({\n dropTargetRef: dragDropRef,\n attachments,\n onDrop: handleFilesDrop,\n });\n\n return (\n <div className={classnames(\"ne-attachments\", { [className]: className })}>\n <div className=\"ne-attachments__items\">\n {attachments.map(attachment => (\n <Attachment\n {...{\n allowDelete,\n allowOpenInNewTab,\n attachment,\n attachments,\n disabled,\n onChange,\n setSelectedAttachment,\n }}\n key={attachment.signedId}\n isLoading={\n !didFetchPreviewBundle &&\n selectedAttachment.url === attachment.url\n }\n />\n ))}\n {queuedFiles.map(attachment => (\n <AttachmentProgress\n {...{ attachment, cancelUpload }}\n key={attachment.id}\n />\n ))}\n </div>\n <div>\n {isIndependent && (\n <Button\n data-testid=\"neeto-editor-attachments-upload-button\"\n disabled={isUploading}\n label={t(\"neetoEditor.attachments.add\")}\n loading={isUploading}\n variant=\"link\"\n onClick={handleUploadAttachments}\n />\n )}\n <input\n accept={fileUploadConfig.allowedFileTypes?.join(\",\")}\n multiple={fileUploadConfig.maxNumberOfFiles !== 1}\n ref={attachmentInputRef}\n type=\"file\"\n onChange={handleAddFile}\n onClick={handleFileInputClick}\n />\n <Suspense fallback={<span />}>\n {isPresent(selectedAttachment) && (\n <Preview\n {...{\n attachments,\n selectedAttachment,\n setDidFetchPreviewBundle,\n setSelectedAttachment,\n }}\n onClose={() => setSelectedAttachment({})}\n />\n )}\n </Suspense>\n </div>\n </div>\n );\n};\n\nAttachments.displayName = \"NeetoEditorAttachments\";\n\nexport default memo(forwardRef(Attachments));\n"],"names":["buildFileUploadConfig","config","mergeRight","DEFAULT_FILE_UPLOAD_CONFIG","downloadFile","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","fileUrl","filename","response","blob","blobUrl","a","wrap","_callee$","_context","prev","next","fetch","sent","URL","createObjectURL","document","createElement","href","setAttribute","style","display","body","appendChild","click","removeChild","revokeObjectURL","t0","Toastr","error","stop","_x","_x2","apply","arguments","checkPreviewAvailability","contentType","startsWith","Menu","DropdownMenu","MenuItem","Attachment","attachment","attachments","disabled","onChange","setSelectedAttachment","isLoading","allowDelete","allowOpenInNewTab","_useTranslation","useTranslation","t","_useState","useState","_useState2","_slicedToArray","isRenaming","setIsRenaming","_useState3","_useState4","isUpdating","setIsUpdating","_useState5","_useState6","isDeleteAlertOpen","setIsDeleteAlertOpen","_useState7","_useState8","isDeleting","setIsDeleting","_useState9","_useState0","newFilename","setNewFilename","renameRef","useRef","useOnClickOutside","handleDownload","url","handleOpenInNewTab","window","open","handleRename","_ref2","_response$data","signedId","payload","directUploadsApi","update","data","map","assoc","finish","handleDelete","_ref3","_callee2","_callee2$","_context2","abrupt","destroy","removeBy","handlers","_objectSpread","_defineProperty","ATTACHMENT_OPTIONS","OPEN_IN_NEW_TAB","DOWNLOAD","RENAME","DELETE","onMenuItemClick","_ref6","key","handler","handleKeyDown","_ref7","event","isEmpty","stopPropagation","preventDefault","_jsxs","_Fragment","children","_jsx","className","ref","Tooltip","content","position","Input","autoFocus","size","value","suffix","Button","icon","Check","loading","variant","onClick","X","withEventTargetValue","onKeyDown","FileIcon","fileName","Typography","Spinner","dropdownProps","customTarget","EllipsisVertical","Object","entries","_ref8","_ref9","label","concat","toLowerCase","Alert","isOpen","isSubmitting","submitButtonLabel","title","message","Trans","i18nKey","values","entity","onClose","onSubmit","AttachmentProgress","_attachment$progress","cancelUpload","progressPercentage","progress","handleCancel","id","Preview","lazy","Attachments","_fileUploadConfig$all","_ref$attachments","_ref$className","_ref$onChange","noop","_ref$isIndependent","isIndependent","_ref$disabled","_ref$dragDropRef","dragDropRef","_ref$config","_ref$setIsUploading","setIsUploading","_ref$allowDelete","_ref$allowOpenInNewTa","selectedAttachment","didFetchPreviewBundle","setDidFetchPreviewBundle","attachmentInputRef","fileUploadConfig","useMemo","_useFileUploader","useFileUploader","setIsUploadingOnHost","addFiles","uploadFiles","queuedFiles","isUploading","handleAddFile","uploadedFiles","target","files","isNotEmpty","_toConsumableArray","current","handleUploadAttachments","handleFileInputClick","maxNumberOfFiles","warning","useImperativeHandle","handleFilesDrop","useDropFiles","dropTargetRef","onDrop","classnames","_createElement","accept","allowedFileTypes","join","multiple","type","Suspense","fallback","isPresent","displayName","memo","forwardRef"],"mappings":"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"}