@flozy/editor 9.3.6 → 9.3.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 (265) hide show
  1. package/dist/Editor/ChatEditor.js +16 -52
  2. package/dist/Editor/CommonEditor.js +23 -133
  3. package/dist/Editor/DialogWrapper.js +25 -31
  4. package/dist/Editor/Editor.css +9 -19
  5. package/dist/Editor/Elements/AI/AIInput.js +3 -5
  6. package/dist/Editor/Elements/AI/CustomSelect.js +5 -9
  7. package/dist/Editor/Elements/AI/PopoverAIInput.js +2 -4
  8. package/dist/Editor/Elements/Accordion/Accordion.js +3 -4
  9. package/dist/Editor/Elements/Accordion/AccordionBtnPopup.js +1 -4
  10. package/dist/Editor/Elements/Accordion/AccordionButton.js +2 -6
  11. package/dist/Editor/Elements/Accordion/AccordionTitlePopup.js +1 -4
  12. package/dist/Editor/Elements/AppHeader/AppHeader.js +3 -3
  13. package/dist/Editor/Elements/AppHeader/AppHeaderButton.js +2 -6
  14. package/dist/Editor/Elements/AppHeader/AppHeaderPopup.js +1 -4
  15. package/dist/Editor/Elements/Attachments/AttachmentsButton.js +1 -4
  16. package/dist/Editor/Elements/Button/ButtonPopup.js +1 -4
  17. package/dist/Editor/Elements/Button/ButtonToolIcon.js +2 -6
  18. package/dist/Editor/Elements/Button/EditorButton.js +14 -31
  19. package/dist/Editor/Elements/Carousel/Carousel.js +4 -5
  20. package/dist/Editor/Elements/Carousel/CarouselButton.js +2 -6
  21. package/dist/Editor/Elements/Carousel/CarouselItem.js +2 -3
  22. package/dist/Editor/Elements/ChipText/ChipTextPopup.js +1 -4
  23. package/dist/Editor/Elements/CodeToText/CodeToText.js +4 -5
  24. package/dist/Editor/Elements/CodeToText/HtmlContextMenu.js +2 -6
  25. package/dist/Editor/Elements/Color Picker/ColorButtons.js +14 -60
  26. package/dist/Editor/Elements/Color Picker/ColorPicker.css +1 -25
  27. package/dist/Editor/Elements/Color Picker/ColorPicker.js +4 -4
  28. package/dist/Editor/Elements/Color Picker/Styles.js +3 -3
  29. package/dist/Editor/Elements/Colorbox/ColorboxButton.js +2 -6
  30. package/dist/Editor/Elements/DataView/DataView.js +2 -5
  31. package/dist/Editor/Elements/DataView/DataViewButton.js +2 -6
  32. package/dist/Editor/Elements/DataView/Layouts/ColumnView.js +1 -4
  33. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/Select.js +3 -4
  34. package/dist/Editor/Elements/DataView/Layouts/DataTypes/MultiSelectType.js +5 -23
  35. package/dist/Editor/Elements/DataView/Layouts/DataTypes/TextType.js +2 -7
  36. package/dist/Editor/Elements/DataView/Layouts/FilterSort/SortOptions/ChooseSort.js +12 -13
  37. package/dist/Editor/Elements/DataView/Layouts/FilterSort/SortOptions/index.js +4 -7
  38. package/dist/Editor/Elements/DataView/Layouts/FilterSort/index.js +5 -7
  39. package/dist/Editor/Elements/DataView/Layouts/FilterView.js +7 -9
  40. package/dist/Editor/Elements/DataView/Layouts/Options/AddOptions.js +3 -8
  41. package/dist/Editor/Elements/DataView/Layouts/Options/AddProperty.js +3 -5
  42. package/dist/Editor/Elements/DataView/Layouts/Options/AllProperties.js +5 -6
  43. package/dist/Editor/Elements/DataView/Layouts/Options/ChangeProperty.js +3 -5
  44. package/dist/Editor/Elements/DataView/Layouts/Options/EditOption.js +7 -9
  45. package/dist/Editor/Elements/DataView/Layouts/Options/EditProperty.js +38 -64
  46. package/dist/Editor/Elements/DataView/Layouts/Options/FilterProperty.js +2 -3
  47. package/dist/Editor/Elements/DataView/Layouts/Options/PropertyList.js +2 -3
  48. package/dist/Editor/Elements/DataView/Layouts/Options/index.js +6 -23
  49. package/dist/Editor/Elements/DataView/Layouts/TableStyles.js +1 -4
  50. package/dist/Editor/Elements/DataView/Layouts/TableView.js +4 -6
  51. package/dist/Editor/Elements/DataView/Layouts/index.js +1 -3
  52. package/dist/Editor/Elements/DataView/Providers/DataViewProvider.js +2 -5
  53. package/dist/Editor/Elements/Divider/Divider.js +3 -5
  54. package/dist/Editor/Elements/Divider/DividerButton.js +2 -6
  55. package/dist/Editor/Elements/Divider/DividerPopup.js +2 -3
  56. package/dist/Editor/Elements/Embed/Embed.js +1 -4
  57. package/dist/Editor/Elements/Embed/EmbedPopup.js +1 -4
  58. package/dist/Editor/Elements/Embed/Image.js +12 -18
  59. package/dist/Editor/Elements/Embed/Video.js +7 -10
  60. package/dist/Editor/Elements/EmbedScript/Code.js +4 -7
  61. package/dist/Editor/Elements/EmbedScript/EmbedScript.js +2 -6
  62. package/dist/Editor/Elements/EmbedScript/EmbedScriptPopup.js +5 -8
  63. package/dist/Editor/Elements/Emoji/EmojiButton.js +2 -6
  64. package/dist/Editor/Elements/Form/FieldPopup.js +1 -4
  65. package/dist/Editor/Elements/Form/Form.js +9 -12
  66. package/dist/Editor/Elements/Form/FormButton.js +2 -6
  67. package/dist/Editor/Elements/Form/FormPopup.js +2 -3
  68. package/dist/Editor/Elements/Form/Workflow/FormWorkflow.js +12 -18
  69. package/dist/Editor/Elements/Form/Workflow/ListWorkflow.js +8 -13
  70. package/dist/Editor/Elements/Form/Workflow/MoreOptions.js +2 -3
  71. package/dist/Editor/Elements/Form/Workflow/UserInputs.js +2 -4
  72. package/dist/Editor/Elements/Form/Workflow/index.js +9 -15
  73. package/dist/Editor/Elements/FreeGrid/FreeGrid.js +25 -63
  74. package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +4 -22
  75. package/dist/Editor/Elements/FreeGrid/FreeGridButton.js +2 -6
  76. package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +5 -34
  77. package/dist/Editor/Elements/FreeGrid/Options/AddElement.js +2 -3
  78. package/dist/Editor/Elements/FreeGrid/Options/More.js +4 -10
  79. package/dist/Editor/Elements/FreeGrid/styles.js +0 -3
  80. package/dist/Editor/Elements/Grid/Grid.js +10 -13
  81. package/dist/Editor/Elements/Grid/GridButton.js +5 -9
  82. package/dist/Editor/Elements/Grid/GridItem.js +8 -14
  83. package/dist/Editor/Elements/Grid/GridItemPopup.js +1 -4
  84. package/dist/Editor/Elements/Grid/GridPopup.js +1 -4
  85. package/dist/Editor/Elements/Grid/SectionPopup.js +1 -4
  86. package/dist/Editor/Elements/Link/Link.js +7 -14
  87. package/dist/Editor/Elements/Link/LinkButton.js +1 -4
  88. package/dist/Editor/Elements/List/CheckList.js +9 -14
  89. package/dist/Editor/Elements/NewLine/NewLineButton.js +2 -6
  90. package/dist/Editor/Elements/PageSettings/PageSettingsButton.js +5 -16
  91. package/dist/Editor/Elements/PageSettings/PageSettingsPopup.js +1 -4
  92. package/dist/Editor/Elements/Search/SearchButton.js +3 -6
  93. package/dist/Editor/Elements/Search/SearchList.js +3 -7
  94. package/dist/Editor/Elements/Signature/SignatureButton.js +2 -6
  95. package/dist/Editor/Elements/Signature/SignatureOptions/TypeSignature.js +2 -6
  96. package/dist/Editor/Elements/Signature/SignatureOptions/UploadSignature.js +1 -4
  97. package/dist/Editor/Elements/Signature/SignaturePopup.js +16 -17
  98. package/dist/Editor/Elements/SimpleText/index.js +4 -5
  99. package/dist/Editor/Elements/SimpleText/style.js +2 -2
  100. package/dist/Editor/Elements/Table/DragButton.js +2 -4
  101. package/dist/Editor/Elements/Table/Table.js +25 -48
  102. package/dist/Editor/Elements/Table/TableCell.js +27 -10
  103. package/dist/Editor/Elements/Table/TablePopup.js +1 -4
  104. package/dist/Editor/Elements/Table/TableSelector.js +6 -10
  105. package/dist/Editor/Elements/Table/TableTool.js +4 -8
  106. package/dist/Editor/Elements/Title/title.js +0 -10
  107. package/dist/Editor/Elements/TopBanner/TopBannerButton.js +1 -4
  108. package/dist/Editor/Elements/Variables/VariableButton.js +1 -10
  109. package/dist/Editor/MiniEditor.js +3 -10
  110. package/dist/Editor/Styles/EditorStyles.js +5 -5
  111. package/dist/Editor/Toolbar/Basic/index.js +1 -2
  112. package/dist/Editor/Toolbar/FormatTools/BlockButton.js +2 -6
  113. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +3 -27
  114. package/dist/Editor/Toolbar/FormatTools/FontFamilyAutocomplete.js +3 -4
  115. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +4 -8
  116. package/dist/Editor/Toolbar/FormatTools/TextSize.js +13 -7
  117. package/dist/Editor/Toolbar/Mini/MiniToolbar.js +15 -20
  118. package/dist/Editor/Toolbar/PopupTool/AddTemplates.js +5 -10
  119. package/dist/Editor/Toolbar/PopupTool/ButtonTemplatesCard.js +4 -10
  120. package/dist/Editor/Toolbar/PopupTool/FullViewCard.js +4 -10
  121. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/MiniColorPicker.js +2 -6
  122. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectAlignment.js +35 -42
  123. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +13 -6
  124. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectList.js +51 -58
  125. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectSuperSubscript.js +22 -29
  126. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +87 -226
  127. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +7 -15
  128. package/dist/Editor/Toolbar/PopupTool/PopperHeader.js +4 -8
  129. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +9 -16
  130. package/dist/Editor/Toolbar/PopupTool/TemplateCard.js +5 -11
  131. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +44 -126
  132. package/dist/Editor/Toolbar/PopupTool/index.js +17 -6
  133. package/dist/Editor/Toolbar/Toolbar.js +10 -20
  134. package/dist/Editor/Toolbar/toolbarGroups.js +6 -48
  135. package/dist/Editor/assets/svg/CalenderIconTick.js +0 -1
  136. package/dist/Editor/common/ColorPickerButton.js +10 -45
  137. package/dist/Editor/common/CustomDialog/index.js +10 -8
  138. package/dist/Editor/common/CustomDialog/styles.js +1 -1
  139. package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
  140. package/dist/Editor/common/FontLoader/FontLoader.js +0 -3
  141. package/dist/Editor/common/Icon.js +1 -46
  142. package/dist/Editor/common/ImageSelector/ImageSelector.js +8 -10
  143. package/dist/Editor/common/ImageSelector/Options/AddLink.js +4 -6
  144. package/dist/Editor/common/ImageSelector/Options/Upload.js +1 -1
  145. package/dist/Editor/common/ImageSelector/Styles.js +9 -3
  146. package/dist/Editor/common/ImageSelector/UploadStyles.js +9 -9
  147. package/dist/Editor/common/LinkSettings/NavComponents.js +10 -14
  148. package/dist/Editor/common/LinkSettings/index.js +14 -20
  149. package/dist/Editor/common/LinkSettings/navOptions.js +1 -1
  150. package/dist/Editor/common/MentionsPopup/Styles.js +73 -111
  151. package/dist/Editor/common/MentionsPopup/index.js +4 -8
  152. package/dist/Editor/common/RnD/ContextMenu/CMenus.js +22 -22
  153. package/dist/Editor/common/RnD/ContextMenu/index.js +2 -3
  154. package/dist/Editor/common/RnD/ElementOptions/index.js +2 -7
  155. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/SaveAsTemplate.js +3 -8
  156. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Settings.js +3 -7
  157. package/dist/Editor/common/RnD/ElementSettings/Settings/AppHeaderSettings.js +2 -3
  158. package/dist/Editor/common/RnD/ElementSettings/Settings/BoxSettings.js +2 -3
  159. package/dist/Editor/common/RnD/ElementSettings/Settings/ButtonSettings.js +2 -3
  160. package/dist/Editor/common/RnD/ElementSettings/Settings/CodeSettings.js +2 -3
  161. package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +4 -7
  162. package/dist/Editor/common/RnD/ElementSettings/Settings/ImageSettings.js +2 -3
  163. package/dist/Editor/common/RnD/ElementSettings/Settings/TableSettings.js +2 -3
  164. package/dist/Editor/common/RnD/ElementSettings/Settings/TextSettings.js +2 -6
  165. package/dist/Editor/common/RnD/ElementSettings/Settings/VideoSettings.js +2 -3
  166. package/dist/Editor/common/RnD/ElementSettings/styles.js +1 -0
  167. package/dist/Editor/common/RnD/OptionsPopup/index.js +3 -4
  168. package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +4 -11
  169. package/dist/Editor/common/RnD/Theme/ViewportStimulator.js +8 -20
  170. package/dist/Editor/common/RnD/Utils/gridDropItem.js +7 -58
  171. package/dist/Editor/common/RnD/Utils/index.js +0 -48
  172. package/dist/Editor/common/RnD/VirtualElement/index.js +104 -186
  173. package/dist/Editor/common/RnD/VirtualElement/styles.js +8 -95
  174. package/dist/Editor/common/RnD/VirtualElement/updateAutoProps.js +3 -5
  175. package/dist/Editor/common/RnD/index.js +10 -82
  176. package/dist/Editor/common/Section/index.js +4 -7
  177. package/dist/Editor/common/Shorthands/elements.js +10 -98
  178. package/dist/Editor/common/StyleBuilder/appHeaderStyle.js +4 -4
  179. package/dist/Editor/common/StyleBuilder/boxStyle.js +2 -2
  180. package/dist/Editor/common/StyleBuilder/buttonStyle.js +4 -6
  181. package/dist/Editor/common/StyleBuilder/dividerStyles.js +2 -2
  182. package/dist/Editor/common/StyleBuilder/embedVideoStyle.js +6 -6
  183. package/dist/Editor/common/StyleBuilder/fieldStyle.js +2 -2
  184. package/dist/Editor/common/StyleBuilder/fieldTypes/alignment.js +9 -13
  185. package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +3 -11
  186. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +5 -19
  187. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +10 -22
  188. package/dist/Editor/common/StyleBuilder/fieldTypes/buttonLink.js +3 -6
  189. package/dist/Editor/common/StyleBuilder/fieldTypes/card.js +13 -27
  190. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +14 -41
  191. package/dist/Editor/common/StyleBuilder/fieldTypes/elementSize.js +6 -10
  192. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +6 -19
  193. package/dist/Editor/common/StyleBuilder/fieldTypes/gridSize.js +2 -6
  194. package/dist/Editor/common/StyleBuilder/fieldTypes/icons.js +2 -5
  195. package/dist/Editor/common/StyleBuilder/fieldTypes/menusArray.js +6 -9
  196. package/dist/Editor/common/StyleBuilder/fieldTypes/metaDataMapping.js +2 -8
  197. package/dist/Editor/common/StyleBuilder/fieldTypes/saveAsTemplate.js +11 -12
  198. package/dist/Editor/common/StyleBuilder/fieldTypes/selectBox.js +2 -6
  199. package/dist/Editor/common/StyleBuilder/fieldTypes/text.js +4 -8
  200. package/dist/Editor/common/StyleBuilder/fieldTypes/textAlign.js +2 -6
  201. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +12 -21
  202. package/dist/Editor/common/StyleBuilder/formStyle.js +7 -7
  203. package/dist/Editor/common/StyleBuilder/gridItemStyle.js +6 -6
  204. package/dist/Editor/common/StyleBuilder/gridStyle.js +5 -5
  205. package/dist/Editor/common/StyleBuilder/index.js +5 -8
  206. package/dist/Editor/common/StyleBuilder/pageSettingsStyle.js +7 -5
  207. package/dist/Editor/common/Uploader.js +5 -16
  208. package/dist/Editor/commonStyle.js +23 -13
  209. package/dist/Editor/helper/index.js +12 -8
  210. package/dist/Editor/helper/theme.js +2 -200
  211. package/dist/Editor/hooks/useDrag.js +11 -17
  212. package/dist/Editor/hooks/useEditorScroll.js +6 -10
  213. package/dist/Editor/hooks/useMouseMove.js +13 -28
  214. package/dist/Editor/hooks/useTable.js +2 -5
  215. package/dist/Editor/plugins/withEmbeds.js +1 -1
  216. package/dist/Editor/plugins/withHTML.js +15 -19
  217. package/dist/Editor/plugins/withLayout.js +2 -3
  218. package/dist/Editor/plugins/withTable.js +1 -1
  219. package/dist/Editor/theme/ThemeList.js +173 -50
  220. package/dist/Editor/utils/SlateUtilityFunctions.js +47 -171
  221. package/dist/Editor/utils/button.js +2 -7
  222. package/dist/Editor/utils/chatEditor/SlateUtilityFunctions.js +0 -23
  223. package/dist/Editor/utils/dataView.js +2 -5
  224. package/dist/Editor/utils/divider.js +2 -18
  225. package/dist/Editor/utils/draftToSlate.js +2 -3
  226. package/dist/Editor/utils/embed.js +4 -9
  227. package/dist/Editor/utils/font.js +37 -40
  228. package/dist/Editor/utils/freegrid.js +2 -2
  229. package/dist/Editor/utils/helper.js +29 -136
  230. package/dist/Editor/utils/signature.js +2 -5
  231. package/dist/Editor/utils/table.js +37 -53
  232. package/package.json +2 -2
  233. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/MultiSelect.js +0 -422
  234. package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +0 -441
  235. package/dist/Editor/assets/svg/ClearAllRounded.js +0 -31
  236. package/dist/Editor/assets/svg/ThemeIcons.js +0 -291
  237. package/dist/Editor/common/CustomColorPicker/index.js +0 -125
  238. package/dist/Editor/common/CustomColorPicker/style.js +0 -53
  239. package/dist/Editor/common/CustomDialog2/index.js +0 -94
  240. package/dist/Editor/common/CustomDialog2/style.js +0 -67
  241. package/dist/Editor/common/CustomSelect.js +0 -33
  242. package/dist/Editor/common/RnD/Theme/MainThemeProvider.js +0 -17
  243. package/dist/Editor/common/RnD/VirtualElement/ForceAutoAlignment.js +0 -110
  244. package/dist/Editor/common/RnD/VirtualElement/VirtualTextElement.js +0 -112
  245. package/dist/Editor/common/RnD/VirtualElement/helper.js +0 -267
  246. package/dist/Editor/common/SnackBar/index.js +0 -43
  247. package/dist/Editor/helper/textIndeces.js +0 -58
  248. package/dist/Editor/hooks/useAutoScroll.js +0 -38
  249. package/dist/Editor/hooks/useEditorTheme.js +0 -153
  250. package/dist/Editor/theme/index.js +0 -144
  251. package/dist/Editor/themeSettings/ActiveTheme.js +0 -72
  252. package/dist/Editor/themeSettings/buttons/index.js +0 -285
  253. package/dist/Editor/themeSettings/buttons/style.js +0 -23
  254. package/dist/Editor/themeSettings/colorTheme/index.js +0 -297
  255. package/dist/Editor/themeSettings/colorTheme/style.js +0 -81
  256. package/dist/Editor/themeSettings/fonts/PreviewElement.js +0 -121
  257. package/dist/Editor/themeSettings/fonts/index.js +0 -222
  258. package/dist/Editor/themeSettings/fonts/style.js +0 -59
  259. package/dist/Editor/themeSettings/icons.js +0 -60
  260. package/dist/Editor/themeSettings/index.js +0 -328
  261. package/dist/Editor/themeSettings/style.js +0 -193
  262. package/dist/Editor/themeSettingsAI/icons.js +0 -96
  263. package/dist/Editor/themeSettingsAI/index.js +0 -355
  264. package/dist/Editor/themeSettingsAI/saveTheme.js +0 -215
  265. package/dist/Editor/themeSettingsAI/style.js +0 -250
@@ -1,422 +0,0 @@
1
- import React, { useEffect, useState } from "react";
2
- import { Autocomplete, Box, Chip, Divider, Popover, TextField, Typography, List, ListItem, ListItemButton, IconButton, SwipeableDrawer, Tooltip } from "@mui/material";
3
- import { CloseIcon } from "../../../../../common/iconslist";
4
- import { useEditorContext } from "../../../../../hooks/useMouseMove";
5
- import Icon from "../../../../../common/Icon";
6
- import { colors } from "../../../../Color Picker/defaultColors";
7
- import PropertySettings from "../../Options";
8
- import SnackbarAlert from "../../../../../common/SnackBar";
9
- import ClearAllRounded from "../../../../../assets/svg/ClearAllRounded";
10
- import { jsx as _jsx } from "react/jsx-runtime";
11
- import { jsxs as _jsxs } from "react/jsx-runtime";
12
- const EXCLUDED_COLORS = new Set(["#000000", "#0F172A", "#2563EB", "#FFFFFF", "#64748B"]);
13
- const DEFAULT_COLORS = colors?.filter(f => !f?.includes("linear") && !EXCLUDED_COLORS?.has(f));
14
- const generateRandomColor = () => {
15
- const randomIndex = Math.floor(Math.random() * DEFAULT_COLORS?.length);
16
- return DEFAULT_COLORS[randomIndex];
17
- };
18
- const MultiSelectWithPopover = props => {
19
- const {
20
- options = [],
21
- value,
22
- onChange,
23
- onUpdate,
24
- property,
25
- wrapColumn = false
26
- } = props;
27
- const [anchorEl, setAnchorEl] = useState(null);
28
- const [anchorElOption, setAnchorElOption] = useState(null);
29
- const [currentIndex, setCurrentIndex] = useState(null);
30
- const [selectedOptions, setSelectedOptions] = useState(value);
31
- const [availableOptions, setAvailableOptions] = useState(options);
32
- const [showSnackBar, setShowSnackBar] = useState(false);
33
- const [chipColor, setChipColor] = useState(generateRandomColor());
34
- const [inputValue, setInputValue] = useState("");
35
- const {
36
- theme
37
- } = useEditorContext();
38
- const isMobile = window.matchMedia("(max-width: 899px)")?.matches || false;
39
- const PopoverComponent = isMobile ? SwipeableDrawer : Popover;
40
- const mode = {
41
- type: "editOptionMulti",
42
- edit: {
43
- label: "Multi Select",
44
- visible: true,
45
- key: property,
46
- type: "multi-select",
47
- options: options || [],
48
- optionIndex: currentIndex,
49
- hideBackButton: true
50
- }
51
- };
52
- const customScrollStyles = {
53
- scrollbarWidth: "thin",
54
- scrollbarColor: `${theme?.palette?.editor?.brainPopupScroll} transparent`,
55
- "&::-webkit-scrollbar": {
56
- width: "6px"
57
- },
58
- "&::-webkit-scrollbar-thumb": {
59
- backgroundColor: theme?.palette?.editor?.brainPopupScroll,
60
- borderRadius: "3px"
61
- },
62
- "&::-webkit-scrollbar-track": {
63
- display: "none"
64
- }
65
- };
66
- useEffect(() => {
67
- if (inputValue?.trim()) {
68
- setChipColor(prevColor => prevColor || generateRandomColor());
69
- } else {
70
- setChipColor(generateRandomColor());
71
- }
72
- }, [inputValue]);
73
- useEffect(() => {
74
- setAvailableOptions(options);
75
- }, [options]);
76
- const handleOpenPopover = event => {
77
- setAnchorEl(event.currentTarget);
78
- };
79
- const handleClosePopover = () => {
80
- setAnchorEl(null);
81
- };
82
- const handleAddOption = newValue => {
83
- const trimmedValue = newValue?.trim();
84
- if (!trimmedValue) return;
85
- const newOption = {
86
- value: trimmedValue,
87
- color: chipColor
88
- };
89
- if (!availableOptions?.some(opt => opt?.value === trimmedValue)) {
90
- setAvailableOptions(prev => [...prev, newOption]);
91
- setSelectedOptions(prev => [...prev, newOption]);
92
- onUpdate([newOption, ...availableOptions]);
93
- }
94
- setInputValue("");
95
- };
96
- const onClose = () => {
97
- setAnchorEl(anchorElOption);
98
- setAnchorElOption(null);
99
- };
100
- const onEditOption = (type, data) => {
101
- const updateData = data?.edit ? data?.edit?.options : data?.options;
102
- onUpdate(updateData);
103
- if (data?.edit?.options) {
104
- const updatedSelectedOptions = selectedOptions?.filter(selOption => updateData?.some(availOption => availOption?.value === selOption?.value && availOption?.color === selOption?.color));
105
- setSelectedOptions(updatedSelectedOptions);
106
- onClose();
107
- }
108
- };
109
- const handleEditOption = (e, index) => {
110
- e.stopPropagation();
111
- setCurrentIndex(index);
112
- setAnchorElOption(anchorEl);
113
- setAnchorEl(null);
114
- };
115
- const handleSelectOption = option => {
116
- if (!selectedOptions?.some(opt => opt?.value === option?.value)) {
117
- setSelectedOptions(prev => [...prev, option]);
118
- onChange(selectedOptions);
119
- } else {
120
- setShowSnackBar(true);
121
- }
122
- };
123
- const handleClearSelection = () => {
124
- setSelectedOptions([]);
125
- };
126
- const filteredOptions = availableOptions?.filter(option => option?.value?.toLowerCase()?.includes(inputValue?.toLowerCase()));
127
- const isExactMatch = availableOptions?.some(opt => opt?.value?.toLowerCase() === inputValue?.toLowerCase());
128
- const open = Boolean(anchorEl);
129
- const openEditOption = Boolean(anchorElOption);
130
- const id = open ? "autocomplete-popover" : undefined;
131
- return /*#__PURE__*/_jsxs("div", {
132
- children: [/*#__PURE__*/_jsx(Box, {
133
- sx: {
134
- display: "flex",
135
- flexWrap: wrapColumn ? "wrap" : "nowrap",
136
- overflowX: wrapColumn ? "hidden" : "auto",
137
- gap: 0.5,
138
- padding: "8px",
139
- cursor: "pointer"
140
- },
141
- onClick: handleOpenPopover,
142
- children: selectedOptions?.map((option, index) => /*#__PURE__*/_jsx(Chip, {
143
- label: option?.value,
144
- onDelete: () => setSelectedOptions(prev => prev.filter(selected => selected?.value !== option?.value)),
145
- deleteIcon: /*#__PURE__*/_jsx(CloseIcon, {}),
146
- variant: "filled",
147
- sx: {
148
- backgroundColor: option?.color,
149
- color: '#0F172A',
150
- "& .MuiChip-deleteIcon": {
151
- flexShrink: 0,
152
- "& path": {
153
- stroke: '#0F172A'
154
- }
155
- },
156
- "&:hover": {
157
- opacity: 0.8
158
- }
159
- }
160
- }, index))
161
- }), /*#__PURE__*/_jsx(PopoverComponent, {
162
- id: id,
163
- open: open,
164
- anchorEl: anchorEl,
165
- onClose: handleClosePopover,
166
- anchorOrigin: {
167
- vertical: "top",
168
- horizontal: "left"
169
- },
170
- transformOrigin: {
171
- vertical: "top",
172
- horizontal: "left"
173
- },
174
- sx: {
175
- "& .MuiPaper-root": {
176
- borderRadius: "20px",
177
- background: theme?.palette?.editor?.background,
178
- border: `1px solid ${theme?.palette?.editor?.popUpBorderColor}`,
179
- boxShadow: "0px 4px 10px 0px #00000029"
180
- }
181
- },
182
- children: /*#__PURE__*/_jsxs(Box, {
183
- sx: {
184
- width: 300
185
- },
186
- children: [/*#__PURE__*/_jsx(Autocomplete, {
187
- multiple: true,
188
- freeSolo: true,
189
- disablePortal: true,
190
- PopperComponent: () => null,
191
- sx: {
192
- "& .MuiFormControl-root": {
193
- maxHeight: "250px",
194
- overflowY: "auto",
195
- overflowX: "hidden",
196
- pr: '12px',
197
- pl: '12px',
198
- maxWidth: "275px",
199
- marginTop: '12px',
200
- ...customScrollStyles
201
- }
202
- },
203
- disableClearable: true,
204
- options: [],
205
- getOptionLabel: option => options?.value || "",
206
- value: selectedOptions,
207
- onChange: (event, newValues) => {
208
- // Filter and map the new values properly
209
- const addedOptions = newValues?.filter(value => typeof value === "object" || typeof value === "string" && value?.trim() !== "")?.map(value => typeof value === "string" ? {
210
- value,
211
- color: chipColor
212
- } : value);
213
-
214
- // Check if any new value already exists in selectedOptions
215
- const isDuplicate = addedOptions?.some(newOpt => (selectedOptions || [])?.some(opt => opt.value === newOpt.value));
216
- if (!isDuplicate) {
217
- setSelectedOptions([...selectedOptions, ...addedOptions]);
218
- }
219
- },
220
- inputValue: inputValue,
221
- onInputChange: (event, newInputValue) => setInputValue(newInputValue),
222
- onKeyDown: event => {
223
- if (event.key === "Enter" && inputValue.trim()) {
224
- event.preventDefault();
225
- handleAddOption(inputValue);
226
- }
227
- },
228
- filterOptions: (options, params) => options?.filter(option => option?.value?.toLowerCase()?.includes(params?.inputValue?.toLowerCase())),
229
- renderInput: params => /*#__PURE__*/_jsx(TextField, {
230
- ...params,
231
- variant: "standard",
232
- InputProps: {
233
- ...params.InputProps,
234
- disableUnderline: true,
235
- sx: {
236
- display: "flex",
237
- flexWrap: "wrap",
238
- fontFamily: "Inter",
239
- fontWeight: 400,
240
- fontSize: "12px",
241
- color: theme?.palette?.editor?.secondaryTextColor,
242
- "&::placeholder": {
243
- color: theme?.palette?.editor?.secondaryTextColor
244
- },
245
- "& .MuiAutocomplete-input": {
246
- minWidth: "100px !important"
247
- }
248
- },
249
- endAdornment: /*#__PURE__*/_jsx(Tooltip, {
250
- arrow: true,
251
- title: "Clear Selected",
252
- children: /*#__PURE__*/_jsx(IconButton, {
253
- onClick: handleClearSelection,
254
- sx: {
255
- padding: 0,
256
- minWidth: "unset",
257
- "& .MuiSvgIcon-root": {
258
- fontSize: 20
259
- },
260
- '& rect': {
261
- fill: theme?.palette?.editor?.closeButtonSvgStroke
262
- },
263
- '&:hover': {
264
- backgroundColor: 'transparent'
265
- }
266
- },
267
- children: /*#__PURE__*/_jsx(ClearAllRounded, {})
268
- })
269
- })
270
- },
271
- sx: {
272
- backgroundColor: "transparent",
273
- fontFamily: 'Inter',
274
- fontWeight: 400,
275
- fontSize: '12px'
276
- },
277
- placeholder: "Create new one..."
278
- }),
279
- renderTags: (tagValues, getTagProps) => tagValues.map((option, index) => /*#__PURE__*/_jsx(Chip, {
280
- variant: "filled",
281
- label: option?.value,
282
- ...getTagProps({
283
- index
284
- }),
285
- deleteIcon: /*#__PURE__*/_jsx(CloseIcon, {}),
286
- sx: {
287
- backgroundColor: option?.color,
288
- color: '#0F172A',
289
- // maxWidth: 200,
290
- // overflow: "hidden",
291
- // textOverflow: "ellipsis",
292
- // whiteSpace: "nowrap",
293
- "& .MuiChip-deleteIcon": {
294
- flexShrink: 0,
295
- "& path": {
296
- stroke: '#0F172A'
297
- }
298
- },
299
- "&:hover": {
300
- opacity: 0.8
301
- }
302
- }
303
- }, index))
304
- }), /*#__PURE__*/_jsx(Divider, {
305
- sx: {
306
- mt: '12px',
307
- borderBottom: `1px solid ${theme?.palette?.editor?.popUpBorderColor}`,
308
- boxShadow: theme?.palette?.editor?.dividerDropShadow
309
- }
310
- }), /*#__PURE__*/_jsx(Box, {
311
- sx: {
312
- pl: '4px'
313
- },
314
- children: /*#__PURE__*/_jsxs(List, {
315
- sx: {
316
- maxHeight: "250px",
317
- overflowY: "auto",
318
- ...customScrollStyles
319
- },
320
- children: [/*#__PURE__*/_jsx(Typography, {
321
- sx: {
322
- mb: 1,
323
- pl: '8px',
324
- color: theme?.palette?.editor?.secondaryTextColor,
325
- fontFamily: 'Inter',
326
- fontWeight: 400,
327
- fontSize: '12px'
328
- },
329
- children: "Choose an option or create one"
330
- }), filteredOptions?.map((option, index) => /*#__PURE__*/_jsx(ListItem, {
331
- disablePadding: true,
332
- children: /*#__PURE__*/_jsxs(ListItemButton, {
333
- onClick: () => handleSelectOption(option),
334
- sx: {
335
- justifyContent: 'space-between',
336
- '&:hover': {
337
- '& path': {
338
- stroke: theme?.palette?.editor?.activeColor
339
- },
340
- borderRadius: '12px'
341
- }
342
- },
343
- children: [/*#__PURE__*/_jsx(Chip, {
344
- label: option?.value,
345
- sx: {
346
- backgroundColor: option?.color,
347
- color: '#0F172A',
348
- fontWeight: 500,
349
- fontSize: "12px",
350
- fontFamily: "Inter",
351
- padding: "4px 12px",
352
- borderRadius: "16px",
353
- maxWidth: "180px",
354
- whiteSpace: "nowrap",
355
- overflow: "hidden",
356
- textOverflow: "ellipsis"
357
- }
358
- }), /*#__PURE__*/_jsx(IconButton, {
359
- size: "small",
360
- sx: {
361
- '& path': {
362
- stroke: theme?.palette?.editor?.closeButtonSvgStroke
363
- },
364
- '&:hover': {
365
- backgroundColor: 'transparent'
366
- }
367
- },
368
- onClick: e => handleEditOption(e, index),
369
- children: /*#__PURE__*/_jsx(Icon, {
370
- icon: "rightArrow"
371
- })
372
- })]
373
- })
374
- }, index)), inputValue?.trim() && !isExactMatch && /*#__PURE__*/_jsx(ListItem, {
375
- disablePadding: true,
376
- children: /*#__PURE__*/_jsxs(ListItemButton, {
377
- onClick: () => handleAddOption(inputValue),
378
- sx: {
379
- display: "flex",
380
- alignItems: "center"
381
- },
382
- children: [/*#__PURE__*/_jsx(Typography, {
383
- sx: {
384
- color: theme?.palette?.editor?.secondaryTextColor,
385
- marginRight: "6px",
386
- fontSize: "14px",
387
- fontFamily: "Inter"
388
- },
389
- children: "Create"
390
- }), /*#__PURE__*/_jsx(Chip, {
391
- label: `${inputValue}`,
392
- sx: {
393
- backgroundColor: chipColor,
394
- color: '#0F172A',
395
- fontWeight: 500,
396
- fontSize: "12px",
397
- fontFamily: "Inter",
398
- borderRadius: "16px",
399
- maxWidth: "180px",
400
- whiteSpace: "nowrap",
401
- overflow: "hidden",
402
- textOverflow: "ellipsis"
403
- }
404
- })]
405
- })
406
- })]
407
- })
408
- })]
409
- })
410
- }), openEditOption ? /*#__PURE__*/_jsx(PropertySettings, {
411
- open: openEditOption,
412
- anchorEl: anchorElOption,
413
- mode: mode,
414
- onClose: onClose,
415
- onEvent: onEditOption
416
- }) : null, showSnackBar ? /*#__PURE__*/_jsx(SnackbarAlert, {
417
- message: "Option already selected!",
418
- setShowSnackBar: setShowSnackBar
419
- }) : null]
420
- });
421
- };
422
- export default MultiSelectWithPopover;