prosemirror-view 1.33.4 → 1.33.6

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/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ ## 1.33.6 (2024-04-30)
2
+
3
+ ### Bug fixes
4
+
5
+ Make sure the content slice stored for an in-editor drag is the one that was transformed by `transformCopied`.
6
+
7
+ ## 1.33.5 (2024-04-22)
8
+
9
+ ### Bug fixes
10
+
11
+ Fix a regression in composition handling in 1.33.3 that occurs for some IMEs when starting composition on an empty line.
12
+
1
13
  ## 1.33.4 (2024-04-08)
2
14
 
3
15
  ### Bug fixes
package/dist/index.cjs CHANGED
@@ -2602,7 +2602,8 @@ function serializeForClipboard(view, slice) {
2602
2602
  }) || slice.content.textBetween(0, slice.content.size, "\n\n");
2603
2603
  return {
2604
2604
  dom: wrap,
2605
- text: text
2605
+ text: text,
2606
+ slice: slice
2606
2607
  };
2607
2608
  }
2608
2609
  function parseFromClipboard(view, text, html, plainText, $context) {
@@ -3248,7 +3249,7 @@ function findCompositionNode(view) {
3248
3249
  if (!(!descBefore || !descBefore.isText(textBefore.nodeValue))) return textAfter;
3249
3250
  }
3250
3251
  }
3251
- return textBefore;
3252
+ return textBefore || textAfter;
3252
3253
  }
3253
3254
  function timestampFromCustomEvent() {
3254
3255
  var event = document.createEvent("Event");
@@ -3366,10 +3367,11 @@ handlers.dragstart = function (view, _event) {
3366
3367
  var desc = view.docView.nearestDesc(event.target, true);
3367
3368
  if (desc && desc.node.type.spec.draggable && desc != view.docView) node = prosemirrorState.NodeSelection.create(view.state.doc, desc.posBefore);
3368
3369
  }
3369
- var slice = (node || view.state.selection).content(),
3370
- _serializeForClipboar2 = serializeForClipboard(view, slice),
3370
+ var draggedSlice = (node || view.state.selection).content();
3371
+ var _serializeForClipboar2 = serializeForClipboard(view, draggedSlice),
3371
3372
  dom = _serializeForClipboar2.dom,
3372
- text = _serializeForClipboar2.text;
3373
+ text = _serializeForClipboar2.text,
3374
+ slice = _serializeForClipboar2.slice;
3373
3375
  event.dataTransfer.clearData();
3374
3376
  event.dataTransfer.setData(brokenClipboardAPI ? "Text" : "text/html", dom.innerHTML);
3375
3377
  event.dataTransfer.effectAllowed = "copyMove";
package/dist/index.js CHANGED
@@ -2753,7 +2753,7 @@ function serializeForClipboard(view, slice) {
2753
2753
  firstChild.setAttribute("data-pm-slice", `${openStart} ${openEnd}${wrappers ? ` -${wrappers}` : ""} ${JSON.stringify(context)}`);
2754
2754
  let text = view.someProp("clipboardTextSerializer", f => f(slice, view)) ||
2755
2755
  slice.content.textBetween(0, slice.content.size, "\n\n");
2756
- return { dom: wrap, text };
2756
+ return { dom: wrap, text, slice };
2757
2757
  }
2758
2758
  // Read a slice of content from the clipboard (or drop data).
2759
2759
  function parseFromClipboard(view, text, html, plainText, $context) {
@@ -3468,7 +3468,7 @@ function findCompositionNode(view) {
3468
3468
  return textAfter;
3469
3469
  }
3470
3470
  }
3471
- return textBefore;
3471
+ return textBefore || textAfter;
3472
3472
  }
3473
3473
  function timestampFromCustomEvent() {
3474
3474
  let event = document.createEvent("Event");
@@ -3625,7 +3625,8 @@ handlers.dragstart = (view, _event) => {
3625
3625
  if (desc && desc.node.type.spec.draggable && desc != view.docView)
3626
3626
  node = NodeSelection.create(view.state.doc, desc.posBefore);
3627
3627
  }
3628
- let slice = (node || view.state.selection).content(), { dom, text } = serializeForClipboard(view, slice);
3628
+ let draggedSlice = (node || view.state.selection).content();
3629
+ let { dom, text, slice } = serializeForClipboard(view, draggedSlice);
3629
3630
  event.dataTransfer.clearData();
3630
3631
  event.dataTransfer.setData(brokenClipboardAPI ? "Text" : "text/html", dom.innerHTML);
3631
3632
  // See https://github.com/ProseMirror/prosemirror/issues/1156
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prosemirror-view",
3
- "version": "1.33.4",
3
+ "version": "1.33.6",
4
4
  "description": "ProseMirror's view component",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",
package/src/clipboard.ts CHANGED
@@ -36,7 +36,7 @@ export function serializeForClipboard(view: EditorView, slice: Slice) {
36
36
  let text = view.someProp("clipboardTextSerializer", f => f(slice, view)) ||
37
37
  slice.content.textBetween(0, slice.content.size, "\n\n")
38
38
 
39
- return {dom: wrap, text}
39
+ return {dom: wrap, text, slice}
40
40
  }
41
41
 
42
42
  // Read a slice of content from the clipboard (or drop data).
package/src/input.ts CHANGED
@@ -526,7 +526,7 @@ export function findCompositionNode(view: EditorView) {
526
526
  return textAfter
527
527
  }
528
528
  }
529
- return textBefore
529
+ return textBefore || textAfter
530
530
  }
531
531
 
532
532
  function timestampFromCustomEvent() {
@@ -674,7 +674,8 @@ handlers.dragstart = (view, _event) => {
674
674
  if (desc && desc.node.type.spec.draggable && desc != view.docView)
675
675
  node = NodeSelection.create(view.state.doc, desc.posBefore)
676
676
  }
677
- let slice = (node || view.state.selection).content(), {dom, text} = serializeForClipboard(view, slice)
677
+ let draggedSlice = (node || view.state.selection).content()
678
+ let {dom, text, slice} = serializeForClipboard(view, draggedSlice)
678
679
  event.dataTransfer.clearData()
679
680
  event.dataTransfer.setData(brokenClipboardAPI ? "Text" : "text/html", dom.innerHTML)
680
681
  // See https://github.com/ProseMirror/prosemirror/issues/1156