@flozy/editor 5.1.4 → 5.1.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (151) 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/Button/EditorButton.js +1 -1
  8. package/dist/Editor/Elements/Carousel/CarouselItem.js +1 -1
  9. package/dist/Editor/Elements/Color Picker/ColorButtons.js +7 -5
  10. package/dist/Editor/Elements/Color Picker/Styles.js +7 -3
  11. package/dist/Editor/Elements/Color Picker/defaultColors.js +2 -2
  12. package/dist/Editor/Elements/DataView/DataView.js +101 -0
  13. package/dist/Editor/Elements/DataView/DataViewButton.js +23 -0
  14. package/dist/Editor/Elements/DataView/Layouts/ColumnView.js +59 -0
  15. package/dist/Editor/Elements/DataView/Layouts/DataTypes/CheckType.js +30 -0
  16. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/Select.js +140 -0
  17. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/SimpleSelect.js +40 -0
  18. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/styles.js +59 -0
  19. package/dist/Editor/Elements/DataView/Layouts/DataTypes/DateType.js +26 -0
  20. package/dist/Editor/Elements/DataView/Layouts/DataTypes/MultiSelectType.js +38 -0
  21. package/dist/Editor/Elements/DataView/Layouts/DataTypes/NumberType.js +30 -0
  22. package/dist/Editor/Elements/DataView/Layouts/DataTypes/PersonType.js +30 -0
  23. package/dist/Editor/Elements/DataView/Layouts/DataTypes/SelectType.js +35 -0
  24. package/dist/Editor/Elements/DataView/Layouts/DataTypes/TextType.js +36 -0
  25. package/dist/Editor/Elements/DataView/Layouts/DataTypes/index.js +17 -0
  26. package/dist/Editor/Elements/DataView/Layouts/FilterSort/SortOptions/ChooseField.js +29 -0
  27. package/dist/Editor/Elements/DataView/Layouts/FilterSort/SortOptions/ChooseSort.js +38 -0
  28. package/dist/Editor/Elements/DataView/Layouts/FilterSort/SortOptions/index.js +74 -0
  29. package/dist/Editor/Elements/DataView/Layouts/FilterSort/index.js +64 -0
  30. package/dist/Editor/Elements/DataView/Layouts/FilterSort/styles.js +106 -0
  31. package/dist/Editor/Elements/DataView/Layouts/FilterView.js +174 -0
  32. package/dist/Editor/Elements/DataView/Layouts/Formula.js +29 -0
  33. package/dist/Editor/Elements/DataView/Layouts/Options/AddOptions.js +113 -0
  34. package/dist/Editor/Elements/DataView/Layouts/Options/AddProperty.js +37 -0
  35. package/dist/Editor/Elements/DataView/Layouts/Options/AllProperties.js +111 -0
  36. package/dist/Editor/Elements/DataView/Layouts/Options/ChangeProperty.js +62 -0
  37. package/dist/Editor/Elements/DataView/Layouts/Options/ColumnsList.js +36 -0
  38. package/dist/Editor/Elements/DataView/Layouts/Options/Constants.js +101 -0
  39. package/dist/Editor/Elements/DataView/Layouts/Options/EditOption.js +160 -0
  40. package/dist/Editor/Elements/DataView/Layouts/Options/EditProperty.js +190 -0
  41. package/dist/Editor/Elements/DataView/Layouts/Options/FilterProperty.js +42 -0
  42. package/dist/Editor/Elements/DataView/Layouts/Options/PropertyList.js +30 -0
  43. package/dist/Editor/Elements/DataView/Layouts/Options/index.js +110 -0
  44. package/dist/Editor/Elements/DataView/Layouts/Options/styles.js +179 -0
  45. package/dist/Editor/Elements/DataView/Layouts/TableStyles.js +100 -0
  46. package/dist/Editor/Elements/DataView/Layouts/TableView.js +227 -0
  47. package/dist/Editor/Elements/DataView/Layouts/ViewData.js +70 -0
  48. package/dist/Editor/Elements/DataView/Layouts/index.js +25 -0
  49. package/dist/Editor/Elements/DataView/Providers/DataViewProvider.js +288 -0
  50. package/dist/Editor/Elements/DataView/Utils/globalSearch.js +15 -0
  51. package/dist/Editor/Elements/DataView/Utils/multiSortRows.js +72 -0
  52. package/dist/Editor/Elements/DataView/styles.js +143 -0
  53. package/dist/Editor/Elements/Divider/Divider.js +15 -14
  54. package/dist/Editor/Elements/Form/Form.js +38 -2
  55. package/dist/Editor/Elements/Form/FormElements/FormCheckbox.js +7 -1
  56. package/dist/Editor/Elements/Form/FormElements/FormDate.js +7 -1
  57. package/dist/Editor/Elements/Form/FormElements/FormEmail.js +7 -1
  58. package/dist/Editor/Elements/Form/FormElements/FormNumbers.js +7 -1
  59. package/dist/Editor/Elements/Form/FormElements/FormRadioButton.js +7 -1
  60. package/dist/Editor/Elements/Form/FormElements/FormText.js +7 -1
  61. package/dist/Editor/Elements/Form/FormElements/FormTextArea.js +6 -1
  62. package/dist/Editor/Elements/Form/FormPopup.js +12 -9
  63. package/dist/Editor/Elements/FreeGrid/FreeGrid.js +1 -1
  64. package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +20 -1
  65. package/dist/Editor/Elements/Grid/GridButton.js +2 -1
  66. package/dist/Editor/Elements/Grid/GridItem.js +12 -0
  67. package/dist/Editor/Elements/Link/LinkButton.js +1 -1
  68. package/dist/Editor/Elements/Signature/Signature.css +1 -1
  69. package/dist/Editor/Elements/Signature/SignatureOptions/TypeSignature.js +2 -2
  70. package/dist/Editor/Elements/Signature/SignaturePopup.js +13 -48
  71. package/dist/Editor/Elements/SimpleText/index.js +8 -1
  72. package/dist/Editor/Elements/SimpleText/style.js +8 -1
  73. package/dist/Editor/Elements/Table/AddRowCol.js +77 -0
  74. package/dist/Editor/Elements/Table/DragButton.js +141 -0
  75. package/dist/Editor/Elements/Table/DragStyles.js +70 -0
  76. package/dist/Editor/Elements/Table/Draggable.js +25 -0
  77. package/dist/Editor/Elements/Table/Droppable.js +53 -0
  78. package/dist/Editor/Elements/Table/Styles.js +25 -43
  79. package/dist/Editor/Elements/Table/Table.js +205 -138
  80. package/dist/Editor/Elements/Table/TableCell.js +355 -102
  81. package/dist/Editor/Elements/Table/TablePopup.js +9 -3
  82. package/dist/Editor/Elements/Table/TableRow.js +10 -2
  83. package/dist/Editor/Elements/Table/TableTool.js +101 -0
  84. package/dist/Editor/Elements/Table/tableHelper.js +71 -0
  85. package/dist/Editor/Styles/EditorStyles.js +3 -1
  86. package/dist/Editor/Toolbar/FormatTools/BlockButton.js +10 -0
  87. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +7 -11
  88. package/dist/Editor/Toolbar/FormatTools/FontFamilyAutocomplete.js +10 -4
  89. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +3 -0
  90. package/dist/Editor/Toolbar/FormatTools/TextSize.js +0 -2
  91. package/dist/Editor/Toolbar/Mini/MiniToolbar.js +3 -6
  92. package/dist/Editor/Toolbar/Mini/Styles.js +4 -1
  93. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +3 -3
  94. package/dist/Editor/Toolbar/PopupTool/PopperHeader.js +16 -11
  95. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +416 -49
  96. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +62 -8
  97. package/dist/Editor/Toolbar/PopupTool/index.js +5 -6
  98. package/dist/Editor/Toolbar/Toolbar.js +6 -0
  99. package/dist/Editor/Toolbar/toolbarGroups.js +4 -0
  100. package/dist/Editor/assets/svg/BrainIcon.js +2 -2
  101. package/dist/Editor/assets/svg/TableIcons.js +220 -0
  102. package/dist/Editor/common/ColorPickerButton.js +3 -2
  103. package/dist/Editor/common/FontLoader/FontLoader.js +4 -4
  104. package/dist/Editor/common/Icon.js +24 -23
  105. package/dist/Editor/common/LinkSettings/NavComponents.js +2 -1
  106. package/dist/Editor/common/LinkSettings/index.js +2 -1
  107. package/dist/Editor/common/MentionsPopup/Styles.js +151 -3
  108. package/dist/Editor/common/MentionsPopup/index.js +1 -1
  109. package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +108 -12
  110. package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +14 -2
  111. package/dist/Editor/common/Select/index.js +20 -0
  112. package/dist/Editor/common/Select/styles.js +17 -0
  113. package/dist/Editor/common/Shorthands/elements.js +13 -1
  114. package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +5 -0
  115. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +8 -4
  116. package/dist/Editor/common/StyleBuilder/fieldTypes/card.js +10 -2
  117. package/dist/Editor/common/StyleBuilder/fieldTypes/index.js +3 -1
  118. package/dist/Editor/common/StyleBuilder/fieldTypes/lineSpacing.js +79 -0
  119. package/dist/Editor/common/StyleBuilder/fieldTypes/radiusStyle.js +7 -7
  120. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +5 -2
  121. package/dist/Editor/common/StyleBuilder/formStyle.js +268 -149
  122. package/dist/Editor/common/StyleBuilder/index.js +84 -11
  123. package/dist/Editor/common/StyleBuilder/pageSettingsStyle.js +4 -0
  124. package/dist/Editor/common/StyleBuilder/tableStyle.js +69 -25
  125. package/dist/Editor/common/SwipeableDrawer/style.js +15 -4
  126. package/dist/Editor/common/Uploader.js +8 -0
  127. package/dist/Editor/common/iconListV2.js +378 -40
  128. package/dist/Editor/common/iconslist.js +23 -17
  129. package/dist/Editor/commonStyle.js +126 -9
  130. package/dist/Editor/helper/deserialize/index.js +4 -1
  131. package/dist/Editor/helper/index.js +2 -2
  132. package/dist/Editor/helper/theme.js +24 -1
  133. package/dist/Editor/hooks/useMouseMove.js +5 -2
  134. package/dist/Editor/hooks/useTable.js +195 -0
  135. package/dist/Editor/plugins/withCustomDeleteBackward.js +3 -2
  136. package/dist/Editor/plugins/withHTML.js +17 -1
  137. package/dist/Editor/plugins/withLayout.js +48 -1
  138. package/dist/Editor/utils/SlateUtilityFunctions.js +18 -0
  139. package/dist/Editor/utils/button.js +4 -4
  140. package/dist/Editor/utils/chatEditor/SlateUtilityFunctions.js +21 -0
  141. package/dist/Editor/utils/dataView.js +43 -0
  142. package/dist/Editor/utils/embed.js +2 -1
  143. package/dist/Editor/utils/events.js +0 -1
  144. package/dist/Editor/utils/font.js +11 -4
  145. package/dist/Editor/utils/formfield.js +8 -4
  146. package/dist/Editor/utils/helper.js +67 -2
  147. package/dist/Editor/utils/insertNewLine.js +19 -1
  148. package/dist/Editor/utils/pageSettings.js +14 -2
  149. package/dist/Editor/utils/serializeToText.js +2 -0
  150. package/dist/Editor/utils/table.js +228 -24
  151. package/package.json +1 -1
@@ -0,0 +1,23 @@
1
+ import React from "react";
2
+ import ToolbarIcon from "../../common/ToolbarIcon";
3
+ import Icon from "../../common/Icon";
4
+ import { insertDataView } from "../../utils/dataView";
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ const DataViewButton = props => {
7
+ const {
8
+ editor,
9
+ icoBtnType
10
+ } = props;
11
+ const onClick = () => {
12
+ insertDataView(editor);
13
+ };
14
+ return /*#__PURE__*/_jsx(ToolbarIcon, {
15
+ title: "Dynamic Table",
16
+ onClick: onClick,
17
+ icon: /*#__PURE__*/_jsx(Icon, {
18
+ icon: "dataView"
19
+ }),
20
+ icoBtnType: icoBtnType
21
+ });
22
+ };
23
+ export default DataViewButton;
@@ -0,0 +1,59 @@
1
+ import React, { useEffect, useRef, useState } from "react";
2
+ import { Box, Checkbox, Popper } from "@mui/material";
3
+ import DataTypes from "./DataTypes";
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ import { jsxs as _jsxs } from "react/jsx-runtime";
6
+ const ColumnView = props => {
7
+ const {
8
+ needAnchor,
9
+ rowIndex,
10
+ row,
11
+ property,
12
+ onSelect,
13
+ selected,
14
+ readOnly
15
+ } = props;
16
+ const DataType = DataTypes[property?.type] || DataTypes["text"];
17
+ const anchorRef = useRef(null);
18
+ const [anchorEl, setAnchorEl] = useState(null);
19
+ const open = Boolean(anchorEl);
20
+ useEffect(() => {
21
+ if (anchorRef?.current) {
22
+ setAnchorEl(anchorRef?.current);
23
+ }
24
+ }, [anchorRef?.current]);
25
+ const handleSelect = id => e => {
26
+ onSelect(id, e.target.checked);
27
+ };
28
+ return /*#__PURE__*/_jsxs(Box, {
29
+ component: "td",
30
+ ref: anchorRef,
31
+ children: [/*#__PURE__*/_jsx(DataType, {
32
+ options: property?.options,
33
+ property: property?.key,
34
+ value: row[property?.key] || "",
35
+ rowIndex: rowIndex,
36
+ label: property?.label,
37
+ readOnly: readOnly
38
+ }), needAnchor && !readOnly ? /*#__PURE__*/_jsx(Popper, {
39
+ sx: {
40
+ zIndex: 1000
41
+ },
42
+ open: open,
43
+ anchorEl: anchorEl,
44
+ placement: "left",
45
+ container: anchorRef?.current,
46
+ className: `tv-tr-pop ${selected ? "active" : ""}`,
47
+ children: /*#__PURE__*/_jsx(Checkbox, {
48
+ onClick: handleSelect(row?.id),
49
+ size: "small",
50
+ className: "tv-ck-box",
51
+ sx: {
52
+ mr: 0
53
+ },
54
+ checked: selected
55
+ })
56
+ }) : null]
57
+ });
58
+ };
59
+ export default ColumnView;
@@ -0,0 +1,30 @@
1
+ import React from "react";
2
+ import { useDataView } from "../../Providers/DataViewProvider";
3
+ import Checkbox from "@mui/material/Checkbox";
4
+ import CheckCircleOutlineIcon from "@mui/icons-material/CheckCircleOutline";
5
+ import CheckCircleIcon from "@mui/icons-material/CheckCircle";
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ const CheckType = props => {
8
+ const {
9
+ rowIndex,
10
+ property,
11
+ value,
12
+ readOnly
13
+ } = props;
14
+ const {
15
+ onChange
16
+ } = useDataView();
17
+ const handleChange = e => {
18
+ onChange(rowIndex, {
19
+ [property]: e?.target?.checked
20
+ });
21
+ };
22
+ return /*#__PURE__*/_jsx(Checkbox, {
23
+ checked: value,
24
+ icon: /*#__PURE__*/_jsx(CheckCircleOutlineIcon, {}),
25
+ checkedIcon: /*#__PURE__*/_jsx(CheckCircleIcon, {}),
26
+ onChange: handleChange,
27
+ disabled: readOnly
28
+ }, rowIndex);
29
+ };
30
+ export default CheckType;
@@ -0,0 +1,140 @@
1
+ import React from "react";
2
+ import TextField from "@mui/material/TextField";
3
+ import Autocomplete from "@mui/material/Autocomplete";
4
+ import { Box, Chip, useTheme } from "@mui/material";
5
+ import { useEditorContext } from "../../../../../hooks/useMouseMove";
6
+ import useCompStyles from "./styles";
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ const filter = (opt, params, selectedOpt) => {
9
+ const selectedVals = selectedOpt?.map(m => m?.value);
10
+ const fv = opt?.filter(f => !selectedVals.includes(f.value));
11
+ if (params?.inputValue) {
12
+ fv.filter(f => f?.value?.toLowerCase().indexOf(params?.inputValue?.toLowerCase()) >= 0);
13
+ }
14
+ return fv;
15
+ };
16
+ export default function Select(props) {
17
+ const theme = useTheme();
18
+ const {
19
+ theme: appTheme
20
+ } = useEditorContext();
21
+ const classes = useCompStyles(theme, appTheme);
22
+ const {
23
+ value,
24
+ onChange,
25
+ options,
26
+ multiple = false,
27
+ limitTags = 2,
28
+ placeholder = "",
29
+ disabled = false
30
+ } = props;
31
+ return /*#__PURE__*/_jsx(Autocomplete, {
32
+ disabled: disabled,
33
+ className: "tv-ac-field",
34
+ multiple: true,
35
+ limitTags: limitTags,
36
+ placeholder: placeholder,
37
+ value: value || "",
38
+ onChange: (event, newValue) => {
39
+ const fv = [];
40
+ newValue?.forEach(m => {
41
+ if (multiple) {
42
+ fv.push({
43
+ value: m.inputValue || m.value
44
+ });
45
+ } else {
46
+ fv[0] = {
47
+ value: m.inputValue || m.value
48
+ };
49
+ }
50
+ });
51
+ onChange(fv);
52
+ },
53
+ filterOptions: (options, params) => {
54
+ const filtered = filter(options, params, value);
55
+
56
+ // const { inputValue } = params;
57
+ // Suggest the creation of a new value
58
+ // const isExisting = options.some(
59
+ // (option) => inputValue?.toLowerCase() === option.value?.toLowerCase()
60
+ // );
61
+ // no need of new val now
62
+ // if (inputValue !== "" && !isExisting) {
63
+ // filtered.push({
64
+ // inputValue,
65
+ // value: `Add "${inputValue}"`,
66
+ // });
67
+ // }
68
+
69
+ return filtered;
70
+ },
71
+ selectOnFocus: true,
72
+ clearOnBlur: true,
73
+ handleHomeEndKeys: true,
74
+ options: options || [],
75
+ getOptionLabel: option => {
76
+ // Value selected with enter, right from the input
77
+ if (typeof option === "string") {
78
+ return option;
79
+ }
80
+ // Add "xxx" option created dynamically
81
+ if (option.inputValue) {
82
+ return option.inputValue;
83
+ }
84
+ // Regular option
85
+ return option.value || "";
86
+ },
87
+ renderTags: (value, getTagProps) => {
88
+ return /*#__PURE__*/_jsx(Box, {
89
+ className: "tv-ms-tag-wrpr",
90
+ children: value?.map((option, index) => {
91
+ const {
92
+ key,
93
+ ...tagProps
94
+ } = getTagProps({
95
+ index
96
+ }) || {};
97
+ return option?.value ? /*#__PURE__*/_jsx(Chip, {
98
+ variant: "outlined",
99
+ label: option?.label || option?.value,
100
+ ...tagProps,
101
+ sx: {
102
+ background: option?.color || "#CCC",
103
+ border: "none"
104
+ }
105
+ }, key) : null;
106
+ })
107
+ });
108
+ },
109
+ renderOption: (props, option) => {
110
+ const {
111
+ key,
112
+ ...optionProps
113
+ } = props;
114
+ return /*#__PURE__*/_jsx("li", {
115
+ ...optionProps,
116
+ children: /*#__PURE__*/_jsx(Chip, {
117
+ label: option.label || option.value || "",
118
+ sx: {
119
+ backgroundColor: option.color || "#CCC"
120
+ }
121
+ })
122
+ }, key);
123
+ },
124
+ freeSolo: true,
125
+ size: "small",
126
+ fullWidth: true,
127
+ renderInput: params => {
128
+ return /*#__PURE__*/_jsx(TextField, {
129
+ size: "small",
130
+ ...params,
131
+ placeholder: placeholder
132
+ });
133
+ },
134
+ slotProps: {
135
+ paper: {
136
+ sx: classes.autocomplete
137
+ }
138
+ }
139
+ });
140
+ }
@@ -0,0 +1,40 @@
1
+ import React from "react";
2
+ import { MenuItem, Select, useTheme } from "@mui/material";
3
+ import { useEditorContext } from "../../../../../hooks/useMouseMove";
4
+ import useCompStyles from "./styles";
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ const SimpleSelect = props => {
7
+ const theme = useTheme();
8
+ const {
9
+ theme: appTheme
10
+ } = useEditorContext();
11
+ const classes = useCompStyles(theme, appTheme);
12
+ const {
13
+ value,
14
+ options,
15
+ handleChange,
16
+ disabled = false
17
+ } = props;
18
+ console.log(classes);
19
+ return /*#__PURE__*/_jsx(Select, {
20
+ disabled: disabled,
21
+ value: value,
22
+ onChange: handleChange,
23
+ fullWidth: true,
24
+ size: "small",
25
+ MenuProps: {
26
+ PaperProps: {
27
+ sx: classes.simpleselect,
28
+ className: "tv-cf-opt-wrpr"
29
+ }
30
+ },
31
+ children: options?.map((m, i) => {
32
+ return /*#__PURE__*/_jsx(MenuItem, {
33
+ value: m.key,
34
+ className: "tv-cf-opt-wrpr",
35
+ children: m.label
36
+ }, i);
37
+ })
38
+ });
39
+ };
40
+ export default SimpleSelect;
@@ -0,0 +1,59 @@
1
+ const useCompStyles = (theme, appTheme) => ({
2
+ simpleselect: {
3
+ border: `1px solid ${appTheme?.palette?.editor?.tv_border}`,
4
+ background: appTheme?.palette?.editor?.tv_pop_bg,
5
+ color: appTheme?.palette?.editor?.tv_text_primary,
6
+ borderRadius: "8px",
7
+ [theme.breakpoints.between("xs", "md")]: {},
8
+ "& ul": {
9
+ padding: "4px",
10
+ "& li": {
11
+ padding: "4px 6px",
12
+ borderRadius: "8px",
13
+ color: appTheme?.palette?.editor?.tv_text_primary,
14
+ fontSize: "14px",
15
+ marginTop: "4px",
16
+ "&.Mui-selected": {
17
+ background: appTheme?.palette?.editor?.tv_hover_bg,
18
+ color: appTheme?.palette?.editor?.tv_hover_text,
19
+ "&:hover": {
20
+ background: appTheme?.palette?.editor?.tv_hover_bg,
21
+ color: appTheme?.palette?.editor?.tv_hover_text
22
+ }
23
+ },
24
+ "&:hover": {
25
+ background: appTheme?.palette?.editor?.tv_hover_bg,
26
+ color: appTheme?.palette?.editor?.tv_hover_text
27
+ }
28
+ }
29
+ }
30
+ },
31
+ autocomplete: {
32
+ border: `1px solid ${appTheme?.palette?.editor?.tv_border}`,
33
+ background: appTheme?.palette?.editor?.tv_pop_bg,
34
+ color: appTheme?.palette?.editor?.tv_text_primary,
35
+ borderRadius: "8px",
36
+ "& ul": {
37
+ padding: "4px",
38
+ "& .MuiAutocomplete-option": {
39
+ padding: "4px 6px",
40
+ borderRadius: "8px",
41
+ color: appTheme?.palette?.editor?.tv_text_primary,
42
+ fontSize: "14px",
43
+ "&.Mui-selected": {
44
+ background: appTheme?.palette?.editor?.tv_hover_bg,
45
+ color: appTheme?.palette?.editor?.tv_hover_text,
46
+ "&:hover": {
47
+ background: appTheme?.palette?.editor?.tv_hover_bg,
48
+ color: appTheme?.palette?.editor?.tv_hover_text
49
+ }
50
+ },
51
+ "&:hover": {
52
+ background: appTheme?.palette?.editor?.tv_hover_bg,
53
+ color: appTheme?.palette?.editor?.tv_hover_text
54
+ }
55
+ }
56
+ }
57
+ }
58
+ });
59
+ export default useCompStyles;
@@ -0,0 +1,26 @@
1
+ import React from "react";
2
+ import DatePicker from "react-datepicker";
3
+ import { useDataView } from "../../Providers/DataViewProvider";
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ const DateType = props => {
6
+ const {
7
+ rowIndex,
8
+ property,
9
+ value,
10
+ readOnly
11
+ } = props;
12
+ const {
13
+ onChange
14
+ } = useDataView();
15
+ const handleChange = date => {
16
+ onChange(rowIndex, {
17
+ [property]: date
18
+ });
19
+ };
20
+ return /*#__PURE__*/_jsx(DatePicker, {
21
+ disabled: readOnly,
22
+ selected: value ? new Date(value) : "",
23
+ onChange: handleChange
24
+ });
25
+ };
26
+ export default DateType;
@@ -0,0 +1,38 @@
1
+ import React from "react";
2
+ import { useDataView } from "../../Providers/DataViewProvider";
3
+ import Select from "./Components/Select";
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ const MultiSelectType = props => {
6
+ const {
7
+ rowIndex,
8
+ property,
9
+ value,
10
+ options,
11
+ label = "",
12
+ readOnly
13
+ } = props;
14
+ const {
15
+ onChange
16
+ } = useDataView();
17
+ const coloredValues = [...(value || [])]?.map(m => {
18
+ return {
19
+ ...m,
20
+ color: options?.find(f => f.value === m.value)?.color || "#FFF"
21
+ };
22
+ });
23
+ const handleChange = data => {
24
+ onChange(rowIndex, {
25
+ [property]: data?.filter(f => f?.value)
26
+ });
27
+ };
28
+ return /*#__PURE__*/_jsx(Select, {
29
+ value: coloredValues,
30
+ onChange: handleChange,
31
+ options: options,
32
+ multiple: true,
33
+ limitTags: 2,
34
+ placeholder: label,
35
+ disabled: readOnly
36
+ });
37
+ };
38
+ export default MultiSelectType;
@@ -0,0 +1,30 @@
1
+ import React from "react";
2
+ import { TextField } from "@mui/material";
3
+ import { useDataView } from "../../Providers/DataViewProvider";
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ const NumberType = props => {
6
+ const {
7
+ rowIndex,
8
+ property,
9
+ value,
10
+ readOnly
11
+ } = props;
12
+ const {
13
+ onChange
14
+ } = useDataView();
15
+ const handleChange = e => {
16
+ onChange(rowIndex, {
17
+ [property]: e?.target?.value
18
+ });
19
+ };
20
+ return /*#__PURE__*/_jsx(TextField, {
21
+ type: "number",
22
+ fullWidth: true,
23
+ className: "fe-tv-type_text",
24
+ value: value,
25
+ size: "small",
26
+ onChange: handleChange,
27
+ disabled: readOnly
28
+ });
29
+ };
30
+ export default NumberType;
@@ -0,0 +1,30 @@
1
+ import React from "react";
2
+ import { useDataView } from "../../Providers/DataViewProvider";
3
+ import Select from "./Components/Select";
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ const PersonType = props => {
6
+ const {
7
+ rowIndex,
8
+ property,
9
+ value,
10
+ readOnly
11
+ } = props;
12
+ const {
13
+ onChange,
14
+ users
15
+ } = useDataView();
16
+ console.log(users);
17
+ const handleChange = data => {
18
+ onChange(rowIndex, {
19
+ [property]: data?.filter(f => f?.value)
20
+ });
21
+ };
22
+ return /*#__PURE__*/_jsx(Select, {
23
+ value: value || [],
24
+ onChange: handleChange,
25
+ options: users,
26
+ multiple: false,
27
+ disabled: readOnly
28
+ });
29
+ };
30
+ export default PersonType;
@@ -0,0 +1,35 @@
1
+ import React from "react";
2
+ import { useDataView } from "../../Providers/DataViewProvider";
3
+ import Select from "./Components/Select";
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ const SelectType = props => {
6
+ const {
7
+ rowIndex,
8
+ property,
9
+ value,
10
+ options,
11
+ readOnly
12
+ } = props;
13
+ const {
14
+ onChange
15
+ } = useDataView();
16
+ const coloredValues = [...(value || [])]?.map(m => {
17
+ return {
18
+ ...m,
19
+ color: options?.find(f => f.value === m.value)?.color
20
+ };
21
+ });
22
+ const handleChange = data => {
23
+ onChange(rowIndex, {
24
+ [property]: data?.filter(f => f?.value)
25
+ });
26
+ };
27
+ return /*#__PURE__*/_jsx(Select, {
28
+ value: coloredValues,
29
+ onChange: handleChange,
30
+ options: options,
31
+ multiple: false,
32
+ disabled: readOnly
33
+ });
34
+ };
35
+ export default SelectType;
@@ -0,0 +1,36 @@
1
+ import React from "react";
2
+ import { TextField } from "@mui/material";
3
+ import { useDataView } from "../../Providers/DataViewProvider";
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ const TextType = props => {
6
+ const {
7
+ rowIndex,
8
+ property,
9
+ value,
10
+ readOnly
11
+ } = props;
12
+ const {
13
+ onChange
14
+ } = useDataView();
15
+ const handleChange = e => {
16
+ onChange(rowIndex, {
17
+ [property]: e?.target?.value
18
+ });
19
+ };
20
+ const formatValue = () => {
21
+ if (typeof value === "string") {
22
+ return value;
23
+ } else if (value[0]) {
24
+ return value?.map(m => m.value).join(", ");
25
+ }
26
+ };
27
+ return /*#__PURE__*/_jsx(TextField, {
28
+ fullWidth: true,
29
+ className: "fe-tv-type_text",
30
+ value: formatValue(value),
31
+ size: "small",
32
+ onChange: handleChange,
33
+ disabled: readOnly
34
+ });
35
+ };
36
+ export default TextType;
@@ -0,0 +1,17 @@
1
+ import TextType from "./TextType";
2
+ import DateType from "./DateType";
3
+ import SelectType from "./SelectType";
4
+ import MultiSelectType from "./MultiSelectType";
5
+ import NumberType from "./NumberType";
6
+ import CheckType from "./CheckType";
7
+ import PersonType from "./PersonType";
8
+ const DataTypes = {
9
+ text: TextType,
10
+ date: DateType,
11
+ select: SelectType,
12
+ "multi-select": MultiSelectType,
13
+ number: NumberType,
14
+ check: CheckType,
15
+ person: PersonType
16
+ };
17
+ export default DataTypes;
@@ -0,0 +1,29 @@
1
+ import React from "react";
2
+ import { Box } from "@mui/material";
3
+ import SimpleSelect from "../../DataTypes/Components/SimpleSelect";
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ const ChooseField = props => {
6
+ const {
7
+ sort,
8
+ properties,
9
+ onChange
10
+ } = props;
11
+ const handleChange = e => {
12
+ onChange(sort, {
13
+ newKey: e?.target?.value
14
+ });
15
+ };
16
+ return /*#__PURE__*/_jsx(Box, {
17
+ sx: {
18
+ width: "120px",
19
+ mr: 1
20
+ },
21
+ className: "tv-cf",
22
+ children: /*#__PURE__*/_jsx(SimpleSelect, {
23
+ value: sort?.key,
24
+ options: properties,
25
+ handleChange: handleChange
26
+ })
27
+ });
28
+ };
29
+ export default ChooseField;
@@ -0,0 +1,38 @@
1
+ import React from "react";
2
+ import { Box } from "@mui/material";
3
+ import SimpleSelect from "../../DataTypes/Components/SimpleSelect";
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ const SORT_LABELS = {
6
+ asc: "Ascending",
7
+ desc: "Descending"
8
+ };
9
+ const SORT_OPTIONS = [{
10
+ key: "asc",
11
+ label: SORT_LABELS.asc
12
+ }, {
13
+ key: "desc",
14
+ label: SORT_LABELS.desc
15
+ }];
16
+ const ChooseSort = props => {
17
+ const {
18
+ sort,
19
+ onChange
20
+ } = props;
21
+ const handleChange = e => {
22
+ onChange(sort, {
23
+ operator: e?.target?.value
24
+ });
25
+ };
26
+ return /*#__PURE__*/_jsx(Box, {
27
+ sx: {
28
+ width: "120px"
29
+ },
30
+ className: "tv-cf",
31
+ children: /*#__PURE__*/_jsx(SimpleSelect, {
32
+ value: sort?.operator,
33
+ options: SORT_OPTIONS,
34
+ handleChange: handleChange
35
+ })
36
+ });
37
+ };
38
+ export default ChooseSort;