/**
* @license Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md.
*/
'use strict';
import EditingController from '/ckeditor5/engine/editingcontroller.js';
import Document from '/ckeditor5/engine/model/document.js';
import ModelPosition from '/ckeditor5/engine/model/position.js';
import ModelRange from '/ckeditor5/engine/model/range.js';
import ModelDocumentFragment from '/ckeditor5/engine/model/documentfragment.js';
import { parse } from '/tests/engine/_utils/model.js';
import BuildModelConverterFor from '/ckeditor5/engine/conversion/model-converter-builder.js';
const model = new Document();
window.model = model;
const modelRoot = model.createRoot();
const editing = new EditingController( model );
editing.createRoot( document.getElementById( 'editor' ) );
model.schema.registerItem( 'paragraph', '$block' );
BuildModelConverterFor( editing.modelToView ).fromElement( 'paragraph' ).toElement( 'p' );
const modelData = new ModelDocumentFragment( parse(
'foo' +
'' +
'bar'
)._children );
model.enqueueChanges( () => {
model.batch().insert( ModelPosition.createAt( modelRoot, 0 ), modelData );
model.selection.addRange( ModelRange.createFromParentsAndOffsets(
modelRoot.getChild( 0 ), 0, modelRoot.getChild( 0 ), 0 ) );
} );
// enter
editing.view.on( 'keydown', ( evt, data ) => {
if ( data.keyCode == 13 ) {
model.enqueueChanges( () => {
model.batch().split( model.selection.getFirstPosition() );
} );
}
} );
// delete
editing.view.on( 'keydown', ( evt, data ) => {
if ( data.keyCode == 46 ) {
model.enqueueChanges( () => {
model.batch().remove( ModelRange.createFromPositionAndShift( model.selection.getFirstPosition(), 1 ) );
} );
}
} );