1 | export var inlineExtension = {
|
2 | inline: true,
|
3 | group: 'inline',
|
4 | selectable: true,
|
5 | attrs: {
|
6 | extensionType: { default: '' },
|
7 | extensionKey: { default: '' },
|
8 | parameters: { default: null },
|
9 | text: { default: null },
|
10 | },
|
11 | parseDOM: [
|
12 | {
|
13 | tag: 'span[data-extension-type]',
|
14 | getAttrs: function (domNode) {
|
15 | var dom = domNode;
|
16 | return {
|
17 | extensionType: dom.getAttribute('data-extension-type'),
|
18 | extensionKey: dom.getAttribute('data-extension-key'),
|
19 | text: dom.getAttribute('data-text'),
|
20 | parameters: JSON.parse(dom.getAttribute('data-parameters') || '{}'),
|
21 | };
|
22 | },
|
23 | },
|
24 | ],
|
25 | toDOM: function (node) {
|
26 | var attrs = {
|
27 | 'data-extension-type': node.attrs.extensionType,
|
28 | 'data-extension-key': node.attrs.extensionKey,
|
29 | 'data-text': node.attrs.text,
|
30 | 'data-parameters': JSON.stringify(node.attrs.parameters),
|
31 | contenteditable: 'false',
|
32 | };
|
33 | return ['span', attrs];
|
34 | },
|
35 | };
|
36 |
|
\ | No newline at end of file |