@flozy/editor 5.2.1 → 5.2.2
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.
@@ -103,6 +103,7 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
103
103
|
});
|
104
104
|
const [isTextSelected, setIsTextSelected] = useState(false);
|
105
105
|
const [breakpoint, setBreakpoint] = useState("");
|
106
|
+
const [topBanner, setTopBanner] = useState();
|
106
107
|
const debouncedValue = useRef(value);
|
107
108
|
const [size] = useWindowResize();
|
108
109
|
const {
|
@@ -300,6 +301,10 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
300
301
|
const handleEditorChange = newValue => {
|
301
302
|
if (!readOnly) {
|
302
303
|
if (JSON.stringify(newValue) !== JSON.stringify(debouncedValue?.current)) {
|
304
|
+
setTopBanner(() => {
|
305
|
+
const firstNode = newValue[0];
|
306
|
+
return firstNode?.type === "topbanner" ? firstNode : null;
|
307
|
+
});
|
303
308
|
debounced(newValue);
|
304
309
|
if (!isInteracted) {
|
305
310
|
setIsInteracted(true);
|
@@ -414,10 +419,7 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
414
419
|
editorWrapper?.current?.classList.remove("hideScroll");
|
415
420
|
handleScrollStop();
|
416
421
|
};
|
417
|
-
const hasTopBanner = () =>
|
418
|
-
const tb = editor.children[0];
|
419
|
-
return tb?.type === "topbanner" ? tb : null;
|
420
|
-
};
|
422
|
+
const hasTopBanner = () => topBanner;
|
421
423
|
const renderTopBanner = () => {
|
422
424
|
const tb = hasTopBanner();
|
423
425
|
return tb ? /*#__PURE__*/_jsx(TopBanner, {
|
@@ -744,7 +744,10 @@ const usePopupStyle = theme => ({
|
|
744
744
|
border: `1px solid ${theme?.palette?.editor?.inputFieldBorder} !important`
|
745
745
|
},
|
746
746
|
"& .popup_tabs": {
|
747
|
-
backgroundColor: theme?.palette?.editor?.inputFieldBgColor
|
747
|
+
backgroundColor: theme?.palette?.editor?.inputFieldBgColor,
|
748
|
+
"@media only screen and (max-width: 899px)": {
|
749
|
+
width: '100% !important'
|
750
|
+
}
|
748
751
|
},
|
749
752
|
"& .popup_tabs-header": {
|
750
753
|
fontFamily: "Inter, sans-serif",
|
@@ -2,6 +2,7 @@ import React, { useMemo, useState } from "react";
|
|
2
2
|
import { Grid, Button, Popover } from "@mui/material";
|
3
3
|
import ColorPickerTool from "react-gcolor-picker";
|
4
4
|
import { colors } from "../Elements/Color Picker/defaultColors";
|
5
|
+
import SwipeableDrawerComponent from "./SwipeableDrawer";
|
5
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
6
7
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
7
8
|
import { Fragment as _Fragment } from "react/jsx-runtime";
|
@@ -17,6 +18,7 @@ const ColorPickerButton = props => {
|
|
17
18
|
const [anchorEl, setAnchorEl] = useState(null);
|
18
19
|
const [color, setColor] = useState(value);
|
19
20
|
const open = Boolean(anchorEl);
|
21
|
+
const isMobile = window.matchMedia("(max-width: 899px)")?.matches || false;
|
20
22
|
const handleColorPicker = e => {
|
21
23
|
setAnchorEl(e.currentTarget);
|
22
24
|
};
|
@@ -37,6 +39,33 @@ const ColorPickerButton = props => {
|
|
37
39
|
}
|
38
40
|
return colors;
|
39
41
|
}, [recentColors, defaultColors, hideGradient]);
|
42
|
+
const ColorPickerToolComponent = () => /*#__PURE__*/_jsxs(Grid, {
|
43
|
+
item: true,
|
44
|
+
xs: 12,
|
45
|
+
children: [/*#__PURE__*/_jsx("div", {
|
46
|
+
children: /*#__PURE__*/_jsx(ColorPickerTool, {
|
47
|
+
gradient: hideGradient ? false : true,
|
48
|
+
value: color,
|
49
|
+
onChange: handleColorChange,
|
50
|
+
defaultColors: initialColors
|
51
|
+
})
|
52
|
+
}), /*#__PURE__*/_jsxs("div", {
|
53
|
+
style: {
|
54
|
+
display: "flex",
|
55
|
+
justifyContent: "end",
|
56
|
+
margin: "8px"
|
57
|
+
},
|
58
|
+
children: [/*#__PURE__*/_jsx(Button, {
|
59
|
+
onClick: handleClose,
|
60
|
+
className: "secondaryBtn",
|
61
|
+
children: "Cancel"
|
62
|
+
}), /*#__PURE__*/_jsx(Button, {
|
63
|
+
onClick: handleSave,
|
64
|
+
className: "primaryBtn",
|
65
|
+
children: "Save"
|
66
|
+
})]
|
67
|
+
})]
|
68
|
+
});
|
40
69
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
41
70
|
children: [/*#__PURE__*/_jsx(Button, {
|
42
71
|
style: {
|
@@ -48,7 +77,18 @@ const ColorPickerButton = props => {
|
|
48
77
|
},
|
49
78
|
|
50
79
|
onClick: handleColorPicker
|
51
|
-
}), /*#__PURE__*/_jsx(
|
80
|
+
}), isMobile ? /*#__PURE__*/_jsx(SwipeableDrawerComponent, {
|
81
|
+
open: open,
|
82
|
+
onClose: handleClose,
|
83
|
+
swipeableDrawer: false,
|
84
|
+
children: /*#__PURE__*/_jsx(Grid, {
|
85
|
+
container: true,
|
86
|
+
padding: 0,
|
87
|
+
className: "ed-cp-wrpr",
|
88
|
+
sx: classes.colorPickerPopup,
|
89
|
+
children: /*#__PURE__*/_jsx(ColorPickerToolComponent, {})
|
90
|
+
})
|
91
|
+
}) : /*#__PURE__*/_jsx(Popover, {
|
52
92
|
open: open,
|
53
93
|
anchorEl: anchorEl,
|
54
94
|
anchorOrigin: {
|
@@ -65,33 +105,7 @@ const ColorPickerButton = props => {
|
|
65
105
|
container: true,
|
66
106
|
padding: 0,
|
67
107
|
className: "ed-cp-wrpr",
|
68
|
-
children: /*#__PURE__*/
|
69
|
-
item: true,
|
70
|
-
xs: 12,
|
71
|
-
children: [/*#__PURE__*/_jsx("div", {
|
72
|
-
children: /*#__PURE__*/_jsx(ColorPickerTool, {
|
73
|
-
gradient: hideGradient ? false : true,
|
74
|
-
value: color,
|
75
|
-
onChange: handleColorChange,
|
76
|
-
defaultColors: initialColors
|
77
|
-
})
|
78
|
-
}), /*#__PURE__*/_jsxs("div", {
|
79
|
-
style: {
|
80
|
-
display: "flex",
|
81
|
-
justifyContent: "end",
|
82
|
-
margin: "8px"
|
83
|
-
},
|
84
|
-
children: [/*#__PURE__*/_jsx(Button, {
|
85
|
-
onClick: handleClose,
|
86
|
-
className: "secondaryBtn",
|
87
|
-
children: "Cancel"
|
88
|
-
}), /*#__PURE__*/_jsx(Button, {
|
89
|
-
onClick: handleSave,
|
90
|
-
className: "primaryBtn",
|
91
|
-
children: "Save"
|
92
|
-
})]
|
93
|
-
})]
|
94
|
-
})
|
108
|
+
children: /*#__PURE__*/_jsx(ColorPickerToolComponent, {})
|
95
109
|
})
|
96
110
|
})]
|
97
111
|
});
|
@@ -38,7 +38,10 @@ const useCommonStyle = theme => ({
|
|
38
38
|
backgroundColor: theme?.palette?.editor?.background
|
39
39
|
},
|
40
40
|
"& .popup_tabs": {
|
41
|
-
backgroundColor: theme?.palette?.editor?.background
|
41
|
+
backgroundColor: theme?.palette?.editor?.background,
|
42
|
+
"@media only screen and (max-width: 899px)": {
|
43
|
+
width: '100% !important'
|
44
|
+
}
|
42
45
|
},
|
43
46
|
"& .popup_tabs-header": {
|
44
47
|
backgroundColor: theme?.palette?.editor?.background,
|
@@ -56,56 +56,51 @@ const withLayout = editor => {
|
|
56
56
|
}]
|
57
57
|
};
|
58
58
|
Transforms.insertNodes(editor, paragraph, {
|
59
|
-
at:
|
59
|
+
at: path.concat(1)
|
60
60
|
});
|
61
61
|
return;
|
62
62
|
}
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
}
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
};
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
Transforms.insertNodes(editor, remainingNodes, {
|
105
|
-
at: [1]
|
106
|
-
});
|
107
|
-
}
|
108
|
-
}
|
63
|
+
|
64
|
+
// Transforms.insertNodes(editor, paragraph, { at: [0] });
|
65
|
+
// const extractFirstText = (node) => {
|
66
|
+
// if (node.text) {
|
67
|
+
// return node.text;
|
68
|
+
// }
|
69
|
+
// if (node.children) {
|
70
|
+
// for (const child of node.children) {
|
71
|
+
// const text = extractFirstText(child);
|
72
|
+
// if (text) {
|
73
|
+
// return text;
|
74
|
+
// }
|
75
|
+
// }
|
76
|
+
// }
|
77
|
+
// return "";
|
78
|
+
// };
|
79
|
+
|
80
|
+
// const extractRemainingNodes = (node) => {
|
81
|
+
// if (!node.children) {
|
82
|
+
// return [];
|
83
|
+
// }
|
84
|
+
// const [, ...remainingChildren] = node.children;
|
85
|
+
// return remainingChildren.map((child) => ({ ...child }));
|
86
|
+
// };
|
87
|
+
|
88
|
+
// const firstNode = editor.children[0];
|
89
|
+
// const firstContent = extractFirstText(firstNode);
|
90
|
+
|
91
|
+
// if (firstNode.type !== "title") {
|
92
|
+
// const titleNode = {
|
93
|
+
// type: "title",
|
94
|
+
// children: [{ text: firstContent }],
|
95
|
+
// };
|
96
|
+
// Transforms.removeNodes(editor, { at: [0] });
|
97
|
+
// Transforms.insertNodes(editor, titleNode, { at: [0], select: true });
|
98
|
+
// const remainingNodes = extractRemainingNodes(firstNode);
|
99
|
+
// if (remainingNodes.length > 0) {
|
100
|
+
// Transforms.insertNodes(editor, remainingNodes, { at: [1] });
|
101
|
+
// }
|
102
|
+
// }
|
103
|
+
|
109
104
|
ORDERS_LAYOUT.forEach((enforce, index) => {
|
110
105
|
if (index < editor.children.length) {
|
111
106
|
const existsNode = Node.get(editor, [index]);
|