@flozy/editor 3.6.3 → 3.6.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -146,21 +146,19 @@ function AppHeader(props) {
146
146
  src: appLogo
147
147
  }) : appTitle
148
148
  }), /*#__PURE__*/_jsx(Divider, {}), /*#__PURE__*/_jsx(List, {
149
- children: menus.map((item, i) => {
150
- const buttonProps = handleLinkType(item.url, item.linkType, true, item.target === "_blank");
151
- return /*#__PURE__*/_jsx(ListItem, {
152
- disablePadding: true,
153
- children: /*#__PURE__*/_jsx(ListItemButton, {
154
- ...buttonProps,
155
- sx: {
156
- textAlign: "center"
157
- },
158
- children: /*#__PURE__*/_jsx(ListItemText, {
159
- primary: item.text
160
- })
149
+ children: menus.map((item, i) => /*#__PURE__*/_jsx(ListItem, {
150
+ disablePadding: true,
151
+ children: /*#__PURE__*/_jsx(ListItemButton, {
152
+ component: "a",
153
+ href: item.url,
154
+ sx: {
155
+ textAlign: "center"
156
+ },
157
+ children: /*#__PURE__*/_jsx(ListItemText, {
158
+ primary: item.text
161
159
  })
162
- }, `${item.text}_${i}`);
163
- })
160
+ })
161
+ }, `${item.text}_${i}`))
164
162
  })]
165
163
  });
166
164
  const container = window !== undefined ? () => window().document.body : undefined;
@@ -2,7 +2,8 @@ import React, { useState } from "react";
2
2
  import { Transforms } from "slate";
3
3
  import { ReactEditor, useSlateStatic } from "slate-react";
4
4
  import { IconButton, Tooltip, Box } from "@mui/material";
5
- import * as fIcons from "@mui/icons-material";
5
+ // import * as fIcons from "@mui/icons-material";
6
+ import MUIIcon from "../../common/StyleBuilder/fieldTypes/loadIcon";
6
7
  import SettingsIcon from "@mui/icons-material/Settings";
7
8
  import OpenInNewIcon from "@mui/icons-material/OpenInNew";
8
9
  import LinkIcon from "@mui/icons-material/Link";
@@ -63,7 +64,7 @@ const EditorButton = props => {
63
64
  };
64
65
  const isTrigger = linkType === "actionTrigger";
65
66
  const refURl = isTrigger ? buttonLink?.url : url;
66
- const BtnIcon = buttonIcon ? fIcons[buttonIcon] : null;
67
+ const BtnIcon = buttonIcon ? buttonIcon : null;
67
68
  windowVar.lastButtonProps = element;
68
69
  const handleTrigger = async () => {
69
70
  if (metadata?.buttonLink?.handler) {
@@ -80,6 +81,7 @@ const EditorButton = props => {
80
81
  }
81
82
  };
82
83
  const buttonProps = handleLinkType(refURl, linkType, readOnly, openInNewTab, handleTrigger);
84
+ console.log(openInNewTab);
83
85
  const onMenuClick = val => () => {
84
86
  switch (val) {
85
87
  case "edit":
@@ -131,6 +133,7 @@ const EditorButton = props => {
131
133
  color: "rgba(0, 0, 0, 0.54)"
132
134
  },
133
135
  ...btnProps,
136
+ target: openInNewTab ? "_blank" : "_self",
134
137
  children: /*#__PURE__*/_jsx(OpenInNewIcon, {})
135
138
  })
136
139
  })]
@@ -212,12 +215,14 @@ const EditorButton = props => {
212
215
  }
213
216
  },
214
217
  ...buttonProps,
215
- children: [BtnIcon && iconPosition === "start" && /*#__PURE__*/_jsx(BtnIcon, {
218
+ children: [BtnIcon && iconPosition === "start" && /*#__PURE__*/_jsx(MUIIcon, {
219
+ iconName: buttonIcon,
216
220
  style: {
217
221
  paddingLeft: "4px",
218
222
  paddingRight: "4px"
219
223
  }
220
- }), label || "My Button", BtnIcon && iconPosition === "end" && /*#__PURE__*/_jsx(BtnIcon, {
224
+ }), label || "My Button", BtnIcon && iconPosition === "end" && /*#__PURE__*/_jsx(MUIIcon, {
225
+ iconName: buttonIcon,
221
226
  style: {
222
227
  paddingLeft: "4px",
223
228
  paddingRight: "4px"
@@ -1,10 +1,10 @@
1
1
  import React, { useState } from "react";
2
2
  import { Transforms } from "slate";
3
3
  import { useSlateStatic, ReactEditor } from "slate-react";
4
- import * as fIcons from "@mui/icons-material";
5
4
  import { Box } from "@mui/material";
6
5
  import ChipTextPopup from "./ChipTextPopup";
7
6
  import { getTRBLBreakPoints, getBreakPointsValue } from "../../helper/theme";
7
+ import MUIIcon from "../../common/StyleBuilder/fieldTypes/loadIcon";
8
8
  import { jsx as _jsx } from "react/jsx-runtime";
9
9
  import { jsxs as _jsxs } from "react/jsx-runtime";
10
10
  const ChipText = props => {
@@ -26,7 +26,6 @@ const ChipText = props => {
26
26
  buttonIcon,
27
27
  textSize
28
28
  } = element;
29
- const BtnIcon = buttonIcon ? fIcons[buttonIcon] : fIcons["Check"];
30
29
  const [openSetttings, setOpenSettings] = useState(false);
31
30
  const editor = useSlateStatic();
32
31
  const path = ReactEditor.findPath(editor, element);
@@ -82,7 +81,8 @@ const ChipText = props => {
82
81
  background: bgColor || "#CCC",
83
82
  color: textColor
84
83
  },
85
- children: [/*#__PURE__*/_jsx(BtnIcon, {
84
+ children: [/*#__PURE__*/_jsx(MUIIcon, {
85
+ iconName: buttonIcon || "Check",
86
86
  style: {
87
87
  fontSize: textSize || "16px",
88
88
  lineHeight: textSize || "16px",
@@ -277,7 +277,7 @@ const Grid = props => {
277
277
  } = getBreakPointsValue(borderRadius, size?.device) || {};
278
278
  return /*#__PURE__*/_jsxs(GridContainer, {
279
279
  container: true,
280
- className: `grid-container ${grid} has-hover element-root`,
280
+ className: `grid-container ${grid} has-hover element-root dpath`,
281
281
  ...attributes,
282
282
  ...sectionId,
283
283
  sx: {
@@ -105,7 +105,7 @@ const GridItem = props => {
105
105
  return /*#__PURE__*/_jsxs(Item, {
106
106
  item: true,
107
107
  component: "div",
108
- className: `grid-item element-root gi-top-wrpr`,
108
+ className: `grid-item element-root gi-top-wrpr dpath`,
109
109
  ...attributes,
110
110
  sx: {
111
111
  width: {
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
- import * as fIcons from "@mui/icons-material";
3
2
  import { Box } from "@mui/material";
3
+ import Check from "@mui/icons-material/Check";
4
4
  import { getBreakPointsValue } from "../../helper/theme";
5
5
  import { jsx as _jsx } from "react/jsx-runtime";
6
6
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -23,7 +23,6 @@ const InlineIcon = props => {
23
23
  right,
24
24
  bottom
25
25
  } = bannerSpacing || {};
26
- const BtnIcon = fIcons["Check"];
27
26
  return /*#__PURE__*/_jsxs(Box, {
28
27
  ...attributes,
29
28
  className: "editor-icon-text",
@@ -42,7 +41,7 @@ const InlineIcon = props => {
42
41
  background: bgColor || "#CCC",
43
42
  color: textColor
44
43
  },
45
- children: [/*#__PURE__*/_jsx(BtnIcon, {}), /*#__PURE__*/_jsx("div", {
44
+ children: [/*#__PURE__*/_jsx(Check, {}), /*#__PURE__*/_jsx("div", {
46
45
  contentEditable: true,
47
46
  children: children
48
47
  })]
@@ -11,7 +11,9 @@ const CheckList = ({
11
11
  attributes,
12
12
  children,
13
13
  element,
14
- isEmpty
14
+ isEmpty,
15
+ className,
16
+ style
15
17
  }) => {
16
18
  const editor = useSlateStatic();
17
19
  const readOnly = useReadOnly();
@@ -30,12 +32,14 @@ const CheckList = ({
30
32
  const nestedCheckList = element?.children?.length && element.children[0].type === "check-list-item";
31
33
  return /*#__PURE__*/_jsx(_Fragment, {
32
34
  children: /*#__PURE__*/_jsxs("div", {
35
+ className: className || "",
33
36
  ...attributes,
34
37
  style: {
35
38
  textAlign: element.alignment || "left",
36
39
  display: "flex",
37
40
  justifyContent: "center",
38
- alignItems: "center"
41
+ alignItems: "center",
42
+ ...(style || {})
39
43
  },
40
44
  children: [/*#__PURE__*/_jsxs("div", {
41
45
  contentEditable: false,
@@ -188,6 +188,7 @@ const editorStyles = ({
188
188
  }
189
189
  },
190
190
  "& .checkbox-edit": {
191
+ alignSelf: "flex-start",
191
192
  "& .MuiFormControlLabel-root": {
192
193
  marginRight: "0px"
193
194
  },
@@ -212,7 +213,7 @@ const editorStyles = ({
212
213
  "& svg": {
213
214
  width: "17px",
214
215
  height: "18px",
215
- marginTop: '-1px'
216
+ marginTop: "-1px"
216
217
  }
217
218
  }
218
219
  },
@@ -273,7 +274,7 @@ const editorStyles = ({
273
274
  },
274
275
  cardsTypo: {
275
276
  color: theme?.palette?.editor?.textColor,
276
- fontSize: '14px !important'
277
+ fontSize: "14px !important"
277
278
  }
278
279
  });
279
280
  export default editorStyles;
@@ -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,48 @@
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
+ try {
6
+ const iconResponse = await fetch(`${process.env.ICON_API}/icon/${iconName}`);
7
+ const icon = await iconResponse.text();
8
+ return icon;
9
+ } catch (error) {
10
+ console.error(`Icon "${iconName}" could not be loaded.`, error);
11
+ return null; // Or return a default fallback icon
12
+ }
13
+ };
14
+
15
+ const DynamicIcon = ({
16
+ iconName,
17
+ ...props
18
+ }) => {
19
+ const [icon, setIcon] = useState("");
20
+ useEffect(() => {
21
+ let mounted = true;
22
+ iconLoader(iconName).then(iconHTML => {
23
+ if (mounted) {
24
+ setIcon(iconHTML);
25
+ }
26
+ });
27
+ return () => {
28
+ mounted = false;
29
+ };
30
+ }, [iconName]);
31
+ if (!icon) {
32
+ return null; // Or return a placeholder/spinner
33
+ }
34
+
35
+ return /*#__PURE__*/_jsx(Box, {
36
+ sx: {
37
+ display: "flex",
38
+ width: "auto",
39
+ height: "auto",
40
+ paddingLeft: "4px",
41
+ paddingRight: "4px"
42
+ },
43
+ dangerouslySetInnerHTML: {
44
+ __html: icon
45
+ }
46
+ });
47
+ };
48
+ 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
  };
@@ -208,13 +208,7 @@ export const hasVerticalScrollbar = (element = {}) => {
208
208
  return element.scrollHeight > element.clientHeight;
209
209
  };
210
210
  const isHomePage = page => {
211
- return page === "home" || page === "iframe.html" || page === "_currentPage" || !page;
212
- };
213
- const getScrollElement = () => {
214
- const slateWrapper = document.getElementById("slate-wrapper-scroll-container");
215
- const isSlateWrapperScroll = hasVerticalScrollbar(slateWrapper);
216
- const scrollFrom = isSlateWrapperScroll ? slateWrapper : window;
217
- return scrollFrom;
211
+ return page === "home" || page === "iframe.html" || !page;
218
212
  };
219
213
  export const handleLinkType = (url, linkType, readOnly, openInNewTab, onClick = () => {}) => {
220
214
  const props = {};
@@ -245,33 +239,16 @@ export const handleLinkType = (url, linkType, readOnly, openInNewTab, onClick =
245
239
  }
246
240
  break;
247
241
  case "page":
248
- const [page = "", section] = url?.split("#") || [];
242
+ props.component = "a";
243
+ const [page, section] = url?.split("#") || [];
249
244
  const sec = section ? `#${section}` : "";
250
- if (page === "_currentPage") {
251
- props.component = "button";
252
- props.onClick = () => {
253
- const scrollFrom = getScrollElement();
254
- if (sec) {
255
- const element = document.getElementById(section);
256
- if (element) {
257
- const topPosition = element.getBoundingClientRect().top + scrollFrom.scrollTop;
258
- scrollFrom.scrollTo({
259
- top: topPosition,
260
- behavior: "smooth"
261
- });
262
- }
263
- }
264
- };
265
- } else {
266
- props.component = "a";
267
- const currentUserPage = getCurrentUserPage();
268
- props.href = isCurrentPage(page) ? `./${currentUserPage}${sec}` : `./${url}`;
269
- if (openInNewTab) {
270
- if (isCurrentPage(page)) {
271
- // temp fix, if user is presented in current page, open in new tab option is restricted, we will scroll to the element in current page
272
- } else {
273
- props.target = "_blank";
274
- }
245
+ const currentUserPage = getCurrentUserPage();
246
+ props.href = isHomePage(page) ? `./${currentUserPage}${sec}` : `./${url}`;
247
+ if (openInNewTab) {
248
+ if (isCurrentPage(page)) {
249
+ // temp fix, if user is presented in current page, open in new tab option is restricted, we will scroll to the element in current page
250
+ } else {
251
+ props.target = "_blank";
275
252
  }
276
253
  }
277
254
  break;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flozy/editor",
3
- "version": "3.6.3",
3
+ "version": "3.6.5",
4
4
  "description": "An Editor for flozy app brain",
5
5
  "files": [
6
6
  "dist"
@@ -58,11 +58,11 @@
58
58
  "prepare": "husky install .husky",
59
59
  "lint": "./node_modules/.bin/eslint --ignore-path .gitignore .",
60
60
  "start": "craco start",
61
- "build": "craco build",
61
+ "build": "NODE_OPTIONS='--max_old_space_size=4096' craco build",
62
62
  "test": "craco test --passWithNoTests",
63
63
  "eject": "react-scripts eject",
64
- "storybook": "storybook dev -p 6006",
65
- "build-storybook": "storybook build",
64
+ "storybook": "NODE_OPTIONS='--max_old_space_size=4096' storybook dev -p 6006",
65
+ "build-storybook": "NODE_OPTIONS='--max_old_space_size=4096' storybook build",
66
66
  "publish:npm": "rm -rf dist && mkdir dist && babel src/components -d dist --copy-files",
67
67
  "publish:local": "rm -rf /Users/agenciflow08/Documents/flozy/client/node_modules/@flozy/editor/dist && babel src/components -d /Users/agenciflow08/Documents/flozy/client/node_modules/@flozy/editor/dist --copy-files"
68
68
  },