8
0

typing.js 980 B

12345678910111213141516171819202122232425262728293031323334
  1. /**
  2. * @license Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
  3. * For licensing, see LICENSE.md.
  4. */
  5. /* global console:false */
  6. 'use strict';
  7. import TreeView from '/ckeditor5/core/treeview/treeview.js';
  8. import Element from '/ckeditor5/core/treeview/element.js';
  9. import Text from '/ckeditor5/core/treeview/text.js';
  10. import MutationObserver from '/ckeditor5/core/treeview/observer/mutationobserver.js';
  11. const treeView = new TreeView( document.getElementById( 'editor' ) );
  12. treeView.on( 'mutations', ( evt, mutations ) => console.log( mutations ) );
  13. treeView.on( 'mutations', handleTyping );
  14. treeView.addObserver( new MutationObserver() );
  15. treeView.viewRoot.insertChildren( 0, [ new Element( 'p', [], [ new Text( 'foo' ) ] ) ] );
  16. treeView.render();
  17. function handleTyping( evt, mutations ) {
  18. const mutation = mutations[ 0 ];
  19. if ( mutations.length > 1 || mutation.type !== 'text' ) {
  20. return;
  21. }
  22. mutation.node.setText( mutation.newText );
  23. }