@block-kit/plugin 1.0.0 → 1.0.3
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.
- package/dist/es/bullet-list/index.js +6 -10
- package/dist/es/{is-2b264ec8.js → bullet-list/utils/is.js} +2 -2
- package/dist/es/bullet-list/view/list.js +9 -0
- package/dist/es/divider/index.js +4 -4
- package/dist/es/emoji/index.js +1 -1
- package/dist/es/image/index.js +11 -121
- package/dist/es/image/view/image.js +39 -0
- package/dist/es/image/view/wrapper.js +91 -0
- package/dist/es/indent/index.js +2 -2
- package/dist/es/index.css +1 -1
- package/dist/es/index.d.ts +1 -1
- package/dist/es/index.js +10 -24
- package/dist/es/inline-code/index.js +1 -1
- package/dist/es/link/index.js +5 -17
- package/dist/es/link/view/a.js +18 -0
- package/dist/es/mention/index.js +28 -13
- package/dist/es/mention/modules/suggest.js +98 -0
- package/dist/es/mention/utils/constant.js +24 -0
- package/dist/es/mention/view/suggest.js +72 -0
- package/dist/es/order-list/index.js +9 -148
- package/dist/es/order-list/utils/format.js +75 -0
- package/dist/es/order-list/utils/is.js +12 -0
- package/dist/es/order-list/utils/serial.js +68 -0
- package/dist/es/order-list/view/list.js +10 -0
- package/dist/es/quote/index.js +3 -3
- package/dist/es/{selection-badfb0bc.js → shared/components/selection.js} +3 -31
- package/dist/es/shared/icons/divider.js +5 -0
- package/dist/es/shared/icons/emoji.js +5 -0
- package/dist/es/shared/icons/font-color.js +5 -0
- package/dist/es/shared/icons/font-size.js +5 -0
- package/dist/es/shared/icons/justify.js +5 -0
- package/dist/es/shared/icons/line-height.js +5 -0
- package/dist/es/shared/icons/text.js +5 -0
- package/dist/es/shared/modules/selection.js +32 -0
- package/dist/es/{dom-71a99400.js → shared/utils/dom.js} +1 -1
- package/dist/es/shared/utils/event.js +5 -0
- package/dist/es/{is-3de778e2.js → shared/utils/is.js} +1 -1
- package/dist/es/shortcut/index.js +8 -27
- package/dist/es/shortcut/modules/preset.js +23 -0
- package/dist/es/toolbar/context/basic.js +69 -0
- package/dist/es/toolbar/context/float.js +67 -0
- package/dist/es/toolbar/context/provider.js +12 -0
- package/dist/es/toolbar/index.d.ts +1 -1
- package/dist/es/toolbar/index.js +45 -34
- package/dist/es/toolbar/modules/align.js +24 -0
- package/dist/es/toolbar/modules/bold.js +16 -0
- package/dist/es/toolbar/modules/bullet-list.js +17 -0
- package/dist/es/toolbar/modules/cut.js +7 -0
- package/dist/es/toolbar/modules/divider.js +15 -0
- package/dist/es/toolbar/modules/emoji.js +26 -0
- package/dist/es/toolbar/modules/font-color.js +50 -0
- package/dist/es/toolbar/modules/font-size.js +21 -0
- package/dist/es/toolbar/modules/heading.js +23 -0
- package/dist/es/toolbar/modules/history.js +35 -0
- package/dist/es/toolbar/modules/image.js +15 -0
- package/dist/es/toolbar/modules/inline-code.js +15 -0
- package/dist/es/toolbar/modules/italic.js +16 -0
- package/dist/es/toolbar/modules/line-height.js +17 -0
- package/dist/es/toolbar/modules/link.js +99 -0
- package/dist/es/toolbar/modules/order-list.js +17 -0
- package/dist/es/toolbar/modules/quote.js +15 -0
- package/dist/es/toolbar/modules/strike.js +15 -0
- package/dist/es/toolbar/modules/underline.js +15 -0
- package/dist/es/{marks-ac0ec630.js → toolbar/utils/marks.js} +1 -5
- package/dist/lib/bullet-list/index.js +21 -25
- package/dist/lib/{is-fa1755d0.js → bullet-list/utils/is.js} +3 -1
- package/dist/lib/bullet-list/view/list.js +13 -0
- package/dist/lib/divider/index.js +7 -7
- package/dist/lib/emoji/index.js +1 -1
- package/dist/lib/image/index.js +10 -120
- package/dist/lib/image/view/image.js +47 -0
- package/dist/lib/image/view/wrapper.js +99 -0
- package/dist/lib/indent/index.js +3 -3
- package/dist/lib/index.css +1 -1
- package/dist/lib/index.d.ts +1 -1
- package/dist/lib/index.js +24 -38
- package/dist/lib/inline-code/index.js +1 -1
- package/dist/lib/link/index.js +3 -15
- package/dist/lib/link/view/a.js +22 -0
- package/dist/lib/mention/index.js +26 -15
- package/dist/lib/mention/modules/suggest.js +106 -0
- package/dist/lib/mention/utils/constant.js +29 -0
- package/dist/lib/mention/view/suggest.js +76 -0
- package/dist/lib/order-list/index.js +34 -173
- package/dist/lib/order-list/utils/format.js +79 -0
- package/dist/lib/{is-18806678.js → order-list/utils/is.js} +4 -2
- package/dist/lib/order-list/utils/serial.js +72 -0
- package/dist/lib/order-list/view/list.js +14 -0
- package/dist/lib/quote/index.js +12 -12
- package/dist/lib/{selection-868f15c1.js → shared/components/selection.js} +2 -29
- package/dist/lib/shared/icons/divider.js +9 -0
- package/dist/lib/shared/icons/emoji.js +9 -0
- package/dist/lib/shared/icons/font-color.js +9 -0
- package/dist/lib/shared/icons/font-size.js +9 -0
- package/dist/lib/shared/icons/justify.js +9 -0
- package/dist/lib/shared/icons/line-height.js +9 -0
- package/dist/lib/shared/icons/text.js +9 -0
- package/dist/lib/shared/modules/selection.js +36 -0
- package/dist/lib/{dom-cb8b8e40.js → shared/utils/dom.js} +2 -0
- package/dist/lib/shared/utils/event.js +9 -0
- package/dist/lib/{is-473d664a.js → shared/utils/is.js} +2 -0
- package/dist/lib/shortcut/index.js +11 -30
- package/dist/lib/shortcut/modules/preset.js +27 -0
- package/dist/lib/toolbar/context/basic.js +73 -0
- package/dist/lib/toolbar/context/float.js +75 -0
- package/dist/lib/toolbar/context/provider.js +21 -0
- package/dist/lib/toolbar/index.d.ts +1 -1
- package/dist/lib/toolbar/index.js +45 -38
- package/dist/lib/toolbar/modules/align.js +36 -0
- package/dist/lib/toolbar/modules/bold.js +24 -0
- package/dist/lib/toolbar/modules/bullet-list.js +25 -0
- package/dist/lib/toolbar/modules/cut.js +11 -0
- package/dist/lib/toolbar/modules/divider.js +19 -0
- package/dist/lib/toolbar/modules/emoji.js +35 -0
- package/dist/lib/toolbar/modules/font-color.js +59 -0
- package/dist/lib/toolbar/modules/font-size.js +31 -0
- package/dist/lib/toolbar/modules/heading.js +35 -0
- package/dist/lib/toolbar/modules/history.js +44 -0
- package/dist/lib/toolbar/modules/image.js +23 -0
- package/dist/lib/toolbar/modules/inline-code.js +23 -0
- package/dist/lib/toolbar/modules/italic.js +24 -0
- package/dist/lib/toolbar/modules/line-height.js +27 -0
- package/dist/lib/toolbar/modules/link.js +114 -0
- package/dist/lib/toolbar/modules/order-list.js +25 -0
- package/dist/lib/toolbar/modules/quote.js +23 -0
- package/dist/lib/toolbar/modules/strike.js +23 -0
- package/dist/lib/toolbar/modules/underline.js +23 -0
- package/dist/lib/{marks-a30b8a0f.js → toolbar/utils/marks.js} +1 -4
- package/dist/styles/index.css +1 -0
- package/package.json +7 -6
- package/dist/es/index-1e46887d.js +0 -205
- package/dist/es/index-ddc2e5ac.js +0 -493
- package/dist/es/is-7f3ae820.js +0 -12
- package/dist/lib/index-f50053bf.js +0 -506
- package/dist/lib/index-ffc4bb34.js +0 -212
- /package/dist/es/{tslib.es6-83956cc1.js → tslib.es6-910e0469.js} +0 -0
- /package/dist/lib/{tslib.es6-d44c9a95.js → tslib.es6-9953fd0d.js} +0 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
|
|
7
|
+
const JustifyIcon = () => (jsxRuntime.jsx("svg", { className: "arco-icon", viewBox: "0 0 1024 1024", version: "1.1", xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "currentColor", children: jsxRuntime.jsx("path", { d: "M875.975111 823.978667a36.010667 36.010667 0 1 1 0 72.021333H148.024889a36.010667 36.010667 0 1 1 0-72.021333h727.950222z m0-231.992889a36.010667 36.010667 0 1 1 0 72.021333H148.024889a36.010667 36.010667 0 1 1 0-72.021333h727.950222z m0-231.992889a36.010667 36.010667 0 1 1 0 72.021333H148.024889a36.010667 36.010667 0 0 1 0-72.021333h727.950222z m0-231.992889a36.010667 36.010667 0 1 1 0 72.021333H148.024889a36.010667 36.010667 0 0 1 0-72.021333h727.950222z", fill: "currentColor" }) }));
|
|
8
|
+
|
|
9
|
+
exports.JustifyIcon = JustifyIcon;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
|
|
7
|
+
const LineHeightIcon = () => (jsxRuntime.jsx("svg", { className: "arco-icon", viewBox: "0 0 1024 1024", version: "1.1", xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "currentColor", children: jsxRuntime.jsx("path", { d: "M469.333333 170.666667h426.666667v85.333333H469.333333V170.666667zM256 298.666667v170.666666H170.666667V298.666667H42.666667l170.666666-170.666667 170.666667 170.666667H256z m0 426.666666h128l-170.666667 170.666667-170.666666-170.666667h128v-170.666666h85.333333v170.666666z m213.333333 42.666667h426.666667v85.333333H469.333333v-85.333333z m-85.333333-298.666667h512v85.333334H384v-85.333334z" }) }));
|
|
8
|
+
|
|
9
|
+
exports.LineHeightIcon = LineHeightIcon;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
|
|
7
|
+
const TextIcon = () => (jsxRuntime.jsx("svg", { className: "arco-icon", viewBox: "0 0 1024 1024", version: "1.1", xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", fill: "currentColor", children: jsxRuntime.jsx("path", { d: "M853.333333 138.666667H170.666667c-17.066667 0-32 14.933333-32 32v128c0 17.066667 14.933333 32 32 32s32-14.933333 32-32V202.666667h277.333333v618.666666H384c-17.066667 0-32 14.933333-32 32s14.933333 32 32 32h256c17.066667 0 32-14.933333 32-32s-14.933333-32-32-32h-96v-618.666666h277.333333V298.666667c0 17.066667 14.933333 32 32 32s32-14.933333 32-32V170.666667c0-17.066667-14.933333-32-32-32z" }) }));
|
|
8
|
+
|
|
9
|
+
exports.TextIcon = TextIcon;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var tslib_es6 = require('../../tslib.es6-9953fd0d.js');
|
|
6
|
+
var core = require('@block-kit/core');
|
|
7
|
+
var utils = require('@block-kit/utils');
|
|
8
|
+
|
|
9
|
+
class SelectionPlugin {
|
|
10
|
+
constructor(editor) {
|
|
11
|
+
this.editor = editor;
|
|
12
|
+
this.idToView = new Map();
|
|
13
|
+
editor.event.on(core.EDITOR_EVENT.SELECTION_CHANGE, this.onSelectionChange);
|
|
14
|
+
}
|
|
15
|
+
destroy() {
|
|
16
|
+
this.idToView.clear();
|
|
17
|
+
this.editor.event.off(core.EDITOR_EVENT.SELECTION_CHANGE, this.onSelectionChange);
|
|
18
|
+
}
|
|
19
|
+
mountView(id, view) {
|
|
20
|
+
this.idToView.set(id, view);
|
|
21
|
+
}
|
|
22
|
+
unmountView(id) {
|
|
23
|
+
this.idToView.delete(id);
|
|
24
|
+
}
|
|
25
|
+
onSelectionChange(e) {
|
|
26
|
+
const current = e.current;
|
|
27
|
+
this.idToView.forEach(view => {
|
|
28
|
+
view.onSelectionChange(current);
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
tslib_es6.__decorate([
|
|
33
|
+
utils.Bind
|
|
34
|
+
], SelectionPlugin.prototype, "onSelectionChange", null);
|
|
35
|
+
|
|
36
|
+
exports.SelectionPlugin = SelectionPlugin;
|
|
@@ -2,39 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var tslib_es6 = require('../tslib.es6-
|
|
5
|
+
var tslib_es6 = require('../tslib.es6-9953fd0d.js');
|
|
6
6
|
var core = require('@block-kit/core');
|
|
7
7
|
var utils = require('@block-kit/utils');
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var is = require('../is-473d664a.js');
|
|
8
|
+
var shared_utils_event = require('../shared/utils/event.js');
|
|
9
|
+
var toolbar_utils_marks = require('../toolbar/utils/marks.js');
|
|
10
|
+
var shortcut_modules_preset = require('./modules/preset.js');
|
|
12
11
|
var shortcut_types_index = require('./types/index.js');
|
|
13
|
-
require('@block-kit/delta');
|
|
14
|
-
|
|
15
|
-
const PRESET_SHORTCUT = {
|
|
16
|
-
[bold_types_index.BOLD_KEY]: (event, payload) => {
|
|
17
|
-
if (event[utils.CTRL_KEY] && is.isKeyCode(event, utils.KEY_CODE.B) && payload.sel) {
|
|
18
|
-
const { editor, keys, sel } = payload;
|
|
19
|
-
editor.perform.applyMarks(sel, { [bold_types_index.BOLD_KEY]: keys[bold_types_index.BOLD_KEY] ? utils.NIL : utils.TRULY });
|
|
20
|
-
return true;
|
|
21
|
-
}
|
|
22
|
-
},
|
|
23
|
-
[italic_types_index.ITALIC_KEY]: (event, payload) => {
|
|
24
|
-
if (event[utils.CTRL_KEY] && is.isKeyCode(event, utils.KEY_CODE.I) && payload.sel) {
|
|
25
|
-
const { editor, keys, sel } = payload;
|
|
26
|
-
editor.perform.applyMarks(sel, { [italic_types_index.ITALIC_KEY]: keys[italic_types_index.ITALIC_KEY] ? utils.NIL : utils.TRULY });
|
|
27
|
-
return true;
|
|
28
|
-
}
|
|
29
|
-
},
|
|
30
|
-
};
|
|
31
12
|
|
|
32
13
|
class Shortcut extends core.CorePlugin {
|
|
33
14
|
constructor(editor, config) {
|
|
34
15
|
super();
|
|
35
16
|
this.editor = editor;
|
|
36
17
|
this.key = shortcut_types_index.SHORTCUT_KEY;
|
|
37
|
-
this.config = Object.values(Object.assign(Object.assign({}, PRESET_SHORTCUT), config));
|
|
18
|
+
this.config = Object.values(Object.assign(Object.assign({}, shortcut_modules_preset.PRESET_SHORTCUT), config));
|
|
38
19
|
this.editor.event.on(core.EDITOR_EVENT.KEY_DOWN, this.onKeydown, 1000);
|
|
39
20
|
}
|
|
40
21
|
destroy() {
|
|
@@ -50,20 +31,20 @@ class Shortcut extends core.CorePlugin {
|
|
|
50
31
|
}
|
|
51
32
|
const lines = this.editor.state.block.getLines();
|
|
52
33
|
const { start, end } = current;
|
|
53
|
-
const lineMarkMap =
|
|
34
|
+
const lineMarkMap = toolbar_utils_marks.filterLineMarkMap(lines.slice(start.line, end.line + 1).map(line => line.attributes));
|
|
54
35
|
if (current.isCollapsed) {
|
|
55
|
-
return Object.assign(Object.assign({}, this.editor.
|
|
36
|
+
return Object.assign(Object.assign({}, this.editor.lookup.marks), lineMarkMap);
|
|
56
37
|
}
|
|
57
38
|
const ops = [];
|
|
58
39
|
if (current.isCollapsed) {
|
|
59
|
-
const op = this.editor.
|
|
40
|
+
const op = this.editor.lookup.getOpAtPoint(current.start);
|
|
60
41
|
op && ops.push(op);
|
|
61
42
|
}
|
|
62
43
|
else {
|
|
63
|
-
const fragment = this.editor.
|
|
44
|
+
const fragment = this.editor.lookup.getFragment();
|
|
64
45
|
fragment && ops.push(...fragment);
|
|
65
46
|
}
|
|
66
|
-
const markMap =
|
|
47
|
+
const markMap = toolbar_utils_marks.filterMarkMap(ops);
|
|
67
48
|
return Object.assign(Object.assign({}, markMap), lineMarkMap);
|
|
68
49
|
}
|
|
69
50
|
onKeydown(event) {
|
|
@@ -77,7 +58,7 @@ class Shortcut extends core.CorePlugin {
|
|
|
77
58
|
const result = func(event, payload);
|
|
78
59
|
if (!result)
|
|
79
60
|
continue;
|
|
80
|
-
this.editor.event.trigger(
|
|
61
|
+
this.editor.event.trigger(shared_utils_event.PLUGIN_EVENTS.SHORTCUT_MARKS_CHANGE, null);
|
|
81
62
|
break;
|
|
82
63
|
}
|
|
83
64
|
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var utils = require('@block-kit/utils');
|
|
6
|
+
var bold_types_index = require('../../bold/types/index.js');
|
|
7
|
+
var italic_types_index = require('../../italic/types/index.js');
|
|
8
|
+
var shared_utils_is = require('../../shared/utils/is.js');
|
|
9
|
+
|
|
10
|
+
const PRESET_SHORTCUT = {
|
|
11
|
+
[bold_types_index.BOLD_KEY]: (event, payload) => {
|
|
12
|
+
if (event[utils.CTRL_KEY] && shared_utils_is.isKeyCode(event, utils.KEY_CODE.B) && payload.sel) {
|
|
13
|
+
const { editor, keys, sel } = payload;
|
|
14
|
+
editor.perform.applyMarks(sel, { [bold_types_index.BOLD_KEY]: keys[bold_types_index.BOLD_KEY] ? utils.NIL : utils.TRULY });
|
|
15
|
+
return true;
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
[italic_types_index.ITALIC_KEY]: (event, payload) => {
|
|
19
|
+
if (event[utils.CTRL_KEY] && shared_utils_is.isKeyCode(event, utils.KEY_CODE.I) && payload.sel) {
|
|
20
|
+
const { editor, keys, sel } = payload;
|
|
21
|
+
editor.perform.applyMarks(sel, { [italic_types_index.ITALIC_KEY]: keys[italic_types_index.ITALIC_KEY] ? utils.NIL : utils.TRULY });
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
exports.PRESET_SHORTCUT = PRESET_SHORTCUT;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
var core = require('@block-kit/core');
|
|
7
|
+
var react = require('@block-kit/react');
|
|
8
|
+
var utils = require('@block-kit/utils');
|
|
9
|
+
var hooks = require('@block-kit/utils/dist/es/hooks');
|
|
10
|
+
var React = require('react');
|
|
11
|
+
var shared_utils_event = require('../../shared/utils/event.js');
|
|
12
|
+
var toolbar_utils_marks = require('../utils/marks.js');
|
|
13
|
+
var toolbar_context_provider = require('./provider.js');
|
|
14
|
+
|
|
15
|
+
const Toolbar = /*#__PURE__*/ React.forwardRef((props, ref) => {
|
|
16
|
+
const { editor } = react.useEditorStatic();
|
|
17
|
+
const [keys, setKeys] = React.useState({});
|
|
18
|
+
const refreshMarks = hooks.useMemoFn(() => {
|
|
19
|
+
const current = editor.selection.get();
|
|
20
|
+
if (!current) {
|
|
21
|
+
setKeys({});
|
|
22
|
+
return void 0;
|
|
23
|
+
}
|
|
24
|
+
const lines = editor.state.block.getLines();
|
|
25
|
+
const { start, end } = current;
|
|
26
|
+
const lineMarkMap = toolbar_utils_marks.filterLineMarkMap(lines.slice(start.line, end.line + 1).map(line => line.attributes));
|
|
27
|
+
if (current.isCollapsed) {
|
|
28
|
+
setKeys(Object.assign(Object.assign({}, editor.lookup.marks), lineMarkMap));
|
|
29
|
+
return void 0;
|
|
30
|
+
}
|
|
31
|
+
const ops = [];
|
|
32
|
+
if (current.isCollapsed) {
|
|
33
|
+
const op = editor.lookup.getOpAtPoint(current.start);
|
|
34
|
+
op && ops.push(op);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
const fragment = editor.lookup.getFragment();
|
|
38
|
+
fragment && ops.push(...fragment);
|
|
39
|
+
}
|
|
40
|
+
const markMap = toolbar_utils_marks.filterMarkMap(ops);
|
|
41
|
+
setKeys(Object.assign(Object.assign({}, markMap), lineMarkMap));
|
|
42
|
+
});
|
|
43
|
+
React.useEffect(() => {
|
|
44
|
+
editor.event.on(core.EDITOR_EVENT.SELECTION_CHANGE, refreshMarks);
|
|
45
|
+
editor.event.on(shared_utils_event.PLUGIN_EVENTS.SHORTCUT_MARKS_CHANGE, refreshMarks);
|
|
46
|
+
return () => {
|
|
47
|
+
editor.event.off(core.EDITOR_EVENT.SELECTION_CHANGE, refreshMarks);
|
|
48
|
+
editor.event.off(shared_utils_event.PLUGIN_EVENTS.SHORTCUT_MARKS_CHANGE, refreshMarks);
|
|
49
|
+
};
|
|
50
|
+
}, [editor.event, refreshMarks]);
|
|
51
|
+
// 浮动工具栏的情况下, 挂载时需要刷新 marks
|
|
52
|
+
React.useEffect(() => {
|
|
53
|
+
refreshMarks();
|
|
54
|
+
}, [refreshMarks]);
|
|
55
|
+
return (jsxRuntime.jsx("div", { ref: ref, style: props.styles, className: utils.cs("block-kit-menu-toolbar", props.className), onMouseDown: e => {
|
|
56
|
+
const target = e.target;
|
|
57
|
+
// 避免 float 的情况下触发按下事件
|
|
58
|
+
e.stopPropagation();
|
|
59
|
+
// 存在需要抢夺焦点的情况, 例如超链接输入的弹出层
|
|
60
|
+
if (target instanceof HTMLElement && target.hasAttribute("data-no-prevent")) {
|
|
61
|
+
return void 0;
|
|
62
|
+
}
|
|
63
|
+
e.preventDefault();
|
|
64
|
+
}, children: jsxRuntime.jsx(toolbar_context_provider.ToolbarContext.Provider, { value: {
|
|
65
|
+
keys,
|
|
66
|
+
editor,
|
|
67
|
+
setKeys,
|
|
68
|
+
refreshMarks,
|
|
69
|
+
selection: editor.selection.get(),
|
|
70
|
+
}, children: props.children }) }));
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
exports.Toolbar = Toolbar;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
var core = require('@block-kit/core');
|
|
7
|
+
var react = require('@block-kit/react');
|
|
8
|
+
var utils = require('@block-kit/utils');
|
|
9
|
+
var hooks = require('@block-kit/utils/dist/es/hooks');
|
|
10
|
+
var React = require('react');
|
|
11
|
+
var ReactDOM = require('react-dom');
|
|
12
|
+
var shared_utils_dom = require('../../shared/utils/dom.js');
|
|
13
|
+
var toolbar_context_basic = require('./basic.js');
|
|
14
|
+
|
|
15
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
16
|
+
|
|
17
|
+
var ReactDOM__default = /*#__PURE__*/_interopDefaultLegacy(ReactDOM);
|
|
18
|
+
|
|
19
|
+
const FloatToolbar = props => {
|
|
20
|
+
const { editor } = react.useEditorStatic();
|
|
21
|
+
const { readonly } = react.useReadonly();
|
|
22
|
+
const ref = React.useRef(null);
|
|
23
|
+
const [visible, setVisible] = React.useState(false);
|
|
24
|
+
const [isMouseDown, setIsMouseDown] = React.useState(false);
|
|
25
|
+
const onWeakUp = hooks.useMemoFn((wakeUp) => {
|
|
26
|
+
if (editor.state.isFocused() && wakeUp) {
|
|
27
|
+
setVisible(true);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
setVisible(false);
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
React.useEffect(() => {
|
|
34
|
+
if (readonly)
|
|
35
|
+
return void 0;
|
|
36
|
+
const onMouseUp = () => {
|
|
37
|
+
setIsMouseDown(false);
|
|
38
|
+
};
|
|
39
|
+
const onMouseDown = () => {
|
|
40
|
+
setIsMouseDown(true);
|
|
41
|
+
};
|
|
42
|
+
const onSelectionChange = (e) => {
|
|
43
|
+
const { current } = e;
|
|
44
|
+
const isWakeUp = current ? !current.isCollapsed : false;
|
|
45
|
+
onWeakUp(isWakeUp);
|
|
46
|
+
};
|
|
47
|
+
document.addEventListener(core.EDITOR_EVENT.MOUSE_UP, onMouseUp);
|
|
48
|
+
document.addEventListener(core.EDITOR_EVENT.MOUSE_DOWN, onMouseDown);
|
|
49
|
+
editor.event.on(core.EDITOR_EVENT.SELECTION_CHANGE, onSelectionChange);
|
|
50
|
+
return () => {
|
|
51
|
+
document.removeEventListener(core.EDITOR_EVENT.MOUSE_UP, onMouseUp);
|
|
52
|
+
document.removeEventListener(core.EDITOR_EVENT.MOUSE_DOWN, onMouseDown);
|
|
53
|
+
editor.event.off(core.EDITOR_EVENT.SELECTION_CHANGE, onSelectionChange);
|
|
54
|
+
};
|
|
55
|
+
}, [editor, onWeakUp, readonly]);
|
|
56
|
+
const { left, top } = React.useMemo(() => {
|
|
57
|
+
if (!readonly && visible && !isMouseDown) {
|
|
58
|
+
const rect = editor.rect.getSelectionRect();
|
|
59
|
+
if (rect) {
|
|
60
|
+
const topOffset = props.offsetTop || 0;
|
|
61
|
+
const leftOffset = props.offsetLeft || 0;
|
|
62
|
+
const t = rect.top + topOffset;
|
|
63
|
+
const l = rect.left + rect.width / 2 + leftOffset;
|
|
64
|
+
return { top: t, left: l };
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return { top: -999999, left: -999999 };
|
|
68
|
+
}, [editor.rect, readonly, visible, isMouseDown, props.offsetLeft, props.offsetTop]);
|
|
69
|
+
// 只读状态 / 不可见 / 鼠标按下 时隐藏
|
|
70
|
+
return readonly || !visible || isMouseDown
|
|
71
|
+
? null
|
|
72
|
+
: ReactDOM__default["default"].createPortal(jsxRuntime.jsx(toolbar_context_basic.Toolbar, { ref: ref, className: utils.cs("block-kit-float-toolbar", props.className), styles: { top: top, left: left }, children: props.children }), shared_utils_dom.getMountDOM(editor));
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
exports.FloatToolbar = FloatToolbar;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var React = require('react');
|
|
6
|
+
|
|
7
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
8
|
+
|
|
9
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
10
|
+
|
|
11
|
+
const ToolbarContext = React__default["default"].createContext({
|
|
12
|
+
keys: {},
|
|
13
|
+
setKeys: () => null,
|
|
14
|
+
refreshMarks: () => null,
|
|
15
|
+
editor: null,
|
|
16
|
+
selection: null,
|
|
17
|
+
});
|
|
18
|
+
const useToolbarContext = () => React__default["default"].useContext(ToolbarContext);
|
|
19
|
+
|
|
20
|
+
exports.ToolbarContext = ToolbarContext;
|
|
21
|
+
exports.useToolbarContext = useToolbarContext;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
export { Toolbar } from "./context/basic";
|
|
3
3
|
export { FloatToolbar } from "./context/float";
|
|
4
|
-
export declare const
|
|
4
|
+
export declare const ToolBarMixin: {
|
|
5
5
|
Cut: import("react").FC;
|
|
6
6
|
Bold: import("react").FC;
|
|
7
7
|
Link: import("react").FC<{
|
|
@@ -2,43 +2,50 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
6
|
-
require('
|
|
7
|
-
require('
|
|
8
|
-
require('
|
|
9
|
-
require('
|
|
10
|
-
require('
|
|
11
|
-
require('
|
|
12
|
-
require('
|
|
13
|
-
require('
|
|
14
|
-
require('
|
|
15
|
-
require('
|
|
16
|
-
require('
|
|
17
|
-
require('
|
|
18
|
-
require('
|
|
19
|
-
require('
|
|
20
|
-
require('
|
|
21
|
-
require('
|
|
22
|
-
require('
|
|
23
|
-
require('
|
|
24
|
-
require('
|
|
25
|
-
require('
|
|
26
|
-
require('../italic/types/index.js');
|
|
27
|
-
require('../line-height/types/index.js');
|
|
28
|
-
require('@arco-design/web-react/es/Form/useForm');
|
|
29
|
-
require('../link/types/index.js');
|
|
30
|
-
require('../order-list/types/index.js');
|
|
31
|
-
require('../is-18806678.js');
|
|
32
|
-
require('../quote/types/index.js');
|
|
33
|
-
require('../strike/types/index.js');
|
|
34
|
-
require('../underline/types/index.js');
|
|
35
|
-
require('@block-kit/react');
|
|
36
|
-
require('../marks-a30b8a0f.js');
|
|
37
|
-
require('react-dom');
|
|
38
|
-
require('../dom-cb8b8e40.js');
|
|
5
|
+
var toolbar_modules_align = require('./modules/align.js');
|
|
6
|
+
var toolbar_modules_bold = require('./modules/bold.js');
|
|
7
|
+
var toolbar_modules_bulletList = require('./modules/bullet-list.js');
|
|
8
|
+
var toolbar_modules_cut = require('./modules/cut.js');
|
|
9
|
+
var toolbar_modules_divider = require('./modules/divider.js');
|
|
10
|
+
var toolbar_modules_emoji = require('./modules/emoji.js');
|
|
11
|
+
var toolbar_modules_fontColor = require('./modules/font-color.js');
|
|
12
|
+
var toolbar_modules_fontSize = require('./modules/font-size.js');
|
|
13
|
+
var toolbar_modules_heading = require('./modules/heading.js');
|
|
14
|
+
var toolbar_modules_history = require('./modules/history.js');
|
|
15
|
+
var toolbar_modules_image = require('./modules/image.js');
|
|
16
|
+
var toolbar_modules_inlineCode = require('./modules/inline-code.js');
|
|
17
|
+
var toolbar_modules_italic = require('./modules/italic.js');
|
|
18
|
+
var toolbar_modules_lineHeight = require('./modules/line-height.js');
|
|
19
|
+
var toolbar_modules_link = require('./modules/link.js');
|
|
20
|
+
var toolbar_modules_orderList = require('./modules/order-list.js');
|
|
21
|
+
var toolbar_modules_quote = require('./modules/quote.js');
|
|
22
|
+
var toolbar_modules_strike = require('./modules/strike.js');
|
|
23
|
+
var toolbar_modules_underline = require('./modules/underline.js');
|
|
24
|
+
var toolbar_context_basic = require('./context/basic.js');
|
|
25
|
+
var toolbar_context_float = require('./context/float.js');
|
|
39
26
|
|
|
27
|
+
const ToolBarMixin = {
|
|
28
|
+
Cut: toolbar_modules_cut.Cut,
|
|
29
|
+
Bold: toolbar_modules_bold.Bold,
|
|
30
|
+
Link: toolbar_modules_link.Link,
|
|
31
|
+
Quote: toolbar_modules_quote.Quote,
|
|
32
|
+
Image: toolbar_modules_image.Image,
|
|
33
|
+
Align: toolbar_modules_align.Align,
|
|
34
|
+
Emoji: toolbar_modules_emoji.Emoji,
|
|
35
|
+
Italic: toolbar_modules_italic.Italic,
|
|
36
|
+
Strike: toolbar_modules_strike.Strike,
|
|
37
|
+
History: toolbar_modules_history.History,
|
|
38
|
+
Heading: toolbar_modules_heading.Heading,
|
|
39
|
+
Divider: toolbar_modules_divider.Divider,
|
|
40
|
+
FontSize: toolbar_modules_fontSize.FontSize,
|
|
41
|
+
FontColor: toolbar_modules_fontColor.FontColor,
|
|
42
|
+
OrderList: toolbar_modules_orderList.OrderList,
|
|
43
|
+
Underline: toolbar_modules_underline.Underline,
|
|
44
|
+
BulletList: toolbar_modules_bulletList.BulletList,
|
|
45
|
+
InlineCode: toolbar_modules_inlineCode.InlineCode,
|
|
46
|
+
LineHeight: toolbar_modules_lineHeight.LineHeight,
|
|
47
|
+
};
|
|
40
48
|
|
|
41
|
-
|
|
42
|
-
exports.FloatToolbar =
|
|
43
|
-
exports.
|
|
44
|
-
exports.Toolbar = toolbar_index.Toolbar;
|
|
49
|
+
exports.Toolbar = toolbar_context_basic.Toolbar;
|
|
50
|
+
exports.FloatToolbar = toolbar_context_float.FloatToolbar;
|
|
51
|
+
exports.ToolBarMixin = ToolBarMixin;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
var Trigger = require('@arco-design/web-react/lib/Trigger');
|
|
7
|
+
require('@arco-design/web-react/lib/Trigger/style');
|
|
8
|
+
var IconAlignCenter = require('@arco-design/web-react/icon/react-icon-cjs/IconAlignCenter');
|
|
9
|
+
var IconAlignLeft = require('@arco-design/web-react/icon/react-icon-cjs/IconAlignLeft');
|
|
10
|
+
var IconAlignRight = require('@arco-design/web-react/icon/react-icon-cjs/IconAlignRight');
|
|
11
|
+
var IconDown = require('@arco-design/web-react/icon/react-icon-cjs/IconDown');
|
|
12
|
+
var utils = require('@block-kit/utils');
|
|
13
|
+
var align_types_index = require('../../align/types/index.js');
|
|
14
|
+
var shared_icons_justify = require('../../shared/icons/justify.js');
|
|
15
|
+
var toolbar_context_provider = require('../context/provider.js');
|
|
16
|
+
|
|
17
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
18
|
+
|
|
19
|
+
var Trigger__default = /*#__PURE__*/_interopDefaultLegacy(Trigger);
|
|
20
|
+
var IconAlignCenter__default = /*#__PURE__*/_interopDefaultLegacy(IconAlignCenter);
|
|
21
|
+
var IconAlignLeft__default = /*#__PURE__*/_interopDefaultLegacy(IconAlignLeft);
|
|
22
|
+
var IconAlignRight__default = /*#__PURE__*/_interopDefaultLegacy(IconAlignRight);
|
|
23
|
+
var IconDown__default = /*#__PURE__*/_interopDefaultLegacy(IconDown);
|
|
24
|
+
|
|
25
|
+
const MAP = {
|
|
26
|
+
left: jsxRuntime.jsx(IconAlignLeft__default["default"], {}),
|
|
27
|
+
center: jsxRuntime.jsx(IconAlignCenter__default["default"], {}),
|
|
28
|
+
right: jsxRuntime.jsx(IconAlignRight__default["default"], {}),
|
|
29
|
+
justify: jsxRuntime.jsx(shared_icons_justify.JustifyIcon, {}),
|
|
30
|
+
};
|
|
31
|
+
const Align = () => {
|
|
32
|
+
const { keys, refreshMarks, editor } = toolbar_context_provider.useToolbarContext();
|
|
33
|
+
return (jsxRuntime.jsx(Trigger__default["default"], { trigger: "click", popupAlign: { bottom: 10 }, getPopupContainer: e => e.parentElement || document.body, popup: () => (jsxRuntime.jsxs("div", { className: "block-kit-toolbar-dropdown", onClick: refreshMarks, children: [jsxRuntime.jsx("div", { className: "kit-toolbar-node", onClick: () => editor.command.exec(align_types_index.ALIGN_KEY, { value: utils.NIL }), children: jsxRuntime.jsx(IconAlignLeft__default["default"], {}) }), jsxRuntime.jsx("div", { className: "kit-toolbar-node", onClick: () => editor.command.exec(align_types_index.ALIGN_KEY, { value: "center" }), children: jsxRuntime.jsx(IconAlignCenter__default["default"], {}) }), jsxRuntime.jsx("div", { className: "kit-toolbar-node", onClick: () => editor.command.exec(align_types_index.ALIGN_KEY, { value: "right" }), children: jsxRuntime.jsx(IconAlignRight__default["default"], {}) }), jsxRuntime.jsx("div", { className: "kit-toolbar-node", onClick: () => editor.command.exec(align_types_index.ALIGN_KEY, { value: "justify" }), children: jsxRuntime.jsx(shared_icons_justify.JustifyIcon, {}) })] })), children: jsxRuntime.jsxs("div", { className: "menu-toolbar-item", children: [MAP[keys[align_types_index.ALIGN_KEY]] || jsxRuntime.jsx(IconAlignLeft__default["default"], {}), jsxRuntime.jsx(IconDown__default["default"], { className: "menu-toolbar-icon-down" })] }) }));
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
exports.Align = Align;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
var IconBold = require('@arco-design/web-react/icon/react-icon-cjs/IconBold');
|
|
7
|
+
var utils = require('@block-kit/utils');
|
|
8
|
+
var bold_types_index = require('../../bold/types/index.js');
|
|
9
|
+
var toolbar_context_provider = require('../context/provider.js');
|
|
10
|
+
|
|
11
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
12
|
+
|
|
13
|
+
var IconBold__default = /*#__PURE__*/_interopDefaultLegacy(IconBold);
|
|
14
|
+
|
|
15
|
+
const Bold = () => {
|
|
16
|
+
const { keys, refreshMarks, editor } = toolbar_context_provider.useToolbarContext();
|
|
17
|
+
const onExec = () => {
|
|
18
|
+
editor.command.exec(bold_types_index.BOLD_KEY, { value: keys[bold_types_index.BOLD_KEY] ? utils.NIL : utils.TRULY });
|
|
19
|
+
refreshMarks();
|
|
20
|
+
};
|
|
21
|
+
return (jsxRuntime.jsx("div", { className: utils.cs("menu-toolbar-item", keys[bold_types_index.BOLD_KEY] && "active"), onClick: onExec, children: jsxRuntime.jsx(IconBold__default["default"], {}) }));
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
exports.Bold = Bold;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
var IconUnorderedList = require('@arco-design/web-react/icon/react-icon-cjs/IconUnorderedList');
|
|
7
|
+
var utils = require('@block-kit/utils');
|
|
8
|
+
var bulletList_types_index = require('../../bullet-list/types/index.js');
|
|
9
|
+
var bulletList_utils_is = require('../../bullet-list/utils/is.js');
|
|
10
|
+
var toolbar_context_provider = require('../context/provider.js');
|
|
11
|
+
|
|
12
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
13
|
+
|
|
14
|
+
var IconUnorderedList__default = /*#__PURE__*/_interopDefaultLegacy(IconUnorderedList);
|
|
15
|
+
|
|
16
|
+
const BulletList = () => {
|
|
17
|
+
const { keys, refreshMarks, editor } = toolbar_context_provider.useToolbarContext();
|
|
18
|
+
const isBullet = bulletList_utils_is.isBulletList(keys);
|
|
19
|
+
return (jsxRuntime.jsx("div", { className: utils.cs("menu-toolbar-item", isBullet && "active"), onClick: () => {
|
|
20
|
+
editor.command.exec(bulletList_types_index.BULLET_LIST_KEY, { value: utils.TRULY });
|
|
21
|
+
refreshMarks();
|
|
22
|
+
}, children: jsxRuntime.jsx(IconUnorderedList__default["default"], {}) }));
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
exports.BulletList = BulletList;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
var utils = require('@block-kit/utils');
|
|
7
|
+
var divider_types_index = require('../../divider/types/index.js');
|
|
8
|
+
var shared_icons_divider = require('../../shared/icons/divider.js');
|
|
9
|
+
var toolbar_context_provider = require('../context/provider.js');
|
|
10
|
+
|
|
11
|
+
const Divider = () => {
|
|
12
|
+
const { refreshMarks, editor } = toolbar_context_provider.useToolbarContext();
|
|
13
|
+
return (jsxRuntime.jsx("div", { className: utils.cs("menu-toolbar-item"), onClick: () => {
|
|
14
|
+
editor.command.exec(divider_types_index.DIVIDER_KEY, { value: utils.TRULY });
|
|
15
|
+
refreshMarks();
|
|
16
|
+
}, children: jsxRuntime.jsx(shared_icons_divider.DividerIcon, {}) }));
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
exports.Divider = Divider;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
var Trigger = require('@arco-design/web-react/lib/Trigger');
|
|
7
|
+
require('@arco-design/web-react/lib/Trigger/style');
|
|
8
|
+
var Picker = require('@emoji-mart/react');
|
|
9
|
+
var utils = require('@block-kit/utils');
|
|
10
|
+
var emoji_types_index = require('../../emoji/types/index.js');
|
|
11
|
+
var shared_icons_emoji = require('../../shared/icons/emoji.js');
|
|
12
|
+
var toolbar_context_provider = require('../context/provider.js');
|
|
13
|
+
|
|
14
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
15
|
+
|
|
16
|
+
var Trigger__default = /*#__PURE__*/_interopDefaultLegacy(Trigger);
|
|
17
|
+
var Picker__default = /*#__PURE__*/_interopDefaultLegacy(Picker);
|
|
18
|
+
|
|
19
|
+
const Emoji = () => {
|
|
20
|
+
const { editor } = toolbar_context_provider.useToolbarContext();
|
|
21
|
+
return (jsxRuntime.jsx(Trigger__default["default"], { className: "menu-toolbar-emoji-trigger", popupAlign: { bottom: 10 }, getPopupContainer: e => e.parentElement || document.body, popup: () => (jsxRuntime.jsx(Picker__default["default"], { theme: document.body.getAttribute("arco-theme") === "dark" ? "dark" : "light", searchPosition: "none", previewPosition: "none", categories: [
|
|
22
|
+
"frequent",
|
|
23
|
+
"people",
|
|
24
|
+
"nature",
|
|
25
|
+
"foods",
|
|
26
|
+
"activity",
|
|
27
|
+
"places",
|
|
28
|
+
"objects",
|
|
29
|
+
"symbols",
|
|
30
|
+
], onEmojiSelect: (emoji) => {
|
|
31
|
+
editor.command.exec(emoji_types_index.EMOJI_KEY, { value: emoji.id });
|
|
32
|
+
}, maxFrequentRows: 2 })), trigger: "click", children: jsxRuntime.jsx("div", { className: utils.cs("menu-toolbar-item"), children: jsxRuntime.jsx(shared_icons_emoji.EmojiIcon, {}) }) }));
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
exports.Emoji = Emoji;
|