8
0

removedelta.js 966 B

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. CKEDITOR.define( [
  7. 'document/delta/delta',
  8. 'document/delta/register',
  9. 'document/operation/removeoperation'
  10. ], ( Delta, register, RemoveOperation ) => {
  11. /**
  12. * To provide specific OT behavior and better collisions solving, {@link document.Transaction#remove} method
  13. * use `RemoveDelta` class which inherit from `Delta` class and may overwrite some methods.
  14. *
  15. * @class document.delta.RemoveDelta
  16. */
  17. class RemoveDelta extends Delta {}
  18. register( 'remove', ( doc, transaction, position, howMany ) => {
  19. if ( typeof howMany !== 'number' ) {
  20. howMany = 1;
  21. }
  22. const delta = new RemoveDelta();
  23. const operation = new RemoveOperation( position, howMany, doc.version );
  24. doc.applyOperation( operation );
  25. delta.addOperation( operation );
  26. transaction.addDelta( delta );
  27. } );
  28. return RemoveDelta;
  29. } );