@flozy/editor 4.7.9 → 4.8.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/CommonEditor.js +2 -1
- package/dist/Editor/Editor.css +13 -0
- package/dist/Editor/Elements/AppHeader/AppHeader.js +12 -5
- package/dist/Editor/Elements/Emoji/EmojiPicker.js +4 -2
- package/dist/Editor/Elements/Form/Form.js +38 -2
- package/dist/Editor/Elements/Form/FormElements/FormCheckbox.js +7 -1
- package/dist/Editor/Elements/Form/FormElements/FormDate.js +7 -1
- package/dist/Editor/Elements/Form/FormElements/FormEmail.js +7 -1
- package/dist/Editor/Elements/Form/FormElements/FormNumbers.js +7 -1
- package/dist/Editor/Elements/Form/FormElements/FormRadioButton.js +7 -1
- package/dist/Editor/Elements/Form/FormElements/FormText.js +7 -1
- package/dist/Editor/Elements/Form/FormElements/FormTextArea.js +6 -1
- package/dist/Editor/Elements/Form/FormPopup.js +12 -9
- package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +20 -1
- package/dist/Editor/Elements/Grid/GridItem.js +7 -2
- package/dist/Editor/Elements/Link/Link.js +0 -2
- package/dist/Editor/common/FontLoader/FontLoader.js +2 -1
- package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +144 -12
- package/dist/Editor/common/RnD/index.js +2 -6
- package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +5 -2
- package/dist/Editor/common/StyleBuilder/formStyle.js +206 -119
- package/dist/Editor/common/StyleBuilder/gridItemStyle.js +5 -0
- package/dist/Editor/common/StyleBuilder/index.js +123 -10
- package/dist/Editor/utils/font.js +11 -4
- package/dist/Editor/utils/formfield.js +8 -4
- package/dist/Editor/utils/helper.js +1 -1
- package/package.json +1 -1
|
@@ -314,7 +314,8 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
314
314
|
site_id: site_id,
|
|
315
315
|
page_title: page_title,
|
|
316
316
|
isIframe: isIframe,
|
|
317
|
-
onDrawerOpen: onDrawerOpen
|
|
317
|
+
onDrawerOpen: onDrawerOpen,
|
|
318
|
+
ICON_API: "https://assets.agenciflow.com"
|
|
318
319
|
};
|
|
319
320
|
const renderElement = useCallback(props => {
|
|
320
321
|
return /*#__PURE__*/_jsx(Element, {
|
package/dist/Editor/Editor.css
CHANGED
|
@@ -1220,4 +1220,17 @@ blockquote {
|
|
|
1220
1220
|
|
|
1221
1221
|
.dividerComponent:hover .divider-settings {
|
|
1222
1222
|
display: block;
|
|
1223
|
+
}
|
|
1224
|
+
|
|
1225
|
+
@media (max-width: 899px) {
|
|
1226
|
+
.MuiPopover-root {
|
|
1227
|
+
z-index: 1302 !important;
|
|
1228
|
+
}
|
|
1229
|
+
}
|
|
1230
|
+
|
|
1231
|
+
.settingsHeader {
|
|
1232
|
+
font-size: 14px !important;
|
|
1233
|
+
font-weight: 600 !important;
|
|
1234
|
+
font-family: Inter, sans-serif;
|
|
1235
|
+
text-transform: uppercase;
|
|
1223
1236
|
}
|
|
@@ -129,7 +129,6 @@ function AppHeader(props) {
|
|
|
129
129
|
}
|
|
130
130
|
};
|
|
131
131
|
const drawer = /*#__PURE__*/_jsxs(Box, {
|
|
132
|
-
onClick: handleDrawerToggle,
|
|
133
132
|
sx: {
|
|
134
133
|
textAlign: "center"
|
|
135
134
|
},
|
|
@@ -139,6 +138,7 @@ function AppHeader(props) {
|
|
|
139
138
|
my: 2,
|
|
140
139
|
color: textColor
|
|
141
140
|
},
|
|
141
|
+
onClick: closeDrawer,
|
|
142
142
|
children: appLogo && appLogo !== "none" ? /*#__PURE__*/_jsx("img", {
|
|
143
143
|
alt: `${appTitle} Logo`,
|
|
144
144
|
style: {
|
|
@@ -150,16 +150,20 @@ function AppHeader(props) {
|
|
|
150
150
|
}), /*#__PURE__*/_jsx(Divider, {}), /*#__PURE__*/_jsx(List, {
|
|
151
151
|
children: menus.map((item, i) => {
|
|
152
152
|
const buttonProps = handleLinkType(item.url, item.linkType, true, item.target === "_blank");
|
|
153
|
+
const onButtonClick = e => {
|
|
154
|
+
closeDrawer();
|
|
155
|
+
setTimeout(() => {
|
|
156
|
+
buttonProps?.onClick(e);
|
|
157
|
+
}, 200);
|
|
158
|
+
};
|
|
153
159
|
const onTouchEnd = e => {
|
|
154
160
|
if (buttonProps?.onTouchEnd) {
|
|
155
|
-
|
|
156
|
-
closeDrawer();
|
|
161
|
+
onButtonClick(e);
|
|
157
162
|
}
|
|
158
163
|
};
|
|
159
164
|
const onClick = e => {
|
|
160
165
|
if (buttonProps?.onClick) {
|
|
161
|
-
|
|
162
|
-
closeDrawer();
|
|
166
|
+
onButtonClick(e);
|
|
163
167
|
}
|
|
164
168
|
};
|
|
165
169
|
const props = {
|
|
@@ -171,6 +175,9 @@ function AppHeader(props) {
|
|
|
171
175
|
disablePadding: true,
|
|
172
176
|
children: /*#__PURE__*/_jsx(ListItemButton, {
|
|
173
177
|
...props,
|
|
178
|
+
component: "button",
|
|
179
|
+
href: "" // to avoid <a> tag
|
|
180
|
+
,
|
|
174
181
|
sx: {
|
|
175
182
|
textAlign: "center"
|
|
176
183
|
},
|
|
@@ -6,14 +6,16 @@ const EmojiPicker = props => {
|
|
|
6
6
|
const {
|
|
7
7
|
onEmojiSelect,
|
|
8
8
|
onClose,
|
|
9
|
-
theme = 'light'
|
|
9
|
+
theme = 'light',
|
|
10
|
+
...rest
|
|
10
11
|
} = props;
|
|
11
12
|
return /*#__PURE__*/_jsx(_Fragment, {
|
|
12
13
|
children: /*#__PURE__*/_jsx(Picker, {
|
|
13
14
|
data: data,
|
|
14
15
|
onEmojiSelect: onEmojiSelect,
|
|
15
16
|
onClickOutside: onClose,
|
|
16
|
-
theme: theme
|
|
17
|
+
theme: theme,
|
|
18
|
+
...rest
|
|
17
19
|
})
|
|
18
20
|
});
|
|
19
21
|
};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React, { useState, useRef, useEffect } from "react";
|
|
2
2
|
import { Transforms } from "slate";
|
|
3
|
+
import { Node } from "slate";
|
|
3
4
|
import { useSlateStatic, ReactEditor } from "slate-react";
|
|
4
5
|
import { IconButton, Tooltip, Grid, Menu, MenuItem, CircularProgress, Box, Typography, useTheme } from "@mui/material";
|
|
5
6
|
import DeleteIcon from "@mui/icons-material/Delete";
|
|
@@ -48,7 +49,15 @@ const Form = props => {
|
|
|
48
49
|
textSize,
|
|
49
50
|
fontFamily,
|
|
50
51
|
textAlign,
|
|
51
|
-
alignment
|
|
52
|
+
alignment,
|
|
53
|
+
fieldFontFamily,
|
|
54
|
+
fieldFontWeight,
|
|
55
|
+
fieldTextSize,
|
|
56
|
+
fieldTextColor,
|
|
57
|
+
fieldBgColor,
|
|
58
|
+
fieldBorderColor,
|
|
59
|
+
fieldBorderWidth,
|
|
60
|
+
fieldBorderStyle
|
|
52
61
|
} = element;
|
|
53
62
|
const btnR = buttonProps?.borderRadius || {};
|
|
54
63
|
const btnSpacing = buttonProps?.bannerSpacing || {};
|
|
@@ -190,6 +199,24 @@ const Form = props => {
|
|
|
190
199
|
}, {
|
|
191
200
|
at: path
|
|
192
201
|
});
|
|
202
|
+
// adding form field style to the current form node
|
|
203
|
+
const currentNode = Node.get(editor, path);
|
|
204
|
+
if (currentNode) {
|
|
205
|
+
currentNode.children.forEach((item, index) => {
|
|
206
|
+
Transforms.setNodes(editor, {
|
|
207
|
+
bgColor: data?.fieldBgColor ? data?.fieldBgColor : "rgba(255, 255, 255, 1)",
|
|
208
|
+
borderColor: data?.fieldBorderColor ? data?.fieldBorderColor : "#ccc",
|
|
209
|
+
borderStyle: data?.fieldBorderStyle ? data?.fieldBorderStyle : "",
|
|
210
|
+
borderWidth: data?.fieldBorderWidth ? data?.fieldBorderWidth : "",
|
|
211
|
+
textColor: data?.fieldTextColor ? data?.fieldTextColor : "",
|
|
212
|
+
fontFamily: data?.fieldFontFamily ? data?.fieldFontFamily : "",
|
|
213
|
+
textSize: data?.fieldTextSize ? data?.fieldTextSize : "",
|
|
214
|
+
fontWeight: data?.fieldFontWeight ? data?.fieldFontWeight : ""
|
|
215
|
+
}, {
|
|
216
|
+
at: [...path, index]
|
|
217
|
+
});
|
|
218
|
+
});
|
|
219
|
+
}
|
|
193
220
|
onClose();
|
|
194
221
|
};
|
|
195
222
|
const onClose = () => {
|
|
@@ -198,7 +225,16 @@ const Form = props => {
|
|
|
198
225
|
const onAddFormField = () => {
|
|
199
226
|
try {
|
|
200
227
|
Transforms.insertNodes(editor, {
|
|
201
|
-
...formField(
|
|
228
|
+
...formField({
|
|
229
|
+
fontFamily: fieldFontFamily,
|
|
230
|
+
fontWeight: fieldFontWeight,
|
|
231
|
+
textSize: fieldTextSize,
|
|
232
|
+
textColor: fieldTextColor,
|
|
233
|
+
bgColor: fieldBgColor,
|
|
234
|
+
borderColor: fieldBorderColor,
|
|
235
|
+
borderWidth: fieldBorderWidth,
|
|
236
|
+
borderStyle: fieldBorderStyle
|
|
237
|
+
})
|
|
202
238
|
}, {
|
|
203
239
|
at: [...path, children.length]
|
|
204
240
|
});
|
|
@@ -16,6 +16,9 @@ const FormCheckbox = props => {
|
|
|
16
16
|
textColor,
|
|
17
17
|
bgColor,
|
|
18
18
|
lockSpacing,
|
|
19
|
+
textSize,
|
|
20
|
+
fontFamily,
|
|
21
|
+
fontWeight,
|
|
19
22
|
...rest
|
|
20
23
|
} = fieldProps;
|
|
21
24
|
const onChange = e => {
|
|
@@ -46,7 +49,10 @@ const FormCheckbox = props => {
|
|
|
46
49
|
},
|
|
47
50
|
borderStyle: borderStyle || "solid",
|
|
48
51
|
color: textColor || "#000",
|
|
49
|
-
background: bgColor || "transparent"
|
|
52
|
+
background: bgColor || "transparent",
|
|
53
|
+
fontFamily: fontFamily || "PoppinsRegular",
|
|
54
|
+
fontSize: textSize || "inherit",
|
|
55
|
+
fontWeight: `${fontWeight} !important` || "400 !important"
|
|
50
56
|
}
|
|
51
57
|
})
|
|
52
58
|
});
|
|
@@ -16,6 +16,9 @@ const FormDate = props => {
|
|
|
16
16
|
textColor,
|
|
17
17
|
bgColor,
|
|
18
18
|
lockSpacing,
|
|
19
|
+
textSize,
|
|
20
|
+
fontFamily,
|
|
21
|
+
fontWeight,
|
|
19
22
|
...rest
|
|
20
23
|
} = fieldProps;
|
|
21
24
|
const onChange = e => {
|
|
@@ -47,7 +50,10 @@ const FormDate = props => {
|
|
|
47
50
|
borderStyle: borderStyle || "solid",
|
|
48
51
|
color: textColor || "#000",
|
|
49
52
|
background: bgColor || "transparent",
|
|
50
|
-
paddingRight: '85px !important'
|
|
53
|
+
paddingRight: '85px !important',
|
|
54
|
+
fontFamily: fontFamily || "PoppinsRegular",
|
|
55
|
+
fontSize: textSize || "inherit",
|
|
56
|
+
fontWeight: `${fontWeight} !important` || "400 !important"
|
|
51
57
|
}
|
|
52
58
|
})
|
|
53
59
|
});
|
|
@@ -16,6 +16,9 @@ const FormEmail = props => {
|
|
|
16
16
|
textColor,
|
|
17
17
|
bgColor,
|
|
18
18
|
lockSpacing,
|
|
19
|
+
textSize,
|
|
20
|
+
fontFamily,
|
|
21
|
+
fontWeight,
|
|
19
22
|
...rest
|
|
20
23
|
} = fieldProps;
|
|
21
24
|
const onChange = e => {
|
|
@@ -47,7 +50,10 @@ const FormEmail = props => {
|
|
|
47
50
|
},
|
|
48
51
|
borderStyle: borderStyle || "solid",
|
|
49
52
|
color: textColor || "#000",
|
|
50
|
-
background: bgColor || "transparent"
|
|
53
|
+
background: bgColor || "transparent",
|
|
54
|
+
fontFamily: fontFamily || "PoppinsRegular",
|
|
55
|
+
fontSize: textSize || "inherit",
|
|
56
|
+
fontWeight: `${fontWeight} !important` || "400 !important"
|
|
51
57
|
}
|
|
52
58
|
})
|
|
53
59
|
});
|
|
@@ -16,6 +16,9 @@ const FormNumbers = props => {
|
|
|
16
16
|
textColor,
|
|
17
17
|
bgColor,
|
|
18
18
|
lockSpacing,
|
|
19
|
+
textSize,
|
|
20
|
+
fontFamily,
|
|
21
|
+
fontWeight,
|
|
19
22
|
...rest
|
|
20
23
|
} = fieldProps;
|
|
21
24
|
const onChange = e => {
|
|
@@ -63,7 +66,10 @@ const FormNumbers = props => {
|
|
|
63
66
|
},
|
|
64
67
|
borderStyle: borderStyle || "solid",
|
|
65
68
|
color: textColor || "#000",
|
|
66
|
-
background: bgColor || "transparent"
|
|
69
|
+
background: bgColor || "transparent",
|
|
70
|
+
fontFamily: fontFamily || "PoppinsRegular",
|
|
71
|
+
fontSize: textSize || "inherit",
|
|
72
|
+
fontWeight: `${fontWeight} !important` || "400 !important"
|
|
67
73
|
}
|
|
68
74
|
})
|
|
69
75
|
});
|
|
@@ -16,6 +16,9 @@ const FormRadioButton = props => {
|
|
|
16
16
|
textColor,
|
|
17
17
|
bgColor,
|
|
18
18
|
lockSpacing,
|
|
19
|
+
textSize,
|
|
20
|
+
fontFamily,
|
|
21
|
+
fontWeight,
|
|
19
22
|
...rest
|
|
20
23
|
} = fieldProps;
|
|
21
24
|
const onChange = e => {
|
|
@@ -46,7 +49,10 @@ const FormRadioButton = props => {
|
|
|
46
49
|
},
|
|
47
50
|
borderStyle: borderStyle || "solid",
|
|
48
51
|
color: textColor || "#000",
|
|
49
|
-
background: bgColor || "transparent"
|
|
52
|
+
background: bgColor || "transparent",
|
|
53
|
+
fontFamily: fontFamily || "PoppinsRegular",
|
|
54
|
+
fontSize: textSize || "inherit",
|
|
55
|
+
fontWeight: `${fontWeight} !important` || "400 !important"
|
|
50
56
|
}
|
|
51
57
|
})
|
|
52
58
|
});
|
|
@@ -16,6 +16,9 @@ const FormText = props => {
|
|
|
16
16
|
textColor,
|
|
17
17
|
bgColor,
|
|
18
18
|
lockSpacing,
|
|
19
|
+
textSize,
|
|
20
|
+
fontFamily,
|
|
21
|
+
fontWeight,
|
|
19
22
|
...rest
|
|
20
23
|
} = fieldProps;
|
|
21
24
|
const onChange = e => {
|
|
@@ -45,7 +48,10 @@ const FormText = props => {
|
|
|
45
48
|
},
|
|
46
49
|
borderStyle: borderStyle || "solid",
|
|
47
50
|
color: textColor || "#000",
|
|
48
|
-
background: bgColor || "transparent"
|
|
51
|
+
background: bgColor || "transparent",
|
|
52
|
+
fontSize: textSize || "inherit",
|
|
53
|
+
fontFamily: fontFamily || "PoppinsRegular",
|
|
54
|
+
fontWeight: `${fontWeight} !important` || "400 !important"
|
|
49
55
|
}
|
|
50
56
|
})
|
|
51
57
|
});
|
|
@@ -15,6 +15,9 @@ const FormTextArea = props => {
|
|
|
15
15
|
borderColor,
|
|
16
16
|
textColor,
|
|
17
17
|
bgColor,
|
|
18
|
+
textSize,
|
|
19
|
+
fontFamily,
|
|
20
|
+
fontWeight,
|
|
18
21
|
...rest
|
|
19
22
|
} = fieldProps;
|
|
20
23
|
const onChange = e => {
|
|
@@ -45,7 +48,9 @@ const FormTextArea = props => {
|
|
|
45
48
|
borderStyle: borderStyle || "solid",
|
|
46
49
|
color: `${textColor || "#000"} !important`,
|
|
47
50
|
background: `${bgColor || "transparent"} !important`,
|
|
48
|
-
fontSize:
|
|
51
|
+
fontSize: textSize || "14px",
|
|
52
|
+
fontFamily: fontFamily || "PoppinsRegular",
|
|
53
|
+
fontWeight: `${fontWeight} !important` || "400 !important"
|
|
49
54
|
}
|
|
50
55
|
})
|
|
51
56
|
});
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import StyleBuilder from "../../common/StyleBuilder";
|
|
3
|
-
import formStyle from "../../common/StyleBuilder/formStyle";
|
|
3
|
+
import { formStyle } from "../../common/StyleBuilder/formStyle";
|
|
4
4
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
+
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
5
6
|
const FormPopup = props => {
|
|
6
7
|
const {
|
|
7
8
|
element,
|
|
@@ -9,14 +10,16 @@ const FormPopup = props => {
|
|
|
9
10
|
onClose,
|
|
10
11
|
customProps
|
|
11
12
|
} = props;
|
|
12
|
-
return /*#__PURE__*/_jsx(
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
13
|
+
return /*#__PURE__*/_jsx(_Fragment, {
|
|
14
|
+
children: /*#__PURE__*/_jsx(StyleBuilder, {
|
|
15
|
+
title: "Form",
|
|
16
|
+
type: "formStyle",
|
|
17
|
+
element: element,
|
|
18
|
+
onSave: onSave,
|
|
19
|
+
onClose: onClose,
|
|
20
|
+
renderTabs: formStyle,
|
|
21
|
+
customProps: customProps
|
|
22
|
+
})
|
|
20
23
|
});
|
|
21
24
|
};
|
|
22
25
|
export default FormPopup;
|
|
@@ -144,8 +144,27 @@ const FreeGridItem = props => {
|
|
|
144
144
|
};
|
|
145
145
|
const onAddFormField = () => {
|
|
146
146
|
try {
|
|
147
|
+
const {
|
|
148
|
+
fieldFontFamily,
|
|
149
|
+
fieldFontWeight,
|
|
150
|
+
fieldTextSize,
|
|
151
|
+
fieldTextColor,
|
|
152
|
+
fieldBgColor,
|
|
153
|
+
fieldBorderColor,
|
|
154
|
+
fieldBorderWidth,
|
|
155
|
+
fieldBorderStyle
|
|
156
|
+
} = element?.children[0];
|
|
147
157
|
Transforms.insertNodes(editor, {
|
|
148
|
-
...formField(
|
|
158
|
+
...formField({
|
|
159
|
+
fontFamily: fieldFontFamily ? fieldFontFamily : "",
|
|
160
|
+
fontWeight: fieldFontWeight ? fieldFontWeight : "",
|
|
161
|
+
textSize: fieldTextSize ? fieldTextSize : "",
|
|
162
|
+
textColor: fieldTextColor ? fieldTextColor : "",
|
|
163
|
+
bgColor: fieldBgColor ? fieldBgColor : "",
|
|
164
|
+
borderColor: fieldBorderColor ? fieldBorderColor : "",
|
|
165
|
+
borderWidth: fieldBorderWidth ? fieldBorderWidth : "",
|
|
166
|
+
borderStyle: fieldBorderStyle ? fieldBorderStyle : ""
|
|
167
|
+
})
|
|
149
168
|
}, {
|
|
150
169
|
at: [...path, 0, 0]
|
|
151
170
|
});
|
|
@@ -62,7 +62,8 @@ const GridItem = props => {
|
|
|
62
62
|
textColor,
|
|
63
63
|
animation,
|
|
64
64
|
cellGHeight,
|
|
65
|
-
xsHidden
|
|
65
|
+
xsHidden,
|
|
66
|
+
forceFullWidth
|
|
66
67
|
} = element;
|
|
67
68
|
const {
|
|
68
69
|
vertical,
|
|
@@ -105,13 +106,17 @@ const GridItem = props => {
|
|
|
105
106
|
const getBorderColor = () => {
|
|
106
107
|
return borderColor || "transparent";
|
|
107
108
|
};
|
|
109
|
+
|
|
110
|
+
// getting Grid Item Width value
|
|
111
|
+
const gridWidthBreakPointsValue = getBreakPointsValue(grid, null, "overrideGridSize", true);
|
|
108
112
|
const getBRProps = groupByBreakpoint({
|
|
109
113
|
display: {
|
|
110
114
|
xs: xsHidden ? "none" : "inline-block",
|
|
111
115
|
lg: "inline-block"
|
|
112
116
|
},
|
|
113
117
|
width: {
|
|
114
|
-
...getBreakPointsValue(grid, null, "overrideGridSize", true)
|
|
118
|
+
...getBreakPointsValue(grid, null, "overrideGridSize", true),
|
|
119
|
+
xs: forceFullWidth ? "100%" : gridWidthBreakPointsValue?.xs
|
|
115
120
|
},
|
|
116
121
|
height: {
|
|
117
122
|
...getBreakPointsValue(cellGHeight || "auto")
|
|
@@ -81,7 +81,6 @@ const Link = props => {
|
|
|
81
81
|
const btnProps = handleLinkType(urlPath, linkType, true, showInNewTab === "_blank");
|
|
82
82
|
const navType = getLinkType(linkType, urlPath);
|
|
83
83
|
const hideOpenLink = navType === "page" || !navType;
|
|
84
|
-
console.log("linkType", linkType, navType, hideOpenLink);
|
|
85
84
|
return selected && focused ? /*#__PURE__*/_jsxs("div", {
|
|
86
85
|
className: "element-toolbar hr",
|
|
87
86
|
contentEditable: false,
|
|
@@ -117,7 +116,6 @@ const Link = props => {
|
|
|
117
116
|
}) : null;
|
|
118
117
|
};
|
|
119
118
|
const buttonProps = handleLinkType(urlPath, linkType, readOnly, showInNewTab === "_blank");
|
|
120
|
-
console.log("buttonProps===>", buttonProps);
|
|
121
119
|
return /*#__PURE__*/_jsxs("div", {
|
|
122
120
|
className: "link",
|
|
123
121
|
children: [/*#__PURE__*/_jsx(Box, {
|
|
@@ -84,7 +84,8 @@ const FontLoader = props => {
|
|
|
84
84
|
});
|
|
85
85
|
let families = Array.from(fontSet);
|
|
86
86
|
families = correctFontArray(families.join(", "));
|
|
87
|
-
families = families
|
|
87
|
+
families = families?.map(font => font?.replace(/\"/g, ""));
|
|
88
|
+
families = families?.map(font => font?.replace(", sans-serif", "")); //This is temporary fix for patch
|
|
88
89
|
loadFontsInBatches(families);
|
|
89
90
|
}
|
|
90
91
|
}, []);
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { Transforms, Node } from "slate";
|
|
3
|
-
import { Box } from "@mui/material";
|
|
3
|
+
import { Accordion, AccordionDetails, AccordionSummary, Box, createTheme, ThemeProvider, Typography } from "@mui/material";
|
|
4
4
|
import { StyleContent } from "../../../StyleBuilder";
|
|
5
|
-
import formStyle from "../../../StyleBuilder/formStyle";
|
|
5
|
+
import { formStyle } from "../../../StyleBuilder/formStyle";
|
|
6
6
|
import { ReactEditor } from "slate-react";
|
|
7
|
+
import { ExpandMoreOutlined } from "@mui/icons-material";
|
|
7
8
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
10
|
const FormSettings = props => {
|
|
9
11
|
const {
|
|
10
12
|
editor,
|
|
@@ -14,7 +16,10 @@ const FormSettings = props => {
|
|
|
14
16
|
const item_path = path?.split("|").map(m => parseInt(m));
|
|
15
17
|
const element_path = [...item_path];
|
|
16
18
|
const element = Node.get(editor, element_path);
|
|
17
|
-
const styleMaps = formStyle
|
|
19
|
+
const styleMaps = formStyle;
|
|
20
|
+
const {
|
|
21
|
+
hideTools
|
|
22
|
+
} = customProps || {};
|
|
18
23
|
const onChange = data => {
|
|
19
24
|
const currentPath = ReactEditor.findPath(editor, element);
|
|
20
25
|
const updateData = {
|
|
@@ -26,23 +31,150 @@ const FormSettings = props => {
|
|
|
26
31
|
}, {
|
|
27
32
|
at: [...currentPath, 0]
|
|
28
33
|
});
|
|
34
|
+
// adding form field style to the current form node
|
|
35
|
+
const currentNode = Node.get(editor, element_path);
|
|
36
|
+
if (currentNode) {
|
|
37
|
+
currentNode?.children[0]?.children?.forEach((item, index) => {
|
|
38
|
+
Transforms.setNodes(editor, {
|
|
39
|
+
bgColor: data?.fieldBgColor ? data?.fieldBgColor : item?.bgColor,
|
|
40
|
+
borderColor: data?.fieldBorderColor ? data?.fieldBorderColor : item?.borderColor,
|
|
41
|
+
borderStyle: data?.fieldBorderStyle ? data?.fieldBorderStyle : item?.borderStyle,
|
|
42
|
+
borderWidth: data?.fieldBorderWidth ? data?.fieldBorderWidth : item?.borderWidth,
|
|
43
|
+
textColor: data?.fieldTextColor ? data?.fieldTextColor : item?.textColor,
|
|
44
|
+
fontFamily: data?.fieldFontFamily ? data?.fieldFontFamily : item?.fontFamily,
|
|
45
|
+
textSize: data?.fieldTextSize ? data?.fieldTextSize : item?.textSize,
|
|
46
|
+
fontWeight: data?.fieldFontWeight ? data?.fieldFontWeight : item?.fontWeight
|
|
47
|
+
}, {
|
|
48
|
+
at: [...currentPath, 0, index]
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
}
|
|
29
52
|
};
|
|
30
53
|
const handleClose = () => {
|
|
31
54
|
console.log("close");
|
|
32
55
|
};
|
|
56
|
+
const muiTheme = createTheme({
|
|
57
|
+
components: {
|
|
58
|
+
MuiAccordion: {
|
|
59
|
+
styleOverrides: {
|
|
60
|
+
root: {
|
|
61
|
+
padding: "0px",
|
|
62
|
+
"&.Mui-expanded": {
|
|
63
|
+
margin: "0"
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
defaultProps: {
|
|
68
|
+
elevation: 0
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
});
|
|
33
73
|
return /*#__PURE__*/_jsx(Box, {
|
|
34
74
|
component: "div",
|
|
35
75
|
className: "item-w",
|
|
36
76
|
children: styleMaps?.map((m, i) => {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
77
|
+
if (m?.hasChildrenTabs) {
|
|
78
|
+
return /*#__PURE__*/_jsx(ThemeProvider, {
|
|
79
|
+
theme: muiTheme,
|
|
80
|
+
children: /*#__PURE__*/_jsxs(Accordion, {
|
|
81
|
+
defaultExpanded: true,
|
|
82
|
+
children: [/*#__PURE__*/_jsx(AccordionSummary, {
|
|
83
|
+
expandIcon: /*#__PURE__*/_jsx(ExpandMoreOutlined, {}),
|
|
84
|
+
sx: {
|
|
85
|
+
padding: "0px"
|
|
86
|
+
},
|
|
87
|
+
children: /*#__PURE__*/_jsx(Typography, {
|
|
88
|
+
variant: "h3",
|
|
89
|
+
className: "settingsHeader",
|
|
90
|
+
color: "primary",
|
|
91
|
+
style: {
|
|
92
|
+
fontSize: "14px !important",
|
|
93
|
+
fontWeight: "400"
|
|
94
|
+
},
|
|
95
|
+
children: m?.tab
|
|
96
|
+
})
|
|
97
|
+
}), /*#__PURE__*/_jsx(AccordionDetails, {
|
|
98
|
+
sx: {
|
|
99
|
+
padding: "5px"
|
|
100
|
+
},
|
|
101
|
+
children: m?.fields.filter(f => (hideTools || []).indexOf(f.value) === -1).map((field, index) => {
|
|
102
|
+
return /*#__PURE__*/_jsx(ThemeProvider, {
|
|
103
|
+
theme: muiTheme,
|
|
104
|
+
children: /*#__PURE__*/_jsxs(Accordion, {
|
|
105
|
+
defaultExpanded: true,
|
|
106
|
+
children: [/*#__PURE__*/_jsx(AccordionSummary, {
|
|
107
|
+
expandIcon: /*#__PURE__*/_jsx(ExpandMoreOutlined, {}),
|
|
108
|
+
sx: {
|
|
109
|
+
padding: "0px"
|
|
110
|
+
},
|
|
111
|
+
children: /*#__PURE__*/_jsx(Typography, {
|
|
112
|
+
variant: "h3",
|
|
113
|
+
className: "settingsHeader",
|
|
114
|
+
color: "primary",
|
|
115
|
+
style: {
|
|
116
|
+
fontSize: "14px !important",
|
|
117
|
+
fontWeight: "400"
|
|
118
|
+
},
|
|
119
|
+
children: field?.tab
|
|
120
|
+
})
|
|
121
|
+
}), /*#__PURE__*/_jsx(AccordionDetails, {
|
|
122
|
+
sx: {
|
|
123
|
+
padding: "0px"
|
|
124
|
+
},
|
|
125
|
+
children: /*#__PURE__*/_jsx(StyleContent, {
|
|
126
|
+
renderTabs: [field],
|
|
127
|
+
value: field.value,
|
|
128
|
+
element: element,
|
|
129
|
+
onChange: onChange,
|
|
130
|
+
customElement: element?.children?.[0] || null,
|
|
131
|
+
customProps: customProps,
|
|
132
|
+
handleClose: handleClose
|
|
133
|
+
}, `tab_${field.value}_${index}`)
|
|
134
|
+
})]
|
|
135
|
+
}, `accordion_${index}`)
|
|
136
|
+
}, index);
|
|
137
|
+
})
|
|
138
|
+
})]
|
|
139
|
+
}, `accordion_${i}`)
|
|
140
|
+
}, i);
|
|
141
|
+
} else {
|
|
142
|
+
return /*#__PURE__*/_jsx(ThemeProvider, {
|
|
143
|
+
theme: muiTheme,
|
|
144
|
+
children: /*#__PURE__*/_jsxs(Accordion, {
|
|
145
|
+
defaultExpanded: true,
|
|
146
|
+
children: [/*#__PURE__*/_jsx(AccordionSummary, {
|
|
147
|
+
expandIcon: /*#__PURE__*/_jsx(ExpandMoreOutlined, {}),
|
|
148
|
+
sx: {
|
|
149
|
+
padding: "0px"
|
|
150
|
+
},
|
|
151
|
+
children: /*#__PURE__*/_jsx(Typography, {
|
|
152
|
+
variant: "h3",
|
|
153
|
+
className: "settingsHeader",
|
|
154
|
+
color: "primary",
|
|
155
|
+
style: {
|
|
156
|
+
fontSize: "14px !important",
|
|
157
|
+
fontWeight: "400"
|
|
158
|
+
},
|
|
159
|
+
children: m?.tab
|
|
160
|
+
})
|
|
161
|
+
}), /*#__PURE__*/_jsx(AccordionDetails, {
|
|
162
|
+
sx: {
|
|
163
|
+
padding: "0px"
|
|
164
|
+
},
|
|
165
|
+
children: /*#__PURE__*/_jsx(StyleContent, {
|
|
166
|
+
renderTabs: styleMaps,
|
|
167
|
+
value: m.value,
|
|
168
|
+
element: element,
|
|
169
|
+
customElement: element?.children?.[0] || null,
|
|
170
|
+
onChange: onChange,
|
|
171
|
+
customProps: customProps,
|
|
172
|
+
handleClose: handleClose
|
|
173
|
+
}, `tab_${m.value}_$${i}`)
|
|
174
|
+
})]
|
|
175
|
+
}, `accordion_${i}`)
|
|
176
|
+
}, i);
|
|
177
|
+
}
|
|
46
178
|
})
|
|
47
179
|
});
|
|
48
180
|
};
|
|
@@ -171,14 +171,10 @@ const RnD = props => {
|
|
|
171
171
|
anchorEl: rndRef?.current
|
|
172
172
|
});
|
|
173
173
|
}
|
|
174
|
-
focusSelection(editor, {
|
|
175
|
-
path
|
|
176
|
-
});
|
|
174
|
+
// focusSelection(editor, { path });temporary fix for scroll issue
|
|
177
175
|
break;
|
|
178
176
|
case 2:
|
|
179
|
-
focusSelection(editor, {
|
|
180
|
-
path
|
|
181
|
-
});
|
|
177
|
+
// focusSelection(editor, { path });temporary fix for scroll issue
|
|
182
178
|
setSelectedElement({
|
|
183
179
|
path: str_path,
|
|
184
180
|
enable: EDIT_MODES.includes(childType) ? 2 : 1,
|
|
@@ -5,6 +5,8 @@ import useWindowResize from "../../../hooks/useWindowResize";
|
|
|
5
5
|
import { useEditorContext } from "../../../hooks/useMouseMove";
|
|
6
6
|
import FontFamilyAutocomplete from "../../../Toolbar/FormatTools/FontFamilyAutocomplete";
|
|
7
7
|
import { useSlate } from "slate-react";
|
|
8
|
+
|
|
9
|
+
// hideMetaDataOptions -- pass true to hide metadata option in select field
|
|
8
10
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
11
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
10
12
|
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
@@ -26,7 +28,8 @@ const TextOptions = props => {
|
|
|
26
28
|
options,
|
|
27
29
|
renderOption,
|
|
28
30
|
width,
|
|
29
|
-
webFont = false
|
|
31
|
+
webFont = false,
|
|
32
|
+
hideMetaDataOptions = false
|
|
30
33
|
} = data;
|
|
31
34
|
const {
|
|
32
35
|
fontFamilies
|
|
@@ -35,7 +38,7 @@ const TextOptions = props => {
|
|
|
35
38
|
const [size] = useWindowResize();
|
|
36
39
|
const value = isBreakpoint ? getBreakPointsValue(val, size?.device) : val;
|
|
37
40
|
const metaDataMappingOptions = metaMappings?.boards || [];
|
|
38
|
-
const updatedOption = elementProps?.metadatamapping ? [...options, ...metaDataMappingOptions] : webFont ? fontFamilies?.options : options;
|
|
41
|
+
const updatedOption = !hideMetaDataOptions && elementProps?.metadatamapping ? [...options, ...metaDataMappingOptions] : webFont ? fontFamilies?.options : options;
|
|
39
42
|
const handleChange = (e, d) => {
|
|
40
43
|
if (isBreakpoint) {
|
|
41
44
|
onChange({
|
|
@@ -1,38 +1,187 @@
|
|
|
1
|
-
import { fontOptions } from "../../utils/font";
|
|
1
|
+
import { fontOptions, fontWeightOptions } from "../../utils/font";
|
|
2
2
|
import Icon from "../Icon";
|
|
3
3
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
4
|
-
const formStyle = [{
|
|
5
|
-
tab: "
|
|
6
|
-
value: "
|
|
4
|
+
export const formStyle = [{
|
|
5
|
+
tab: "Form Settings",
|
|
6
|
+
value: "FormSetting",
|
|
7
|
+
hasChildrenTabs: true,
|
|
7
8
|
fields: [{
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
tab: "General",
|
|
10
|
+
value: "general",
|
|
11
|
+
fields: [{
|
|
12
|
+
label: "Form Name",
|
|
13
|
+
key: "formName",
|
|
14
|
+
type: "text"
|
|
15
|
+
}, {
|
|
16
|
+
label: "Send Form to Email",
|
|
17
|
+
key: "email",
|
|
18
|
+
type: "text",
|
|
19
|
+
placeholder: "Enter Email to send the response..."
|
|
20
|
+
}, {
|
|
21
|
+
label: "Save Response",
|
|
22
|
+
key: "saveResponse",
|
|
23
|
+
type: "selectBox",
|
|
24
|
+
placeholder: "Save Response"
|
|
25
|
+
}]
|
|
11
26
|
}, {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
27
|
+
tab: "Form Title",
|
|
28
|
+
value: "formTitle",
|
|
29
|
+
fields: [{
|
|
30
|
+
label: "Title",
|
|
31
|
+
key: "formTitle",
|
|
32
|
+
type: "text"
|
|
33
|
+
}, {
|
|
34
|
+
label: "Font Family",
|
|
35
|
+
key: "fontFamily",
|
|
36
|
+
type: "textOptions",
|
|
37
|
+
hideMetaDataOptions: true,
|
|
38
|
+
options: fontOptions,
|
|
39
|
+
webFont: true,
|
|
40
|
+
width: 7,
|
|
41
|
+
renderOption: option => {
|
|
42
|
+
return /*#__PURE__*/_jsx("span", {
|
|
43
|
+
style: {
|
|
44
|
+
fontFamily: option.value
|
|
45
|
+
},
|
|
46
|
+
children: option.text
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
}, {
|
|
50
|
+
label: "Font Size",
|
|
51
|
+
key: "textSize",
|
|
52
|
+
type: "fontSize",
|
|
53
|
+
width: 5,
|
|
54
|
+
placeholder: "16px"
|
|
55
|
+
}, {
|
|
56
|
+
label: "Text Align",
|
|
57
|
+
key: "textAlign",
|
|
58
|
+
type: "textAlign",
|
|
59
|
+
placeholder: "16px or 1em"
|
|
60
|
+
}]
|
|
61
|
+
}, {
|
|
62
|
+
tab: "Banner Spacing",
|
|
63
|
+
value: "bannerSpacing",
|
|
64
|
+
fields: [{
|
|
65
|
+
label: "Banner Spacing",
|
|
66
|
+
key: "bannerSpacing",
|
|
67
|
+
type: "bannerSpacing"
|
|
68
|
+
}]
|
|
69
|
+
}, {
|
|
70
|
+
tab: "Border",
|
|
71
|
+
value: "border",
|
|
72
|
+
fields: [{
|
|
73
|
+
label: "Border Radius",
|
|
74
|
+
key: "borderRadius",
|
|
75
|
+
type: "borderRadius"
|
|
76
|
+
}, {
|
|
77
|
+
label: "Border Width",
|
|
78
|
+
key: "borderWidth",
|
|
79
|
+
type: "text",
|
|
80
|
+
placeholder: "1px"
|
|
81
|
+
}, {
|
|
82
|
+
label: "Border Style",
|
|
83
|
+
key: "borderStyle",
|
|
84
|
+
type: "textOptions",
|
|
85
|
+
hideMetaDataOptions: true,
|
|
86
|
+
options: [{
|
|
87
|
+
text: "Solid",
|
|
88
|
+
value: "solid"
|
|
89
|
+
}, {
|
|
90
|
+
text: "Dotted",
|
|
91
|
+
value: "dotted"
|
|
92
|
+
}, {
|
|
93
|
+
text: "Dashed",
|
|
94
|
+
value: "dashed"
|
|
95
|
+
}],
|
|
96
|
+
renderOption: option => {
|
|
97
|
+
return /*#__PURE__*/_jsx("span", {
|
|
98
|
+
children: option.text
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
}]
|
|
102
|
+
}, {
|
|
103
|
+
tab: "Colors",
|
|
104
|
+
value: "colors",
|
|
105
|
+
fields: [{
|
|
106
|
+
label: "Text Color",
|
|
107
|
+
key: "textColor",
|
|
108
|
+
type: "color",
|
|
109
|
+
needPreview: true
|
|
110
|
+
}, {
|
|
111
|
+
label: "Background Color",
|
|
112
|
+
key: "bgColor",
|
|
113
|
+
type: "color"
|
|
114
|
+
}, {
|
|
115
|
+
label: "Border Color",
|
|
116
|
+
key: "borderColor",
|
|
117
|
+
type: "color"
|
|
118
|
+
}]
|
|
119
|
+
}, {
|
|
120
|
+
tab: "Position",
|
|
121
|
+
value: "position",
|
|
122
|
+
fields: [{
|
|
123
|
+
label: "Set Postion (Vertical & Horizantal)",
|
|
124
|
+
key: "alignment",
|
|
125
|
+
type: "alignment"
|
|
126
|
+
}]
|
|
127
|
+
}, {
|
|
128
|
+
tab: "Background",
|
|
129
|
+
value: "backgroundImage",
|
|
130
|
+
fields: [{
|
|
131
|
+
label: "URL",
|
|
132
|
+
key: "backgroundImage",
|
|
133
|
+
type: "text"
|
|
134
|
+
}, {
|
|
135
|
+
label: "Background Image",
|
|
136
|
+
key: "backgroundImage",
|
|
137
|
+
type: "backgroundImage"
|
|
138
|
+
}]
|
|
139
|
+
}, {
|
|
140
|
+
tab: "Add to Boards",
|
|
141
|
+
value: "metadatamapping",
|
|
142
|
+
fields: [{
|
|
143
|
+
label: "Add response to contacts board",
|
|
144
|
+
key: "metadatamapping",
|
|
145
|
+
type: "metadatamapping",
|
|
146
|
+
compType: "card",
|
|
147
|
+
content: "By default, form responses are added as separate cards on the default contact board.",
|
|
148
|
+
value: "mappingToContactBoard",
|
|
149
|
+
infoIcon: /*#__PURE__*/_jsx(Icon, {
|
|
150
|
+
icon: "info"
|
|
151
|
+
})
|
|
152
|
+
}, {
|
|
153
|
+
label: "Create a separate board",
|
|
154
|
+
key: "metadatamapping",
|
|
155
|
+
type: "metadatamapping",
|
|
156
|
+
compType: "card",
|
|
157
|
+
content: "By default, form responses are added as separate cards on a new board (Contact Us).",
|
|
158
|
+
value: "mappingToSeparateBoard",
|
|
159
|
+
infoIcon: /*#__PURE__*/_jsx(Icon, {
|
|
160
|
+
icon: "info"
|
|
161
|
+
})
|
|
162
|
+
}]
|
|
16
163
|
}, {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
164
|
+
tab: "Save As Template",
|
|
165
|
+
value: "saveAsTemplate",
|
|
166
|
+
needActions: false,
|
|
167
|
+
hideOnFGS: true,
|
|
168
|
+
fields: [{
|
|
169
|
+
label: "Template Image",
|
|
170
|
+
key: "saveAsTemplate",
|
|
171
|
+
type: "saveAsTemplate"
|
|
172
|
+
}]
|
|
21
173
|
}]
|
|
22
174
|
}, {
|
|
23
|
-
tab: "
|
|
24
|
-
value: "
|
|
175
|
+
tab: "Field Settings",
|
|
176
|
+
value: "FieldSetting",
|
|
177
|
+
hasChildrenTabs: false,
|
|
25
178
|
fields: [{
|
|
26
|
-
label: "Title",
|
|
27
|
-
key: "formTitle",
|
|
28
|
-
type: "text"
|
|
29
|
-
}, {
|
|
30
179
|
label: "Font Family",
|
|
31
|
-
key: "
|
|
180
|
+
key: "fieldFontFamily",
|
|
32
181
|
type: "textOptions",
|
|
182
|
+
hideMetaDataOptions: true,
|
|
33
183
|
options: fontOptions,
|
|
34
184
|
webFont: true,
|
|
35
|
-
width: 7,
|
|
36
185
|
renderOption: option => {
|
|
37
186
|
return /*#__PURE__*/_jsx("span", {
|
|
38
187
|
style: {
|
|
@@ -41,42 +190,52 @@ const formStyle = [{
|
|
|
41
190
|
children: option.text
|
|
42
191
|
});
|
|
43
192
|
}
|
|
193
|
+
}, {
|
|
194
|
+
label: "Font Weight",
|
|
195
|
+
key: "fieldFontWeight",
|
|
196
|
+
type: "textOptions",
|
|
197
|
+
width: 5,
|
|
198
|
+
options: fontWeightOptions,
|
|
199
|
+
hideMetaDataOptions: true,
|
|
200
|
+
renderOption: option => {
|
|
201
|
+
return /*#__PURE__*/_jsx("span", {
|
|
202
|
+
style: {
|
|
203
|
+
fontWeight: option.value
|
|
204
|
+
},
|
|
205
|
+
children: option.text
|
|
206
|
+
});
|
|
207
|
+
}
|
|
44
208
|
}, {
|
|
45
209
|
label: "Font Size",
|
|
46
|
-
key: "
|
|
210
|
+
key: "fieldTextSize",
|
|
47
211
|
type: "fontSize",
|
|
48
212
|
width: 5,
|
|
49
213
|
placeholder: "16px"
|
|
50
214
|
}, {
|
|
51
|
-
label: "Text
|
|
52
|
-
key: "
|
|
53
|
-
type: "
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
label: "
|
|
61
|
-
key: "
|
|
62
|
-
type: "
|
|
63
|
-
}]
|
|
64
|
-
}, {
|
|
65
|
-
tab: "Border",
|
|
66
|
-
value: "border",
|
|
67
|
-
fields: [{
|
|
68
|
-
label: "Border Radius",
|
|
69
|
-
key: "borderRadius",
|
|
70
|
-
type: "borderRadius"
|
|
215
|
+
label: "Text Color",
|
|
216
|
+
key: "fieldTextColor",
|
|
217
|
+
type: "color",
|
|
218
|
+
needPreview: true
|
|
219
|
+
}, {
|
|
220
|
+
label: "Background Color",
|
|
221
|
+
key: "fieldBgColor",
|
|
222
|
+
type: "color"
|
|
223
|
+
}, {
|
|
224
|
+
label: "Border Color",
|
|
225
|
+
key: "fieldBorderColor",
|
|
226
|
+
type: "color"
|
|
71
227
|
}, {
|
|
72
228
|
label: "Border Width",
|
|
73
|
-
key: "
|
|
229
|
+
key: "fieldBorderWidth",
|
|
74
230
|
type: "text",
|
|
231
|
+
width: 5,
|
|
75
232
|
placeholder: "1px"
|
|
76
233
|
}, {
|
|
77
234
|
label: "Border Style",
|
|
78
|
-
key: "
|
|
235
|
+
key: "fieldBorderStyle",
|
|
79
236
|
type: "textOptions",
|
|
237
|
+
hideMetaDataOptions: true,
|
|
238
|
+
width: 5,
|
|
80
239
|
options: [{
|
|
81
240
|
text: "Solid",
|
|
82
241
|
value: "solid"
|
|
@@ -93,76 +252,4 @@ const formStyle = [{
|
|
|
93
252
|
});
|
|
94
253
|
}
|
|
95
254
|
}]
|
|
96
|
-
}
|
|
97
|
-
tab: "Colors",
|
|
98
|
-
value: "colors",
|
|
99
|
-
fields: [{
|
|
100
|
-
label: "Text Color",
|
|
101
|
-
key: "textColor",
|
|
102
|
-
type: "color",
|
|
103
|
-
needPreview: true
|
|
104
|
-
}, {
|
|
105
|
-
label: "Background Color",
|
|
106
|
-
key: "bgColor",
|
|
107
|
-
type: "color"
|
|
108
|
-
}, {
|
|
109
|
-
label: "Border Color",
|
|
110
|
-
key: "borderColor",
|
|
111
|
-
type: "color"
|
|
112
|
-
}]
|
|
113
|
-
}, {
|
|
114
|
-
tab: "Position",
|
|
115
|
-
value: "position",
|
|
116
|
-
fields: [{
|
|
117
|
-
label: "Set Postion (Vertical & Horizantal)",
|
|
118
|
-
key: "alignment",
|
|
119
|
-
type: "alignment"
|
|
120
|
-
}]
|
|
121
|
-
}, {
|
|
122
|
-
tab: "Background",
|
|
123
|
-
value: "backgroundImage",
|
|
124
|
-
fields: [{
|
|
125
|
-
label: "URL",
|
|
126
|
-
key: "backgroundImage",
|
|
127
|
-
type: "text"
|
|
128
|
-
}, {
|
|
129
|
-
label: "Background Image",
|
|
130
|
-
key: "backgroundImage",
|
|
131
|
-
type: "backgroundImage"
|
|
132
|
-
}]
|
|
133
|
-
}, {
|
|
134
|
-
tab: "Add to Boards",
|
|
135
|
-
value: "metadatamapping",
|
|
136
|
-
fields: [{
|
|
137
|
-
label: "Add response to contacts board",
|
|
138
|
-
key: "metadatamapping",
|
|
139
|
-
type: "metadatamapping",
|
|
140
|
-
compType: "card",
|
|
141
|
-
content: "By default, form responses are added as separate cards on the default contact board.",
|
|
142
|
-
value: "mappingToContactBoard",
|
|
143
|
-
infoIcon: /*#__PURE__*/_jsx(Icon, {
|
|
144
|
-
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: /*#__PURE__*/_jsx(Icon, {
|
|
154
|
-
icon: "info"
|
|
155
|
-
})
|
|
156
|
-
}]
|
|
157
|
-
}, {
|
|
158
|
-
tab: "Save As Template",
|
|
159
|
-
value: "saveAsTemplate",
|
|
160
|
-
needActions: false,
|
|
161
|
-
hideOnFGS: true,
|
|
162
|
-
fields: [{
|
|
163
|
-
label: "Template Image",
|
|
164
|
-
key: "saveAsTemplate",
|
|
165
|
-
type: "saveAsTemplate"
|
|
166
|
-
}]
|
|
167
|
-
}];
|
|
168
|
-
export default formStyle;
|
|
255
|
+
}];
|
|
@@ -79,6 +79,11 @@ const gridItemStyle = [{
|
|
|
79
79
|
label: "Width Size",
|
|
80
80
|
key: "grid",
|
|
81
81
|
type: "gridSize"
|
|
82
|
+
}, {
|
|
83
|
+
label: "Force Full Width on Mobile",
|
|
84
|
+
key: "forceFullWidth",
|
|
85
|
+
type: "selectBox",
|
|
86
|
+
placeholder: "Force Full Width on Mobile"
|
|
82
87
|
}, {
|
|
83
88
|
label: "Height",
|
|
84
89
|
key: "cellGHeight",
|
|
@@ -1,12 +1,31 @@
|
|
|
1
1
|
import React, { useEffect, useState } from "react";
|
|
2
|
-
import { DialogTitle, DialogContent, DialogActions, Button, Grid, IconButton, Typography, Drawer, SwipeableDrawer } from "@mui/material";
|
|
2
|
+
import { DialogTitle, DialogContent, DialogActions, Button, Grid, IconButton, Typography, Drawer, SwipeableDrawer, Accordion, AccordionSummary, AccordionDetails, createTheme } from "@mui/material";
|
|
3
3
|
import FieldMap from "./fieldTypes";
|
|
4
4
|
import CloseIcon from "@mui/icons-material/Close";
|
|
5
5
|
import useCommonStyle from "../../commonStyle";
|
|
6
6
|
import { useEditorContext } from "../../hooks/useMouseMove";
|
|
7
|
+
import { ThemeProvider } from "@mui/material/styles";
|
|
8
|
+
import { ExpandMoreOutlined, Height } from "@mui/icons-material";
|
|
7
9
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
10
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
11
|
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
12
|
+
const muiTheme = createTheme({
|
|
13
|
+
components: {
|
|
14
|
+
MuiAccordion: {
|
|
15
|
+
styleOverrides: {
|
|
16
|
+
root: {
|
|
17
|
+
padding: "0px",
|
|
18
|
+
"&.Mui-expanded": {
|
|
19
|
+
margin: "0"
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
defaultProps: {
|
|
24
|
+
elevation: 0
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
});
|
|
10
29
|
export const StyleContent = props => {
|
|
11
30
|
const {
|
|
12
31
|
value,
|
|
@@ -73,6 +92,9 @@ const StyleBuilder = props => {
|
|
|
73
92
|
} = tabVal || {
|
|
74
93
|
needActions: true
|
|
75
94
|
};
|
|
95
|
+
const {
|
|
96
|
+
hideTools
|
|
97
|
+
} = customProps || {};
|
|
76
98
|
useEffect(() => {
|
|
77
99
|
if (customProps?.onDrawerOpen) {
|
|
78
100
|
customProps?.onDrawerOpen(true);
|
|
@@ -140,17 +162,108 @@ const StyleBuilder = props => {
|
|
|
140
162
|
}), /*#__PURE__*/_jsx(DialogContent, {
|
|
141
163
|
sx: {
|
|
142
164
|
maxHeight: isMobile ? `500px` : `${window.innerHeight - 125}px`,
|
|
143
|
-
padding: "
|
|
165
|
+
padding: "0px"
|
|
144
166
|
},
|
|
145
167
|
children: renderTabs.map((m, i) => {
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
168
|
+
if (m?.hasChildrenTabs) {
|
|
169
|
+
return /*#__PURE__*/_jsx(ThemeProvider, {
|
|
170
|
+
theme: muiTheme,
|
|
171
|
+
children: /*#__PURE__*/_jsxs(Accordion, {
|
|
172
|
+
defaultExpanded: true,
|
|
173
|
+
children: [/*#__PURE__*/_jsx(AccordionSummary, {
|
|
174
|
+
expandIcon: /*#__PURE__*/_jsx(ExpandMoreOutlined, {}),
|
|
175
|
+
sx: {
|
|
176
|
+
padding: "0px"
|
|
177
|
+
},
|
|
178
|
+
children: /*#__PURE__*/_jsx(Typography, {
|
|
179
|
+
variant: "h3",
|
|
180
|
+
className: "settingsHeader",
|
|
181
|
+
color: "primary",
|
|
182
|
+
style: {
|
|
183
|
+
fontSize: "14px !important",
|
|
184
|
+
fontWeight: "400"
|
|
185
|
+
},
|
|
186
|
+
children: m?.tab
|
|
187
|
+
})
|
|
188
|
+
}), /*#__PURE__*/_jsx(AccordionDetails, {
|
|
189
|
+
sx: {
|
|
190
|
+
padding: "5px"
|
|
191
|
+
},
|
|
192
|
+
children: m?.fields.filter(f => (hideTools || []).indexOf(f.value) === -1).map((field, index) => {
|
|
193
|
+
return /*#__PURE__*/_jsx(ThemeProvider, {
|
|
194
|
+
theme: muiTheme,
|
|
195
|
+
children: /*#__PURE__*/_jsxs(Accordion, {
|
|
196
|
+
defaultExpanded: true,
|
|
197
|
+
children: [/*#__PURE__*/_jsx(AccordionSummary, {
|
|
198
|
+
expandIcon: /*#__PURE__*/_jsx(ExpandMoreOutlined, {}),
|
|
199
|
+
sx: {
|
|
200
|
+
padding: "0px"
|
|
201
|
+
},
|
|
202
|
+
children: /*#__PURE__*/_jsx(Typography, {
|
|
203
|
+
variant: "h3",
|
|
204
|
+
className: "settingsHeader",
|
|
205
|
+
color: "primary",
|
|
206
|
+
style: {
|
|
207
|
+
fontSize: "14px !important",
|
|
208
|
+
fontWeight: "400"
|
|
209
|
+
},
|
|
210
|
+
children: field?.tab
|
|
211
|
+
})
|
|
212
|
+
}), /*#__PURE__*/_jsx(AccordionDetails, {
|
|
213
|
+
sx: {
|
|
214
|
+
padding: "0px"
|
|
215
|
+
},
|
|
216
|
+
children: /*#__PURE__*/_jsx(StyleContent, {
|
|
217
|
+
renderTabs: [field],
|
|
218
|
+
value: field.value,
|
|
219
|
+
element: elementProps,
|
|
220
|
+
onChange: onElementPropsChange,
|
|
221
|
+
customProps: customProps,
|
|
222
|
+
handleClose: handleClose
|
|
223
|
+
}, `tab_${field.value}_${index}`)
|
|
224
|
+
})]
|
|
225
|
+
}, `accordion_${index}`)
|
|
226
|
+
}, index);
|
|
227
|
+
})
|
|
228
|
+
})]
|
|
229
|
+
}, `accordion_${i}`)
|
|
230
|
+
}, i);
|
|
231
|
+
} else {
|
|
232
|
+
return /*#__PURE__*/_jsx(ThemeProvider, {
|
|
233
|
+
theme: muiTheme,
|
|
234
|
+
children: /*#__PURE__*/_jsxs(Accordion, {
|
|
235
|
+
defaultExpanded: true,
|
|
236
|
+
children: [/*#__PURE__*/_jsx(AccordionSummary, {
|
|
237
|
+
expandIcon: /*#__PURE__*/_jsx(ExpandMoreOutlined, {}),
|
|
238
|
+
sx: {
|
|
239
|
+
padding: "0px"
|
|
240
|
+
},
|
|
241
|
+
children: /*#__PURE__*/_jsx(Typography, {
|
|
242
|
+
variant: "h3",
|
|
243
|
+
className: "settingsHeader",
|
|
244
|
+
color: "primary",
|
|
245
|
+
style: {
|
|
246
|
+
fontSize: "14px !important",
|
|
247
|
+
fontWeight: "400"
|
|
248
|
+
},
|
|
249
|
+
children: m?.tab
|
|
250
|
+
})
|
|
251
|
+
}), /*#__PURE__*/_jsx(AccordionDetails, {
|
|
252
|
+
sx: {
|
|
253
|
+
padding: "0px"
|
|
254
|
+
},
|
|
255
|
+
children: /*#__PURE__*/_jsx(StyleContent, {
|
|
256
|
+
renderTabs: renderTabs,
|
|
257
|
+
value: m.value,
|
|
258
|
+
element: elementProps,
|
|
259
|
+
onChange: onElementPropsChange,
|
|
260
|
+
customProps: customProps,
|
|
261
|
+
handleClose: handleClose
|
|
262
|
+
}, `tab_${m.value}_$${i}`)
|
|
263
|
+
})]
|
|
264
|
+
}, `accordion_${i}`)
|
|
265
|
+
}, i);
|
|
266
|
+
}
|
|
154
267
|
})
|
|
155
268
|
}), needActions ? /*#__PURE__*/_jsxs(DialogActions, {
|
|
156
269
|
sx: {
|
|
@@ -60,7 +60,14 @@ export const signedTextFonts = Object.keys(fontFamilyMap).slice(-12).map(m => {
|
|
|
60
60
|
};
|
|
61
61
|
});
|
|
62
62
|
export const headingMap = {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
};
|
|
63
|
+
headingOne: "32px",
|
|
64
|
+
headingTwo: "24px",
|
|
65
|
+
headingThree: "19px"
|
|
66
|
+
};
|
|
67
|
+
export const fontWeightOptions = [{
|
|
68
|
+
text: "Bold",
|
|
69
|
+
value: "500"
|
|
70
|
+
}, {
|
|
71
|
+
text: "Bolder",
|
|
72
|
+
value: "600"
|
|
73
|
+
}];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Transforms } from "slate";
|
|
2
|
-
export const formField =
|
|
2
|
+
export const formField = data => {
|
|
3
3
|
return {
|
|
4
4
|
type: "form-field",
|
|
5
5
|
grid: 6,
|
|
@@ -12,14 +12,18 @@ export const formField = () => {
|
|
|
12
12
|
text: ""
|
|
13
13
|
}],
|
|
14
14
|
field_type: "text",
|
|
15
|
-
bgColor: "rgba(255, 255, 255, 1)",
|
|
16
|
-
borderColor: "#ccc",
|
|
15
|
+
bgColor: data?.bgColor ? data?.bgColor : "rgba(255, 255, 255, 1)",
|
|
16
|
+
borderColor: data?.borderColor ? data?.borderColor : "#ccc",
|
|
17
17
|
bannerSpacing: {
|
|
18
18
|
left: 16,
|
|
19
19
|
right: 16,
|
|
20
20
|
top: 16,
|
|
21
21
|
bottom: 16
|
|
22
|
-
}
|
|
22
|
+
},
|
|
23
|
+
fontFamily: data?.fontFamily ? data?.fontFamily : "",
|
|
24
|
+
textSize: data?.textSize ? data?.textSize : "",
|
|
25
|
+
textColor: data?.textColor ? data?.textColor : "",
|
|
26
|
+
fontWeight: data?.fontWeight ? data?.fontWeight : "500"
|
|
23
27
|
};
|
|
24
28
|
};
|
|
25
29
|
export const insertGridItem = editor => {
|