@ckeditor/ckeditor5-clipboard 35.2.1 → 35.3.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ckeditor/ckeditor5-clipboard",
3
- "version": "35.2.1",
3
+ "version": "35.3.1",
4
4
  "description": "Clipboard integration feature for CKEditor 5.",
5
5
  "keywords": [
6
6
  "ckeditor",
@@ -12,30 +12,33 @@
12
12
  ],
13
13
  "main": "src/index.js",
14
14
  "dependencies": {
15
- "@ckeditor/ckeditor5-core": "^35.2.1",
16
- "@ckeditor/ckeditor5-engine": "^35.2.1",
17
- "@ckeditor/ckeditor5-utils": "^35.2.1",
18
- "@ckeditor/ckeditor5-widget": "^35.2.1",
15
+ "@ckeditor/ckeditor5-core": "^35.3.1",
16
+ "@ckeditor/ckeditor5-engine": "^35.3.1",
17
+ "@ckeditor/ckeditor5-utils": "^35.3.1",
18
+ "@ckeditor/ckeditor5-widget": "^35.3.1",
19
19
  "lodash-es": "^4.17.11"
20
20
  },
21
21
  "devDependencies": {
22
- "@ckeditor/ckeditor5-alignment": "^35.2.1",
23
- "@ckeditor/ckeditor5-basic-styles": "^35.2.1",
24
- "@ckeditor/ckeditor5-block-quote": "^35.2.1",
25
- "@ckeditor/ckeditor5-cloud-services": "^35.2.1",
26
- "@ckeditor/ckeditor5-code-block": "^35.2.1",
27
- "@ckeditor/ckeditor5-easy-image": "^35.2.1",
28
- "@ckeditor/ckeditor5-editor-classic": "^35.2.1",
29
- "@ckeditor/ckeditor5-enter": "^35.2.1",
30
- "@ckeditor/ckeditor5-horizontal-line": "^35.2.1",
31
- "@ckeditor/ckeditor5-image": "^35.2.1",
32
- "@ckeditor/ckeditor5-link": "^35.2.1",
33
- "@ckeditor/ckeditor5-page-break": "^35.2.1",
34
- "@ckeditor/ckeditor5-paragraph": "^35.2.1",
35
- "@ckeditor/ckeditor5-paste-from-office": "^35.2.1",
36
- "@ckeditor/ckeditor5-remove-format": "^35.2.1",
37
- "@ckeditor/ckeditor5-table": "^35.2.1",
38
- "@ckeditor/ckeditor5-typing": "^35.2.1"
22
+ "@ckeditor/ckeditor5-alignment": "^35.3.1",
23
+ "@ckeditor/ckeditor5-basic-styles": "^35.3.1",
24
+ "@ckeditor/ckeditor5-block-quote": "^35.3.1",
25
+ "@ckeditor/ckeditor5-cloud-services": "^35.3.1",
26
+ "@ckeditor/ckeditor5-code-block": "^35.3.1",
27
+ "@ckeditor/ckeditor5-easy-image": "^35.3.1",
28
+ "@ckeditor/ckeditor5-editor-classic": "^35.3.1",
29
+ "@ckeditor/ckeditor5-enter": "^35.3.1",
30
+ "@ckeditor/ckeditor5-horizontal-line": "^35.3.1",
31
+ "@ckeditor/ckeditor5-image": "^35.3.1",
32
+ "@ckeditor/ckeditor5-link": "^35.3.1",
33
+ "@ckeditor/ckeditor5-page-break": "^35.3.1",
34
+ "@ckeditor/ckeditor5-paragraph": "^35.3.1",
35
+ "@ckeditor/ckeditor5-paste-from-office": "^35.3.1",
36
+ "@ckeditor/ckeditor5-remove-format": "^35.3.1",
37
+ "@ckeditor/ckeditor5-table": "^35.3.1",
38
+ "@ckeditor/ckeditor5-typing": "^35.3.1",
39
+ "typescript": "^4.8.4",
40
+ "webpack": "^5.58.1",
41
+ "webpack-cli": "^4.9.0"
39
42
  },
40
43
  "engines": {
41
44
  "node": ">=14.0.0",
@@ -52,9 +55,14 @@
52
55
  },
53
56
  "files": [
54
57
  "lang",
55
- "src",
58
+ "src/**/*.js",
59
+ "src/**/*.d.ts",
56
60
  "theme",
57
61
  "ckeditor5-metadata.json",
58
62
  "CHANGELOG.md"
59
- ]
63
+ ],
64
+ "scripts": {
65
+ "build": "tsc -p ./tsconfig.release.json",
66
+ "postversion": "npm run build"
67
+ }
60
68
  }
package/src/clipboard.js CHANGED
@@ -2,17 +2,13 @@
2
2
  * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
-
6
5
  /**
7
6
  * @module clipboard/clipboard
8
7
  */
9
-
10
8
  import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
11
-
12
9
  import ClipboardPipeline from './clipboardpipeline';
13
10
  import DragDrop from './dragdrop';
14
11
  import PastePlainText from './pasteplaintext';
15
-
16
12
  /**
17
13
  * The clipboard feature.
18
14
  *
@@ -26,17 +22,16 @@ import PastePlainText from './pasteplaintext';
26
22
  * @extends module:core/plugin~Plugin
27
23
  */
28
24
  export default class Clipboard extends Plugin {
29
- /**
30
- * @inheritDoc
31
- */
32
- static get pluginName() {
33
- return 'Clipboard';
34
- }
35
-
36
- /**
37
- * @inheritDoc
38
- */
39
- static get requires() {
40
- return [ ClipboardPipeline, DragDrop, PastePlainText ];
41
- }
25
+ /**
26
+ * @inheritDoc
27
+ */
28
+ static get pluginName() {
29
+ return 'Clipboard';
30
+ }
31
+ /**
32
+ * @inheritDoc
33
+ */
34
+ static get requires() {
35
+ return [ClipboardPipeline, DragDrop, PastePlainText];
36
+ }
42
37
  }
@@ -2,15 +2,12 @@
2
2
  * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
-
6
5
  /**
7
6
  * @module clipboard/clipboardobserver
8
7
  */
9
-
10
8
  import DomEventObserver from '@ckeditor/ckeditor5-engine/src/view/observer/domeventobserver';
11
9
  import EventInfo from '@ckeditor/ckeditor5-utils/src/eventinfo';
12
- import DataTransfer from './datatransfer';
13
-
10
+ import DataTransfer from '@ckeditor/ckeditor5-engine/src/view/datatransfer';
14
11
  /**
15
12
  * Clipboard events observer.
16
13
  *
@@ -36,78 +33,63 @@ import DataTransfer from './datatransfer';
36
33
  * @extends module:engine/view/observer/domeventobserver~DomEventObserver
37
34
  */
38
35
  export default class ClipboardObserver extends DomEventObserver {
39
- constructor( view ) {
40
- super( view );
41
-
42
- const viewDocument = this.document;
43
-
44
- this.domEventType = [ 'paste', 'copy', 'cut', 'drop', 'dragover', 'dragstart', 'dragend', 'dragenter', 'dragleave' ];
45
-
46
- this.listenTo( viewDocument, 'paste', handleInput( 'clipboardInput' ), { priority: 'low' } );
47
- this.listenTo( viewDocument, 'drop', handleInput( 'clipboardInput' ), { priority: 'low' } );
48
- this.listenTo( viewDocument, 'dragover', handleInput( 'dragging' ), { priority: 'low' } );
49
-
50
- function handleInput( type ) {
51
- return ( evt, data ) => {
52
- data.preventDefault();
53
-
54
- const targetRanges = data.dropRange ? [ data.dropRange ] : null;
55
- const eventInfo = new EventInfo( viewDocument, type );
56
-
57
- viewDocument.fire( eventInfo, {
58
- dataTransfer: data.dataTransfer,
59
- method: evt.name,
60
- targetRanges,
61
- target: data.target
62
- } );
63
-
64
- // If CKEditor handled the input, do not bubble the original event any further.
65
- // This helps external integrations recognize that fact and act accordingly.
66
- // https://github.com/ckeditor/ckeditor5-upload/issues/92
67
- if ( eventInfo.stop.called ) {
68
- data.stopPropagation();
69
- }
70
- };
71
- }
72
- }
73
-
74
- onDomEvent( domEvent ) {
75
- const evtData = {
76
- dataTransfer: new DataTransfer( domEvent.clipboardData ? domEvent.clipboardData : domEvent.dataTransfer )
77
- };
78
-
79
- if ( domEvent.type == 'drop' || domEvent.type == 'dragover' ) {
80
- evtData.dropRange = getDropViewRange( this.view, domEvent );
81
- }
82
-
83
- this.fire( domEvent.type, domEvent, evtData );
84
- }
36
+ constructor(view) {
37
+ super(view);
38
+ const viewDocument = this.document;
39
+ this.domEventType = ['paste', 'copy', 'cut', 'drop', 'dragover', 'dragstart', 'dragend', 'dragenter', 'dragleave'];
40
+ this.listenTo(viewDocument, 'paste', handleInput('clipboardInput'), { priority: 'low' });
41
+ this.listenTo(viewDocument, 'drop', handleInput('clipboardInput'), { priority: 'low' });
42
+ this.listenTo(viewDocument, 'dragover', handleInput('dragging'), { priority: 'low' });
43
+ function handleInput(type) {
44
+ return (evt, data) => {
45
+ data.preventDefault();
46
+ const targetRanges = data.dropRange ? [data.dropRange] : null;
47
+ const eventInfo = new EventInfo(viewDocument, type);
48
+ viewDocument.fire(eventInfo, {
49
+ dataTransfer: data.dataTransfer,
50
+ method: evt.name,
51
+ targetRanges,
52
+ target: data.target
53
+ });
54
+ // If CKEditor handled the input, do not bubble the original event any further.
55
+ // This helps external integrations recognize that fact and act accordingly.
56
+ // https://github.com/ckeditor/ckeditor5-upload/issues/92
57
+ if (eventInfo.stop.called) {
58
+ data.stopPropagation();
59
+ }
60
+ };
61
+ }
62
+ }
63
+ onDomEvent(domEvent) {
64
+ const evtData = {
65
+ dataTransfer: new DataTransfer('clipboardData' in domEvent ? domEvent.clipboardData : domEvent.dataTransfer)
66
+ };
67
+ if (domEvent.type == 'drop' || domEvent.type == 'dragover') {
68
+ evtData.dropRange = getDropViewRange(this.view, domEvent);
69
+ }
70
+ this.fire(domEvent.type, domEvent, evtData);
71
+ }
85
72
  }
86
-
87
- function getDropViewRange( view, domEvent ) {
88
- const domDoc = domEvent.target.ownerDocument;
89
- const x = domEvent.clientX;
90
- const y = domEvent.clientY;
91
- let domRange;
92
-
93
- // Webkit & Blink.
94
- if ( domDoc.caretRangeFromPoint && domDoc.caretRangeFromPoint( x, y ) ) {
95
- domRange = domDoc.caretRangeFromPoint( x, y );
96
- }
97
- // FF.
98
- else if ( domEvent.rangeParent ) {
99
- domRange = domDoc.createRange();
100
- domRange.setStart( domEvent.rangeParent, domEvent.rangeOffset );
101
- domRange.collapse( true );
102
- }
103
-
104
- if ( domRange ) {
105
- return view.domConverter.domRangeToView( domRange );
106
- }
107
-
108
- return null;
73
+ function getDropViewRange(view, domEvent) {
74
+ const domDoc = domEvent.target.ownerDocument;
75
+ const x = domEvent.clientX;
76
+ const y = domEvent.clientY;
77
+ let domRange;
78
+ // Webkit & Blink.
79
+ if (domDoc.caretRangeFromPoint && domDoc.caretRangeFromPoint(x, y)) {
80
+ domRange = domDoc.caretRangeFromPoint(x, y);
81
+ }
82
+ // FF.
83
+ else if (domEvent.rangeParent) {
84
+ domRange = domDoc.createRange();
85
+ domRange.setStart(domEvent.rangeParent, domEvent.rangeOffset);
86
+ domRange.collapse(true);
87
+ }
88
+ if (domRange) {
89
+ return view.domConverter.domRangeToView(domRange);
90
+ }
91
+ return null;
109
92
  }
110
-
111
93
  /**
112
94
  * Fired as a continuation of the {@link #event:paste} and {@link #event:drop} events.
113
95
  *
@@ -125,7 +107,7 @@ function getDropViewRange( view, domEvent ) {
125
107
  * @see module:clipboard/clipboard~Clipboard
126
108
  * @event module:engine/view/document~Document#event:clipboardInput
127
109
  * @param {Object} data The event data.
128
- * @param {module:clipboard/datatransfer~DataTransfer} data.dataTransfer The data transfer instance.
110
+ * @param {module:engine/view/datatransfer~DataTransfer} data.dataTransfer Data transfer instance.
129
111
  * @param {'paste'|'drop'} method Whether the event was triggered by a paste or drop operation.
130
112
  * @param {module:engine/view/element~Element} target The tree view element representing the target.
131
113
  * @param {Array.<module:engine/view/range~Range>} data.targetRanges Ranges which are the target of the operation
@@ -133,7 +115,6 @@ function getDropViewRange( view, domEvent ) {
133
115
  * If the clipboard input was triggered by a paste operation, this property is not set. If by a drop operation,
134
116
  * then it is the drop position (which can be different than the selection at the moment of drop).
135
117
  */
136
-
137
118
  /**
138
119
  * Fired when the user drags the content over one of the editing roots of the editor.
139
120
  *
@@ -148,7 +129,6 @@ function getDropViewRange( view, domEvent ) {
148
129
  * @event module:engine/view/document~Document#event:dragover
149
130
  * @param {module:clipboard/clipboardobserver~ClipboardEventData} data The event data.
150
131
  */
151
-
152
132
  /**
153
133
  * Fired when the user dropped the content into one of the editing roots of the editor.
154
134
  *
@@ -164,7 +144,6 @@ function getDropViewRange( view, domEvent ) {
164
144
  * @param {module:clipboard/clipboardobserver~ClipboardEventData} data The event data.
165
145
  * @param {module:engine/view/range~Range} dropRange The position into which the content is dropped.
166
146
  */
167
-
168
147
  /**
169
148
  * Fired when the user pasted the content into one of the editing roots of the editor.
170
149
  *
@@ -179,7 +158,6 @@ function getDropViewRange( view, domEvent ) {
179
158
  * @event module:engine/view/document~Document#event:paste
180
159
  * @param {module:clipboard/clipboardobserver~ClipboardEventData} data The event data.
181
160
  */
182
-
183
161
  /**
184
162
  * Fired when the user copied the content from one of the editing roots of the editor.
185
163
  *
@@ -194,7 +172,6 @@ function getDropViewRange( view, domEvent ) {
194
172
  * @event module:engine/view/document~Document#event:copy
195
173
  * @param {module:clipboard/clipboardobserver~ClipboardEventData} data The event data.
196
174
  */
197
-
198
175
  /**
199
176
  * Fired when the user cut the content from one of the editing roots of the editor.
200
177
  *
@@ -209,7 +186,6 @@ function getDropViewRange( view, domEvent ) {
209
186
  * @event module:engine/view/document~Document#event:cut
210
187
  * @param {module:clipboard/clipboardobserver~ClipboardEventData} data The event data.
211
188
  */
212
-
213
189
  /**
214
190
  * The value of the {@link module:engine/view/document~Document#event:paste},
215
191
  * {@link module:engine/view/document~Document#event:copy} and {@link module:engine/view/document~Document#event:cut} events.
@@ -219,14 +195,12 @@ function getDropViewRange( view, domEvent ) {
219
195
  * @class module:clipboard/clipboardobserver~ClipboardEventData
220
196
  * @extends module:engine/view/observer/domeventdata~DomEventData
221
197
  */
222
-
223
198
  /**
224
199
  * The data transfer instance.
225
200
  *
226
201
  * @readonly
227
- * @member {module:clipboard/datatransfer~DataTransfer} module:clipboard/clipboardobserver~ClipboardEventData#dataTransfer
202
+ * @member {module:engine/view/datatransfer~DataTransfer} module:clipboard/clipboardobserver~ClipboardEventData#dataTransfer
228
203
  */
229
-
230
204
  /**
231
205
  * Fired as a continuation of the {@link #event:dragover} event.
232
206
  *
@@ -244,13 +218,12 @@ function getDropViewRange( view, domEvent ) {
244
218
  * @see module:clipboard/clipboard~Clipboard
245
219
  * @event module:engine/view/document~Document#event:dragging
246
220
  * @param {Object} data The event data.
247
- * @param {module:clipboard/datatransfer~DataTransfer} data.dataTransfer The data transfer instance.
221
+ * @param {module:engine/view/datatransfer~DataTransfer} data.dataTransfer The data transfer instance.
248
222
  * @param {module:engine/view/element~Element} target The tree view element representing the target.
249
223
  * @param {Array.<module:engine/view/range~Range>} data.targetRanges Ranges which are the target of the operation
250
224
  * (usually – into which the content should be inserted).
251
225
  * It is the drop position (which can be different than the selection at the moment of drop).
252
226
  */
253
-
254
227
  /**
255
228
  * Fired when the user starts dragging the content in one of the editing roots of the editor.
256
229
  *
@@ -265,7 +238,6 @@ function getDropViewRange( view, domEvent ) {
265
238
  * @event module:engine/view/document~Document#event:dragstart
266
239
  * @param {module:clipboard/clipboardobserver~ClipboardEventData} data The event data.
267
240
  */
268
-
269
241
  /**
270
242
  * Fired when the user ended dragging the content.
271
243
  *
@@ -280,7 +252,6 @@ function getDropViewRange( view, domEvent ) {
280
252
  * @event module:engine/view/document~Document#event:dragend
281
253
  * @param {module:clipboard/clipboardobserver~ClipboardEventData} data The event data.
282
254
  */
283
-
284
255
  /**
285
256
  * Fired when the user drags the content into one of the editing roots of the editor.
286
257
  *
@@ -295,7 +266,6 @@ function getDropViewRange( view, domEvent ) {
295
266
  * @event module:engine/view/document~Document#event:dragenter
296
267
  * @param {module:clipboard/clipboardobserver~ClipboardEventData} data The event data.
297
268
  */
298
-
299
269
  /**
300
270
  * Fired when the user drags the content out of one of the editing roots of the editor.
301
271
  *