@kerebron/editor 0.0.6 → 0.0.7

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.
@@ -9,10 +9,9 @@ export declare class CoreEditor extends EventTarget {
9
9
  private extensionManager;
10
10
  private commandManager;
11
11
  view: EditorView;
12
+ state: EditorState;
12
13
  constructor(options?: Partial<EditorOptions>);
13
- private createExtensionManager;
14
14
  get schema(): Schema<any, any>;
15
- get state(): EditorState;
16
15
  chain(): ChainedCommands;
17
16
  can(): ChainedCommands;
18
17
  private createView;
@@ -1 +1 @@
1
- {"version":3,"file":"CoreEditor.d.ts","sourceRoot":"","sources":["../src/CoreEditor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAEL,QAAQ,EACR,IAAI,IAAI,eAAe,EAEvB,KAAK,MAAM,EACZ,MAAM,mBAAmB,CAAC;AAG3B,OAAO,KAAK,EAAW,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,WAAW,EAAe,MAAM,mBAAmB,CAAC;AAE7D,OAAO,EAAE,eAAe,EAAkB,MAAM,8BAA8B,CAAC;AAE/E,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,GACb,MAAM,CAWR;AAeD,qBAAa,UAAW,SAAQ,WAAW;IACzC,SAAgB,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAG7C;IACF,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,cAAc,CAAiB;IAChC,IAAI,EAAG,UAAU,CAAC;gBAEb,OAAO,GAAE,OAAO,CAAC,aAAa,CAAM;IA0BhD,OAAO,CAAC,sBAAsB;IAI9B,IAAW,MAAM,qBAEhB;IAED,IAAW,KAAK,IAAI,WAAW,CAE9B;IAEM,KAAK,IAAI,eAAe;IAIxB,GAAG,IAAI,eAAe;IAI7B,OAAO,CAAC,UAAU;IAgBlB,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,YAAY;IAYb,OAAO,IAAI,WAAW;IAI7B;;OAEG;IACI,OAAO,IAAI,MAAM;IAIjB,WAAW,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,MAAM;IA0C7C,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM;CAUtC"}
1
+ {"version":3,"file":"CoreEditor.d.ts","sourceRoot":"","sources":["../src/CoreEditor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAEL,QAAQ,EACR,IAAI,IAAI,eAAe,EAEvB,KAAK,MAAM,EACZ,MAAM,mBAAmB,CAAC;AAG3B,OAAO,KAAK,EAAW,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,WAAW,EAAe,MAAM,mBAAmB,CAAC;AAE7D,OAAO,EAAE,eAAe,EAAkB,MAAM,8BAA8B,CAAC;AAE/E,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,GACb,MAAM,CAWR;AAeD,qBAAa,UAAW,SAAQ,WAAW;IACzC,SAAgB,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAG7C;IACF,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,cAAc,CAAiB;IAChC,IAAI,EAAG,UAAU,CAAC;IAClB,KAAK,EAAG,WAAW,CAAA;gBAEd,OAAO,GAAE,OAAO,CAAC,aAAa,CAAM;IA0BhD,IAAW,MAAM,qBAEhB;IAEM,KAAK,IAAI,eAAe;IAIxB,GAAG,IAAI,eAAe;IAI7B,OAAO,CAAC,UAAU;IAkBlB,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,YAAY;IAcb,OAAO,IAAI,WAAW;IAI7B;;OAEG;IACI,OAAO,IAAI,MAAM;IAIjB,WAAW,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,MAAM;IA4C7C,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM;CAUtC"}
package/esm/CoreEditor.js CHANGED
@@ -26,7 +26,7 @@ export class CoreEditor extends EventTarget {
26
26
  configurable: true,
27
27
  writable: true,
28
28
  value: {
29
- element: document.createElement('div'),
29
+ element: null, // document.createElement('div'),
30
30
  extensions: [],
31
31
  }
32
32
  });
@@ -48,11 +48,17 @@ export class CoreEditor extends EventTarget {
48
48
  writable: true,
49
49
  value: void 0
50
50
  });
51
+ Object.defineProperty(this, "state", {
52
+ enumerable: true,
53
+ configurable: true,
54
+ writable: true,
55
+ value: void 0
56
+ });
51
57
  this.options = {
52
58
  ...this.options,
53
59
  ...options,
54
60
  };
55
- this.extensionManager = this.createExtensionManager();
61
+ this.extensionManager = new ExtensionManager(this.options.extensions, this);
56
62
  // const content = this.options.content ? this.options.content : {
57
63
  // type: this.extensionManager.schema.topNodeType.name,
58
64
  // content: this.extensionManager.schema.topNodeType.spec.EMPTY_DOC,
@@ -65,15 +71,9 @@ export class CoreEditor extends EventTarget {
65
71
  this.commandManager = new CommandManager(this, this.extensionManager.commandConstructors);
66
72
  this.setupPlugins();
67
73
  }
68
- createExtensionManager() {
69
- return new ExtensionManager(this.options.extensions, this);
70
- }
71
74
  get schema() {
72
75
  return this.extensionManager.schema;
73
76
  }
74
- get state() {
75
- return this.view.state;
76
- }
77
77
  chain() {
78
78
  return this.commandManager.chain();
79
79
  }
@@ -82,31 +82,37 @@ export class CoreEditor extends EventTarget {
82
82
  }
83
83
  createView(content) {
84
84
  let doc = createDocument(content, this.schema, this.options.parseOptions, { errorOnInvalidContent: false });
85
- const state = EditorState.create({ doc });
86
- this.view = new EditorView(this.options.element, {
87
- state,
88
- dispatchTransaction: (tx) => this.dispatchTransaction(tx),
89
- });
85
+ this.state = EditorState.create({ doc });
86
+ if (this.options.element) {
87
+ this.view = new EditorView(this.options.element, {
88
+ state: this.state,
89
+ dispatchTransaction: (tx) => this.dispatchTransaction(tx),
90
+ });
91
+ }
90
92
  }
91
93
  dispatchTransaction(transaction) {
92
- const nextState = this.state.apply(transaction);
93
- this.view.updateState(nextState);
94
- const event = new CustomEvent('transaction', {
95
- detail: {
96
- editor: this,
97
- transaction,
98
- },
99
- });
100
- this.dispatchEvent(event);
94
+ this.state = this.state.apply(transaction);
95
+ if (this.view) {
96
+ this.view.updateState(this.state);
97
+ const event = new CustomEvent('transaction', {
98
+ detail: {
99
+ editor: this,
100
+ transaction,
101
+ },
102
+ });
103
+ this.dispatchEvent(event);
104
+ }
101
105
  }
102
106
  setupPlugins() {
103
- const newState = this.state.reconfigure({
107
+ this.state = this.state.reconfigure({
104
108
  plugins: this.extensionManager.plugins,
105
109
  });
106
- this.view.updateState(newState);
107
- this.view.setProps({
108
- nodeViews: this.extensionManager.nodeViews,
109
- });
110
+ if (this.view) {
111
+ this.view.updateState(this.state);
112
+ this.view.setProps({
113
+ nodeViews: this.extensionManager.nodeViews,
114
+ });
115
+ }
110
116
  }
111
117
  getJSON() {
112
118
  return this.state.doc.toJSON();
@@ -136,12 +142,14 @@ export class CoreEditor extends EventTarget {
136
142
  else {
137
143
  doc = createDocument(content, this.schema, this.options.parseOptions, { errorOnInvalidContent: false });
138
144
  }
139
- const newState = EditorState.create({
145
+ this.state = EditorState.create({
140
146
  doc,
141
- plugins: this.view.state.plugins,
142
- storedMarks: this.view.state.storedMarks,
147
+ plugins: this.state.plugins,
148
+ storedMarks: this.state.storedMarks,
143
149
  });
144
- this.view.updateState(newState);
150
+ if (this.view) {
151
+ this.view.updateState(this.state);
152
+ }
145
153
  const event = new CustomEvent('doc:loaded', {
146
154
  detail: {
147
155
  editor: this,
@@ -133,7 +133,7 @@ export class ExtensionManager {
133
133
  mergeShortcuts(extension.getKeyboardShortcuts(this.editor), extension.name);
134
134
  converters = {
135
135
  ...converters,
136
- ...extension.getConverters(this.editor, this.schema),
136
+ ...extension.getConverters(this.schema),
137
137
  };
138
138
  const nodeView = extension.getNodeView();
139
139
  if (nodeView) {
@@ -152,7 +152,7 @@ export class ExtensionManager {
152
152
  mergeShortcuts(extension.getKeyboardShortcuts(this.editor), extension.name);
153
153
  converters = {
154
154
  ...converters,
155
- ...extension.getConverters(this.editor, this.schema),
155
+ ...extension.getConverters(this.schema),
156
156
  };
157
157
  }
158
158
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kerebron/editor",
3
- "version": "0.0.6",
3
+ "version": "0.0.7",
4
4
  "license": "MIT",
5
5
  "module": "./esm/mod.js",
6
6
  "exports": {
@@ -17,6 +17,7 @@
17
17
  "import": "./esm/utilities/mod.js"
18
18
  }
19
19
  },
20
+ "scripts": {},
20
21
  "dependencies": {
21
22
  "prosemirror-keymap": "1.2.2",
22
23
  "prosemirror-model": "1.24.1",