@flozy/editor 10.6.5 → 10.6.7

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 (69) hide show
  1. package/dist/Editor/CommonEditor.js +17 -1
  2. package/dist/Editor/Editor.css +26 -0
  3. package/dist/Editor/Elements/Accordion/Accordion.js +46 -9
  4. package/dist/Editor/Elements/Accordion/AccordionSummary.js +2 -25
  5. package/dist/Editor/Elements/AppHeader/AppHeader.js +7 -2
  6. package/dist/Editor/Elements/Button/EditorButton.js +2 -2
  7. package/dist/Editor/Elements/Carousel/CarouselItem.js +2 -1
  8. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/SelectV1.js +510 -0
  9. package/dist/Editor/Elements/DataView/Layouts/DataTypes/MultiSelectType.js +10 -10
  10. package/dist/Editor/Elements/DataView/Layouts/DataTypes/SelectType.js +28 -9
  11. package/dist/Editor/Elements/DataView/Layouts/Options/AddOptions.js +12 -5
  12. package/dist/Editor/Elements/DataView/Layouts/Options/EditOption.js +44 -18
  13. package/dist/Editor/Elements/Divider/Divider.js +1 -1
  14. package/dist/Editor/Elements/Embed/Embed.css +4 -0
  15. package/dist/Editor/Elements/Form/Form.js +3 -3
  16. package/dist/Editor/Elements/Form/FormElements/FormTextArea.js +0 -1
  17. package/dist/Editor/Elements/FreeGrid/FreeGrid.js +4 -1
  18. package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +1 -0
  19. package/dist/Editor/Elements/Grid/Grid.js +14 -2
  20. package/dist/Editor/Elements/Signature/Signature.css +2 -1
  21. package/dist/Editor/Elements/Signature/SignatureOptions/DrawSignature.js +18 -5
  22. package/dist/Editor/Elements/Signature/SignatureOptions/UploadSignature.js +16 -3
  23. package/dist/Editor/Elements/Table/AddRowCol.js +8 -2
  24. package/dist/Editor/Elements/Table/DragButton.js +0 -1
  25. package/dist/Editor/Elements/Table/Draggable.js +6 -2
  26. package/dist/Editor/Elements/Table/Styles.js +7 -0
  27. package/dist/Editor/Elements/Table/TableCell.js +24 -5
  28. package/dist/Editor/Elements/Title/title.js +2 -5
  29. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +4 -4
  30. package/dist/Editor/Toolbar/PopupTool/index.js +7 -3
  31. package/dist/Editor/common/Checkbox/index.js +46 -0
  32. package/dist/Editor/common/Checkbox/styles.js +45 -0
  33. package/dist/Editor/common/ColorPickerButton.js +3 -0
  34. package/dist/Editor/common/LinkSettings/NavComponents.js +45 -65
  35. package/dist/Editor/common/LinkSettings/index.js +17 -28
  36. package/dist/Editor/common/LinkSettings/navOptions.js +2 -2
  37. package/dist/Editor/common/LinkSettings/style.js +164 -244
  38. package/dist/Editor/common/RadioGroup/index.js +48 -0
  39. package/dist/Editor/common/RadioGroup/styles.js +29 -0
  40. package/dist/Editor/common/RnD/ElementOptions/Actions.js +4 -5
  41. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Signature.js +4 -3
  42. package/dist/Editor/common/RnD/ElementSettings/styles.js +0 -1
  43. package/dist/Editor/common/RnD/OptionsPopup/style.js +0 -1
  44. package/dist/Editor/common/RnD/Utils/gridDropItem.js +0 -1
  45. package/dist/Editor/common/RnD/Utils/index.js +55 -24
  46. package/dist/Editor/common/RnD/VirtualElement/helper.js +3 -2
  47. package/dist/Editor/common/RnD/index.js +30 -27
  48. package/dist/Editor/common/Select/index.js +44 -7
  49. package/dist/Editor/common/Select/styles.js +30 -2
  50. package/dist/Editor/common/StyleBuilder/accordionTitleBtnStyle.js +2 -2
  51. package/dist/Editor/common/StyleBuilder/accordionTitleStyle.js +12 -9
  52. package/dist/Editor/common/SwipeableDrawer/style.js +14 -12
  53. package/dist/Editor/common/iconListV2.js +76 -0
  54. package/dist/Editor/commonStyle.js +12 -0
  55. package/dist/Editor/helper/deserialize/index.js +6 -4
  56. package/dist/Editor/helper/index.js +4 -0
  57. package/dist/Editor/hooks/useTable.js +5 -4
  58. package/dist/Editor/plugins/withCustomDeleteBackward.js +6 -1
  59. package/dist/Editor/plugins/withHTML.js +11 -4
  60. package/dist/Editor/utils/SlateUtilityFunctions.js +21 -32
  61. package/dist/Editor/utils/accordion.js +129 -39
  62. package/dist/Editor/utils/customHooks/useTableResize.js +49 -9
  63. package/dist/Editor/utils/events.js +17 -5
  64. package/dist/Editor/utils/formfield.js +1 -0
  65. package/dist/Editor/utils/helper.js +53 -9
  66. package/dist/Editor/utils/insertAppHeader.js +1 -1
  67. package/dist/Editor/utils/signature.js +2 -9
  68. package/dist/Editor/utils/updateFormName.js +22 -0
  69. package/package.json +1 -1
@@ -10,7 +10,7 @@ import { draftToSlate } from "./utils/draftToSlate";
10
10
  import useMentions from "./hooks/useMentions";
11
11
  import MentionsPopup from "./common/MentionsPopup";
12
12
  import { RemoteCursorOverlay } from "./RemoteCursorOverlay/Overlay";
13
- import { mentionsEvent, commands, indentation, escapeEvent, enterEvent, upDownArrowKeyEvents } from "./utils/events";
13
+ import { mentionsEvent, commands, indentation, escapeEvent, enterEvent, upDownArrowKeyEvents, handleAccordionOnBackspace } from "./utils/events";
14
14
  import withCommon from "./hooks/withCommon";
15
15
  import DialogWrapper from "./DialogWrapper";
16
16
  import { serializeToText } from "./utils/serializeToText";
@@ -174,6 +174,17 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
174
174
  ReactEditor.focus(editor);
175
175
  }
176
176
  }, [id, content]);
177
+ useEffect(() => {
178
+ if (isReadOnly) {
179
+ const sectionId = window.location.hash.substring(1);
180
+ const sectionEle = sectionId ? document.getElementById(decodeURIComponent(sectionId)) : null;
181
+ if (sectionEle) {
182
+ sectionEle.scrollIntoView({
183
+ behavior: "smooth"
184
+ });
185
+ }
186
+ }
187
+ }, []);
177
188
  const debounced = useDebouncedCallback(
178
189
  // function
179
190
  value => {
@@ -428,6 +439,11 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
428
439
  } else if (event.key === "ArrowDown" && otherProps?.tagName !== "Pages") {
429
440
  upDownArrowKeyEvents(event, editor);
430
441
  } else if (event.key === "Backspace") {
442
+ // const isAccordion = handleAccordionOnBackspace(event, editor);
443
+ // if (isAccordion) {
444
+ // return;
445
+ // }
446
+
431
447
  const isNodeRestricted = isRestrictedNode(event, editor);
432
448
  if (isNodeRestricted) {
433
449
  return;
@@ -426,6 +426,32 @@ blockquote {
426
426
 
427
427
  .upload-sign-img-wrapper {
428
428
  text-align: center;
429
+ position: relative;
430
+ }
431
+
432
+ .upload-sign-img {
433
+ max-width: 100%;
434
+ }
435
+
436
+ .remove-sign-img-btn {
437
+ padding: 8px 12px;
438
+ background-color: #ffffff68;
439
+ cursor: pointer;
440
+ width: fit-content;
441
+ border-radius: 8px;
442
+ position: absolute;
443
+ left: 50%;
444
+ top: 50%;
445
+ transform: translate(-50%, -50%);
446
+ display: none;
447
+ }
448
+
449
+ .remove-sign-img-btn:hover {
450
+ background-color: #ffffffa0;
451
+ }
452
+
453
+ .upload-sign-img-wrapper:hover .remove-sign-img-btn {
454
+ display: block;
429
455
  }
430
456
 
431
457
  .signature-tab img {
@@ -1,5 +1,5 @@
1
- import React, { useState } from "react";
2
- import { Transforms } from "slate";
1
+ import React, { useEffect, useState } from "react";
2
+ import { Editor, Range, Transforms } from "slate";
3
3
  import { useSelected, useSlateStatic, ReactEditor } from "slate-react";
4
4
  import AccordionBtnPopup from "./AccordionBtnPopup";
5
5
  import { IconButton, Tooltip, Box } from "@mui/material";
@@ -8,6 +8,8 @@ import { GridSettingsIcon } from "../../common/iconslist";
8
8
  import Icon from "../../common/Icon";
9
9
  import { useEditorContext, useEditorSelection } from "../../hooks/useMouseMove";
10
10
  import useCommonStyle from "../../commonStyle";
11
+ import { getBorderColor, getTextColor } from "../../helper";
12
+ import { getBreakPointsValue, getTRBLBreakPoints } from "../../helper/theme";
11
13
  import { jsx as _jsx } from "react/jsx-runtime";
12
14
  import { jsxs as _jsxs } from "react/jsx-runtime";
13
15
  const accordionBtnStyleKeys = {
@@ -78,12 +80,34 @@ const Accordion = props => {
78
80
  const path = ReactEditor.findPath(editor, element);
79
81
  const {
80
82
  textColor,
81
- bgColor
83
+ bgColor,
84
+ borderColor
82
85
  } = element;
86
+ const accordionSummary = element?.children?.find(c => c.type === "accordion-summary");
87
+ const {
88
+ textColor: childTextColor,
89
+ borderRadius,
90
+ bannerSpacing
91
+ } = accordionSummary || {};
92
+ const borderStyle = getBorderColor(borderColor);
83
93
  const {
84
94
  theme
85
95
  } = useEditorContext();
86
96
  const classes = useCommonStyle(theme);
97
+ useEffect(() => {
98
+ if (!editor.selection || !children[1]) return;
99
+ try {
100
+ const accordionDetailsElement = element.children?.[1];
101
+ const detailsPath = ReactEditor.findPath(editor, accordionDetailsElement);
102
+ const detailsRange = Editor.range(editor, detailsPath);
103
+ const isInside = Range.intersection(detailsRange, editor.selection);
104
+ if (isInside && !toggle) {
105
+ setToggle(true);
106
+ }
107
+ } catch (e) {
108
+ console.error(e);
109
+ }
110
+ }, [editor.selection, children]);
87
111
  const onToggle = () => {
88
112
  setToggle(!toggle);
89
113
  };
@@ -159,17 +183,29 @@ const Accordion = props => {
159
183
  const onClose = () => {
160
184
  setOpenSettings(false);
161
185
  };
162
- return /*#__PURE__*/_jsxs("div", {
186
+ const textStyles = getTextColor(childTextColor);
187
+ const borderRadiusStyles = {
188
+ ...getBreakPointsValue(borderRadius || {}, null, "overrideBorderRadius", true)
189
+ };
190
+ const padding = getTRBLBreakPoints(bannerSpacing);
191
+ return /*#__PURE__*/_jsxs(Box, {
163
192
  className: `accordion-container`,
164
193
  ...attributes,
165
194
  style: {
166
195
  position: "relative"
167
196
  },
197
+ component: "div",
198
+ sx: {
199
+ background: bgColor,
200
+ ...borderStyle,
201
+ borderRadius: borderRadiusStyles,
202
+ padding,
203
+ '& span[data-slate-string="true"]': textStyles
204
+ },
168
205
  children: [/*#__PURE__*/_jsxs("div", {
169
- className: "accordion-title",
170
- style: {
171
- background: bgColor
172
- },
206
+ className: "accordion-title"
207
+ // style={{ background: bgColor, ...borderStyle }}
208
+ ,
173
209
  onClick: onToggle,
174
210
  children: [/*#__PURE__*/_jsx(Box, {
175
211
  role: "button",
@@ -191,7 +227,8 @@ const Accordion = props => {
191
227
  icon: "accordionArrowDown"
192
228
  })
193
229
  }), children[0]]
194
- }), /*#__PURE__*/_jsx("div", {
230
+ }), /*#__PURE__*/_jsx(Box, {
231
+ component: "div",
195
232
  className: "accordion-content",
196
233
  style: {
197
234
  display: toggle ? "block" : "none"
@@ -1,40 +1,17 @@
1
1
  import React from "react";
2
- import { getBorderColor, getTextColor } from "../../helper";
3
2
  import { Box } from "@mui/material";
4
- import { getBreakPointsValue, getTRBLBreakPoints } from "../../helper/theme";
5
3
  import { jsx as _jsx } from "react/jsx-runtime";
6
4
  const AccordionSummary = props => {
7
5
  const {
8
6
  attributes,
9
- children,
10
- element
7
+ children
11
8
  } = props;
12
- const {
13
- textColor,
14
- bgColor,
15
- borderColor,
16
- borderRadius,
17
- bannerSpacing
18
- } = element;
19
- const textStyles = getTextColor(textColor);
20
- const borderStyle = getBorderColor(borderColor);
21
9
  return /*#__PURE__*/_jsx(Box, {
22
10
  className: `accordion-summary-container`,
23
11
  ...attributes,
24
12
  style: {
25
13
  width: "100%",
26
- position: "relative",
27
- background: bgColor,
28
- ...borderStyle
29
- },
30
- sx: {
31
- borderRadius: {
32
- ...getBreakPointsValue(borderRadius || {}, null, "overrideBorderRadius", true)
33
- },
34
- padding: {
35
- ...getTRBLBreakPoints(bannerSpacing)
36
- },
37
- '& span[data-slate-string="true"]': textStyles
14
+ position: "relative"
38
15
  },
39
16
  component: "div",
40
17
  children: children
@@ -18,7 +18,7 @@ import Typography from "@mui/material/Typography";
18
18
  import Button from "@mui/material/Button";
19
19
  import AppHeaderPopup from "./AppHeaderPopup";
20
20
  import { getTRBLBreakPoints, groupByBreakpoint } from "../../helper/theme";
21
- import { handleLinkType } from "../../utils/helper";
21
+ import { handleLinkType, isHavingColor } from "../../utils/helper";
22
22
  import { jsx as _jsx } from "react/jsx-runtime";
23
23
  import { jsxs as _jsxs } from "react/jsx-runtime";
24
24
  import { createElement as _createElement } from "react";
@@ -45,6 +45,8 @@ function AppHeader(props) {
45
45
  bgColorHover,
46
46
  textColor,
47
47
  textColorHover,
48
+ borderColor,
49
+ borderColorHover,
48
50
  menuStyle,
49
51
  bannerSpacing,
50
52
  fontSize,
@@ -149,7 +151,7 @@ function AppHeader(props) {
149
151
  }) : appTitle
150
152
  }), /*#__PURE__*/_jsx(Divider, {}), /*#__PURE__*/_jsx(List, {
151
153
  children: menus.map((item, i) => {
152
- const buttonProps = handleLinkType(item.url, item.linkType, true, item.target === "_blank");
154
+ const buttonProps = handleLinkType(item.url, item.linkType, true, item.target === "_blank", () => {}, !readOnly, true);
153
155
  const onButtonClick = e => {
154
156
  closeDrawer();
155
157
  setTimeout(() => {
@@ -225,6 +227,7 @@ function AppHeader(props) {
225
227
  sx: {
226
228
  ...elevateStyle,
227
229
  background: bgColor,
230
+ border: isHavingColor(borderColor) ? `1px solid ${borderColor}` : "none",
228
231
  boxShadow: "none",
229
232
  ...appbarSp,
230
233
  zIndex: 999
@@ -322,6 +325,7 @@ function AppHeader(props) {
322
325
  fontSize: fontSize || "16px",
323
326
  color: textColor || "#FFF",
324
327
  background: bgColor || "none",
328
+ border: borderColorHover ? `1px solid transparent` : "none",
325
329
  "& .m-settings": {
326
330
  display: "none",
327
331
  position: "absolute",
@@ -337,6 +341,7 @@ function AppHeader(props) {
337
341
  "&:hover": {
338
342
  color: textColorHover || textColor || "#FFF",
339
343
  background: bgColorHover || bgColor || "none",
344
+ border: borderColorHover ? `1px solid ${borderColorHover}` : "none",
340
345
  "& .m-settings": {
341
346
  display: "block"
342
347
  }
@@ -97,7 +97,7 @@ const EditorButton = props => {
97
97
  };
98
98
  const buttonProps = handleLinkType(refURl, linkType, true,
99
99
  // button functionalities have to work on both edit mode and normal mode
100
- openInNewTab, handleTrigger, metadata);
100
+ openInNewTab, handleTrigger, !readOnly, false, metadata);
101
101
  const onMenuClick = val => () => {
102
102
  switch (val) {
103
103
  case "edit":
@@ -272,7 +272,7 @@ const EditorButton = props => {
272
272
  background: bgColor || "rgb(30, 75, 122)",
273
273
  borderBlockStyle: "solid",
274
274
  borderColor: borderColor || "transparent",
275
- borderWidth: borderWidth !== undefined ? borderWidth : borderColor ? "1px" : "0px",
275
+ borderWidth: borderWidth !== undefined ? borderWidth : borderColor || borderColorHover ? "1px" : "0px",
276
276
  ...btnSp,
277
277
  borderStyle: borderStyle || "solid",
278
278
  color: `${textColor || "#FFFFFF"}`,
@@ -38,7 +38,8 @@ const CarouselItem = props => {
38
38
  className: "element-toolbar hr",
39
39
  style: {
40
40
  top: "0px",
41
- left: "0px"
41
+ left: "0px",
42
+ width: "fit-content"
42
43
  },
43
44
  contentEditable: false,
44
45
  children: /*#__PURE__*/_jsx(Tooltip, {