@flozy/editor 5.1.5 → 5.1.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (156) hide show
  1. package/dist/Editor/ChatEditor.js +25 -34
  2. package/dist/Editor/CommonEditor.js +15 -9
  3. package/dist/Editor/Editor.css +56 -12
  4. package/dist/Editor/Elements/AI/AIInput.js +0 -1
  5. package/dist/Editor/Elements/AI/CustomSelect.js +17 -10
  6. package/dist/Editor/Elements/AI/Styles.js +7 -1
  7. package/dist/Editor/Elements/AppHeader/AppHeader.js +6 -6
  8. package/dist/Editor/Elements/Button/EditorButton.js +1 -1
  9. package/dist/Editor/Elements/Carousel/CarouselItem.js +1 -1
  10. package/dist/Editor/Elements/Color Picker/ColorButtons.js +7 -5
  11. package/dist/Editor/Elements/Color Picker/Styles.js +7 -3
  12. package/dist/Editor/Elements/Color Picker/defaultColors.js +2 -2
  13. package/dist/Editor/Elements/DataView/DataView.js +109 -0
  14. package/dist/Editor/Elements/DataView/DataViewButton.js +23 -0
  15. package/dist/Editor/Elements/DataView/Layouts/ColumnView.js +66 -0
  16. package/dist/Editor/Elements/DataView/Layouts/DataTypes/CheckType.js +30 -0
  17. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/Select.js +162 -0
  18. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/SimpleSelect.js +40 -0
  19. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/styles.js +67 -0
  20. package/dist/Editor/Elements/DataView/Layouts/DataTypes/DateType.js +30 -0
  21. package/dist/Editor/Elements/DataView/Layouts/DataTypes/MultiSelectType.js +39 -0
  22. package/dist/Editor/Elements/DataView/Layouts/DataTypes/NumberType.js +30 -0
  23. package/dist/Editor/Elements/DataView/Layouts/DataTypes/PersonType.js +30 -0
  24. package/dist/Editor/Elements/DataView/Layouts/DataTypes/SelectType.js +35 -0
  25. package/dist/Editor/Elements/DataView/Layouts/DataTypes/TextType.js +36 -0
  26. package/dist/Editor/Elements/DataView/Layouts/DataTypes/index.js +17 -0
  27. package/dist/Editor/Elements/DataView/Layouts/FilterSort/SortOptions/ChooseField.js +29 -0
  28. package/dist/Editor/Elements/DataView/Layouts/FilterSort/SortOptions/ChooseSort.js +38 -0
  29. package/dist/Editor/Elements/DataView/Layouts/FilterSort/SortOptions/index.js +74 -0
  30. package/dist/Editor/Elements/DataView/Layouts/FilterSort/index.js +64 -0
  31. package/dist/Editor/Elements/DataView/Layouts/FilterSort/styles.js +106 -0
  32. package/dist/Editor/Elements/DataView/Layouts/FilterView.js +174 -0
  33. package/dist/Editor/Elements/DataView/Layouts/Formula.js +29 -0
  34. package/dist/Editor/Elements/DataView/Layouts/Options/AddOptions.js +113 -0
  35. package/dist/Editor/Elements/DataView/Layouts/Options/AddProperty.js +37 -0
  36. package/dist/Editor/Elements/DataView/Layouts/Options/AllProperties.js +111 -0
  37. package/dist/Editor/Elements/DataView/Layouts/Options/ChangeProperty.js +60 -0
  38. package/dist/Editor/Elements/DataView/Layouts/Options/ColumnsList.js +36 -0
  39. package/dist/Editor/Elements/DataView/Layouts/Options/Constants.js +101 -0
  40. package/dist/Editor/Elements/DataView/Layouts/Options/EditOption.js +160 -0
  41. package/dist/Editor/Elements/DataView/Layouts/Options/EditProperty.js +190 -0
  42. package/dist/Editor/Elements/DataView/Layouts/Options/FilterProperty.js +42 -0
  43. package/dist/Editor/Elements/DataView/Layouts/Options/PropertyList.js +30 -0
  44. package/dist/Editor/Elements/DataView/Layouts/Options/index.js +110 -0
  45. package/dist/Editor/Elements/DataView/Layouts/Options/styles.js +179 -0
  46. package/dist/Editor/Elements/DataView/Layouts/TableStyles.js +112 -0
  47. package/dist/Editor/Elements/DataView/Layouts/TableView.js +227 -0
  48. package/dist/Editor/Elements/DataView/Layouts/ViewData.js +70 -0
  49. package/dist/Editor/Elements/DataView/Layouts/index.js +25 -0
  50. package/dist/Editor/Elements/DataView/Providers/DataViewProvider.js +288 -0
  51. package/dist/Editor/Elements/DataView/Utils/globalSearch.js +15 -0
  52. package/dist/Editor/Elements/DataView/Utils/multiSortRows.js +72 -0
  53. package/dist/Editor/Elements/DataView/styles.js +143 -0
  54. package/dist/Editor/Elements/Divider/Divider.js +15 -14
  55. package/dist/Editor/Elements/Form/Form.js +38 -2
  56. package/dist/Editor/Elements/Form/FormElements/FormCheckbox.js +7 -1
  57. package/dist/Editor/Elements/Form/FormElements/FormDate.js +7 -1
  58. package/dist/Editor/Elements/Form/FormElements/FormEmail.js +7 -1
  59. package/dist/Editor/Elements/Form/FormElements/FormNumbers.js +7 -1
  60. package/dist/Editor/Elements/Form/FormElements/FormRadioButton.js +7 -1
  61. package/dist/Editor/Elements/Form/FormElements/FormText.js +7 -1
  62. package/dist/Editor/Elements/Form/FormElements/FormTextArea.js +6 -1
  63. package/dist/Editor/Elements/Form/FormPopup.js +12 -9
  64. package/dist/Editor/Elements/FreeGrid/FreeGrid.js +1 -1
  65. package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +20 -1
  66. package/dist/Editor/Elements/FreeGrid/breakpointConstants.js +4 -4
  67. package/dist/Editor/Elements/FreeGrid/styles.js +1 -1
  68. package/dist/Editor/Elements/Grid/GridButton.js +2 -2
  69. package/dist/Editor/Elements/Grid/GridItem.js +21 -18
  70. package/dist/Editor/Elements/Link/LinkButton.js +1 -1
  71. package/dist/Editor/Elements/Signature/Signature.css +1 -1
  72. package/dist/Editor/Elements/Signature/SignatureOptions/TypeSignature.js +2 -2
  73. package/dist/Editor/Elements/Signature/SignaturePopup.js +13 -48
  74. package/dist/Editor/Elements/SimpleText/index.js +8 -1
  75. package/dist/Editor/Elements/SimpleText/style.js +13 -1
  76. package/dist/Editor/Elements/Table/AddRowCol.js +77 -0
  77. package/dist/Editor/Elements/Table/DragButton.js +141 -0
  78. package/dist/Editor/Elements/Table/DragStyles.js +70 -0
  79. package/dist/Editor/Elements/Table/Draggable.js +25 -0
  80. package/dist/Editor/Elements/Table/Droppable.js +53 -0
  81. package/dist/Editor/Elements/Table/Styles.js +25 -43
  82. package/dist/Editor/Elements/Table/Table.js +205 -138
  83. package/dist/Editor/Elements/Table/TableCell.js +355 -102
  84. package/dist/Editor/Elements/Table/TablePopup.js +9 -3
  85. package/dist/Editor/Elements/Table/TableRow.js +10 -2
  86. package/dist/Editor/Elements/Table/TableTool.js +101 -0
  87. package/dist/Editor/Elements/Table/tableHelper.js +71 -0
  88. package/dist/Editor/Styles/EditorStyles.js +3 -1
  89. package/dist/Editor/Toolbar/FormatTools/BlockButton.js +10 -0
  90. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +7 -12
  91. package/dist/Editor/Toolbar/FormatTools/FontFamilyAutocomplete.js +10 -4
  92. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +3 -0
  93. package/dist/Editor/Toolbar/FormatTools/TextSize.js +0 -2
  94. package/dist/Editor/Toolbar/Mini/MiniToolbar.js +3 -6
  95. package/dist/Editor/Toolbar/Mini/Styles.js +4 -1
  96. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +3 -3
  97. package/dist/Editor/Toolbar/PopupTool/PopperHeader.js +19 -15
  98. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +411 -49
  99. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +62 -8
  100. package/dist/Editor/Toolbar/PopupTool/index.js +5 -6
  101. package/dist/Editor/Toolbar/Toolbar.js +6 -0
  102. package/dist/Editor/Toolbar/toolbarGroups.js +4 -0
  103. package/dist/Editor/assets/svg/BrainIcon.js +2 -2
  104. package/dist/Editor/assets/svg/TableIcons.js +220 -0
  105. package/dist/Editor/common/ColorPickerButton.js +3 -2
  106. package/dist/Editor/common/FontLoader/FontLoader.js +4 -4
  107. package/dist/Editor/common/Icon.js +20 -19
  108. package/dist/Editor/common/LinkSettings/NavComponents.js +2 -1
  109. package/dist/Editor/common/LinkSettings/index.js +2 -1
  110. package/dist/Editor/common/MentionsPopup/Styles.js +152 -8
  111. package/dist/Editor/common/MentionsPopup/index.js +1 -1
  112. package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +108 -12
  113. package/dist/Editor/common/RnD/GuideLines/styles.js +3 -3
  114. package/dist/Editor/common/RnD/ShadowElement.js +1 -1
  115. package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +14 -2
  116. package/dist/Editor/common/Select/index.js +20 -0
  117. package/dist/Editor/common/Select/styles.js +17 -0
  118. package/dist/Editor/common/Shorthands/elements.js +13 -1
  119. package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +5 -0
  120. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +8 -4
  121. package/dist/Editor/common/StyleBuilder/fieldTypes/card.js +10 -2
  122. package/dist/Editor/common/StyleBuilder/fieldTypes/index.js +3 -1
  123. package/dist/Editor/common/StyleBuilder/fieldTypes/lineSpacing.js +79 -0
  124. package/dist/Editor/common/StyleBuilder/fieldTypes/radiusStyle.js +7 -7
  125. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +5 -2
  126. package/dist/Editor/common/StyleBuilder/formStyle.js +268 -149
  127. package/dist/Editor/common/StyleBuilder/index.js +84 -11
  128. package/dist/Editor/common/StyleBuilder/pageSettingsStyle.js +4 -0
  129. package/dist/Editor/common/StyleBuilder/tableStyle.js +69 -25
  130. package/dist/Editor/common/SwipeableDrawer/style.js +15 -4
  131. package/dist/Editor/common/Uploader.js +8 -0
  132. package/dist/Editor/common/iconListV2.js +378 -40
  133. package/dist/Editor/common/iconslist.js +23 -17
  134. package/dist/Editor/commonStyle.js +126 -9
  135. package/dist/Editor/helper/deserialize/index.js +4 -1
  136. package/dist/Editor/helper/index.js +2 -2
  137. package/dist/Editor/helper/theme.js +24 -1
  138. package/dist/Editor/hooks/useMouseMove.js +5 -2
  139. package/dist/Editor/hooks/useTable.js +195 -0
  140. package/dist/Editor/plugins/withCustomDeleteBackward.js +3 -2
  141. package/dist/Editor/plugins/withHTML.js +17 -1
  142. package/dist/Editor/plugins/withLayout.js +48 -1
  143. package/dist/Editor/utils/SlateUtilityFunctions.js +18 -0
  144. package/dist/Editor/utils/button.js +4 -4
  145. package/dist/Editor/utils/chatEditor/SlateUtilityFunctions.js +21 -0
  146. package/dist/Editor/utils/dataView.js +43 -0
  147. package/dist/Editor/utils/embed.js +2 -1
  148. package/dist/Editor/utils/events.js +0 -1
  149. package/dist/Editor/utils/font.js +11 -4
  150. package/dist/Editor/utils/formfield.js +8 -4
  151. package/dist/Editor/utils/helper.js +67 -2
  152. package/dist/Editor/utils/insertNewLine.js +19 -1
  153. package/dist/Editor/utils/pageSettings.js +14 -2
  154. package/dist/Editor/utils/serializeToText.js +2 -0
  155. package/dist/Editor/utils/table.js +228 -24
  156. package/package.json +1 -1
@@ -0,0 +1,37 @@
1
+ import React from "react";
2
+ import { Box, IconButton } from "@mui/material";
3
+ import CloseIcon from "@mui/icons-material/Close";
4
+ import PropertyList from "./PropertyList";
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ import { jsxs as _jsxs } from "react/jsx-runtime";
7
+ const AddProperty = props => {
8
+ const {
9
+ classes,
10
+ onClose,
11
+ onEvent
12
+ } = props;
13
+ const onSelect = type => () => {
14
+ onEvent("addProperty", type);
15
+ };
16
+ return /*#__PURE__*/_jsxs(Box, {
17
+ sx: classes.addProperty,
18
+ children: [/*#__PURE__*/_jsxs(Box, {
19
+ className: "fe-dv-ap-title",
20
+ children: ["Add Property", /*#__PURE__*/_jsx(IconButton, {
21
+ className: "tv-act-ico bg br1",
22
+ size: "small",
23
+ onClick: onClose,
24
+ children: /*#__PURE__*/_jsx(CloseIcon, {})
25
+ })]
26
+ }), /*#__PURE__*/_jsx(Box, {
27
+ className: "fe-dv-ap-opt-content mt",
28
+ children: /*#__PURE__*/_jsx(PropertyList, {
29
+ onSelect: onSelect
30
+ })
31
+ })]
32
+ });
33
+ };
34
+ AddProperty.defaultProps = {
35
+ onEvent: () => {}
36
+ };
37
+ export default AddProperty;
@@ -0,0 +1,111 @@
1
+ import React from "react";
2
+ import { Box, IconButton, List, ListItemButton, ListItemText, ListItemIcon } from "@mui/material";
3
+ import CloseIcon from "@mui/icons-material/Close";
4
+ import KeyboardArrowRightIcon from "@mui/icons-material/KeyboardArrowRight";
5
+ import AddIcon from "@mui/icons-material/Add";
6
+ import { TYPE_LABELS, PROPERTY_TYPES } from "./Constants";
7
+ import { useDataView } from "../../Providers/DataViewProvider";
8
+ import { jsx as _jsx } from "react/jsx-runtime";
9
+ import { jsxs as _jsxs } from "react/jsx-runtime";
10
+ import { Fragment as _Fragment } from "react/jsx-runtime";
11
+ const AllProperties = props => {
12
+ const {
13
+ classes,
14
+ onClose,
15
+ onEvent
16
+ } = props;
17
+ const {
18
+ properties,
19
+ onAddProperty
20
+ } = useDataView();
21
+ const shownProperties = properties?.filter(f => f.visible === true);
22
+ const hiddenProperties = properties?.filter(f => f.visible === false);
23
+ const onEditProperty = data => () => {
24
+ onEvent("editProperty", {
25
+ edit: {
26
+ ...data
27
+ }
28
+ });
29
+ };
30
+ const onAdd = () => {
31
+ const np = onAddProperty({
32
+ type: "text"
33
+ });
34
+ onEvent("editProperty", {
35
+ edit: {
36
+ ...np
37
+ }
38
+ });
39
+ };
40
+ return /*#__PURE__*/_jsxs(Box, {
41
+ sx: classes.addProperty,
42
+ children: [/*#__PURE__*/_jsxs(Box, {
43
+ className: "fe-dv-ap-title",
44
+ children: ["Properties", /*#__PURE__*/_jsx(IconButton, {
45
+ className: "tv-act-ico bg br1",
46
+ size: "small",
47
+ onClick: onClose,
48
+ children: /*#__PURE__*/_jsx(CloseIcon, {})
49
+ })]
50
+ }), /*#__PURE__*/_jsx(Box, {
51
+ className: "fe-dv-ap-desc",
52
+ children: "Displayed Properties"
53
+ }), /*#__PURE__*/_jsxs(Box, {
54
+ className: "fe-dv-ap-opt-content",
55
+ children: [/*#__PURE__*/_jsx(List, {
56
+ className: "fe-dv-opt-list",
57
+ children: shownProperties?.map((m, i) => {
58
+ const {
59
+ Icon
60
+ } = PROPERTY_TYPES?.find(f => f.type === m.type) || {};
61
+ return /*#__PURE__*/_jsxs(ListItemButton, {
62
+ onClick: onEditProperty(m),
63
+ children: [/*#__PURE__*/_jsx(ListItemIcon, {
64
+ className: "needBg",
65
+ children: /*#__PURE__*/_jsx(Icon, {})
66
+ }), /*#__PURE__*/_jsx(ListItemText, {
67
+ children: m?.label
68
+ }), /*#__PURE__*/_jsx(ListItemIcon, {
69
+ sx: {
70
+ justifyContent: "end"
71
+ },
72
+ children: /*#__PURE__*/_jsx(KeyboardArrowRightIcon, {})
73
+ })]
74
+ }, i);
75
+ })
76
+ }), hiddenProperties?.length > 0 ? /*#__PURE__*/_jsxs(_Fragment, {
77
+ children: [/*#__PURE__*/_jsx(Box, {
78
+ className: "fe-dv-ap-desc",
79
+ children: "Hidden Properties"
80
+ }), /*#__PURE__*/_jsx(List, {
81
+ className: "fe-dv-opt-list",
82
+ children: hiddenProperties?.map((m, i) => {
83
+ return /*#__PURE__*/_jsxs(ListItemButton, {
84
+ onClick: onEditProperty(m),
85
+ children: [/*#__PURE__*/_jsx(ListItemText, {
86
+ children: m?.label
87
+ }), /*#__PURE__*/_jsxs(ListItemIcon, {
88
+ sx: {
89
+ alignItems: "center"
90
+ },
91
+ children: [TYPE_LABELS[m?.type], /*#__PURE__*/_jsx(KeyboardArrowRightIcon, {})]
92
+ })]
93
+ }, i);
94
+ })
95
+ })]
96
+ }) : null, /*#__PURE__*/_jsx(List, {
97
+ className: "fe-dv-opt-list",
98
+ children: /*#__PURE__*/_jsxs(ListItemButton, {
99
+ onClick: onAdd,
100
+ children: [/*#__PURE__*/_jsx(ListItemIcon, {
101
+ children: /*#__PURE__*/_jsx(AddIcon, {})
102
+ }), /*#__PURE__*/_jsx(ListItemText, {
103
+ children: "Add New Property"
104
+ })]
105
+ })
106
+ })]
107
+ })]
108
+ });
109
+ };
110
+ AllProperties.defaultProps = {};
111
+ export default AllProperties;
@@ -0,0 +1,60 @@
1
+ import React from "react";
2
+ import { Box, IconButton } from "@mui/material";
3
+ import CloseIcon from "@mui/icons-material/Close";
4
+ import PropertyList from "./PropertyList";
5
+ import ArrowBackIcon from "@mui/icons-material/ArrowBack";
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ import { jsxs as _jsxs } from "react/jsx-runtime";
8
+ const ChangeProperty = props => {
9
+ const {
10
+ classes,
11
+ onClose,
12
+ onEvent,
13
+ mode
14
+ } = props;
15
+ const onSelect = property => () => {
16
+ onEvent("updateProperty", {
17
+ ...(mode?.edit || {}),
18
+ type: property?.type
19
+ });
20
+ };
21
+ const onBack = () => {
22
+ onEvent("editProperty", {
23
+ edit: {
24
+ ...(mode?.edit || {})
25
+ }
26
+ });
27
+ };
28
+ return /*#__PURE__*/_jsxs(Box, {
29
+ sx: classes.addProperty,
30
+ children: [/*#__PURE__*/_jsxs(Box, {
31
+ className: "fe-dv-ap-title",
32
+ children: [/*#__PURE__*/_jsxs("span", {
33
+ children: [/*#__PURE__*/_jsx(IconButton, {
34
+ className: "tv-act-ico",
35
+ size: "small",
36
+ onClick: onBack,
37
+ children: /*#__PURE__*/_jsx(ArrowBackIcon, {})
38
+ }), "Change Property"]
39
+ }), /*#__PURE__*/_jsx(IconButton, {
40
+ className: "tv-act-ico bg br1",
41
+ size: "small",
42
+ onClick: onClose,
43
+ children: /*#__PURE__*/_jsx(CloseIcon, {})
44
+ })]
45
+ }), /*#__PURE__*/_jsx(Box, {
46
+ className: "fe-dv-ap-desc",
47
+ children: "Select Property Type"
48
+ }), /*#__PURE__*/_jsx(Box, {
49
+ className: "fe-dv-ap-opt-content mt",
50
+ children: /*#__PURE__*/_jsx(PropertyList, {
51
+ onSelect: onSelect,
52
+ selected: mode?.edit
53
+ })
54
+ })]
55
+ });
56
+ };
57
+ ChangeProperty.defaultProps = {
58
+ onEvent: () => {}
59
+ };
60
+ export default ChangeProperty;
@@ -0,0 +1,36 @@
1
+ import React from "react";
2
+ import { List, ListItemButton, ListItemIcon, ListItemText, Box } from "@mui/material";
3
+ import { PROPERTY_TYPES } from "./Constants";
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ import { jsxs as _jsxs } from "react/jsx-runtime";
6
+ const ColumnsList = props => {
7
+ const {
8
+ properties
9
+ } = props;
10
+ const {
11
+ onSelect,
12
+ selected
13
+ } = props;
14
+ return /*#__PURE__*/_jsx(Box, {
15
+ className: "opt-wrpr",
16
+ children: /*#__PURE__*/_jsx(List, {
17
+ className: "tv-opt-list",
18
+ children: properties?.map((m, i) => {
19
+ const {
20
+ Icon
21
+ } = PROPERTY_TYPES?.find(f => f.type === m.type) || {};
22
+ return /*#__PURE__*/_jsxs(ListItemButton, {
23
+ className: selected?.type === m?.type ? "active" : "",
24
+ onClick: onSelect(m),
25
+ children: [/*#__PURE__*/_jsx(ListItemIcon, {
26
+ children: /*#__PURE__*/_jsx(Icon, {})
27
+ }), /*#__PURE__*/_jsx(ListItemText, {
28
+ primary: m?.label
29
+ })]
30
+ }, i);
31
+ })
32
+ })
33
+ });
34
+ };
35
+ ColumnsList.defaultProps = {};
36
+ export default ColumnsList;
@@ -0,0 +1,101 @@
1
+ import NotesIcon from "@mui/icons-material/Notes";
2
+ import TagIcon from "@mui/icons-material/Tag";
3
+ import ArrowDropDownCircleIcon from "@mui/icons-material/ArrowDropDownCircle";
4
+ import ChecklistIcon from "@mui/icons-material/Checklist";
5
+ import InsertInvitationIcon from "@mui/icons-material/InsertInvitation";
6
+ import PersonIcon from "@mui/icons-material/Person";
7
+ import CheckCircleOutlineIcon from "@mui/icons-material/CheckCircleOutline";
8
+ import ArrowUpwardIcon from "@mui/icons-material/ArrowUpward";
9
+ import ArrowDownwardIcon from "@mui/icons-material/ArrowDownward";
10
+ // import FilterListIcon from "@mui/icons-material/FilterList";
11
+
12
+ export const TYPE_LABELS = {
13
+ text: "Text",
14
+ number: "Number",
15
+ select: "Select",
16
+ "multi-select": "Multi Select",
17
+ date: "Date",
18
+ person: "Person",
19
+ check: "Checkbox"
20
+ };
21
+ export const PROPERTY_DEFAULTS = {
22
+ text: {
23
+ label: TYPE_LABELS?.text,
24
+ visible: true
25
+ },
26
+ number: {
27
+ label: TYPE_LABELS.number,
28
+ visible: true
29
+ },
30
+ select: {
31
+ label: TYPE_LABELS.select,
32
+ visible: true
33
+ },
34
+ "multi-select": {
35
+ label: TYPE_LABELS["multi-select"],
36
+ visible: true
37
+ },
38
+ date: {
39
+ label: TYPE_LABELS.date,
40
+ visible: true
41
+ },
42
+ check: {
43
+ label: TYPE_LABELS.check,
44
+ visible: true
45
+ },
46
+ person: {
47
+ label: TYPE_LABELS.person,
48
+ visible: true
49
+ }
50
+ };
51
+ export const PROPERTY_TYPES = [{
52
+ type: "text",
53
+ label: TYPE_LABELS.text,
54
+ Icon: NotesIcon
55
+ }, {
56
+ type: "number",
57
+ label: TYPE_LABELS.number,
58
+ Icon: TagIcon
59
+ }, {
60
+ type: "select",
61
+ label: TYPE_LABELS.select,
62
+ Icon: ArrowDropDownCircleIcon
63
+ }, {
64
+ type: "multi-select",
65
+ label: TYPE_LABELS["multi-select"],
66
+ Icon: ChecklistIcon
67
+ }, {
68
+ type: "date",
69
+ label: TYPE_LABELS.date,
70
+ Icon: InsertInvitationIcon
71
+ }, {
72
+ type: "check",
73
+ label: TYPE_LABELS.check,
74
+ Icon: CheckCircleOutlineIcon
75
+ }, {
76
+ type: "person",
77
+ label: TYPE_LABELS.person,
78
+ Icon: PersonIcon
79
+ }];
80
+ export const FILTER_TYPES = [{
81
+ type: "sort",
82
+ operator: "asc",
83
+ label: "Sort Ascending",
84
+ value: "",
85
+ Icon: ArrowUpwardIcon
86
+ }, {
87
+ type: "sort",
88
+ operator: "desc",
89
+ label: "Sort Descending",
90
+ Icon: ArrowDownwardIcon
91
+ }
92
+ // {
93
+ // type: "filter",
94
+ // operator: "contains",
95
+ // label: "Filter",
96
+ // value: "",
97
+ // Icon: FilterListIcon,
98
+ // },
99
+ ];
100
+
101
+ export const DEFAULT_OPTION_COLORS = ["rgba(131, 96, 253, 0.5)", "rgba(180, 180, 180, 1)", "rgba(72, 159, 248, 0.5)", "rgba(254, 122, 0, 0.5)", "rgba(214, 105, 190, 0.5)", "rgba(255, 229, 0, 0.5)"];
@@ -0,0 +1,160 @@
1
+ import React, { useEffect, useRef, useState } from "react";
2
+ import { Box, IconButton, TextField, List, ListItemButton, ListItemIcon, ListItemText, FormControlLabel } from "@mui/material";
3
+ import CloseIcon from "@mui/icons-material/Close";
4
+ import ArrowBackIcon from "@mui/icons-material/ArrowBack";
5
+ import DeleteIcon from "@mui/icons-material/Delete";
6
+ import ColorButtons from "../../../Color Picker/ColorButtons";
7
+ import ColorPickerStyles from "../../../Color Picker/Styles";
8
+ import { DEFAULT_OPTION_COLORS } from "./Constants";
9
+ import { jsx as _jsx } from "react/jsx-runtime";
10
+ import { jsxs as _jsxs } from "react/jsx-runtime";
11
+ const EditOption = props => {
12
+ const {
13
+ classes,
14
+ onClose,
15
+ mode,
16
+ onEvent
17
+ } = props;
18
+ const [edit, setEdit] = useState({
19
+ ...(mode?.edit || {})
20
+ });
21
+ const editData = useRef({
22
+ ...edit
23
+ });
24
+ const {
25
+ optionIndex
26
+ } = edit;
27
+ const selectedOption = edit?.options[optionIndex] || {};
28
+ const pickerStyles = ColorPickerStyles();
29
+ useEffect(() => {
30
+ return () => {
31
+ // on un-mount update the option change
32
+ if (editData?.current) {
33
+ delete editData?.current?.edited;
34
+ onEvent("updateProperty", {
35
+ ...editData?.current
36
+ });
37
+ }
38
+ };
39
+ }, []);
40
+ const onChange = e => {
41
+ const updatedOptions = edit?.options.map((m, i) => {
42
+ if (i === edit?.optionIndex) {
43
+ return {
44
+ ...m,
45
+ [e.target.name]: e?.target?.value
46
+ };
47
+ }
48
+ return m;
49
+ });
50
+
51
+ // for delete
52
+ if (edit?.optionIndex > -1 && e?.target?.delete) {
53
+ updatedOptions.splice(edit?.optionIndex, 1);
54
+ }
55
+ const latest = {
56
+ ...edit,
57
+ options: [...updatedOptions]
58
+ };
59
+ setEdit({
60
+ ...latest
61
+ });
62
+ editData.current = {
63
+ ...latest,
64
+ edited: true
65
+ };
66
+
67
+ // if delete go back
68
+ if (e?.target?.delete) {
69
+ onEvent("editProperty", {
70
+ edit: {
71
+ ...latest
72
+ }
73
+ });
74
+ }
75
+ };
76
+ const onBack = () => {
77
+ onEvent("editProperty", {
78
+ edit: {
79
+ ...edit
80
+ }
81
+ });
82
+ };
83
+ const onDeleteOption = () => {
84
+ onChange({
85
+ target: {
86
+ delete: true
87
+ }
88
+ });
89
+ };
90
+ const onColorChange = color => {
91
+ onChange({
92
+ target: {
93
+ name: "color",
94
+ value: color
95
+ }
96
+ });
97
+ };
98
+ return /*#__PURE__*/_jsxs(Box, {
99
+ sx: classes.addProperty,
100
+ children: [/*#__PURE__*/_jsxs(Box, {
101
+ className: "fe-dv-ap-title",
102
+ children: [/*#__PURE__*/_jsxs("span", {
103
+ children: [/*#__PURE__*/_jsx(IconButton, {
104
+ className: "tv-act-ico",
105
+ size: "small",
106
+ onClick: onBack,
107
+ children: /*#__PURE__*/_jsx(ArrowBackIcon, {})
108
+ }), "Edit Option"]
109
+ }), /*#__PURE__*/_jsx(IconButton, {
110
+ className: "tv-act-ico bg",
111
+ size: "small",
112
+ onClick: onClose,
113
+ children: /*#__PURE__*/_jsx(CloseIcon, {})
114
+ })]
115
+ }), /*#__PURE__*/_jsx(Box, {
116
+ className: "fe-dv-ap-opt-content mt-1 mb",
117
+ children: /*#__PURE__*/_jsx(FormControlLabel, {
118
+ className: "ml-0",
119
+ label: "Option Name",
120
+ control: /*#__PURE__*/_jsx(TextField, {
121
+ size: "small",
122
+ name: "value",
123
+ value: selectedOption?.value,
124
+ onChange: onChange,
125
+ fullWidth: true,
126
+ placeholder: "Option Name"
127
+ }),
128
+ labelPlacement: "top"
129
+ })
130
+ }), /*#__PURE__*/_jsxs(Box, {
131
+ className: "label-desc mt-1",
132
+ children: [/*#__PURE__*/_jsx(Box, {
133
+ className: "label-tp mb",
134
+ children: "Choose Color"
135
+ }), /*#__PURE__*/_jsx(Box, {
136
+ className: "ml",
137
+ children: /*#__PURE__*/_jsx(ColorButtons, {
138
+ classes: pickerStyles,
139
+ onSelect: onColorChange,
140
+ activeColor: selectedOption?.color,
141
+ defaultColors: DEFAULT_OPTION_COLORS
142
+ })
143
+ })]
144
+ }), /*#__PURE__*/_jsx(List, {
145
+ className: "fe-dv-opt-list st sb",
146
+ children: /*#__PURE__*/_jsxs(ListItemButton, {
147
+ onClick: onDeleteOption,
148
+ children: [/*#__PURE__*/_jsx(ListItemIcon, {
149
+ children: /*#__PURE__*/_jsx(DeleteIcon, {})
150
+ }), /*#__PURE__*/_jsx(ListItemText, {
151
+ children: "Delete Option"
152
+ })]
153
+ })
154
+ })]
155
+ });
156
+ };
157
+ EditOption.defaultProps = {
158
+ onEvent: () => {}
159
+ };
160
+ export default EditOption;
@@ -0,0 +1,190 @@
1
+ import React, { useEffect, useRef, useState } from "react";
2
+ import { Box, IconButton, TextField, List, ListItemButton, ListItemText, ListItemIcon, FormControlLabel } from "@mui/material";
3
+ import CloseIcon from "@mui/icons-material/Close";
4
+ import KeyboardArrowRightIcon from "@mui/icons-material/KeyboardArrowRight";
5
+ import DeleteIcon from "@mui/icons-material/Delete";
6
+ import ContentCopyIcon from "@mui/icons-material/ContentCopy";
7
+ import VisibilityIcon from "@mui/icons-material/Visibility";
8
+ import VisibilityOffIcon from "@mui/icons-material/VisibilityOff";
9
+ import ArrowBackIosIcon from "@mui/icons-material/ArrowBackIos";
10
+ import { TYPE_LABELS } from "./Constants";
11
+ import AddOptions from "./AddOptions";
12
+ import FilterProperty from "./FilterProperty";
13
+ import { jsx as _jsx } from "react/jsx-runtime";
14
+ import { jsxs as _jsxs } from "react/jsx-runtime";
15
+ const EditProperty = props => {
16
+ const {
17
+ classes,
18
+ onClose,
19
+ mode,
20
+ onEvent
21
+ } = props;
22
+ const [edit, setEdit] = useState({
23
+ ...(mode?.edit || {})
24
+ });
25
+ const editData = useRef({
26
+ ...edit
27
+ });
28
+ useEffect(() => {
29
+ return () => {
30
+ // on un-mount update the label
31
+ if (edit?.label !== editData?.current?.label) {
32
+ onEvent("updateProperty", {
33
+ ...editData?.current
34
+ }, false);
35
+ }
36
+ };
37
+ }, []);
38
+ const onChange = key => e => {
39
+ const latest = {
40
+ ...edit,
41
+ [key]: e?.target?.value
42
+ };
43
+ setEdit({
44
+ ...edit,
45
+ [key]: e?.target?.value
46
+ });
47
+ editData.current = {
48
+ ...latest
49
+ };
50
+ };
51
+ const onChangeProperty = () => {
52
+ onEvent("changeProperty", {
53
+ edit: {
54
+ ...edit
55
+ }
56
+ });
57
+ };
58
+ const onBack = () => {
59
+ onEvent("allProperties", {
60
+ edit: null
61
+ });
62
+ };
63
+ const onUpdate = data => {
64
+ const latest = {
65
+ ...edit,
66
+ ...data
67
+ };
68
+ setEdit({
69
+ ...edit,
70
+ ...data
71
+ });
72
+ editData.current = {
73
+ ...latest
74
+ };
75
+ onEvent("updateProperty", {
76
+ ...editData?.current
77
+ });
78
+ };
79
+ const onAction = action => () => {
80
+ switch (action) {
81
+ case "Visibilty":
82
+ onUpdate({
83
+ visible: !edit?.visible
84
+ });
85
+ onEvent("close");
86
+ break;
87
+ case "Duplicate":
88
+ onEvent("addProperty", {
89
+ type: editData?.current?.type,
90
+ overrides: {
91
+ ...editData?.current
92
+ }
93
+ }, false);
94
+ onEvent("close");
95
+ break;
96
+ case "Delete":
97
+ onEvent("deleteProperty", {
98
+ ...editData?.current
99
+ });
100
+ onEvent("close");
101
+ break;
102
+ default:
103
+ return;
104
+ }
105
+ };
106
+ return /*#__PURE__*/_jsxs(Box, {
107
+ sx: classes.addProperty,
108
+ children: [/*#__PURE__*/_jsxs(Box, {
109
+ className: "fe-dv-ap-title",
110
+ children: [/*#__PURE__*/_jsxs("span", {
111
+ children: [/*#__PURE__*/_jsx(IconButton, {
112
+ className: "tv-act-ico",
113
+ size: "small",
114
+ onClick: onBack,
115
+ children: /*#__PURE__*/_jsx(ArrowBackIosIcon, {})
116
+ }), "Edit Property"]
117
+ }), /*#__PURE__*/_jsx(IconButton, {
118
+ className: "tv-act-ico bg br1",
119
+ size: "small",
120
+ onClick: onClose,
121
+ children: /*#__PURE__*/_jsx(CloseIcon, {})
122
+ })]
123
+ }), /*#__PURE__*/_jsxs(Box, {
124
+ className: "fe-dv-ap-opt-content",
125
+ children: [/*#__PURE__*/_jsx(FormControlLabel, {
126
+ label: "Field Name",
127
+ labelPlacement: "top",
128
+ control: /*#__PURE__*/_jsx(TextField, {
129
+ size: "small",
130
+ value: edit?.label,
131
+ onChange: onChange("label"),
132
+ fullWidth: true,
133
+ placeholder: "Field Name"
134
+ })
135
+ }), /*#__PURE__*/_jsx(AddOptions, {
136
+ edit: edit,
137
+ onUpdate: onUpdate,
138
+ onEvent: onEvent
139
+ }), /*#__PURE__*/_jsx(FilterProperty, {
140
+ edit: edit,
141
+ onUpdate: onUpdate,
142
+ onEvent: onEvent
143
+ }), /*#__PURE__*/_jsx(List, {
144
+ className: "fe-dv-opt-list st sb",
145
+ children: /*#__PURE__*/_jsxs(ListItemButton, {
146
+ onClick: onChangeProperty,
147
+ children: [/*#__PURE__*/_jsx(ListItemText, {
148
+ children: "Type"
149
+ }), /*#__PURE__*/_jsxs(ListItemIcon, {
150
+ sx: {
151
+ alignItems: "center"
152
+ },
153
+ children: [/*#__PURE__*/_jsx("span", {
154
+ className: "label-tp",
155
+ children: TYPE_LABELS[edit?.type]
156
+ }), /*#__PURE__*/_jsx(KeyboardArrowRightIcon, {})]
157
+ })]
158
+ })
159
+ }), /*#__PURE__*/_jsxs(List, {
160
+ className: "fe-dv-opt-list",
161
+ children: [/*#__PURE__*/_jsxs(ListItemButton, {
162
+ onClick: onAction("Visibilty"),
163
+ children: [/*#__PURE__*/_jsx(ListItemIcon, {
164
+ children: edit?.visible ? /*#__PURE__*/_jsx(VisibilityOffIcon, {}) : /*#__PURE__*/_jsx(VisibilityIcon, {})
165
+ }), /*#__PURE__*/_jsxs(ListItemText, {
166
+ children: [edit?.visible ? "Hide" : "Show", " in View"]
167
+ })]
168
+ }), /*#__PURE__*/_jsxs(ListItemButton, {
169
+ onClick: onAction("Duplicate"),
170
+ children: [/*#__PURE__*/_jsx(ListItemIcon, {
171
+ children: /*#__PURE__*/_jsx(ContentCopyIcon, {})
172
+ }), /*#__PURE__*/_jsx(ListItemText, {
173
+ children: "Duplicate Property"
174
+ })]
175
+ }), /*#__PURE__*/_jsxs(ListItemButton, {
176
+ onClick: onAction("Delete"),
177
+ children: [/*#__PURE__*/_jsx(ListItemIcon, {
178
+ children: /*#__PURE__*/_jsx(DeleteIcon, {})
179
+ }), /*#__PURE__*/_jsx(ListItemText, {
180
+ children: "Delete Property"
181
+ })]
182
+ })]
183
+ })]
184
+ })]
185
+ });
186
+ };
187
+ EditProperty.defaultProps = {
188
+ onEvent: () => {}
189
+ };
190
+ export default EditProperty;