@ckeditor/ckeditor5-engine 36.0.1 → 37.0.0-alpha.1

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 (203) hide show
  1. package/README.md +1 -1
  2. package/package.json +25 -24
  3. package/src/controller/datacontroller.d.ts +331 -0
  4. package/src/controller/datacontroller.js +72 -116
  5. package/src/controller/editingcontroller.d.ts +98 -0
  6. package/src/controller/editingcontroller.js +22 -46
  7. package/src/conversion/conversion.d.ts +476 -0
  8. package/src/conversion/conversion.js +328 -347
  9. package/src/conversion/conversionhelpers.d.ts +26 -0
  10. package/src/conversion/conversionhelpers.js +1 -5
  11. package/src/conversion/downcastdispatcher.d.ts +547 -0
  12. package/src/conversion/downcastdispatcher.js +74 -152
  13. package/src/conversion/downcasthelpers.d.ts +1226 -0
  14. package/src/conversion/downcasthelpers.js +843 -762
  15. package/src/conversion/mapper.d.ts +503 -0
  16. package/src/conversion/mapper.js +84 -99
  17. package/src/conversion/modelconsumable.d.ts +201 -0
  18. package/src/conversion/modelconsumable.js +96 -99
  19. package/src/conversion/upcastdispatcher.d.ts +492 -0
  20. package/src/conversion/upcastdispatcher.js +73 -100
  21. package/src/conversion/upcasthelpers.d.ts +499 -0
  22. package/src/conversion/upcasthelpers.js +406 -373
  23. package/src/conversion/viewconsumable.d.ts +369 -0
  24. package/src/conversion/viewconsumable.js +139 -173
  25. package/src/dataprocessor/basichtmlwriter.d.ts +18 -0
  26. package/src/dataprocessor/basichtmlwriter.js +0 -9
  27. package/src/dataprocessor/dataprocessor.d.ts +61 -0
  28. package/src/dataprocessor/htmldataprocessor.d.ts +76 -0
  29. package/src/dataprocessor/htmldataprocessor.js +6 -28
  30. package/src/dataprocessor/htmlwriter.d.ts +16 -0
  31. package/src/dataprocessor/xmldataprocessor.d.ts +90 -0
  32. package/src/dataprocessor/xmldataprocessor.js +8 -40
  33. package/src/dev-utils/model.d.ts +124 -0
  34. package/src/dev-utils/model.js +41 -38
  35. package/src/dev-utils/operationreplayer.d.ts +51 -0
  36. package/src/dev-utils/operationreplayer.js +6 -14
  37. package/src/dev-utils/utils.d.ts +37 -0
  38. package/src/dev-utils/utils.js +5 -18
  39. package/src/dev-utils/view.d.ts +319 -0
  40. package/src/dev-utils/view.js +205 -226
  41. package/src/index.d.ts +108 -0
  42. package/src/index.js +4 -0
  43. package/src/model/batch.d.ts +106 -0
  44. package/src/model/differ.d.ts +329 -0
  45. package/src/model/document.d.ts +246 -0
  46. package/src/model/document.js +1 -1
  47. package/src/model/documentfragment.d.ts +196 -0
  48. package/src/model/documentfragment.js +2 -2
  49. package/src/model/documentselection.d.ts +420 -0
  50. package/src/model/element.d.ts +165 -0
  51. package/src/model/history.d.ts +114 -0
  52. package/src/model/item.d.ts +14 -0
  53. package/src/model/liveposition.d.ts +77 -0
  54. package/src/model/liverange.d.ts +102 -0
  55. package/src/model/markercollection.d.ts +335 -0
  56. package/src/model/model.d.ts +885 -0
  57. package/src/model/model.js +59 -81
  58. package/src/model/node.d.ts +256 -0
  59. package/src/model/nodelist.d.ts +91 -0
  60. package/src/model/operation/attributeoperation.d.ts +98 -0
  61. package/src/model/operation/detachoperation.d.ts +55 -0
  62. package/src/model/operation/insertoperation.d.ts +85 -0
  63. package/src/model/operation/markeroperation.d.ts +86 -0
  64. package/src/model/operation/mergeoperation.d.ts +95 -0
  65. package/src/model/operation/mergeoperation.js +1 -1
  66. package/src/model/operation/moveoperation.d.ts +91 -0
  67. package/src/model/operation/nooperation.d.ts +33 -0
  68. package/src/model/operation/operation.d.ts +89 -0
  69. package/src/model/operation/operationfactory.d.ts +18 -0
  70. package/src/model/operation/renameoperation.d.ts +78 -0
  71. package/src/model/operation/rootattributeoperation.d.ts +97 -0
  72. package/src/model/operation/rootattributeoperation.js +1 -1
  73. package/src/model/operation/splitoperation.d.ts +104 -0
  74. package/src/model/operation/splitoperation.js +1 -1
  75. package/src/model/operation/transform.d.ts +100 -0
  76. package/src/model/operation/utils.d.ts +71 -0
  77. package/src/model/operation/utils.js +1 -1
  78. package/src/model/position.d.ts +539 -0
  79. package/src/model/position.js +1 -1
  80. package/src/model/range.d.ts +458 -0
  81. package/src/model/range.js +1 -1
  82. package/src/model/rootelement.d.ts +40 -0
  83. package/src/model/schema.d.ts +1176 -0
  84. package/src/model/schema.js +19 -19
  85. package/src/model/selection.d.ts +472 -0
  86. package/src/model/text.d.ts +66 -0
  87. package/src/model/text.js +0 -2
  88. package/src/model/textproxy.d.ts +144 -0
  89. package/src/model/treewalker.d.ts +186 -0
  90. package/src/model/treewalker.js +19 -10
  91. package/src/model/typecheckable.d.ts +285 -0
  92. package/src/model/utils/autoparagraphing.d.ts +37 -0
  93. package/src/model/utils/deletecontent.d.ts +58 -0
  94. package/src/model/utils/findoptimalinsertionrange.d.ts +32 -0
  95. package/src/model/utils/getselectedcontent.d.ts +30 -0
  96. package/src/model/utils/insertcontent.d.ts +46 -0
  97. package/src/model/utils/insertcontent.js +2 -12
  98. package/src/model/utils/insertobject.d.ts +44 -0
  99. package/src/model/utils/insertobject.js +3 -14
  100. package/src/model/utils/modifyselection.d.ts +48 -0
  101. package/src/model/utils/selection-post-fixer.d.ts +65 -0
  102. package/src/model/writer.d.ts +823 -0
  103. package/src/model/writer.js +6 -61
  104. package/src/view/attributeelement.d.ts +108 -0
  105. package/src/view/attributeelement.js +25 -69
  106. package/src/view/containerelement.d.ts +49 -0
  107. package/src/view/containerelement.js +10 -43
  108. package/src/view/datatransfer.d.ts +75 -0
  109. package/src/view/document.d.ts +184 -0
  110. package/src/view/document.js +15 -84
  111. package/src/view/documentfragment.d.ts +149 -0
  112. package/src/view/documentfragment.js +39 -81
  113. package/src/view/documentselection.d.ts +306 -0
  114. package/src/view/documentselection.js +42 -143
  115. package/src/view/domconverter.d.ts +650 -0
  116. package/src/view/domconverter.js +157 -283
  117. package/src/view/downcastwriter.d.ts +996 -0
  118. package/src/view/downcastwriter.js +259 -426
  119. package/src/view/editableelement.d.ts +52 -0
  120. package/src/view/editableelement.js +9 -49
  121. package/src/view/element.d.ts +468 -0
  122. package/src/view/element.js +150 -222
  123. package/src/view/elementdefinition.d.ts +87 -0
  124. package/src/view/emptyelement.d.ts +41 -0
  125. package/src/view/emptyelement.js +11 -44
  126. package/src/view/filler.d.ts +111 -0
  127. package/src/view/filler.js +24 -21
  128. package/src/view/item.d.ts +14 -0
  129. package/src/view/matcher.d.ts +486 -0
  130. package/src/view/matcher.js +247 -218
  131. package/src/view/node.d.ts +163 -0
  132. package/src/view/node.js +26 -100
  133. package/src/view/observer/arrowkeysobserver.d.ts +41 -0
  134. package/src/view/observer/arrowkeysobserver.js +0 -13
  135. package/src/view/observer/bubblingemittermixin.d.ts +166 -0
  136. package/src/view/observer/bubblingemittermixin.js +36 -25
  137. package/src/view/observer/bubblingeventinfo.d.ts +47 -0
  138. package/src/view/observer/bubblingeventinfo.js +3 -29
  139. package/src/view/observer/clickobserver.d.ts +43 -0
  140. package/src/view/observer/clickobserver.js +9 -19
  141. package/src/view/observer/compositionobserver.d.ts +82 -0
  142. package/src/view/observer/compositionobserver.js +13 -42
  143. package/src/view/observer/domeventdata.d.ts +50 -0
  144. package/src/view/observer/domeventdata.js +5 -30
  145. package/src/view/observer/domeventobserver.d.ts +69 -0
  146. package/src/view/observer/domeventobserver.js +19 -21
  147. package/src/view/observer/fakeselectionobserver.d.ts +43 -0
  148. package/src/view/observer/fakeselectionobserver.js +0 -16
  149. package/src/view/observer/focusobserver.d.ts +82 -0
  150. package/src/view/observer/focusobserver.js +14 -40
  151. package/src/view/observer/inputobserver.d.ts +86 -0
  152. package/src/view/observer/inputobserver.js +18 -64
  153. package/src/view/observer/keyobserver.d.ts +66 -0
  154. package/src/view/observer/keyobserver.js +8 -42
  155. package/src/view/observer/mouseobserver.d.ts +89 -0
  156. package/src/view/observer/mouseobserver.js +8 -28
  157. package/src/view/observer/mutationobserver.d.ts +82 -0
  158. package/src/view/observer/mutationobserver.js +7 -37
  159. package/src/view/observer/observer.d.ts +84 -0
  160. package/src/view/observer/observer.js +12 -25
  161. package/src/view/observer/selectionobserver.d.ts +144 -0
  162. package/src/view/observer/selectionobserver.js +17 -107
  163. package/src/view/observer/tabobserver.d.ts +42 -0
  164. package/src/view/observer/tabobserver.js +0 -14
  165. package/src/view/placeholder.d.ts +85 -0
  166. package/src/view/placeholder.js +26 -43
  167. package/src/view/position.d.ts +189 -0
  168. package/src/view/position.js +36 -83
  169. package/src/view/range.d.ts +279 -0
  170. package/src/view/range.js +79 -122
  171. package/src/view/rawelement.d.ts +73 -0
  172. package/src/view/rawelement.js +34 -48
  173. package/src/view/renderer.d.ts +265 -0
  174. package/src/view/renderer.js +105 -193
  175. package/src/view/rooteditableelement.d.ts +41 -0
  176. package/src/view/rooteditableelement.js +12 -40
  177. package/src/view/selection.d.ts +375 -0
  178. package/src/view/selection.js +79 -153
  179. package/src/view/styles/background.d.ts +33 -0
  180. package/src/view/styles/background.js +14 -12
  181. package/src/view/styles/border.d.ts +43 -0
  182. package/src/view/styles/border.js +58 -48
  183. package/src/view/styles/margin.d.ts +29 -0
  184. package/src/view/styles/margin.js +13 -11
  185. package/src/view/styles/padding.d.ts +29 -0
  186. package/src/view/styles/padding.js +13 -11
  187. package/src/view/styles/utils.d.ts +93 -0
  188. package/src/view/styles/utils.js +22 -48
  189. package/src/view/stylesmap.d.ts +675 -0
  190. package/src/view/stylesmap.js +249 -244
  191. package/src/view/text.d.ts +74 -0
  192. package/src/view/text.js +16 -46
  193. package/src/view/textproxy.d.ts +97 -0
  194. package/src/view/textproxy.js +10 -59
  195. package/src/view/treewalker.d.ts +195 -0
  196. package/src/view/treewalker.js +43 -106
  197. package/src/view/typecheckable.d.ts +448 -0
  198. package/src/view/uielement.d.ts +96 -0
  199. package/src/view/uielement.js +29 -63
  200. package/src/view/upcastwriter.d.ts +417 -0
  201. package/src/view/upcastwriter.js +86 -157
  202. package/src/view/view.d.ts +417 -0
  203. package/src/view/view.js +47 -175
@@ -17,8 +17,7 @@ export default class TreeWalker {
17
17
  /**
18
18
  * Creates a range iterator. All parameters are optional, but you have to specify either `boundaries` or `startPosition`.
19
19
  *
20
- * @constructor
21
- * @param {TODO ~TreeWalkerOptions} options Object with configuration.
20
+ * @param options Object with configuration.
22
21
  */
23
22
  constructor(options = {}) {
24
23
  if (!options.boundaries && !options.startPosition) {
@@ -37,112 +36,62 @@ export default class TreeWalker {
37
36
  */
38
37
  throw new CKEditorError('view-tree-walker-unknown-direction', options.startPosition, { direction: options.direction });
39
38
  }
40
- /**
41
- * Iterator boundaries.
42
- *
43
- * When the iterator is walking `'forward'` on the end of boundary or is walking `'backward'`
44
- * on the start of boundary, then `{ done: true }` is returned.
45
- *
46
- * If boundaries are not defined they are set before first and after last child of the root node.
47
- *
48
- * @readonly
49
- * @member {module:engine/view/range~Range} module:engine/view/treewalker~TreeWalker#boundaries
50
- */
51
39
  this.boundaries = options.boundaries || null;
52
- /**
53
- * Iterator position. If start position is not defined then position depends on {@link #direction}. If direction is
54
- * `'forward'` position starts form the beginning, when direction is `'backward'` position starts from the end.
55
- *
56
- * @readonly
57
- * @member {module:engine/view/position~Position} module:engine/view/treewalker~TreeWalker#position
58
- */
59
40
  if (options.startPosition) {
60
- this.position = Position._createAt(options.startPosition);
41
+ this._position = Position._createAt(options.startPosition);
61
42
  }
62
43
  else {
63
- this.position = Position._createAt(options.boundaries[options.direction == 'backward' ? 'end' : 'start']);
44
+ this._position = Position._createAt(options.boundaries[options.direction == 'backward' ? 'end' : 'start']);
64
45
  }
65
- /**
66
- * Walking direction. Defaults `'forward'`.
67
- *
68
- * @readonly
69
- * @member {'backward'|'forward'} module:engine/view/treewalker~TreeWalker#direction
70
- */
71
46
  this.direction = options.direction || 'forward';
72
- /**
73
- * Flag indicating whether all characters from {@link module:engine/view/text~Text} should be returned as one
74
- * {@link module:engine/view/text~Text} or one by one as {@link module:engine/view/textproxy~TextProxy}.
75
- *
76
- * @readonly
77
- * @member {Boolean} module:engine/view/treewalker~TreeWalker#singleCharacters
78
- */
79
47
  this.singleCharacters = !!options.singleCharacters;
80
- /**
81
- * Flag indicating whether iterator should enter elements or not. If the iterator is shallow child nodes of any
82
- * iterated node will not be returned along with `elementEnd` tag.
83
- *
84
- * @readonly
85
- * @member {Boolean} module:engine/view/treewalker~TreeWalker#shallow
86
- */
87
48
  this.shallow = !!options.shallow;
88
- /**
89
- * Flag indicating whether iterator should ignore `elementEnd` tags. If set to `true`, walker will not
90
- * return a parent node of the start position. Each {@link module:engine/view/element~Element} will be returned once.
91
- * When set to `false` each element might be returned twice: for `'elementStart'` and `'elementEnd'`.
92
- *
93
- * @readonly
94
- * @member {Boolean} module:engine/view/treewalker~TreeWalker#ignoreElementEnd
95
- */
96
49
  this.ignoreElementEnd = !!options.ignoreElementEnd;
97
- /**
98
- * Start boundary parent.
99
- *
100
- * @private
101
- * @member {module:engine/view/node~Node} module:engine/view/treewalker~TreeWalker#_boundaryStartParent
102
- */
103
50
  this._boundaryStartParent = this.boundaries ? this.boundaries.start.parent : null;
104
- /**
105
- * End boundary parent.
106
- *
107
- * @private
108
- * @member {module:engine/view/node~Node} module:engine/view/treewalker~TreeWalker#_boundaryEndParent
109
- */
110
51
  this._boundaryEndParent = this.boundaries ? this.boundaries.end.parent : null;
111
52
  }
112
53
  /**
113
54
  * Iterable interface.
114
- *
115
- * @returns {Iterable.<module:engine/view/treewalker~TreeWalkerValue>}
116
55
  */
117
56
  [Symbol.iterator]() {
118
57
  return this;
119
58
  }
59
+ /**
60
+ * Iterator position. If start position is not defined then position depends on {@link #direction}. If direction is
61
+ * `'forward'` position starts form the beginning, when direction is `'backward'` position starts from the end.
62
+ */
63
+ get position() {
64
+ return this._position;
65
+ }
120
66
  /**
121
67
  * Moves {@link #position} in the {@link #direction} skipping values as long as the callback function returns `true`.
122
68
  *
123
69
  * For example:
124
70
  *
125
- * walker.skip( value => value.type == 'text' ); // <p>{}foo</p> -> <p>foo[]</p>
126
- * walker.skip( value => true ); // Move the position to the end: <p>{}foo</p> -> <p>foo</p>[]
127
- * walker.skip( value => false ); // Do not move the position.
71
+ * ```ts
72
+ * walker.skip( value => value.type == 'text' ); // <p>{}foo</p> -> <p>foo[]</p>
73
+ * walker.skip( value => true ); // Move the position to the end: <p>{}foo</p> -> <p>foo</p>[]
74
+ * walker.skip( value => false ); // Do not move the position.
75
+ * ```
128
76
  *
129
- * @param {Function} skip Callback function. Gets {@link module:engine/view/treewalker~TreeWalkerValue} and should
77
+ * @param skip Callback function. Gets {@link module:engine/view/treewalker~TreeWalkerValue} and should
130
78
  * return `true` if the value should be skipped or `false` if not.
131
79
  */
132
80
  skip(skip) {
133
- let done, value, prevPosition;
81
+ let nextResult;
82
+ let prevPosition;
134
83
  do {
135
84
  prevPosition = this.position;
136
- ({ done, value } = this.next());
137
- } while (!done && skip(value));
138
- if (!done) {
139
- this.position = prevPosition;
85
+ nextResult = this.next();
86
+ } while (!nextResult.done && skip(nextResult.value));
87
+ if (!nextResult.done) {
88
+ this._position = prevPosition;
140
89
  }
141
90
  }
142
91
  /**
143
92
  * Gets the next tree walker's value.
144
93
  *
145
- * @returns {module:engine/view/treewalker~TreeWalkerValue} Object implementing iterator interface, returning
94
+ * @returns Object implementing iterator interface, returning
146
95
  * information about taken step.
147
96
  */
148
97
  next() {
@@ -155,11 +104,6 @@ export default class TreeWalker {
155
104
  }
156
105
  /**
157
106
  * Makes a step forward in view. Moves the {@link #position} to the next position and returns the encountered value.
158
- *
159
- * @private
160
- * @returns {Object}
161
- * @returns {Boolean} return.done `true` if iterator is done, `false` otherwise.
162
- * @returns {module:engine/view/treewalker~TreeWalkerValue} return.value Information about taken step.
163
107
  */
164
108
  _next() {
165
109
  let position = this.position.clone();
@@ -179,7 +123,7 @@ export default class TreeWalker {
179
123
  if (parent instanceof Text) {
180
124
  if (position.isAtEnd) {
181
125
  // Prevent returning "elementEnd" for Text node. Skip that value and return the next walker step.
182
- this.position = Position._createAfter(parent);
126
+ this._position = Position._createAfter(parent);
183
127
  return this._next();
184
128
  }
185
129
  node = parent.data[position.offset];
@@ -194,13 +138,13 @@ export default class TreeWalker {
194
138
  else {
195
139
  position.offset++;
196
140
  }
197
- this.position = position;
141
+ this._position = position;
198
142
  return this._formatReturnValue('elementStart', node, previousPosition, position, 1);
199
143
  }
200
144
  else if (node instanceof Text) {
201
145
  if (this.singleCharacters) {
202
146
  position = new Position(node, 0);
203
- this.position = position;
147
+ this._position = position;
204
148
  return this._next();
205
149
  }
206
150
  else {
@@ -217,7 +161,7 @@ export default class TreeWalker {
217
161
  // If not just keep moving forward.
218
162
  position.offset++;
219
163
  }
220
- this.position = position;
164
+ this._position = position;
221
165
  return this._formatReturnValue('text', item, previousPosition, position, charactersCount);
222
166
  }
223
167
  }
@@ -233,13 +177,13 @@ export default class TreeWalker {
233
177
  }
234
178
  const textProxy = new TextProxy(parent, position.offset, textLength);
235
179
  position.offset += textLength;
236
- this.position = position;
180
+ this._position = position;
237
181
  return this._formatReturnValue('text', textProxy, previousPosition, position, textLength);
238
182
  }
239
183
  else {
240
184
  // `node` is not set, we reached the end of current `parent`.
241
185
  position = Position._createAfter(parent);
242
- this.position = position;
186
+ this._position = position;
243
187
  if (this.ignoreElementEnd) {
244
188
  return this._next();
245
189
  }
@@ -250,11 +194,6 @@ export default class TreeWalker {
250
194
  }
251
195
  /**
252
196
  * Makes a step backward in view. Moves the {@link #position} to the previous position and returns the encountered value.
253
- *
254
- * @private
255
- * @returns {Object}
256
- * @returns {Boolean} return.done True if iterator is done.
257
- * @returns {module:engine/view/treewalker~TreeWalkerValue} return.value Information about taken step.
258
197
  */
259
198
  _previous() {
260
199
  let position = this.position.clone();
@@ -274,7 +213,7 @@ export default class TreeWalker {
274
213
  if (parent instanceof Text) {
275
214
  if (position.isAtStart) {
276
215
  // Prevent returning "elementStart" for Text node. Skip that value and return the next walker step.
277
- this.position = Position._createBefore(parent);
216
+ this._position = Position._createBefore(parent);
278
217
  return this._previous();
279
218
  }
280
219
  node = parent.data[position.offset - 1];
@@ -285,7 +224,7 @@ export default class TreeWalker {
285
224
  if (node instanceof Element) {
286
225
  if (!this.shallow) {
287
226
  position = new Position(node, node.childCount);
288
- this.position = position;
227
+ this._position = position;
289
228
  if (this.ignoreElementEnd) {
290
229
  return this._previous();
291
230
  }
@@ -295,14 +234,14 @@ export default class TreeWalker {
295
234
  }
296
235
  else {
297
236
  position.offset--;
298
- this.position = position;
237
+ this._position = position;
299
238
  return this._formatReturnValue('elementStart', node, previousPosition, position, 1);
300
239
  }
301
240
  }
302
241
  else if (node instanceof Text) {
303
242
  if (this.singleCharacters) {
304
243
  position = new Position(node, node.data.length);
305
- this.position = position;
244
+ this._position = position;
306
245
  return this._previous();
307
246
  }
308
247
  else {
@@ -320,7 +259,7 @@ export default class TreeWalker {
320
259
  // If not just keep moving backward.
321
260
  position.offset--;
322
261
  }
323
- this.position = position;
262
+ this._position = position;
324
263
  return this._formatReturnValue('text', item, previousPosition, position, charactersCount);
325
264
  }
326
265
  }
@@ -336,26 +275,24 @@ export default class TreeWalker {
336
275
  }
337
276
  position.offset -= textLength;
338
277
  const textProxy = new TextProxy(parent, position.offset, textLength);
339
- this.position = position;
278
+ this._position = position;
340
279
  return this._formatReturnValue('text', textProxy, previousPosition, position, textLength);
341
280
  }
342
281
  else {
343
282
  // `node` is not set, we reached the beginning of current `parent`.
344
283
  position = Position._createBefore(parent);
345
- this.position = position;
284
+ this._position = position;
346
285
  return this._formatReturnValue('elementStart', parent, previousPosition, position, 1);
347
286
  }
348
287
  }
349
288
  /**
350
289
  * Format returned data and adjust `previousPosition` and `nextPosition` if reach the bound of the {@link module:engine/view/text~Text}.
351
290
  *
352
- * @private
353
- * @param {module:engine/view/treewalker~TreeWalkerValueType} type Type of step.
354
- * @param {module:engine/view/item~Item} item Item between old and new position.
355
- * @param {module:engine/view/position~Position} previousPosition Previous position of iterator.
356
- * @param {module:engine/view/position~Position} nextPosition Next position of iterator.
357
- * @param {Number} [length] Length of the item.
358
- * @returns {module:engine/view/treewalker~TreeWalkerValue}
291
+ * @param type Type of step.
292
+ * @param item Item between old and new position.
293
+ * @param previousPosition Previous position of iterator.
294
+ * @param nextPosition Next position of iterator.
295
+ * @param length Length of the item.
359
296
  */
360
297
  _formatReturnValue(type, item, previousPosition, nextPosition, length) {
361
298
  // Text is a specific parent, because contains string instead of children.
@@ -368,7 +305,7 @@ export default class TreeWalker {
368
305
  if (this.direction == 'forward' && !(this.boundaries && this.boundaries.end.isEqual(this.position))) {
369
306
  nextPosition = Position._createAfter(item.textNode);
370
307
  // When we change nextPosition of returned value we need also update walker current position.
371
- this.position = nextPosition;
308
+ this._position = nextPosition;
372
309
  }
373
310
  else {
374
311
  previousPosition = Position._createAfter(item.textNode);
@@ -379,7 +316,7 @@ export default class TreeWalker {
379
316
  if (this.direction == 'backward' && !(this.boundaries && this.boundaries.start.isEqual(this.position))) {
380
317
  nextPosition = Position._createBefore(item.textNode);
381
318
  // When we change nextPosition of returned value we need also update walker current position.
382
- this.position = nextPosition;
319
+ this._position = nextPosition;
383
320
  }
384
321
  else {
385
322
  previousPosition = Position._createBefore(item.textNode);