@flozy/editor 3.8.7 → 3.8.9

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.
Files changed (188) hide show
  1. package/dist/Editor/ChatEditor.js +2 -2
  2. package/dist/Editor/CommonEditor.js +170 -166
  3. package/dist/Editor/DialogWrapper.js +4 -3
  4. package/dist/Editor/Editor.css +4 -7
  5. package/dist/Editor/Elements/AI/AIInput.js +5 -16
  6. package/dist/Editor/Elements/AI/PopoverAIInput.js +64 -67
  7. package/dist/Editor/Elements/AI/Styles.js +1 -2
  8. package/dist/Editor/Elements/AppHeader/AppHeader.js +40 -49
  9. package/dist/Editor/Elements/Button/EditorButton.js +33 -38
  10. package/dist/Editor/Elements/Color Picker/ColorButtons.js +17 -60
  11. package/dist/Editor/Elements/Color Picker/ColorPicker.css +1 -25
  12. package/dist/Editor/Elements/Color Picker/ColorPicker.js +4 -4
  13. package/dist/Editor/Elements/Color Picker/Styles.js +1 -2
  14. package/dist/Editor/Elements/Embed/Image.js +15 -14
  15. package/dist/Editor/Elements/Embed/Video.js +12 -8
  16. package/dist/Editor/Elements/Emoji/EmojiButton.js +11 -7
  17. package/dist/Editor/Elements/Form/Workflow/FormWorkflow.js +3 -12
  18. package/dist/Editor/Elements/Form/Workflow/UserInputs.js +1 -2
  19. package/dist/Editor/Elements/FreeGrid/FreeGrid.js +391 -0
  20. package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +193 -0
  21. package/dist/Editor/Elements/FreeGrid/FreeGridButton.js +23 -0
  22. package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +184 -0
  23. package/dist/Editor/Elements/FreeGrid/Options/AddElement.js +36 -0
  24. package/dist/Editor/Elements/FreeGrid/Options/More.js +24 -0
  25. package/dist/Editor/Elements/FreeGrid/Options/SectionSettings.js +47 -0
  26. package/dist/Editor/Elements/FreeGrid/Options/sectionItemOptions.js +11 -0
  27. package/dist/Editor/Elements/FreeGrid/breakpointConstants.js +75 -0
  28. package/dist/Editor/Elements/FreeGrid/styles.js +159 -0
  29. package/dist/Editor/Elements/Grid/Grid.js +14 -34
  30. package/dist/Editor/Elements/Grid/GridItem.js +31 -23
  31. package/dist/Editor/Elements/Link/Link.js +1 -6
  32. package/dist/Editor/Elements/Link/LinkButton.js +2 -4
  33. package/dist/Editor/Elements/Link/LinkPopup.js +3 -10
  34. package/dist/Editor/Elements/PageSettings/PageSettingsButton.js +3 -3
  35. package/dist/Editor/Elements/Signature/SignaturePopup.js +3 -14
  36. package/dist/Editor/Elements/SimpleText/index.js +9 -8
  37. package/dist/Editor/Elements/SimpleText/style.js +37 -0
  38. package/dist/Editor/Elements/Table/Styles.js +1 -23
  39. package/dist/Editor/Elements/Table/Table.js +1 -2
  40. package/dist/Editor/Elements/Table/TableCell.js +7 -69
  41. package/dist/Editor/Elements/TableContextMenu/TableContextMenu.js +0 -1
  42. package/dist/Editor/ErrorBoundary.js +30 -0
  43. package/dist/Editor/MiniEditor.js +1 -3
  44. package/dist/Editor/Styles/EditorStyles.js +23 -0
  45. package/dist/Editor/Toolbar/Basic/index.js +2 -4
  46. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +2 -26
  47. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +2 -2
  48. package/dist/Editor/Toolbar/FormatTools/TextSize.js +18 -29
  49. package/dist/Editor/Toolbar/Mini/MiniToolbar.js +2 -4
  50. package/dist/Editor/Toolbar/Mini/Options/Options.js +0 -10
  51. package/dist/Editor/Toolbar/Mini/Styles.js +0 -7
  52. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +11 -4
  53. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +86 -213
  54. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +1 -2
  55. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +13 -20
  56. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +8 -52
  57. package/dist/Editor/Toolbar/PopupTool/index.js +13 -6
  58. package/dist/Editor/Toolbar/Toolbar.js +7 -0
  59. package/dist/Editor/Toolbar/toolbarGroups.js +11 -48
  60. package/dist/Editor/assets/svg/AIIcons.js +1 -153
  61. package/dist/Editor/assets/svg/AddTemplateIcon.js +10 -13
  62. package/dist/Editor/assets/svg/TextIcon.js +5 -8
  63. package/dist/Editor/common/ColorPickerButton.js +9 -25
  64. package/dist/Editor/common/DnD/DragHandleButton.js +47 -56
  65. package/dist/Editor/common/Icon.js +8 -41
  66. package/dist/Editor/common/LinkSettings/NavComponents.js +2 -5
  67. package/dist/Editor/common/LinkSettings/index.js +2 -4
  68. package/dist/Editor/common/LinkSettings/navOptions.js +2 -7
  69. package/dist/Editor/common/LinkSettings/style.js +8 -11
  70. package/dist/Editor/common/MentionsPopup/index.js +12 -8
  71. package/dist/Editor/common/RnD/ContextMenu/CMenus.js +105 -0
  72. package/dist/Editor/common/RnD/ContextMenu/index.js +38 -0
  73. package/dist/Editor/common/RnD/ContextMenu/styles.js +21 -0
  74. package/dist/Editor/common/RnD/DragInfo/index.js +31 -0
  75. package/dist/Editor/common/RnD/DragInfo/styles.js +15 -0
  76. package/dist/Editor/common/RnD/DragOver/index.js +46 -0
  77. package/dist/Editor/common/RnD/DragOver/styles.js +23 -0
  78. package/dist/Editor/common/RnD/ElementOptions/Actions.js +82 -0
  79. package/dist/Editor/common/RnD/ElementOptions/Icons/LinkIcon.js +26 -0
  80. package/dist/Editor/common/RnD/ElementOptions/index.js +93 -0
  81. package/dist/Editor/common/RnD/ElementOptions/styles.js +41 -0
  82. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Link.js +153 -0
  83. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Settings.js +58 -0
  84. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/index.js +7 -0
  85. package/dist/Editor/common/RnD/ElementSettings/Settings/BoxSettings.js +46 -0
  86. package/dist/Editor/common/RnD/ElementSettings/Settings/ButtonSettings.js +46 -0
  87. package/dist/Editor/common/RnD/ElementSettings/Settings/ImageSettings.js +46 -0
  88. package/dist/Editor/common/RnD/ElementSettings/Settings/TextSettings.js +30 -0
  89. package/dist/Editor/common/RnD/ElementSettings/Settings/VideoSettings.js +46 -0
  90. package/dist/Editor/common/RnD/ElementSettings/Settings/index.js +13 -0
  91. package/dist/Editor/common/RnD/ElementSettings/index.js +17 -0
  92. package/dist/Editor/common/RnD/ElementSettings/settingsConstants.js +14 -0
  93. package/dist/Editor/common/RnD/ElementSettings/styles.js +76 -0
  94. package/dist/Editor/common/RnD/GuideLines/BoundaryLine.js +52 -0
  95. package/dist/Editor/common/RnD/GuideLines/index.js +33 -0
  96. package/dist/Editor/common/RnD/GuideLines/styles.js +60 -0
  97. package/dist/Editor/common/RnD/OptionsPopup/index.js +50 -0
  98. package/dist/Editor/common/RnD/OptionsPopup/style.js +36 -0
  99. package/dist/Editor/common/RnD/RnDCopy.js +23 -0
  100. package/dist/Editor/common/RnD/ShadowElement.js +34 -0
  101. package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +40 -0
  102. package/dist/Editor/common/RnD/SwitchViewport/styles.js +24 -0
  103. package/dist/Editor/common/RnD/Theme/ViewportStimulator.js +63 -0
  104. package/dist/Editor/common/RnD/TransformHandles/CornerHandle.js +19 -0
  105. package/dist/Editor/common/RnD/TransformHandles/Icons/BottomRightIcon.js +13 -0
  106. package/dist/Editor/common/RnD/TransformHandles/SizeHandle.js +18 -0
  107. package/dist/Editor/common/RnD/TransformHandles/index.js +62 -0
  108. package/dist/Editor/common/RnD/Utils/alignmentDetection.js +26 -0
  109. package/dist/Editor/common/RnD/Utils/calculateDropItem.js +98 -0
  110. package/dist/Editor/common/RnD/Utils/collisionDetection.js +52 -0
  111. package/dist/Editor/common/RnD/Utils/gridDropItem.js +148 -0
  112. package/dist/Editor/common/RnD/Utils/index.js +251 -0
  113. package/dist/Editor/common/RnD/VirtualElement/index.js +76 -0
  114. package/dist/Editor/common/RnD/VirtualElement/styles.js +27 -0
  115. package/dist/Editor/common/RnD/VirtualElement/updateAutoProps.js +28 -0
  116. package/dist/Editor/common/RnD/index.js +503 -0
  117. package/dist/Editor/common/RnD/styles.js +4 -0
  118. package/dist/Editor/common/Section/index.js +28 -69
  119. package/dist/Editor/common/Section/styles.js +6 -12
  120. package/dist/Editor/common/Shorthands/elements.js +12 -54
  121. package/dist/Editor/common/StyleBuilder/boxStyle.js +30 -0
  122. package/dist/Editor/common/StyleBuilder/buttonStyle.js +2 -4
  123. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +16 -19
  124. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +7 -15
  125. package/dist/Editor/common/StyleBuilder/fieldTypes/buttonLink.js +1 -1
  126. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +7 -31
  127. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +4 -13
  128. package/dist/Editor/common/StyleBuilder/fieldTypes/text.js +4 -2
  129. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +4 -14
  130. package/dist/Editor/common/StyleBuilder/index.js +1 -1
  131. package/dist/Editor/common/StyleBuilder/sectionStyle.js +13 -2
  132. package/dist/Editor/common/iconslist.js +31 -0
  133. package/dist/Editor/helper/RnD/focusOnNewItem.js +39 -0
  134. package/dist/Editor/helper/RnD/scrollToNewSection.js +24 -0
  135. package/dist/Editor/helper/breakpoint.js +5 -0
  136. package/dist/Editor/helper/index.js +139 -0
  137. package/dist/Editor/helper/theme.js +48 -185
  138. package/dist/Editor/hooks/useBreakpoints.js +34 -0
  139. package/dist/Editor/hooks/useMouseMove.js +37 -12
  140. package/dist/Editor/hooks/useWindowMessage.js +7 -10
  141. package/dist/Editor/hooks/withCommon.js +2 -1
  142. package/dist/Editor/hooks/withErrorHandling.js +14 -0
  143. package/dist/Editor/plugins/withEmbeds.js +1 -1
  144. package/dist/Editor/plugins/withHTML.js +1 -1
  145. package/dist/Editor/plugins/withTable.js +1 -1
  146. package/dist/Editor/theme/ThemeList.js +173 -50
  147. package/dist/Editor/utils/RnD/RnDCtrlCmds.js +168 -0
  148. package/dist/Editor/utils/SlateUtilityFunctions.js +47 -163
  149. package/dist/Editor/utils/button.js +17 -1
  150. package/dist/Editor/utils/events.js +7 -54
  151. package/dist/Editor/utils/font.js +37 -40
  152. package/dist/Editor/utils/freegrid.js +49 -0
  153. package/dist/Editor/utils/helper.js +31 -31
  154. package/dist/Editor/utils/table.js +43 -51
  155. package/package.json +6 -4
  156. package/dist/Editor/Elements/AI/VoiceToText/AudioWave.js +0 -73
  157. package/dist/Editor/Elements/AI/VoiceToText/index.js +0 -167
  158. package/dist/Editor/Elements/AI/VoiceToText/style.js +0 -40
  159. package/dist/Editor/Elements/Link/LinkPopupStyles.js +0 -28
  160. package/dist/Editor/Elements/Redo/RedoButton.js +0 -14
  161. package/dist/Editor/Elements/Undo/UndoButton.js +0 -14
  162. package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +0 -438
  163. package/dist/Editor/assets/svg/RedoIcon.js +0 -27
  164. package/dist/Editor/assets/svg/SettingsIcon.js +0 -28
  165. package/dist/Editor/assets/svg/ThemeIcons.js +0 -291
  166. package/dist/Editor/assets/svg/UndoIcon.js +0 -27
  167. package/dist/Editor/common/CustomColorPicker/index.js +0 -106
  168. package/dist/Editor/common/CustomColorPicker/style.js +0 -53
  169. package/dist/Editor/common/CustomDialog/index.js +0 -94
  170. package/dist/Editor/common/CustomDialog/style.js +0 -67
  171. package/dist/Editor/common/CustomSelect.js +0 -33
  172. package/dist/Editor/hooks/useEditorTheme.js +0 -139
  173. package/dist/Editor/theme/index.js +0 -144
  174. package/dist/Editor/themeSettings/ActiveTheme.js +0 -72
  175. package/dist/Editor/themeSettings/buttons/index.js +0 -290
  176. package/dist/Editor/themeSettings/buttons/style.js +0 -21
  177. package/dist/Editor/themeSettings/colorTheme/index.js +0 -290
  178. package/dist/Editor/themeSettings/colorTheme/style.js +0 -77
  179. package/dist/Editor/themeSettings/fonts/PreviewElement.js +0 -123
  180. package/dist/Editor/themeSettings/fonts/index.js +0 -213
  181. package/dist/Editor/themeSettings/fonts/style.js +0 -44
  182. package/dist/Editor/themeSettings/icons.js +0 -60
  183. package/dist/Editor/themeSettings/index.js +0 -320
  184. package/dist/Editor/themeSettings/style.js +0 -152
  185. package/dist/Editor/themeSettingsAI/icons.js +0 -96
  186. package/dist/Editor/themeSettingsAI/index.js +0 -356
  187. package/dist/Editor/themeSettingsAI/saveTheme.js +0 -190
  188. package/dist/Editor/themeSettingsAI/style.js +0 -247
@@ -0,0 +1,193 @@
1
+ import React from "react";
2
+ import { Transforms, Node, Path } from "slate";
3
+ import { useSlateStatic } from "slate-react";
4
+ import { ReactEditor } from "slate-react";
5
+ import { Box, useTheme } from "@mui/material";
6
+ import RnD from "../../common/RnD";
7
+ import { onDropItem } from "../../common/RnD/Utils/gridDropItem";
8
+ import useBreakpoints from "../../hooks/useBreakpoints";
9
+ import { breakpointValues, formatBreakpointValues } from "./breakpointConstants";
10
+ import { useEditorContext } from "../../hooks/useMouseMove";
11
+ import { getBreakPointsValue } from "../../helper/theme";
12
+ import focusOnNewItem from "../../helper/RnD/focusOnNewItem";
13
+ import { bringItemToFB } from "../../helper";
14
+ import { jsx as _jsx } from "react/jsx-runtime";
15
+ const FreeGridBox = props => {
16
+ const theme = useTheme();
17
+ const breakpoint = useBreakpoints(theme);
18
+ const {
19
+ element,
20
+ attributes,
21
+ children,
22
+ customProps
23
+ } = props;
24
+ const editor = useSlateStatic();
25
+ const path = ReactEditor.findPath(editor, element);
26
+ const {
27
+ readOnly
28
+ } = customProps;
29
+ const {
30
+ updated_at,
31
+ zIndex,
32
+ sectionBgColor,
33
+ sectionBackgroundImage,
34
+ sectionBorderRadius
35
+ } = element;
36
+ // get values based on breakpoint size
37
+ const {
38
+ gridArea,
39
+ width,
40
+ height,
41
+ left,
42
+ top,
43
+ marginTop
44
+ } = breakpointValues(element.type, breakpoint, element);
45
+ const {
46
+ setSelectedElement
47
+ } = useEditorContext();
48
+ const arrangeIndex = zIndex === undefined ? path[path.length - 1] : zIndex;
49
+ const onChangeSettings = () => {};
50
+ const onChange = data => {
51
+ let updateData = {
52
+ ...data
53
+ };
54
+ delete updateData.children;
55
+ updateData = formatBreakpointValues(element.type, breakpoint, updateData);
56
+ Transforms.setNodes(editor, {
57
+ ...updateData
58
+ }, {
59
+ at: path
60
+ });
61
+ };
62
+ const handleDragEvent = (type, data, cb) => {
63
+ const toPosition = {
64
+ left: left + data.lastX,
65
+ top: top + data.lastY
66
+ };
67
+ const {
68
+ node,
69
+ ...rest
70
+ } = data;
71
+ switch (type) {
72
+ case "stop":
73
+ const updated_data = onDropItem({
74
+ editor,
75
+ fromPosition: {
76
+ left,
77
+ top
78
+ },
79
+ toPosition,
80
+ path,
81
+ ref: node,
82
+ breakpoint,
83
+ ...rest
84
+ }, ".freegrid-container");
85
+ if (cb) {
86
+ cb(updated_data);
87
+ }
88
+ break;
89
+ default:
90
+ }
91
+ };
92
+ const handleResizeEvent = (type, data, cb) => {
93
+ switch (type) {
94
+ case "stop":
95
+ return;
96
+ default:
97
+ }
98
+ };
99
+ const onDelete = () => {
100
+ try {
101
+ Transforms.removeNodes(editor, {
102
+ at: path
103
+ });
104
+ } catch (err) {
105
+ console.log(err);
106
+ }
107
+ };
108
+ const handleContextMenuClick = d => {
109
+ switch (d?.name) {
110
+ case "bringForward":
111
+ bringItemToFB(editor, {
112
+ path,
113
+ moveFront: true
114
+ });
115
+ Transforms.setNodes(editor, {
116
+ zIndex: Math.min(arrangeIndex + 1, editor.children.length)
117
+ }, {
118
+ at: path
119
+ });
120
+ break;
121
+ case "bringBackward":
122
+ bringItemToFB(editor, {
123
+ path,
124
+ moveFront: false
125
+ });
126
+ break;
127
+ case "cut":
128
+ window.copiedNode = JSON.stringify(Node.get(editor, path));
129
+ onDelete();
130
+ focusOnNewItem(editor, Path.parent(path), {
131
+ setSelectedElement
132
+ });
133
+ break;
134
+ case "copy":
135
+ window.copiedNode = JSON.stringify(Node.get(editor, path));
136
+ break;
137
+ case "delete":
138
+ onDelete();
139
+ setSelectedElement({});
140
+ break;
141
+ default:
142
+ return;
143
+ }
144
+ };
145
+ return /*#__PURE__*/_jsx(RnD, {
146
+ id: `freegrid_box_item_${path.join("|")}_${updated_at}_${breakpoint}`,
147
+ className: `freegrid-item breakpoint-${breakpoint}`,
148
+ editor: editor,
149
+ path: path,
150
+ actions: ["ai", "drag", "settings", "close"],
151
+ settingsProps: {
152
+ settings: "freegridBoxItem",
153
+ onChange: onChangeSettings
154
+ },
155
+ style: {
156
+ "--left": `${left || 0}px`,
157
+ "--marginTop": `${marginTop || 0}px`,
158
+ "--gridArea": `${gridArea}`,
159
+ "--width": `${width}px`,
160
+ "--height": `${height}px`,
161
+ "--zIndex": 100 + arrangeIndex
162
+ },
163
+ defaultStyle: {
164
+ height: `${height}px`,
165
+ width: `${width}px`
166
+ },
167
+ gridArea: gridArea,
168
+ onChange: onChange,
169
+ delta: {
170
+ width,
171
+ height
172
+ },
173
+ handleDragEvent: handleDragEvent,
174
+ handleResizeEvent: handleResizeEvent,
175
+ readOnly: readOnly,
176
+ childType: "box",
177
+ handleContextMenuClick: handleContextMenuClick,
178
+ children: /*#__PURE__*/_jsx(Box, {
179
+ component: "div",
180
+ ...attributes,
181
+ className: `fgi_type_box`,
182
+ sx: {
183
+ borderRadius: {
184
+ ...getBreakPointsValue(sectionBorderRadius || {}, null, "overrideBorderRadius", true)
185
+ },
186
+ background: sectionBgColor,
187
+ backgroundImage: `url(${sectionBackgroundImage})`
188
+ },
189
+ children: children
190
+ })
191
+ });
192
+ };
193
+ export default FreeGridBox;
@@ -0,0 +1,23 @@
1
+ import React from "react";
2
+ import ToolbarIcon from "../../common/ToolbarIcon";
3
+ import Icon from "../../common/Icon";
4
+ import { insertFreeGrid } from "../../utils/freegrid";
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ const FreeGridButton = props => {
7
+ const {
8
+ editor,
9
+ icoBtnType
10
+ } = props;
11
+ const onButtonClick = () => {
12
+ insertFreeGrid(editor);
13
+ };
14
+ return /*#__PURE__*/_jsx(ToolbarIcon, {
15
+ title: "Free Grid",
16
+ onClick: onButtonClick,
17
+ icon: /*#__PURE__*/_jsx(Icon, {
18
+ icon: "freegrid"
19
+ }),
20
+ icoBtnType: icoBtnType
21
+ });
22
+ };
23
+ export default FreeGridButton;
@@ -0,0 +1,184 @@
1
+ import React from "react";
2
+ import { Transforms, Node, Path } from "slate";
3
+ import { useSlateStatic } from "slate-react";
4
+ import { ReactEditor } from "slate-react";
5
+ import { Box, useTheme } from "@mui/material";
6
+ import RnD from "../../common/RnD";
7
+ import { onDropItem } from "../../common/RnD/Utils/gridDropItem";
8
+ import useBreakpoints from "../../hooks/useBreakpoints";
9
+ import { breakpointValues, formatBreakpointValues } from "./breakpointConstants";
10
+ import { useEditorContext } from "../../hooks/useMouseMove";
11
+ import focusOnNewItem from "../../helper/RnD/focusOnNewItem";
12
+ import { bringItemToFB } from "../../helper";
13
+ import itemOptions from "./Options/sectionItemOptions";
14
+ import { jsx as _jsx } from "react/jsx-runtime";
15
+ const FreeGridItem = props => {
16
+ const theme = useTheme();
17
+ const breakpoint = useBreakpoints(theme);
18
+ const {
19
+ element,
20
+ attributes,
21
+ children,
22
+ customProps
23
+ } = props;
24
+ const editor = useSlateStatic();
25
+ const path = ReactEditor.findPath(editor, element);
26
+ const {
27
+ readOnly
28
+ } = customProps;
29
+ const {
30
+ updated_at,
31
+ childType,
32
+ zIndex
33
+ } = element;
34
+ // get values based on breakpoint size
35
+ const {
36
+ gridArea,
37
+ width,
38
+ height,
39
+ left,
40
+ top,
41
+ marginTop
42
+ } = breakpointValues(element.type, breakpoint, element);
43
+ const {
44
+ setSelectedElement
45
+ } = useEditorContext();
46
+ const arrangeIndex = zIndex === undefined ? path[path.length - 1] : zIndex;
47
+ const onChangeSettings = () => {};
48
+ const onChange = data => {
49
+ let updateData = {
50
+ ...data
51
+ };
52
+ delete updateData.children;
53
+ updateData = formatBreakpointValues(element.type, breakpoint, updateData);
54
+ Transforms.setNodes(editor, {
55
+ ...updateData
56
+ }, {
57
+ at: path
58
+ });
59
+ };
60
+ const handleDragEvent = (type, data, cb) => {
61
+ const toPosition = {
62
+ left: left + data.lastX,
63
+ top: top + data.lastY
64
+ };
65
+ const {
66
+ node,
67
+ ...rest
68
+ } = data;
69
+ switch (type) {
70
+ case "stop":
71
+ const updated_data = onDropItem({
72
+ editor,
73
+ fromPosition: {
74
+ left,
75
+ top
76
+ },
77
+ toPosition,
78
+ path,
79
+ ref: node,
80
+ breakpoint,
81
+ ...rest
82
+ }, ".freegrid-container");
83
+ if (cb) {
84
+ cb(updated_data);
85
+ }
86
+ break;
87
+ default:
88
+ }
89
+ };
90
+ const handleResizeEvent = (type, data, cb) => {
91
+ switch (type) {
92
+ case "stop":
93
+ return;
94
+ default:
95
+ }
96
+ };
97
+ const onDelete = () => {
98
+ try {
99
+ Transforms.removeNodes(editor, {
100
+ at: path
101
+ });
102
+ } catch (err) {
103
+ console.log(err);
104
+ }
105
+ };
106
+ const handleContextMenuClick = d => {
107
+ switch (d?.name) {
108
+ case "bringForward":
109
+ bringItemToFB(editor, {
110
+ path,
111
+ moveFront: true
112
+ });
113
+ break;
114
+ case "bringBackward":
115
+ bringItemToFB(editor, {
116
+ path,
117
+ moveFront: false
118
+ });
119
+ break;
120
+ case "cut":
121
+ window.copiedNode = JSON.stringify(Node.get(editor, path));
122
+ onDelete();
123
+ focusOnNewItem(editor, Path.parent(path), {
124
+ setSelectedElement
125
+ });
126
+ break;
127
+ case "copy":
128
+ window.copiedNode = JSON.stringify(Node.get(editor, path));
129
+ break;
130
+ case "delete":
131
+ onDelete();
132
+ setSelectedElement({});
133
+ break;
134
+ default:
135
+ return;
136
+ }
137
+ };
138
+ const handleActionClick = type => {
139
+ console.log(type);
140
+ };
141
+ return /*#__PURE__*/_jsx(RnD, {
142
+ id: `freegrid_item_${path.join("|")}_${updated_at}_${breakpoint}`,
143
+ className: `freegrid-item breakpoint-${breakpoint}`,
144
+ editor: editor,
145
+ path: path,
146
+ actions: itemOptions[childType] || itemOptions?.default,
147
+ settingsProps: {
148
+ settings: "freegridItem",
149
+ onChange: onChangeSettings,
150
+ customProps
151
+ },
152
+ style: {
153
+ "--left": `${left || 0}px`,
154
+ "--marginTop": `${marginTop || 0}px`,
155
+ "--gridArea": `${gridArea}`,
156
+ "--width": `${width}px`,
157
+ "--height": `${height}px`,
158
+ "--zIndex": 100 + arrangeIndex
159
+ },
160
+ defaultStyle: {
161
+ height: `${height}px`,
162
+ width: `${width}px`
163
+ },
164
+ gridArea: gridArea,
165
+ onChange: onChange,
166
+ delta: {
167
+ width,
168
+ height
169
+ },
170
+ handleDragEvent: handleDragEvent,
171
+ handleResizeEvent: handleResizeEvent,
172
+ readOnly: readOnly,
173
+ childType: childType || "",
174
+ handleContextMenuClick: handleContextMenuClick,
175
+ handleActionClick: handleActionClick,
176
+ children: /*#__PURE__*/_jsx(Box, {
177
+ component: "div",
178
+ ...attributes,
179
+ className: `fgi_type_${childType}`,
180
+ children: children
181
+ })
182
+ });
183
+ };
184
+ export default FreeGridItem;
@@ -0,0 +1,36 @@
1
+ import React from "react";
2
+ import { Box, List, ListItemButton } from "@mui/material";
3
+ import { jsx as _jsx } from "react/jsx-runtime";
4
+ import { jsxs as _jsxs } from "react/jsx-runtime";
5
+ const AddElement = props => {
6
+ const {
7
+ handleClick
8
+ } = props;
9
+ return /*#__PURE__*/_jsx(Box, {
10
+ children: /*#__PURE__*/_jsxs(List, {
11
+ className: "item-list-wrpr",
12
+ children: [/*#__PURE__*/_jsx(ListItemButton, {
13
+ className: "item-wrapper",
14
+ onClick: handleClick("addText"),
15
+ children: "Text"
16
+ }), /*#__PURE__*/_jsx(ListItemButton, {
17
+ className: "item-wrapper",
18
+ onClick: handleClick("addButton"),
19
+ children: "Button"
20
+ }), /*#__PURE__*/_jsx(ListItemButton, {
21
+ className: "item-wrapper",
22
+ onClick: handleClick("addImage"),
23
+ children: "Image"
24
+ }), /*#__PURE__*/_jsx(ListItemButton, {
25
+ className: "item-wrapper",
26
+ onClick: handleClick("addVideo"),
27
+ children: "Video"
28
+ }), /*#__PURE__*/_jsx(ListItemButton, {
29
+ className: "item-wrapper",
30
+ onClick: handleClick("addBox"),
31
+ children: "Box"
32
+ })]
33
+ })
34
+ });
35
+ };
36
+ export default AddElement;
@@ -0,0 +1,24 @@
1
+ import React from "react";
2
+ import { Box, List, ListItemButton } from "@mui/material";
3
+ import { jsx as _jsx } from "react/jsx-runtime";
4
+ import { jsxs as _jsxs } from "react/jsx-runtime";
5
+ const More = props => {
6
+ const {
7
+ handleClick
8
+ } = props;
9
+ return /*#__PURE__*/_jsx(Box, {
10
+ children: /*#__PURE__*/_jsxs(List, {
11
+ className: "item-list-wrpr",
12
+ children: [/*#__PURE__*/_jsx(ListItemButton, {
13
+ className: "item-wrapper",
14
+ onClick: handleClick("addSection"),
15
+ children: "Add Section"
16
+ }), /*#__PURE__*/_jsx(ListItemButton, {
17
+ className: "item-wrapper",
18
+ onClick: handleClick("duplicateSection"),
19
+ children: "Duplicate Section"
20
+ })]
21
+ })
22
+ });
23
+ };
24
+ export default More;
@@ -0,0 +1,47 @@
1
+ import React from "react";
2
+ import { Transforms, Node } from "slate";
3
+ import { Box } from "@mui/material";
4
+ import { StyleContent } from "../../../common/StyleBuilder";
5
+ import sectionStyle from "../../../common/StyleBuilder/sectionStyle";
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ const SectionSettings = props => {
8
+ const {
9
+ editor,
10
+ path,
11
+ classes
12
+ } = props;
13
+ const element = Node.get(editor, path);
14
+ const styleMaps = sectionStyle?.filter(f => !f?.hideOnFGS);
15
+ const onChange = data => {
16
+ const updated_props = {
17
+ ...element,
18
+ ...data,
19
+ field_type: data?.element
20
+ };
21
+ delete updated_props.children;
22
+ Transforms.setNodes(editor, {
23
+ ...updated_props
24
+ }, {
25
+ at: path
26
+ });
27
+ };
28
+ const handleClose = () => {
29
+ console.log("close");
30
+ };
31
+ return /*#__PURE__*/_jsx(Box, {
32
+ component: "div",
33
+ className: "style-settings-wrpr",
34
+ sx: classes.sectionSettingsPopper,
35
+ children: styleMaps?.map((m, i) => {
36
+ return /*#__PURE__*/_jsx(StyleContent, {
37
+ renderTabs: sectionStyle,
38
+ value: m.value,
39
+ element: element,
40
+ onChange: onChange,
41
+ customProps: {},
42
+ handleClose: handleClose
43
+ }, `tab_${m.value}_$${i}`);
44
+ })
45
+ });
46
+ };
47
+ export default SectionSettings;
@@ -0,0 +1,11 @@
1
+ const commonOptions = ["drag", "edit", "settings", "close"];
2
+ const textOptions = ["drag", "edit", "settings", "link", "close"];
3
+ const buttonOptions = ["drag", "edit", "settings", "link", "close"];
4
+ const imageOptions = ["drag", "edit", "settings", "link", "close"];
5
+ const itemOptions = {
6
+ default: commonOptions,
7
+ text: textOptions,
8
+ button: buttonOptions,
9
+ image: imageOptions
10
+ };
11
+ export default itemOptions;
@@ -0,0 +1,75 @@
1
+ const breakpointConstants = {
2
+ freegrid: ["height"],
3
+ freegridItem: ["left", "top", "marginTop", "width", "height", "gridArea"],
4
+ freegridBox: ["left", "top", "marginTop", "width", "height", "gridArea"]
5
+ };
6
+ export function CssVar(device = "lg", key, props) {
7
+ const keyTo = `${key}_${device}`;
8
+ const value = props[keyTo] === undefined ? props[key] : props[keyTo];
9
+ return value;
10
+ }
11
+ export function breakpointValues(type, breakpoint = "lg", props) {
12
+ try {
13
+ const breakpointDatas = breakpointConstants[type]?.reduce((a, b) => {
14
+ const bpKey = `${b}_${breakpoint}`;
15
+ a[b] = props[bpKey] === undefined ? props[b] : props[bpKey];
16
+ return a;
17
+ }, {});
18
+ return breakpointDatas;
19
+ } catch (err) {
20
+ console.log(err);
21
+ return {};
22
+ }
23
+ }
24
+ export function formatBreakpointValues(type, breakpoint = "lg", data) {
25
+ try {
26
+ const bpValues = breakpointConstants[type];
27
+ if (breakpoint === "lg") {
28
+ return data;
29
+ } else {
30
+ let rtData = {};
31
+ Object.keys(data).forEach(key => {
32
+ if (bpValues.indexOf(key) > -1) {
33
+ rtData[`${key}_${breakpoint}`] = data[key];
34
+ } else {
35
+ rtData[key] = data[key];
36
+ }
37
+ });
38
+ return rtData;
39
+ }
40
+ } catch (err) {
41
+ console.log(err);
42
+ return {};
43
+ }
44
+ }
45
+ export function wrapThemeBreakpoints(sxProp, prop, theme) {
46
+ try {
47
+ const formatedSxProp = Object.keys(sxProp).reduce((a, b) => {
48
+ switch (b) {
49
+ case "md":
50
+ a[theme.breakpoints.up("lg")] = {
51
+ [prop]: sxProp["md"] || sxProp["lg"]
52
+ };
53
+ break;
54
+ case "sm":
55
+ a[theme.breakpoints.up("lg")] = {
56
+ [prop]: sxProp["sm"] || sxProp["lg"]
57
+ };
58
+ break;
59
+ case "xs":
60
+ a[theme.breakpoints.between("xs", "md")] = {
61
+ [prop]: sxProp["xs"] || sxProp["lg"]
62
+ };
63
+ break;
64
+ default:
65
+ a[theme.breakpoints.up("lg")] = {
66
+ [prop]: sxProp["lg"]
67
+ };
68
+ }
69
+ return a;
70
+ }, {});
71
+ return formatedSxProp;
72
+ } catch (err) {
73
+ console.log(err);
74
+ }
75
+ }