@bigbinary/neeto-editor 1.47.104 → 1.47.106

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 (89) hide show
  1. package/package.json +9 -9
  2. package/dist/Attachments.js +0 -52
  3. package/dist/Attachments.js.map +0 -1
  4. package/dist/Editor.js +0 -22377
  5. package/dist/Editor.js.map +0 -1
  6. package/dist/EditorContent.js +0 -250
  7. package/dist/EditorContent.js.map +0 -1
  8. package/dist/FormikEditor.js +0 -199
  9. package/dist/FormikEditor.js.map +0 -1
  10. package/dist/Menu.js +0 -106
  11. package/dist/Menu.js.map +0 -1
  12. package/dist/chunk-2Y0OJ9hf.js +0 -12640
  13. package/dist/chunk-2Y0OJ9hf.js.map +0 -1
  14. package/dist/chunk-B7tHOpir.js +0 -6725
  15. package/dist/chunk-B7tHOpir.js.map +0 -1
  16. package/dist/chunk-BtgLcjAt.js +0 -16238
  17. package/dist/chunk-BtgLcjAt.js.map +0 -1
  18. package/dist/chunk-CmM0OmZo.js +0 -18909
  19. package/dist/chunk-CmM0OmZo.js.map +0 -1
  20. package/dist/chunk-DNMH2cJJ.js +0 -84
  21. package/dist/chunk-DNMH2cJJ.js.map +0 -1
  22. package/dist/chunk-DP3L767h.js +0 -8588
  23. package/dist/chunk-DP3L767h.js.map +0 -1
  24. package/dist/chunk-DmrvuTKK.js +0 -4
  25. package/dist/chunk-DmrvuTKK.js.map +0 -1
  26. package/dist/chunk-DxGDZoUl.js +0 -19
  27. package/dist/chunk-DxGDZoUl.js.map +0 -1
  28. package/dist/chunk-E-ZsRS8r.js +0 -33
  29. package/dist/chunk-E-ZsRS8r.js.map +0 -1
  30. package/dist/chunk-nYgNTOBs.js +0 -571
  31. package/dist/chunk-nYgNTOBs.js.map +0 -1
  32. package/dist/chunk-xmTFld61.js +0 -69027
  33. package/dist/chunk-xmTFld61.js.map +0 -1
  34. package/dist/cjs/Attachments.cjs.js +0 -58
  35. package/dist/cjs/Attachments.cjs.js.map +0 -1
  36. package/dist/cjs/Editor.cjs.js +0 -22474
  37. package/dist/cjs/Editor.cjs.js.map +0 -1
  38. package/dist/cjs/EditorContent.cjs.js +0 -264
  39. package/dist/cjs/EditorContent.cjs.js.map +0 -1
  40. package/dist/cjs/FormikEditor.cjs.js +0 -206
  41. package/dist/cjs/FormikEditor.cjs.js.map +0 -1
  42. package/dist/cjs/Menu.cjs.js +0 -112
  43. package/dist/cjs/Menu.cjs.js.map +0 -1
  44. package/dist/cjs/chunk-2HrSPdAV.cjs.js +0 -92
  45. package/dist/cjs/chunk-2HrSPdAV.cjs.js.map +0 -1
  46. package/dist/cjs/chunk-2w0QpL4j.cjs.js +0 -19038
  47. package/dist/cjs/chunk-2w0QpL4j.cjs.js.map +0 -1
  48. package/dist/cjs/chunk-AgahZtc5.cjs.js +0 -16258
  49. package/dist/cjs/chunk-AgahZtc5.cjs.js.map +0 -1
  50. package/dist/cjs/chunk-B83fTs8d.cjs.js +0 -37
  51. package/dist/cjs/chunk-B83fTs8d.cjs.js.map +0 -1
  52. package/dist/cjs/chunk-BGy3NmZC.cjs.js +0 -49
  53. package/dist/cjs/chunk-BGy3NmZC.cjs.js.map +0 -1
  54. package/dist/cjs/chunk-CLeV8Bxb.cjs.js +0 -6766
  55. package/dist/cjs/chunk-CLeV8Bxb.cjs.js.map +0 -1
  56. package/dist/cjs/chunk-COT7CF-z.cjs.js +0 -8652
  57. package/dist/cjs/chunk-COT7CF-z.cjs.js.map +0 -1
  58. package/dist/cjs/chunk-CYI1JJPG.cjs.js +0 -12645
  59. package/dist/cjs/chunk-CYI1JJPG.cjs.js.map +0 -1
  60. package/dist/cjs/chunk-CrSw8VHc.cjs.js +0 -69056
  61. package/dist/cjs/chunk-CrSw8VHc.cjs.js.map +0 -1
  62. package/dist/cjs/chunk-DYSZxrWZ.cjs.js +0 -597
  63. package/dist/cjs/chunk-DYSZxrWZ.cjs.js.map +0 -1
  64. package/dist/cjs/chunk-vQvjPR2x.cjs.js +0 -6
  65. package/dist/cjs/chunk-vQvjPR2x.cjs.js.map +0 -1
  66. package/dist/cjs/constants.cjs.js +0 -13
  67. package/dist/cjs/constants.cjs.js.map +0 -1
  68. package/dist/cjs/index.cjs.js +0 -159
  69. package/dist/cjs/index.cjs.js.map +0 -1
  70. package/dist/cjs/utils.cjs.js +0 -27
  71. package/dist/cjs/utils.cjs.js.map +0 -1
  72. package/dist/codeblockHighlight.js +0 -15155
  73. package/dist/codeblockHighlight.js.map +0 -1
  74. package/dist/constants.js +0 -6
  75. package/dist/constants.js.map +0 -1
  76. package/dist/editor-content.min.css +0 -1
  77. package/dist/editor-output-pdf-email.css +0 -1
  78. package/dist/editor-output-pdf-email.js +0 -4
  79. package/dist/editor-output-pdf-email.js.map +0 -1
  80. package/dist/editor-output.js +0 -4
  81. package/dist/editor-output.js.map +0 -1
  82. package/dist/editor-stats.html +0 -4860
  83. package/dist/editorUtils.js +0 -170
  84. package/dist/headerLinks.js +0 -59
  85. package/dist/headerLinks.js.map +0 -1
  86. package/dist/index.js +0 -142
  87. package/dist/index.js.map +0 -1
  88. package/dist/utils.js +0 -15
  89. package/dist/utils.js.map +0 -1
@@ -1,597 +0,0 @@
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 Button = require('@bigbinary/neetoui/Button');
12
- var Toastr = require('@bigbinary/neetoui/Toastr');
13
- var ramda = require('ramda');
14
- var reactI18next = require('react-i18next');
15
- var FileIcon = require('./chunk-COT7CF-z.cjs.js');
16
- var injectCss = require('./chunk-vQvjPR2x.cjs.js');
17
- var useOnClickOutside = require('@bigbinary/neeto-commons-frontend/react-utils/useOnClickOutside');
18
- var utils = require('@bigbinary/neeto-commons-frontend/utils');
19
- var MenuVertical = require('@bigbinary/neeto-icons/MenuVertical');
20
- var Close = require('@bigbinary/neeto-icons/Close');
21
- var Check = require('@bigbinary/neeto-icons/Check');
22
- var Dropdown = require('@bigbinary/neetoui/Dropdown');
23
- var Input = require('@bigbinary/neetoui/Input');
24
- var Spinner = require('@bigbinary/neetoui/Spinner');
25
- var Tooltip = require('@bigbinary/neetoui/Tooltip');
26
- var Typography = require('@bigbinary/neetoui/Typography');
27
- var Alert = require('@bigbinary/neetoui/Alert');
28
- var i18n = require('i18next');
29
- var initializers = require('@bigbinary/neeto-commons-frontend/initializers');
30
- var constants = require('./chunk-2HrSPdAV.cjs.js');
31
- var jsxRuntime = require('react/jsx-runtime');
32
-
33
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
34
-
35
- var _defineProperty__default = /*#__PURE__*/_interopDefault(_defineProperty);
36
- var _toConsumableArray__default = /*#__PURE__*/_interopDefault(_toConsumableArray);
37
- var _asyncToGenerator__default = /*#__PURE__*/_interopDefault(_asyncToGenerator);
38
- var _slicedToArray__default = /*#__PURE__*/_interopDefault(_slicedToArray);
39
- var _regeneratorRuntime__default = /*#__PURE__*/_interopDefault(_regeneratorRuntime);
40
- var classnames__default = /*#__PURE__*/_interopDefault(classnames);
41
- var Button__default = /*#__PURE__*/_interopDefault(Button);
42
- var Toastr__default = /*#__PURE__*/_interopDefault(Toastr);
43
- var useOnClickOutside__default = /*#__PURE__*/_interopDefault(useOnClickOutside);
44
- var MenuVertical__default = /*#__PURE__*/_interopDefault(MenuVertical);
45
- var Close__default = /*#__PURE__*/_interopDefault(Close);
46
- var Check__default = /*#__PURE__*/_interopDefault(Check);
47
- var Dropdown__default = /*#__PURE__*/_interopDefault(Dropdown);
48
- var Input__default = /*#__PURE__*/_interopDefault(Input);
49
- var Spinner__default = /*#__PURE__*/_interopDefault(Spinner);
50
- var Tooltip__default = /*#__PURE__*/_interopDefault(Tooltip);
51
- var Typography__default = /*#__PURE__*/_interopDefault(Typography);
52
- var Alert__default = /*#__PURE__*/_interopDefault(Alert);
53
-
54
- 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-block:4px;padding-inline:8px 2px;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 .neeto-ui-modal__close{inset-inline-end:16px!important;top:9px!important}.ne-attachments-preview__header{border-bottom:1px solid rgb(var(--neeto-ui-gray-200));display:flex;flex-direction:row;gap:8px;margin-bottom:8px;min-height:58px;padding:16px!important}.ne-attachments-preview__header__fileinfo{align-items:center;border-inline-end:1px solid rgb(var(--neeto-ui-gray-200));display:flex;gap:8px;padding-inline-end:6px}.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{inset-inline-start:16px}.ne-attachments-preview__body-right{inset-inline-end:16px}.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-inline: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;pointer-events:none;position:absolute}";
55
- injectCss.n(css,{});
56
-
57
- var DEFAULT_FILE_UPLOAD_CONFIG = {
58
- directUploadEndpoint: constants.DIRECT_UPLOAD_ENDPOINT,
59
- restrictions: {
60
- maxFileSize: initializers.globalProps.endUserUploadedFileSizeLimitInMb * 1024 * 1024
61
- }
62
- };
63
- var ATTACHMENT_OPTIONS = {
64
- OPEN_IN_NEW_TAB: i18n.t("neetoEditor.common.openInNewTab"),
65
- DOWNLOAD: i18n.t("neetoEditor.common.download"),
66
- RENAME: i18n.t("neetoEditor.attachments.rename"),
67
- DELETE: i18n.t("neetoEditor.menu.delete")
68
- };
69
- var ATTACHMENTS_PREVIEW_DATA_CY = "ne-attachments-preview-content";
70
-
71
- var buildFileUploadConfig = function buildFileUploadConfig(config) {
72
- return ramda.mergeRight(DEFAULT_FILE_UPLOAD_CONFIG, config);
73
- };
74
- var downloadFile = /*#__PURE__*/function () {
75
- var _ref = _asyncToGenerator__default.default(/*#__PURE__*/_regeneratorRuntime__default.default.mark(function _callee(fileUrl, filename) {
76
- var response, blob, blobUrl, a;
77
- return _regeneratorRuntime__default.default.wrap(function _callee$(_context) {
78
- while (1) switch (_context.prev = _context.next) {
79
- case 0:
80
- _context.prev = 0;
81
- _context.next = 3;
82
- return fetch(fileUrl);
83
- case 3:
84
- response = _context.sent;
85
- _context.next = 6;
86
- return response.blob();
87
- case 6:
88
- blob = _context.sent;
89
- blobUrl = URL.createObjectURL(blob);
90
- a = document.createElement("a");
91
- a.href = blobUrl;
92
- a.setAttribute("download", filename);
93
- a.style.display = "none";
94
- document.body.appendChild(a);
95
- a.click();
96
- document.body.removeChild(a);
97
- URL.revokeObjectURL(blobUrl);
98
- _context.next = 21;
99
- break;
100
- case 18:
101
- _context.prev = 18;
102
- _context.t0 = _context["catch"](0);
103
- Toastr__default.default.error(_context.t0);
104
- case 21:
105
- case "end":
106
- return _context.stop();
107
- }
108
- }, _callee, null, [[0, 18]]);
109
- }));
110
- return function downloadFile(_x, _x2) {
111
- return _ref.apply(this, arguments);
112
- };
113
- }();
114
- var checkPreviewAvailability = function checkPreviewAvailability(contentType) {
115
- 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 === "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");
116
- };
117
-
118
- 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; }
119
- 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; }
120
- var Menu = Dropdown__default.default.Menu,
121
- MenuItem = Dropdown__default.default.MenuItem;
122
- var Attachment = function Attachment(_ref) {
123
- var attachment = _ref.attachment,
124
- attachments = _ref.attachments,
125
- disabled = _ref.disabled,
126
- onChange = _ref.onChange,
127
- setSelectedAttachment = _ref.setSelectedAttachment,
128
- isLoading = _ref.isLoading,
129
- allowDelete = _ref.allowDelete,
130
- allowOpenInNewTab = _ref.allowOpenInNewTab;
131
- var _useTranslation = reactI18next.useTranslation(),
132
- t = _useTranslation.t;
133
- var _useState = React.useState(false),
134
- _useState2 = _slicedToArray__default.default(_useState, 2),
135
- isRenaming = _useState2[0],
136
- setIsRenaming = _useState2[1];
137
- var _useState3 = React.useState(false),
138
- _useState4 = _slicedToArray__default.default(_useState3, 2),
139
- isUpdating = _useState4[0],
140
- setIsUpdating = _useState4[1];
141
- var _useState5 = React.useState(false),
142
- _useState6 = _slicedToArray__default.default(_useState5, 2),
143
- isDeleteAlertOpen = _useState6[0],
144
- setIsDeleteAlertOpen = _useState6[1];
145
- var _useState7 = React.useState(false),
146
- _useState8 = _slicedToArray__default.default(_useState7, 2),
147
- isDeleting = _useState8[0],
148
- setIsDeleting = _useState8[1];
149
- var _useState9 = React.useState(""),
150
- _useState0 = _slicedToArray__default.default(_useState9, 2),
151
- newFilename = _useState0[0],
152
- setNewFilename = _useState0[1];
153
- var renameRef = React.useRef(null);
154
- useOnClickOutside__default.default(renameRef, function () {
155
- if (!isRenaming) return;
156
- setIsRenaming(false);
157
- setNewFilename("");
158
- });
159
- var handleDownload = function handleDownload() {
160
- return downloadFile(attachment.url, attachment.filename);
161
- };
162
- var handleOpenInNewTab = function handleOpenInNewTab() {
163
- return window.open(attachment.url, "_blank", "noopener,noreferrer");
164
- };
165
- var handleRename = /*#__PURE__*/function () {
166
- var _ref2 = _asyncToGenerator__default.default(/*#__PURE__*/_regeneratorRuntime__default.default.mark(function _callee() {
167
- var _response$data, signedId, payload, response, filename;
168
- return _regeneratorRuntime__default.default.wrap(function _callee$(_context) {
169
- while (1) switch (_context.prev = _context.next) {
170
- case 0:
171
- _context.prev = 0;
172
- setIsUpdating(true);
173
- signedId = attachment.signedId;
174
- payload = {
175
- blob: {
176
- filename: newFilename
177
- }
178
- };
179
- _context.next = 6;
180
- return FileIcon.directUploadsApi.update({
181
- signedId: signedId,
182
- payload: payload
183
- });
184
- case 6:
185
- response = _context.sent;
186
- 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;
187
- onChange(attachments.map(function (attachment) {
188
- return attachment.signedId === signedId ? ramda.assoc("filename", filename, attachment) : attachment;
189
- }));
190
- _context.next = 14;
191
- break;
192
- case 11:
193
- _context.prev = 11;
194
- _context.t0 = _context["catch"](0);
195
- Toastr__default.default.error(_context.t0);
196
- case 14:
197
- _context.prev = 14;
198
- setIsRenaming(false);
199
- setIsUpdating(false);
200
- setNewFilename("");
201
- return _context.finish(14);
202
- case 19:
203
- case "end":
204
- return _context.stop();
205
- }
206
- }, _callee, null, [[0, 11, 14, 19]]);
207
- }));
208
- return function handleRename() {
209
- return _ref2.apply(this, arguments);
210
- };
211
- }();
212
- var handleDelete = /*#__PURE__*/function () {
213
- var _ref3 = _asyncToGenerator__default.default(/*#__PURE__*/_regeneratorRuntime__default.default.mark(function _callee2() {
214
- var signedId;
215
- return _regeneratorRuntime__default.default.wrap(function _callee2$(_context2) {
216
- while (1) switch (_context2.prev = _context2.next) {
217
- case 0:
218
- if (allowDelete) {
219
- _context2.next = 2;
220
- break;
221
- }
222
- return _context2.abrupt("return");
223
- case 2:
224
- setIsDeleting(true);
225
- _context2.prev = 3;
226
- signedId = attachment.signedId;
227
- _context2.next = 7;
228
- return FileIcon.directUploadsApi.destroy(signedId);
229
- case 7:
230
- onChange(neetoCist.removeBy({
231
- signedId: signedId
232
- }, attachments));
233
- _context2.next = 13;
234
- break;
235
- case 10:
236
- _context2.prev = 10;
237
- _context2.t0 = _context2["catch"](3);
238
- Toastr__default.default.error(_context2.t0);
239
- case 13:
240
- case "end":
241
- return _context2.stop();
242
- }
243
- }, _callee2, null, [[3, 10]]);
244
- }));
245
- return function handleDelete() {
246
- return _ref3.apply(this, arguments);
247
- };
248
- }();
249
- var handlers = _objectSpread(_objectSpread({}, allowOpenInNewTab && _defineProperty__default.default({}, ATTACHMENT_OPTIONS.OPEN_IN_NEW_TAB, handleOpenInNewTab)), {}, _defineProperty__default.default(_defineProperty__default.default({}, ATTACHMENT_OPTIONS.DOWNLOAD, handleDownload), ATTACHMENT_OPTIONS.RENAME, handleRename), allowDelete && _defineProperty__default.default({}, ATTACHMENT_OPTIONS.DELETE, handleDelete));
250
- var onMenuItemClick = function onMenuItemClick(_ref6) {
251
- var key = _ref6.key,
252
- handler = _ref6.handler;
253
- if (key === ATTACHMENT_OPTIONS.RENAME) {
254
- setIsRenaming(true);
255
- setNewFilename(attachment.filename);
256
- } else if (key === ATTACHMENT_OPTIONS.DELETE) {
257
- setNewFilename(attachment.filename);
258
- setIsDeleteAlertOpen(true);
259
- } else {
260
- handler();
261
- }
262
- };
263
- var handleKeyDown = function handleKeyDown(_ref7) {
264
- var event = _ref7.event,
265
- key = _ref7.key;
266
- var handler = handlers[key];
267
- if (event.key === "Enter" && handler && !ramda.isEmpty(newFilename)) {
268
- event.stopPropagation();
269
- event.preventDefault();
270
- handler();
271
- }
272
- if (event.key === "Escape") {
273
- setIsRenaming(false);
274
- setNewFilename("");
275
- }
276
- };
277
- return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
278
- children: [/*#__PURE__*/jsxRuntime.jsx("div", {
279
- className: "ne-attachments__preview",
280
- "data-testid": "ne-attachments-wrapper",
281
- children: isRenaming ? /*#__PURE__*/jsxRuntime.jsx("div", {
282
- ref: renameRef,
283
- children: /*#__PURE__*/jsxRuntime.jsx(Tooltip__default.default, {
284
- content: newFilename,
285
- position: "top",
286
- children: /*#__PURE__*/jsxRuntime.jsx(Input__default.default, {
287
- autoFocus: true,
288
- "data-testid": "neeto-editor-preview-rename-input",
289
- size: "small",
290
- value: newFilename,
291
- error: ramda.isEmpty(newFilename) ? t("neetoEditor.attachments.nameEmpty") : "",
292
- suffix: /*#__PURE__*/jsxRuntime.jsxs("div", {
293
- className: "flex items-center justify-end",
294
- children: [/*#__PURE__*/jsxRuntime.jsx(Button__default.default, {
295
- "data-testid": "neeto-editor-preview-rename-submit-button",
296
- disabled: ramda.isEmpty(newFilename) || isUpdating,
297
- icon: Check__default.default,
298
- loading: isUpdating,
299
- size: "small",
300
- style: "text",
301
- onClick: handleRename
302
- }), /*#__PURE__*/jsxRuntime.jsx(Button__default.default, {
303
- "data-testid": "neeto-editor-preview-rename-cancel-button",
304
- disabled: isUpdating,
305
- icon: Close__default.default,
306
- size: "small",
307
- style: "text",
308
- onClick: function onClick() {
309
- setIsRenaming(false);
310
- setNewFilename("");
311
- }
312
- })]
313
- }),
314
- onChange: utils.withEventTargetValue(setNewFilename),
315
- onKeyDown: function onKeyDown(event) {
316
- return handleKeyDown({
317
- event: event,
318
- key: ATTACHMENT_OPTIONS.RENAME
319
- });
320
- }
321
- })
322
- })
323
- }) : /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
324
- children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
325
- className: "ne-attachments__preview-wrapper",
326
- onClick: function onClick() {
327
- return setSelectedAttachment(attachment);
328
- },
329
- children: [/*#__PURE__*/jsxRuntime.jsx(FileIcon.File, {
330
- className: "ne-attachments__preview-wrapper__icon",
331
- fileName: attachment.filename
332
- }), /*#__PURE__*/jsxRuntime.jsx(Tooltip__default.default, {
333
- content: attachment.filename,
334
- position: "top",
335
- children: /*#__PURE__*/jsxRuntime.jsx(Typography__default.default, {
336
- style: "body2",
337
- children: attachment.filename
338
- })
339
- }), isLoading && /*#__PURE__*/jsxRuntime.jsx(Spinner__default.default, {
340
- className: "attachment-button-loader"
341
- })]
342
- }), /*#__PURE__*/jsxRuntime.jsx(Tooltip__default.default, {
343
- content: t("neetoEditor.attachments.actionsBlocked"),
344
- disabled: !disabled,
345
- position: "top",
346
- children: /*#__PURE__*/jsxRuntime.jsx(Dropdown__default.default, {
347
- disabled: disabled,
348
- buttonSize: "small",
349
- buttonStyle: "text",
350
- icon: MenuVertical__default.default,
351
- children: /*#__PURE__*/jsxRuntime.jsx(Menu, {
352
- children: Object.entries(handlers).map(function (_ref8) {
353
- var _ref9 = _slicedToArray__default.default(_ref8, 2),
354
- label = _ref9[0],
355
- handler = _ref9[1];
356
- return /*#__PURE__*/jsxRuntime.jsx(MenuItem.Button, {
357
- "data-testid": "neeto-editor-preview-".concat(label.toLowerCase(), "-button"),
358
- onClick: function onClick() {
359
- return onMenuItemClick({
360
- key: label,
361
- handler: handler
362
- });
363
- },
364
- children: label
365
- }, label);
366
- })
367
- })
368
- })
369
- })]
370
- })
371
- }), /*#__PURE__*/jsxRuntime.jsx(Alert__default.default, {
372
- isOpen: isDeleteAlertOpen,
373
- isSubmitting: isDeleting,
374
- submitButtonLabel: t("neetoEditor.menu.delete"),
375
- title: t("neetoEditor.attachments.deleteTitle"),
376
- message: /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
377
- i18nKey: "neetoEditor.attachments.deleteConfirmation",
378
- values: {
379
- entity: newFilename
380
- }
381
- }),
382
- onClose: function onClose() {
383
- return setIsDeleteAlertOpen(false);
384
- },
385
- onSubmit: handleDelete
386
- })]
387
- });
388
- };
389
-
390
- var AttachmentProgress = function AttachmentProgress(_ref) {
391
- var _attachment$progress;
392
- var attachment = _ref.attachment,
393
- cancelUpload = _ref.cancelUpload;
394
- var progressPercentage = "".concat((_attachment$progress = attachment.progress) !== null && _attachment$progress !== void 0 ? _attachment$progress : 0, "%");
395
- var handleCancel = function handleCancel() {
396
- cancelUpload(attachment.id);
397
- };
398
- return /*#__PURE__*/jsxRuntime.jsxs("div", {
399
- className: "ne-attachments__preview",
400
- children: [/*#__PURE__*/jsxRuntime.jsx("div", {
401
- className: "ne-attachments__preview__progress-icon",
402
- children: /*#__PURE__*/jsxRuntime.jsx(FileIcon.FileIcon, {})
403
- }), /*#__PURE__*/jsxRuntime.jsxs("div", {
404
- className: "ne-attachments__preview__progress",
405
- children: [/*#__PURE__*/jsxRuntime.jsx(Typography__default.default, {
406
- style: "body2",
407
- children: attachment.filename
408
- }), /*#__PURE__*/jsxRuntime.jsx(Typography__default.default, {
409
- style: "body2",
410
- children: progressPercentage
411
- })]
412
- }), /*#__PURE__*/jsxRuntime.jsx(Button__default.default, {
413
- "data-testid": "neeto-editor-preview-upload-cancel-button",
414
- icon: Close__default.default,
415
- size: "small",
416
- style: "text",
417
- onClick: handleCancel
418
- })]
419
- });
420
- };
421
-
422
- var Preview = /*#__PURE__*/React.lazy(function () {
423
- return Promise.resolve().then(function () { return require('./chunk-CrSw8VHc.cjs.js'); });
424
- });
425
- var Attachments = function Attachments(_ref, ref) {
426
- var _fileUploadConfig$all;
427
- var _ref$attachments = _ref.attachments,
428
- attachments = _ref$attachments === void 0 ? [] : _ref$attachments,
429
- _ref$className = _ref.className,
430
- className = _ref$className === void 0 ? "" : _ref$className,
431
- _ref$onChange = _ref.onChange,
432
- onChange = _ref$onChange === void 0 ? neetoCist.noop : _ref$onChange,
433
- _ref$isIndependent = _ref.isIndependent,
434
- isIndependent = _ref$isIndependent === void 0 ? true : _ref$isIndependent,
435
- _ref$disabled = _ref.disabled,
436
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
437
- _ref$dragDropRef = _ref.dragDropRef,
438
- dragDropRef = _ref$dragDropRef === void 0 ? null : _ref$dragDropRef,
439
- _ref$config = _ref.config,
440
- config = _ref$config === void 0 ? {} : _ref$config,
441
- _ref$setIsUploading = _ref.setIsUploading,
442
- setIsUploading = _ref$setIsUploading === void 0 ? neetoCist.noop : _ref$setIsUploading,
443
- _ref$allowDelete = _ref.allowDelete,
444
- allowDelete = _ref$allowDelete === void 0 ? true : _ref$allowDelete,
445
- _ref$allowOpenInNewTa = _ref.allowOpenInNewTab,
446
- allowOpenInNewTab = _ref$allowOpenInNewTa === void 0 ? true : _ref$allowOpenInNewTa;
447
- var _useTranslation = reactI18next.useTranslation(),
448
- t = _useTranslation.t;
449
- var _useState = React.useState({}),
450
- _useState2 = _slicedToArray__default.default(_useState, 2),
451
- selectedAttachment = _useState2[0],
452
- setSelectedAttachment = _useState2[1];
453
- var _useState3 = React.useState(false),
454
- _useState4 = _slicedToArray__default.default(_useState3, 2),
455
- didFetchPreviewBundle = _useState4[0],
456
- setDidFetchPreviewBundle = _useState4[1];
457
- var attachmentInputRef = React.useRef(null);
458
- var fileUploadConfig = React.useMemo(function () {
459
- return buildFileUploadConfig(config);
460
- }, [config]);
461
- var _useFileUploader = FileIcon.useFileUploader({
462
- config: fileUploadConfig,
463
- setIsUploadingOnHost: setIsUploading,
464
- attachments: attachments
465
- }),
466
- addFiles = _useFileUploader.addFiles,
467
- uploadFiles = _useFileUploader.uploadFiles,
468
- queuedFiles = _useFileUploader.queuedFiles,
469
- cancelUpload = _useFileUploader.cancelUpload,
470
- isUploading = _useFileUploader.isUploading;
471
- var handleAddFile = /*#__PURE__*/function () {
472
- var _ref2 = _asyncToGenerator__default.default(/*#__PURE__*/_regeneratorRuntime__default.default.mark(function _callee(event) {
473
- var uploadedFiles;
474
- return _regeneratorRuntime__default.default.wrap(function _callee$(_context) {
475
- while (1) switch (_context.prev = _context.next) {
476
- case 0:
477
- addFiles(event.target.files);
478
- _context.next = 3;
479
- return uploadFiles();
480
- case 3:
481
- uploadedFiles = _context.sent;
482
- neetoCist.isNotEmpty(uploadedFiles) && onChange([].concat(_toConsumableArray__default.default(attachments), _toConsumableArray__default.default(uploadedFiles)));
483
- attachmentInputRef.current.value = null;
484
- case 6:
485
- case "end":
486
- return _context.stop();
487
- }
488
- }, _callee);
489
- }));
490
- return function handleAddFile(_x) {
491
- return _ref2.apply(this, arguments);
492
- };
493
- }();
494
- var handleUploadAttachments = function handleUploadAttachments() {
495
- return attachmentInputRef.current.click();
496
- };
497
- var handleFileInputClick = function handleFileInputClick(event) {
498
- if (!(!ramda.isEmpty(attachments) && fileUploadConfig.maxNumberOfFiles === 1)) {
499
- return;
500
- }
501
- event.preventDefault();
502
- Toastr__default.default.warning(t("neetoEditor.attachments.oneAttachmentAllowed"));
503
- };
504
- React.useImperativeHandle(ref, function () {
505
- return {
506
- handleUploadAttachments: handleUploadAttachments
507
- };
508
- }, []);
509
- var handleFilesDrop = /*#__PURE__*/function () {
510
- var _ref3 = _asyncToGenerator__default.default(/*#__PURE__*/_regeneratorRuntime__default.default.mark(function _callee2(files) {
511
- var uploadedFiles;
512
- return _regeneratorRuntime__default.default.wrap(function _callee2$(_context2) {
513
- while (1) switch (_context2.prev = _context2.next) {
514
- case 0:
515
- addFiles(files);
516
- _context2.next = 3;
517
- return uploadFiles();
518
- case 3:
519
- uploadedFiles = _context2.sent;
520
- neetoCist.isNotEmpty(uploadedFiles) && onChange([].concat(_toConsumableArray__default.default(attachments), _toConsumableArray__default.default(uploadedFiles)));
521
- case 5:
522
- case "end":
523
- return _context2.stop();
524
- }
525
- }, _callee2);
526
- }));
527
- return function handleFilesDrop(_x2) {
528
- return _ref3.apply(this, arguments);
529
- };
530
- }();
531
- FileIcon.useDropFiles({
532
- dropTargetRef: dragDropRef,
533
- attachments: attachments,
534
- onDrop: handleFilesDrop
535
- });
536
- return /*#__PURE__*/jsxRuntime.jsxs("div", {
537
- className: classnames__default.default("ne-attachments", _defineProperty__default.default({}, className, className)),
538
- children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
539
- className: "ne-attachments__items",
540
- children: [attachments.map(function (attachment) {
541
- return /*#__PURE__*/React.createElement(Attachment, {
542
- allowDelete: allowDelete,
543
- allowOpenInNewTab: allowOpenInNewTab,
544
- attachment: attachment,
545
- attachments: attachments,
546
- disabled: disabled,
547
- onChange: onChange,
548
- setSelectedAttachment: setSelectedAttachment,
549
- key: attachment.signedId,
550
- isLoading: !didFetchPreviewBundle && selectedAttachment.url === attachment.url
551
- });
552
- }), queuedFiles.map(function (attachment) {
553
- return /*#__PURE__*/React.createElement(AttachmentProgress, {
554
- attachment: attachment,
555
- cancelUpload: cancelUpload,
556
- key: attachment.id
557
- });
558
- })]
559
- }), /*#__PURE__*/jsxRuntime.jsxs("div", {
560
- children: [isIndependent && /*#__PURE__*/jsxRuntime.jsx(Button__default.default, {
561
- "data-testid": "neeto-editor-attachments-upload-button",
562
- disabled: isUploading,
563
- label: t("neetoEditor.attachments.add"),
564
- loading: isUploading,
565
- size: "medium",
566
- style: "link",
567
- onClick: handleUploadAttachments
568
- }), /*#__PURE__*/jsxRuntime.jsx("input", {
569
- accept: (_fileUploadConfig$all = fileUploadConfig.allowedFileTypes) === null || _fileUploadConfig$all === void 0 ? void 0 : _fileUploadConfig$all.join(","),
570
- multiple: fileUploadConfig.maxNumberOfFiles !== 1,
571
- ref: attachmentInputRef,
572
- type: "file",
573
- onChange: handleAddFile,
574
- onClick: handleFileInputClick
575
- }), /*#__PURE__*/jsxRuntime.jsx(React.Suspense, {
576
- fallback: /*#__PURE__*/jsxRuntime.jsx("span", {}),
577
- children: neetoCist.isPresent(selectedAttachment) && /*#__PURE__*/jsxRuntime.jsx(Preview, {
578
- attachments: attachments,
579
- selectedAttachment: selectedAttachment,
580
- setDidFetchPreviewBundle: setDidFetchPreviewBundle,
581
- setSelectedAttachment: setSelectedAttachment,
582
- onClose: function onClose() {
583
- return setSelectedAttachment({});
584
- }
585
- })
586
- })]
587
- })]
588
- });
589
- };
590
- Attachments.displayName = "NeetoEditorAttachments";
591
- var Attachments$1 = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(Attachments));
592
-
593
- exports.ATTACHMENTS_PREVIEW_DATA_CY = ATTACHMENTS_PREVIEW_DATA_CY;
594
- exports.Attachments = Attachments$1;
595
- exports.checkPreviewAvailability = checkPreviewAvailability;
596
- exports.downloadFile = downloadFile;
597
- //# sourceMappingURL=chunk-DYSZxrWZ.cjs.js.map