immutable.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  1. /**
  2. * @license Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
  3. * For licensing, see LICENSE.md.
  4. */
  5. 'use strict';
  6. import TreeView from '/ckeditor5/engine/treeview/treeview.js';
  7. import ContainerElement from '/ckeditor5/engine/treeview/containerelement.js';
  8. import AttributeElement from '/ckeditor5/engine/treeview/attributeelement.js';
  9. import Text from '/ckeditor5/engine/treeview/text.js';
  10. import Range from '/ckeditor5/engine/treeview/range.js';
  11. import MutationObserver from '/ckeditor5/engine/treeview/observer/mutationobserver.js';
  12. import SelectionObserver from '/ckeditor5/engine/treeview/observer/selectionobserver.js';
  13. const treeView = new TreeView();
  14. treeView.createRoot( document.getElementById( 'editor' ), 'editor' );
  15. treeView.addObserver( MutationObserver );
  16. treeView.addObserver( SelectionObserver );
  17. const p = new ContainerElement( 'p', null, [
  18. new AttributeElement( 'strong', null, [ new Text( 'foo' ) ] ),
  19. new AttributeElement( 'strong', null, [ new Text( 'bar' ) ] )
  20. ] );
  21. treeView.viewRoots.get( 'editor' ).appendChildren( [
  22. p,
  23. new ContainerElement( 'p' ),
  24. new ContainerElement( 'p', null, [ new AttributeElement( 'strong' ) ] ),
  25. new ContainerElement( 'p', null, [ new Text( 'bar' ) ] )
  26. ] );
  27. treeView.selection.setRanges( [ Range.createFromParentsAndOffsets( p, 1, p, 1 ) ] );
  28. treeView.render();