typing.js 1023 B

1234567891011121314151617181920212223242526272829303132333435
  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();
  12. treeView.createRoot( document.getElementById( 'editor' ), 'editor' );
  13. treeView.on( 'mutations', ( evt, mutations ) => console.log( mutations ) );
  14. treeView.on( 'mutations', handleTyping );
  15. treeView.addObserver( new MutationObserver() );
  16. treeView.viewRoots.get( 'editor' ).appendChildren( [ new Element( 'p', [], [ new Text( 'foo' ) ] ) ] );
  17. treeView.render();
  18. function handleTyping( evt, mutations ) {
  19. const mutation = mutations[ 0 ];
  20. if ( mutations.length > 1 || mutation.type !== 'text' ) {
  21. return;
  22. }
  23. mutation.node.data = mutation.newText;
  24. }