@flozy/editor 9.8.1 → 9.8.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.
Files changed (255) hide show
  1. package/dist/Editor/ChatEditor.js +19 -26
  2. package/dist/Editor/CommonEditor.js +25 -139
  3. package/dist/Editor/DialogWrapper.js +25 -31
  4. package/dist/Editor/Editor.css +7 -11
  5. package/dist/Editor/Elements/AI/AIInput.js +3 -5
  6. package/dist/Editor/Elements/AI/CustomSelect.js +5 -9
  7. package/dist/Editor/Elements/AI/PopoverAIInput.js +5 -15
  8. package/dist/Editor/Elements/Accordion/Accordion.js +3 -4
  9. package/dist/Editor/Elements/Accordion/AccordionBtnPopup.js +1 -4
  10. package/dist/Editor/Elements/Accordion/AccordionButton.js +2 -6
  11. package/dist/Editor/Elements/Accordion/AccordionTitlePopup.js +1 -4
  12. package/dist/Editor/Elements/AppHeader/AppHeader.js +3 -3
  13. package/dist/Editor/Elements/AppHeader/AppHeaderButton.js +2 -6
  14. package/dist/Editor/Elements/AppHeader/AppHeaderPopup.js +1 -4
  15. package/dist/Editor/Elements/Attachments/AttachmentsButton.js +1 -4
  16. package/dist/Editor/Elements/Button/ButtonPopup.js +1 -4
  17. package/dist/Editor/Elements/Button/ButtonToolIcon.js +2 -6
  18. package/dist/Editor/Elements/Button/EditorButton.js +30 -43
  19. package/dist/Editor/Elements/Carousel/Carousel.js +4 -5
  20. package/dist/Editor/Elements/Carousel/CarouselButton.js +2 -6
  21. package/dist/Editor/Elements/Carousel/CarouselItem.js +2 -3
  22. package/dist/Editor/Elements/ChipText/ChipTextPopup.js +1 -4
  23. package/dist/Editor/Elements/CodeToText/CodeToText.js +4 -5
  24. package/dist/Editor/Elements/CodeToText/HtmlContextMenu.js +2 -6
  25. package/dist/Editor/Elements/Color Picker/ColorButtons.js +14 -60
  26. package/dist/Editor/Elements/Color Picker/ColorPicker.css +1 -25
  27. package/dist/Editor/Elements/Color Picker/ColorPicker.js +7 -10
  28. package/dist/Editor/Elements/Color Picker/Styles.js +13 -15
  29. package/dist/Editor/Elements/Colorbox/ColorboxButton.js +2 -6
  30. package/dist/Editor/Elements/DataView/DataView.js +2 -5
  31. package/dist/Editor/Elements/DataView/DataViewButton.js +2 -6
  32. package/dist/Editor/Elements/DataView/Layouts/ColumnView.js +2 -4
  33. package/dist/Editor/Elements/DataView/Layouts/DataTypes/MultiSelectType.js +6 -21
  34. package/dist/Editor/Elements/DataView/Layouts/FilterSort/SortOptions/ChooseSort.js +12 -13
  35. package/dist/Editor/Elements/DataView/Layouts/FilterSort/SortOptions/index.js +4 -7
  36. package/dist/Editor/Elements/DataView/Layouts/FilterSort/index.js +5 -7
  37. package/dist/Editor/Elements/DataView/Layouts/FilterView.js +7 -9
  38. package/dist/Editor/Elements/DataView/Layouts/Options/AddOptions.js +3 -8
  39. package/dist/Editor/Elements/DataView/Layouts/Options/AddProperty.js +3 -5
  40. package/dist/Editor/Elements/DataView/Layouts/Options/AllProperties.js +5 -6
  41. package/dist/Editor/Elements/DataView/Layouts/Options/ChangeProperty.js +3 -5
  42. package/dist/Editor/Elements/DataView/Layouts/Options/EditOption.js +7 -9
  43. package/dist/Editor/Elements/DataView/Layouts/Options/EditProperty.js +12 -15
  44. package/dist/Editor/Elements/DataView/Layouts/Options/FilterProperty.js +2 -3
  45. package/dist/Editor/Elements/DataView/Layouts/Options/PropertyList.js +2 -3
  46. package/dist/Editor/Elements/DataView/Layouts/Options/index.js +6 -23
  47. package/dist/Editor/Elements/DataView/Layouts/TableView.js +4 -6
  48. package/dist/Editor/Elements/DataView/Layouts/ViewData.js +4 -8
  49. package/dist/Editor/Elements/DataView/Layouts/index.js +1 -3
  50. package/dist/Editor/Elements/DataView/Providers/DataViewProvider.js +2 -5
  51. package/dist/Editor/Elements/Divider/Divider.js +3 -5
  52. package/dist/Editor/Elements/Divider/DividerButton.js +2 -6
  53. package/dist/Editor/Elements/Divider/DividerPopup.js +2 -3
  54. package/dist/Editor/Elements/Embed/Embed.js +1 -4
  55. package/dist/Editor/Elements/Embed/EmbedPopup.js +1 -4
  56. package/dist/Editor/Elements/Embed/Image.js +11 -16
  57. package/dist/Editor/Elements/Embed/Video.js +6 -9
  58. package/dist/Editor/Elements/EmbedScript/Code.js +4 -7
  59. package/dist/Editor/Elements/EmbedScript/EmbedScript.js +2 -6
  60. package/dist/Editor/Elements/EmbedScript/EmbedScriptPopup.js +5 -8
  61. package/dist/Editor/Elements/Emoji/EmojiButton.js +2 -6
  62. package/dist/Editor/Elements/Form/FieldPopup.js +1 -4
  63. package/dist/Editor/Elements/Form/Form.js +9 -12
  64. package/dist/Editor/Elements/Form/FormButton.js +2 -6
  65. package/dist/Editor/Elements/Form/FormPopup.js +2 -3
  66. package/dist/Editor/Elements/Form/Workflow/FormWorkflow.js +12 -18
  67. package/dist/Editor/Elements/Form/Workflow/ListWorkflow.js +8 -13
  68. package/dist/Editor/Elements/Form/Workflow/MoreOptions.js +2 -3
  69. package/dist/Editor/Elements/Form/Workflow/Styles.js +22 -24
  70. package/dist/Editor/Elements/Form/Workflow/UserInputs.js +2 -4
  71. package/dist/Editor/Elements/Form/Workflow/index.js +9 -15
  72. package/dist/Editor/Elements/FreeGrid/FreeGrid.js +23 -67
  73. package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +6 -31
  74. package/dist/Editor/Elements/FreeGrid/FreeGridButton.js +2 -6
  75. package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +6 -54
  76. package/dist/Editor/Elements/FreeGrid/Options/AddElement.js +2 -3
  77. package/dist/Editor/Elements/FreeGrid/Options/More.js +4 -10
  78. package/dist/Editor/Elements/FreeGrid/styles.js +0 -3
  79. package/dist/Editor/Elements/Grid/Grid.js +10 -13
  80. package/dist/Editor/Elements/Grid/GridButton.js +5 -9
  81. package/dist/Editor/Elements/Grid/GridItem.js +8 -14
  82. package/dist/Editor/Elements/Grid/GridItemPopup.js +1 -4
  83. package/dist/Editor/Elements/Grid/GridPopup.js +1 -4
  84. package/dist/Editor/Elements/Grid/SectionPopup.js +1 -4
  85. package/dist/Editor/Elements/Link/Link.js +5 -8
  86. package/dist/Editor/Elements/Link/LinkButton.js +1 -4
  87. package/dist/Editor/Elements/List/CheckList.js +9 -14
  88. package/dist/Editor/Elements/NewLine/NewLineButton.js +2 -6
  89. package/dist/Editor/Elements/PageSettings/PageSettingsButton.js +1 -4
  90. package/dist/Editor/Elements/PageSettings/PageSettingsPopup.js +1 -4
  91. package/dist/Editor/Elements/Search/SearchButton.js +4 -7
  92. package/dist/Editor/Elements/Search/SearchList.js +5 -10
  93. package/dist/Editor/Elements/Signature/SignatureButton.js +2 -6
  94. package/dist/Editor/Elements/Signature/SignatureOptions/DrawSignature.js +8 -2
  95. package/dist/Editor/Elements/Signature/SignatureOptions/TypeSignature.js +2 -6
  96. package/dist/Editor/Elements/Signature/SignatureOptions/UploadSignature.js +1 -4
  97. package/dist/Editor/Elements/Signature/SignaturePopup.js +16 -17
  98. package/dist/Editor/Elements/SimpleText/index.js +4 -5
  99. package/dist/Editor/Elements/SimpleText/style.js +2 -2
  100. package/dist/Editor/Elements/Table/DragButton.js +2 -4
  101. package/dist/Editor/Elements/Table/Table.js +12 -24
  102. package/dist/Editor/Elements/Table/TablePopup.js +1 -4
  103. package/dist/Editor/Elements/Table/TableSelector.js +6 -10
  104. package/dist/Editor/Elements/Table/TableTool.js +4 -8
  105. package/dist/Editor/Elements/Title/title.js +8 -9
  106. package/dist/Editor/Elements/TopBanner/TopBannerButton.js +1 -4
  107. package/dist/Editor/Elements/Variables/VariableButton.js +1 -10
  108. package/dist/Editor/MiniEditor.js +3 -10
  109. package/dist/Editor/Styles/EditorStyles.js +5 -5
  110. package/dist/Editor/Toolbar/Basic/index.js +1 -2
  111. package/dist/Editor/Toolbar/FormatTools/BlockButton.js +2 -6
  112. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +3 -27
  113. package/dist/Editor/Toolbar/FormatTools/FontFamilyAutocomplete.js +3 -4
  114. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +4 -8
  115. package/dist/Editor/Toolbar/FormatTools/TextSize.js +13 -10
  116. package/dist/Editor/Toolbar/Mini/MiniToolbar.js +5 -17
  117. package/dist/Editor/Toolbar/PopupTool/AddTemplates.js +5 -10
  118. package/dist/Editor/Toolbar/PopupTool/ButtonTemplatesCard.js +4 -10
  119. package/dist/Editor/Toolbar/PopupTool/FullViewCard.js +4 -10
  120. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/MiniColorPicker.js +3 -9
  121. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectAlignment.js +35 -42
  122. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +13 -6
  123. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectList.js +51 -58
  124. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectSuperSubscript.js +22 -29
  125. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +87 -226
  126. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +10 -20
  127. package/dist/Editor/Toolbar/PopupTool/PopperHeader.js +5 -10
  128. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +11 -71
  129. package/dist/Editor/Toolbar/PopupTool/TemplateCard.js +5 -11
  130. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +42 -122
  131. package/dist/Editor/Toolbar/PopupTool/index.js +2 -18
  132. package/dist/Editor/Toolbar/Toolbar.js +10 -20
  133. package/dist/Editor/Toolbar/toolbarGroups.js +6 -48
  134. package/dist/Editor/common/ColorPickerButton.js +14 -39
  135. package/dist/Editor/common/CustomDialog/index.js +10 -8
  136. package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
  137. package/dist/Editor/common/FontLoader/FontLoader.js +0 -3
  138. package/dist/Editor/common/Icon.js +1 -31
  139. package/dist/Editor/common/ImageSelector/ImageSelector.js +8 -10
  140. package/dist/Editor/common/ImageSelector/Options/AddLink.js +4 -6
  141. package/dist/Editor/common/ImageSelector/Styles.js +9 -3
  142. package/dist/Editor/common/LinkSettings/NavComponents.js +10 -14
  143. package/dist/Editor/common/LinkSettings/index.js +14 -20
  144. package/dist/Editor/common/LinkSettings/navOptions.js +1 -1
  145. package/dist/Editor/common/MUIIcon/index.js +3 -0
  146. package/dist/Editor/common/MentionsPopup/index.js +2 -6
  147. package/dist/Editor/common/RnD/ContextMenu/CMenus.js +22 -46
  148. package/dist/Editor/common/RnD/ContextMenu/index.js +2 -3
  149. package/dist/Editor/common/RnD/ElementOptions/index.js +2 -7
  150. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/SaveAsTemplate.js +3 -8
  151. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Settings.js +3 -7
  152. package/dist/Editor/common/RnD/ElementSettings/Settings/AppHeaderSettings.js +2 -3
  153. package/dist/Editor/common/RnD/ElementSettings/Settings/BoxSettings.js +2 -3
  154. package/dist/Editor/common/RnD/ElementSettings/Settings/ButtonSettings.js +2 -3
  155. package/dist/Editor/common/RnD/ElementSettings/Settings/CodeSettings.js +2 -3
  156. package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +4 -7
  157. package/dist/Editor/common/RnD/ElementSettings/Settings/ImageSettings.js +2 -3
  158. package/dist/Editor/common/RnD/ElementSettings/Settings/TableSettings.js +2 -3
  159. package/dist/Editor/common/RnD/ElementSettings/Settings/TextSettings.js +2 -6
  160. package/dist/Editor/common/RnD/ElementSettings/Settings/VideoSettings.js +2 -3
  161. package/dist/Editor/common/RnD/OptionsPopup/index.js +3 -4
  162. package/dist/Editor/common/RnD/ShadowElement.js +1 -2
  163. package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +4 -11
  164. package/dist/Editor/common/RnD/Theme/ViewportStimulator.js +3 -6
  165. package/dist/Editor/common/RnD/Utils/gridDropItem.js +8 -55
  166. package/dist/Editor/common/RnD/Utils/index.js +0 -3
  167. package/dist/Editor/common/RnD/VirtualElement/index.js +103 -187
  168. package/dist/Editor/common/RnD/VirtualElement/styles.js +7 -155
  169. package/dist/Editor/common/RnD/VirtualElement/updateAutoProps.js +3 -5
  170. package/dist/Editor/common/RnD/index.js +13 -69
  171. package/dist/Editor/common/Section/index.js +4 -7
  172. package/dist/Editor/common/Shorthands/elements.js +3 -74
  173. package/dist/Editor/common/StyleBuilder/appHeaderStyle.js +4 -4
  174. package/dist/Editor/common/StyleBuilder/boxStyle.js +2 -2
  175. package/dist/Editor/common/StyleBuilder/buttonStyle.js +4 -6
  176. package/dist/Editor/common/StyleBuilder/dividerStyles.js +2 -2
  177. package/dist/Editor/common/StyleBuilder/embedVideoStyle.js +6 -6
  178. package/dist/Editor/common/StyleBuilder/fieldStyle.js +2 -2
  179. package/dist/Editor/common/StyleBuilder/fieldTypes/alignment.js +9 -13
  180. package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +3 -11
  181. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +5 -19
  182. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +10 -22
  183. package/dist/Editor/common/StyleBuilder/fieldTypes/buttonLink.js +3 -6
  184. package/dist/Editor/common/StyleBuilder/fieldTypes/card.js +13 -27
  185. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +14 -43
  186. package/dist/Editor/common/StyleBuilder/fieldTypes/elementSize.js +6 -10
  187. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +6 -19
  188. package/dist/Editor/common/StyleBuilder/fieldTypes/gridSize.js +2 -6
  189. package/dist/Editor/common/StyleBuilder/fieldTypes/icons.js +2 -5
  190. package/dist/Editor/common/StyleBuilder/fieldTypes/menusArray.js +6 -9
  191. package/dist/Editor/common/StyleBuilder/fieldTypes/metaDataMapping.js +2 -8
  192. package/dist/Editor/common/StyleBuilder/fieldTypes/saveAsTemplate.js +11 -12
  193. package/dist/Editor/common/StyleBuilder/fieldTypes/selectBox.js +2 -6
  194. package/dist/Editor/common/StyleBuilder/fieldTypes/text.js +4 -8
  195. package/dist/Editor/common/StyleBuilder/fieldTypes/textAlign.js +2 -6
  196. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +12 -21
  197. package/dist/Editor/common/StyleBuilder/formStyle.js +7 -7
  198. package/dist/Editor/common/StyleBuilder/gridItemStyle.js +6 -6
  199. package/dist/Editor/common/StyleBuilder/gridStyle.js +5 -5
  200. package/dist/Editor/common/StyleBuilder/index.js +5 -8
  201. package/dist/Editor/common/StyleBuilder/pageSettingsStyle.js +7 -5
  202. package/dist/Editor/common/SwipeableDrawer/index.js +1 -1
  203. package/dist/Editor/common/Uploader.js +5 -16
  204. package/dist/Editor/commonStyle.js +57 -68
  205. package/dist/Editor/helper/index.js +3 -27
  206. package/dist/Editor/helper/theme.js +2 -202
  207. package/dist/Editor/hooks/useMouseMove.js +3 -9
  208. package/dist/Editor/plugins/withEmbeds.js +1 -1
  209. package/dist/Editor/plugins/withHTML.js +9 -11
  210. package/dist/Editor/plugins/withLayout.js +2 -3
  211. package/dist/Editor/plugins/withLinks.js +0 -10
  212. package/dist/Editor/plugins/withTable.js +1 -1
  213. package/dist/Editor/theme/ThemeList.js +173 -50
  214. package/dist/Editor/utils/SlateUtilityFunctions.js +50 -178
  215. package/dist/Editor/utils/draftToSlate.js +2 -3
  216. package/dist/Editor/utils/font.js +37 -40
  217. package/dist/Editor/utils/freegrid.js +3 -3
  218. package/dist/Editor/utils/helper.js +21 -92
  219. package/package.json +4 -4
  220. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/MultiSelect.js +0 -444
  221. package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +0 -436
  222. package/dist/Editor/assets/svg/ClearAllRounded.js +0 -31
  223. package/dist/Editor/assets/svg/ResetIconNew.js +0 -23
  224. package/dist/Editor/assets/svg/ThemeIcons.js +0 -291
  225. package/dist/Editor/common/CustomColorPicker/index.js +0 -131
  226. package/dist/Editor/common/CustomColorPicker/style.js +0 -53
  227. package/dist/Editor/common/CustomDialog2/index.js +0 -94
  228. package/dist/Editor/common/CustomDialog2/style.js +0 -67
  229. package/dist/Editor/common/CustomSelect.js +0 -43
  230. package/dist/Editor/common/RnD/Theme/MainThemeProvider.js +0 -17
  231. package/dist/Editor/common/RnD/VirtualElement/BoxHeaderAutoAlignment.js +0 -43
  232. package/dist/Editor/common/RnD/VirtualElement/ForceAutoAlignment.js +0 -44
  233. package/dist/Editor/common/RnD/VirtualElement/VirtualTextElement.js +0 -134
  234. package/dist/Editor/common/RnD/VirtualElement/helper.js +0 -381
  235. package/dist/Editor/common/SnackBar/index.js +0 -43
  236. package/dist/Editor/helper/textIndeces.js +0 -58
  237. package/dist/Editor/hooks/useAutoScroll.js +0 -38
  238. package/dist/Editor/hooks/useEditorTheme.js +0 -153
  239. package/dist/Editor/hooks/useThemeValues.js +0 -63
  240. package/dist/Editor/theme/index.js +0 -149
  241. package/dist/Editor/themeSettings/ActiveTheme.js +0 -72
  242. package/dist/Editor/themeSettings/buttons/index.js +0 -290
  243. package/dist/Editor/themeSettings/buttons/style.js +0 -23
  244. package/dist/Editor/themeSettings/colorTheme/index.js +0 -310
  245. package/dist/Editor/themeSettings/colorTheme/style.js +0 -81
  246. package/dist/Editor/themeSettings/fonts/PreviewElement.js +0 -121
  247. package/dist/Editor/themeSettings/fonts/index.js +0 -240
  248. package/dist/Editor/themeSettings/fonts/style.js +0 -61
  249. package/dist/Editor/themeSettings/icons.js +0 -60
  250. package/dist/Editor/themeSettings/index.js +0 -351
  251. package/dist/Editor/themeSettings/style.js +0 -220
  252. package/dist/Editor/themeSettingsAI/icons.js +0 -96
  253. package/dist/Editor/themeSettingsAI/index.js +0 -355
  254. package/dist/Editor/themeSettingsAI/saveTheme.js +0 -205
  255. package/dist/Editor/themeSettingsAI/style.js +0 -259
@@ -1,7 +1,6 @@
1
- import { Transforms, Node, Path, Editor } from "slate";
1
+ import { Transforms, Node, Path } from "slate";
2
2
  import { ReactEditor } from "slate-react";
3
- import { getNode, handleNegativeInteger } from "../../../utils/helper";
4
- import { handleBoxAlignment } from "../VirtualElement/helper";
3
+ import { handleNegativeInteger } from "../../../utils/helper";
5
4
  export const ROW_HEIGHT = 50;
6
5
 
7
6
  // const MARGIN_OF = {
@@ -22,18 +21,9 @@ export function updateRows() {}
22
21
  export function updateCols() {}
23
22
  const handleMoveNode = (editor, path, newPath, {
24
23
  isEmpty
25
- }, autoAlign) => {
24
+ }) => {
26
25
  try {
27
- let replaceNode = Node.get(editor, path);
28
- if (autoAlign) {
29
- // reset node for auto alignment in mobile
30
- replaceNode = {
31
- ...replaceNode,
32
- gridArea_xs: null,
33
- xs_updatedOn: null,
34
- marginTop_xs: null
35
- };
36
- }
26
+ const replaceNode = Node.get(editor, path);
37
27
  if (isEmpty) {
38
28
  const toPath = [...newPath, 0];
39
29
  Transforms.insertNodes(editor, [{
@@ -67,10 +57,9 @@ const handleMoveNode = (editor, path, newPath, {
67
57
  * This method will update prop in child node so it will re-render and update the path
68
58
  * @param {*} path - contains the parent section path
69
59
  */
70
- export const reRenderChildNodes = (editor, path) => {
60
+ const reRenderChildNodes = (editor, path) => {
71
61
  try {
72
62
  const sectionNode = Node.get(editor, path);
73
-
74
63
  // parent node
75
64
  Transforms.setNodes(editor, {
76
65
  updated_at: new Date().getTime()
@@ -138,9 +127,6 @@ function isContainerElement(editor, moveTopath, props, appenBp) {
138
127
  console.log(err);
139
128
  }
140
129
  }
141
- const isInsidePath = (from, moveTo) => {
142
- return Path.isAncestor(from, moveTo);
143
- };
144
130
  export function onDropItem(props, parentClass) {
145
131
  try {
146
132
  const {
@@ -188,17 +174,7 @@ export function onDropItem(props, parentClass) {
188
174
  }, {
189
175
  at: path
190
176
  });
191
- let reRenderSectionPath;
192
- const [sectionData] = Editor.nodes(editor, {
193
- at: moveTo,
194
- match: n => n.type === "freegrid"
195
- });
196
- const [sectionNode, sectionPath] = sectionData || [];
197
- if (needMove && isInsidePath(from, moveTo)) {
198
- reRenderSectionPath = sectionPath;
199
- } else {
200
- reRenderChildNodes(editor, from);
201
- }
177
+ reRenderChildNodes(editor, from);
202
178
 
203
179
  // move the node if section parent changed
204
180
  if (needMove) {
@@ -207,33 +183,10 @@ export function onDropItem(props, parentClass) {
207
183
  if (!isEmpty) {
208
184
  newPath = [...newPath, toSectionNode?.children?.length];
209
185
  }
210
- const autoAlign = breakpoint === "lg";
211
- const currentNode = getNode(editor, path);
212
- const isBoxHeader = currentNode?.childType === "appHeader" && moveTo?.length > 2;
213
- if (isBoxHeader) {
214
- // will handle on <BoxHeaderAutoAlignment />
215
- } else if (moveTo?.length === 2 && autoAlign) {
216
- // auto align in mobile
217
- Transforms.setNodes(editor, {
218
- xs_updatedOn: null
219
- }, {
220
- at: moveTo
221
- });
222
- } else if (autoAlign) {
223
- Transforms.setNodes(editor, {
224
- autoAlign: true,
225
- xs_updatedOn: new Date().getTime()
226
- }, {
227
- at: moveTo
228
- });
229
- }
230
186
  const rPath = handleMoveNode(editor, path, newPath, {
231
187
  isEmpty
232
- }, autoAlign);
233
- reRenderChildNodes(editor, reRenderSectionPath || moveTo);
234
- if (autoAlign && !isBoxHeader) {
235
- handleBoxAlignment(editor, sectionNode, sectionPath);
236
- }
188
+ });
189
+ reRenderChildNodes(editor, moveTo);
237
190
  return {
238
191
  updated_at: rPath
239
192
  };
@@ -293,7 +293,4 @@ export function getAbsolutePositionY(currentEle) {
293
293
  gridArea,
294
294
  marginTop
295
295
  };
296
- }
297
- export function getPathFromElement(element) {
298
- return element?.dataset.path?.split("|").map(m => parseInt(m));
299
296
  }
@@ -1,236 +1,152 @@
1
- import React, { useEffect, useMemo, useRef, useState } from "react";
1
+ import React, { useEffect, useRef } from "react";
2
2
  import { Box } from "@mui/material";
3
3
  import useVirtualElementStyles from "./styles";
4
4
  import updateAutoProps from "./updateAutoProps";
5
- import { ROW_HEIGHT, calculateGridArea } from "../Utils/gridDropItem";
5
+ import { calculateGridArea } from "../Utils/gridDropItem";
6
6
  import { jsx as _jsx } from "react/jsx-runtime";
7
7
  const ROOT_ITEM_CLASS = ".freegrid-item.path-3";
8
- export function getStartRow(el) {
9
- const gridArea = el.dataset.gridAreaXs;
10
- if (gridArea) {
11
- const [startRow] = gridArea.split("/").map(num => parseInt(num));
12
- return startRow;
13
- }
14
- }
15
- function appendGridOccupied(domItem, startRow, fullHeight, lastRow) {
16
- const endRow = startRow + Math.floor(fullHeight / ROW_HEIGHT) + 1;
17
- lastRow = Math.max(endRow, lastRow);
18
- const gridArea = `${startRow}/1/${endRow}/2`;
19
- domItem.style.setProperty("--gridArea_xs", gridArea);
20
- domItem.dataset.gridAreaXs = gridArea;
21
- domItem.classList.add("exclude-virtual");
22
- return {
23
- domItem,
24
- updatedLastRow: lastRow,
25
- gridArea
26
- };
27
- }
28
8
 
29
9
  // Function to group items by path and calculate heights
30
- // function groupByPathAndCalculateHeight(allData) {
31
- // const data = JSON.parse(JSON.stringify([...allData]));
32
- // const root = {};
33
- // const heightData = {};
34
-
35
- // // Step 1: Group items based on their path
36
- // data.forEach((item) => {
37
- // const segments = item.path.split("|");
38
- // let current = root;
39
-
40
- // segments.forEach((segment, index) => {
41
- // if (!current[segment]) {
42
- // current[segment] = { children: {}, props: { height: 0 } };
43
- // }
44
-
45
- // if (index === segments.length - 1) {
46
- // // Assign the properties of the item including height
47
- // current[segment] = { ...item, children: current[segment].children };
48
- // }
49
-
50
- // current = current[segment].children;
51
- // });
52
- // });
53
-
54
- // // Step 2: Recursively calculate the height of each parent based on children
55
- // const calculateHeight = (node) => {
56
- // if (!node.children || Object.keys(node.children).length === 0) {
57
- // // Base case: If there are no children, return the node's height
58
- // return node.props.height;
59
- // }
60
-
61
- // // Calculate the height by summing the heights of all children
62
- // let totalHeight = 0;
63
- // Object.values(node.children).forEach((child) => {
64
- // totalHeight += calculateHeight(child);
65
- // });
10
+ function groupByPathAndCalculateHeight(data) {
11
+ const root = {};
12
+ const heightData = {};
13
+
14
+ // Step 1: Group items based on their path
15
+ data.forEach(item => {
16
+ const segments = item.path.split("|");
17
+ let current = root;
18
+ segments.forEach((segment, index) => {
19
+ if (!current[segment]) {
20
+ current[segment] = {
21
+ children: {},
22
+ props: {
23
+ height: 0
24
+ }
25
+ };
26
+ }
27
+ if (index === segments.length - 1) {
28
+ // Assign the properties of the item including height
29
+ current[segment] = {
30
+ ...item,
31
+ children: current[segment].children
32
+ };
33
+ }
34
+ current = current[segment].children;
35
+ });
36
+ });
66
37
 
67
- // // Update the parent's height to be the total height of its children
68
- // node.props.height = totalHeight;
69
- // if (node?.path) {
70
- // heightData[node.path] = totalHeight;
71
- // }
72
- // return totalHeight;
73
- // };
38
+ // Step 2: Recursively calculate the height of each parent based on children
39
+ const calculateHeight = node => {
40
+ if (!node.children || Object.keys(node.children).length === 0) {
41
+ // Base case: If there are no children, return the node's height
42
+ return node.props.height;
43
+ }
74
44
 
75
- // // Start calculation from the root
76
- // Object.values(root).forEach((node) => calculateHeight(node));
45
+ // Calculate the height by summing the heights of all children
46
+ let totalHeight = 0;
47
+ Object.values(node.children).forEach(child => {
48
+ totalHeight += calculateHeight(child);
49
+ });
77
50
 
78
- // return { root, heightData };
79
- // }
51
+ // Update the parent's height to be the total height of its children
52
+ node.props.height = totalHeight;
53
+ if (node?.path) {
54
+ heightData[node.path] = totalHeight;
55
+ }
56
+ return totalHeight;
57
+ };
80
58
 
81
- const handleGridItem = (dom, lastRow) => {
82
- const startRow = getStartRow(dom);
83
- const {
84
- marginTopXs,
85
- heightXs
86
- } = dom.dataset;
87
- const marginTop = marginTopXs ? Number(marginTopXs) : 0;
88
- const fullHeight = Number(heightXs) + marginTop;
89
- return appendGridOccupied(dom, startRow, fullHeight, lastRow);
90
- };
91
- const handleNonGridItem = (dom, lastRow) => {
92
- const rect = dom.getBoundingClientRect();
93
- dom.style.setProperty("--height_xs", rect.height + "px"); // assign the auto height that taken
94
- const startRow = lastRow || 1;
95
- const DEFAULT_NEW_ELEMENT_MARGIN_TOP = 12;
96
- let fullHeight = rect.height + DEFAULT_NEW_ELEMENT_MARGIN_TOP;
97
- const gridOccupiedData = appendGridOccupied(dom, startRow, fullHeight, lastRow);
59
+ // Start calculation from the root
60
+ Object.values(root).forEach(node => calculateHeight(node));
98
61
  return {
99
- ...gridOccupiedData,
100
- fullHeight
62
+ root,
63
+ heightData
101
64
  };
102
- };
103
- const appendContainerItems = async (sectionCls, virtualRef, dataSets) => {
104
- const cloneNode = document.querySelector(sectionCls)?.cloneNode(true);
105
- const items = cloneNode?.querySelectorAll(ROOT_ITEM_CLASS) || [];
106
- if (!cloneNode || !items?.length || !virtualRef.current) {
107
- return;
108
- }
109
-
110
- // Remove all existing elements inside virtualRef.current
111
- virtualRef.current.innerHTML = "";
112
- virtualRef.current.style.height = `auto`;
113
- virtualRef.current.style.gridTemplateRows = `unset`;
114
-
115
- // temporary append section items to get the dom styles
116
- virtualRef.current.append(...items);
117
- let itemsHTML = "";
118
- let lastRow = 0;
119
- const gridItems = [];
120
- const nonGridItems = [];
121
- items.forEach(item => {
122
- if (getStartRow(item)) {
123
- gridItems.push(item);
124
- } else {
125
- nonGridItems.push(item);
126
- }
127
- });
128
-
129
- // to find the previously occupied rows
130
- gridItems.forEach(item => {
131
- const {
132
- updatedLastRow,
133
- domItem
134
- } = handleGridItem(item, lastRow);
135
- lastRow = updatedLastRow;
136
- itemsHTML += domItem.outerHTML;
137
- });
138
- let containerHeight = lastRow ? (lastRow - 1) * ROW_HEIGHT : 0;
139
-
140
- //place it on the next rows that are available
141
- nonGridItems.forEach(item => {
142
- const {
143
- domItem,
144
- updatedLastRow,
145
- fullHeight
146
- } = handleNonGridItem(item, lastRow);
147
- lastRow = updatedLastRow;
148
- itemsHTML += domItem.outerHTML;
149
- containerHeight += fullHeight;
150
- });
151
- const oldSectionHeight = dataSets["data-height-xs"];
152
- const newHeight = oldSectionHeight && oldSectionHeight > containerHeight ? oldSectionHeight : containerHeight;
153
- virtualRef.current.style.height = `${newHeight}px`;
154
- virtualRef.current.style.gridTemplateRows = `repeat(${lastRow - 1}, ${ROW_HEIGHT}px)`;
155
- virtualRef.current.innerHTML = itemsHTML;
156
- };
65
+ }
157
66
  const VirtualElement = props => {
158
67
  const classes = useVirtualElementStyles();
159
68
  const {
160
69
  editor,
161
70
  path,
162
- updated_at,
163
- sectionCls,
164
- dataSets
71
+ parentEle,
72
+ updated_at
165
73
  } = props;
74
+ const cloneNode = parentEle?.cloneNode(true);
166
75
  const virtualRef = useRef();
167
- const [toggleUpdate, setToggleUpdate] = useState(false);
168
76
  useEffect(() => {
169
77
  if (virtualRef?.current) {
170
78
  const timeoutId = setTimeout(() => {
171
79
  const allData = calculateProps(path, virtualRef?.current, ROOT_ITEM_CLASS, []);
172
- // const groupData = groupByPathAndCalculateHeight(allData);
173
- // console.log("allData", allData);
80
+ const groupData = groupByPathAndCalculateHeight(allData);
174
81
  // it should trigger by auto alignment or on clicking mobile view change
175
- updateAutoProps(editor, allData, "xs");
82
+ updateAutoProps(editor, allData, "xs", groupData);
176
83
  }, 100);
177
- setToggleUpdate(prev => !prev);
178
84
  return () => clearTimeout(timeoutId);
179
85
  }
180
86
  }, [updated_at, virtualRef?.current]);
181
87
  const calculateProps = (curPath, dom, domClass, allData) => {
182
88
  const rect = dom?.getBoundingClientRect();
183
-
184
- // const sectionRect = virtualRef?.current?.getBoundingClientRect();
185
-
186
- const bufferHeight = 12; // for spacing
187
-
89
+ const sectionRect = virtualRef?.current?.getBoundingClientRect();
188
90
  const sectionProps = {
189
91
  path: curPath,
190
92
  props: {
191
- height: rect?.height + bufferHeight
93
+ height: rect?.height
192
94
  }
193
95
  };
194
96
  const itemsData = [];
195
- const items = dom ? dom.querySelectorAll(domClass) : [];
97
+ const items = dom.querySelectorAll(domClass);
98
+ const nextItemPathLength = curPath?.split("|").length + 2;
99
+ let sectionHeight = 12;
196
100
  for (let i = 0; i < items.length; i++) {
197
- const item = items[i];
198
- const itemRect = item?.getBoundingClientRect();
199
- const {
200
- path
201
- } = item?.dataset;
202
- const y = Math.abs(rect.top - itemRect?.top);
203
- itemsData.push({
204
- path,
205
- props: {
206
- top: y,
207
- left: 24,
208
- marginTop: 12,
209
- width: itemRect?.width,
210
- height: itemRect?.height,
211
- gridArea: calculateGridArea(y)
212
- }
213
- });
101
+ const itemRect = items[i]?.getBoundingClientRect();
102
+ if (items[i]?.classList.contains("type_box")) {
103
+ allData = calculateProps(items[i]?.dataset.path, items[i], `.freegrid-item.path-${nextItemPathLength}`, allData);
104
+ } else {
105
+ const y = Math.abs(rect.top - itemRect?.top);
106
+ itemsData.push({
107
+ path: items[i]?.dataset.path,
108
+ props: {
109
+ top: y,
110
+ left: 24,
111
+ marginTop: 12,
112
+ width: itemRect?.width,
113
+ height: itemRect?.height,
114
+ gridArea: calculateGridArea(y)
115
+ }
116
+ });
117
+ sectionHeight += itemRect?.height;
118
+ }
119
+ }
120
+ if (dom?.classList.contains("type_box")) {
121
+ const y = Math.abs(sectionRect.top - rect?.top);
122
+ sectionProps.props.gridArea = calculateGridArea(y);
123
+ }
124
+ if (sectionHeight > sectionProps?.props?.height) {
125
+ sectionProps.props.height = sectionHeight;
214
126
  }
215
127
  allData = [sectionProps, [...allData, ...itemsData]]?.flat();
216
128
  return allData;
217
129
  };
218
- useMemo(() => {
219
- return appendContainerItems(sectionCls, virtualRef, dataSets);
220
- }, [toggleUpdate]);
130
+ const getItems = () => {
131
+ const items = cloneNode?.querySelectorAll(ROOT_ITEM_CLASS) || [];
132
+ let itemsHTML = "";
133
+ for (let i = 0; i < items?.length; i++) {
134
+ items[i].classList.add("exclude-virtual");
135
+ itemsHTML += items[i].outerHTML;
136
+ }
137
+ return itemsHTML;
138
+ };
221
139
  return /*#__PURE__*/_jsx(Box, {
222
140
  className: "mobile-virtual-mode",
223
141
  ref: virtualRef,
224
- sx: {
225
- display: "grid",
226
- gridTemplateColumns: "100%",
227
- visibility: "hidden",
228
- // height: `${containerHeight}px !important`,
229
- // gridTemplateRows: `repeat(${lastRow - 1}, ${ROW_HEIGHT}px)`,
230
- ...classes.root
142
+ sx: classes.root,
143
+ dangerouslySetInnerHTML: {
144
+ __html: getItems()
145
+ },
146
+ style: {
147
+ visibility: "hidden"
231
148
  },
232
- "aria-hidden": "true",
233
- contentEditable: false
149
+ "aria-hidden": "true"
234
150
  });
235
151
  };
236
152
  export default VirtualElement;
@@ -2,175 +2,27 @@ const useVirtualElementStyles = () => ({
2
2
  root: {
3
3
  width: "320px",
4
4
  position: "fixed",
5
- // backgroundColor: "red",
6
- // height: "fit-content",
5
+ backgroundColor: "red",
6
+ height: "auto",
7
7
  overflow: "visible",
8
8
  pointerEvents: "none",
9
- opacity: 1,
9
+ opacity: 0,
10
10
  right: 0,
11
11
  top: 0,
12
- "& .leaf-item": {
13
- fontSize: "var(--fontSize_xs) !important",
14
- "& span": {
15
- fontSize: "var(--fontSize_xs) !important"
16
- }
17
- },
18
- "& .editor-blocker": {
19
- display: "none"
20
- },
21
- "& .freegrid-item": {
22
- position: "relative !important",
23
- top: "0 !important",
24
- gridArea: "var(--gridArea_xs) !important",
25
- width: "calc(100% - 48px) !important",
26
- height: "var(--height_xs) !important",
27
- left: "24px !important",
28
- marginTop: "var(--marginTop_xs) !important",
29
- outline: "1px solid gray !important",
30
- "&.type_text": {
31
- height: "auto !important"
32
- },
33
- "&.type_image": {
34
- width: "calc(--width_xs) !important",
35
- height: "var(--height_xs) !important"
36
- },
37
- // "&.type_box": {
38
- // // display: "grid !important",
39
- // // gridTemplateRows: "repeat(auto-fill, 50px) !important",
40
- // // height: "min-content !important",
41
- // },
42
-
43
- "& .debug-info, & .editor-blocker": {
44
- display: "none"
45
- },
46
- "& .embed": {
47
- minHeight: "300px"
48
- }
49
- }
50
- }
51
- });
52
- export default useVirtualElementStyles;
53
- export const useAutoAlignStyles = () => ({
54
- root: {
55
- width: "320px",
56
- position: "fixed",
57
- overflow: "visible",
58
- opacity: 1,
59
- right: 0,
60
- top: 0,
61
- height: "auto !important",
62
- pointerEvents: "none",
63
- visibility: "hidden",
64
- "& .leaf-item": {
65
- fontSize: "var(--fontSize_xs) !important",
66
- "& span": {
67
- fontSize: "var(--fontSize_xs) !important"
68
- }
69
- },
70
- "& .editor-blocker": {
71
- display: "none"
72
- },
73
12
  "& .freegrid-item": {
74
13
  position: "relative !important",
75
- top: "0 !important",
76
14
  gridArea: "none !important",
77
15
  width: "calc(100% - 48px) !important",
78
- height: "var(--height_xs) !important",
16
+ height: "auto !important",
79
17
  left: "24px !important",
80
- marginTop: "12px !important",
81
- minHeight: "auto",
82
- display: "inherit !important",
83
- "&.type_box": {
84
- height: "auto !important"
85
- },
86
- "&.type_image": {
87
- width: "var(--width_xs) !important",
88
- height: "var(--height_xs) !important"
89
- },
90
- "&.type_text": {
91
- height: "auto !important"
92
- },
93
- // start - default signature classes on free-grid
94
- "& .fgi_type_signature": {
95
- height: "100%",
96
- "& .signature-container": {
97
- height: "100%",
98
- LineHeight: 1.43,
99
- "& .signature-btn-container": {
100
- height: "100%",
101
- display: "flex",
102
- flexDirection: "column",
103
- "& .sign-placeholder": {
104
- display: "flex",
105
- // remove hidden sign placeholder
106
- width: "100%",
107
- flexGrow: 1
108
- },
109
- "& button": {
110
- margin: "6px 0px"
111
- }
112
- }
113
- }
114
- },
115
- "& .fgi_type_sign": {
116
- width: "100%",
117
- height: "100%",
118
- "& .signature-signed-wrapper": {
119
- width: "100%",
120
- height: "100%",
121
- "& .signature-signed-span": {
122
- width: "100%",
123
- height: "100%",
124
- "& .signed-btn": {
125
- width: "100%",
126
- height: "100%",
127
- display: "flex",
128
- flexDirection: "column",
129
- "& img": {
130
- width: "100% !important",
131
- maxWidth: "none !important",
132
- height: "70% !important",
133
- flexGrow: 1
134
- }
135
- }
136
- }
137
- }
138
- },
139
- // end - default signature classes on free-grid
140
-
18
+ marginTop: "24px !important",
141
19
  "& .debug-info, & .editor-blocker": {
142
20
  display: "none"
143
21
  },
144
22
  "& .embed": {
145
23
  minHeight: "300px"
146
24
  }
147
- },
148
- "& .appHeaderBox, &.header-box-mobile-virtual-mode": {
149
- width: "calc(100% - 12px) !important",
150
- "& .fgi_type_box": {
151
- display: "flex",
152
- justifyContent: "space-evenly !important",
153
- flexWrap: "wrap"
154
- },
155
- "& .freegrid-item": {
156
- left: "4px !important",
157
- marginLeft: "0px !important"
158
- },
159
- "& .type_text": {
160
- width: "fit-content !important"
161
- },
162
- "& .type_appHeader": {
163
- width: "40px !important"
164
- },
165
- "& .shadow-element": {
166
- display: "none"
167
- }
168
- },
169
- "&.header-box-mobile-virtual-mode": {
170
- width: "320px !important",
171
- display: "flex",
172
- justifyContent: "space-evenly !important",
173
- flexWrap: "wrap"
174
25
  }
175
26
  }
176
- });
27
+ });
28
+ export default useVirtualElementStyles;
@@ -1,5 +1,5 @@
1
1
  import { Node, Transforms } from "slate";
2
- const updateAutoProps = (editor, datas = [], breakpoint = "", updateAll) => {
2
+ const updateAutoProps = (editor, datas = [], breakpoint = "", groupData) => {
3
3
  try {
4
4
  // const { heightData } = groupData;
5
5
  for (let i = 0; i < datas.length; i++) {
@@ -14,11 +14,9 @@ const updateAutoProps = (editor, datas = [], breakpoint = "", updateAll) => {
14
14
  return a;
15
15
  }, {});
16
16
  const oldProps = Node.get(editor, int_path);
17
- const updateNode = !oldProps?.xs_updatedOn || updateAll;
18
- if (updateNode) {
17
+ if (!oldProps?.xs_updatedOn) {
19
18
  Transforms.setNodes(editor, {
20
- ...updatedProps,
21
- xs_updatedOn: new Date().getTime()
19
+ ...updatedProps
22
20
  }, {
23
21
  at: int_path
24
22
  });