@flozy/editor 7.0.9 → 8.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Editor/ChatEditor.js +7 -7
- package/dist/Editor/CommonEditor.js +106 -33
- package/dist/Editor/DialogWrapper.js +31 -25
- package/dist/Editor/Editor.css +32 -16
- package/dist/Editor/Elements/AppHeader/AppHeader.js +3 -3
- package/dist/Editor/Elements/Button/EditorButton.js +25 -9
- package/dist/Editor/Elements/Color Picker/ColorButtons.js +57 -12
- package/dist/Editor/Elements/Color Picker/ColorPicker.css +25 -1
- package/dist/Editor/Elements/Color Picker/ColorPicker.js +4 -4
- package/dist/Editor/Elements/Color Picker/Styles.js +1 -1
- package/dist/Editor/Elements/DataView/Layouts/TableStyles.js +15 -0
- package/dist/Editor/Elements/DataView/Layouts/TableView.js +111 -29
- package/dist/Editor/Elements/DataView/Providers/DataViewProvider.js +1 -1
- package/dist/Editor/Elements/DataView/styles.js +8 -8
- package/dist/Editor/Elements/Embed/Image.js +2 -2
- package/dist/Editor/Elements/FreeGrid/FreeGrid.js +0 -14
- package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +2 -1
- package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +2 -1
- package/dist/Editor/Elements/FreeGrid/styles.js +3 -0
- package/dist/Editor/Elements/Grid/GridItem.js +2 -3
- package/dist/Editor/Elements/Link/Link.js +70 -43
- package/dist/Editor/Elements/SimpleText/index.js +7 -12
- package/dist/Editor/Elements/SimpleText/style.js +2 -2
- package/dist/Editor/Elements/Table/Table.js +12 -12
- package/dist/Editor/Elements/Title/title.js +13 -1
- package/dist/Editor/Elements/Variables/Style.js +28 -2
- package/dist/Editor/Elements/Variables/VariableButton.js +17 -4
- package/dist/Editor/Styles/EditorStyles.js +287 -291
- package/dist/Editor/Toolbar/FormatTools/Dropdown.js +27 -3
- package/dist/Editor/Toolbar/FormatTools/FontFamilyAutocomplete.js +4 -3
- package/dist/Editor/Toolbar/FormatTools/MarkButton.js +2 -2
- package/dist/Editor/Toolbar/FormatTools/TextSize.js +7 -15
- package/dist/Editor/Toolbar/PopupTool/AddTemplates.js +9 -8
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +6 -13
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +210 -85
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +2 -1
- package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +16 -12
- package/dist/Editor/Toolbar/PopupTool/TextFormat.js +56 -9
- package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +438 -0
- package/dist/Editor/Toolbar/PopupTool/index.js +31 -38
- package/dist/Editor/Toolbar/toolbarGroups.js +48 -6
- package/dist/Editor/assets/svg/ThemeIcons.js +291 -0
- package/dist/Editor/common/ColorPickerButton.js +35 -9
- package/dist/Editor/common/CustomColorPicker/index.js +106 -0
- package/dist/Editor/common/CustomColorPicker/style.js +53 -0
- package/dist/Editor/common/CustomDialog/index.js +90 -0
- package/dist/Editor/common/CustomDialog/style.js +67 -0
- package/dist/Editor/common/CustomDialog/styles.js +80 -0
- package/dist/Editor/common/CustomSelect.js +33 -0
- package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
- package/dist/Editor/common/DnD/Draggable.js +0 -1
- package/dist/Editor/common/FontLoader/FontList.js +3 -11
- package/dist/Editor/common/FontLoader/FontLoader.js +74 -42
- package/dist/Editor/common/Icon.js +28 -0
- package/dist/Editor/common/ImageSelector/Options/Upload.js +1 -1
- package/dist/Editor/common/ImageSelector/Styles.js +3 -9
- package/dist/Editor/common/ImageSelector/UploadStyles.js +1 -2
- package/dist/Editor/common/MentionsPopup/Styles.js +6 -12
- package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Settings.js +2 -1
- package/dist/Editor/common/RnD/ElementSettings/Settings/AppHeaderSettings.js +3 -2
- package/dist/Editor/common/RnD/ElementSettings/Settings/BoxSettings.js +3 -2
- package/dist/Editor/common/RnD/ElementSettings/Settings/ButtonSettings.js +3 -2
- package/dist/Editor/common/RnD/ElementSettings/Settings/CodeSettings.js +3 -2
- package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +4 -2
- package/dist/Editor/common/RnD/ElementSettings/Settings/ImageSettings.js +3 -2
- package/dist/Editor/common/RnD/ElementSettings/Settings/TableSettings.js +3 -2
- package/dist/Editor/common/RnD/ElementSettings/Settings/VideoSettings.js +3 -2
- package/dist/Editor/common/RnD/ElementSettings/styles.js +0 -1
- package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +8 -2
- package/dist/Editor/common/RnD/Theme/MainThemeProvider.js +17 -0
- package/dist/Editor/common/RnD/Theme/ViewportStimulator.js +6 -3
- package/dist/Editor/common/RnD/Utils/gridDropItem.js +5 -4
- package/dist/Editor/common/RnD/Utils/index.js +45 -0
- package/dist/Editor/common/RnD/index.js +23 -3
- package/dist/Editor/common/Section/index.js +60 -89
- package/dist/Editor/common/Shorthands/elements.js +54 -0
- package/dist/Editor/common/StyleBuilder/buttonStyle.js +4 -2
- package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +5 -0
- package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +12 -2
- package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +15 -7
- package/dist/Editor/common/StyleBuilder/fieldTypes/card.js +10 -2
- package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +35 -11
- package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +13 -4
- package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +15 -7
- package/dist/Editor/common/Uploader.js +8 -0
- package/dist/Editor/commonStyle.js +55 -65
- package/dist/Editor/helper/deserialize/index.js +1 -1
- package/dist/Editor/helper/index.js +2 -2
- package/dist/Editor/helper/theme.js +200 -2
- package/dist/Editor/hooks/useEditorScroll.js +1 -1
- package/dist/Editor/hooks/useEditorTheme.js +153 -0
- package/dist/Editor/hooks/useMouseMove.js +9 -3
- package/dist/Editor/plugins/withEmbeds.js +1 -1
- package/dist/Editor/plugins/withHTML.js +5 -9
- package/dist/Editor/plugins/withLayout.js +1 -1
- package/dist/Editor/plugins/withTable.js +1 -1
- package/dist/Editor/theme/ThemeList.js +50 -173
- package/dist/Editor/theme/index.js +144 -0
- package/dist/Editor/themeSettings/ActiveTheme.js +72 -0
- package/dist/Editor/themeSettings/buttons/index.js +283 -0
- package/dist/Editor/themeSettings/buttons/style.js +21 -0
- package/dist/Editor/themeSettings/colorTheme/index.js +292 -0
- package/dist/Editor/themeSettings/colorTheme/style.js +77 -0
- package/dist/Editor/themeSettings/fonts/PreviewElement.js +121 -0
- package/dist/Editor/themeSettings/fonts/index.js +220 -0
- package/dist/Editor/themeSettings/fonts/style.js +44 -0
- package/dist/Editor/themeSettings/icons.js +60 -0
- package/dist/Editor/themeSettings/index.js +320 -0
- package/dist/Editor/themeSettings/style.js +152 -0
- package/dist/Editor/themeSettingsAI/icons.js +96 -0
- package/dist/Editor/themeSettingsAI/index.js +356 -0
- package/dist/Editor/themeSettingsAI/saveTheme.js +197 -0
- package/dist/Editor/themeSettingsAI/style.js +250 -0
- package/dist/Editor/utils/SlateUtilityFunctions.js +157 -49
- package/dist/Editor/utils/button.js +0 -14
- package/dist/Editor/utils/draftToSlate.js +3 -2
- package/dist/Editor/utils/font.js +40 -37
- package/dist/Editor/utils/helper.js +59 -19
- package/dist/Editor/utils/link.js +1 -1
- package/package.json +5 -2
@@ -8,7 +8,8 @@ const ButtonSettings = props => {
|
|
8
8
|
const {
|
9
9
|
editor,
|
10
10
|
path,
|
11
|
-
customProps
|
11
|
+
customProps,
|
12
|
+
onClose
|
12
13
|
} = props;
|
13
14
|
const item_path = path?.split("|").map(m => parseInt(m));
|
14
15
|
const element_path = [...item_path, 0];
|
@@ -28,7 +29,7 @@ const ButtonSettings = props => {
|
|
28
29
|
});
|
29
30
|
};
|
30
31
|
const handleClose = () => {
|
31
|
-
|
32
|
+
onClose();
|
32
33
|
};
|
33
34
|
return /*#__PURE__*/_jsx(Box, {
|
34
35
|
component: "div",
|
@@ -8,7 +8,8 @@ const CodeSettings = props => {
|
|
8
8
|
const {
|
9
9
|
editor,
|
10
10
|
path,
|
11
|
-
customProps
|
11
|
+
customProps,
|
12
|
+
onClose
|
12
13
|
} = props;
|
13
14
|
const item_path = path?.split("|").map(m => parseInt(m));
|
14
15
|
const element_path = [...item_path, 0];
|
@@ -27,7 +28,7 @@ const CodeSettings = props => {
|
|
27
28
|
});
|
28
29
|
};
|
29
30
|
const handleClose = () => {
|
30
|
-
|
31
|
+
onClose();
|
31
32
|
};
|
32
33
|
return /*#__PURE__*/_jsx(Box, {
|
33
34
|
component: "div",
|
@@ -12,7 +12,8 @@ const FormSettings = props => {
|
|
12
12
|
const {
|
13
13
|
editor,
|
14
14
|
path,
|
15
|
-
customProps
|
15
|
+
customProps,
|
16
|
+
onClose
|
16
17
|
} = props;
|
17
18
|
const item_path = path?.split("|").map(m => parseInt(m));
|
18
19
|
const element_path = [...item_path];
|
@@ -55,13 +56,14 @@ const FormSettings = props => {
|
|
55
56
|
}
|
56
57
|
};
|
57
58
|
const handleClose = () => {
|
58
|
-
|
59
|
+
onClose();
|
59
60
|
};
|
60
61
|
const muiTheme = createTheme({
|
61
62
|
components: {
|
62
63
|
MuiAccordion: {
|
63
64
|
styleOverrides: {
|
64
65
|
root: {
|
66
|
+
background: theme?.palette?.editor?.miniToolBarBackground,
|
65
67
|
"& .MuiAccordionSummary-root": {
|
66
68
|
flexDirection: "row-reverse",
|
67
69
|
"& .MuiSvgIcon-root": {
|
@@ -8,7 +8,8 @@ const ImageSettings = props => {
|
|
8
8
|
const {
|
9
9
|
editor,
|
10
10
|
path,
|
11
|
-
customProps
|
11
|
+
customProps,
|
12
|
+
onClose
|
12
13
|
} = props;
|
13
14
|
const item_path = path?.split("|").map(m => parseInt(m));
|
14
15
|
const element_path = [...item_path, 0];
|
@@ -27,7 +28,7 @@ const ImageSettings = props => {
|
|
27
28
|
});
|
28
29
|
};
|
29
30
|
const handleClose = () => {
|
30
|
-
|
31
|
+
onClose();
|
31
32
|
};
|
32
33
|
return /*#__PURE__*/_jsx(Box, {
|
33
34
|
component: "div",
|
@@ -9,7 +9,8 @@ const TableSettings = props => {
|
|
9
9
|
const {
|
10
10
|
editor,
|
11
11
|
path,
|
12
|
-
customProps
|
12
|
+
customProps,
|
13
|
+
onClose
|
13
14
|
} = props;
|
14
15
|
const item_path = path?.split("|").map(m => parseInt(m));
|
15
16
|
const element_path = [...item_path, 0];
|
@@ -57,7 +58,7 @@ const TableSettings = props => {
|
|
57
58
|
}
|
58
59
|
};
|
59
60
|
const handleClose = () => {
|
60
|
-
|
61
|
+
onClose();
|
61
62
|
};
|
62
63
|
return /*#__PURE__*/_jsx(Box, {
|
63
64
|
component: "div",
|
@@ -8,7 +8,8 @@ const VideoSettings = props => {
|
|
8
8
|
const {
|
9
9
|
editor,
|
10
10
|
path,
|
11
|
-
customProps
|
11
|
+
customProps,
|
12
|
+
onClose
|
12
13
|
} = props;
|
13
14
|
const item_path = path?.split("|").map(m => parseInt(m));
|
14
15
|
const element_path = [...item_path, 0];
|
@@ -28,7 +29,7 @@ const VideoSettings = props => {
|
|
28
29
|
});
|
29
30
|
};
|
30
31
|
const handleClose = () => {
|
31
|
-
|
32
|
+
onClose();
|
32
33
|
};
|
33
34
|
return /*#__PURE__*/_jsx(Box, {
|
34
35
|
component: "div",
|
@@ -59,7 +59,6 @@ const useElementSettingsStyle = theme => ({
|
|
59
59
|
overflowX: "hidden",
|
60
60
|
overflowY: "auto",
|
61
61
|
background: theme?.palette?.editor?.background,
|
62
|
-
paddingLeft: "4px",
|
63
62
|
"& .MuiTypography-root, .MuiInputBase-root, input": {
|
64
63
|
color: theme?.palette?.editor?.textColor
|
65
64
|
},
|
@@ -9,17 +9,23 @@ import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
9
|
const SwitchViewport = props => {
|
10
10
|
const {
|
11
11
|
breakpoint,
|
12
|
-
onChange
|
12
|
+
onChange,
|
13
|
+
show
|
13
14
|
} = props;
|
14
15
|
const classes = useSwitchViewport();
|
15
16
|
const {
|
17
|
+
setSelectedElement,
|
16
18
|
setActiveBreakPoint
|
17
19
|
} = useEditorContext();
|
18
20
|
useEffect(() => {
|
19
|
-
|
21
|
+
// to reset selection on viewport changes - FS-6589
|
22
|
+
setSelectedElement({});
|
20
23
|
}, [breakpoint]);
|
21
24
|
return /*#__PURE__*/_jsxs(Box, {
|
22
25
|
sx: classes.root,
|
26
|
+
style: {
|
27
|
+
display: show ? "block" : "none"
|
28
|
+
},
|
23
29
|
children: [/*#__PURE__*/_jsx(Tooltip, {
|
24
30
|
title: "Desktop View",
|
25
31
|
children: /*#__PURE__*/_jsx(IconButton, {
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import { Experimental_CssVarsProvider as CssVarsProvider, experimental_extendTheme as extendTheme } from "@mui/material/styles";
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
3
|
+
function MainThemeProvider({
|
4
|
+
children,
|
5
|
+
userSelectedTheme,
|
6
|
+
theme = {}
|
7
|
+
}) {
|
8
|
+
const themeVars = extendTheme(userSelectedTheme?.theme?.cssVars || {});
|
9
|
+
return /*#__PURE__*/_jsx(CssVarsProvider, {
|
10
|
+
theme: {
|
11
|
+
...themeVars,
|
12
|
+
...theme
|
13
|
+
},
|
14
|
+
children: children
|
15
|
+
});
|
16
|
+
}
|
17
|
+
export default MainThemeProvider;
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import React from "react";
|
2
|
-
import { useTheme,
|
2
|
+
import { useTheme, createTheme } from "@mui/material";
|
3
3
|
import { isStimulator, STIMULATOR_MOCK } from "../../../hooks/useBreakpoints";
|
4
|
+
import MainThemeProvider from "./MainThemeProvider";
|
4
5
|
|
5
6
|
// Custom breakpoints functions
|
6
7
|
import { jsx as _jsx } from "react/jsx-runtime";
|
@@ -51,12 +52,14 @@ const extendedTheme = prevTheme => createTheme({
|
|
51
52
|
}
|
52
53
|
});
|
53
54
|
const ViewportStimulator = ({
|
54
|
-
children
|
55
|
+
children,
|
56
|
+
selectedTheme
|
55
57
|
}) => {
|
56
58
|
const theme = useTheme();
|
57
59
|
const viewportTheme = extendedTheme(theme);
|
58
|
-
return /*#__PURE__*/_jsx(
|
60
|
+
return /*#__PURE__*/_jsx(MainThemeProvider, {
|
59
61
|
theme: viewportTheme,
|
62
|
+
userSelectedTheme: selectedTheme,
|
60
63
|
children: children
|
61
64
|
});
|
62
65
|
};
|
@@ -2,10 +2,11 @@ import { Transforms, Node, Path } from "slate";
|
|
2
2
|
import { ReactEditor } from "slate-react";
|
3
3
|
import { handleNegativeInteger } from "../../../utils/helper";
|
4
4
|
export const ROW_HEIGHT = 50;
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
5
|
+
|
6
|
+
// const MARGIN_OF = {
|
7
|
+
// xs: 160,
|
8
|
+
// lg: 490,
|
9
|
+
// };
|
9
10
|
|
10
11
|
/**
|
11
12
|
* This method will update the grid template rows of parent section based on height
|
@@ -1,6 +1,9 @@
|
|
1
1
|
import { Transforms, Node } from "slate";
|
2
2
|
import { ReactEditor } from "slate-react";
|
3
3
|
import { getNearestItem } from "./calculateDropItem";
|
4
|
+
import { ROW_HEIGHT, getBorderWidth } from "./gridDropItem";
|
5
|
+
import { handleNegativeInteger } from "../../../utils/helper";
|
6
|
+
import { getDevice } from "../../../helper/theme";
|
4
7
|
const GUIDE_LINE_THRESHOLD = 5;
|
5
8
|
const GUIDE_LINE_OVERLAP_THRESHOLD = 5;
|
6
9
|
const handleMoveNode = (editor, path, newPath, {
|
@@ -248,4 +251,46 @@ export function getParentSectionPath(props, closestClass) {
|
|
248
251
|
} catch (err) {
|
249
252
|
console.log(err);
|
250
253
|
}
|
254
|
+
}
|
255
|
+
export function getAbsolutePositionX(currentEle) {
|
256
|
+
const isMobile = getDevice(window.innerWidth) === "xs";
|
257
|
+
const {
|
258
|
+
left: currElementLeft
|
259
|
+
} = currentEle?.getBoundingClientRect() || {};
|
260
|
+
let parentBoxDom = currentEle?.closest(".fgi_type_box");
|
261
|
+
if (isMobile && !parentBoxDom) {
|
262
|
+
parentBoxDom = currentEle?.closest(".freegrid-section");
|
263
|
+
}
|
264
|
+
const relativeElementX = parentBoxDom || document.querySelector(".rnd-guideline-lv");
|
265
|
+
const {
|
266
|
+
left
|
267
|
+
} = relativeElementX?.getBoundingClientRect() || {};
|
268
|
+
const borderLeftWidth = getBorderWidth(relativeElementX, "borderLeftWidth");
|
269
|
+
const absolutePositionX = parseInt(currElementLeft - left - borderLeftWidth);
|
270
|
+
return {
|
271
|
+
absolutePositionX
|
272
|
+
};
|
273
|
+
}
|
274
|
+
export function getAbsolutePositionY(currentEle) {
|
275
|
+
const {
|
276
|
+
top: currElementTop
|
277
|
+
} = currentEle?.getBoundingClientRect() || {};
|
278
|
+
const relativeElementY = currentEle?.closest(".freegrid-container-parent");
|
279
|
+
const borderTopWidth = getBorderWidth(relativeElementY, "borderTopWidth");
|
280
|
+
const rect = relativeElementY.getBoundingClientRect();
|
281
|
+
const absolutePositionY = handleNegativeInteger(currElementTop - rect.top - borderTopWidth);
|
282
|
+
|
283
|
+
// Calculate grid position
|
284
|
+
const row = Math.floor(absolutePositionY / ROW_HEIGHT) + 1;
|
285
|
+
|
286
|
+
// Update grid area
|
287
|
+
const gridArea = `${row} / 1 / ${row + 1} / 2`;
|
288
|
+
|
289
|
+
// to calculate difference inside the grid
|
290
|
+
const marginTop = Math.abs((row - 1) * ROW_HEIGHT - absolutePositionY);
|
291
|
+
return {
|
292
|
+
absolutePositionY,
|
293
|
+
gridArea,
|
294
|
+
marginTop
|
295
|
+
};
|
251
296
|
}
|
@@ -6,7 +6,7 @@ import Handles from "./TransformHandles";
|
|
6
6
|
import { useEditorContext } from "../../hooks/useMouseMove";
|
7
7
|
import ElementOptions from "./ElementOptions";
|
8
8
|
import ElementSettings from "./ElementSettings";
|
9
|
-
import { getClosestDraggable, getParentSectionPath } from "./Utils";
|
9
|
+
import { getAbsolutePositionX, getAbsolutePositionY, getClosestDraggable, getParentSectionPath } from "./Utils";
|
10
10
|
import DragInfo from "./DragInfo";
|
11
11
|
import GuideLines from "./GuideLines";
|
12
12
|
import ShadowElement from "./ShadowElement";
|
@@ -425,9 +425,26 @@ const RnD = props => {
|
|
425
425
|
};
|
426
426
|
const onResizeStop = (e, direction, ref, d, position) => {
|
427
427
|
e.preventDefault();
|
428
|
+
let updatedPosition = {};
|
429
|
+
if (type !== "parent") {
|
430
|
+
// update element position while resizing, (for free grid box and item)
|
431
|
+
const {
|
432
|
+
absolutePositionX
|
433
|
+
} = getAbsolutePositionX(ref);
|
434
|
+
const {
|
435
|
+
gridArea,
|
436
|
+
marginTop
|
437
|
+
} = getAbsolutePositionY(ref);
|
438
|
+
updatedPosition = {
|
439
|
+
left: absolutePositionX,
|
440
|
+
gridArea: gridArea,
|
441
|
+
marginTop: marginTop
|
442
|
+
};
|
443
|
+
}
|
428
444
|
const updatedSize = {
|
429
445
|
width: delta?.width + d.width,
|
430
|
-
height: delta?.height + d.height
|
446
|
+
height: delta?.height + d.height,
|
447
|
+
...updatedPosition
|
431
448
|
};
|
432
449
|
onChange({
|
433
450
|
...updatedSize
|
@@ -505,7 +522,10 @@ const RnD = props => {
|
|
505
522
|
ref: c => {
|
506
523
|
positionRef.current = c;
|
507
524
|
},
|
508
|
-
className: `${className || ""} ${dragInfoOpen ? "active-drag" : "inactive-drag"} enable-${enable} type_${childType} section_type_${type || "parent"}
|
525
|
+
className: `${className || ""} ${dragInfoOpen ? "active-drag" : "inactive-drag"} enable-${enable} type_${childType} section_type_${type || "parent"} ${Object.keys(absPosition)?.length ? "" : "remove-resize-styles"
|
526
|
+
// Fix rerender issue (remove-resize-styles): After resizing, click close button on a free grid-selected element
|
527
|
+
// doesn't remove the default `transform` style from react-rnd. Removing it manually.
|
528
|
+
}`,
|
509
529
|
"data-path": str_path,
|
510
530
|
style: {
|
511
531
|
position: "relative",
|
@@ -2,36 +2,34 @@ import React, { useRef, useState } from "react";
|
|
2
2
|
import { useTheme } from "@mui/material";
|
3
3
|
import { Transforms } from "slate";
|
4
4
|
import { ReactEditor, useSlateStatic } from "slate-react";
|
5
|
-
import { Box, IconButton,
|
5
|
+
import { Box, IconButton, Tooltip } from "@mui/material";
|
6
6
|
import SectionPopup from "../../Elements/Grid/SectionPopup";
|
7
7
|
import { getBreakPointsValue, getTRBLBreakPoints, groupByBreakpoint } from "../../helper/theme";
|
8
|
-
import DragHandle from "../DnD/DragHandleButton";
|
9
|
-
import { useEditorSelection } from "../../hooks/useMouseMove";
|
8
|
+
// import DragHandle from "../DnD/DragHandleButton";
|
9
|
+
// import { useEditorSelection } from "../../hooks/useMouseMove";
|
10
10
|
import SectionStyle from "./styles";
|
11
11
|
import useWindowResize from "../../hooks/useWindowResize";
|
12
12
|
import { SectionSettingIcon } from "../iconListV2";
|
13
|
+
|
14
|
+
// const list_types = ["orderedList", "unorderedList"];
|
13
15
|
import { jsx as _jsx } from "react/jsx-runtime";
|
14
16
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
15
|
-
import { Fragment as _Fragment } from "react/jsx-runtime";
|
16
17
|
const Toolbar = ({
|
17
|
-
fromPopper,
|
18
18
|
readOnly,
|
19
19
|
showTool,
|
20
|
-
onSettings
|
20
|
+
onSettings,
|
21
|
+
isSectionFullWidth
|
21
22
|
}) => {
|
22
23
|
return !readOnly && !showTool ? /*#__PURE__*/_jsx(Box, {
|
23
24
|
component: "div",
|
24
25
|
className: `element-toolbar no-border-button hr section-tw sectionIcon`,
|
25
26
|
contentEditable: false,
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
} : {
|
33
|
-
left: "-28px",
|
34
|
-
top: "1px"
|
27
|
+
sx: {
|
28
|
+
left: isSectionFullWidth ? "0px" : "-28px",
|
29
|
+
top: isSectionFullWidth ? "-28px" : "1px",
|
30
|
+
"&:hover": {
|
31
|
+
backgroundColor: "rgba(0,0,0,0.5)"
|
32
|
+
}
|
35
33
|
},
|
36
34
|
children: /*#__PURE__*/_jsx(Tooltip, {
|
37
35
|
title: "Section Settings",
|
@@ -42,7 +40,6 @@ const Toolbar = ({
|
|
42
40
|
})
|
43
41
|
}) : null;
|
44
42
|
};
|
45
|
-
const list_types = ["orderedList", "unorderedList"];
|
46
43
|
const Section = props => {
|
47
44
|
const themeReact = useTheme();
|
48
45
|
const theme = props?.theme;
|
@@ -56,7 +53,8 @@ const Section = props => {
|
|
56
53
|
readOnly
|
57
54
|
} = customProps;
|
58
55
|
const editor = useSlateStatic();
|
59
|
-
const [
|
56
|
+
// const [isHovering, setIsHovering] = useState(false);
|
57
|
+
const [size] = useWindowResize();
|
60
58
|
const [openSetttings, setOpenSettings] = useState(false);
|
61
59
|
const {
|
62
60
|
sectionBgColor,
|
@@ -73,41 +71,11 @@ const Section = props => {
|
|
73
71
|
} = sectionAlignment || {};
|
74
72
|
const path = ReactEditor.findPath(editor, element);
|
75
73
|
const anchorEl = useRef(null);
|
76
|
-
const popperEl = useRef(null);
|
77
|
-
const [
|
74
|
+
// const popperEl = useRef(null);
|
75
|
+
// const [showTool] = useEditorSelection(editor);
|
78
76
|
const isSectionFullWidth = sectionGridSize && sectionGridSize[size?.device] >= 12;
|
79
|
-
const [
|
80
|
-
const
|
81
|
-
setIsHovering(true);
|
82
|
-
};
|
83
|
-
const onMouseLeave = () => {
|
84
|
-
setIsHovering(false);
|
85
|
-
};
|
86
|
-
const onSettings = () => {
|
87
|
-
setOpenSettings(true);
|
88
|
-
};
|
89
|
-
const onSave = data => {
|
90
|
-
const updateData = {
|
91
|
-
...data
|
92
|
-
};
|
93
|
-
delete updateData.children;
|
94
|
-
Transforms.setNodes(editor, {
|
95
|
-
...updateData
|
96
|
-
}, {
|
97
|
-
at: path
|
98
|
-
});
|
99
|
-
onClose();
|
100
|
-
};
|
101
|
-
const onClose = () => {
|
102
|
-
setOpenSettings(false);
|
103
|
-
};
|
104
|
-
const onDelete = () => {
|
105
|
-
Transforms.removeNodes(editor, {
|
106
|
-
at: path
|
107
|
-
});
|
108
|
-
};
|
109
|
-
const isFreeGrid = element?.children?.find(f => f.type === "freegrid");
|
110
|
-
const needHover = element?.children?.find(f => f.type === "grid" && !list_types.includes(element.type)) ? "" : "";
|
77
|
+
const isFreeGrid = element?.children[0]?.type === "freegrid";
|
78
|
+
const needHover = false;
|
111
79
|
let tempProps = {};
|
112
80
|
if (element?.type === "temp") {
|
113
81
|
tempProps = {
|
@@ -131,6 +99,38 @@ const Section = props => {
|
|
131
99
|
...getBreakPointsValue(sectionGridSize || 8, null, "overrideGridSize", true)
|
132
100
|
}
|
133
101
|
}, themeReact);
|
102
|
+
|
103
|
+
// const onMouseEnter = () => {
|
104
|
+
// setIsHovering(true);
|
105
|
+
// };
|
106
|
+
|
107
|
+
// const onMouseLeave = () => {
|
108
|
+
// setIsHovering(false);
|
109
|
+
// };
|
110
|
+
|
111
|
+
const onSettings = () => {
|
112
|
+
setOpenSettings(true);
|
113
|
+
};
|
114
|
+
const onSave = data => {
|
115
|
+
const updateData = {
|
116
|
+
...data
|
117
|
+
};
|
118
|
+
delete updateData.children;
|
119
|
+
Transforms.setNodes(editor, {
|
120
|
+
...updateData
|
121
|
+
}, {
|
122
|
+
at: path
|
123
|
+
});
|
124
|
+
onClose();
|
125
|
+
};
|
126
|
+
const onClose = () => {
|
127
|
+
setOpenSettings(false);
|
128
|
+
};
|
129
|
+
const onDelete = () => {
|
130
|
+
Transforms.removeNodes(editor, {
|
131
|
+
at: path
|
132
|
+
});
|
133
|
+
};
|
134
134
|
return path.length === 1 && !isFreeGrid ? /*#__PURE__*/_jsxs(Box, {
|
135
135
|
component: "div",
|
136
136
|
className: `ed-section-wrapper ${readOnly ? "" : "hselect"} ${needHover} is-${element?.type}`,
|
@@ -145,9 +145,10 @@ const Section = props => {
|
|
145
145
|
flexDirection: flexDirection || "column",
|
146
146
|
alignItems: horizantal,
|
147
147
|
justifyContent: vertical
|
148
|
-
}
|
149
|
-
|
150
|
-
|
148
|
+
}
|
149
|
+
// onMouseEnter={onMouseEnter}
|
150
|
+
// onMouseLeave={onMouseLeave}
|
151
|
+
,
|
151
152
|
children: [/*#__PURE__*/_jsxs(Box, {
|
152
153
|
className: "ed-section-inner",
|
153
154
|
sx: {
|
@@ -155,41 +156,11 @@ const Section = props => {
|
|
155
156
|
...edInnerSp
|
156
157
|
},
|
157
158
|
ref: anchorEl,
|
158
|
-
children: [
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
zIndex: 9999
|
164
|
-
},
|
165
|
-
disablePortal: true,
|
166
|
-
ref: popperEl,
|
167
|
-
className: "sectionPopper",
|
168
|
-
children: /*#__PURE__*/_jsxs(Box, {
|
169
|
-
sx: {
|
170
|
-
bgcolor: "background.paper",
|
171
|
-
height: "30px",
|
172
|
-
position: "relative",
|
173
|
-
background: theme?.palette?.type === "dark" ? theme?.palette?.editor?.miniToolBarBackground : "#F6F6F6"
|
174
|
-
},
|
175
|
-
children: [!readOnly && !showTool ? /*#__PURE__*/_jsx(DragHandle, {
|
176
|
-
...props,
|
177
|
-
fromPopper: true
|
178
|
-
}) : null, /*#__PURE__*/_jsx(Toolbar, {
|
179
|
-
fromPopper: true,
|
180
|
-
readOnly: readOnly,
|
181
|
-
showTool: showTool,
|
182
|
-
onSettings: onSettings
|
183
|
-
})]
|
184
|
-
})
|
185
|
-
}) : /*#__PURE__*/_jsxs(_Fragment, {
|
186
|
-
children: [!readOnly && !showTool ? /*#__PURE__*/_jsx(DragHandle, {
|
187
|
-
...props
|
188
|
-
}) : null, /*#__PURE__*/_jsx(Toolbar, {
|
189
|
-
readOnly: readOnly,
|
190
|
-
showTool: showTool,
|
191
|
-
onSettings: onSettings
|
192
|
-
})]
|
159
|
+
children: [/*#__PURE__*/_jsx(Toolbar, {
|
160
|
+
isSectionFullWidth: isSectionFullWidth,
|
161
|
+
readOnly: readOnly,
|
162
|
+
showTool: false,
|
163
|
+
onSettings: onSettings
|
193
164
|
}), children]
|
194
165
|
}), openSetttings ? /*#__PURE__*/_jsx(SectionPopup, {
|
195
166
|
element: {
|
@@ -43,6 +43,60 @@ const ELEMENTS_LIST = [{
|
|
43
43
|
icon: "headingThree"
|
44
44
|
}),
|
45
45
|
onInsert: editor => toggleBlock(editor, "headingThree", false)
|
46
|
+
}, {
|
47
|
+
name: "Heading 4",
|
48
|
+
desc: "",
|
49
|
+
group: "Text",
|
50
|
+
type: "headingFour",
|
51
|
+
icon: /*#__PURE__*/_jsx(Icon, {
|
52
|
+
icon: "headingFour"
|
53
|
+
}),
|
54
|
+
onInsert: editor => toggleBlock(editor, "headingFour", false)
|
55
|
+
}, {
|
56
|
+
name: "Heading 5",
|
57
|
+
desc: "",
|
58
|
+
group: "Text",
|
59
|
+
type: "headingFive",
|
60
|
+
icon: /*#__PURE__*/_jsx(Icon, {
|
61
|
+
icon: "headingFive"
|
62
|
+
}),
|
63
|
+
onInsert: editor => toggleBlock(editor, "headingFive", false)
|
64
|
+
}, {
|
65
|
+
name: "Heading 6",
|
66
|
+
desc: "",
|
67
|
+
group: "Text",
|
68
|
+
type: "headingSix",
|
69
|
+
icon: /*#__PURE__*/_jsx(Icon, {
|
70
|
+
icon: "headingSix"
|
71
|
+
}),
|
72
|
+
onInsert: editor => toggleBlock(editor, "headingSix", false)
|
73
|
+
}, {
|
74
|
+
name: "Paragraph 1",
|
75
|
+
desc: "",
|
76
|
+
group: "Text",
|
77
|
+
type: "paragraphOne",
|
78
|
+
icon: /*#__PURE__*/_jsx(Icon, {
|
79
|
+
icon: "paragraphOne"
|
80
|
+
}),
|
81
|
+
onInsert: editor => toggleBlock(editor, "paragraphOne", false)
|
82
|
+
}, {
|
83
|
+
name: "Paragraph 2",
|
84
|
+
desc: "",
|
85
|
+
group: "Text",
|
86
|
+
type: "paragraphTwo",
|
87
|
+
icon: /*#__PURE__*/_jsx(Icon, {
|
88
|
+
icon: "paragraphTwo"
|
89
|
+
}),
|
90
|
+
onInsert: editor => toggleBlock(editor, "paragraphTwo", false)
|
91
|
+
}, {
|
92
|
+
name: "Paragraph 3",
|
93
|
+
desc: "",
|
94
|
+
group: "Text",
|
95
|
+
type: "paragraphThree",
|
96
|
+
icon: /*#__PURE__*/_jsx(Icon, {
|
97
|
+
icon: "paragraphThree"
|
98
|
+
}),
|
99
|
+
onInsert: editor => toggleBlock(editor, "paragraphThree", false)
|
46
100
|
}, {
|
47
101
|
name: "Quote",
|
48
102
|
desc: "",
|
@@ -21,7 +21,8 @@ const buttonStyle = [{
|
|
21
21
|
},
|
22
22
|
children: option.text
|
23
23
|
});
|
24
|
-
}
|
24
|
+
},
|
25
|
+
themeEnabled: true
|
25
26
|
}, {
|
26
27
|
label: "Font Size",
|
27
28
|
key: "textSize",
|
@@ -45,7 +46,8 @@ const buttonStyle = [{
|
|
45
46
|
}, {
|
46
47
|
label: "Button Color",
|
47
48
|
key: "bgColor",
|
48
|
-
type: "color"
|
49
|
+
type: "color",
|
50
|
+
themeEnabled: true
|
49
51
|
}, {
|
50
52
|
label: "Border Color",
|
51
53
|
key: "borderColor",
|
@@ -73,6 +73,11 @@ const BackgroundImage = props => {
|
|
73
73
|
children: "REMOVE"
|
74
74
|
}) : /*#__PURE__*/_jsx(Grid, {
|
75
75
|
className: "uploadImageText",
|
76
|
+
sx: {
|
77
|
+
padding: 0,
|
78
|
+
background: `${theme?.palette?.editor?.inputFieldBgColor}`,
|
79
|
+
border: `1px solid ${theme?.palette?.editor?.inputFieldBorder}`
|
80
|
+
},
|
76
81
|
children: /*#__PURE__*/_jsxs(Button, {
|
77
82
|
component: "label",
|
78
83
|
variant: "text",
|
@@ -3,13 +3,13 @@ import { Checkbox, FormControlLabel, Grid, Slider, Typography, Box, IconButton }
|
|
3
3
|
import { squreStyle } from "./radiusStyle";
|
4
4
|
import { getBreakPointsValue } from "../../../helper/theme";
|
5
5
|
import useWindowResize from "../../../hooks/useWindowResize";
|
6
|
+
import { useEditorTheme } from "../../../hooks/useEditorTheme";
|
6
7
|
import { CheckedBoxCheckIcon } from "../../iconListV2";
|
7
8
|
import { jsx as _jsx } from "react/jsx-runtime";
|
8
9
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
9
10
|
const BANNER_SPACING_KEYS = ["top", "left", "right", "bottom"];
|
10
11
|
const BannerSpacing = props => {
|
11
12
|
const {
|
12
|
-
value: val,
|
13
13
|
data,
|
14
14
|
onChange,
|
15
15
|
elementProps,
|
@@ -19,7 +19,17 @@ const BannerSpacing = props => {
|
|
19
19
|
key
|
20
20
|
} = data;
|
21
21
|
const lockKeyVal = `lock${key}`;
|
22
|
-
|
22
|
+
const {
|
23
|
+
selectedTheme
|
24
|
+
} = useEditorTheme();
|
25
|
+
const {
|
26
|
+
bannerSpacing,
|
27
|
+
lockbannerSpacing
|
28
|
+
} = selectedTheme?.elementProps?.button || {};
|
29
|
+
const isUserValue = Object.keys(props?.value || {})?.length;
|
30
|
+
const isUserLockedSpacing = typeof elementProps[lockKeyVal] === "boolean";
|
31
|
+
const val = isUserValue ? props?.value : bannerSpacing;
|
32
|
+
let lockSpacing = isUserLockedSpacing ? elementProps[lockKeyVal] : lockbannerSpacing;
|
23
33
|
if (lockSpacing === undefined) {
|
24
34
|
lockSpacing = true;
|
25
35
|
}
|