@flozy/editor 10.0.3 → 10.0.5

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 (179) hide show
  1. package/dist/Editor/ChatEditor.js +14 -7
  2. package/dist/Editor/CommonEditor.js +30 -13
  3. package/dist/Editor/Editor.css +1 -1
  4. package/dist/Editor/Elements/AI/AIInput.js +5 -3
  5. package/dist/Editor/Elements/AI/CustomSelect.js +9 -5
  6. package/dist/Editor/Elements/AI/PopoverAIInput.js +4 -2
  7. package/dist/Editor/Elements/Accordion/Accordion.js +4 -3
  8. package/dist/Editor/Elements/Accordion/AccordionBtnPopup.js +4 -1
  9. package/dist/Editor/Elements/Accordion/AccordionButton.js +6 -2
  10. package/dist/Editor/Elements/Accordion/AccordionTitlePopup.js +4 -1
  11. package/dist/Editor/Elements/AppHeader/AppHeaderButton.js +6 -2
  12. package/dist/Editor/Elements/AppHeader/AppHeaderPopup.js +4 -1
  13. package/dist/Editor/Elements/Attachments/AttachmentsButton.js +4 -1
  14. package/dist/Editor/Elements/Button/ButtonPopup.js +4 -1
  15. package/dist/Editor/Elements/Button/ButtonToolIcon.js +6 -2
  16. package/dist/Editor/Elements/Button/EditorButton.js +6 -5
  17. package/dist/Editor/Elements/Carousel/Carousel.js +5 -4
  18. package/dist/Editor/Elements/Carousel/CarouselButton.js +6 -2
  19. package/dist/Editor/Elements/Carousel/CarouselItem.js +3 -2
  20. package/dist/Editor/Elements/ChipText/ChipTextPopup.js +4 -1
  21. package/dist/Editor/Elements/CodeToText/CodeToText.js +5 -4
  22. package/dist/Editor/Elements/CodeToText/HtmlContextMenu.js +6 -2
  23. package/dist/Editor/Elements/Colorbox/ColorboxButton.js +6 -2
  24. package/dist/Editor/Elements/DataView/DataView.js +5 -2
  25. package/dist/Editor/Elements/DataView/DataViewButton.js +6 -2
  26. package/dist/Editor/Elements/DataView/Layouts/FilterSort/SortOptions/ChooseSort.js +13 -12
  27. package/dist/Editor/Elements/DataView/Layouts/FilterSort/SortOptions/index.js +7 -4
  28. package/dist/Editor/Elements/DataView/Layouts/FilterSort/index.js +7 -5
  29. package/dist/Editor/Elements/DataView/Layouts/FilterView.js +9 -7
  30. package/dist/Editor/Elements/DataView/Layouts/Options/AddOptions.js +3 -2
  31. package/dist/Editor/Elements/DataView/Layouts/Options/AddProperty.js +5 -3
  32. package/dist/Editor/Elements/DataView/Layouts/Options/AllProperties.js +6 -5
  33. package/dist/Editor/Elements/DataView/Layouts/Options/ChangeProperty.js +5 -3
  34. package/dist/Editor/Elements/DataView/Layouts/Options/EditOption.js +7 -6
  35. package/dist/Editor/Elements/DataView/Layouts/Options/EditProperty.js +15 -12
  36. package/dist/Editor/Elements/DataView/Layouts/Options/FilterProperty.js +3 -2
  37. package/dist/Editor/Elements/DataView/Layouts/Options/PropertyList.js +3 -2
  38. package/dist/Editor/Elements/DataView/Layouts/Options/index.js +12 -6
  39. package/dist/Editor/Elements/DataView/Layouts/TableView.js +6 -4
  40. package/dist/Editor/Elements/DataView/Layouts/index.js +3 -1
  41. package/dist/Editor/Elements/DataView/Providers/DataViewProvider.js +5 -2
  42. package/dist/Editor/Elements/Divider/Divider.js +5 -3
  43. package/dist/Editor/Elements/Divider/DividerButton.js +6 -2
  44. package/dist/Editor/Elements/Divider/DividerPopup.js +3 -2
  45. package/dist/Editor/Elements/Embed/Embed.js +4 -1
  46. package/dist/Editor/Elements/Embed/EmbedPopup.js +4 -1
  47. package/dist/Editor/Elements/Embed/Image.js +16 -11
  48. package/dist/Editor/Elements/Embed/Video.js +10 -7
  49. package/dist/Editor/Elements/EmbedScript/Code.js +7 -4
  50. package/dist/Editor/Elements/EmbedScript/EmbedScript.js +6 -2
  51. package/dist/Editor/Elements/EmbedScript/EmbedScriptPopup.js +8 -5
  52. package/dist/Editor/Elements/Emoji/EmojiButton.js +6 -2
  53. package/dist/Editor/Elements/Form/FieldPopup.js +4 -1
  54. package/dist/Editor/Elements/Form/Form.js +12 -9
  55. package/dist/Editor/Elements/Form/FormButton.js +6 -2
  56. package/dist/Editor/Elements/Form/FormPopup.js +3 -2
  57. package/dist/Editor/Elements/Form/Workflow/FormWorkflow.js +18 -12
  58. package/dist/Editor/Elements/Form/Workflow/ListWorkflow.js +13 -8
  59. package/dist/Editor/Elements/Form/Workflow/MoreOptions.js +3 -2
  60. package/dist/Editor/Elements/Form/Workflow/UserInputs.js +4 -2
  61. package/dist/Editor/Elements/Form/Workflow/index.js +15 -9
  62. package/dist/Editor/Elements/FreeGrid/FreeGrid.js +168 -97
  63. package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +31 -6
  64. package/dist/Editor/Elements/FreeGrid/FreeGridButton.js +6 -2
  65. package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +54 -6
  66. package/dist/Editor/Elements/FreeGrid/Options/AddElement.js +3 -2
  67. package/dist/Editor/Elements/FreeGrid/Options/More.js +10 -4
  68. package/dist/Editor/Elements/Grid/Grid.js +13 -10
  69. package/dist/Editor/Elements/Grid/GridButton.js +9 -5
  70. package/dist/Editor/Elements/Grid/GridItem.js +13 -7
  71. package/dist/Editor/Elements/Grid/GridItemPopup.js +4 -1
  72. package/dist/Editor/Elements/Grid/GridPopup.js +4 -1
  73. package/dist/Editor/Elements/Grid/SectionPopup.js +4 -1
  74. package/dist/Editor/Elements/Link/Link.js +8 -5
  75. package/dist/Editor/Elements/Link/LinkButton.js +4 -1
  76. package/dist/Editor/Elements/List/CheckList.js +14 -9
  77. package/dist/Editor/Elements/NewLine/NewLineButton.js +6 -2
  78. package/dist/Editor/Elements/PageSettings/PageSettingsButton.js +4 -1
  79. package/dist/Editor/Elements/PageSettings/PageSettingsPopup.js +4 -1
  80. package/dist/Editor/Elements/Search/SearchButton.js +6 -3
  81. package/dist/Editor/Elements/Search/SearchList.js +7 -3
  82. package/dist/Editor/Elements/Signature/SignatureButton.js +6 -2
  83. package/dist/Editor/Elements/Signature/SignatureOptions/TypeSignature.js +6 -2
  84. package/dist/Editor/Elements/Signature/SignatureOptions/UploadSignature.js +4 -1
  85. package/dist/Editor/Elements/Signature/SignaturePopup.js +17 -16
  86. package/dist/Editor/Elements/SimpleText/index.js +5 -4
  87. package/dist/Editor/Elements/Table/DragButton.js +4 -2
  88. package/dist/Editor/Elements/Table/Table.js +21 -9
  89. package/dist/Editor/Elements/Table/TablePopup.js +4 -1
  90. package/dist/Editor/Elements/Table/TableSelector.js +10 -6
  91. package/dist/Editor/Elements/Table/TableTool.js +8 -4
  92. package/dist/Editor/Elements/TopBanner/TopBannerButton.js +4 -1
  93. package/dist/Editor/MiniEditor.js +9 -3
  94. package/dist/Editor/Toolbar/Basic/index.js +2 -1
  95. package/dist/Editor/Toolbar/FormatTools/BlockButton.js +6 -2
  96. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +6 -2
  97. package/dist/Editor/Toolbar/Mini/MiniToolbar.js +17 -5
  98. package/dist/Editor/Toolbar/PopupTool/AddTemplates.js +10 -5
  99. package/dist/Editor/Toolbar/PopupTool/ButtonTemplatesCard.js +10 -4
  100. package/dist/Editor/Toolbar/PopupTool/FullViewCard.js +10 -4
  101. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/MiniColorPicker.js +6 -2
  102. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectAlignment.js +42 -35
  103. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectList.js +58 -51
  104. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectSuperSubscript.js +29 -22
  105. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +87 -73
  106. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +14 -7
  107. package/dist/Editor/Toolbar/PopupTool/PopperHeader.js +8 -4
  108. package/dist/Editor/Toolbar/PopupTool/TemplateCard.js +11 -5
  109. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +32 -27
  110. package/dist/Editor/Toolbar/PopupTool/index.js +17 -1
  111. package/dist/Editor/Toolbar/Toolbar.js +20 -10
  112. package/dist/Editor/common/CustomDialog/index.js +8 -10
  113. package/dist/Editor/common/ImageSelector/ImageSelector.js +10 -8
  114. package/dist/Editor/common/ImageSelector/Options/AddLink.js +6 -4
  115. package/dist/Editor/common/LinkSettings/NavComponents.js +14 -10
  116. package/dist/Editor/common/LinkSettings/index.js +20 -14
  117. package/dist/Editor/common/LinkSettings/navOptions.js +1 -1
  118. package/dist/Editor/common/MentionsPopup/index.js +6 -2
  119. package/dist/Editor/common/RnD/ContextMenu/CMenus.js +46 -22
  120. package/dist/Editor/common/RnD/ContextMenu/index.js +3 -2
  121. package/dist/Editor/common/RnD/ElementOptions/index.js +7 -2
  122. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/SaveAsTemplate.js +8 -3
  123. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Settings.js +5 -2
  124. package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +3 -2
  125. package/dist/Editor/common/RnD/ElementSettings/Settings/TextSettings.js +4 -2
  126. package/dist/Editor/common/RnD/OptionsPopup/index.js +4 -3
  127. package/dist/Editor/common/RnD/ShadowElement.js +2 -1
  128. package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +4 -3
  129. package/dist/Editor/common/RnD/Utils/gridDropItem.js +74 -9
  130. package/dist/Editor/common/RnD/Utils/index.js +3 -0
  131. package/dist/Editor/common/RnD/VirtualElement/BoxHeaderAutoAlignment.js +43 -0
  132. package/dist/Editor/common/RnD/VirtualElement/ForceAutoAlignment.js +44 -0
  133. package/dist/Editor/common/RnD/VirtualElement/VirtualTextElement.js +134 -0
  134. package/dist/Editor/common/RnD/VirtualElement/helper.js +382 -0
  135. package/dist/Editor/common/RnD/VirtualElement/index.js +187 -103
  136. package/dist/Editor/common/RnD/VirtualElement/styles.js +157 -7
  137. package/dist/Editor/common/RnD/VirtualElement/updateAutoProps.js +5 -3
  138. package/dist/Editor/common/RnD/index.js +76 -8
  139. package/dist/Editor/common/Section/index.js +7 -4
  140. package/dist/Editor/common/Shorthands/elements.js +18 -3
  141. package/dist/Editor/common/StyleBuilder/appHeaderStyle.js +4 -4
  142. package/dist/Editor/common/StyleBuilder/boxStyle.js +2 -2
  143. package/dist/Editor/common/StyleBuilder/buttonStyle.js +2 -2
  144. package/dist/Editor/common/StyleBuilder/dividerStyles.js +2 -2
  145. package/dist/Editor/common/StyleBuilder/embedVideoStyle.js +6 -6
  146. package/dist/Editor/common/StyleBuilder/fieldStyle.js +2 -2
  147. package/dist/Editor/common/StyleBuilder/fieldTypes/alignment.js +13 -9
  148. package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +6 -3
  149. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +7 -3
  150. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +7 -3
  151. package/dist/Editor/common/StyleBuilder/fieldTypes/buttonLink.js +6 -3
  152. package/dist/Editor/common/StyleBuilder/fieldTypes/card.js +11 -5
  153. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +9 -5
  154. package/dist/Editor/common/StyleBuilder/fieldTypes/elementSize.js +10 -6
  155. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +6 -2
  156. package/dist/Editor/common/StyleBuilder/fieldTypes/gridSize.js +6 -2
  157. package/dist/Editor/common/StyleBuilder/fieldTypes/icons.js +5 -2
  158. package/dist/Editor/common/StyleBuilder/fieldTypes/menusArray.js +9 -6
  159. package/dist/Editor/common/StyleBuilder/fieldTypes/metaDataMapping.js +8 -2
  160. package/dist/Editor/common/StyleBuilder/fieldTypes/saveAsTemplate.js +12 -11
  161. package/dist/Editor/common/StyleBuilder/fieldTypes/selectBox.js +6 -2
  162. package/dist/Editor/common/StyleBuilder/fieldTypes/text.js +8 -4
  163. package/dist/Editor/common/StyleBuilder/fieldTypes/textAlign.js +6 -2
  164. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +6 -5
  165. package/dist/Editor/common/StyleBuilder/formStyle.js +7 -7
  166. package/dist/Editor/common/StyleBuilder/gridItemStyle.js +6 -6
  167. package/dist/Editor/common/StyleBuilder/gridStyle.js +5 -5
  168. package/dist/Editor/common/StyleBuilder/index.js +8 -5
  169. package/dist/Editor/common/Uploader.js +8 -5
  170. package/dist/Editor/helper/index.js +27 -3
  171. package/dist/Editor/hooks/useAutoScroll.js +38 -0
  172. package/dist/Editor/plugins/withHTML.js +7 -6
  173. package/dist/Editor/plugins/withLayout.js +3 -2
  174. package/dist/Editor/plugins/withLinks.js +9 -0
  175. package/dist/Editor/utils/SlateUtilityFunctions.js +20 -11
  176. package/dist/Editor/utils/brains.js +1 -2
  177. package/dist/Editor/utils/freegrid.js +3 -4
  178. package/dist/Editor/utils/helper.js +2 -2
  179. package/package.json +1 -1
@@ -44,7 +44,8 @@ export default function LinkSettings(props) {
44
44
  } = props;
45
45
  const {
46
46
  isMobile,
47
- tagName
47
+ tagName,
48
+ translation
48
49
  } = customProps;
49
50
  const navOptions = getNavOptions(customProps.hideTools, tagName, allowTrigger);
50
51
  const classes = LinkSettingsStyles(theme);
@@ -72,7 +73,7 @@ export default function LinkSettings(props) {
72
73
  sx: {
73
74
  fontWeight: 600
74
75
  },
75
- children: "What do you want to link to?"
76
+ children: translation("dialogueTitle")
76
77
  }), /*#__PURE__*/_jsx(Select, {
77
78
  size: "small",
78
79
  fullWidth: true,
@@ -94,7 +95,7 @@ export default function LinkSettings(props) {
94
95
  value: navOption.value,
95
96
  children: /*#__PURE__*/_jsx(Typography, {
96
97
  variant: "body2",
97
- children: navOption.label
98
+ children: translation(navOption.label)
98
99
  })
99
100
  }, i);
100
101
  })
@@ -103,14 +104,15 @@ export default function LinkSettings(props) {
103
104
  paddingTop: "14px"
104
105
  },
105
106
  children: NavSettings && /*#__PURE__*/_jsx(NavSettings, {
106
- placeholder: nav?.placeholder,
107
+ placeholder: translation(nav?.placeholder),
107
108
  nav: nav,
108
109
  onChange: onChange,
109
110
  value: navValue,
110
111
  openInNewTab: openInNewTab,
111
112
  onNewTabChange: () => setOpenInNewTab(prev => !prev),
112
113
  services: customProps.services,
113
- classes: classes
114
+ classes: classes,
115
+ translation: translation
114
116
  })
115
117
  }), /*#__PURE__*/_jsx(Box, {
116
118
  component: "div",
@@ -118,7 +120,8 @@ export default function LinkSettings(props) {
118
120
  children: /*#__PURE__*/_jsx(ActionsButtons, {
119
121
  classes: classes,
120
122
  onCancel: handleClose,
121
- onSave: onSubmit
123
+ onSave: onSubmit,
124
+ translation: translation
122
125
  })
123
126
  })]
124
127
  });
@@ -130,7 +133,7 @@ export default function LinkSettings(props) {
130
133
  fullWidth: true,
131
134
  maxWidth: "sm",
132
135
  children: [/*#__PURE__*/_jsx(DialogTitle, {
133
- children: "What do you want to link to?"
136
+ children: translation("dialogueTitle")
134
137
  }), /*#__PURE__*/_jsx(IconButton, {
135
138
  "aria-label": "close",
136
139
  onClick: handleClose,
@@ -152,7 +155,7 @@ export default function LinkSettings(props) {
152
155
  return /*#__PURE__*/_jsx(FormControlLabel, {
153
156
  value: navOption.value,
154
157
  control: /*#__PURE__*/_jsx(Radio, {}),
155
- label: navOption.label,
158
+ label: translation(navOption.label),
156
159
  onChange: () => {
157
160
  setNav(navOption);
158
161
  setNavValue("");
@@ -165,14 +168,15 @@ export default function LinkSettings(props) {
165
168
  item: true,
166
169
  xs: 6,
167
170
  children: NavSettings && /*#__PURE__*/_jsx(NavSettings, {
168
- placeholder: nav?.placeholder,
171
+ placeholder: translation(nav?.placeholder),
169
172
  nav: nav,
170
173
  onChange: onChange,
171
174
  value: navValue,
172
175
  openInNewTab: openInNewTab,
173
176
  onNewTabChange: () => setOpenInNewTab(prev => !prev),
174
177
  services: customProps.services,
175
- classes: classes
178
+ classes: classes,
179
+ translation: translation
176
180
  })
177
181
  })]
178
182
  })
@@ -180,7 +184,8 @@ export default function LinkSettings(props) {
180
184
  children: /*#__PURE__*/_jsx(ActionsButtons, {
181
185
  classes: classes,
182
186
  onCancel: handleClose,
183
- onSave: onSubmit
187
+ onSave: onSubmit,
188
+ translation: translation
184
189
  })
185
190
  })]
186
191
  });
@@ -189,17 +194,18 @@ export default function LinkSettings(props) {
189
194
  function ActionsButtons({
190
195
  classes,
191
196
  onCancel,
192
- onSave
197
+ onSave,
198
+ translation
193
199
  }) {
194
200
  return /*#__PURE__*/_jsxs(_Fragment, {
195
201
  children: [/*#__PURE__*/_jsx(Button, {
196
202
  onClick: onCancel,
197
203
  sx: classes.closeBtn,
198
- children: "Cancel"
204
+ children: translation("Cancel")
199
205
  }), /*#__PURE__*/_jsx(Button, {
200
206
  onClick: onSave,
201
207
  sx: classes.saveBtn,
202
- children: "Save"
208
+ children: translation("Save")
203
209
  })]
204
210
  });
205
211
  }
@@ -13,7 +13,7 @@ export const getNavOptions = (hideTools = [], tagName = "", allowTrigger) => {
13
13
  }, {
14
14
  label: "Web Address",
15
15
  value: "webAddress",
16
- placeholder: "https://",
16
+ placeholder: "httpsText",
17
17
  showOpenInNewTab: true
18
18
  }, {
19
19
  label: "Select Page and Section",
@@ -24,8 +24,12 @@ const MentionsPopup = /*#__PURE__*/forwardRef((props, ref) => {
24
24
  mentions,
25
25
  setMentions,
26
26
  type,
27
- otherProps
27
+ otherProps,
28
+ customProps
28
29
  } = props;
30
+ const {
31
+ translation
32
+ } = customProps;
29
33
  const classes = usePopupStyle(theme);
30
34
  const papperRef = useRef(null);
31
35
  const buttonRef = useRef(null);
@@ -94,7 +98,7 @@ const MentionsPopup = /*#__PURE__*/forwardRef((props, ref) => {
94
98
  sx: classes.groupHeader,
95
99
  component: "div",
96
100
  variant: "h6",
97
- children: prevGroup
101
+ children: translation(prevGroup)
98
102
  });
99
103
  } else {
100
104
  return null;
@@ -7,9 +7,9 @@ const CMenus = {
7
7
  name: "bringForward",
8
8
  label: "Move to Front",
9
9
  autoClose: false,
10
- render: () => {
10
+ render: translation => {
11
11
  return /*#__PURE__*/_jsxs(_Fragment, {
12
- children: ["Move to Front", " ", /*#__PURE__*/_jsxs("span", {
12
+ children: [translation("Move to Front"), " ", /*#__PURE__*/_jsxs("span", {
13
13
  className: "shortcut-help-info",
14
14
  children: [/*#__PURE__*/_jsx(CMDIcon, {}), " \u2191"]
15
15
  })]
@@ -19,9 +19,9 @@ const CMenus = {
19
19
  name: "bringBackward",
20
20
  label: "Move to Back",
21
21
  autoClose: false,
22
- render: () => {
22
+ render: translation => {
23
23
  return /*#__PURE__*/_jsxs(_Fragment, {
24
- children: ["Move to Back", " ", /*#__PURE__*/_jsxs("span", {
24
+ children: [translation("Move to Back"), " ", /*#__PURE__*/_jsxs("span", {
25
25
  className: "shortcut-help-info",
26
26
  children: [/*#__PURE__*/_jsx(CMDIcon, {}), " \u2193"]
27
27
  })]
@@ -30,9 +30,9 @@ const CMenus = {
30
30
  }, {
31
31
  name: "cut",
32
32
  label: "Cut",
33
- render: () => {
33
+ render: translation => {
34
34
  return /*#__PURE__*/_jsxs(_Fragment, {
35
- children: ["Cut", " ", /*#__PURE__*/_jsxs("span", {
35
+ children: [translation("Cut"), " ", /*#__PURE__*/_jsxs("span", {
36
36
  className: "shortcut-help-info",
37
37
  children: [/*#__PURE__*/_jsx(CMDIcon, {}), " X"]
38
38
  })]
@@ -41,9 +41,9 @@ const CMenus = {
41
41
  }, {
42
42
  name: "copy",
43
43
  label: "Copy",
44
- render: () => {
44
+ render: translation => {
45
45
  return /*#__PURE__*/_jsxs(_Fragment, {
46
- children: ["Copy", " ", /*#__PURE__*/_jsxs("span", {
46
+ children: [translation("Copy"), " ", /*#__PURE__*/_jsxs("span", {
47
47
  className: "shortcut-help-info",
48
48
  children: [/*#__PURE__*/_jsx(CMDIcon, {}), " C"]
49
49
  })]
@@ -52,9 +52,9 @@ const CMenus = {
52
52
  }, {
53
53
  name: "paste",
54
54
  label: "Paste",
55
- render: () => {
55
+ render: translation => {
56
56
  return /*#__PURE__*/_jsxs(_Fragment, {
57
- children: ["Paste", " ", /*#__PURE__*/_jsxs("span", {
57
+ children: [translation("Paste"), " ", /*#__PURE__*/_jsxs("span", {
58
58
  className: "shortcut-help-info",
59
59
  children: [/*#__PURE__*/_jsx(CMDIcon, {}), " V"]
60
60
  })]
@@ -67,9 +67,9 @@ const CMenus = {
67
67
  parent: [{
68
68
  name: "cut",
69
69
  label: "Cut",
70
- render: () => {
70
+ render: translation => {
71
71
  return /*#__PURE__*/_jsxs(_Fragment, {
72
- children: ["Cut Section", " ", /*#__PURE__*/_jsxs("span", {
72
+ children: [translation("Cut Section"), " ", /*#__PURE__*/_jsxs("span", {
73
73
  className: "shortcut-help-info",
74
74
  children: [/*#__PURE__*/_jsx(CMDIcon, {}), " X"]
75
75
  })]
@@ -78,9 +78,9 @@ const CMenus = {
78
78
  }, {
79
79
  name: "copy",
80
80
  label: "Copy",
81
- render: () => {
81
+ render: translation => {
82
82
  return /*#__PURE__*/_jsxs(_Fragment, {
83
- children: ["Copy Section", " ", /*#__PURE__*/_jsxs("span", {
83
+ children: [translation("Copy Section"), " ", /*#__PURE__*/_jsxs("span", {
84
84
  className: "shortcut-help-info",
85
85
  children: [/*#__PURE__*/_jsx(CMDIcon, {}), " C"]
86
86
  })]
@@ -89,9 +89,9 @@ const CMenus = {
89
89
  }, {
90
90
  name: "paste",
91
91
  label: "Paste",
92
- render: () => {
92
+ render: translation => {
93
93
  return /*#__PURE__*/_jsxs(_Fragment, {
94
- children: ["Paste Section", " ", /*#__PURE__*/_jsxs("span", {
94
+ children: [translation("Paste Section"), " ", /*#__PURE__*/_jsxs("span", {
95
95
  className: "shortcut-help-info",
96
96
  children: [/*#__PURE__*/_jsx(CMDIcon, {}), " V"]
97
97
  })]
@@ -99,11 +99,35 @@ const CMenus = {
99
99
  }
100
100
  }],
101
101
  "parent-container": [{
102
+ name: "bringForward",
103
+ label: "Move to Front",
104
+ autoClose: false,
105
+ render: () => {
106
+ return /*#__PURE__*/_jsxs(_Fragment, {
107
+ children: ["Move to Front", " ", /*#__PURE__*/_jsxs("span", {
108
+ className: "shortcut-help-info",
109
+ children: [/*#__PURE__*/_jsx(CMDIcon, {}), " \u2191"]
110
+ })]
111
+ });
112
+ }
113
+ }, {
114
+ name: "bringBackward",
115
+ label: "Move to Back",
116
+ autoClose: false,
117
+ render: () => {
118
+ return /*#__PURE__*/_jsxs(_Fragment, {
119
+ children: ["Move to Back", " ", /*#__PURE__*/_jsxs("span", {
120
+ className: "shortcut-help-info",
121
+ children: [/*#__PURE__*/_jsx(CMDIcon, {}), " \u2193"]
122
+ })]
123
+ });
124
+ }
125
+ }, {
102
126
  name: "cut",
103
127
  label: "Cut",
104
- render: () => {
128
+ render: translation => {
105
129
  return /*#__PURE__*/_jsxs(_Fragment, {
106
- children: ["Cut", " ", /*#__PURE__*/_jsxs("span", {
130
+ children: [translation("Cut"), " ", /*#__PURE__*/_jsxs("span", {
107
131
  className: "shortcut-help-info",
108
132
  children: [/*#__PURE__*/_jsx(CMDIcon, {}), " X"]
109
133
  })]
@@ -112,9 +136,9 @@ const CMenus = {
112
136
  }, {
113
137
  name: "copy",
114
138
  label: "Copy",
115
- render: () => {
139
+ render: translation => {
116
140
  return /*#__PURE__*/_jsxs(_Fragment, {
117
- children: ["Copy", " ", /*#__PURE__*/_jsxs("span", {
141
+ children: [translation("Copy"), " ", /*#__PURE__*/_jsxs("span", {
118
142
  className: "shortcut-help-info",
119
143
  children: [/*#__PURE__*/_jsx(CMDIcon, {}), " C"]
120
144
  })]
@@ -123,9 +147,9 @@ const CMenus = {
123
147
  }, {
124
148
  name: "paste",
125
149
  label: "Paste",
126
- render: () => {
150
+ render: translation => {
127
151
  return /*#__PURE__*/_jsxs(_Fragment, {
128
- children: ["Paste", " ", /*#__PURE__*/_jsxs("span", {
152
+ children: [translation("Paste"), " ", /*#__PURE__*/_jsxs("span", {
129
153
  className: "shortcut-help-info",
130
154
  children: [/*#__PURE__*/_jsx(CMDIcon, {}), " V"]
131
155
  })]
@@ -14,7 +14,8 @@ const ContextMenu = props => {
14
14
  open,
15
15
  type,
16
16
  contextMenu,
17
- handleClose
17
+ handleClose,
18
+ translation
18
19
  } = props;
19
20
  const {
20
21
  path,
@@ -35,7 +36,7 @@ const ContextMenu = props => {
35
36
  return /*#__PURE__*/_jsx(MenuItem, {
36
37
  className: "cm-menu-item",
37
38
  onClick: handleClose(m),
38
- children: m?.render ? m.render() : m.label
39
+ children: m?.render ? m.render(translation) : translation(m.label)
39
40
  }, `cm_${i}`);
40
41
  })
41
42
  }) : null;
@@ -16,7 +16,8 @@ const ElementOptions = props => {
16
16
  actionsMap,
17
17
  optionsProps,
18
18
  selectedAction,
19
- theme
19
+ theme,
20
+ customProps
20
21
  } = props;
21
22
  const classes = useElementOptionsStyle({
22
23
  theme
@@ -28,6 +29,9 @@ const ElementOptions = props => {
28
29
  menuProps
29
30
  } = menu;
30
31
  const isOpen = Boolean(anchorEl) && open;
32
+ const {
33
+ translation
34
+ } = customProps;
31
35
  const handleOptionClick = type => e => {
32
36
  if (actionsMap[type]) {
33
37
  const {
@@ -57,7 +61,7 @@ const ElementOptions = props => {
57
61
  title
58
62
  } = Actions[action] || {};
59
63
  return type ? /*#__PURE__*/_jsx(Tooltip, {
60
- title: title,
64
+ title: translation(title),
61
65
  arrow: true,
62
66
  children: /*#__PURE__*/_jsx(Button, {
63
67
  onClick: handleOptionClick(type),
@@ -85,6 +89,7 @@ const ElementOptions = props => {
85
89
  }), open && MenuComp ? /*#__PURE__*/_jsx(OptionsPopup, {
86
90
  theme: theme,
87
91
  open: openMenu,
92
+ translation: translation,
88
93
  ...menu,
89
94
  handleClose: handleClose,
90
95
  children: /*#__PURE__*/_jsx(MenuComp, {
@@ -8,14 +8,18 @@ const SavePopup = props => {
8
8
  const {
9
9
  classes,
10
10
  onClose,
11
- elementProps
11
+ elementProps,
12
+ customProps
12
13
  } = props;
14
+ const {
15
+ translation
16
+ } = customProps;
13
17
  return /*#__PURE__*/_jsxs(Dialog, {
14
18
  open: true,
15
19
  fullWidth: true,
16
20
  sx: classes.dialog,
17
21
  children: [/*#__PURE__*/_jsxs(DialogTitle, {
18
- children: ["Save As Template", /*#__PURE__*/_jsx(IconButton, {
22
+ children: [translation("Save As Template"), /*#__PURE__*/_jsx(IconButton, {
19
23
  onClick: onClose,
20
24
  children: /*#__PURE__*/_jsx(CloseIcon, {})
21
25
  })]
@@ -27,7 +31,8 @@ const SavePopup = props => {
27
31
  },
28
32
  saveText: "Save",
29
33
  handleClose: onClose,
30
- elementProps: elementProps
34
+ elementProps: elementProps,
35
+ translation: translation
31
36
  })
32
37
  })]
33
38
  });
@@ -19,6 +19,9 @@ const Settings = props => {
19
19
  customProps,
20
20
  theme
21
21
  } = props;
22
+ const {
23
+ translation
24
+ } = customProps;
22
25
  const title = settingsLabel[childType] || "Settings";
23
26
  const Settings = SettingsComponents[childType];
24
27
  return /*#__PURE__*/_jsx(_Fragment, {
@@ -46,10 +49,10 @@ const Settings = props => {
46
49
  children: [/*#__PURE__*/_jsxs(Typography, {
47
50
  variant: "h6",
48
51
  className: "item-wrapper title",
49
- children: [title, /*#__PURE__*/_jsx(Box, {
52
+ children: [translation(title), /*#__PURE__*/_jsx(Box, {
50
53
  component: "div",
51
54
  children: /*#__PURE__*/_jsx(Tooltip, {
52
- title: "Close",
55
+ title: translation("Close"),
53
56
  arrow: true,
54
57
  children: /*#__PURE__*/_jsx(IconButton, {
55
58
  className: "closeBtn",
@@ -19,7 +19,8 @@ const FormSettings = props => {
19
19
  const element = Node.get(editor, element_path);
20
20
  const styleMaps = formStyle;
21
21
  const {
22
- hideTools
22
+ hideTools,
23
+ translation
23
24
  } = customProps || {};
24
25
  const {
25
26
  theme
@@ -107,7 +108,7 @@ const FormSettings = props => {
107
108
  fontSize: "14px !important",
108
109
  fontWeight: "400"
109
110
  },
110
- children: m?.tab
111
+ children: translation(m?.tab)
111
112
  })
112
113
  }), /*#__PURE__*/_jsx(AccordionDetails, {
113
114
  sx: {
@@ -8,7 +8,8 @@ const TextSettings = props => {
8
8
  const {
9
9
  editor,
10
10
  path,
11
- theme
11
+ theme,
12
+ customProps
12
13
  } = props;
13
14
  const item_path = path.split("|").map(m => parseInt(m));
14
15
  const element_path = [...item_path, 0];
@@ -25,7 +26,8 @@ const TextSettings = props => {
25
26
  }, []);
26
27
  return /*#__PURE__*/_jsx(TextFormat, {
27
28
  classes: classes,
28
- editor: editor
29
+ editor: editor,
30
+ customProps: customProps
29
31
  });
30
32
  };
31
33
  export default TextSettings;
@@ -17,7 +17,8 @@ const OptionsPopup = props => {
17
17
  open,
18
18
  anchorEl,
19
19
  placement,
20
- handleClose
20
+ handleClose,
21
+ translation
21
22
  } = props;
22
23
  return anchorEl ? /*#__PURE__*/_jsx(Popper, {
23
24
  sx: classes.root,
@@ -30,10 +31,10 @@ const OptionsPopup = props => {
30
31
  children: [/*#__PURE__*/_jsxs(Typography, {
31
32
  variant: "div",
32
33
  className: "item-wrapper title",
33
- children: [title, /*#__PURE__*/_jsx(Box, {
34
+ children: [translation(title), /*#__PURE__*/_jsx(Box, {
34
35
  component: "div",
35
36
  children: /*#__PURE__*/_jsx(Tooltip, {
36
- title: "Close",
37
+ title: translation("Close"),
37
38
  arrow: true,
38
39
  children: /*#__PURE__*/_jsx(IconButton, {
39
40
  onClick: handleClose,
@@ -28,7 +28,8 @@ const ShadowElement = props => {
28
28
  });
29
29
  return type === "child" && enable === 1 ? /*#__PURE__*/_jsx(Box, {
30
30
  component: "div",
31
- sx: classes.root
31
+ sx: classes.root,
32
+ className: "shadow-element"
32
33
  }) : null;
33
34
  };
34
35
  export default ShadowElement;
@@ -9,7 +9,8 @@ import { jsxs as _jsxs } from "react/jsx-runtime";
9
9
  const SwitchViewport = props => {
10
10
  const {
11
11
  breakpoint,
12
- onChange
12
+ onChange,
13
+ translation
13
14
  } = props;
14
15
  const classes = useSwitchViewport();
15
16
  const {
@@ -21,7 +22,7 @@ const SwitchViewport = props => {
21
22
  return /*#__PURE__*/_jsxs(Box, {
22
23
  sx: classes.root,
23
24
  children: [/*#__PURE__*/_jsx(Tooltip, {
24
- title: "Desktop View",
25
+ title: translation("Desktop View"),
25
26
  children: /*#__PURE__*/_jsx(IconButton, {
26
27
  className: `${!breakpoint || breakpoint === "lg" ? "active" : ""}`,
27
28
  onClick: () => {
@@ -31,7 +32,7 @@ const SwitchViewport = props => {
31
32
  children: /*#__PURE__*/_jsx(PersonalVideoIcon, {})
32
33
  })
33
34
  }), /*#__PURE__*/_jsx(Tooltip, {
34
- title: "Mobile View",
35
+ title: translation("Mobile View"),
35
36
  children: /*#__PURE__*/_jsx(IconButton, {
36
37
  className: `${breakpoint === "xs" ? "active" : ""}`,
37
38
  onClick: () => {
@@ -1,6 +1,7 @@
1
- import { Transforms, Node, Path } from "slate";
1
+ import { Transforms, Node, Path, Editor } from "slate";
2
2
  import { ReactEditor } from "slate-react";
3
- import { handleNegativeInteger } from "../../../utils/helper";
3
+ import { getNode, handleNegativeInteger } from "../../../utils/helper";
4
+ import { handleBoxAlignment } from "../VirtualElement/helper";
4
5
  export const ROW_HEIGHT = 50;
5
6
 
6
7
  // const MARGIN_OF = {
@@ -21,9 +22,18 @@ export function updateRows() {}
21
22
  export function updateCols() {}
22
23
  const handleMoveNode = (editor, path, newPath, {
23
24
  isEmpty
24
- }) => {
25
+ }, autoAlign) => {
25
26
  try {
26
- const replaceNode = Node.get(editor, path);
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
+ }
27
37
  if (isEmpty) {
28
38
  const toPath = [...newPath, 0];
29
39
  Transforms.insertNodes(editor, [{
@@ -57,9 +67,10 @@ const handleMoveNode = (editor, path, newPath, {
57
67
  * This method will update prop in child node so it will re-render and update the path
58
68
  * @param {*} path - contains the parent section path
59
69
  */
60
- const reRenderChildNodes = (editor, path) => {
70
+ export const reRenderChildNodes = (editor, path) => {
61
71
  try {
62
72
  const sectionNode = Node.get(editor, path);
73
+
63
74
  // parent node
64
75
  Transforms.setNodes(editor, {
65
76
  updated_at: new Date().getTime()
@@ -77,6 +88,23 @@ const reRenderChildNodes = (editor, path) => {
77
88
  console.log(err);
78
89
  }
79
90
  };
91
+ function getLeft(editor, moveToNode, moveTopath, appenBp) {
92
+ let topBoxNode = moveToNode;
93
+ let left = topBoxNode[`left${appenBp}`];
94
+ if (moveToNode?.type === "freegridBox") {
95
+ const [firstNode] = Array.from([...Editor.nodes(editor, {
96
+ at: moveTopath,
97
+ match: n => n.type === "freegridBox",
98
+ reverse: true
99
+ })]);
100
+ if (firstNode?.length && firstNode[1].toString() !== moveTopath?.toString()) {
101
+ const parentBoxNode = firstNode[0];
102
+ const parentLeft = parentBoxNode[`left${appenBp}`];
103
+ left += parentLeft;
104
+ }
105
+ }
106
+ return left;
107
+ }
80
108
  function isContainerElement(editor, moveTopath, props, appenBp) {
81
109
  try {
82
110
  const {
@@ -93,7 +121,7 @@ function isContainerElement(editor, moveTopath, props, appenBp) {
93
121
  parentNode = Node.get(editor, Path.parent(dragItemPath));
94
122
  }
95
123
  const moveToNode = Node.get(editor, moveTopath);
96
- const leftOfMoveToNode = moveToNode[`left${appenBp}`];
124
+ const leftOfMoveToNode = getLeft(editor, moveToNode, moveTopath, appenBp);
97
125
  if (moveToNode.type === "freegridBox") {
98
126
  if (parentNode.type === "freegridBox") {
99
127
  // same box
@@ -127,6 +155,9 @@ function isContainerElement(editor, moveTopath, props, appenBp) {
127
155
  console.log(err);
128
156
  }
129
157
  }
158
+ const isInsidePath = (from, moveTo) => {
159
+ return Path.isAncestor(from, moveTo);
160
+ };
130
161
  export function onDropItem(props, parentClass) {
131
162
  try {
132
163
  const {
@@ -174,7 +205,17 @@ export function onDropItem(props, parentClass) {
174
205
  }, {
175
206
  at: path
176
207
  });
177
- reRenderChildNodes(editor, from);
208
+ let reRenderSectionPath;
209
+ const [sectionData] = Editor.nodes(editor, {
210
+ at: moveTo,
211
+ match: n => n.type === "freegrid"
212
+ });
213
+ const [sectionNode, sectionPath] = sectionData || [];
214
+ if (needMove && isInsidePath(from, moveTo)) {
215
+ reRenderSectionPath = sectionPath;
216
+ } else {
217
+ reRenderChildNodes(editor, from);
218
+ }
178
219
 
179
220
  // move the node if section parent changed
180
221
  if (needMove) {
@@ -183,10 +224,34 @@ export function onDropItem(props, parentClass) {
183
224
  if (!isEmpty) {
184
225
  newPath = [...newPath, toSectionNode?.children?.length];
185
226
  }
227
+ const autoAlign = breakpoint === "lg";
228
+ const currentNode = getNode(editor, path);
229
+ const isBoxHeader = currentNode?.childType === "appHeader" && moveTo?.length > 2;
230
+ if (isBoxHeader) {
231
+ // will handle on <BoxHeaderAutoAlignment />
232
+ } else if (moveTo?.length === 2 && autoAlign) {
233
+ // auto align in mobile
234
+ Transforms.setNodes(editor, {
235
+ xs_updatedOn: null,
236
+ xs_updatedOn: new Date().getTime()
237
+ }, {
238
+ at: moveTo
239
+ });
240
+ } else if (autoAlign) {
241
+ Transforms.setNodes(editor, {
242
+ autoAlign: true,
243
+ xs_updatedOn: new Date().getTime()
244
+ }, {
245
+ at: moveTo
246
+ });
247
+ }
186
248
  const rPath = handleMoveNode(editor, path, newPath, {
187
249
  isEmpty
188
- });
189
- reRenderChildNodes(editor, moveTo);
250
+ }, autoAlign);
251
+ reRenderChildNodes(editor, reRenderSectionPath || moveTo);
252
+ if (autoAlign && !isBoxHeader) {
253
+ handleBoxAlignment(editor, sectionNode, sectionPath);
254
+ }
190
255
  return {
191
256
  updated_at: rPath
192
257
  };
@@ -293,4 +293,7 @@ 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));
296
299
  }