|
|
@@ -12,7 +12,6 @@ import ContextualToolbar from '../../../../src/toolbar/contextual/contextualtool
|
|
|
import Element from '@ckeditor/ckeditor5-engine/src/model/element';
|
|
|
import Text from '@ckeditor/ckeditor5-engine/src/model/text';
|
|
|
import Position from '@ckeditor/ckeditor5-engine/src/model/position';
|
|
|
-import Range from '@ckeditor/ckeditor5-engine/src/model/range';
|
|
|
|
|
|
// Editor for the ContextualToolbar plugin.
|
|
|
ClassicEditor.create( document.querySelector( '#editor-ct' ), {
|
|
|
@@ -45,19 +44,18 @@ ClassicEditor.create( document.querySelector( '#editor-image-toolbar' ), {
|
|
|
}
|
|
|
} )
|
|
|
.then( editor => {
|
|
|
- initExternalChangesHandler( editor, document.querySelector( '#button-image-toolbar' ), [ [ 7 ], 1 ] );
|
|
|
+ initExternalChangesHandler( editor, document.querySelector( '#button-image-toolbar' ) );
|
|
|
} )
|
|
|
.catch( err => console.error( err.stack ) );
|
|
|
|
|
|
-// Handles button click and starts external changes for the specified editor.
|
|
|
-function initExternalChangesHandler( editor, element, deleteData ) {
|
|
|
+export function initExternalChangesHandler( editor, element ) {
|
|
|
element.addEventListener( 'click', () => {
|
|
|
element.disabled = true;
|
|
|
- startExternalChanges( editor, deleteData );
|
|
|
+ startExternalChanges( editor );
|
|
|
} );
|
|
|
}
|
|
|
|
|
|
-function startExternalChanges( editor, deleteData = [ [ 4, 180 ], 35 ] ) {
|
|
|
+function startExternalChanges( editor ) {
|
|
|
const document = editor.document;
|
|
|
const bath = document.batch( 'transparent' );
|
|
|
|
|
|
@@ -95,22 +93,13 @@ function startExternalChanges( editor, deleteData = [ [ 4, 180 ], 35 ] ) {
|
|
|
}
|
|
|
|
|
|
function insertNewLine( path ) {
|
|
|
- return wait( 200 ).then( () => {
|
|
|
- document.enqueueChanges( () => {
|
|
|
- bath.insert( new Position( document.getRoot(), path ), new Element( 'paragraph' ) );
|
|
|
- } );
|
|
|
-
|
|
|
- return Promise.resolve();
|
|
|
- } );
|
|
|
- }
|
|
|
-
|
|
|
- function removeText( path, howMany ) {
|
|
|
- return wait( 200 ).then( () => {
|
|
|
- document.enqueueChanges( () => {
|
|
|
- bath.remove( Range.createFromPositionAndShift( new Position( document.getRoot(), path ), howMany ) );
|
|
|
- } );
|
|
|
-
|
|
|
- return Promise.resolve();
|
|
|
+ return new Promise( ( resolve ) => {
|
|
|
+ setTimeout( () => {
|
|
|
+ document.enqueueChanges( () => {
|
|
|
+ bath.insert( new Position( document.getRoot(), path ), new Element( 'paragraph' ) );
|
|
|
+ resolve();
|
|
|
+ } );
|
|
|
+ }, 200 );
|
|
|
} );
|
|
|
}
|
|
|
|
|
|
@@ -123,6 +112,5 @@ function startExternalChanges( editor, deleteData = [ [ 4, 180 ], 35 ] ) {
|
|
|
.then( () => insertNewLine( [ 2 ] ) )
|
|
|
.then( () => type( [ 2, 0 ], 'c' ) )
|
|
|
.then( () => insertNewLine( [ 0 ] ) )
|
|
|
- .then( () => type( [ 0, 0 ], 'DONE :)' ) )
|
|
|
- .then( () => removeText( deleteData[ 0 ], deleteData[ 1 ] ) );
|
|
|
+ .then( () => type( [ 0, 0 ], 'DONE :)' ) );
|
|
|
}
|