@ckeditor/ckeditor5-engine 35.3.2 → 36.0.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 (123) hide show
  1. package/LICENSE.md +1 -1
  2. package/package.json +22 -22
  3. package/src/controller/datacontroller.js +10 -8
  4. package/src/controller/editingcontroller.js +3 -4
  5. package/src/conversion/conversion.js +2 -3
  6. package/src/conversion/conversionhelpers.js +1 -1
  7. package/src/conversion/downcastdispatcher.js +3 -3
  8. package/src/conversion/downcasthelpers.js +2 -3
  9. package/src/conversion/mapper.js +3 -4
  10. package/src/conversion/modelconsumable.js +2 -2
  11. package/src/conversion/upcastdispatcher.js +3 -4
  12. package/src/conversion/upcasthelpers.js +10 -3
  13. package/src/conversion/viewconsumable.js +2 -2
  14. package/src/dataprocessor/basichtmlwriter.js +1 -1
  15. package/src/dataprocessor/dataprocessor.js +1 -1
  16. package/src/dataprocessor/htmldataprocessor.js +3 -3
  17. package/src/dataprocessor/htmlwriter.js +1 -1
  18. package/src/dataprocessor/xmldataprocessor.js +6 -2
  19. package/src/dev-utils/model.js +3 -3
  20. package/src/dev-utils/operationreplayer.js +1 -1
  21. package/src/dev-utils/utils.js +1 -1
  22. package/src/dev-utils/view.js +1 -1
  23. package/src/index.js +13 -3
  24. package/src/model/batch.js +10 -47
  25. package/src/model/differ.js +81 -174
  26. package/src/model/document.js +38 -97
  27. package/src/model/documentfragment.js +44 -97
  28. package/src/model/documentselection.js +152 -251
  29. package/src/model/element.js +48 -101
  30. package/src/model/history.js +15 -46
  31. package/src/model/item.js +1 -1
  32. package/src/model/liveposition.js +11 -39
  33. package/src/model/liverange.js +14 -38
  34. package/src/model/markercollection.js +42 -115
  35. package/src/model/model.js +214 -292
  36. package/src/model/node.js +36 -128
  37. package/src/model/nodelist.js +12 -41
  38. package/src/model/operation/attributeoperation.js +14 -45
  39. package/src/model/operation/detachoperation.js +4 -17
  40. package/src/model/operation/insertoperation.js +7 -35
  41. package/src/model/operation/markeroperation.js +9 -48
  42. package/src/model/operation/mergeoperation.js +9 -42
  43. package/src/model/operation/moveoperation.js +15 -39
  44. package/src/model/operation/nooperation.js +1 -7
  45. package/src/model/operation/operation.js +5 -63
  46. package/src/model/operation/operationfactory.js +3 -6
  47. package/src/model/operation/renameoperation.js +9 -29
  48. package/src/model/operation/rootattributeoperation.js +19 -48
  49. package/src/model/operation/splitoperation.js +10 -48
  50. package/src/model/operation/transform.js +110 -151
  51. package/src/model/operation/utils.js +37 -52
  52. package/src/model/position.js +118 -230
  53. package/src/model/range.js +146 -202
  54. package/src/model/rootelement.js +8 -47
  55. package/src/model/schema.js +245 -282
  56. package/src/model/selection.js +135 -196
  57. package/src/model/text.js +10 -37
  58. package/src/model/textproxy.js +16 -70
  59. package/src/model/treewalker.js +11 -102
  60. package/src/model/typecheckable.js +1 -1
  61. package/src/model/utils/autoparagraphing.js +11 -12
  62. package/src/model/utils/deletecontent.js +93 -62
  63. package/src/model/utils/findoptimalinsertionrange.js +25 -25
  64. package/src/model/utils/getselectedcontent.js +3 -6
  65. package/src/model/utils/insertcontent.js +37 -130
  66. package/src/model/utils/insertobject.js +40 -40
  67. package/src/model/utils/modifyselection.js +24 -34
  68. package/src/model/utils/selection-post-fixer.js +53 -59
  69. package/src/model/writer.js +209 -316
  70. package/src/view/attributeelement.js +2 -2
  71. package/src/view/containerelement.js +1 -1
  72. package/src/view/datatransfer.js +1 -1
  73. package/src/view/document.js +3 -5
  74. package/src/view/documentfragment.js +50 -4
  75. package/src/view/documentselection.js +2 -3
  76. package/src/view/domconverter.js +4 -8
  77. package/src/view/downcastwriter.js +2 -3
  78. package/src/view/editableelement.js +2 -3
  79. package/src/view/element.js +6 -8
  80. package/src/view/elementdefinition.js +1 -1
  81. package/src/view/emptyelement.js +2 -2
  82. package/src/view/filler.js +2 -3
  83. package/src/view/item.js +1 -1
  84. package/src/view/matcher.js +2 -2
  85. package/src/view/node.js +2 -5
  86. package/src/view/observer/arrowkeysobserver.js +1 -1
  87. package/src/view/observer/bubblingemittermixin.js +3 -6
  88. package/src/view/observer/bubblingeventinfo.js +2 -2
  89. package/src/view/observer/clickobserver.js +1 -1
  90. package/src/view/observer/compositionobserver.js +1 -1
  91. package/src/view/observer/domeventdata.js +1 -1
  92. package/src/view/observer/domeventobserver.js +1 -1
  93. package/src/view/observer/fakeselectionobserver.js +2 -2
  94. package/src/view/observer/focusobserver.js +25 -3
  95. package/src/view/observer/inputobserver.js +2 -2
  96. package/src/view/observer/keyobserver.js +2 -2
  97. package/src/view/observer/mouseobserver.js +1 -1
  98. package/src/view/observer/mutationobserver.js +1 -1
  99. package/src/view/observer/observer.js +3 -3
  100. package/src/view/observer/selectionobserver.js +21 -3
  101. package/src/view/observer/tabobserver.js +2 -2
  102. package/src/view/placeholder.js +1 -1
  103. package/src/view/position.js +2 -3
  104. package/src/view/range.js +1 -1
  105. package/src/view/rawelement.js +2 -2
  106. package/src/view/renderer.js +3 -12
  107. package/src/view/rooteditableelement.js +1 -1
  108. package/src/view/selection.js +2 -6
  109. package/src/view/styles/background.js +1 -1
  110. package/src/view/styles/border.js +1 -1
  111. package/src/view/styles/margin.js +1 -1
  112. package/src/view/styles/padding.js +1 -1
  113. package/src/view/styles/utils.js +1 -1
  114. package/src/view/stylesmap.js +1 -1
  115. package/src/view/text.js +1 -1
  116. package/src/view/textproxy.js +2 -2
  117. package/src/view/treewalker.js +2 -2
  118. package/src/view/typecheckable.js +1 -1
  119. package/src/view/uielement.js +2 -3
  120. package/src/view/upcastwriter.js +1 -1
  121. package/src/view/view.js +7 -7
  122. package/theme/placeholder.css +1 -1
  123. package/theme/renderer.css +1 -1
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
  /**
@@ -8,76 +8,37 @@
8
8
  import Element from './element';
9
9
  /**
10
10
  * Type of {@link module:engine/model/element~Element} that is a root of a model tree.
11
- * @extends module:engine/model/element~Element
12
11
  */
13
12
  export default class RootElement extends Element {
14
13
  /**
15
14
  * Creates root element.
16
15
  *
17
- * @param {module:engine/model/document~Document} document Document that is an owner of this root.
18
- * @param {String} name Node name.
19
- * @param {String} [rootName='main'] Unique root name used to identify this root
20
- * element by {@link module:engine/model/document~Document}.
16
+ * @param document Document that is an owner of this root.
17
+ * @param name Node name.
18
+ * @param rootName Unique root name used to identify this root element by {@link module:engine/model/document~Document}.
21
19
  */
22
20
  constructor(document, name, rootName = 'main') {
23
21
  super(name);
24
- /**
25
- * Document that is an owner of this root.
26
- *
27
- * @private
28
- * @member {module:engine/model/document~Document}
29
- */
30
22
  this._document = document;
31
- /**
32
- * Unique root name used to identify this root element by {@link module:engine/model/document~Document}.
33
- *
34
- * @readonly
35
- * @member {String}
36
- */
37
23
  this.rootName = rootName;
38
24
  }
39
25
  /**
40
26
  * {@link module:engine/model/document~Document Document} that owns this root element.
41
- *
42
- * @readonly
43
- * @type {module:engine/model/document~Document|null}
44
27
  */
45
28
  get document() {
46
29
  return this._document;
47
30
  }
48
31
  /**
49
- * Converts `RootElement` instance to `String` containing it's name.
32
+ * Converts `RootElement` instance to `string` containing it's name.
50
33
  *
51
- * @returns {String} `RootElement` instance converted to `String`.
34
+ * @returns `RootElement` instance converted to `string`.
52
35
  */
53
36
  toJSON() {
54
37
  return this.rootName;
55
38
  }
56
39
  }
57
- /**
58
- * Checks whether this object is of the given.
59
- *
60
- * rootElement.is( 'rootElement' ); // -> true
61
- * rootElement.is( 'element' ); // -> true
62
- * rootElement.is( 'node' ); // -> true
63
- * rootElement.is( 'model:rootElement' ); // -> true
64
- * rootElement.is( 'model:element' ); // -> true
65
- * rootElement.is( 'model:node' ); // -> true
66
- *
67
- * rootElement.is( 'view:element' ); // -> false
68
- * rootElement.is( 'documentFragment' ); // -> false
69
- *
70
- * Assuming that the object being checked is an element, you can also check its
71
- * {@link module:engine/model/element~Element#name name}:
72
- *
73
- * rootElement.is( 'rootElement', '$root' ); // -> same as above
74
- *
75
- * {@link module:engine/model/node~Node#is Check the entire list of model objects} which implement the `is()` method.
76
- *
77
- * @param {String} type Type to check.
78
- * @param {String} [name] Element name.
79
- * @returns {Boolean}
80
- */
40
+ // The magic of type inference using `is` method is centralized in `TypeCheckable` class.
41
+ // Proper overload would interfere with that.
81
42
  RootElement.prototype.is = function (type, name) {
82
43
  if (!name) {
83
44
  return type === 'rootElement' || type === 'model:rootElement' ||