@flozy/editor 9.6.4 → 9.6.5

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