@onesy/ui-react
Version:
UI for React
1,022 lines (1,015 loc) • 103 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _react = _interopRequireDefault(require("react"));
var _utils = require("@onesy/utils");
var _styleReact = require("@onesy/style-react");
var _IconMaterialFormatItalicW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatItalicW100"));
var _IconMaterialFormatUnderlinedW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatUnderlinedW100"));
var _IconMaterialFormatBoldW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatBoldW100"));
var _IconMaterialContentCopyW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialContentCopyW100"));
var _IconMaterialContentCutW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialContentCutW100"));
var _IconMaterialContentPasteW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialContentPasteW100"));
var _IconMaterialFormatAlignLeftW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatAlignLeftW100"));
var _IconMaterialFormatAlignCenterW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatAlignCenterW100"));
var _IconMaterialFormatAlignRightW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatAlignRightW100"));
var _IconMaterialFormatAlignJustifyW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatAlignJustifyW100"));
var _IconMaterialStrikethroughSW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialStrikethroughSW100"));
var _IconMaterialUndoW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialUndoW100"));
var _IconMaterialRedoW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialRedoW100"));
var _IconMaterialFormatClearW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatClearW100"));
var _IconMaterialSuperscriptW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialSuperscriptW100"));
var _IconMaterialSubscriptW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialSubscriptW100"));
var _IconMaterialFormatIndentIncreaseW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatIndentIncreaseW100"));
var _IconMaterialFormatIndentDecreaseW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatIndentDecreaseW100"));
var _IconMaterialFormatListNumberedW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatListNumberedW100"));
var _IconMaterialFormatListBulletedW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatListBulletedW100"));
var _IconMaterialHorizontalRuleW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialHorizontalRuleW100"));
var _IconMaterialFormatColorTextW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatColorTextW100"));
var _IconMaterialFormatColorFillW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatColorFillW100"));
var _IconMaterialAddLinkW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialAddLinkW100"));
var _IconMaterialLinkOffW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialLinkOffW100"));
var _IconMaterialImageW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialImageW100"));
var _IconMaterialFormatQuoteW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatQuoteW100"));
var _IconMaterialVideocamW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialVideocamW100"));
var _IconMaterialPlayArrowW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialPlayArrowW100"));
var _IconMaterialCodeW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialCodeW100"));
var _IconMaterialDeleteSweepW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialDeleteSweepW100"));
var _IconMaterialSelectAllW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialSelectAllW100"));
var _IconMaterialPrintW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialPrintW100"));
var _IconMaterialDownloadW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialDownloadW100"));
var _IconMaterialTableW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialTableW100"));
var _IconMaterialDrawW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialDrawW100"));
var _Type = _interopRequireDefault(require("../Type"));
var _Tooltip = _interopRequireDefault(require("../Tooltip"));
var _Fade = _interopRequireDefault(require("../Fade"));
var _Append = _interopRequireDefault(require("../Append"));
var _Select = _interopRequireDefault(require("../Select"));
var _Switch = _interopRequireDefault(require("../Switch"));
var _Label = _interopRequireDefault(require("../Label"));
var _NumericTextField = _interopRequireDefault(require("../NumericTextField"));
var _ColorTextField = _interopRequireDefault(require("../ColorTextField"));
var _ToggleButtons = _interopRequireDefault(require("../ToggleButtons"));
var _ToggleButton = _interopRequireDefault(require("../ToggleButton"));
var _Drawing = _interopRequireDefault(require("../Drawing"));
var _Divider = _interopRequireDefault(require("../Divider"));
var _ClickListener = _interopRequireDefault(require("../ClickListener"));
var _TextField = _interopRequireDefault(require("../TextField"));
var _Button = _interopRequireDefault(require("../Button"));
var _Surface = _interopRequireDefault(require("../Surface"));
var _ListItem = _interopRequireDefault(require("../ListItem"));
var _Line = _interopRequireDefault(require("../Line"));
var _utils2 = require("../utils");
var _jsxRuntime = require("react/jsx-runtime");
const _excluded = ["ref", "tonal", "color", "version", "value", "onChange", "render", "miniMenu", "miniMenuInclude", "exclude", "updates", "actions", "fontFamilies", "addFontFamilies", "IconItalic", "IconUnderline", "IconBold", "IconStrikeLine", "IconColor", "IconBackground", "IconAlignLeft", "IconAlignCenter", "IconAlignRight", "IconAlignJustify", "IconIndent", "IconOutdent", "IconSuperscript", "IconSubscript", "IconListOrdered", "IconListUnordered", "IconHorizontalRule", "IconLinkAdd", "IconLinkRemove", "IconQuote", "IconImage", "IconVideo", "IconVideoYoutube", "IconTable", "IconCode", "IconDrawing", "IconCopy", "IconCut", "IconPaste", "IconDelete", "IconClear", "IconSelectAll", "IconSave", "IconPrint", "IconUndo", "IconRedo", "AppendProps", "ToolbarProps", "ToolbarUpdatesProps", "ToolbarActionsProps", "ToggleButtonProps", "ToggleButtonsProps", "DividerProps", "SelectProps", "ListItemProps", "TooltipProps", "MiniMenuProps", "DrawingProps", "IconProps", "ColorTextFieldProps", "Component", "className", "children"],
_excluded2 = ["open", "name", "children"],
_excluded3 = ["open", "element", "anchorElement", "onClose", "children"],
_excluded4 = ["color"],
_excluded5 = ["ref", "version", "onUpdate", "onClose"],
_excluded6 = ["ref", "label", "labelButton", "value", "onChange", "onClick", "InputComponent", "InputProps"];
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
const useStyle = (0, _styleReact.style)(theme => ({
root: {
width: '100%'
},
value: {
padding: theme.methods.space.value(2, 'px'),
whiteSpace: 'break-spaces',
'& p': _objectSpread({}, theme.typography.values.b2),
'& h1': _objectSpread({}, theme.typography.values.h1),
'& h2': _objectSpread({}, theme.typography.values.h2),
'& h3': _objectSpread({}, theme.typography.values.h3),
'& h4': _objectSpread({}, theme.typography.values.t1),
'& h5': _objectSpread({}, theme.typography.values.t2),
'& a': {
color: theme.palette.color.primary.main,
textDecoration: 'underline'
},
'& blockquote': {
margin: '16px 0',
marginInlineStart: '16px',
padding: `${theme.methods.space.value(2.5, 'px')} ${theme.methods.space.value(2, 'px')}`,
borderInlineStart: `4px solid ${theme.methods.palette.color.colorToRgb(theme.palette.text.default.primary, theme.palette.light ? 0.04 : 0.2)}`,
background: theme.methods.palette.color.colorToRgb(theme.palette.text.default.primary, theme.palette.light ? 0.02 : 0.14),
'& > *': {
margin: '0px'
},
'& > $blockquote': {
marginBlock: '16px'
}
},
'& iframe': {
display: 'block',
maxWidth: '100%',
margin: '16px auto'
},
'& video': {
display: 'block',
margin: '16px auto'
},
'& code': {
padding: `${theme.methods.space.value(0.25, 'px')} ${theme.methods.space.value(0.5, 'px')}`,
borderRadius: theme.methods.shape.radius.value(0.5, 'px'),
color: theme.palette.text.default.primary,
background: theme.methods.palette.color.colorToRgb(theme.palette.text.default.primary, theme.palette.light ? 0.04 : 0.1)
},
'& pre': {
margin: '16px 0',
padding: theme.methods.space.value(2, 'px'),
borderRadius: theme.methods.shape.radius.value(1, 'px'),
color: theme.palette.text.default.primary,
background: theme.methods.palette.color.colorToRgb(theme.palette.text.default.primary, theme.palette.light ? 0.04 : 0.1),
'& code': {
padding: '0px',
background: 'transparent'
}
},
'& table': {
margin: '16px auto',
borderCollapse: 'collapse',
border: `1px solid ${theme.palette.light ? theme.palette.color.neutral[80] : theme.palette.color.neutral[30]}`,
'& th, & td': _objectSpread(_objectSpread({}, theme.typography.values.b2), {}, {
height: '45px',
padding: `${theme.methods.space.value(1.5, 'px')} ${theme.methods.space.value(2, 'px')}`,
borderBottom: `1px solid ${theme.palette.light ? theme.palette.color.neutral[80] : theme.palette.color.neutral[30]}`,
borderRight: `1px solid ${theme.palette.light ? theme.palette.color.neutral[80] : theme.palette.color.neutral[30]}`
}),
'& th': {
fontWeight: 500,
borderBottom: `1px solid ${theme.palette.light ? theme.palette.color.neutral[50] : theme.palette.color.neutral[50]}`
}
},
'& .onesy-Drawing-svg': {
display: 'block',
margin: '16px auto',
background: theme.palette.color.neutral[100]
}
},
toolbars: {
width: '100%'
},
toolbar: {
width: '100%',
overflowX: 'auto',
padding: theme.methods.space.value(1, 'px')
},
divider: {
'&.onesy-Divider-root': {
margin: 0
}
},
divider_middle: {
'&.onesy-Divider-root': {
opacity: theme.palette.light ? 0.07 : 0.24
}
},
divider_end: {
'&.onesy-Divider-root': {
opacity: theme.palette.light ? 0.14 : 0.4
}
},
select: {
'& .onesy-TextField-input-wrapper': {
height: '40px',
paddingBlock: theme.methods.space.value(1.25, 'px')
},
'& .onesy-Select-input': {
'& > *': _objectSpread(_objectSpread({}, theme.typography.values.b2), {}, {
fontWeight: 400
})
}
},
miniMenu: {
padding: theme.methods.space.value(1.5, 'px'),
borderRadius: theme.methods.shape.radius.value(140, 'px'),
boxShadow: theme.shadows.values.default[2]
},
palette: {
padding: theme.methods.space.value(1.5, 'px'),
borderRadius: theme.methods.shape.radius.value(1, 'px'),
boxShadow: theme.shadows.values.default[2]
},
paletteItem: {
position: 'relative',
width: '17px',
height: '17px',
cursor: 'pointer',
borderRadius: theme.methods.shape.radius.value(40, 'px'),
boxShadow: theme.shadows.values.default[1],
transition: theme.methods.transitions.make('box-shadow'),
'&:hover': {
boxShadow: theme.shadows.values.default[2]
}
},
textFieldColor: {
flex: '1 1 auto'
}
}), {
name: 'onesy-RichTextEditor'
});
const RichTextEditor = props__ => {
var _theme$ui, _theme$ui2, _theme$elements, _theme$elements2, _theme$elements3, _theme$elements4, _theme$elements5, _theme$elements6, _theme$elements7, _theme$elements8, _theme$elements9, _theme$elements0, _theme$elements1, _theme$elements10, _theme$elements11, _theme$elements12, _theme$elements13, _theme$elements14, _theme$elements15, _theme$elements16, _theme$elements17, _refs$root$current;
const theme = (0, _styleReact.useOnesyTheme)();
const l = theme.l;
const props = _objectSpread(_objectSpread(_objectSpread({}, theme === null || theme === void 0 || (_theme$ui = theme.ui) === null || _theme$ui === void 0 || (_theme$ui = _theme$ui.elements) === null || _theme$ui === void 0 || (_theme$ui = _theme$ui.all) === null || _theme$ui === void 0 || (_theme$ui = _theme$ui.props) === null || _theme$ui === void 0 ? void 0 : _theme$ui.default), theme === null || theme === void 0 || (_theme$ui2 = theme.ui) === null || _theme$ui2 === void 0 || (_theme$ui2 = _theme$ui2.elements) === null || _theme$ui2 === void 0 || (_theme$ui2 = _theme$ui2.onesyRichTextEditor) === null || _theme$ui2 === void 0 || (_theme$ui2 = _theme$ui2.props) === null || _theme$ui2 === void 0 ? void 0 : _theme$ui2.default), props__);
const Line = (theme === null || theme === void 0 || (_theme$elements = theme.elements) === null || _theme$elements === void 0 ? void 0 : _theme$elements.Line) || _Line.default;
const Type = (theme === null || theme === void 0 || (_theme$elements2 = theme.elements) === null || _theme$elements2 === void 0 ? void 0 : _theme$elements2.Type) || _Type.default;
const Tooltip = (theme === null || theme === void 0 || (_theme$elements3 = theme.elements) === null || _theme$elements3 === void 0 ? void 0 : _theme$elements3.Tooltip) || _Tooltip.default;
const Fade = (theme === null || theme === void 0 || (_theme$elements4 = theme.elements) === null || _theme$elements4 === void 0 ? void 0 : _theme$elements4.Fade) || _Fade.default;
const Append = (theme === null || theme === void 0 || (_theme$elements5 = theme.elements) === null || _theme$elements5 === void 0 ? void 0 : _theme$elements5.Append) || _Append.default;
const Select = (theme === null || theme === void 0 || (_theme$elements6 = theme.elements) === null || _theme$elements6 === void 0 ? void 0 : _theme$elements6.Select) || _Select.default;
const Switch = (theme === null || theme === void 0 || (_theme$elements7 = theme.elements) === null || _theme$elements7 === void 0 ? void 0 : _theme$elements7.Switch) || _Switch.default;
const Label = (theme === null || theme === void 0 || (_theme$elements8 = theme.elements) === null || _theme$elements8 === void 0 ? void 0 : _theme$elements8.Label) || _Label.default;
const NumericTextField = (theme === null || theme === void 0 || (_theme$elements9 = theme.elements) === null || _theme$elements9 === void 0 ? void 0 : _theme$elements9.NumericTextField) || _NumericTextField.default;
const ColorTextField = (theme === null || theme === void 0 || (_theme$elements0 = theme.elements) === null || _theme$elements0 === void 0 ? void 0 : _theme$elements0.ColorTextField) || _ColorTextField.default;
const ToggleButton = (theme === null || theme === void 0 || (_theme$elements1 = theme.elements) === null || _theme$elements1 === void 0 ? void 0 : _theme$elements1.ToggleButton) || _ToggleButton.default;
const ToggleButtons = (theme === null || theme === void 0 || (_theme$elements10 = theme.elements) === null || _theme$elements10 === void 0 ? void 0 : _theme$elements10.ToggleButtons) || _ToggleButtons.default;
const Drawing = (theme === null || theme === void 0 || (_theme$elements11 = theme.elements) === null || _theme$elements11 === void 0 ? void 0 : _theme$elements11.Drawing) || _Drawing.default;
const Divider = (theme === null || theme === void 0 || (_theme$elements12 = theme.elements) === null || _theme$elements12 === void 0 ? void 0 : _theme$elements12.Divider) || _Divider.default;
const ClickListener = (theme === null || theme === void 0 || (_theme$elements13 = theme.elements) === null || _theme$elements13 === void 0 ? void 0 : _theme$elements13.ClickListener) || _ClickListener.default;
const TextField = (theme === null || theme === void 0 || (_theme$elements14 = theme.elements) === null || _theme$elements14 === void 0 ? void 0 : _theme$elements14.TextField) || _TextField.default;
const Surface = (theme === null || theme === void 0 || (_theme$elements15 = theme.elements) === null || _theme$elements15 === void 0 ? void 0 : _theme$elements15.Surface) || _Surface.default;
const Button = (theme === null || theme === void 0 || (_theme$elements16 = theme.elements) === null || _theme$elements16 === void 0 ? void 0 : _theme$elements16.Button) || _Button.default;
const ListItem = (theme === null || theme === void 0 || (_theme$elements17 = theme.elements) === null || _theme$elements17 === void 0 ? void 0 : _theme$elements17.ListItem) || _ListItem.default;
const {
ref,
tonal = true,
color = 'default',
version = 'filled',
value,
onChange,
render,
miniMenu = true,
miniMenuInclude = ['italic', 'underline', 'bold', 'strike-line', 'font-color', 'font-background', 'align-left', 'align-center', 'align-right', 'align-justify', 'link-add', 'link-remove', 'clear'],
exclude,
updates = true,
actions = true,
fontFamilies = [{
label: 'Arial',
value: `Arial, sans-serif`
}, {
label: 'Verdana',
value: `Verdana, sans-serif`
}, {
label: 'Helvetica',
value: `Helvetica, sans-serif`
}, {
label: 'Georgia',
value: `Georgia, sans-serif`
}, {
label: 'Roboto',
value: `Roboto, sans-serif`
}, {
label: 'DM Sans',
value: `DM Sans, sans-serif`
}],
addFontFamilies = [],
// Update
IconItalic = _IconMaterialFormatItalicW.default,
IconUnderline = _IconMaterialFormatUnderlinedW.default,
IconBold = _IconMaterialFormatBoldW.default,
IconStrikeLine = _IconMaterialStrikethroughSW.default,
IconColor = _IconMaterialFormatColorTextW.default,
IconBackground = _IconMaterialFormatColorFillW.default,
IconAlignLeft = _IconMaterialFormatAlignLeftW.default,
IconAlignCenter = _IconMaterialFormatAlignCenterW.default,
IconAlignRight = _IconMaterialFormatAlignRightW.default,
IconAlignJustify = _IconMaterialFormatAlignJustifyW.default,
IconIndent = _IconMaterialFormatIndentIncreaseW.default,
IconOutdent = _IconMaterialFormatIndentDecreaseW.default,
IconSuperscript = _IconMaterialSuperscriptW.default,
IconSubscript = _IconMaterialSubscriptW.default,
IconListOrdered = _IconMaterialFormatListNumberedW.default,
IconListUnordered = _IconMaterialFormatListBulletedW.default,
IconHorizontalRule = _IconMaterialHorizontalRuleW.default,
IconLinkAdd = _IconMaterialAddLinkW.default,
IconLinkRemove = _IconMaterialLinkOffW.default,
IconQuote = _IconMaterialFormatQuoteW.default,
IconImage = _IconMaterialImageW.default,
IconVideo = _IconMaterialVideocamW.default,
IconVideoYoutube = _IconMaterialPlayArrowW.default,
IconTable = _IconMaterialTableW.default,
IconCode = _IconMaterialCodeW.default,
IconDrawing = _IconMaterialDrawW.default,
// Action
IconCopy = _IconMaterialContentCopyW.default,
IconCut = _IconMaterialContentCutW.default,
IconPaste = _IconMaterialContentPasteW.default,
IconDelete = _IconMaterialDeleteSweepW.default,
IconClear = _IconMaterialFormatClearW.default,
IconSelectAll = _IconMaterialSelectAllW.default,
IconSave = _IconMaterialDownloadW.default,
IconPrint = _IconMaterialPrintW.default,
IconUndo = _IconMaterialUndoW.default,
IconRedo = _IconMaterialRedoW.default,
AppendProps: AppendProps_,
ToolbarProps,
ToolbarUpdatesProps,
ToolbarActionsProps,
ToggleButtonProps: ToggleButtonProps_,
ToggleButtonsProps: ToggleButtonsProps_,
DividerProps: DividerProps_,
SelectProps: SelectProps_,
ListItemProps: ListItemProps_,
TooltipProps: TooltipProps_,
MiniMenuProps: MiniMenuProps_,
DrawingProps,
IconProps: IconProps_,
ColorTextFieldProps,
Component = 'div',
className,
children
} = props,
other = (0, _objectWithoutProperties2.default)(props, _excluded);
const {
classes
} = useStyle();
const [inputValues, setInputValues] = _react.default.useState({});
const [open, setOpen] = _react.default.useState({});
const [selected, setSelected] = _react.default.useState([]);
const [selection, setSelection] = _react.default.useState();
const refs = {
root: _react.default.useRef(null),
value: _react.default.useRef(null),
range: _react.default.useRef(null),
inputValues: _react.default.useRef(null),
open: _react.default.useRef(null),
props: _react.default.useRef(null),
selected: _react.default.useRef(null),
miniMenu: _react.default.useRef(null),
miniMenuInclude: _react.default.useRef(null),
miniMenuElements: {
color: _react.default.useRef(null),
colorPalette: _react.default.useRef(null),
background: _react.default.useRef(null),
backgroundPalette: _react.default.useRef(null),
linkAdd: _react.default.useRef(null),
linkAddInput: _react.default.useRef(null),
linkRemove: _react.default.useRef(null)
},
elements: {
color: _react.default.useRef(null),
background: _react.default.useRef(null),
linkAdd: _react.default.useRef(null),
linkRemove: _react.default.useRef(null),
quote: _react.default.useRef(null),
image: _react.default.useRef(null),
video: _react.default.useRef(null),
videoYoutube: _react.default.useRef(null),
table: _react.default.useRef(null),
drawing: _react.default.useRef(null),
drawingSvg: _react.default.useRef(null),
drawingSize: _react.default.useRef(null),
drawingSelect: _react.default.useRef(null),
drawingPalette: _react.default.useRef(null),
code: _react.default.useRef(null)
},
rootDocument: _react.default.useRef(null),
rootWindow: _react.default.useRef(null)
};
refs.inputValues.current = inputValues;
refs.open.current = open;
refs.props.current = props;
refs.selected.current = selected;
refs.miniMenuInclude.current = miniMenuInclude;
const rootDocument = (0, _utils.isEnvironment)('browser') && (((_refs$root$current = refs.root.current) === null || _refs$root$current === void 0 ? void 0 : _refs$root$current.ownerDocument) || window.document);
const rootWindow = rootDocument && (rootDocument.defaultView || window);
refs.rootDocument.current = rootDocument;
refs.rootWindow.current = rootWindow;
_react.default.useEffect(() => {
// Add value as innerHTML
refs.value.current.innerHTML = value;
}, [value]);
_react.default.useEffect(() => {
var _selection_$anchorNod;
const selection_ = refs.rootWindow.current.getSelection();
if (selection_ && selection_.anchorNode && !((_selection_$anchorNod = selection_.anchorNode) !== null && _selection_$anchorNod !== void 0 && (_selection_$anchorNod = _selection_$anchorNod.className) !== null && _selection_$anchorNod !== void 0 && _selection_$anchorNod.includes('TextField'))) refs.range.current = selection_.getRangeAt(0);
}, [open]);
_react.default.useEffect(() => {
if (!selection) {
updateOpen('colorMiniMenu', false);
updateOpen('backgroundMiniMenu', false);
updateOpen('linkMiniMenu', false);
}
}, [selection]);
const query = command => {
return (0, _utils.parse)(refs.rootDocument.current.queryCommandValue(command));
};
const includesMinMenu = (...args) => args.some(item => refs.miniMenuInclude.current.includes(item));
const clear = (element = refs.value.current) => {
const children_ = Array.from(element.children);
const toRemove = [];
const other_ = [];
children_.forEach((item_0, index) => {
item_0.tagName === 'SPAN' && !item_0.innerHTML || item_0.tagName === 'BR' && index > 0 && children_[index - 1].tagName === 'SPAN' && !children_[index - 1].innerHTML ? toRemove.push(item_0) : other_.push(item_0);
});
toRemove.forEach(item_1 => item_1.remove());
other_.forEach(item_2 => clear(item_2));
};
const onUpdate = event => {
// Clear from empty element values
clear();
if ((0, _utils.is)('function', onChange)) onChange(event);
};
const updateInputValues = (property, itemValue) => {
setInputValues(values => _objectSpread(_objectSpread({}, values), {}, {
[property]: itemValue
}));
};
const updateOpen = (property_0, itemValue_0) => {
setOpen(values_0 => _objectSpread(_objectSpread({}, values_0), {}, {
[property_0]: itemValue_0
}));
};
const paste = async () => {
const value_ = await navigator.clipboard.read();
if (value_) {
let values_1 = '';
for (const item_3 of Array.from(value_)) {
const valueItem = await item_3.getType('text/html');
values_1 += await valueItem.text();
}
refs.rootDocument.current.execCommand('insertHTML', undefined, values_1);
}
};
const method = command_0 => argument => {
switch (command_0) {
// updates
case 'italic':
refs.rootDocument.current.execCommand('italic');
if (query('italic')) setSelected(values_24 => [...values_24, 'italic']);else setSelected(values_25 => values_25.filter(item_21 => item_21 !== 'italic'));
break;
case 'underline':
refs.rootDocument.current.execCommand('underline');
if (query('underline')) setSelected(values_22 => [...values_22, 'underline']);else setSelected(values_23 => values_23.filter(item_20 => item_20 !== 'underline'));
break;
case 'bold':
refs.rootDocument.current.execCommand('bold');
if (query('bold')) setSelected(values_20 => [...values_20, 'bold']);else setSelected(values_21 => values_21.filter(item_19 => item_19 !== 'bold'));
break;
case 'strike-line':
refs.rootDocument.current.execCommand('strikeThrough');
if (query('strikeThrough')) setSelected(values_18 => [...values_18, 'strike-line']);else setSelected(values_19 => values_19.filter(item_18 => item_18 !== 'strike-line'));
break;
case 'align-left':
refs.rootDocument.current.execCommand('justifyLeft');
if (query('justifyLeft')) setSelected(values_16 => [...values_16.filter(item_16 => !item_16.includes('align')), 'align-left']);else setSelected(values_17 => values_17.filter(item_17 => item_17 !== 'align-left'));
break;
case 'align-center':
refs.rootDocument.current.execCommand('justifyCenter');
if (query('justifyCenter')) setSelected(values_14 => [...values_14.filter(item_14 => !item_14.includes('align')), 'align-center']);else setSelected(values_15 => values_15.filter(item_15 => item_15 !== 'align-center'));
break;
case 'align-right':
refs.rootDocument.current.execCommand('justifyRight');
if (query('justifyRight')) setSelected(values_12 => [...values_12.filter(item_12 => !item_12.includes('align')), 'align-right']);else setSelected(values_13 => values_13.filter(item_13 => item_13 !== 'align-right'));
break;
case 'align-justify':
refs.rootDocument.current.execCommand('justifyFull');
if (query('justifyFull')) setSelected(values_10 => [...values_10.filter(item_10 => !item_10.includes('align')), 'align-justify']);else setSelected(values_11 => values_11.filter(item_11 => item_11 !== 'align-justify'));
break;
case 'superscript':
refs.rootDocument.current.execCommand('superscript');
if (query('superscript')) setSelected(values_8 => [...values_8, 'superscript']);else setSelected(values_9 => values_9.filter(item_9 => item_9 !== 'superscript'));
break;
case 'subscript':
refs.rootDocument.current.execCommand('subscript');
if (query('subscript')) setSelected(values_6 => [...values_6, 'subscript']);else setSelected(values_7 => values_7.filter(item_8 => item_8 !== 'subscript'));
break;
case 'indent':
refs.rootDocument.current.execCommand('indent');
break;
case 'outdent':
refs.rootDocument.current.execCommand('outdent');
break;
case 'font-version':
refs.rootDocument.current.execCommand('formatBlock', undefined, argument);
break;
case 'font-family':
refs.rootDocument.current.execCommand('styleWithCSS', true);
refs.rootDocument.current.execCommand('fontName', undefined, argument);
refs.rootDocument.current.execCommand('styleWithCSS', false);
break;
case 'font-size':
refs.rootDocument.current.execCommand('styleWithCSS', true);
refs.rootDocument.current.execCommand('fontSize', undefined, argument);
refs.rootDocument.current.execCommand('styleWithCSS', false);
break;
case 'font-color':
refs.rootDocument.current.execCommand('styleWithCSS', true);
refs.rootDocument.current.execCommand('foreColor', undefined, argument);
refs.rootDocument.current.execCommand('styleWithCSS', false);
break;
case 'font-background':
refs.rootDocument.current.execCommand('styleWithCSS', true);
refs.rootDocument.current.execCommand('backColor', undefined, argument);
refs.rootDocument.current.execCommand('styleWithCSS', false);
break;
case 'list-ordered':
refs.rootDocument.current.execCommand('insertOrderedList');
if (query('insertOrderedList')) setSelected(values_4 => [...values_4.filter(item_6 => !item_6.includes('list')), 'list-ordered']);else setSelected(values_5 => values_5.filter(item_7 => item_7 !== 'list-ordered'));
break;
case 'list-unordered':
refs.rootDocument.current.execCommand('insertUnorderedList');
if (query('insertUnorderedList')) setSelected(values_2 => [...values_2.filter(item_4 => !item_4.includes('list')), 'list-unordered']);else setSelected(values_3 => values_3.filter(item_5 => item_5 !== 'list-unordered'));
break;
case 'horizontal-rule':
refs.rootDocument.current.execCommand('insertHorizontalRule');
break;
case 'link-add':
refs.rootDocument.current.execCommand('createLink', undefined, argument);
break;
case 'link-remove':
refs.rootDocument.current.execCommand('unlink');
break;
case 'image':
refs.rootDocument.current.execCommand('insertImage', undefined, argument);
break;
case 'html':
refs.rootDocument.current.execCommand('insertHTML', undefined, argument);
break;
// actions
case 'copy':
refs.rootDocument.current.execCommand('copy');
break;
case 'cut':
refs.rootDocument.current.execCommand('cut');
break;
case 'paste':
if (refs.rootDocument.current.queryCommandSupported('paste')) refs.rootDocument.current.execCommand('paste');else paste();
break;
case 'delete':
refs.rootDocument.current.execCommand('delete');
break;
case 'clear':
refs.rootDocument.current.execCommand('removeFormat');
break;
case 'select-all':
refs.rootDocument.current.execCommand('selectAll');
break;
case 'undo':
refs.rootDocument.current.execCommand('undo');
break;
case 'redo':
refs.rootDocument.current.execCommand('redo');
break;
default:
break;
}
};
const includes = (...args_0) => !(0, _utils.is)('array', exclude) || args_0.some(item_22 => !exclude.includes(item_22));
// italic, underline, bold
// updates toolbar
const updateOptions = ['font-family', 'font-version', 'font-size', 'font-color', 'font-background', 'italic', 'underline', 'bold', 'strike-line', 'align-left', 'align-center', 'align-right', 'align-justify', 'superscript', 'subscript', 'indent', 'outdent', 'list-ordered', 'list-unordered', 'horizontal-rule', 'link-add', 'link-remove', 'quote', 'image', 'video', 'video-youtube', 'table', 'drawing', 'code'];
const updates_ = updates && (!(0, _utils.is)('array', exclude) || includes(...updateOptions));
// copy, paste, cut
// action toolbar
const actions_ = actions && (!(0, _utils.is)('array', exclude) || includes('copy', 'paste', 'cut', 'clear', 'undo', 'redo', 'delete', 'select-all', 'save', 'print'));
const AppendProps = _objectSpread({
padding: [14, 14]
}, AppendProps_);
const DividerProps = _objectSpread({
color: 'inherit'
}, DividerProps_);
const TooltipProps = _objectSpread({
position: 'bottom',
interactive: false
}, TooltipProps_);
const ToggleButtonsProps = _objectSpread({
tonal,
color,
version: 'text',
border: false
}, ToggleButtonsProps_);
const ToggleButtonProps = _objectSpread({
size: 'small'
}, ToggleButtonProps_);
const MiniMenuProps = _objectSpread({
tonal,
color: refs.props.current.color !== undefined ? refs.props.current.color : 'themed'
}, MiniMenuProps_);
const SelectProps = _objectSpread({
tonal,
color: refs.props.current.color !== undefined ? refs.props.current.color : 'themed',
version: 'outlined',
size: 'small',
ListProps: {
tonal,
color: refs.props.current.color !== undefined ? refs.props.current.color : 'themed'
},
MenuProps: {
portal: true
}
}, SelectProps_);
const ListItemProps = _objectSpread({
size: 'small',
PrimaryProps: {
style: {
fontFamily: 'inherit'
}
}
}, ListItemProps_);
const IconProps = _objectSpread({
size: 'small'
}, IconProps_);
const WrapperToggleButton = props_ => {
const {
open: open_,
name,
children: children__0
} = props_,
other__0 = (0, _objectWithoutProperties2.default)(props_, _excluded2);
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Tooltip, _objectSpread(_objectSpread({
open: open_ !== undefined ? open_ : undefined,
name: name
}, TooltipProps), {}, {
children: /*#__PURE__*/_react.default.cloneElement(children__0, _objectSpread(_objectSpread({}, other__0), children__0.props))
}));
};
const WrapperAppend = props__0 => {
const {
open: open__0,
element: element_0,
anchorElement,
onClose,
children: children__1
} = props__0,
other__1 = (0, _objectWithoutProperties2.default)(props__0, _excluded3);
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Append, _objectSpread(_objectSpread({
open: open__0,
element: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Fade, {
in: open__0,
add: true,
children: /*#__PURE__*/_react.default.cloneElement(element_0)
})
}),
anchorElement: anchorElement,
portal: true,
alignment: "center",
position: "bottom"
}, AppendProps), {}, {
children: /*#__PURE__*/_react.default.cloneElement(children__1, _objectSpread(_objectSpread({}, other__1), children__1.props))
}));
};
const onMouseDown = () => {
var _selection__0$anchorN;
const selection__0 = refs.rootWindow.current.getSelection();
if (selection__0.anchorNode && !((_selection__0$anchorN = selection__0.anchorNode) !== null && _selection__0$anchorN !== void 0 && (_selection__0$anchorN = _selection__0$anchorN.className) !== null && _selection__0$anchorN !== void 0 && _selection__0$anchorN.includes('TextField'))) refs.range.current = selection__0.getRangeAt(0);
};
const onMouseUp = () => {
if (refs.range.current) {
const selection__1 = refs.rootWindow.current.getSelection();
selection__1.removeAllRanges();
selection__1.addRange(refs.range.current);
}
};
const PaletteItem = props__1 => {
const {
color: color_
} = props__1,
other__2 = (0, _objectWithoutProperties2.default)(props__1, _excluded4);
return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", _objectSpread({
className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('RichTextEditor', theme) && ['onesy-RichTextEditor-palette-item'], classes.paletteItem]),
style: {
background: color_
}
}, other__2));
};
const Palette = props__2 => {
const {
ref: ref_,
version: version_,
onUpdate: onUpdate_,
onClose: onClose_0
} = props__2,
other__3 = (0, _objectWithoutProperties2.default)(props__2, _excluded5);
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Line, _objectSpread(_objectSpread({
ref: ref_,
gap: 1,
direction: "column",
tonal: tonal,
color: refs.props.current.color !== undefined ? refs.props.current.color : 'themed',
Component: Surface,
className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('RichTextEditor', theme) && ['onesy-RichTextEditor-palette'], classes.palette])
}, other__3), {}, {
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(Line, {
gap: 0.5,
onMouseUp: onMouseUp,
onMouseDown: onMouseDown,
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(Line, {
gap: 0.5,
direction: "row",
style: {
width: '100%'
},
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(PaletteItem, {
color: "#000000",
onClick: () => {
onUpdate_('#000000');
onClose_0();
}
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(PaletteItem, {
color: "#ffffff",
onClick: () => {
onUpdate_('#ffffff');
onClose_0();
}
})]
}), Object.keys(_styleReact.colors).filter(item_23 => !['black', 'white'].includes(item_23)).map((item_24, index_0) => /*#__PURE__*/(0, _jsxRuntime.jsx)(Line, {
gap: 0.5,
direction: "row",
style: {
width: '100%'
},
children: Object.keys(_styleReact.colors[item_24]).map((item_, index_) => /*#__PURE__*/(0, _jsxRuntime.jsx)(PaletteItem, {
color: _styleReact.colors[item_24][item_],
onClick: () => {
if (refs.range.current) {
const selection__2 = refs.rootWindow.current.getSelection();
selection__2.removeAllRanges();
selection__2.addRange(refs.range.current);
}
onUpdate_(_styleReact.colors[item_24][item_]);
onClose_0();
}
}, index_))
}, index_0))]
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(Divider, {}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(Line, {
gap: 0.5,
direction: "row",
align: "center",
style: {
width: '100%'
},
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(ColorTextField, _objectSpread(_objectSpread({
tonal: tonal,
color: color,
name: l('Custom color'),
version: "outlined",
size: "small",
value: refs.inputValues.current[version_],
onChange: valueNew => updateInputValues(version_, valueNew)
}, ColorTextFieldProps), {}, {
className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('RichTextEditor', theme) && ['onesy-RichTextEditor-text-field-color'], ColorTextFieldProps === null || ColorTextFieldProps === void 0 ? void 0 : ColorTextFieldProps.className, classes.textFieldColor])
})), /*#__PURE__*/(0, _jsxRuntime.jsx)(Button, {
tonal: tonal,
color: "inherit",
version: "text",
size: "small",
onClick: () => {
if (refs.range.current) {
const selection__3 = refs.rootWindow.current.getSelection();
selection__3.removeAllRanges();
selection__3.addRange(refs.range.current);
}
onUpdate_(refs.inputValues.current[version_]);
onClose_0();
},
children: "Apply"
})]
})]
}));
};
const Input = props__3 => {
const {
ref: ref__0,
label,
labelButton,
value: value__,
onChange: onChange__,
onClick,
InputComponent = TextField,
InputProps
} = props__3,
other__4 = (0, _objectWithoutProperties2.default)(props__3, _excluded6);
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Line, _objectSpread(_objectSpread({
ref: ref__0,
gap: 1,
direction: "column",
tonal: tonal,
color: refs.props.current.color !== undefined ? refs.props.current.color : 'themed',
Component: Surface,
className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('RichTextEditor', theme) && ['onesy-RichTextEditor-palette'], classes.palette])
}, other__4), {}, {
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(Line, {
gap: 0.5,
direction: "row",
align: "center",
style: {
width: '100%'
},
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(InputComponent, _objectSpread({
tonal: tonal,
color: color,
name: label,
version: "outlined",
size: "small",
value: value__,
onChange: onChange__,
className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('RichTextEditor', theme) && ['onesy-RichTextEditor-text-field-color'], classes.textFieldColor])
}, InputProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(Button, {
tonal: tonal,
color: "inherit",
version: "text",
size: "small",
onClick: onClick,
children: labelButton
})]
})
}));
};
const font_families = [...fontFamilies, ...addFontFamilies];
const font_sizes = [{
label: '11',
value: 1
}, {
label: '14',
value: 2
}, {
label: '16',
value: 3
}, {
label: '18',
value: 4
}, {
label: '24',
value: 5
}, {
label: '32',
value: 6
}, {
label: '48',
value: 7
}];
const font_versions = [{
label: /*#__PURE__*/(0, _jsxRuntime.jsx)(Type, {
version: "b2",
children: l('Normal text')
}),
value: 'p'
}, {
label: /*#__PURE__*/(0, _jsxRuntime.jsx)(Type, {
version: "h1",
children: l('Heading 1')
}),
value: 'h1'
}, {
label: /*#__PURE__*/(0, _jsxRuntime.jsx)(Type, {
version: "h2",
children: l('Heading 2')
}),
value: 'h2'
}, {
label: /*#__PURE__*/(0, _jsxRuntime.jsx)(Type, {
version: "h3",
children: l('Heading 3')
}),
value: 'h3'
}, {
label: /*#__PURE__*/(0, _jsxRuntime.jsx)(Type, {
version: "t1",
children: l('Heading 4')
}),
value: 'h4'
}, {
label: /*#__PURE__*/(0, _jsxRuntime.jsx)(Type, {
version: "t2",
children: l('Heading 5')
}),
value: 'h5'
}];
const queryValueUpdate = () => {
const selected_ = [];
const inputValues_ = _objectSpread({}, inputValues);
const updateOptionValues = [{
name: 'italic',
command: 'italic'
}, {
name: 'underline',
command: 'underline'
}, {
name: 'bold',
command: 'bold'
}, {
name: 'strike-line',
command: 'strikeThrough'
}, {
name: 'align-left',
command: 'justifyLeft'
}, {
name: 'align-center',
command: 'justifyCenter'
}, {
name: 'align-right',
command: 'justifyRight'
}, {
name: 'align-justify',
command: 'justifyFull'
}, {
name: 'superscript',
command: 'superscript'
}, {
name: 'subscript',
command: 'subscript'
}, {
name: 'list-ordered',
command: 'insertOrderedList'
}, {
name: 'list-unordered',
command: 'insertUnorderedList'
}];
updateOptionValues.forEach(item_25 => {
if (query(item_25.command)) selected_.push(item_25.name);
});
// Font version
const fontVersion = query('formatBlock');
const fontVersionValue = font_versions.find(item__0 => item__0.value === fontVersion) || font_versions[0];
inputValues_['font-version'] = fontVersionValue === null || fontVersionValue === void 0 ? void 0 : fontVersionValue.value;
// Font family
const fontFamily = query('fontName');
const fontFamilyValue = font_families.find(item__2 => fontFamily === null || fontFamily === void 0 ? void 0 : fontFamily.includes(item__2.label)) || font_families.find(item__1 => item__1.label === 'DM Sans');
inputValues_['font-family'] = fontFamilyValue === null || fontFamilyValue === void 0 ? void 0 : fontFamilyValue.value;
// Font version
const fontSize = query('fontSize');
const fontSizeValue = font_sizes.find(item__4 => item__4.value === fontSize) || font_sizes.find(item__3 => item__3.label === '14');
inputValues_['font-size'] = fontSizeValue === null || fontSizeValue === void 0 ? void 0 : fontSizeValue.value;
setInputValues(inputValues_);
setSelected(selected_);
};
const onMouseUpValue = () => {
queryValueUpdate();
setTimeout(() => {
const selection__4 = refs.rootWindow.current.getSelection();
if (!selection__4.anchorNode || !refs.value.current.contains(selection__4.anchorNode)) return setSelection('');
const rect = selection__4.getRangeAt(0).getBoundingClientRect();
setSelection(Math.round(rect.width) ? rect : '');
});
};
const onMouseDownValue = () => {
queryValueUpdate();
};
const updateElements = {
'font-version': /*#__PURE__*/(0, _jsxRuntime.jsx)(Select, _objectSpread(_objectSpread({
name: l('Font Version'),
valueDefault: font_versions.find(item_26 => item_26.value.includes('p')).value,
value: inputValues['font-version'],
onChange: valueNew_0 => {
updateInputValues('font-version', valueNew_0);
method('font-version')(valueNew_0);
},
onMouseUp: onMouseUp,
onMouseDown: onMouseDown
}, SelectProps), {}, {
className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('RichTextEditor', theme) && ['onesy-RichTextEditor-select'], SelectProps === null || SelectProps === void 0 ? void 0 : SelectProps.className, classes.select]),
style: {
minWidth: '150px'
},
children: font_versions.map(item_27 => /*#__PURE__*/(0, _jsxRuntime.jsx)(ListItem, _objectSpread({
primary: item_27.label,
value: item_27.value,
button: true
}, ListItemProps), item_27.value))
})),
'font-family': /*#__PURE__*/(0, _jsxRuntime.jsx)(Select, _objectSpread(_objectSpread({
name: l('Font Family'),
valueDefault: font_families.find(item_28 => item_28.label.includes('DM Sans')).value,
value: inputValues['font-family'],
onChange: valueNew_1 => {
updateInputValues('font-family', valueNew_1);
method('font-family')(valueNew_1);
},
onMouseUp: onMouseUp,
onMouseDown: onMouseDown
}, SelectProps), {}, {
className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('RichTextEditor', theme) && ['onesy-RichTextEditor-select'], SelectProps === null || SelectProps === void 0 ? void 0 : SelectProps.className, classes.select]),
style: {
minWidth: '140px'
},
children: font_families.map(item_29 => /*#__PURE__*/(0, _jsxRuntime.jsx)(ListItem, _objectSpread({
primary: item_29.label,
value: item_29.value,
button: true,
style: {
fontFamily: item_29.value
}
}, ListItemProps), item_29.value))
})),
'font-size': /*#__PURE__*/(0, _jsxRuntime.jsx)(Select, _objectSpread(_objectSpread({
name: l('Font Size'),
valueDefault: +font_sizes.find(item_30 => item_30.label.includes('14')).value,
value: inputValues['font-size'],
onChange: valueNew_2 => {
updateInputValues('font-size', +valueNew_2);
method('font-size')(+valueNew_2);
},
onMouseUp: onMouseUp,
onMouseDown: onMouseDown
}, SelectProps), {}, {
className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('RichTextEditor', theme) && ['onesy-RichTextEditor-select'], SelectProps === null || SelectProps === void 0 ? void 0 : SelectProps.className, classes.select]),
children: font_sizes.map(item_31 => /*