@bigbinary/neeto-editor-frontend 2.3.0-beta1 → 2.3.1
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.
- package/app/javascript/src/translations/ar.json +2 -1
- package/app/javascript/src/translations/bg.json +2 -1
- package/app/javascript/src/translations/ca.json +2 -1
- package/app/javascript/src/translations/cs.json +2 -1
- package/app/javascript/src/translations/da.json +2 -1
- package/app/javascript/src/translations/de.json +2 -1
- package/app/javascript/src/translations/en.json +2 -1
- package/app/javascript/src/translations/es-MX.json +2 -1
- package/app/javascript/src/translations/es.json +2 -1
- package/app/javascript/src/translations/et.json +2 -1
- package/app/javascript/src/translations/fi.json +2 -1
- package/app/javascript/src/translations/fil.json +2 -1
- package/app/javascript/src/translations/fr.json +2 -1
- package/app/javascript/src/translations/he.json +2 -1
- package/app/javascript/src/translations/hi.json +2 -1
- package/app/javascript/src/translations/hr.json +2 -1
- package/app/javascript/src/translations/hu.json +2 -1
- package/app/javascript/src/translations/id.json +2 -1
- package/app/javascript/src/translations/it.json +2 -1
- package/app/javascript/src/translations/ja.json +2 -1
- package/app/javascript/src/translations/ko.json +2 -1
- package/app/javascript/src/translations/lv.json +2 -1
- package/app/javascript/src/translations/nl.json +2 -1
- package/app/javascript/src/translations/pl.json +2 -1
- package/app/javascript/src/translations/pt-BR.json +2 -1
- package/app/javascript/src/translations/pt.json +2 -1
- package/app/javascript/src/translations/ro.json +2 -1
- package/app/javascript/src/translations/ru.json +2 -1
- package/app/javascript/src/translations/sk.json +2 -1
- package/app/javascript/src/translations/sl.json +2 -1
- package/app/javascript/src/translations/sv.json +2 -1
- package/app/javascript/src/translations/th.json +2 -1
- package/app/javascript/src/translations/tr.json +2 -1
- package/app/javascript/src/translations/uk.json +2 -1
- package/app/javascript/src/translations/vi.json +2 -1
- package/app/javascript/src/translations/zh-CN.json +2 -1
- package/app/javascript/src/translations/zh-TW.json +2 -1
- package/dist/.ready +1 -1
- package/dist/Attachments.js +4 -4
- package/dist/Editor.js +8 -8
- package/dist/EditorContent.js +2 -2
- package/dist/FormikEditor.js +8 -8
- package/dist/Menu.js +6 -6
- package/dist/{chunk-UwzgbfZD.js → chunk-71BzByG6.js} +2 -1
- package/dist/chunk-71BzByG6.js.map +1 -0
- package/dist/{chunk-C_4zmIBQ.js → chunk-B-DmzF0q.js} +3 -3
- package/dist/{chunk-C_4zmIBQ.js.map → chunk-B-DmzF0q.js.map} +1 -1
- package/dist/{chunk-BozdxlzB.js → chunk-BE7om7ts.js} +2 -2
- package/dist/{chunk-BozdxlzB.js.map → chunk-BE7om7ts.js.map} +1 -1
- package/dist/{chunk-CLjWv4gG.js → chunk-BEopbFak.js} +5 -5
- package/dist/{chunk-CLjWv4gG.js.map → chunk-BEopbFak.js.map} +1 -1
- package/dist/chunk-BFj2DeQe.js +24 -0
- package/dist/chunk-BFj2DeQe.js.map +1 -0
- package/dist/{chunk-DwQ7NJtm.js → chunk-BlvmXrHo.js} +5 -5
- package/dist/chunk-BlvmXrHo.js.map +1 -0
- package/dist/{chunk-AexVHCkr.js → chunk-Bq_ijJy6.js} +5 -5
- package/dist/{chunk-AexVHCkr.js.map → chunk-Bq_ijJy6.js.map} +1 -1
- package/dist/{chunk-yBvbLjSM.js → chunk-Bqh1Tsc6.js} +3 -3
- package/dist/{chunk-yBvbLjSM.js.map → chunk-Bqh1Tsc6.js.map} +1 -1
- package/dist/{chunk-Bktpw5vs.js → chunk-Bskj5cbo.js} +6 -6
- package/dist/{chunk-Bktpw5vs.js.map → chunk-Bskj5cbo.js.map} +1 -1
- package/dist/{chunk-GA-wADEN.js → chunk-CMfrTj8Z.js} +3 -3
- package/dist/{chunk-GA-wADEN.js.map → chunk-CMfrTj8Z.js.map} +1 -1
- package/dist/chunk-CXFFqMSB.js +21232 -0
- package/dist/chunk-CXFFqMSB.js.map +1 -0
- package/dist/{chunk-D37Dlp9s.js → chunk-CYmA2oQ8.js} +5 -5
- package/dist/{chunk-D37Dlp9s.js.map → chunk-CYmA2oQ8.js.map} +1 -1
- package/dist/{chunk-CNIDH-FD.js → chunk-Dwn1Kihg.js} +2 -2
- package/dist/{chunk-CNIDH-FD.js.map → chunk-Dwn1Kihg.js.map} +1 -1
- package/dist/{chunk-BIgc5m-h.js → chunk-EjoZ4e18.js} +4 -4
- package/dist/{chunk-BIgc5m-h.js.map → chunk-EjoZ4e18.js.map} +1 -1
- package/dist/{chunk-CivYrffM.js → chunk-PFB_80PR.js} +4 -4
- package/dist/{chunk-CivYrffM.js.map → chunk-PFB_80PR.js.map} +1 -1
- package/dist/{chunk-BHi0J28T.js → chunk-Verd5n0p.js} +7 -6
- package/dist/chunk-Verd5n0p.js.map +1 -0
- package/dist/cjs/Attachments.cjs.js +4 -4
- package/dist/cjs/Editor.cjs.js +8 -8
- package/dist/cjs/EditorContent.cjs.js +2 -2
- package/dist/cjs/FormikEditor.cjs.js +8 -8
- package/dist/cjs/Menu.cjs.js +6 -6
- package/dist/cjs/chunk-BIjq_wPr.cjs.js +21279 -0
- package/dist/cjs/chunk-BIjq_wPr.cjs.js.map +1 -0
- package/dist/cjs/{chunk-Cr0FBhRs.cjs.js → chunk-BhQA4bH9.cjs.js} +7 -6
- package/dist/cjs/chunk-BhQA4bH9.cjs.js.map +1 -0
- package/dist/cjs/{chunk-BfHU_Ynq.cjs.js → chunk-CE1t-vbx.cjs.js} +5 -5
- package/dist/cjs/{chunk-BfHU_Ynq.cjs.js.map → chunk-CE1t-vbx.cjs.js.map} +1 -1
- package/dist/cjs/{chunk-CKbuSSOi.cjs.js → chunk-CVJLunrU.cjs.js} +6 -6
- package/dist/cjs/{chunk-CKbuSSOi.cjs.js.map → chunk-CVJLunrU.cjs.js.map} +1 -1
- package/dist/cjs/{chunk-Niprqtd_.cjs.js → chunk-CgYpFN-j.cjs.js} +3 -3
- package/dist/cjs/{chunk-Niprqtd_.cjs.js.map → chunk-CgYpFN-j.cjs.js.map} +1 -1
- package/dist/cjs/{chunk-CfiRFXt2.cjs.js → chunk-Crr-dv3q.cjs.js} +4 -3
- package/dist/cjs/{chunk-CfiRFXt2.cjs.js.map → chunk-Crr-dv3q.cjs.js.map} +1 -1
- package/dist/cjs/chunk-CvnWF5Pm.cjs.js +26 -0
- package/dist/cjs/chunk-CvnWF5Pm.cjs.js.map +1 -0
- package/dist/cjs/{chunk-Df43FB6u.cjs.js → chunk-D-AVd9c9.cjs.js} +5 -5
- package/dist/cjs/{chunk-Df43FB6u.cjs.js.map → chunk-D-AVd9c9.cjs.js.map} +1 -1
- package/dist/cjs/{chunk-CpQ8t9br.cjs.js → chunk-D2INvafM.cjs.js} +3 -3
- package/dist/cjs/{chunk-CpQ8t9br.cjs.js.map → chunk-D2INvafM.cjs.js.map} +1 -1
- package/dist/cjs/{chunk-DuwgLqpD.cjs.js → chunk-DIpshzqU.cjs.js} +5 -5
- package/dist/cjs/{chunk-DuwgLqpD.cjs.js.map → chunk-DIpshzqU.cjs.js.map} +1 -1
- package/dist/cjs/{chunk-BxKa_XOs.cjs.js → chunk-DO6eyguX.cjs.js} +2 -1
- package/dist/cjs/chunk-DO6eyguX.cjs.js.map +1 -0
- package/dist/cjs/{chunk-CAaxrndK.cjs.js → chunk-DOiH1lXw.cjs.js} +4 -4
- package/dist/cjs/{chunk-CAaxrndK.cjs.js.map → chunk-DOiH1lXw.cjs.js.map} +1 -1
- package/dist/cjs/{chunk-Ct6vCCZ0.cjs.js → chunk-DnoebPXq.cjs.js} +5 -4
- package/dist/cjs/chunk-DnoebPXq.cjs.js.map +1 -0
- package/dist/cjs/{chunk-Df33Mipq.cjs.js → chunk-DoDh8RsI.cjs.js} +2 -2
- package/dist/cjs/{chunk-Df33Mipq.cjs.js.map → chunk-DoDh8RsI.cjs.js.map} +1 -1
- package/dist/cjs/{chunk-CQ-j2kAX.cjs.js → chunk-G_6vNGIP.cjs.js} +2 -2
- package/dist/cjs/{chunk-CQ-j2kAX.cjs.js.map → chunk-G_6vNGIP.cjs.js.map} +1 -1
- package/dist/cjs/{chunk-CkSG3yNC.cjs.js → chunk-z7T8oExT.cjs.js} +3 -3
- package/dist/cjs/{chunk-CkSG3yNC.cjs.js.map → chunk-z7T8oExT.cjs.js.map} +1 -1
- package/dist/cjs/constants.cjs.js +2 -2
- package/dist/cjs/index.cjs.js +8 -8
- package/dist/cjs/utils.cjs.js +3 -3
- package/dist/cjs/v2/Attachments.cjs.js +4 -4
- package/dist/cjs/v2/Editor.cjs.js +654 -25
- package/dist/cjs/v2/Editor.cjs.js.map +1 -1
- package/dist/cjs/v2/EditorContent.cjs.js +3 -3
- package/dist/cjs/v2/FormikEditor.cjs.js +9 -9
- package/dist/cjs/v2/Menu.cjs.js +4 -4
- package/dist/cjs/v2/constants.cjs.js +2 -2
- package/dist/cjs/v2/index.cjs.js +8 -8
- package/dist/cjs/v2/utils.cjs.js +3 -3
- package/dist/constants.js +2 -2
- package/dist/editor-stats.html +1 -1
- package/dist/index.js +8 -8
- package/dist/utils.js +3 -3
- package/dist/v2/Attachments.js +4 -4
- package/dist/v2/Editor.js +658 -29
- package/dist/v2/Editor.js.map +1 -1
- package/dist/v2/EditorContent.js +3 -3
- package/dist/v2/FormikEditor.js +9 -9
- package/dist/v2/Menu.js +4 -4
- package/dist/v2/constants.js +2 -2
- package/dist/v2/editor-content-styles.js +1 -1
- package/dist/v2/editor-content.min.css +1 -1
- package/dist/v2/index.js +8 -8
- package/dist/v2/styles.css +1 -1
- package/dist/v2/styles.js +1 -1
- package/dist/v2/utils.js +3 -3
- package/package.json +14 -13
- package/dist/chunk-BHi0J28T.js.map +0 -1
- package/dist/chunk-DwQ7NJtm.js.map +0 -1
- package/dist/chunk-UwzgbfZD.js.map +0 -1
- package/dist/cjs/chunk-BxKa_XOs.cjs.js.map +0 -1
- package/dist/cjs/chunk-Cr0FBhRs.cjs.js.map +0 -1
- package/dist/cjs/chunk-Ct6vCCZ0.cjs.js.map +0 -1
|
@@ -5,28 +5,31 @@ var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
|
5
5
|
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
6
6
|
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
7
7
|
var React = require('react');
|
|
8
|
-
var neetoAtoms = require('@bigbinary/neeto-atoms');
|
|
9
8
|
var useEditorStore = require('../chunk-CxKWZyHq.cjs.js');
|
|
10
9
|
var classnames = require('classnames');
|
|
10
|
+
var neetoAtoms = require('@bigbinary/neeto-atoms');
|
|
11
11
|
var neetoCist = require('@bigbinary/neeto-cist');
|
|
12
12
|
var reactUtils = require('@bigbinary/neeto-commons-frontend/v2/react-utils');
|
|
13
13
|
var ReactDOM$1 = require('react-dom');
|
|
14
|
-
var getVideoDimension = require('../chunk-
|
|
15
|
-
var constants = require('../chunk-
|
|
14
|
+
var getVideoDimension = require('../chunk-DoDh8RsI.cjs.js');
|
|
15
|
+
var constants = require('../chunk-DO6eyguX.cjs.js');
|
|
16
16
|
var markdown = require('../chunk-C_XHzWXy.cjs.js');
|
|
17
|
-
require('../chunk-
|
|
17
|
+
require('../chunk-G_6vNGIP.cjs.js');
|
|
18
18
|
var ramda = require('ramda');
|
|
19
19
|
var ReactDOM = require('react-dom/server');
|
|
20
20
|
var common = require('../chunk-CU6dMPZV.cjs.js');
|
|
21
21
|
var jsxRuntime = require('react/jsx-runtime');
|
|
22
|
-
var v2_Menu = require('../chunk-
|
|
23
|
-
var
|
|
22
|
+
var v2_Menu = require('../chunk-DOiH1lXw.cjs.js');
|
|
23
|
+
var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
|
|
24
24
|
var index = require('../chunk-CJIIbW7G.cjs.js');
|
|
25
|
+
var i18n = require('i18next');
|
|
26
|
+
var reactFileIcon_esm = require('../chunk-BhQA4bH9.cjs.js');
|
|
27
|
+
var v2_Attachments = require('../chunk-DnoebPXq.cjs.js');
|
|
28
|
+
var FileIcon = require('../chunk-Crr-dv3q.cjs.js');
|
|
25
29
|
var lucideReact = require('lucide-react');
|
|
26
|
-
var CopyToClipboardButton = require('@bigbinary/neeto-molecules/v2/CopyToClipboardButton');
|
|
27
30
|
var reactI18next = require('react-i18next');
|
|
28
|
-
var
|
|
29
|
-
var
|
|
31
|
+
var Megaphone = require('@bigbinary/neeto-icons/misc/Megaphone');
|
|
32
|
+
var CopyToClipboardButton = require('@bigbinary/neeto-molecules/v2/CopyToClipboardButton');
|
|
30
33
|
require('@babel/runtime/helpers/readOnlyError');
|
|
31
34
|
var tippy = require('tippy.js');
|
|
32
35
|
var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
|
|
@@ -36,7 +39,6 @@ var _getPrototypeOf = require('@babel/runtime/helpers/getPrototypeOf');
|
|
|
36
39
|
var _inherits = require('@babel/runtime/helpers/inherits');
|
|
37
40
|
var emojiMart = require('emoji-mart');
|
|
38
41
|
var initializers = require('@bigbinary/neeto-commons-frontend/v2/initializers');
|
|
39
|
-
var reactFileIcon_esm = require('../chunk-Cr0FBhRs.cjs.js');
|
|
40
42
|
var Tippy = require('@tippyjs/react');
|
|
41
43
|
var TextP = require('@bigbinary/neeto-icons/TextP');
|
|
42
44
|
var TextH1 = require('@bigbinary/neeto-icons/TextH1');
|
|
@@ -61,12 +63,10 @@ var Underline = require('@bigbinary/neeto-icons/Underline');
|
|
|
61
63
|
var Link$1 = require('@bigbinary/neeto-icons/Link');
|
|
62
64
|
var Attachment = require('@bigbinary/neeto-icons/Attachment');
|
|
63
65
|
var MessageSquare = require('@bigbinary/neeto-icons/MessageSquare');
|
|
64
|
-
var File = require('@bigbinary/neeto-icons/File');
|
|
65
|
-
var FileIcon = require('../chunk-CfiRFXt2.cjs.js');
|
|
66
|
+
var File$1 = require('@bigbinary/neeto-icons/File');
|
|
66
67
|
var _typeof = require('@babel/runtime/helpers/typeof');
|
|
67
68
|
var Search = require('@bigbinary/neeto-molecules/v2/Search');
|
|
68
69
|
var formik = require('@bigbinary/neeto-atoms/formik');
|
|
69
|
-
var v2_Attachments = require('../chunk-Ct6vCCZ0.cjs.js');
|
|
70
70
|
require('axios');
|
|
71
71
|
require('@bigbinary/neeto-commons-frontend/react-utils');
|
|
72
72
|
require('zustand');
|
|
@@ -81,6 +81,7 @@ require('react-colorful');
|
|
|
81
81
|
require('@bigbinary/neeto-image-uploader-frontend/v2/ImageUploader');
|
|
82
82
|
require('zustand/shallow');
|
|
83
83
|
require('@bigbinary/neeto-molecules/v2/DynamicVariables');
|
|
84
|
+
require('@bigbinary/neeto-commons-frontend/v2/react-utils/useOnClickOutside');
|
|
84
85
|
require('@bigbinary/neeto-icons/LeftAlign');
|
|
85
86
|
require('@bigbinary/neeto-icons/CenterAlign');
|
|
86
87
|
require('@bigbinary/neeto-icons/RightAlign');
|
|
@@ -93,7 +94,6 @@ require('@bigbinary/neeto-icons/AspectRatio169');
|
|
|
93
94
|
require('@bigbinary/neeto-icons/AspectRatio916');
|
|
94
95
|
require('@bigbinary/neeto-icons/AspectRatio43');
|
|
95
96
|
require('@bigbinary/neeto-icons/AspectRatio32');
|
|
96
|
-
require('@bigbinary/neeto-commons-frontend/v2/react-utils/useOnClickOutside');
|
|
97
97
|
|
|
98
98
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
99
99
|
|
|
@@ -104,9 +104,9 @@ var _objectWithoutProperties__default = /*#__PURE__*/_interopDefault(_objectWith
|
|
|
104
104
|
var React__default = /*#__PURE__*/_interopDefault(React);
|
|
105
105
|
var classnames__default = /*#__PURE__*/_interopDefault(classnames);
|
|
106
106
|
var ReactDOM__default = /*#__PURE__*/_interopDefault(ReactDOM);
|
|
107
|
+
var _asyncToGenerator__default = /*#__PURE__*/_interopDefault(_asyncToGenerator);
|
|
107
108
|
var Megaphone__default = /*#__PURE__*/_interopDefault(Megaphone);
|
|
108
109
|
var CopyToClipboardButton__default = /*#__PURE__*/_interopDefault(CopyToClipboardButton);
|
|
109
|
-
var _asyncToGenerator__default = /*#__PURE__*/_interopDefault(_asyncToGenerator);
|
|
110
110
|
var tippy__default = /*#__PURE__*/_interopDefault(tippy);
|
|
111
111
|
var _classCallCheck__default = /*#__PURE__*/_interopDefault(_classCallCheck);
|
|
112
112
|
var _createClass__default = /*#__PURE__*/_interopDefault(_createClass);
|
|
@@ -137,7 +137,7 @@ var Underline__default = /*#__PURE__*/_interopDefault(Underline);
|
|
|
137
137
|
var Link__default = /*#__PURE__*/_interopDefault(Link$1);
|
|
138
138
|
var Attachment__default = /*#__PURE__*/_interopDefault(Attachment);
|
|
139
139
|
var MessageSquare__default = /*#__PURE__*/_interopDefault(MessageSquare);
|
|
140
|
-
var File__default = /*#__PURE__*/_interopDefault(File);
|
|
140
|
+
var File__default = /*#__PURE__*/_interopDefault(File$1);
|
|
141
141
|
var _typeof__default = /*#__PURE__*/_interopDefault(_typeof);
|
|
142
142
|
var Search__default = /*#__PURE__*/_interopDefault(Search);
|
|
143
143
|
|
|
@@ -196,6 +196,604 @@ var CharacterCountWrapper = function CharacterCountWrapper(_ref) {
|
|
|
196
196
|
});
|
|
197
197
|
};
|
|
198
198
|
|
|
199
|
+
var NODE_NAME = "attachment";
|
|
200
|
+
|
|
201
|
+
// Files larger than this are shown as a chip, never as an inline preview.
|
|
202
|
+
var DEFAULT_INLINE_PREVIEW_MAX_SIZE = 20 * 1024 * 1024;
|
|
203
|
+
var PDF_THUMBNAIL_WIDTH = 800;
|
|
204
|
+
var PREVIEW_TYPES = {
|
|
205
|
+
IMAGE: "image",
|
|
206
|
+
VIDEO: "video",
|
|
207
|
+
PDF: "pdf"
|
|
208
|
+
};
|
|
209
|
+
var INLINE_PREVIEW_IMAGE_TYPES = ["image/jpeg", "image/jpg", "image/png", "image/gif", "image/webp"];
|
|
210
|
+
var PDF_CONTENT_TYPE = "application/pdf";
|
|
211
|
+
|
|
212
|
+
var _excluded$5 = ["data"];
|
|
213
|
+
function _regenerator$4() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2$4(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = false, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = true, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), true), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2$4(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2$4(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2$4(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2$4(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2$4(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2$4(u), _regeneratorDefine2$4(u, o, "Generator"), _regeneratorDefine2$4(u, n, function () { return this; }), _regeneratorDefine2$4(u, "toString", function () { return "[object Generator]"; }), (_regenerator$4 = function _regenerator() { return { w: i, m: f }; })(); }
|
|
214
|
+
function _regeneratorDefine2$4(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2$4 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2$4(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2$4(e, r, n, t); }
|
|
215
|
+
|
|
216
|
+
// pdf.js normally runs in a web worker loaded from a separate file, which a
|
|
217
|
+
// host app bundling this package can't be relied on to serve. Exposing the
|
|
218
|
+
// worker module on `globalThis.pdfjsWorker` makes pdf.js run it in-page.
|
|
219
|
+
var loadPdfjs = /*#__PURE__*/function () {
|
|
220
|
+
var _ref = _asyncToGenerator__default.default(/*#__PURE__*/_regenerator$4().m(function _callee() {
|
|
221
|
+
var _globalThis$pdfjsWork;
|
|
222
|
+
var _yield$Promise$all, _yield$Promise$all2, pdfjs, worker;
|
|
223
|
+
return _regenerator$4().w(function (_context) {
|
|
224
|
+
while (1) switch (_context.n) {
|
|
225
|
+
case 0:
|
|
226
|
+
_context.n = 1;
|
|
227
|
+
return Promise.all([Promise.resolve().then(function () { return require('../chunk-BIjq_wPr.cjs.js'); }), Promise.resolve().then(function () { return require('../chunk-CvnWF5Pm.cjs.js'); })]);
|
|
228
|
+
case 1:
|
|
229
|
+
_yield$Promise$all = _context.v;
|
|
230
|
+
_yield$Promise$all2 = _slicedToArray__default.default(_yield$Promise$all, 2);
|
|
231
|
+
pdfjs = _yield$Promise$all2[0];
|
|
232
|
+
worker = _yield$Promise$all2[1];
|
|
233
|
+
(_globalThis$pdfjsWork = globalThis.pdfjsWorker) !== null && _globalThis$pdfjsWork !== void 0 ? _globalThis$pdfjsWork : globalThis.pdfjsWorker = worker;
|
|
234
|
+
return _context.a(2, pdfjs);
|
|
235
|
+
}
|
|
236
|
+
}, _callee);
|
|
237
|
+
}));
|
|
238
|
+
return function loadPdfjs() {
|
|
239
|
+
return _ref.apply(this, arguments);
|
|
240
|
+
};
|
|
241
|
+
}();
|
|
242
|
+
var canvasToBlob = function canvasToBlob(canvas) {
|
|
243
|
+
return new Promise(function (resolve) {
|
|
244
|
+
return canvas.toBlob(resolve, "image/png");
|
|
245
|
+
});
|
|
246
|
+
};
|
|
247
|
+
var getPreviewType = function getPreviewType(_ref2, maxSize) {
|
|
248
|
+
var contentType = _ref2.contentType,
|
|
249
|
+
size = _ref2.size,
|
|
250
|
+
thumbnailUrl = _ref2.thumbnailUrl;
|
|
251
|
+
if (!contentType || neetoCist.isPresent(size) && Number(size) > maxSize) return null;
|
|
252
|
+
if (INLINE_PREVIEW_IMAGE_TYPES.includes(contentType)) {
|
|
253
|
+
return PREVIEW_TYPES.IMAGE;
|
|
254
|
+
}
|
|
255
|
+
if (contentType.startsWith("video/")) return PREVIEW_TYPES.VIDEO;
|
|
256
|
+
if (contentType === PDF_CONTENT_TYPE && neetoCist.isPresent(thumbnailUrl)) {
|
|
257
|
+
return PREVIEW_TYPES.PDF;
|
|
258
|
+
}
|
|
259
|
+
return null;
|
|
260
|
+
};
|
|
261
|
+
var getPreviewSrc = function getPreviewSrc(_ref3, previewType) {
|
|
262
|
+
var url = _ref3.url,
|
|
263
|
+
thumbnailUrl = _ref3.thumbnailUrl;
|
|
264
|
+
return previewType === PREVIEW_TYPES.PDF ? thumbnailUrl : url;
|
|
265
|
+
};
|
|
266
|
+
var uploadFile = /*#__PURE__*/function () {
|
|
267
|
+
var _ref4 = _asyncToGenerator__default.default(/*#__PURE__*/_regenerator$4().m(function _callee2(file, endpoint) {
|
|
268
|
+
var _data$blob_url, _data$signed_id;
|
|
269
|
+
var _yield$DirectUpload$c, _yield$DirectUpload$c2, data, response;
|
|
270
|
+
return _regenerator$4().w(function (_context2) {
|
|
271
|
+
while (1) switch (_context2.n) {
|
|
272
|
+
case 0:
|
|
273
|
+
_context2.n = 1;
|
|
274
|
+
return new reactFileIcon_esm.DirectUpload({
|
|
275
|
+
file: file,
|
|
276
|
+
url: endpoint
|
|
277
|
+
}).create();
|
|
278
|
+
case 1:
|
|
279
|
+
_yield$DirectUpload$c = _context2.v;
|
|
280
|
+
_yield$DirectUpload$c2 = _yield$DirectUpload$c.data;
|
|
281
|
+
data = _yield$DirectUpload$c2 === void 0 ? {} : _yield$DirectUpload$c2;
|
|
282
|
+
response = _objectWithoutProperties__default.default(_yield$DirectUpload$c, _excluded$5);
|
|
283
|
+
return _context2.a(2, {
|
|
284
|
+
url: (_data$blob_url = data.blob_url) !== null && _data$blob_url !== void 0 ? _data$blob_url : response.blob_url,
|
|
285
|
+
signedId: (_data$signed_id = data.signed_id) !== null && _data$signed_id !== void 0 ? _data$signed_id : response.signed_id
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
}, _callee2);
|
|
289
|
+
}));
|
|
290
|
+
return function uploadFile(_x, _x2) {
|
|
291
|
+
return _ref4.apply(this, arguments);
|
|
292
|
+
};
|
|
293
|
+
}();
|
|
294
|
+
var generatePdfThumbnail = /*#__PURE__*/function () {
|
|
295
|
+
var _ref5 = _asyncToGenerator__default.default(/*#__PURE__*/_regenerator$4().m(function _callee3(file) {
|
|
296
|
+
var pdfjs, pdf, page, _page$getViewport, width, viewport, canvas, blob, name, _t, _t2;
|
|
297
|
+
return _regenerator$4().w(function (_context3) {
|
|
298
|
+
while (1) switch (_context3.p = _context3.n) {
|
|
299
|
+
case 0:
|
|
300
|
+
_context3.n = 1;
|
|
301
|
+
return loadPdfjs();
|
|
302
|
+
case 1:
|
|
303
|
+
pdfjs = _context3.v;
|
|
304
|
+
_t = pdfjs;
|
|
305
|
+
_context3.n = 2;
|
|
306
|
+
return file.arrayBuffer();
|
|
307
|
+
case 2:
|
|
308
|
+
_t2 = _context3.v;
|
|
309
|
+
_context3.n = 3;
|
|
310
|
+
return _t.getDocument.call(_t, {
|
|
311
|
+
data: _t2
|
|
312
|
+
}).promise;
|
|
313
|
+
case 3:
|
|
314
|
+
pdf = _context3.v;
|
|
315
|
+
_context3.p = 4;
|
|
316
|
+
_context3.n = 5;
|
|
317
|
+
return pdf.getPage(1);
|
|
318
|
+
case 5:
|
|
319
|
+
page = _context3.v;
|
|
320
|
+
_page$getViewport = page.getViewport({
|
|
321
|
+
scale: 1
|
|
322
|
+
}), width = _page$getViewport.width;
|
|
323
|
+
viewport = page.getViewport({
|
|
324
|
+
scale: PDF_THUMBNAIL_WIDTH / width
|
|
325
|
+
});
|
|
326
|
+
canvas = document.createElement("canvas");
|
|
327
|
+
canvas.width = viewport.width;
|
|
328
|
+
canvas.height = viewport.height;
|
|
329
|
+
_context3.n = 6;
|
|
330
|
+
return page.render({
|
|
331
|
+
canvasContext: canvas.getContext("2d"),
|
|
332
|
+
viewport: viewport
|
|
333
|
+
}).promise;
|
|
334
|
+
case 6:
|
|
335
|
+
_context3.n = 7;
|
|
336
|
+
return canvasToBlob(canvas);
|
|
337
|
+
case 7:
|
|
338
|
+
blob = _context3.v;
|
|
339
|
+
if (blob) {
|
|
340
|
+
_context3.n = 8;
|
|
341
|
+
break;
|
|
342
|
+
}
|
|
343
|
+
return _context3.a(2, null);
|
|
344
|
+
case 8:
|
|
345
|
+
name = "".concat(file.name.replace(/\.pdf$/i, ""), "-preview.png");
|
|
346
|
+
return _context3.a(2, new File([blob], name, {
|
|
347
|
+
type: "image/png"
|
|
348
|
+
}));
|
|
349
|
+
case 9:
|
|
350
|
+
_context3.p = 9;
|
|
351
|
+
pdf.destroy();
|
|
352
|
+
return _context3.f(9);
|
|
353
|
+
case 10:
|
|
354
|
+
return _context3.a(2);
|
|
355
|
+
}
|
|
356
|
+
}, _callee3, null, [[4,, 9, 10]]);
|
|
357
|
+
}));
|
|
358
|
+
return function generatePdfThumbnail(_x3) {
|
|
359
|
+
return _ref5.apply(this, arguments);
|
|
360
|
+
};
|
|
361
|
+
}();
|
|
362
|
+
var findNodePosByUploadId = function findNodePosByUploadId(doc, uploadId) {
|
|
363
|
+
var foundPos = -1;
|
|
364
|
+
doc.descendants(function (node, pos) {
|
|
365
|
+
var _node$attrs;
|
|
366
|
+
if (foundPos !== -1) return false;
|
|
367
|
+
if (((_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : _node$attrs.uploadId) === uploadId) foundPos = pos;
|
|
368
|
+
return foundPos === -1;
|
|
369
|
+
});
|
|
370
|
+
return foundPos;
|
|
371
|
+
};
|
|
372
|
+
var countAttachmentNodes = function countAttachmentNodes(doc, nodeName) {
|
|
373
|
+
var count = 0;
|
|
374
|
+
doc.descendants(function (node) {
|
|
375
|
+
if (node.type.name === nodeName) count += 1;
|
|
376
|
+
});
|
|
377
|
+
return count;
|
|
378
|
+
};
|
|
379
|
+
|
|
380
|
+
var Preview = /*#__PURE__*/React.lazy(function () {
|
|
381
|
+
return Promise.resolve().then(function () { return require('../chunk-CE1t-vbx.cjs.js'); });
|
|
382
|
+
});
|
|
383
|
+
var AttachmentComponent = function AttachmentComponent(_ref) {
|
|
384
|
+
var node = _ref.node,
|
|
385
|
+
extension = _ref.extension,
|
|
386
|
+
editor = _ref.editor,
|
|
387
|
+
deleteNode = _ref.deleteNode;
|
|
388
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
389
|
+
t = _useTranslation.t;
|
|
390
|
+
var _useState = React.useState(false),
|
|
391
|
+
_useState2 = _slicedToArray__default.default(_useState, 2),
|
|
392
|
+
isPreviewOpen = _useState2[0],
|
|
393
|
+
setIsPreviewOpen = _useState2[1];
|
|
394
|
+
var _node$attrs = node.attrs,
|
|
395
|
+
url = _node$attrs.url,
|
|
396
|
+
filename = _node$attrs.filename,
|
|
397
|
+
contentType = _node$attrs.contentType,
|
|
398
|
+
size = _node$attrs.size,
|
|
399
|
+
signedId = _node$attrs.signedId,
|
|
400
|
+
uploadId = _node$attrs.uploadId;
|
|
401
|
+
var attachment = {
|
|
402
|
+
url: url,
|
|
403
|
+
filename: filename,
|
|
404
|
+
contentType: contentType,
|
|
405
|
+
size: size,
|
|
406
|
+
signedId: signedId
|
|
407
|
+
};
|
|
408
|
+
var previewType = getPreviewType(node.attrs, extension.options.previewMaxSize);
|
|
409
|
+
var previewSrc = getPreviewSrc(node.attrs, previewType);
|
|
410
|
+
var canView = v2_Attachments.checkPreviewAvailability(contentType);
|
|
411
|
+
var actions = [canView && {
|
|
412
|
+
key: "view",
|
|
413
|
+
icon: lucideReact.Eye,
|
|
414
|
+
label: t("neetoEditor.attachments.view"),
|
|
415
|
+
onClick: function onClick() {
|
|
416
|
+
return setIsPreviewOpen(true);
|
|
417
|
+
}
|
|
418
|
+
}, {
|
|
419
|
+
key: "download",
|
|
420
|
+
icon: lucideReact.Download,
|
|
421
|
+
label: t("neetoEditor.common.download"),
|
|
422
|
+
onClick: function onClick() {
|
|
423
|
+
return v2_Attachments.downloadFile(url, filename);
|
|
424
|
+
}
|
|
425
|
+
}, {
|
|
426
|
+
key: "open",
|
|
427
|
+
icon: lucideReact.ExternalLink,
|
|
428
|
+
label: t("neetoEditor.common.openInNewTab"),
|
|
429
|
+
onClick: function onClick() {
|
|
430
|
+
return window.open(url, "_blank", "noopener,noreferrer");
|
|
431
|
+
}
|
|
432
|
+
}, editor.isEditable && {
|
|
433
|
+
key: "delete",
|
|
434
|
+
icon: lucideReact.Trash2,
|
|
435
|
+
label: t("neetoEditor.menu.delete"),
|
|
436
|
+
onClick: deleteNode
|
|
437
|
+
}].filter(Boolean);
|
|
438
|
+
if (uploadId) {
|
|
439
|
+
return /*#__PURE__*/jsxRuntime.jsx(useEditorStore.NodeViewWrapper, {
|
|
440
|
+
className: "neeto-editor__attachment neeto-editor__attachment--uploading",
|
|
441
|
+
"data-testid": "neeto-editor-attachment-uploading",
|
|
442
|
+
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
443
|
+
className: "neeto-editor__attachment-file",
|
|
444
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Spinner, {}), /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
445
|
+
className: "neeto-editor__attachment-name",
|
|
446
|
+
children: filename
|
|
447
|
+
}), /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
448
|
+
className: "neeto-editor__attachment-size",
|
|
449
|
+
children: t("neetoEditor.attachments.uploading")
|
|
450
|
+
})]
|
|
451
|
+
})
|
|
452
|
+
});
|
|
453
|
+
}
|
|
454
|
+
return /*#__PURE__*/jsxRuntime.jsxs(useEditorStore.NodeViewWrapper, {
|
|
455
|
+
"data-drag-handle": true,
|
|
456
|
+
className: "neeto-editor__attachment",
|
|
457
|
+
"data-testid": "neeto-editor-attachment",
|
|
458
|
+
children: [previewType && /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
459
|
+
className: "neeto-editor__attachment-preview",
|
|
460
|
+
onClick: previewType === PREVIEW_TYPES.VIDEO ? neetoCist.noop : function () {
|
|
461
|
+
return setIsPreviewOpen(true);
|
|
462
|
+
},
|
|
463
|
+
children: previewType === PREVIEW_TYPES.VIDEO ? /*#__PURE__*/jsxRuntime.jsx("video", {
|
|
464
|
+
controls: true,
|
|
465
|
+
playsInline: true,
|
|
466
|
+
preload: "metadata",
|
|
467
|
+
src: previewSrc
|
|
468
|
+
}) : /*#__PURE__*/jsxRuntime.jsx("img", {
|
|
469
|
+
alt: filename,
|
|
470
|
+
draggable: false,
|
|
471
|
+
src: previewSrc
|
|
472
|
+
})
|
|
473
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
474
|
+
className: "neeto-editor__attachment-file",
|
|
475
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(FileIcon.File, {
|
|
476
|
+
className: "neeto-editor__attachment-icon",
|
|
477
|
+
fileName: filename
|
|
478
|
+
}), /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
479
|
+
className: "neeto-editor__attachment-name",
|
|
480
|
+
children: filename
|
|
481
|
+
}), size && /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
482
|
+
className: "neeto-editor__attachment-size",
|
|
483
|
+
children: FileIcon.convertToFileSize(Number(size))
|
|
484
|
+
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
485
|
+
className: "neeto-editor__attachment-actions",
|
|
486
|
+
children: actions.map(function (_ref2) {
|
|
487
|
+
var key = _ref2.key,
|
|
488
|
+
icon = _ref2.icon,
|
|
489
|
+
label = _ref2.label,
|
|
490
|
+
onClick = _ref2.onClick;
|
|
491
|
+
return /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Tooltip, {
|
|
492
|
+
content: label,
|
|
493
|
+
position: "top",
|
|
494
|
+
children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
|
|
495
|
+
icon: icon,
|
|
496
|
+
onClick: onClick,
|
|
497
|
+
"aria-label": label,
|
|
498
|
+
"data-testid": "neeto-editor-attachment-".concat(key, "-button"),
|
|
499
|
+
size: "sm",
|
|
500
|
+
variant: "ghost"
|
|
501
|
+
})
|
|
502
|
+
}, key);
|
|
503
|
+
})
|
|
504
|
+
})]
|
|
505
|
+
}), /*#__PURE__*/jsxRuntime.jsx(React.Suspense, {
|
|
506
|
+
fallback: /*#__PURE__*/jsxRuntime.jsx("span", {}),
|
|
507
|
+
children: isPreviewOpen && /*#__PURE__*/jsxRuntime.jsx(Preview, {
|
|
508
|
+
attachments: [attachment],
|
|
509
|
+
selectedAttachment: attachment,
|
|
510
|
+
setDidFetchPreviewBundle: neetoCist.noop,
|
|
511
|
+
setSelectedAttachment: neetoCist.noop,
|
|
512
|
+
onClose: function onClose() {
|
|
513
|
+
return setIsPreviewOpen(false);
|
|
514
|
+
}
|
|
515
|
+
})
|
|
516
|
+
})]
|
|
517
|
+
});
|
|
518
|
+
};
|
|
519
|
+
|
|
520
|
+
function ownKeys$j(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; }
|
|
521
|
+
function _objectSpread$j(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$j(Object(t), true).forEach(function (r) { _defineProperty__default.default(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$j(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
522
|
+
function _regenerator$3() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2$3(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = false, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = true, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), true), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2$3(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2$3(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2$3(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2$3(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2$3(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2$3(u), _regeneratorDefine2$3(u, o, "Generator"), _regeneratorDefine2$3(u, n, function () { return this; }), _regeneratorDefine2$3(u, "toString", function () { return "[object Generator]"; }), (_regenerator$3 = function _regenerator() { return { w: i, m: f }; })(); }
|
|
523
|
+
function _regeneratorDefine2$3(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2$3 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2$3(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2$3(e, r, n, t); }
|
|
524
|
+
var dataAttribute = function dataAttribute(name, attribute) {
|
|
525
|
+
return {
|
|
526
|
+
"default": null,
|
|
527
|
+
parseHTML: function parseHTML(element) {
|
|
528
|
+
return element.getAttribute(attribute);
|
|
529
|
+
},
|
|
530
|
+
renderHTML: function renderHTML(attributes) {
|
|
531
|
+
return attributes[name] ? _defineProperty__default.default({}, attribute, attributes[name]) : {};
|
|
532
|
+
}
|
|
533
|
+
};
|
|
534
|
+
};
|
|
535
|
+
var uploadThumbnail = /*#__PURE__*/function () {
|
|
536
|
+
var _ref2 = _asyncToGenerator__default.default(/*#__PURE__*/_regenerator$3().m(function _callee(file, endpoint) {
|
|
537
|
+
var thumbnail, _t, _t2;
|
|
538
|
+
return _regenerator$3().w(function (_context) {
|
|
539
|
+
while (1) switch (_context.p = _context.n) {
|
|
540
|
+
case 0:
|
|
541
|
+
_context.p = 0;
|
|
542
|
+
_context.n = 1;
|
|
543
|
+
return generatePdfThumbnail(file);
|
|
544
|
+
case 1:
|
|
545
|
+
thumbnail = _context.v;
|
|
546
|
+
if (!thumbnail) {
|
|
547
|
+
_context.n = 3;
|
|
548
|
+
break;
|
|
549
|
+
}
|
|
550
|
+
_context.n = 2;
|
|
551
|
+
return uploadFile(thumbnail, endpoint);
|
|
552
|
+
case 2:
|
|
553
|
+
_t = _context.v.url;
|
|
554
|
+
_context.n = 4;
|
|
555
|
+
break;
|
|
556
|
+
case 3:
|
|
557
|
+
_t = null;
|
|
558
|
+
case 4:
|
|
559
|
+
return _context.a(2, _t);
|
|
560
|
+
case 5:
|
|
561
|
+
_context.p = 5;
|
|
562
|
+
_t2 = _context.v;
|
|
563
|
+
// A missing thumbnail only means the PDF is shown as a chip.
|
|
564
|
+
// eslint-disable-next-line no-console
|
|
565
|
+
console.error("Failed to generate the PDF thumbnail", _t2);
|
|
566
|
+
return _context.a(2, null);
|
|
567
|
+
}
|
|
568
|
+
}, _callee, null, [[0, 5]]);
|
|
569
|
+
}));
|
|
570
|
+
return function uploadThumbnail(_x, _x2) {
|
|
571
|
+
return _ref2.apply(this, arguments);
|
|
572
|
+
};
|
|
573
|
+
}();
|
|
574
|
+
var AttachmentExtension = useEditorStore.Node.create({
|
|
575
|
+
name: NODE_NAME,
|
|
576
|
+
group: "block",
|
|
577
|
+
atom: true,
|
|
578
|
+
draggable: true,
|
|
579
|
+
selectable: true,
|
|
580
|
+
addOptions: function addOptions() {
|
|
581
|
+
return {
|
|
582
|
+
config: {},
|
|
583
|
+
previewMaxSize: DEFAULT_INLINE_PREVIEW_MAX_SIZE,
|
|
584
|
+
getExternalAttachmentsCount: function getExternalAttachmentsCount() {
|
|
585
|
+
return 0;
|
|
586
|
+
},
|
|
587
|
+
setIsUploading: function setIsUploading() {}
|
|
588
|
+
};
|
|
589
|
+
},
|
|
590
|
+
addStorage: function addStorage() {
|
|
591
|
+
return {
|
|
592
|
+
pendingUploadsCount: 0
|
|
593
|
+
};
|
|
594
|
+
},
|
|
595
|
+
addAttributes: function addAttributes() {
|
|
596
|
+
return {
|
|
597
|
+
url: dataAttribute("url", "data-url"),
|
|
598
|
+
filename: dataAttribute("filename", "data-filename"),
|
|
599
|
+
contentType: dataAttribute("contentType", "data-content-type"),
|
|
600
|
+
size: dataAttribute("size", "data-size"),
|
|
601
|
+
signedId: dataAttribute("signedId", "data-signed-id"),
|
|
602
|
+
thumbnailUrl: dataAttribute("thumbnailUrl", "data-thumbnail-url"),
|
|
603
|
+
uploadId: {
|
|
604
|
+
"default": null,
|
|
605
|
+
rendered: false
|
|
606
|
+
}
|
|
607
|
+
};
|
|
608
|
+
},
|
|
609
|
+
parseHTML: function parseHTML() {
|
|
610
|
+
return [{
|
|
611
|
+
tag: "div[data-attachment]"
|
|
612
|
+
}];
|
|
613
|
+
},
|
|
614
|
+
renderHTML: function renderHTML(_ref3) {
|
|
615
|
+
var node = _ref3.node,
|
|
616
|
+
HTMLAttributes = _ref3.HTMLAttributes;
|
|
617
|
+
var _node$attrs = node.attrs,
|
|
618
|
+
url = _node$attrs.url,
|
|
619
|
+
filename = _node$attrs.filename,
|
|
620
|
+
size = _node$attrs.size;
|
|
621
|
+
|
|
622
|
+
// Still uploading: leave nothing behind in the saved HTML.
|
|
623
|
+
if (!url) return ["span"];
|
|
624
|
+
var previewType = getPreviewType(node.attrs, this.options.previewMaxSize);
|
|
625
|
+
var linkAttrs = {
|
|
626
|
+
href: url,
|
|
627
|
+
target: "_blank",
|
|
628
|
+
rel: "noopener noreferrer"
|
|
629
|
+
};
|
|
630
|
+
var previewSrc = getPreviewSrc(node.attrs, previewType);
|
|
631
|
+
var preview = previewType === PREVIEW_TYPES.VIDEO ? ["video", {
|
|
632
|
+
src: previewSrc,
|
|
633
|
+
controls: true,
|
|
634
|
+
playsinline: true,
|
|
635
|
+
preload: "metadata"
|
|
636
|
+
}] : ["a", linkAttrs, ["img", {
|
|
637
|
+
src: previewSrc,
|
|
638
|
+
alt: filename,
|
|
639
|
+
loading: "lazy"
|
|
640
|
+
}]];
|
|
641
|
+
var file = ["a", _objectSpread$j(_objectSpread$j({}, linkAttrs), {}, {
|
|
642
|
+
"class": "neeto-editor__attachment-file"
|
|
643
|
+
}), ["span", {
|
|
644
|
+
"class": "neeto-editor__attachment-name"
|
|
645
|
+
}, filename]].concat(_toConsumableArray__default.default(size ? [["span", {
|
|
646
|
+
"class": "neeto-editor__attachment-size"
|
|
647
|
+
}, FileIcon.convertToFileSize(Number(size))]] : []));
|
|
648
|
+
return ["div", _objectSpread$j(_objectSpread$j({}, HTMLAttributes), {}, {
|
|
649
|
+
"data-attachment": "",
|
|
650
|
+
"class": "neeto-editor__attachment"
|
|
651
|
+
})].concat(_toConsumableArray__default.default(previewType ? [["div", {
|
|
652
|
+
"class": "neeto-editor__attachment-preview"
|
|
653
|
+
}, preview]] : []), [file]);
|
|
654
|
+
},
|
|
655
|
+
addNodeView: function addNodeView() {
|
|
656
|
+
return useEditorStore.ReactNodeViewRenderer(AttachmentComponent);
|
|
657
|
+
},
|
|
658
|
+
addCommands: function addCommands() {
|
|
659
|
+
var _this = this;
|
|
660
|
+
return {
|
|
661
|
+
uploadAttachments: function uploadAttachments(files, position) {
|
|
662
|
+
return function (_ref4) {
|
|
663
|
+
var editor = _ref4.editor;
|
|
664
|
+
_this.storage.uploadFiles(editor, Array.from(files), position);
|
|
665
|
+
return true;
|
|
666
|
+
};
|
|
667
|
+
}
|
|
668
|
+
};
|
|
669
|
+
},
|
|
670
|
+
onCreate: function onCreate() {
|
|
671
|
+
var options = this.options,
|
|
672
|
+
storage = this.storage;
|
|
673
|
+
var config = v2_Attachments.buildFileUploadConfig(options.config);
|
|
674
|
+
var endpoint = config.directUploadEndpoint;
|
|
675
|
+
var updateUploadingState = function updateUploadingState(delta) {
|
|
676
|
+
storage.pendingUploadsCount += delta;
|
|
677
|
+
options.setIsUploading(storage.pendingUploadsCount > 0);
|
|
678
|
+
};
|
|
679
|
+
var replacePlaceholder = function replacePlaceholder(editor, uploadId, attrs) {
|
|
680
|
+
if (editor.isDestroyed) return;
|
|
681
|
+
var state = editor.state,
|
|
682
|
+
view = editor.view;
|
|
683
|
+
var pos = findNodePosByUploadId(state.doc, uploadId);
|
|
684
|
+
if (pos === -1) return; // Removed by the user while uploading.
|
|
685
|
+
|
|
686
|
+
var node = state.doc.nodeAt(pos);
|
|
687
|
+
var tr = attrs ? state.tr.setNodeMarkup(pos, undefined, _objectSpread$j(_objectSpread$j({}, node.attrs), attrs)) : state.tr["delete"](pos, pos + node.nodeSize);
|
|
688
|
+
view.dispatch(tr.setMeta("addToHistory", false));
|
|
689
|
+
};
|
|
690
|
+
var uploadPlaceholder = /*#__PURE__*/function () {
|
|
691
|
+
var _ref6 = _asyncToGenerator__default.default(/*#__PURE__*/_regenerator$3().m(function _callee2(editor, _ref5) {
|
|
692
|
+
var file, uploadId, shouldGenerateThumbnail, _yield$Promise$all, _yield$Promise$all2, uploaded, thumbnailUrl, _t3;
|
|
693
|
+
return _regenerator$3().w(function (_context2) {
|
|
694
|
+
while (1) switch (_context2.p = _context2.n) {
|
|
695
|
+
case 0:
|
|
696
|
+
file = _ref5.file, uploadId = _ref5.uploadId;
|
|
697
|
+
_context2.p = 1;
|
|
698
|
+
shouldGenerateThumbnail = file.type === PDF_CONTENT_TYPE && file.size <= options.previewMaxSize;
|
|
699
|
+
_context2.n = 2;
|
|
700
|
+
return Promise.all([uploadFile(file, endpoint), shouldGenerateThumbnail ? uploadThumbnail(file, endpoint) : null]);
|
|
701
|
+
case 2:
|
|
702
|
+
_yield$Promise$all = _context2.v;
|
|
703
|
+
_yield$Promise$all2 = _slicedToArray__default.default(_yield$Promise$all, 2);
|
|
704
|
+
uploaded = _yield$Promise$all2[0];
|
|
705
|
+
thumbnailUrl = _yield$Promise$all2[1];
|
|
706
|
+
replacePlaceholder(editor, uploadId, _objectSpread$j(_objectSpread$j({}, uploaded), {}, {
|
|
707
|
+
thumbnailUrl: thumbnailUrl,
|
|
708
|
+
uploadId: null
|
|
709
|
+
}));
|
|
710
|
+
_context2.n = 4;
|
|
711
|
+
break;
|
|
712
|
+
case 3:
|
|
713
|
+
_context2.p = 3;
|
|
714
|
+
_t3 = _context2.v;
|
|
715
|
+
// eslint-disable-next-line no-console
|
|
716
|
+
console.error("Attachment upload failed", _t3);
|
|
717
|
+
replacePlaceholder(editor, uploadId, null);
|
|
718
|
+
neetoAtoms.Toastr.error(i18n.t("neetoEditor.error.uploadFileFailed"));
|
|
719
|
+
case 4:
|
|
720
|
+
_context2.p = 4;
|
|
721
|
+
updateUploadingState(-1);
|
|
722
|
+
return _context2.f(4);
|
|
723
|
+
case 5:
|
|
724
|
+
return _context2.a(2);
|
|
725
|
+
}
|
|
726
|
+
}, _callee2, null, [[1, 3, 4, 5]]);
|
|
727
|
+
}));
|
|
728
|
+
return function uploadPlaceholder(_x3, _x4) {
|
|
729
|
+
return _ref6.apply(this, arguments);
|
|
730
|
+
};
|
|
731
|
+
}();
|
|
732
|
+
storage.uploadFiles = function (editor, files, position) {
|
|
733
|
+
var selectedFiles = FileIcon.selectFiles({
|
|
734
|
+
previousAttachmentsCount: countAttachmentNodes(editor.state.doc, NODE_NAME) + options.getExternalAttachmentsCount(),
|
|
735
|
+
config: config,
|
|
736
|
+
files: files
|
|
737
|
+
});
|
|
738
|
+
if (ramda.isEmpty(selectedFiles)) return;
|
|
739
|
+
var placeholders = selectedFiles.map(function (file) {
|
|
740
|
+
return {
|
|
741
|
+
file: file,
|
|
742
|
+
uploadId: reactFileIcon_esm.getRandomString()
|
|
743
|
+
};
|
|
744
|
+
});
|
|
745
|
+
var nodes = placeholders.map(function (_ref7) {
|
|
746
|
+
var file = _ref7.file,
|
|
747
|
+
uploadId = _ref7.uploadId;
|
|
748
|
+
return {
|
|
749
|
+
type: NODE_NAME,
|
|
750
|
+
attrs: {
|
|
751
|
+
uploadId: uploadId,
|
|
752
|
+
filename: file.name,
|
|
753
|
+
contentType: file.type,
|
|
754
|
+
size: file.size
|
|
755
|
+
}
|
|
756
|
+
};
|
|
757
|
+
});
|
|
758
|
+
editor.chain().focus().insertContentAt(position !== null && position !== void 0 ? position : editor.state.selection, nodes).run();
|
|
759
|
+
updateUploadingState(placeholders.length);
|
|
760
|
+
placeholders.forEach(function (placeholder) {
|
|
761
|
+
return uploadPlaceholder(editor, placeholder);
|
|
762
|
+
});
|
|
763
|
+
};
|
|
764
|
+
},
|
|
765
|
+
addProseMirrorPlugins: function addProseMirrorPlugins() {
|
|
766
|
+
var editor = this.editor,
|
|
767
|
+
storage = this.storage;
|
|
768
|
+
return [new index.Plugin({
|
|
769
|
+
props: {
|
|
770
|
+
handleDrop: function handleDrop(view, event, _slice, moved) {
|
|
771
|
+
var _event$dataTransfer$f, _event$dataTransfer;
|
|
772
|
+
var files = Array.from((_event$dataTransfer$f = (_event$dataTransfer = event.dataTransfer) === null || _event$dataTransfer === void 0 ? void 0 : _event$dataTransfer.files) !== null && _event$dataTransfer$f !== void 0 ? _event$dataTransfer$f : []);
|
|
773
|
+
if (moved || ramda.isEmpty(files)) return false;
|
|
774
|
+
var coordinates = view.posAtCoords({
|
|
775
|
+
left: event.clientX,
|
|
776
|
+
top: event.clientY
|
|
777
|
+
});
|
|
778
|
+
event.preventDefault();
|
|
779
|
+
storage.uploadFiles(editor, files, coordinates === null || coordinates === void 0 ? void 0 : coordinates.pos);
|
|
780
|
+
return true;
|
|
781
|
+
},
|
|
782
|
+
// Pasted images are handled by the image extension.
|
|
783
|
+
handlePaste: function handlePaste(_view, event) {
|
|
784
|
+
var _event$clipboardData$, _event$clipboardData;
|
|
785
|
+
var files = Array.from((_event$clipboardData$ = (_event$clipboardData = event.clipboardData) === null || _event$clipboardData === void 0 ? void 0 : _event$clipboardData.files) !== null && _event$clipboardData$ !== void 0 ? _event$clipboardData$ : []).filter(function (file) {
|
|
786
|
+
return !/image/i.test(file.type);
|
|
787
|
+
});
|
|
788
|
+
if (ramda.isEmpty(files)) return false;
|
|
789
|
+
storage.uploadFiles(editor, files);
|
|
790
|
+
return true;
|
|
791
|
+
}
|
|
792
|
+
}
|
|
793
|
+
})];
|
|
794
|
+
}
|
|
795
|
+
});
|
|
796
|
+
|
|
199
797
|
var HighlightInternal = useEditorStore.Extension.create({
|
|
200
798
|
name: "HighlightInternal",
|
|
201
799
|
addOptions: function addOptions() {
|
|
@@ -4898,7 +5496,8 @@ var useCustomExtensions = function useCustomExtensions(_ref) {
|
|
|
4898
5496
|
collaborationProvider = _ref.collaborationProvider,
|
|
4899
5497
|
setIsNeetoKbArticleActive = _ref.setIsNeetoKbArticleActive,
|
|
4900
5498
|
containerRef = _ref.containerRef,
|
|
4901
|
-
appendSuggestionsToBody = _ref.appendSuggestionsToBody
|
|
5499
|
+
appendSuggestionsToBody = _ref.appendSuggestionsToBody,
|
|
5500
|
+
inlineAttachmentsOptions = _ref.inlineAttachmentsOptions;
|
|
4902
5501
|
var customExtensions = [EditorContainer.configure({
|
|
4903
5502
|
containerRef: containerRef,
|
|
4904
5503
|
appendSuggestionsToBody: appendSuggestionsToBody
|
|
@@ -4945,6 +5544,9 @@ var useCustomExtensions = function useCustomExtensions(_ref) {
|
|
|
4945
5544
|
if (options.includes(constants.EDITOR_OPTIONS.VIDEO_UPLOAD)) {
|
|
4946
5545
|
customExtensions.push(UnifiedVideoExtension);
|
|
4947
5546
|
}
|
|
5547
|
+
if (options.includes(constants.EDITOR_OPTIONS.INLINE_ATTACHMENTS)) {
|
|
5548
|
+
customExtensions.push(AttachmentExtension.configure(inlineAttachmentsOptions));
|
|
5549
|
+
}
|
|
4948
5550
|
if (options.includes(constants.EDITOR_OPTIONS.NEETO_KB_ARTICLE)) {
|
|
4949
5551
|
customExtensions.push(DeletedArticleDecoration.configure({
|
|
4950
5552
|
deletedArticleIds: new Set()
|
|
@@ -6039,7 +6641,7 @@ var _excluded = ["addonCommands", "addons", "attachments", "attachmentsConfig",
|
|
|
6039
6641
|
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; }
|
|
6040
6642
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).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; }
|
|
6041
6643
|
var Editor$1 = function Editor(_ref, ref) {
|
|
6042
|
-
var _wrapperRef$current;
|
|
6644
|
+
var _attachmentsConfig$re, _attachmentsConfig$re2, _wrapperRef$current;
|
|
6043
6645
|
var _ref$addonCommands = _ref.addonCommands,
|
|
6044
6646
|
addonCommands = _ref$addonCommands === void 0 ? [] : _ref$addonCommands,
|
|
6045
6647
|
_ref$addons = _ref.addons,
|
|
@@ -6128,6 +6730,10 @@ var Editor$1 = function Editor(_ref, ref) {
|
|
|
6128
6730
|
var wrapperRef = React.useRef(null);
|
|
6129
6731
|
var isArticleOptActive = addons.includes(constants.EDITOR_OPTIONS.NEETO_KB_ARTICLE);
|
|
6130
6732
|
var isAttachmentsActive = addons.includes(constants.EDITOR_OPTIONS.ATTACHMENTS);
|
|
6733
|
+
var isInlineAttachmentsActive = addons.includes(constants.EDITOR_OPTIONS.INLINE_ATTACHMENTS);
|
|
6734
|
+
|
|
6735
|
+
// Inline attachments reuse the attachments toolbar button and slash command.
|
|
6736
|
+
var menuAddons = isInlineAttachmentsActive && !isAttachmentsActive ? [].concat(_toConsumableArray__default.default(addons), [constants.EDITOR_OPTIONS.ATTACHMENTS]) : addons;
|
|
6131
6737
|
var isMediaUploaderActive = addons.includes(constants.EDITOR_OPTIONS.IMAGE_UPLOAD) || addons.includes(constants.EDITOR_OPTIONS.VIDEO_UPLOAD);
|
|
6132
6738
|
var isFixedMenuActive = menuType === "fixed";
|
|
6133
6739
|
var isBubbleMenuActive = menuType === "bubble";
|
|
@@ -6154,13 +6760,23 @@ var Editor$1 = function Editor(_ref, ref) {
|
|
|
6154
6760
|
neetoKbArticleState = _useState8[0],
|
|
6155
6761
|
setNeetoKbArticleState = _useState8[1];
|
|
6156
6762
|
var addAttachmentsRef = React.useRef(null);
|
|
6763
|
+
var inlineAttachmentInputRef = React.useRef(null);
|
|
6764
|
+
var attachmentsCountRef = React.useRef(attachments.length);
|
|
6765
|
+
attachmentsCountRef.current = attachments.length;
|
|
6157
6766
|
var attachmentProps = {
|
|
6158
6767
|
handleUploadAttachments: function handleUploadAttachments() {
|
|
6159
|
-
var _addAttachmentsRef$cu;
|
|
6160
|
-
return (_addAttachmentsRef$cu = addAttachmentsRef.current) === null || _addAttachmentsRef$cu === void 0 ? void 0 : _addAttachmentsRef$cu.handleUploadAttachments();
|
|
6768
|
+
var _inlineAttachmentInpu, _addAttachmentsRef$cu;
|
|
6769
|
+
return isInlineAttachmentsActive ? (_inlineAttachmentInpu = inlineAttachmentInputRef.current) === null || _inlineAttachmentInpu === void 0 ? void 0 : _inlineAttachmentInpu.click() : (_addAttachmentsRef$cu = addAttachmentsRef.current) === null || _addAttachmentsRef$cu === void 0 ? void 0 : _addAttachmentsRef$cu.handleUploadAttachments();
|
|
6161
6770
|
},
|
|
6162
6771
|
isDisabled: isAttachmentsUploading
|
|
6163
6772
|
};
|
|
6773
|
+
var inlineAttachmentsOptions = {
|
|
6774
|
+
config: attachmentsConfig,
|
|
6775
|
+
getExternalAttachmentsCount: function getExternalAttachmentsCount() {
|
|
6776
|
+
return attachmentsCountRef.current;
|
|
6777
|
+
},
|
|
6778
|
+
setIsUploading: setIsAttachmentsUploading
|
|
6779
|
+
};
|
|
6164
6780
|
var debouncedOnChangeHandler = reactUtils.useFuncDebounce(function (_ref2) {
|
|
6165
6781
|
var editor = _ref2.editor;
|
|
6166
6782
|
if (!editor.isDestroyed) onChange(editor.getHTML());
|
|
@@ -6183,7 +6799,7 @@ var Editor$1 = function Editor(_ref, ref) {
|
|
|
6183
6799
|
mentions: mentions,
|
|
6184
6800
|
variables: variables,
|
|
6185
6801
|
isSlashCommandsActive: isSlashCommandsActive,
|
|
6186
|
-
options: [].concat(_toConsumableArray__default.default(defaults), _toConsumableArray__default.default(
|
|
6802
|
+
options: [].concat(_toConsumableArray__default.default(defaults), _toConsumableArray__default.default(menuAddons)),
|
|
6187
6803
|
addonCommands: addonCommands,
|
|
6188
6804
|
onSubmit: onSubmit,
|
|
6189
6805
|
keyboardShortcuts: keyboardShortcuts,
|
|
@@ -6196,7 +6812,8 @@ var Editor$1 = function Editor(_ref, ref) {
|
|
|
6196
6812
|
collaborationProvider: collaborationProvider,
|
|
6197
6813
|
setIsNeetoKbArticleActive: setNeetoKbArticleState,
|
|
6198
6814
|
containerRef: wrapperRef,
|
|
6199
|
-
appendSuggestionsToBody: appendSuggestionsToBody
|
|
6815
|
+
appendSuggestionsToBody: appendSuggestionsToBody,
|
|
6816
|
+
inlineAttachmentsOptions: inlineAttachmentsOptions
|
|
6200
6817
|
});
|
|
6201
6818
|
getVideoDimension.useEditorWarnings({
|
|
6202
6819
|
initialValue: initialValue
|
|
@@ -6281,6 +6898,10 @@ var Editor$1 = function Editor(_ref, ref) {
|
|
|
6281
6898
|
if (!editor || !deletedArticlesHook.deletedArticleIds.size) return;
|
|
6282
6899
|
editor.commands.updateDeletedArticles(deletedArticlesHook.deletedArticleIds);
|
|
6283
6900
|
}, [editor, deletedArticlesHook.deletedArticleIds]);
|
|
6901
|
+
var handleInlineAttachmentsChange = function handleInlineAttachmentsChange(event) {
|
|
6902
|
+
editor === null || editor === void 0 || editor.commands.uploadAttachments(event.target.files);
|
|
6903
|
+
event.target.value = null;
|
|
6904
|
+
};
|
|
6284
6905
|
useEditorStore.EditorView.prototype.updateState = function updateState(state) {
|
|
6285
6906
|
if (!this.docView) return;
|
|
6286
6907
|
this.updateStateInner(state, this.state.plugins !== state.plugins);
|
|
@@ -6300,7 +6921,6 @@ var Editor$1 = function Editor(_ref, ref) {
|
|
|
6300
6921
|
children: /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
6301
6922
|
children: [menuType !== "none" && /*#__PURE__*/jsxRuntime.jsx(v2_Menu.Menu, {
|
|
6302
6923
|
addonCommands: addonCommands,
|
|
6303
|
-
addons: addons,
|
|
6304
6924
|
attachmentProps: attachmentProps,
|
|
6305
6925
|
defaults: defaults,
|
|
6306
6926
|
editor: editor,
|
|
@@ -6312,6 +6932,7 @@ var Editor$1 = function Editor(_ref, ref) {
|
|
|
6312
6932
|
showAssetLibrary: showAssetLibrary,
|
|
6313
6933
|
tooltips: tooltips,
|
|
6314
6934
|
variables: variables,
|
|
6935
|
+
addons: menuAddons,
|
|
6315
6936
|
className: menuClassName,
|
|
6316
6937
|
containerRef: wrapperRef,
|
|
6317
6938
|
isIndependant: isMenuIndependent,
|
|
@@ -6337,10 +6958,18 @@ var Editor$1 = function Editor(_ref, ref) {
|
|
|
6337
6958
|
video: false
|
|
6338
6959
|
});
|
|
6339
6960
|
}
|
|
6340
|
-
}),
|
|
6961
|
+
}), isInlineAttachmentsActive && /*#__PURE__*/jsxRuntime.jsx("input", {
|
|
6962
|
+
hidden: true,
|
|
6963
|
+
"data-testid": "neeto-editor-inline-attachments-input",
|
|
6964
|
+
multiple: ((_attachmentsConfig$re = attachmentsConfig.restrictions) === null || _attachmentsConfig$re === void 0 ? void 0 : _attachmentsConfig$re.maxNumberOfFiles) !== 1,
|
|
6965
|
+
ref: inlineAttachmentInputRef,
|
|
6966
|
+
type: "file",
|
|
6967
|
+
accept: (_attachmentsConfig$re2 = attachmentsConfig.restrictions) === null || _attachmentsConfig$re2 === void 0 || (_attachmentsConfig$re2 = _attachmentsConfig$re2.allowedFileTypes) === null || _attachmentsConfig$re2 === void 0 ? void 0 : _attachmentsConfig$re2.join(","),
|
|
6968
|
+
onChange: handleInlineAttachmentsChange
|
|
6969
|
+
}), isAttachmentsActive && (!isInlineAttachmentsActive || neetoCist.isNotEmpty(attachments)) && /*#__PURE__*/jsxRuntime.jsx(v2_Attachments.Attachments, _objectSpread({
|
|
6341
6970
|
attachments: attachments,
|
|
6342
6971
|
config: attachmentsConfig,
|
|
6343
|
-
dragDropRef: wrapperRef,
|
|
6972
|
+
dragDropRef: isInlineAttachmentsActive ? null : wrapperRef,
|
|
6344
6973
|
isIndependent: false,
|
|
6345
6974
|
ref: addAttachmentsRef,
|
|
6346
6975
|
setIsUploading: setIsAttachmentsUploading,
|