@ckeditor/ckeditor5-engine 46.0.3 → 46.1.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/index.js +250 -11
  2. package/dist/index.js.map +1 -1
  3. package/package.json +2 -2
  4. package/src/index.d.ts +4 -2
  5. package/src/index.js +3 -1
  6. package/src/model/documentselection.d.ts +6 -0
  7. package/src/model/documentselection.js +20 -0
  8. package/src/model/markercollection.d.ts +6 -0
  9. package/src/model/markercollection.js +13 -0
  10. package/src/model/range.d.ts +1 -1
  11. package/src/model/range.js +1 -1
  12. package/src/model/selection.d.ts +6 -0
  13. package/src/model/selection.js +18 -0
  14. package/src/view/attributeelement.d.ts +6 -0
  15. package/src/view/attributeelement.js +10 -0
  16. package/src/view/containerelement.d.ts +6 -0
  17. package/src/view/containerelement.js +10 -0
  18. package/src/view/documentfragment.d.ts +7 -0
  19. package/src/view/documentfragment.js +13 -0
  20. package/src/view/documentselection.d.ts +6 -0
  21. package/src/view/documentselection.js +8 -0
  22. package/src/view/domconverter.js +4 -2
  23. package/src/view/editableelement.d.ts +6 -0
  24. package/src/view/editableelement.js +12 -0
  25. package/src/view/element.d.ts +6 -0
  26. package/src/view/element.js +20 -0
  27. package/src/view/emptyelement.d.ts +6 -0
  28. package/src/view/emptyelement.js +10 -0
  29. package/src/view/node.d.ts +2 -2
  30. package/src/view/node.js +9 -6
  31. package/src/view/observer/pointerobserver.d.ts +76 -0
  32. package/src/view/observer/pointerobserver.js +26 -0
  33. package/src/view/observer/selectionobserver.d.ts +4 -4
  34. package/src/view/observer/selectionobserver.js +22 -1
  35. package/src/view/position.d.ts +6 -0
  36. package/src/view/position.js +11 -0
  37. package/src/view/range.d.ts +6 -0
  38. package/src/view/range.js +11 -0
  39. package/src/view/rawelement.d.ts +6 -0
  40. package/src/view/rawelement.js +10 -0
  41. package/src/view/rooteditableelement.d.ts +6 -0
  42. package/src/view/rooteditableelement.js +8 -0
  43. package/src/view/selection.d.ts +6 -0
  44. package/src/view/selection.js +17 -0
  45. package/src/view/text.d.ts +6 -0
  46. package/src/view/text.js +11 -0
  47. package/src/view/uielement.d.ts +6 -0
  48. package/src/view/uielement.js +10 -0
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
4
  */
5
5
  import { logWarning, EmitterMixin, CKEditorError, compareArrays, toArray, toMap, isIterable, ObservableMixin, count, EventInfo, Collection, keyCodes, isText, env, remove as remove$1, insertAt, diff, fastDiff, isNode, isComment, indexOf, global, isValidAttributeName, first, getAncestors, DomEmitterMixin, getCode, isArrowKeyCode, scrollViewportToShowTarget, uid, spliceArray, priorities, isInsideSurrogatePair, isInsideCombinedSymbol, isInsideEmojiSequence } from '@ckeditor/ckeditor5-utils/dist/index.js';
6
- import { clone, isObject, get, merge, set, isPlainObject, extend, debounce, isEqualWith, cloneDeep, isEqual } from 'es-toolkit/compat';
6
+ import { isObject, get, merge, set, isPlainObject, extend, debounce, isEqualWith, cloneDeep, isEqual, clone } from 'es-toolkit/compat';
7
7
 
8
8
  // Each document stores information about its placeholder elements and check functions.
9
9
  const documentPlaceholders = new WeakMap();
@@ -473,13 +473,17 @@ let hasDisplayedPlaceholderDeprecationWarning = false;
473
473
  }
474
474
  }
475
475
  /**
476
- * Custom toJSON method to solve child-parent circular dependencies.
476
+ * Converts `ViewNode` to plain object and returns it.
477
477
  *
478
- * @returns Clone of this object with the parent property removed.
478
+ * @returns `ViewNode` converted to plain object.
479
479
  */ toJSON() {
480
- const json = clone(this);
481
- // Due to circular references we need to remove parent reference.
482
- delete json.parent;
480
+ const json = {
481
+ path: this.getPath(),
482
+ type: 'Node'
483
+ };
484
+ if (this !== this.root && this.root.is('rootElement')) {
485
+ json.root = this.root.toJSON();
486
+ }
483
487
  return json;
484
488
  }
485
489
  }
@@ -555,6 +559,16 @@ ViewNode.prototype.is = function(type) {
555
559
  }
556
560
  return this === otherNode || this.data === otherNode.data;
557
561
  }
562
+ /**
563
+ * Converts `ViewText` instance to plain object and returns it.
564
+ *
565
+ * @returns `ViewText` instance converted to plain object.
566
+ */ toJSON() {
567
+ const json = super.toJSON();
568
+ json.type = 'Text';
569
+ json.data = this.data;
570
+ return json;
571
+ }
558
572
  /**
559
573
  * Clones this node.
560
574
  *
@@ -3093,6 +3107,25 @@ ViewTextProxy.prototype.is = function(type) {
3093
3107
  */ shouldRenderUnsafeAttribute(attributeName) {
3094
3108
  return this._unsafeAttributesToRender.includes(attributeName);
3095
3109
  }
3110
+ /**
3111
+ * Converts `ViewElement` to plain object and returns it.
3112
+ *
3113
+ * @returns `ViewElement` converted to plain object.
3114
+ */ toJSON() {
3115
+ const json = super.toJSON();
3116
+ json.name = this.name;
3117
+ json.type = 'Element';
3118
+ if (this._attrs.size) {
3119
+ json.attributes = Object.fromEntries(this.getAttributes());
3120
+ }
3121
+ if (this._children.length > 0) {
3122
+ json.children = [];
3123
+ for (const node of this._children){
3124
+ json.children.push(node.toJSON());
3125
+ }
3126
+ }
3127
+ return json;
3128
+ }
3096
3129
  /**
3097
3130
  * Clones provided element.
3098
3131
  *
@@ -3694,6 +3727,15 @@ ViewElement.prototype.is = function(type, name) {
3694
3727
  super(document, name, attrs, children);
3695
3728
  this.getFillerOffset = getViewFillerOffset;
3696
3729
  }
3730
+ /**
3731
+ * Converts `ViewContainerElement` instance to plain object and returns it.
3732
+ *
3733
+ * @returns `ViewContainerElement` instance converted to plain object.
3734
+ */ toJSON() {
3735
+ const json = super.toJSON();
3736
+ json.type = 'ContainerElement';
3737
+ return json;
3738
+ }
3697
3739
  }
3698
3740
  // The magic of type inference using `is` method is centralized in `TypeCheckable` class.
3699
3741
  // Proper overload would interfere with that.
@@ -3762,6 +3804,17 @@ ViewContainerElement.prototype.is = function(type, name) {
3762
3804
  destroy() {
3763
3805
  this.stopListening();
3764
3806
  }
3807
+ /**
3808
+ * Converts `ViewEditableElement` instance to plain object and returns it.
3809
+ *
3810
+ * @returns `ViewEditableElement` instance converted to plain object.
3811
+ */ toJSON() {
3812
+ const json = super.toJSON();
3813
+ json.type = 'EditableElement';
3814
+ json.isReadOnly = this.isReadOnly;
3815
+ json.isFocused = this.isFocused;
3816
+ return json;
3817
+ }
3765
3818
  }
3766
3819
  // The magic of type inference using `is` method is centralized in `TypeCheckable` class.
3767
3820
  // Proper overload would interfere with that.
@@ -3802,6 +3855,13 @@ const rootNameSymbol = Symbol('rootName');
3802
3855
  set rootName(rootName) {
3803
3856
  this._setCustomProperty(rootNameSymbol, rootName);
3804
3857
  }
3858
+ /**
3859
+ * Converts `ViewRootEditableElement` instance to string and returns it.
3860
+ *
3861
+ * @returns `ViewRootEditableElement` instance converted to string.
3862
+ */ toJSON() {
3863
+ return this.rootName;
3864
+ }
3805
3865
  /**
3806
3866
  * Overrides old element name and sets new one.
3807
3867
  * This is needed because view roots are created before they are attached to the DOM.
@@ -4402,6 +4462,16 @@ ViewRootEditableElement.prototype.is = function(type, name) {
4402
4462
  */ clone() {
4403
4463
  return new ViewPosition(this.parent, this.offset);
4404
4464
  }
4465
+ /**
4466
+ * Converts `ViewPosition` instance to plain object and returns it.
4467
+ *
4468
+ * @returns `ViewPosition` instance converted to plain object.
4469
+ */ toJSON() {
4470
+ return {
4471
+ parent: this.parent.toJSON(),
4472
+ offset: this.offset
4473
+ };
4474
+ }
4405
4475
  /**
4406
4476
  * Creates position at the given location. The location can be specified as:
4407
4477
  *
@@ -4844,6 +4914,16 @@ ViewPosition.prototype.is = function(type) {
4844
4914
  */ isIntersecting(otherRange) {
4845
4915
  return this.start.isBefore(otherRange.end) && this.end.isAfter(otherRange.start);
4846
4916
  }
4917
+ /**
4918
+ * Converts `ViewRange` instance to plain object and returns it.
4919
+ *
4920
+ * @returns `ViewRange` instance converted to plain object.
4921
+ */ toJSON() {
4922
+ return {
4923
+ start: this.start.toJSON(),
4924
+ end: this.end.toJSON()
4925
+ };
4926
+ }
4847
4927
  /**
4848
4928
  * Creates a range from the given parents and offsets.
4849
4929
  *
@@ -5353,6 +5433,22 @@ ViewRange.prototype.is = function(type) {
5353
5433
  }
5354
5434
  this.fire('change');
5355
5435
  }
5436
+ /**
5437
+ * Converts `ViewSelection` instance to plain object and returns it.
5438
+ *
5439
+ * @returns `ViewSelection` instance converted to plain object.
5440
+ */ toJSON() {
5441
+ const json = {
5442
+ ranges: Array.from(this.getRanges()).map((range)=>range.toJSON())
5443
+ };
5444
+ if (this.isBackward) {
5445
+ json.isBackward = true;
5446
+ }
5447
+ if (this.isFake) {
5448
+ json.isFake = true;
5449
+ }
5450
+ return json;
5451
+ }
5356
5452
  /**
5357
5453
  * Replaces all ranges that were added to the selection with given array of ranges. Last range of the array
5358
5454
  * is treated like the last added range and is used to set {@link #anchor anchor} and {@link #focus focus}.
@@ -5577,6 +5673,13 @@ ViewSelection.prototype.is = function(type) {
5577
5673
  */ isSimilar(otherSelection) {
5578
5674
  return this._selection.isSimilar(otherSelection);
5579
5675
  }
5676
+ /**
5677
+ * Converts `ViewDocumentSelection` instance to plain object and returns it.
5678
+ *
5679
+ * @returns `ViewDocumentSelection` instance converted to plain object.
5680
+ */ toJSON() {
5681
+ return this._selection.toJSON();
5682
+ }
5580
5683
  /**
5581
5684
  * Sets this selection's ranges and direction to the specified location based on the given
5582
5685
  * {@link module:engine/view/selection~ViewSelectable selectable}.
@@ -6069,6 +6172,15 @@ const DEFAULT_PRIORITY = 10;
6069
6172
  }
6070
6173
  return super.isSimilar(otherElement) && this.priority == otherElement.priority;
6071
6174
  }
6175
+ /**
6176
+ * Converts `ViewAttributeElement` instance to plain object and returns it.
6177
+ *
6178
+ * @returns `ViewAttributeElement` instance converted to plain object.
6179
+ */ toJSON() {
6180
+ const json = super.toJSON();
6181
+ json.type = 'AttributeElement';
6182
+ return json;
6183
+ }
6072
6184
  /**
6073
6185
  * Clones provided element with priority.
6074
6186
  *
@@ -6171,6 +6283,15 @@ ViewAttributeElement.prototype.is = function(type, name) {
6171
6283
  super(document, name, attributes, children);
6172
6284
  this.getFillerOffset = getFillerOffset$2;
6173
6285
  }
6286
+ /**
6287
+ * Converts `ViewEmptyElement` instance to plain object and returns it.
6288
+ *
6289
+ * @returns `ViewEmptyElement` instance converted to plain object.
6290
+ */ toJSON() {
6291
+ const json = super.toJSON();
6292
+ json.type = 'EmptyElement';
6293
+ return json;
6294
+ }
6174
6295
  /**
6175
6296
  * Overrides {@link module:engine/view/element~ViewElement#_insertChild} method.
6176
6297
  * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-emptyelement-cannot-add` to prevent
@@ -6296,6 +6417,15 @@ ViewEmptyElement.prototype.is = function(type, name) {
6296
6417
  }
6297
6418
  return domElement;
6298
6419
  }
6420
+ /**
6421
+ * Converts `ViewUIElement` instance to plain object and returns it.
6422
+ *
6423
+ * @returns `ViewUIElement` instance converted to plain object.
6424
+ */ toJSON() {
6425
+ const json = super.toJSON();
6426
+ json.type = 'UIElement';
6427
+ return json;
6428
+ }
6299
6429
  }
6300
6430
  // The magic of type inference using `is` method is centralized in `TypeCheckable` class.
6301
6431
  // Proper overload would interfere with that.
@@ -6406,6 +6536,15 @@ ViewUIElement.prototype.is = function(type, name) {
6406
6536
  // Returns `null` because filler is not needed for raw elements.
6407
6537
  this.getFillerOffset = getFillerOffset;
6408
6538
  }
6539
+ /**
6540
+ * Converts `ViewRawElement` instance to plain object and returns it.
6541
+ *
6542
+ * @returns `ViewRawElement` instance converted to plain object.
6543
+ */ toJSON() {
6544
+ const json = super.toJSON();
6545
+ json.type = 'RawElement';
6546
+ return json;
6547
+ }
6409
6548
  /**
6410
6549
  * Overrides the {@link module:engine/view/element~ViewElement#_insertChild} method.
6411
6550
  * Throws the `view-rawelement-cannot-add` {@link module:utils/ckeditorerror~CKEditorError CKEditorError} to prevent
@@ -6538,6 +6677,18 @@ ViewRawElement.prototype.is = function(type, name) {
6538
6677
  */ *getCustomProperties() {
6539
6678
  yield* this._customProperties.entries();
6540
6679
  }
6680
+ /**
6681
+ * Converts `ViewDocumentFragment` instance to plain object and returns it.
6682
+ * Takes care of converting all of this document fragment's children.
6683
+ *
6684
+ * @returns `ViewDocumentFragment` instance converted to plain object.
6685
+ */ toJSON() {
6686
+ const json = [];
6687
+ for (const node of this._children){
6688
+ json.push(node.toJSON());
6689
+ }
6690
+ return json;
6691
+ }
6541
6692
  /**
6542
6693
  * {@link module:engine/view/documentfragment~ViewDocumentFragment#_insertChild Insert} a child node or a list of child nodes at the end
6543
6694
  * and sets the parent of these nodes to this fragment.
@@ -10233,7 +10384,9 @@ const UNSAFE_ELEMENT_REPLACEMENT_ATTRIBUTE = 'data-ck-unsafe-element';
10233
10384
  scrollTop
10234
10385
  ]);
10235
10386
  });
10236
- domEditable.focus();
10387
+ domEditable.focus({
10388
+ preventScroll: true
10389
+ });
10237
10390
  // Restore scrollLeft and scrollTop values starting from domEditable up to
10238
10391
  // document#documentElement.
10239
10392
  // https://github.com/ckeditor/ckeditor5-engine/issues/951
@@ -10743,7 +10896,7 @@ const UNSAFE_ELEMENT_REPLACEMENT_ATTRIBUTE = 'data-ck-unsafe-element';
10743
10896
  return null;
10744
10897
  } else if (this._isInlineObjectElement(item)) {
10745
10898
  return item;
10746
- } else if (item.is('containerElement')) {
10899
+ } else if (item.is('containerElement') || this._isBlockViewElement(item)) {
10747
10900
  return null;
10748
10901
  }
10749
10902
  }
@@ -11866,7 +12019,14 @@ function sameNodes(child1, child2) {
11866
12019
  this._reportInfiniteLoop();
11867
12020
  return;
11868
12021
  }
11869
- if (this.selection.isSimilar(newViewSelection)) {
12022
+ if (!isSelectionWithinRootElements(newViewSelection)) {
12023
+ // Occasionally, such as when removing markers during a focus change, the selection may end up inside a view element
12024
+ // whose parent has already been detached from the DOM. In most cases this is harmless, but if the selectionchange
12025
+ // event fires before the view is fully synchronized with the DOM converter, some elements in the selection may become orphans.
12026
+ // This can result in the view being out of sync with the actual DOM structure.
12027
+ // See: https://github.com/ckeditor/ckeditor5/issues/18744
12028
+ this.view.forceRender();
12029
+ } else if (this.selection.isSimilar(newViewSelection)) {
11870
12030
  // If selection was equal and we are at this point of algorithm, it means that it was incorrect.
11871
12031
  // Just re-render it, no need to fire any events, etc.
11872
12032
  this.view.forceRender();
@@ -11897,6 +12057,18 @@ function sameNodes(child1, child2) {
11897
12057
  this._loopbackCounter = 0;
11898
12058
  }
11899
12059
  }
12060
+ /**
12061
+ * Checks if all roots of the selection's range boundaries are root elements.
12062
+ * Returns true if the selection is fully contained within root elements (not orphaned).
12063
+ *
12064
+ * @param selection The view selection to check.
12065
+ * @returns True if all range boundaries are within root elements, false otherwise.
12066
+ */ function isSelectionWithinRootElements(selection) {
12067
+ return Array.from(selection.getRanges()).flatMap((range)=>[
12068
+ range.start.root,
12069
+ range.end.root
12070
+ ]).every((root)=>root && root.is('rootElement'));
12071
+ }
11900
12072
 
11901
12073
  // @if CK_DEBUG_TYPING // const { _debouncedLine, _buildLogMessage } = require( '../../dev-utils/utils.js' );
11902
12074
  /**
@@ -14783,7 +14955,7 @@ ModelPosition.prototype.is = function(type) {
14783
14955
  /**
14784
14956
  * Converts `Range` to plain object and returns it.
14785
14957
  *
14786
- * @returns `Node` converted to plain object.
14958
+ * @returns `Range` converted to plain object.
14787
14959
  */ toJSON() {
14788
14960
  return {
14789
14961
  start: this.start.toJSON(),
@@ -17936,6 +18108,23 @@ ModelNode.prototype.is = function(type) {
17936
18108
  const limitEndPosition = ModelPosition._createAt(element, 'end');
17937
18109
  return limitStartPosition.isTouching(this.getFirstPosition()) && limitEndPosition.isTouching(this.getLastPosition());
17938
18110
  }
18111
+ /**
18112
+ * Converts `Selection` to plain object and returns it.
18113
+ *
18114
+ * @returns `Selection` converted to plain object.
18115
+ */ toJSON() {
18116
+ const json = {
18117
+ ranges: Array.from(this.getRanges()).map((range)=>range.toJSON())
18118
+ };
18119
+ const attributes = Object.fromEntries(this.getAttributes());
18120
+ if (Object.keys(attributes).length) {
18121
+ json.attributes = attributes;
18122
+ }
18123
+ if (this.isBackward) {
18124
+ json.isBackward = true;
18125
+ }
18126
+ return json;
18127
+ }
17939
18128
  /**
17940
18129
  * Adds given range to internal {@link #_ranges ranges array}. Throws an error
17941
18130
  * if given range is intersecting with any range that is already stored in this selection.
@@ -18564,6 +18753,13 @@ const storePrefix = 'selection:';
18564
18753
  */ observeMarkers(prefixOrName) {
18565
18754
  this._selection.observeMarkers(prefixOrName);
18566
18755
  }
18756
+ /**
18757
+ * Converts `DocumentSelection` to plain object and returns it.
18758
+ *
18759
+ * @returns `DocumentSelection` converted to plain object.
18760
+ */ toJSON() {
18761
+ return this._selection.toJSON();
18762
+ }
18567
18763
  /**
18568
18764
  * Moves {@link module:engine/model/documentselection~ModelDocumentSelection#focus} to the specified location.
18569
18765
  * Should be used only within the {@link module:engine/model/writer~ModelWriter#setSelectionFocus} method.
@@ -18886,6 +19082,17 @@ ModelDocumentSelection.prototype.is = function(type) {
18886
19082
  this._ranges.push(liveRange);
18887
19083
  }
18888
19084
  }
19085
+ /**
19086
+ * Converts `LiveSelection` to plain object and returns it.
19087
+ *
19088
+ * @returns `LiveSelection` converted to plain object.
19089
+ */ toJSON() {
19090
+ const json = super.toJSON();
19091
+ if (this.markers.length) {
19092
+ json.markers = this.markers.map((marker)=>marker.toJSON());
19093
+ }
19094
+ return json;
19095
+ }
18889
19096
  _validateSelectionRanges(ranges) {
18890
19097
  for (const range of ranges){
18891
19098
  if (!this._document._validateSelectionRange(range)) {
@@ -32473,6 +32680,18 @@ const graveyardName = '$graveyard';
32473
32680
  }
32474
32681
  return this._liveRange.toRange();
32475
32682
  }
32683
+ /**
32684
+ * Converts `Marker` to plain object and returns it.
32685
+ *
32686
+ * @returns `Marker` converted to plain object.
32687
+ */ toJSON() {
32688
+ return {
32689
+ name: this.name,
32690
+ range: this._liveRange?.toJSON(),
32691
+ usingOperations: this._managedUsingOperations,
32692
+ affectsData: this._affectsData
32693
+ };
32694
+ }
32476
32695
  /**
32477
32696
  * Binds new live range to the marker and detach the old one if is attached.
32478
32697
  *
@@ -36772,6 +36991,26 @@ function getSearchRange(start, isForward) {
36772
36991
  }
36773
36992
  }
36774
36993
 
36994
+ /**
36995
+ * Pointer events observer.
36996
+ *
36997
+ * Note that this observer is not available by default. To make it available it needs to be added to
36998
+ * {@link module:engine/view/view~EditingView} by {@link module:engine/view/view~EditingView#addObserver} method.
36999
+ */ class PointerObserver extends DomEventObserver {
37000
+ /**
37001
+ * @inheritDoc
37002
+ */ domEventType = [
37003
+ 'pointerdown',
37004
+ 'pointerup',
37005
+ 'pointermove'
37006
+ ];
37007
+ /**
37008
+ * @inheritDoc
37009
+ */ onDomEvent(domEvent) {
37010
+ this.fire(domEvent.type, domEvent);
37011
+ }
37012
+ }
37013
+
36775
37014
  /**
36776
37015
  * View upcast writer. It provides a set of methods used to manipulate non-semantic view trees.
36777
37016
  *
@@ -39569,5 +39808,5 @@ const maxTreeDumpLength = 20;
39569
39808
  }
39570
39809
  }
39571
39810
 
39572
- export { AttributeOperation, Batch, BubblingEmitterMixin, BubblingEventInfo, ClickObserver, CompositionObserver, Conversion, ConversionHelpers, DataController, Differ, DomEventObserver, DowncastHelpers, EditingController, EditingView, FakeSelectionObserver, FocusObserver, History, HtmlDataProcessor, InputObserver, InsertOperation, KeyObserver, MarkerCollection, MarkerOperation, Matcher, MergeOperation, Model, ModelDocument, ModelDocumentFragment, ModelDocumentSelection, ModelElement, ModelLivePosition, ModelLiveRange, ModelNode, ModelNodeList, ModelPosition, ModelRange, ModelRootElement, ModelSchemaContext, ModelSelection, ModelText, ModelTextProxy, ModelTreeWalker, ModelTypeCheckable, ModelWriter, MouseObserver, MoveOperation, MutationObserver, NoOperation, Observer, OperationFactory, RenameOperation, RootAttributeOperation, RootOperation, SelectionObserver, SplitOperation, StylesMap, StylesProcessor, TabObserver, TouchObserver, UpcastHelpers, ViewUpcastWriter as UpcastWriter, ViewAttributeElement, ViewContainerElement, ViewDataTransfer, ViewDocument, ViewDocumentDomEventData, ViewDocumentFragment, ViewDocumentSelection, ViewDomConverter, ViewDowncastWriter, ViewEditableElement, ViewElement, ViewEmptyElement, ViewNode, ViewPosition, ViewRange, ViewRawElement, ViewRenderer, ViewRootEditableElement, ViewSelection, ViewText, ViewTextProxy, ViewTokenList, ViewTreeWalker, ViewTypeCheckable, ViewUIElement, ViewUpcastWriter, XmlDataProcessor, BasicHtmlWriter as _DataProcessorBasicHtmlWriter, DetachOperation as _DetachOperation, MapperCache as _MapperCache, OperationReplayer as _OperationReplayer, BR_FILLER as _VIEW_BR_FILLER, INLINE_FILLER as _VIEW_INLINE_FILLER, INLINE_FILLER_LENGTH as _VIEW_INLINE_FILLER_LENGTH, MARKED_NBSP_FILLER as _VIEW_MARKED_NBSP_FILLER, NBSP_FILLER as _VIEW_NBSP_FILLER, ViewElementConsumables as _ViewElementConversionConsumables, autoParagraphEmptyRoots as _autoParagraphEmptyModelRoots, convertMapToStringifiedObject as _convertMapToStringifiedObject, convertMapToTags as _convertMapToTags, deleteContent as _deleteModelContent, cleanSelection as _downcastCleanSelection, convertCollapsedSelection as _downcastConvertCollapsedSelection, convertRangeSelection as _downcastConvertRangeSelection, createViewElementFromDowncastHighlightDescriptor as _downcastCreateViewElementFromDowncastHighlightDescriptor, insertAttributesAndChildren as _downcastInsertAttributesAndChildren, insertElement as _downcastInsertElement, insertStructure as _downcastInsertStructure, insertText as _downcastInsertText, insertUIElement as _downcastInsertUIElement, remove as _downcastRemove, wrap as _downcastWrap, dumpTrees as _dumpTrees, getDataWithoutFiller as _getDataWithoutViewFiller, _getModelData, getNodeAfterPosition as _getModelNodeAfterPosition, getNodeBeforePosition as _getModelNodeBeforePosition, getTextNodeAtPosition as _getModelTextNodeAtPosition, getSelectedContent as _getSelectedModelContent, _getViewData, initDocumentDumping as _initDocumentDumping, injectSelectionPostFixer as _injectModelSelectionPostFixer, injectQuirksHandling as _injectViewQuirksHandling, injectUiElementHandling as _injectViewUIElementHandling, _insert as _insertIntoModelNodeList, insertContent as _insertModelContent, insertObject as _insertModelObject, isInlineFiller as _isInlineViewFiller, isParagraphable as _isParagraphableModelNode, isPatternMatched as _isViewPatternMatched, logDocument as _logDocument, mergeIntersectingRanges as _mergeIntersectingModelRanges, modifySelection as _modifyModelSelection, _move as _moveInModelNodeList, normalizeConsumables as _normalizeConversionConsumables, _normalizeNodes as _normalizeInModelNodeList, transform$1 as _operationTransform, _parseModel, _parseView, _remove as _removeFromModelNodeList, _setAttribute as _setAttributeInModelNodeList, _setModelData, _setViewData, startsWithFiller as _startsWithViewFiller, _stringifyModel, _stringifyView, tryFixingRange as _tryFixingModelRange, convertSelectionChange as _upcastConvertSelectionChange, convertText as _upcastConvertText, convertToModelFragment$1 as _upcastConvertToModelFragment, wrapInParagraph as _wrapInModelParagraph, addBackgroundStylesRules, addBorderStylesRules, addMarginStylesRules, addPaddingStylesRules, autoParagraphEmptyRoots, disableViewPlaceholder, enableViewPlaceholder, getBoxSidesStyleShorthandValue, getBoxSidesStyleValueReducer, getBoxSidesStyleValues, getPositionStyleShorthandNormalizer, getShorthandStylesValues, getViewFillerOffset, hideViewPlaceholder, isAttachmentStyleValue, isColorStyleValue, isLengthStyleValue, isLineStyleValue, isParagraphable, isPercentageStyleValue, isPositionStyleValue, isRepeatStyleValue, isURLStyleValue, needsViewPlaceholder, showViewPlaceholder, transformOperationSets, wrapInParagraph };
39811
+ export { AttributeOperation, Batch, BubblingEmitterMixin, BubblingEventInfo, ClickObserver, CompositionObserver, Conversion, ConversionHelpers, DataController, Differ, DomEventObserver, DowncastHelpers, EditingController, EditingView, FakeSelectionObserver, FocusObserver, History, HtmlDataProcessor, InputObserver, InsertOperation, KeyObserver, Mapper, MarkerCollection, MarkerOperation, Matcher, MergeOperation, Model, ModelDocument, ModelDocumentFragment, ModelDocumentSelection, ModelElement, ModelLivePosition, ModelLiveRange, ModelNode, ModelNodeList, ModelPosition, ModelRange, ModelRootElement, ModelSchema, ModelSchemaContext, ModelSelection, ModelText, ModelTextProxy, ModelTreeWalker, ModelTypeCheckable, ModelWriter, MouseObserver, MoveOperation, MutationObserver, NoOperation, Observer, OperationFactory, PointerObserver, RenameOperation, RootAttributeOperation, RootOperation, SelectionObserver, SplitOperation, StylesMap, StylesProcessor, TabObserver, TouchObserver, UpcastHelpers, ViewUpcastWriter as UpcastWriter, ViewAttributeElement, ViewContainerElement, ViewDataTransfer, ViewDocument, ViewDocumentDomEventData, ViewDocumentFragment, ViewDocumentSelection, ViewDomConverter, ViewDowncastWriter, ViewEditableElement, ViewElement, ViewEmptyElement, ViewNode, ViewPosition, ViewRange, ViewRawElement, ViewRenderer, ViewRootEditableElement, ViewSelection, ViewText, ViewTextProxy, ViewTokenList, ViewTreeWalker, ViewTypeCheckable, ViewUIElement, ViewUpcastWriter, XmlDataProcessor, BasicHtmlWriter as _DataProcessorBasicHtmlWriter, DetachOperation as _DetachOperation, MapperCache as _MapperCache, OperationReplayer as _OperationReplayer, BR_FILLER as _VIEW_BR_FILLER, INLINE_FILLER as _VIEW_INLINE_FILLER, INLINE_FILLER_LENGTH as _VIEW_INLINE_FILLER_LENGTH, MARKED_NBSP_FILLER as _VIEW_MARKED_NBSP_FILLER, NBSP_FILLER as _VIEW_NBSP_FILLER, ViewElementConsumables as _ViewElementConversionConsumables, autoParagraphEmptyRoots as _autoParagraphEmptyModelRoots, convertMapToStringifiedObject as _convertMapToStringifiedObject, convertMapToTags as _convertMapToTags, deleteContent as _deleteModelContent, cleanSelection as _downcastCleanSelection, convertCollapsedSelection as _downcastConvertCollapsedSelection, convertRangeSelection as _downcastConvertRangeSelection, createViewElementFromDowncastHighlightDescriptor as _downcastCreateViewElementFromDowncastHighlightDescriptor, insertAttributesAndChildren as _downcastInsertAttributesAndChildren, insertElement as _downcastInsertElement, insertStructure as _downcastInsertStructure, insertText as _downcastInsertText, insertUIElement as _downcastInsertUIElement, remove as _downcastRemove, wrap as _downcastWrap, dumpTrees as _dumpTrees, getDataWithoutFiller as _getDataWithoutViewFiller, _getModelData, getNodeAfterPosition as _getModelNodeAfterPosition, getNodeBeforePosition as _getModelNodeBeforePosition, getTextNodeAtPosition as _getModelTextNodeAtPosition, getSelectedContent as _getSelectedModelContent, _getViewData, initDocumentDumping as _initDocumentDumping, injectSelectionPostFixer as _injectModelSelectionPostFixer, injectQuirksHandling as _injectViewQuirksHandling, injectUiElementHandling as _injectViewUIElementHandling, _insert as _insertIntoModelNodeList, insertContent as _insertModelContent, insertObject as _insertModelObject, isInlineFiller as _isInlineViewFiller, isParagraphable as _isParagraphableModelNode, isPatternMatched as _isViewPatternMatched, logDocument as _logDocument, mergeIntersectingRanges as _mergeIntersectingModelRanges, modifySelection as _modifyModelSelection, _move as _moveInModelNodeList, normalizeConsumables as _normalizeConversionConsumables, _normalizeNodes as _normalizeInModelNodeList, transform$1 as _operationTransform, _parseModel, _parseView, _remove as _removeFromModelNodeList, _setAttribute as _setAttributeInModelNodeList, _setModelData, _setViewData, startsWithFiller as _startsWithViewFiller, _stringifyModel, _stringifyView, tryFixingRange as _tryFixingModelRange, convertSelectionChange as _upcastConvertSelectionChange, convertText as _upcastConvertText, convertToModelFragment$1 as _upcastConvertToModelFragment, wrapInParagraph as _wrapInModelParagraph, addBackgroundStylesRules, addBorderStylesRules, addMarginStylesRules, addPaddingStylesRules, autoParagraphEmptyRoots, disableViewPlaceholder, enableViewPlaceholder, getBoxSidesStyleShorthandValue, getBoxSidesStyleValueReducer, getBoxSidesStyleValues, getPositionStyleShorthandNormalizer, getShorthandStylesValues, getViewFillerOffset, hideViewPlaceholder, isAttachmentStyleValue, isColorStyleValue, isLengthStyleValue, isLineStyleValue, isParagraphable, isPercentageStyleValue, isPositionStyleValue, isRepeatStyleValue, isURLStyleValue, needsViewPlaceholder, showViewPlaceholder, transformOperationSets, wrapInParagraph };
39573
39812
  //# sourceMappingURL=index.js.map