@flozy/editor 3.6.3 → 3.6.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (34) hide show
  1. package/dist/Editor/ChatEditor.js +195 -0
  2. package/dist/Editor/Elements/AppHeader/AppHeader.js +12 -14
  3. package/dist/Editor/Elements/Button/EditorButton.js +9 -4
  4. package/dist/Editor/Elements/ChipText/ChipText.js +3 -3
  5. package/dist/Editor/Elements/Embed/Frames/ImageFrame.js +1 -0
  6. package/dist/Editor/Elements/Emoji/EmojiButton.js +2 -2
  7. package/dist/Editor/Elements/Emoji/EmojiPicker.js +16 -0
  8. package/dist/Editor/Elements/Form/Workflow/UserInputs.js +2 -1
  9. package/dist/Editor/Elements/Grid/Grid.js +1 -1
  10. package/dist/Editor/Elements/Grid/GridItem.js +1 -1
  11. package/dist/Editor/Elements/InlineIcon/InlineIcon.js +2 -3
  12. package/dist/Editor/Elements/Link/Link.js +6 -1
  13. package/dist/Editor/Elements/Link/LinkButton.js +4 -2
  14. package/dist/Editor/Elements/Link/LinkPopup.js +11 -3
  15. package/dist/Editor/Elements/Link/LinkPopupStyles.js +28 -0
  16. package/dist/Editor/Elements/List/CheckList.js +6 -2
  17. package/dist/Editor/Elements/Table/TableCell.js +1 -1
  18. package/dist/Editor/MiniEditor.js +3 -1
  19. package/dist/Editor/Styles/EditorStyles.js +3 -2
  20. package/dist/Editor/Toolbar/Basic/index.js +4 -2
  21. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +4 -2
  22. package/dist/Editor/Toolbar/PopupTool/index.js +9 -2
  23. package/dist/Editor/common/LinkSettings/NavComponents.js +20 -54
  24. package/dist/Editor/common/MUIIcon/index.js +49 -0
  25. package/dist/Editor/common/StyleBuilder/fieldTypes/icons.js +12 -28
  26. package/dist/Editor/common/StyleBuilder/fieldTypes/loadIcon.js +13 -0
  27. package/dist/Editor/common/StyleBuilder/fieldTypes/mui_filled_icons.js +2 -0
  28. package/dist/Editor/helper/index.js +15 -0
  29. package/dist/Editor/hooks/useMouseMove.js +12 -5
  30. package/dist/Editor/utils/chatEditor/SlateUtilityFunctions.js +361 -0
  31. package/dist/Editor/utils/helper.js +10 -33
  32. package/dist/Editor/utils/serializeToHTML.js +25 -13
  33. package/dist/index.js +5 -1
  34. package/package.json +4 -4
@@ -32,6 +32,11 @@ const PopupTool = props => {
32
32
  const id = open ? "popup-edit-tool" : "";
33
33
  const table = new TableUtil(editor);
34
34
  const [size] = useWindowResize();
35
+ useEffect(() => {
36
+ if (!inFocus) {
37
+ setAnchorEl(null);
38
+ }
39
+ }, [inFocus]);
35
40
  useEffect(() => {
36
41
  if (event === "end" && anchorEl && !open) {
37
42
  // for table cell selection
@@ -86,7 +91,8 @@ const PopupTool = props => {
86
91
  editor: editor,
87
92
  classes: classes,
88
93
  closeMainPopup: handleClose,
89
- customProps: customProps
94
+ customProps: customProps,
95
+ theme: theme
90
96
  })
91
97
  }) : /*#__PURE__*/_jsx(Popper, {
92
98
  id: id,
@@ -108,7 +114,8 @@ const PopupTool = props => {
108
114
  editor: editor,
109
115
  classes: classes,
110
116
  closeMainPopup: handleClose,
111
- customProps: customProps
117
+ customProps: customProps,
118
+ theme: theme
112
119
  })
113
120
  })
114
121
  })
@@ -1,24 +1,8 @@
1
1
  import { Autocomplete, Checkbox, FormControlLabel, MenuItem, Select, TextField, Typography, createFilterOptions } from "@mui/material";
2
2
  import { useEffect, useMemo, useState } from "react";
3
- import { useSlate } from "slate-react";
4
3
  import { jsx as _jsx } from "react/jsx-runtime";
5
4
  import { Fragment as _Fragment } from "react/jsx-runtime";
6
5
  import { jsxs as _jsxs } from "react/jsx-runtime";
7
- const sectionTypes = ["grid"];
8
- const loopChildren = (children = [], sections) => {
9
- if (!children?.length) {
10
- return sections;
11
- }
12
- for (let child of children) {
13
- if (sectionTypes.includes(child?.type)) {
14
- if (child.id) {
15
- sections.push(child.id);
16
- }
17
- }
18
- sections = loopChildren(child.children, sections);
19
- }
20
- return sections;
21
- };
22
6
  const OpenInNewTab = props => {
23
7
  const {
24
8
  nav,
@@ -58,35 +42,21 @@ export const SelectPage = props => {
58
42
  services
59
43
  } = props;
60
44
  const [pages, setPages] = useState([]);
61
- const editor = useSlate();
62
45
  const getPages = async () => {
63
46
  const result = await services("getPages", {});
64
- if (result?.data?.length) {
65
- const refactor = result?.data?.map(r => {
66
- const {
67
- title,
68
- url_name,
69
- ...rest
70
- } = r;
71
- return {
72
- label: url_name,
73
- value: url_name,
74
- ...rest
75
- };
76
- });
77
- setPages(refactor);
78
- } else {
79
- const currentPage = {
80
- label: "Current Page",
81
- value: "_currentPage",
82
- is_current_page: 1,
83
- sections: loopChildren(editor.children, [])
47
+ const refactor = result?.data?.map(r => {
48
+ const {
49
+ title,
50
+ url_name,
51
+ ...rest
52
+ } = r;
53
+ return {
54
+ label: url_name,
55
+ value: url_name,
56
+ ...rest
84
57
  };
85
- setPages([currentPage]);
86
- if (!value) {
87
- onChange(currentPage.value);
88
- }
89
- }
58
+ });
59
+ setPages(refactor);
90
60
  };
91
61
  useEffect(() => {
92
62
  getPages();
@@ -106,14 +76,12 @@ export const SelectPage = props => {
106
76
  }
107
77
  return [];
108
78
  }, [value, pages]);
109
- const isCurrentPage = page?.value === "_currentPage";
110
79
  return /*#__PURE__*/_jsxs("div", {
111
80
  children: [/*#__PURE__*/_jsx(FreeSoloCreateOption, {
112
81
  label: page?.label,
113
- setValue: val => onChange(val?.value || ""),
82
+ setValue: val => onChange(val?.value),
114
83
  placeholder: "Select Page",
115
- options: pages,
116
- disabled: isCurrentPage
84
+ options: pages
117
85
  }), /*#__PURE__*/_jsx(FreeSoloCreateOption, {
118
86
  label: section?.label,
119
87
  setValue: val => {
@@ -128,7 +96,7 @@ export const SelectPage = props => {
128
96
  label: p,
129
97
  value: p
130
98
  }))
131
- }), isCurrentPage ? null : /*#__PURE__*/_jsx(OpenInNewTab, {
99
+ }), /*#__PURE__*/_jsx(OpenInNewTab, {
132
100
  ...props
133
101
  })]
134
102
  });
@@ -181,8 +149,7 @@ export function FreeSoloCreateOption({
181
149
  label,
182
150
  setValue,
183
151
  options = [],
184
- placeholder = "",
185
- disabled = false
152
+ placeholder = ""
186
153
  }) {
187
154
  return /*#__PURE__*/_jsx(Autocomplete, {
188
155
  freeSolo: true,
@@ -197,7 +164,7 @@ export function FreeSoloCreateOption({
197
164
  children: option.label
198
165
  }),
199
166
  onChange: (event, newValue) => {
200
- if (typeof newValue === "string") {
167
+ if (typeof newValue === 'string') {
201
168
  setValue({
202
169
  value: newValue
203
170
  });
@@ -222,7 +189,7 @@ export function FreeSoloCreateOption({
222
189
  } = params;
223
190
  // Suggest the creation of a new value
224
191
  const isExisting = options.some(option => inputValue === option.label);
225
- if (inputValue !== "" && !isExisting) {
192
+ if (inputValue !== '' && !isExisting) {
226
193
  filtered.push({
227
194
  inputValue,
228
195
  label: `Add "${inputValue}"`
@@ -235,7 +202,7 @@ export function FreeSoloCreateOption({
235
202
  handleHomeEndKeys: true,
236
203
  getOptionLabel: option => {
237
204
  // Value selected with enter, right from the input
238
- if (typeof option === "string") {
205
+ if (typeof option === 'string') {
239
206
  return option;
240
207
  }
241
208
  // Add "xxx" option created dynamically
@@ -247,7 +214,6 @@ export function FreeSoloCreateOption({
247
214
  },
248
215
  sx: {
249
216
  marginTop: "10px"
250
- },
251
- disabled: disabled
217
+ }
252
218
  });
253
219
  }
@@ -0,0 +1,49 @@
1
+ import React, { useEffect, useState } from "react";
2
+ import { Box } from "@mui/material";
3
+ import { jsx as _jsx } from "react/jsx-runtime";
4
+ const iconLoader = async iconName => {
5
+ const iconAPI = process.env.ICON_API;
6
+ try {
7
+ const iconResponse = await fetch(`${iconAPI}/${iconName}`);
8
+ const icon = await iconResponse.text();
9
+ return icon;
10
+ } catch (error) {
11
+ console.error(`Icon "${iconName}" could not be loaded.`, error);
12
+ return null; // Or return a default fallback icon
13
+ }
14
+ };
15
+
16
+ const DynamicIcon = ({
17
+ iconName,
18
+ ...props
19
+ }) => {
20
+ const [icon, setIcon] = useState("");
21
+ useEffect(() => {
22
+ let mounted = true;
23
+ iconLoader(iconName).then(iconHTML => {
24
+ if (mounted) {
25
+ setIcon(iconHTML);
26
+ }
27
+ });
28
+ return () => {
29
+ mounted = false;
30
+ };
31
+ }, [iconName]);
32
+ if (!icon) {
33
+ return null; // Or return a placeholder/spinner
34
+ }
35
+
36
+ return /*#__PURE__*/_jsx(Box, {
37
+ sx: {
38
+ display: "flex",
39
+ width: "auto",
40
+ height: "auto",
41
+ paddingLeft: "4px",
42
+ paddingRight: "4px"
43
+ },
44
+ dangerouslySetInnerHTML: {
45
+ __html: icon
46
+ }
47
+ });
48
+ };
49
+ export default DynamicIcon;
@@ -1,29 +1,10 @@
1
1
  import React, { useState } from "react";
2
2
  import { Grid, IconButton, TextField, Tooltip } from "@mui/material";
3
- import * as fIcons from "@mui/icons-material";
3
+ import MUIIcon from "./loadIcon";
4
+ import MUIFilledIcons from "./mui_filled_icons";
4
5
  import { jsx as _jsx } from "react/jsx-runtime";
5
6
  import { jsxs as _jsxs } from "react/jsx-runtime";
6
7
  import { Fragment as _Fragment } from "react/jsx-runtime";
7
- const MUIIcons = Object.keys(fIcons).reduce((a, b) => {
8
- if (b.indexOf("Outlined") > -1) {
9
- a.outlined.push(b);
10
- } else if (b.indexOf("Rounded") > -1) {
11
- a.rounded.push(b);
12
- } else if (b.indexOf("Sharp") > -1) {
13
- a.sharp.push(b);
14
- } else if (b.indexOf("TwoTone") > -1) {
15
- a.tt.push(b);
16
- } else {
17
- a.filled.push(b);
18
- }
19
- return a;
20
- }, {
21
- filled: [],
22
- outlined: [],
23
- rounded: [],
24
- tt: [],
25
- sharp: []
26
- });
27
8
  const Icons = props => {
28
9
  const {
29
10
  value,
@@ -34,7 +15,7 @@ const Icons = props => {
34
15
  key
35
16
  } = data;
36
17
  const [val, setVal] = useState("");
37
- const [list, setList] = useState(MUIIcons.filled.slice(0, 90));
18
+ const [list, setList] = useState(MUIFilledIcons.slice(0, 90));
38
19
  const onSelectIcon = ico => () => {
39
20
  onChange({
40
21
  [key]: ico
@@ -44,11 +25,11 @@ const Icons = props => {
44
25
  const keyVal = e.target.value?.toLowerCase();
45
26
  setVal(keyVal);
46
27
  if (keyVal) {
47
- setList(MUIIcons.filled.filter(f => {
28
+ setList(MUIFilledIcons.filter(f => {
48
29
  return f.toLowerCase().indexOf(keyVal) > -1;
49
30
  }).slice(0, 90));
50
31
  } else {
51
- setList(MUIIcons.filled.slice(0, 90));
32
+ setList(MUIFilledIcons.slice(0, 90));
52
33
  }
53
34
  };
54
35
  const onRemoveIcon = () => {
@@ -56,7 +37,7 @@ const Icons = props => {
56
37
  [key]: null
57
38
  });
58
39
  };
59
- const SelectedIcon = value ? fIcons[value] : null;
40
+ const SelectedIcon = value ? value : null;
60
41
  return /*#__PURE__*/_jsxs(_Fragment, {
61
42
  children: [/*#__PURE__*/_jsx(Grid, {
62
43
  item: true,
@@ -92,7 +73,9 @@ const Icons = props => {
92
73
  arrow: true,
93
74
  children: /*#__PURE__*/_jsx(IconButton, {
94
75
  onClick: onRemoveIcon,
95
- children: /*#__PURE__*/_jsx(SelectedIcon, {})
76
+ children: /*#__PURE__*/_jsx(MUIIcon, {
77
+ iconName: value
78
+ })
96
79
  })
97
80
  }) : ""
98
81
  })]
@@ -107,13 +90,14 @@ const Icons = props => {
107
90
  paddingTop: "5px"
108
91
  },
109
92
  children: list.map(m => {
110
- const Ico = fIcons[m];
111
93
  return /*#__PURE__*/_jsx(Tooltip, {
112
94
  title: m,
113
95
  arrow: true,
114
96
  children: /*#__PURE__*/_jsx(IconButton, {
115
97
  onClick: onSelectIcon(m),
116
- children: /*#__PURE__*/_jsx(Ico, {})
98
+ children: /*#__PURE__*/_jsx(MUIIcon, {
99
+ iconName: m
100
+ })
117
101
  })
118
102
  }, `mui_ico_${m}`);
119
103
  })
@@ -0,0 +1,13 @@
1
+ import React from "react";
2
+ import DynamicIcon from "../../MUIIcon";
3
+ import { jsx as _jsx } from "react/jsx-runtime";
4
+ const MUIIcon = ({
5
+ iconName,
6
+ ...rest
7
+ }) => {
8
+ return /*#__PURE__*/_jsx(DynamicIcon, {
9
+ iconName: iconName,
10
+ ...rest
11
+ });
12
+ };
13
+ export default MUIIcon;
@@ -0,0 +1,2 @@
1
+ const MUIFilledIcons = ["Abc", "AcUnit", "AccessAlarm", "AccessAlarms", "AccessTime", "AccessTimeFilled", "Accessibility", "AccessibilityNew", "Accessible", "AccessibleForward", "AccountBalance", "AccountBalanceWallet", "AccountBox", "AccountCircle", "AccountTree", "AdUnits", "Adb", "Add", "AddAPhoto", "AddAlarm", "AddAlert", "AddBox", "AddBusiness", "AddCard", "AddCircle", "AddCircleOutline", "AddComment", "AddHome", "AddHomeWork", "AddIcCall", "AddLink", "AddLocation", "AddLocationAlt", "AddModerator", "AddPhotoAlternate", "AddReaction", "AddRoad", "AddShoppingCart", "AddTask", "AddToDrive", "AddToHomeScreen", "AddToPhotos", "AddToQueue", "Addchart", "AdfScanner", "Adjust", "AdminPanelSettings", "AdsClick", "Agriculture", "Air", "AirlineSeatFlat", "AirlineSeatFlatAngled", "AirlineSeatIndividualSuite", "AirlineSeatLegroomExtra", "AirlineSeatLegroomNormal", "AirlineSeatLegroomReduced", "AirlineSeatReclineExtra", "AirlineSeatReclineNormal", "AirlineStops", "Airlines", "AirplaneTicket", "AirplanemodeActive", "AirplanemodeInactive", "Airplay", "AirportShuttle", "Alarm", "AlarmAdd", "AlarmOff", "AlarmOn", "Album", "AlignHorizontalCenter", "AlignHorizontalLeft", "AlignHorizontalRight", "AlignVerticalBottom", "AlignVerticalCenter", "AlignVerticalTop", "AllInbox", "AllInclusive", "AllOut", "AltRoute", "AlternateEmail", "Analytics", "Anchor", "Android", "Animation", "Announcement", "Aod", "Apartment", "Api", "AppBlocking", "AppRegistration", "AppSettingsAlt", "AppShortcut", "Apple", "Approval", "Apps", "AppsOutage", "Architecture", "Archive", "ArrowBack", "ArrowBackIos", "ArrowBackIosNew", "ArrowCircleDown", "ArrowCircleLeft", "ArrowCircleRight", "ArrowCircleUp", "ArrowDownward", "ArrowDropDown", "ArrowDropDownCircle", "ArrowDropUp", "ArrowForward", "ArrowForwardIos", "ArrowLeft", "ArrowOutward", "ArrowRight", "ArrowRightAlt", "ArrowUpward", "ArtTrack", "Article", "AspectRatio", "Assessment", "Assignment", "AssignmentInd", "AssignmentLate", "AssignmentReturn", "AssignmentReturned", "AssignmentTurnedIn", "AssistWalker", "Assistant", "AssistantDirection", "AssistantPhoto", "AssuredWorkload", "Atm", "AttachEmail", "AttachFile", "AttachMoney", "Attachment", "Attractions", "Attribution", "AudioFile", "Audiotrack", "AutoAwesome", "AutoAwesomeMosaic", "AutoAwesomeMotion", "AutoDelete", "AutoFixHigh", "AutoFixNormal", "AutoFixOff", "AutoGraph", "AutoMode", "AutoStories", "AutofpsSelect", "Autorenew", "AvTimer", "BabyChangingStation", "BackHand", "Backpack", "Backspace", "Backup", "BackupTable", "Badge", "BakeryDining", "Balance", "Balcony", "Ballot", "BarChart", "BatchPrediction", "Bathroom", "Bathtub", "Battery0Bar", "Battery1Bar", "Battery20", "Battery2Bar", "Battery30", "Battery3Bar", "Battery4Bar", "Battery50", "Battery5Bar", "Battery60", "Battery6Bar", "Battery80", "Battery90", "BatteryAlert", "BatteryCharging20", "BatteryCharging30", "BatteryCharging50", "BatteryCharging60", "BatteryCharging80", "BatteryCharging90", "BatteryChargingFull", "BatteryFull", "BatterySaver", "BatteryStd", "BatteryUnknown", "BeachAccess", "Bed", "BedroomBaby", "BedroomChild", "BedroomParent", "Bedtime", "BedtimeOff", "Beenhere", "Bento", "BikeScooter", "Biotech", "Blender", "Blind", "Blinds", "BlindsClosed", "Block", "Bloodtype", "Bluetooth", "BluetoothAudio", "BluetoothConnected", "BluetoothDisabled", "BluetoothDrive", "BluetoothSearching", "BlurCircular", "BlurLinear", "BlurOff", "BlurOn", "Bolt", "Book", "BookOnline", "Bookmark", "BookmarkAdd", "BookmarkAdded", "BookmarkBorder", "BookmarkRemove", "Bookmarks", "BorderAll", "BorderBottom", "BorderClear", "BorderColor", "BorderHorizontal", "BorderInner", "BorderLeft", "BorderOuter", "BorderRight", "BorderStyle", "BorderTop", "BorderVertical", "Boy", "BrandingWatermark", "BreakfastDining", "Brightness1", "Brightness2", "Brightness3", "Brightness4", "Brightness5", "Brightness6", "Brightness7", "BrightnessAuto", "BrightnessHigh", "BrightnessLow", "BrightnessMedium", "BroadcastOnHome", "BroadcastOnPersonal", "BrokenImage", "BrowseGallery", "BrowserNotSupported", "BrowserUpdated", "BrunchDining", "Brush", "BubbleChart", "BugReport", "Build", "BuildCircle", "Bungalow", "BurstMode", "BusAlert", "Business", "BusinessCenter", "Cabin", "Cable", "Cached", "Cake", "Calculate", "CalendarMonth", "CalendarToday", "CalendarViewDay", "CalendarViewMonth", "CalendarViewWeek", "Call", "CallEnd", "CallMade", "CallMerge", "CallMissed", "CallMissedOutgoing", "CallReceived", "CallSplit", "CallToAction", "Camera", "CameraAlt", "CameraEnhance", "CameraFront", "CameraIndoor", "CameraOutdoor", "CameraRear", "CameraRoll", "Cameraswitch", "Campaign", "Cancel", "CancelPresentation", "CancelScheduleSend", "CandlestickChart", "CarCrash", "CarRental", "CarRepair", "CardGiftcard", "CardMembership", "CardTravel", "Carpenter", "Cases", "Casino", "Cast", "CastConnected", "CastForEducation", "Castle", "CatchingPokemon", "Category", "Celebration", "CellTower", "CellWifi", "CenterFocusStrong", "CenterFocusWeak", "Chair", "ChairAlt", "Chalet", "ChangeCircle", "ChangeHistory", "ChargingStation", "Chat", "ChatBubble", "ChatBubbleOutline", "Check", "CheckBox", "CheckBoxOutlineBlank", "CheckCircle", "CheckCircleOutline", "Checklist", "ChecklistRtl", "Checkroom", "ChevronLeft", "ChevronRight", "ChildCare", "ChildFriendly", "ChromeReaderMode", "Church", "Circle", "CircleNotifications", "Class", "CleanHands", "CleaningServices", "Clear", "ClearAll", "Close", "CloseFullscreen", "ClosedCaption", "ClosedCaptionDisabled", "ClosedCaptionOff", "Cloud", "CloudCircle", "CloudDone", "CloudDownload", "CloudOff", "CloudQueue", "CloudSync", "CloudUpload", "Co2", "CoPresent", "Code", "CodeOff", "Coffee", "CoffeeMaker", "Collections", "CollectionsBookmark", "ColorLens", "Colorize", "Comment", "CommentBank", "CommentsDisabled", "Commit", "Commute", "Compare", "CompareArrows", "CompassCalibration", "Compress", "Computer", "ConfirmationNumber", "ConnectWithoutContact", "ConnectedTv", "ConnectingAirports", "Construction", "ContactEmergency", "ContactMail", "ContactPage", "ContactPhone", "ContactSupport", "Contactless", "Contacts", "ContentCopy", "ContentCut", "ContentPaste", "ContentPasteGo", "ContentPasteOff", "ContentPasteSearch", "Contrast", "ControlCamera", "ControlPoint", "ControlPointDuplicate", "Cookie", "CopyAll", "Copyright", "Coronavirus", "CorporateFare", "Cottage", "Countertops", "Create", "CreateNewFolder", "CreditCard", "CreditCardOff", "CreditScore", "Crib", "CrisisAlert", "Crop", "Crop169", "Crop32", "Crop54", "Crop75", "CropDin", "CropFree", "CropLandscape", "CropOriginal", "CropPortrait", "CropRotate", "CropSquare", "Css", "CurrencyBitcoin", "CurrencyExchange", "CurrencyFranc", "CurrencyLira", "CurrencyPound", "CurrencyRuble", "CurrencyRupee", "CurrencyYen", "CurrencyYuan", "Curtains", "CurtainsClosed", "Cyclone", "Dangerous", "DarkMode", "Dashboard", "DashboardCustomize", "DataArray", "DataObject", "DataSaverOff", "DataSaverOn", "DataThresholding", "DataUsage", "Dataset", "DatasetLinked", "DateRange", "Deblur", "Deck", "Dehaze", "Delete", "DeleteForever", "DeleteOutline", "DeleteSweep", "DeliveryDining", "DensityLarge", "DensityMedium", "DensitySmall", "DepartureBoard", "Description", "Deselect", "DesignServices", "Desk", "DesktopAccessDisabled", "DesktopMac", "DesktopWindows", "Details", "DeveloperBoard", "DeveloperBoardOff", "DeveloperMode", "DeviceHub", "DeviceThermostat", "DeviceUnknown", "Devices", "DevicesFold", "DevicesOther", "DialerSip", "Dialpad", "Diamond", "Difference", "Dining", "DinnerDining", "Directions", "DirectionsBike", "DirectionsBoat", "DirectionsBoatFilled", "DirectionsBus", "DirectionsBusFilled", "DirectionsCar", "DirectionsCarFilled", "DirectionsOff", "DirectionsRailway", "DirectionsRailwayFilled", "DirectionsRun", "DirectionsSubway", "DirectionsSubwayFilled", "DirectionsTransit", "DirectionsTransitFilled", "DirectionsWalk", "DirtyLens", "DisabledByDefault", "DiscFull", "Discount", "DisplaySettings", "Diversity1", "Diversity2", "Diversity3", "Dns", "DoDisturb", "DoDisturbAlt", "DoDisturbOff", "DoDisturbOn", "DoNotDisturb", "DoNotDisturbAlt", "DoNotDisturbOff", "DoNotDisturbOn", "DoNotDisturbOnTotalSilence", "DoNotStep", "DoNotTouch", "Dock", "DocumentScanner", "Domain", "DomainAdd", "DomainDisabled", "DomainVerification", "Done", "DoneAll", "DoneOutline", "DonutLarge", "DonutSmall", "DoorBack", "DoorFront", "DoorSliding", "Doorbell", "DoubleArrow", "DownhillSkiing", "Download", "DownloadDone", "DownloadForOffline", "Downloading", "Drafts", "DragHandle", "DragIndicator", "Draw", "DriveEta", "DriveFileMove", "DriveFileRenameOutline", "DriveFolderUpload", "Dry", "DryCleaning", "Duo", "Dvr", "DynamicFeed", "DynamicForm", "EMobiledata", "Earbuds", "EarbudsBattery", "East", "EdgesensorHigh", "EdgesensorLow", "Edit", "EditAttributes", "EditCalendar", "EditLocation", "EditLocationAlt", "EditNote", "EditNotifications", "EditOff", "EditRoad", "Egg", "EggAlt", "EightK", "EightKPlus", "EightMp", "EighteenMp", "EighteenUpRating", "EightteenMp", "Eject", "Elderly", "ElderlyWoman", "ElectricBike", "ElectricBolt", "ElectricCar", "ElectricMeter", "ElectricMoped", "ElectricRickshaw", "ElectricScooter", "ElectricalServices", "Elevator", "ElevenMp", "Email", "EmergencyRecording", "EmergencyShare", "EmojiEmotions", "EmojiEvents", "EmojiFlags", "EmojiFoodBeverage", "EmojiNature", "EmojiObjects", "EmojiPeople", "EmojiSymbols", "EmojiTransportation", "EnergySavingsLeaf", "Engineering", "EnhancedEncryption", "Equalizer", "Error", "ErrorOutline", "Escalator", "EscalatorWarning", "Euro", "EuroSymbol", "EvStation", "Event", "EventAvailable", "EventBusy", "EventNote", "EventRepeat", "EventSeat", "ExitToApp", "Expand", "ExpandCircleDown", "ExpandLess", "ExpandMore", "Explicit", "Explore", "ExploreOff", "Exposure", "Extension", "ExtensionOff", "Face", "Face2", "Face3", "Face4", "Face5", "Face6", "FaceRetouchingNatural", "FaceRetouchingOff", "Facebook", "FactCheck", "Factory", "FamilyRestroom", "FastForward", "FastRewind", "Fastfood", "Favorite", "FavoriteBorder", "Fax", "FeaturedPlayList", "FeaturedVideo", "Feed", "Feedback", "Female", "Fence", "Festival", "FiberDvr", "FiberManualRecord", "FiberNew", "FiberPin", "FiberSmartRecord", "FifteenMp", "FileCopy", "FileDownload", "FileDownloadDone", "FileDownloadOff", "FileOpen", "FilePresent", "FileUpload", "Filter", "Filter1", "Filter2", "Filter3", "Filter4", "Filter5", "Filter6", "Filter7", "Filter8", "Filter9", "Filter9Plus", "FilterAlt", "FilterAltOff", "FilterBAndW", "FilterCenterFocus", "FilterDrama", "FilterFrames", "FilterHdr", "FilterList", "FilterListOff", "FilterNone", "FilterTiltShift", "FilterVintage", "FindInPage", "FindReplace", "Fingerprint", "FireExtinguisher", "FireHydrantAlt", "FireTruck", "Fireplace", "FirstPage", "FitScreen", "Fitbit", "FitnessCenter", "FiveG", "FiveK", "FiveKPlus", "FiveMp", "FivteenMp", "Flag", "FlagCircle", "Flaky", "Flare", "FlashAuto", "FlashOff", "FlashOn", "FlashlightOff", "FlashlightOn", "Flatware", "Flight", "FlightClass", "FlightLand", "FlightTakeoff", "Flip", "FlipCameraAndroid", "FlipCameraIos", "FlipToBack", "FlipToFront", "Flood", "Fluorescent", "FlutterDash", "FmdBad", "FmdGood", "Folder", "FolderCopy", "FolderDelete", "FolderOff", "FolderOpen", "FolderShared", "FolderSpecial", "FolderZip", "FollowTheSigns", "FontDownload", "FontDownloadOff", "FoodBank", "Forest", "ForkLeft", "ForkRight", "FormatAlignCenter", "FormatAlignJustify", "FormatAlignLeft", "FormatAlignRight", "FormatBold", "FormatClear", "FormatColorFill", "FormatColorReset", "FormatColorText", "FormatIndentDecrease", "FormatIndentIncrease", "FormatItalic", "FormatLineSpacing", "FormatListBulleted", "FormatListNumbered", "FormatListNumberedRtl", "FormatOverline", "FormatPaint", "FormatQuote", "FormatShapes", "FormatSize", "FormatStrikethrough", "FormatTextdirectionLToR", "FormatTextdirectionRToL", "FormatUnderlined", "Fort", "Forum", "Forward", "Forward10", "Forward30", "Forward5", "ForwardToInbox", "Foundation", "FourGMobiledata", "FourGPlusMobiledata", "FourK", "FourKPlus", "FourMp", "FourteenMp", "FreeBreakfast", "Fullscreen", "FullscreenExit", "Functions", "GMobiledata", "GTranslate", "Gamepad", "Games", "Garage", "GasMeter", "Gavel", "Gesture", "GetApp", "Gif", "GifBox", "Girl", "GitHub", "Gite", "GolfCourse", "Google", "GppBad", "GppGood", "GppMaybe", "GpsFixed", "GpsNotFixed", "GpsOff", "Grade", "Gradient", "Grading", "Grain", "GraphicEq", "Grass", "Grid3x3", "Grid4x4", "GridGoldenratio", "GridOff", "GridOn", "GridView", "Group", "GroupAdd", "GroupRemove", "GroupWork", "Groups", "Groups2", "Groups3", "HMobiledata", "HPlusMobiledata", "Hail", "Handshake", "Handyman", "Hardware", "Hd", "HdrAuto", "HdrAutoSelect", "HdrEnhancedSelect", "HdrOff", "HdrOffSelect", "HdrOn", "HdrOnSelect", "HdrPlus", "HdrStrong", "HdrWeak", "Headphones", "HeadphonesBattery", "Headset", "HeadsetMic", "HeadsetOff", "Healing", "HealthAndSafety", "Hearing", "HearingDisabled", "HeartBroken", "HeatPump", "Height", "Help", "HelpCenter", "HelpOutline", "Hevc", "Hexagon", "HideImage", "HideSource", "HighQuality", "Highlight", "HighlightAlt", "HighlightOff", "Hiking", "History", "HistoryEdu", "HistoryToggleOff", "Hive", "Hls", "HlsOff", "HolidayVillage", "Home", "HomeMax", "HomeMini", "HomeRepairService", "HomeWork", "HorizontalRule", "HorizontalSplit", "HotTub", "Hotel", "HourglassBottom", "HourglassDisabled", "HourglassEmpty", "HourglassFull", "HourglassTop", "House", "HouseSiding", "Houseboat", "HowToReg", "HowToVote", "Html", "Http", "Https", "Hub", "Hvac", "IceSkating", "Icecream", "Image", "ImageAspectRatio", "ImageNotSupported", "ImageSearch", "ImagesearchRoller", "ImportContacts", "ImportExport", "ImportantDevices", "Inbox", "IndeterminateCheckBox", "Info", "Input", "InsertChart", "InsertComment", "InsertDriveFile", "InsertEmoticon", "InsertInvitation", "InsertLink", "InsertPageBreak", "InsertPhoto", "Insights", "Instagram", "InstallDesktop", "InstallMobile", "IntegrationInstructions", "Interests", "InterpreterMode", "Inventory", "Inventory2", "InvertColors", "InvertColorsOff", "IosShare", "Iron", "Iso", "Javascript", "JoinFull", "JoinInner", "JoinLeft", "JoinRight", "Kayaking", "KebabDining", "Key", "KeyOff", "Keyboard", "KeyboardAlt", "KeyboardArrowDown", "KeyboardArrowLeft", "KeyboardArrowRight", "KeyboardArrowUp", "KeyboardBackspace", "KeyboardCapslock", "KeyboardCommandKey", "KeyboardControlKey", "KeyboardDoubleArrowDown", "KeyboardDoubleArrowLeft", "KeyboardDoubleArrowRight", "KeyboardDoubleArrowUp", "KeyboardHide", "KeyboardOptionKey", "KeyboardReturn", "KeyboardTab", "KeyboardVoice", "KingBed", "Kitchen", "Kitesurfing", "Label", "LabelImportant", "LabelOff", "Lan", "Landscape", "Landslide", "Language", "Laptop", "LaptopChromebook", "LaptopMac", "LaptopWindows", "LastPage", "Launch", "Layers", "LayersClear", "Leaderboard", "LeakAdd", "LeakRemove", "LegendToggle", "Lens", "LensBlur", "LibraryAdd", "LibraryAddCheck", "LibraryBooks", "LibraryMusic", "Light", "LightMode", "Lightbulb", "LightbulbCircle", "LineAxis", "LineStyle", "LineWeight", "LinearScale", "Link", "LinkOff", "LinkedCamera", "LinkedIn", "Liquor", "List", "ListAlt", "LiveHelp", "LiveTv", "Living", "LocalActivity", "LocalAirport", "LocalAtm", "LocalBar", "LocalCafe", "LocalCarWash", "LocalConvenienceStore", "LocalDining", "LocalDrink", "LocalFireDepartment", "LocalFlorist", "LocalGasStation", "LocalGroceryStore", "LocalHospital", "LocalHotel", "LocalLaundryService", "LocalLibrary", "LocalMall", "LocalMovies", "LocalOffer", "LocalParking", "LocalPharmacy", "LocalPhone", "LocalPizza", "LocalPlay", "LocalPolice", "LocalPostOffice", "LocalPrintshop", "LocalSee", "LocalShipping", "LocalTaxi", "LocationCity", "LocationDisabled", "LocationOff", "LocationOn", "LocationSearching", "Lock", "LockClock", "LockOpen", "LockPerson", "LockReset", "Login", "LogoDev", "Logout", "Looks", "Looks3", "Looks4", "Looks5", "Looks6", "LooksOne", "LooksTwo", "Loop", "Loupe", "LowPriority", "Loyalty", "LteMobiledata", "LtePlusMobiledata", "Luggage", "LunchDining", "Lyrics", "MacroOff", "Mail", "MailLock", "MailOutline", "Male", "Man", "Man2", "Man3", "Man4", "ManageAccounts", "ManageHistory", "ManageSearch", "Map", "MapsHomeWork", "MapsUgc", "Margin", "MarkAsUnread", "MarkChatRead", "MarkChatUnread", "MarkEmailRead", "MarkEmailUnread", "MarkUnreadChatAlt", "Markunread", "MarkunreadMailbox", "Masks", "Maximize", "MediaBluetoothOff", "MediaBluetoothOn", "Mediation", "MedicalInformation", "MedicalServices", "Medication", "MedicationLiquid", "MeetingRoom", "Memory", "Menu", "MenuBook", "MenuOpen", "Merge", "MergeType", "Message", "Mic", "MicExternalOff", "MicExternalOn", "MicNone", "MicOff", "Microsoft", "Microwave", "MilitaryTech", "Minimize", "MinorCrash", "MiscellaneousServices", "MissedVideoCall", "Mms", "MobileFriendly", "MobileOff", "MobileScreenShare", "MobiledataOff", "Mode", "ModeComment", "ModeEdit", "ModeEditOutline", "ModeFanOff", "ModeNight", "ModeOfTravel", "ModeStandby", "ModelTraining", "MonetizationOn", "Money", "MoneyOff", "MoneyOffCsred", "Monitor", "MonitorHeart", "MonitorWeight", "MonochromePhotos", "Mood", "MoodBad", "Moped", "More", "MoreHoriz", "MoreTime", "MoreVert", "Mosque", "MotionPhotosAuto", "MotionPhotosOff", "Mouse", "MoveDown", "MoveToInbox", "MoveUp", "Movie", "MovieCreation", "MovieFilter", "Moving", "Mp", "MultilineChart", "MultipleStop", "Museum", "MusicNote", "MusicOff", "MusicVideo", "MyLocation", "Nat", "Nature", "NaturePeople", "NavigateBefore", "NavigateNext", "Navigation", "NearMe", "NearMeDisabled", "NearbyError", "NearbyOff", "NestCamWiredStand", "NetworkCell", "NetworkCheck", "NetworkLocked", "NetworkPing", "NetworkWifi", "NetworkWifi1Bar", "NetworkWifi2Bar", "NetworkWifi3Bar", "NewReleases", "Newspaper", "NextPlan", "NextWeek", "Nfc", "NightShelter", "Nightlife", "Nightlight", "NightlightRound", "NightsStay", "NineK", "NineKPlus", "NineMp", "NineteenMp", "NoAccounts", "NoAdultContent", "NoBackpack", "NoCell", "NoCrash", "NoDrinks", "NoEncryption", "NoEncryptionGmailerrorred", "NoFlash", "NoFood", "NoLuggage", "NoMeals", "NoMeetingRoom", "NoPhotography", "NoSim", "NoStroller", "NoTransfer", "NoiseAware", "NoiseControlOff", "NordicWalking", "North", "NorthEast", "NorthWest", "NotAccessible", "NotInterested", "NotListedLocation", "NotStarted", "Note", "NoteAdd", "NoteAlt", "Notes", "NotificationAdd", "NotificationImportant", "Notifications", "NotificationsActive", "NotificationsNone", "NotificationsOff", "NotificationsPaused", "Numbers", "OfflineBolt", "OfflinePin", "OfflineShare", "OilBarrel", "OnDeviceTraining", "OndemandVideo", "OneK", "OneKPlus", "OneKk", "OnlinePrediction", "Opacity", "OpenInBrowser", "OpenInFull", "OpenInNew", "OpenInNewOff", "OpenWith", "OtherHouses", "Outbound", "Outbox", "OutdoorGrill", "Outlet", "Output", "Padding", "Pages", "Pageview", "Paid", "Palette", "PanTool", "PanToolAlt", "Panorama", "PanoramaFishEye", "PanoramaHorizontal", "PanoramaHorizontalSelect", "PanoramaPhotosphere", "PanoramaPhotosphereSelect", "PanoramaVertical", "PanoramaVerticalSelect", "PanoramaWideAngle", "PanoramaWideAngleSelect", "Paragliding", "Park", "PartyMode", "Password", "Pattern", "Pause", "PauseCircle", "PauseCircleFilled", "PauseCircleOutline", "PausePresentation", "Payment", "Payments", "PedalBike", "Pending", "PendingActions", "Pentagon", "People", "PeopleAlt", "PeopleOutline", "Percent", "PermCameraMic", "PermContactCalendar", "PermDataSetting", "PermDeviceInformation", "PermIdentity", "PermMedia", "PermPhoneMsg", "PermScanWifi", "Person", "Person2", "Person3", "Person4", "PersonAdd", "PersonAddAlt", "PersonAddAlt1", "PersonAddDisabled", "PersonOff", "PersonOutline", "PersonPin", "PersonPinCircle", "PersonRemove", "PersonRemoveAlt1", "PersonSearch", "PersonalVideo", "PestControl", "PestControlRodent", "Pets", "Phishing", "Phone", "PhoneAndroid", "PhoneBluetoothSpeaker", "PhoneCallback", "PhoneDisabled", "PhoneEnabled", "PhoneForwarded", "PhoneInTalk", "PhoneIphone", "PhoneLocked", "PhoneMissed", "PhonePaused", "Phonelink", "PhonelinkErase", "PhonelinkLock", "PhonelinkOff", "PhonelinkRing", "PhonelinkSetup", "Photo", "PhotoAlbum", "PhotoCamera", "PhotoCameraBack", "PhotoCameraFront", "PhotoFilter", "PhotoLibrary", "PhotoSizeSelectActual", "PhotoSizeSelectLarge", "PhotoSizeSelectSmall", "Php", "Piano", "PianoOff", "PictureAsPdf", "PictureInPicture", "PictureInPictureAlt", "PieChart", "PieChartOutline", "Pin", "PinDrop", "Pinch", "Pinterest", "PivotTableChart", "Pix", "Place", "Plagiarism", "PlayArrow", "PlayCircle", "PlayCircleFilled", "PlayCircleFilledWhite", "PlayCircleOutline", "PlayDisabled", "PlayForWork", "PlayLesson", "PlaylistAdd", "PlaylistAddCheck", "PlaylistAddCheckCircle", "PlaylistAddCircle", "PlaylistPlay", "PlaylistRemove", "Plumbing", "PlusOne", "Podcasts", "PointOfSale", "Policy", "Poll", "Polyline", "Pool", "PortableWifiOff", "Portrait", "PostAdd", "Power", "PowerInput", "PowerOff", "PowerSettingsNew", "PrecisionManufacturing", "PregnantWoman", "PresentToAll", "Preview", "PriceChange", "PriceCheck", "Print", "PrintDisabled", "PriorityHigh", "PrivacyTip", "ProductionQuantityLimits", "Propane", "PropaneTank", "Psychology", "PsychologyAlt", "Public", "PublicOff", "Publish", "PublishedWithChanges", "PunchClock", "PushPin", "QrCode", "QrCode2", "QrCodeScanner", "QueryBuilder", "QueryStats", "QuestionAnswer", "QuestionMark", "Queue", "QueueMusic", "QueuePlayNext", "Quickreply", "Quiz", "RMobiledata", "Radar", "Radio", "RadioButtonChecked", "RadioButtonUnchecked", "RailwayAlert", "RamenDining", "RampLeft", "RampRight", "RateReview", "RawOff", "RawOn", "ReadMore", "Receipt", "ReceiptLong", "RecentActors", "Recommend", "RecordVoiceOver", "Rectangle", "Recycling", "Reddit", "Redeem", "Redo", "ReduceCapacity", "Refresh", "RememberMe", "Remove", "RemoveCircle", "RemoveCircleOutline", "RemoveDone", "RemoveFromQueue", "RemoveModerator", "RemoveRedEye", "RemoveRoad", "RemoveShoppingCart", "Reorder", "Repartition", "Repeat", "RepeatOn", "RepeatOne", "RepeatOneOn", "Replay", "Replay10", "Replay30", "Replay5", "ReplayCircleFilled", "Reply", "ReplyAll", "Report", "ReportGmailerrorred", "ReportOff", "ReportProblem", "RequestPage", "RequestQuote", "ResetTv", "RestartAlt", "Restaurant", "RestaurantMenu", "Restore", "RestoreFromTrash", "RestorePage", "Reviews", "RiceBowl", "RingVolume", "Rocket", "RocketLaunch", "RollerShades", "RollerShadesClosed", "RollerSkating", "Roofing", "Room", "RoomPreferences", "RoomService", "Rotate90DegreesCcw", "Rotate90DegreesCw", "RotateLeft", "RotateRight", "RoundaboutLeft", "RoundaboutRight", "Route", "Router", "Rowing", "RssFeed", "Rsvp", "Rtt", "Rule", "RuleFolder", "RunCircle", "RunningWithErrors", "RvHookup", "SafetyCheck", "SafetyDivider", "Sailing", "Sanitizer", "Satellite", "SatelliteAlt", "Save", "SaveAlt", "SaveAs", "SavedSearch", "Savings", "Scale", "Scanner", "ScatterPlot", "Schedule", "ScheduleSend", "Schema", "School", "Science", "Score", "Scoreboard", "ScreenLockLandscape", "ScreenLockPortrait", "ScreenLockRotation", "ScreenRotation", "ScreenRotationAlt", "ScreenSearchDesktop", "ScreenShare", "Screenshot", "ScreenshotMonitor", "ScubaDiving", "Sd", "SdCard", "SdCardAlert", "SdStorage", "Search", "SearchOff", "Security", "SecurityUpdate", "SecurityUpdateGood", "SecurityUpdateWarning", "Segment", "SelectAll", "SelfImprovement", "Sell", "Send", "SendAndArchive", "SendTimeExtension", "SendToMobile", "SensorDoor", "SensorOccupied", "SensorWindow", "Sensors", "SensorsOff", "SentimentDissatisfied", "SentimentNeutral", "SentimentSatisfied", "SentimentSatisfiedAlt", "SentimentVeryDissatisfied", "SentimentVerySatisfied", "SetMeal", "Settings", "SettingsAccessibility", "SettingsApplications", "SettingsBackupRestore", "SettingsBluetooth", "SettingsBrightness", "SettingsCell", "SettingsEthernet", "SettingsInputAntenna", "SettingsInputComponent", "SettingsInputComposite", "SettingsInputHdmi", "SettingsInputSvideo", "SettingsOverscan", "SettingsPhone", "SettingsPower", "SettingsRemote", "SettingsSuggest", "SettingsSystemDaydream", "SettingsVoice", "SevenK", "SevenKPlus", "SevenMp", "SeventeenMp", "SevereCold", "ShapeLine", "Share", "ShareLocation", "Shield", "ShieldMoon", "Shop", "Shop2", "ShopTwo", "ShoppingBag", "ShoppingBasket", "ShoppingCart", "ShoppingCartCheckout", "ShortText", "Shortcut", "ShowChart", "Shower", "Shuffle", "ShuffleOn", "ShutterSpeed", "Sick", "SignLanguage", "SignalCellular0Bar", "SignalCellular1Bar", "SignalCellular2Bar", "SignalCellular3Bar", "SignalCellular4Bar", "SignalCellularAlt", "SignalCellularAlt1Bar", "SignalCellularAlt2Bar", "SignalCellularConnectedNoInternet0Bar", "SignalCellularConnectedNoInternet1Bar", "SignalCellularConnectedNoInternet2Bar", "SignalCellularConnectedNoInternet3Bar", "SignalCellularConnectedNoInternet4Bar", "SignalCellularNoSim", "SignalCellularNodata", "SignalCellularNull", "SignalCellularOff", "SignalWifi0Bar", "SignalWifi1Bar", "SignalWifi1BarLock", "SignalWifi2Bar", "SignalWifi2BarLock", "SignalWifi3Bar", "SignalWifi3BarLock", "SignalWifi4Bar", "SignalWifi4BarLock", "SignalWifiBad", "SignalWifiConnectedNoInternet4", "SignalWifiOff", "SignalWifiStatusbar4Bar", "SignalWifiStatusbarConnectedNoInternet4", "SignalWifiStatusbarNull", "Signpost", "SimCard", "SimCardAlert", "SimCardDownload", "SingleBed", "Sip", "SixK", "SixKPlus", "SixMp", "SixteenMp", "SixtyFps", "SixtyFpsSelect", "Skateboarding", "SkipNext", "SkipPrevious", "Sledding", "Slideshow", "SlowMotionVideo", "SmartButton", "SmartDisplay", "SmartScreen", "SmartToy", "Smartphone", "SmokeFree", "SmokingRooms", "Sms", "SmsFailed", "SnippetFolder", "Snooze", "Snowboarding", "Snowmobile", "Snowshoeing", "Soap", "SocialDistance", "SolarPower", "Sort", "SortByAlpha", "Sos", "SoupKitchen", "Source", "South", "SouthAmerica", "SouthEast", "SouthWest", "Spa", "SpaceBar", "SpaceDashboard", "SpatialAudio", "SpatialAudioOff", "SpatialTracking", "Speaker", "SpeakerGroup", "SpeakerNotes", "SpeakerNotesOff", "SpeakerPhone", "Speed", "Spellcheck", "Splitscreen", "Spoke", "Sports", "SportsBar", "SportsBaseball", "SportsBasketball", "SportsCricket", "SportsEsports", "SportsFootball", "SportsGolf", "SportsGymnastics", "SportsHandball", "SportsHockey", "SportsKabaddi", "SportsMartialArts", "SportsMma", "SportsMotorsports", "SportsRugby", "SportsScore", "SportsSoccer", "SportsTennis", "SportsVolleyball", "Square", "SquareFoot", "SsidChart", "StackedBarChart", "StackedLineChart", "Stadium", "Stairs", "Star", "StarBorder", "StarBorderPurple500", "StarHalf", "StarOutline", "StarPurple500", "StarRate", "Stars", "Start", "StayCurrentLandscape", "StayCurrentPortrait", "StayPrimaryLandscape", "StayPrimaryPortrait", "StickyNote2", "Stop", "StopCircle", "StopScreenShare", "Storage", "Store", "StoreMallDirectory", "Storefront", "Storm", "Straight", "Straighten", "Stream", "Streetview", "StrikethroughS", "Stroller", "Style", "SubdirectoryArrowLeft", "SubdirectoryArrowRight", "Subject", "Subscript", "Subscriptions", "Subtitles", "SubtitlesOff", "Subway", "Summarize", "Superscript", "SupervisedUserCircle", "SupervisorAccount", "Support", "SupportAgent", "Surfing", "SurroundSound", "SwapCalls", "SwapHoriz", "SwapHorizontalCircle", "SwapVert", "SwapVerticalCircle", "Swipe", "SwipeDown", "SwipeDownAlt", "SwipeLeft", "SwipeLeftAlt", "SwipeRight", "SwipeRightAlt", "SwipeUp", "SwipeUpAlt", "SwipeVertical", "SwitchAccessShortcut", "SwitchAccessShortcutAdd", "SwitchAccount", "SwitchCamera", "SwitchLeft", "SwitchRight", "SwitchVideo", "Synagogue", "Sync", "SyncAlt", "SyncDisabled", "SyncLock", "SyncProblem", "SystemSecurityUpdate", "SystemSecurityUpdateGood", "SystemSecurityUpdateWarning", "SystemUpdate", "SystemUpdateAlt", "Tab", "TabUnselected", "TableBar", "TableChart", "TableRestaurant", "TableRows", "TableView", "Tablet", "TabletAndroid", "TabletMac", "Tag", "TagFaces", "TakeoutDining", "TapAndPlay", "Tapas", "Task", "TaskAlt", "TaxiAlert", "Telegram", "TempleBuddhist", "TempleHindu", "TenMp", "Terminal", "Terrain", "TextDecrease", "TextFields", "TextFormat", "TextIncrease", "TextRotateUp", "TextRotateVertical", "TextRotationAngledown", "TextRotationAngleup", "TextRotationDown", "TextRotationNone", "TextSnippet", "Textsms", "Texture", "TheaterComedy", "Theaters", "Thermostat", "ThermostatAuto", "ThirteenMp", "ThirtyFps", "ThirtyFpsSelect", "ThreeDRotation", "ThreeGMobiledata", "ThreeK", "ThreeKPlus", "ThreeMp", "ThreeP", "ThreeSixty", "ThumbDown", "ThumbDownAlt", "ThumbDownOffAlt", "ThumbUp", "ThumbUpAlt", "ThumbUpOffAlt", "ThumbsUpDown", "Thunderstorm", "TimeToLeave", "Timelapse", "Timeline", "Timer", "Timer10", "Timer10Select", "Timer3", "Timer3Select", "TimerOff", "TimesOneMobiledata", "TipsAndUpdates", "TireRepair", "Title", "Toc", "Today", "ToggleOff", "ToggleOn", "Token", "Toll", "Tonality", "Topic", "Tornado", "TouchApp", "Tour", "Toys", "TrackChanges", "Traffic", "Train", "Tram", "Transcribe", "TransferWithinAStation", "Transform", "Transgender", "TransitEnterexit", "Translate", "TravelExplore", "TrendingDown", "TrendingFlat", "TrendingUp", "TripOrigin", "Troubleshoot", "Try", "Tsunami", "Tty", "Tune", "Tungsten", "TurnLeft", "TurnRight", "TurnSlightLeft", "TurnSlightRight", "TurnedIn", "TurnedInNot", "Tv", "TvOff", "TwelveMp", "TwentyFourMp", "TwentyOneMp", "TwentyThreeMp", "TwentyTwoMp", "TwentyZeroMp", "Twitter", "TwoK", "TwoKPlus", "TwoMp", "TwoWheeler", "TypeSpecimen", "UTurnLeft", "UTurnRight", "Umbrella", "Unarchive", "Undo", "UnfoldLess", "UnfoldLessDouble", "UnfoldMore", "UnfoldMoreDouble", "Unpublished", "Unsubscribe", "Upcoming", "Update", "UpdateDisabled", "Upgrade", "Upload", "UploadFile", "Usb", "UsbOff", "Vaccines", "VapeFree", "VapingRooms", "Verified", "VerifiedUser", "VerticalAlignBottom", "VerticalAlignCenter", "VerticalAlignTop", "VerticalShades", "VerticalShadesClosed", "VerticalSplit", "Vibration", "VideoCall", "VideoCameraBack", "VideoCameraFront", "VideoChat", "VideoFile", "VideoLabel", "VideoLibrary", "VideoSettings", "VideoStable", "Videocam", "VideocamOff", "VideogameAsset", "VideogameAssetOff", "ViewAgenda", "ViewArray", "ViewCarousel", "ViewColumn", "ViewComfy", "ViewComfyAlt", "ViewCompact", "ViewCompactAlt", "ViewCozy", "ViewDay", "ViewHeadline", "ViewInAr", "ViewKanban", "ViewList", "ViewModule", "ViewQuilt", "ViewSidebar", "ViewStream", "ViewTimeline", "ViewWeek", "Vignette", "Villa", "Visibility", "VisibilityOff", "VoiceChat", "VoiceOverOff", "Voicemail", "Volcano", "VolumeDown", "VolumeMute", "VolumeOff", "VolumeUp", "VolunteerActivism", "VpnKey", "VpnKeyOff", "VpnLock", "Vrpano", "Wallet", "Wallpaper", "Warehouse", "Warning", "WarningAmber", "Wash", "Watch", "WatchLater", "WatchOff", "Water", "WaterDamage", "WaterDrop", "WaterfallChart", "Waves", "WavingHand", "WbAuto", "WbCloudy", "WbIncandescent", "WbIridescent", "WbShade", "WbSunny", "WbTwilight", "Wc", "Web", "WebAsset", "WebAssetOff", "WebStories", "Webhook", "Weekend", "West", "WhatsApp", "Whatshot", "WheelchairPickup", "WhereToVote", "Widgets", "WidthFull", "WidthNormal", "WidthWide", "Wifi", "Wifi1Bar", "Wifi2Bar", "WifiCalling", "WifiCalling3", "WifiChannel", "WifiFind", "WifiLock", "WifiOff", "WifiPassword", "WifiProtectedSetup", "WifiTethering", "WifiTetheringError", "WifiTetheringOff", "WindPower", "Window", "WineBar", "Woman", "Woman2", "Work", "WorkHistory", "WorkOff", "WorkOutline", "WorkspacePremium", "Workspaces", "WrapText", "WrongLocation", "Wysiwyg", "Yard", "YouTube", "YoutubeSearchedFor", "ZoomIn", "ZoomInMap", "ZoomOut", "ZoomOutMap"];
2
+ export default MUIFilledIcons;
@@ -139,4 +139,19 @@ export const isEmptyTextNode = element => {
139
139
  console.log(err);
140
140
  return false;
141
141
  }
142
+ };
143
+ export const debounce = function (func, wait, immediate) {
144
+ let timeout;
145
+ return function () {
146
+ const context = this,
147
+ args = arguments,
148
+ later = function () {
149
+ timeout = null;
150
+ if (!immediate) func.apply(context, args);
151
+ },
152
+ callNow = immediate && !timeout;
153
+ clearTimeout(timeout);
154
+ timeout = setTimeout(later, wait);
155
+ if (callNow) func.apply(context, args);
156
+ };
142
157
  };
@@ -1,5 +1,6 @@
1
1
  import { useEffect, useState, createContext, useContext, useMemo } from "react";
2
2
  import { getSelectedText } from "../utils/helper";
3
+ import { debounce } from "../helper";
3
4
  import { jsx as _jsx } from "react/jsx-runtime";
4
5
  const EditorContext = /*#__PURE__*/createContext();
5
6
  export const useEditorSelection = editor => {
@@ -73,15 +74,21 @@ const useMouseMove = () => {
73
74
  };
74
75
  }, []);
75
76
  const onMouseMove = e => {
76
- setEvent({
77
- target: e.target
78
- });
77
+ const dpath = e?.target?.closest(".dpath");
78
+ console.log(dpath);
79
+ if (dpath) {
80
+ console.log(`Stopped position: (${e.clientX}, ${e.clientY})`, dpath);
81
+ setEvent({
82
+ target: dpath
83
+ });
84
+ }
79
85
  };
86
+ const debounceMouseMove = debounce(onMouseMove, 100);
80
87
  const addListener = () => {
81
- document.addEventListener("mousemove", onMouseMove);
88
+ document.addEventListener("mousemove", debounceMouseMove);
82
89
  };
83
90
  const removeListener = () => {
84
- document.removeEventListener("mousemove", onMouseMove);
91
+ document.removeEventListener("mousemove", debounceMouseMove);
85
92
  };
86
93
  return [event];
87
94
  };