| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- /**
- * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
- */
- /**
- * @module typing/delete
- */
- import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
- import DeleteCommand from './deletecommand';
- import DeleteObserver from './deleteobserver';
- import injectAndroidBackspaceMutationsHandling from './utils/injectandroidbackspacemutationshandling';
- /**
- * The delete and backspace feature. Handles the <kbd>Delete</kbd> and <kbd>Backspace</kbd> keys in the editor.
- *
- * @extends module:core/plugin~Plugin
- */
- export default class Delete extends Plugin {
- /**
- * @inheritDoc
- */
- static get pluginName() {
- return 'Delete';
- }
- init() {
- const editor = this.editor;
- const view = editor.editing.view;
- const viewDocument = view.document;
- view.addObserver( DeleteObserver );
- editor.commands.add( 'forwardDelete', new DeleteCommand( editor, 'forward' ) );
- editor.commands.add( 'delete', new DeleteCommand( editor, 'backward' ) );
- this.listenTo( viewDocument, 'delete', ( evt, data ) => {
- editor.execute( data.direction == 'forward' ? 'forwardDelete' : 'delete', { unit: data.unit, sequence: data.sequence } );
- data.preventDefault();
- view.scrollToTheSelection();
- } );
- injectAndroidBackspaceMutationsHandling( editor );
- }
- }
|