@kerebron/extension-basic-editor 0.2.1 → 0.4.1
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/README.md +4 -2
- package/esm/editor/src/CoreEditor.d.ts +24 -9
- package/esm/editor/src/CoreEditor.d.ts.map +1 -1
- package/esm/editor/src/CoreEditor.js +125 -70
- package/esm/editor/src/DummyEditorView.d.ts +60 -0
- package/esm/editor/src/DummyEditorView.d.ts.map +1 -0
- package/esm/editor/src/DummyEditorView.js +277 -0
- package/esm/editor/src/Extension.d.ts +15 -10
- package/esm/editor/src/Extension.d.ts.map +1 -1
- package/esm/editor/src/Extension.js +23 -3
- package/esm/editor/src/ExtensionManager.d.ts +9 -9
- package/esm/editor/src/ExtensionManager.d.ts.map +1 -1
- package/esm/editor/src/ExtensionManager.js +81 -74
- package/esm/editor/src/Mark.d.ts +11 -6
- package/esm/editor/src/Mark.d.ts.map +1 -1
- package/esm/editor/src/Mark.js +19 -2
- package/esm/editor/src/Node.d.ts +18 -13
- package/esm/editor/src/Node.d.ts.map +1 -1
- package/esm/editor/src/Node.js +22 -5
- package/esm/editor/src/commands/CommandManager.d.ts +14 -11
- package/esm/editor/src/commands/CommandManager.d.ts.map +1 -1
- package/esm/editor/src/commands/CommandManager.js +64 -6
- package/esm/editor/src/commands/baseCommandFactories.d.ts +3 -0
- package/esm/editor/src/commands/baseCommandFactories.d.ts.map +1 -0
- package/esm/editor/src/commands/baseCommandFactories.js +836 -0
- package/esm/editor/src/commands/keyCommandFactories.d.ts +3 -0
- package/esm/editor/src/commands/keyCommandFactories.d.ts.map +1 -0
- package/esm/editor/src/commands/keyCommandFactories.js +10 -0
- package/esm/editor/src/commands/mod.d.ts +5 -47
- package/esm/editor/src/commands/mod.d.ts.map +1 -1
- package/esm/editor/src/commands/mod.js +14 -866
- package/esm/editor/src/commands/replaceCommandFactories.d.ts +3 -0
- package/esm/editor/src/commands/replaceCommandFactories.d.ts.map +1 -0
- package/esm/editor/src/commands/replaceCommandFactories.js +94 -0
- package/esm/editor/src/commands/types.d.ts +18 -0
- package/esm/editor/src/commands/types.d.ts.map +1 -0
- package/esm/editor/src/commands/types.js +1 -0
- package/esm/editor/src/mod.d.ts +3 -0
- package/esm/editor/src/mod.d.ts.map +1 -1
- package/esm/editor/src/mod.js +3 -0
- package/esm/editor/src/nodeToTreeString.d.ts +8 -2
- package/esm/editor/src/nodeToTreeString.d.ts.map +1 -1
- package/esm/editor/src/nodeToTreeString.js +47 -29
- package/esm/editor/src/plugins/TrackSelecionPlugin.d.ts +6 -0
- package/esm/editor/src/plugins/TrackSelecionPlugin.d.ts.map +1 -0
- package/esm/editor/src/plugins/TrackSelecionPlugin.js +24 -0
- package/esm/editor/src/plugins/input-rules/InputRulesPlugin.js +2 -2
- package/esm/editor/src/plugins/keymap/keymap.d.ts +11 -0
- package/esm/editor/src/plugins/keymap/keymap.d.ts.map +1 -0
- package/esm/editor/src/plugins/keymap/keymap.js +125 -0
- package/esm/editor/src/plugins/keymap/mod.d.ts +2 -0
- package/esm/editor/src/plugins/keymap/mod.d.ts.map +1 -0
- package/esm/editor/src/plugins/keymap/mod.js +1 -0
- package/esm/editor/src/plugins/keymap/w3c-keyname.d.ts +4 -0
- package/esm/editor/src/plugins/keymap/w3c-keyname.d.ts.map +1 -0
- package/esm/editor/src/plugins/keymap/w3c-keyname.js +124 -0
- package/esm/editor/src/types.d.ts +30 -7
- package/esm/editor/src/types.d.ts.map +1 -1
- package/esm/editor/src/ui.d.ts +15 -0
- package/esm/editor/src/ui.d.ts.map +1 -0
- package/esm/editor/src/ui.js +16 -0
- package/esm/editor/src/utilities/SmartOutput.d.ts +41 -0
- package/esm/editor/src/utilities/SmartOutput.d.ts.map +1 -0
- package/esm/editor/src/utilities/SmartOutput.js +228 -0
- package/esm/editor/src/utilities/createNodeFromContent.d.ts +4 -3
- package/esm/editor/src/utilities/createNodeFromContent.d.ts.map +1 -1
- package/esm/editor/src/utilities/createNodeFromContent.js +4 -5
- package/esm/editor/src/utilities/getHtmlAttributes.d.ts +8 -3
- package/esm/editor/src/utilities/getHtmlAttributes.d.ts.map +1 -1
- package/esm/editor/src/utilities/getShadowRoot.d.ts +2 -0
- package/esm/editor/src/utilities/getShadowRoot.d.ts.map +1 -0
- package/esm/editor/src/utilities/getShadowRoot.js +16 -0
- package/esm/editor/src/utilities/mod.d.ts +3 -0
- package/esm/editor/src/utilities/mod.d.ts.map +1 -1
- package/esm/editor/src/utilities/mod.js +3 -0
- package/esm/editor/src/utilities/toRawTextResult.d.ts +3 -0
- package/esm/editor/src/utilities/toRawTextResult.d.ts.map +1 -0
- package/esm/editor/src/utilities/toRawTextResult.js +21 -0
- package/esm/extension-basic-editor/src/ExtensionBaseKeymap.d.ts +1 -2
- package/esm/extension-basic-editor/src/ExtensionBaseKeymap.d.ts.map +1 -1
- package/esm/extension-basic-editor/src/ExtensionBaseKeymap.js +40 -14
- package/esm/extension-basic-editor/src/ExtensionBasicCodeEditor.d.ts +11 -0
- package/esm/extension-basic-editor/src/ExtensionBasicCodeEditor.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/ExtensionBasicCodeEditor.js +71 -0
- package/esm/extension-basic-editor/src/ExtensionBasicEditor.d.ts +23 -9
- package/esm/extension-basic-editor/src/ExtensionBasicEditor.d.ts.map +1 -1
- package/esm/extension-basic-editor/src/ExtensionBasicEditor.js +38 -8
- package/esm/extension-basic-editor/src/ExtensionDropcursor.d.ts +7 -0
- package/esm/extension-basic-editor/src/ExtensionDropcursor.d.ts.map +1 -1
- package/esm/extension-basic-editor/src/ExtensionDropcursor.js +211 -1
- package/esm/extension-basic-editor/src/ExtensionGapcursor.d.ts +21 -1
- package/esm/extension-basic-editor/src/ExtensionGapcursor.d.ts.map +1 -1
- package/esm/extension-basic-editor/src/ExtensionGapcursor.js +239 -1
- package/esm/extension-basic-editor/src/ExtensionHistory.d.ts +4 -3
- package/esm/extension-basic-editor/src/ExtensionHistory.d.ts.map +1 -1
- package/esm/extension-basic-editor/src/ExtensionHistory.js +29 -3
- package/esm/extension-basic-editor/src/ExtensionHtml.d.ts.map +1 -1
- package/esm/extension-basic-editor/src/ExtensionHtml.js +7 -4
- package/esm/extension-basic-editor/src/ExtensionMediaUpload.d.ts +24 -0
- package/esm/extension-basic-editor/src/ExtensionMediaUpload.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/ExtensionMediaUpload.js +176 -0
- package/esm/extension-basic-editor/src/ExtensionSelection.d.ts +11 -0
- package/esm/extension-basic-editor/src/ExtensionSelection.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/ExtensionSelection.js +237 -0
- package/esm/extension-basic-editor/src/MarkBookmark.d.ts.map +1 -1
- package/esm/extension-basic-editor/src/MarkChange.d.ts.map +1 -1
- package/esm/extension-basic-editor/src/MarkCode.d.ts +4 -7
- package/esm/extension-basic-editor/src/MarkCode.d.ts.map +1 -1
- package/esm/extension-basic-editor/src/MarkCode.js +2 -11
- package/esm/extension-basic-editor/src/MarkHighlight.d.ts +8 -0
- package/esm/extension-basic-editor/src/MarkHighlight.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/MarkHighlight.js +43 -0
- package/esm/extension-basic-editor/src/MarkItalic.d.ts +4 -6
- package/esm/extension-basic-editor/src/MarkItalic.d.ts.map +1 -1
- package/esm/extension-basic-editor/src/MarkItalic.js +2 -11
- package/esm/extension-basic-editor/src/MarkLink.d.ts +1 -11
- package/esm/extension-basic-editor/src/MarkLink.d.ts.map +1 -1
- package/esm/extension-basic-editor/src/MarkLink.js +0 -32
- package/esm/extension-basic-editor/src/MarkStrike.d.ts +11 -0
- package/esm/extension-basic-editor/src/MarkStrike.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/MarkStrike.js +39 -0
- package/esm/extension-basic-editor/src/MarkStrong.d.ts +4 -7
- package/esm/extension-basic-editor/src/MarkStrong.d.ts.map +1 -1
- package/esm/extension-basic-editor/src/MarkStrong.js +2 -11
- package/esm/extension-basic-editor/src/MarkTextColor.d.ts +8 -0
- package/esm/extension-basic-editor/src/MarkTextColor.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/MarkTextColor.js +35 -0
- package/esm/extension-basic-editor/src/MarkUnderline.d.ts +3 -5
- package/esm/extension-basic-editor/src/MarkUnderline.d.ts.map +1 -1
- package/esm/extension-basic-editor/src/MarkUnderline.js +2 -11
- package/esm/extension-basic-editor/src/NodeAside.d.ts +0 -3
- package/esm/extension-basic-editor/src/NodeAside.d.ts.map +1 -1
- package/esm/extension-basic-editor/src/NodeAside.js +0 -8
- package/esm/extension-basic-editor/src/NodeBlockquote.d.ts +3 -6
- package/esm/extension-basic-editor/src/NodeBlockquote.d.ts.map +1 -1
- package/esm/extension-basic-editor/src/NodeBlockquote.js +2 -11
- package/esm/extension-basic-editor/src/NodeBulletList.d.ts +4 -7
- package/esm/extension-basic-editor/src/NodeBulletList.d.ts.map +1 -1
- package/esm/extension-basic-editor/src/NodeBulletList.js +2 -11
- package/esm/extension-basic-editor/src/NodeCodeBlock.d.ts +9 -0
- package/esm/extension-basic-editor/src/NodeCodeBlock.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/NodeCodeBlock.js +58 -0
- package/esm/extension-basic-editor/src/NodeDefinitionDesc.d.ts +8 -0
- package/esm/extension-basic-editor/src/NodeDefinitionDesc.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/NodeDefinitionDesc.js +29 -0
- package/esm/extension-basic-editor/src/NodeDefinitionList.d.ts +13 -0
- package/esm/extension-basic-editor/src/NodeDefinitionList.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/NodeDefinitionList.js +41 -0
- package/esm/extension-basic-editor/src/NodeDefinitionTerm.d.ts +8 -0
- package/esm/extension-basic-editor/src/NodeDefinitionTerm.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/NodeDefinitionTerm.js +29 -0
- package/esm/extension-basic-editor/src/NodeDocumentCode.d.ts +7 -0
- package/esm/extension-basic-editor/src/NodeDocumentCode.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/NodeDocumentCode.js +37 -0
- package/esm/extension-basic-editor/src/NodeFrontmatter.d.ts +8 -0
- package/esm/extension-basic-editor/src/NodeFrontmatter.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/NodeFrontmatter.js +29 -0
- package/esm/extension-basic-editor/src/NodeHardBreak.d.ts +5 -2
- package/esm/extension-basic-editor/src/NodeHardBreak.d.ts.map +1 -1
- package/esm/extension-basic-editor/src/NodeHardBreak.js +40 -53
- package/esm/extension-basic-editor/src/NodeHeading.d.ts +3 -14
- package/esm/extension-basic-editor/src/NodeHeading.d.ts.map +1 -1
- package/esm/extension-basic-editor/src/NodeHeading.js +2 -15
- package/esm/extension-basic-editor/src/NodeHorizontalRule.d.ts +4 -4
- package/esm/extension-basic-editor/src/NodeHorizontalRule.d.ts.map +1 -1
- package/esm/extension-basic-editor/src/NodeHorizontalRule.js +1 -2
- package/esm/extension-basic-editor/src/NodeListItem.d.ts +7 -5
- package/esm/extension-basic-editor/src/NodeListItem.d.ts.map +1 -1
- package/esm/extension-basic-editor/src/NodeListItem.js +10 -15
- package/esm/extension-basic-editor/src/NodeMath.d.ts +8 -0
- package/esm/extension-basic-editor/src/NodeMath.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/NodeMath.js +112 -0
- package/esm/extension-basic-editor/src/NodeOrderedList.d.ts +3 -6
- package/esm/extension-basic-editor/src/NodeOrderedList.d.ts.map +1 -1
- package/esm/extension-basic-editor/src/NodeOrderedList.js +4 -14
- package/esm/extension-basic-editor/src/NodeParagraph.d.ts +2 -5
- package/esm/extension-basic-editor/src/NodeParagraph.d.ts.map +1 -1
- package/esm/extension-basic-editor/src/NodeParagraph.js +2 -11
- package/esm/extension-basic-editor/src/NodeTaskItem.d.ts +24 -0
- package/esm/extension-basic-editor/src/NodeTaskItem.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/NodeTaskItem.js +153 -0
- package/esm/extension-basic-editor/src/NodeTaskList.d.ts +11 -0
- package/esm/extension-basic-editor/src/NodeTaskList.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/NodeTaskList.js +38 -0
- package/esm/extension-basic-editor/src/NodeText.d.ts +0 -1
- package/esm/extension-basic-editor/src/NodeText.d.ts.map +1 -1
- package/esm/extension-basic-editor/src/NodeText.js +0 -6
- package/esm/extension-basic-editor/src/NodeVideo.d.ts +8 -0
- package/esm/extension-basic-editor/src/NodeVideo.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/NodeVideo.js +58 -0
- package/esm/extension-basic-editor/src/remote-selection/ExtensionRemoteSelection.d.ts +24 -0
- package/esm/extension-basic-editor/src/remote-selection/ExtensionRemoteSelection.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/remote-selection/ExtensionRemoteSelection.js +35 -0
- package/esm/extension-basic-editor/src/remote-selection/remoteSelectionPlugin.d.ts +25 -0
- package/esm/extension-basic-editor/src/remote-selection/remoteSelectionPlugin.d.ts.map +1 -0
- package/esm/extension-basic-editor/src/remote-selection/remoteSelectionPlugin.js +96 -0
- package/package.json +29 -6
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Node } from '../../editor/src/mod.js';
|
|
2
|
-
import {
|
|
2
|
+
import { firstCommand } from '../../editor/src/commands/mod.js';
|
|
3
3
|
export class NodeHardBreak extends Node {
|
|
4
4
|
constructor() {
|
|
5
5
|
super(...arguments);
|
|
@@ -15,7 +15,14 @@ export class NodeHardBreak extends Node {
|
|
|
15
15
|
writable: true,
|
|
16
16
|
value: ['doc']
|
|
17
17
|
});
|
|
18
|
-
|
|
18
|
+
Object.defineProperty(this, "options", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
configurable: true,
|
|
21
|
+
writable: true,
|
|
22
|
+
value: {
|
|
23
|
+
keepMarks: true,
|
|
24
|
+
}
|
|
25
|
+
});
|
|
19
26
|
}
|
|
20
27
|
getNodeSpec() {
|
|
21
28
|
return {
|
|
@@ -29,62 +36,42 @@ export class NodeHardBreak extends Node {
|
|
|
29
36
|
},
|
|
30
37
|
};
|
|
31
38
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
39
|
+
getCommandFactories(editor, type) {
|
|
40
|
+
// TODO: refactor commands
|
|
41
|
+
// const comm2: Command = (state: EditorState, dispatch?: (tr: Transaction) => void) => {
|
|
42
|
+
// const { selection, storedMarks } = state
|
|
43
|
+
// if (selection.$from.parent.type.spec.isolating) {
|
|
44
|
+
// return false
|
|
45
|
+
// }
|
|
46
|
+
// const { keepMarks } = this.options
|
|
47
|
+
// // const { splittableMarks } = editor.extensionManager
|
|
48
|
+
// const splittableMarks = [];
|
|
49
|
+
// const marks = storedMarks
|
|
50
|
+
// || (selection.$to.parentOffset && selection.$from.marks())
|
|
51
|
+
// return editor.chain()
|
|
52
|
+
// .insertContent({ type: this.name })
|
|
53
|
+
// .command(({ tr, dispatch }) => {
|
|
54
|
+
// if (dispatch && marks && keepMarks) {
|
|
55
|
+
// for (const mark of marks) {
|
|
56
|
+
// console.log('mteset', mark.type);
|
|
57
|
+
// }
|
|
58
|
+
// const filteredMarks = marks
|
|
59
|
+
// .filter(mark => splittableMarks.includes(mark.type.name))
|
|
60
|
+
// tr.ensureMarks(filteredMarks)
|
|
61
|
+
// }
|
|
62
|
+
// return true
|
|
63
|
+
// })
|
|
64
|
+
// .run();
|
|
65
|
+
// }
|
|
66
|
+
const setHardBreak = firstCommand(editor.run.exitCode);
|
|
37
67
|
return {
|
|
38
|
-
|
|
39
|
-
'setHardBreak': () => (state, dispatch) => {
|
|
40
|
-
if (!exitCode(state, dispatch)) {
|
|
41
|
-
return false;
|
|
42
|
-
}
|
|
43
|
-
editor.view.focus();
|
|
44
|
-
if (dispatch) {
|
|
45
|
-
dispatch(state.tr.replaceSelectionWith(type.create()).scrollIntoView());
|
|
46
|
-
}
|
|
47
|
-
return true;
|
|
48
|
-
},
|
|
49
|
-
// const commands = editor.commands;
|
|
50
|
-
// return commands.first([
|
|
51
|
-
// () => commands.exitCode(),
|
|
52
|
-
// () => commands.command(() => {
|
|
53
|
-
// const { selection, storedMarks } = state
|
|
54
|
-
//
|
|
55
|
-
// if (selection.$from.parent.type.spec.isolating) {
|
|
56
|
-
// return false
|
|
57
|
-
// }
|
|
58
|
-
//
|
|
59
|
-
// const { keepMarks } = this.options
|
|
60
|
-
// const { splittableMarks } = editor.extensionManager
|
|
61
|
-
// const marks = storedMarks
|
|
62
|
-
// || (selection.$to.parentOffset && selection.$from.marks())
|
|
63
|
-
//
|
|
64
|
-
// return chain()
|
|
65
|
-
// .insertContent({ type: this.name })
|
|
66
|
-
// .command(({ tr, dispatch }) => {
|
|
67
|
-
// if (dispatch && marks && keepMarks) {
|
|
68
|
-
// const filteredMarks = marks
|
|
69
|
-
// .filter(mark => splittableMarks.includes(mark.type.name))
|
|
70
|
-
//
|
|
71
|
-
// tr.ensureMarks(filteredMarks)
|
|
72
|
-
// }
|
|
73
|
-
//
|
|
74
|
-
// return true
|
|
75
|
-
// })
|
|
76
|
-
// .run()
|
|
77
|
-
// }),
|
|
78
|
-
// ])
|
|
79
|
-
// chainCommands(exitCode, (state, dispatch) => {
|
|
80
|
-
// if (dispatch) dispatch(state.tr.replaceSelectionWith(br.create()).scrollIntoView())
|
|
81
|
-
// return true
|
|
82
|
-
// })
|
|
68
|
+
'setHardBreak': () => setHardBreak,
|
|
83
69
|
};
|
|
84
70
|
}
|
|
85
71
|
getKeyboardShortcuts() {
|
|
72
|
+
// https://stackoverflow.com/a/73619128
|
|
86
73
|
const mac = typeof navigator != 'undefined'
|
|
87
|
-
? /Mac|iP(hone|[oa]d)/.test(navigator
|
|
74
|
+
? /Mac|iP(hone|[oa]d)/.test(navigator?.platform)
|
|
88
75
|
: false;
|
|
89
76
|
const shortcuts = {
|
|
90
77
|
'Ctrl-Enter': 'setHardBreak',
|
|
@@ -1,24 +1,13 @@
|
|
|
1
|
-
import { NodeSpec, NodeType } from 'prosemirror-model';
|
|
1
|
+
import type { NodeSpec, NodeType } from 'prosemirror-model';
|
|
2
2
|
import { type CoreEditor, Node } from '../../editor/src/mod.js';
|
|
3
|
-
import { type
|
|
3
|
+
import { type CommandFactories, type CommandShortcuts } from '../../editor/src/commands/mod.js';
|
|
4
4
|
import { type InputRule } from '../../editor/src/plugins/input-rules/mod.js';
|
|
5
5
|
export declare class NodeHeading extends Node {
|
|
6
6
|
name: string;
|
|
7
7
|
requires: string[];
|
|
8
|
-
automerge: {
|
|
9
|
-
block: string;
|
|
10
|
-
attrParsers: {
|
|
11
|
-
fromAutomerge: (block: any) => {
|
|
12
|
-
level: any;
|
|
13
|
-
};
|
|
14
|
-
fromProsemirror: (node: any) => {
|
|
15
|
-
level: any;
|
|
16
|
-
};
|
|
17
|
-
};
|
|
18
|
-
};
|
|
19
8
|
getNodeSpec(): NodeSpec;
|
|
20
9
|
getInputRules(type: NodeType): InputRule[];
|
|
21
|
-
|
|
10
|
+
getCommandFactories(editor: CoreEditor, type: NodeType): Partial<CommandFactories>;
|
|
22
11
|
getKeyboardShortcuts(): Partial<CommandShortcuts>;
|
|
23
12
|
}
|
|
24
13
|
//# sourceMappingURL=NodeHeading.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeHeading.d.ts","sourceRoot":"","sources":["../../../src/extension-basic-editor/src/NodeHeading.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"NodeHeading.d.ts","sourceRoot":"","sources":["../../../src/extension-basic-editor/src/NodeHeading.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,KAAK,UAAU,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,KAAK,SAAS,EAEf,MAAM,6CAA6C,CAAC;AAIrD,qBAAa,WAAY,SAAQ,IAAI;IAC1B,IAAI,SAAa;IAC1B,QAAQ,WAAW;IAEV,WAAW,IAAI,QAAQ;IAoBvB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,EAAE;IAc1C,mBAAmB,CAC1B,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC,gBAAgB,CAAC;IAWnB,oBAAoB,IAAI,OAAO,CAAC,gBAAgB,CAAC;CAS3D"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Node } from '../../editor/src/mod.js';
|
|
2
|
-
import { setBlockType, } from '../../editor/src/commands/mod.js';
|
|
3
2
|
import { textblockTypeInputRule, } from '../../editor/src/plugins/input-rules/mod.js';
|
|
4
3
|
const maxLevel = 6;
|
|
5
4
|
export class NodeHeading extends Node {
|
|
@@ -17,18 +16,6 @@ export class NodeHeading extends Node {
|
|
|
17
16
|
writable: true,
|
|
18
17
|
value: ['doc']
|
|
19
18
|
});
|
|
20
|
-
Object.defineProperty(this, "automerge", {
|
|
21
|
-
enumerable: true,
|
|
22
|
-
configurable: true,
|
|
23
|
-
writable: true,
|
|
24
|
-
value: {
|
|
25
|
-
block: 'heading',
|
|
26
|
-
attrParsers: {
|
|
27
|
-
fromAutomerge: (block) => ({ level: block.attrs.level }),
|
|
28
|
-
fromProsemirror: (node) => ({ level: node.attrs.level }),
|
|
29
|
-
},
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
19
|
}
|
|
33
20
|
getNodeSpec() {
|
|
34
21
|
return {
|
|
@@ -58,10 +45,10 @@ export class NodeHeading extends Node {
|
|
|
58
45
|
textblockTypeInputRule(new RegExp('^(#{1,' + maxLevel + '})\\s$'), type, (match) => ({ level: match[1].length })),
|
|
59
46
|
];
|
|
60
47
|
}
|
|
61
|
-
|
|
48
|
+
getCommandFactories(editor, type) {
|
|
62
49
|
const commands = {};
|
|
63
50
|
for (let i = 1; i <= maxLevel; i++) {
|
|
64
|
-
commands['setHeading' + i] = () => setBlockType(type, { level: i });
|
|
51
|
+
commands['setHeading' + i] = () => editor.commandFactories.setBlockType(type, { level: i });
|
|
65
52
|
}
|
|
66
53
|
return commands;
|
|
67
54
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { NodeSpec, NodeType } from 'prosemirror-model';
|
|
2
|
-
import { CoreEditor, Node } from '../../editor/src/mod.js';
|
|
3
|
-
import {
|
|
1
|
+
import type { NodeSpec, NodeType } from 'prosemirror-model';
|
|
2
|
+
import { type CoreEditor, Node } from '../../editor/src/mod.js';
|
|
3
|
+
import type { CommandFactories, CommandShortcuts } from '../../editor/src/commands/mod.js';
|
|
4
4
|
export declare class NodeHorizontalRule extends Node {
|
|
5
5
|
name: string;
|
|
6
6
|
requires: string[];
|
|
7
7
|
getNodeSpec(): NodeSpec;
|
|
8
|
-
|
|
8
|
+
getCommandFactories(editor: CoreEditor, type: NodeType): Partial<CommandFactories>;
|
|
9
9
|
getKeyboardShortcuts(): Partial<CommandShortcuts>;
|
|
10
10
|
}
|
|
11
11
|
//# sourceMappingURL=NodeHorizontalRule.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeHorizontalRule.d.ts","sourceRoot":"","sources":["../../../src/extension-basic-editor/src/NodeHorizontalRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"NodeHorizontalRule.d.ts","sourceRoot":"","sources":["../../../src/extension-basic-editor/src/NodeHorizontalRule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,KAAK,UAAU,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,kCAAkC,CAAC;AAE1C,qBAAa,kBAAmB,SAAQ,IAAI;IACjC,IAAI,SAAQ;IACrB,QAAQ,WAAW;IAEV,WAAW,IAAI,QAAQ;IAUvB,mBAAmB,CAC1B,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC,gBAAgB,CAAC;IAanB,oBAAoB,IAAI,OAAO,CAAC,gBAAgB,CAAC;CAK3D"}
|
|
@@ -14,7 +14,6 @@ export class NodeHorizontalRule extends Node {
|
|
|
14
14
|
writable: true,
|
|
15
15
|
value: ['doc']
|
|
16
16
|
});
|
|
17
|
-
// TODO automerge
|
|
18
17
|
}
|
|
19
18
|
getNodeSpec() {
|
|
20
19
|
return {
|
|
@@ -25,7 +24,7 @@ export class NodeHorizontalRule extends Node {
|
|
|
25
24
|
},
|
|
26
25
|
};
|
|
27
26
|
}
|
|
28
|
-
|
|
27
|
+
getCommandFactories(editor, type) {
|
|
29
28
|
return {
|
|
30
29
|
'setHorizontalRule': () => (state, dispatch) => {
|
|
31
30
|
if (dispatch) {
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
+
import { type Attrs, NodeSpec, type NodeType } from 'prosemirror-model';
|
|
2
|
+
import type { Command } from 'prosemirror-state';
|
|
1
3
|
import { type CoreEditor, Node } from '../../editor/src/mod.js';
|
|
2
|
-
import { type
|
|
4
|
+
import { type CommandFactories, type CommandShortcuts } from '../../editor/src/commands/mod.js';
|
|
5
|
+
export declare function splitListItem(itemType: NodeType, itemAttrs?: Attrs): Command;
|
|
6
|
+
export declare function liftListItem(itemType: NodeType): Command;
|
|
7
|
+
export declare function sinkListItem(itemType: NodeType): Command;
|
|
3
8
|
export declare class NodeListItem extends Node {
|
|
4
9
|
name: string;
|
|
5
10
|
requires: string[];
|
|
6
|
-
automerge: {
|
|
7
|
-
block: string;
|
|
8
|
-
};
|
|
9
11
|
getNodeSpec(): NodeSpec;
|
|
10
|
-
|
|
12
|
+
getCommandFactories(editor: CoreEditor, type: NodeType): Partial<CommandFactories>;
|
|
11
13
|
getKeyboardShortcuts(): Partial<CommandShortcuts>;
|
|
12
14
|
}
|
|
13
15
|
//# sourceMappingURL=NodeListItem.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeListItem.d.ts","sourceRoot":"","sources":["../../../src/extension-basic-editor/src/NodeListItem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EACL,KAAK,
|
|
1
|
+
{"version":3,"file":"NodeListItem.d.ts","sourceRoot":"","sources":["../../../src/extension-basic-editor/src/NodeListItem.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,KAAK,EAGV,QAAQ,EACR,KAAK,QAAQ,EAEd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,OAAO,EAIR,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,KAAK,UAAU,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,kCAAkC,CAAC;AAU1C,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,KAAK,GAAG,OAAO,CA+D5E;AAwBD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAgBxD;AAuGD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CA0CxD;AAED,qBAAa,YAAa,SAAQ,IAAI;IAC3B,IAAI,SAAe;IAC5B,QAAQ,WAAW;IAEV,WAAW,IAAI,QAAQ;IAWvB,mBAAmB,CAC1B,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC,gBAAgB,CAAC;IAQnB,oBAAoB,IAAI,OAAO,CAAC,gBAAgB,CAAC;CAO3D"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import { Fragment, NodeRange, Slice, } from 'prosemirror-model';
|
|
2
|
+
import { Selection } from 'prosemirror-state';
|
|
1
3
|
import { Node } from '../../editor/src/mod.js';
|
|
4
|
+
import { canJoin, canSplit, liftTarget, ReplaceAroundStep, } from 'prosemirror-transform';
|
|
2
5
|
/// Build a command that splits a non-empty textblock at the top level
|
|
3
6
|
/// of a list item by also splitting that list item.
|
|
4
|
-
function splitListItem(itemType, itemAttrs) {
|
|
7
|
+
export function splitListItem(itemType, itemAttrs) {
|
|
5
8
|
return function (state, dispatch) {
|
|
6
9
|
const { $from, $to, node } = state.selection;
|
|
7
10
|
if ((node && node.isBlock) || $from.depth < 2 || !$from.sameParent($to)) {
|
|
@@ -80,7 +83,7 @@ function splitListItemKeepMarks(itemType, itemAttrs) {
|
|
|
80
83
|
}
|
|
81
84
|
/// Create a command to lift the list item around the selection up into
|
|
82
85
|
/// a wrapping list.
|
|
83
|
-
function liftListItem(itemType) {
|
|
86
|
+
export function liftListItem(itemType) {
|
|
84
87
|
return function (state, dispatch) {
|
|
85
88
|
let { $from, $to } = state.selection;
|
|
86
89
|
let range = $from.blockRange($to, (node) => node.childCount > 0 && node.firstChild.type == itemType);
|
|
@@ -142,7 +145,7 @@ function liftOutOfList(state, dispatch, range) {
|
|
|
142
145
|
}
|
|
143
146
|
/// Create a command to sink the list item around the selection down
|
|
144
147
|
/// into an inner list.
|
|
145
|
-
function sinkListItem(itemType) {
|
|
148
|
+
export function sinkListItem(itemType) {
|
|
146
149
|
return function (state, dispatch) {
|
|
147
150
|
const { $from, $to } = state.selection;
|
|
148
151
|
const range = $from.blockRange($to, (node) => node.childCount > 0 && node.firstChild.type == itemType);
|
|
@@ -181,14 +184,6 @@ export class NodeListItem extends Node {
|
|
|
181
184
|
writable: true,
|
|
182
185
|
value: ['doc']
|
|
183
186
|
});
|
|
184
|
-
Object.defineProperty(this, "automerge", {
|
|
185
|
-
enumerable: true,
|
|
186
|
-
configurable: true,
|
|
187
|
-
writable: true,
|
|
188
|
-
value: {
|
|
189
|
-
block: 'list_item',
|
|
190
|
-
}
|
|
191
|
-
});
|
|
192
187
|
}
|
|
193
188
|
getNodeSpec() {
|
|
194
189
|
return {
|
|
@@ -200,7 +195,7 @@ export class NodeListItem extends Node {
|
|
|
200
195
|
},
|
|
201
196
|
};
|
|
202
197
|
}
|
|
203
|
-
|
|
198
|
+
getCommandFactories(editor, type) {
|
|
204
199
|
return {
|
|
205
200
|
'splitListItem': () => splitListItem(type),
|
|
206
201
|
'liftListItem': () => liftListItem(type),
|
|
@@ -209,9 +204,9 @@ export class NodeListItem extends Node {
|
|
|
209
204
|
}
|
|
210
205
|
getKeyboardShortcuts() {
|
|
211
206
|
return {
|
|
212
|
-
|
|
213
|
-
'
|
|
214
|
-
'
|
|
207
|
+
'Enter': 'splitListItem',
|
|
208
|
+
'Tab': 'sinkListItem',
|
|
209
|
+
'Shift-Tab': 'liftListItem',
|
|
215
210
|
};
|
|
216
211
|
}
|
|
217
212
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeMath.d.ts","sourceRoot":"","sources":["../../../src/extension-basic-editor/src/NodeMath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAM/C,qBAAa,QAAS,SAAQ,IAAI;IACvB,IAAI,SAAU;IACvB,QAAQ,WAAW;IAEV,WAAW,IAAI,QAAQ;CA8CjC"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { Node } from '../../editor/src/mod.js';
|
|
2
|
+
// import { MathMLToLaTeX } from 'mathml-to-latex';
|
|
3
|
+
// const latex = MathMLToLaTeX.convert(mathMl);
|
|
4
|
+
// https://mathlive.io/mathfield/
|
|
5
|
+
export class NodeMath extends Node {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
Object.defineProperty(this, "name", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
configurable: true,
|
|
11
|
+
writable: true,
|
|
12
|
+
value: 'math'
|
|
13
|
+
});
|
|
14
|
+
Object.defineProperty(this, "requires", {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
configurable: true,
|
|
17
|
+
writable: true,
|
|
18
|
+
value: ['doc']
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
getNodeSpec() {
|
|
22
|
+
return {
|
|
23
|
+
inline: true,
|
|
24
|
+
attrs: {
|
|
25
|
+
type: { default: 'mathml' },
|
|
26
|
+
content: {},
|
|
27
|
+
},
|
|
28
|
+
group: 'inline',
|
|
29
|
+
draggable: true,
|
|
30
|
+
// parseDOM: [
|
|
31
|
+
// {
|
|
32
|
+
// tag: 'math',
|
|
33
|
+
// getAttrs(dom: HTMLElement) {
|
|
34
|
+
// return {
|
|
35
|
+
// content: dom.outerHTML,
|
|
36
|
+
// };
|
|
37
|
+
// },
|
|
38
|
+
// },
|
|
39
|
+
// ],
|
|
40
|
+
parseDOM: [{
|
|
41
|
+
tag: 'math',
|
|
42
|
+
getAttrs: (dom) => ({
|
|
43
|
+
type: 'mathml',
|
|
44
|
+
content: new XMLSerializer().serializeToString(dom),
|
|
45
|
+
}),
|
|
46
|
+
}],
|
|
47
|
+
toDOM(node) {
|
|
48
|
+
const parser = new DOMParser();
|
|
49
|
+
const parsed = parser.parseFromString(node.attrs.content, 'application/xml');
|
|
50
|
+
// Check for parsing errors (e.g., invalid XML)
|
|
51
|
+
const errorNode = parsed.getElementsByTagName('parsererror');
|
|
52
|
+
if (errorNode.length > 0) {
|
|
53
|
+
return ['span', { class: 'mathml-error' }, 'Invalid MathML'];
|
|
54
|
+
}
|
|
55
|
+
// Import and return the parsed MathML element
|
|
56
|
+
return document.importNode(parsed.documentElement, true);
|
|
57
|
+
// const { xml } = node.attrs;
|
|
58
|
+
// return ['math', {}, []];
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/*
|
|
64
|
+
MathML vs. LaTeX: Which is Better for Web Math Equations?
|
|
65
|
+
Neither is universally "better"—it depends on your goals (authoring, rendering, accessibility, or storage). MathML and LaTeX serve different primary purposes but can complement each other on the web (e.g., via converters like MathJax). Here's a comparison focused on web use:
|
|
66
|
+
Key Differences
|
|
67
|
+
|
|
68
|
+
Purpose:
|
|
69
|
+
|
|
70
|
+
LaTeX: A human-readable markup language for typesetting math (e.g., $E=mc^2$). It's concise and widely used for authoring documents, papers, and web input. Not native to HTML; requires a processor (e.g., MathJax, KaTeX) to render as HTML/CSS/SVG.
|
|
71
|
+
MathML: An XML-based standard (part of HTML5) for describing math structure and presentation (Presentation MathML for visuals; Content MathML for semantics). Designed for direct embedding in web pages (e.g., <math><mi>E</mi>=<mi>m</mi><msup><mi>c</mi><mn>2</mn></msup></math>). Browsers like Firefox and Safari support it natively; others need polyfills.
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
Ease of Authoring:
|
|
75
|
+
|
|
76
|
+
LaTeX: Wins for humans—shorter, intuitive syntax familiar to mathematicians. Easier to write/edit manually or in editors like Overleaf. Verbose MathML is painful for hand-coding complex equations.
|
|
77
|
+
MathML: Better for programmatic generation (e.g., from tools or APIs) due to its structured XML. Use WYSIWYG editors (like those above) to avoid writing tags.
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
Rendering on Web:
|
|
81
|
+
|
|
82
|
+
LaTeX: Requires a JS library (MathJax ~300KB, KaTeX lighter ~100KB) for cross-browser display. Renders beautifully everywhere but adds load time and JS dependency. No native browser support.
|
|
83
|
+
MathML: Native in Firefox/Safari (fast, no JS). Improving in Chrome/Edge (as of 2023+), but still needs MathJax fallback for full support. Outputs scalable HTML/CSS without images.
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
Accessibility:
|
|
87
|
+
|
|
88
|
+
MathML: Superior—semantic structure allows screen readers (e.g., NVDA with MathCAT, JAWS) to read equations meaningfully (e.g., "E equals m times c squared"). Essential for WCAG/ADA compliance.
|
|
89
|
+
LaTeX: Poor native accessibility; screen readers treat it as plain text. MathJax can convert to MathML internally for better support, but raw LaTeX fails.
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
Performance & Compatibility:
|
|
93
|
+
|
|
94
|
+
LaTeX: Faster authoring, but rendering depends on the library. Universal via JS, but increases page weight.
|
|
95
|
+
MathML: Lightweight native rendering where supported; more robust for search engines/parsing (e.g., Google indexes MathML). Less portable outside web (LaTeX dominates PDFs/print).
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
Storage/Interoperability:
|
|
99
|
+
|
|
100
|
+
LaTeX: Compact for databases/files. Easy to convert to MathML (via tools like texmath or Pandoc).
|
|
101
|
+
MathML: Better for web standards (XML parsable), but bulkier. Ideal for exchange between math tools.
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
Recommendation
|
|
106
|
+
|
|
107
|
+
Use LaTeX if your focus is easy input/authoring (e.g., users typing equations) and you're okay with a renderer like MathJax. It's more practical for most web projects today due to familiarity and tools. Store as LaTeX, render via JS, and convert to MathML for accessibility if needed.
|
|
108
|
+
Use MathML if prioritizing native web standards, accessibility, or programmatic output (e.g., from editors). It's "better" for semantic web math and future-proofing (browser support is growing), but pair with LaTeX input for usability.
|
|
109
|
+
Hybrid Approach: Best for web—author in LaTeX, convert/output MathML for display/storage. Libraries like MathJax handle both seamlessly (input LaTeX, output rendered MathML). This gives LaTeX's simplicity with MathML's benefits.
|
|
110
|
+
|
|
111
|
+
If accessibility is key, always generate MathML (even from LaTeX source). Test in browsers: LaTeX+MathJax works everywhere; pure MathML shines in Firefox but needs fallbacks elsewhere.
|
|
112
|
+
*/
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { NodeSpec, NodeType } from 'prosemirror-model';
|
|
2
|
-
import { CoreEditor, Node } from '../../editor/src/mod.js';
|
|
2
|
+
import { type CoreEditor, Node } from '../../editor/src/mod.js';
|
|
3
3
|
import { type InputRule } from '../../editor/src/plugins/input-rules/mod.js';
|
|
4
|
-
import { type
|
|
4
|
+
import { type CommandFactories, type CommandShortcuts } from '../../editor/src/commands/mod.js';
|
|
5
5
|
export declare class NodeOrderedList extends Node {
|
|
6
6
|
name: string;
|
|
7
7
|
requires: string[];
|
|
@@ -17,10 +17,7 @@ export declare class NodeOrderedList extends Node {
|
|
|
17
17
|
};
|
|
18
18
|
getNodeSpec(): NodeSpec;
|
|
19
19
|
getInputRules(type: NodeType): InputRule[];
|
|
20
|
-
|
|
20
|
+
getCommandFactories(editor: CoreEditor, type: NodeType): Partial<CommandFactories>;
|
|
21
21
|
getKeyboardShortcuts(): Partial<CommandShortcuts>;
|
|
22
|
-
automerge: {
|
|
23
|
-
block: string;
|
|
24
|
-
};
|
|
25
22
|
}
|
|
26
23
|
//# sourceMappingURL=NodeOrderedList.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeOrderedList.d.ts","sourceRoot":"","sources":["../../../src/extension-basic-editor/src/NodeOrderedList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"NodeOrderedList.d.ts","sourceRoot":"","sources":["../../../src/extension-basic-editor/src/NodeOrderedList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,KAAK,UAAU,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAMhE,OAAO,EACL,KAAK,SAAS,EAEf,MAAM,6CAA6C,CAAC;AACrD,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,kCAAkC,CAAC;AAE1C,qBAAa,eAAgB,SAAQ,IAAI;IAC9B,IAAI,SAAkB;IAC/B,QAAQ,WAAW;IAEV,UAAU;;;6BAGE,WAAW;;;;6BAQX,WAAW;;MAM9B;IAEO,WAAW,IAAI,QAAQ;IAWvB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,EAAE;IAa1C,mBAAmB,CAC1B,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC,gBAAgB,CAAC;IAMnB,oBAAoB,IAAI,OAAO,CAAC,gBAAgB,CAAC;CAK3D"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { Node } from '../../editor/src/mod.js';
|
|
2
|
-
import { getHtmlAttributes } from '../../editor/src/utilities/mod.js';
|
|
2
|
+
import { getHtmlAttributes, setHtmlAttributes, } from '../../editor/src/utilities/mod.js';
|
|
3
3
|
import { wrappingInputRule, } from '../../editor/src/plugins/input-rules/mod.js';
|
|
4
|
-
import { wrapInList, } from '../../editor/src/commands/mod.js';
|
|
5
|
-
import { setHtmlAttributes } from '../../editor/src/utilities/mod.js';
|
|
6
4
|
export class NodeOrderedList extends Node {
|
|
7
5
|
constructor() {
|
|
8
6
|
super(...arguments);
|
|
@@ -41,14 +39,6 @@ export class NodeOrderedList extends Node {
|
|
|
41
39
|
},
|
|
42
40
|
}
|
|
43
41
|
});
|
|
44
|
-
Object.defineProperty(this, "automerge", {
|
|
45
|
-
enumerable: true,
|
|
46
|
-
configurable: true,
|
|
47
|
-
writable: true,
|
|
48
|
-
value: {
|
|
49
|
-
block: 'ordered_list',
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
42
|
}
|
|
53
43
|
getNodeSpec() {
|
|
54
44
|
return {
|
|
@@ -67,14 +57,14 @@ export class NodeOrderedList extends Node {
|
|
|
67
57
|
wrappingInputRule(/^(\d+)\.\s$/, type, (match) => ({ order: +match[1] }), (match, node) => node.childCount + node.attrs.order == +match[1]),
|
|
68
58
|
];
|
|
69
59
|
}
|
|
70
|
-
|
|
60
|
+
getCommandFactories(editor, type) {
|
|
71
61
|
return {
|
|
72
|
-
'toggleOrderedList': () => wrapInList(type),
|
|
62
|
+
'toggleOrderedList': () => editor.commandFactories.wrapInList(type),
|
|
73
63
|
};
|
|
74
64
|
}
|
|
75
65
|
getKeyboardShortcuts() {
|
|
76
66
|
return {
|
|
77
|
-
'Shift-Ctrl-
|
|
67
|
+
'Shift-Ctrl-7': 'toggleOrderedList',
|
|
78
68
|
};
|
|
79
69
|
}
|
|
80
70
|
}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import { type NodeSpec, type NodeType } from 'prosemirror-model';
|
|
2
2
|
import { type CoreEditor, Node } from '../../editor/src/mod.js';
|
|
3
|
-
import { type
|
|
3
|
+
import { type CommandFactories, type CommandShortcuts } from '../../editor/src/commands/mod.js';
|
|
4
4
|
export declare class NodeParagraph extends Node {
|
|
5
5
|
name: string;
|
|
6
6
|
requires: string[];
|
|
7
|
-
automerge: {
|
|
8
|
-
block: string;
|
|
9
|
-
};
|
|
10
7
|
getNodeSpec(): NodeSpec;
|
|
11
|
-
|
|
8
|
+
getCommandFactories(editor: CoreEditor, type: NodeType): Partial<CommandFactories>;
|
|
12
9
|
getKeyboardShortcuts(): Partial<CommandShortcuts>;
|
|
13
10
|
}
|
|
14
11
|
//# sourceMappingURL=NodeParagraph.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeParagraph.d.ts","sourceRoot":"","sources":["../../../src/extension-basic-editor/src/NodeParagraph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,KAAK,UAAU,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EACL,KAAK,
|
|
1
|
+
{"version":3,"file":"NodeParagraph.d.ts","sourceRoot":"","sources":["../../../src/extension-basic-editor/src/NodeParagraph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,KAAK,UAAU,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,kCAAkC,CAAC;AAE1C,qBAAa,aAAc,SAAQ,IAAI;IAC5B,IAAI,SAAe;IAC5B,QAAQ,WAAW;IAEV,WAAW,IAAI,QAAQ;IAWvB,mBAAmB,CAC1B,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC,gBAAgB,CAAC;IAMnB,oBAAoB,IAAI,OAAO,CAAC,gBAAgB,CAAC;CAK3D"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Node } from '../../editor/src/mod.js';
|
|
2
|
-
import { setBlockType, } from '../../editor/src/commands/mod.js';
|
|
3
2
|
export class NodeParagraph extends Node {
|
|
4
3
|
constructor() {
|
|
5
4
|
super(...arguments);
|
|
@@ -15,14 +14,6 @@ export class NodeParagraph extends Node {
|
|
|
15
14
|
writable: true,
|
|
16
15
|
value: ['doc']
|
|
17
16
|
});
|
|
18
|
-
Object.defineProperty(this, "automerge", {
|
|
19
|
-
enumerable: true,
|
|
20
|
-
configurable: true,
|
|
21
|
-
writable: true,
|
|
22
|
-
value: {
|
|
23
|
-
block: 'paragraph',
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
17
|
}
|
|
27
18
|
getNodeSpec() {
|
|
28
19
|
return {
|
|
@@ -34,9 +25,9 @@ export class NodeParagraph extends Node {
|
|
|
34
25
|
},
|
|
35
26
|
};
|
|
36
27
|
}
|
|
37
|
-
|
|
28
|
+
getCommandFactories(editor, type) {
|
|
38
29
|
return {
|
|
39
|
-
'setParagraph': () => setBlockType(type),
|
|
30
|
+
'setParagraph': () => editor.commandFactories.setBlockType(type),
|
|
40
31
|
};
|
|
41
32
|
}
|
|
42
33
|
getKeyboardShortcuts() {
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Node as PmNode, NodeSpec, type NodeType } from 'prosemirror-model';
|
|
2
|
+
import { type CoreEditor, Node } from '../../editor/src/mod.js';
|
|
3
|
+
import { type CommandFactories, type CommandShortcuts } from '../../editor/src/commands/mod.js';
|
|
4
|
+
import { NodeViewConstructor } from '../../editor/src/DummyEditorView.js';
|
|
5
|
+
/**
|
|
6
|
+
* Matches a task item to a - [ ] on input.
|
|
7
|
+
*/
|
|
8
|
+
export declare const inputRegex: RegExp;
|
|
9
|
+
export interface TaskItemOptions {
|
|
10
|
+
onReadOnlyChecked?: (node: PmNode, checked: boolean) => boolean;
|
|
11
|
+
nested: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare class NodeTaskItem extends Node {
|
|
14
|
+
protected config: Partial<TaskItemOptions>;
|
|
15
|
+
name: string;
|
|
16
|
+
requires: string[];
|
|
17
|
+
constructor(config?: Partial<TaskItemOptions>);
|
|
18
|
+
getNodeSpec(): NodeSpec;
|
|
19
|
+
getCommandFactories(editor: CoreEditor, type: NodeType): Partial<CommandFactories>;
|
|
20
|
+
getNodeView(editor: CoreEditor): NodeViewConstructor;
|
|
21
|
+
getKeyboardShortcuts(): Partial<CommandShortcuts>;
|
|
22
|
+
getInputRules(type: NodeType): import("../../editor/src/plugins/input-rules/InputRulesPlugin.js").InputRule[];
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=NodeTaskItem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeTaskItem.d.ts","sourceRoot":"","sources":["../../../src/extension-basic-editor/src/NodeTaskItem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,MAAM,EAAE,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,KAAK,UAAU,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,kCAAkC,CAAC;AAO1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAI1E;;GAEG;AACH,eAAO,MAAM,UAAU,QAA2B,CAAC;AAEnD,MAAM,WAAW,eAAe;IAC9B,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC;IAChE,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,YAAa,SAAQ,IAAI;cAIE,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC;IAH7D,IAAI,SAAe;IAC5B,QAAQ,WAAW;gBAEmB,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM;IAIlE,WAAW,IAAI,QAAQ;IAyCvB,mBAAmB,CAC1B,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC,gBAAgB,CAAC;IAQnB,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,mBAAmB;IA4EpD,oBAAoB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAQjD,aAAa,CAAC,IAAI,EAAE,QAAQ;CAWtC"}
|