@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
@@ -3,7 +3,7 @@
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
  /**
6
- * @module module:engine/view/upcastwriter
6
+ * @module engine/view/upcastwriter
7
7
  */
8
8
  import DocumentFragment from './documentfragment';
9
9
  import Element from './element';
@@ -20,36 +20,31 @@ import Selection from './selection';
20
20
  * To manipulate a view which was or is being downcasted from the the model use the
21
21
  * {@link module:engine/view/downcastwriter~DowncastWriter downcast writer}.
22
22
  *
23
- * Read more about changing the view in the {@glink framework/guides/architecture/editing-engine#changing-the-view Changing the view}
24
- * section of the {@glink framework/guides/architecture/editing-engine Editing engine architecture} guide.
23
+ * Read more about changing the view in the {@glink framework/architecture/editing-engine#changing-the-view Changing the view}
24
+ * section of the {@glink framework/architecture/editing-engine Editing engine architecture} guide.
25
25
  *
26
26
  * Unlike `DowncastWriter`, which is available in the {@link module:engine/view/view~View#change `View#change()`} block,
27
27
  * `UpcastWriter` can be created wherever you need it:
28
28
  *
29
- * const writer = new UpcastWriter( viewDocument );
30
- * const text = writer.createText( 'foo!' );
29
+ * ```ts
30
+ * const writer = new UpcastWriter( viewDocument );
31
+ * const text = writer.createText( 'foo!' );
31
32
  *
32
- * writer.appendChild( text, someViewElement );
33
+ * writer.appendChild( text, someViewElement );
34
+ * ```
33
35
  */
34
36
  export default class UpcastWriter {
35
37
  /**
36
- * @param {module:engine/view/document~Document} document The view document instance in which this upcast writer operates.
38
+ * @param document The view document instance in which this upcast writer operates.
37
39
  */
38
40
  constructor(document) {
39
- /**
40
- * The view document instance in which this upcast writer operates.
41
- *
42
- * @readonly
43
- * @type {module:engine/view/document~Document}
44
- */
45
41
  this.document = document;
46
42
  }
47
43
  /**
48
44
  * Creates a new {@link module:engine/view/documentfragment~DocumentFragment} instance.
49
45
  *
50
- * @param {module:engine/view/node~Node|Iterable.<module:engine/view/node~Node>} [children]
51
- * A list of nodes to be inserted into the created document fragment.
52
- * @returns {module:engine/view/documentfragment~DocumentFragment} The created document fragment.
46
+ * @param children A list of nodes to be inserted into the created document fragment.
47
+ * @returns The created document fragment.
53
48
  */
54
49
  createDocumentFragment(children) {
55
50
  return new DocumentFragment(this.document, children);
@@ -59,15 +54,16 @@ export default class UpcastWriter {
59
54
  *
60
55
  * Attributes can be passed in various formats:
61
56
  *
62
- * upcastWriter.createElement( 'div', { class: 'editor', contentEditable: 'true' } ); // object
63
- * upcastWriter.createElement( 'div', [ [ 'class', 'editor' ], [ 'contentEditable', 'true' ] ] ); // map-like iterator
64
- * upcastWriter.createElement( 'div', mapOfAttributes ); // map
57
+ * ```ts
58
+ * upcastWriter.createElement( 'div', { class: 'editor', contentEditable: 'true' } ); // object
59
+ * upcastWriter.createElement( 'div', [ [ 'class', 'editor' ], [ 'contentEditable', 'true' ] ] ); // map-like iterator
60
+ * upcastWriter.createElement( 'div', mapOfAttributes ); // map
61
+ * ```
65
62
  *
66
- * @param {String} name Node name.
67
- * @param {Object|Iterable} [attrs] Collection of attributes.
68
- * @param {module:engine/view/node~Node|Iterable.<module:engine/view/node~Node>} [children]
69
- * A list of nodes to be inserted into created element.
70
- * @returns {module:engine/view/element~Element} Created element.
63
+ * @param name Node name.
64
+ * @param attrs Collection of attributes.
65
+ * @param children A list of nodes to be inserted into created element.
66
+ * @returns Created element.
71
67
  */
72
68
  createElement(name, attrs, children) {
73
69
  return new Element(this.document, name, attrs, children);
@@ -75,8 +71,8 @@ export default class UpcastWriter {
75
71
  /**
76
72
  * Creates a new {@link module:engine/view/text~Text} instance.
77
73
  *
78
- * @param {String} data The text's data.
79
- * @returns {module:engine/view/text~Text} The created text node.
74
+ * @param data The text's data.
75
+ * @returns The created text node.
80
76
  */
81
77
  createText(data) {
82
78
  return new Text(this.document, data);
@@ -85,10 +81,10 @@ export default class UpcastWriter {
85
81
  * Clones the provided element.
86
82
  *
87
83
  * @see module:engine/view/element~Element#_clone
88
- * @param {module:engine/view/element~Element} element Element to be cloned.
89
- * @param {Boolean} [deep=false] If set to `true` clones element and all its children recursively. When set to `false`,
84
+ * @param element Element to be cloned.
85
+ * @param deep If set to `true` clones element and all its children recursively. When set to `false`,
90
86
  * element will be cloned without any children.
91
- * @returns {module:engine/view/element~Element} Clone of this element.
87
+ * @returns Clone of this element.
92
88
  */
93
89
  clone(element, deep = false) {
94
90
  return element._clone(deep);
@@ -98,11 +94,9 @@ export default class UpcastWriter {
98
94
  * and sets the parent of these nodes to this element.
99
95
  *
100
96
  * @see module:engine/view/element~Element#_appendChild
101
- * @param {module:engine/view/item~Item|Iterable.<module:engine/view/item~Item>} items Items to be inserted.
102
- * @param {module:engine/view/element~Element|module:engine/view/documentfragment~DocumentFragment} element Element
103
- * to which items will be appended.
104
- * @fires module:engine/view/node~Node#event:change
105
- * @returns {Number} Number of appended nodes.
97
+ * @param items Items to be inserted.
98
+ * @param element Element to which items will be appended.
99
+ * @returns Number of appended nodes.
106
100
  */
107
101
  appendChild(items, element) {
108
102
  return element._appendChild(items);
@@ -112,12 +106,10 @@ export default class UpcastWriter {
112
106
  * this element.
113
107
  *
114
108
  * @see module:engine/view/element~Element#_insertChild
115
- * @param {Number} index Offset at which nodes should be inserted.
116
- * @param {module:engine/view/item~Item|Iterable.<module:engine/view/item~Item>} items Items to be inserted.
117
- * @param {module:engine/view/element~Element|module:engine/view/documentfragment~DocumentFragment} element Element
118
- * to which items will be inserted.
119
- * @fires module:engine/view/node~Node#event:change
120
- * @returns {Number} Number of inserted nodes.
109
+ * @param index Offset at which nodes should be inserted.
110
+ * @param items Items to be inserted.
111
+ * @param element Element to which items will be inserted.
112
+ * @returns Number of inserted nodes.
121
113
  */
122
114
  insertChild(index, items, element) {
123
115
  return element._insertChild(index, items);
@@ -126,12 +118,10 @@ export default class UpcastWriter {
126
118
  * Removes the given number of child nodes starting at the given index and set the parent of these nodes to `null`.
127
119
  *
128
120
  * @see module:engine/view/element~Element#_removeChildren
129
- * @param {Number} index Offset from which nodes will be removed.
130
- * @param {Number} howMany Number of nodes to remove.
131
- * @param {module:engine/view/element~Element|module:engine/view/documentfragment~DocumentFragment} element Element
132
- * which children will be removed.
133
- * @fires module:engine/view/node~Node#event:change
134
- * @returns {Array.<module:engine/view/node~Node>} The array containing removed nodes.
121
+ * @param index Offset from which nodes will be removed.
122
+ * @param howMany Number of nodes to remove.
123
+ * @param element Element which children will be removed.
124
+ * @returns The array containing removed nodes.
135
125
  */
136
126
  removeChildren(index, howMany, element) {
137
127
  return element._removeChildren(index, howMany);
@@ -139,8 +129,8 @@ export default class UpcastWriter {
139
129
  /**
140
130
  * Removes given element from the view structure. Will not have effect on detached elements.
141
131
  *
142
- * @param {module:engine/view/element~Element} element Element which will be removed.
143
- * @returns {Array.<module:engine/view/node~Node>} The array containing removed nodes.
132
+ * @param element Element which will be removed.
133
+ * @returns The array containing removed nodes.
144
134
  */
145
135
  remove(element) {
146
136
  const parent = element.parent;
@@ -152,9 +142,9 @@ export default class UpcastWriter {
152
142
  /**
153
143
  * Replaces given element with the new one in the view structure. Will not have effect on detached elements.
154
144
  *
155
- * @param {module:engine/view/element~Element} oldElement Element which will be replaced.
156
- * @param {module:engine/view/element~Element} newElement Element which will be inserted in the place of the old element.
157
- * @returns {Boolean} Whether old element was successfully replaced.
145
+ * @param oldElement Element which will be replaced.
146
+ * @param newElement Element which will be inserted in the place of the old element.
147
+ * @returns Whether old element was successfully replaced.
158
148
  */
159
149
  replace(oldElement, newElement) {
160
150
  const parent = oldElement.parent;
@@ -170,7 +160,7 @@ export default class UpcastWriter {
170
160
  * Removes given element from view structure and places its children in its position.
171
161
  * It does nothing if element has no parent.
172
162
  *
173
- * @param {module:engine/view/element~Element} element Element to unwrap.
163
+ * @param element Element to unwrap.
174
164
  */
175
165
  unwrapElement(element) {
176
166
  const parent = element.parent;
@@ -186,10 +176,9 @@ export default class UpcastWriter {
186
176
  *
187
177
  * Since this function creates a new element and removes the given one, the new element is returned to keep reference.
188
178
  *
189
- * @param {String} newName New element name.
190
- * @param {module:engine/view/element~Element} element Element to be renamed.
191
- * @returns {module:engine/view/element~Element|null} New element or null if the old element
192
- * was not replaced (happens for detached elements).
179
+ * @param newName New element name.
180
+ * @param element Element to be renamed.
181
+ * @returns New element or null if the old element was not replaced (happens for detached elements).
193
182
  */
194
183
  rename(newName, element) {
195
184
  const newElement = new Element(this.document, newName, element.getAttributes(), element.getChildren());
@@ -198,12 +187,14 @@ export default class UpcastWriter {
198
187
  /**
199
188
  * Adds or overwrites element's attribute with a specified key and value.
200
189
  *
201
- * writer.setAttribute( 'href', 'http://ckeditor.com', linkElement );
190
+ * ```ts
191
+ * writer.setAttribute( 'href', 'http://ckeditor.com', linkElement );
192
+ * ```
202
193
  *
203
194
  * @see module:engine/view/element~Element#_setAttribute
204
- * @param {String} key Attribute key.
205
- * @param {String} value Attribute value.
206
- * @param {module:engine/view/element~Element} element Element for which attribute will be set.
195
+ * @param key Attribute key.
196
+ * @param value Attribute value.
197
+ * @param element Element for which attribute will be set.
207
198
  */
208
199
  setAttribute(key, value, element) {
209
200
  element._setAttribute(key, value);
@@ -211,11 +202,13 @@ export default class UpcastWriter {
211
202
  /**
212
203
  * Removes attribute from the element.
213
204
  *
214
- * writer.removeAttribute( 'href', linkElement );
205
+ * ```ts
206
+ * writer.removeAttribute( 'href', linkElement );
207
+ * ```
215
208
  *
216
209
  * @see module:engine/view/element~Element#_removeAttribute
217
- * @param {String} key Attribute key.
218
- * @param {module:engine/view/element~Element} element Element from which attribute will be removed.
210
+ * @param key Attribute key.
211
+ * @param element Element from which attribute will be removed.
219
212
  */
220
213
  removeAttribute(key, element) {
221
214
  element._removeAttribute(key);
@@ -223,12 +216,14 @@ export default class UpcastWriter {
223
216
  /**
224
217
  * Adds specified class to the element.
225
218
  *
226
- * writer.addClass( 'foo', linkElement );
227
- * writer.addClass( [ 'foo', 'bar' ], linkElement );
219
+ * ```ts
220
+ * writer.addClass( 'foo', linkElement );
221
+ * writer.addClass( [ 'foo', 'bar' ], linkElement );
222
+ * ```
228
223
  *
229
224
  * @see module:engine/view/element~Element#_addClass
230
- * @param {Array.<String>|String} className Single class name or array of class names which will be added.
231
- * @param {module:engine/view/element~Element} element Element for which class will be added.
225
+ * @param className Single class name or array of class names which will be added.
226
+ * @param element Element for which class will be added.
232
227
  */
233
228
  addClass(className, element) {
234
229
  element._addClass(className);
@@ -236,12 +231,14 @@ export default class UpcastWriter {
236
231
  /**
237
232
  * Removes specified class from the element.
238
233
  *
239
- * writer.removeClass( 'foo', linkElement );
240
- * writer.removeClass( [ 'foo', 'bar' ], linkElement );
234
+ * ```ts
235
+ * writer.removeClass( 'foo', linkElement );
236
+ * writer.removeClass( [ 'foo', 'bar' ], linkElement );
237
+ * ```
241
238
  *
242
239
  * @see module:engine/view/element~Element#_removeClass
243
- * @param {Array.<String>|String} className Single class name or array of class names which will be removed.
244
- * @param {module:engine/view/element~Element} element Element from which class will be removed.
240
+ * @param className Single class name or array of class names which will be removed.
241
+ * @param element Element from which class will be removed.
245
242
  */
246
243
  removeClass(className, element) {
247
244
  element._removeClass(className);
@@ -257,16 +254,18 @@ export default class UpcastWriter {
257
254
  /**
258
255
  * Removes specified style from the element.
259
256
  *
260
- * writer.removeStyle( 'color', element ); // Removes 'color' style.
261
- * writer.removeStyle( [ 'color', 'border-top' ], element ); // Removes both 'color' and 'border-top' styles.
257
+ * ```ts
258
+ * writer.removeStyle( 'color', element ); // Removes 'color' style.
259
+ * writer.removeStyle( [ 'color', 'border-top' ], element ); // Removes both 'color' and 'border-top' styles.
260
+ * ```
262
261
  *
263
262
  * **Note**: This method can work with normalized style names if
264
263
  * {@link module:engine/controller/datacontroller~DataController#addStyleProcessorRules a particular style processor rule is enabled}.
265
264
  * See {@link module:engine/view/stylesmap~StylesMap#remove `StylesMap#remove()`} for details.
266
265
  *
267
266
  * @see module:engine/view/element~Element#_removeStyle
268
- * @param {Array.<String>|String} property Style property name or names to be removed.
269
- * @param {module:engine/view/element~Element} element Element from which style will be removed.
267
+ * @param property Style property name or names to be removed.
268
+ * @param element Element from which style will be removed.
270
269
  */
271
270
  removeStyle(property, element) {
272
271
  element._removeStyle(property);
@@ -276,9 +275,9 @@ export default class UpcastWriter {
276
275
  * so they can be used to add special data to elements.
277
276
  *
278
277
  * @see module:engine/view/element~Element#_setCustomProperty
279
- * @param {String|Symbol} key Custom property name/key.
280
- * @param {*} value Custom property value to be stored.
281
- * @param {module:engine/view/element~Element} element Element for which custom property will be set.
278
+ * @param key Custom property name/key.
279
+ * @param value Custom property value to be stored.
280
+ * @param element Element for which custom property will be set.
282
281
  */
283
282
  setCustomProperty(key, value, element) {
284
283
  element._setCustomProperty(key, value);
@@ -287,9 +286,9 @@ export default class UpcastWriter {
287
286
  * Removes a custom property stored under the given key.
288
287
  *
289
288
  * @see module:engine/view/element~Element#_removeCustomProperty
290
- * @param {String|Symbol} key Name/key of the custom property to be removed.
291
- * @param {module:engine/view/element~Element} element Element from which the custom property will be removed.
292
- * @returns {Boolean} Returns true if property was removed.
289
+ * @param key Name/key of the custom property to be removed.
290
+ * @param element Element from which the custom property will be removed.
291
+ * @returns Returns true if property was removed.
293
292
  */
294
293
  removeCustomProperty(key, element) {
295
294
  return element._removeCustomProperty(key);
@@ -307,10 +306,7 @@ export default class UpcastWriter {
307
306
  * * {@link #createPositionBefore},
308
307
  * * {@link #createPositionAfter},
309
308
  *
310
- * @param {module:engine/view/item~Item|module:engine/model/position~Position} itemOrPosition
311
- * @param {Number|'end'|'before'|'after'} [offset] Offset or one of the flags. Used only when
312
- * first parameter is a {@link module:engine/view/item~Item view item}.
313
- * @returns {module:engine/view/position~Position}
309
+ * @param offset Offset or one of the flags. Used only when first parameter is a {@link module:engine/view/item~Item view item}.
314
310
  */
315
311
  createPositionAt(itemOrPosition, offset) {
316
312
  return Position._createAt(itemOrPosition, offset);
@@ -318,8 +314,7 @@ export default class UpcastWriter {
318
314
  /**
319
315
  * Creates a new position after given view item.
320
316
  *
321
- * @param {module:engine/view/item~Item} item View item after which the position should be located.
322
- * @returns {module:engine/view/position~Position}
317
+ * @param item View item after which the position should be located.
323
318
  */
324
319
  createPositionAfter(item) {
325
320
  return Position._createAfter(item);
@@ -327,8 +322,7 @@ export default class UpcastWriter {
327
322
  /**
328
323
  * Creates a new position before given view item.
329
324
  *
330
- * @param {module:engine/view/item~Item} item View item before which the position should be located.
331
- * @returns {module:engine/view/position~Position}
325
+ * @param item View item before which the position should be located.
332
326
  */
333
327
  createPositionBefore(item) {
334
328
  return Position._createBefore(item);
@@ -338,18 +332,14 @@ export default class UpcastWriter {
338
332
  *
339
333
  * **Note:** This factory method creates it's own {@link module:engine/view/position~Position} instances basing on passed values.
340
334
  *
341
- * @param {module:engine/view/position~Position} start Start position.
342
- * @param {module:engine/view/position~Position} [end] End position. If not set, range will be collapsed at `start` position.
343
- * @returns {module:engine/view/range~Range}
335
+ * @param start Start position.
336
+ * @param end End position. If not set, range will be collapsed at `start` position.
344
337
  */
345
338
  createRange(start, end) {
346
339
  return new Range(start, end);
347
340
  }
348
341
  /**
349
342
  * Creates a range that starts before given {@link module:engine/view/item~Item view item} and ends after it.
350
- *
351
- * @param {module:engine/view/item~Item} item
352
- * @returns {module:engine/view/range~Range}
353
343
  */
354
344
  createRangeOn(item) {
355
345
  return Range._createOn(item);
@@ -358,72 +348,11 @@ export default class UpcastWriter {
358
348
  * Creates a range inside an {@link module:engine/view/element~Element element} which starts before the first child of
359
349
  * that element and ends after the last child of that element.
360
350
  *
361
- * @param {module:engine/view/element~Element} element Element which is a parent for the range.
362
- * @returns {module:engine/view/range~Range}
351
+ * @param element Element which is a parent for the range.
363
352
  */
364
353
  createRangeIn(element) {
365
354
  return Range._createIn(element);
366
355
  }
367
- /**
368
- * Creates a new {@link module:engine/view/selection~Selection} instance.
369
- *
370
- * // Creates empty selection without ranges.
371
- * const selection = writer.createSelection();
372
- *
373
- * // Creates selection at the given range.
374
- * const range = writer.createRange( start, end );
375
- * const selection = writer.createSelection( range );
376
- *
377
- * // Creates selection at the given ranges
378
- * const ranges = [ writer.createRange( start1, end2 ), writer.createRange( star2, end2 ) ];
379
- * const selection = writer.createSelection( ranges );
380
- *
381
- * // Creates selection from the other selection.
382
- * const otherSelection = writer.createSelection();
383
- * const selection = writer.createSelection( otherSelection );
384
- *
385
- * // Creates selection from the document selection.
386
- * const selection = writer.createSelection( editor.editing.view.document.selection );
387
- *
388
- * // Creates selection at the given position.
389
- * const position = writer.createPositionFromPath( root, path );
390
- * const selection = writer.createSelection( position );
391
- *
392
- * // Creates collapsed selection at the position of given item and offset.
393
- * const paragraph = writer.createContainerElement( 'paragraph' );
394
- * const selection = writer.createSelection( paragraph, offset );
395
- *
396
- * // Creates a range inside an {@link module:engine/view/element~Element element} which starts before the
397
- * // first child of that element and ends after the last child of that element.
398
- * const selection = writer.createSelection( paragraph, 'in' );
399
- *
400
- * // Creates a range on an {@link module:engine/view/item~Item item} which starts before the item and ends
401
- * // just after the item.
402
- * const selection = writer.createSelection( paragraph, 'on' );
403
- *
404
- * `Selection`'s constructor allow passing additional options (`backward`, `fake` and `label`) as the last argument.
405
- *
406
- * // Creates backward selection.
407
- * const selection = writer.createSelection( range, { backward: true } );
408
- *
409
- * Fake selection does not render as browser native selection over selected elements and is hidden to the user.
410
- * This way, no native selection UI artifacts are displayed to the user and selection over elements can be
411
- * represented in other way, for example by applying proper CSS class.
412
- *
413
- * Additionally fake's selection label can be provided. It will be used to describe fake selection in DOM
414
- * (and be properly handled by screen readers).
415
- *
416
- * // Creates fake selection with label.
417
- * const selection = writer.createSelection( range, { fake: true, label: 'foo' } );
418
- *
419
- * @param {module:engine/view/selection~Selectable} [selectable=null]
420
- * @param {Number|'before'|'end'|'after'|'on'|'in'} [placeOrOffset] Offset or place when selectable is an `Item`.
421
- * @param {Object} [options]
422
- * @param {Boolean} [options.backward] Sets this selection instance to be backward.
423
- * @param {Boolean} [options.fake] Sets this selection instance to be marked as `fake`.
424
- * @param {String} [options.label] Label for the fake selection.
425
- * @returns {module:engine/view/selection~Selection}
426
- */
427
356
  createSelection(...args) {
428
357
  return new Selection(...args);
429
358
  }