@flozy/editor 3.2.6 → 3.2.8
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/Editor/Elements/Embed/Frames/DarkFrame.js +3 -2
- package/dist/Editor/Elements/Embed/Frames/ImageFrame.js +4 -1
- package/dist/Editor/Elements/Embed/Frames/InstaFrame.js +3 -2
- package/dist/Editor/Elements/Embed/Frames/InstaFrameDark.js +3 -2
- package/dist/Editor/Elements/Embed/Frames/LiteFrame.js +3 -2
- package/dist/Editor/Elements/Embed/Frames/RoundedDark.js +3 -2
- package/dist/Editor/Elements/Embed/Frames/RoundedLight.js +3 -2
- package/dist/Editor/Elements/Embed/Frames/RoundedLightB2.js +3 -2
- package/dist/Editor/Elements/Embed/Image.js +98 -68
- package/dist/Editor/Elements/Grid/Grid.js +61 -45
- package/dist/Editor/Elements/Grid/GridItem.js +28 -20
- package/dist/Editor/Toolbar/PopupTool/index.js +0 -4
- package/dist/Editor/plugins/withHTML.js +11 -0
- package/dist/Editor/utils/helper.js +14 -9
- package/package.json +2 -2
@@ -8,7 +8,8 @@ const DarkFrame = /*#__PURE__*/forwardRef((props, ref) => {
|
|
8
8
|
imagePos,
|
9
9
|
handleClick,
|
10
10
|
imageRef,
|
11
|
-
defaultScale
|
11
|
+
defaultScale,
|
12
|
+
readOnly
|
12
13
|
} = props;
|
13
14
|
const {
|
14
15
|
calX,
|
@@ -41,7 +42,7 @@ const DarkFrame = /*#__PURE__*/forwardRef((props, ref) => {
|
|
41
42
|
fill: `url(#imageSource_${id})`,
|
42
43
|
ref: imageRef,
|
43
44
|
style: {
|
44
|
-
cursor: "move"
|
45
|
+
cursor: readOnly ? "pointer" : "move"
|
45
46
|
}
|
46
47
|
})
|
47
48
|
}), /*#__PURE__*/_jsxs("defs", {
|
@@ -16,7 +16,8 @@ const ImageFrame = props => {
|
|
16
16
|
id,
|
17
17
|
framePos,
|
18
18
|
onChange,
|
19
|
-
readOnly
|
19
|
+
readOnly,
|
20
|
+
handleImageClick
|
20
21
|
} = props;
|
21
22
|
const svgRef = useRef();
|
22
23
|
const [dom, setDOM] = useState(null);
|
@@ -75,6 +76,8 @@ const ImageFrame = props => {
|
|
75
76
|
if (!readOnly) {
|
76
77
|
setSelectedPath(id);
|
77
78
|
setAnchorEl(svgRef?.current);
|
79
|
+
} else {
|
80
|
+
handleImageClick();
|
78
81
|
}
|
79
82
|
};
|
80
83
|
const onClose = () => {
|
@@ -8,7 +8,8 @@ const InstaFrame = /*#__PURE__*/forwardRef((props, ref) => {
|
|
8
8
|
imagePos,
|
9
9
|
handleClick,
|
10
10
|
imageRef,
|
11
|
-
defaultScale
|
11
|
+
defaultScale,
|
12
|
+
readOnly
|
12
13
|
} = props;
|
13
14
|
const {
|
14
15
|
calX,
|
@@ -98,7 +99,7 @@ const InstaFrame = /*#__PURE__*/forwardRef((props, ref) => {
|
|
98
99
|
strokeWidth: "5",
|
99
100
|
fill: `url(#imageSource_${id})`,
|
100
101
|
style: {
|
101
|
-
cursor: "move"
|
102
|
+
cursor: readOnly ? "pointer" : "move"
|
102
103
|
},
|
103
104
|
ref: imageRef
|
104
105
|
}), /*#__PURE__*/_jsx("defs", {
|
@@ -8,7 +8,8 @@ const InstaFrame = /*#__PURE__*/forwardRef((props, ref) => {
|
|
8
8
|
imagePos,
|
9
9
|
handleClick,
|
10
10
|
imageRef,
|
11
|
-
defaultScale
|
11
|
+
defaultScale,
|
12
|
+
readOnly
|
12
13
|
} = props;
|
13
14
|
const {
|
14
15
|
calX,
|
@@ -98,7 +99,7 @@ const InstaFrame = /*#__PURE__*/forwardRef((props, ref) => {
|
|
98
99
|
fill: `url(#imageSource_${id})`,
|
99
100
|
ref: imageRef,
|
100
101
|
style: {
|
101
|
-
cursor: "move"
|
102
|
+
cursor: readOnly ? "pointer" : "move"
|
102
103
|
}
|
103
104
|
}), /*#__PURE__*/_jsx("defs", {
|
104
105
|
children: /*#__PURE__*/_jsx("pattern", {
|
@@ -8,7 +8,8 @@ const DarkFrame = /*#__PURE__*/forwardRef((props, ref) => {
|
|
8
8
|
imagePos,
|
9
9
|
handleClick,
|
10
10
|
imageRef,
|
11
|
-
defaultScale
|
11
|
+
defaultScale,
|
12
|
+
readOnly
|
12
13
|
} = props;
|
13
14
|
const {
|
14
15
|
calX,
|
@@ -44,7 +45,7 @@ const DarkFrame = /*#__PURE__*/forwardRef((props, ref) => {
|
|
44
45
|
fill: `url(#imageSource_${id})`,
|
45
46
|
ref: imageRef,
|
46
47
|
style: {
|
47
|
-
cursor: "move"
|
48
|
+
cursor: readOnly ? "pointer" : "move"
|
48
49
|
}
|
49
50
|
})
|
50
51
|
}), /*#__PURE__*/_jsxs("defs", {
|
@@ -8,7 +8,8 @@ const RoundedDark = /*#__PURE__*/forwardRef((props, ref) => {
|
|
8
8
|
imagePos,
|
9
9
|
handleClick,
|
10
10
|
imageRef,
|
11
|
-
defaultScale
|
11
|
+
defaultScale,
|
12
|
+
readOnly
|
12
13
|
} = props;
|
13
14
|
const {
|
14
15
|
calX,
|
@@ -42,7 +43,7 @@ const RoundedDark = /*#__PURE__*/forwardRef((props, ref) => {
|
|
42
43
|
fill: `url(#imageSource_${id})`,
|
43
44
|
ref: imageRef,
|
44
45
|
style: {
|
45
|
-
cursor: "move"
|
46
|
+
cursor: readOnly ? "pointer" : "move"
|
46
47
|
}
|
47
48
|
})
|
48
49
|
}), /*#__PURE__*/_jsxs("defs", {
|
@@ -8,7 +8,8 @@ const RoundedLight = /*#__PURE__*/forwardRef((props, ref) => {
|
|
8
8
|
imagePos,
|
9
9
|
handleClick,
|
10
10
|
imageRef,
|
11
|
-
defaultScale
|
11
|
+
defaultScale,
|
12
|
+
readOnly
|
12
13
|
} = props;
|
13
14
|
const {
|
14
15
|
calX,
|
@@ -39,7 +40,7 @@ const RoundedLight = /*#__PURE__*/forwardRef((props, ref) => {
|
|
39
40
|
fill: `url(#imageSource_${id})`,
|
40
41
|
ref: imageRef,
|
41
42
|
style: {
|
42
|
-
cursor: "move"
|
43
|
+
cursor: readOnly ? "pointer" : "move"
|
43
44
|
}
|
44
45
|
}), /*#__PURE__*/_jsx("defs", {
|
45
46
|
children: /*#__PURE__*/_jsx("pattern", {
|
@@ -8,7 +8,8 @@ const RoundedLightB2 = /*#__PURE__*/forwardRef((props, ref) => {
|
|
8
8
|
imagePos,
|
9
9
|
handleClick,
|
10
10
|
imageRef,
|
11
|
-
defaultScale
|
11
|
+
defaultScale,
|
12
|
+
readOnly
|
12
13
|
} = props;
|
13
14
|
const {
|
14
15
|
calX,
|
@@ -39,7 +40,7 @@ const RoundedLightB2 = /*#__PURE__*/forwardRef((props, ref) => {
|
|
39
40
|
fill: `url(#imageSource_${id})`,
|
40
41
|
ref: imageRef,
|
41
42
|
style: {
|
42
|
-
cursor: "move"
|
43
|
+
cursor: readOnly ? "pointer" : "move"
|
43
44
|
}
|
44
45
|
}), /*#__PURE__*/_jsx("defs", {
|
45
46
|
children: /*#__PURE__*/_jsx("pattern", {
|
@@ -15,6 +15,90 @@ import LinkSettings from "../../common/LinkSettings";
|
|
15
15
|
import { handleLinkType } from "../../utils/helper";
|
16
16
|
import { jsx as _jsx } from "react/jsx-runtime";
|
17
17
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
18
|
+
const ToolBar = ({
|
19
|
+
isEmpty,
|
20
|
+
onSettings,
|
21
|
+
setOpenNav
|
22
|
+
}) => {
|
23
|
+
return !isEmpty ? /*#__PURE__*/_jsxs("div", {
|
24
|
+
className: "element-toolbar visible-on-hover",
|
25
|
+
contentEditable: false,
|
26
|
+
style: {
|
27
|
+
top: "0px",
|
28
|
+
right: "0px",
|
29
|
+
left: "auto",
|
30
|
+
margin: "0px"
|
31
|
+
},
|
32
|
+
children: [/*#__PURE__*/_jsx(Tooltip, {
|
33
|
+
title: "Image Settings",
|
34
|
+
arrow: true,
|
35
|
+
children: /*#__PURE__*/_jsx(IconButton, {
|
36
|
+
onClick: onSettings,
|
37
|
+
children: /*#__PURE__*/_jsx(GridSettingsIcon, {})
|
38
|
+
})
|
39
|
+
}), /*#__PURE__*/_jsx(Tooltip, {
|
40
|
+
title: "Link Settings",
|
41
|
+
arrow: true,
|
42
|
+
children: /*#__PURE__*/_jsx(IconButton, {
|
43
|
+
onClick: () => setOpenNav(true),
|
44
|
+
children: /*#__PURE__*/_jsx(LinkIcon, {})
|
45
|
+
})
|
46
|
+
})]
|
47
|
+
}) : null;
|
48
|
+
};
|
49
|
+
const ImageContent = ({
|
50
|
+
readOnly,
|
51
|
+
setOpenSettings,
|
52
|
+
element,
|
53
|
+
handleImageClick,
|
54
|
+
onTouchEnd,
|
55
|
+
path
|
56
|
+
}) => {
|
57
|
+
const {
|
58
|
+
alt,
|
59
|
+
url,
|
60
|
+
borderColor,
|
61
|
+
borderRadius,
|
62
|
+
borderWidth,
|
63
|
+
boxShadow,
|
64
|
+
frame = null,
|
65
|
+
objectFit,
|
66
|
+
webAddress
|
67
|
+
} = element;
|
68
|
+
return !url && !readOnly ? /*#__PURE__*/_jsxs(Box, {
|
69
|
+
component: "button",
|
70
|
+
className: "element-empty-btn",
|
71
|
+
contentEditable: false,
|
72
|
+
onClick: () => {
|
73
|
+
setOpenSettings(true);
|
74
|
+
},
|
75
|
+
children: [/*#__PURE__*/_jsx(Icon, {
|
76
|
+
icon: "image"
|
77
|
+
}), "Add Image"]
|
78
|
+
}) : /*#__PURE__*/_jsx(Box, {
|
79
|
+
component: "img",
|
80
|
+
className: "emb-img",
|
81
|
+
sx: {
|
82
|
+
borderRadius: {
|
83
|
+
...getBreakPointsValue(borderRadius || {}, null, "overrideBorderRadius", true)
|
84
|
+
},
|
85
|
+
objectFit: "cover",
|
86
|
+
boxShadow: boxShadow || "none",
|
87
|
+
height: objectFit ? "100%" : "auto",
|
88
|
+
opacity: frame ? 0 : 1,
|
89
|
+
cursor: webAddress ? "pointer" : "",
|
90
|
+
border: `1px solid ${borderColor}`,
|
91
|
+
borderWidth: `${borderWidth}`?.includes("px") ? borderWidth : `${borderWidth}px`
|
92
|
+
},
|
93
|
+
alt: alt,
|
94
|
+
src: url,
|
95
|
+
onClick: handleImageClick,
|
96
|
+
onTouchEnd: onTouchEnd // for mobile
|
97
|
+
,
|
98
|
+
"data-path": path.join(","),
|
99
|
+
draggable: false
|
100
|
+
});
|
101
|
+
};
|
18
102
|
const Image = ({
|
19
103
|
attributes,
|
20
104
|
element,
|
@@ -23,14 +107,9 @@ const Image = ({
|
|
23
107
|
}) => {
|
24
108
|
const {
|
25
109
|
url,
|
26
|
-
alt,
|
27
110
|
bannerSpacing,
|
28
111
|
alignment,
|
29
112
|
bgColor,
|
30
|
-
borderColor,
|
31
|
-
borderRadius,
|
32
|
-
borderWidth,
|
33
|
-
boxShadow,
|
34
113
|
width: oldWidth,
|
35
114
|
xsHidden,
|
36
115
|
objectFit,
|
@@ -132,67 +211,6 @@ const Image = ({
|
|
132
211
|
const onPosChange = data => {
|
133
212
|
onSave(data);
|
134
213
|
};
|
135
|
-
const ToolBar = () => {
|
136
|
-
return !isEmpty ? /*#__PURE__*/_jsxs("div", {
|
137
|
-
className: "element-toolbar visible-on-hover",
|
138
|
-
contentEditable: false,
|
139
|
-
style: {
|
140
|
-
top: "0px",
|
141
|
-
right: "0px",
|
142
|
-
left: "auto",
|
143
|
-
margin: "0px"
|
144
|
-
},
|
145
|
-
children: [/*#__PURE__*/_jsx(Tooltip, {
|
146
|
-
title: "Image Settings",
|
147
|
-
arrow: true,
|
148
|
-
children: /*#__PURE__*/_jsx(IconButton, {
|
149
|
-
onClick: onSettings,
|
150
|
-
children: /*#__PURE__*/_jsx(GridSettingsIcon, {})
|
151
|
-
})
|
152
|
-
}), /*#__PURE__*/_jsx(Tooltip, {
|
153
|
-
title: "Link Settings",
|
154
|
-
arrow: true,
|
155
|
-
children: /*#__PURE__*/_jsx(IconButton, {
|
156
|
-
onClick: () => setOpenNav(true),
|
157
|
-
children: /*#__PURE__*/_jsx(LinkIcon, {})
|
158
|
-
})
|
159
|
-
})]
|
160
|
-
}) : null;
|
161
|
-
};
|
162
|
-
const ImageContent = () => {
|
163
|
-
return !url && !readOnly ? /*#__PURE__*/_jsxs(Box, {
|
164
|
-
component: "button",
|
165
|
-
className: "element-empty-btn",
|
166
|
-
contentEditable: false,
|
167
|
-
onClick: () => {
|
168
|
-
setOpenSettings(true);
|
169
|
-
},
|
170
|
-
children: [/*#__PURE__*/_jsx(Icon, {
|
171
|
-
icon: "image"
|
172
|
-
}), "Add Image"]
|
173
|
-
}) : /*#__PURE__*/_jsx(Box, {
|
174
|
-
component: "img",
|
175
|
-
className: "emb-img",
|
176
|
-
sx: {
|
177
|
-
borderRadius: {
|
178
|
-
...getBreakPointsValue(borderRadius || {}, null, "overrideBorderRadius", true)
|
179
|
-
},
|
180
|
-
objectFit: "cover",
|
181
|
-
boxShadow: boxShadow || "none",
|
182
|
-
height: objectFit ? "100%" : "auto",
|
183
|
-
opacity: frame ? 0 : 1,
|
184
|
-
cursor: webAddress ? "pointer" : "",
|
185
|
-
border: `1px solid ${borderColor}`,
|
186
|
-
borderWidth: `${borderWidth}`?.includes('px') ? borderWidth : `${borderWidth}px`
|
187
|
-
},
|
188
|
-
alt: alt,
|
189
|
-
src: url,
|
190
|
-
onClick: handleImageClick,
|
191
|
-
onTouchEnd: onTouchEnd,
|
192
|
-
"data-path": path.join(","),
|
193
|
-
draggable: false
|
194
|
-
});
|
195
|
-
};
|
196
214
|
const getWidth = () => {
|
197
215
|
if (resizing) {
|
198
216
|
return {
|
@@ -246,7 +264,18 @@ const Image = ({
|
|
246
264
|
position: "relative",
|
247
265
|
...getWidth()
|
248
266
|
},
|
249
|
-
children: [!readOnly && /*#__PURE__*/_jsx(ToolBar, {
|
267
|
+
children: [!readOnly && /*#__PURE__*/_jsx(ToolBar, {
|
268
|
+
isEmpty: isEmpty,
|
269
|
+
onSettings: onSettings,
|
270
|
+
setOpenNav: setOpenNav
|
271
|
+
}), /*#__PURE__*/_jsx(ImageContent, {
|
272
|
+
readOnly: readOnly,
|
273
|
+
setOpenSettings: setOpenSettings,
|
274
|
+
element: element,
|
275
|
+
handleImageClick: handleImageClick,
|
276
|
+
onTouchEnd: onTouchEnd,
|
277
|
+
path: path
|
278
|
+
}), url && frames[frame] ? /*#__PURE__*/_jsx(Box, {
|
250
279
|
component: "div",
|
251
280
|
className: "image-frame",
|
252
281
|
"data-path": path.join(","),
|
@@ -256,7 +285,8 @@ const Image = ({
|
|
256
285
|
href: url,
|
257
286
|
id: path.join(","),
|
258
287
|
onChange: onPosChange,
|
259
|
-
readOnly: readOnly
|
288
|
+
readOnly: readOnly,
|
289
|
+
handleImageClick: handleImageClick
|
260
290
|
})
|
261
291
|
}) : null, selected && !readOnly && /*#__PURE__*/_jsx(IconButton, {
|
262
292
|
onPointerDown: onMouseDown,
|
@@ -22,6 +22,58 @@ const GridSettingsPoupComp = {
|
|
22
22
|
section: SectionPopup,
|
23
23
|
grid: GridPopup
|
24
24
|
};
|
25
|
+
const GridToolBar = ({
|
26
|
+
selected,
|
27
|
+
showTool,
|
28
|
+
onSettings,
|
29
|
+
onAddGridItem,
|
30
|
+
onAddSection,
|
31
|
+
onMoveSection,
|
32
|
+
path
|
33
|
+
}) => {
|
34
|
+
return selected && !showTool ? /*#__PURE__*/_jsxs("div", {
|
35
|
+
className: "grid-container-toolbar",
|
36
|
+
contentEditable: false,
|
37
|
+
children: [/*#__PURE__*/_jsx(Tooltip, {
|
38
|
+
title: "Grid Settings",
|
39
|
+
arrow: true,
|
40
|
+
children: /*#__PURE__*/_jsx(IconButton, {
|
41
|
+
onClick: onSettings,
|
42
|
+
children: /*#__PURE__*/_jsx(GridSettingsIcon, {})
|
43
|
+
})
|
44
|
+
}), /*#__PURE__*/_jsx(Tooltip, {
|
45
|
+
title: "Add Grid Item",
|
46
|
+
arrow: true,
|
47
|
+
children: /*#__PURE__*/_jsx(IconButton, {
|
48
|
+
onClick: onAddGridItem,
|
49
|
+
children: /*#__PURE__*/_jsx(GridAddGridIcon, {})
|
50
|
+
})
|
51
|
+
}), /*#__PURE__*/_jsx(Tooltip, {
|
52
|
+
title: "Duplicate",
|
53
|
+
arrow: true,
|
54
|
+
children: /*#__PURE__*/_jsx(IconButton, {
|
55
|
+
onClick: onAddSection(),
|
56
|
+
children: /*#__PURE__*/_jsx(ContentCopyIcon, {})
|
57
|
+
})
|
58
|
+
}), path.length === 2 ? /*#__PURE__*/_jsxs(_Fragment, {
|
59
|
+
children: [/*#__PURE__*/_jsx(Tooltip, {
|
60
|
+
title: "Move Up",
|
61
|
+
arrow: true,
|
62
|
+
children: /*#__PURE__*/_jsx(IconButton, {
|
63
|
+
onClick: onMoveSection("up"),
|
64
|
+
children: /*#__PURE__*/_jsx(ArrowUpwardIcon, {})
|
65
|
+
})
|
66
|
+
}), /*#__PURE__*/_jsx(Tooltip, {
|
67
|
+
title: "Move Down",
|
68
|
+
arrow: true,
|
69
|
+
children: /*#__PURE__*/_jsx(IconButton, {
|
70
|
+
onClick: onMoveSection("down"),
|
71
|
+
children: /*#__PURE__*/_jsx(ArrowDownwardIcon, {})
|
72
|
+
})
|
73
|
+
})]
|
74
|
+
}) : null]
|
75
|
+
}) : null;
|
76
|
+
};
|
25
77
|
const Grid = props => {
|
26
78
|
const {
|
27
79
|
attributes,
|
@@ -211,50 +263,6 @@ const Grid = props => {
|
|
211
263
|
})]
|
212
264
|
}) : null;
|
213
265
|
};
|
214
|
-
const GridToolBar = () => {
|
215
|
-
return selected && !showTool ? /*#__PURE__*/_jsxs("div", {
|
216
|
-
className: "grid-container-toolbar",
|
217
|
-
contentEditable: false,
|
218
|
-
children: [/*#__PURE__*/_jsx(Tooltip, {
|
219
|
-
title: "Grid Settings",
|
220
|
-
arrow: true,
|
221
|
-
children: /*#__PURE__*/_jsx(IconButton, {
|
222
|
-
onClick: onSettings,
|
223
|
-
children: /*#__PURE__*/_jsx(GridSettingsIcon, {})
|
224
|
-
})
|
225
|
-
}), /*#__PURE__*/_jsx(Tooltip, {
|
226
|
-
title: "Add Grid Item",
|
227
|
-
arrow: true,
|
228
|
-
children: /*#__PURE__*/_jsx(IconButton, {
|
229
|
-
onClick: onAddGridItem,
|
230
|
-
children: /*#__PURE__*/_jsx(GridAddGridIcon, {})
|
231
|
-
})
|
232
|
-
}), /*#__PURE__*/_jsx(Tooltip, {
|
233
|
-
title: "Duplicate",
|
234
|
-
arrow: true,
|
235
|
-
children: /*#__PURE__*/_jsx(IconButton, {
|
236
|
-
onClick: onAddSection(),
|
237
|
-
children: /*#__PURE__*/_jsx(ContentCopyIcon, {})
|
238
|
-
})
|
239
|
-
}), path.length === 2 ? /*#__PURE__*/_jsxs(_Fragment, {
|
240
|
-
children: [/*#__PURE__*/_jsx(Tooltip, {
|
241
|
-
title: "Move Up",
|
242
|
-
arrow: true,
|
243
|
-
children: /*#__PURE__*/_jsx(IconButton, {
|
244
|
-
onClick: onMoveSection("up"),
|
245
|
-
children: /*#__PURE__*/_jsx(ArrowUpwardIcon, {})
|
246
|
-
})
|
247
|
-
}), /*#__PURE__*/_jsx(Tooltip, {
|
248
|
-
title: "Move Down",
|
249
|
-
arrow: true,
|
250
|
-
children: /*#__PURE__*/_jsx(IconButton, {
|
251
|
-
onClick: onMoveSection("down"),
|
252
|
-
children: /*#__PURE__*/_jsx(ArrowDownwardIcon, {})
|
253
|
-
})
|
254
|
-
})]
|
255
|
-
}) : null]
|
256
|
-
}) : null;
|
257
|
-
};
|
258
266
|
const sectionId = id ? {
|
259
267
|
id
|
260
268
|
} : {};
|
@@ -312,7 +320,15 @@ const Grid = props => {
|
|
312
320
|
}), /*#__PURE__*/_jsx("div", {
|
313
321
|
className: "element-selector-dots br",
|
314
322
|
children: " "
|
315
|
-
}), /*#__PURE__*/_jsx(GridToolBar, {
|
323
|
+
}), /*#__PURE__*/_jsx(GridToolBar, {
|
324
|
+
selected: selected,
|
325
|
+
showTool: showTool,
|
326
|
+
onSettings: onSettings,
|
327
|
+
onAddGridItem: onAddGridItem,
|
328
|
+
onAddSection: onAddSection,
|
329
|
+
onMoveSection: onMoveSection,
|
330
|
+
path: path
|
331
|
+
})]
|
316
332
|
}), openSetttings ? /*#__PURE__*/_jsx(PoupComp, {
|
317
333
|
element: element,
|
318
334
|
onSave: onSave,
|
@@ -10,6 +10,29 @@ import { getBreakPointsValue, getTRBLBreakPoints } from "../../helper/theme";
|
|
10
10
|
import { isEmptyNode } from "../../utils/helper";
|
11
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
12
12
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
13
|
+
const GridItemToolbar = ({
|
14
|
+
selected,
|
15
|
+
showTool,
|
16
|
+
onSettings
|
17
|
+
}) => {
|
18
|
+
return selected && !showTool ? /*#__PURE__*/_jsx("div", {
|
19
|
+
contentEditable: false,
|
20
|
+
className: "grid-item-toolbar",
|
21
|
+
style: {
|
22
|
+
top: "-14px",
|
23
|
+
left: "-14px"
|
24
|
+
},
|
25
|
+
children: /*#__PURE__*/_jsx(Tooltip, {
|
26
|
+
title: "Grid Item Settings",
|
27
|
+
arrow: true,
|
28
|
+
children: /*#__PURE__*/_jsx(IconButton, {
|
29
|
+
size: "small",
|
30
|
+
onClick: onSettings,
|
31
|
+
children: /*#__PURE__*/_jsx(GridSettingsIcon, {})
|
32
|
+
})
|
33
|
+
})
|
34
|
+
}) : null;
|
35
|
+
};
|
13
36
|
const GridItem = props => {
|
14
37
|
const {
|
15
38
|
attributes,
|
@@ -51,25 +74,6 @@ const GridItem = props => {
|
|
51
74
|
const selected = hoverPath === path.join(",");
|
52
75
|
const [showTool] = useEditorSelection(editor);
|
53
76
|
const isEmpty = !readOnly && isEmptyNode(editor, element?.children, path) ? "empty" : "";
|
54
|
-
const GridItemToolbar = () => {
|
55
|
-
return selected && !showTool ? /*#__PURE__*/_jsx("div", {
|
56
|
-
contentEditable: false,
|
57
|
-
className: "grid-item-toolbar",
|
58
|
-
style: {
|
59
|
-
top: "-14px",
|
60
|
-
left: "-14px"
|
61
|
-
},
|
62
|
-
children: /*#__PURE__*/_jsx(Tooltip, {
|
63
|
-
title: "Grid Item Settings",
|
64
|
-
arrow: true,
|
65
|
-
children: /*#__PURE__*/_jsx(IconButton, {
|
66
|
-
size: "small",
|
67
|
-
onClick: onSettings,
|
68
|
-
children: /*#__PURE__*/_jsx(GridSettingsIcon, {})
|
69
|
-
})
|
70
|
-
})
|
71
|
-
}) : null;
|
72
|
-
};
|
73
77
|
const onSettings = () => {
|
74
78
|
setOpenSettings(true);
|
75
79
|
};
|
@@ -153,7 +157,11 @@ const GridItem = props => {
|
|
153
157
|
}), /*#__PURE__*/_jsx("div", {
|
154
158
|
className: "element-selector-dots br",
|
155
159
|
children: " "
|
156
|
-
}), /*#__PURE__*/_jsx(GridItemToolbar, {
|
160
|
+
}), /*#__PURE__*/_jsx(GridItemToolbar, {
|
161
|
+
selected: selected,
|
162
|
+
showTool: showTool,
|
163
|
+
onSettings: onSettings
|
164
|
+
})]
|
157
165
|
}), /*#__PURE__*/_jsx(Box, {
|
158
166
|
className: `gi-inner-cw ${animation || ""} content-editable ${isEmpty} np`,
|
159
167
|
component: "div",
|
@@ -55,10 +55,6 @@ const PopupTool = props => {
|
|
55
55
|
const updateAnchorEl = () => {
|
56
56
|
try {
|
57
57
|
const domSelection = window.getSelection();
|
58
|
-
if (!domSelection?.anchorOffset) {
|
59
|
-
// no selection
|
60
|
-
return;
|
61
|
-
}
|
62
58
|
const domRange = domSelection?.getRangeAt(0);
|
63
59
|
const {
|
64
60
|
startOffset,
|
@@ -83,6 +83,17 @@ const withHtml = editor => {
|
|
83
83
|
}
|
84
84
|
} else if (html) {
|
85
85
|
const parsed = new DOMParser().parseFromString(html, "text/html");
|
86
|
+
const isGoogleSheet = parsed.body.querySelector("google-sheets-html-origin");
|
87
|
+
if (isGoogleSheet) {
|
88
|
+
const table = parsed.body.querySelector("table");
|
89
|
+
const colGrp = table.querySelector("colgroup");
|
90
|
+
if (colGrp) {
|
91
|
+
colGrp.remove();
|
92
|
+
}
|
93
|
+
const fragment = deserialize(table);
|
94
|
+
Transforms.insertFragment(editor, [fragment]);
|
95
|
+
return;
|
96
|
+
}
|
86
97
|
const fragment = deserialize(parsed.body);
|
87
98
|
const formattedFragment = formatFragment[eltype] ? formatFragment[eltype](fragment) : fragment;
|
88
99
|
Transforms.insertFragment(editor, formattedFragment);
|
@@ -204,6 +204,9 @@ export const decodeAndParseBase64 = encodedString => {
|
|
204
204
|
const jsonData = JSON.parse(decodedURLString);
|
205
205
|
return jsonData;
|
206
206
|
};
|
207
|
+
const hasVerticalScrollbar = (element = {}) => {
|
208
|
+
return element.scrollHeight > element.clientHeight;
|
209
|
+
};
|
207
210
|
export const handleLinkType = (url, linkType, readOnly, openInNewTab, onClick = () => {}) => {
|
208
211
|
const props = {};
|
209
212
|
if (!readOnly) {
|
@@ -252,15 +255,17 @@ export const handleLinkType = (url, linkType, readOnly, openInNewTab, onClick =
|
|
252
255
|
case "scrollTopOrBottom":
|
253
256
|
props.component = "button";
|
254
257
|
props.onClick = () => {
|
255
|
-
const
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
258
|
+
const slateWrapper = document.getElementById("slate-wrapper-scroll-container");
|
259
|
+
const isSlateWrapperScroll = hasVerticalScrollbar(slateWrapper);
|
260
|
+
const scrollFrom = isSlateWrapperScroll ? slateWrapper : window;
|
261
|
+
if (url === "top") {
|
262
|
+
// top of the page
|
263
|
+
scrollFrom.scrollTo(0, 0);
|
264
|
+
} else if (url === "bottom") {
|
265
|
+
const pageHeight = isSlateWrapperScroll ? slateWrapper.scrollHeight : document.body.scrollHeight;
|
266
|
+
|
267
|
+
// bottom of the page
|
268
|
+
scrollFrom.scrollTo(0, pageHeight);
|
264
269
|
}
|
265
270
|
};
|
266
271
|
break;
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@flozy/editor",
|
3
|
-
"version": "3.2.
|
3
|
+
"version": "3.2.8",
|
4
4
|
"description": "An Editor for flozy app brain",
|
5
5
|
"files": [
|
6
6
|
"dist"
|
@@ -63,7 +63,7 @@
|
|
63
63
|
"storybook": "storybook dev -p 6006",
|
64
64
|
"build-storybook": "storybook build",
|
65
65
|
"publish:npm": "rm -rf dist && mkdir dist && babel src/components -d dist --copy-files",
|
66
|
-
"publish:local": "rm -rf /Users/
|
66
|
+
"publish:local": "rm -rf /Users/agmac23/Desktop/surya/sweetpsocial-2.0/client/node_modules/@flozy/editor/dist && babel src/components -d /Users/agmac23/Desktop/surya/sweetpsocial-2.0/client/node_modules/@flozy/editor/dist --copy-files"
|
67
67
|
},
|
68
68
|
"eslintConfig": {
|
69
69
|
"extends": [
|