@bigbinary/neeto-molecules 3.16.58 → 3.16.59

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.
@@ -1,16 +1,24 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
- import { useCallback, memo, useRef, useMemo } from 'react';
2
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
3
+ import { useCallback, memo, useRef, useState, useMemo } from 'react';
3
4
  import classnames from 'classnames';
5
+ import { useFormikContext } from 'formik';
4
6
  import { isPresent, noop } from '@bigbinary/neeto-cist';
5
7
  import FormikEditor from '@bigbinary/neeto-editor/FormikEditor';
8
+ import MenuHorizontal from '@bigbinary/neeto-icons/MenuHorizontal';
9
+ import Modal from '@bigbinary/neetoui/Modal';
6
10
  import Typography from '@bigbinary/neetoui/Typography';
11
+ import Dropdown from '@bigbinary/neetoui/Dropdown';
7
12
  import Textarea from '@bigbinary/neetoui/formik/Textarea';
8
- import { mergeRight } from 'ramda';
13
+ import { isEmpty, mergeRight } from 'ramda';
9
14
  import { useTranslation } from 'react-i18next';
10
15
  import { n } from './inject-css-DmrvuTKK.js';
11
- import { useFormikContext } from 'formik';
12
16
  import useHotkeys from '@bigbinary/neeto-hotkeys';
17
+ import ImageUploader from '@bigbinary/neeto-image-uploader-frontend/ImageUploader';
18
+ import Spinner from '@bigbinary/neetoui/Spinner';
13
19
  import { jsx, jsxs } from 'react/jsx-runtime';
20
+ import { t } from 'i18next';
21
+ import Image from '@bigbinary/neeto-icons/Image';
14
22
 
15
23
  var EDITOR_ADDONS = ["highlight", "emoji", "video-upload", "code-block", "block-quote", "image-upload", "image-upload-unsplash", "divider", "video-embed", "undo", "redo", "table"];
16
24
  var DEFAULT_EDITOR_PROPS = {
@@ -19,8 +27,16 @@ var DEFAULT_EDITOR_PROPS = {
19
27
  addons: [],
20
28
  size: "medium"
21
29
  };
30
+ var IMAGE_UPLOAD_CONFIG = {
31
+ maxImageSize: 1,
32
+ allowedImageTypes: {
33
+ "image/jpg": [".jpg", ".jpeg"],
34
+ "image/png": [".png"],
35
+ "image/svg": [".svg"]
36
+ }
37
+ };
22
38
 
23
- var css = ".neeto-molecules-document__wrapper{height:100%}@media screen and (max-width:768px){.neeto-molecules-document__wrapper{width:100%}}.neeto-molecules-document__wrapper .neeto-molecules-document__container{margin:0 auto;max-width:48rem!important;width:100%}.neeto-molecules-document__wrapper .neeto-molecules-document-editor__menubar{position:sticky;top:0;width:100%;z-index:20}.neeto-molecules-document__wrapper .neeto-molecules-document__title{margin:1.5rem 0 0;width:100%}.neeto-molecules-document__wrapper .neeto-molecules-document__title .neeto-ui-input{padding:0!important}.neeto-molecules-document__wrapper .neeto-molecules-document__title .neeto-ui-input textarea{color:rgb(var(--neeto-ui-black));font-size:2.625rem;font-weight:700;line-height:3rem;max-height:none;resize:none}.neeto-molecules-document__wrapper .neeto-molecules-document__title .neeto-ui-input textarea::-moz-placeholder{color:rgb(var(--neeto-ui-gray-300))}.neeto-molecules-document__wrapper .neeto-molecules-document__title .neeto-ui-input textarea::placeholder{color:rgb(var(--neeto-ui-gray-300))}@media screen and (max-width:768px){.neeto-molecules-document__wrapper .neeto-molecules-document__title .neeto-ui-input textarea{font-size:2.25rem}}.neeto-molecules-document__wrapper .neeto-molecules-editor-content__error{margin:.75rem auto}.neeto-molecules-document__wrapper .ProseMirror{flex-grow:1;height:auto;max-height:none;overflow-y:hidden}.neeto-molecules-document__wrapper .neeto-editor-fixed-menu{border:thin solid rgb(var(--neeto-ui-gray-200));border-left:none;border-right:none}@media screen and (max-width:768px){.neeto-molecules-document__wrapper .neeto-editor-fixed-menu button.neeto-editor-fixed-menu__item{padding:.375rem}}.neeto-molecules-document__wrapper .neeto-editor-fixed-menu__wrapper{margin:0 auto;max-width:46.875rem;padding-left:0!important;padding-right:0!important}.neeto-molecules-document__wrapper .neeto-editor-fixed-menu__wrapper button.neeto-editor-fixed-menu__item{flex-shrink:0}@media screen and (max-width:768px){.neeto-molecules-document__wrapper .neeto-editor-fixed-menu__wrapper{overflow-x:auto}}.neeto-molecules-document__wrapper .editor-content__wrapper{border:none!important;padding:.75rem 1rem 2rem!important;width:100%!important}.neeto-molecules-document__wrapper .editor-content-attachments{border:none;margin:.75rem auto 0;max-width:48rem!important;padding-left:1rem;padding-right:1rem}.neeto-molecules-document__wrapper .editor-content-attachments--no-attachments{display:none!important}.neeto-molecules-document__wrapper .neeto-editor-character-count{margin:0 auto;max-width:48rem!important;padding-left:1rem;padding-right:1rem}.neeto-molecules-document__wrapper .ne-attachments__wrapper{width:100%}.neeto-molecules-document__wrapper ins{background-color:#c1f4cb!important;text-decoration:none!important}.neeto-molecules-document__wrapper del{background-color:#faa!important}";
39
+ var css = ".neeto-molecules-document__wrapper{height:100%}@media screen and (max-width:768px){.neeto-molecules-document__wrapper{width:100%}}.neeto-molecules-document__wrapper .neeto-molecules-document__container{margin:0 auto;max-width:48rem!important;width:100%}.neeto-molecules-document__wrapper .neeto-molecules-document-editor__menubar{position:sticky;top:0;width:100%;z-index:20}.neeto-molecules-document__wrapper .neeto-molecules-document__title{margin:1.5rem 0 0;width:100%}.neeto-molecules-document__wrapper .neeto-molecules-document__title .neeto-ui-input{padding:0!important}.neeto-molecules-document__wrapper .neeto-molecules-document__title .neeto-ui-input textarea{color:rgb(var(--neeto-ui-black));font-size:2.625rem;font-weight:700;line-height:3rem;max-height:none;resize:none}.neeto-molecules-document__wrapper .neeto-molecules-document__title .neeto-ui-input textarea::-moz-placeholder{color:rgb(var(--neeto-ui-gray-300))}.neeto-molecules-document__wrapper .neeto-molecules-document__title .neeto-ui-input textarea::placeholder{color:rgb(var(--neeto-ui-gray-300))}@media screen and (max-width:768px){.neeto-molecules-document__wrapper .neeto-molecules-document__title .neeto-ui-input textarea{font-size:2.25rem}}.neeto-molecules-document__wrapper .neeto-molecules-editor-content__error{margin:.75rem auto}.neeto-molecules-document__wrapper .ProseMirror{flex-grow:1;height:auto;max-height:none;overflow-y:hidden}.neeto-molecules-document__wrapper .neeto-editor-fixed-menu{border:thin solid rgb(var(--neeto-ui-gray-200));border-left:none;border-right:none}@media screen and (max-width:768px){.neeto-molecules-document__wrapper .neeto-editor-fixed-menu button.neeto-editor-fixed-menu__item{padding:.375rem}}.neeto-molecules-document__wrapper .neeto-editor-fixed-menu__wrapper{margin:0 auto;max-width:46.875rem;padding-left:0!important;padding-right:0!important}.neeto-molecules-document__wrapper .neeto-editor-fixed-menu__wrapper button.neeto-editor-fixed-menu__item{flex-shrink:0}@media screen and (max-width:768px){.neeto-molecules-document__wrapper .neeto-editor-fixed-menu__wrapper{overflow-x:auto}}.neeto-molecules-document__wrapper .editor-content__wrapper{border:none!important;padding:.75rem 1rem 2rem!important;width:100%!important}.neeto-molecules-document__wrapper .editor-content-attachments{border:none;margin:.75rem auto 0;max-width:48rem!important;padding-left:1rem;padding-right:1rem}.neeto-molecules-document__wrapper .editor-content-attachments--no-attachments{display:none!important}.neeto-molecules-document__wrapper .neeto-editor-character-count{margin:0 auto;max-width:48rem!important;padding-left:1rem;padding-right:1rem}.neeto-molecules-document__wrapper .ne-attachments__wrapper{width:100%}.neeto-molecules-document__wrapper ins{background-color:#c1f4cb!important;text-decoration:none!important}.neeto-molecules-document__wrapper del{background-color:#faa!important}@media screen and (max-width:767px){.ne-media-uploader-modal{width:95vw!important}}";
24
40
  n(css,{});
25
41
 
26
42
  var useEditor = function useEditor(_ref) {
@@ -77,6 +93,45 @@ var useEditor = function useEditor(_ref) {
77
93
  };
78
94
  };
79
95
 
96
+ var MediaUploader = function MediaUploader(_ref) {
97
+ var setIsThumbnailImageModalOpen = _ref.setIsThumbnailImageModalOpen;
98
+ var _useFormikContext = useFormikContext(),
99
+ thumbnailImageUrl = _useFormikContext.values.thumbnailImageUrl,
100
+ setFieldValue = _useFormikContext.setFieldValue,
101
+ initialValues = _useFormikContext.initialValues,
102
+ submitForm = _useFormikContext.submitForm;
103
+ var handleUpload = function handleUpload(file) {
104
+ var url = file.url,
105
+ signedId = file.signedId;
106
+ setFieldValue("thumbnailImage", signedId);
107
+ setFieldValue("thumbnailImageUrl", url);
108
+ setTimeout(function () {
109
+ setIsThumbnailImageModalOpen(false);
110
+ submitForm();
111
+ });
112
+ };
113
+ if (isEmpty(initialValues)) {
114
+ return /*#__PURE__*/jsx(Spinner, {});
115
+ }
116
+ return /*#__PURE__*/jsx(ImageUploader, {
117
+ className: "h-auto w-full",
118
+ src: thumbnailImageUrl,
119
+ uploadConfig: IMAGE_UPLOAD_CONFIG,
120
+ onUploadComplete: handleUpload
121
+ }, thumbnailImageUrl);
122
+ };
123
+
124
+ var getThumbnailAddon = function getThumbnailAddon(command) {
125
+ return {
126
+ label: t("neetoMolecules.documentEditor.thumbnailImage"),
127
+ optionName: "thumbnail-image",
128
+ command: command,
129
+ icon: Image,
130
+ isEnabled: true,
131
+ "data-testid": "thumbnail-image-addon"
132
+ };
133
+ };
134
+
80
135
  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; }
81
136
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(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; }
82
137
  var Editor = function Editor(_ref) {
@@ -97,12 +152,34 @@ var Editor = function Editor(_ref) {
97
152
  customEditorProps = _ref$editorProps === void 0 ? {} : _ref$editorProps,
98
153
  _ref$titleProps = _ref.titleProps,
99
154
  titleProps = _ref$titleProps === void 0 ? {} : _ref$titleProps,
155
+ _ref$hasThumbnailImag = _ref.hasThumbnailImage,
156
+ hasThumbnailImage = _ref$hasThumbnailImag === void 0 ? false : _ref$hasThumbnailImag,
100
157
  children = _ref.children;
101
158
  var _useTranslation = useTranslation(),
102
159
  t = _useTranslation.t;
160
+ var _useFormikContext = useFormikContext(),
161
+ values = _useFormikContext.values,
162
+ setFieldValue = _useFormikContext.setFieldValue,
163
+ submitForm = _useFormikContext.submitForm;
164
+ var thumbnailImageUrl = values.thumbnailImageUrl;
165
+ var Menu = Dropdown.Menu,
166
+ MenuItem = Dropdown.MenuItem;
103
167
  var titleRef = useRef();
104
168
  var editorRef = useRef();
105
- var editorProps = mergeRight(DEFAULT_EDITOR_PROPS, customEditorProps);
169
+ var _useState = useState(false),
170
+ _useState2 = _slicedToArray(_useState, 2),
171
+ isThumbnailImageModalOpen = _useState2[0],
172
+ setIsThumbnailImageModalOpen = _useState2[1];
173
+ var editorProps = useMemo(function () {
174
+ var baseProps = mergeRight(DEFAULT_EDITOR_PROPS, customEditorProps);
175
+ if (!hasThumbnailImage) return baseProps;
176
+ var thumbnailAddon = getThumbnailAddon(function () {
177
+ return setIsThumbnailImageModalOpen(true);
178
+ });
179
+ return mergeRight(baseProps, {
180
+ addonCommands: [thumbnailAddon]
181
+ });
182
+ }, [customEditorProps, hasThumbnailImage]);
106
183
  var _useEditor = useEditor({
107
184
  onContentChange: onContentChange,
108
185
  editorContentFieldName: editorContentFieldName,
@@ -140,11 +217,16 @@ var Editor = function Editor(_ref) {
140
217
  }
141
218
  return true;
142
219
  };
143
- return /*#__PURE__*/jsx("div", {
220
+ var handleDeleteThumbnail = function handleDeleteThumbnail() {
221
+ setFieldValue("thumbnailImage", "");
222
+ setFieldValue("thumbnailImageUrl", "");
223
+ setTimeout(submitForm);
224
+ };
225
+ return /*#__PURE__*/jsxs("div", {
144
226
  className: "neeto-molecules-document__wrapper",
145
227
  "data-testid": "document-editor-container",
146
228
  ref: editorHotkeyRef,
147
- children: /*#__PURE__*/jsxs(FormikEditor, _objectSpread(_objectSpread({
229
+ children: [/*#__PURE__*/jsxs(FormikEditor, _objectSpread(_objectSpread({
148
230
  attachmentsClassName: "editor-content-attachments w-full flex-shrink-0",
149
231
  className: "h-full w-full",
150
232
  contentClassName: "editor-content__wrapper neeto-molecules-document__container",
@@ -179,14 +261,53 @@ var Editor = function Editor(_ref) {
179
261
  onKeyDown: function onKeyDown(e) {
180
262
  return e.key === "Enter" && !e.shiftKey && e.preventDefault();
181
263
  }
182
- }, titleProps)), errors[editorContentFieldName] && /*#__PURE__*/jsx(Typography, {
264
+ }, titleProps)), thumbnailImageUrl && /*#__PURE__*/jsxs("div", {
265
+ className: "group relative mt-4",
266
+ children: [/*#__PURE__*/jsx("img", {
267
+ alt: "Cover",
268
+ className: "w-full",
269
+ src: thumbnailImageUrl
270
+ }), /*#__PURE__*/jsx("div", {
271
+ className: "neeto-ui-rounded-full absolute right-2 top-2",
272
+ children: /*#__PURE__*/jsx(Dropdown, {
273
+ strategy: "fixed",
274
+ buttonProps: {
275
+ style: "secondary",
276
+ size: "small",
277
+ icon: MenuHorizontal,
278
+ className: "neeto-ui-bg-white neeto-ui-shadow-md hover:neeto-ui-bg-gray-50 p-1"
279
+ },
280
+ children: /*#__PURE__*/jsx(Menu, {
281
+ children: /*#__PURE__*/jsx(MenuItem.Button, {
282
+ onClick: handleDeleteThumbnail,
283
+ children: t("neetoMolecules.documentEditor.delete")
284
+ })
285
+ })
286
+ })
287
+ })]
288
+ }), errors[editorContentFieldName] && /*#__PURE__*/jsx(Typography, {
183
289
  className: "neeto-ui-input__error neeto-molecules-editor-content__error",
184
290
  "data-cy": "articles-content-input-error",
185
291
  style: "body3",
186
292
  children: errors[editorContentFieldName]
187
293
  })]
188
294
  })]
189
- }))
295
+ })), /*#__PURE__*/jsxs(Modal, {
296
+ className: "media-uploader-modal p-5 pt-0",
297
+ isOpen: isThumbnailImageModalOpen,
298
+ onClose: function onClose() {
299
+ setIsThumbnailImageModalOpen(false);
300
+ },
301
+ children: [/*#__PURE__*/jsx(Modal.Header, {
302
+ className: "ml-0 pl-0",
303
+ children: /*#__PURE__*/jsx(Typography, {
304
+ style: "h2",
305
+ children: t("neetoMolecules.documentEditor.uploadThumbnailImage")
306
+ })
307
+ }), /*#__PURE__*/jsx(MediaUploader, {
308
+ setIsThumbnailImageModalOpen: setIsThumbnailImageModalOpen
309
+ })]
310
+ })]
190
311
  });
191
312
  };
192
313
  Editor.displayName = "DocumentEditor";
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentEditor.js","sources":["../src/components/DocumentEditor/constants.js","../src/components/DocumentEditor/hooks/useEditor.js","../src/components/DocumentEditor/index.jsx"],"sourcesContent":["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 \"table\",\n];\n\nexport const DEFAULT_EDITOR_PROPS = {\n isCharacterCountActive: true,\n isMenuIndependent: true,\n addons: [],\n size: \"medium\",\n};\n","import { useCallback } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { isPresent } from \"neetocist\";\nimport useHotkeys from \"neetohotkeys\";\n\nconst useEditor = ({\n onContentChange,\n editorContentFieldName,\n onAttachmentChange,\n onTitleChange,\n titleFieldName,\n editorRef,\n titleRef,\n}) => {\n const { setFieldValue, errors } = useFormikContext();\n\n const handleContentChange = useCallback(\n content => {\n setFieldValue(editorContentFieldName, content);\n onContentChange?.(content);\n },\n [editorContentFieldName, onContentChange, setFieldValue]\n );\n\n const handleAttachmentChange = useCallback(\n attachments => {\n setFieldValue(\"attachments\", attachments);\n onAttachmentChange?.(attachments);\n },\n [onAttachmentChange, setFieldValue]\n );\n\n const handleTitleChange = event => {\n const title = event.target.value;\n setFieldValue(titleFieldName, title);\n onTitleChange?.(title);\n };\n\n const handleEditorBackspaceKeypress = () => {\n const editor = editorRef.current?.editor;\n const selection = editor?.state?.selection;\n if (\n editor?.isFocused &&\n isPresent(titleRef.current) &&\n selection?.anchor === 1\n ) {\n const title = titleRef.current.value;\n titleRef.current.focus();\n titleRef.current.setSelectionRange(title?.length, title?.length);\n }\n };\n\n const titleHotkeyRef = useHotkeys(\n \"return\",\n () => {\n editorRef.current?.editor?.commands?.insertContentAt(0, \"<p />\");\n editorRef.current?.editor?.commands?.focus(\"start\");\n },\n { mode: \"scoped\" }\n );\n\n const editorHotkeyRef = useHotkeys(\n \"backspace\",\n handleEditorBackspaceKeypress,\n { mode: \"scoped\" }\n );\n\n return {\n handleContentChange,\n handleAttachmentChange,\n handleTitleChange,\n editorHotkeyRef,\n titleHotkeyRef,\n errors,\n };\n};\n\nexport default useEditor;\n","import { memo, useCallback, useMemo, useRef } from \"react\";\n\nimport classNames from \"classnames\";\nimport { noop } from \"neetocist\";\nimport { FormikEditor } from \"neetoeditor\";\nimport { Typography } from \"neetoui\";\nimport { Textarea } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\nimport { mergeRight } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { DEFAULT_EDITOR_PROPS, EDITOR_ADDONS } from \"./constants\";\nimport \"./editor.scss\";\nimport useEditor from \"./hooks/useEditor\";\n\nconst Editor = ({\n attachments,\n onContentChange,\n onAttachmentChange,\n onTitleChange,\n getTitleRef = noop,\n getEditorRef = noop,\n menuClassName,\n editorContentFieldName = \"htmlContent\",\n titleFieldName = \"title\",\n editorProps: customEditorProps = {},\n titleProps = {},\n children,\n}) => {\n const { t } = useTranslation();\n\n const titleRef = useRef();\n const editorRef = useRef();\n\n const editorProps = mergeRight(DEFAULT_EDITOR_PROPS, customEditorProps);\n\n const {\n handleContentChange,\n handleAttachmentChange,\n handleTitleChange,\n editorHotkeyRef,\n titleHotkeyRef,\n errors,\n } = useEditor({\n onContentChange,\n editorContentFieldName,\n onAttachmentChange,\n onTitleChange,\n titleFieldName,\n editorRef,\n titleRef,\n });\n\n const setTitleRef = node => {\n titleHotkeyRef.current = node;\n getTitleRef(node);\n titleRef.current = node;\n };\n\n const setEditorRef = useCallback(node => {\n editorRef.current = node;\n getEditorRef(node);\n }, []);\n\n const addons = useMemo(\n () => EDITOR_ADDONS.concat(editorProps.addons || []),\n [editorProps.addons]\n );\n\n const handleTab = () => {\n const isListActive =\n editorRef.current?.editor?.isActive(\"orderedList\") ||\n editorRef.current?.editor?.isActive(\"bulletList\");\n\n if (isListActive) {\n editorRef.current?.editor?.commands?.sinkListItem(\"listItem\");\n\n return true;\n }\n\n return true;\n };\n\n return (\n <div\n className=\"neeto-molecules-document__wrapper\"\n data-testid=\"document-editor-container\"\n ref={editorHotkeyRef}\n >\n <FormikEditor\n attachmentsClassName=\"editor-content-attachments w-full flex-shrink-0\"\n className=\"h-full w-full\"\n contentClassName=\"editor-content__wrapper neeto-molecules-document__container\"\n data-cy=\"neeto-molecules-document-content-text-area\"\n error={undefined}\n errorWrapperClassName=\"w-full min-h-full flex flex-col items-center\"\n name={editorContentFieldName}\n ref={setEditorRef}\n menuClassName={classNames(\n \"neeto-molecules-document-editor__menubar\",\n menuClassName\n )}\n {...{ attachments, ...editorProps, addons }}\n contentWrapperClassName=\"w-full flex flex-col flex-grow\"\n keyboardShortcuts={{ Tab: handleTab, ...editorProps.keyboardShortcuts }}\n onChange={handleContentChange}\n onChangeAttachments={handleAttachmentChange}\n >\n {children}\n <div className=\"neeto-molecules-document__container px-4\">\n <Textarea\n nakedTextarea\n className=\"neeto-molecules-document__title\"\n data-cy=\"neeto-molecules-document-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 * A prop to pass class names to the editor menubar.\n */\n menuClassName: PropTypes.string,\n /**\n * The children will be rendered above the title input field.\n */\n children: PropTypes.node,\n};\n\nEditor.displayName = \"DocumentEditor\";\n\nexport default memo(Editor);\n"],"names":["EDITOR_ADDONS","DEFAULT_EDITOR_PROPS","isCharacterCountActive","isMenuIndependent","addons","size","useEditor","_ref","onContentChange","editorContentFieldName","onAttachmentChange","onTitleChange","titleFieldName","editorRef","titleRef","_useFormikContext","useFormikContext","setFieldValue","errors","handleContentChange","useCallback","content","handleAttachmentChange","attachments","handleTitleChange","event","title","target","value","handleEditorBackspaceKeypress","_editorRef$current","_editor$state","editor","current","selection","state","isFocused","isPresent","anchor","focus","setSelectionRange","length","titleHotkeyRef","useHotkeys","_editorRef$current2","_editorRef$current3","commands","insertContentAt","mode","editorHotkeyRef","Editor","_ref$getTitleRef","getTitleRef","noop","_ref$getEditorRef","getEditorRef","menuClassName","_ref$editorContentFie","_ref$titleFieldName","_ref$editorProps","editorProps","customEditorProps","_ref$titleProps","titleProps","children","_useTranslation","useTranslation","t","useRef","mergeRight","_useEditor","setTitleRef","node","setEditorRef","useMemo","concat","handleTab","isListActive","isActive","sinkListItem","_jsx","className","ref","_jsxs","FormikEditor","_objectSpread","attachmentsClassName","contentClassName","error","undefined","errorWrapperClassName","name","classNames","contentWrapperClassName","keyboardShortcuts","Tab","onChange","onChangeAttachments","Textarea","nakedTextarea","rows","placeholder","onKeyDown","e","key","shiftKey","preventDefault","Typography","style","displayName","memo"],"mappings":"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"}
1
+ {"version":3,"file":"DocumentEditor.js","sources":["../src/components/DocumentEditor/constants.js","../src/components/DocumentEditor/hooks/useEditor.js","../src/components/DocumentEditor/MediaUploader.jsx","../src/components/DocumentEditor/utils.js","../src/components/DocumentEditor/index.jsx"],"sourcesContent":["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 \"table\",\n];\n\nexport const DEFAULT_EDITOR_PROPS = {\n isCharacterCountActive: true,\n isMenuIndependent: true,\n addons: [],\n size: \"medium\",\n};\n\nexport const IMAGE_UPLOAD_CONFIG = {\n maxImageSize: 1,\n allowedImageTypes: {\n \"image/jpg\": [\".jpg\", \".jpeg\"],\n \"image/png\": [\".png\"],\n \"image/svg\": [\".svg\"],\n },\n};\n","import { useCallback } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { isPresent } from \"neetocist\";\nimport useHotkeys from \"neetohotkeys\";\n\nconst useEditor = ({\n onContentChange,\n editorContentFieldName,\n onAttachmentChange,\n onTitleChange,\n titleFieldName,\n editorRef,\n titleRef,\n}) => {\n const { setFieldValue, errors } = useFormikContext();\n\n const handleContentChange = useCallback(\n content => {\n setFieldValue(editorContentFieldName, content);\n onContentChange?.(content);\n },\n [editorContentFieldName, onContentChange, setFieldValue]\n );\n\n const handleAttachmentChange = useCallback(\n attachments => {\n setFieldValue(\"attachments\", attachments);\n onAttachmentChange?.(attachments);\n },\n [onAttachmentChange, setFieldValue]\n );\n\n const handleTitleChange = event => {\n const title = event.target.value;\n setFieldValue(titleFieldName, title);\n onTitleChange?.(title);\n };\n\n const handleEditorBackspaceKeypress = () => {\n const editor = editorRef.current?.editor;\n const selection = editor?.state?.selection;\n if (\n editor?.isFocused &&\n isPresent(titleRef.current) &&\n selection?.anchor === 1\n ) {\n const title = titleRef.current.value;\n titleRef.current.focus();\n titleRef.current.setSelectionRange(title?.length, title?.length);\n }\n };\n\n const titleHotkeyRef = useHotkeys(\n \"return\",\n () => {\n editorRef.current?.editor?.commands?.insertContentAt(0, \"<p />\");\n editorRef.current?.editor?.commands?.focus(\"start\");\n },\n { mode: \"scoped\" }\n );\n\n const editorHotkeyRef = useHotkeys(\n \"backspace\",\n handleEditorBackspaceKeypress,\n { mode: \"scoped\" }\n );\n\n return {\n handleContentChange,\n handleAttachmentChange,\n handleTitleChange,\n editorHotkeyRef,\n titleHotkeyRef,\n errors,\n };\n};\n\nexport default useEditor;\n","import { ImageUploader } from \"@bigbinary/neeto-image-uploader-frontend\";\nimport { useFormikContext } from \"formik\";\nimport { Spinner } from \"neetoui\";\nimport { isEmpty } from \"ramda\";\n\nimport { IMAGE_UPLOAD_CONFIG } from \"./constants\";\n\nconst MediaUploader = ({ setIsThumbnailImageModalOpen }) => {\n const {\n values: { thumbnailImageUrl },\n setFieldValue,\n initialValues,\n submitForm,\n } = useFormikContext();\n\n const handleUpload = file => {\n const { url, signedId } = file;\n setFieldValue(\"thumbnailImage\", signedId);\n setFieldValue(\"thumbnailImageUrl\", url);\n setTimeout(() => {\n setIsThumbnailImageModalOpen(false);\n submitForm();\n });\n };\n\n if (isEmpty(initialValues)) {\n return <Spinner />;\n }\n\n return (\n <ImageUploader\n className=\"h-auto w-full\"\n key={thumbnailImageUrl}\n src={thumbnailImageUrl}\n uploadConfig={IMAGE_UPLOAD_CONFIG}\n onUploadComplete={handleUpload}\n />\n );\n};\n\nexport default MediaUploader;\n","import { t } from \"i18next\";\nimport { Image } from \"neetoicons\";\n\nexport const getThumbnailAddon = command => ({\n label: t(\"neetoMolecules.documentEditor.thumbnailImage\"),\n optionName: \"thumbnail-image\",\n command,\n icon: Image,\n isEnabled: true,\n \"data-testid\": \"thumbnail-image-addon\",\n});\n","import { memo, useCallback, useMemo, useRef, useState } from \"react\";\n\nimport classNames from \"classnames\";\nimport { useFormikContext } from \"formik\";\nimport { noop } from \"neetocist\";\nimport { FormikEditor } from \"neetoeditor\";\nimport { MenuHorizontal } from \"neetoicons\";\nimport { Modal, Typography, Dropdown } from \"neetoui\";\nimport { Textarea } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\nimport { mergeRight } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { DEFAULT_EDITOR_PROPS, EDITOR_ADDONS } from \"./constants\";\nimport \"./editor.scss\";\nimport useEditor from \"./hooks/useEditor\";\nimport MediaUploader from \"./MediaUploader\";\nimport { getThumbnailAddon } from \"./utils\";\n\nconst Editor = ({\n attachments,\n onContentChange,\n onAttachmentChange,\n onTitleChange,\n getTitleRef = noop,\n getEditorRef = noop,\n menuClassName,\n editorContentFieldName = \"htmlContent\",\n titleFieldName = \"title\",\n editorProps: customEditorProps = {},\n titleProps = {},\n hasThumbnailImage = false,\n children,\n}) => {\n const { t } = useTranslation();\n const { values, setFieldValue, submitForm } = useFormikContext();\n const { thumbnailImageUrl } = values;\n\n const { Menu, MenuItem } = Dropdown;\n\n const titleRef = useRef();\n const editorRef = useRef();\n const [isThumbnailImageModalOpen, setIsThumbnailImageModalOpen] =\n useState(false);\n\n const editorProps = useMemo(() => {\n const baseProps = mergeRight(DEFAULT_EDITOR_PROPS, customEditorProps);\n\n if (!hasThumbnailImage) return baseProps;\n\n const thumbnailAddon = getThumbnailAddon(() =>\n setIsThumbnailImageModalOpen(true)\n );\n\n return mergeRight(baseProps, { addonCommands: [thumbnailAddon] });\n }, [customEditorProps, hasThumbnailImage]);\n\n const {\n handleContentChange,\n handleAttachmentChange,\n handleTitleChange,\n editorHotkeyRef,\n titleHotkeyRef,\n errors,\n } = useEditor({\n onContentChange,\n editorContentFieldName,\n onAttachmentChange,\n onTitleChange,\n titleFieldName,\n editorRef,\n titleRef,\n });\n\n const setTitleRef = node => {\n titleHotkeyRef.current = node;\n getTitleRef(node);\n titleRef.current = node;\n };\n\n const setEditorRef = useCallback(node => {\n editorRef.current = node;\n getEditorRef(node);\n }, []);\n\n const addons = useMemo(\n () => EDITOR_ADDONS.concat(editorProps.addons || []),\n [editorProps.addons]\n );\n\n const handleTab = () => {\n const isListActive =\n editorRef.current?.editor?.isActive(\"orderedList\") ||\n editorRef.current?.editor?.isActive(\"bulletList\");\n\n if (isListActive) {\n editorRef.current?.editor?.commands?.sinkListItem(\"listItem\");\n\n return true;\n }\n\n return true;\n };\n\n const handleDeleteThumbnail = () => {\n setFieldValue(\"thumbnailImage\", \"\");\n setFieldValue(\"thumbnailImageUrl\", \"\");\n setTimeout(submitForm);\n };\n\n return (\n <div\n className=\"neeto-molecules-document__wrapper\"\n data-testid=\"document-editor-container\"\n ref={editorHotkeyRef}\n >\n <FormikEditor\n attachmentsClassName=\"editor-content-attachments w-full flex-shrink-0\"\n className=\"h-full w-full\"\n contentClassName=\"editor-content__wrapper neeto-molecules-document__container\"\n data-cy=\"neeto-molecules-document-content-text-area\"\n error={undefined}\n errorWrapperClassName=\"w-full min-h-full flex flex-col items-center\"\n name={editorContentFieldName}\n ref={setEditorRef}\n menuClassName={classNames(\n \"neeto-molecules-document-editor__menubar\",\n menuClassName\n )}\n {...{ attachments, ...editorProps, addons }}\n contentWrapperClassName=\"w-full flex flex-col flex-grow\"\n keyboardShortcuts={{ Tab: handleTab, ...editorProps.keyboardShortcuts }}\n onChange={handleContentChange}\n onChangeAttachments={handleAttachmentChange}\n >\n {children}\n <div className=\"neeto-molecules-document__container px-4\">\n <Textarea\n nakedTextarea\n className=\"neeto-molecules-document__title\"\n data-cy=\"neeto-molecules-document-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 {thumbnailImageUrl && (\n <div className=\"group relative mt-4\">\n <img alt=\"Cover\" className=\"w-full\" src={thumbnailImageUrl} />\n <div className=\"neeto-ui-rounded-full absolute right-2 top-2\">\n <Dropdown\n strategy=\"fixed\"\n buttonProps={{\n style: \"secondary\",\n size: \"small\",\n icon: MenuHorizontal,\n className:\n \"neeto-ui-bg-white neeto-ui-shadow-md hover:neeto-ui-bg-gray-50 p-1\",\n }}\n >\n <Menu>\n <MenuItem.Button onClick={handleDeleteThumbnail}>\n {t(\"neetoMolecules.documentEditor.delete\")}\n </MenuItem.Button>\n </Menu>\n </Dropdown>\n </div>\n </div>\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 <Modal\n className=\"media-uploader-modal p-5 pt-0\"\n isOpen={isThumbnailImageModalOpen}\n onClose={() => {\n setIsThumbnailImageModalOpen(false);\n }}\n >\n <Modal.Header className=\"ml-0 pl-0\">\n <Typography style=\"h2\">\n {t(\"neetoMolecules.documentEditor.uploadThumbnailImage\")}\n </Typography>\n </Modal.Header>\n <MediaUploader {...{ setIsThumbnailImageModalOpen }} />\n </Modal>\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 * A prop to pass class names to the editor menubar.\n */\n menuClassName: PropTypes.string,\n /**\n * The children will be rendered above the title input field.\n */\n children: PropTypes.node,\n /**\n * A prop to enable the thumbnail image uploader.\n */\n hasThumbnailImage: PropTypes.bool,\n};\n\nEditor.displayName = \"DocumentEditor\";\n\nexport default memo(Editor);\n"],"names":["EDITOR_ADDONS","DEFAULT_EDITOR_PROPS","isCharacterCountActive","isMenuIndependent","addons","size","IMAGE_UPLOAD_CONFIG","maxImageSize","allowedImageTypes","useEditor","_ref","onContentChange","editorContentFieldName","onAttachmentChange","onTitleChange","titleFieldName","editorRef","titleRef","_useFormikContext","useFormikContext","setFieldValue","errors","handleContentChange","useCallback","content","handleAttachmentChange","attachments","handleTitleChange","event","title","target","value","handleEditorBackspaceKeypress","_editorRef$current","_editor$state","editor","current","selection","state","isFocused","isPresent","anchor","focus","setSelectionRange","length","titleHotkeyRef","useHotkeys","_editorRef$current2","_editorRef$current3","commands","insertContentAt","mode","editorHotkeyRef","MediaUploader","setIsThumbnailImageModalOpen","thumbnailImageUrl","values","initialValues","submitForm","handleUpload","file","url","signedId","setTimeout","isEmpty","_jsx","Spinner","ImageUploader","className","src","uploadConfig","onUploadComplete","getThumbnailAddon","command","label","t","optionName","icon","Image","isEnabled","Editor","_ref$getTitleRef","getTitleRef","noop","_ref$getEditorRef","getEditorRef","menuClassName","_ref$editorContentFie","_ref$titleFieldName","_ref$editorProps","editorProps","customEditorProps","_ref$titleProps","titleProps","_ref$hasThumbnailImag","hasThumbnailImage","children","_useTranslation","useTranslation","Menu","Dropdown","MenuItem","useRef","_useState","useState","_useState2","_slicedToArray","isThumbnailImageModalOpen","useMemo","baseProps","mergeRight","thumbnailAddon","addonCommands","_useEditor","setTitleRef","node","setEditorRef","concat","handleTab","isListActive","isActive","sinkListItem","handleDeleteThumbnail","_jsxs","ref","FormikEditor","_objectSpread","attachmentsClassName","contentClassName","error","undefined","errorWrapperClassName","name","classNames","contentWrapperClassName","keyboardShortcuts","Tab","onChange","onChangeAttachments","Textarea","nakedTextarea","rows","placeholder","onKeyDown","e","key","shiftKey","preventDefault","alt","strategy","buttonProps","style","MenuHorizontal","Button","onClick","Typography","Modal","isOpen","onClose","Header","displayName","memo"],"mappings":"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"}
@@ -1,18 +1,26 @@
1
1
  'use strict';
2
2
 
3
3
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
+ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
4
5
  var React = require('react');
5
6
  var classnames = require('classnames');
7
+ var formik = require('formik');
6
8
  var neetoCist = require('@bigbinary/neeto-cist');
7
9
  var FormikEditor = require('@bigbinary/neeto-editor/FormikEditor');
10
+ var MenuHorizontal = require('@bigbinary/neeto-icons/MenuHorizontal');
11
+ var Modal = require('@bigbinary/neetoui/Modal');
8
12
  var Typography = require('@bigbinary/neetoui/Typography');
13
+ var Dropdown = require('@bigbinary/neetoui/Dropdown');
9
14
  var Textarea = require('@bigbinary/neetoui/formik/Textarea');
10
15
  var ramda = require('ramda');
11
16
  var reactI18next = require('react-i18next');
12
17
  var injectCss = require('./inject-css-vQvjPR2x.js');
13
- var formik = require('formik');
14
18
  var useHotkeys = require('@bigbinary/neeto-hotkeys');
19
+ var ImageUploader = require('@bigbinary/neeto-image-uploader-frontend/ImageUploader');
20
+ var Spinner = require('@bigbinary/neetoui/Spinner');
15
21
  var jsxRuntime = require('react/jsx-runtime');
22
+ var i18next = require('i18next');
23
+ var Image = require('@bigbinary/neeto-icons/Image');
16
24
 
17
25
  var EDITOR_ADDONS = ["highlight", "emoji", "video-upload", "code-block", "block-quote", "image-upload", "image-upload-unsplash", "divider", "video-embed", "undo", "redo", "table"];
18
26
  var DEFAULT_EDITOR_PROPS = {
@@ -21,8 +29,16 @@ var DEFAULT_EDITOR_PROPS = {
21
29
  addons: [],
22
30
  size: "medium"
23
31
  };
32
+ var IMAGE_UPLOAD_CONFIG = {
33
+ maxImageSize: 1,
34
+ allowedImageTypes: {
35
+ "image/jpg": [".jpg", ".jpeg"],
36
+ "image/png": [".png"],
37
+ "image/svg": [".svg"]
38
+ }
39
+ };
24
40
 
25
- var css = ".neeto-molecules-document__wrapper{height:100%}@media screen and (max-width:768px){.neeto-molecules-document__wrapper{width:100%}}.neeto-molecules-document__wrapper .neeto-molecules-document__container{margin:0 auto;max-width:48rem!important;width:100%}.neeto-molecules-document__wrapper .neeto-molecules-document-editor__menubar{position:sticky;top:0;width:100%;z-index:20}.neeto-molecules-document__wrapper .neeto-molecules-document__title{margin:1.5rem 0 0;width:100%}.neeto-molecules-document__wrapper .neeto-molecules-document__title .neeto-ui-input{padding:0!important}.neeto-molecules-document__wrapper .neeto-molecules-document__title .neeto-ui-input textarea{color:rgb(var(--neeto-ui-black));font-size:2.625rem;font-weight:700;line-height:3rem;max-height:none;resize:none}.neeto-molecules-document__wrapper .neeto-molecules-document__title .neeto-ui-input textarea::-moz-placeholder{color:rgb(var(--neeto-ui-gray-300))}.neeto-molecules-document__wrapper .neeto-molecules-document__title .neeto-ui-input textarea::placeholder{color:rgb(var(--neeto-ui-gray-300))}@media screen and (max-width:768px){.neeto-molecules-document__wrapper .neeto-molecules-document__title .neeto-ui-input textarea{font-size:2.25rem}}.neeto-molecules-document__wrapper .neeto-molecules-editor-content__error{margin:.75rem auto}.neeto-molecules-document__wrapper .ProseMirror{flex-grow:1;height:auto;max-height:none;overflow-y:hidden}.neeto-molecules-document__wrapper .neeto-editor-fixed-menu{border:thin solid rgb(var(--neeto-ui-gray-200));border-left:none;border-right:none}@media screen and (max-width:768px){.neeto-molecules-document__wrapper .neeto-editor-fixed-menu button.neeto-editor-fixed-menu__item{padding:.375rem}}.neeto-molecules-document__wrapper .neeto-editor-fixed-menu__wrapper{margin:0 auto;max-width:46.875rem;padding-left:0!important;padding-right:0!important}.neeto-molecules-document__wrapper .neeto-editor-fixed-menu__wrapper button.neeto-editor-fixed-menu__item{flex-shrink:0}@media screen and (max-width:768px){.neeto-molecules-document__wrapper .neeto-editor-fixed-menu__wrapper{overflow-x:auto}}.neeto-molecules-document__wrapper .editor-content__wrapper{border:none!important;padding:.75rem 1rem 2rem!important;width:100%!important}.neeto-molecules-document__wrapper .editor-content-attachments{border:none;margin:.75rem auto 0;max-width:48rem!important;padding-left:1rem;padding-right:1rem}.neeto-molecules-document__wrapper .editor-content-attachments--no-attachments{display:none!important}.neeto-molecules-document__wrapper .neeto-editor-character-count{margin:0 auto;max-width:48rem!important;padding-left:1rem;padding-right:1rem}.neeto-molecules-document__wrapper .ne-attachments__wrapper{width:100%}.neeto-molecules-document__wrapper ins{background-color:#c1f4cb!important;text-decoration:none!important}.neeto-molecules-document__wrapper del{background-color:#faa!important}";
41
+ var css = ".neeto-molecules-document__wrapper{height:100%}@media screen and (max-width:768px){.neeto-molecules-document__wrapper{width:100%}}.neeto-molecules-document__wrapper .neeto-molecules-document__container{margin:0 auto;max-width:48rem!important;width:100%}.neeto-molecules-document__wrapper .neeto-molecules-document-editor__menubar{position:sticky;top:0;width:100%;z-index:20}.neeto-molecules-document__wrapper .neeto-molecules-document__title{margin:1.5rem 0 0;width:100%}.neeto-molecules-document__wrapper .neeto-molecules-document__title .neeto-ui-input{padding:0!important}.neeto-molecules-document__wrapper .neeto-molecules-document__title .neeto-ui-input textarea{color:rgb(var(--neeto-ui-black));font-size:2.625rem;font-weight:700;line-height:3rem;max-height:none;resize:none}.neeto-molecules-document__wrapper .neeto-molecules-document__title .neeto-ui-input textarea::-moz-placeholder{color:rgb(var(--neeto-ui-gray-300))}.neeto-molecules-document__wrapper .neeto-molecules-document__title .neeto-ui-input textarea::placeholder{color:rgb(var(--neeto-ui-gray-300))}@media screen and (max-width:768px){.neeto-molecules-document__wrapper .neeto-molecules-document__title .neeto-ui-input textarea{font-size:2.25rem}}.neeto-molecules-document__wrapper .neeto-molecules-editor-content__error{margin:.75rem auto}.neeto-molecules-document__wrapper .ProseMirror{flex-grow:1;height:auto;max-height:none;overflow-y:hidden}.neeto-molecules-document__wrapper .neeto-editor-fixed-menu{border:thin solid rgb(var(--neeto-ui-gray-200));border-left:none;border-right:none}@media screen and (max-width:768px){.neeto-molecules-document__wrapper .neeto-editor-fixed-menu button.neeto-editor-fixed-menu__item{padding:.375rem}}.neeto-molecules-document__wrapper .neeto-editor-fixed-menu__wrapper{margin:0 auto;max-width:46.875rem;padding-left:0!important;padding-right:0!important}.neeto-molecules-document__wrapper .neeto-editor-fixed-menu__wrapper button.neeto-editor-fixed-menu__item{flex-shrink:0}@media screen and (max-width:768px){.neeto-molecules-document__wrapper .neeto-editor-fixed-menu__wrapper{overflow-x:auto}}.neeto-molecules-document__wrapper .editor-content__wrapper{border:none!important;padding:.75rem 1rem 2rem!important;width:100%!important}.neeto-molecules-document__wrapper .editor-content-attachments{border:none;margin:.75rem auto 0;max-width:48rem!important;padding-left:1rem;padding-right:1rem}.neeto-molecules-document__wrapper .editor-content-attachments--no-attachments{display:none!important}.neeto-molecules-document__wrapper .neeto-editor-character-count{margin:0 auto;max-width:48rem!important;padding-left:1rem;padding-right:1rem}.neeto-molecules-document__wrapper .ne-attachments__wrapper{width:100%}.neeto-molecules-document__wrapper ins{background-color:#c1f4cb!important;text-decoration:none!important}.neeto-molecules-document__wrapper del{background-color:#faa!important}@media screen and (max-width:767px){.ne-media-uploader-modal{width:95vw!important}}";
26
42
  injectCss.n(css,{});
27
43
 
28
44
  var useEditor = function useEditor(_ref) {
@@ -79,6 +95,45 @@ var useEditor = function useEditor(_ref) {
79
95
  };
80
96
  };
81
97
 
98
+ var MediaUploader = function MediaUploader(_ref) {
99
+ var setIsThumbnailImageModalOpen = _ref.setIsThumbnailImageModalOpen;
100
+ var _useFormikContext = formik.useFormikContext(),
101
+ thumbnailImageUrl = _useFormikContext.values.thumbnailImageUrl,
102
+ setFieldValue = _useFormikContext.setFieldValue,
103
+ initialValues = _useFormikContext.initialValues,
104
+ submitForm = _useFormikContext.submitForm;
105
+ var handleUpload = function handleUpload(file) {
106
+ var url = file.url,
107
+ signedId = file.signedId;
108
+ setFieldValue("thumbnailImage", signedId);
109
+ setFieldValue("thumbnailImageUrl", url);
110
+ setTimeout(function () {
111
+ setIsThumbnailImageModalOpen(false);
112
+ submitForm();
113
+ });
114
+ };
115
+ if (ramda.isEmpty(initialValues)) {
116
+ return /*#__PURE__*/jsxRuntime.jsx(Spinner, {});
117
+ }
118
+ return /*#__PURE__*/jsxRuntime.jsx(ImageUploader, {
119
+ className: "h-auto w-full",
120
+ src: thumbnailImageUrl,
121
+ uploadConfig: IMAGE_UPLOAD_CONFIG,
122
+ onUploadComplete: handleUpload
123
+ }, thumbnailImageUrl);
124
+ };
125
+
126
+ var getThumbnailAddon = function getThumbnailAddon(command) {
127
+ return {
128
+ label: i18next.t("neetoMolecules.documentEditor.thumbnailImage"),
129
+ optionName: "thumbnail-image",
130
+ command: command,
131
+ icon: Image,
132
+ isEnabled: true,
133
+ "data-testid": "thumbnail-image-addon"
134
+ };
135
+ };
136
+
82
137
  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; }
83
138
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(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; }
84
139
  var Editor = function Editor(_ref) {
@@ -99,12 +154,34 @@ var Editor = function Editor(_ref) {
99
154
  customEditorProps = _ref$editorProps === void 0 ? {} : _ref$editorProps,
100
155
  _ref$titleProps = _ref.titleProps,
101
156
  titleProps = _ref$titleProps === void 0 ? {} : _ref$titleProps,
157
+ _ref$hasThumbnailImag = _ref.hasThumbnailImage,
158
+ hasThumbnailImage = _ref$hasThumbnailImag === void 0 ? false : _ref$hasThumbnailImag,
102
159
  children = _ref.children;
103
160
  var _useTranslation = reactI18next.useTranslation(),
104
161
  t = _useTranslation.t;
162
+ var _useFormikContext = formik.useFormikContext(),
163
+ values = _useFormikContext.values,
164
+ setFieldValue = _useFormikContext.setFieldValue,
165
+ submitForm = _useFormikContext.submitForm;
166
+ var thumbnailImageUrl = values.thumbnailImageUrl;
167
+ var Menu = Dropdown.Menu,
168
+ MenuItem = Dropdown.MenuItem;
105
169
  var titleRef = React.useRef();
106
170
  var editorRef = React.useRef();
107
- var editorProps = ramda.mergeRight(DEFAULT_EDITOR_PROPS, customEditorProps);
171
+ var _useState = React.useState(false),
172
+ _useState2 = _slicedToArray(_useState, 2),
173
+ isThumbnailImageModalOpen = _useState2[0],
174
+ setIsThumbnailImageModalOpen = _useState2[1];
175
+ var editorProps = React.useMemo(function () {
176
+ var baseProps = ramda.mergeRight(DEFAULT_EDITOR_PROPS, customEditorProps);
177
+ if (!hasThumbnailImage) return baseProps;
178
+ var thumbnailAddon = getThumbnailAddon(function () {
179
+ return setIsThumbnailImageModalOpen(true);
180
+ });
181
+ return ramda.mergeRight(baseProps, {
182
+ addonCommands: [thumbnailAddon]
183
+ });
184
+ }, [customEditorProps, hasThumbnailImage]);
108
185
  var _useEditor = useEditor({
109
186
  onContentChange: onContentChange,
110
187
  editorContentFieldName: editorContentFieldName,
@@ -142,11 +219,16 @@ var Editor = function Editor(_ref) {
142
219
  }
143
220
  return true;
144
221
  };
145
- return /*#__PURE__*/jsxRuntime.jsx("div", {
222
+ var handleDeleteThumbnail = function handleDeleteThumbnail() {
223
+ setFieldValue("thumbnailImage", "");
224
+ setFieldValue("thumbnailImageUrl", "");
225
+ setTimeout(submitForm);
226
+ };
227
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
146
228
  className: "neeto-molecules-document__wrapper",
147
229
  "data-testid": "document-editor-container",
148
230
  ref: editorHotkeyRef,
149
- children: /*#__PURE__*/jsxRuntime.jsxs(FormikEditor, _objectSpread(_objectSpread({
231
+ children: [/*#__PURE__*/jsxRuntime.jsxs(FormikEditor, _objectSpread(_objectSpread({
150
232
  attachmentsClassName: "editor-content-attachments w-full flex-shrink-0",
151
233
  className: "h-full w-full",
152
234
  contentClassName: "editor-content__wrapper neeto-molecules-document__container",
@@ -181,14 +263,53 @@ var Editor = function Editor(_ref) {
181
263
  onKeyDown: function onKeyDown(e) {
182
264
  return e.key === "Enter" && !e.shiftKey && e.preventDefault();
183
265
  }
184
- }, titleProps)), errors[editorContentFieldName] && /*#__PURE__*/jsxRuntime.jsx(Typography, {
266
+ }, titleProps)), thumbnailImageUrl && /*#__PURE__*/jsxRuntime.jsxs("div", {
267
+ className: "group relative mt-4",
268
+ children: [/*#__PURE__*/jsxRuntime.jsx("img", {
269
+ alt: "Cover",
270
+ className: "w-full",
271
+ src: thumbnailImageUrl
272
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
273
+ className: "neeto-ui-rounded-full absolute right-2 top-2",
274
+ children: /*#__PURE__*/jsxRuntime.jsx(Dropdown, {
275
+ strategy: "fixed",
276
+ buttonProps: {
277
+ style: "secondary",
278
+ size: "small",
279
+ icon: MenuHorizontal,
280
+ className: "neeto-ui-bg-white neeto-ui-shadow-md hover:neeto-ui-bg-gray-50 p-1"
281
+ },
282
+ children: /*#__PURE__*/jsxRuntime.jsx(Menu, {
283
+ children: /*#__PURE__*/jsxRuntime.jsx(MenuItem.Button, {
284
+ onClick: handleDeleteThumbnail,
285
+ children: t("neetoMolecules.documentEditor.delete")
286
+ })
287
+ })
288
+ })
289
+ })]
290
+ }), errors[editorContentFieldName] && /*#__PURE__*/jsxRuntime.jsx(Typography, {
185
291
  className: "neeto-ui-input__error neeto-molecules-editor-content__error",
186
292
  "data-cy": "articles-content-input-error",
187
293
  style: "body3",
188
294
  children: errors[editorContentFieldName]
189
295
  })]
190
296
  })]
191
- }))
297
+ })), /*#__PURE__*/jsxRuntime.jsxs(Modal, {
298
+ className: "media-uploader-modal p-5 pt-0",
299
+ isOpen: isThumbnailImageModalOpen,
300
+ onClose: function onClose() {
301
+ setIsThumbnailImageModalOpen(false);
302
+ },
303
+ children: [/*#__PURE__*/jsxRuntime.jsx(Modal.Header, {
304
+ className: "ml-0 pl-0",
305
+ children: /*#__PURE__*/jsxRuntime.jsx(Typography, {
306
+ style: "h2",
307
+ children: t("neetoMolecules.documentEditor.uploadThumbnailImage")
308
+ })
309
+ }), /*#__PURE__*/jsxRuntime.jsx(MediaUploader, {
310
+ setIsThumbnailImageModalOpen: setIsThumbnailImageModalOpen
311
+ })]
312
+ })]
192
313
  });
193
314
  };
194
315
  Editor.displayName = "DocumentEditor";
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentEditor.js","sources":["../../src/components/DocumentEditor/constants.js","../../src/components/DocumentEditor/hooks/useEditor.js","../../src/components/DocumentEditor/index.jsx"],"sourcesContent":["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 \"table\",\n];\n\nexport const DEFAULT_EDITOR_PROPS = {\n isCharacterCountActive: true,\n isMenuIndependent: true,\n addons: [],\n size: \"medium\",\n};\n","import { useCallback } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { isPresent } from \"neetocist\";\nimport useHotkeys from \"neetohotkeys\";\n\nconst useEditor = ({\n onContentChange,\n editorContentFieldName,\n onAttachmentChange,\n onTitleChange,\n titleFieldName,\n editorRef,\n titleRef,\n}) => {\n const { setFieldValue, errors } = useFormikContext();\n\n const handleContentChange = useCallback(\n content => {\n setFieldValue(editorContentFieldName, content);\n onContentChange?.(content);\n },\n [editorContentFieldName, onContentChange, setFieldValue]\n );\n\n const handleAttachmentChange = useCallback(\n attachments => {\n setFieldValue(\"attachments\", attachments);\n onAttachmentChange?.(attachments);\n },\n [onAttachmentChange, setFieldValue]\n );\n\n const handleTitleChange = event => {\n const title = event.target.value;\n setFieldValue(titleFieldName, title);\n onTitleChange?.(title);\n };\n\n const handleEditorBackspaceKeypress = () => {\n const editor = editorRef.current?.editor;\n const selection = editor?.state?.selection;\n if (\n editor?.isFocused &&\n isPresent(titleRef.current) &&\n selection?.anchor === 1\n ) {\n const title = titleRef.current.value;\n titleRef.current.focus();\n titleRef.current.setSelectionRange(title?.length, title?.length);\n }\n };\n\n const titleHotkeyRef = useHotkeys(\n \"return\",\n () => {\n editorRef.current?.editor?.commands?.insertContentAt(0, \"<p />\");\n editorRef.current?.editor?.commands?.focus(\"start\");\n },\n { mode: \"scoped\" }\n );\n\n const editorHotkeyRef = useHotkeys(\n \"backspace\",\n handleEditorBackspaceKeypress,\n { mode: \"scoped\" }\n );\n\n return {\n handleContentChange,\n handleAttachmentChange,\n handleTitleChange,\n editorHotkeyRef,\n titleHotkeyRef,\n errors,\n };\n};\n\nexport default useEditor;\n","import { memo, useCallback, useMemo, useRef } from \"react\";\n\nimport classNames from \"classnames\";\nimport { noop } from \"neetocist\";\nimport { FormikEditor } from \"neetoeditor\";\nimport { Typography } from \"neetoui\";\nimport { Textarea } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\nimport { mergeRight } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { DEFAULT_EDITOR_PROPS, EDITOR_ADDONS } from \"./constants\";\nimport \"./editor.scss\";\nimport useEditor from \"./hooks/useEditor\";\n\nconst Editor = ({\n attachments,\n onContentChange,\n onAttachmentChange,\n onTitleChange,\n getTitleRef = noop,\n getEditorRef = noop,\n menuClassName,\n editorContentFieldName = \"htmlContent\",\n titleFieldName = \"title\",\n editorProps: customEditorProps = {},\n titleProps = {},\n children,\n}) => {\n const { t } = useTranslation();\n\n const titleRef = useRef();\n const editorRef = useRef();\n\n const editorProps = mergeRight(DEFAULT_EDITOR_PROPS, customEditorProps);\n\n const {\n handleContentChange,\n handleAttachmentChange,\n handleTitleChange,\n editorHotkeyRef,\n titleHotkeyRef,\n errors,\n } = useEditor({\n onContentChange,\n editorContentFieldName,\n onAttachmentChange,\n onTitleChange,\n titleFieldName,\n editorRef,\n titleRef,\n });\n\n const setTitleRef = node => {\n titleHotkeyRef.current = node;\n getTitleRef(node);\n titleRef.current = node;\n };\n\n const setEditorRef = useCallback(node => {\n editorRef.current = node;\n getEditorRef(node);\n }, []);\n\n const addons = useMemo(\n () => EDITOR_ADDONS.concat(editorProps.addons || []),\n [editorProps.addons]\n );\n\n const handleTab = () => {\n const isListActive =\n editorRef.current?.editor?.isActive(\"orderedList\") ||\n editorRef.current?.editor?.isActive(\"bulletList\");\n\n if (isListActive) {\n editorRef.current?.editor?.commands?.sinkListItem(\"listItem\");\n\n return true;\n }\n\n return true;\n };\n\n return (\n <div\n className=\"neeto-molecules-document__wrapper\"\n data-testid=\"document-editor-container\"\n ref={editorHotkeyRef}\n >\n <FormikEditor\n attachmentsClassName=\"editor-content-attachments w-full flex-shrink-0\"\n className=\"h-full w-full\"\n contentClassName=\"editor-content__wrapper neeto-molecules-document__container\"\n data-cy=\"neeto-molecules-document-content-text-area\"\n error={undefined}\n errorWrapperClassName=\"w-full min-h-full flex flex-col items-center\"\n name={editorContentFieldName}\n ref={setEditorRef}\n menuClassName={classNames(\n \"neeto-molecules-document-editor__menubar\",\n menuClassName\n )}\n {...{ attachments, ...editorProps, addons }}\n contentWrapperClassName=\"w-full flex flex-col flex-grow\"\n keyboardShortcuts={{ Tab: handleTab, ...editorProps.keyboardShortcuts }}\n onChange={handleContentChange}\n onChangeAttachments={handleAttachmentChange}\n >\n {children}\n <div className=\"neeto-molecules-document__container px-4\">\n <Textarea\n nakedTextarea\n className=\"neeto-molecules-document__title\"\n data-cy=\"neeto-molecules-document-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 * A prop to pass class names to the editor menubar.\n */\n menuClassName: PropTypes.string,\n /**\n * The children will be rendered above the title input field.\n */\n children: PropTypes.node,\n};\n\nEditor.displayName = \"DocumentEditor\";\n\nexport default memo(Editor);\n"],"names":["EDITOR_ADDONS","DEFAULT_EDITOR_PROPS","isCharacterCountActive","isMenuIndependent","addons","size","useEditor","_ref","onContentChange","editorContentFieldName","onAttachmentChange","onTitleChange","titleFieldName","editorRef","titleRef","_useFormikContext","useFormikContext","setFieldValue","errors","handleContentChange","useCallback","content","handleAttachmentChange","attachments","handleTitleChange","event","title","target","value","handleEditorBackspaceKeypress","_editorRef$current","_editor$state","editor","current","selection","state","isFocused","isPresent","anchor","focus","setSelectionRange","length","titleHotkeyRef","useHotkeys","_editorRef$current2","_editorRef$current3","commands","insertContentAt","mode","editorHotkeyRef","Editor","_ref$getTitleRef","getTitleRef","noop","_ref$getEditorRef","getEditorRef","menuClassName","_ref$editorContentFie","_ref$titleFieldName","_ref$editorProps","editorProps","customEditorProps","_ref$titleProps","titleProps","children","_useTranslation","useTranslation","t","useRef","mergeRight","_useEditor","setTitleRef","node","setEditorRef","useMemo","concat","handleTab","isListActive","isActive","sinkListItem","_jsx","className","ref","_jsxs","FormikEditor","_objectSpread","attachmentsClassName","contentClassName","error","undefined","errorWrapperClassName","name","classNames","contentWrapperClassName","keyboardShortcuts","Tab","onChange","onChangeAttachments","Textarea","nakedTextarea","rows","placeholder","onKeyDown","e","key","shiftKey","preventDefault","Typography","style","displayName","memo"],"mappings":"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"}
1
+ {"version":3,"file":"DocumentEditor.js","sources":["../../src/components/DocumentEditor/constants.js","../../src/components/DocumentEditor/hooks/useEditor.js","../../src/components/DocumentEditor/MediaUploader.jsx","../../src/components/DocumentEditor/utils.js","../../src/components/DocumentEditor/index.jsx"],"sourcesContent":["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 \"table\",\n];\n\nexport const DEFAULT_EDITOR_PROPS = {\n isCharacterCountActive: true,\n isMenuIndependent: true,\n addons: [],\n size: \"medium\",\n};\n\nexport const IMAGE_UPLOAD_CONFIG = {\n maxImageSize: 1,\n allowedImageTypes: {\n \"image/jpg\": [\".jpg\", \".jpeg\"],\n \"image/png\": [\".png\"],\n \"image/svg\": [\".svg\"],\n },\n};\n","import { useCallback } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { isPresent } from \"neetocist\";\nimport useHotkeys from \"neetohotkeys\";\n\nconst useEditor = ({\n onContentChange,\n editorContentFieldName,\n onAttachmentChange,\n onTitleChange,\n titleFieldName,\n editorRef,\n titleRef,\n}) => {\n const { setFieldValue, errors } = useFormikContext();\n\n const handleContentChange = useCallback(\n content => {\n setFieldValue(editorContentFieldName, content);\n onContentChange?.(content);\n },\n [editorContentFieldName, onContentChange, setFieldValue]\n );\n\n const handleAttachmentChange = useCallback(\n attachments => {\n setFieldValue(\"attachments\", attachments);\n onAttachmentChange?.(attachments);\n },\n [onAttachmentChange, setFieldValue]\n );\n\n const handleTitleChange = event => {\n const title = event.target.value;\n setFieldValue(titleFieldName, title);\n onTitleChange?.(title);\n };\n\n const handleEditorBackspaceKeypress = () => {\n const editor = editorRef.current?.editor;\n const selection = editor?.state?.selection;\n if (\n editor?.isFocused &&\n isPresent(titleRef.current) &&\n selection?.anchor === 1\n ) {\n const title = titleRef.current.value;\n titleRef.current.focus();\n titleRef.current.setSelectionRange(title?.length, title?.length);\n }\n };\n\n const titleHotkeyRef = useHotkeys(\n \"return\",\n () => {\n editorRef.current?.editor?.commands?.insertContentAt(0, \"<p />\");\n editorRef.current?.editor?.commands?.focus(\"start\");\n },\n { mode: \"scoped\" }\n );\n\n const editorHotkeyRef = useHotkeys(\n \"backspace\",\n handleEditorBackspaceKeypress,\n { mode: \"scoped\" }\n );\n\n return {\n handleContentChange,\n handleAttachmentChange,\n handleTitleChange,\n editorHotkeyRef,\n titleHotkeyRef,\n errors,\n };\n};\n\nexport default useEditor;\n","import { ImageUploader } from \"@bigbinary/neeto-image-uploader-frontend\";\nimport { useFormikContext } from \"formik\";\nimport { Spinner } from \"neetoui\";\nimport { isEmpty } from \"ramda\";\n\nimport { IMAGE_UPLOAD_CONFIG } from \"./constants\";\n\nconst MediaUploader = ({ setIsThumbnailImageModalOpen }) => {\n const {\n values: { thumbnailImageUrl },\n setFieldValue,\n initialValues,\n submitForm,\n } = useFormikContext();\n\n const handleUpload = file => {\n const { url, signedId } = file;\n setFieldValue(\"thumbnailImage\", signedId);\n setFieldValue(\"thumbnailImageUrl\", url);\n setTimeout(() => {\n setIsThumbnailImageModalOpen(false);\n submitForm();\n });\n };\n\n if (isEmpty(initialValues)) {\n return <Spinner />;\n }\n\n return (\n <ImageUploader\n className=\"h-auto w-full\"\n key={thumbnailImageUrl}\n src={thumbnailImageUrl}\n uploadConfig={IMAGE_UPLOAD_CONFIG}\n onUploadComplete={handleUpload}\n />\n );\n};\n\nexport default MediaUploader;\n","import { t } from \"i18next\";\nimport { Image } from \"neetoicons\";\n\nexport const getThumbnailAddon = command => ({\n label: t(\"neetoMolecules.documentEditor.thumbnailImage\"),\n optionName: \"thumbnail-image\",\n command,\n icon: Image,\n isEnabled: true,\n \"data-testid\": \"thumbnail-image-addon\",\n});\n","import { memo, useCallback, useMemo, useRef, useState } from \"react\";\n\nimport classNames from \"classnames\";\nimport { useFormikContext } from \"formik\";\nimport { noop } from \"neetocist\";\nimport { FormikEditor } from \"neetoeditor\";\nimport { MenuHorizontal } from \"neetoicons\";\nimport { Modal, Typography, Dropdown } from \"neetoui\";\nimport { Textarea } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\nimport { mergeRight } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { DEFAULT_EDITOR_PROPS, EDITOR_ADDONS } from \"./constants\";\nimport \"./editor.scss\";\nimport useEditor from \"./hooks/useEditor\";\nimport MediaUploader from \"./MediaUploader\";\nimport { getThumbnailAddon } from \"./utils\";\n\nconst Editor = ({\n attachments,\n onContentChange,\n onAttachmentChange,\n onTitleChange,\n getTitleRef = noop,\n getEditorRef = noop,\n menuClassName,\n editorContentFieldName = \"htmlContent\",\n titleFieldName = \"title\",\n editorProps: customEditorProps = {},\n titleProps = {},\n hasThumbnailImage = false,\n children,\n}) => {\n const { t } = useTranslation();\n const { values, setFieldValue, submitForm } = useFormikContext();\n const { thumbnailImageUrl } = values;\n\n const { Menu, MenuItem } = Dropdown;\n\n const titleRef = useRef();\n const editorRef = useRef();\n const [isThumbnailImageModalOpen, setIsThumbnailImageModalOpen] =\n useState(false);\n\n const editorProps = useMemo(() => {\n const baseProps = mergeRight(DEFAULT_EDITOR_PROPS, customEditorProps);\n\n if (!hasThumbnailImage) return baseProps;\n\n const thumbnailAddon = getThumbnailAddon(() =>\n setIsThumbnailImageModalOpen(true)\n );\n\n return mergeRight(baseProps, { addonCommands: [thumbnailAddon] });\n }, [customEditorProps, hasThumbnailImage]);\n\n const {\n handleContentChange,\n handleAttachmentChange,\n handleTitleChange,\n editorHotkeyRef,\n titleHotkeyRef,\n errors,\n } = useEditor({\n onContentChange,\n editorContentFieldName,\n onAttachmentChange,\n onTitleChange,\n titleFieldName,\n editorRef,\n titleRef,\n });\n\n const setTitleRef = node => {\n titleHotkeyRef.current = node;\n getTitleRef(node);\n titleRef.current = node;\n };\n\n const setEditorRef = useCallback(node => {\n editorRef.current = node;\n getEditorRef(node);\n }, []);\n\n const addons = useMemo(\n () => EDITOR_ADDONS.concat(editorProps.addons || []),\n [editorProps.addons]\n );\n\n const handleTab = () => {\n const isListActive =\n editorRef.current?.editor?.isActive(\"orderedList\") ||\n editorRef.current?.editor?.isActive(\"bulletList\");\n\n if (isListActive) {\n editorRef.current?.editor?.commands?.sinkListItem(\"listItem\");\n\n return true;\n }\n\n return true;\n };\n\n const handleDeleteThumbnail = () => {\n setFieldValue(\"thumbnailImage\", \"\");\n setFieldValue(\"thumbnailImageUrl\", \"\");\n setTimeout(submitForm);\n };\n\n return (\n <div\n className=\"neeto-molecules-document__wrapper\"\n data-testid=\"document-editor-container\"\n ref={editorHotkeyRef}\n >\n <FormikEditor\n attachmentsClassName=\"editor-content-attachments w-full flex-shrink-0\"\n className=\"h-full w-full\"\n contentClassName=\"editor-content__wrapper neeto-molecules-document__container\"\n data-cy=\"neeto-molecules-document-content-text-area\"\n error={undefined}\n errorWrapperClassName=\"w-full min-h-full flex flex-col items-center\"\n name={editorContentFieldName}\n ref={setEditorRef}\n menuClassName={classNames(\n \"neeto-molecules-document-editor__menubar\",\n menuClassName\n )}\n {...{ attachments, ...editorProps, addons }}\n contentWrapperClassName=\"w-full flex flex-col flex-grow\"\n keyboardShortcuts={{ Tab: handleTab, ...editorProps.keyboardShortcuts }}\n onChange={handleContentChange}\n onChangeAttachments={handleAttachmentChange}\n >\n {children}\n <div className=\"neeto-molecules-document__container px-4\">\n <Textarea\n nakedTextarea\n className=\"neeto-molecules-document__title\"\n data-cy=\"neeto-molecules-document-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 {thumbnailImageUrl && (\n <div className=\"group relative mt-4\">\n <img alt=\"Cover\" className=\"w-full\" src={thumbnailImageUrl} />\n <div className=\"neeto-ui-rounded-full absolute right-2 top-2\">\n <Dropdown\n strategy=\"fixed\"\n buttonProps={{\n style: \"secondary\",\n size: \"small\",\n icon: MenuHorizontal,\n className:\n \"neeto-ui-bg-white neeto-ui-shadow-md hover:neeto-ui-bg-gray-50 p-1\",\n }}\n >\n <Menu>\n <MenuItem.Button onClick={handleDeleteThumbnail}>\n {t(\"neetoMolecules.documentEditor.delete\")}\n </MenuItem.Button>\n </Menu>\n </Dropdown>\n </div>\n </div>\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 <Modal\n className=\"media-uploader-modal p-5 pt-0\"\n isOpen={isThumbnailImageModalOpen}\n onClose={() => {\n setIsThumbnailImageModalOpen(false);\n }}\n >\n <Modal.Header className=\"ml-0 pl-0\">\n <Typography style=\"h2\">\n {t(\"neetoMolecules.documentEditor.uploadThumbnailImage\")}\n </Typography>\n </Modal.Header>\n <MediaUploader {...{ setIsThumbnailImageModalOpen }} />\n </Modal>\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 * A prop to pass class names to the editor menubar.\n */\n menuClassName: PropTypes.string,\n /**\n * The children will be rendered above the title input field.\n */\n children: PropTypes.node,\n /**\n * A prop to enable the thumbnail image uploader.\n */\n hasThumbnailImage: PropTypes.bool,\n};\n\nEditor.displayName = \"DocumentEditor\";\n\nexport default memo(Editor);\n"],"names":["EDITOR_ADDONS","DEFAULT_EDITOR_PROPS","isCharacterCountActive","isMenuIndependent","addons","size","IMAGE_UPLOAD_CONFIG","maxImageSize","allowedImageTypes","useEditor","_ref","onContentChange","editorContentFieldName","onAttachmentChange","onTitleChange","titleFieldName","editorRef","titleRef","_useFormikContext","useFormikContext","setFieldValue","errors","handleContentChange","useCallback","content","handleAttachmentChange","attachments","handleTitleChange","event","title","target","value","handleEditorBackspaceKeypress","_editorRef$current","_editor$state","editor","current","selection","state","isFocused","isPresent","anchor","focus","setSelectionRange","length","titleHotkeyRef","useHotkeys","_editorRef$current2","_editorRef$current3","commands","insertContentAt","mode","editorHotkeyRef","MediaUploader","setIsThumbnailImageModalOpen","thumbnailImageUrl","values","initialValues","submitForm","handleUpload","file","url","signedId","setTimeout","isEmpty","_jsx","Spinner","ImageUploader","className","src","uploadConfig","onUploadComplete","getThumbnailAddon","command","label","t","optionName","icon","Image","isEnabled","Editor","_ref$getTitleRef","getTitleRef","noop","_ref$getEditorRef","getEditorRef","menuClassName","_ref$editorContentFie","_ref$titleFieldName","_ref$editorProps","editorProps","customEditorProps","_ref$titleProps","titleProps","_ref$hasThumbnailImag","hasThumbnailImage","children","_useTranslation","useTranslation","Menu","Dropdown","MenuItem","useRef","_useState","useState","_useState2","_slicedToArray","isThumbnailImageModalOpen","useMemo","baseProps","mergeRight","thumbnailAddon","addonCommands","_useEditor","setTitleRef","node","setEditorRef","concat","handleTab","isListActive","isActive","sinkListItem","handleDeleteThumbnail","_jsxs","ref","FormikEditor","_objectSpread","attachmentsClassName","contentClassName","error","undefined","errorWrapperClassName","name","classNames","contentWrapperClassName","keyboardShortcuts","Tab","onChange","onChangeAttachments","Textarea","nakedTextarea","rows","placeholder","onKeyDown","e","key","shiftKey","preventDefault","alt","strategy","buttonProps","style","MenuHorizontal","Button","onClick","Typography","Modal","isOpen","onClose","Header","displayName","memo"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-molecules",
3
- "version": "3.16.58",
3
+ "version": "3.16.59",
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>",
@@ -642,7 +642,10 @@
642
642
  }
643
643
  },
644
644
  "documentEditor": {
645
- "title": "Document title"
645
+ "title": "Document title",
646
+ "thumbnailImage": "Thumbnail image",
647
+ "delete": "Delete",
648
+ "uploadThumbnailImage": "Add thumbnail"
646
649
  },
647
650
  "sendToFields": {
648
651
  "uploadCsvTooltip": "Accepts only CSV files with an 'email' column",
@@ -56,6 +56,7 @@ declare const DocumentEditor: React.FC<{
56
56
  titleProps?: TextareaProps;
57
57
  menuClassName?: string;
58
58
  children?: React.ReactNode;
59
+ hasThumbnailImage?: boolean;
59
60
  }>;
60
61
 
61
62
  export { DocumentEditor as default };