@flozy/editor 5.7.3 → 5.7.4
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/CommonEditor.js +12 -7
- package/dist/Editor/Editor.css +14 -15
- package/dist/Editor/Elements/Button/EditorButton.js +3 -1
- package/dist/Editor/Elements/DataView/DataView.js +4 -3
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/NumberType.js +5 -1
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/TextType.js +5 -1
- package/dist/Editor/Elements/DataView/Layouts/FilterView.js +23 -19
- package/dist/Editor/Elements/Form/Form.js +1 -0
- package/dist/Editor/Elements/FreeGrid/styles.js +1 -0
- package/dist/Editor/Elements/List/CheckList.js +2 -1
- package/dist/Editor/Elements/Search/SearchAttachment.js +1 -0
- package/dist/Editor/Elements/Search/SearchList.js +8 -1
- package/dist/Editor/Elements/SimpleText/index.js +8 -1
- package/dist/Editor/Elements/SimpleText/style.js +5 -1
- package/dist/Editor/Elements/Title/title.js +13 -1
- package/dist/Editor/Elements/Variables/Style.js +20 -2
- package/dist/Editor/Elements/Variables/VariableButton.js +7 -3
- package/dist/Editor/Toolbar/PopupTool/AddTemplates.js +13 -3
- package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +5 -0
- package/dist/Editor/Toolbar/PopupTool/TemplateCard.js +1 -1
- package/dist/Editor/Toolbar/PopupTool/TextFormat.js +45 -0
- package/dist/Editor/common/FontLoader/FontLoader.js +32 -9
- package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +1 -0
- package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +14 -2
- package/dist/Editor/common/RnD/Utils/gridDropItem.js +1 -0
- package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +5 -0
- package/dist/Editor/common/StyleBuilder/fieldTypes/card.js +10 -2
- package/dist/Editor/common/StyleBuilder/fieldTypes/index.js +3 -1
- package/dist/Editor/common/StyleBuilder/fieldTypes/lineSpacing.js +79 -0
- package/dist/Editor/common/StyleBuilder/pageSettingsStyle.js +4 -0
- package/dist/Editor/common/Uploader.js +8 -0
- package/dist/Editor/commonStyle.js +9 -12
- package/dist/Editor/helper/index.js +2 -2
- package/dist/Editor/helper/theme.js +24 -1
- package/dist/Editor/hooks/useMouseMove.js +5 -2
- package/dist/Editor/plugins/withLayout.js +1 -1
- package/dist/Editor/utils/SlateUtilityFunctions.js +8 -1
- package/dist/Editor/utils/button.js +4 -4
- package/dist/Editor/utils/draftToSlate.js +3 -2
- package/dist/Editor/utils/helper.js +42 -19
- package/dist/Editor/utils/pageSettings.js +14 -2
- package/package.json +1 -1
@@ -26,7 +26,7 @@ import editorStyles from "./Styles/EditorStyles";
|
|
26
26
|
import DragAndDrop from "./common/DnD";
|
27
27
|
import Section from "./common/Section";
|
28
28
|
import decorators from "./utils/Decorators";
|
29
|
-
import { getTRBLBreakPoints } from "./helper/theme";
|
29
|
+
import { getBreakpointLineSpacing, getTRBLBreakPoints } from "./helper/theme";
|
30
30
|
import { getInitialValue, handleInsertLastElement, isFreeGrid, isFreeGridFragment, isRestrictedNode, outsideEditorClickLabel } from "./utils/helper";
|
31
31
|
import useWindowResize from "./hooks/useWindowResize";
|
32
32
|
import PopoverAIInput from "./Elements/AI/PopoverAIInput";
|
@@ -96,7 +96,8 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
96
96
|
const editorWrapper = useRef();
|
97
97
|
const mentionsRef = useRef();
|
98
98
|
const convertedContent = draftToSlate({
|
99
|
-
data: content
|
99
|
+
data: content,
|
100
|
+
needLayout: otherProps?.needLayout
|
100
101
|
});
|
101
102
|
const [value, setValue] = useState(convertedContent);
|
102
103
|
const [isInteracted, setIsInteracted] = useState(false);
|
@@ -139,7 +140,8 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
139
140
|
pageColor,
|
140
141
|
color: pageTextColor,
|
141
142
|
pageWidth,
|
142
|
-
maxWidth: pageMaxWidth
|
143
|
+
maxWidth: pageMaxWidth,
|
144
|
+
lineHeight
|
143
145
|
} = pageSt?.pageProps || {
|
144
146
|
bannerSpacing: {
|
145
147
|
left: 0,
|
@@ -166,11 +168,11 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
166
168
|
const debounced = useDebouncedCallback(
|
167
169
|
// function
|
168
170
|
value => {
|
171
|
+
debouncedValue.current = value;
|
169
172
|
const {
|
170
173
|
value: strVal,
|
171
174
|
...restVal
|
172
175
|
} = getOnSaveData(value);
|
173
|
-
debouncedValue.current = value;
|
174
176
|
onSave(strVal, restVal);
|
175
177
|
},
|
176
178
|
// delay in ms
|
@@ -181,7 +183,7 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
181
183
|
return {
|
182
184
|
value: JSON.stringify(val),
|
183
185
|
text: text,
|
184
|
-
title: serializeToText(title?.children) || "
|
186
|
+
title: serializeToText(title?.children) || ""
|
185
187
|
};
|
186
188
|
};
|
187
189
|
const getPreviewImage = async (needBackground = false, options = {}) => {
|
@@ -330,6 +332,7 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
330
332
|
onDrawerOpen: onDrawerOpen,
|
331
333
|
ICON_API: "https://assets.agenciflow.com"
|
332
334
|
};
|
335
|
+
const lineH = getBreakpointLineSpacing(lineHeight, breakpoint);
|
333
336
|
const renderElement = useCallback(props => {
|
334
337
|
return /*#__PURE__*/_jsx(Element, {
|
335
338
|
...props,
|
@@ -532,6 +535,7 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
532
535
|
padding: {
|
533
536
|
...getTRBLBreakPoints(bannerSpacing)
|
534
537
|
},
|
538
|
+
lineHeight: lineH,
|
535
539
|
width: !pageWidth || pageWidth === "fixed" ? fixedWidth : fullWidth,
|
536
540
|
height: viewport.h ? `${viewport.h}px` : `100%`,
|
537
541
|
alignSelf: "center",
|
@@ -539,7 +543,7 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
539
543
|
transition: "all 0.3s",
|
540
544
|
minHeight: "87%",
|
541
545
|
maxWidth: pageMaxWidth ? `${parseInt(pageMaxWidth)}px !important` : "auto",
|
542
|
-
paddingTop: hasTopBanner() ?
|
546
|
+
paddingTop: hasTopBanner() ? '20px !important' : isMobile ? '10px !important' : ''
|
543
547
|
},
|
544
548
|
"data-info": outsideEditorClickLabel,
|
545
549
|
children: [/*#__PURE__*/_jsx(Editable, {
|
@@ -593,8 +597,9 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
593
597
|
setIsTextSelected: setIsTextSelected,
|
594
598
|
customProps: customProps,
|
595
599
|
editorWrapper: editorWrapper
|
596
|
-
}) : null, !readOnly
|
600
|
+
}) : null, !readOnly ? /*#__PURE__*/_jsx(SwitchViewport, {
|
597
601
|
breakpoint: breakpoint,
|
602
|
+
show: showViewport,
|
598
603
|
onChange: b => onSwitchBreakpoint(b)
|
599
604
|
}) : null]
|
600
605
|
})
|
package/dist/Editor/Editor.css
CHANGED
@@ -995,7 +995,7 @@ blockquote {
|
|
995
995
|
|
996
996
|
.sliderInput {
|
997
997
|
width: 66px !important;
|
998
|
-
padding: 2px
|
998
|
+
padding: 2px 0px 2px 4px;
|
999
999
|
margin-left: 18px;
|
1000
1000
|
box-shadow: 0px 4px 16px 0px #0000000d;
|
1001
1001
|
border: 1px solid #6f6f6f33;
|
@@ -1263,6 +1263,19 @@ blockquote {
|
|
1263
1263
|
pointer-events: auto;
|
1264
1264
|
}
|
1265
1265
|
|
1266
|
+
@media (max-width: 899px) {
|
1267
|
+
.MuiPopover-root {
|
1268
|
+
z-index: 1302 !important;
|
1269
|
+
}
|
1270
|
+
canvas {
|
1271
|
+
max-width: 100% !important;
|
1272
|
+
}
|
1273
|
+
}
|
1274
|
+
|
1275
|
+
.settingsHeader {
|
1276
|
+
font-size: 14px !important;
|
1277
|
+
font-weight: 500 !important;
|
1278
|
+
}
|
1266
1279
|
.hideScroll {
|
1267
1280
|
overflow-anchor: none;
|
1268
1281
|
}
|
@@ -1278,20 +1291,6 @@ blockquote {
|
|
1278
1291
|
.hideScroll::-webkit-scrollbar-thumb:hover {
|
1279
1292
|
background: none !important;
|
1280
1293
|
}
|
1281
|
-
@media (max-width: 899px) {
|
1282
|
-
.MuiPopover-root {
|
1283
|
-
z-index: 1302 !important;
|
1284
|
-
}
|
1285
|
-
|
1286
|
-
canvas {
|
1287
|
-
max-width: 100% !important;
|
1288
|
-
}
|
1289
|
-
}
|
1290
|
-
|
1291
|
-
.settingsHeader {
|
1292
|
-
font-size: 14px !important;
|
1293
|
-
font-weight: 500 !important;
|
1294
|
-
}
|
1295
1294
|
|
1296
1295
|
.custom-scroll::-webkit-scrollbar {
|
1297
1296
|
height: .6rem;
|
@@ -162,6 +162,7 @@ const EditorButton = props => {
|
|
162
162
|
display: "inline-flex",
|
163
163
|
color: "rgba(0, 0, 0, 0.54)",
|
164
164
|
marginBottom: "0px !important",
|
165
|
+
...classes.buttonMoreOption,
|
165
166
|
...classes.buttonMoreOption3
|
166
167
|
},
|
167
168
|
...btnProps,
|
@@ -264,11 +265,12 @@ const EditorButton = props => {
|
|
264
265
|
...btnSp,
|
265
266
|
borderStyle: borderStyle || "solid",
|
266
267
|
color: `${textColor || "#FFFFFF"}`,
|
267
|
-
fontSize: textSize || "
|
268
|
+
fontSize: textSize || "12px",
|
268
269
|
fontFamily: fontFamily || "PoppinsRegular",
|
269
270
|
display: "inline-flex",
|
270
271
|
alignItems: "center",
|
271
272
|
position: "relative",
|
273
|
+
lineHeight: 1.43,
|
272
274
|
"& .element-toolbar": {
|
273
275
|
display: "none"
|
274
276
|
},
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import React from "react";
|
2
2
|
import { Node, Path, Transforms } from "slate";
|
3
|
-
import { ReactEditor,
|
3
|
+
import { ReactEditor, useSlate } from "slate-react";
|
4
4
|
import { Box, useTheme } from "@mui/material";
|
5
5
|
import { DataViewProvider } from "./Providers/DataViewProvider";
|
6
6
|
import useDataViewStyles from "./styles";
|
@@ -15,7 +15,7 @@ const DataView = props => {
|
|
15
15
|
theme: appTheme
|
16
16
|
} = useEditorContext();
|
17
17
|
const theme = useTheme();
|
18
|
-
const editor =
|
18
|
+
const editor = useSlate();
|
19
19
|
const {
|
20
20
|
attributes,
|
21
21
|
children,
|
@@ -113,7 +113,8 @@ const DataView = props => {
|
|
113
113
|
onDuplicate: onDuplicate,
|
114
114
|
readOnly: readOnly,
|
115
115
|
title: title,
|
116
|
-
onTitleChange: onTitleChange
|
116
|
+
onTitleChange: onTitleChange,
|
117
|
+
path: path
|
117
118
|
}), /*#__PURE__*/_jsx(LayoutView, {
|
118
119
|
readOnly: readOnly,
|
119
120
|
children: children
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import React from "react";
|
2
2
|
import { TextField } from "@mui/material";
|
3
3
|
import { useDataView } from "../../Providers/DataViewProvider";
|
4
|
+
import { focusDynamicTableInput } from "../../../../utils/helper";
|
4
5
|
import { jsx as _jsx } from "react/jsx-runtime";
|
5
6
|
const NumberType = props => {
|
6
7
|
const {
|
@@ -16,6 +17,7 @@ const NumberType = props => {
|
|
16
17
|
onChange(rowIndex, {
|
17
18
|
[property]: e?.target?.value
|
18
19
|
});
|
20
|
+
focusDynamicTableInput(e);
|
19
21
|
};
|
20
22
|
return /*#__PURE__*/_jsx(TextField, {
|
21
23
|
type: "number",
|
@@ -24,7 +26,9 @@ const NumberType = props => {
|
|
24
26
|
value: value,
|
25
27
|
size: "small",
|
26
28
|
onChange: handleChange,
|
27
|
-
disabled: readOnly
|
29
|
+
disabled: readOnly,
|
30
|
+
id: `tv-number-input-${rowIndex}-${property}` // * should be unique
|
28
31
|
});
|
29
32
|
};
|
33
|
+
|
30
34
|
export default NumberType;
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import React from "react";
|
2
2
|
import { TextField } from "@mui/material";
|
3
3
|
import { useDataView } from "../../Providers/DataViewProvider";
|
4
|
+
import { focusDynamicTableInput } from "../../../../utils/helper";
|
4
5
|
import { jsx as _jsx } from "react/jsx-runtime";
|
5
6
|
const TextType = props => {
|
6
7
|
const {
|
@@ -16,6 +17,7 @@ const TextType = props => {
|
|
16
17
|
onChange(rowIndex, {
|
17
18
|
[property]: e?.target?.value
|
18
19
|
});
|
20
|
+
focusDynamicTableInput(e);
|
19
21
|
};
|
20
22
|
const formatValue = () => {
|
21
23
|
if (typeof value === "string") {
|
@@ -30,7 +32,9 @@ const TextType = props => {
|
|
30
32
|
value: formatValue(value),
|
31
33
|
size: "small",
|
32
34
|
onChange: handleChange,
|
33
|
-
disabled: readOnly
|
35
|
+
disabled: readOnly,
|
36
|
+
id: `tv-text-input-${rowIndex}-${property}` // * should be unique
|
34
37
|
});
|
35
38
|
};
|
39
|
+
|
36
40
|
export default TextType;
|
@@ -5,6 +5,7 @@ import FilterSort from "./FilterSort";
|
|
5
5
|
import MoreHorizIcon from "@mui/icons-material/MoreHoriz";
|
6
6
|
import Icon from "../../../common/Icon";
|
7
7
|
import { useEditorContext } from "../../../hooks/useMouseMove";
|
8
|
+
import { focusDynamicTableInput } from "../../../utils/helper";
|
8
9
|
import { jsx as _jsx } from "react/jsx-runtime";
|
9
10
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
10
11
|
const FilterView = props => {
|
@@ -15,7 +16,8 @@ const FilterView = props => {
|
|
15
16
|
onEnter,
|
16
17
|
readOnly,
|
17
18
|
title,
|
18
|
-
onTitleChange
|
19
|
+
onTitleChange,
|
20
|
+
path
|
19
21
|
} = props;
|
20
22
|
const {
|
21
23
|
sort,
|
@@ -70,6 +72,7 @@ const FilterView = props => {
|
|
70
72
|
};
|
71
73
|
const handleTitleChange = e => {
|
72
74
|
onTitleChange(e?.target?.value);
|
75
|
+
focusDynamicTableInput(e);
|
73
76
|
};
|
74
77
|
const handleEnter = e => {
|
75
78
|
if (e?.key === "Enter") {
|
@@ -96,24 +99,25 @@ const FilterView = props => {
|
|
96
99
|
},
|
97
100
|
value: title,
|
98
101
|
onChange: handleTitleChange,
|
99
|
-
onKeyUp: handleEnter
|
102
|
+
onKeyUp: handleEnter,
|
103
|
+
id: `tv-title-input-${path.join("|")}`
|
100
104
|
}) : title || "Untitled"
|
101
105
|
}), /*#__PURE__*/_jsxs(Box, {
|
102
106
|
className: "tv-fi-wrpr",
|
103
107
|
sx: {
|
104
|
-
alignItems:
|
108
|
+
alignItems: "center"
|
105
109
|
},
|
106
110
|
children: [/*#__PURE__*/_jsxs(Box, {
|
107
111
|
className: `tv-sb mr ${toggle ? "open" : ""}`,
|
108
112
|
sx: {
|
109
|
-
minHeight:
|
113
|
+
minHeight: "32px"
|
110
114
|
},
|
111
115
|
children: [/*#__PURE__*/_jsx(IconButton, {
|
112
116
|
type: "button",
|
113
117
|
sx: {
|
114
|
-
|
115
|
-
width:
|
116
|
-
height:
|
118
|
+
"& svg": {
|
119
|
+
width: "14px",
|
120
|
+
height: "14px"
|
117
121
|
}
|
118
122
|
},
|
119
123
|
"aria-label": "search",
|
@@ -137,12 +141,12 @@ const FilterView = props => {
|
|
137
141
|
className: ` ${sort?.length > 0 ? "active" : ""}`,
|
138
142
|
onClick: handleSortClick,
|
139
143
|
sx: {
|
140
|
-
|
144
|
+
"& svg": {
|
141
145
|
strokeWidth: 1.2
|
142
146
|
}
|
143
147
|
},
|
144
148
|
children: /*#__PURE__*/_jsx(Icon, {
|
145
|
-
icon:
|
149
|
+
icon: "sortBy"
|
146
150
|
})
|
147
151
|
}), /*#__PURE__*/_jsx(FilterSort, {
|
148
152
|
open: open,
|
@@ -152,7 +156,7 @@ const FilterView = props => {
|
|
152
156
|
}), !readOnly ? /*#__PURE__*/_jsx(IconButton, {
|
153
157
|
className: "mr",
|
154
158
|
sx: {
|
155
|
-
|
159
|
+
"& svg": {
|
156
160
|
fill: theme?.palette?.editor?.tv_stroke
|
157
161
|
}
|
158
162
|
},
|
@@ -162,7 +166,7 @@ const FilterView = props => {
|
|
162
166
|
className: "mr",
|
163
167
|
onClick: handleDeleteRow,
|
164
168
|
children: /*#__PURE__*/_jsx(Icon, {
|
165
|
-
icon:
|
169
|
+
icon: "trashIcon"
|
166
170
|
})
|
167
171
|
}) : null, !readOnly ? /*#__PURE__*/_jsxs(Menu, {
|
168
172
|
sx: classes.basicMenu,
|
@@ -185,24 +189,24 @@ const FilterView = props => {
|
|
185
189
|
onClick: onMenuClick("Duplicate"),
|
186
190
|
children: [" ", /*#__PURE__*/_jsx(Box, {
|
187
191
|
sx: {
|
188
|
-
marginRight:
|
189
|
-
display:
|
190
|
-
alignItems:
|
192
|
+
marginRight: "5px",
|
193
|
+
display: " flex",
|
194
|
+
alignItems: "center"
|
191
195
|
},
|
192
196
|
children: /*#__PURE__*/_jsx(Icon, {
|
193
|
-
icon:
|
197
|
+
icon: "duplicateIcon"
|
194
198
|
})
|
195
199
|
}), "Duplicate"]
|
196
200
|
}), /*#__PURE__*/_jsxs(MenuItem, {
|
197
201
|
onClick: onMenuClick("Delete"),
|
198
202
|
children: [" ", /*#__PURE__*/_jsx(Box, {
|
199
203
|
sx: {
|
200
|
-
marginRight:
|
201
|
-
display:
|
202
|
-
alignItems:
|
204
|
+
marginRight: "5px",
|
205
|
+
display: " flex",
|
206
|
+
alignItems: "center"
|
203
207
|
},
|
204
208
|
children: /*#__PURE__*/_jsx(Icon, {
|
205
|
-
icon:
|
209
|
+
icon: "trashIcon"
|
206
210
|
})
|
207
211
|
}), "Delete"]
|
208
212
|
})]
|
@@ -49,6 +49,7 @@ const SearchAttachment = props => {
|
|
49
49
|
background: `${theme?.palette?.containers?.slashBrainCardBg} !important`,
|
50
50
|
cursor: 'pointer',
|
51
51
|
margin: '4px 0px',
|
52
|
+
lineHeight: 1.43,
|
52
53
|
"&.MuiPaper-root.MuiPaper-rounded": {
|
53
54
|
borderRadius: "7px !important",
|
54
55
|
paddingTop: '0px !important'
|
@@ -185,6 +185,9 @@ const SearchAndDocList = ({
|
|
185
185
|
gap: 1,
|
186
186
|
children: [/*#__PURE__*/_jsx(Grid, {
|
187
187
|
item: true,
|
188
|
+
sx: {
|
189
|
+
maxWidth: 'calc(100% - 45px)'
|
190
|
+
},
|
188
191
|
children: /*#__PURE__*/_jsxs(Grid, {
|
189
192
|
container: true,
|
190
193
|
alignItems: "center",
|
@@ -207,6 +210,9 @@ const SearchAndDocList = ({
|
|
207
210
|
})
|
208
211
|
}), /*#__PURE__*/_jsx(Grid, {
|
209
212
|
item: true,
|
213
|
+
sx: {
|
214
|
+
maxWidth: '100%'
|
215
|
+
},
|
210
216
|
children: /*#__PURE__*/_jsx(Typography, {
|
211
217
|
sx: {
|
212
218
|
fontSize: "12px",
|
@@ -219,7 +225,8 @@ const SearchAndDocList = ({
|
|
219
225
|
maxWidth: '230px',
|
220
226
|
textAlign: 'left',
|
221
227
|
'@media only screen and (min-width: 350px) and (max-width: 899px)': {
|
222
|
-
maxWidth: '100%'
|
228
|
+
maxWidth: '100%',
|
229
|
+
width: '100%'
|
223
230
|
}
|
224
231
|
},
|
225
232
|
children: title
|
@@ -5,6 +5,7 @@ import { getPageSettings } from "../../utils/pageSettings";
|
|
5
5
|
import { isTextSelected } from "../../utils/helper";
|
6
6
|
import { useEditorContext } from "../../hooks/useMouseMove";
|
7
7
|
import SimpleTextStyle from "./style";
|
8
|
+
import { getBreakpointLineSpacing } from "../../helper/theme";
|
8
9
|
import { jsx as _jsx } from "react/jsx-runtime";
|
9
10
|
import { Fragment as _Fragment } from "react/jsx-runtime";
|
10
11
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
@@ -33,8 +34,14 @@ const SimpleText = props => {
|
|
33
34
|
const {
|
34
35
|
pageColor
|
35
36
|
} = pageSt?.pageProps || {};
|
37
|
+
const {
|
38
|
+
activeBreakPoint
|
39
|
+
} = useEditorContext();
|
40
|
+
const lineHeight = element?.children[0]?.lineHeight;
|
41
|
+
const lineH = getBreakpointLineSpacing(lineHeight, activeBreakPoint);
|
36
42
|
const classes = SimpleTextStyle({
|
37
|
-
pageColor: pageColor || theme?.palette?.editor?.background || "#FFFFFF"
|
43
|
+
pageColor: pageColor || theme?.palette?.editor?.background || "#FFFFFF",
|
44
|
+
lineHeight: lineH
|
38
45
|
});
|
39
46
|
const selected = useSelected();
|
40
47
|
const path = ReactEditor.findPath(editor, element);
|
@@ -1,10 +1,12 @@
|
|
1
1
|
import { invertColor } from "../../helper";
|
2
2
|
const SimpleTextStyle = ({
|
3
|
-
pageColor
|
3
|
+
pageColor,
|
4
|
+
lineHeight
|
4
5
|
}) => ({
|
5
6
|
root: {
|
6
7
|
position: "relative",
|
7
8
|
padding: "0px",
|
9
|
+
lineHeight: lineHeight,
|
8
10
|
"&.dataView": {
|
9
11
|
"& .placeholder-simple-text": {
|
10
12
|
opacity: 0
|
@@ -33,6 +35,8 @@ const SimpleTextStyle = ({
|
|
33
35
|
height: "24px",
|
34
36
|
overflow: "hidden",
|
35
37
|
fontSize: "14px",
|
38
|
+
display: "inline-flex",
|
39
|
+
alignItems: "center",
|
36
40
|
"& .bg-pad-sl": {
|
37
41
|
padding: "2px 4px 2px 4px",
|
38
42
|
background: "transparent",
|
@@ -1,12 +1,24 @@
|
|
1
1
|
import React from "react";
|
2
|
+
import { Text } from "slate";
|
2
3
|
import { jsx as _jsx } from "react/jsx-runtime";
|
4
|
+
const isEmptyTextNode = node => {
|
5
|
+
if (Text.isText(node)) {
|
6
|
+
return !node.text.trim();
|
7
|
+
}
|
8
|
+
return false;
|
9
|
+
};
|
3
10
|
const Title = props => {
|
4
11
|
const {
|
12
|
+
element,
|
5
13
|
attributes,
|
6
|
-
children
|
14
|
+
children,
|
15
|
+
customProps
|
7
16
|
} = props;
|
17
|
+
const isEmpty = !customProps?.readOnly && isEmptyTextNode(element?.children[0]) ? "empty" : "";
|
8
18
|
return /*#__PURE__*/_jsx("div", {
|
9
19
|
...attributes,
|
20
|
+
placeholder: "Title",
|
21
|
+
className: `content-editable ${isEmpty}`,
|
10
22
|
style: {
|
11
23
|
fontWeight: "bold",
|
12
24
|
fontSize: "20px"
|
@@ -1,4 +1,4 @@
|
|
1
|
-
const VariableStyles =
|
1
|
+
const VariableStyles = theme => ({
|
2
2
|
variablesItem: {
|
3
3
|
color: "#2563EB",
|
4
4
|
background: "#EEEEEE"
|
@@ -37,8 +37,26 @@ const VariableStyles = () => ({
|
|
37
37
|
"& .MuiMenuItem-root": {
|
38
38
|
color: "#64748B"
|
39
39
|
},
|
40
|
+
"& .MuiPaper-root": {
|
41
|
+
borderRadius: '8px',
|
42
|
+
backgroundColor: `${theme?.palette?.editor?.miniToolBarBackground} !important`
|
43
|
+
},
|
44
|
+
"& .MuiList-root": {
|
45
|
+
padding: '0px'
|
46
|
+
},
|
47
|
+
"& .MuiButtonBase-root": {
|
48
|
+
margin: '6px',
|
49
|
+
borderRadius: '8px',
|
50
|
+
padding: '6px 14px',
|
51
|
+
fontSize: '14px',
|
52
|
+
fontWeight: '400',
|
53
|
+
color: theme?.palette?.editor?.deletePopUpButtonTextColor,
|
54
|
+
"&:hover": {
|
55
|
+
background: `${theme?.palette?.editor?.menuOptionHoverBackground} !important`
|
56
|
+
}
|
57
|
+
},
|
40
58
|
"& .Mui-selected": {
|
41
|
-
backgroundColor:
|
59
|
+
backgroundColor: 'unset !important'
|
42
60
|
}
|
43
61
|
}
|
44
62
|
});
|
@@ -3,11 +3,15 @@ import { useSlateStatic } from "slate-react";
|
|
3
3
|
import { MenuItem, Select } from "@mui/material";
|
4
4
|
import { insertVariables } from "../../utils/variables";
|
5
5
|
import VariableStyles from "./Style";
|
6
|
-
import
|
6
|
+
import KeyboardArrowDownRoundedIcon from '@mui/icons-material/KeyboardArrowDownRounded';
|
7
|
+
import { useEditorContext } from "../../hooks/useMouseMove";
|
7
8
|
import { jsx as _jsx } from "react/jsx-runtime";
|
8
9
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
9
10
|
const VariableButton = props => {
|
10
|
-
const
|
11
|
+
const {
|
12
|
+
theme
|
13
|
+
} = useEditorContext();
|
14
|
+
const classes = VariableStyles(theme);
|
11
15
|
const editor = useSlateStatic();
|
12
16
|
const {
|
13
17
|
options
|
@@ -24,7 +28,7 @@ const VariableButton = props => {
|
|
24
28
|
value: "",
|
25
29
|
sx: classes.variableBtn,
|
26
30
|
onChange: updateVariable,
|
27
|
-
IconComponent: () => /*#__PURE__*/_jsx(
|
31
|
+
IconComponent: () => /*#__PURE__*/_jsx(KeyboardArrowDownRoundedIcon, {}),
|
28
32
|
MenuProps: {
|
29
33
|
sx: classes.variableMenuItem,
|
30
34
|
PaperProps: {
|
@@ -98,12 +98,22 @@ const AddTemplates = props => {
|
|
98
98
|
setCategory(newValue);
|
99
99
|
setFilteredTemplates(templates.filter(f => f.category === newValue));
|
100
100
|
};
|
101
|
-
const onSelectTemplate = card => () => {
|
101
|
+
const onSelectTemplate = card => async () => {
|
102
102
|
try {
|
103
|
-
|
103
|
+
const {
|
104
|
+
data
|
105
|
+
} = await services("templateContent", {
|
106
|
+
id: card?.id
|
107
|
+
});
|
108
|
+
const content = data?.content;
|
109
|
+
if (content) {
|
110
|
+
editor.insertNode(JSON.parse(content));
|
111
|
+
} else {
|
112
|
+
console.log("No data found");
|
113
|
+
}
|
104
114
|
onClose();
|
105
115
|
} catch (err) {
|
106
|
-
console.log(err);
|
116
|
+
console.log("Error inserting template content into editor:", err);
|
107
117
|
}
|
108
118
|
};
|
109
119
|
const filterByTitle = f => {
|
@@ -416,6 +416,11 @@ const usePopupStyle = theme => ({
|
|
416
416
|
"& .MuiOutlinedInput-notchedOutline": {
|
417
417
|
border: `1px solid ${theme?.palette?.editor?.inputFieldBorder} !important`
|
418
418
|
},
|
419
|
+
'& .MuiInputBase-root': {
|
420
|
+
'& input': {
|
421
|
+
border: "none !important"
|
422
|
+
}
|
423
|
+
},
|
419
424
|
"& svg": {
|
420
425
|
width: "20px",
|
421
426
|
height: "24px"
|
@@ -47,7 +47,7 @@ const TemplateCard = props => {
|
|
47
47
|
}), /*#__PURE__*/_jsx(CardMedia, {
|
48
48
|
className: `template-card-media ${fullScreen ? "fullscreen" : ""}`,
|
49
49
|
component: "div",
|
50
|
-
image: m?.thumbnail,
|
50
|
+
image: m?.compressedThum || m?.thumbnail,
|
51
51
|
alt: m?.title,
|
52
52
|
sx: classes.templateCardMedia
|
53
53
|
}), /*#__PURE__*/_jsx(PreviewAndSelect, {
|