1 | import { acNameToEmoji, acShortcutToEmoji } from '../../utils/confluence/emoji';
|
2 | export var emoji = {
|
3 | inline: true,
|
4 | group: 'inline',
|
5 | selectable: false,
|
6 | attrs: {
|
7 | shortName: { default: '' },
|
8 | id: { default: '' },
|
9 | text: { default: '' },
|
10 | },
|
11 | parseDOM: [
|
12 | {
|
13 | tag: 'span[data-emoji-short-name]',
|
14 | getAttrs: function (domNode) {
|
15 | var dom = domNode;
|
16 | return {
|
17 | shortName: dom.getAttribute('data-emoji-short-name') ||
|
18 | emoji.attrs.shortName.default,
|
19 | id: dom.getAttribute('data-emoji-id') || emoji.attrs.id.default,
|
20 | text: dom.getAttribute('data-emoji-text') || emoji.attrs.text.default,
|
21 | };
|
22 | },
|
23 | },
|
24 |
|
25 | {
|
26 | tag: 'img[data-emoticon-name]',
|
27 | getAttrs: function (dom) {
|
28 | return acNameToEmoji(dom.getAttribute('data-emoticon-name'));
|
29 | },
|
30 | },
|
31 |
|
32 | {
|
33 | tag: 'img[data-hipchat-emoticon]',
|
34 | getAttrs: function (dom) {
|
35 | return acShortcutToEmoji(dom.getAttribute('data-hipchat-emoticon'));
|
36 | },
|
37 | },
|
38 |
|
39 | {
|
40 | tag: 'img.emoji[data-emoji-short-name]',
|
41 | getAttrs: function (domNode) {
|
42 | var dom = domNode;
|
43 | return {
|
44 | shortName: dom.getAttribute('data-emoji-short-name') ||
|
45 | emoji.attrs.shortName.default,
|
46 | id: dom.getAttribute('data-emoji-id') || emoji.attrs.id.default,
|
47 | text: dom.getAttribute('data-emoji-text') || emoji.attrs.text.default,
|
48 | };
|
49 | },
|
50 | },
|
51 | ],
|
52 | toDOM: function (node) {
|
53 | var _a = node.attrs, shortName = _a.shortName, id = _a.id, text = _a.text;
|
54 | var attrs = {
|
55 | 'data-emoji-short-name': shortName,
|
56 | 'data-emoji-id': id,
|
57 | 'data-emoji-text': text,
|
58 | contenteditable: 'false',
|
59 | };
|
60 | return ['span', attrs, text];
|
61 | },
|
62 | };
|
63 |
|
\ | No newline at end of file |