@ckeditor/ckeditor5-engine 45.2.1-alpha.9 → 46.0.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 (241) hide show
  1. package/dist/index.js +2563 -2257
  2. package/dist/index.js.map +1 -1
  3. package/package.json +3 -3
  4. package/src/controller/datacontroller.d.ts +33 -32
  5. package/src/controller/datacontroller.js +29 -28
  6. package/src/controller/editingcontroller.d.ts +8 -8
  7. package/src/controller/editingcontroller.js +10 -10
  8. package/src/conversion/conversion.d.ts +18 -19
  9. package/src/conversion/conversion.js +4 -4
  10. package/src/conversion/conversionhelpers.d.ts +1 -1
  11. package/src/conversion/conversionhelpers.js +1 -1
  12. package/src/conversion/downcastdispatcher.d.ts +63 -69
  13. package/src/conversion/downcastdispatcher.js +16 -16
  14. package/src/conversion/downcasthelpers.d.ts +94 -83
  15. package/src/conversion/downcasthelpers.js +63 -53
  16. package/src/conversion/mapper.d.ts +27 -27
  17. package/src/conversion/mapper.js +15 -15
  18. package/src/conversion/modelconsumable.d.ts +26 -26
  19. package/src/conversion/modelconsumable.js +23 -23
  20. package/src/conversion/upcastdispatcher.d.ts +33 -32
  21. package/src/conversion/upcastdispatcher.js +19 -19
  22. package/src/conversion/upcasthelpers.d.ts +46 -38
  23. package/src/conversion/upcasthelpers.js +33 -24
  24. package/src/conversion/viewconsumable.d.ts +50 -45
  25. package/src/conversion/viewconsumable.js +32 -27
  26. package/src/dataprocessor/basichtmlwriter.d.ts +4 -2
  27. package/src/dataprocessor/basichtmlwriter.js +3 -1
  28. package/src/dataprocessor/dataprocessor.d.ts +7 -6
  29. package/src/dataprocessor/htmldataprocessor.d.ts +10 -10
  30. package/src/dataprocessor/htmldataprocessor.js +6 -6
  31. package/src/dataprocessor/htmlwriter.d.ts +1 -1
  32. package/src/dataprocessor/xmldataprocessor.d.ts +10 -10
  33. package/src/dataprocessor/xmldataprocessor.js +6 -6
  34. package/src/dev-utils/model.d.ts +25 -26
  35. package/src/dev-utils/model.js +35 -36
  36. package/src/dev-utils/operationreplayer.d.ts +5 -3
  37. package/src/dev-utils/operationreplayer.js +4 -2
  38. package/src/dev-utils/utils.d.ts +8 -0
  39. package/src/dev-utils/utils.js +8 -0
  40. package/src/dev-utils/view.d.ts +66 -63
  41. package/src/dev-utils/view.js +144 -134
  42. package/src/index.d.ts +135 -106
  43. package/src/index.js +120 -71
  44. package/src/legacyerrors.d.ts +5 -0
  45. package/src/legacyerrors.js +17 -0
  46. package/src/model/batch.d.ts +2 -15
  47. package/src/model/batch.js +1 -23
  48. package/src/model/differ.d.ts +54 -31
  49. package/src/model/differ.js +15 -15
  50. package/src/model/document.d.ts +31 -31
  51. package/src/model/document.js +13 -13
  52. package/src/model/documentfragment.d.ts +45 -45
  53. package/src/model/documentfragment.js +40 -40
  54. package/src/model/documentselection.d.ts +92 -92
  55. package/src/model/documentselection.js +71 -70
  56. package/src/model/element.d.ts +31 -31
  57. package/src/model/element.js +29 -29
  58. package/src/model/history.d.ts +3 -3
  59. package/src/model/history.js +2 -2
  60. package/src/model/item.d.ts +4 -5
  61. package/src/model/liveposition.d.ts +31 -31
  62. package/src/model/liveposition.js +18 -18
  63. package/src/model/liverange.d.ts +42 -38
  64. package/src/model/liverange.js +17 -16
  65. package/src/model/markercollection.d.ts +41 -40
  66. package/src/model/markercollection.js +22 -20
  67. package/src/model/model.d.ts +82 -81
  68. package/src/model/model.js +54 -54
  69. package/src/model/node.d.ts +48 -48
  70. package/src/model/node.js +31 -31
  71. package/src/model/nodelist.d.ts +17 -17
  72. package/src/model/nodelist.js +11 -11
  73. package/src/model/operation/attributeoperation.d.ts +10 -10
  74. package/src/model/operation/attributeoperation.js +7 -7
  75. package/src/model/operation/detachoperation.d.ts +11 -9
  76. package/src/model/operation/detachoperation.js +8 -6
  77. package/src/model/operation/insertoperation.d.ts +13 -13
  78. package/src/model/operation/insertoperation.js +15 -15
  79. package/src/model/operation/markeroperation.d.ts +12 -12
  80. package/src/model/operation/markeroperation.js +5 -5
  81. package/src/model/operation/mergeoperation.d.ts +16 -16
  82. package/src/model/operation/mergeoperation.js +18 -18
  83. package/src/model/operation/moveoperation.d.ts +16 -16
  84. package/src/model/operation/moveoperation.js +18 -15
  85. package/src/model/operation/nooperation.d.ts +4 -4
  86. package/src/model/operation/nooperation.js +2 -2
  87. package/src/model/operation/operation.d.ts +10 -10
  88. package/src/model/operation/operation.js +5 -5
  89. package/src/model/operation/operationfactory.d.ts +4 -4
  90. package/src/model/operation/operationfactory.js +12 -12
  91. package/src/model/operation/renameoperation.d.ts +10 -10
  92. package/src/model/operation/renameoperation.js +7 -7
  93. package/src/model/operation/rootattributeoperation.d.ts +12 -12
  94. package/src/model/operation/rootattributeoperation.js +8 -8
  95. package/src/model/operation/rootoperation.d.ts +8 -8
  96. package/src/model/operation/rootoperation.js +3 -3
  97. package/src/model/operation/splitoperation.d.ts +17 -17
  98. package/src/model/operation/splitoperation.js +19 -19
  99. package/src/model/operation/transform.d.ts +11 -8
  100. package/src/model/operation/transform.js +66 -49
  101. package/src/model/operation/utils.d.ts +24 -23
  102. package/src/model/operation/utils.js +20 -20
  103. package/src/model/position.d.ts +101 -97
  104. package/src/model/position.js +69 -64
  105. package/src/model/range.d.ts +90 -90
  106. package/src/model/range.js +87 -87
  107. package/src/model/rootelement.d.ts +11 -11
  108. package/src/model/rootelement.js +9 -9
  109. package/src/model/schema.d.ts +158 -154
  110. package/src/model/schema.js +93 -90
  111. package/src/model/selection.d.ts +73 -73
  112. package/src/model/selection.js +62 -62
  113. package/src/model/text.d.ts +11 -10
  114. package/src/model/text.js +11 -10
  115. package/src/model/textproxy.d.ts +39 -38
  116. package/src/model/textproxy.js +31 -30
  117. package/src/model/treewalker.d.ts +37 -37
  118. package/src/model/treewalker.js +14 -14
  119. package/src/model/typecheckable.d.ts +45 -45
  120. package/src/model/typecheckable.js +1 -1
  121. package/src/model/utils/autoparagraphing.d.ts +7 -7
  122. package/src/model/utils/deletecontent.d.ts +7 -5
  123. package/src/model/utils/deletecontent.js +13 -11
  124. package/src/model/utils/getselectedcontent.d.ts +6 -5
  125. package/src/model/utils/getselectedcontent.js +2 -1
  126. package/src/model/utils/insertcontent.d.ts +9 -8
  127. package/src/model/utils/insertcontent.js +41 -40
  128. package/src/model/utils/insertobject.d.ts +9 -9
  129. package/src/model/utils/insertobject.js +4 -4
  130. package/src/model/utils/modifyselection.d.ts +5 -4
  131. package/src/model/utils/modifyselection.js +12 -11
  132. package/src/model/utils/selection-post-fixer.d.ts +12 -8
  133. package/src/model/utils/selection-post-fixer.js +15 -11
  134. package/src/model/writer.d.ts +102 -101
  135. package/src/model/writer.js +99 -98
  136. package/src/view/attributeelement.d.ts +29 -29
  137. package/src/view/attributeelement.js +25 -25
  138. package/src/view/containerelement.d.ts +16 -15
  139. package/src/view/containerelement.js +15 -14
  140. package/src/view/datatransfer.d.ts +7 -7
  141. package/src/view/datatransfer.js +1 -1
  142. package/src/view/document.d.ts +25 -25
  143. package/src/view/document.js +15 -15
  144. package/src/view/documentfragment.d.ts +21 -21
  145. package/src/view/documentfragment.js +14 -14
  146. package/src/view/documentselection.d.ts +65 -63
  147. package/src/view/documentselection.js +27 -25
  148. package/src/view/domconverter.d.ts +94 -89
  149. package/src/view/domconverter.js +78 -73
  150. package/src/view/downcastwriter.d.ts +185 -181
  151. package/src/view/downcastwriter.js +222 -210
  152. package/src/view/editableelement.d.ts +13 -13
  153. package/src/view/editableelement.js +8 -8
  154. package/src/view/element.d.ts +75 -74
  155. package/src/view/element.js +58 -58
  156. package/src/view/elementdefinition.d.ts +3 -4
  157. package/src/view/emptyelement.d.ts +13 -13
  158. package/src/view/emptyelement.js +13 -13
  159. package/src/view/filler.d.ts +14 -3
  160. package/src/view/filler.js +12 -1
  161. package/src/view/item.d.ts +4 -5
  162. package/src/view/matcher.d.ts +22 -19
  163. package/src/view/matcher.js +6 -6
  164. package/src/view/node.d.ts +33 -33
  165. package/src/view/node.js +9 -9
  166. package/src/view/observer/arrowkeysobserver.d.ts +10 -10
  167. package/src/view/observer/arrowkeysobserver.js +5 -5
  168. package/src/view/observer/bubblingemittermixin.d.ts +5 -5
  169. package/src/view/observer/bubblingemittermixin.js +2 -9
  170. package/src/view/observer/bubblingeventinfo.d.ts +9 -9
  171. package/src/view/observer/bubblingeventinfo.js +1 -1
  172. package/src/view/observer/clickobserver.d.ts +8 -8
  173. package/src/view/observer/clickobserver.js +4 -4
  174. package/src/view/observer/compositionobserver.d.ts +19 -19
  175. package/src/view/observer/compositionobserver.js +6 -6
  176. package/src/view/observer/domeventdata.d.ts +9 -9
  177. package/src/view/observer/domeventdata.js +2 -2
  178. package/src/view/observer/domeventobserver.d.ts +3 -3
  179. package/src/view/observer/domeventobserver.js +5 -5
  180. package/src/view/observer/fakeselectionobserver.d.ts +9 -9
  181. package/src/view/observer/fakeselectionobserver.js +8 -8
  182. package/src/view/observer/focusobserver.d.ts +16 -16
  183. package/src/view/observer/focusobserver.js +7 -7
  184. package/src/view/observer/inputobserver.d.ts +18 -18
  185. package/src/view/observer/inputobserver.js +5 -5
  186. package/src/view/observer/keyobserver.d.ts +11 -11
  187. package/src/view/observer/keyobserver.js +3 -3
  188. package/src/view/observer/mouseobserver.d.ts +16 -16
  189. package/src/view/observer/mouseobserver.js +3 -3
  190. package/src/view/observer/mutationobserver.d.ts +21 -21
  191. package/src/view/observer/mutationobserver.js +7 -7
  192. package/src/view/observer/observer.d.ts +12 -12
  193. package/src/view/observer/observer.js +6 -6
  194. package/src/view/observer/selectionobserver.d.ts +33 -33
  195. package/src/view/observer/selectionobserver.js +14 -14
  196. package/src/view/observer/tabobserver.d.ts +10 -10
  197. package/src/view/observer/tabobserver.js +5 -5
  198. package/src/view/observer/touchobserver.d.ts +13 -13
  199. package/src/view/observer/touchobserver.js +3 -3
  200. package/src/view/placeholder.d.ts +21 -21
  201. package/src/view/placeholder.js +23 -23
  202. package/src/view/position.d.ts +49 -49
  203. package/src/view/position.js +42 -42
  204. package/src/view/range.d.ts +76 -74
  205. package/src/view/range.js +67 -65
  206. package/src/view/rawelement.d.ts +19 -19
  207. package/src/view/rawelement.js +16 -16
  208. package/src/view/renderer.d.ts +14 -14
  209. package/src/view/renderer.js +7 -7
  210. package/src/view/rooteditableelement.d.ts +8 -7
  211. package/src/view/rooteditableelement.js +7 -6
  212. package/src/view/selection.d.ts +66 -64
  213. package/src/view/selection.js +50 -48
  214. package/src/view/styles/background.d.ts +2 -2
  215. package/src/view/styles/background.js +9 -9
  216. package/src/view/styles/border.d.ts +2 -2
  217. package/src/view/styles/border.js +13 -13
  218. package/src/view/styles/margin.d.ts +2 -2
  219. package/src/view/styles/margin.js +5 -5
  220. package/src/view/styles/padding.d.ts +2 -2
  221. package/src/view/styles/padding.js +5 -5
  222. package/src/view/styles/utils.d.ts +24 -24
  223. package/src/view/styles/utils.js +25 -25
  224. package/src/view/stylesmap.d.ts +28 -32
  225. package/src/view/stylesmap.js +52 -39
  226. package/src/view/text.d.ts +11 -11
  227. package/src/view/text.js +10 -10
  228. package/src/view/textproxy.d.ts +33 -32
  229. package/src/view/textproxy.js +23 -22
  230. package/src/view/tokenlist.d.ts +14 -14
  231. package/src/view/tokenlist.js +10 -10
  232. package/src/view/treewalker.d.ts +42 -40
  233. package/src/view/treewalker.js +36 -35
  234. package/src/view/typecheckable.d.ts +76 -75
  235. package/src/view/typecheckable.js +1 -1
  236. package/src/view/uielement.d.ts +22 -21
  237. package/src/view/uielement.js +17 -16
  238. package/src/view/upcastwriter.d.ts +70 -70
  239. package/src/view/upcastwriter.js +42 -42
  240. package/src/view/view.d.ts +70 -69
  241. package/src/view/view.js +56 -55
@@ -5,20 +5,20 @@
5
5
  /**
6
6
  * @module engine/view/position
7
7
  */
8
- import TypeCheckable from './typecheckable.js';
8
+ import { ViewTypeCheckable } from './typecheckable.js';
9
9
  import { CKEditorError, compareArrays } from '@ckeditor/ckeditor5-utils';
10
- import EditableElement from './editableelement.js';
11
- import { default as TreeWalker } from './treewalker.js';
10
+ import { ViewEditableElement } from './editableelement.js';
11
+ import { ViewTreeWalker } from './treewalker.js';
12
12
  /**
13
13
  * Position in the view tree. Position is represented by its parent node and an offset in this parent.
14
14
  *
15
15
  * In order to create a new position instance use the `createPosition*()` factory methods available in:
16
16
  *
17
- * * {@link module:engine/view/view~View}
18
- * * {@link module:engine/view/downcastwriter~DowncastWriter}
19
- * * {@link module:engine/view/upcastwriter~UpcastWriter}
17
+ * * {@link module:engine/view/view~EditingView}
18
+ * * {@link module:engine/view/downcastwriter~ViewDowncastWriter}
19
+ * * {@link module:engine/view/upcastwriter~ViewUpcastWriter}
20
20
  */
21
- export default class Position extends TypeCheckable {
21
+ export class ViewPosition extends ViewTypeCheckable {
22
22
  /**
23
23
  * Position parent.
24
24
  */
@@ -59,13 +59,13 @@ export default class Position extends TypeCheckable {
59
59
  return this.parent.getChild(this.offset - 1) || null;
60
60
  }
61
61
  /**
62
- * Is `true` if position is at the beginning of its {@link module:engine/view/position~Position#parent parent}, `false` otherwise.
62
+ * Is `true` if position is at the beginning of its {@link module:engine/view/position~ViewPosition#parent parent}, `false` otherwise.
63
63
  */
64
64
  get isAtStart() {
65
65
  return this.offset === 0;
66
66
  }
67
67
  /**
68
- * Is `true` if position is at the end of its {@link module:engine/view/position~Position#parent parent}, `false` otherwise.
68
+ * Is `true` if position is at the end of its {@link module:engine/view/position~ViewPosition#parent parent}, `false` otherwise.
69
69
  */
70
70
  get isAtEnd() {
71
71
  const endOffset = this.parent.is('$text') ? this.parent.data.length : this.parent.childCount;
@@ -78,12 +78,12 @@ export default class Position extends TypeCheckable {
78
78
  return this.parent.root;
79
79
  }
80
80
  /**
81
- * {@link module:engine/view/editableelement~EditableElement EditableElement} instance that contains this position, or `null` if
81
+ * {@link module:engine/view/editableelement~ViewEditableElement ViewEditableElement} instance that contains this position, or `null` if
82
82
  * position is not inside an editable element.
83
83
  */
84
84
  get editableElement() {
85
85
  let editable = this.parent;
86
- while (!(editable instanceof EditableElement)) {
86
+ while (!(editable instanceof ViewEditableElement)) {
87
87
  if (editable.parent) {
88
88
  editable = editable.parent;
89
89
  }
@@ -100,14 +100,14 @@ export default class Position extends TypeCheckable {
100
100
  * @returns Shifted position.
101
101
  */
102
102
  getShiftedBy(shift) {
103
- const shifted = Position._createAt(this);
103
+ const shifted = ViewPosition._createAt(this);
104
104
  const offset = shifted.offset + shift;
105
105
  shifted.offset = offset < 0 ? 0 : offset;
106
106
  return shifted;
107
107
  }
108
108
  /**
109
109
  * Gets the farthest position which matches the callback using
110
- * {@link module:engine/view/treewalker~TreeWalker TreeWalker}.
110
+ * {@link module:engine/view/treewalker~ViewTreeWalker TreeWalker}.
111
111
  *
112
112
  * For example:
113
113
  *
@@ -117,14 +117,14 @@ export default class Position extends TypeCheckable {
117
117
  * getLastMatchingPosition( value => false ); // Do not move the position.
118
118
  * ```
119
119
  *
120
- * @param skip Callback function. Gets {@link module:engine/view/treewalker~TreeWalkerValue} and should
120
+ * @param skip Callback function. Gets {@link module:engine/view/treewalker~ViewTreeWalkerValue} and should
121
121
  * return `true` if the value should be skipped or `false` if not.
122
- * @param options Object with configuration options. See {@link module:engine/view/treewalker~TreeWalker}.
122
+ * @param options Object with configuration options. See {@link module:engine/view/treewalker~ViewTreeWalker}.
123
123
  * @returns The position after the last item which matches the `skip` callback test.
124
124
  */
125
125
  getLastMatchingPosition(skip, options = {}) {
126
126
  options.startPosition = this;
127
- const treeWalker = new TreeWalker(options);
127
+ const treeWalker = new ViewTreeWalker(options);
128
128
  treeWalker.skip(skip);
129
129
  return treeWalker.position;
130
130
  }
@@ -142,7 +142,7 @@ export default class Position extends TypeCheckable {
142
142
  }
143
143
  }
144
144
  /**
145
- * Returns a {@link module:engine/view/node~Node} or {@link module:engine/view/documentfragment~DocumentFragment}
145
+ * Returns a {@link module:engine/view/node~ViewNode} or {@link module:engine/view/documentfragment~ViewDocumentFragment}
146
146
  * which is a common ancestor of both positions.
147
147
  */
148
148
  getCommonAncestor(position) {
@@ -168,8 +168,8 @@ export default class Position extends TypeCheckable {
168
168
  * this position is after give one. Two positions may be located inside separate roots and in that situation this
169
169
  * method will still return `false`.
170
170
  *
171
- * @see module:engine/view/position~Position#isAfter
172
- * @see module:engine/view/position~Position#compareWith
171
+ * @see module:engine/view/position~ViewPosition#isAfter
172
+ * @see module:engine/view/position~ViewPosition#compareWith
173
173
  * @param otherPosition Position to compare with.
174
174
  * @returns Returns `true` if this position is before given position.
175
175
  */
@@ -181,8 +181,8 @@ export default class Position extends TypeCheckable {
181
181
  * this position is before give one. Two positions may be located inside separate roots and in that situation this
182
182
  * method will still return `false`.
183
183
  *
184
- * @see module:engine/view/position~Position#isBefore
185
- * @see module:engine/view/position~Position#compareWith
184
+ * @see module:engine/view/position~ViewPosition#isBefore
185
+ * @see module:engine/view/position~ViewPosition#compareWith
186
186
  * @param otherPosition Position to compare with.
187
187
  * @returns Returns `true` if this position is after given position.
188
188
  */
@@ -221,38 +221,38 @@ export default class Position extends TypeCheckable {
221
221
  }
222
222
  }
223
223
  /**
224
- * Creates a {@link module:engine/view/treewalker~TreeWalker TreeWalker} instance with this positions as a start position.
224
+ * Creates a {@link module:engine/view/treewalker~ViewTreeWalker TreeWalker} instance with this positions as a start position.
225
225
  *
226
- * @param options Object with configuration options. See {@link module:engine/view/treewalker~TreeWalker}
226
+ * @param options Object with configuration options. See {@link module:engine/view/treewalker~ViewTreeWalker}
227
227
  */
228
228
  getWalker(options = {}) {
229
229
  options.startPosition = this;
230
- return new TreeWalker(options);
230
+ return new ViewTreeWalker(options);
231
231
  }
232
232
  /**
233
233
  * Clones this position.
234
234
  */
235
235
  clone() {
236
- return new Position(this.parent, this.offset);
236
+ return new ViewPosition(this.parent, this.offset);
237
237
  }
238
238
  /**
239
239
  * Creates position at the given location. The location can be specified as:
240
240
  *
241
- * * a {@link module:engine/view/position~Position position},
241
+ * * a {@link module:engine/view/position~ViewPosition position},
242
242
  * * parent element and offset (offset defaults to `0`),
243
243
  * * parent element and `'end'` (sets position at the end of that element),
244
- * * {@link module:engine/view/item~Item view item} and `'before'` or `'after'` (sets position before or after given view item).
244
+ * * {@link module:engine/view/item~ViewItem view item} and `'before'` or `'after'` (sets position before or after given view item).
245
245
  *
246
246
  * This method is a shortcut to other constructors such as:
247
247
  *
248
- * * {@link module:engine/view/position~Position._createBefore},
249
- * * {@link module:engine/view/position~Position._createAfter}.
248
+ * * {@link module:engine/view/position~ViewPosition._createBefore},
249
+ * * {@link module:engine/view/position~ViewPosition._createAfter}.
250
250
  *
251
251
  * @internal
252
- * @param offset Offset or one of the flags. Used only when first parameter is a {@link module:engine/view/item~Item view item}.
252
+ * @param offset Offset or one of the flags. Used only when first parameter is a {@link module:engine/view/item~ViewItem view item}.
253
253
  */
254
254
  static _createAt(itemOrPosition, offset) {
255
- if (itemOrPosition instanceof Position) {
255
+ if (itemOrPosition instanceof ViewPosition) {
256
256
  return new this(itemOrPosition.parent, itemOrPosition.offset);
257
257
  }
258
258
  else {
@@ -268,14 +268,14 @@ export default class Position extends TypeCheckable {
268
268
  }
269
269
  else if (offset !== 0 && !offset) {
270
270
  /**
271
- * {@link module:engine/view/view~View#createPositionAt `View#createPositionAt()`}
271
+ * {@link module:engine/view/view~EditingView#createPositionAt `View#createPositionAt()`}
272
272
  * requires the offset to be specified when the first parameter is a view item.
273
273
  *
274
274
  * @error view-createpositionat-offset-required
275
275
  */
276
276
  throw new CKEditorError('view-createpositionat-offset-required', node);
277
277
  }
278
- return new Position(node, offset);
278
+ return new ViewPosition(node, offset);
279
279
  }
280
280
  }
281
281
  /**
@@ -285,20 +285,20 @@ export default class Position extends TypeCheckable {
285
285
  * @param item View item after which the position should be located.
286
286
  */
287
287
  static _createAfter(item) {
288
- // TextProxy is not a instance of Node so we need do handle it in specific way.
288
+ // ViewTextProxy is not a instance of Node so we need do handle it in specific way.
289
289
  if (item.is('$textProxy')) {
290
- return new Position(item.textNode, item.offsetInText + item.data.length);
290
+ return new ViewPosition(item.textNode, item.offsetInText + item.data.length);
291
291
  }
292
292
  if (!item.parent) {
293
293
  /**
294
294
  * You cannot make a position after a root.
295
295
  *
296
296
  * @error view-position-after-root
297
- * @param {module:engine/view/node~Node} root A root item.
297
+ * @param {module:engine/view/node~ViewNode} root A root item.
298
298
  */
299
299
  throw new CKEditorError('view-position-after-root', item, { root: item });
300
300
  }
301
- return new Position(item.parent, item.index + 1);
301
+ return new ViewPosition(item.parent, item.index + 1);
302
302
  }
303
303
  /**
304
304
  * Creates a new position before given view item.
@@ -307,24 +307,24 @@ export default class Position extends TypeCheckable {
307
307
  * @param item View item before which the position should be located.
308
308
  */
309
309
  static _createBefore(item) {
310
- // TextProxy is not a instance of Node so we need do handle it in specific way.
310
+ // ViewTextProxy is not a instance of Node so we need do handle it in specific way.
311
311
  if (item.is('$textProxy')) {
312
- return new Position(item.textNode, item.offsetInText);
312
+ return new ViewPosition(item.textNode, item.offsetInText);
313
313
  }
314
314
  if (!item.parent) {
315
315
  /**
316
316
  * You cannot make a position before a root.
317
317
  *
318
318
  * @error view-position-before-root
319
- * @param {module:engine/view/node~Node} root A root item.
319
+ * @param {module:engine/view/node~ViewNode} root A root item.
320
320
  */
321
321
  throw new CKEditorError('view-position-before-root', item, { root: item });
322
322
  }
323
- return new Position(item.parent, item.index);
323
+ return new ViewPosition(item.parent, item.index);
324
324
  }
325
325
  }
326
326
  // The magic of type inference using `is` method is centralized in `TypeCheckable` class.
327
327
  // Proper overload would interfere with that.
328
- Position.prototype.is = function (type) {
328
+ ViewPosition.prototype.is = function (type) {
329
329
  return type === 'position' || type === 'view:position';
330
330
  };
@@ -5,65 +5,66 @@
5
5
  /**
6
6
  * @module engine/view/range
7
7
  */
8
- import TypeCheckable from './typecheckable.js';
9
- import Position from './position.js';
10
- import type DocumentFragment from './documentfragment.js';
11
- import type Element from './element.js';
12
- import type Item from './item.js';
13
- import type Node from './node.js';
14
- import { default as TreeWalker, type TreeWalkerValue, type TreeWalkerOptions } from './treewalker.js';
8
+ import { ViewTypeCheckable } from './typecheckable.js';
9
+ import { ViewPosition } from './position.js';
10
+ import { type ViewDocumentFragment } from './documentfragment.js';
11
+ import { type ViewElement } from './element.js';
12
+ import { type ViewItem } from './item.js';
13
+ import { type ViewNode } from './node.js';
14
+ import { ViewTreeWalker, type ViewTreeWalkerValue, type ViewTreeWalkerOptions } from './treewalker.js';
15
15
  /**
16
- * Range in the view tree. A range is represented by its start and end {@link module:engine/view/position~Position positions}.
16
+ * Range in the view tree. A range is represented by its start and end {@link module:engine/view/position~ViewPosition positions}.
17
17
  *
18
18
  * In order to create a new position instance use the `createPosition*()` factory methods available in:
19
19
  *
20
- * * {@link module:engine/view/view~View}
21
- * * {@link module:engine/view/downcastwriter~DowncastWriter}
22
- * * {@link module:engine/view/upcastwriter~UpcastWriter}
20
+ * * {@link module:engine/view/view~EditingView}
21
+ * * {@link module:engine/view/downcastwriter~ViewDowncastWriter}
22
+ * * {@link module:engine/view/upcastwriter~ViewUpcastWriter}
23
23
  */
24
- export default class Range extends TypeCheckable implements Iterable<TreeWalkerValue> {
24
+ export declare class ViewRange extends ViewTypeCheckable implements Iterable<ViewTreeWalkerValue> {
25
25
  /**
26
26
  * Start position.
27
27
  */
28
- readonly start: Position;
28
+ readonly start: ViewPosition;
29
29
  /**
30
30
  * End position.
31
31
  */
32
- readonly end: Position;
32
+ readonly end: ViewPosition;
33
33
  /**
34
34
  * Creates a range spanning from `start` position to `end` position.
35
35
  *
36
- * **Note:** Constructor creates it's own {@link module:engine/view/position~Position} instances basing on passed values.
36
+ * **Note:** Constructor creates it's own {@link module:engine/view/position~ViewPosition} instances basing on passed values.
37
37
  *
38
38
  * @param start Start position.
39
39
  * @param end End position. If not set, range will be collapsed at the `start` position.
40
40
  */
41
- constructor(start: Position, end?: Position | null);
41
+ constructor(start: ViewPosition, end?: ViewPosition | null);
42
42
  /**
43
43
  * Iterable interface.
44
44
  *
45
- * Iterates over all {@link module:engine/view/item~Item view items} that are in this range and returns
46
- * them together with additional information like length or {@link module:engine/view/position~Position positions},
47
- * grouped as {@link module:engine/view/treewalker~TreeWalkerValue}.
45
+ * Iterates over all {@link module:engine/view/item~ViewItem view items} that are in this range and returns
46
+ * them together with additional information like length or {@link module:engine/view/position~ViewPosition positions},
47
+ * grouped as {@link module:engine/view/treewalker~ViewTreeWalkerValue}.
48
48
  *
49
- * This iterator uses {@link module:engine/view/treewalker~TreeWalker TreeWalker} with `boundaries` set to this range and
49
+ * This iterator uses {@link module:engine/view/treewalker~ViewTreeWalker TreeWalker} with `boundaries` set to this range and
50
50
  * `ignoreElementEnd` option
51
51
  * set to `true`.
52
52
  */
53
- [Symbol.iterator](): IterableIterator<TreeWalkerValue>;
53
+ [Symbol.iterator](): IterableIterator<ViewTreeWalkerValue>;
54
54
  /**
55
55
  * Returns whether the range is collapsed, that is it start and end positions are equal.
56
56
  */
57
57
  get isCollapsed(): boolean;
58
58
  /**
59
- * Returns whether this range is flat, that is if {@link module:engine/view/range~Range#start start} position and
60
- * {@link module:engine/view/range~Range#end end} position are in the same {@link module:engine/view/position~Position#parent parent}.
59
+ * Returns whether this range is flat, that is if {@link module:engine/view/range~ViewRange#start start} position and
60
+ * {@link module:engine/view/range~ViewRange#end end} position are in the same
61
+ * {@link module:engine/view/position~ViewPosition#parent parent}.
61
62
  */
62
63
  get isFlat(): boolean;
63
64
  /**
64
65
  * Range root element.
65
66
  */
66
- get root(): Node | DocumentFragment;
67
+ get root(): ViewNode | ViewDocumentFragment;
67
68
  /**
68
69
  * Creates a maximal range that has the same content as this range but is expanded in both ways (at the beginning
69
70
  * and at the end).
@@ -77,13 +78,13 @@ export default class Range extends TypeCheckable implements Iterable<TreeWalkerV
77
78
  *
78
79
  * Note that in the sample above:
79
80
  *
80
- * - `<p>` have type of {@link module:engine/view/containerelement~ContainerElement},
81
- * - `<b>` have type of {@link module:engine/view/attributeelement~AttributeElement},
82
- * - `<span>` have type of {@link module:engine/view/uielement~UIElement}.
81
+ * - `<p>` have type of {@link module:engine/view/containerelement~ViewContainerElement},
82
+ * - `<b>` have type of {@link module:engine/view/attributeelement~ViewAttributeElement},
83
+ * - `<span>` have type of {@link module:engine/view/uielement~ViewUIElement}.
83
84
  *
84
85
  * @returns Enlarged range.
85
86
  */
86
- getEnlarged(): Range;
87
+ getEnlarged(): ViewRange;
87
88
  /**
88
89
  * Creates a minimum range that has the same content as this range but is trimmed in both ways (at the beginning
89
90
  * and at the end).
@@ -97,42 +98,42 @@ export default class Range extends TypeCheckable implements Iterable<TreeWalkerV
97
98
  *
98
99
  * Note that in the sample above:
99
100
  *
100
- * - `<p>` have type of {@link module:engine/view/containerelement~ContainerElement},
101
- * - `<b>` have type of {@link module:engine/view/attributeelement~AttributeElement},
102
- * - `<span>` have type of {@link module:engine/view/uielement~UIElement}.
101
+ * - `<p>` have type of {@link module:engine/view/containerelement~ViewContainerElement},
102
+ * - `<b>` have type of {@link module:engine/view/attributeelement~ViewAttributeElement},
103
+ * - `<span>` have type of {@link module:engine/view/uielement~ViewUIElement}.
103
104
  *
104
105
  * @returns Shrunk range.
105
106
  */
106
- getTrimmed(): Range;
107
+ getTrimmed(): ViewRange;
107
108
  /**
108
109
  * Two ranges are equal if their start and end positions are equal.
109
110
  *
110
111
  * @param otherRange Range to compare with.
111
112
  * @returns `true` if ranges are equal, `false` otherwise
112
113
  */
113
- isEqual(otherRange: Range): boolean;
114
+ isEqual(otherRange: ViewRange): boolean;
114
115
  /**
115
- * Checks whether this range contains given {@link module:engine/view/position~Position position}.
116
+ * Checks whether this range contains given {@link module:engine/view/position~ViewPosition position}.
116
117
  *
117
118
  * @param position Position to check.
118
- * @returns `true` if given {@link module:engine/view/position~Position position} is contained in this range, `false` otherwise.
119
+ * @returns `true` if given {@link module:engine/view/position~ViewPosition position} is contained in this range, `false` otherwise.
119
120
  */
120
- containsPosition(position: Position): boolean;
121
+ containsPosition(position: ViewPosition): boolean;
121
122
  /**
122
- * Checks whether this range contains given {@link module:engine/view/range~Range range}.
123
+ * Checks whether this range contains given {@link module:engine/view/range~ViewRange range}.
123
124
  *
124
125
  * @param otherRange Range to check.
125
126
  * @param loose Whether the check is loose or strict. If the check is strict (`false`), compared range cannot
126
127
  * start or end at the same position as this range boundaries. If the check is loose (`true`), compared range can start, end or
127
128
  * even be equal to this range. Note that collapsed ranges are always compared in strict mode.
128
- * @returns `true` if given {@link module:engine/view/range~Range range} boundaries are contained by this range, `false`
129
+ * @returns `true` if given {@link module:engine/view/range~ViewRange range} boundaries are contained by this range, `false`
129
130
  * otherwise.
130
131
  */
131
- containsRange(otherRange: Range, loose?: boolean): boolean;
132
+ containsRange(otherRange: ViewRange, loose?: boolean): boolean;
132
133
  /**
133
- * Computes which part(s) of this {@link module:engine/view/range~Range range} is not a part of given
134
- * {@link module:engine/view/range~Range range}.
135
- * Returned array contains zero, one or two {@link module:engine/view/range~Range ranges}.
134
+ * Computes which part(s) of this {@link module:engine/view/range~ViewRange range} is not a part of given
135
+ * {@link module:engine/view/range~ViewRange range}.
136
+ * Returned array contains zero, one or two {@link module:engine/view/range~ViewRange ranges}.
136
137
  *
137
138
  * Examples:
138
139
  *
@@ -162,9 +163,10 @@ export default class Range extends TypeCheckable implements Iterable<TreeWalkerV
162
163
  * @param otherRange Range to differentiate against.
163
164
  * @returns The difference between ranges.
164
165
  */
165
- getDifference(otherRange: Range): Array<Range>;
166
+ getDifference(otherRange: ViewRange): Array<ViewRange>;
166
167
  /**
167
- * Returns an intersection of this {@link module:engine/view/range~Range range} and given {@link module:engine/view/range~Range range}.
168
+ * Returns an intersection of this {@link module:engine/view/range~ViewRange range}
169
+ * and given {@link module:engine/view/range~ViewRange range}.
168
170
  * Intersection is a common part of both of those ranges. If ranges has no common part, returns `null`.
169
171
  *
170
172
  * Examples:
@@ -186,62 +188,62 @@ export default class Range extends TypeCheckable implements Iterable<TreeWalkerV
186
188
  * @param otherRange Range to check for intersection.
187
189
  * @returns A common part of given ranges or `null` if ranges have no common part.
188
190
  */
189
- getIntersection(otherRange: Range): Range | null;
191
+ getIntersection(otherRange: ViewRange): ViewRange | null;
190
192
  /**
191
- * Creates a {@link module:engine/view/treewalker~TreeWalker TreeWalker} instance with this range as a boundary.
193
+ * Creates a {@link module:engine/view/treewalker~ViewTreeWalker TreeWalker} instance with this range as a boundary.
192
194
  *
193
- * @param options Object with configuration options. See {@link module:engine/view/treewalker~TreeWalker}.
195
+ * @param options Object with configuration options. See {@link module:engine/view/treewalker~ViewTreeWalker}.
194
196
  */
195
- getWalker(options?: TreeWalkerOptions): TreeWalker;
197
+ getWalker(options?: ViewTreeWalkerOptions): ViewTreeWalker;
196
198
  /**
197
- * Returns a {@link module:engine/view/node~Node} or {@link module:engine/view/documentfragment~DocumentFragment}
199
+ * Returns a {@link module:engine/view/node~ViewNode} or {@link module:engine/view/documentfragment~ViewDocumentFragment}
198
200
  * which is a common ancestor of range's both ends (in which the entire range is contained).
199
201
  */
200
- getCommonAncestor(): Node | DocumentFragment | null;
202
+ getCommonAncestor(): ViewNode | ViewDocumentFragment | null;
201
203
  /**
202
- * Returns an {@link module:engine/view/element~Element Element} contained by the range.
204
+ * Returns an {@link module:engine/view/element~ViewElement Element} contained by the range.
203
205
  * The element will be returned when it is the **only** node within the range and **fully–contained**
204
206
  * at the same time.
205
207
  */
206
- getContainedElement(): Element | null;
208
+ getContainedElement(): ViewElement | null;
207
209
  /**
208
210
  * Clones this range.
209
211
  */
210
- clone(): Range;
212
+ clone(): ViewRange;
211
213
  /**
212
- * Returns an iterator that iterates over all {@link module:engine/view/item~Item view items} that are in this range and returns
214
+ * Returns an iterator that iterates over all {@link module:engine/view/item~ViewItem view items} that are in this range and returns
213
215
  * them.
214
216
  *
215
- * This method uses {@link module:engine/view/treewalker~TreeWalker} with `boundaries` set to this range and `ignoreElementEnd` option
216
- * set to `true`. However it returns only {@link module:engine/view/item~Item items},
217
- * not {@link module:engine/view/treewalker~TreeWalkerValue}.
217
+ * This method uses {@link module:engine/view/treewalker~ViewTreeWalker} with `boundaries` set to this range
218
+ * and `ignoreElementEnd` option set to `true`. However it returns only {@link module:engine/view/item~ViewItem items},
219
+ * not {@link module:engine/view/treewalker~ViewTreeWalkerValue}.
218
220
  *
219
- * You may specify additional options for the tree walker. See {@link module:engine/view/treewalker~TreeWalker} for
221
+ * You may specify additional options for the tree walker. See {@link module:engine/view/treewalker~ViewTreeWalker} for
220
222
  * a full list of available options.
221
223
  *
222
- * @param options Object with configuration options. See {@link module:engine/view/treewalker~TreeWalker}.
224
+ * @param options Object with configuration options. See {@link module:engine/view/treewalker~ViewTreeWalker}.
223
225
  */
224
- getItems(options?: TreeWalkerOptions): IterableIterator<Item>;
226
+ getItems(options?: ViewTreeWalkerOptions): IterableIterator<ViewItem>;
225
227
  /**
226
- * Returns an iterator that iterates over all {@link module:engine/view/position~Position positions} that are boundaries or
228
+ * Returns an iterator that iterates over all {@link module:engine/view/position~ViewPosition positions} that are boundaries or
227
229
  * contained in this range.
228
230
  *
229
- * This method uses {@link module:engine/view/treewalker~TreeWalker} with `boundaries` set to this range. However it returns only
230
- * {@link module:engine/view/position~Position positions}, not {@link module:engine/view/treewalker~TreeWalkerValue}.
231
+ * This method uses {@link module:engine/view/treewalker~ViewTreeWalker} with `boundaries` set to this range. However it returns only
232
+ * {@link module:engine/view/position~ViewPosition positions}, not {@link module:engine/view/treewalker~ViewTreeWalkerValue}.
231
233
  *
232
- * You may specify additional options for the tree walker. See {@link module:engine/view/treewalker~TreeWalker} for
234
+ * You may specify additional options for the tree walker. See {@link module:engine/view/treewalker~ViewTreeWalker} for
233
235
  * a full list of available options.
234
236
  *
235
- * @param options Object with configuration options. See {@link module:engine/view/treewalker~TreeWalker}.
237
+ * @param options Object with configuration options. See {@link module:engine/view/treewalker~ViewTreeWalker}.
236
238
  */
237
- getPositions(options?: TreeWalkerOptions): IterableIterator<Position>;
239
+ getPositions(options?: ViewTreeWalkerOptions): IterableIterator<ViewPosition>;
238
240
  /**
239
241
  * Checks and returns whether this range intersects with the given range.
240
242
  *
241
243
  * @param otherRange Range to compare with.
242
244
  * @returns True if ranges intersect.
243
245
  */
244
- isIntersecting(otherRange: Range): boolean;
246
+ isIntersecting(otherRange: ViewRange): boolean;
245
247
  /**
246
248
  * Creates a range from the given parents and offsets.
247
249
  *
@@ -252,28 +254,28 @@ export default class Range extends TypeCheckable implements Iterable<TreeWalkerV
252
254
  * @param endOffset End position offset.
253
255
  * @returns Created range.
254
256
  */
255
- static _createFromParentsAndOffsets(startElement: Element | DocumentFragment, startOffset: number, endElement: Element | DocumentFragment, endOffset: number): Range;
257
+ static _createFromParentsAndOffsets(startElement: ViewElement | ViewDocumentFragment, startOffset: number, endElement: ViewElement | ViewDocumentFragment, endOffset: number): ViewRange;
256
258
  /**
257
- * Creates a new range, spreading from specified {@link module:engine/view/position~Position position} to a position moved by
259
+ * Creates a new range, spreading from specified {@link module:engine/view/position~ViewPosition position} to a position moved by
258
260
  * given `shift`. If `shift` is a negative value, shifted position is treated as the beginning of the range.
259
261
  *
260
262
  * @internal
261
263
  * @param position Beginning of the range.
262
264
  * @param shift How long the range should be.
263
265
  */
264
- static _createFromPositionAndShift(position: Position, shift: number): Range;
266
+ static _createFromPositionAndShift(position: ViewPosition, shift: number): ViewRange;
265
267
  /**
266
- * Creates a range inside an {@link module:engine/view/element~Element element} which starts before the first child of
268
+ * Creates a range inside an {@link module:engine/view/element~ViewElement element} which starts before the first child of
267
269
  * that element and ends after the last child of that element.
268
270
  *
269
271
  * @internal
270
272
  * @param element Element which is a parent for the range.
271
273
  */
272
- static _createIn(element: Element | DocumentFragment): Range;
274
+ static _createIn(element: ViewElement | ViewDocumentFragment): ViewRange;
273
275
  /**
274
- * Creates a range that starts before given {@link module:engine/view/item~Item view item} and ends after it.
276
+ * Creates a range that starts before given {@link module:engine/view/item~ViewItem view item} and ends after it.
275
277
  *
276
278
  * @internal
277
279
  */
278
- static _createOn(item: Item): Range;
280
+ static _createOn(item: ViewItem): ViewRange;
279
281
  }