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