@flozy/editor 3.5.1 → 3.5.3
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/README.md +1 -1
- package/dist/Editor/Editor.css +10 -0
- package/dist/Editor/Elements/Embed/Embed.css +5 -0
- package/dist/Editor/Elements/EmbedScript/Code.js +36 -3
- package/dist/Editor/Elements/Form/Form.js +32 -4
- package/dist/Editor/Elements/SimpleText/style.js +1 -1
- package/dist/Editor/common/StyleBuilder/formStyle.js +26 -25
- package/package.json +1 -1
package/README.md
CHANGED
package/dist/Editor/Editor.css
CHANGED
|
@@ -574,6 +574,16 @@ blockquote {
|
|
|
574
574
|
margin: auto;
|
|
575
575
|
}
|
|
576
576
|
|
|
577
|
+
.embed-code .element-toolbar {
|
|
578
|
+
left: 0;
|
|
579
|
+
right: 0;
|
|
580
|
+
bottom: 0;
|
|
581
|
+
top: 0;
|
|
582
|
+
width: fit-content;
|
|
583
|
+
height: fit-content;
|
|
584
|
+
margin: auto;
|
|
585
|
+
}
|
|
586
|
+
|
|
577
587
|
.resize-br {
|
|
578
588
|
position: absolute !important;
|
|
579
589
|
bottom: 2px;
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import React, { useEffect, useRef } from "react";
|
|
2
2
|
import sanitizeHtml from "sanitize-html";
|
|
3
3
|
import { allowedDomains, decodeString } from "../../utils/helper";
|
|
4
|
+
import { IconButton, Tooltip } from "@mui/material";
|
|
5
|
+
import { DeleteIcon } from "../../assets/svg/AIIcons";
|
|
6
|
+
import { ReactEditor, useSlateStatic } from "slate-react";
|
|
7
|
+
import { Transforms } from "slate";
|
|
4
8
|
|
|
5
9
|
// const sanitize = (input) => {
|
|
6
10
|
// const doc = new DOMParser().parseFromString(input, "text/html");
|
|
@@ -21,18 +25,45 @@ const getCode = (embedData, isEncoded) => {
|
|
|
21
25
|
}
|
|
22
26
|
return embedData;
|
|
23
27
|
};
|
|
28
|
+
const ToolBar = ({
|
|
29
|
+
onDelete
|
|
30
|
+
}) => {
|
|
31
|
+
return /*#__PURE__*/_jsx("div", {
|
|
32
|
+
className: "element-toolbar visible-on-hover",
|
|
33
|
+
contentEditable: false,
|
|
34
|
+
children: /*#__PURE__*/_jsx(Tooltip, {
|
|
35
|
+
title: "Delete",
|
|
36
|
+
arrow: true,
|
|
37
|
+
children: /*#__PURE__*/_jsx(IconButton, {
|
|
38
|
+
onClick: onDelete,
|
|
39
|
+
children: /*#__PURE__*/_jsx(DeleteIcon, {})
|
|
40
|
+
})
|
|
41
|
+
})
|
|
42
|
+
});
|
|
43
|
+
};
|
|
24
44
|
const Code = props => {
|
|
25
45
|
const codeRef = useRef();
|
|
26
46
|
const {
|
|
27
47
|
element,
|
|
28
48
|
attributes,
|
|
29
|
-
children
|
|
49
|
+
children,
|
|
50
|
+
customProps
|
|
30
51
|
} = props;
|
|
31
52
|
const {
|
|
32
53
|
embedData,
|
|
33
54
|
isEncoded,
|
|
34
55
|
isSanitized
|
|
35
56
|
} = element;
|
|
57
|
+
const {
|
|
58
|
+
readOnly
|
|
59
|
+
} = customProps;
|
|
60
|
+
const editor = useSlateStatic();
|
|
61
|
+
const path = ReactEditor.findPath(editor, element);
|
|
62
|
+
const onDelete = () => {
|
|
63
|
+
Transforms.removeNodes(editor, {
|
|
64
|
+
at: path
|
|
65
|
+
});
|
|
66
|
+
};
|
|
36
67
|
useEffect(() => {
|
|
37
68
|
if (codeRef?.current) {
|
|
38
69
|
const code = getCode(embedData, isEncoded);
|
|
@@ -50,12 +81,14 @@ const Code = props => {
|
|
|
50
81
|
}
|
|
51
82
|
}, []);
|
|
52
83
|
return /*#__PURE__*/_jsxs("div", {
|
|
84
|
+
className: "embed-code has-hover",
|
|
53
85
|
contentEditable: false,
|
|
54
|
-
className: `embed-code`,
|
|
55
86
|
...attributes,
|
|
56
87
|
children: [/*#__PURE__*/_jsx("div", {
|
|
57
88
|
ref: codeRef
|
|
58
|
-
}), children
|
|
89
|
+
}), children, !readOnly && /*#__PURE__*/_jsx(ToolBar, {
|
|
90
|
+
onDelete: onDelete
|
|
91
|
+
})]
|
|
59
92
|
});
|
|
60
93
|
};
|
|
61
94
|
export default Code;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import React, { useState, useRef } from "react";
|
|
1
|
+
import React, { useState, useRef, useEffect } from "react";
|
|
2
2
|
import { Transforms } from "slate";
|
|
3
3
|
import { useSlateStatic, ReactEditor } from "slate-react";
|
|
4
|
-
import { IconButton, Tooltip, Grid, Menu, MenuItem, CircularProgress, Box } from "@mui/material";
|
|
4
|
+
import { IconButton, Tooltip, Grid, Menu, MenuItem, CircularProgress, Box, Typography } from "@mui/material";
|
|
5
5
|
import DeleteIcon from "@mui/icons-material/Delete";
|
|
6
6
|
import BackupIcon from "@mui/icons-material/Backup";
|
|
7
7
|
import { GridSettingsIcon, GridAddSectionIcon, WorkflowIcon } from "../../common/iconslist";
|
|
@@ -60,7 +60,12 @@ const Form = props => {
|
|
|
60
60
|
const [anchorEl, setAnchorEl] = useState(null);
|
|
61
61
|
const [loading, setLoading] = useState(false);
|
|
62
62
|
const [showOptions, setShowOptions] = useState(false);
|
|
63
|
+
const [submittedSuccessfully, setSubmittedSuccessfully] = useState(false);
|
|
64
|
+
const [formHeight, setFormHeight] = useState();
|
|
63
65
|
const path = ReactEditor.findPath(editor, element);
|
|
66
|
+
useEffect(() => {
|
|
67
|
+
setFormHeight(formEle?.current?.clientHeight);
|
|
68
|
+
}, []);
|
|
64
69
|
const btnBorderStyle = buttonProps?.borderColor?.indexOf("linear") >= 0 ? {
|
|
65
70
|
borderImageSource: buttonProps?.borderColor,
|
|
66
71
|
borderImageSlice: 1
|
|
@@ -158,8 +163,10 @@ const Form = props => {
|
|
|
158
163
|
alert(isValidForm[0]);
|
|
159
164
|
} else {
|
|
160
165
|
const formRes = await formSubmit(params, customProps);
|
|
161
|
-
if (formRes) {
|
|
166
|
+
if (formRes?.hasOwnProperty('form_id')) {
|
|
162
167
|
onFormSubmit(formRes);
|
|
168
|
+
setSubmittedSuccessfully(true);
|
|
169
|
+
setAnchorEl(null);
|
|
163
170
|
}
|
|
164
171
|
}
|
|
165
172
|
setLoading(false);
|
|
@@ -306,7 +313,7 @@ const Form = props => {
|
|
|
306
313
|
},
|
|
307
314
|
onMouseOver: onMouseOver,
|
|
308
315
|
onMouseLeave: onMouseLeave,
|
|
309
|
-
children: [/*#__PURE__*/_jsxs(Box, {
|
|
316
|
+
children: [!submittedSuccessfully ? /*#__PURE__*/_jsxs(Box, {
|
|
310
317
|
component: "form",
|
|
311
318
|
id: `${formName}`,
|
|
312
319
|
onSubmit: handleSubmit,
|
|
@@ -401,6 +408,27 @@ const Form = props => {
|
|
|
401
408
|
}
|
|
402
409
|
})
|
|
403
410
|
})]
|
|
411
|
+
}) : /*#__PURE__*/_jsx(Typography, {
|
|
412
|
+
sx: {
|
|
413
|
+
color: textColor || "#A2A9B4",
|
|
414
|
+
borderColor: borderColor || "transparent",
|
|
415
|
+
borderWidth: borderWidth || "1px",
|
|
416
|
+
borderRadius: {
|
|
417
|
+
...getBreakPointsValue(borderRadius || {}, null, "overrideBorderRadius", true)
|
|
418
|
+
},
|
|
419
|
+
borderStyle: borderStyle || "solid",
|
|
420
|
+
background: bgColor || "transparent",
|
|
421
|
+
padding: {
|
|
422
|
+
...getTRBLBreakPoints(bannerSpacing)
|
|
423
|
+
},
|
|
424
|
+
minHeight: `${formHeight}px`,
|
|
425
|
+
display: 'flex',
|
|
426
|
+
alignItems: "center",
|
|
427
|
+
justifyContent: "center",
|
|
428
|
+
textAlign: "center",
|
|
429
|
+
position: 'relative'
|
|
430
|
+
},
|
|
431
|
+
children: "Form Submitted Successfully...!"
|
|
404
432
|
}), openSetttings ? /*#__PURE__*/_jsx(FormPopup, {
|
|
405
433
|
element: element,
|
|
406
434
|
onSave: onSave,
|
|
@@ -129,31 +129,32 @@ const formStyle = [{
|
|
|
129
129
|
key: "backgroundImage",
|
|
130
130
|
type: "backgroundImage"
|
|
131
131
|
}]
|
|
132
|
-
},
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
},
|
|
132
|
+
},
|
|
133
|
+
// {
|
|
134
|
+
// tab: "Add to Boards",
|
|
135
|
+
// value: "metadatamapping",
|
|
136
|
+
// fields: [
|
|
137
|
+
// {
|
|
138
|
+
// label: "Add response to contacts board",
|
|
139
|
+
// key: "metadatamapping",
|
|
140
|
+
// type: "metadatamapping",
|
|
141
|
+
// compType: "card",
|
|
142
|
+
// content: "By default, form responses are added as separate cards on the default contact board.",
|
|
143
|
+
// value: "mappingToContactBoard",
|
|
144
|
+
// infoIcon: <Icon icon="info" />
|
|
145
|
+
// },
|
|
146
|
+
// {
|
|
147
|
+
// label: "Create a separate board",
|
|
148
|
+
// key: "metadatamapping",
|
|
149
|
+
// type: "metadatamapping",
|
|
150
|
+
// compType: "card",
|
|
151
|
+
// content: "By default, form responses are added as separate cards on a new board (Contact Us).",
|
|
152
|
+
// value: "mappingToSeparateBoard",
|
|
153
|
+
// infoIcon: <Icon icon="info" />
|
|
154
|
+
// },
|
|
155
|
+
// ],
|
|
156
|
+
// },
|
|
157
|
+
{
|
|
157
158
|
tab: "Save As Template",
|
|
158
159
|
value: "saveAsTemplate",
|
|
159
160
|
needActions: false,
|