@bigbinary/neeto-molecules 1.1.19 → 1.1.20
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/README.md +1 -0
- package/dist/DocumentEditor.js +274 -0
- package/dist/DocumentEditor.js.map +1 -0
- package/package.json +2 -2
- package/src/translations/en.json +3 -0
- package/types/DocumentEditor.d.ts +58 -0
package/README.md
CHANGED
|
@@ -60,6 +60,7 @@ https://neeto-molecules.neeto.com/
|
|
|
60
60
|
- [MoreDropdown](./docs/components.md#MoreDropdown)
|
|
61
61
|
- [Builder](./docs/components.md#Builder)
|
|
62
62
|
- [Metadata](./docs/components.md#metadata)
|
|
63
|
+
- [DocumentEditor](./docs/components.md#DocumentEditor)
|
|
63
64
|
|
|
64
65
|
## Installation Instructions
|
|
65
66
|
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
import React, { useRef, useState } from 'react';
|
|
2
|
+
import { noop } from '@bigbinary/neeto-commons-frontend/pure';
|
|
3
|
+
import { FormikEditor } from '@bigbinary/neeto-editor';
|
|
4
|
+
import { Typography } from '@bigbinary/neetoui';
|
|
5
|
+
import { Textarea } from '@bigbinary/neetoui/formik';
|
|
6
|
+
import { useTranslation } from 'react-i18next';
|
|
7
|
+
import { useFormikContext } from 'formik';
|
|
8
|
+
import { useHotKeys } from '@bigbinary/neeto-commons-frontend/react-utils';
|
|
9
|
+
|
|
10
|
+
function _extends() {
|
|
11
|
+
_extends = Object.assign ? Object.assign.bind() : function (target) {
|
|
12
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
13
|
+
var source = arguments[i];
|
|
14
|
+
for (var key in source) {
|
|
15
|
+
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
16
|
+
target[key] = source[key];
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return target;
|
|
21
|
+
};
|
|
22
|
+
return _extends.apply(this, arguments);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function _typeof(obj) {
|
|
26
|
+
"@babel/helpers - typeof";
|
|
27
|
+
|
|
28
|
+
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
|
|
29
|
+
return typeof obj;
|
|
30
|
+
} : function (obj) {
|
|
31
|
+
return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
|
|
32
|
+
}, _typeof(obj);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function _toPrimitive(input, hint) {
|
|
36
|
+
if (_typeof(input) !== "object" || input === null) return input;
|
|
37
|
+
var prim = input[Symbol.toPrimitive];
|
|
38
|
+
if (prim !== undefined) {
|
|
39
|
+
var res = prim.call(input, hint || "default");
|
|
40
|
+
if (_typeof(res) !== "object") return res;
|
|
41
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
42
|
+
}
|
|
43
|
+
return (hint === "string" ? String : Number)(input);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function _toPropertyKey(arg) {
|
|
47
|
+
var key = _toPrimitive(arg, "string");
|
|
48
|
+
return _typeof(key) === "symbol" ? key : String(key);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function _defineProperty(obj, key, value) {
|
|
52
|
+
key = _toPropertyKey(key);
|
|
53
|
+
if (key in obj) {
|
|
54
|
+
Object.defineProperty(obj, key, {
|
|
55
|
+
value: value,
|
|
56
|
+
enumerable: true,
|
|
57
|
+
configurable: true,
|
|
58
|
+
writable: true
|
|
59
|
+
});
|
|
60
|
+
} else {
|
|
61
|
+
obj[key] = value;
|
|
62
|
+
}
|
|
63
|
+
return obj;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
function _arrayWithHoles(arr) {
|
|
67
|
+
if (Array.isArray(arr)) return arr;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
function _iterableToArrayLimit(arr, i) {
|
|
71
|
+
var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"];
|
|
72
|
+
if (null != _i) {
|
|
73
|
+
var _s,
|
|
74
|
+
_e,
|
|
75
|
+
_x,
|
|
76
|
+
_r,
|
|
77
|
+
_arr = [],
|
|
78
|
+
_n = !0,
|
|
79
|
+
_d = !1;
|
|
80
|
+
try {
|
|
81
|
+
if (_x = (_i = _i.call(arr)).next, 0 === i) {
|
|
82
|
+
if (Object(_i) !== _i) return;
|
|
83
|
+
_n = !1;
|
|
84
|
+
} else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);
|
|
85
|
+
} catch (err) {
|
|
86
|
+
_d = !0, _e = err;
|
|
87
|
+
} finally {
|
|
88
|
+
try {
|
|
89
|
+
if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return;
|
|
90
|
+
} finally {
|
|
91
|
+
if (_d) throw _e;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return _arr;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
function _arrayLikeToArray(arr, len) {
|
|
99
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
100
|
+
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
|
101
|
+
return arr2;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
function _unsupportedIterableToArray(o, minLen) {
|
|
105
|
+
if (!o) return;
|
|
106
|
+
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
|
107
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
108
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
109
|
+
if (n === "Map" || n === "Set") return Array.from(o);
|
|
110
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
function _nonIterableRest() {
|
|
114
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
function _slicedToArray(arr, i) {
|
|
118
|
+
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
var EDITOR_ADDONS = ["highlight", "emoji", "video-upload", "code-block", "block-quote", "image-upload", "image-upload-unsplash", "divider", "video-embed", "undo", "redo", "attachments", "table"];
|
|
122
|
+
var DEFAULT_EDITOR_PROPS = {
|
|
123
|
+
isCharacterCountActive: true,
|
|
124
|
+
isMenuIndependent: true,
|
|
125
|
+
addons: []
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
var e=[],t=[];function n(n,r){if(n&&"undefined"!=typeof document){var a,s=!0===r.prepend?"prepend":"append",d=!0===r.singleTag,i="string"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName("head")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c();}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n));}function c(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a="prepend"===s?"afterbegin":"beforeend";return i.insertAdjacentElement(a,e),e}}
|
|
129
|
+
|
|
130
|
+
var css = ".neeto-molecules-new-document__wrapper{flex-grow:1;height:100%;overflow-y:auto;width:100%}.neeto-molecules-new-document__wrapper .neeto-molecules-new-document__container{margin:0 auto;max-width:768px!important}.neeto-molecules-new-document__wrapper .neeto-molecules-new-document__title{margin:24px 0 0;width:100%}.neeto-molecules-new-document__wrapper .neeto-molecules-new-document__title .neeto-ui-input{padding:0!important}.neeto-molecules-new-document__wrapper .neeto-molecules-new-document__title .neeto-ui-input textarea{color:rgb(var(--neeto-ui-black));font-size:42px;font-weight:700;line-height:48px;resize:none}.neeto-molecules-new-document__wrapper .neeto-molecules-new-document__title .neeto-ui-input textarea::-moz-placeholder{color:rgb(var(--neeto-ui-gray-300))}.neeto-molecules-new-document__wrapper .neeto-molecules-new-document__title .neeto-ui-input textarea::placeholder{color:rgb(var(--neeto-ui-gray-300))}.neeto-molecules-new-document__wrapper .neeto-molecules-editor-content__error{margin:12px auto}.neeto-molecules-new-document__wrapper .ProseMirror{max-height:none;overflow-y:hidden}.neeto-molecules-new-document__wrapper .neeto-editor-fixed-menu{background-color:rgb(var(--neeto-ui-gray-100));border:thin solid rgb(var(--neeto-ui-gray-200));border-left:none;border-right:none}.neeto-molecules-new-document__wrapper .neeto-editor-fixed-menu__wrapper{margin:0 auto;max-width:768px;padding:4px 8px}.neeto-molecules-new-document__wrapper .editor-content__wrapper{border:none!important;padding:12px 16px 0!important;width:100%!important}.neeto-molecules-new-document__wrapper .editor-content-attachments{border:none;margin:12px auto 0;max-width:768px!important;padding-left:16px;padding-right:16px}.neeto-molecules-new-document__wrapper .editor-content-attachments--no-attachments{display:none!important}.neeto-molecules-new-document__wrapper .neeto-editor-character-count{margin:0 auto;max-width:768px!important;padding-left:16px;padding-right:16px}.neeto-molecules-new-document__wrapper .ne-attachments__wrapper{width:100%}.editor-content__wrapper.neeto-editor{padding:0 16px}.editor-content__wrapper.neeto-editor h1{margin:2rem 0 .25rem}.editor-content__wrapper.neeto-editor h2{margin:1.5rem 0 .25rem}.editor-content__wrapper.neeto-editor h3{margin:1rem 0 .25rem}.editor-content__wrapper.neeto-editor p{font-size:1rem;line-height:1.5}.editor-content__wrapper.neeto-editor ol,.editor-content__wrapper.neeto-editor ul{margin-bottom:1rem;padding-left:24px}.editor-content__wrapper.neeto-editor ol li,.editor-content__wrapper.neeto-editor ul li{margin-bottom:.5rem}.editor-content__wrapper.neeto-editor ol li p,.editor-content__wrapper.neeto-editor ul li p{margin-bottom:0}.editor-content__wrapper.neeto-editor ol li:last-child,.editor-content__wrapper.neeto-editor ul li:last-child{margin-bottom:.5rem}.editor-content__wrapper.neeto-editor .neeto-editor-table{margin:8px 0 0}.editor-content__wrapper.neeto-editor .neeto-editor-table table{border-radius:0}.editor-content__wrapper.neeto-editor .neeto-editor-table p{margin-bottom:0}.editor-content__wrapper.neeto-editor .neeto-editor-table .neeto-editor-table__add-column,.editor-content__wrapper.neeto-editor .neeto-editor-table .neeto-editor-table__add-row{visibility:hidden}.editor-content__wrapper.neeto-editor .neeto-editor-table:hover .neeto-editor-table__add-column,.editor-content__wrapper.neeto-editor .neeto-editor-table:hover .neeto-editor-table__add-row{visibility:visible}ins{background-color:#c1f4cb!important;text-decoration:none!important}del{background-color:#faa!important}.neeto-molecules__menubar .neeto-molecules-menubar__subtitle,.neeto-molecules__menubar .neeto-molecules-menubar__title{margin-left:8px}";
|
|
131
|
+
n(css,{});
|
|
132
|
+
|
|
133
|
+
var useEditor = function useEditor(_ref) {
|
|
134
|
+
var onContentChange = _ref.onContentChange,
|
|
135
|
+
editorContentFieldName = _ref.editorContentFieldName,
|
|
136
|
+
setAttachments = _ref.setAttachments,
|
|
137
|
+
onAttachmentChange = _ref.onAttachmentChange,
|
|
138
|
+
onTitleChange = _ref.onTitleChange,
|
|
139
|
+
titleFieldName = _ref.titleFieldName,
|
|
140
|
+
editorRef = _ref.editorRef;
|
|
141
|
+
var _useFormikContext = useFormikContext(),
|
|
142
|
+
setFieldValue = _useFormikContext.setFieldValue,
|
|
143
|
+
errors = _useFormikContext.errors;
|
|
144
|
+
var handleContentChange = function handleContentChange(content) {
|
|
145
|
+
setFieldValue(editorContentFieldName, content);
|
|
146
|
+
onContentChange(content);
|
|
147
|
+
};
|
|
148
|
+
var handleAttachmentChange = function handleAttachmentChange(attachments) {
|
|
149
|
+
setAttachments(attachments);
|
|
150
|
+
setFieldValue("attachments", attachments);
|
|
151
|
+
onAttachmentChange(attachments);
|
|
152
|
+
};
|
|
153
|
+
var handleTitleChange = function handleTitleChange(event) {
|
|
154
|
+
var title = event.target.value;
|
|
155
|
+
setFieldValue(titleFieldName, title);
|
|
156
|
+
onTitleChange(title);
|
|
157
|
+
};
|
|
158
|
+
var titleHotkeyRef = useHotKeys("return", function () {
|
|
159
|
+
var _editorRef$current, _editorRef$current$ed, _editorRef$current$ed2;
|
|
160
|
+
return (_editorRef$current = editorRef.current) === null || _editorRef$current === void 0 ? void 0 : (_editorRef$current$ed = _editorRef$current.editor) === null || _editorRef$current$ed === void 0 ? void 0 : (_editorRef$current$ed2 = _editorRef$current$ed.commands) === null || _editorRef$current$ed2 === void 0 ? void 0 : _editorRef$current$ed2.focus();
|
|
161
|
+
}, {
|
|
162
|
+
mode: "scoped"
|
|
163
|
+
});
|
|
164
|
+
return {
|
|
165
|
+
handleContentChange: handleContentChange,
|
|
166
|
+
handleAttachmentChange: handleAttachmentChange,
|
|
167
|
+
handleTitleChange: handleTitleChange,
|
|
168
|
+
titleHotkeyRef: titleHotkeyRef,
|
|
169
|
+
errors: errors
|
|
170
|
+
};
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
174
|
+
function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
175
|
+
var getUniqueAttachments = function getUniqueAttachments(attachments) {
|
|
176
|
+
var uniqueAttachments = attachments === null || attachments === void 0 ? void 0 : attachments.reduce(function (uniqueAttachments, attachment) {
|
|
177
|
+
return _objectSpread$1(_objectSpread$1({}, uniqueAttachments), {}, _defineProperty({}, attachment.signedId, attachment));
|
|
178
|
+
}, {});
|
|
179
|
+
return Object.values(uniqueAttachments || {});
|
|
180
|
+
};
|
|
181
|
+
|
|
182
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
183
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
184
|
+
var Editor = function Editor(_ref) {
|
|
185
|
+
var initialAttachments = _ref.attachments,
|
|
186
|
+
onContentChange = _ref.onContentChange,
|
|
187
|
+
onAttachmentChange = _ref.onAttachmentChange,
|
|
188
|
+
onTitleChange = _ref.onTitleChange,
|
|
189
|
+
_ref$getTitleRef = _ref.getTitleRef,
|
|
190
|
+
getTitleRef = _ref$getTitleRef === void 0 ? noop : _ref$getTitleRef,
|
|
191
|
+
_ref$getEditorRef = _ref.getEditorRef,
|
|
192
|
+
getEditorRef = _ref$getEditorRef === void 0 ? noop : _ref$getEditorRef,
|
|
193
|
+
_ref$editorContentFie = _ref.editorContentFieldName,
|
|
194
|
+
editorContentFieldName = _ref$editorContentFie === void 0 ? "htmlContent" : _ref$editorContentFie,
|
|
195
|
+
_ref$titleFieldName = _ref.titleFieldName,
|
|
196
|
+
titleFieldName = _ref$titleFieldName === void 0 ? "title" : _ref$titleFieldName,
|
|
197
|
+
_ref$editorProps = _ref.editorProps,
|
|
198
|
+
editorProps = _ref$editorProps === void 0 ? DEFAULT_EDITOR_PROPS : _ref$editorProps,
|
|
199
|
+
_ref$titleProps = _ref.titleProps,
|
|
200
|
+
titleProps = _ref$titleProps === void 0 ? {} : _ref$titleProps;
|
|
201
|
+
var _useTranslation = useTranslation(),
|
|
202
|
+
t = _useTranslation.t;
|
|
203
|
+
var titleRef = useRef();
|
|
204
|
+
var editorRef = useRef();
|
|
205
|
+
var _useState = useState(function () {
|
|
206
|
+
return getUniqueAttachments(initialAttachments);
|
|
207
|
+
}),
|
|
208
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
209
|
+
attachments = _useState2[0],
|
|
210
|
+
setAttachments = _useState2[1];
|
|
211
|
+
var _useEditor = useEditor({
|
|
212
|
+
onContentChange: onContentChange,
|
|
213
|
+
editorContentFieldName: editorContentFieldName,
|
|
214
|
+
setAttachments: setAttachments,
|
|
215
|
+
onAttachmentChange: onAttachmentChange,
|
|
216
|
+
onTitleChange: onTitleChange,
|
|
217
|
+
titleFieldName: titleFieldName,
|
|
218
|
+
editorRef: editorRef
|
|
219
|
+
}),
|
|
220
|
+
handleContentChange = _useEditor.handleContentChange,
|
|
221
|
+
handleAttachmentChange = _useEditor.handleAttachmentChange,
|
|
222
|
+
handleTitleChange = _useEditor.handleTitleChange,
|
|
223
|
+
titleHotkeyRef = _useEditor.titleHotkeyRef,
|
|
224
|
+
errors = _useEditor.errors;
|
|
225
|
+
var setTitleRef = function setTitleRef(node) {
|
|
226
|
+
titleHotkeyRef.current = node;
|
|
227
|
+
getTitleRef(node);
|
|
228
|
+
titleRef.current = node;
|
|
229
|
+
};
|
|
230
|
+
var setEditorRef = function setEditorRef(node) {
|
|
231
|
+
getEditorRef(node);
|
|
232
|
+
editorRef.current = node;
|
|
233
|
+
};
|
|
234
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
235
|
+
className: "neeto-molecules-new-document__wrapper flex",
|
|
236
|
+
"data-testid": "document-editor-container"
|
|
237
|
+
}, /*#__PURE__*/React.createElement(FormikEditor, _extends({
|
|
238
|
+
attachmentsClassName: "editor-content-attachments",
|
|
239
|
+
className: "h-full w-full",
|
|
240
|
+
contentClassName: "editor-content__wrapper neeto-molecules-new-document__container",
|
|
241
|
+
"data-cy": "article-content-text-area",
|
|
242
|
+
error: undefined,
|
|
243
|
+
menuClassName: "w-full sticky top-0 z-20",
|
|
244
|
+
name: editorContentFieldName,
|
|
245
|
+
ref: setEditorRef
|
|
246
|
+
}, _objectSpread({
|
|
247
|
+
attachments: attachments
|
|
248
|
+
}, editorProps), {
|
|
249
|
+
addons: EDITOR_ADDONS.concat(editorProps.addons),
|
|
250
|
+
onChange: handleContentChange,
|
|
251
|
+
onChangeAttachments: handleAttachmentChange
|
|
252
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
253
|
+
className: "neeto-molecules-new-document__container px-4"
|
|
254
|
+
}, /*#__PURE__*/React.createElement(Textarea, _extends({
|
|
255
|
+
nakedTextarea: true,
|
|
256
|
+
className: "neeto-molecules-new-document__title",
|
|
257
|
+
"data-cy": "article-title-text-field",
|
|
258
|
+
name: titleFieldName,
|
|
259
|
+
ref: setTitleRef,
|
|
260
|
+
rows: 1,
|
|
261
|
+
placeholder: titleProps.placeholder || t("neetoMolecules.documentEditor.title"),
|
|
262
|
+
onChange: handleTitleChange,
|
|
263
|
+
onKeyDown: function onKeyDown(e) {
|
|
264
|
+
return e.key === "Enter" && !e.shiftKey && e.preventDefault();
|
|
265
|
+
}
|
|
266
|
+
}, titleProps)), errors[editorContentFieldName] && /*#__PURE__*/React.createElement(Typography, {
|
|
267
|
+
className: "neeto-ui-input__error neeto-molecules-editor-content__error",
|
|
268
|
+
"data-cy": "articles-content-input-error",
|
|
269
|
+
style: "body3"
|
|
270
|
+
}, errors[editorContentFieldName]))));
|
|
271
|
+
};
|
|
272
|
+
|
|
273
|
+
export { Editor as default };
|
|
274
|
+
//# sourceMappingURL=DocumentEditor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DocumentEditor.js","sources":["../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../src/components/DocumentEditor/constants.js","../node_modules/rollup-plugin-styles/dist/runtime/inject-css.js","../src/components/DocumentEditor/hooks/useEditor.js","../src/components/DocumentEditor/utils.js","../src/components/DocumentEditor/index.jsx"],"sourcesContent":["export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export const EDITOR_ADDONS = [\n \"highlight\",\n \"emoji\",\n \"video-upload\",\n \"code-block\",\n \"block-quote\",\n \"image-upload\",\n \"image-upload-unsplash\",\n \"divider\",\n \"video-embed\",\n \"undo\",\n \"redo\",\n \"attachments\",\n \"table\",\n];\n\nexport const DEFAULT_EDITOR_PROPS = {\n isCharacterCountActive: true,\n isMenuIndependent: true,\n addons: [],\n};\n","var e=[],t=[];function n(n,r){if(n&&\"undefined\"!=typeof document){var a,s=!0===r.prepend?\"prepend\":\"append\",d=!0===r.singleTag,i=\"string\"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName(\"head\")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c()}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n))}function c(){var e=document.createElement(\"style\");if(e.setAttribute(\"type\",\"text/css\"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a=\"prepend\"===s?\"afterbegin\":\"beforeend\";return i.insertAdjacentElement(a,e),e}}export{n as default};\n","import { useFormikContext } from \"formik\";\nimport { useHotKeys } from \"neetocommons/react-utils\";\n\nconst useEditor = ({\n onContentChange,\n editorContentFieldName,\n setAttachments,\n onAttachmentChange,\n onTitleChange,\n titleFieldName,\n editorRef,\n}) => {\n const { setFieldValue, errors } = useFormikContext();\n\n const handleContentChange = content => {\n setFieldValue(editorContentFieldName, content);\n onContentChange(content);\n };\n\n const handleAttachmentChange = attachments => {\n setAttachments(attachments);\n setFieldValue(\"attachments\", attachments);\n onAttachmentChange(attachments);\n };\n\n const handleTitleChange = event => {\n const title = event.target.value;\n setFieldValue(titleFieldName, title);\n onTitleChange(title);\n };\n\n const titleHotkeyRef = useHotKeys(\n \"return\",\n () => editorRef.current?.editor?.commands?.focus(),\n { mode: \"scoped\" }\n );\n\n return {\n handleContentChange,\n handleAttachmentChange,\n handleTitleChange,\n titleHotkeyRef,\n errors,\n };\n};\n\nexport default useEditor;\n","export const getUniqueAttachments = attachments => {\n const uniqueAttachments = attachments?.reduce(\n (uniqueAttachments, attachment) => ({\n ...uniqueAttachments,\n [attachment.signedId]: attachment,\n }),\n {}\n );\n\n return Object.values(uniqueAttachments || {});\n};\n","import React, { useRef, useState } from \"react\";\n\nimport { noop } from \"neetocommons/pure\";\nimport { FormikEditor } from \"neetoeditor\";\nimport { Typography } from \"neetoui\";\nimport { Textarea } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { DEFAULT_EDITOR_PROPS, EDITOR_ADDONS } from \"./constants\";\nimport \"./editor.scss\";\nimport useEditor from \"./hooks/useEditor\";\nimport { getUniqueAttachments } from \"./utils\";\n\nconst Editor = ({\n attachments: initialAttachments,\n onContentChange,\n onAttachmentChange,\n onTitleChange,\n getTitleRef = noop,\n getEditorRef = noop,\n editorContentFieldName = \"htmlContent\",\n titleFieldName = \"title\",\n editorProps = DEFAULT_EDITOR_PROPS,\n titleProps = {},\n}) => {\n const { t } = useTranslation();\n\n const titleRef = useRef();\n const editorRef = useRef();\n\n const [attachments, setAttachments] = useState(() =>\n getUniqueAttachments(initialAttachments)\n );\n\n const {\n handleContentChange,\n handleAttachmentChange,\n handleTitleChange,\n titleHotkeyRef,\n errors,\n } = useEditor({\n onContentChange,\n editorContentFieldName,\n setAttachments,\n onAttachmentChange,\n onTitleChange,\n titleFieldName,\n editorRef,\n });\n\n const setTitleRef = node => {\n titleHotkeyRef.current = node;\n getTitleRef(node);\n titleRef.current = node;\n };\n\n const setEditorRef = node => {\n getEditorRef(node);\n editorRef.current = node;\n };\n\n return (\n <div\n className=\"neeto-molecules-new-document__wrapper flex\"\n data-testid=\"document-editor-container\"\n >\n <FormikEditor\n attachmentsClassName=\"editor-content-attachments\"\n className=\"h-full w-full\"\n contentClassName=\"editor-content__wrapper neeto-molecules-new-document__container\"\n data-cy=\"article-content-text-area\"\n error={undefined}\n menuClassName=\"w-full sticky top-0 z-20\"\n name={editorContentFieldName}\n ref={setEditorRef}\n {...{ attachments, ...editorProps }}\n addons={EDITOR_ADDONS.concat(editorProps.addons)}\n onChange={handleContentChange}\n onChangeAttachments={handleAttachmentChange}\n >\n <div className=\"neeto-molecules-new-document__container px-4\">\n <Textarea\n nakedTextarea\n className=\"neeto-molecules-new-document__title\"\n data-cy=\"article-title-text-field\"\n name={titleFieldName}\n ref={setTitleRef}\n rows={1}\n placeholder={\n titleProps.placeholder || t(\"neetoMolecules.documentEditor.title\")\n }\n onChange={handleTitleChange}\n onKeyDown={e =>\n e.key === \"Enter\" && !e.shiftKey && e.preventDefault()\n }\n {...titleProps}\n />\n {errors[editorContentFieldName] && (\n <Typography\n className=\"neeto-ui-input__error neeto-molecules-editor-content__error\"\n data-cy=\"articles-content-input-error\"\n style=\"body3\"\n >\n {errors[editorContentFieldName]}\n </Typography>\n )}\n </div>\n </FormikEditor>\n </div>\n );\n};\n\nEditor.propTypes = {\n /**\n * List of initial attachments.\n */\n attachments: PropTypes.arrayOf(\n PropTypes.shape({\n contentType: PropTypes.string,\n filename: PropTypes.string,\n signedId: PropTypes.string,\n url: PropTypes.string,\n })\n ),\n /**\n * Callback that will be triggered when the editor content changes.\n * This function is not throttled.\n */\n onContentChange: PropTypes.func,\n /**\n * Callback that will be triggered when the attachments changes.\n */\n onAttachmentChange: PropTypes.func,\n /**\n * Callback that will be triggered when the article title changes.\n */\n onTitleChange: PropTypes.func,\n /**\n * This function will be called with the title node reference.\n */\n getTitleRef: PropTypes.func,\n /**\n * This function will be called with editor reference.\n */\n getEditorRef: PropTypes.func,\n /**\n * Formik field name of the editor. The default value is `htmlContent`.\n */\n editorContentFieldName: PropTypes.string,\n /**\n * Formik field name of the title. The default value is `title`.\n */\n titleFieldName: PropTypes.string,\n /**\n * These props will be passed down to the editor component.\n */\n editorProps: PropTypes.object,\n /**\n * These props will be passed down to the title text area component.\n */\n titleProps: PropTypes.object,\n};\n\nexport default Editor;\n"],"names":["toPrimitive","toPropertyKey","arrayLikeToArray","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","EDITOR_ADDONS","DEFAULT_EDITOR_PROPS","isCharacterCountActive","isMenuIndependent","addons","useEditor","_ref","onContentChange","editorContentFieldName","setAttachments","onAttachmentChange","onTitleChange","titleFieldName","editorRef","_useFormikContext","useFormikContext","setFieldValue","errors","handleContentChange","content","handleAttachmentChange","attachments","handleTitleChange","event","title","target","value","titleHotkeyRef","useHotKeys","_editorRef$current","_editorRef$current$ed","_editorRef$current$ed2","current","editor","commands","focus","mode","getUniqueAttachments","uniqueAttachments","reduce","attachment","_objectSpread","_defineProperty","signedId","Object","values","Editor","initialAttachments","_ref$getTitleRef","getTitleRef","noop","_ref$getEditorRef","getEditorRef","_ref$editorContentFie","_ref$titleFieldName","_ref$editorProps","editorProps","_ref$titleProps","titleProps","_useTranslation","useTranslation","t","titleRef","useRef","_useState","useState","_useState2","_slicedToArray","_useEditor","setTitleRef","node","setEditorRef","React","createElement","className","FormikEditor","_extends","attachmentsClassName","contentClassName","error","undefined","menuClassName","name","ref","concat","onChange","onChangeAttachments","Textarea","nakedTextarea","rows","placeholder","onKeyDown","e","key","shiftKey","preventDefault","Typography","style"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bigbinary/neeto-molecules",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.20",
|
|
4
4
|
"description": "A package of reusable molecular components for neeto products.",
|
|
5
5
|
"repository": "git@github.com:bigbinary/neeto-molecules.git",
|
|
6
6
|
"author": "Amaljith K <amaljith.k@bigbinary.com>",
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"@bigbinary/eslint-plugin-neeto": "^1.1.14",
|
|
66
66
|
"@bigbinary/neeto-audit-frontend": "2.0.1",
|
|
67
67
|
"@bigbinary/neeto-commons-frontend": "2.0.134",
|
|
68
|
-
"@bigbinary/neeto-editor": "1.
|
|
68
|
+
"@bigbinary/neeto-editor": "1.28.25",
|
|
69
69
|
"@bigbinary/neeto-filters-frontend": "^2.11.15",
|
|
70
70
|
"@bigbinary/neeto-icons": "^1.14.0",
|
|
71
71
|
"@bigbinary/neeto-molecules": "^1.0.5",
|
package/src/translations/en.json
CHANGED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { FormikEditorProps, attachment } from "@bigbinary/neeto-editor";
|
|
2
|
+
import { TextareaProps } from "@bigbinary/neetoui";
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
* NeetoEditor with a better writing experience.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
*
|
|
9
|
+
* import React from "react";
|
|
10
|
+
* import DocumentEditor from "@bigbinary/neeto-molecules/DocumentEditor";
|
|
11
|
+
*
|
|
12
|
+
* const Component = () => (
|
|
13
|
+
* <Container isHeaderFixed>
|
|
14
|
+
* <FormikFormWrapper
|
|
15
|
+
* className="flex h-full w-full flex-grow"
|
|
16
|
+
* formikProps={{
|
|
17
|
+
* enableReinitialize: true,
|
|
18
|
+
* initialValues: initialFormValues,
|
|
19
|
+
* onSubmit: handleSubmit,
|
|
20
|
+
* validationSchema,
|
|
21
|
+
* }}
|
|
22
|
+
* >
|
|
23
|
+
* <DocumentEditor
|
|
24
|
+
* attachments={attachments}
|
|
25
|
+
* onAttachmentChange={handleAttachmentChange}
|
|
26
|
+
* onContentChange={handleContentChange}
|
|
27
|
+
* onTitleChange={handleTitleChange}
|
|
28
|
+
* getTitleRef={setTitleRef}
|
|
29
|
+
* getEditorRef={setEditorRef}
|
|
30
|
+
* editorProps={{
|
|
31
|
+
* editorSecrets,
|
|
32
|
+
* uploadEndpoint,
|
|
33
|
+
* openImageInNewTab: false,
|
|
34
|
+
* key: "document-editor",
|
|
35
|
+
* }}
|
|
36
|
+
* titleProps={{
|
|
37
|
+
* autoFocus: true,
|
|
38
|
+
* placeholder: "Document title",
|
|
39
|
+
* }}
|
|
40
|
+
* />
|
|
41
|
+
* </FormikFormWrapper>
|
|
42
|
+
* </Container>
|
|
43
|
+
* );
|
|
44
|
+
* @endexample
|
|
45
|
+
*/
|
|
46
|
+
const DocumentEditor: React.FC<{
|
|
47
|
+
attachments: attachment[];
|
|
48
|
+
onContentChange: (content: string) => void;
|
|
49
|
+
onAttachmentChange: (attachments: attachment[]) => void;
|
|
50
|
+
onTitleChange: (title: string) => void;
|
|
51
|
+
getTitleRef: (ref: HTMLTextAreaElement | null) => void;
|
|
52
|
+
getEditorRef: (ref: any) => void;
|
|
53
|
+
editorContentFieldName: string;
|
|
54
|
+
titleFieldName: string;
|
|
55
|
+
editorProps: FormikEditorProps;
|
|
56
|
+
titleProps: TextareaProps;
|
|
57
|
+
}>;
|
|
58
|
+
export default DocumentEditor;
|