@flozy/editor 1.5.8 → 1.6.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/Editor/CommonEditor.js +103 -17
- package/dist/Editor/Editor.css +194 -24
- package/dist/Editor/Elements/Accordion/Accordion.js +0 -1
- package/dist/Editor/Elements/Accordion/AccordionSummary.js +0 -1
- package/dist/Editor/Elements/AppHeader/AppHeader.js +134 -131
- package/dist/Editor/Elements/AppHeader/AppHeaderPopup.js +4 -2
- package/dist/Editor/Elements/Button/EditorButton.js +4 -4
- package/dist/Editor/Elements/Color Picker/ColorPicker.js +29 -58
- package/dist/Editor/Elements/Embed/Embed.js +18 -16
- package/dist/Editor/Elements/Embed/Image.js +11 -2
- package/dist/Editor/Elements/Embed/Video.js +10 -2
- package/dist/Editor/Elements/Form/Form.js +0 -1
- package/dist/Editor/Elements/Form/FormButton.js +2 -2
- package/dist/Editor/Elements/Form/FormElements/FormText.js +3 -2
- package/dist/Editor/Elements/Form/FormElements/FormTextArea.js +3 -2
- package/dist/Editor/Elements/Grid/Grid.js +128 -43
- package/dist/Editor/Elements/Grid/GridItem.js +2 -2
- package/dist/Editor/Elements/InlineIcon/InlineIcon.js +0 -1
- package/dist/Editor/Elements/PageSettings/PageSettings.js +4 -2
- package/dist/Editor/Elements/PageSettings/PageSettingsButton.js +0 -2
- package/dist/Editor/Elements/PageSettings/PageSettingsPopup.js +1 -1
- package/dist/Editor/Toolbar/FormatTools/Autocomplete.js +0 -2
- package/dist/Editor/Toolbar/FormatTools/FontFamilyDropdown.js +63 -0
- package/dist/Editor/Toolbar/FormatTools/FontSize.js +112 -0
- package/dist/Editor/Toolbar/FormatTools/index.js +3 -1
- package/dist/Editor/Toolbar/PopupTool/TextFormat.js +3 -3
- package/dist/Editor/Toolbar/PopupTool/index.js +25 -49
- package/dist/Editor/Toolbar/Toolbar.js +21 -5
- package/dist/Editor/Toolbar/styles.css +135 -17
- package/dist/Editor/Toolbar/toolbarGroups.js +21 -10
- package/dist/Editor/common/Icon.js +7 -1
- package/dist/Editor/common/ImageList.js +69 -0
- package/dist/Editor/common/ImageUploader.js +83 -0
- package/dist/Editor/common/StyleBuilder/accordionTitleBtnStyle.js +3 -3
- package/dist/Editor/common/StyleBuilder/accordionTitleStyle.js +3 -3
- package/dist/Editor/common/StyleBuilder/appHeaderStyle.js +5 -5
- package/dist/Editor/common/StyleBuilder/buttonStyle.js +7 -7
- package/dist/Editor/common/StyleBuilder/chipTextStyle.js +3 -3
- package/dist/Editor/common/StyleBuilder/embedImageStyle.js +18 -5
- package/dist/Editor/common/StyleBuilder/embedVideoStyle.js +8 -0
- package/dist/Editor/common/StyleBuilder/fieldStyle.js +3 -3
- package/dist/Editor/common/StyleBuilder/fieldTypes/alignment.js +2 -3
- package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +41 -1
- package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +95 -0
- package/dist/Editor/common/StyleBuilder/fieldTypes/icons.js +14 -2
- package/dist/Editor/common/StyleBuilder/fieldTypes/index.js +3 -1
- package/dist/Editor/common/StyleBuilder/fieldTypes/menusArray.js +0 -1
- package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +3 -2
- package/dist/Editor/common/StyleBuilder/formButtonStyle.js +3 -3
- package/dist/Editor/common/StyleBuilder/formStyle.js +3 -3
- package/dist/Editor/common/StyleBuilder/pageSettingsStyle.js +1 -1
- package/dist/Editor/common/Uploader.js +25 -54
- package/dist/Editor/common/iconslist.js +26 -1
- package/dist/Editor/helper/index.js +0 -1
- package/dist/Editor/hooks/useDrag.js +2 -2
- package/dist/Editor/utils/SlateUtilityFunctions.js +1 -0
- package/dist/Editor/utils/button.js +2 -1
- package/dist/Editor/utils/embed.js +6 -3
- package/package.json +3 -2
@@ -1,5 +1,6 @@
|
|
1
|
+
/* eslint-disable no-unused-vars */
|
1
2
|
import React, { useRef, useCallback, useEffect, useMemo, useState, forwardRef, useImperativeHandle } from "react";
|
2
|
-
import { createEditor } from "slate";
|
3
|
+
import { createEditor, Transforms } from "slate";
|
3
4
|
import { Slate, Editable, ReactEditor } from "slate-react";
|
4
5
|
import { DndContext, DragOverlay } from "@dnd-kit/core";
|
5
6
|
import { useDebounce } from "use-debounce";
|
@@ -20,6 +21,8 @@ import { customCollisionDetectionAlgorithm, getThumbnailImage } from "./helper";
|
|
20
21
|
import PopupTool from "./Toolbar/PopupTool";
|
21
22
|
import "./font.css";
|
22
23
|
import "./Editor.css";
|
24
|
+
import { Checkbox } from "@mui/material";
|
25
|
+
import { KeyboardDoubleArrowDown, KeyboardDoubleArrowLeft, KeyboardDoubleArrowRight, KeyboardDoubleArrowUp } from "@mui/icons-material";
|
23
26
|
import { jsx as _jsx } from "react/jsx-runtime";
|
24
27
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
25
28
|
const PREVIEW_IMAGE_HIDE_CLASS = ["grid-container-toolbar", "grid-item-toolbar", "element-toolbar"];
|
@@ -59,6 +62,7 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
59
62
|
onSave,
|
60
63
|
editor: collaborativeEditor,
|
61
64
|
readOnly,
|
65
|
+
toolbarOptions,
|
62
66
|
otherProps
|
63
67
|
} = props;
|
64
68
|
const editorWrapper = useRef();
|
@@ -70,14 +74,13 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
70
74
|
const [isInteracted, setIsInteracted] = useState(false);
|
71
75
|
const [deboundedValue] = useDebounce(value, 500);
|
72
76
|
const [fullScreen, setFullScreen] = useState(false);
|
77
|
+
const [toolbarShow, setToolbarShow] = useState(true);
|
73
78
|
const [isDrawerOpen, setIsDrawerOpen] = useState(false);
|
74
|
-
console.log(isDrawerOpen);
|
75
79
|
const [viewport, setViewport] = useState({
|
76
80
|
w: null,
|
77
81
|
h: null
|
78
82
|
});
|
79
83
|
const {
|
80
|
-
defaultBG,
|
81
84
|
needDotsBG,
|
82
85
|
footer,
|
83
86
|
needLayout = true,
|
@@ -96,9 +99,7 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
96
99
|
pageProps
|
97
100
|
} = pageSettings || {};
|
98
101
|
const {
|
99
|
-
bannerSpacing
|
100
|
-
pageBgImage,
|
101
|
-
pageColor
|
102
|
+
bannerSpacing
|
102
103
|
} = pageProps || {
|
103
104
|
bannerSpacing: {
|
104
105
|
left: 0,
|
@@ -167,12 +168,27 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
167
168
|
getContent() {
|
168
169
|
return getOnSaveData(deboundedValue);
|
169
170
|
},
|
170
|
-
insertFragments(fragments) {
|
171
|
-
|
171
|
+
insertFragments(fragments, clearAll = false) {
|
172
|
+
if (!clearAll) {
|
173
|
+
editor.insertNode(fragments);
|
174
|
+
} else {
|
175
|
+
// loop delete all
|
176
|
+
editor.children.forEach(() => {
|
177
|
+
Transforms.delete(editor, {
|
178
|
+
at: [0]
|
179
|
+
});
|
180
|
+
});
|
181
|
+
|
182
|
+
// reset init
|
183
|
+
editor.children = fragments;
|
184
|
+
}
|
172
185
|
},
|
173
186
|
toggleFullscreen() {
|
174
187
|
setFullScreen(!fullScreen);
|
175
188
|
},
|
189
|
+
toggleToolbarShow() {
|
190
|
+
setToolbarShow(!toolbarShow);
|
191
|
+
},
|
176
192
|
changeViewport({
|
177
193
|
w,
|
178
194
|
h
|
@@ -181,6 +197,9 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
181
197
|
w,
|
182
198
|
h
|
183
199
|
});
|
200
|
+
},
|
201
|
+
getPageSettings: {
|
202
|
+
background: pageProps?.pageBgImage && pageProps?.pageBgImage !== "none" ? `url(${pageProps?.pageBgImage})` : pageProps?.pageColor || "unset"
|
184
203
|
}
|
185
204
|
}));
|
186
205
|
const [htmlAction, setHtmlAction] = useState({
|
@@ -306,7 +325,6 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
306
325
|
}, 100);
|
307
326
|
setDrag(null);
|
308
327
|
} catch (err) {
|
309
|
-
console.log(e);
|
310
328
|
console.log(err);
|
311
329
|
}
|
312
330
|
};
|
@@ -317,12 +335,68 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
317
335
|
backgroundSize: "40px 40px",
|
318
336
|
backgroundPosition: "-19px -19px"
|
319
337
|
} : {};
|
338
|
+
const handleToolbarSwitch = () => {
|
339
|
+
if (ref) {
|
340
|
+
ref?.current?.toggleToolbarShow();
|
341
|
+
} else {
|
342
|
+
setToolbarShow(!toolbarShow);
|
343
|
+
}
|
344
|
+
};
|
345
|
+
const getToolbarShowOpenIcon = type => {
|
346
|
+
switch (toolbarOptions?.toolbarPosition) {
|
347
|
+
case "top-left":
|
348
|
+
if (type === "open") {
|
349
|
+
return /*#__PURE__*/_jsx(KeyboardDoubleArrowRight, {});
|
350
|
+
}
|
351
|
+
return /*#__PURE__*/_jsx(KeyboardDoubleArrowLeft, {});
|
352
|
+
case "top-right":
|
353
|
+
if (type === "open") {
|
354
|
+
return /*#__PURE__*/_jsx(KeyboardDoubleArrowLeft, {});
|
355
|
+
}
|
356
|
+
return /*#__PURE__*/_jsx(KeyboardDoubleArrowRight, {});
|
357
|
+
case "left-top":
|
358
|
+
if (type === "open") {
|
359
|
+
return /*#__PURE__*/_jsx(KeyboardDoubleArrowDown, {});
|
360
|
+
}
|
361
|
+
return /*#__PURE__*/_jsx(KeyboardDoubleArrowUp, {});
|
362
|
+
case "left-bottom":
|
363
|
+
if (type === "open") {
|
364
|
+
return /*#__PURE__*/_jsx(KeyboardDoubleArrowUp, {});
|
365
|
+
}
|
366
|
+
return /*#__PURE__*/_jsx(KeyboardDoubleArrowDown, {});
|
367
|
+
case "right-top":
|
368
|
+
if (type === "open") {
|
369
|
+
return /*#__PURE__*/_jsx(KeyboardDoubleArrowDown, {});
|
370
|
+
}
|
371
|
+
return /*#__PURE__*/_jsx(KeyboardDoubleArrowUp, {});
|
372
|
+
case "right-bottom":
|
373
|
+
if (type === "open") {
|
374
|
+
return /*#__PURE__*/_jsx(KeyboardDoubleArrowUp, {});
|
375
|
+
}
|
376
|
+
return /*#__PURE__*/_jsx(KeyboardDoubleArrowDown, {});
|
377
|
+
case "bottom-left":
|
378
|
+
if (type === "open") {
|
379
|
+
return /*#__PURE__*/_jsx(KeyboardDoubleArrowRight, {});
|
380
|
+
}
|
381
|
+
return /*#__PURE__*/_jsx(KeyboardDoubleArrowLeft, {});
|
382
|
+
case "bottom-right":
|
383
|
+
if (type === "open") {
|
384
|
+
return /*#__PURE__*/_jsx(KeyboardDoubleArrowLeft, {});
|
385
|
+
}
|
386
|
+
return /*#__PURE__*/_jsx(KeyboardDoubleArrowRight, {});
|
387
|
+
default:
|
388
|
+
if (type === "open") {
|
389
|
+
return /*#__PURE__*/_jsx(KeyboardDoubleArrowRight, {});
|
390
|
+
}
|
391
|
+
return /*#__PURE__*/_jsx(KeyboardDoubleArrowLeft, {});
|
392
|
+
}
|
393
|
+
};
|
320
394
|
return /*#__PURE__*/_jsx(DialogWrapper, {
|
321
395
|
...props,
|
322
396
|
fullScreen: fullScreen,
|
323
397
|
footer: footer || "",
|
324
398
|
children: /*#__PURE__*/_jsx("div", {
|
325
|
-
className: `editor-t-wrapper ${editorClass || ""}`,
|
399
|
+
className: `editor-t-wrapper ${editorClass || ""} ${!toolbarShow ? "editor-wrapper-toolbar-closed" : ""}`,
|
326
400
|
style: {
|
327
401
|
display: "flex",
|
328
402
|
flexDirection: "column",
|
@@ -338,16 +412,28 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
338
412
|
onDragStart: handleDragStart,
|
339
413
|
onDragEnd: handleDragEnd,
|
340
414
|
children: [/*#__PURE__*/_jsxs(Overlay, {
|
341
|
-
children: [
|
342
|
-
|
343
|
-
|
344
|
-
|
415
|
+
children: [/*#__PURE__*/_jsxs("div", {
|
416
|
+
className: `toolbar-wrapper ${toolbarOptions?.toolbarPosition} ${toolbarOptions?.toolbarPosition}-toolbar-wrapper`,
|
417
|
+
children: [toolbarOptions?.needToolbarToggle && /*#__PURE__*/_jsx("div", {
|
418
|
+
className: `toolbar-toggle ${toolbarOptions?.toolbarPosition}`,
|
419
|
+
children: /*#__PURE__*/_jsx(Checkbox, {
|
420
|
+
onChange: handleToolbarSwitch,
|
421
|
+
checked: toolbarShow,
|
422
|
+
icon: getToolbarShowOpenIcon("open"),
|
423
|
+
checkedIcon: getToolbarShowOpenIcon("close"),
|
424
|
+
name: "checkedI"
|
425
|
+
})
|
426
|
+
}), !isReadOnly && toolbarShow ? /*#__PURE__*/_jsx(Toolbar, {
|
427
|
+
handleCodeToText: handleCodeToText,
|
428
|
+
customProps: customProps,
|
429
|
+
toolbarOptions: toolbarOptions
|
430
|
+
}) : null]
|
431
|
+
}), /*#__PURE__*/_jsxs("div", {
|
345
432
|
ref: editorWrapper,
|
346
|
-
className:
|
433
|
+
className: `editor-wrapper ${toolbarOptions?.toolbarPosition}-editor-wrapper ${!toolbarShow ? `${toolbarOptions?.toolbarPosition}-editor-wrapper-toolbar-closed` : ""} `,
|
347
434
|
style: {
|
348
435
|
border: "1px solid #f3f3f3",
|
349
|
-
|
350
|
-
backgroundColor: pageColor || defaultBG || "#FFF",
|
436
|
+
backgroundColor: "unset",
|
351
437
|
color: pageProps?.color || "#000",
|
352
438
|
paddingLeft: `${bannerSpacing?.left}px`,
|
353
439
|
paddingRight: `${bannerSpacing?.right}px`,
|