@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
@@ -36,65 +36,61 @@ import { CKEditorError } from '@ckeditor/ckeditor5-utils';
36
36
  *
37
37
  * Consuming multiple values in a single callback:
38
38
  *
39
- * // Converter for custom `imageBlock` element that might have a `caption` element inside which changes
40
- * // how the image is displayed in the view:
41
- * //
42
- * // Model:
43
- * //
44
- * // [imageBlock]
45
- * // └─ [caption]
46
- * // └─ foo
47
- * //
48
- * // View:
49
- * //
50
- * // <figure>
51
- * // ├─ <img />
52
- * // └─ <caption>
53
- * // └─ foo
54
- * modelConversionDispatcher.on( 'insert:imageBlock', ( evt, data, conversionApi ) => {
55
- * // First, consume the `imageBlock` element.
56
- * conversionApi.consumable.consume( data.item, 'insert' );
39
+ * ```ts
40
+ * // Converter for custom `imageBlock` element that might have a `caption` element inside which changes
41
+ * // how the image is displayed in the view:
42
+ * //
43
+ * // Model:
44
+ * //
45
+ * // [imageBlock]
46
+ * // └─ [caption]
47
+ * // └─ foo
48
+ * //
49
+ * // View:
50
+ * //
51
+ * // <figure>
52
+ * // ├─ <img />
53
+ * // └─ <caption>
54
+ * // └─ foo
55
+ * modelConversionDispatcher.on( 'insert:imageBlock', ( evt, data, conversionApi ) => {
56
+ * // First, consume the `imageBlock` element.
57
+ * conversionApi.consumable.consume( data.item, 'insert' );
57
58
  *
58
- * // Just create normal image element for the view.
59
- * // Maybe it will be "decorated" later.
60
- * const viewImage = new ViewElement( 'img' );
61
- * const insertPosition = conversionApi.mapper.toViewPosition( data.range.start );
62
- * const viewWriter = conversionApi.writer;
59
+ * // Just create normal image element for the view.
60
+ * // Maybe it will be "decorated" later.
61
+ * const viewImage = new ViewElement( 'img' );
62
+ * const insertPosition = conversionApi.mapper.toViewPosition( data.range.start );
63
+ * const viewWriter = conversionApi.writer;
63
64
  *
64
- * // Check if the `imageBlock` element has children.
65
- * if ( data.item.childCount > 0 ) {
66
- * const modelCaption = data.item.getChild( 0 );
65
+ * // Check if the `imageBlock` element has children.
66
+ * if ( data.item.childCount > 0 ) {
67
+ * const modelCaption = data.item.getChild( 0 );
67
68
  *
68
- * // `modelCaption` insertion change is consumed from consumable values.
69
- * // It will not be converted by other converters, but it's children (probably some text) will be.
70
- * // Through mapping, converters for text will know where to insert contents of `modelCaption`.
71
- * if ( conversionApi.consumable.consume( modelCaption, 'insert' ) ) {
72
- * const viewCaption = new ViewElement( 'figcaption' );
69
+ * // `modelCaption` insertion change is consumed from consumable values.
70
+ * // It will not be converted by other converters, but it's children (probably some text) will be.
71
+ * // Through mapping, converters for text will know where to insert contents of `modelCaption`.
72
+ * if ( conversionApi.consumable.consume( modelCaption, 'insert' ) ) {
73
+ * const viewCaption = new ViewElement( 'figcaption' );
73
74
  *
74
- * const viewImageHolder = new ViewElement( 'figure', null, [ viewImage, viewCaption ] );
75
+ * const viewImageHolder = new ViewElement( 'figure', null, [ viewImage, viewCaption ] );
75
76
  *
76
- * conversionApi.mapper.bindElements( modelCaption, viewCaption );
77
- * conversionApi.mapper.bindElements( data.item, viewImageHolder );
78
- * viewWriter.insert( insertPosition, viewImageHolder );
79
- * }
80
- * } else {
81
- * conversionApi.mapper.bindElements( data.item, viewImage );
82
- * viewWriter.insert( insertPosition, viewImage );
83
- * }
77
+ * conversionApi.mapper.bindElements( modelCaption, viewCaption );
78
+ * conversionApi.mapper.bindElements( data.item, viewImageHolder );
79
+ * viewWriter.insert( insertPosition, viewImageHolder );
80
+ * }
81
+ * } else {
82
+ * conversionApi.mapper.bindElements( data.item, viewImage );
83
+ * viewWriter.insert( insertPosition, viewImage );
84
+ * }
84
85
  *
85
- * evt.stop();
86
- * } );
86
+ * evt.stop();
87
+ * } );
88
+ * ```
87
89
  */
88
90
  export default class ModelConsumable {
89
- /**
90
- * Creates an empty consumables list.
91
- */
92
91
  constructor() {
93
92
  /**
94
93
  * Contains list of consumable values.
95
- *
96
- * @private
97
- * @member {Map} module:engine/conversion/modelconsumable~ModelConsumable#_consumable
98
94
  */
99
95
  this._consumable = new Map();
100
96
  /**
@@ -104,24 +100,22 @@ export default class ModelConsumable {
104
100
  * is given a unique `Symbol` which is then registered as consumable. This process is transparent for the `ModelConsumable`
105
101
  * API user because whenever `TextProxy` is added, tested, consumed or reverted, the internal mechanisms of
106
102
  * `ModelConsumable` translate `TextProxy` to that unique `Symbol`.
107
- *
108
- * @private
109
- * @member {Map} module:engine/conversion/modelconsumable~ModelConsumable#_textProxyRegistry
110
103
  */
111
104
  this._textProxyRegistry = new Map();
112
105
  }
113
106
  /**
114
107
  * Adds a consumable value to the consumables list and links it with a given model item.
115
108
  *
116
- * modelConsumable.add( modelElement, 'insert' ); // Add `modelElement` insertion change to consumable values.
117
- * modelConsumable.add( modelElement, 'addAttribute:bold' ); // Add `bold` attribute insertion on `modelElement` change.
118
- * modelConsumable.add( modelElement, 'removeAttribute:bold' ); // Add `bold` attribute removal on `modelElement` change.
119
- * modelConsumable.add( modelSelection, 'selection' ); // Add `modelSelection` to consumable values.
120
- * modelConsumable.add( modelRange, 'range' ); // Add `modelRange` to consumable values.
109
+ * ```ts
110
+ * modelConsumable.add( modelElement, 'insert' ); // Add `modelElement` insertion change to consumable values.
111
+ * modelConsumable.add( modelElement, 'addAttribute:bold' ); // Add `bold` attribute insertion on `modelElement` change.
112
+ * modelConsumable.add( modelElement, 'removeAttribute:bold' ); // Add `bold` attribute removal on `modelElement` change.
113
+ * modelConsumable.add( modelSelection, 'selection' ); // Add `modelSelection` to consumable values.
114
+ * modelConsumable.add( modelRange, 'range' ); // Add `modelRange` to consumable values.
115
+ * ```
121
116
  *
122
- * @param {module:engine/model/item~Item|module:engine/model/selection~Selection|module:engine/model/range~Range} item
123
- * Model item, range or selection that has the consumable.
124
- * @param {String} type Consumable type. Will be normalized to a proper form, that is either `<word>` or `<part>:<part>`.
117
+ * @param item Model item, range or selection that has the consumable.
118
+ * @param type Consumable type. Will be normalized to a proper form, that is either `<word>` or `<part>:<part>`.
125
119
  * Second colon and everything after will be cut. Passing event name is a safe and good practice.
126
120
  */
127
121
  add(item, type) {
@@ -137,17 +131,18 @@ export default class ModelConsumable {
137
131
  /**
138
132
  * Removes a given consumable value from a given model item.
139
133
  *
140
- * modelConsumable.consume( modelElement, 'insert' ); // Remove `modelElement` insertion change from consumable values.
141
- * modelConsumable.consume( modelElement, 'addAttribute:bold' ); // Remove `bold` attribute insertion on `modelElement` change.
142
- * modelConsumable.consume( modelElement, 'removeAttribute:bold' ); // Remove `bold` attribute removal on `modelElement` change.
143
- * modelConsumable.consume( modelSelection, 'selection' ); // Remove `modelSelection` from consumable values.
144
- * modelConsumable.consume( modelRange, 'range' ); // Remove 'modelRange' from consumable values.
134
+ * ```ts
135
+ * modelConsumable.consume( modelElement, 'insert' ); // Remove `modelElement` insertion change from consumable values.
136
+ * modelConsumable.consume( modelElement, 'addAttribute:bold' ); // Remove `bold` attribute insertion on `modelElement` change.
137
+ * modelConsumable.consume( modelElement, 'removeAttribute:bold' ); // Remove `bold` attribute removal on `modelElement` change.
138
+ * modelConsumable.consume( modelSelection, 'selection' ); // Remove `modelSelection` from consumable values.
139
+ * modelConsumable.consume( modelRange, 'range' ); // Remove 'modelRange' from consumable values.
140
+ * ```
145
141
  *
146
- * @param {module:engine/model/item~Item|module:engine/model/selection~Selection|module:engine/model/range~Range} item
147
- * Model item, range or selection from which consumable will be consumed.
148
- * @param {String} type Consumable type. Will be normalized to a proper form, that is either `<word>` or `<part>:<part>`.
142
+ * @param item Model item, range or selection from which consumable will be consumed.
143
+ * @param type Consumable type. Will be normalized to a proper form, that is either `<word>` or `<part>:<part>`.
149
144
  * Second colon and everything after will be cut. Passing event name is a safe and good practice.
150
- * @returns {Boolean} `true` if consumable value was available and was consumed, `false` otherwise.
145
+ * @returns `true` if consumable value was available and was consumed, `false` otherwise.
151
146
  */
152
147
  consume(item, type) {
153
148
  type = _normalizeConsumableType(type);
@@ -165,17 +160,18 @@ export default class ModelConsumable {
165
160
  /**
166
161
  * Tests whether there is a consumable value of a given type connected with a given model item.
167
162
  *
168
- * modelConsumable.test( modelElement, 'insert' ); // Check for `modelElement` insertion change.
169
- * modelConsumable.test( modelElement, 'addAttribute:bold' ); // Check for `bold` attribute insertion on `modelElement` change.
170
- * modelConsumable.test( modelElement, 'removeAttribute:bold' ); // Check for `bold` attribute removal on `modelElement` change.
171
- * modelConsumable.test( modelSelection, 'selection' ); // Check if `modelSelection` is consumable.
172
- * modelConsumable.test( modelRange, 'range' ); // Check if `modelRange` is consumable.
163
+ * ```ts
164
+ * modelConsumable.test( modelElement, 'insert' ); // Check for `modelElement` insertion change.
165
+ * modelConsumable.test( modelElement, 'addAttribute:bold' ); // Check for `bold` attribute insertion on `modelElement` change.
166
+ * modelConsumable.test( modelElement, 'removeAttribute:bold' ); // Check for `bold` attribute removal on `modelElement` change.
167
+ * modelConsumable.test( modelSelection, 'selection' ); // Check if `modelSelection` is consumable.
168
+ * modelConsumable.test( modelRange, 'range' ); // Check if `modelRange` is consumable.
169
+ * ```
173
170
  *
174
- * @param {module:engine/model/item~Item|module:engine/model/selection~Selection|module:engine/model/range~Range} item
175
- * Model item, range or selection to be tested.
176
- * @param {String} type Consumable type. Will be normalized to a proper form, that is either `<word>` or `<part>:<part>`.
171
+ * @param item Model item, range or selection to be tested.
172
+ * @param type Consumable type. Will be normalized to a proper form, that is either `<word>` or `<part>:<part>`.
177
173
  * Second colon and everything after will be cut. Passing event name is a safe and good practice.
178
- * @returns {null|Boolean} `null` if such consumable was never added, `false` if the consumable values was
174
+ * @returns `null` if such consumable was never added, `false` if the consumable values was
179
175
  * already consumed or `true` if it was added and not consumed yet.
180
176
  */
181
177
  test(item, type) {
@@ -196,16 +192,17 @@ export default class ModelConsumable {
196
192
  /**
197
193
  * Reverts consuming of a consumable value.
198
194
  *
199
- * modelConsumable.revert( modelElement, 'insert' ); // Revert consuming `modelElement` insertion change.
200
- * modelConsumable.revert( modelElement, 'addAttribute:bold' ); // Revert consuming `bold` attribute insert from `modelElement`.
201
- * modelConsumable.revert( modelElement, 'removeAttribute:bold' ); // Revert consuming `bold` attribute remove from `modelElement`.
202
- * modelConsumable.revert( modelSelection, 'selection' ); // Revert consuming `modelSelection`.
203
- * modelConsumable.revert( modelRange, 'range' ); // Revert consuming `modelRange`.
195
+ * ```ts
196
+ * modelConsumable.revert( modelElement, 'insert' ); // Revert consuming `modelElement` insertion change.
197
+ * modelConsumable.revert( modelElement, 'addAttribute:bold' ); // Revert consuming `bold` attribute insert from `modelElement`.
198
+ * modelConsumable.revert( modelElement, 'removeAttribute:bold' ); // Revert consuming `bold` attribute remove from `modelElement`.
199
+ * modelConsumable.revert( modelSelection, 'selection' ); // Revert consuming `modelSelection`.
200
+ * modelConsumable.revert( modelRange, 'range' ); // Revert consuming `modelRange`.
201
+ * ```
204
202
  *
205
- * @param {module:engine/model/item~Item|module:engine/model/selection~Selection|module:engine/model/range~Range} item
206
- * Model item, range or selection to be reverted.
207
- * @param {String} type Consumable type.
208
- * @returns {null|Boolean} `true` if consumable has been reversed, `false` otherwise. `null` if the consumable has
203
+ * @param item Model item, range or selection to be reverted.
204
+ * @param type Consumable type.
205
+ * @returns `true` if consumable has been reversed, `false` otherwise. `null` if the consumable has
209
206
  * never been added.
210
207
  */
211
208
  revert(item, type) {
@@ -226,7 +223,7 @@ export default class ModelConsumable {
226
223
  /**
227
224
  * Verifies if all events from the specified group were consumed.
228
225
  *
229
- * @param {String} eventGroup The events group to verify.
226
+ * @param eventGroup The events group to verify.
230
227
  */
231
228
  verifyAllConsumed(eventGroup) {
232
229
  const items = [];
@@ -268,9 +265,8 @@ export default class ModelConsumable {
268
265
  * Used internally to correctly consume `TextProxy` instances.
269
266
  *
270
267
  * @internal
271
- * @protected
272
- * @param {module:engine/model/textproxy~TextProxy} textProxy `TextProxy` instance to get a symbol for.
273
- * @returns {Symbol} Symbol representing all equal instances of `TextProxy`.
268
+ * @param textProxy `TextProxy` instance to get a symbol for.
269
+ * @returns Symbol representing all equal instances of `TextProxy`.
274
270
  */
275
271
  _getSymbolForTextProxy(textProxy) {
276
272
  let symbol = null;
@@ -291,9 +287,8 @@ export default class ModelConsumable {
291
287
  *
292
288
  * Used internally to correctly consume `TextProxy` instances.
293
289
  *
294
- * @private
295
- * @param {module:engine/model/textproxy~TextProxy} textProxy Text proxy instance.
296
- * @returns {Symbol} Symbol generated for given `TextProxy`.
290
+ * @param textProxy Text proxy instance.
291
+ * @returns Symbol generated for given `TextProxy`.
297
292
  */
298
293
  _addSymbolForTextProxy(textProxy) {
299
294
  const start = textProxy.startOffset;
@@ -316,12 +311,14 @@ export default class ModelConsumable {
316
311
  return symbol;
317
312
  }
318
313
  }
319
- // Returns a normalized consumable type name from the given string. A normalized consumable type name is a string that has
320
- // at most one colon, for example: `insert` or `addMarker:highlight`. If a string to normalize has more "parts" (more colons),
321
- // the further parts are dropped, for example: `addattribute:bold:$text` -> `addattributes:bold`.
322
- //
323
- // @param {String} type Consumable type.
324
- // @returns {String} Normalized consumable type.
314
+ /**
315
+ * Returns a normalized consumable type name from the given string. A normalized consumable type name is a string that has
316
+ * at most one colon, for example: `insert` or `addMarker:highlight`. If a string to normalize has more "parts" (more colons),
317
+ * the further parts are dropped, for example: `addattribute:bold:$text` -> `addattributes:bold`.
318
+ *
319
+ * @param type Consumable type.
320
+ * @returns Normalized consumable type.
321
+ */
325
322
  function _normalizeConsumableType(type) {
326
323
  const parts = type.split(':');
327
324
  // For inserts allow passing event name, it's stored in the context of a specified element so the element name is not needed.