@flozy/editor 9.8.4 → 9.8.5
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 +18 -18
- package/dist/Editor/CommonEditor.js +18 -118
- package/dist/Editor/DialogWrapper.js +25 -31
- package/dist/Editor/Editor.css +7 -11
- package/dist/Editor/Elements/AI/PopoverAIInput.js +3 -11
- package/dist/Editor/Elements/AppHeader/AppHeader.js +3 -3
- package/dist/Editor/Elements/Button/EditorButton.js +25 -37
- package/dist/Editor/Elements/Color Picker/ColorButtons.js +14 -60
- package/dist/Editor/Elements/Color Picker/ColorPicker.css +1 -25
- package/dist/Editor/Elements/Color Picker/ColorPicker.js +7 -10
- package/dist/Editor/Elements/Color Picker/Styles.js +13 -15
- package/dist/Editor/Elements/DataView/Layouts/ColumnView.js +2 -4
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/MultiSelectType.js +6 -21
- package/dist/Editor/Elements/DataView/Layouts/Options/AddOptions.js +1 -5
- package/dist/Editor/Elements/DataView/Layouts/Options/EditOption.js +2 -3
- package/dist/Editor/Elements/DataView/Layouts/Options/index.js +0 -11
- package/dist/Editor/Elements/DataView/Layouts/ViewData.js +4 -8
- package/dist/Editor/Elements/Embed/Image.js +2 -2
- package/dist/Editor/Elements/Embed/Video.js +1 -1
- package/dist/Editor/Elements/Form/Workflow/Styles.js +22 -24
- package/dist/Editor/Elements/FreeGrid/FreeGrid.js +21 -48
- package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +4 -25
- package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +3 -46
- package/dist/Editor/Elements/FreeGrid/Options/More.js +2 -7
- package/dist/Editor/Elements/FreeGrid/styles.js +0 -3
- package/dist/Editor/Elements/Grid/GridItem.js +1 -1
- package/dist/Editor/Elements/List/CheckList.js +1 -4
- package/dist/Editor/Elements/Search/SearchButton.js +1 -1
- package/dist/Editor/Elements/Search/SearchList.js +2 -3
- package/dist/Editor/Elements/Signature/SignatureOptions/DrawSignature.js +8 -2
- package/dist/Editor/Elements/SimpleText/index.js +1 -9
- package/dist/Editor/Elements/SimpleText/style.js +2 -2
- package/dist/Editor/Elements/Table/Table.js +3 -3
- package/dist/Editor/Elements/Title/title.js +8 -9
- package/dist/Editor/Elements/Variables/VariableButton.js +1 -10
- package/dist/Editor/MiniEditor.js +1 -2
- package/dist/Editor/Styles/EditorStyles.js +5 -5
- package/dist/Editor/Toolbar/FormatTools/Dropdown.js +3 -27
- package/dist/Editor/Toolbar/FormatTools/FontFamilyAutocomplete.js +3 -4
- package/dist/Editor/Toolbar/FormatTools/MarkButton.js +2 -2
- package/dist/Editor/Toolbar/FormatTools/TextSize.js +13 -10
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/MiniColorPicker.js +2 -4
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +13 -6
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +42 -167
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +4 -7
- package/dist/Editor/Toolbar/PopupTool/PopperHeader.js +1 -2
- package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +11 -71
- package/dist/Editor/Toolbar/PopupTool/TextFormat.js +23 -95
- package/dist/Editor/Toolbar/PopupTool/index.js +1 -1
- package/dist/Editor/Toolbar/toolbarGroups.js +6 -48
- package/dist/Editor/common/ColorPickerButton.js +14 -39
- package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
- package/dist/Editor/common/FontLoader/FontLoader.js +0 -3
- package/dist/Editor/common/Icon.js +1 -31
- package/dist/Editor/common/ImageSelector/Styles.js +9 -3
- package/dist/Editor/common/MUIIcon/index.js +3 -0
- package/dist/Editor/common/RnD/ContextMenu/CMenus.js +0 -24
- package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Settings.js +1 -2
- package/dist/Editor/common/RnD/ElementSettings/Settings/AppHeaderSettings.js +2 -3
- package/dist/Editor/common/RnD/ElementSettings/Settings/BoxSettings.js +2 -3
- package/dist/Editor/common/RnD/ElementSettings/Settings/ButtonSettings.js +2 -3
- package/dist/Editor/common/RnD/ElementSettings/Settings/CodeSettings.js +2 -3
- package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +2 -4
- package/dist/Editor/common/RnD/ElementSettings/Settings/ImageSettings.js +2 -3
- package/dist/Editor/common/RnD/ElementSettings/Settings/TableSettings.js +2 -3
- package/dist/Editor/common/RnD/ElementSettings/Settings/TextSettings.js +1 -3
- package/dist/Editor/common/RnD/ElementSettings/Settings/VideoSettings.js +2 -3
- package/dist/Editor/common/RnD/ShadowElement.js +1 -2
- package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +2 -8
- package/dist/Editor/common/RnD/Theme/ViewportStimulator.js +3 -6
- package/dist/Editor/common/RnD/Utils/gridDropItem.js +9 -73
- package/dist/Editor/common/RnD/Utils/index.js +0 -3
- package/dist/Editor/common/RnD/VirtualElement/index.js +103 -187
- package/dist/Editor/common/RnD/VirtualElement/styles.js +7 -155
- package/dist/Editor/common/RnD/VirtualElement/updateAutoProps.js +3 -5
- package/dist/Editor/common/RnD/index.js +10 -59
- package/dist/Editor/common/Shorthands/elements.js +0 -54
- package/dist/Editor/common/StyleBuilder/buttonStyle.js +2 -4
- package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +0 -5
- package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +2 -12
- package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +7 -15
- package/dist/Editor/common/StyleBuilder/fieldTypes/card.js +8 -16
- package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +10 -35
- package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +7 -16
- package/dist/Editor/common/StyleBuilder/fieldTypes/lineSpacing.js +6 -7
- package/dist/Editor/common/StyleBuilder/fieldTypes/metaDataMapping.js +3 -3
- package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +7 -15
- package/dist/Editor/common/StyleBuilder/pageSettingsStyle.js +7 -5
- package/dist/Editor/common/SwipeableDrawer/index.js +1 -1
- package/dist/Editor/common/Uploader.js +0 -8
- package/dist/Editor/commonStyle.js +57 -68
- package/dist/Editor/helper/theme.js +2 -202
- package/dist/Editor/hooks/useMouseMove.js +3 -9
- package/dist/Editor/plugins/withEmbeds.js +1 -1
- package/dist/Editor/plugins/withHTML.js +9 -11
- package/dist/Editor/plugins/withTable.js +1 -1
- package/dist/Editor/theme/ThemeList.js +173 -50
- package/dist/Editor/utils/SlateUtilityFunctions.js +45 -171
- package/dist/Editor/utils/draftToSlate.js +2 -3
- package/dist/Editor/utils/font.js +37 -40
- package/dist/Editor/utils/freegrid.js +2 -2
- package/dist/Editor/utils/helper.js +19 -90
- package/package.json +4 -4
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/MultiSelect.js +0 -448
- package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +0 -436
- package/dist/Editor/assets/svg/ClearAllRounded.js +0 -31
- package/dist/Editor/assets/svg/ResetIconNew.js +0 -23
- package/dist/Editor/assets/svg/ThemeIcons.js +0 -291
- package/dist/Editor/common/CustomColorPicker/index.js +0 -131
- package/dist/Editor/common/CustomColorPicker/style.js +0 -53
- package/dist/Editor/common/CustomDialog2/index.js +0 -94
- package/dist/Editor/common/CustomDialog2/style.js +0 -67
- package/dist/Editor/common/CustomSelect.js +0 -43
- package/dist/Editor/common/RnD/Theme/MainThemeProvider.js +0 -17
- package/dist/Editor/common/RnD/VirtualElement/BoxHeaderAutoAlignment.js +0 -43
- package/dist/Editor/common/RnD/VirtualElement/ForceAutoAlignment.js +0 -44
- package/dist/Editor/common/RnD/VirtualElement/VirtualTextElement.js +0 -134
- package/dist/Editor/common/RnD/VirtualElement/helper.js +0 -382
- package/dist/Editor/common/SnackBar/index.js +0 -43
- package/dist/Editor/helper/textIndeces.js +0 -58
- package/dist/Editor/hooks/useAutoScroll.js +0 -38
- package/dist/Editor/hooks/useEditorTheme.js +0 -153
- package/dist/Editor/hooks/useThemeValues.js +0 -63
- package/dist/Editor/theme/index.js +0 -149
- package/dist/Editor/themeSettings/ActiveTheme.js +0 -72
- package/dist/Editor/themeSettings/buttons/index.js +0 -290
- package/dist/Editor/themeSettings/buttons/style.js +0 -23
- package/dist/Editor/themeSettings/colorTheme/index.js +0 -310
- package/dist/Editor/themeSettings/colorTheme/style.js +0 -81
- package/dist/Editor/themeSettings/fonts/PreviewElement.js +0 -121
- package/dist/Editor/themeSettings/fonts/index.js +0 -240
- package/dist/Editor/themeSettings/fonts/style.js +0 -61
- package/dist/Editor/themeSettings/icons.js +0 -60
- package/dist/Editor/themeSettings/index.js +0 -351
- package/dist/Editor/themeSettings/style.js +0 -220
- package/dist/Editor/themeSettingsAI/icons.js +0 -96
- package/dist/Editor/themeSettingsAI/index.js +0 -355
- package/dist/Editor/themeSettingsAI/saveTheme.js +0 -205
- package/dist/Editor/themeSettingsAI/style.js +0 -259
@@ -1,236 +1,152 @@
|
|
1
|
-
import React, { useEffect,
|
1
|
+
import React, { useEffect, useRef } from "react";
|
2
2
|
import { Box } from "@mui/material";
|
3
3
|
import useVirtualElementStyles from "./styles";
|
4
4
|
import updateAutoProps from "./updateAutoProps";
|
5
|
-
import {
|
5
|
+
import { calculateGridArea } from "../Utils/gridDropItem";
|
6
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
7
7
|
const ROOT_ITEM_CLASS = ".freegrid-item.path-3";
|
8
|
-
export function getStartRow(el) {
|
9
|
-
const gridArea = el.dataset.gridAreaXs;
|
10
|
-
if (gridArea) {
|
11
|
-
const [startRow] = gridArea.split("/").map(num => parseInt(num));
|
12
|
-
return startRow;
|
13
|
-
}
|
14
|
-
}
|
15
|
-
function appendGridOccupied(domItem, startRow, fullHeight, lastRow) {
|
16
|
-
const endRow = startRow + Math.floor(fullHeight / ROW_HEIGHT) + 1;
|
17
|
-
lastRow = Math.max(endRow, lastRow);
|
18
|
-
const gridArea = `${startRow}/1/${endRow}/2`;
|
19
|
-
domItem.style.setProperty("--gridArea_xs", gridArea);
|
20
|
-
domItem.dataset.gridAreaXs = gridArea;
|
21
|
-
domItem.classList.add("exclude-virtual");
|
22
|
-
return {
|
23
|
-
domItem,
|
24
|
-
updatedLastRow: lastRow,
|
25
|
-
gridArea
|
26
|
-
};
|
27
|
-
}
|
28
8
|
|
29
9
|
// Function to group items by path and calculate heights
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
//
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
// // Base case: If there are no children, return the node's height
|
58
|
-
// return node.props.height;
|
59
|
-
// }
|
60
|
-
|
61
|
-
// // Calculate the height by summing the heights of all children
|
62
|
-
// let totalHeight = 0;
|
63
|
-
// Object.values(node.children).forEach((child) => {
|
64
|
-
// totalHeight += calculateHeight(child);
|
65
|
-
// });
|
10
|
+
function groupByPathAndCalculateHeight(data) {
|
11
|
+
const root = {};
|
12
|
+
const heightData = {};
|
13
|
+
|
14
|
+
// Step 1: Group items based on their path
|
15
|
+
data.forEach(item => {
|
16
|
+
const segments = item.path.split("|");
|
17
|
+
let current = root;
|
18
|
+
segments.forEach((segment, index) => {
|
19
|
+
if (!current[segment]) {
|
20
|
+
current[segment] = {
|
21
|
+
children: {},
|
22
|
+
props: {
|
23
|
+
height: 0
|
24
|
+
}
|
25
|
+
};
|
26
|
+
}
|
27
|
+
if (index === segments.length - 1) {
|
28
|
+
// Assign the properties of the item including height
|
29
|
+
current[segment] = {
|
30
|
+
...item,
|
31
|
+
children: current[segment].children
|
32
|
+
};
|
33
|
+
}
|
34
|
+
current = current[segment].children;
|
35
|
+
});
|
36
|
+
});
|
66
37
|
|
67
|
-
//
|
68
|
-
|
69
|
-
|
70
|
-
//
|
71
|
-
|
72
|
-
|
73
|
-
// };
|
38
|
+
// Step 2: Recursively calculate the height of each parent based on children
|
39
|
+
const calculateHeight = node => {
|
40
|
+
if (!node.children || Object.keys(node.children).length === 0) {
|
41
|
+
// Base case: If there are no children, return the node's height
|
42
|
+
return node.props.height;
|
43
|
+
}
|
74
44
|
|
75
|
-
//
|
76
|
-
|
45
|
+
// Calculate the height by summing the heights of all children
|
46
|
+
let totalHeight = 0;
|
47
|
+
Object.values(node.children).forEach(child => {
|
48
|
+
totalHeight += calculateHeight(child);
|
49
|
+
});
|
77
50
|
|
78
|
-
//
|
79
|
-
|
51
|
+
// Update the parent's height to be the total height of its children
|
52
|
+
node.props.height = totalHeight;
|
53
|
+
if (node?.path) {
|
54
|
+
heightData[node.path] = totalHeight;
|
55
|
+
}
|
56
|
+
return totalHeight;
|
57
|
+
};
|
80
58
|
|
81
|
-
|
82
|
-
|
83
|
-
const {
|
84
|
-
marginTopXs,
|
85
|
-
heightXs
|
86
|
-
} = dom.dataset;
|
87
|
-
const marginTop = marginTopXs ? Number(marginTopXs) : 0;
|
88
|
-
const fullHeight = Number(heightXs) + marginTop;
|
89
|
-
return appendGridOccupied(dom, startRow, fullHeight, lastRow);
|
90
|
-
};
|
91
|
-
const handleNonGridItem = (dom, lastRow) => {
|
92
|
-
const rect = dom.getBoundingClientRect();
|
93
|
-
dom.style.setProperty("--height_xs", rect.height + "px"); // assign the auto height that taken
|
94
|
-
const startRow = lastRow || 1;
|
95
|
-
const DEFAULT_NEW_ELEMENT_MARGIN_TOP = 12;
|
96
|
-
let fullHeight = rect.height + DEFAULT_NEW_ELEMENT_MARGIN_TOP;
|
97
|
-
const gridOccupiedData = appendGridOccupied(dom, startRow, fullHeight, lastRow);
|
59
|
+
// Start calculation from the root
|
60
|
+
Object.values(root).forEach(node => calculateHeight(node));
|
98
61
|
return {
|
99
|
-
|
100
|
-
|
62
|
+
root,
|
63
|
+
heightData
|
101
64
|
};
|
102
|
-
}
|
103
|
-
const appendContainerItems = async (sectionCls, virtualRef, dataSets) => {
|
104
|
-
const cloneNode = document.querySelector(sectionCls)?.cloneNode(true);
|
105
|
-
const items = cloneNode?.querySelectorAll(ROOT_ITEM_CLASS) || [];
|
106
|
-
if (!cloneNode || !items?.length || !virtualRef.current) {
|
107
|
-
return;
|
108
|
-
}
|
109
|
-
|
110
|
-
// Remove all existing elements inside virtualRef.current
|
111
|
-
virtualRef.current.innerHTML = "";
|
112
|
-
virtualRef.current.style.height = `auto`;
|
113
|
-
virtualRef.current.style.gridTemplateRows = `unset`;
|
114
|
-
|
115
|
-
// temporary append section items to get the dom styles
|
116
|
-
virtualRef.current.append(...items);
|
117
|
-
let itemsHTML = "";
|
118
|
-
let lastRow = 0;
|
119
|
-
const gridItems = [];
|
120
|
-
const nonGridItems = [];
|
121
|
-
items.forEach(item => {
|
122
|
-
if (getStartRow(item)) {
|
123
|
-
gridItems.push(item);
|
124
|
-
} else {
|
125
|
-
nonGridItems.push(item);
|
126
|
-
}
|
127
|
-
});
|
128
|
-
|
129
|
-
// to find the previously occupied rows
|
130
|
-
gridItems.forEach(item => {
|
131
|
-
const {
|
132
|
-
updatedLastRow,
|
133
|
-
domItem
|
134
|
-
} = handleGridItem(item, lastRow);
|
135
|
-
lastRow = updatedLastRow;
|
136
|
-
itemsHTML += domItem.outerHTML;
|
137
|
-
});
|
138
|
-
let containerHeight = lastRow ? (lastRow - 1) * ROW_HEIGHT : 0;
|
139
|
-
|
140
|
-
//place it on the next rows that are available
|
141
|
-
nonGridItems.forEach(item => {
|
142
|
-
const {
|
143
|
-
domItem,
|
144
|
-
updatedLastRow,
|
145
|
-
fullHeight
|
146
|
-
} = handleNonGridItem(item, lastRow);
|
147
|
-
lastRow = updatedLastRow;
|
148
|
-
itemsHTML += domItem.outerHTML;
|
149
|
-
containerHeight += fullHeight;
|
150
|
-
});
|
151
|
-
const oldSectionHeight = dataSets["data-height-xs"];
|
152
|
-
const newHeight = oldSectionHeight && oldSectionHeight > containerHeight ? oldSectionHeight : containerHeight;
|
153
|
-
virtualRef.current.style.height = `${newHeight}px`;
|
154
|
-
virtualRef.current.style.gridTemplateRows = `repeat(${lastRow - 1}, ${ROW_HEIGHT}px)`;
|
155
|
-
virtualRef.current.innerHTML = itemsHTML;
|
156
|
-
};
|
65
|
+
}
|
157
66
|
const VirtualElement = props => {
|
158
67
|
const classes = useVirtualElementStyles();
|
159
68
|
const {
|
160
69
|
editor,
|
161
70
|
path,
|
162
|
-
|
163
|
-
|
164
|
-
dataSets
|
71
|
+
parentEle,
|
72
|
+
updated_at
|
165
73
|
} = props;
|
74
|
+
const cloneNode = parentEle?.cloneNode(true);
|
166
75
|
const virtualRef = useRef();
|
167
|
-
const [toggleUpdate, setToggleUpdate] = useState(false);
|
168
76
|
useEffect(() => {
|
169
77
|
if (virtualRef?.current) {
|
170
78
|
const timeoutId = setTimeout(() => {
|
171
79
|
const allData = calculateProps(path, virtualRef?.current, ROOT_ITEM_CLASS, []);
|
172
|
-
|
173
|
-
// console.log("allData", allData);
|
80
|
+
const groupData = groupByPathAndCalculateHeight(allData);
|
174
81
|
// it should trigger by auto alignment or on clicking mobile view change
|
175
|
-
updateAutoProps(editor, allData, "xs");
|
82
|
+
updateAutoProps(editor, allData, "xs", groupData);
|
176
83
|
}, 100);
|
177
|
-
setToggleUpdate(prev => !prev);
|
178
84
|
return () => clearTimeout(timeoutId);
|
179
85
|
}
|
180
86
|
}, [updated_at, virtualRef?.current]);
|
181
87
|
const calculateProps = (curPath, dom, domClass, allData) => {
|
182
88
|
const rect = dom?.getBoundingClientRect();
|
183
|
-
|
184
|
-
// const sectionRect = virtualRef?.current?.getBoundingClientRect();
|
185
|
-
|
186
|
-
const bufferHeight = 12; // for spacing
|
187
|
-
|
89
|
+
const sectionRect = virtualRef?.current?.getBoundingClientRect();
|
188
90
|
const sectionProps = {
|
189
91
|
path: curPath,
|
190
92
|
props: {
|
191
|
-
height: rect?.height
|
93
|
+
height: rect?.height
|
192
94
|
}
|
193
95
|
};
|
194
96
|
const itemsData = [];
|
195
|
-
const items = dom
|
97
|
+
const items = dom.querySelectorAll(domClass);
|
98
|
+
const nextItemPathLength = curPath?.split("|").length + 2;
|
99
|
+
let sectionHeight = 12;
|
196
100
|
for (let i = 0; i < items.length; i++) {
|
197
|
-
const
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
}
|
213
|
-
|
101
|
+
const itemRect = items[i]?.getBoundingClientRect();
|
102
|
+
if (items[i]?.classList.contains("type_box")) {
|
103
|
+
allData = calculateProps(items[i]?.dataset.path, items[i], `.freegrid-item.path-${nextItemPathLength}`, allData);
|
104
|
+
} else {
|
105
|
+
const y = Math.abs(rect.top - itemRect?.top);
|
106
|
+
itemsData.push({
|
107
|
+
path: items[i]?.dataset.path,
|
108
|
+
props: {
|
109
|
+
top: y,
|
110
|
+
left: 24,
|
111
|
+
marginTop: 12,
|
112
|
+
width: itemRect?.width,
|
113
|
+
height: itemRect?.height,
|
114
|
+
gridArea: calculateGridArea(y)
|
115
|
+
}
|
116
|
+
});
|
117
|
+
sectionHeight += itemRect?.height;
|
118
|
+
}
|
119
|
+
}
|
120
|
+
if (dom?.classList.contains("type_box")) {
|
121
|
+
const y = Math.abs(sectionRect.top - rect?.top);
|
122
|
+
sectionProps.props.gridArea = calculateGridArea(y);
|
123
|
+
}
|
124
|
+
if (sectionHeight > sectionProps?.props?.height) {
|
125
|
+
sectionProps.props.height = sectionHeight;
|
214
126
|
}
|
215
127
|
allData = [sectionProps, [...allData, ...itemsData]]?.flat();
|
216
128
|
return allData;
|
217
129
|
};
|
218
|
-
|
219
|
-
|
220
|
-
|
130
|
+
const getItems = () => {
|
131
|
+
const items = cloneNode?.querySelectorAll(ROOT_ITEM_CLASS) || [];
|
132
|
+
let itemsHTML = "";
|
133
|
+
for (let i = 0; i < items?.length; i++) {
|
134
|
+
items[i].classList.add("exclude-virtual");
|
135
|
+
itemsHTML += items[i].outerHTML;
|
136
|
+
}
|
137
|
+
return itemsHTML;
|
138
|
+
};
|
221
139
|
return /*#__PURE__*/_jsx(Box, {
|
222
140
|
className: "mobile-virtual-mode",
|
223
141
|
ref: virtualRef,
|
224
|
-
sx:
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
...classes.root
|
142
|
+
sx: classes.root,
|
143
|
+
dangerouslySetInnerHTML: {
|
144
|
+
__html: getItems()
|
145
|
+
},
|
146
|
+
style: {
|
147
|
+
visibility: "hidden"
|
231
148
|
},
|
232
|
-
"aria-hidden": "true"
|
233
|
-
contentEditable: false
|
149
|
+
"aria-hidden": "true"
|
234
150
|
});
|
235
151
|
};
|
236
152
|
export default VirtualElement;
|
@@ -2,175 +2,27 @@ const useVirtualElementStyles = () => ({
|
|
2
2
|
root: {
|
3
3
|
width: "320px",
|
4
4
|
position: "fixed",
|
5
|
-
|
6
|
-
|
5
|
+
backgroundColor: "red",
|
6
|
+
height: "auto",
|
7
7
|
overflow: "visible",
|
8
8
|
pointerEvents: "none",
|
9
|
-
opacity:
|
9
|
+
opacity: 0,
|
10
10
|
right: 0,
|
11
11
|
top: 0,
|
12
|
-
"& .leaf-item": {
|
13
|
-
fontSize: "var(--fontSize_xs) !important",
|
14
|
-
"& span": {
|
15
|
-
fontSize: "var(--fontSize_xs) !important"
|
16
|
-
}
|
17
|
-
},
|
18
|
-
"& .editor-blocker": {
|
19
|
-
display: "none"
|
20
|
-
},
|
21
|
-
"& .freegrid-item": {
|
22
|
-
position: "relative !important",
|
23
|
-
top: "0 !important",
|
24
|
-
gridArea: "var(--gridArea_xs) !important",
|
25
|
-
width: "calc(100% - 48px) !important",
|
26
|
-
height: "var(--height_xs) !important",
|
27
|
-
left: "24px !important",
|
28
|
-
marginTop: "var(--marginTop_xs) !important",
|
29
|
-
outline: "1px solid gray !important",
|
30
|
-
"&.type_text": {
|
31
|
-
height: "auto !important"
|
32
|
-
},
|
33
|
-
"&.type_image": {
|
34
|
-
width: "calc(--width_xs) !important",
|
35
|
-
height: "var(--height_xs) !important"
|
36
|
-
},
|
37
|
-
// "&.type_box": {
|
38
|
-
// // display: "grid !important",
|
39
|
-
// // gridTemplateRows: "repeat(auto-fill, 50px) !important",
|
40
|
-
// // height: "min-content !important",
|
41
|
-
// },
|
42
|
-
|
43
|
-
"& .debug-info, & .editor-blocker": {
|
44
|
-
display: "none"
|
45
|
-
},
|
46
|
-
"& .embed": {
|
47
|
-
minHeight: "300px"
|
48
|
-
}
|
49
|
-
}
|
50
|
-
}
|
51
|
-
});
|
52
|
-
export default useVirtualElementStyles;
|
53
|
-
export const useAutoAlignStyles = () => ({
|
54
|
-
root: {
|
55
|
-
width: "320px",
|
56
|
-
position: "fixed",
|
57
|
-
overflow: "visible",
|
58
|
-
opacity: 1,
|
59
|
-
right: 0,
|
60
|
-
top: 0,
|
61
|
-
height: "auto !important",
|
62
|
-
pointerEvents: "none",
|
63
|
-
visibility: "hidden",
|
64
|
-
"& .leaf-item": {
|
65
|
-
fontSize: "var(--fontSize_xs) !important",
|
66
|
-
"& span": {
|
67
|
-
fontSize: "var(--fontSize_xs) !important"
|
68
|
-
}
|
69
|
-
},
|
70
|
-
"& .editor-blocker": {
|
71
|
-
display: "none"
|
72
|
-
},
|
73
12
|
"& .freegrid-item": {
|
74
13
|
position: "relative !important",
|
75
|
-
top: "0 !important",
|
76
14
|
gridArea: "none !important",
|
77
15
|
width: "calc(100% - 48px) !important",
|
78
|
-
height: "
|
16
|
+
height: "auto !important",
|
79
17
|
left: "24px !important",
|
80
|
-
marginTop: "
|
81
|
-
minHeight: "auto",
|
82
|
-
display: "inherit !important",
|
83
|
-
"&.type_box": {
|
84
|
-
height: "auto !important"
|
85
|
-
},
|
86
|
-
"&.type_image": {
|
87
|
-
width: "var(--width_xs) !important",
|
88
|
-
height: "var(--height_xs) !important"
|
89
|
-
},
|
90
|
-
"&.type_text": {
|
91
|
-
height: "auto !important"
|
92
|
-
},
|
93
|
-
// start - default signature classes on free-grid
|
94
|
-
"& .fgi_type_signature": {
|
95
|
-
height: "100%",
|
96
|
-
"& .signature-container": {
|
97
|
-
height: "100%",
|
98
|
-
LineHeight: 1.43,
|
99
|
-
"& .signature-btn-container": {
|
100
|
-
height: "100%",
|
101
|
-
display: "flex",
|
102
|
-
flexDirection: "column",
|
103
|
-
"& .sign-placeholder": {
|
104
|
-
display: "flex",
|
105
|
-
// remove hidden sign placeholder
|
106
|
-
width: "100%",
|
107
|
-
flexGrow: 1
|
108
|
-
},
|
109
|
-
"& button": {
|
110
|
-
margin: "6px 0px"
|
111
|
-
}
|
112
|
-
}
|
113
|
-
}
|
114
|
-
},
|
115
|
-
"& .fgi_type_sign": {
|
116
|
-
width: "100%",
|
117
|
-
height: "100%",
|
118
|
-
"& .signature-signed-wrapper": {
|
119
|
-
width: "100%",
|
120
|
-
height: "100%",
|
121
|
-
"& .signature-signed-span": {
|
122
|
-
width: "100%",
|
123
|
-
height: "100%",
|
124
|
-
"& .signed-btn": {
|
125
|
-
width: "100%",
|
126
|
-
height: "100%",
|
127
|
-
display: "flex",
|
128
|
-
flexDirection: "column",
|
129
|
-
"& img": {
|
130
|
-
width: "100% !important",
|
131
|
-
maxWidth: "none !important",
|
132
|
-
height: "70% !important",
|
133
|
-
flexGrow: 1
|
134
|
-
}
|
135
|
-
}
|
136
|
-
}
|
137
|
-
}
|
138
|
-
},
|
139
|
-
// end - default signature classes on free-grid
|
140
|
-
|
18
|
+
marginTop: "24px !important",
|
141
19
|
"& .debug-info, & .editor-blocker": {
|
142
20
|
display: "none"
|
143
21
|
},
|
144
22
|
"& .embed": {
|
145
23
|
minHeight: "300px"
|
146
24
|
}
|
147
|
-
},
|
148
|
-
"& .appHeaderBox, &.header-box-mobile-virtual-mode": {
|
149
|
-
width: "calc(100% - 12px) !important",
|
150
|
-
"& .fgi_type_box": {
|
151
|
-
display: "flex",
|
152
|
-
justifyContent: "space-evenly !important",
|
153
|
-
flexWrap: "wrap"
|
154
|
-
},
|
155
|
-
"& .freegrid-item": {
|
156
|
-
left: "4px !important",
|
157
|
-
marginLeft: "0px !important"
|
158
|
-
},
|
159
|
-
"& .type_text": {
|
160
|
-
width: "fit-content !important"
|
161
|
-
},
|
162
|
-
"& .type_appHeader": {
|
163
|
-
width: "40px !important"
|
164
|
-
},
|
165
|
-
"& .shadow-element": {
|
166
|
-
display: "none"
|
167
|
-
}
|
168
|
-
},
|
169
|
-
"&.header-box-mobile-virtual-mode": {
|
170
|
-
width: "320px !important",
|
171
|
-
display: "flex",
|
172
|
-
justifyContent: "space-evenly !important",
|
173
|
-
flexWrap: "wrap"
|
174
25
|
}
|
175
26
|
}
|
176
|
-
});
|
27
|
+
});
|
28
|
+
export default useVirtualElementStyles;
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { Node, Transforms } from "slate";
|
2
|
-
const updateAutoProps = (editor, datas = [], breakpoint = "",
|
2
|
+
const updateAutoProps = (editor, datas = [], breakpoint = "", groupData) => {
|
3
3
|
try {
|
4
4
|
// const { heightData } = groupData;
|
5
5
|
for (let i = 0; i < datas.length; i++) {
|
@@ -14,11 +14,9 @@ const updateAutoProps = (editor, datas = [], breakpoint = "", updateAll) => {
|
|
14
14
|
return a;
|
15
15
|
}, {});
|
16
16
|
const oldProps = Node.get(editor, int_path);
|
17
|
-
|
18
|
-
if (updateNode) {
|
17
|
+
if (!oldProps?.xs_updatedOn) {
|
19
18
|
Transforms.setNodes(editor, {
|
20
|
-
...updatedProps
|
21
|
-
xs_updatedOn: new Date().getTime()
|
19
|
+
...updatedProps
|
22
20
|
}, {
|
23
21
|
at: int_path
|
24
22
|
});
|
@@ -19,11 +19,6 @@ import { removeSign } from "./ElementSettings/OtherSettings";
|
|
19
19
|
import useDragging from "../../hooks/useDragging";
|
20
20
|
import { dragOverOn } from "../../helper/RnD/focusNode";
|
21
21
|
import { focusSelection, clearSelection, clearSelectionOnly } from "../../helper";
|
22
|
-
// import { reRenderChildNodes } from "./Utils/gridDropItem";
|
23
|
-
import VirtualTextElement from "./VirtualElement/VirtualTextElement";
|
24
|
-
import useAutoScroll from "../../hooks/useAutoScroll";
|
25
|
-
import ForceAutoAlignment from "./VirtualElement/ForceAutoAlignment";
|
26
|
-
import BoxHeaderAutoAlignment from "./VirtualElement/BoxHeaderAutoAlignment";
|
27
22
|
import { jsx as _jsx } from "react/jsx-runtime";
|
28
23
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
29
24
|
import { Fragment as _Fragment } from "react/jsx-runtime";
|
@@ -70,12 +65,7 @@ const RnD = props => {
|
|
70
65
|
breakpoint = "",
|
71
66
|
handleContextMenuClick = () => {},
|
72
67
|
itemData = {},
|
73
|
-
customProps
|
74
|
-
sectionElement,
|
75
|
-
dataSets,
|
76
|
-
autoAlign,
|
77
|
-
setAutoAlign,
|
78
|
-
isBoxHeader
|
68
|
+
customProps
|
79
69
|
} = props;
|
80
70
|
const {
|
81
71
|
isSelectedElement,
|
@@ -120,10 +110,6 @@ const RnD = props => {
|
|
120
110
|
const {
|
121
111
|
translation
|
122
112
|
} = customProps;
|
123
|
-
const {
|
124
|
-
startAutoScroll,
|
125
|
-
stopAutoScroll
|
126
|
-
} = useAutoScroll(10, "slate-wrapper-scroll-container");
|
127
113
|
useEffect(() => {
|
128
114
|
if (ITEM_TYPES.includes(type)) {
|
129
115
|
if (enable === 1) {
|
@@ -365,16 +351,6 @@ const RnD = props => {
|
|
365
351
|
};
|
366
352
|
const onDrag = e => {
|
367
353
|
e.preventDefault();
|
368
|
-
const {
|
369
|
-
clientY
|
370
|
-
} = e;
|
371
|
-
if (clientY < 50) {
|
372
|
-
startAutoScroll("up");
|
373
|
-
} else if (window.innerHeight - clientY < 50) {
|
374
|
-
startAutoScroll("down");
|
375
|
-
} else {
|
376
|
-
stopAutoScroll();
|
377
|
-
}
|
378
354
|
const lines = getClosestDraggable(e.clientX, e.clientY, `.freegrid-section_${parentSectionPath} .freegrid-container .freegrid-item.inactive-drag`.replace(/\|/g, "\\|"), ".freegrid-item.active-drag:not(.exclude-virtual)");
|
379
355
|
setAbsPosition({
|
380
356
|
...absPosition,
|
@@ -417,7 +393,6 @@ const RnD = props => {
|
|
417
393
|
const onDragStop = (e, d) => {
|
418
394
|
e.preventDefault();
|
419
395
|
e.stopPropagation();
|
420
|
-
stopAutoScroll();
|
421
396
|
if (dragging?.isDragging === 2 && dragging?.position?.strXY && dragging?.dragOver) {
|
422
397
|
d.x = e.x;
|
423
398
|
d.y = e.y;
|
@@ -478,24 +453,14 @@ const RnD = props => {
|
|
478
453
|
}
|
479
454
|
const updatedSize = {
|
480
455
|
width: delta?.width + d.width,
|
481
|
-
height:
|
456
|
+
height: delta?.height + d.height,
|
482
457
|
...updatedPosition
|
483
458
|
};
|
484
459
|
onChange({
|
485
460
|
...updatedSize
|
486
461
|
});
|
487
462
|
handleResizeEvent("stop");
|
488
|
-
|
489
|
-
// const parentPath = getParentSectionPath(
|
490
|
-
// { ref },
|
491
|
-
// ".freegrid-container-parent"
|
492
|
-
// );
|
493
|
-
|
494
|
-
// const formatParentPath = parentPath?.split("|")?.map((m) => parseInt(m));
|
495
|
-
|
496
|
-
// reRenderChildNodes(editor, formatParentPath);
|
497
463
|
};
|
498
|
-
|
499
464
|
const onCloseSettings = () => {
|
500
465
|
setSelectedElement({
|
501
466
|
...selectedElementProps,
|
@@ -509,6 +474,13 @@ const RnD = props => {
|
|
509
474
|
}
|
510
475
|
e.preventDefault();
|
511
476
|
e.stopPropagation();
|
477
|
+
const isMuiBackdrop = e.target.classList.contains("MuiBackdrop-root");
|
478
|
+
if (isMuiBackdrop) {
|
479
|
+
setContextMenu({
|
480
|
+
path: null
|
481
|
+
});
|
482
|
+
return;
|
483
|
+
}
|
512
484
|
onClick({
|
513
485
|
detail: 1
|
514
486
|
});
|
@@ -596,7 +568,6 @@ const RnD = props => {
|
|
596
568
|
...DISABLE_RESIZING
|
597
569
|
},
|
598
570
|
...getEventProps(),
|
599
|
-
...(dataSets || {}),
|
600
571
|
children: [/*#__PURE__*/_jsx("div", {
|
601
572
|
id: `opt_ref_${str_path}`,
|
602
573
|
style: {
|
@@ -669,29 +640,9 @@ const RnD = props => {
|
|
669
640
|
theme: theme,
|
670
641
|
translation: translation
|
671
642
|
}), type === "parent" && breakpoint === "lg" && !readOnly ? /*#__PURE__*/_jsx(VirtualElement, {
|
643
|
+
parentEle: positionRef?.current?.resizableElement?.current,
|
672
644
|
updated_at: updated_at,
|
673
645
|
path: str_path,
|
674
|
-
editor: editor,
|
675
|
-
sectionElement: sectionElement,
|
676
|
-
sectionCls: `.freegrid-section_${path.join("_")}`,
|
677
|
-
dataSets: dataSets
|
678
|
-
}) : null, childType === "text" && breakpoint === "lg" && !readOnly && enable ? /*#__PURE__*/_jsx(VirtualTextElement, {
|
679
|
-
editor: editor,
|
680
|
-
dataSets: dataSets,
|
681
|
-
getCurrentEle: getCurrentEle,
|
682
|
-
path: path
|
683
|
-
}) : null, type === "parent" && breakpoint === "xs" && !readOnly && autoAlign ? /*#__PURE__*/_jsx(ForceAutoAlignment, {
|
684
|
-
updated_at: updated_at,
|
685
|
-
path: str_path,
|
686
|
-
editor: editor,
|
687
|
-
sectionElement: sectionElement,
|
688
|
-
sectionCls: `.freegrid-section_${path.join("_")}`,
|
689
|
-
dataSets: dataSets,
|
690
|
-
autoAlign: autoAlign,
|
691
|
-
setAutoAlign: setAutoAlign
|
692
|
-
}) : null, isBoxHeader && breakpoint === "lg" ? /*#__PURE__*/_jsx(BoxHeaderAutoAlignment, {
|
693
|
-
boxCls: `.freegrid-box_${path.join("_")}`,
|
694
|
-
path: str_path,
|
695
646
|
editor: editor
|
696
647
|
}) : null]
|
697
648
|
});
|