@flozy/editor 10.0.1 → 10.0.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 (269) hide show
  1. package/dist/Editor/ChatEditor.js +20 -28
  2. package/dist/Editor/CommonEditor.js +25 -142
  3. package/dist/Editor/DialogWrapper.js +25 -31
  4. package/dist/Editor/Editor.css +9 -17
  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 +14 -31
  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 -61
  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 +7 -10
  58. package/dist/Editor/Elements/EmbedScript/Code.js +6 -21
  59. package/dist/Editor/Elements/EmbedScript/EmbedScript.js +2 -6
  60. package/dist/Editor/Elements/EmbedScript/EmbedScriptPopup.js +30 -62
  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 +171 -185
  64. package/dist/Editor/Elements/Form/FormButton.js +2 -6
  65. package/dist/Editor/Elements/Form/FormField.js +4 -10
  66. package/dist/Editor/Elements/Form/FormPopup.js +2 -3
  67. package/dist/Editor/Elements/Form/Workflow/FormWorkflow.js +12 -18
  68. package/dist/Editor/Elements/Form/Workflow/ListWorkflow.js +8 -13
  69. package/dist/Editor/Elements/Form/Workflow/MoreOptions.js +2 -3
  70. package/dist/Editor/Elements/Form/Workflow/Styles.js +22 -24
  71. package/dist/Editor/Elements/Form/Workflow/UserInputs.js +2 -4
  72. package/dist/Editor/Elements/Form/Workflow/index.js +9 -15
  73. package/dist/Editor/Elements/FreeGrid/FreeGrid.js +112 -173
  74. package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +6 -31
  75. package/dist/Editor/Elements/FreeGrid/FreeGridButton.js +2 -6
  76. package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +6 -54
  77. package/dist/Editor/Elements/FreeGrid/Options/AddElement.js +2 -3
  78. package/dist/Editor/Elements/FreeGrid/Options/More.js +5 -11
  79. package/dist/Editor/Elements/FreeGrid/styles.js +7 -64
  80. package/dist/Editor/Elements/Grid/Grid.js +10 -13
  81. package/dist/Editor/Elements/Grid/GridButton.js +5 -9
  82. package/dist/Editor/Elements/Grid/GridItem.js +8 -14
  83. package/dist/Editor/Elements/Grid/GridItemPopup.js +1 -4
  84. package/dist/Editor/Elements/Grid/GridPopup.js +1 -4
  85. package/dist/Editor/Elements/Grid/SectionPopup.js +1 -4
  86. package/dist/Editor/Elements/Link/Link.js +5 -8
  87. package/dist/Editor/Elements/Link/LinkButton.js +1 -4
  88. package/dist/Editor/Elements/List/CheckList.js +10 -18
  89. package/dist/Editor/Elements/NewLine/NewLineButton.js +2 -6
  90. package/dist/Editor/Elements/PageSettings/PageSettingsButton.js +1 -4
  91. package/dist/Editor/Elements/PageSettings/PageSettingsPopup.js +1 -4
  92. package/dist/Editor/Elements/Search/SearchAttachment.js +9 -40
  93. package/dist/Editor/Elements/Search/SearchButton.js +11 -15
  94. package/dist/Editor/Elements/Search/SearchList.js +10 -16
  95. package/dist/Editor/Elements/Signature/SignatureButton.js +2 -6
  96. package/dist/Editor/Elements/Signature/SignatureOptions/TypeSignature.js +2 -6
  97. package/dist/Editor/Elements/Signature/SignatureOptions/UploadSignature.js +1 -4
  98. package/dist/Editor/Elements/Signature/SignaturePopup.js +16 -17
  99. package/dist/Editor/Elements/SimpleText/index.js +5 -11
  100. package/dist/Editor/Elements/SimpleText/style.js +2 -2
  101. package/dist/Editor/Elements/Table/DragButton.js +2 -4
  102. package/dist/Editor/Elements/Table/Table.js +11 -23
  103. package/dist/Editor/Elements/Table/TablePopup.js +1 -4
  104. package/dist/Editor/Elements/Table/TableSelector.js +6 -10
  105. package/dist/Editor/Elements/Table/TableTool.js +4 -8
  106. package/dist/Editor/Elements/Title/title.js +6 -6
  107. package/dist/Editor/Elements/TopBanner/TopBannerButton.js +1 -4
  108. package/dist/Editor/Elements/Variables/VariableButton.js +1 -10
  109. package/dist/Editor/MiniEditor.js +3 -10
  110. package/dist/Editor/Styles/EditorStyles.js +5 -5
  111. package/dist/Editor/Toolbar/Basic/index.js +1 -2
  112. package/dist/Editor/Toolbar/FormatTools/BlockButton.js +2 -6
  113. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +3 -27
  114. package/dist/Editor/Toolbar/FormatTools/FontFamilyAutocomplete.js +3 -4
  115. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +4 -8
  116. package/dist/Editor/Toolbar/FormatTools/TextSize.js +13 -10
  117. package/dist/Editor/Toolbar/Mini/MiniToolbar.js +6 -19
  118. package/dist/Editor/Toolbar/PopupTool/AddTemplates.js +5 -10
  119. package/dist/Editor/Toolbar/PopupTool/ButtonTemplatesCard.js +4 -10
  120. package/dist/Editor/Toolbar/PopupTool/FullViewCard.js +4 -10
  121. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/MiniColorPicker.js +3 -9
  122. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectAlignment.js +35 -42
  123. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +13 -6
  124. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectList.js +51 -58
  125. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectSuperSubscript.js +22 -29
  126. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +87 -226
  127. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +10 -20
  128. package/dist/Editor/Toolbar/PopupTool/PopperHeader.js +5 -10
  129. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +12 -72
  130. package/dist/Editor/Toolbar/PopupTool/TemplateCard.js +5 -11
  131. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +45 -123
  132. package/dist/Editor/Toolbar/PopupTool/index.js +2 -18
  133. package/dist/Editor/Toolbar/Toolbar.js +10 -20
  134. package/dist/Editor/Toolbar/toolbarGroups.js +6 -48
  135. package/dist/Editor/assets/svg/SettingsIcon.js +0 -1
  136. package/dist/Editor/common/ColorPickerButton.js +16 -38
  137. package/dist/Editor/common/CustomDialog/index.js +10 -8
  138. package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
  139. package/dist/Editor/common/FontLoader/FontLoader.js +0 -3
  140. package/dist/Editor/common/Icon.js +1 -31
  141. package/dist/Editor/common/ImageSelector/ImageSelector.js +8 -10
  142. package/dist/Editor/common/ImageSelector/Options/AddLink.js +4 -6
  143. package/dist/Editor/common/ImageSelector/Styles.js +9 -3
  144. package/dist/Editor/common/LinkSettings/NavComponents.js +15 -45
  145. package/dist/Editor/common/LinkSettings/index.js +74 -96
  146. package/dist/Editor/common/LinkSettings/navOptions.js +1 -1
  147. package/dist/Editor/common/LinkSettings/style.js +30 -245
  148. package/dist/Editor/common/MentionsPopup/index.js +2 -6
  149. package/dist/Editor/common/RnD/ContextMenu/CMenus.js +22 -46
  150. package/dist/Editor/common/RnD/ContextMenu/index.js +2 -3
  151. package/dist/Editor/common/RnD/ElementOptions/Actions.js +14 -13
  152. package/dist/Editor/common/RnD/ElementOptions/Icons/LinkIcon.js +0 -1
  153. package/dist/Editor/common/RnD/ElementOptions/index.js +4 -9
  154. package/dist/Editor/common/RnD/ElementOptions/styles.js +1 -28
  155. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/SaveAsTemplate.js +3 -8
  156. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Settings.js +7 -11
  157. package/dist/Editor/common/RnD/ElementSettings/Settings/AppHeaderSettings.js +2 -3
  158. package/dist/Editor/common/RnD/ElementSettings/Settings/BoxSettings.js +2 -3
  159. package/dist/Editor/common/RnD/ElementSettings/Settings/ButtonSettings.js +2 -3
  160. package/dist/Editor/common/RnD/ElementSettings/Settings/CodeSettings.js +2 -3
  161. package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +4 -7
  162. package/dist/Editor/common/RnD/ElementSettings/Settings/ImageSettings.js +2 -3
  163. package/dist/Editor/common/RnD/ElementSettings/Settings/TableSettings.js +2 -3
  164. package/dist/Editor/common/RnD/ElementSettings/Settings/TextSettings.js +2 -6
  165. package/dist/Editor/common/RnD/ElementSettings/Settings/VideoSettings.js +2 -3
  166. package/dist/Editor/common/RnD/ElementSettings/styles.js +12 -147
  167. package/dist/Editor/common/RnD/OptionsPopup/index.js +8 -12
  168. package/dist/Editor/common/RnD/OptionsPopup/style.js +19 -121
  169. package/dist/Editor/common/RnD/ShadowElement.js +1 -2
  170. package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +7 -11
  171. package/dist/Editor/common/RnD/Theme/ViewportStimulator.js +3 -6
  172. package/dist/Editor/common/RnD/Utils/gridDropItem.js +9 -73
  173. package/dist/Editor/common/RnD/Utils/index.js +0 -3
  174. package/dist/Editor/common/RnD/VirtualElement/index.js +103 -187
  175. package/dist/Editor/common/RnD/VirtualElement/styles.js +7 -157
  176. package/dist/Editor/common/RnD/VirtualElement/updateAutoProps.js +3 -5
  177. package/dist/Editor/common/RnD/index.js +8 -76
  178. package/dist/Editor/common/Section/index.js +4 -7
  179. package/dist/Editor/common/Select/index.js +0 -2
  180. package/dist/Editor/common/Shorthands/elements.js +3 -72
  181. package/dist/Editor/common/StyleBuilder/appHeaderStyle.js +4 -4
  182. package/dist/Editor/common/StyleBuilder/boxStyle.js +2 -2
  183. package/dist/Editor/common/StyleBuilder/buttonStyle.js +4 -6
  184. package/dist/Editor/common/StyleBuilder/dividerStyles.js +2 -2
  185. package/dist/Editor/common/StyleBuilder/embedVideoStyle.js +6 -6
  186. package/dist/Editor/common/StyleBuilder/fieldStyle.js +2 -2
  187. package/dist/Editor/common/StyleBuilder/fieldTypes/alignment.js +9 -13
  188. package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +3 -11
  189. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +5 -19
  190. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +10 -22
  191. package/dist/Editor/common/StyleBuilder/fieldTypes/buttonLink.js +3 -6
  192. package/dist/Editor/common/StyleBuilder/fieldTypes/card.js +13 -27
  193. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +14 -44
  194. package/dist/Editor/common/StyleBuilder/fieldTypes/elementSize.js +6 -10
  195. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +6 -19
  196. package/dist/Editor/common/StyleBuilder/fieldTypes/gridSize.js +2 -6
  197. package/dist/Editor/common/StyleBuilder/fieldTypes/icons.js +2 -5
  198. package/dist/Editor/common/StyleBuilder/fieldTypes/lineSpacing.js +6 -7
  199. package/dist/Editor/common/StyleBuilder/fieldTypes/menusArray.js +12 -22
  200. package/dist/Editor/common/StyleBuilder/fieldTypes/metaDataMapping.js +2 -8
  201. package/dist/Editor/common/StyleBuilder/fieldTypes/saveAsTemplate.js +11 -12
  202. package/dist/Editor/common/StyleBuilder/fieldTypes/selectBox.js +2 -6
  203. package/dist/Editor/common/StyleBuilder/fieldTypes/text.js +4 -8
  204. package/dist/Editor/common/StyleBuilder/fieldTypes/textAlign.js +2 -6
  205. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +12 -21
  206. package/dist/Editor/common/StyleBuilder/formStyle.js +7 -7
  207. package/dist/Editor/common/StyleBuilder/gridItemStyle.js +6 -6
  208. package/dist/Editor/common/StyleBuilder/gridStyle.js +5 -5
  209. package/dist/Editor/common/StyleBuilder/index.js +5 -8
  210. package/dist/Editor/common/StyleBuilder/pageSettingsStyle.js +7 -5
  211. package/dist/Editor/common/Uploader.js +5 -16
  212. package/dist/Editor/common/iconListV2.js +6 -101
  213. package/dist/Editor/common/iconslist.js +0 -24
  214. package/dist/Editor/commonStyle.js +61 -174
  215. package/dist/Editor/helper/index.js +3 -27
  216. package/dist/Editor/helper/theme.js +2 -203
  217. package/dist/Editor/hooks/useMouseMove.js +5 -8
  218. package/dist/Editor/plugins/withEmbeds.js +1 -1
  219. package/dist/Editor/plugins/withHTML.js +7 -10
  220. package/dist/Editor/plugins/withLayout.js +2 -3
  221. package/dist/Editor/plugins/withLinks.js +0 -9
  222. package/dist/Editor/plugins/withTable.js +1 -1
  223. package/dist/Editor/theme/ThemeList.js +173 -50
  224. package/dist/Editor/utils/SlateUtilityFunctions.js +54 -186
  225. package/dist/Editor/utils/brains.js +2 -1
  226. package/dist/Editor/utils/button.js +17 -1
  227. package/dist/Editor/utils/draftToSlate.js +2 -3
  228. package/dist/Editor/utils/font.js +37 -40
  229. package/dist/Editor/utils/freegrid.js +4 -3
  230. package/dist/Editor/utils/helper.js +21 -92
  231. package/package.json +4 -4
  232. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/MultiSelect.js +0 -454
  233. package/dist/Editor/Elements/EmbedScript/styles.js +0 -89
  234. package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +0 -439
  235. package/dist/Editor/assets/svg/BackIcon.js +0 -18
  236. package/dist/Editor/assets/svg/ClearAllRounded.js +0 -31
  237. package/dist/Editor/assets/svg/ResetIconNew.js +0 -23
  238. package/dist/Editor/assets/svg/ThemeIcons.js +0 -293
  239. package/dist/Editor/common/CustomColorPicker/index.js +0 -131
  240. package/dist/Editor/common/CustomColorPicker/style.js +0 -53
  241. package/dist/Editor/common/CustomDialog2/index.js +0 -94
  242. package/dist/Editor/common/CustomDialog2/style.js +0 -67
  243. package/dist/Editor/common/CustomSelect.js +0 -43
  244. package/dist/Editor/common/RnD/Theme/MainThemeProvider.js +0 -17
  245. package/dist/Editor/common/RnD/VirtualElement/BoxHeaderAutoAlignment.js +0 -43
  246. package/dist/Editor/common/RnD/VirtualElement/ForceAutoAlignment.js +0 -44
  247. package/dist/Editor/common/RnD/VirtualElement/VirtualTextElement.js +0 -134
  248. package/dist/Editor/common/RnD/VirtualElement/helper.js +0 -382
  249. package/dist/Editor/common/SnackBar/index.js +0 -43
  250. package/dist/Editor/helper/textIndeces.js +0 -58
  251. package/dist/Editor/hooks/useAutoScroll.js +0 -38
  252. package/dist/Editor/hooks/useEditorTheme.js +0 -153
  253. package/dist/Editor/hooks/useThemeValues.js +0 -63
  254. package/dist/Editor/theme/index.js +0 -149
  255. package/dist/Editor/themeSettings/ActiveTheme.js +0 -72
  256. package/dist/Editor/themeSettings/buttons/index.js +0 -290
  257. package/dist/Editor/themeSettings/buttons/style.js +0 -23
  258. package/dist/Editor/themeSettings/colorTheme/index.js +0 -309
  259. package/dist/Editor/themeSettings/colorTheme/style.js +0 -81
  260. package/dist/Editor/themeSettings/fonts/PreviewElement.js +0 -121
  261. package/dist/Editor/themeSettings/fonts/index.js +0 -240
  262. package/dist/Editor/themeSettings/fonts/style.js +0 -62
  263. package/dist/Editor/themeSettings/icons.js +0 -60
  264. package/dist/Editor/themeSettings/index.js +0 -361
  265. package/dist/Editor/themeSettings/style.js +0 -292
  266. package/dist/Editor/themeSettingsAI/icons.js +0 -96
  267. package/dist/Editor/themeSettingsAI/index.js +0 -355
  268. package/dist/Editor/themeSettingsAI/saveTheme.js +0 -202
  269. package/dist/Editor/themeSettingsAI/style.js +0 -324
@@ -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,177 +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
- paddingBottom: "12px"
86
- },
87
- "&.type_image": {
88
- width: "var(--width_xs) !important",
89
- height: "var(--height_xs) !important"
90
- },
91
- "&.type_text": {
92
- height: "auto !important"
93
- },
94
- // start - default signature classes on free-grid
95
- "& .fgi_type_signature": {
96
- height: "100%",
97
- "& .signature-container": {
98
- height: "100%",
99
- LineHeight: 1.43,
100
- "& .signature-btn-container": {
101
- height: "100%",
102
- display: "flex",
103
- flexDirection: "column",
104
- "& .sign-placeholder": {
105
- display: "flex",
106
- // remove hidden sign placeholder
107
- width: "100%",
108
- flexGrow: 1
109
- },
110
- "& button": {
111
- margin: "6px 0px"
112
- }
113
- }
114
- }
115
- },
116
- "& .fgi_type_sign": {
117
- width: "100%",
118
- height: "100%",
119
- "& .signature-signed-wrapper": {
120
- width: "100%",
121
- height: "100%",
122
- "& .signature-signed-span": {
123
- width: "100%",
124
- height: "100%",
125
- "& .signed-btn": {
126
- width: "100%",
127
- height: "100%",
128
- display: "flex",
129
- flexDirection: "column",
130
- "& img": {
131
- width: "100% !important",
132
- maxWidth: "none !important",
133
- height: "70% !important",
134
- flexGrow: 1
135
- }
136
- }
137
- }
138
- }
139
- },
140
- // end - default signature classes on free-grid
141
-
18
+ marginTop: "24px !important",
142
19
  "& .debug-info, & .editor-blocker": {
143
20
  display: "none"
144
21
  },
145
22
  "& .embed": {
146
23
  minHeight: "300px"
147
24
  }
148
- },
149
- "& .appHeaderBox, &.header-box-mobile-virtual-mode": {
150
- width: "calc(100% - 12px) !important",
151
- paddingBottom: "6px !important",
152
- "& .fgi_type_box": {
153
- display: "flex",
154
- justifyContent: "space-evenly !important",
155
- flexWrap: "wrap"
156
- },
157
- "& .freegrid-item": {
158
- left: "4px !important",
159
- marginLeft: "0px !important"
160
- },
161
- "& .type_text": {
162
- width: "fit-content !important"
163
- },
164
- "& .type_appHeader": {
165
- width: "40px !important"
166
- },
167
- "& .shadow-element": {
168
- display: "none"
169
- }
170
- },
171
- "&.header-box-mobile-virtual-mode": {
172
- width: "320px !important",
173
- display: "flex",
174
- justifyContent: "space-evenly !important",
175
- flexWrap: "wrap"
176
25
  }
177
26
  }
178
- });
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
  });