@onesy/ui-react 1.0.65 → 1.0.67
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -18,6 +18,8 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
18
18
|
const react_1 = __importDefault(require("react"));
|
19
19
|
const utils_1 = require("@onesy/utils");
|
20
20
|
const style_react_1 = require("@onesy/style-react");
|
21
|
+
const IconMaterialSuperscriptW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialSuperscriptW100"));
|
22
|
+
const IconMaterialSubscriptW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialSubscriptW100"));
|
21
23
|
const IconMaterialFormatItalicW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatItalicW100"));
|
22
24
|
const IconMaterialFormatUnderlinedW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatUnderlinedW100"));
|
23
25
|
const IconMaterialStrikethroughSW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialStrikethroughSW100"));
|
@@ -201,7 +203,7 @@ const SmartTextField = react_1.default.forwardRef((props_, ref) => {
|
|
201
203
|
setOptionsMention([...(optionsMention_ || [])]);
|
202
204
|
}, [(0, utils_1.hash)(optionsMention_)]);
|
203
205
|
react_1.default.useEffect(() => {
|
204
|
-
const valuePrevious = (
|
206
|
+
const valuePrevious = (refs.root.current.innerHTML || '').replaceAll(' ', ' ');
|
205
207
|
const valueNew = (0, utils_1.textToInnerHTML)(value_);
|
206
208
|
if (value_ !== undefined && valuePrevious !== valueNew)
|
207
209
|
validate(!value_ ? '' : (0, utils_2.sanitize)(value_));
|
@@ -288,7 +290,7 @@ const SmartTextField = react_1.default.forwardRef((props_, ref) => {
|
|
288
290
|
refs.search.current = getAtSearchData();
|
289
291
|
const onInput = react_1.default.useCallback((event) => {
|
290
292
|
if (refs.root.current) {
|
291
|
-
let valueInput =
|
293
|
+
let valueInput = refs.root.current.innerHTML || '';
|
292
294
|
if (refs.root.current.textContent === '') {
|
293
295
|
valueInput = '';
|
294
296
|
refs.root.current.innerHTML = '';
|
@@ -454,7 +456,7 @@ const SmartTextField = react_1.default.forwardRef((props_, ref) => {
|
|
454
456
|
// Remove the text node
|
455
457
|
textNode.remove();
|
456
458
|
// Invoke onChange method with new value
|
457
|
-
const valueInput = (0, utils_1.innerHTMLToText)(
|
459
|
+
const valueInput = (0, utils_1.innerHTMLToText)(refs.root.current.innerHTML);
|
458
460
|
if ((0, utils_1.is)('function', refs.onChange.current))
|
459
461
|
refs.onChange.current(valueInput, { target: refs.root.current });
|
460
462
|
// Update the caret position to be outside the span mention
|
@@ -583,6 +585,20 @@ const SmartTextField = react_1.default.forwardRef((props_, ref) => {
|
|
583
585
|
else
|
584
586
|
setTextSelected((values) => values.filter((item) => item !== 'strike-line'));
|
585
587
|
break;
|
588
|
+
case 'superscript':
|
589
|
+
refs.rootDocument.current.execCommand('superscript');
|
590
|
+
if (query('superscript'))
|
591
|
+
setTextSelected(values => [...values, 'superscript']);
|
592
|
+
else
|
593
|
+
setTextSelected(values => values.filter(item => item !== 'superscript'));
|
594
|
+
break;
|
595
|
+
case 'subscript':
|
596
|
+
refs.rootDocument.current.execCommand('subscript');
|
597
|
+
if (query('subscript'))
|
598
|
+
setTextSelected(values => [...values, 'subscript']);
|
599
|
+
else
|
600
|
+
setTextSelected(values => values.filter(item => item !== 'subscript'));
|
601
|
+
break;
|
586
602
|
case 'link-add':
|
587
603
|
refs.rootDocument.current.execCommand('createLink', undefined, argument);
|
588
604
|
break;
|
@@ -680,6 +696,8 @@ const SmartTextField = react_1.default.forwardRef((props_, ref) => {
|
|
680
696
|
'italic': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Italic') }, { children: (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.textSelected.current.includes('italic'), onClick: textMethod('italic') }, { children: (0, jsx_runtime_1.jsx)(IconMaterialFormatItalicW100_1.default, Object.assign({}, IconProps)) })) }))),
|
681
697
|
'underline': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Underline') }, { children: (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.textSelected.current.includes('underline'), onClick: textMethod('underline') }, { children: (0, jsx_runtime_1.jsx)(IconMaterialFormatUnderlinedW100_1.default, Object.assign({}, IconProps)) })) }))),
|
682
698
|
'bold': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Bold'), onClick: textMethod('bold') }, { children: (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.textSelected.current.includes('bold') }, { children: (0, jsx_runtime_1.jsx)(IconMaterialFormatBoldW100_1.default, Object.assign({}, IconProps)) })) }))),
|
699
|
+
'superscript': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Superscript'), onClick: textMethod('superscript') }, { children: (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.textSelected.current.includes('superscript') }, { children: (0, jsx_runtime_1.jsx)(IconMaterialSuperscriptW100_1.default, Object.assign({}, IconProps)) })) }))),
|
700
|
+
'subscript': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Subscript'), onClick: textMethod('subscript') }, { children: (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.textSelected.current.includes('subscript') }, { children: (0, jsx_runtime_1.jsx)(IconMaterialSubscriptW100_1.default, Object.assign({}, IconProps)) })) }))),
|
683
701
|
'strike-line': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Strike Line'), onClick: textMethod('strike-line') }, { children: (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.textSelected.current.includes('strike-line') }, { children: (0, jsx_runtime_1.jsx)(IconMaterialStrikethroughSW100_1.default, Object.assign({}, IconProps)) })) }))),
|
684
702
|
'link-add': ((0, jsx_runtime_1.jsx)(WrapperAppend, Object.assign({ open: refs.open.current.linkMiniMenu, anchorElement: refs.miniMenuElements.linkAdd, element: ((0, jsx_runtime_1.jsx)(ClickListener, Object.assign({ onClickOutside: () => updateOpen('linkMiniMenu', false), include: [refs.miniMenuElements.linkAdd] }, { children: (0, jsx_runtime_1.jsx)(Input, { ref: refs.miniMenuElements.linkAddInput, name: l('Link'), labelButton: l('Add'), value: refs.inputValues.current.link, onChange: (valueNew) => updateInputValues('link', valueNew), onClick: () => {
|
685
703
|
if (refs.range.current) {
|
@@ -720,7 +738,7 @@ const SmartTextField = react_1.default.forwardRef((props_, ref) => {
|
|
720
738
|
setTextSelection(null);
|
721
739
|
}, include: [refs.miniMenu, refs.miniMenu.current, refs.miniMenuElements.linkAddInput, refs.miniMenuElements.linkAddInput.current] }, { children: (0, jsx_runtime_1.jsxs)(Line, Object.assign({ gap: 2, direction: 'row', align: 'center', justify: 'flex-start', role: 'toolbar', color: 'themed', "aria-label": l('Mini menu'), Component: Surface, className: (0, style_react_1.classNames)([
|
722
740
|
classes.textMiniMenu
|
723
|
-
]) }, { children: [(0, jsx_runtime_1.jsxs)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: [updateElements['italic'], updateElements['underline'], updateElements['bold'], updateElements['strike-line']] })), (0, jsx_runtime_1.jsxs)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: [updateElements['link-add'], updateElements['link-remove']] })), (0, jsx_runtime_1.jsx)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: actionElements['clear'] }))] })) })) })) })));
|
741
|
+
]) }, { children: [(0, jsx_runtime_1.jsxs)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: [updateElements['italic'], updateElements['underline'], updateElements['bold'], updateElements['strike-line']] })), (0, jsx_runtime_1.jsxs)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: [updateElements['superscript'], updateElements['subscript']] })), (0, jsx_runtime_1.jsxs)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: [updateElements['link-add'], updateElements['link-remove']] })), (0, jsx_runtime_1.jsx)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: actionElements['clear'] }))] })) })) })) })));
|
724
742
|
}, parent: refs.root.current, anchor: textSelection === null || textSelection === void 0 ? void 0 : textSelection.selection, portal: true, alignment: 'center', position: 'bottom', clearOnClose: true }, AppendProps)));
|
725
743
|
}, [open, textSelection, textSelected]);
|
726
744
|
const menu = react_1.default.useMemo(() => {
|
@@ -10,6 +10,8 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
10
10
|
import React from 'react';
|
11
11
|
import { hash, innerHTMLToText, is, isEnvironment, parse, stringToColor, textToInnerHTML } from '@onesy/utils';
|
12
12
|
import { classNames, style as styleMethod, useOnesyTheme } from '@onesy/style-react';
|
13
|
+
import IconMaterialSuperscript from '@onesy/icons-material-rounded-react/IconMaterialSuperscriptW100';
|
14
|
+
import IconMaterialSubscript from '@onesy/icons-material-rounded-react/IconMaterialSubscriptW100';
|
13
15
|
import IconMaterialFormatItalic from '@onesy/icons-material-rounded-react/IconMaterialFormatItalicW100';
|
14
16
|
import IconMaterialFormatUnderlined from '@onesy/icons-material-rounded-react/IconMaterialFormatUnderlinedW100';
|
15
17
|
import IconMaterialStrikethroughS from '@onesy/icons-material-rounded-react/IconMaterialStrikethroughSW100';
|
@@ -32,7 +34,7 @@ import ToggleButtonElement from '../ToggleButton';
|
|
32
34
|
import ClickListenerElement from '../ClickListener';
|
33
35
|
import ToggleButtonsElement from '../ToggleButtons';
|
34
36
|
import MenuElement from '../Menu';
|
35
|
-
import { sanitize, caret, keyboardStyleCommands, staticClassName
|
37
|
+
import { sanitize, caret, keyboardStyleCommands, staticClassName } from '../utils';
|
36
38
|
const useStyle = styleMethod(theme => ({
|
37
39
|
root: {
|
38
40
|
minHeight: '20px',
|
@@ -227,7 +229,7 @@ const SmartTextField = /*#__PURE__*/React.forwardRef((props_, ref) => {
|
|
227
229
|
setOptionsMention([...(optionsMention_ || [])]);
|
228
230
|
}, [hash(optionsMention_)]);
|
229
231
|
React.useEffect(() => {
|
230
|
-
const valuePrevious =
|
232
|
+
const valuePrevious = (refs.root.current.innerHTML || '').replaceAll(' ', ' ');
|
231
233
|
const valueNew = textToInnerHTML(value_);
|
232
234
|
if (value_ !== undefined && valuePrevious !== valueNew) validate(!value_ ? '' : sanitize(value_));
|
233
235
|
}, [value_]);
|
@@ -307,7 +309,7 @@ const SmartTextField = /*#__PURE__*/React.forwardRef((props_, ref) => {
|
|
307
309
|
refs.search.current = getAtSearchData();
|
308
310
|
const onInput = React.useCallback(event => {
|
309
311
|
if (refs.root.current) {
|
310
|
-
let valueInput =
|
312
|
+
let valueInput = refs.root.current.innerHTML || '';
|
311
313
|
if (refs.root.current.textContent === '') {
|
312
314
|
valueInput = '';
|
313
315
|
refs.root.current.innerHTML = '';
|
@@ -472,7 +474,7 @@ const SmartTextField = /*#__PURE__*/React.forwardRef((props_, ref) => {
|
|
472
474
|
textNode.remove();
|
473
475
|
|
474
476
|
// Invoke onChange method with new value
|
475
|
-
const valueInput = innerHTMLToText(
|
477
|
+
const valueInput = innerHTMLToText(refs.root.current.innerHTML);
|
476
478
|
if (is('function', refs.onChange.current)) refs.onChange.current(valueInput, {
|
477
479
|
target: refs.root.current
|
478
480
|
});
|
@@ -606,6 +608,14 @@ const SmartTextField = /*#__PURE__*/React.forwardRef((props_, ref) => {
|
|
606
608
|
refs.rootDocument.current.execCommand('strikeThrough');
|
607
609
|
if (query('strikeThrough')) setTextSelected(values => [...values, 'strike-line']);else setTextSelected(values => values.filter(item => item !== 'strike-line'));
|
608
610
|
break;
|
611
|
+
case 'superscript':
|
612
|
+
refs.rootDocument.current.execCommand('superscript');
|
613
|
+
if (query('superscript')) setTextSelected(values => [...values, 'superscript']);else setTextSelected(values => values.filter(item => item !== 'superscript'));
|
614
|
+
break;
|
615
|
+
case 'subscript':
|
616
|
+
refs.rootDocument.current.execCommand('subscript');
|
617
|
+
if (query('subscript')) setTextSelected(values => [...values, 'subscript']);else setTextSelected(values => values.filter(item => item !== 'subscript'));
|
618
|
+
break;
|
609
619
|
case 'link-add':
|
610
620
|
refs.rootDocument.current.execCommand('createLink', undefined, argument);
|
611
621
|
break;
|
@@ -769,6 +779,18 @@ const SmartTextField = /*#__PURE__*/React.forwardRef((props_, ref) => {
|
|
769
779
|
}, /*#__PURE__*/React.createElement(ToggleButton, _extends({}, ToggleButtonProps, {
|
770
780
|
selected: refs.textSelected.current.includes('bold')
|
771
781
|
}), /*#__PURE__*/React.createElement(IconMaterialFormatBold, IconProps))),
|
782
|
+
'superscript': /*#__PURE__*/React.createElement(WrapperToggleButton, {
|
783
|
+
name: l('Superscript'),
|
784
|
+
onClick: textMethod('superscript')
|
785
|
+
}, /*#__PURE__*/React.createElement(ToggleButton, _extends({}, ToggleButtonProps, {
|
786
|
+
selected: refs.textSelected.current.includes('superscript')
|
787
|
+
}), /*#__PURE__*/React.createElement(IconMaterialSuperscript, IconProps))),
|
788
|
+
'subscript': /*#__PURE__*/React.createElement(WrapperToggleButton, {
|
789
|
+
name: l('Subscript'),
|
790
|
+
onClick: textMethod('subscript')
|
791
|
+
}, /*#__PURE__*/React.createElement(ToggleButton, _extends({}, ToggleButtonProps, {
|
792
|
+
selected: refs.textSelected.current.includes('subscript')
|
793
|
+
}), /*#__PURE__*/React.createElement(IconMaterialSubscript, IconProps))),
|
772
794
|
'strike-line': /*#__PURE__*/React.createElement(WrapperToggleButton, {
|
773
795
|
name: l('Strike Line'),
|
774
796
|
onClick: textMethod('strike-line')
|
@@ -862,7 +884,7 @@ const SmartTextField = /*#__PURE__*/React.forwardRef((props_, ref) => {
|
|
862
884
|
"aria-label": l('Mini menu'),
|
863
885
|
Component: Surface,
|
864
886
|
className: classNames([classes.textMiniMenu])
|
865
|
-
}, /*#__PURE__*/React.createElement(ToggleButtons, ToggleButtonsProps, updateElements['italic'], updateElements['underline'], updateElements['bold'], updateElements['strike-line']), /*#__PURE__*/React.createElement(ToggleButtons, ToggleButtonsProps, updateElements['link-add'], updateElements['link-remove']), /*#__PURE__*/React.createElement(ToggleButtons, ToggleButtonsProps, actionElements['clear'])))));
|
887
|
+
}, /*#__PURE__*/React.createElement(ToggleButtons, ToggleButtonsProps, updateElements['italic'], updateElements['underline'], updateElements['bold'], updateElements['strike-line']), /*#__PURE__*/React.createElement(ToggleButtons, ToggleButtonsProps, updateElements['superscript'], updateElements['subscript']), /*#__PURE__*/React.createElement(ToggleButtons, ToggleButtonsProps, updateElements['link-add'], updateElements['link-remove']), /*#__PURE__*/React.createElement(ToggleButtons, ToggleButtonsProps, actionElements['clear'])))));
|
866
888
|
},
|
867
889
|
parent: refs.root.current,
|
868
890
|
anchor: textSelection?.selection,
|
package/esm/index.js
CHANGED