@kerebron/editor 0.3.2 → 0.4.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.
Files changed (65) hide show
  1. package/README.md +1 -1
  2. package/assets/base.css +22 -10
  3. package/assets/vars.css +9 -0
  4. package/esm/CoreEditor.d.ts +13 -4
  5. package/esm/CoreEditor.d.ts.map +1 -1
  6. package/esm/CoreEditor.js +64 -12
  7. package/esm/Extension.d.ts +6 -1
  8. package/esm/Extension.d.ts.map +1 -1
  9. package/esm/Extension.js +21 -1
  10. package/esm/ExtensionManager.d.ts +5 -6
  11. package/esm/ExtensionManager.d.ts.map +1 -1
  12. package/esm/ExtensionManager.js +43 -55
  13. package/esm/Mark.d.ts +3 -0
  14. package/esm/Mark.d.ts.map +1 -1
  15. package/esm/Mark.js +11 -0
  16. package/esm/Node.d.ts +5 -2
  17. package/esm/Node.d.ts.map +1 -1
  18. package/esm/Node.js +13 -2
  19. package/esm/commands/CommandManager.d.ts +13 -6
  20. package/esm/commands/CommandManager.d.ts.map +1 -1
  21. package/esm/commands/CommandManager.js +59 -2
  22. package/esm/commands/baseCommandFactories.d.ts +3 -0
  23. package/esm/commands/baseCommandFactories.d.ts.map +1 -0
  24. package/esm/commands/baseCommandFactories.js +836 -0
  25. package/esm/commands/keyCommandFactories.d.ts +3 -0
  26. package/esm/commands/keyCommandFactories.d.ts.map +1 -0
  27. package/esm/commands/keyCommandFactories.js +10 -0
  28. package/esm/commands/mod.d.ts +5 -53
  29. package/esm/commands/mod.d.ts.map +1 -1
  30. package/esm/commands/mod.js +14 -821
  31. package/esm/commands/replaceCommandFactories.d.ts +3 -0
  32. package/esm/commands/replaceCommandFactories.d.ts.map +1 -0
  33. package/esm/commands/replaceCommandFactories.js +94 -0
  34. package/esm/commands/types.d.ts +18 -0
  35. package/esm/commands/types.d.ts.map +1 -0
  36. package/esm/commands/types.js +1 -0
  37. package/esm/mod.d.ts +2 -0
  38. package/esm/mod.d.ts.map +1 -1
  39. package/esm/mod.js +2 -0
  40. package/esm/plugins/TrackSelecionPlugin.d.ts +6 -0
  41. package/esm/plugins/TrackSelecionPlugin.d.ts.map +1 -0
  42. package/esm/plugins/TrackSelecionPlugin.js +24 -0
  43. package/esm/search/query.d.ts.map +1 -1
  44. package/esm/search/query.js +17 -10
  45. package/esm/search/search.d.ts +1 -2
  46. package/esm/search/search.d.ts.map +1 -1
  47. package/esm/search/search.js +0 -1
  48. package/esm/types.d.ts +19 -1
  49. package/esm/types.d.ts.map +1 -1
  50. package/esm/ui.d.ts +15 -0
  51. package/esm/ui.d.ts.map +1 -0
  52. package/esm/ui.js +16 -0
  53. package/esm/utilities/SmartOutput.d.ts +9 -7
  54. package/esm/utilities/SmartOutput.d.ts.map +1 -1
  55. package/esm/utilities/SmartOutput.js +35 -20
  56. package/esm/utilities/getShadowRoot.d.ts +2 -0
  57. package/esm/utilities/getShadowRoot.d.ts.map +1 -0
  58. package/esm/utilities/getShadowRoot.js +16 -0
  59. package/esm/utilities/mod.d.ts +2 -0
  60. package/esm/utilities/mod.d.ts.map +1 -1
  61. package/esm/utilities/mod.js +2 -0
  62. package/esm/utilities/toRawTextResult.d.ts +3 -0
  63. package/esm/utilities/toRawTextResult.d.ts.map +1 -0
  64. package/esm/utilities/toRawTextResult.js +21 -0
  65. package/package.json +1 -1
package/esm/Node.d.ts CHANGED
@@ -16,14 +16,17 @@ export declare abstract class Node {
16
16
  protected config: Partial<NodeConfig>;
17
17
  readonly type = "node";
18
18
  name: string;
19
+ protected editor: CoreEditor;
19
20
  readonly attributes: Record<string, Attribute<any>>;
20
21
  constructor(config?: Partial<NodeConfig>);
22
+ setEditor(editor: CoreEditor): void;
23
+ created(): void;
21
24
  getNodeSpec(): NodeSpec;
22
25
  getInputRules(type: NodeType): InputRule[];
23
- getProseMirrorPlugins(editor: CoreEditor, schema: Schema): Plugin[];
26
+ getProseMirrorPlugins(): Plugin[];
24
27
  getCommandFactories(editor: CoreEditor, type: NodeType): Partial<CommandFactories>;
25
28
  getKeyboardShortcuts(editor: CoreEditor): Partial<CommandShortcuts>;
26
- getNodeView(): NodeViewConstructor | undefined;
29
+ getNodeView(editor: CoreEditor): NodeViewConstructor | undefined;
27
30
  getConverters(editor: CoreEditor, schema: Schema): Record<string, Converter>;
28
31
  }
29
32
  //# sourceMappingURL=Node.d.ts.map
package/esm/Node.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Node.d.ts","sourceRoot":"","sources":["../src/Node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAC;AAC3E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,WAAW,UAAU;IAEzB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,OAAO,CAAC;CAC9B;AAED,8BAAsB,IAAI;IAML,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC;IALxD,QAAQ,CAAC,IAAI,UAAU;IACvB,IAAI,EAAE,MAAM,CAAU;IAEtB,SAAgB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAM;gBAEnC,MAAM,GAAE,OAAO,CAAC,UAAU,CAAM;IAE7D,WAAW,IAAI,QAAQ;IAIvB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,EAAE;IAI1C,qBAAqB,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE;IAInE,mBAAmB,CACjB,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC,gBAAgB,CAAC;IAI5B,oBAAoB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAInE,WAAW,IAAI,mBAAmB,GAAG,SAAS;IAI9C,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC;CAG7E"}
1
+ {"version":3,"file":"Node.d.ts","sourceRoot":"","sources":["../src/Node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAC;AAC3E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,WAAW,UAAU;IAEzB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,OAAO,CAAC;CAC9B;AAED,8BAAsB,IAAI;IAOL,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC;IANxD,QAAQ,CAAC,IAAI,UAAU;IACvB,IAAI,EAAE,MAAM,CAAU;IACtB,SAAS,CAAC,MAAM,EAAG,UAAU,CAAC;IAE9B,SAAgB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAM;gBAEnC,MAAM,GAAE,OAAO,CAAC,UAAU,CAAM;IAE7D,SAAS,CAAC,MAAM,EAAE,UAAU;IAI5B,OAAO;IAGP,WAAW,IAAI,QAAQ;IAIvB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,EAAE;IAI1C,qBAAqB,IAAI,MAAM,EAAE;IAIjC,mBAAmB,CACjB,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC,gBAAgB,CAAC;IAI5B,oBAAoB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAInE,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,mBAAmB,GAAG,SAAS;IAIhE,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC;CAG7E"}
package/esm/Node.js CHANGED
@@ -18,6 +18,12 @@ export class Node {
18
18
  writable: true,
19
19
  value: 'node'
20
20
  });
21
+ Object.defineProperty(this, "editor", {
22
+ enumerable: true,
23
+ configurable: true,
24
+ writable: true,
25
+ value: void 0
26
+ });
21
27
  Object.defineProperty(this, "attributes", {
22
28
  enumerable: true,
23
29
  configurable: true,
@@ -25,13 +31,18 @@ export class Node {
25
31
  value: {}
26
32
  });
27
33
  }
34
+ setEditor(editor) {
35
+ this.editor = editor;
36
+ }
37
+ created() {
38
+ }
28
39
  getNodeSpec() {
29
40
  throw new Error('NodeSpec not defined: ' + this.name);
30
41
  }
31
42
  getInputRules(type) {
32
43
  return [];
33
44
  }
34
- getProseMirrorPlugins(editor, schema) {
45
+ getProseMirrorPlugins() {
35
46
  return [];
36
47
  }
37
48
  getCommandFactories(editor, type) {
@@ -40,7 +51,7 @@ export class Node {
40
51
  getKeyboardShortcuts(editor) {
41
52
  return {};
42
53
  }
43
- getNodeView() {
54
+ getNodeView(editor) {
44
55
  return undefined;
45
56
  }
46
57
  getConverters(editor, schema) {
@@ -1,16 +1,23 @@
1
- import { EditorState, Transaction } from 'prosemirror-state';
2
- import { CoreEditor } from '../CoreEditor.js';
3
- import { ChainedCommands, CommandFactory } from './mod.js';
1
+ import type { EditorState, Transaction } from 'prosemirror-state';
2
+ import type { CoreEditor } from '../CoreEditor.js';
3
+ import type { ChainedCommands, CommandFactories, CommandFactory } from './types.js';
4
+ type CommandRunner = (...args: any[]) => boolean;
4
5
  export declare class CommandManager {
5
6
  private editor;
6
- private commandFactories;
7
- constructor(editor: CoreEditor, commandFactories?: {
7
+ readonly commandFactories: {
8
8
  [key: string]: CommandFactory;
9
- });
9
+ };
10
+ readonly run: {
11
+ [key: string]: CommandRunner;
12
+ };
13
+ private debug;
14
+ constructor(editor: CoreEditor);
15
+ mergeCommandFactories(toInsert: Partial<CommandFactories>, extName: string): void;
10
16
  get state(): EditorState;
11
17
  get chain(): () => ChainedCommands;
12
18
  get can(): () => ChainedCommands;
13
19
  createChain(startTr?: Transaction, shouldDispatch?: boolean): ChainedCommands;
14
20
  createCan(startTr?: Transaction): ChainedCommands;
15
21
  }
22
+ export {};
16
23
  //# sourceMappingURL=CommandManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CommandManager.d.ts","sourceRoot":"","sources":["../../src/commands/CommandManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE3D,qBAAa,cAAc;IAEvB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,gBAAgB;gBADhB,MAAM,EAAE,UAAU,EAClB,gBAAgB,GAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAO;IAIlE,IAAI,KAAK,IAAI,WAAW,CAEvB;IAED,IAAI,KAAK,IAAI,MAAM,eAAe,CAEjC;IAED,IAAI,GAAG,IAAI,MAAM,eAAe,CAE/B;IAEM,WAAW,CAChB,OAAO,CAAC,EAAE,WAAW,EACrB,cAAc,UAAO,GACpB,eAAe;IA4CX,SAAS,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,eAAe;CAGzD"}
1
+ {"version":3,"file":"CommandManager.d.ts","sourceRoot":"","sources":["../../src/commands/CommandManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAElE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EACV,eAAe,EAEf,gBAAgB,EAChB,cAAc,EACf,MAAM,YAAY,CAAC;AAMpB,KAAK,aAAa,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC;AAEjD,qBAAa,cAAc;IAOvB,OAAO,CAAC,MAAM;IANhB,SAAgB,gBAAgB,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,CAAM;IACzE,SAAgB,GAAG,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAA;KAAE,CAAM;IAE3D,OAAO,CAAC,KAAK,CAAQ;gBAGX,MAAM,EAAE,UAAU;IAOrB,qBAAqB,CAC1B,QAAQ,EAAE,OAAO,CAAC,gBAAgB,CAAC,EACnC,OAAO,EAAE,MAAM;IA4CjB,IAAI,KAAK,IAAI,WAAW,CAEvB;IAED,IAAI,KAAK,IAAI,MAAM,eAAe,CAEjC;IAED,IAAI,GAAG,IAAI,MAAM,eAAe,CAE/B;IAEM,WAAW,CAChB,OAAO,CAAC,EAAE,WAAW,EACrB,cAAc,UAAO,GACpB,eAAe;IA4CX,SAAS,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,eAAe;CAGzD"}
@@ -1,6 +1,10 @@
1
+ import { EditorView } from 'prosemirror-view';
1
2
  import { createChainableState } from './createChainableState.js';
3
+ import { baseCommandFactories } from './baseCommandFactories.js';
4
+ import { keyCommandFactories } from './keyCommandFactories.js';
5
+ import { replaceCommandFactories } from './replaceCommandFactories.js';
2
6
  export class CommandManager {
3
- constructor(editor, commandFactories = {}) {
7
+ constructor(editor) {
4
8
  Object.defineProperty(this, "editor", {
5
9
  enumerable: true,
6
10
  configurable: true,
@@ -11,8 +15,61 @@ export class CommandManager {
11
15
  enumerable: true,
12
16
  configurable: true,
13
17
  writable: true,
14
- value: commandFactories
18
+ value: {}
15
19
  });
20
+ Object.defineProperty(this, "run", {
21
+ enumerable: true,
22
+ configurable: true,
23
+ writable: true,
24
+ value: {}
25
+ });
26
+ Object.defineProperty(this, "debug", {
27
+ enumerable: true,
28
+ configurable: true,
29
+ writable: true,
30
+ value: true
31
+ });
32
+ this.mergeCommandFactories(baseCommandFactories, 'baseCommand');
33
+ this.mergeCommandFactories(keyCommandFactories, 'key');
34
+ this.mergeCommandFactories(replaceCommandFactories, 'replace');
35
+ }
36
+ mergeCommandFactories(toInsert, extName) {
37
+ for (const key in toInsert) {
38
+ const commandFactory = toInsert[key];
39
+ if (!commandFactory) {
40
+ continue;
41
+ }
42
+ if (this.debug) {
43
+ const wrappedFactory = (...args) => {
44
+ const realCommand = commandFactory(...args);
45
+ const command = (state, dispatch, view) => {
46
+ if (dispatch) {
47
+ console.debug(`Command: ${extName}.${key}`);
48
+ }
49
+ return realCommand(state, dispatch, view);
50
+ };
51
+ return command;
52
+ };
53
+ this.commandFactories[key] = wrappedFactory;
54
+ }
55
+ else {
56
+ this.commandFactories[key] = commandFactory;
57
+ }
58
+ }
59
+ for (const key in this.commandFactories) {
60
+ const factory = this.commandFactories[key];
61
+ this.run[key] = (...args) => {
62
+ const command = factory(...args);
63
+ const state = this.editor.state;
64
+ const view = this.editor.view;
65
+ if (view instanceof EditorView) {
66
+ return command(state, view.dispatch, view);
67
+ }
68
+ else {
69
+ return command(state, view.dispatch);
70
+ }
71
+ };
72
+ }
16
73
  }
17
74
  get state() {
18
75
  return this.editor.state;
@@ -0,0 +1,3 @@
1
+ import { CommandFactory } from './types.js';
2
+ export declare const baseCommandFactories: Record<string, CommandFactory>;
3
+ //# sourceMappingURL=baseCommandFactories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseCommandFactories.d.ts","sourceRoot":"","sources":["../../src/commands/baseCommandFactories.ts"],"names":[],"mappings":"AAgCA,OAAO,EAAgB,cAAc,EAAE,MAAM,YAAY,CAAC;AAo/B1D,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CA2B/D,CAAC"}