@ecodev/natural-editor 62.1.2 → 62.3.0
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/fesm2022/ecodev-natural-editor.mjs +40 -44
- package/fesm2022/ecodev-natural-editor.mjs.map +1 -1
- package/lib/class-dialog/class-dialog.component.d.ts +1 -1
- package/lib/color-dialog/color-dialog.component.d.ts +1 -1
- package/lib/editor/editor.component.d.ts +6 -4
- package/lib/id-dialog/id-dialog.component.d.ts +1 -1
- package/lib/link-dialog/link-dialog.component.d.ts +1 -1
- package/package.json +6 -8
- package/esm2022/ecodev-natural-editor.mjs +0 -5
- package/esm2022/lib/class-dialog/class-dialog.component.mjs +0 -40
- package/esm2022/lib/color-dialog/color-dialog.component.mjs +0 -197
- package/esm2022/lib/custom-css/custom-css.directive.mjs +0 -75
- package/esm2022/lib/editor/editor.component.mjs +0 -238
- package/esm2022/lib/id-dialog/id-dialog.component.mjs +0 -40
- package/esm2022/lib/link-dialog/link-dialog.component.mjs +0 -39
- package/esm2022/lib/utils/image.mjs +0 -82
- package/esm2022/lib/utils/inputrules.mjs +0 -70
- package/esm2022/lib/utils/items/cell-background-color-item.mjs +0 -55
- package/esm2022/lib/utils/items/class-item.mjs +0 -85
- package/esm2022/lib/utils/items/horizontal-rule-item.mjs +0 -24
- package/esm2022/lib/utils/items/id-item.mjs +0 -85
- package/esm2022/lib/utils/items/item.mjs +0 -40
- package/esm2022/lib/utils/items/link-item.mjs +0 -40
- package/esm2022/lib/utils/items/table-item.mjs +0 -43
- package/esm2022/lib/utils/items/text-align-item.mjs +0 -78
- package/esm2022/lib/utils/items/text-color-item.mjs +0 -56
- package/esm2022/lib/utils/items/utils.mjs +0 -55
- package/esm2022/lib/utils/items/wrap-list-item.mjs +0 -6
- package/esm2022/lib/utils/keymap.mjs +0 -115
- package/esm2022/lib/utils/menu.mjs +0 -111
- package/esm2022/lib/utils/schema/heading.mjs +0 -64
- package/esm2022/lib/utils/schema/paragraph-with-alignment.mjs +0 -50
- package/esm2022/lib/utils/schema/schema.mjs +0 -58
- package/esm2022/lib/utils/schema/table.mjs +0 -120
- package/esm2022/lib/utils/schema/text-color.mjs +0 -18
- package/esm2022/public-api.mjs +0 -7
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import { AllSelection, TextSelection } from 'prosemirror-state';
|
|
2
|
-
import { Item } from './item';
|
|
3
|
-
function setTextAlign(tr, schema, alignment) {
|
|
4
|
-
const { selection, doc } = tr;
|
|
5
|
-
if (!selection || !doc) {
|
|
6
|
-
return tr;
|
|
7
|
-
}
|
|
8
|
-
const { from, to } = selection;
|
|
9
|
-
const { nodes } = schema;
|
|
10
|
-
const tasks = [];
|
|
11
|
-
alignment = alignment || null;
|
|
12
|
-
const allowedNodeTypes = new Set([
|
|
13
|
-
nodes.paragraph,
|
|
14
|
-
// nodes['blockquote'],
|
|
15
|
-
// nodes['listItem'],
|
|
16
|
-
// nodes['heading'],
|
|
17
|
-
]);
|
|
18
|
-
doc.nodesBetween(from, to, (node, pos) => {
|
|
19
|
-
const nodeType = node.type;
|
|
20
|
-
const align = node.attrs.align || null;
|
|
21
|
-
if (align !== alignment && allowedNodeTypes.has(nodeType)) {
|
|
22
|
-
tasks.push({
|
|
23
|
-
node,
|
|
24
|
-
pos,
|
|
25
|
-
nodeType,
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
return true;
|
|
29
|
-
});
|
|
30
|
-
if (!tasks.length) {
|
|
31
|
-
return tr;
|
|
32
|
-
}
|
|
33
|
-
tasks.forEach(job => {
|
|
34
|
-
const { node, pos, nodeType } = job;
|
|
35
|
-
const newAttrs = {
|
|
36
|
-
...node.attrs,
|
|
37
|
-
align: alignment ? alignment : null,
|
|
38
|
-
};
|
|
39
|
-
tr = tr.setNodeMarkup(pos, nodeType, newAttrs, node.marks);
|
|
40
|
-
});
|
|
41
|
-
return tr;
|
|
42
|
-
}
|
|
43
|
-
export class TextAlignItem extends Item {
|
|
44
|
-
constructor(alignment) {
|
|
45
|
-
super({
|
|
46
|
-
active: state => {
|
|
47
|
-
const { selection, doc } = state;
|
|
48
|
-
const { from, to } = selection;
|
|
49
|
-
let keepLooking = true;
|
|
50
|
-
let active = false;
|
|
51
|
-
doc.nodesBetween(from, to, node => {
|
|
52
|
-
if (keepLooking && node.attrs.align === alignment) {
|
|
53
|
-
keepLooking = false;
|
|
54
|
-
active = true;
|
|
55
|
-
}
|
|
56
|
-
return keepLooking;
|
|
57
|
-
});
|
|
58
|
-
return active;
|
|
59
|
-
},
|
|
60
|
-
enable: state => {
|
|
61
|
-
const { selection } = state;
|
|
62
|
-
return selection instanceof TextSelection || selection instanceof AllSelection;
|
|
63
|
-
},
|
|
64
|
-
run: (state, dispatch) => {
|
|
65
|
-
const { schema, selection } = state;
|
|
66
|
-
const tr = setTextAlign(state.tr.setSelection(selection), schema, this.active ? null : alignment);
|
|
67
|
-
if (tr.docChanged) {
|
|
68
|
-
dispatch?.(tr);
|
|
69
|
-
return true;
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
72
|
-
return false;
|
|
73
|
-
}
|
|
74
|
-
},
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1hbGlnbi1pdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC1lZGl0b3Ivc3JjL2xpYi91dGlscy9pdGVtcy90ZXh0LWFsaWduLWl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLFlBQVksRUFBRSxhQUFhLEVBQWMsTUFBTSxtQkFBbUIsQ0FBQztBQUMzRSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBSTVCLFNBQVMsWUFBWSxDQUFDLEVBQWUsRUFBRSxNQUFjLEVBQUUsU0FBMkI7SUFDOUUsTUFBTSxFQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUMsR0FBRyxFQUFFLENBQUM7SUFDNUIsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUNELE1BQU0sRUFBQyxJQUFJLEVBQUUsRUFBRSxFQUFDLEdBQUcsU0FBUyxDQUFDO0lBQzdCLE1BQU0sRUFBQyxLQUFLLEVBQUMsR0FBRyxNQUFNLENBQUM7SUFFdkIsTUFBTSxLQUFLLEdBSUwsRUFBRSxDQUFDO0lBRVQsU0FBUyxHQUFHLFNBQVMsSUFBSSxJQUFJLENBQUM7SUFFOUIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLEdBQUcsQ0FBQztRQUM3QixLQUFLLENBQUMsU0FBUztRQUNmLHVCQUF1QjtRQUN2QixxQkFBcUI7UUFDckIsb0JBQW9CO0tBQ3ZCLENBQUMsQ0FBQztJQUVILEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUNyQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzNCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQztRQUN2QyxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDeEQsS0FBSyxDQUFDLElBQUksQ0FBQztnQkFDUCxJQUFJO2dCQUNKLEdBQUc7Z0JBQ0gsUUFBUTthQUNYLENBQUMsQ0FBQztRQUNQLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDaEIsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNoQixNQUFNLEVBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUMsR0FBRyxHQUFHLENBQUM7UUFDbEMsTUFBTSxRQUFRLEdBQUc7WUFDYixHQUFHLElBQUksQ0FBQyxLQUFLO1lBQ2IsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJO1NBQ3RDLENBQUM7UUFFRixFQUFFLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0QsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLEVBQUUsQ0FBQztBQUNkLENBQUM7QUFFRCxNQUFNLE9BQU8sYUFBYyxTQUFRLElBQUk7SUFDbkMsWUFBbUIsU0FBb0I7UUFDbkMsS0FBSyxDQUFDO1lBQ0YsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFO2dCQUNaLE1BQU0sRUFBQyxTQUFTLEVBQUUsR0FBRyxFQUFDLEdBQUcsS0FBSyxDQUFDO2dCQUMvQixNQUFNLEVBQUMsSUFBSSxFQUFFLEVBQUUsRUFBQyxHQUFHLFNBQVMsQ0FBQztnQkFDN0IsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDO2dCQUN2QixJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUM7Z0JBQ25CLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtvQkFDOUIsSUFBSSxXQUFXLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7d0JBQ2hELFdBQVcsR0FBRyxLQUFLLENBQUM7d0JBQ3BCLE1BQU0sR0FBRyxJQUFJLENBQUM7b0JBQ2xCLENBQUM7b0JBQ0QsT0FBTyxXQUFXLENBQUM7Z0JBQ3ZCLENBQUMsQ0FBQyxDQUFDO2dCQUVILE9BQU8sTUFBTSxDQUFDO1lBQ2xCLENBQUM7WUFFRCxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUU7Z0JBQ1osTUFBTSxFQUFDLFNBQVMsRUFBQyxHQUFHLEtBQUssQ0FBQztnQkFDMUIsT0FBTyxTQUFTLFlBQVksYUFBYSxJQUFJLFNBQVMsWUFBWSxZQUFZLENBQUM7WUFDbkYsQ0FBQztZQUVELEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQVcsRUFBRTtnQkFDOUIsTUFBTSxFQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUMsR0FBRyxLQUFLLENBQUM7Z0JBRWxDLE1BQU0sRUFBRSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDbEcsSUFBSSxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUM7b0JBQ2hCLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNmLE9BQU8sSUFBSSxDQUFDO2dCQUNoQixDQUFDO3FCQUFNLENBQUM7b0JBQ0osT0FBTyxLQUFLLENBQUM7Z0JBQ2pCLENBQUM7WUFDTCxDQUFDO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOb2RlLCBOb2RlVHlwZSwgU2NoZW1hfSBmcm9tICdwcm9zZW1pcnJvci1tb2RlbCc7XG5pbXBvcnQge0FsbFNlbGVjdGlvbiwgVGV4dFNlbGVjdGlvbiwgVHJhbnNhY3Rpb259IGZyb20gJ3Byb3NlbWlycm9yLXN0YXRlJztcbmltcG9ydCB7SXRlbX0gZnJvbSAnLi9pdGVtJztcblxudHlwZSBBbGlnbm1lbnQgPSAnbGVmdCcgfCAncmlnaHQnIHwgJ2NlbnRlcicgfCAnanVzdGlmeSc7XG5cbmZ1bmN0aW9uIHNldFRleHRBbGlnbih0cjogVHJhbnNhY3Rpb24sIHNjaGVtYTogU2NoZW1hLCBhbGlnbm1lbnQ6IG51bGwgfCBBbGlnbm1lbnQpOiBUcmFuc2FjdGlvbiB7XG4gICAgY29uc3Qge3NlbGVjdGlvbiwgZG9jfSA9IHRyO1xuICAgIGlmICghc2VsZWN0aW9uIHx8ICFkb2MpIHtcbiAgICAgICAgcmV0dXJuIHRyO1xuICAgIH1cbiAgICBjb25zdCB7ZnJvbSwgdG99ID0gc2VsZWN0aW9uO1xuICAgIGNvbnN0IHtub2Rlc30gPSBzY2hlbWE7XG5cbiAgICBjb25zdCB0YXNrczoge1xuICAgICAgICBub2RlOiBOb2RlO1xuICAgICAgICBwb3M6IG51bWJlcjtcbiAgICAgICAgbm9kZVR5cGU6IE5vZGVUeXBlO1xuICAgIH1bXSA9IFtdO1xuXG4gICAgYWxpZ25tZW50ID0gYWxpZ25tZW50IHx8IG51bGw7XG5cbiAgICBjb25zdCBhbGxvd2VkTm9kZVR5cGVzID0gbmV3IFNldChbXG4gICAgICAgIG5vZGVzLnBhcmFncmFwaCxcbiAgICAgICAgLy8gbm9kZXNbJ2Jsb2NrcXVvdGUnXSxcbiAgICAgICAgLy8gbm9kZXNbJ2xpc3RJdGVtJ10sXG4gICAgICAgIC8vIG5vZGVzWydoZWFkaW5nJ10sXG4gICAgXSk7XG5cbiAgICBkb2Mubm9kZXNCZXR3ZWVuKGZyb20sIHRvLCAobm9kZSwgcG9zKSA9PiB7XG4gICAgICAgIGNvbnN0IG5vZGVUeXBlID0gbm9kZS50eXBlO1xuICAgICAgICBjb25zdCBhbGlnbiA9IG5vZGUuYXR0cnMuYWxpZ24gfHwgbnVsbDtcbiAgICAgICAgaWYgKGFsaWduICE9PSBhbGlnbm1lbnQgJiYgYWxsb3dlZE5vZGVUeXBlcy5oYXMobm9kZVR5cGUpKSB7XG4gICAgICAgICAgICB0YXNrcy5wdXNoKHtcbiAgICAgICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgICAgIHBvcyxcbiAgICAgICAgICAgICAgICBub2RlVHlwZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0pO1xuXG4gICAgaWYgKCF0YXNrcy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIHRyO1xuICAgIH1cblxuICAgIHRhc2tzLmZvckVhY2goam9iID0+IHtcbiAgICAgICAgY29uc3Qge25vZGUsIHBvcywgbm9kZVR5cGV9ID0gam9iO1xuICAgICAgICBjb25zdCBuZXdBdHRycyA9IHtcbiAgICAgICAgICAgIC4uLm5vZGUuYXR0cnMsXG4gICAgICAgICAgICBhbGlnbjogYWxpZ25tZW50ID8gYWxpZ25tZW50IDogbnVsbCxcbiAgICAgICAgfTtcblxuICAgICAgICB0ciA9IHRyLnNldE5vZGVNYXJrdXAocG9zLCBub2RlVHlwZSwgbmV3QXR0cnMsIG5vZGUubWFya3MpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRyO1xufVxuXG5leHBvcnQgY2xhc3MgVGV4dEFsaWduSXRlbSBleHRlbmRzIEl0ZW0ge1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihhbGlnbm1lbnQ6IEFsaWdubWVudCkge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBhY3RpdmU6IHN0YXRlID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB7c2VsZWN0aW9uLCBkb2N9ID0gc3RhdGU7XG4gICAgICAgICAgICAgICAgY29uc3Qge2Zyb20sIHRvfSA9IHNlbGVjdGlvbjtcbiAgICAgICAgICAgICAgICBsZXQga2VlcExvb2tpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGxldCBhY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBkb2Mubm9kZXNCZXR3ZWVuKGZyb20sIHRvLCBub2RlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGtlZXBMb29raW5nICYmIG5vZGUuYXR0cnMuYWxpZ24gPT09IGFsaWdubWVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAga2VlcExvb2tpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGtlZXBMb29raW5nO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjdGl2ZTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGVuYWJsZTogc3RhdGUgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHtzZWxlY3Rpb259ID0gc3RhdGU7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGVjdGlvbiBpbnN0YW5jZW9mIFRleHRTZWxlY3Rpb24gfHwgc2VsZWN0aW9uIGluc3RhbmNlb2YgQWxsU2VsZWN0aW9uO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgcnVuOiAoc3RhdGUsIGRpc3BhdGNoKTogYm9vbGVhbiA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qge3NjaGVtYSwgc2VsZWN0aW9ufSA9IHN0YXRlO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgdHIgPSBzZXRUZXh0QWxpZ24oc3RhdGUudHIuc2V0U2VsZWN0aW9uKHNlbGVjdGlvbiksIHNjaGVtYSwgdGhpcy5hY3RpdmUgPyBudWxsIDogYWxpZ25tZW50KTtcbiAgICAgICAgICAgICAgICBpZiAodHIuZG9jQ2hhbmdlZCkge1xuICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaD8uKHRyKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { Item } from './item';
|
|
2
|
-
import { ColorDialogComponent } from '../../color-dialog/color-dialog.component';
|
|
3
|
-
import { markActive } from './utils';
|
|
4
|
-
import { toggleMark } from 'prosemirror-commands';
|
|
5
|
-
import { rgbToHex } from '@ecodev/natural';
|
|
6
|
-
function findFirstColorInSelection(state, markType) {
|
|
7
|
-
const { selection, doc } = state;
|
|
8
|
-
const { from, to } = selection;
|
|
9
|
-
let foundColor = '';
|
|
10
|
-
doc.nodesBetween(from, to, node => {
|
|
11
|
-
if (foundColor) {
|
|
12
|
-
return false;
|
|
13
|
-
}
|
|
14
|
-
const mark = node.marks.find(mark => mark.type === markType);
|
|
15
|
-
if (mark?.attrs.color) {
|
|
16
|
-
foundColor = mark.attrs.color;
|
|
17
|
-
}
|
|
18
|
-
return !foundColor;
|
|
19
|
-
});
|
|
20
|
-
return rgbToHex(foundColor);
|
|
21
|
-
}
|
|
22
|
-
export class TextColorItem extends Item {
|
|
23
|
-
constructor(markType, dialog) {
|
|
24
|
-
super({
|
|
25
|
-
active(state) {
|
|
26
|
-
return markActive(state, markType);
|
|
27
|
-
},
|
|
28
|
-
enable(state) {
|
|
29
|
-
return !state.selection.empty;
|
|
30
|
-
},
|
|
31
|
-
run(state, dispatch, view) {
|
|
32
|
-
dialog
|
|
33
|
-
.open(ColorDialogComponent, {
|
|
34
|
-
data: {
|
|
35
|
-
color: findFirstColorInSelection(state, markType),
|
|
36
|
-
},
|
|
37
|
-
})
|
|
38
|
-
.afterClosed()
|
|
39
|
-
.subscribe(result => {
|
|
40
|
-
if (result) {
|
|
41
|
-
// Remove existing color before applying new one
|
|
42
|
-
if (markActive(state, markType)) {
|
|
43
|
-
toggleMark(markType, {}, {})(view.state, view.dispatch);
|
|
44
|
-
}
|
|
45
|
-
// Apply new color, unless we selected "transparent"
|
|
46
|
-
if (result.color) {
|
|
47
|
-
toggleMark(markType, result, {})(view.state, view.dispatch);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
view.focus();
|
|
51
|
-
});
|
|
52
|
-
},
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1jb2xvci1pdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC1lZGl0b3Ivc3JjL2xpYi91dGlscy9pdGVtcy90ZXh0LWNvbG9yLWl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUMsb0JBQW9CLEVBQWtCLE1BQU0sMkNBQTJDLENBQUM7QUFFaEcsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLFNBQVMsQ0FBQztBQUNuQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRXpDLFNBQVMseUJBQXlCLENBQUMsS0FBa0IsRUFBRSxRQUFrQjtJQUNyRSxNQUFNLEVBQUMsU0FBUyxFQUFFLEdBQUcsRUFBQyxHQUFHLEtBQUssQ0FBQztJQUMvQixNQUFNLEVBQUMsSUFBSSxFQUFFLEVBQUUsRUFBQyxHQUFHLFNBQVMsQ0FBQztJQUM3QixJQUFJLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFFcEIsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO1FBQzlCLElBQUksVUFBVSxFQUFFLENBQUM7WUFDYixPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDO1FBQzdELElBQUksSUFBSSxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNwQixVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDbEMsQ0FBQztRQUVELE9BQU8sQ0FBQyxVQUFVLENBQUM7SUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUNoQyxDQUFDO0FBRUQsTUFBTSxPQUFPLGFBQWMsU0FBUSxJQUFJO0lBQ25DLFlBQW1CLFFBQWtCLEVBQUUsTUFBaUI7UUFDcEQsS0FBSyxDQUFDO1lBQ0YsTUFBTSxDQUFDLEtBQWtCO2dCQUNyQixPQUFPLFVBQVUsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDdkMsQ0FBQztZQUNELE1BQU0sQ0FBQyxLQUFrQjtnQkFDckIsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO1lBQ2xDLENBQUM7WUFDRCxHQUFHLENBQUMsS0FBa0IsRUFBRSxRQUFrQyxFQUFFLElBQWdCO2dCQUN4RSxNQUFNO3FCQUNELElBQUksQ0FBeUQsb0JBQW9CLEVBQUU7b0JBQ2hGLElBQUksRUFBRTt3QkFDRixLQUFLLEVBQUUseUJBQXlCLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQztxQkFDcEQ7aUJBQ0osQ0FBQztxQkFDRCxXQUFXLEVBQUU7cUJBQ2IsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO29CQUNoQixJQUFJLE1BQU0sRUFBRSxDQUFDO3dCQUNULGdEQUFnRDt3QkFDaEQsSUFBSSxVQUFVLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUM7NEJBQzlCLFVBQVUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO3dCQUM1RCxDQUFDO3dCQUVELG9EQUFvRDt3QkFDcEQsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7NEJBQ2YsVUFBVSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7d0JBQ2hFLENBQUM7b0JBQ0wsQ0FBQztvQkFFRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2pCLENBQUMsQ0FBQyxDQUFDO1lBQ1gsQ0FBQztTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RWRpdG9yU3RhdGUsIFRyYW5zYWN0aW9ufSBmcm9tICdwcm9zZW1pcnJvci1zdGF0ZSc7XG5pbXBvcnQge0VkaXRvclZpZXd9IGZyb20gJ3Byb3NlbWlycm9yLXZpZXcnO1xuaW1wb3J0IHtJdGVtfSBmcm9tICcuL2l0ZW0nO1xuaW1wb3J0IHtNYXREaWFsb2d9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQge0NvbG9yRGlhbG9nQ29tcG9uZW50LCBDb2xvckRpYWxvZ0RhdGF9IGZyb20gJy4uLy4uL2NvbG9yLWRpYWxvZy9jb2xvci1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7TWFya1R5cGV9IGZyb20gJ3Byb3NlbWlycm9yLW1vZGVsJztcbmltcG9ydCB7bWFya0FjdGl2ZX0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQge3RvZ2dsZU1hcmt9IGZyb20gJ3Byb3NlbWlycm9yLWNvbW1hbmRzJztcbmltcG9ydCB7cmdiVG9IZXh9IGZyb20gJ0BlY29kZXYvbmF0dXJhbCc7XG5cbmZ1bmN0aW9uIGZpbmRGaXJzdENvbG9ySW5TZWxlY3Rpb24oc3RhdGU6IEVkaXRvclN0YXRlLCBtYXJrVHlwZTogTWFya1R5cGUpOiBzdHJpbmcge1xuICAgIGNvbnN0IHtzZWxlY3Rpb24sIGRvY30gPSBzdGF0ZTtcbiAgICBjb25zdCB7ZnJvbSwgdG99ID0gc2VsZWN0aW9uO1xuICAgIGxldCBmb3VuZENvbG9yID0gJyc7XG5cbiAgICBkb2Mubm9kZXNCZXR3ZWVuKGZyb20sIHRvLCBub2RlID0+IHtcbiAgICAgICAgaWYgKGZvdW5kQ29sb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1hcmsgPSBub2RlLm1hcmtzLmZpbmQobWFyayA9PiBtYXJrLnR5cGUgPT09IG1hcmtUeXBlKTtcbiAgICAgICAgaWYgKG1hcms/LmF0dHJzLmNvbG9yKSB7XG4gICAgICAgICAgICBmb3VuZENvbG9yID0gbWFyay5hdHRycy5jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAhZm91bmRDb2xvcjtcbiAgICB9KTtcblxuICAgIHJldHVybiByZ2JUb0hleChmb3VuZENvbG9yKTtcbn1cblxuZXhwb3J0IGNsYXNzIFRleHRDb2xvckl0ZW0gZXh0ZW5kcyBJdGVtIHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IobWFya1R5cGU6IE1hcmtUeXBlLCBkaWFsb2c6IE1hdERpYWxvZykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBhY3RpdmUoc3RhdGU6IEVkaXRvclN0YXRlKTogYm9vbGVhbiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1hcmtBY3RpdmUoc3RhdGUsIG1hcmtUeXBlKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlbmFibGUoc3RhdGU6IEVkaXRvclN0YXRlKTogYm9vbGVhbiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICFzdGF0ZS5zZWxlY3Rpb24uZW1wdHk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcnVuKHN0YXRlOiBFZGl0b3JTdGF0ZSwgZGlzcGF0Y2g6IChwOiBUcmFuc2FjdGlvbikgPT4gdm9pZCwgdmlldzogRWRpdG9yVmlldyk6IHZvaWQge1xuICAgICAgICAgICAgICAgIGRpYWxvZ1xuICAgICAgICAgICAgICAgICAgICAub3BlbjxDb2xvckRpYWxvZ0NvbXBvbmVudCwgQ29sb3JEaWFsb2dEYXRhLCBDb2xvckRpYWxvZ0RhdGE+KENvbG9yRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IGZpbmRGaXJzdENvbG9ySW5TZWxlY3Rpb24oc3RhdGUsIG1hcmtUeXBlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIC5hZnRlckNsb3NlZCgpXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBSZW1vdmUgZXhpc3RpbmcgY29sb3IgYmVmb3JlIGFwcGx5aW5nIG5ldyBvbmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWFya0FjdGl2ZShzdGF0ZSwgbWFya1R5cGUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZU1hcmsobWFya1R5cGUsIHt9LCB7fSkodmlldy5zdGF0ZSwgdmlldy5kaXNwYXRjaCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXBwbHkgbmV3IGNvbG9yLCB1bmxlc3Mgd2Ugc2VsZWN0ZWQgXCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5jb2xvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVNYXJrKG1hcmtUeXBlLCByZXN1bHQsIHt9KSh2aWV3LnN0YXRlLCB2aWV3LmRpc3BhdGNoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXcuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { Item } from './item';
|
|
2
|
-
import { toggleMark } from 'prosemirror-commands';
|
|
3
|
-
export function markActive(state, type) {
|
|
4
|
-
const { from, $from, to, empty } = state.selection;
|
|
5
|
-
if (empty) {
|
|
6
|
-
return !!type.isInSet(state.storedMarks || $from.marks());
|
|
7
|
-
}
|
|
8
|
-
else {
|
|
9
|
-
return state.doc.rangeHasMark(from, to, type);
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Convert built-in `MenuItem` into our Angular specific `Item`
|
|
14
|
-
*/
|
|
15
|
-
export function menuItemToItem(item) {
|
|
16
|
-
return new Item(item.spec);
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* From a `Command`, creates a new `Item` that will have an automatic `enable` spec
|
|
20
|
-
*/
|
|
21
|
-
export function cmdToItem(cmd, options = {}) {
|
|
22
|
-
const passedOptions = {
|
|
23
|
-
run: cmd,
|
|
24
|
-
...options,
|
|
25
|
-
};
|
|
26
|
-
if (!options.enable && !options.select) {
|
|
27
|
-
passedOptions.enable = state => cmd(state);
|
|
28
|
-
}
|
|
29
|
-
return new Item(passedOptions);
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* From a `MarkType`, creates a new `Item` that will have an automatic `active` and `enable` spec
|
|
33
|
-
*/
|
|
34
|
-
export function markTypeToItem(markType) {
|
|
35
|
-
return cmdToItem(toggleMark(markType), {
|
|
36
|
-
active(state) {
|
|
37
|
-
return markActive(state, markType);
|
|
38
|
-
},
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
export function selectionContainsNodeType(state, allowedNodeTypes) {
|
|
42
|
-
const { selection, doc } = state;
|
|
43
|
-
const { from, to } = selection;
|
|
44
|
-
let keepLooking = true;
|
|
45
|
-
let found = false;
|
|
46
|
-
doc.nodesBetween(from, to, node => {
|
|
47
|
-
if (keepLooking && allowedNodeTypes.includes(node.type.name)) {
|
|
48
|
-
keepLooking = false;
|
|
49
|
-
found = true;
|
|
50
|
-
}
|
|
51
|
-
return keepLooking;
|
|
52
|
-
});
|
|
53
|
-
return found;
|
|
54
|
-
}
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsLWVkaXRvci9zcmMvbGliL3V0aWxzL2l0ZW1zL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRWhELE1BQU0sVUFBVSxVQUFVLENBQUMsS0FBa0IsRUFBRSxJQUFjO0lBQ3pELE1BQU0sRUFBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO0lBQ2pELElBQUksS0FBSyxFQUFFLENBQUM7UUFDUixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDOUQsQ0FBQztTQUFNLENBQUM7UUFDSixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbEQsQ0FBQztBQUNMLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsSUFBYztJQUN6QyxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMvQixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsU0FBUyxDQUFDLEdBQVksRUFBRSxVQUFpQyxFQUFFO0lBQ3ZFLE1BQU0sYUFBYSxHQUFpQjtRQUNoQyxHQUFHLEVBQUUsR0FBRztRQUNSLEdBQUcsT0FBTztLQUNiLENBQUM7SUFFRixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNyQyxhQUFhLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxPQUFPLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ25DLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsUUFBa0I7SUFDN0MsT0FBTyxTQUFTLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ25DLE1BQU0sQ0FBQyxLQUFrQjtZQUNyQixPQUFPLFVBQVUsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDdkMsQ0FBQztLQUNKLENBQUMsQ0FBQztBQUNQLENBQUM7QUFFRCxNQUFNLFVBQVUseUJBQXlCLENBQUMsS0FBa0IsRUFBRSxnQkFBMEI7SUFDcEYsTUFBTSxFQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUMsR0FBRyxLQUFLLENBQUM7SUFDL0IsTUFBTSxFQUFDLElBQUksRUFBRSxFQUFFLEVBQUMsR0FBRyxTQUFTLENBQUM7SUFDN0IsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQztJQUVsQixHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7UUFDOUIsSUFBSSxXQUFXLElBQUksZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMzRCxXQUFXLEdBQUcsS0FBSyxDQUFDO1lBQ3BCLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDakIsQ0FBQztRQUVELE9BQU8sV0FBVyxDQUFDO0lBQ3ZCLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tbWFuZCwgRWRpdG9yU3RhdGV9IGZyb20gJ3Byb3NlbWlycm9yLXN0YXRlJztcbmltcG9ydCB7TWFya1R5cGV9IGZyb20gJ3Byb3NlbWlycm9yLW1vZGVsJztcbmltcG9ydCB7TWVudUl0ZW0sIE1lbnVJdGVtU3BlY30gZnJvbSAncHJvc2VtaXJyb3ItbWVudSc7XG5pbXBvcnQge0l0ZW19IGZyb20gJy4vaXRlbSc7XG5pbXBvcnQge3RvZ2dsZU1hcmt9IGZyb20gJ3Byb3NlbWlycm9yLWNvbW1hbmRzJztcblxuZXhwb3J0IGZ1bmN0aW9uIG1hcmtBY3RpdmUoc3RhdGU6IEVkaXRvclN0YXRlLCB0eXBlOiBNYXJrVHlwZSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHtmcm9tLCAkZnJvbSwgdG8sIGVtcHR5fSA9IHN0YXRlLnNlbGVjdGlvbjtcbiAgICBpZiAoZW1wdHkpIHtcbiAgICAgICAgcmV0dXJuICEhdHlwZS5pc0luU2V0KHN0YXRlLnN0b3JlZE1hcmtzIHx8ICRmcm9tLm1hcmtzKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBzdGF0ZS5kb2MucmFuZ2VIYXNNYXJrKGZyb20sIHRvLCB0eXBlKTtcbiAgICB9XG59XG5cbi8qKlxuICogQ29udmVydCBidWlsdC1pbiBgTWVudUl0ZW1gIGludG8gb3VyIEFuZ3VsYXIgc3BlY2lmaWMgYEl0ZW1gXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtZW51SXRlbVRvSXRlbShpdGVtOiBNZW51SXRlbSk6IEl0ZW0ge1xuICAgIHJldHVybiBuZXcgSXRlbShpdGVtLnNwZWMpO1xufVxuXG4vKipcbiAqIEZyb20gYSBgQ29tbWFuZGAsIGNyZWF0ZXMgYSBuZXcgYEl0ZW1gIHRoYXQgd2lsbCBoYXZlIGFuIGF1dG9tYXRpYyBgZW5hYmxlYCBzcGVjXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbWRUb0l0ZW0oY21kOiBDb21tYW5kLCBvcHRpb25zOiBQYXJ0aWFsPE1lbnVJdGVtU3BlYz4gPSB7fSk6IEl0ZW0ge1xuICAgIGNvbnN0IHBhc3NlZE9wdGlvbnM6IE1lbnVJdGVtU3BlYyA9IHtcbiAgICAgICAgcnVuOiBjbWQsXG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcblxuICAgIGlmICghb3B0aW9ucy5lbmFibGUgJiYgIW9wdGlvbnMuc2VsZWN0KSB7XG4gICAgICAgIHBhc3NlZE9wdGlvbnMuZW5hYmxlID0gc3RhdGUgPT4gY21kKHN0YXRlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEl0ZW0ocGFzc2VkT3B0aW9ucyk7XG59XG5cbi8qKlxuICogRnJvbSBhIGBNYXJrVHlwZWAsIGNyZWF0ZXMgYSBuZXcgYEl0ZW1gIHRoYXQgd2lsbCBoYXZlIGFuIGF1dG9tYXRpYyBgYWN0aXZlYCBhbmQgYGVuYWJsZWAgc3BlY1xuICovXG5leHBvcnQgZnVuY3Rpb24gbWFya1R5cGVUb0l0ZW0obWFya1R5cGU6IE1hcmtUeXBlKTogSXRlbSB7XG4gICAgcmV0dXJuIGNtZFRvSXRlbSh0b2dnbGVNYXJrKG1hcmtUeXBlKSwge1xuICAgICAgICBhY3RpdmUoc3RhdGU6IEVkaXRvclN0YXRlKTogYm9vbGVhbiB7XG4gICAgICAgICAgICByZXR1cm4gbWFya0FjdGl2ZShzdGF0ZSwgbWFya1R5cGUpO1xuICAgICAgICB9LFxuICAgIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2VsZWN0aW9uQ29udGFpbnNOb2RlVHlwZShzdGF0ZTogRWRpdG9yU3RhdGUsIGFsbG93ZWROb2RlVHlwZXM6IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gICAgY29uc3Qge3NlbGVjdGlvbiwgZG9jfSA9IHN0YXRlO1xuICAgIGNvbnN0IHtmcm9tLCB0b30gPSBzZWxlY3Rpb247XG4gICAgbGV0IGtlZXBMb29raW5nID0gdHJ1ZTtcbiAgICBsZXQgZm91bmQgPSBmYWxzZTtcblxuICAgIGRvYy5ub2Rlc0JldHdlZW4oZnJvbSwgdG8sIG5vZGUgPT4ge1xuICAgICAgICBpZiAoa2VlcExvb2tpbmcgJiYgYWxsb3dlZE5vZGVUeXBlcy5pbmNsdWRlcyhub2RlLnR5cGUubmFtZSkpIHtcbiAgICAgICAgICAgIGtlZXBMb29raW5nID0gZmFsc2U7XG4gICAgICAgICAgICBmb3VuZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ga2VlcExvb2tpbmc7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZm91bmQ7XG59XG4iXX0=
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { wrapInList } from 'prosemirror-schema-list';
|
|
2
|
-
import { cmdToItem } from './utils';
|
|
3
|
-
export function wrapListItem(nodeType) {
|
|
4
|
-
return cmdToItem(wrapInList(nodeType));
|
|
5
|
-
}
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JhcC1saXN0LWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsLWVkaXRvci9zcmMvbGliL3V0aWxzL2l0ZW1zL3dyYXAtbGlzdC1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sU0FBUyxDQUFDO0FBRWxDLE1BQU0sVUFBVSxZQUFZLENBQUMsUUFBa0I7SUFDM0MsT0FBTyxTQUFTLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFDM0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Tm9kZVR5cGV9IGZyb20gJ3Byb3NlbWlycm9yLW1vZGVsJztcbmltcG9ydCB7SXRlbX0gZnJvbSAnLi9pdGVtJztcbmltcG9ydCB7d3JhcEluTGlzdH0gZnJvbSAncHJvc2VtaXJyb3Itc2NoZW1hLWxpc3QnO1xuaW1wb3J0IHtjbWRUb0l0ZW19IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gd3JhcExpc3RJdGVtKG5vZGVUeXBlOiBOb2RlVHlwZSk6IEl0ZW0ge1xuICAgIHJldHVybiBjbWRUb0l0ZW0od3JhcEluTGlzdChub2RlVHlwZSkpO1xufVxuIl19
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
import { chainCommands, exitCode, joinDown, joinUp, lift, selectParentNode, setBlockType, toggleMark, wrapIn, } from 'prosemirror-commands';
|
|
2
|
-
import { liftListItem, sinkListItem, splitListItem, wrapInList } from 'prosemirror-schema-list';
|
|
3
|
-
import { redo, undo } from 'prosemirror-history';
|
|
4
|
-
import { undoInputRule } from 'prosemirror-inputrules';
|
|
5
|
-
/**
|
|
6
|
-
* Inspect the given schema looking for marks and nodes from the
|
|
7
|
-
* basic schema, and if found, add key bindings related to them.
|
|
8
|
-
* This will add:
|
|
9
|
-
*
|
|
10
|
-
* * **Mod-b** for toggling [strong](#schema-basic.StrongMark)
|
|
11
|
-
* * **Mod-i** for toggling [emphasis](#schema-basic.EmMark)
|
|
12
|
-
* * **Mod-`** for toggling [code font](#schema-basic.CodeMark)
|
|
13
|
-
* * **Ctrl-Shift-0** for making the current textblock a paragraph
|
|
14
|
-
* * **Ctrl-Shift-1** to **Ctrl-Shift-Digit6** for making the current
|
|
15
|
-
* textblock a heading of the corresponding level
|
|
16
|
-
* * **Ctrl-Shift-Backslash** to make the current textblock a code block
|
|
17
|
-
* * **Ctrl-Shift-8** to wrap the selection in an ordered list
|
|
18
|
-
* * **Ctrl-Shift-9** to wrap the selection in a bullet list
|
|
19
|
-
* * **Ctrl->** to wrap the selection in a block quote
|
|
20
|
-
* * **Enter** to split a non-empty textblock in a list item while at
|
|
21
|
-
* the same time splitting the list item
|
|
22
|
-
* * **Mod-Enter** to insert a hard break
|
|
23
|
-
* * **Mod-_** to insert a horizontal rule
|
|
24
|
-
* * **Backspace** to undo an input rule
|
|
25
|
-
* * **Alt-ArrowUp** to `joinUp`
|
|
26
|
-
* * **Alt-ArrowDown** to `joinDown`
|
|
27
|
-
* * **Mod-BracketLeft** to `lift`
|
|
28
|
-
* * **Escape** to `selectParentNode`
|
|
29
|
-
*
|
|
30
|
-
* You can suppress or map these bindings by passing a `mapKeys`
|
|
31
|
-
* argument, which maps key names (say `"Mod-B"` to either `false`, to
|
|
32
|
-
* remove the binding, or a new key name string.
|
|
33
|
-
*/
|
|
34
|
-
export function buildKeymap(schema, isMac) {
|
|
35
|
-
const keys = {};
|
|
36
|
-
keys['Mod-z'] = undo;
|
|
37
|
-
keys['Shift-Mod-z'] = redo;
|
|
38
|
-
keys.Backspace = undoInputRule;
|
|
39
|
-
if (!isMac) {
|
|
40
|
-
keys['Mod-y'] = redo;
|
|
41
|
-
}
|
|
42
|
-
keys['Alt-ArrowUp'] = joinUp;
|
|
43
|
-
keys['Alt-ArrowDown'] = joinDown;
|
|
44
|
-
keys['Mod-BracketLeft'] = lift;
|
|
45
|
-
keys.Escape = selectParentNode;
|
|
46
|
-
let type = schema.marks.strong;
|
|
47
|
-
if (type) {
|
|
48
|
-
keys['Mod-b'] = toggleMark(type);
|
|
49
|
-
keys['Mod-B'] = toggleMark(type);
|
|
50
|
-
}
|
|
51
|
-
type = schema.marks.em;
|
|
52
|
-
if (type) {
|
|
53
|
-
keys['Mod-i'] = toggleMark(type);
|
|
54
|
-
keys['Mod-I'] = toggleMark(type);
|
|
55
|
-
}
|
|
56
|
-
type = schema.marks.code;
|
|
57
|
-
if (type) {
|
|
58
|
-
keys['Mod-`'] = toggleMark(type);
|
|
59
|
-
}
|
|
60
|
-
type = schema.nodes.bullet_list;
|
|
61
|
-
if (type) {
|
|
62
|
-
keys['Shift-Ctrl-8'] = wrapInList(type);
|
|
63
|
-
}
|
|
64
|
-
type = schema.nodes.ordered_list;
|
|
65
|
-
if (type) {
|
|
66
|
-
keys['Shift-Ctrl-9'] = wrapInList(type);
|
|
67
|
-
}
|
|
68
|
-
type = schema.nodes.blockquote;
|
|
69
|
-
if (type) {
|
|
70
|
-
keys['Ctrl->'] = wrapIn(type);
|
|
71
|
-
}
|
|
72
|
-
type = schema.nodes.hard_break;
|
|
73
|
-
if (type) {
|
|
74
|
-
const br = type;
|
|
75
|
-
const cmd = chainCommands(exitCode, (state, dispatch) => {
|
|
76
|
-
dispatch?.(state.tr.replaceSelectionWith(br.create()).scrollIntoView());
|
|
77
|
-
return true;
|
|
78
|
-
});
|
|
79
|
-
keys['Mod-Enter'] = cmd;
|
|
80
|
-
keys['Shift-Enter'] = cmd;
|
|
81
|
-
if (isMac) {
|
|
82
|
-
keys['Ctrl-Enter'] = cmd;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
type = schema.nodes.list_item;
|
|
86
|
-
if (type) {
|
|
87
|
-
keys.Enter = splitListItem(type);
|
|
88
|
-
keys['Mod-['] = liftListItem(type);
|
|
89
|
-
keys['Mod-]'] = sinkListItem(type);
|
|
90
|
-
}
|
|
91
|
-
type = schema.nodes.paragraph;
|
|
92
|
-
if (type) {
|
|
93
|
-
keys['Shift-Ctrl-0'] = setBlockType(type);
|
|
94
|
-
}
|
|
95
|
-
type = schema.nodes.code_block;
|
|
96
|
-
if (type) {
|
|
97
|
-
keys['Shift-Ctrl-\\'] = setBlockType(type);
|
|
98
|
-
}
|
|
99
|
-
type = schema.nodes.heading;
|
|
100
|
-
if (type) {
|
|
101
|
-
for (let i = 1; i <= 6; i++) {
|
|
102
|
-
keys['Shift-Ctrl-' + i] = setBlockType(type, { level: i });
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
type = schema.nodes.horizontal_rule;
|
|
106
|
-
if (type) {
|
|
107
|
-
const hr = type;
|
|
108
|
-
keys['Mod-_'] = (state, dispatch) => {
|
|
109
|
-
dispatch?.(state.tr.replaceSelectionWith(hr.create()).scrollIntoView());
|
|
110
|
-
return true;
|
|
111
|
-
};
|
|
112
|
-
}
|
|
113
|
-
return keys;
|
|
114
|
-
}
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5bWFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC1lZGl0b3Ivc3JjL2xpYi91dGlscy9rZXltYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGFBQWEsRUFDYixRQUFRLEVBQ1IsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBQ0osZ0JBQWdCLEVBQ2hCLFlBQVksRUFDWixVQUFVLEVBQ1YsTUFBTSxHQUNULE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzlGLE9BQU8sRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBTXJEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNEJHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBQyxNQUFjLEVBQUUsS0FBYztJQUN0RCxNQUFNLElBQUksR0FBVyxFQUFFLENBQUM7SUFFeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQztJQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBQzNCLElBQUksQ0FBQyxTQUFTLEdBQUcsYUFBYSxDQUFDO0lBQy9CLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNULElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxNQUFNLENBQUM7SUFDN0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLFFBQVEsQ0FBQztJQUNqQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDL0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQztJQUUvQixJQUFJLElBQUksR0FBd0IsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7SUFDcEQsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNQLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO0lBQ3ZCLElBQUksSUFBSSxFQUFFLENBQUM7UUFDUCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELElBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztJQUN6QixJQUFJLElBQUksRUFBRSxDQUFDO1FBQ1AsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO0lBQ2hDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxJQUFJLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUM7SUFDakMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNQLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztJQUMvQixJQUFJLElBQUksRUFBRSxDQUFDO1FBQ1AsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO0lBQy9CLElBQUksSUFBSSxFQUFFLENBQUM7UUFDUCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDaEIsTUFBTSxHQUFHLEdBQUcsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsRUFBRTtZQUNwRCxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7WUFDeEUsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDMUIsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNSLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDN0IsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7SUFDOUIsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNQLElBQUksQ0FBQyxLQUFLLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO0lBQzlCLElBQUksSUFBSSxFQUFFLENBQUM7UUFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUFJLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7SUFDL0IsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNQLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELElBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztJQUM1QixJQUFJLElBQUksRUFBRSxDQUFDO1FBQ1AsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLEdBQUcsWUFBWSxDQUFDLElBQUksRUFBRSxFQUFDLEtBQUssRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDO1FBQzdELENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDO0lBQ3BDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDUCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxFQUFFO1lBQ2hDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztZQUN4RSxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgY2hhaW5Db21tYW5kcyxcbiAgICBleGl0Q29kZSxcbiAgICBqb2luRG93bixcbiAgICBqb2luVXAsXG4gICAgbGlmdCxcbiAgICBzZWxlY3RQYXJlbnROb2RlLFxuICAgIHNldEJsb2NrVHlwZSxcbiAgICB0b2dnbGVNYXJrLFxuICAgIHdyYXBJbixcbn0gZnJvbSAncHJvc2VtaXJyb3ItY29tbWFuZHMnO1xuaW1wb3J0IHtsaWZ0TGlzdEl0ZW0sIHNpbmtMaXN0SXRlbSwgc3BsaXRMaXN0SXRlbSwgd3JhcEluTGlzdH0gZnJvbSAncHJvc2VtaXJyb3Itc2NoZW1hLWxpc3QnO1xuaW1wb3J0IHtyZWRvLCB1bmRvfSBmcm9tICdwcm9zZW1pcnJvci1oaXN0b3J5JztcbmltcG9ydCB7dW5kb0lucHV0UnVsZX0gZnJvbSAncHJvc2VtaXJyb3ItaW5wdXRydWxlcyc7XG5pbXBvcnQge01hcmtUeXBlLCBOb2RlVHlwZSwgU2NoZW1hfSBmcm9tICdwcm9zZW1pcnJvci1tb2RlbCc7XG5pbXBvcnQge0NvbW1hbmR9IGZyb20gJ3Byb3NlbWlycm9yLXN0YXRlJztcblxudHlwZSBLZXltYXAgPSBSZWNvcmQ8c3RyaW5nLCBDb21tYW5kPjtcblxuLyoqXG4gKiBJbnNwZWN0IHRoZSBnaXZlbiBzY2hlbWEgbG9va2luZyBmb3IgbWFya3MgYW5kIG5vZGVzIGZyb20gdGhlXG4gKiBiYXNpYyBzY2hlbWEsIGFuZCBpZiBmb3VuZCwgYWRkIGtleSBiaW5kaW5ncyByZWxhdGVkIHRvIHRoZW0uXG4gKiBUaGlzIHdpbGwgYWRkOlxuICpcbiAqICogKipNb2QtYioqIGZvciB0b2dnbGluZyBbc3Ryb25nXSgjc2NoZW1hLWJhc2ljLlN0cm9uZ01hcmspXG4gKiAqICoqTW9kLWkqKiBmb3IgdG9nZ2xpbmcgW2VtcGhhc2lzXSgjc2NoZW1hLWJhc2ljLkVtTWFyaylcbiAqICogKipNb2QtYCoqIGZvciB0b2dnbGluZyBbY29kZSBmb250XSgjc2NoZW1hLWJhc2ljLkNvZGVNYXJrKVxuICogKiAqKkN0cmwtU2hpZnQtMCoqIGZvciBtYWtpbmcgdGhlIGN1cnJlbnQgdGV4dGJsb2NrIGEgcGFyYWdyYXBoXG4gKiAqICoqQ3RybC1TaGlmdC0xKiogdG8gKipDdHJsLVNoaWZ0LURpZ2l0NioqIGZvciBtYWtpbmcgdGhlIGN1cnJlbnRcbiAqICAgdGV4dGJsb2NrIGEgaGVhZGluZyBvZiB0aGUgY29ycmVzcG9uZGluZyBsZXZlbFxuICogKiAqKkN0cmwtU2hpZnQtQmFja3NsYXNoKiogdG8gbWFrZSB0aGUgY3VycmVudCB0ZXh0YmxvY2sgYSBjb2RlIGJsb2NrXG4gKiAqICoqQ3RybC1TaGlmdC04KiogdG8gd3JhcCB0aGUgc2VsZWN0aW9uIGluIGFuIG9yZGVyZWQgbGlzdFxuICogKiAqKkN0cmwtU2hpZnQtOSoqIHRvIHdyYXAgdGhlIHNlbGVjdGlvbiBpbiBhIGJ1bGxldCBsaXN0XG4gKiAqICoqQ3RybC0+KiogdG8gd3JhcCB0aGUgc2VsZWN0aW9uIGluIGEgYmxvY2sgcXVvdGVcbiAqICogKipFbnRlcioqIHRvIHNwbGl0IGEgbm9uLWVtcHR5IHRleHRibG9jayBpbiBhIGxpc3QgaXRlbSB3aGlsZSBhdFxuICogICB0aGUgc2FtZSB0aW1lIHNwbGl0dGluZyB0aGUgbGlzdCBpdGVtXG4gKiAqICoqTW9kLUVudGVyKiogdG8gaW5zZXJ0IGEgaGFyZCBicmVha1xuICogKiAqKk1vZC1fKiogdG8gaW5zZXJ0IGEgaG9yaXpvbnRhbCBydWxlXG4gKiAqICoqQmFja3NwYWNlKiogdG8gdW5kbyBhbiBpbnB1dCBydWxlXG4gKiAqICoqQWx0LUFycm93VXAqKiB0byBgam9pblVwYFxuICogKiAqKkFsdC1BcnJvd0Rvd24qKiB0byBgam9pbkRvd25gXG4gKiAqICoqTW9kLUJyYWNrZXRMZWZ0KiogdG8gYGxpZnRgXG4gKiAqICoqRXNjYXBlKiogdG8gYHNlbGVjdFBhcmVudE5vZGVgXG4gKlxuICogWW91IGNhbiBzdXBwcmVzcyBvciBtYXAgdGhlc2UgYmluZGluZ3MgYnkgcGFzc2luZyBhIGBtYXBLZXlzYFxuICogYXJndW1lbnQsIHdoaWNoIG1hcHMga2V5IG5hbWVzIChzYXkgYFwiTW9kLUJcImAgdG8gZWl0aGVyIGBmYWxzZWAsIHRvXG4gKiByZW1vdmUgdGhlIGJpbmRpbmcsIG9yIGEgbmV3IGtleSBuYW1lIHN0cmluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkS2V5bWFwKHNjaGVtYTogU2NoZW1hLCBpc01hYzogYm9vbGVhbik6IEtleW1hcCB7XG4gICAgY29uc3Qga2V5czogS2V5bWFwID0ge307XG5cbiAgICBrZXlzWydNb2QteiddID0gdW5kbztcbiAgICBrZXlzWydTaGlmdC1Nb2QteiddID0gcmVkbztcbiAgICBrZXlzLkJhY2tzcGFjZSA9IHVuZG9JbnB1dFJ1bGU7XG4gICAgaWYgKCFpc01hYykge1xuICAgICAgICBrZXlzWydNb2QteSddID0gcmVkbztcbiAgICB9XG5cbiAgICBrZXlzWydBbHQtQXJyb3dVcCddID0gam9pblVwO1xuICAgIGtleXNbJ0FsdC1BcnJvd0Rvd24nXSA9IGpvaW5Eb3duO1xuICAgIGtleXNbJ01vZC1CcmFja2V0TGVmdCddID0gbGlmdDtcbiAgICBrZXlzLkVzY2FwZSA9IHNlbGVjdFBhcmVudE5vZGU7XG5cbiAgICBsZXQgdHlwZTogTWFya1R5cGUgfCBOb2RlVHlwZSA9IHNjaGVtYS5tYXJrcy5zdHJvbmc7XG4gICAgaWYgKHR5cGUpIHtcbiAgICAgICAga2V5c1snTW9kLWInXSA9IHRvZ2dsZU1hcmsodHlwZSk7XG4gICAgICAgIGtleXNbJ01vZC1CJ10gPSB0b2dnbGVNYXJrKHR5cGUpO1xuICAgIH1cblxuICAgIHR5cGUgPSBzY2hlbWEubWFya3MuZW07XG4gICAgaWYgKHR5cGUpIHtcbiAgICAgICAga2V5c1snTW9kLWknXSA9IHRvZ2dsZU1hcmsodHlwZSk7XG4gICAgICAgIGtleXNbJ01vZC1JJ10gPSB0b2dnbGVNYXJrKHR5cGUpO1xuICAgIH1cblxuICAgIHR5cGUgPSBzY2hlbWEubWFya3MuY29kZTtcbiAgICBpZiAodHlwZSkge1xuICAgICAgICBrZXlzWydNb2QtYCddID0gdG9nZ2xlTWFyayh0eXBlKTtcbiAgICB9XG5cbiAgICB0eXBlID0gc2NoZW1hLm5vZGVzLmJ1bGxldF9saXN0O1xuICAgIGlmICh0eXBlKSB7XG4gICAgICAgIGtleXNbJ1NoaWZ0LUN0cmwtOCddID0gd3JhcEluTGlzdCh0eXBlKTtcbiAgICB9XG5cbiAgICB0eXBlID0gc2NoZW1hLm5vZGVzLm9yZGVyZWRfbGlzdDtcbiAgICBpZiAodHlwZSkge1xuICAgICAgICBrZXlzWydTaGlmdC1DdHJsLTknXSA9IHdyYXBJbkxpc3QodHlwZSk7XG4gICAgfVxuXG4gICAgdHlwZSA9IHNjaGVtYS5ub2Rlcy5ibG9ja3F1b3RlO1xuICAgIGlmICh0eXBlKSB7XG4gICAgICAgIGtleXNbJ0N0cmwtPiddID0gd3JhcEluKHR5cGUpO1xuICAgIH1cblxuICAgIHR5cGUgPSBzY2hlbWEubm9kZXMuaGFyZF9icmVhaztcbiAgICBpZiAodHlwZSkge1xuICAgICAgICBjb25zdCBiciA9IHR5cGU7XG4gICAgICAgIGNvbnN0IGNtZCA9IGNoYWluQ29tbWFuZHMoZXhpdENvZGUsIChzdGF0ZSwgZGlzcGF0Y2gpID0+IHtcbiAgICAgICAgICAgIGRpc3BhdGNoPy4oc3RhdGUudHIucmVwbGFjZVNlbGVjdGlvbldpdGgoYnIuY3JlYXRlKCkpLnNjcm9sbEludG9WaWV3KCkpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0pO1xuICAgICAgICBrZXlzWydNb2QtRW50ZXInXSA9IGNtZDtcbiAgICAgICAga2V5c1snU2hpZnQtRW50ZXInXSA9IGNtZDtcbiAgICAgICAgaWYgKGlzTWFjKSB7XG4gICAgICAgICAgICBrZXlzWydDdHJsLUVudGVyJ10gPSBjbWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0eXBlID0gc2NoZW1hLm5vZGVzLmxpc3RfaXRlbTtcbiAgICBpZiAodHlwZSkge1xuICAgICAgICBrZXlzLkVudGVyID0gc3BsaXRMaXN0SXRlbSh0eXBlKTtcbiAgICAgICAga2V5c1snTW9kLVsnXSA9IGxpZnRMaXN0SXRlbSh0eXBlKTtcbiAgICAgICAga2V5c1snTW9kLV0nXSA9IHNpbmtMaXN0SXRlbSh0eXBlKTtcbiAgICB9XG5cbiAgICB0eXBlID0gc2NoZW1hLm5vZGVzLnBhcmFncmFwaDtcbiAgICBpZiAodHlwZSkge1xuICAgICAgICBrZXlzWydTaGlmdC1DdHJsLTAnXSA9IHNldEJsb2NrVHlwZSh0eXBlKTtcbiAgICB9XG5cbiAgICB0eXBlID0gc2NoZW1hLm5vZGVzLmNvZGVfYmxvY2s7XG4gICAgaWYgKHR5cGUpIHtcbiAgICAgICAga2V5c1snU2hpZnQtQ3RybC1cXFxcJ10gPSBzZXRCbG9ja1R5cGUodHlwZSk7XG4gICAgfVxuXG4gICAgdHlwZSA9IHNjaGVtYS5ub2Rlcy5oZWFkaW5nO1xuICAgIGlmICh0eXBlKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IDY7IGkrKykge1xuICAgICAgICAgICAga2V5c1snU2hpZnQtQ3RybC0nICsgaV0gPSBzZXRCbG9ja1R5cGUodHlwZSwge2xldmVsOiBpfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0eXBlID0gc2NoZW1hLm5vZGVzLmhvcml6b250YWxfcnVsZTtcbiAgICBpZiAodHlwZSkge1xuICAgICAgICBjb25zdCBociA9IHR5cGU7XG4gICAgICAgIGtleXNbJ01vZC1fJ10gPSAoc3RhdGUsIGRpc3BhdGNoKSA9PiB7XG4gICAgICAgICAgICBkaXNwYXRjaD8uKHN0YXRlLnRyLnJlcGxhY2VTZWxlY3Rpb25XaXRoKGhyLmNyZWF0ZSgpKS5zY3JvbGxJbnRvVmlldygpKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBrZXlzO1xufVxuIl19
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
import { blockTypeItem, joinUpItem, liftItem, redoItem, selectParentNodeItem, undoItem, wrapItem, } from 'prosemirror-menu';
|
|
2
|
-
import { addColumnAfter, addColumnBefore, addRowAfter, addRowBefore, deleteColumn, deleteRow, deleteTable, mergeCells, splitCell, toggleHeaderCell, toggleHeaderColumn, toggleHeaderRow, } from 'prosemirror-tables';
|
|
3
|
-
import { paragraphWithAlignment } from './schema/paragraph-with-alignment';
|
|
4
|
-
import { TextAlignItem } from './items/text-align-item';
|
|
5
|
-
import { CellBackgroundColorItem } from './items/cell-background-color-item';
|
|
6
|
-
import { LinkItem } from './items/link-item';
|
|
7
|
-
import { HorizontalRuleItem } from './items/horizontal-rule-item';
|
|
8
|
-
import { cmdToItem, markTypeToItem, menuItemToItem } from './items/utils';
|
|
9
|
-
import { wrapListItem } from './items/wrap-list-item';
|
|
10
|
-
import { ClassItem } from './items/class-item';
|
|
11
|
-
import { IdItem } from './items/id-item';
|
|
12
|
-
import { AddTableItem } from './items/table-item';
|
|
13
|
-
import { TextColorItem } from './items/text-color-item';
|
|
14
|
-
/**
|
|
15
|
-
* Given a schema, look for default mark and node types in it and
|
|
16
|
-
* return an object with relevant menu items relating to those marks:
|
|
17
|
-
*/
|
|
18
|
-
export function buildMenuItems(schema, dialog) {
|
|
19
|
-
const r = {
|
|
20
|
-
joinUp: menuItemToItem(joinUpItem),
|
|
21
|
-
lift: menuItemToItem(liftItem),
|
|
22
|
-
selectParentNode: menuItemToItem(selectParentNodeItem),
|
|
23
|
-
undo: menuItemToItem(undoItem),
|
|
24
|
-
redo: menuItemToItem(redoItem),
|
|
25
|
-
};
|
|
26
|
-
let type;
|
|
27
|
-
type = schema.marks.strong;
|
|
28
|
-
if (type) {
|
|
29
|
-
r.toggleStrong = markTypeToItem(type);
|
|
30
|
-
}
|
|
31
|
-
type = schema.marks.em;
|
|
32
|
-
if (type) {
|
|
33
|
-
r.toggleEm = markTypeToItem(type);
|
|
34
|
-
}
|
|
35
|
-
type = schema.marks.code;
|
|
36
|
-
if (type) {
|
|
37
|
-
r.toggleCode = markTypeToItem(type);
|
|
38
|
-
}
|
|
39
|
-
type = schema.marks.link;
|
|
40
|
-
if (type) {
|
|
41
|
-
r.toggleLink = new LinkItem(type, dialog);
|
|
42
|
-
}
|
|
43
|
-
type = schema.marks.textColor;
|
|
44
|
-
if (type) {
|
|
45
|
-
r.textColor = new TextColorItem(type, dialog);
|
|
46
|
-
}
|
|
47
|
-
type = schema.nodes.bullet_list;
|
|
48
|
-
if (type) {
|
|
49
|
-
r.wrapBulletList = wrapListItem(type);
|
|
50
|
-
}
|
|
51
|
-
type = schema.nodes.ordered_list;
|
|
52
|
-
if (type) {
|
|
53
|
-
r.wrapOrderedList = wrapListItem(type);
|
|
54
|
-
}
|
|
55
|
-
type = schema.nodes.blockquote;
|
|
56
|
-
if (type) {
|
|
57
|
-
r.wrapBlockQuote = menuItemToItem(wrapItem(type, {}));
|
|
58
|
-
}
|
|
59
|
-
type = schema.nodes.paragraph;
|
|
60
|
-
if (type) {
|
|
61
|
-
r.makeParagraph = menuItemToItem(blockTypeItem(type, {}));
|
|
62
|
-
if (type.spec === paragraphWithAlignment) {
|
|
63
|
-
r.alignLeft = new TextAlignItem('left');
|
|
64
|
-
r.alignRight = new TextAlignItem('right');
|
|
65
|
-
r.alignCenter = new TextAlignItem('center');
|
|
66
|
-
r.alignJustify = new TextAlignItem('justify');
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
type = schema.nodes.code_block;
|
|
70
|
-
if (type) {
|
|
71
|
-
r.makeCodeBlock = menuItemToItem(blockTypeItem(type, {}));
|
|
72
|
-
}
|
|
73
|
-
type = schema.nodes.heading;
|
|
74
|
-
if (type) {
|
|
75
|
-
r.makeHead1 = menuItemToItem(blockTypeItem(type, { attrs: { level: 1 } }));
|
|
76
|
-
r.makeHead2 = menuItemToItem(blockTypeItem(type, { attrs: { level: 2 } }));
|
|
77
|
-
r.makeHead3 = menuItemToItem(blockTypeItem(type, { attrs: { level: 3 } }));
|
|
78
|
-
r.makeHead4 = menuItemToItem(blockTypeItem(type, { attrs: { level: 4 } }));
|
|
79
|
-
r.makeHead5 = menuItemToItem(blockTypeItem(type, { attrs: { level: 5 } }));
|
|
80
|
-
r.makeHead6 = menuItemToItem(blockTypeItem(type, { attrs: { level: 6 } }));
|
|
81
|
-
}
|
|
82
|
-
if (schema.nodes.paragraph?.spec === paragraphWithAlignment) {
|
|
83
|
-
r.blockId = new IdItem(dialog, ['heading', 'paragraph']);
|
|
84
|
-
r.blockClass = new ClassItem(dialog, ['heading', 'paragraph']);
|
|
85
|
-
}
|
|
86
|
-
type = schema.nodes.horizontal_rule;
|
|
87
|
-
if (type) {
|
|
88
|
-
r.insertHorizontalRule = new HorizontalRuleItem(type);
|
|
89
|
-
}
|
|
90
|
-
type = schema.nodes.table;
|
|
91
|
-
if (type) {
|
|
92
|
-
r.insertTable = new AddTableItem();
|
|
93
|
-
r.addColumnBefore = cmdToItem(addColumnBefore);
|
|
94
|
-
r.addColumnAfter = cmdToItem(addColumnAfter);
|
|
95
|
-
r.deleteColumn = cmdToItem(deleteColumn);
|
|
96
|
-
r.addRowBefore = cmdToItem(addRowBefore);
|
|
97
|
-
r.addRowAfter = cmdToItem(addRowAfter);
|
|
98
|
-
r.deleteRow = cmdToItem(deleteRow);
|
|
99
|
-
r.deleteTable = cmdToItem(deleteTable);
|
|
100
|
-
r.mergeCells = cmdToItem(mergeCells);
|
|
101
|
-
r.splitCell = cmdToItem(splitCell);
|
|
102
|
-
r.toggleHeaderColumn = cmdToItem(toggleHeaderColumn);
|
|
103
|
-
r.toggleHeaderRow = cmdToItem(toggleHeaderRow);
|
|
104
|
-
r.toggleHeaderCell = cmdToItem(toggleHeaderCell);
|
|
105
|
-
r.cellBackgroundColor = new CellBackgroundColorItem(dialog);
|
|
106
|
-
r.tableClass = new ClassItem(dialog, ['table']);
|
|
107
|
-
r.tableId = new IdItem(dialog, ['table']);
|
|
108
|
-
}
|
|
109
|
-
return r;
|
|
110
|
-
}
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwtZWRpdG9yL3NyYy9saWIvdXRpbHMvbWVudS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsYUFBYSxFQUNiLFVBQVUsRUFDVixRQUFRLEVBQ1IsUUFBUSxFQUNSLG9CQUFvQixFQUNwQixRQUFRLEVBQ1IsUUFBUSxHQUNYLE1BQU0sa0JBQWtCLENBQUM7QUFHMUIsT0FBTyxFQUNILGNBQWMsRUFDZCxlQUFlLEVBQ2YsV0FBVyxFQUNYLFlBQVksRUFDWixZQUFZLEVBQ1osU0FBUyxFQUNULFdBQVcsRUFDWCxVQUFVLEVBQ1YsU0FBUyxFQUNULGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsZUFBZSxHQUNsQixNQUFNLG9CQUFvQixDQUFDO0FBRTVCLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUMzRSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDM0MsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFDLFNBQVMsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDN0MsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0seUJBQXlC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QyxDQUFDLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsa0JBQWtCLEdBQUcsU0FBUyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDckQsQ0FBQyxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDL0MsQ0FBQyxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2pELENBQUMsQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVELENBQUMsQ0FBQyxVQUFVLEdBQUcsSUFBSSxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNoRCxDQUFDLENBQUMsT0FBTyxHQUFHLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELE9BQU8sQ0FBQyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgYmxvY2tUeXBlSXRlbSxcbiAgICBqb2luVXBJdGVtLFxuICAgIGxpZnRJdGVtLFxuICAgIHJlZG9JdGVtLFxuICAgIHNlbGVjdFBhcmVudE5vZGVJdGVtLFxuICAgIHVuZG9JdGVtLFxuICAgIHdyYXBJdGVtLFxufSBmcm9tICdwcm9zZW1pcnJvci1tZW51JztcbmltcG9ydCB7TWFya1R5cGUsIE5vZGVUeXBlLCBTY2hlbWF9IGZyb20gJ3Byb3NlbWlycm9yLW1vZGVsJztcbmltcG9ydCB7TWF0RGlhbG9nfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHtcbiAgICBhZGRDb2x1bW5BZnRlcixcbiAgICBhZGRDb2x1bW5CZWZvcmUsXG4gICAgYWRkUm93QWZ0ZXIsXG4gICAgYWRkUm93QmVmb3JlLFxuICAgIGRlbGV0ZUNvbHVtbixcbiAgICBkZWxldGVSb3csXG4gICAgZGVsZXRlVGFibGUsXG4gICAgbWVyZ2VDZWxscyxcbiAgICBzcGxpdENlbGwsXG4gICAgdG9nZ2xlSGVhZGVyQ2VsbCxcbiAgICB0b2dnbGVIZWFkZXJDb2x1bW4sXG4gICAgdG9nZ2xlSGVhZGVyUm93LFxufSBmcm9tICdwcm9zZW1pcnJvci10YWJsZXMnO1xuaW1wb3J0IHtJdGVtfSBmcm9tICcuL2l0ZW1zL2l0ZW0nO1xuaW1wb3J0IHtwYXJhZ3JhcGhXaXRoQWxpZ25tZW50fSBmcm9tICcuL3NjaGVtYS9wYXJhZ3JhcGgtd2l0aC1hbGlnbm1lbnQnO1xuaW1wb3J0IHtUZXh0QWxpZ25JdGVtfSBmcm9tICcuL2l0ZW1zL3RleHQtYWxpZ24taXRlbSc7XG5pbXBvcnQge0NlbGxCYWNrZ3JvdW5kQ29sb3JJdGVtfSBmcm9tICcuL2l0ZW1zL2NlbGwtYmFja2dyb3VuZC1jb2xvci1pdGVtJztcbmltcG9ydCB7TGlua0l0ZW19IGZyb20gJy4vaXRlbXMvbGluay1pdGVtJztcbmltcG9ydCB7SG9yaXpvbnRhbFJ1bGVJdGVtfSBmcm9tICcuL2l0ZW1zL2hvcml6b250YWwtcnVsZS1pdGVtJztcbmltcG9ydCB7Y21kVG9JdGVtLCBtYXJrVHlwZVRvSXRlbSwgbWVudUl0ZW1Ub0l0ZW19IGZyb20gJy4vaXRlbXMvdXRpbHMnO1xuaW1wb3J0IHt3cmFwTGlzdEl0ZW19IGZyb20gJy4vaXRlbXMvd3JhcC1saXN0LWl0ZW0nO1xuaW1wb3J0IHtDbGFzc0l0ZW19IGZyb20gJy4vaXRlbXMvY2xhc3MtaXRlbSc7XG5pbXBvcnQge0lkSXRlbX0gZnJvbSAnLi9pdGVtcy9pZC1pdGVtJztcbmltcG9ydCB7QWRkVGFibGVJdGVtfSBmcm9tICcuL2l0ZW1zL3RhYmxlLWl0ZW0nO1xuaW1wb3J0IHtUZXh0Q29sb3JJdGVtfSBmcm9tICcuL2l0ZW1zL3RleHQtY29sb3ItaXRlbSc7XG5cbmV4cG9ydCB0eXBlIEtleSA9XG4gICAgfCAndG9nZ2xlU3Ryb25nJ1xuICAgIHwgJ3RvZ2dsZUVtJ1xuICAgIHwgJ3RvZ2dsZUNvZGUnXG4gICAgfCAndG9nZ2xlTGluaydcbiAgICB8ICd0ZXh0Q29sb3InXG4gICAgfCAnd3JhcEJ1bGxldExpc3QnXG4gICAgfCAnd3JhcE9yZGVyZWRMaXN0J1xuICAgIHwgJ3dyYXBCbG9ja1F1b3RlJ1xuICAgIHwgJ21ha2VQYXJhZ3JhcGgnXG4gICAgfCAnbWFrZUNvZGVCbG9jaydcbiAgICB8ICdtYWtlSGVhZDEnXG4gICAgfCAnbWFrZUhlYWQyJ1xuICAgIHwgJ21ha2VIZWFkMydcbiAgICB8ICdtYWtlSGVhZDQnXG4gICAgfCAnbWFrZUhlYWQ1J1xuICAgIHwgJ21ha2VIZWFkNidcbiAgICB8ICdhbGlnbkxlZnQnXG4gICAgfCAnYWxpZ25SaWdodCdcbiAgICB8ICdhbGlnbkNlbnRlcidcbiAgICB8ICdhbGlnbkp1c3RpZnknXG4gICAgfCAnaW5zZXJ0SG9yaXpvbnRhbFJ1bGUnXG4gICAgfCAnam9pblVwJ1xuICAgIHwgJ2xpZnQnXG4gICAgfCAnc2VsZWN0UGFyZW50Tm9kZSdcbiAgICB8ICd1bmRvJ1xuICAgIHwgJ3JlZG8nXG4gICAgfCAnaW5zZXJ0VGFibGUnXG4gICAgfCAnYWRkQ29sdW1uQmVmb3JlJ1xuICAgIHwgJ2FkZENvbHVtbkFmdGVyJ1xuICAgIHwgJ2RlbGV0ZUNvbHVtbidcbiAgICB8ICdhZGRSb3dCZWZvcmUnXG4gICAgfCAnYWRkUm93QWZ0ZXInXG4gICAgfCAnZGVsZXRlUm93J1xuICAgIHwgJ2RlbGV0ZVRhYmxlJ1xuICAgIHwgJ21lcmdlQ2VsbHMnXG4gICAgfCAnc3BsaXRDZWxsJ1xuICAgIHwgJ3RvZ2dsZUhlYWRlckNvbHVtbidcbiAgICB8ICd0b2dnbGVIZWFkZXJSb3cnXG4gICAgfCAndG9nZ2xlSGVhZGVyQ2VsbCdcbiAgICB8ICdjZWxsQmFja2dyb3VuZENvbG9yJ1xuICAgIHwgJ3RhYmxlQ2xhc3MnXG4gICAgfCAndGFibGVJZCdcbiAgICB8ICdibG9ja0NsYXNzJ1xuICAgIHwgJ2Jsb2NrSWQnO1xuXG5leHBvcnQgdHlwZSBNZW51SXRlbXMgPSBQYXJ0aWFsPFJlY29yZDxLZXksIEl0ZW0+PjtcblxuLyoqXG4gKiBHaXZlbiBhIHNjaGVtYSwgbG9vayBmb3IgZGVmYXVsdCBtYXJrIGFuZCBub2RlIHR5cGVzIGluIGl0IGFuZFxuICogcmV0dXJuIGFuIG9iamVjdCB3aXRoIHJlbGV2YW50IG1lbnUgaXRlbXMgcmVsYXRpbmcgdG8gdGhvc2UgbWFya3M6XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZE1lbnVJdGVtcyhzY2hlbWE6IFNjaGVtYSwgZGlhbG9nOiBNYXREaWFsb2cpOiBNZW51SXRlbXMge1xuICAgIGNvbnN0IHI6IE1lbnVJdGVtcyA9IHtcbiAgICAgICAgam9pblVwOiBtZW51SXRlbVRvSXRlbShqb2luVXBJdGVtKSxcbiAgICAgICAgbGlmdDogbWVudUl0ZW1Ub0l0ZW0obGlmdEl0ZW0pLFxuICAgICAgICBzZWxlY3RQYXJlbnROb2RlOiBtZW51SXRlbVRvSXRlbShzZWxlY3RQYXJlbnROb2RlSXRlbSksXG4gICAgICAgIHVuZG86IG1lbnVJdGVtVG9JdGVtKHVuZG9JdGVtKSxcbiAgICAgICAgcmVkbzogbWVudUl0ZW1Ub0l0ZW0ocmVkb0l0ZW0pLFxuICAgIH07XG5cbiAgICBsZXQgdHlwZTogTWFya1R5cGUgfCBOb2RlVHlwZSB8IHVuZGVmaW5lZDtcbiAgICB0eXBlID0gc2NoZW1hLm1hcmtzLnN0cm9uZztcbiAgICBpZiAodHlwZSkge1xuICAgICAgICByLnRvZ2dsZVN0cm9uZyA9IG1hcmtUeXBlVG9JdGVtKHR5cGUpO1xuICAgIH1cblxuICAgIHR5cGUgPSBzY2hlbWEubWFya3MuZW07XG4gICAgaWYgKHR5cGUpIHtcbiAgICAgICAgci50b2dnbGVFbSA9IG1hcmtUeXBlVG9JdGVtKHR5cGUpO1xuICAgIH1cblxuICAgIHR5cGUgPSBzY2hlbWEubWFya3MuY29kZTtcbiAgICBpZiAodHlwZSkge1xuICAgICAgICByLnRvZ2dsZUNvZGUgPSBtYXJrVHlwZVRvSXRlbSh0eXBlKTtcbiAgICB9XG5cbiAgICB0eXBlID0gc2NoZW1hLm1hcmtzLmxpbms7XG4gICAgaWYgKHR5cGUpIHtcbiAgICAgICAgci50b2dnbGVMaW5rID0gbmV3IExpbmtJdGVtKHR5cGUsIGRpYWxvZyk7XG4gICAgfVxuXG4gICAgdHlwZSA9IHNjaGVtYS5tYXJrcy50ZXh0Q29sb3I7XG4gICAgaWYgKHR5cGUpIHtcbiAgICAgICAgci50ZXh0Q29sb3IgPSBuZXcgVGV4dENvbG9ySXRlbSh0eXBlLCBkaWFsb2cpO1xuICAgIH1cblxuICAgIHR5cGUgPSBzY2hlbWEubm9kZXMuYnVsbGV0X2xpc3Q7XG4gICAgaWYgKHR5cGUpIHtcbiAgICAgICAgci53cmFwQnVsbGV0TGlzdCA9IHdyYXBMaXN0SXRlbSh0eXBlKTtcbiAgICB9XG5cbiAgICB0eXBlID0gc2NoZW1hLm5vZGVzLm9yZGVyZWRfbGlzdDtcbiAgICBpZiAodHlwZSkge1xuICAgICAgICByLndyYXBPcmRlcmVkTGlzdCA9IHdyYXBMaXN0SXRlbSh0eXBlKTtcbiAgICB9XG5cbiAgICB0eXBlID0gc2NoZW1hLm5vZGVzLmJsb2NrcXVvdGU7XG4gICAgaWYgKHR5cGUpIHtcbiAgICAgICAgci53cmFwQmxvY2tRdW90ZSA9IG1lbnVJdGVtVG9JdGVtKHdyYXBJdGVtKHR5cGUsIHt9KSk7XG4gICAgfVxuXG4gICAgdHlwZSA9IHNjaGVtYS5ub2Rlcy5wYXJhZ3JhcGg7XG4gICAgaWYgKHR5cGUpIHtcbiAgICAgICAgci5tYWtlUGFyYWdyYXBoID0gbWVudUl0ZW1Ub0l0ZW0oYmxvY2tUeXBlSXRlbSh0eXBlLCB7fSkpO1xuXG4gICAgICAgIGlmICh0eXBlLnNwZWMgPT09IHBhcmFncmFwaFdpdGhBbGlnbm1lbnQpIHtcbiAgICAgICAgICAgIHIuYWxpZ25MZWZ0ID0gbmV3IFRleHRBbGlnbkl0ZW0oJ2xlZnQnKTtcbiAgICAgICAgICAgIHIuYWxpZ25SaWdodCA9IG5ldyBUZXh0QWxpZ25JdGVtKCdyaWdodCcpO1xuICAgICAgICAgICAgci5hbGlnbkNlbnRlciA9IG5ldyBUZXh0QWxpZ25JdGVtKCdjZW50ZXInKTtcbiAgICAgICAgICAgIHIuYWxpZ25KdXN0aWZ5ID0gbmV3IFRleHRBbGlnbkl0ZW0oJ2p1c3RpZnknKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHR5cGUgPSBzY2hlbWEubm9kZXMuY29kZV9ibG9jaztcbiAgICBpZiAodHlwZSkge1xuICAgICAgICByLm1ha2VDb2RlQmxvY2sgPSBtZW51SXRlbVRvSXRlbShibG9ja1R5cGVJdGVtKHR5cGUsIHt9KSk7XG4gICAgfVxuXG4gICAgdHlwZSA9IHNjaGVtYS5ub2Rlcy5oZWFkaW5nO1xuICAgIGlmICh0eXBlKSB7XG4gICAgICAgIHIubWFrZUhlYWQxID0gbWVudUl0ZW1Ub0l0ZW0oYmxvY2tUeXBlSXRlbSh0eXBlLCB7YXR0cnM6IHtsZXZlbDogMX19KSk7XG4gICAgICAgIHIubWFrZUhlYWQyID0gbWVudUl0ZW1Ub0l0ZW0oYmxvY2tUeXBlSXRlbSh0eXBlLCB7YXR0cnM6IHtsZXZlbDogMn19KSk7XG4gICAgICAgIHIubWFrZUhlYWQzID0gbWVudUl0ZW1Ub0l0ZW0oYmxvY2tUeXBlSXRlbSh0eXBlLCB7YXR0cnM6IHtsZXZlbDogM319KSk7XG4gICAgICAgIHIubWFrZUhlYWQ0ID0gbWVudUl0ZW1Ub0l0ZW0oYmxvY2tUeXBlSXRlbSh0eXBlLCB7YXR0cnM6IHtsZXZlbDogNH19KSk7XG4gICAgICAgIHIubWFrZUhlYWQ1ID0gbWVudUl0ZW1Ub0l0ZW0oYmxvY2tUeXBlSXRlbSh0eXBlLCB7YXR0cnM6IHtsZXZlbDogNX19KSk7XG4gICAgICAgIHIubWFrZUhlYWQ2ID0gbWVudUl0ZW1Ub0l0ZW0oYmxvY2tUeXBlSXRlbSh0eXBlLCB7YXR0cnM6IHtsZXZlbDogNn19KSk7XG4gICAgfVxuICAgIGlmIChzY2hlbWEubm9kZXMucGFyYWdyYXBoPy5zcGVjID09PSBwYXJhZ3JhcGhXaXRoQWxpZ25tZW50KSB7XG4gICAgICAgIHIuYmxvY2tJZCA9IG5ldyBJZEl0ZW0oZGlhbG9nLCBbJ2hlYWRpbmcnLCAncGFyYWdyYXBoJ10pO1xuICAgICAgICByLmJsb2NrQ2xhc3MgPSBuZXcgQ2xhc3NJdGVtKGRpYWxvZywgWydoZWFkaW5nJywgJ3BhcmFncmFwaCddKTtcbiAgICB9XG5cbiAgICB0eXBlID0gc2NoZW1hLm5vZGVzLmhvcml6b250YWxfcnVsZTtcbiAgICBpZiAodHlwZSkge1xuICAgICAgICByLmluc2VydEhvcml6b250YWxSdWxlID0gbmV3IEhvcml6b250YWxSdWxlSXRlbSh0eXBlKTtcbiAgICB9XG5cbiAgICB0eXBlID0gc2NoZW1hLm5vZGVzLnRhYmxlO1xuICAgIGlmICh0eXBlKSB7XG4gICAgICAgIHIuaW5zZXJ0VGFibGUgPSBuZXcgQWRkVGFibGVJdGVtKCk7XG4gICAgICAgIHIuYWRkQ29sdW1uQmVmb3JlID0gY21kVG9JdGVtKGFkZENvbHVtbkJlZm9yZSk7XG4gICAgICAgIHIuYWRkQ29sdW1uQWZ0ZXIgPSBjbWRUb0l0ZW0oYWRkQ29sdW1uQWZ0ZXIpO1xuICAgICAgICByLmRlbGV0ZUNvbHVtbiA9IGNtZFRvSXRlbShkZWxldGVDb2x1bW4pO1xuICAgICAgICByLmFkZFJvd0JlZm9yZSA9IGNtZFRvSXRlbShhZGRSb3dCZWZvcmUpO1xuICAgICAgICByLmFkZFJvd0FmdGVyID0gY21kVG9JdGVtKGFkZFJvd0FmdGVyKTtcbiAgICAgICAgci5kZWxldGVSb3cgPSBjbWRUb0l0ZW0oZGVsZXRlUm93KTtcbiAgICAgICAgci5kZWxldGVUYWJsZSA9IGNtZFRvSXRlbShkZWxldGVUYWJsZSk7XG4gICAgICAgIHIubWVyZ2VDZWxscyA9IGNtZFRvSXRlbShtZXJnZUNlbGxzKTtcbiAgICAgICAgci5zcGxpdENlbGwgPSBjbWRUb0l0ZW0oc3BsaXRDZWxsKTtcbiAgICAgICAgci50b2dnbGVIZWFkZXJDb2x1bW4gPSBjbWRUb0l0ZW0odG9nZ2xlSGVhZGVyQ29sdW1uKTtcbiAgICAgICAgci50b2dnbGVIZWFkZXJSb3cgPSBjbWRUb0l0ZW0odG9nZ2xlSGVhZGVyUm93KTtcbiAgICAgICAgci50b2dnbGVIZWFkZXJDZWxsID0gY21kVG9JdGVtKHRvZ2dsZUhlYWRlckNlbGwpO1xuICAgICAgICByLmNlbGxCYWNrZ3JvdW5kQ29sb3IgPSBuZXcgQ2VsbEJhY2tncm91bmRDb2xvckl0ZW0oZGlhbG9nKTtcbiAgICAgICAgci50YWJsZUNsYXNzID0gbmV3IENsYXNzSXRlbShkaWFsb2csIFsndGFibGUnXSk7XG4gICAgICAgIHIudGFibGVJZCA9IG5ldyBJZEl0ZW0oZGlhbG9nLCBbJ3RhYmxlJ10pO1xuICAgIH1cblxuICAgIHJldHVybiByO1xufVxuIl19
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
const getAttrsForLevel = function (level) {
|
|
2
|
-
return (dom) => {
|
|
3
|
-
if (!(dom instanceof HTMLElement)) {
|
|
4
|
-
return null;
|
|
5
|
-
}
|
|
6
|
-
const id = dom.getAttribute('id') || null;
|
|
7
|
-
const attrs = { level: level, class: dom.className, id: id };
|
|
8
|
-
return attrs;
|
|
9
|
-
};
|
|
10
|
-
};
|
|
11
|
-
/**
|
|
12
|
-
* A heading textblock, with a `level` attribute that should hold the number 1 to 6,
|
|
13
|
-
* with optional ID and class attributes. Parsed and serialized as `<h1>` to <h6>`
|
|
14
|
-
*
|
|
15
|
-
* https://github.com/ProseMirror/prosemirror-schema-basic/blob/master/src/schema-basic.js
|
|
16
|
-
*/
|
|
17
|
-
export const heading = {
|
|
18
|
-
attrs: {
|
|
19
|
-
level: { default: 1 },
|
|
20
|
-
class: { default: null },
|
|
21
|
-
id: { default: null },
|
|
22
|
-
},
|
|
23
|
-
content: 'inline*',
|
|
24
|
-
group: 'block',
|
|
25
|
-
defining: true,
|
|
26
|
-
parseDOM: [
|
|
27
|
-
{
|
|
28
|
-
tag: 'h1',
|
|
29
|
-
getAttrs: getAttrsForLevel(1),
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
tag: 'h2',
|
|
33
|
-
getAttrs: getAttrsForLevel(2),
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
tag: 'h3',
|
|
37
|
-
getAttrs: getAttrsForLevel(3),
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
tag: 'h4',
|
|
41
|
-
getAttrs: getAttrsForLevel(4),
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
tag: 'h5',
|
|
45
|
-
getAttrs: getAttrsForLevel(5),
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
tag: 'h6',
|
|
49
|
-
getAttrs: getAttrsForLevel(6),
|
|
50
|
-
},
|
|
51
|
-
],
|
|
52
|
-
toDOM: node => {
|
|
53
|
-
const { id } = node.attrs;
|
|
54
|
-
const attrs = {};
|
|
55
|
-
if (id) {
|
|
56
|
-
attrs.id = id;
|
|
57
|
-
}
|
|
58
|
-
if (node.attrs.class) {
|
|
59
|
-
attrs.class = node.attrs.class;
|
|
60
|
-
}
|
|
61
|
-
return ['h' + node.attrs.level, attrs, 0];
|
|
62
|
-
},
|
|
63
|
-
};
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwtZWRpdG9yL3NyYy9saWIvdXRpbHMvc2NoZW1hL2hlYWRpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsTUFBTSxnQkFBZ0IsR0FBRyxVQUFVLEtBQWE7SUFDNUMsT0FBTyxDQUFDLEdBQWtCLEVBQXFCLEVBQUU7UUFDN0MsSUFBSSxDQUFDLENBQUMsR0FBRyxZQUFZLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDaEMsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUNELE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDO1FBQzFDLE1BQU0sS0FBSyxHQUFlLEVBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLFNBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFDLENBQUM7UUFFdkUsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQyxDQUFDO0FBQ04sQ0FBQyxDQUFDO0FBRUY7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQWE7SUFDN0IsS0FBSyxFQUFFO1FBQ0gsS0FBSyxFQUFFLEVBQUMsT0FBTyxFQUFFLENBQUMsRUFBQztRQUNuQixLQUFLLEVBQUUsRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFDO1FBQ3RCLEVBQUUsRUFBRSxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUM7S0FDdEI7SUFDRCxPQUFPLEVBQUUsU0FBUztJQUNsQixLQUFLLEVBQUUsT0FBTztJQUNkLFFBQVEsRUFBRSxJQUFJO0lBQ2QsUUFBUSxFQUFFO1FBQ047WUFDSSxHQUFHLEVBQUUsSUFBSTtZQUNULFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7U0FDaEM7UUFDRDtZQUNJLEdBQUcsRUFBRSxJQUFJO1lBQ1QsUUFBUSxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQztTQUNoQztRQUNEO1lBQ0ksR0FBRyxFQUFFLElBQUk7WUFDVCxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1NBQ2hDO1FBQ0Q7WUFDSSxHQUFHLEVBQUUsSUFBSTtZQUNULFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7U0FDaEM7UUFDRDtZQUNJLEdBQUcsRUFBRSxJQUFJO1lBQ1QsUUFBUSxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQztTQUNoQztRQUNEO1lBQ0ksR0FBRyxFQUFFLElBQUk7WUFDVCxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1NBQ2hDO0tBQ0o7SUFDRCxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUU7UUFDVixNQUFNLEVBQUMsRUFBRSxFQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN4QixNQUFNLEtBQUssR0FBMkIsRUFBRSxDQUFDO1FBRXpDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDTCxLQUFLLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNsQixDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ25CLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDbkMsQ0FBQztRQUVELE9BQU8sQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBdHRycywgTm9kZVNwZWN9IGZyb20gJ3Byb3NlbWlycm9yLW1vZGVsJztcblxudHlwZSBBdHRyaWJ1dGVzID0ge1xuICAgIGNsYXNzOiBzdHJpbmc7XG4gICAgaWQ6IG51bGwgfCBzdHJpbmc7XG4gICAgbGV2ZWw6IG51bWJlcjtcbn07XG5cbmNvbnN0IGdldEF0dHJzRm9yTGV2ZWwgPSBmdW5jdGlvbiAobGV2ZWw6IG51bWJlcik6IChub2RlOiBIVE1MRWxlbWVudCB8IHN0cmluZykgPT4gQXR0cnMgfCBmYWxzZSB8IG51bGwge1xuICAgIHJldHVybiAoZG9tOiBOb2RlIHwgc3RyaW5nKTogbnVsbCB8IEF0dHJpYnV0ZXMgPT4ge1xuICAgICAgICBpZiAoIShkb20gaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlkID0gZG9tLmdldEF0dHJpYnV0ZSgnaWQnKSB8fCBudWxsO1xuICAgICAgICBjb25zdCBhdHRyczogQXR0cmlidXRlcyA9IHtsZXZlbDogbGV2ZWwsIGNsYXNzOiBkb20uY2xhc3NOYW1lLCBpZDogaWR9O1xuXG4gICAgICAgIHJldHVybiBhdHRycztcbiAgICB9O1xufTtcblxuLyoqXG4gKiBBIGhlYWRpbmcgdGV4dGJsb2NrLCB3aXRoIGEgYGxldmVsYCBhdHRyaWJ1dGUgdGhhdCBzaG91bGQgaG9sZCB0aGUgbnVtYmVyIDEgdG8gNixcbiAqIHdpdGggb3B0aW9uYWwgSUQgYW5kIGNsYXNzIGF0dHJpYnV0ZXMuIFBhcnNlZCBhbmQgc2VyaWFsaXplZCBhcyBgPGgxPmAgdG8gPGg2PmBcbiAqXG4gKiBodHRwczovL2dpdGh1Yi5jb20vUHJvc2VNaXJyb3IvcHJvc2VtaXJyb3Itc2NoZW1hLWJhc2ljL2Jsb2IvbWFzdGVyL3NyYy9zY2hlbWEtYmFzaWMuanNcbiAqL1xuZXhwb3J0IGNvbnN0IGhlYWRpbmc6IE5vZGVTcGVjID0ge1xuICAgIGF0dHJzOiB7XG4gICAgICAgIGxldmVsOiB7ZGVmYXVsdDogMX0sXG4gICAgICAgIGNsYXNzOiB7ZGVmYXVsdDogbnVsbH0sXG4gICAgICAgIGlkOiB7ZGVmYXVsdDogbnVsbH0sXG4gICAgfSxcbiAgICBjb250ZW50OiAnaW5saW5lKicsXG4gICAgZ3JvdXA6ICdibG9jaycsXG4gICAgZGVmaW5pbmc6IHRydWUsXG4gICAgcGFyc2VET006IFtcbiAgICAgICAge1xuICAgICAgICAgICAgdGFnOiAnaDEnLFxuICAgICAgICAgICAgZ2V0QXR0cnM6IGdldEF0dHJzRm9yTGV2ZWwoMSksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRhZzogJ2gyJyxcbiAgICAgICAgICAgIGdldEF0dHJzOiBnZXRBdHRyc0ZvckxldmVsKDIpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0YWc6ICdoMycsXG4gICAgICAgICAgICBnZXRBdHRyczogZ2V0QXR0cnNGb3JMZXZlbCgzKSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdGFnOiAnaDQnLFxuICAgICAgICAgICAgZ2V0QXR0cnM6IGdldEF0dHJzRm9yTGV2ZWwoNCksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRhZzogJ2g1JyxcbiAgICAgICAgICAgIGdldEF0dHJzOiBnZXRBdHRyc0ZvckxldmVsKDUpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0YWc6ICdoNicsXG4gICAgICAgICAgICBnZXRBdHRyczogZ2V0QXR0cnNGb3JMZXZlbCg2KSxcbiAgICAgICAgfSxcbiAgICBdLFxuICAgIHRvRE9NOiBub2RlID0+IHtcbiAgICAgICAgY29uc3Qge2lkfSA9IG5vZGUuYXR0cnM7XG4gICAgICAgIGNvbnN0IGF0dHJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cbiAgICAgICAgaWYgKGlkKSB7XG4gICAgICAgICAgICBhdHRycy5pZCA9IGlkO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG5vZGUuYXR0cnMuY2xhc3MpIHtcbiAgICAgICAgICAgIGF0dHJzLmNsYXNzID0gbm9kZS5hdHRycy5jbGFzcztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBbJ2gnICsgbm9kZS5hdHRycy5sZXZlbCwgYXR0cnMsIDBdO1xuICAgIH0sXG59O1xuIl19
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
const ALIGN_PATTERN = /(left|right|center|justify)/;
|
|
2
|
-
/**
|
|
3
|
-
* A plain paragraph textblock. Represented in the DOM
|
|
4
|
-
* as a `<p>` element.
|
|
5
|
-
*
|
|
6
|
-
* https://github.com/ProseMirror/prosemirror-schema-basic/blob/master/src/schema-basic.js
|
|
7
|
-
*/
|
|
8
|
-
export const paragraphWithAlignment = {
|
|
9
|
-
attrs: {
|
|
10
|
-
align: { default: null },
|
|
11
|
-
class: { default: null },
|
|
12
|
-
id: { default: null },
|
|
13
|
-
},
|
|
14
|
-
content: 'inline*',
|
|
15
|
-
group: 'block',
|
|
16
|
-
parseDOM: [
|
|
17
|
-
{
|
|
18
|
-
tag: 'p',
|
|
19
|
-
getAttrs: (dom) => {
|
|
20
|
-
if (!(dom instanceof HTMLElement)) {
|
|
21
|
-
return null;
|
|
22
|
-
}
|
|
23
|
-
const { textAlign } = dom.style;
|
|
24
|
-
let align = dom.getAttribute('align') || textAlign || '';
|
|
25
|
-
align = ALIGN_PATTERN.test(align) ? align : null;
|
|
26
|
-
const id = dom.getAttribute('id') || '';
|
|
27
|
-
return { align, class: dom.className, id };
|
|
28
|
-
},
|
|
29
|
-
},
|
|
30
|
-
],
|
|
31
|
-
toDOM: node => {
|
|
32
|
-
const { align, id } = node.attrs;
|
|
33
|
-
const attrs = {};
|
|
34
|
-
let style = '';
|
|
35
|
-
if (align && align !== 'left') {
|
|
36
|
-
style += `text-align: ${align};`;
|
|
37
|
-
}
|
|
38
|
-
if (style) {
|
|
39
|
-
attrs.style = style;
|
|
40
|
-
}
|
|
41
|
-
if (id) {
|
|
42
|
-
attrs.id = id;
|
|
43
|
-
}
|
|
44
|
-
if (node.attrs.class) {
|
|
45
|
-
attrs.class = node.attrs.class;
|
|
46
|
-
}
|
|
47
|
-
return ['p', attrs, 0];
|
|
48
|
-
},
|
|
49
|
-
};
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYWdyYXBoLXdpdGgtYWxpZ25tZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC1lZGl0b3Ivc3JjL2xpYi91dGlscy9zY2hlbWEvcGFyYWdyYXBoLXdpdGgtYWxpZ25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sYUFBYSxHQUFHLDZCQUE2QixDQUFDO0FBT3BEOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQWE7SUFDNUMsS0FBSyxFQUFFO1FBQ0gsS0FBSyxFQUFFLEVBQUMsT0FBTyxFQUFFLElBQUksRUFBQztRQUN0QixLQUFLLEVBQUUsRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFDO1FBQ3RCLEVBQUUsRUFBRSxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUM7S0FDdEI7SUFDRCxPQUFPLEVBQUUsU0FBUztJQUNsQixLQUFLLEVBQUUsT0FBTztJQUNkLFFBQVEsRUFBRTtRQUNOO1lBQ0ksR0FBRyxFQUFFLEdBQUc7WUFDUixRQUFRLEVBQUUsQ0FBQyxHQUFrQixFQUFxQixFQUFFO2dCQUNoRCxJQUFJLENBQUMsQ0FBQyxHQUFHLFlBQVksV0FBVyxDQUFDLEVBQUUsQ0FBQztvQkFDaEMsT0FBTyxJQUFJLENBQUM7Z0JBQ2hCLENBQUM7Z0JBRUQsTUFBTSxFQUFDLFNBQVMsRUFBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7Z0JBRTlCLElBQUksS0FBSyxHQUFrQixHQUFHLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLFNBQVMsSUFBSSxFQUFFLENBQUM7Z0JBQ3hFLEtBQUssR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFFakQsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBRXhDLE9BQU8sRUFBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxTQUFTLEVBQUUsRUFBRSxFQUFDLENBQUM7WUFDN0MsQ0FBQztTQUNKO0tBQ0o7SUFDRCxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUU7UUFDVixNQUFNLEVBQUMsS0FBSyxFQUFFLEVBQUUsRUFBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDL0IsTUFBTSxLQUFLLEdBQTJCLEVBQUUsQ0FBQztRQUV6QyxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDZixJQUFJLEtBQUssSUFBSSxLQUFLLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDNUIsS0FBSyxJQUFJLGVBQWUsS0FBSyxHQUFHLENBQUM7UUFDckMsQ0FBQztRQUVELElBQUksS0FBSyxFQUFFLENBQUM7WUFDUixLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUN4QixDQUFDO1FBRUQsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNMLEtBQUssQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbkIsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUNuQyxDQUFDO1FBRUQsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDM0IsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05vZGVTcGVjfSBmcm9tICdwcm9zZW1pcnJvci1tb2RlbCc7XG5cbmNvbnN0IEFMSUdOX1BBVFRFUk4gPSAvKGxlZnR8cmlnaHR8Y2VudGVyfGp1c3RpZnkpLztcbnR5cGUgQXR0cmlidXRlcyA9IHtcbiAgICBhbGlnbjogbnVsbCB8IHN0cmluZztcbiAgICBjbGFzczogc3RyaW5nO1xuICAgIGlkOiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIEEgcGxhaW4gcGFyYWdyYXBoIHRleHRibG9jay4gUmVwcmVzZW50ZWQgaW4gdGhlIERPTVxuICogYXMgYSBgPHA+YCBlbGVtZW50LlxuICpcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9Qcm9zZU1pcnJvci9wcm9zZW1pcnJvci1zY2hlbWEtYmFzaWMvYmxvYi9tYXN0ZXIvc3JjL3NjaGVtYS1iYXNpYy5qc1xuICovXG5leHBvcnQgY29uc3QgcGFyYWdyYXBoV2l0aEFsaWdubWVudDogTm9kZVNwZWMgPSB7XG4gICAgYXR0cnM6IHtcbiAgICAgICAgYWxpZ246IHtkZWZhdWx0OiBudWxsfSxcbiAgICAgICAgY2xhc3M6IHtkZWZhdWx0OiBudWxsfSxcbiAgICAgICAgaWQ6IHtkZWZhdWx0OiBudWxsfSxcbiAgICB9LFxuICAgIGNvbnRlbnQ6ICdpbmxpbmUqJyxcbiAgICBncm91cDogJ2Jsb2NrJyxcbiAgICBwYXJzZURPTTogW1xuICAgICAgICB7XG4gICAgICAgICAgICB0YWc6ICdwJyxcbiAgICAgICAgICAgIGdldEF0dHJzOiAoZG9tOiBOb2RlIHwgc3RyaW5nKTogbnVsbCB8IEF0dHJpYnV0ZXMgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghKGRvbSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCB7dGV4dEFsaWdufSA9IGRvbS5zdHlsZTtcblxuICAgICAgICAgICAgICAgIGxldCBhbGlnbjogc3RyaW5nIHwgbnVsbCA9IGRvbS5nZXRBdHRyaWJ1dGUoJ2FsaWduJykgfHwgdGV4dEFsaWduIHx8ICcnO1xuICAgICAgICAgICAgICAgIGFsaWduID0gQUxJR05fUEFUVEVSTi50ZXN0KGFsaWduKSA/IGFsaWduIDogbnVsbDtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGlkID0gZG9tLmdldEF0dHJpYnV0ZSgnaWQnKSB8fCAnJztcblxuICAgICAgICAgICAgICAgIHJldHVybiB7YWxpZ24sIGNsYXNzOiBkb20uY2xhc3NOYW1lLCBpZH07XG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgIF0sXG4gICAgdG9ET006IG5vZGUgPT4ge1xuICAgICAgICBjb25zdCB7YWxpZ24sIGlkfSA9IG5vZGUuYXR0cnM7XG4gICAgICAgIGNvbnN0IGF0dHJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cbiAgICAgICAgbGV0IHN0eWxlID0gJyc7XG4gICAgICAgIGlmIChhbGlnbiAmJiBhbGlnbiAhPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICBzdHlsZSArPSBgdGV4dC1hbGlnbjogJHthbGlnbn07YDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdHlsZSkge1xuICAgICAgICAgICAgYXR0cnMuc3R5bGUgPSBzdHlsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpZCkge1xuICAgICAgICAgICAgYXR0cnMuaWQgPSBpZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChub2RlLmF0dHJzLmNsYXNzKSB7XG4gICAgICAgICAgICBhdHRycy5jbGFzcyA9IG5vZGUuYXR0cnMuY2xhc3M7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gWydwJywgYXR0cnMsIDBdO1xuICAgIH0sXG59O1xuIl19
|