@ckeditor/ckeditor5-engine 36.0.0 → 37.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 (201) hide show
  1. package/README.md +1 -1
  2. package/package.json +24 -23
  3. package/src/controller/datacontroller.d.ts +331 -0
  4. package/src/controller/datacontroller.js +62 -109
  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 +499 -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 +177 -0
  24. package/src/conversion/viewconsumable.js +157 -162
  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 +105 -0
  42. package/src/index.js +1 -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 +245 -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 +812 -0
  57. package/src/model/model.js +59 -30
  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/moveoperation.d.ts +91 -0
  66. package/src/model/operation/nooperation.d.ts +33 -0
  67. package/src/model/operation/operation.d.ts +89 -0
  68. package/src/model/operation/operationfactory.d.ts +18 -0
  69. package/src/model/operation/renameoperation.d.ts +78 -0
  70. package/src/model/operation/rootattributeoperation.d.ts +97 -0
  71. package/src/model/operation/rootattributeoperation.js +1 -1
  72. package/src/model/operation/splitoperation.d.ts +104 -0
  73. package/src/model/operation/transform.d.ts +100 -0
  74. package/src/model/operation/utils.d.ts +71 -0
  75. package/src/model/position.d.ts +539 -0
  76. package/src/model/position.js +1 -1
  77. package/src/model/range.d.ts +458 -0
  78. package/src/model/range.js +1 -1
  79. package/src/model/rootelement.d.ts +40 -0
  80. package/src/model/schema.d.ts +1176 -0
  81. package/src/model/schema.js +15 -15
  82. package/src/model/selection.d.ts +472 -0
  83. package/src/model/text.d.ts +66 -0
  84. package/src/model/text.js +0 -2
  85. package/src/model/textproxy.d.ts +144 -0
  86. package/src/model/treewalker.d.ts +186 -0
  87. package/src/model/treewalker.js +19 -10
  88. package/src/model/typecheckable.d.ts +255 -0
  89. package/src/model/utils/autoparagraphing.d.ts +37 -0
  90. package/src/model/utils/deletecontent.d.ts +58 -0
  91. package/src/model/utils/findoptimalinsertionrange.d.ts +32 -0
  92. package/src/model/utils/getselectedcontent.d.ts +30 -0
  93. package/src/model/utils/insertcontent.d.ts +46 -0
  94. package/src/model/utils/insertcontent.js +2 -12
  95. package/src/model/utils/insertobject.d.ts +44 -0
  96. package/src/model/utils/insertobject.js +3 -14
  97. package/src/model/utils/modifyselection.d.ts +48 -0
  98. package/src/model/utils/selection-post-fixer.d.ts +65 -0
  99. package/src/model/writer.d.ts +726 -0
  100. package/src/model/writer.js +6 -4
  101. package/src/view/attributeelement.d.ts +108 -0
  102. package/src/view/attributeelement.js +25 -69
  103. package/src/view/containerelement.d.ts +49 -0
  104. package/src/view/containerelement.js +10 -43
  105. package/src/view/datatransfer.d.ts +75 -0
  106. package/src/view/datatransfer.js +24 -27
  107. package/src/view/document.d.ts +184 -0
  108. package/src/view/document.js +15 -84
  109. package/src/view/documentfragment.d.ts +150 -0
  110. package/src/view/documentfragment.js +40 -81
  111. package/src/view/documentselection.d.ts +219 -0
  112. package/src/view/documentselection.js +75 -121
  113. package/src/view/domconverter.d.ts +620 -0
  114. package/src/view/domconverter.js +159 -276
  115. package/src/view/downcastwriter.d.ts +804 -0
  116. package/src/view/downcastwriter.js +336 -380
  117. package/src/view/editableelement.d.ts +52 -0
  118. package/src/view/editableelement.js +9 -49
  119. package/src/view/element.d.ts +466 -0
  120. package/src/view/element.js +150 -222
  121. package/src/view/elementdefinition.d.ts +87 -0
  122. package/src/view/emptyelement.d.ts +41 -0
  123. package/src/view/emptyelement.js +11 -44
  124. package/src/view/filler.d.ts +111 -0
  125. package/src/view/filler.js +24 -21
  126. package/src/view/item.d.ts +14 -0
  127. package/src/view/matcher.d.ts +486 -0
  128. package/src/view/matcher.js +247 -218
  129. package/src/view/node.d.ts +160 -0
  130. package/src/view/node.js +26 -100
  131. package/src/view/observer/arrowkeysobserver.d.ts +41 -0
  132. package/src/view/observer/arrowkeysobserver.js +0 -13
  133. package/src/view/observer/bubblingemittermixin.d.ts +166 -0
  134. package/src/view/observer/bubblingemittermixin.js +36 -25
  135. package/src/view/observer/bubblingeventinfo.d.ts +47 -0
  136. package/src/view/observer/bubblingeventinfo.js +3 -29
  137. package/src/view/observer/clickobserver.d.ts +43 -0
  138. package/src/view/observer/clickobserver.js +9 -19
  139. package/src/view/observer/compositionobserver.d.ts +82 -0
  140. package/src/view/observer/compositionobserver.js +13 -42
  141. package/src/view/observer/domeventdata.d.ts +50 -0
  142. package/src/view/observer/domeventdata.js +5 -30
  143. package/src/view/observer/domeventobserver.d.ts +69 -0
  144. package/src/view/observer/domeventobserver.js +19 -21
  145. package/src/view/observer/fakeselectionobserver.d.ts +46 -0
  146. package/src/view/observer/fakeselectionobserver.js +2 -15
  147. package/src/view/observer/focusobserver.d.ts +82 -0
  148. package/src/view/observer/focusobserver.js +14 -40
  149. package/src/view/observer/inputobserver.d.ts +86 -0
  150. package/src/view/observer/inputobserver.js +18 -64
  151. package/src/view/observer/keyobserver.d.ts +67 -0
  152. package/src/view/observer/keyobserver.js +8 -42
  153. package/src/view/observer/mouseobserver.d.ts +89 -0
  154. package/src/view/observer/mouseobserver.js +8 -28
  155. package/src/view/observer/mutationobserver.d.ts +82 -0
  156. package/src/view/observer/mutationobserver.js +7 -37
  157. package/src/view/observer/observer.d.ts +84 -0
  158. package/src/view/observer/observer.js +12 -25
  159. package/src/view/observer/selectionobserver.d.ts +143 -0
  160. package/src/view/observer/selectionobserver.js +9 -99
  161. package/src/view/observer/tabobserver.d.ts +42 -0
  162. package/src/view/observer/tabobserver.js +0 -14
  163. package/src/view/placeholder.d.ts +85 -0
  164. package/src/view/placeholder.js +26 -43
  165. package/src/view/position.d.ts +189 -0
  166. package/src/view/position.js +36 -83
  167. package/src/view/range.d.ts +279 -0
  168. package/src/view/range.js +79 -122
  169. package/src/view/rawelement.d.ts +73 -0
  170. package/src/view/rawelement.js +34 -48
  171. package/src/view/renderer.d.ts +265 -0
  172. package/src/view/renderer.js +105 -193
  173. package/src/view/rooteditableelement.d.ts +41 -0
  174. package/src/view/rooteditableelement.js +12 -40
  175. package/src/view/selection.d.ts +375 -0
  176. package/src/view/selection.js +79 -153
  177. package/src/view/styles/background.d.ts +33 -0
  178. package/src/view/styles/background.js +14 -12
  179. package/src/view/styles/border.d.ts +43 -0
  180. package/src/view/styles/border.js +58 -48
  181. package/src/view/styles/margin.d.ts +29 -0
  182. package/src/view/styles/margin.js +13 -11
  183. package/src/view/styles/padding.d.ts +29 -0
  184. package/src/view/styles/padding.js +13 -11
  185. package/src/view/styles/utils.d.ts +93 -0
  186. package/src/view/styles/utils.js +22 -48
  187. package/src/view/stylesmap.d.ts +675 -0
  188. package/src/view/stylesmap.js +249 -244
  189. package/src/view/text.d.ts +74 -0
  190. package/src/view/text.js +16 -46
  191. package/src/view/textproxy.d.ts +97 -0
  192. package/src/view/textproxy.js +10 -59
  193. package/src/view/treewalker.d.ts +195 -0
  194. package/src/view/treewalker.js +43 -106
  195. package/src/view/typecheckable.d.ts +401 -0
  196. package/src/view/uielement.d.ts +96 -0
  197. package/src/view/uielement.js +28 -62
  198. package/src/view/upcastwriter.d.ts +328 -0
  199. package/src/view/upcastwriter.js +124 -134
  200. package/src/view/view.d.ts +327 -0
  201. package/src/view/view.js +79 -150
package/src/view/view.js CHANGED
@@ -32,9 +32,11 @@ import { injectQuirksHandling } from './filler';
32
32
  * all changes need to be done using the {@link module:engine/view/view~View#change} method, using
33
33
  * {@link module:engine/view/downcastwriter~DowncastWriter}:
34
34
  *
35
- * view.change( writer => {
36
- * writer.insert( position, writer.createText( 'foo' ) );
37
- * } );
35
+ * ```ts
36
+ * view.change( writer => {
37
+ * writer.insert( position, writer.createText( 'foo' ) );
38
+ * } );
39
+ * ```
38
40
  *
39
41
  * View controller also register {@link module:engine/view/observer/observer~Observer observers} which observes changes
40
42
  * on DOM and fire events on the {@link module:engine/view/document~Document Document}.
@@ -53,113 +55,52 @@ import { injectQuirksHandling } from './filler';
53
55
  *
54
56
  * If you do not need full a DOM - view management, and only want to transform a tree of view elements to a tree of DOM
55
57
  * elements you do not need this controller. You can use the {@link module:engine/view/domconverter~DomConverter DomConverter} instead.
56
- *
57
- * @mixes module:utils/observablemixin~ObservableMixin
58
58
  */
59
59
  export default class View extends ObservableMixin() {
60
60
  /**
61
- * @param {module:engine/view/stylesmap~StylesProcessor} stylesProcessor The styles processor instance.
61
+ * @param stylesProcessor The styles processor instance.
62
62
  */
63
63
  constructor(stylesProcessor) {
64
64
  super();
65
- /**
66
- * Instance of the {@link module:engine/view/document~Document} associated with this view controller.
67
- *
68
- * @readonly
69
- * @type {module:engine/view/document~Document}
70
- */
71
- this.document = new Document(stylesProcessor);
72
- /**
73
- * Instance of the {@link module:engine/view/domconverter~DomConverter domConverter} used by
74
- * {@link module:engine/view/view~View#_renderer renderer}
75
- * and {@link module:engine/view/observer/observer~Observer observers}.
76
- *
77
- * @readonly
78
- * @type {module:engine/view/domconverter~DomConverter}
79
- */
80
- this.domConverter = new DomConverter(this.document);
81
65
  /**
82
66
  * Roots of the DOM tree. Map on the `HTMLElement`s with roots names as keys.
83
- *
84
- * @readonly
85
- * @type {Map.<String, HTMLElement>}
86
67
  */
87
68
  this.domRoots = new Map();
88
- /**
89
- * Used to prevent calling {@link #forceRender} and {@link #change} during rendering view to the DOM.
90
- *
91
- * @readonly
92
- * @member {Boolean} #isRenderingInProgress
93
- */
94
- this.set('isRenderingInProgress', false);
95
- /**
96
- * Informs whether the DOM selection is inside any of the DOM roots managed by the view.
97
- *
98
- * @readonly
99
- * @member {Boolean} #hasDomSelection
100
- */
101
- this.set('hasDomSelection', false);
102
- /**
103
- * Instance of the {@link module:engine/view/renderer~Renderer renderer}.
104
- *
105
- * @protected
106
- * @type {module:engine/view/renderer~Renderer}
107
- */
108
- this._renderer = new Renderer(this.domConverter, this.document.selection);
109
- this._renderer.bind('isFocused', 'isSelecting', 'isComposing')
110
- .to(this.document, 'isFocused', 'isSelecting', 'isComposing');
111
69
  /**
112
70
  * A DOM root attributes cache. It saves the initial values of DOM root attributes before the DOM element
113
71
  * is {@link module:engine/view/view~View#attachDomRoot attached} to the view so later on, when
114
72
  * the view is destroyed ({@link module:engine/view/view~View#detachDomRoot}), they can be easily restored.
115
73
  * This way, the DOM element can go back to the (clean) state as if the editing view never used it.
116
- *
117
- * @private
118
- * @member {WeakMap.<HTMLElement,Object>}
119
74
  */
120
75
  this._initialDomRootAttributes = new WeakMap();
121
76
  /**
122
77
  * Map of registered {@link module:engine/view/observer/observer~Observer observers}.
123
- *
124
- * @private
125
- * @type {Map.<Function, module:engine/view/observer/observer~Observer>}
126
78
  */
127
79
  this._observers = new Map();
128
80
  /**
129
81
  * Is set to `true` when {@link #change view changes} are currently in progress.
130
- *
131
- * @private
132
- * @type {Boolean}
133
82
  */
134
83
  this._ongoingChange = false;
135
84
  /**
136
85
  * Used to prevent calling {@link #forceRender} and {@link #change} during rendering view to the DOM.
137
- *
138
- * @private
139
- * @type {Boolean}
140
86
  */
141
87
  this._postFixersInProgress = false;
142
88
  /**
143
89
  * Internal flag to temporary disable rendering. See the usage in the {@link #_disableRendering}.
144
- *
145
- * @private
146
- * @type {Boolean}
147
90
  */
148
91
  this._renderingDisabled = false;
149
92
  /**
150
93
  * Internal flag that disables rendering when there are no changes since the last rendering.
151
94
  * It stores information about changed selection and changed elements from attached document roots.
152
- *
153
- * @private
154
- * @type {Boolean}
155
95
  */
156
96
  this._hasChangedSinceTheLastRendering = false;
157
- /**
158
- * DowncastWriter instance used in {@link #change change method} callbacks.
159
- *
160
- * @private
161
- * @type {module:engine/view/downcastwriter~DowncastWriter}
162
- */
97
+ this.document = new Document(stylesProcessor);
98
+ this.domConverter = new DomConverter(this.document);
99
+ this.set('isRenderingInProgress', false);
100
+ this.set('hasDomSelection', false);
101
+ this._renderer = new Renderer(this.domConverter, this.document.selection);
102
+ this._renderer.bind('isFocused', 'isSelecting', 'isComposing')
103
+ .to(this.document, 'isFocused', 'isSelecting', 'isComposing');
163
104
  this._writer = new DowncastWriter(this.document);
164
105
  // Add default observers.
165
106
  this.addObserver(MutationObserver);
@@ -201,8 +142,8 @@ export default class View extends ObservableMixin() {
201
142
  *
202
143
  * **Note:** Use {@link #detachDomRoot `detachDomRoot()`} to revert this action.
203
144
  *
204
- * @param {Element} domRoot DOM root element.
205
- * @param {String} [name='main'] Name of the root.
145
+ * @param domRoot DOM root element.
146
+ * @param name Name of the root.
206
147
  */
207
148
  attachDomRoot(domRoot, name = 'main') {
208
149
  const viewRoot = this.document.getRoot(name);
@@ -261,7 +202,7 @@ export default class View extends ObservableMixin() {
261
202
  * Detaches a DOM root element from the view element and restores its attributes to the state before
262
203
  * {@link #attachDomRoot `attachDomRoot()`}.
263
204
  *
264
- * @param {String} name Name of the root to detach.
205
+ * @param name Name of the root to detach.
265
206
  */
266
207
  detachDomRoot(name) {
267
208
  const domRoot = this.domRoots.get(name);
@@ -278,8 +219,8 @@ export default class View extends ObservableMixin() {
278
219
  /**
279
220
  * Gets DOM root element.
280
221
  *
281
- * @param {String} [name='main'] Name of the root.
282
- * @returns {Element} DOM root element instance.
222
+ * @param name Name of the root.
223
+ * @returns DOM root element instance.
283
224
  */
284
225
  getDomRoot(name = 'main') {
285
226
  return this.domRoots.get(name);
@@ -293,9 +234,9 @@ export default class View extends ObservableMixin() {
293
234
  * when registered for the first time. This means that features and other components can register a single observer
294
235
  * multiple times without caring whether it has been already added or not.
295
236
  *
296
- * @param {Function} Observer The constructor of an observer to add.
237
+ * @param ObserverConstructor The constructor of an observer to add.
297
238
  * Should create an instance inheriting from {@link module:engine/view/observer/observer~Observer}.
298
- * @returns {module:engine/view/observer/observer~Observer} Added observer instance.
239
+ * @returns Added observer instance.
299
240
  */
300
241
  addObserver(ObserverConstructor) {
301
242
  let observer = this._observers.get(ObserverConstructor);
@@ -313,8 +254,8 @@ export default class View extends ObservableMixin() {
313
254
  /**
314
255
  * Returns observer of the given type or `undefined` if such observer has not been added yet.
315
256
  *
316
- * @param {Function} Observer The constructor of an observer to get.
317
- * @returns {module:engine/view/observer/observer~Observer|undefined} Observer instance or undefined.
257
+ * @param ObserverConstructor The constructor of an observer to get.
258
+ * @returns Observer instance or undefined.
318
259
  */
319
260
  getObserver(ObserverConstructor) {
320
261
  return this._observers.get(ObserverConstructor);
@@ -375,18 +316,20 @@ export default class View extends ObservableMixin() {
375
316
  * to nest calls one inside another and still performs a single rendering after all those changes are made.
376
317
  * It also returns the return value of its callback.
377
318
  *
378
- * const text = view.change( writer => {
379
- * const newText = writer.createText( 'foo' );
380
- * writer.insert( position1, newText );
319
+ * ```ts
320
+ * const text = view.change( writer => {
321
+ * const newText = writer.createText( 'foo' );
322
+ * writer.insert( position1, newText );
381
323
  *
382
- * view.change( writer => {
383
- * writer.insert( position2, writer.createText( 'bar' ) );
384
- * } );
324
+ * view.change( writer => {
325
+ * writer.insert( position2, writer.createText( 'bar' ) );
326
+ * } );
385
327
  *
386
- * writer.remove( range );
328
+ * writer.remove( range );
387
329
  *
388
- * return newText;
389
- * } );
330
+ * return newText;
331
+ * } );
332
+ * ```
390
333
  *
391
334
  * When the outermost change block is done and rendering to the DOM is over the
392
335
  * {@link module:engine/view/view~View#event:render `View#render`} event is fired.
@@ -394,8 +337,8 @@ export default class View extends ObservableMixin() {
394
337
  * This method throws a `applying-view-changes-on-rendering` error when
395
338
  * the change block is used after rendering to the DOM has started.
396
339
  *
397
- * @param {Function} callback Callback function which may modify the view.
398
- * @returns {*} Value returned by the callback.
340
+ * @param callback Callback function which may modify the view.
341
+ * @returns Value returned by the callback.
399
342
  */
400
343
  change(callback) {
401
344
  if (this.isRenderingInProgress || this._postFixersInProgress) {
@@ -477,9 +420,7 @@ export default class View extends ObservableMixin() {
477
420
  * * {@link #createPositionBefore},
478
421
  * * {@link #createPositionAfter},
479
422
  *
480
- * @param {module:engine/view/item~Item|module:engine/model/position~Position} itemOrPosition
481
- * @param {Number|'end'|'before'|'after'} [offset] Offset or one of the flags. Used only when
482
- * first parameter is a {@link module:engine/view/item~Item view item}.
423
+ * @param offset Offset or one of the flags. Used only when first parameter is a {@link module:engine/view/item~Item view item}.
483
424
  */
484
425
  createPositionAt(itemOrPosition, offset) {
485
426
  return Position._createAt(itemOrPosition, offset);
@@ -487,8 +428,7 @@ export default class View extends ObservableMixin() {
487
428
  /**
488
429
  * Creates a new position after given view item.
489
430
  *
490
- * @param {module:engine/view/item~Item} item View item after which the position should be located.
491
- * @returns {module:engine/view/position~Position}
431
+ * @param item View item after which the position should be located.
492
432
  */
493
433
  createPositionAfter(item) {
494
434
  return Position._createAfter(item);
@@ -496,8 +436,7 @@ export default class View extends ObservableMixin() {
496
436
  /**
497
437
  * Creates a new position before given view item.
498
438
  *
499
- * @param {module:engine/view/item~Item} item View item before which the position should be located.
500
- * @returns {module:engine/view/position~Position}
439
+ * @param item View item before which the position should be located.
501
440
  */
502
441
  createPositionBefore(item) {
503
442
  return Position._createBefore(item);
@@ -507,18 +446,14 @@ export default class View extends ObservableMixin() {
507
446
  *
508
447
  * **Note:** This factory method creates it's own {@link module:engine/view/position~Position} instances basing on passed values.
509
448
  *
510
- * @param {module:engine/view/position~Position} start Start position.
511
- * @param {module:engine/view/position~Position} [end] End position. If not set, range will be collapsed at `start` position.
512
- * @returns {module:engine/view/range~Range}
449
+ * @param start Start position.
450
+ * @param end End position. If not set, range will be collapsed at `start` position.
513
451
  */
514
- createRange(...args) {
515
- return new Range(...args);
452
+ createRange(start, end) {
453
+ return new Range(start, end);
516
454
  }
517
455
  /**
518
456
  * Creates a range that starts before given {@link module:engine/view/item~Item view item} and ends after it.
519
- *
520
- * @param {module:engine/view/item~Item} item
521
- * @returns {module:engine/view/range~Range}
522
457
  */
523
458
  createRangeOn(item) {
524
459
  return Range._createOn(item);
@@ -527,8 +462,7 @@ export default class View extends ObservableMixin() {
527
462
  * Creates a range inside an {@link module:engine/view/element~Element element} which starts before the first child of
528
463
  * that element and ends after the last child of that element.
529
464
  *
530
- * @param {module:engine/view/element~Element} element Element which is a parent for the range.
531
- * @returns {module:engine/view/range~Range}
465
+ * @param element Element which is a parent for the range.
532
466
  */
533
467
  createRangeIn(element) {
534
468
  return Range._createIn(element);
@@ -536,44 +470,48 @@ export default class View extends ObservableMixin() {
536
470
  /**
537
471
  Creates new {@link module:engine/view/selection~Selection} instance.
538
472
  *
539
- * // Creates empty selection without ranges.
540
- * const selection = view.createSelection();
473
+ * ```ts
474
+ * // Creates empty selection without ranges.
475
+ * const selection = view.createSelection();
541
476
  *
542
- * // Creates selection at the given range.
543
- * const range = view.createRange( start, end );
544
- * const selection = view.createSelection( range );
477
+ * // Creates selection at the given range.
478
+ * const range = view.createRange( start, end );
479
+ * const selection = view.createSelection( range );
545
480
  *
546
- * // Creates selection at the given ranges
547
- * const ranges = [ view.createRange( start1, end2 ), view.createRange( star2, end2 ) ];
548
- * const selection = view.createSelection( ranges );
481
+ * // Creates selection at the given ranges
482
+ * const ranges = [ view.createRange( start1, end2 ), view.createRange( star2, end2 ) ];
483
+ * const selection = view.createSelection( ranges );
549
484
  *
550
- * // Creates selection from the other selection.
551
- * const otherSelection = view.createSelection();
552
- * const selection = view.createSelection( otherSelection );
485
+ * // Creates selection from the other selection.
486
+ * const otherSelection = view.createSelection();
487
+ * const selection = view.createSelection( otherSelection );
553
488
  *
554
- * // Creates selection from the document selection.
555
- * const selection = view.createSelection( editor.editing.view.document.selection );
489
+ * // Creates selection from the document selection.
490
+ * const selection = view.createSelection( editor.editing.view.document.selection );
556
491
  *
557
- * // Creates selection at the given position.
558
- * const position = view.createPositionFromPath( root, path );
559
- * const selection = view.createSelection( position );
492
+ * // Creates selection at the given position.
493
+ * const position = view.createPositionFromPath( root, path );
494
+ * const selection = view.createSelection( position );
560
495
  *
561
- * // Creates collapsed selection at the position of given item and offset.
562
- * const paragraph = view.createContainerElement( 'paragraph' );
563
- * const selection = view.createSelection( paragraph, offset );
496
+ * // Creates collapsed selection at the position of given item and offset.
497
+ * const paragraph = view.createContainerElement( 'paragraph' );
498
+ * const selection = view.createSelection( paragraph, offset );
564
499
  *
565
- * // Creates a range inside an {@link module:engine/view/element~Element element} which starts before the
566
- * // first child of that element and ends after the last child of that element.
567
- * const selection = view.createSelection( paragraph, 'in' );
500
+ * // Creates a range inside an {@link module:engine/view/element~Element element} which starts before the
501
+ * // first child of that element and ends after the last child of that element.
502
+ * const selection = view.createSelection( paragraph, 'in' );
568
503
  *
569
- * // Creates a range on an {@link module:engine/view/item~Item item} which starts before the item and ends
570
- * // just after the item.
571
- * const selection = view.createSelection( paragraph, 'on' );
504
+ * // Creates a range on an {@link module:engine/view/item~Item item} which starts before the item and ends
505
+ * // just after the item.
506
+ * const selection = view.createSelection( paragraph, 'on' );
507
+ * ```
572
508
  *
573
509
  * `Selection`'s factory method allow passing additional options (`backward`, `fake` and `label`) as the last argument.
574
510
  *
575
- * // Creates backward selection.
576
- * const selection = view.createSelection( range, { backward: true } );
511
+ * ```ts
512
+ * // Creates backward selection.
513
+ * const selection = view.createSelection( range, { backward: true } );
514
+ * ```
577
515
  *
578
516
  * Fake selection does not render as browser native selection over selected elements and is hidden to the user.
579
517
  * This way, no native selection UI artifacts are displayed to the user and selection over elements can be
@@ -582,16 +520,10 @@ export default class View extends ObservableMixin() {
582
520
  * Additionally fake's selection label can be provided. It will be used to describe fake selection in DOM
583
521
  * (and be properly handled by screen readers).
584
522
  *
585
- * // Creates fake selection with label.
586
- * const selection = view.createSelection( range, { fake: true, label: 'foo' } );
587
- *
588
- * @param {module:engine/view/selection~Selectable} [selectable=null]
589
- * @param {Number|'before'|'end'|'after'|'on'|'in'} [placeOrOffset] Offset or place when selectable is an `Item`.
590
- * @param {Object} [options]
591
- * @param {Boolean} [options.backward] Sets this selection instance to be backward.
592
- * @param {Boolean} [options.fake] Sets this selection instance to be marked as `fake`.
593
- * @param {String} [options.label] Label for the fake selection.
594
- * @returns {module:engine/view/selection~Selection}
523
+ * ```ts
524
+ * // Creates fake selection with label.
525
+ * const selection = view.createSelection( range, { fake: true, label: 'foo' } );
526
+ * ```
595
527
  */
596
528
  createSelection(...args) {
597
529
  return new Selection(...args);
@@ -600,9 +532,8 @@ export default class View extends ObservableMixin() {
600
532
  * Disables or enables rendering. If the flag is set to `true` then the rendering will be disabled.
601
533
  * If the flag is set to `false` and if there was some change in the meantime, then the rendering action will be performed.
602
534
  *
603
- * @protected
604
535
  * @internal
605
- * @param {Boolean} flag A flag indicates whether the rendering should be disabled.
536
+ * @param flag A flag indicates whether the rendering should be disabled.
606
537
  */
607
538
  _disableRendering(flag) {
608
539
  this._renderingDisabled = flag;
@@ -614,8 +545,6 @@ export default class View extends ObservableMixin() {
614
545
  /**
615
546
  * Renders all changes. In order to avoid triggering the observers (e.g. selection) all observers are disabled
616
547
  * before rendering and re-enabled after that.
617
- *
618
- * @private
619
548
  */
620
549
  _render() {
621
550
  this.isRenderingInProgress = true;