@bigbinary/neeto-editor 1.38.9 → 1.38.11

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 (42) hide show
  1. package/dist/Attachments.js +3 -3
  2. package/dist/Editor.js +4 -4
  3. package/dist/EditorContent.js +1 -1
  4. package/dist/FormikEditor.js +3 -3
  5. package/dist/Menu.js +2 -2
  6. package/dist/{chunk-5c874a66.js → chunk-17c1b4e1.js} +23 -13
  7. package/dist/chunk-17c1b4e1.js.map +1 -0
  8. package/dist/{chunk-8199190a.js → chunk-32e353fe.js} +859 -15
  9. package/dist/chunk-32e353fe.js.map +1 -0
  10. package/dist/{chunk-e9803348.js → chunk-8b1f773d.js} +4 -4
  11. package/dist/{chunk-e9803348.js.map → chunk-8b1f773d.js.map} +1 -1
  12. package/dist/chunk-b66ef3a3.js +513 -0
  13. package/dist/chunk-b66ef3a3.js.map +1 -0
  14. package/dist/cjs/Attachments.cjs.js +3 -3
  15. package/dist/cjs/Editor.cjs.js +6 -6
  16. package/dist/cjs/Editor.cjs.js.map +1 -1
  17. package/dist/cjs/EditorContent.cjs.js +1 -1
  18. package/dist/cjs/FormikEditor.cjs.js +3 -3
  19. package/dist/cjs/Menu.cjs.js +2 -2
  20. package/dist/cjs/{chunk-7d9a9ed1.cjs.js → chunk-938306ec.cjs.js} +852 -4
  21. package/dist/cjs/chunk-938306ec.cjs.js.map +1 -0
  22. package/dist/cjs/chunk-b5a7673a.cjs.js +529 -0
  23. package/dist/cjs/chunk-b5a7673a.cjs.js.map +1 -0
  24. package/dist/cjs/{chunk-635042c3.cjs.js → chunk-eb6c9e4e.cjs.js} +101 -101
  25. package/dist/cjs/{chunk-635042c3.cjs.js.map → chunk-eb6c9e4e.cjs.js.map} +1 -1
  26. package/dist/cjs/{chunk-534531c3.cjs.js → chunk-fd7976a0.cjs.js} +28 -18
  27. package/dist/cjs/chunk-fd7976a0.cjs.js.map +1 -0
  28. package/dist/cjs/index.cjs.js +5 -5
  29. package/dist/editor-content.min.css +1 -1
  30. package/dist/editor-output-pdf-email.css +1 -1
  31. package/dist/editor-output.js +1 -1
  32. package/dist/editor-stats.html +1 -1
  33. package/dist/index.js +5 -5
  34. package/package.json +1 -1
  35. package/dist/chunk-5c874a66.js.map +0 -1
  36. package/dist/chunk-8199190a.js.map +0 -1
  37. package/dist/chunk-f8510c23.js +0 -1356
  38. package/dist/chunk-f8510c23.js.map +0 -1
  39. package/dist/cjs/chunk-0dfcae31.cjs.js +0 -1373
  40. package/dist/cjs/chunk-0dfcae31.cjs.js.map +0 -1
  41. package/dist/cjs/chunk-534531c3.cjs.js.map +0 -1
  42. package/dist/cjs/chunk-7d9a9ed1.cjs.js.map +0 -1
@@ -0,0 +1,529 @@
1
+ 'use strict';
2
+
3
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
+ var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
5
+ var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
6
+ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
7
+ var _regeneratorRuntime = require('@babel/runtime/regenerator');
8
+ var React = require('react');
9
+ var classnames = require('classnames');
10
+ var neetoCist = require('@bigbinary/neeto-cist');
11
+ var neetoui = require('@bigbinary/neetoui');
12
+ var ramda = require('ramda');
13
+ var reactI18next = require('react-i18next');
14
+ var FileIcon = require('./chunk-938306ec.cjs.js');
15
+ var injectCss = require('./chunk-da9ee471.cjs.js');
16
+ var utils = require('@bigbinary/neeto-commons-frontend/utils');
17
+ var neetoIcons = require('@bigbinary/neeto-icons');
18
+ var initializers = require('@bigbinary/neeto-commons-frontend/initializers');
19
+ var constants = require('./chunk-d5fbc51f.cjs.js');
20
+ var axios = require('axios');
21
+
22
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
23
+
24
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
25
+ var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
26
+ var _asyncToGenerator__default = /*#__PURE__*/_interopDefaultLegacy(_asyncToGenerator);
27
+ var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
28
+ var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultLegacy(_regeneratorRuntime);
29
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
30
+ var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
31
+ var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
32
+
33
+ var css = ".ne-attachments{display:flex;flex-direction:column;gap:8px}.ne-attachments__items{display:flex;flex-wrap:wrap;gap:8px}.ne-attachments__preview{align-items:center;background-color:rgb(var(--neeto-ui-white));border:1px solid rgb(var(--neeto-ui-gray-200));border-radius:var(--neeto-ui-rounded-sm);display:flex;justify-content:space-between;padding:4px 2px 4px 8px;width:256px}.ne-attachments__preview-wrapper{display:flex;gap:8px;width:88%}.ne-attachments__preview-wrapper__icon{height:auto;width:15px}.ne-attachments__preview-wrapper p{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:92%}.ne-attachments__preview-wrapper:hover{cursor:pointer}.ne-attachments__preview__progress{display:flex;gap:4px;justify-content:space-between;opacity:.5;width:76%}.ne-attachments__preview__progress p{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:85%}.ne-attachments__preview__progress p:nth-child(2){flex-shrink:0;width:-moz-fit-content;width:fit-content}.ne-attachments__preview__progress-icon{height:auto;width:15px}.ne-attachments__preview:hover{box-shadow:0 0 0 1px rgb(var(--neeto-ui-gray-400))}.ne-attachments input[type=file]{display:none}.ne-attachments-preview{display:flex;flex-direction:column;gap:8px}.ne-attachments-preview__header{border-bottom:1px solid rgb(var(--neeto-ui-gray-200));display:flex;flex-direction:row;gap:8px;margin-bottom:8px}.ne-attachments-preview__header__fileinfo{align-items:flex-end;border-right:1px solid rgb(var(--neeto-ui-gray-200));display:flex;gap:4px;padding-right:6px}.ne-attachments-preview__header__fileinfo h3{font-weight:500}.ne-attachments-preview__body{align-items:center;display:flex;flex-grow:1;justify-content:center;min-height:10px;padding-bottom:8px!important;position:relative;width:100vw}.ne-attachments-preview__body-download{color:rgb(var(--neeto-ui-accent-800));cursor:pointer}.ne-attachments-preview__body-docviewer{height:100%;width:100%}.ne-attachments-preview__body img{max-height:100%;max-width:100%}.ne-attachments-preview__body video{height:100%;width:100%}.ne-attachments-preview__body iframe{height:100%;padding:0 8px;width:100%}.ne-attachments-preview__body-left,.ne-attachments-preview__body-right{position:absolute!important;top:50%;transform:translateY(-50%);z-index:1}.ne-attachments-preview__body-left:hover,.ne-attachments-preview__body-right:hover{background-color:rgba(var(--neeto-ui-gray-100),.4)!important;cursor:pointer}.ne-attachments-preview__body-left{left:24px}.ne-attachments-preview__body-right{right:24px}.ne-attachments .attachment-button-loader{scale:.5;width:26px!important}.ne-attachments--integrated{background-color:rgb(var(--neeto-ui-white));border:1px solid rgb(var(--neeto-ui-gray-300));border-radius:0 0 var(--neeto-ui-rounded) var(--neeto-ui-rounded);border-top:none;padding:0 6px}.ne-attachments__wrapper{position:relative}.ne-attachments__wrapper.is-dragging-over-files:after{align-items:center;background-color:rgba(var(--neeto-ui-gray-300),.5);border:3px dashed rgb(var(--neeto-ui-gray-500));border-radius:5px;color:rgb(var(--neeto-ui-gray-600));content:\"Drop the file here\";display:flex;font-size:1.2rem;font-weight:700;inset:7px;justify-content:center;position:absolute}";
34
+ injectCss.n(css,{});
35
+
36
+ var DEFAULT_FILE_UPLOAD_CONFIG = {
37
+ directUploadEndpoint: constants.DIRECT_UPLOAD_ENDPOINT,
38
+ restrictions: {
39
+ maxFileSize: initializers.globalProps.endUserUploadedFileSizeLimitInMb * 1024 * 1024
40
+ }
41
+ };
42
+ var ATTACHMENT_OPTIONS = {
43
+ DOWNLOAD: "Download",
44
+ RENAME: "Rename",
45
+ DELETE: "Delete"
46
+ };
47
+ var ATTACHMENTS_PREVIEW_DATA_CY = "ne-attachments-preview-content";
48
+
49
+ var newAxiosInstance = axios__default["default"].create();
50
+ var getFile = function getFile(url) {
51
+ return newAxiosInstance.get(url, {
52
+ responseType: "blob"
53
+ });
54
+ };
55
+ var fileDownloadApi = {
56
+ getFile: getFile
57
+ };
58
+
59
+ var buildFileUploadConfig = function buildFileUploadConfig(config) {
60
+ return ramda.mergeRight(DEFAULT_FILE_UPLOAD_CONFIG, config);
61
+ };
62
+ var downloadFile = /*#__PURE__*/function () {
63
+ var _ref = _asyncToGenerator__default["default"]( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee(fileUrl, filename) {
64
+ var response, blob, url, a;
65
+ return _regeneratorRuntime__default["default"].wrap(function _callee$(_context) {
66
+ while (1) switch (_context.prev = _context.next) {
67
+ case 0:
68
+ _context.prev = 0;
69
+ _context.next = 3;
70
+ return fileDownloadApi.getFile(fileUrl);
71
+ case 3:
72
+ response = _context.sent;
73
+ blob = new Blob([response.data]);
74
+ url = URL.createObjectURL(blob);
75
+ a = document.createElement("a");
76
+ a.href = url;
77
+ a.setAttribute("download", filename);
78
+ a.style.display = "none";
79
+ document.body.appendChild(a);
80
+ a.click();
81
+ URL.revokeObjectURL(url);
82
+ document.body.removeChild(a);
83
+ _context.next = 19;
84
+ break;
85
+ case 16:
86
+ _context.prev = 16;
87
+ _context.t0 = _context["catch"](0);
88
+ neetoui.Toastr.error(_context.t0);
89
+ case 19:
90
+ case "end":
91
+ return _context.stop();
92
+ }
93
+ }, _callee, null, [[0, 16]]);
94
+ }));
95
+ return function downloadFile(_x, _x2) {
96
+ return _ref.apply(this, arguments);
97
+ };
98
+ }();
99
+ var checkPreviewAvailability = function checkPreviewAvailability(contentType) {
100
+ return contentType && (contentType.startsWith("video/") || contentType === "application/pdf" || contentType === "image/jpeg" || contentType === "image/gif" || contentType === "image/png" || contentType === "image/webp" || contentType === "text/plain" || contentType === "image/bmp" || contentType === "application/msword" || contentType === "application/vnd.openxmlformats-officedocument.wordprocessingml.document" || contentType === "text/htm" || contentType === "text/html" || contentType === "image/jpg" || contentType === "application/vnd.ms-powerpoint" || contentType === "application/vnd.openxmlformats-officedocument.presentationml.presentation" || contentType === "image/tiff" || contentType === "application/vnd.ms-excel" || contentType === "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
101
+ };
102
+
103
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
104
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
105
+ var Menu = neetoui.Dropdown.Menu,
106
+ MenuItem = neetoui.Dropdown.MenuItem;
107
+ var Attachment = function Attachment(_ref) {
108
+ var attachment = _ref.attachment,
109
+ attachments = _ref.attachments,
110
+ disabled = _ref.disabled,
111
+ onChange = _ref.onChange,
112
+ setSelectedAttachment = _ref.setSelectedAttachment,
113
+ isLoading = _ref.isLoading,
114
+ allowDelete = _ref.allowDelete;
115
+ var _useTranslation = reactI18next.useTranslation(),
116
+ t = _useTranslation.t;
117
+ var _useState = React.useState(false),
118
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
119
+ isRenaming = _useState2[0],
120
+ setIsRenaming = _useState2[1];
121
+ var _useState3 = React.useState(false),
122
+ _useState4 = _slicedToArray__default["default"](_useState3, 2),
123
+ isUpdating = _useState4[0],
124
+ setIsUpdating = _useState4[1];
125
+ var _useState5 = React.useState(false),
126
+ _useState6 = _slicedToArray__default["default"](_useState5, 2),
127
+ isDeleteAlertOpen = _useState6[0],
128
+ setIsDeleteAlertOpen = _useState6[1];
129
+ var _useState7 = React.useState(false),
130
+ _useState8 = _slicedToArray__default["default"](_useState7, 2),
131
+ isDeleting = _useState8[0],
132
+ setIsDeleting = _useState8[1];
133
+ var _useState9 = React.useState(""),
134
+ _useState10 = _slicedToArray__default["default"](_useState9, 2),
135
+ newFilename = _useState10[0],
136
+ setNewFilename = _useState10[1];
137
+ var handleDownload = function handleDownload() {
138
+ return downloadFile(attachment.url, attachment.filename);
139
+ };
140
+ var handleRename = /*#__PURE__*/function () {
141
+ var _ref2 = _asyncToGenerator__default["default"]( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee() {
142
+ var _response$data, signedId, payload, response, filename;
143
+ return _regeneratorRuntime__default["default"].wrap(function _callee$(_context) {
144
+ while (1) switch (_context.prev = _context.next) {
145
+ case 0:
146
+ _context.prev = 0;
147
+ setIsUpdating(true);
148
+ signedId = attachment.signedId;
149
+ payload = {
150
+ blob: {
151
+ filename: newFilename
152
+ }
153
+ };
154
+ _context.next = 6;
155
+ return FileIcon.directUploadsApi.update({
156
+ signedId: signedId,
157
+ payload: payload
158
+ });
159
+ case 6:
160
+ response = _context.sent;
161
+ filename = ((_response$data = response.data) === null || _response$data === void 0 || (_response$data = _response$data.blob) === null || _response$data === void 0 ? void 0 : _response$data.filename) || response.blob.filename;
162
+ onChange(attachments.map(function (attachment) {
163
+ return attachment.signedId === signedId ? ramda.assoc("filename", filename, attachment) : attachment;
164
+ }));
165
+ _context.next = 14;
166
+ break;
167
+ case 11:
168
+ _context.prev = 11;
169
+ _context.t0 = _context["catch"](0);
170
+ neetoui.Toastr.error(_context.t0);
171
+ case 14:
172
+ _context.prev = 14;
173
+ setIsRenaming(false);
174
+ setIsUpdating(false);
175
+ setNewFilename("");
176
+ return _context.finish(14);
177
+ case 19:
178
+ case "end":
179
+ return _context.stop();
180
+ }
181
+ }, _callee, null, [[0, 11, 14, 19]]);
182
+ }));
183
+ return function handleRename() {
184
+ return _ref2.apply(this, arguments);
185
+ };
186
+ }();
187
+ var handleDelete = /*#__PURE__*/function () {
188
+ var _ref3 = _asyncToGenerator__default["default"]( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee2() {
189
+ var signedId;
190
+ return _regeneratorRuntime__default["default"].wrap(function _callee2$(_context2) {
191
+ while (1) switch (_context2.prev = _context2.next) {
192
+ case 0:
193
+ if (allowDelete) {
194
+ _context2.next = 2;
195
+ break;
196
+ }
197
+ return _context2.abrupt("return");
198
+ case 2:
199
+ setIsDeleting(true);
200
+ _context2.prev = 3;
201
+ signedId = attachment.signedId;
202
+ _context2.next = 7;
203
+ return FileIcon.directUploadsApi.destroy(signedId);
204
+ case 7:
205
+ onChange(neetoCist.removeBy({
206
+ signedId: signedId
207
+ }, attachments));
208
+ _context2.next = 13;
209
+ break;
210
+ case 10:
211
+ _context2.prev = 10;
212
+ _context2.t0 = _context2["catch"](3);
213
+ neetoui.Toastr.error(_context2.t0);
214
+ case 13:
215
+ case "end":
216
+ return _context2.stop();
217
+ }
218
+ }, _callee2, null, [[3, 10]]);
219
+ }));
220
+ return function handleDelete() {
221
+ return _ref3.apply(this, arguments);
222
+ };
223
+ }();
224
+ var handlers = _objectSpread(_defineProperty__default["default"](_defineProperty__default["default"]({}, ATTACHMENT_OPTIONS.DOWNLOAD, handleDownload), ATTACHMENT_OPTIONS.RENAME, handleRename), allowDelete && _defineProperty__default["default"]({}, ATTACHMENT_OPTIONS.DELETE, handleDelete));
225
+ var onMenuItemClick = function onMenuItemClick(_ref5) {
226
+ var key = _ref5.key,
227
+ handler = _ref5.handler;
228
+ if (key === ATTACHMENT_OPTIONS.RENAME) {
229
+ setIsRenaming(true);
230
+ setNewFilename(attachment.filename);
231
+ } else if (key === ATTACHMENT_OPTIONS.DELETE) {
232
+ setNewFilename(attachment.filename);
233
+ setIsDeleteAlertOpen(true);
234
+ } else {
235
+ handler();
236
+ }
237
+ };
238
+ var handleKeyDown = function handleKeyDown(_ref6) {
239
+ var event = _ref6.event,
240
+ key = _ref6.key;
241
+ var handler = handlers[key];
242
+ if (event.key === "Enter" && handler && !ramda.isEmpty(newFilename)) {
243
+ event.stopPropagation();
244
+ event.preventDefault();
245
+ handler();
246
+ }
247
+ if (event.key === "Escape") {
248
+ setIsRenaming(false);
249
+ setNewFilename("");
250
+ }
251
+ };
252
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
253
+ className: "ne-attachments__preview",
254
+ "data-cy": "ne-attachments-wrapper"
255
+ }, isRenaming ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Tooltip, {
256
+ content: newFilename,
257
+ position: "top"
258
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Input, {
259
+ autoFocus: true,
260
+ "data-cy": "neeto-editor-preview-rename-input",
261
+ size: "small",
262
+ value: newFilename,
263
+ error: ramda.isEmpty(newFilename) ? t("neetoEditor.attachments.nameEmpty") : "",
264
+ onChange: utils.withEventTargetValue(setNewFilename),
265
+ onKeyDown: function onKeyDown(event) {
266
+ return handleKeyDown({
267
+ event: event,
268
+ key: ATTACHMENT_OPTIONS.RENAME
269
+ });
270
+ }
271
+ })), /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
272
+ "data-cy": "neeto-editor-preview-rename-cancel-button",
273
+ icon: neetoIcons.Close,
274
+ loading: isUpdating,
275
+ size: "small",
276
+ style: "text",
277
+ onClick: function onClick() {
278
+ return setIsRenaming(false);
279
+ }
280
+ })) : /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
281
+ className: "ne-attachments__preview-wrapper",
282
+ onClick: function onClick() {
283
+ return setSelectedAttachment(attachment);
284
+ }
285
+ }, /*#__PURE__*/React__default["default"].createElement(FileIcon.File, {
286
+ className: "ne-attachments__preview-wrapper__icon",
287
+ fileName: attachment.filename
288
+ }), /*#__PURE__*/React__default["default"].createElement(neetoui.Tooltip, {
289
+ content: attachment.filename,
290
+ position: "top"
291
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
292
+ style: "body2"
293
+ }, attachment.filename)), isLoading && /*#__PURE__*/React__default["default"].createElement(neetoui.Spinner, {
294
+ className: "attachment-button-loader"
295
+ })), /*#__PURE__*/React__default["default"].createElement(neetoui.Tooltip, {
296
+ content: t("neetoEditor.attachments.actionsBlocked"),
297
+ disabled: !disabled,
298
+ position: "top"
299
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Dropdown, {
300
+ disabled: disabled,
301
+ buttonSize: "small",
302
+ buttonStyle: "text",
303
+ icon: neetoIcons.MenuVertical
304
+ }, /*#__PURE__*/React__default["default"].createElement(Menu, null, Object.entries(handlers).map(function (_ref7) {
305
+ var _ref8 = _slicedToArray__default["default"](_ref7, 2),
306
+ label = _ref8[0],
307
+ handler = _ref8[1];
308
+ return /*#__PURE__*/React__default["default"].createElement(MenuItem.Button, {
309
+ "data-cy": "neeto-editor-preview-".concat(label.toLowerCase(), "-button"),
310
+ key: label,
311
+ onClick: function onClick() {
312
+ return onMenuItemClick({
313
+ key: label,
314
+ handler: handler
315
+ });
316
+ }
317
+ }, label);
318
+ })))))), /*#__PURE__*/React__default["default"].createElement(neetoui.Alert, {
319
+ isOpen: isDeleteAlertOpen,
320
+ isSubmitting: isDeleting,
321
+ submitButtonLabel: t("neetoEditor.menu.delete"),
322
+ title: t("neetoEditor.attachments.deleteTitle"),
323
+ message: /*#__PURE__*/React__default["default"].createElement(reactI18next.Trans, {
324
+ i18nKey: "neetoEditor.attachments.deleteConfirmation",
325
+ values: {
326
+ entity: newFilename
327
+ }
328
+ }),
329
+ onClose: function onClose() {
330
+ return setIsDeleteAlertOpen(false);
331
+ },
332
+ onSubmit: handleDelete
333
+ }));
334
+ };
335
+
336
+ var AttachmentProgress = function AttachmentProgress(_ref) {
337
+ var _attachment$progress;
338
+ var attachment = _ref.attachment,
339
+ cancelUpload = _ref.cancelUpload;
340
+ var progressPercentage = "".concat((_attachment$progress = attachment.progress) !== null && _attachment$progress !== void 0 ? _attachment$progress : 0, "%");
341
+ var handleCancel = function handleCancel() {
342
+ cancelUpload(attachment.id);
343
+ };
344
+ return /*#__PURE__*/React__default["default"].createElement("div", {
345
+ className: "ne-attachments__preview"
346
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
347
+ className: "ne-attachments__preview__progress-icon"
348
+ }, /*#__PURE__*/React__default["default"].createElement(FileIcon.FileIcon, null)), /*#__PURE__*/React__default["default"].createElement("div", {
349
+ className: "ne-attachments__preview__progress"
350
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
351
+ style: "body2"
352
+ }, attachment.filename), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
353
+ style: "body2"
354
+ }, progressPercentage)), /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
355
+ "data-cy": "neeto-editor-preview-upload-cancel-button",
356
+ icon: neetoIcons.Close,
357
+ size: "small",
358
+ style: "text",
359
+ onClick: handleCancel
360
+ }));
361
+ };
362
+
363
+ var Preview = /*#__PURE__*/React.lazy(function () {
364
+ return Promise.resolve().then(function () { return require('./chunk-eb6c9e4e.cjs.js'); });
365
+ });
366
+ var Attachments = function Attachments(_ref, ref) {
367
+ var _fileUploadConfig$all;
368
+ var _ref$attachments = _ref.attachments,
369
+ attachments = _ref$attachments === void 0 ? [] : _ref$attachments,
370
+ _ref$className = _ref.className,
371
+ className = _ref$className === void 0 ? "" : _ref$className,
372
+ _ref$onChange = _ref.onChange,
373
+ onChange = _ref$onChange === void 0 ? neetoCist.noop : _ref$onChange,
374
+ _ref$isIndependent = _ref.isIndependent,
375
+ isIndependent = _ref$isIndependent === void 0 ? true : _ref$isIndependent,
376
+ _ref$disabled = _ref.disabled,
377
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
378
+ _ref$dragDropRef = _ref.dragDropRef,
379
+ dragDropRef = _ref$dragDropRef === void 0 ? null : _ref$dragDropRef,
380
+ _ref$config = _ref.config,
381
+ config = _ref$config === void 0 ? {} : _ref$config,
382
+ _ref$setIsUploading = _ref.setIsUploading,
383
+ setIsUploading = _ref$setIsUploading === void 0 ? neetoCist.noop : _ref$setIsUploading,
384
+ _ref$allowDelete = _ref.allowDelete,
385
+ allowDelete = _ref$allowDelete === void 0 ? true : _ref$allowDelete;
386
+ var _useTranslation = reactI18next.useTranslation(),
387
+ t = _useTranslation.t;
388
+ var _useState = React.useState({}),
389
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
390
+ selectedAttachment = _useState2[0],
391
+ setSelectedAttachment = _useState2[1];
392
+ var _useState3 = React.useState(false),
393
+ _useState4 = _slicedToArray__default["default"](_useState3, 2),
394
+ didFetchPreviewBundle = _useState4[0],
395
+ setDidFetchPreviewBundle = _useState4[1];
396
+ var attachmentInputRef = React.useRef(null);
397
+ var fileUploadConfig = React.useMemo(function () {
398
+ return buildFileUploadConfig(config);
399
+ }, [config]);
400
+ var _useFileUploader = FileIcon.useFileUploader({
401
+ config: fileUploadConfig,
402
+ setIsUploadingOnHost: setIsUploading,
403
+ attachments: attachments
404
+ }),
405
+ addFiles = _useFileUploader.addFiles,
406
+ uploadFiles = _useFileUploader.uploadFiles,
407
+ queuedFiles = _useFileUploader.queuedFiles,
408
+ cancelUpload = _useFileUploader.cancelUpload,
409
+ isUploading = _useFileUploader.isUploading;
410
+ var handleAddFile = /*#__PURE__*/function () {
411
+ var _ref2 = _asyncToGenerator__default["default"]( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee(event) {
412
+ var uploadedFiles;
413
+ return _regeneratorRuntime__default["default"].wrap(function _callee$(_context) {
414
+ while (1) switch (_context.prev = _context.next) {
415
+ case 0:
416
+ addFiles(event.target.files);
417
+ _context.next = 3;
418
+ return uploadFiles();
419
+ case 3:
420
+ uploadedFiles = _context.sent;
421
+ neetoCist.isNotEmpty(uploadedFiles) && onChange([].concat(_toConsumableArray__default["default"](attachments), _toConsumableArray__default["default"](uploadedFiles)));
422
+ attachmentInputRef.current.value = null;
423
+ case 6:
424
+ case "end":
425
+ return _context.stop();
426
+ }
427
+ }, _callee);
428
+ }));
429
+ return function handleAddFile(_x) {
430
+ return _ref2.apply(this, arguments);
431
+ };
432
+ }();
433
+ var handleUploadAttachments = function handleUploadAttachments() {
434
+ return attachmentInputRef.current.click();
435
+ };
436
+ var handleFileInputClick = function handleFileInputClick(event) {
437
+ if (!(!ramda.isEmpty(attachments) && fileUploadConfig.maxNumberOfFiles === 1)) {
438
+ return;
439
+ }
440
+ event.preventDefault();
441
+ neetoui.Toastr.warning(t("neetoEditor.attachments.oneAttachmentAllowed"));
442
+ };
443
+ React.useImperativeHandle(ref, function () {
444
+ return {
445
+ handleUploadAttachments: handleUploadAttachments
446
+ };
447
+ }, []);
448
+ var handleFilesDrop = /*#__PURE__*/function () {
449
+ var _ref3 = _asyncToGenerator__default["default"]( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee2(files) {
450
+ var uploadedFiles;
451
+ return _regeneratorRuntime__default["default"].wrap(function _callee2$(_context2) {
452
+ while (1) switch (_context2.prev = _context2.next) {
453
+ case 0:
454
+ addFiles(files);
455
+ _context2.next = 3;
456
+ return uploadFiles();
457
+ case 3:
458
+ uploadedFiles = _context2.sent;
459
+ neetoCist.isNotEmpty(uploadedFiles) && onChange([].concat(_toConsumableArray__default["default"](attachments), _toConsumableArray__default["default"](uploadedFiles)));
460
+ case 5:
461
+ case "end":
462
+ return _context2.stop();
463
+ }
464
+ }, _callee2);
465
+ }));
466
+ return function handleFilesDrop(_x2) {
467
+ return _ref3.apply(this, arguments);
468
+ };
469
+ }();
470
+ FileIcon.useDropFiles({
471
+ dropTargetRef: dragDropRef,
472
+ attachments: attachments,
473
+ onDrop: handleFilesDrop
474
+ });
475
+ return /*#__PURE__*/React__default["default"].createElement("div", {
476
+ className: classnames__default["default"]("ne-attachments", _defineProperty__default["default"]({}, className, className))
477
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
478
+ className: "ne-attachments__items"
479
+ }, attachments.map(function (attachment) {
480
+ return /*#__PURE__*/React__default["default"].createElement(Attachment, {
481
+ allowDelete: allowDelete,
482
+ attachment: attachment,
483
+ attachments: attachments,
484
+ disabled: disabled,
485
+ onChange: onChange,
486
+ setSelectedAttachment: setSelectedAttachment,
487
+ key: attachment.signedId,
488
+ isLoading: !didFetchPreviewBundle && selectedAttachment.url === attachment.url
489
+ });
490
+ }), queuedFiles.map(function (attachment) {
491
+ return /*#__PURE__*/React__default["default"].createElement(AttachmentProgress, {
492
+ attachment: attachment,
493
+ cancelUpload: cancelUpload,
494
+ key: attachment.id
495
+ });
496
+ })), /*#__PURE__*/React__default["default"].createElement("div", null, isIndependent && /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
497
+ "data-cy": "neeto-editor-attachments-upload-button",
498
+ disabled: isUploading,
499
+ label: t("neetoEditor.attachments.add"),
500
+ loading: isUploading,
501
+ size: "medium",
502
+ style: "link",
503
+ onClick: handleUploadAttachments
504
+ }), /*#__PURE__*/React__default["default"].createElement("input", {
505
+ accept: (_fileUploadConfig$all = fileUploadConfig.allowedFileTypes) === null || _fileUploadConfig$all === void 0 ? void 0 : _fileUploadConfig$all.join(","),
506
+ multiple: fileUploadConfig.maxNumberOfFiles !== 1,
507
+ ref: attachmentInputRef,
508
+ type: "file",
509
+ onChange: handleAddFile,
510
+ onClick: handleFileInputClick
511
+ }), /*#__PURE__*/React__default["default"].createElement(React.Suspense, {
512
+ fallback: /*#__PURE__*/React__default["default"].createElement("span", null)
513
+ }, neetoCist.isPresent(selectedAttachment) && /*#__PURE__*/React__default["default"].createElement(Preview, {
514
+ attachments: attachments,
515
+ selectedAttachment: selectedAttachment,
516
+ setDidFetchPreviewBundle: setDidFetchPreviewBundle,
517
+ setSelectedAttachment: setSelectedAttachment,
518
+ onClose: function onClose() {
519
+ return setSelectedAttachment({});
520
+ }
521
+ }))));
522
+ };
523
+ var Attachments$1 = /*#__PURE__*/React__default["default"].forwardRef(Attachments);
524
+
525
+ exports.ATTACHMENTS_PREVIEW_DATA_CY = ATTACHMENTS_PREVIEW_DATA_CY;
526
+ exports.Attachments = Attachments$1;
527
+ exports.checkPreviewAvailability = checkPreviewAvailability;
528
+ exports.downloadFile = downloadFile;
529
+ //# sourceMappingURL=chunk-b5a7673a.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk-b5a7673a.cjs.js","sources":["../../src/components/Attachments/constants.js","../../src/apis/file_download.js","../../src/components/Attachments/utils.js","../../src/components/Attachments/Attachment.jsx","../../src/components/Attachments/AttachmentProgress.jsx","../../src/components/Attachments/index.jsx"],"sourcesContent":["import { globalProps } from \"neetocommons/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 DOWNLOAD: \"Download\",\n RENAME: \"Rename\",\n DELETE: \"Delete\",\n};\n\nexport const ATTACHMENTS_PREVIEW_DATA_CY = \"ne-attachments-preview-content\";\n","import axios from \"axios\";\n\nconst newAxiosInstance = axios.create();\n\nconst getFile = url => newAxiosInstance.get(url, { responseType: \"blob\" });\n\nconst fileDownloadApi = { getFile };\n\nexport default fileDownloadApi;\n","import { Toastr } from \"neetoui\";\nimport { mergeRight } from \"ramda\";\n\nimport fileDownloadApi from \"apis/file_download\";\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 fileDownloadApi.getFile(fileUrl);\n const blob = new Blob([response.data]);\n const url = URL.createObjectURL(blob);\n\n const a = document.createElement(\"a\");\n a.href = url;\n a.setAttribute(\"download\", filename);\n\n a.style.display = \"none\";\n document.body.appendChild(a);\n\n a.click();\n\n URL.revokeObjectURL(url);\n document.body.removeChild(a);\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 === \"text/htm\" ||\n contentType === \"text/html\" ||\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 React, { useState } from \"react\";\n\nimport { removeBy } from \"neetocist\";\nimport { withEventTargetValue } from \"neetocommons/utils\";\nimport { MenuVertical, Close } from \"neetoicons\";\nimport {\n Dropdown,\n Input,\n Spinner,\n Toastr,\n Tooltip,\n Typography,\n Button,\n Alert,\n} from \"neetoui\";\nimport { isEmpty, assoc } from \"ramda\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport directUploadsApi from \"apis/direct_uploads\";\n\nimport { ATTACHMENT_OPTIONS } from \"./constants\";\nimport { downloadFile } from \"./utils\";\n\nimport FileIcon from \"../Common/FileIcon\";\n\nconst { Menu, MenuItem } = Dropdown;\n\nconst Attachment = ({\n attachment,\n attachments,\n disabled,\n onChange,\n setSelectedAttachment,\n isLoading,\n allowDelete,\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 handleDownload = () =>\n downloadFile(attachment.url, attachment.filename);\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 [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 className=\"ne-attachments__preview\" data-cy=\"ne-attachments-wrapper\">\n {isRenaming ? (\n <>\n <Tooltip content={newFilename} position=\"top\">\n <Input\n autoFocus\n data-cy=\"neeto-editor-preview-rename-input\"\n size=\"small\"\n value={newFilename}\n error={\n isEmpty(newFilename)\n ? t(\"neetoEditor.attachments.nameEmpty\")\n : \"\"\n }\n onChange={withEventTargetValue(setNewFilename)}\n onKeyDown={event =>\n handleKeyDown({\n event,\n key: ATTACHMENT_OPTIONS.RENAME,\n })\n }\n />\n </Tooltip>\n <Button\n data-cy=\"neeto-editor-preview-rename-cancel-button\"\n icon={Close}\n loading={isUpdating}\n size=\"small\"\n style=\"text\"\n onClick={() => setIsRenaming(false)}\n />\n </>\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 style=\"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 <Dropdown\n {...{ disabled }}\n buttonSize=\"small\"\n buttonStyle=\"text\"\n icon={MenuVertical}\n >\n <Menu>\n {Object.entries(handlers).map(([label, handler]) => (\n <MenuItem.Button\n data-cy={`neeto-editor-preview-${label.toLowerCase()}-button`}\n key={label}\n onClick={() => onMenuItemClick({ key: label, handler })}\n >\n {label}\n </MenuItem.Button>\n ))}\n </Menu>\n </Dropdown>\n </Tooltip>\n </>\n )}\n </div>\n <Alert\n isOpen={isDeleteAlertOpen}\n isSubmitting={isDeleting}\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 React from \"react\";\n\nimport { Close } from \"neetoicons\";\nimport { Button, Typography } from \"neetoui\";\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 style=\"body2\">{attachment.filename}</Typography>\n <Typography style=\"body2\">{progressPercentage}</Typography>\n </div>\n <Button\n data-cy=\"neeto-editor-preview-upload-cancel-button\"\n icon={Close}\n size=\"small\"\n style=\"text\"\n onClick={handleCancel}\n />\n </div>\n );\n};\n\nexport default AttachmentProgress;\n","import React, {\n useRef,\n useState,\n useImperativeHandle,\n lazy,\n Suspense,\n useMemo,\n} from \"react\";\n\nimport classnames from \"classnames\";\nimport { isNotEmpty, isPresent, noop } from \"neetocist\";\nimport { Button, Toastr } from \"neetoui\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport useDropFiles from \"hooks/useDropFiles\";\nimport useFileUploader from \"hooks/useFileUploader\";\nimport \"src/styles/components/attachments.scss\";\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 },\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 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-cy=\"neeto-editor-attachments-upload-button\"\n disabled={isUploading}\n label={t(\"neetoEditor.attachments.add\")}\n loading={isUploading}\n size=\"medium\"\n style=\"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\nexport default React.forwardRef(Attachments);\n"],"names":["DEFAULT_FILE_UPLOAD_CONFIG","directUploadEndpoint","DIRECT_UPLOAD_ENDPOINT","restrictions","maxFileSize","globalProps","endUserUploadedFileSizeLimitInMb","ATTACHMENT_OPTIONS","DOWNLOAD","RENAME","DELETE","ATTACHMENTS_PREVIEW_DATA_CY","newAxiosInstance","axios","create","getFile","url","get","responseType","fileDownloadApi","buildFileUploadConfig","config","mergeRight","downloadFile","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","fileUrl","filename","response","blob","a","wrap","_callee$","_context","prev","next","sent","Blob","data","URL","createObjectURL","document","createElement","href","setAttribute","style","display","body","appendChild","click","revokeObjectURL","removeChild","t0","Toastr","error","stop","_x","_x2","apply","arguments","checkPreviewAvailability","contentType","startsWith","Menu","Dropdown","MenuItem","Attachment","attachment","attachments","disabled","onChange","setSelectedAttachment","isLoading","allowDelete","_useTranslation","useTranslation","t","_useState","useState","_useState2","_slicedToArray","isRenaming","setIsRenaming","_useState3","_useState4","isUpdating","setIsUpdating","_useState5","_useState6","isDeleteAlertOpen","setIsDeleteAlertOpen","_useState7","_useState8","isDeleting","setIsDeleting","_useState9","_useState10","newFilename","setNewFilename","handleDownload","handleRename","_ref2","_response$data","signedId","payload","directUploadsApi","update","map","assoc","finish","handleDelete","_ref3","_callee2","_callee2$","_context2","abrupt","destroy","removeBy","handlers","_objectSpread","_defineProperty","onMenuItemClick","_ref5","key","handler","handleKeyDown","_ref6","event","isEmpty","stopPropagation","preventDefault","React","Fragment","className","Tooltip","content","position","Input","autoFocus","size","value","withEventTargetValue","onKeyDown","Button","icon","Close","loading","onClick","FileIcon","fileName","Typography","Spinner","buttonSize","buttonStyle","MenuVertical","Object","entries","_ref7","_ref8","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","ref","_fileUploadConfig$all","_ref$attachments","_ref$className","_ref$onChange","noop","_ref$isIndependent","isIndependent","_ref$disabled","_ref$dragDropRef","dragDropRef","_ref$config","_ref$setIsUploading","setIsUploading","_ref$allowDelete","selectedAttachment","didFetchPreviewBundle","setDidFetchPreviewBundle","attachmentInputRef","useRef","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","accept","allowedFileTypes","join","multiple","type","Suspense","fallback","isPresent","forwardRef"],"mappings":"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"}