10
10
import Plugin from '@ckeditor/ckeditor5-core/src/plugin' ;
11
11
import FileRepository from '@ckeditor/ckeditor5-upload/src/filerepository' ;
12
12
import Notification from '@ckeditor/ckeditor5-ui/src/notification/notification' ;
13
+ import Clipboard from '@ckeditor/ckeditor5-clipboard/src/clipboard' ;
13
14
import UpcastWriter from '@ckeditor/ckeditor5-engine/src/view/upcastwriter' ;
14
15
import env from '@ckeditor/ckeditor5-utils/src/env' ;
15
16
@@ -27,7 +28,7 @@ export default class ImageUploadEditing extends Plugin {
27
28
* @inheritDoc
28
29
*/
29
30
static get requires ( ) {
30
- return [ FileRepository , Notification ] ;
31
+ return [ FileRepository , Notification , Clipboard ] ;
31
32
}
32
33
33
34
static get pluginName ( ) {
@@ -118,31 +119,29 @@ export default class ImageUploadEditing extends Plugin {
118
119
// For every image file, a new file loader is created and a placeholder image is
119
120
// inserted into the content. Then, those images are uploaded once they appear in the model
120
121
// (see Document#change listener below).
121
- if ( editor . plugins . has ( 'Clipboard' ) ) {
122
- this . listenTo ( editor . plugins . get ( 'Clipboard' ) , 'inputTransformation' , ( evt , data ) => {
123
- const fetchableImages = Array . from ( editor . editing . view . createRangeIn ( data . content ) )
124
- . filter ( value => isLocalImage ( value . item ) && ! value . item . getAttribute ( 'uploadProcessed' ) )
125
- . map ( value => { return { promise : fetchLocalImage ( value . item ) , imageElement : value . item } ; } ) ;
126
-
127
- if ( ! fetchableImages . length ) {
128
- return ;
129
- }
122
+ this . listenTo ( editor . plugins . get ( Clipboard ) , 'inputTransformation' , ( evt , data ) => {
123
+ const fetchableImages = Array . from ( editor . editing . view . createRangeIn ( data . content ) )
124
+ . filter ( value => isLocalImage ( value . item ) && ! value . item . getAttribute ( 'uploadProcessed' ) )
125
+ . map ( value => { return { promise : fetchLocalImage ( value . item ) , imageElement : value . item } ; } ) ;
130
126
131
- const writer = new UpcastWriter ( ) ;
127
+ if ( ! fetchableImages . length ) {
128
+ return ;
129
+ }
132
130
133
- for ( const fetchableImage of fetchableImages ) {
134
- // Set attribute marking that the image was processed already.
135
- writer . setAttribute ( 'uploadProcessed' , true , fetchableImage . imageElement ) ;
131
+ const writer = new UpcastWriter ( ) ;
136
132
137
- const loader = fileRepository . createLoader ( fetchableImage . promise ) ;
133
+ for ( const fetchableImage of fetchableImages ) {
134
+ // Set attribute marking that the image was processed already.
135
+ writer . setAttribute ( 'uploadProcessed' , true , fetchableImage . imageElement ) ;
138
136
139
- if ( loader ) {
140
- writer . setAttribute ( 'src' , '' , fetchableImage . imageElement ) ;
141
- writer . setAttribute ( 'uploadId' , loader . id , fetchableImage . imageElement ) ;
142
- }
137
+ const loader = fileRepository . createLoader ( fetchableImage . promise ) ;
138
+
139
+ if ( loader ) {
140
+ writer . setAttribute ( 'src' , '' , fetchableImage . imageElement ) ;
141
+ writer . setAttribute ( 'uploadId' , loader . id , fetchableImage . imageElement ) ;
143
142
}
144
- } ) ;
145
- }
143
+ }
144
+ } ) ;
146
145
147
146
// Prevents from the browser redirecting to the dropped image.
148
147
editor . editing . view . document . on ( 'dragover' , ( evt , data ) => {
0 commit comments