@ckeditor/ckeditor5-clipboard 45.2.1 → 46.0.0-alpha.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/dist/index-editor.css +1 -0
- package/dist/index.css +1 -0
- package/dist/index.css.map +1 -1
- package/dist/index.js +33 -30
- package/dist/index.js.map +1 -1
- package/package.json +7 -7
- package/src/clipboard.d.ts +5 -5
- package/src/clipboard.js +5 -5
- package/src/clipboardmarkersutils.d.ts +5 -5
- package/src/clipboardmarkersutils.js +3 -3
- package/src/clipboardobserver.d.ts +85 -84
- package/src/clipboardobserver.js +16 -16
- package/src/clipboardpipeline.d.ts +22 -22
- package/src/clipboardpipeline.js +14 -14
- package/src/dragdrop.d.ts +4 -4
- package/src/dragdrop.js +10 -10
- package/src/dragdropblocktoolbar.d.ts +1 -1
- package/src/dragdropblocktoolbar.js +2 -2
- package/src/dragdroptarget.d.ts +4 -4
- package/src/dragdroptarget.js +2 -2
- package/src/index.d.ts +15 -10
- package/src/index.js +15 -10
- package/src/lineview.d.ts +3 -1
- package/src/lineview.js +3 -1
- package/src/pasteplaintext.d.ts +2 -2
- package/src/pasteplaintext.js +3 -3
- package/src/utils/normalizeclipboarddata.d.ts +2 -1
- package/src/utils/normalizeclipboarddata.js +2 -1
- package/src/utils/plaintexttohtml.d.ts +1 -1
- package/src/utils/plaintexttohtml.js +1 -1
- package/src/utils/viewtoplaintext.d.ts +3 -3
- package/src/utils/viewtoplaintext.js +3 -3
- package/theme/clipboard.css +1 -0
package/dist/index-editor.css
CHANGED
package/dist/index.css
CHANGED
package/dist/index.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../theme/clipboard.css","index.css"],"names":[],"mappings":";;;;AAAA,CAAA;ACCA,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ;AAC3E,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;AAClF,CAAC,CDAC;;AAGD,CAAA;ACAD,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC;AAClC,CAAC,CAAC,CDCC;;AACF,CAAA,EAAA,CAAA,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,SAAA,CAAA,IAAA,CAAA,MAAA,CAAA,QAAA,CAAA;ACCD,CAAC,CDAC,OAAA,CAAA,CAAA,MAAe;ACCjB,CAAC,CDAC,QAAA,CAAA,CAAA,QAAkB;ACCpB,CAAC,CDAC,OAAA,CAAA,MAAA,CAAA,CAAA,IAAoB;ACCtB,CDKC;;AAJC,CAAA,EAAA,CAAA,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,SAAA,CAAA,IAAA,CAAA,MAAA,CAAA,QAAA,CAAA,IAAA,CAAA;ACEF,CAAC,CAAC,CDDC,QAAA,CAAA,CAAA,QAAkB;ACErB,CAAC,CAAC,CDDC,KAAA,CAAA,CAAA,CAAQ;ACEX,CAAC,CDDC;;AAGD,CAAA;ACCD,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;AACpD,CAAC,CAAC,CDAC;;AAED,CAAA,EAAA,CAAA,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,CAAA,MAAA,CAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA;ACCF,CAAC,CAAC,CDAC,OAAA,CAAA,CAAA,IAAa;ACChB,CAAC,CDAC;;AAEA,CAAA,EAAA,CAAA,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,CAAA,MAAA,CAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,YAAA,CAAA,MAAA,CAAA;ACCF,CAAC,CAAC,CDAC,OAAA,CAAA,CAAA,IAAa;ACChB,CAAC,CDAC;;AAIF,CAAA,EAAA,CAAA,EAAA,CAAA,SAAA,CAAA,IAAA,CAAA,MAAA,CAAA,IAAA,CAAA;ACDA,CDEC,QAAA,CAAA,CAAA,QAAkB;ACDnB,CDEC,OAAA,CAAA,MAAA,CAAA,CAAA,IAAoB;AACrB;;ACAA,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC","file":"index.css.map","sourcesContent":["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-editor__editable {\n\t/*\n\t * Vertical drop target (in text).\n\t */\n\t& .ck.ck-clipboard-drop-target-position {\n\t\tdisplay: inline;\n\t\tposition: relative;\n\t\tpointer-events: none;\n\n\t\t& span {\n\t\t\tposition: absolute;\n\t\t\twidth: 0;\n\t\t}\n\t}\n\n\t/*\n\t * Styles of the widget being dragged (its preview).\n\t */\n\t& .ck-widget:-webkit-drag {\n\t\t& > .ck-widget__selection-handle {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t& > .ck-widget__type-around {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n\n.ck.ck-clipboard-drop-target-line {\n\tposition: absolute;\n\tpointer-events: none;\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/*\n\t * Vertical drop target (in text).\n\t */\n\n.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position {\n\t\tdisplay: inline;\n\t\tposition: relative;\n\t\tpointer-events: none;\n\t}\n\n.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span {\n\t\t\tposition: absolute;\n\t\t\twidth: 0;\n\t\t}\n\n/*\n\t * Styles of the widget being dragged (its preview).\n\t */\n\n.ck.ck-editor__editable .ck-widget:-webkit-drag > .ck-widget__selection-handle {\n\t\t\tdisplay: none;\n\t\t}\n\n.ck.ck-editor__editable .ck-widget:-webkit-drag > .ck-widget__type-around {\n\t\t\tdisplay: none;\n\t\t}\n\n.ck.ck-clipboard-drop-target-line {\n\tposition: absolute;\n\tpointer-events: none;\n}\n\n/*# sourceMappingURL=index.css.map */"]}
|
|
1
|
+
{"version":3,"sources":["../theme/clipboard.css","index.css"],"names":[],"mappings":";;;;AAAA,CAAA;ACCA,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ;AAC3E,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;AAClF,CAAC,CDAC;;AAGD,CAAA;ACAD,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC;AAClC,CAAC,CAAC,CDCC;;AACF,CAAA,EAAA,CAAA,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,SAAA,CAAA,IAAA,CAAA,MAAA,CAAA,QAAA,CAAA;ACCD,CAAC,CDAC,OAAA,CAAA,CAAA,MAAe;ACCjB,CAAC,CDAC,QAAA,CAAA,CAAA,QAAkB;ACCpB,CAAC,CDAC,OAAA,CAAA,MAAA,CAAA,CAAA,IAAoB;ACCtB,CDKC;;AAJC,CAAA,EAAA,CAAA,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,SAAA,CAAA,IAAA,CAAA,MAAA,CAAA,QAAA,CAAA,IAAA,CAAA;ACEF,CAAC,CAAC,CDDC,QAAA,CAAA,CAAA,QAAkB;ACErB,CAAC,CAAC,CDDC,KAAA,CAAA,CAAA,CAAQ;ACEX,CAAC,CDDC;;AAGD,CAAA;ACCD,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;AACpD,CAAC,CAAC,CDAC;;AAED,CAAA,EAAA,CAAA,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,CAAA,MAAA,CAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA;ACCF,CAAC,CAAC,CDAC,OAAA,CAAA,CAAA,IAAa;ACChB,CAAC,CDAC;;AAEA,CAAA,EAAA,CAAA,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,CAAA,MAAA,CAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,YAAA,CAAA,MAAA,CAAA;ACCF,CAAC,CAAC,CDAC,OAAA,CAAA,CAAA,IAAa;ACChB,CAAC,CDAC;;AAIF,CAAA,EAAA,CAAA,EAAA,CAAA,SAAA,CAAA,IAAA,CAAA,MAAA,CAAA,IAAA,CAAA;ACDA,CDEC,QAAA,CAAA,CAAA,QAAkB;ACDnB,CDEC,CAAA,CAAA,KAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,OAAA,CAA4B;ACD7B,CDEC,OAAA,CAAA,MAAA,CAAA,CAAA,IAAoB;AACrB;;ACAA,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC","file":"index.css.map","sourcesContent":["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-editor__editable {\n\t/*\n\t * Vertical drop target (in text).\n\t */\n\t& .ck.ck-clipboard-drop-target-position {\n\t\tdisplay: inline;\n\t\tposition: relative;\n\t\tpointer-events: none;\n\n\t\t& span {\n\t\t\tposition: absolute;\n\t\t\twidth: 0;\n\t\t}\n\t}\n\n\t/*\n\t * Styles of the widget being dragged (its preview).\n\t */\n\t& .ck-widget:-webkit-drag {\n\t\t& > .ck-widget__selection-handle {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t& > .ck-widget__type-around {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n\n.ck.ck-clipboard-drop-target-line {\n\tposition: absolute;\n\tz-index: var(--ck-z-default);\n\tpointer-events: none;\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/*\n\t * Vertical drop target (in text).\n\t */\n\n.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position {\n\t\tdisplay: inline;\n\t\tposition: relative;\n\t\tpointer-events: none;\n\t}\n\n.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span {\n\t\t\tposition: absolute;\n\t\t\twidth: 0;\n\t\t}\n\n/*\n\t * Styles of the widget being dragged (its preview).\n\t */\n\n.ck.ck-editor__editable .ck-widget:-webkit-drag > .ck-widget__selection-handle {\n\t\t\tdisplay: none;\n\t\t}\n\n.ck.ck-editor__editable .ck-widget:-webkit-drag > .ck-widget__type-around {\n\t\t\tdisplay: none;\n\t\t}\n\n.ck.ck-clipboard-drop-target-line {\n\tposition: absolute;\n\tz-index: var(--ck-z-default);\n\tpointer-events: none;\n}\n\n/*# sourceMappingURL=index.css.map */"]}
|
package/dist/index.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { Plugin } from '@ckeditor/ckeditor5-core/dist/index.js';
|
|
6
6
|
import { EventInfo, getRangeFromMouseEvent, uid, toUnit, delay, DomEmitterMixin, global, Rect, ResizeObserver, env, createElement } from '@ckeditor/ckeditor5-utils/dist/index.js';
|
|
7
|
-
import { DomEventObserver,
|
|
7
|
+
import { DomEventObserver, ViewDataTransfer, ModelRange, MouseObserver, ModelLiveRange } from '@ckeditor/ckeditor5-engine/dist/index.js';
|
|
8
8
|
import { mapValues, throttle } from 'es-toolkit/compat';
|
|
9
9
|
import { Widget, isWidget } from '@ckeditor/ckeditor5-widget/dist/index.js';
|
|
10
10
|
import { View } from '@ckeditor/ckeditor5-ui/dist/index.js';
|
|
@@ -14,21 +14,21 @@ import { View } from '@ckeditor/ckeditor5-ui/dist/index.js';
|
|
|
14
14
|
*
|
|
15
15
|
* Fires the following events:
|
|
16
16
|
*
|
|
17
|
-
* * {@link module:engine/view/document~
|
|
18
|
-
* * {@link module:engine/view/document~
|
|
19
|
-
* * {@link module:engine/view/document~
|
|
20
|
-
* * {@link module:engine/view/document~
|
|
21
|
-
* * {@link module:engine/view/document~
|
|
22
|
-
* * {@link module:engine/view/document~
|
|
23
|
-
* * {@link module:engine/view/document~
|
|
24
|
-
* * {@link module:engine/view/document~
|
|
25
|
-
* * {@link module:engine/view/document~
|
|
26
|
-
* * {@link module:engine/view/document~
|
|
27
|
-
* * {@link module:engine/view/document~
|
|
17
|
+
* * {@link module:engine/view/document~ViewDocument#event:clipboardInput},
|
|
18
|
+
* * {@link module:engine/view/document~ViewDocument#event:paste},
|
|
19
|
+
* * {@link module:engine/view/document~ViewDocument#event:copy},
|
|
20
|
+
* * {@link module:engine/view/document~ViewDocument#event:cut},
|
|
21
|
+
* * {@link module:engine/view/document~ViewDocument#event:drop},
|
|
22
|
+
* * {@link module:engine/view/document~ViewDocument#event:dragover},
|
|
23
|
+
* * {@link module:engine/view/document~ViewDocument#event:dragging},
|
|
24
|
+
* * {@link module:engine/view/document~ViewDocument#event:dragstart},
|
|
25
|
+
* * {@link module:engine/view/document~ViewDocument#event:dragend},
|
|
26
|
+
* * {@link module:engine/view/document~ViewDocument#event:dragenter},
|
|
27
|
+
* * {@link module:engine/view/document~ViewDocument#event:dragleave}.
|
|
28
28
|
*
|
|
29
29
|
* **Note**: This observer is not available by default (ckeditor5-engine does not add it on its own).
|
|
30
|
-
* To make it available, it needs to be added to {@link module:engine/view/document~
|
|
31
|
-
* the {@link module:engine/view/view~
|
|
30
|
+
* To make it available, it needs to be added to {@link module:engine/view/document~ViewDocument} by using
|
|
31
|
+
* the {@link module:engine/view/view~EditingView#addObserver `View#addObserver()`} method. Alternatively, you can load the
|
|
32
32
|
* {@link module:clipboard/clipboard~Clipboard} plugin which adds this observer automatically (because it uses it).
|
|
33
33
|
*/ class ClipboardObserver extends DomEventObserver {
|
|
34
34
|
domEventType = [
|
|
@@ -81,7 +81,7 @@ import { View } from '@ckeditor/ckeditor5-ui/dist/index.js';
|
|
|
81
81
|
const nativeDataTransfer = 'clipboardData' in domEvent ? domEvent.clipboardData : domEvent.dataTransfer;
|
|
82
82
|
const cacheFiles = domEvent.type == 'drop' || domEvent.type == 'paste';
|
|
83
83
|
const evtData = {
|
|
84
|
-
dataTransfer: new
|
|
84
|
+
dataTransfer: new ViewDataTransfer(nativeDataTransfer, {
|
|
85
85
|
cacheFiles
|
|
86
86
|
})
|
|
87
87
|
};
|
|
@@ -132,6 +132,7 @@ import { View } from '@ckeditor/ckeditor5-ui/dist/index.js';
|
|
|
132
132
|
*
|
|
133
133
|
* @param data The HTML data to normalize.
|
|
134
134
|
* @returns Normalized HTML.
|
|
135
|
+
* @internal
|
|
135
136
|
*/ function normalizeClipboardData(data) {
|
|
136
137
|
return data.replace(/<span(?: class="Apple-converted-space"|)>(\s+)<\/span>/g, (fullMatch, spaces)=>{
|
|
137
138
|
// Handle the most popular and problematic case when even a single space becomes an nbsp;.
|
|
@@ -161,7 +162,7 @@ const listElements = [
|
|
|
161
162
|
'ul'
|
|
162
163
|
];
|
|
163
164
|
/**
|
|
164
|
-
* Converts {@link module:engine/view/item~
|
|
165
|
+
* Converts {@link module:engine/view/item~ViewItem view item} and all of its children to plain text.
|
|
165
166
|
*
|
|
166
167
|
* @param converter The converter instance.
|
|
167
168
|
* @param viewItem View item to convert.
|
|
@@ -220,7 +221,7 @@ const listElements = [
|
|
|
220
221
|
}
|
|
221
222
|
if (listElements.includes(element.name) && listElements.includes(previous.name)) {
|
|
222
223
|
/**
|
|
223
|
-
* Because `<ul>` and `<ol>` are
|
|
224
|
+
* Because `<ul>` and `<ol>` are ViewAttributeElements, two consecutive lists will not have any padding between
|
|
224
225
|
* them (see the `if` statement below). To fix this, we need to make an exception for this case.
|
|
225
226
|
*/ return '\n\n';
|
|
226
227
|
}
|
|
@@ -623,7 +624,7 @@ const listElements = [
|
|
|
623
624
|
// We have to remove `fake-marker-start` firstly and then remove `fake-marker-2-start`.
|
|
624
625
|
// Removal of `fake-marker-2-start` affects `fake-marker-end` position so we cannot create
|
|
625
626
|
// connection between `fake-marker-start` and `fake-marker-end` without iterating whole set firstly.
|
|
626
|
-
return mapValues(fakeMarkersRanges, (range)=>new
|
|
627
|
+
return mapValues(fakeMarkersRanges, (range)=>new ModelRange(range.start || writer.createPositionFromPath(rootElement, [
|
|
627
628
|
0
|
|
628
629
|
]), range.end || writer.createPositionAt(rootElement, 'end')));
|
|
629
630
|
}
|
|
@@ -767,7 +768,7 @@ const listElements = [
|
|
|
767
768
|
* ## Event: `paste` or `drop`
|
|
768
769
|
*
|
|
769
770
|
* 1. Translates the event data.
|
|
770
|
-
* 2. Fires the {@link module:engine/view/document~
|
|
771
|
+
* 2. Fires the {@link module:engine/view/document~ViewDocument#event:clipboardInput `view.Document#clipboardInput`} event.
|
|
771
772
|
*
|
|
772
773
|
* ## Event: `view.Document#clipboardInput`
|
|
773
774
|
*
|
|
@@ -775,15 +776,15 @@ const listElements = [
|
|
|
775
776
|
* from the last point.
|
|
776
777
|
* 2. Otherwise, it retrieves `text/html` or `text/plain` from `data.dataTransfer`.
|
|
777
778
|
* 3. Normalizes the raw data by applying simple filters on string data.
|
|
778
|
-
* 4. Processes the raw data to {@link module:engine/view/documentfragment~
|
|
779
|
+
* 4. Processes the raw data to {@link module:engine/view/documentfragment~ViewDocumentFragment `view.DocumentFragment`} with the
|
|
779
780
|
* {@link module:engine/controller/datacontroller~DataController#htmlProcessor `DataController#htmlProcessor`}.
|
|
780
781
|
* 5. Fires the {@link module:clipboard/clipboardpipeline~ClipboardPipeline#event:inputTransformation
|
|
781
782
|
* `ClipboardPipeline#inputTransformation`} event with the view document fragment in the `data.content` event field.
|
|
782
783
|
*
|
|
783
784
|
* ## Event: `ClipboardPipeline#inputTransformation`
|
|
784
785
|
*
|
|
785
|
-
* 1. Converts {@link module:engine/view/documentfragment~
|
|
786
|
-
* {@link module:engine/model/documentfragment~
|
|
786
|
+
* 1. Converts {@link module:engine/view/documentfragment~ViewDocumentFragment `view.DocumentFragment`} from the `data.content` field to
|
|
787
|
+
* {@link module:engine/model/documentfragment~ModelDocumentFragment `model.DocumentFragment`}.
|
|
787
788
|
* 2. Fires the {@link module:clipboard/clipboardpipeline~ClipboardPipeline#event:contentInsertion `ClipboardPipeline#contentInsertion`}
|
|
788
789
|
* event with the model document fragment in the `data.content` event field.
|
|
789
790
|
* **Note**: The `ClipboardPipeline#contentInsertion` event is fired within a model change block to allow other handlers
|
|
@@ -800,10 +801,10 @@ const listElements = [
|
|
|
800
801
|
*
|
|
801
802
|
* ## Event: `copy`, `cut` or `dragstart`
|
|
802
803
|
*
|
|
803
|
-
* 1. Retrieves the selected {@link module:engine/model/documentfragment~
|
|
804
|
+
* 1. Retrieves the selected {@link module:engine/model/documentfragment~ModelDocumentFragment `model.DocumentFragment`} by calling
|
|
804
805
|
* {@link module:engine/model/model~Model#getSelectedContent `model#getSelectedContent()`}.
|
|
805
|
-
* 2. Converts the model document fragment to {@link module:engine/view/documentfragment~
|
|
806
|
-
* 3. Fires the {@link module:engine/view/document~
|
|
806
|
+
* 2. Converts the model document fragment to {@link module:engine/view/documentfragment~ViewDocumentFragment `view.DocumentFragment`}.
|
|
807
|
+
* 3. Fires the {@link module:engine/view/document~ViewDocument#event:clipboardOutput `view.Document#clipboardOutput`} event
|
|
807
808
|
* with the view document fragment in the `data.content` event field.
|
|
808
809
|
*
|
|
809
810
|
* ## Event: `view.Document#clipboardOutput`
|
|
@@ -999,6 +1000,8 @@ const listElements = [
|
|
|
999
1000
|
const toPx = /* #__PURE__ */ toUnit('px');
|
|
1000
1001
|
/**
|
|
1001
1002
|
* The horizontal drop target line view.
|
|
1003
|
+
*
|
|
1004
|
+
* @internal
|
|
1002
1005
|
*/ class LineView extends View {
|
|
1003
1006
|
/**
|
|
1004
1007
|
* @inheritDoc
|
|
@@ -1925,7 +1928,7 @@ const toPx = /* #__PURE__ */ toUnit('px');
|
|
|
1925
1928
|
const draggableWidget = target ? findDraggableWidget(target) : null;
|
|
1926
1929
|
if (draggableWidget) {
|
|
1927
1930
|
const modelElement = editor.editing.mapper.toModelElement(draggableWidget);
|
|
1928
|
-
this._draggedRange =
|
|
1931
|
+
this._draggedRange = ModelLiveRange.fromRange(model.createRangeOn(modelElement));
|
|
1929
1932
|
this._blockMode = model.schema.isBlock(modelElement);
|
|
1930
1933
|
// Disable toolbars so they won't obscure the drop area.
|
|
1931
1934
|
if (editor.plugins.has('WidgetToolbarRepository')) {
|
|
@@ -1941,17 +1944,17 @@ const toPx = /* #__PURE__ */ toUnit('px');
|
|
|
1941
1944
|
const blocks = Array.from(selection.getSelectedBlocks());
|
|
1942
1945
|
const draggedRange = selection.getFirstRange();
|
|
1943
1946
|
if (blocks.length == 0) {
|
|
1944
|
-
this._draggedRange =
|
|
1947
|
+
this._draggedRange = ModelLiveRange.fromRange(draggedRange);
|
|
1945
1948
|
return;
|
|
1946
1949
|
}
|
|
1947
1950
|
const blockRange = getRangeIncludingFullySelectedParents(model, blocks);
|
|
1948
1951
|
if (blocks.length > 1) {
|
|
1949
|
-
this._draggedRange =
|
|
1952
|
+
this._draggedRange = ModelLiveRange.fromRange(blockRange);
|
|
1950
1953
|
this._blockMode = true;
|
|
1951
1954
|
// TODO block mode for dragging from outside editor? or inline? or both?
|
|
1952
1955
|
} else if (blocks.length == 1) {
|
|
1953
1956
|
const touchesBlockEdges = draggedRange.start.isTouching(blockRange.start) && draggedRange.end.isTouching(blockRange.end);
|
|
1954
|
-
this._draggedRange =
|
|
1957
|
+
this._draggedRange = ModelLiveRange.fromRange(touchesBlockEdges ? blockRange : draggedRange);
|
|
1955
1958
|
this._blockMode = touchesBlockEdges;
|
|
1956
1959
|
}
|
|
1957
1960
|
model.change((writer)=>writer.setSelection(this._draggedRange.toRange()));
|
|
@@ -2206,5 +2209,5 @@ const toPx = /* #__PURE__ */ toUnit('px');
|
|
|
2206
2209
|
}
|
|
2207
2210
|
}
|
|
2208
2211
|
|
|
2209
|
-
export { Clipboard, ClipboardMarkersUtils, ClipboardObserver, ClipboardPipeline, DragDrop, DragDropBlockToolbar, DragDropTarget, PastePlainText, plainTextToHtml, viewToPlainText };
|
|
2212
|
+
export { Clipboard, ClipboardMarkersUtils, ClipboardObserver, ClipboardPipeline, DragDrop, DragDropBlockToolbar, DragDropTarget, PastePlainText, LineView as _ClipboardLineView, DragDrop as _DragDrop, DragDropBlockToolbar as _DragDropBlockToolbar, DragDropTarget as _DragDropTarget, normalizeClipboardData as _normalizeClipboardData, plainTextToHtml, viewToPlainText };
|
|
2210
2213
|
//# sourceMappingURL=index.js.map
|