@handlewithcare/react-prosemirror 3.1.0-tiptap.42 → 3.1.0-tiptap.44

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 (143) hide show
  1. package/README.md +26 -0
  2. package/dist/cjs/ReactEditorView.js +74 -70
  3. package/dist/cjs/StaticEditorView.js +21 -18
  4. package/dist/cjs/browser.js +3 -1
  5. package/dist/cjs/commands/reorderSiblings.js +13 -9
  6. package/dist/cjs/components/ChildNodeViews.js +74 -69
  7. package/dist/cjs/components/CursorWrapper.js +20 -34
  8. package/dist/cjs/components/LayoutGroup.js +16 -12
  9. package/dist/cjs/components/NativeWidgetView.js +19 -15
  10. package/dist/cjs/components/OutputSpec.js +13 -9
  11. package/dist/cjs/components/ProseMirror.js +27 -37
  12. package/dist/cjs/components/ProseMirrorDoc.js +18 -25
  13. package/dist/cjs/components/SeparatorHackView.js +20 -17
  14. package/dist/cjs/components/TextNodeView.js +20 -22
  15. package/dist/cjs/components/TrailingHackView.js +17 -13
  16. package/dist/cjs/components/WidgetView.js +18 -14
  17. package/dist/cjs/components/marks/DefaultMarkView.js +15 -27
  18. package/dist/cjs/components/marks/MarkView.js +23 -32
  19. package/dist/cjs/components/marks/MarkViewConstructorView.js +22 -38
  20. package/dist/cjs/components/marks/ReactMarkView.js +16 -27
  21. package/dist/cjs/components/nodes/DefaultNodeView.js +15 -27
  22. package/dist/cjs/components/nodes/DocNodeView.js +16 -12
  23. package/dist/cjs/components/nodes/NodeView.js +26 -33
  24. package/dist/cjs/components/nodes/NodeViewConstructorView.js +29 -45
  25. package/dist/cjs/components/nodes/ReactNodeView.js +27 -39
  26. package/dist/cjs/constants.js +10 -6
  27. package/dist/cjs/contexts/ChildDescriptionsContext.js +3 -1
  28. package/dist/cjs/contexts/EditorContext.js +3 -1
  29. package/dist/cjs/contexts/EditorStateContext.js +3 -1
  30. package/dist/cjs/contexts/IgnoreMutationContext.js +3 -1
  31. package/dist/cjs/contexts/LayoutGroupContext.js +3 -1
  32. package/dist/cjs/contexts/NodeViewContext.js +3 -1
  33. package/dist/cjs/contexts/SelectNodeContext.js +3 -1
  34. package/dist/cjs/contexts/StopEventContext.js +3 -1
  35. package/dist/cjs/decorations/ReactWidgetType.js +19 -13
  36. package/dist/cjs/decorations/computeDocDeco.js +5 -3
  37. package/dist/cjs/decorations/iterDeco.js +19 -17
  38. package/dist/cjs/decorations/viewDecorations.js +15 -12
  39. package/dist/cjs/dom.js +34 -13
  40. package/dist/cjs/findDOMNode.js +9 -5
  41. package/dist/cjs/hooks/useClientLayoutEffect.js +3 -1
  42. package/dist/cjs/hooks/useComponentEventListeners.js +7 -6
  43. package/dist/cjs/hooks/useEditor.js +29 -32
  44. package/dist/cjs/hooks/useEditorEffect.js +9 -7
  45. package/dist/cjs/hooks/useEditorEventCallback.js +9 -7
  46. package/dist/cjs/hooks/useEditorEventListener.js +8 -6
  47. package/dist/cjs/hooks/useEditorState.js +5 -3
  48. package/dist/cjs/hooks/useEffectEvent.js +3 -1
  49. package/dist/cjs/hooks/useForceUpdate.js +3 -1
  50. package/dist/cjs/hooks/useIgnoreMutation.js +9 -7
  51. package/dist/cjs/hooks/useIsEditorStatic.js +5 -5
  52. package/dist/cjs/hooks/useIsNodeSelected.js +5 -3
  53. package/dist/cjs/hooks/useLayoutGroupEffect.js +7 -5
  54. package/dist/cjs/hooks/useMarkViewDescription.js +31 -25
  55. package/dist/cjs/hooks/useNodePos.js +7 -5
  56. package/dist/cjs/hooks/useNodeViewDescription.js +32 -28
  57. package/dist/cjs/hooks/useReactKeys.js +7 -5
  58. package/dist/cjs/hooks/useSelectNode.js +10 -8
  59. package/dist/cjs/hooks/useStopEvent.js +9 -7
  60. package/dist/cjs/index.js +66 -34
  61. package/dist/cjs/plugins/beforeInputPlugin.js +51 -24
  62. package/dist/cjs/plugins/componentEventListeners.js +8 -6
  63. package/dist/cjs/plugins/componentEventListenersPlugin.js +8 -6
  64. package/dist/cjs/plugins/reactKeys.js +15 -10
  65. package/dist/cjs/props.js +23 -19
  66. package/dist/cjs/refs.js +3 -1
  67. package/dist/cjs/testing/editorViewTestHelpers.js +40 -47
  68. package/dist/cjs/testing/setupProseMirrorView.js +7 -4
  69. package/dist/cjs/tiptap/ReactProseMirrorNodeView.js +10 -6
  70. package/dist/cjs/tiptap/TiptapEditor.js +15 -14
  71. package/dist/cjs/tiptap/TiptapEditorContent.js +18 -28
  72. package/dist/cjs/tiptap/TiptapEditorView.js +23 -34
  73. package/dist/cjs/tiptap/contexts/TiptapEditorContext.js +3 -1
  74. package/dist/cjs/tiptap/extensions/ReactProseMirror.js +8 -6
  75. package/dist/cjs/tiptap/extensions/ReactProseMirrorCommands.js +5 -3
  76. package/dist/cjs/tiptap/extensions/commands/updateAttributes.js +4 -2
  77. package/dist/cjs/tiptap/hooks/useIsInReactProseMirror.js +5 -3
  78. package/dist/cjs/tiptap/hooks/useTiptapEditor.js +12 -14
  79. package/dist/cjs/tiptap/hooks/useTiptapEditorEffect.js +12 -10
  80. package/dist/cjs/tiptap/hooks/useTiptapEditorEventCallback.js +6 -4
  81. package/dist/cjs/tiptap/index.js +36 -18
  82. package/dist/cjs/tiptap/tiptapNodeView.js +48 -62
  83. package/dist/cjs/viewdesc.js +119 -89
  84. package/dist/esm/ReactEditorView.js +68 -66
  85. package/dist/esm/StaticEditorView.js +18 -17
  86. package/dist/esm/commands/reorderSiblings.js +5 -5
  87. package/dist/esm/components/ChildNodeViews.js +36 -37
  88. package/dist/esm/components/CursorWrapper.js +10 -28
  89. package/dist/esm/components/LayoutGroup.js +1 -1
  90. package/dist/esm/components/NativeWidgetView.js +2 -2
  91. package/dist/esm/components/OutputSpec.js +1 -1
  92. package/dist/esm/components/ProseMirror.js +4 -18
  93. package/dist/esm/components/ProseMirrorDoc.js +6 -19
  94. package/dist/esm/components/SeparatorHackView.js +3 -4
  95. package/dist/esm/components/TextNodeView.js +6 -10
  96. package/dist/esm/components/TrailingHackView.js +2 -2
  97. package/dist/esm/components/WidgetView.js +3 -3
  98. package/dist/esm/components/marks/DefaultMarkView.js +6 -22
  99. package/dist/esm/components/marks/MarkView.js +11 -24
  100. package/dist/esm/components/marks/MarkViewConstructorView.js +7 -27
  101. package/dist/esm/components/marks/ReactMarkView.js +3 -18
  102. package/dist/esm/components/nodes/DefaultNodeView.js +6 -22
  103. package/dist/esm/components/nodes/DocNodeView.js +2 -2
  104. package/dist/esm/components/nodes/NodeView.js +11 -24
  105. package/dist/esm/components/nodes/NodeViewConstructorView.js +11 -31
  106. package/dist/esm/components/nodes/ReactNodeView.js +6 -22
  107. package/dist/esm/decorations/ReactWidgetType.js +10 -8
  108. package/dist/esm/decorations/iterDeco.js +13 -13
  109. package/dist/esm/decorations/viewDecorations.js +7 -6
  110. package/dist/esm/dom.js +1 -2
  111. package/dist/esm/findDOMNode.js +1 -1
  112. package/dist/esm/hooks/useComponentEventListeners.js +2 -3
  113. package/dist/esm/hooks/useEditor.js +6 -11
  114. package/dist/esm/hooks/useEditorEffect.js +1 -1
  115. package/dist/esm/hooks/useEditorEventCallback.js +1 -1
  116. package/dist/esm/hooks/useEditorEventListener.js +1 -1
  117. package/dist/esm/hooks/useIsEditorStatic.js +1 -3
  118. package/dist/esm/hooks/useMarkViewDescription.js +14 -10
  119. package/dist/esm/hooks/useNodeViewDescription.js +10 -8
  120. package/dist/esm/hooks/useReactKeys.js +1 -1
  121. package/dist/esm/plugins/beforeInputPlugin.js +44 -19
  122. package/dist/esm/plugins/reactKeys.js +3 -4
  123. package/dist/esm/props.js +15 -15
  124. package/dist/esm/testing/editorViewTestHelpers.js +20 -31
  125. package/dist/esm/testing/setupProseMirrorView.js +1 -2
  126. package/dist/esm/tiptap/ReactProseMirrorNodeView.js +7 -5
  127. package/dist/esm/tiptap/TiptapEditor.js +9 -10
  128. package/dist/esm/tiptap/TiptapEditorContent.js +4 -18
  129. package/dist/esm/tiptap/TiptapEditorView.js +8 -23
  130. package/dist/esm/tiptap/extensions/ReactProseMirror.js +1 -1
  131. package/dist/esm/tiptap/extensions/commands/updateAttributes.js +1 -1
  132. package/dist/esm/tiptap/hooks/useTiptapEditor.js +4 -8
  133. package/dist/esm/tiptap/hooks/useTiptapEditorEffect.js +4 -4
  134. package/dist/esm/tiptap/hooks/useTiptapEditorEventCallback.js +1 -1
  135. package/dist/esm/tiptap/tiptapNodeView.js +20 -38
  136. package/dist/esm/viewdesc.js +74 -66
  137. package/dist/tsconfig.tsbuildinfo +1 -1
  138. package/dist/types/constants.d.ts +1 -1
  139. package/dist/types/contexts/EditorContext.d.ts +1 -2
  140. package/dist/types/hooks/useEditor.d.ts +1 -1
  141. package/dist/types/props.d.ts +8 -8
  142. package/dist/types/testing/editorViewTestHelpers.d.ts +1 -0
  143. package/package.json +1 -2
@@ -22,6 +22,26 @@ const NOT_DIRTY = 0, CHILD_DIRTY = 1, CONTENT_DIRTY = 2, NODE_DIRTY = 3;
22
22
  // Superclass for the various kinds of descriptions. Defines their
23
23
  // basic structure and shared methods.
24
24
  export class ViewDesc {
25
+ parent;
26
+ children;
27
+ getPos;
28
+ dom;
29
+ contentDOM;
30
+ dirty;
31
+ node;
32
+ constructor(parent, children, getPos, dom, // This is the node that holds the child views. It may be null for
33
+ // descs that don't have children.
34
+ contentDOM){
35
+ this.parent = parent;
36
+ this.children = children;
37
+ this.getPos = getPos;
38
+ this.dom = dom;
39
+ this.contentDOM = contentDOM;
40
+ this.dirty = NOT_DIRTY;
41
+ // An expando property on the DOM node provides a link back to its
42
+ // description.
43
+ dom.pmViewDesc = this;
44
+ }
25
45
  // Used to check whether a given description corresponds to a
26
46
  // widget/mark/node.
27
47
  matchesWidget(_widget) {
@@ -101,15 +121,15 @@ export class ViewDesc {
101
121
  while(domBefore && !((desc = domBefore.pmViewDesc) && desc.parent == this))domBefore = domBefore.previousSibling;
102
122
  return domBefore ? this.posBeforeChild(desc) + desc.size : this.posAtStart;
103
123
  } else {
104
- let domAfter, desc1;
124
+ let domAfter, desc;
105
125
  if (dom == this.contentDOM) {
106
126
  domAfter = dom.childNodes[offset];
107
127
  } else {
108
128
  while(dom.parentNode != this.contentDOM)dom = dom.parentNode;
109
129
  domAfter = dom.nextSibling;
110
130
  }
111
- while(domAfter && !((desc1 = domAfter.pmViewDesc) && desc1.parent == this))domAfter = domAfter.nextSibling;
112
- return domAfter ? this.posBeforeChild(desc1) : this.posAtEnd;
131
+ while(domAfter && !((desc = domAfter.pmViewDesc) && desc.parent == this))domAfter = domAfter.nextSibling;
132
+ return domAfter ? this.posBeforeChild(desc) : this.posAtEnd;
113
133
  }
114
134
  }
115
135
  // Otherwise, use various heuristics, falling back on the bias
@@ -128,12 +148,12 @@ export class ViewDesc {
128
148
  }
129
149
  if (search.previousSibling) break;
130
150
  }
131
- if (atEnd == null && offset == dom.childNodes.length) for(let search1 = dom;; search1 = search1.parentNode){
132
- if (search1 == this.dom) {
151
+ if (atEnd == null && offset == dom.childNodes.length) for(let search = dom;; search = search.parentNode){
152
+ if (search == this.dom) {
133
153
  atEnd = true;
134
154
  break;
135
155
  }
136
- if (search1.nextSibling) break;
156
+ if (search.nextSibling) break;
137
157
  }
138
158
  }
139
159
  return (atEnd == null ? bias > 0 : atEnd) ? this.posAtEnd : this.posAtStart;
@@ -171,8 +191,8 @@ export class ViewDesc {
171
191
  const end = offset + child.size;
172
192
  if (offset == pos && end != offset) {
173
193
  while(!child.border && child.children.length){
174
- for(let i1 = 0; i1 < child.children.length; i1++){
175
- const inner = child.children[i1];
194
+ for(let i = 0; i < child.children.length; i++){
195
+ const inner = child.children[i];
176
196
  if (inner.size) {
177
197
  child = inner;
178
198
  break;
@@ -210,23 +230,23 @@ export class ViewDesc {
210
230
  }
211
231
  // Scan towards the first useable node
212
232
  if (side <= 0) {
213
- let prev1, enter = true;
233
+ let prev, enter = true;
214
234
  for(;; i--, enter = false){
215
- prev1 = i ? this.children[i - 1] : null;
216
- if (!prev1 || prev1.dom.parentNode == this.contentDOM) break;
235
+ prev = i ? this.children[i - 1] : null;
236
+ if (!prev || prev.dom.parentNode == this.contentDOM) break;
217
237
  }
218
- if (prev1 && side && enter && !prev1.border && !prev1.domAtom) return prev1.domFromPos(prev1.size, side);
238
+ if (prev && side && enter && !prev.border && !prev.domAtom) return prev.domFromPos(prev.size, side);
219
239
  return {
220
240
  node: this.contentDOM,
221
- offset: prev1 ? domIndex(prev1.dom) + 1 : 0
241
+ offset: prev ? domIndex(prev.dom) + 1 : 0
222
242
  };
223
243
  } else {
224
- let next, enter1 = true;
225
- for(;; i++, enter1 = false){
244
+ let next, enter = true;
245
+ for(;; i++, enter = false){
226
246
  next = i < this.children.length ? this.children[i] : null;
227
247
  if (!next || next.dom.parentNode == this.contentDOM) break;
228
248
  }
229
- if (next && enter1 && !next.border && !next.domAtom) return next.domFromPos(0, side);
249
+ if (next && enter && !next.border && !next.domAtom) return next.domFromPos(0, side);
230
250
  return {
231
251
  node: this.contentDOM,
232
252
  offset: next ? domIndex(next.dom) : this.contentDOM.childNodes.length
@@ -264,8 +284,8 @@ export class ViewDesc {
264
284
  }
265
285
  if (fromOffset > -1 && (end > to || i == this.children.length - 1)) {
266
286
  to = end;
267
- for(let j1 = i + 1; j1 < this.children.length; j1++){
268
- const next = this.children[j1];
287
+ for(let j = i + 1; j < this.children.length; j++){
288
+ const next = this.children[j];
269
289
  if (next.size && next.dom.parentNode == this.contentDOM && !next.emptyChildAt(-1)) {
270
290
  toOffset = domIndex(next.dom);
271
291
  break;
@@ -292,7 +312,7 @@ export class ViewDesc {
292
312
  return child.size == 0 || child.emptyChildAt(side);
293
313
  }
294
314
  domAfterPos(pos) {
295
- const { node , offset } = this.domFromPos(pos, 0);
315
+ const { node, offset } = this.domFromPos(pos, 0);
296
316
  if (node.nodeType != 1 || offset == node.childNodes.length) throw new RangeError("No node after pos " + pos);
297
317
  // @ts-expect-error ...
298
318
  return node.childNodes[offset];
@@ -321,12 +341,11 @@ export class ViewDesc {
321
341
  // the cursor sometimes inexplicable visually lags behind its
322
342
  // reported position in such situations (#1092).
323
343
  if ((browser.gecko || browser.safari) && anchor == head) {
324
- const { node , offset: offset1 } = anchorDOM;
344
+ const { node, offset } = anchorDOM;
325
345
  if (node.nodeType == 3) {
326
- var ref;
327
- brKludge = !!(offset1 && ((ref = node.nodeValue) === null || ref === void 0 ? void 0 : ref[offset1 - 1]) == "\n");
346
+ brKludge = !!(offset && node.nodeValue?.[offset - 1] == "\n");
328
347
  // Issue #1128
329
- if (brKludge && offset1 == node.nodeValue.length) {
348
+ if (brKludge && offset == node.nodeValue.length) {
330
349
  for(let scan = node, after; scan; scan = scan.parentNode){
331
350
  if (after = scan.nextSibling) {
332
351
  if (after.nodeName == "BR") anchorDOM = headDOM = {
@@ -340,7 +359,7 @@ export class ViewDesc {
340
359
  }
341
360
  }
342
361
  } else {
343
- const prev = node.childNodes[offset1 - 1];
362
+ const prev = node.childNodes[offset - 1];
344
363
  // @ts-expect-error ...
345
364
  brKludge = prev && (prev.nodeName == "BR" || prev.contentEditable == "false");
346
365
  }
@@ -348,8 +367,8 @@ export class ViewDesc {
348
367
  // Firefox can act strangely when the selection is in front of an
349
368
  // uneditable node. See #1163 and https://bugzilla.mozilla.org/show_bug.cgi?id=1709536
350
369
  if (browser.gecko && selRange.focusNode && selRange.focusNode != headDOM.node && selRange.focusNode.nodeType == 1) {
351
- const after1 = selRange.focusNode.childNodes[selRange.focusOffset];
352
- if (after1 && after1.contentEditable == "false") force = true;
370
+ const after = selRange.focusNode.childNodes[selRange.focusOffset];
371
+ if (after && after.contentEditable == "false") force = true;
353
372
  }
354
373
  if (!(force || brKludge && browser.safari) && isEquivalentPosition(anchorDOM.node, anchorDOM.offset, selRange.anchorNode, selRange.anchorOffset) && isEquivalentPosition(headDOM.node, headDOM.offset, selRange.focusNode, selRange.focusOffset)) return;
355
374
  // Selection.extend can be used to create an 'inverted' selection
@@ -428,21 +447,15 @@ export class ViewDesc {
428
447
  isText(_text) {
429
448
  return false;
430
449
  }
431
- constructor(parent, children, getPos, dom, contentDOM){
432
- this.parent = parent;
433
- this.children = children;
434
- this.getPos = getPos;
435
- this.dom = dom;
436
- this.contentDOM = contentDOM;
437
- this.dirty = NOT_DIRTY;
438
- // An expando property on the DOM node provides a link back to its
439
- // description.
440
- dom.pmViewDesc = this;
441
- }
442
450
  }
443
451
  // A widget desc represents a widget decoration, which is a DOM node
444
452
  // drawn between the document nodes.
445
453
  export class WidgetViewDesc extends ViewDesc {
454
+ widget;
455
+ constructor(parent, getPos, widget, dom){
456
+ super(parent, [], getPos, dom, null), this.widget = widget;
457
+ this.widget = widget;
458
+ }
446
459
  matchesWidget(widget) {
447
460
  return this.dirty == NOT_DIRTY && widget.type.eq(this.widget.type);
448
461
  }
@@ -467,13 +480,13 @@ export class WidgetViewDesc extends ViewDesc {
467
480
  get side() {
468
481
  return this.widget.type.side;
469
482
  }
470
- constructor(parent, getPos, widget, dom){
471
- super(parent, [], getPos, dom, null);
472
- this.widget = widget;
473
- this.widget = widget;
474
- }
475
483
  }
476
484
  export class CompositionViewDesc extends ViewDesc {
485
+ textDOM;
486
+ text;
487
+ constructor(parent, getPos, dom, textDOM, text){
488
+ super(parent, [], getPos, dom, null), this.textDOM = textDOM, this.text = text;
489
+ }
477
490
  get size() {
478
491
  return this.text.length;
479
492
  }
@@ -490,11 +503,6 @@ export class CompositionViewDesc extends ViewDesc {
490
503
  ignoreMutation(mut) {
491
504
  return mut.type === "characterData" && mut.target.nodeValue == mut.oldValue;
492
505
  }
493
- constructor(parent, getPos, dom, textDOM, text){
494
- super(parent, [], getPos, dom, null);
495
- this.textDOM = textDOM;
496
- this.text = text;
497
- }
498
506
  }
499
507
  // A mark desc represents a mark. May have multiple children,
500
508
  // depending on how the mark is split. Note that marks are drawn using
@@ -502,6 +510,11 @@ export class CompositionViewDesc extends ViewDesc {
502
510
  // some cases they will be split more often than would appear
503
511
  // necessary.
504
512
  export class MarkViewDesc extends ViewDesc {
513
+ mark;
514
+ spec;
515
+ constructor(parent, children, getPos, mark, dom, contentDOM, spec){
516
+ super(parent, children, getPos, dom, contentDOM), this.mark = mark, this.spec = spec;
517
+ }
505
518
  parseRule() {
506
519
  if (this.dirty & NODE_DIRTY || this.mark.type.spec.reparseInView) return null;
507
520
  return {
@@ -530,16 +543,18 @@ export class MarkViewDesc extends ViewDesc {
530
543
  if (this.spec.destroy) this.spec.destroy();
531
544
  super.destroy();
532
545
  }
533
- constructor(parent, children, getPos, mark, dom, contentDOM, spec){
534
- super(parent, children, getPos, dom, contentDOM);
535
- this.mark = mark;
536
- this.spec = spec;
537
- }
538
546
  }
539
547
  // Node view descs are the main, most common type of view desc, and
540
548
  // correspond to an actual node in the document. Unlike mark descs,
541
549
  // they populate their child array themselves.
542
550
  export class NodeViewDesc extends ViewDesc {
551
+ node;
552
+ outerDeco;
553
+ innerDeco;
554
+ nodeDOM;
555
+ constructor(parent, children, getPos, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM){
556
+ super(parent, children, getPos, dom, contentDOM), this.node = node, this.outerDeco = outerDeco, this.innerDeco = innerDeco, this.nodeDOM = nodeDOM;
557
+ }
543
558
  parseRule() {
544
559
  // Experimental kludge to allow opt-in re-parsing of nodes
545
560
  if (this.node.type.spec.reparseInView) return null;
@@ -618,15 +633,11 @@ export class NodeViewDesc extends ViewDesc {
618
633
  get domAtom() {
619
634
  return this.node.isAtom;
620
635
  }
621
- constructor(parent, children, getPos, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM){
622
- super(parent, children, getPos, dom, contentDOM);
623
- this.node = node;
624
- this.outerDeco = outerDeco;
625
- this.innerDeco = innerDeco;
626
- this.nodeDOM = nodeDOM;
627
- }
628
636
  }
629
637
  export class TextViewDesc extends NodeViewDesc {
638
+ constructor(parent, children, getPos, node, outerDeco, innerDeco, dom, nodeDOM){
639
+ super(parent, children, getPos, node, outerDeco, innerDeco, dom, null, nodeDOM);
640
+ }
630
641
  parseRule() {
631
642
  let skip = this.nodeDOM.parentNode;
632
643
  while(skip && skip != this.dom && !skip.pmIsDeco)skip = skip.parentNode;
@@ -663,9 +674,6 @@ export class TextViewDesc extends NodeViewDesc {
663
674
  isText(text) {
664
675
  return this.node.text == text;
665
676
  }
666
- constructor(parent, children, getPos, node, outerDeco, innerDeco, dom, nodeDOM){
667
- super(parent, children, getPos, node, outerDeco, innerDeco, dom, null, nodeDOM);
668
- }
669
677
  }
670
678
  // A dummy desc used to tag trailing BR or IMG nodes created to work
671
679
  // around contentEditable terribleness.
@@ -689,6 +697,10 @@ export class TrailingHackViewDesc extends ViewDesc {
689
697
  // extra checks only have to be made for nodes that are actually
690
698
  // customized.
691
699
  let CustomNodeViewDesc = class CustomNodeViewDesc extends NodeViewDesc {
700
+ spec;
701
+ constructor(parent, children, getPos, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM, spec){
702
+ super(parent, children, getPos, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM), this.spec = spec;
703
+ }
692
704
  // A custom `update` method gets to decide whether the update goes
693
705
  // through. If it does, and there's a `contentDOM` node, our logic
694
706
  // updates the children.
@@ -723,10 +735,6 @@ let CustomNodeViewDesc = class CustomNodeViewDesc extends NodeViewDesc {
723
735
  ignoreMutation(mutation) {
724
736
  return this.spec.ignoreMutation ? this.spec.ignoreMutation.call(this, mutation) : super.ignoreMutation(mutation);
725
737
  }
726
- constructor(parent, children, getPos, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM, spec){
727
- super(parent, children, getPos, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM);
728
- this.spec = spec;
729
- }
730
738
  };
731
739
  export class ReactMarkViewDesc extends MarkViewDesc {
732
740
  destroy() {