@ckeditor/ckeditor5-engine 40.2.0 → 41.0.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 (245) hide show
  1. package/CHANGELOG.md +34 -34
  2. package/LICENSE.md +1 -1
  3. package/package.json +3 -2
  4. package/src/controller/datacontroller.d.ts +16 -16
  5. package/src/controller/datacontroller.js +12 -12
  6. package/src/controller/editingcontroller.d.ts +8 -8
  7. package/src/controller/editingcontroller.js +8 -8
  8. package/src/conversion/conversion.d.ts +7 -7
  9. package/src/conversion/conversion.js +3 -3
  10. package/src/conversion/conversionhelpers.d.ts +1 -1
  11. package/src/conversion/conversionhelpers.js +1 -1
  12. package/src/conversion/downcastdispatcher.d.ts +14 -14
  13. package/src/conversion/downcastdispatcher.js +3 -3
  14. package/src/conversion/downcasthelpers.d.ts +18 -54
  15. package/src/conversion/downcasthelpers.js +8 -44
  16. package/src/conversion/mapper.d.ts +10 -10
  17. package/src/conversion/mapper.js +6 -6
  18. package/src/conversion/modelconsumable.d.ts +6 -6
  19. package/src/conversion/modelconsumable.js +2 -2
  20. package/src/conversion/upcastdispatcher.d.ts +13 -13
  21. package/src/conversion/upcastdispatcher.js +6 -6
  22. package/src/conversion/upcasthelpers.d.ts +10 -10
  23. package/src/conversion/upcasthelpers.js +4 -4
  24. package/src/conversion/viewconsumable.d.ts +6 -6
  25. package/src/conversion/viewconsumable.js +1 -1
  26. package/src/dataprocessor/basichtmlwriter.d.ts +2 -2
  27. package/src/dataprocessor/basichtmlwriter.js +1 -1
  28. package/src/dataprocessor/dataprocessor.d.ts +3 -3
  29. package/src/dataprocessor/dataprocessor.js +1 -1
  30. package/src/dataprocessor/htmldataprocessor.d.ts +7 -7
  31. package/src/dataprocessor/htmldataprocessor.js +3 -3
  32. package/src/dataprocessor/htmlwriter.d.ts +1 -1
  33. package/src/dataprocessor/htmlwriter.js +1 -1
  34. package/src/dataprocessor/xmldataprocessor.d.ts +7 -7
  35. package/src/dataprocessor/xmldataprocessor.js +3 -3
  36. package/src/dev-utils/model.d.ts +11 -11
  37. package/src/dev-utils/model.js +17 -17
  38. package/src/dev-utils/operationreplayer.d.ts +3 -3
  39. package/src/dev-utils/operationreplayer.js +2 -2
  40. package/src/dev-utils/utils.d.ts +1 -1
  41. package/src/dev-utils/utils.js +1 -1
  42. package/src/dev-utils/view.d.ts +9 -9
  43. package/src/dev-utils/view.js +15 -15
  44. package/src/index.d.ts +107 -108
  45. package/src/index.js +65 -66
  46. package/src/model/batch.d.ts +2 -2
  47. package/src/model/batch.js +1 -1
  48. package/src/model/differ.d.ts +35 -7
  49. package/src/model/differ.js +9 -6
  50. package/src/model/document.d.ts +12 -10
  51. package/src/model/document.js +5 -5
  52. package/src/model/documentfragment.d.ts +5 -5
  53. package/src/model/documentfragment.js +6 -6
  54. package/src/model/documentselection.d.ts +9 -9
  55. package/src/model/documentselection.js +6 -6
  56. package/src/model/element.d.ts +3 -3
  57. package/src/model/element.js +5 -5
  58. package/src/model/history.d.ts +2 -2
  59. package/src/model/history.js +1 -1
  60. package/src/model/item.d.ts +3 -3
  61. package/src/model/item.js +1 -1
  62. package/src/model/liveposition.d.ts +5 -5
  63. package/src/model/liveposition.js +2 -2
  64. package/src/model/liverange.d.ts +6 -6
  65. package/src/model/liverange.js +2 -2
  66. package/src/model/markercollection.d.ts +5 -5
  67. package/src/model/markercollection.js +3 -3
  68. package/src/model/model.d.ts +15 -15
  69. package/src/model/model.js +19 -19
  70. package/src/model/node.d.ts +6 -6
  71. package/src/model/node.js +3 -3
  72. package/src/model/nodelist.d.ts +2 -2
  73. package/src/model/nodelist.js +2 -2
  74. package/src/model/operation/attributeoperation.d.ts +5 -5
  75. package/src/model/operation/attributeoperation.js +4 -4
  76. package/src/model/operation/detachoperation.d.ts +4 -4
  77. package/src/model/operation/detachoperation.js +4 -4
  78. package/src/model/operation/insertoperation.d.ts +7 -7
  79. package/src/model/operation/insertoperation.js +8 -8
  80. package/src/model/operation/markeroperation.d.ts +6 -6
  81. package/src/model/operation/markeroperation.js +3 -3
  82. package/src/model/operation/mergeoperation.d.ts +6 -6
  83. package/src/model/operation/mergeoperation.js +6 -6
  84. package/src/model/operation/moveoperation.d.ts +5 -5
  85. package/src/model/operation/moveoperation.js +5 -5
  86. package/src/model/operation/nooperation.d.ts +3 -3
  87. package/src/model/operation/nooperation.js +2 -2
  88. package/src/model/operation/operation.d.ts +4 -4
  89. package/src/model/operation/operation.js +1 -1
  90. package/src/model/operation/operationfactory.d.ts +3 -3
  91. package/src/model/operation/operationfactory.js +12 -12
  92. package/src/model/operation/renameoperation.d.ts +5 -5
  93. package/src/model/operation/renameoperation.js +4 -4
  94. package/src/model/operation/rootattributeoperation.d.ts +5 -5
  95. package/src/model/operation/rootattributeoperation.js +2 -2
  96. package/src/model/operation/rootoperation.d.ts +4 -4
  97. package/src/model/operation/rootoperation.js +2 -2
  98. package/src/model/operation/splitoperation.d.ts +6 -6
  99. package/src/model/operation/splitoperation.js +6 -6
  100. package/src/model/operation/transform.d.ts +3 -3
  101. package/src/model/operation/transform.js +13 -13
  102. package/src/model/operation/utils.d.ts +7 -7
  103. package/src/model/operation/utils.js +5 -5
  104. package/src/model/position.d.ts +15 -15
  105. package/src/model/position.js +4 -4
  106. package/src/model/range.d.ts +13 -13
  107. package/src/model/range.js +4 -4
  108. package/src/model/rootelement.d.ts +3 -3
  109. package/src/model/rootelement.js +2 -2
  110. package/src/model/schema.d.ts +32 -12
  111. package/src/model/schema.js +52 -7
  112. package/src/model/selection.d.ts +8 -8
  113. package/src/model/selection.js +5 -5
  114. package/src/model/text.d.ts +2 -2
  115. package/src/model/text.js +2 -2
  116. package/src/model/textproxy.d.ts +6 -6
  117. package/src/model/textproxy.js +2 -2
  118. package/src/model/treewalker.d.ts +4 -4
  119. package/src/model/treewalker.js +5 -5
  120. package/src/model/typecheckable.d.ts +14 -14
  121. package/src/model/typecheckable.js +1 -1
  122. package/src/model/utils/autoparagraphing.d.ts +5 -5
  123. package/src/model/utils/autoparagraphing.js +1 -1
  124. package/src/model/utils/deletecontent.d.ts +4 -4
  125. package/src/model/utils/deletecontent.js +4 -4
  126. package/src/model/utils/getselectedcontent.d.ts +5 -5
  127. package/src/model/utils/getselectedcontent.js +1 -1
  128. package/src/model/utils/insertcontent.d.ts +7 -7
  129. package/src/model/utils/insertcontent.js +7 -7
  130. package/src/model/utils/insertobject.d.ts +9 -6
  131. package/src/model/utils/insertobject.js +2 -6
  132. package/src/model/utils/modifyselection.d.ts +4 -4
  133. package/src/model/utils/modifyselection.js +5 -5
  134. package/src/model/utils/selection-post-fixer.d.ts +4 -4
  135. package/src/model/utils/selection-post-fixer.js +3 -3
  136. package/src/model/writer.d.ts +13 -13
  137. package/src/model/writer.js +18 -18
  138. package/src/view/attributeelement.d.ts +4 -4
  139. package/src/view/attributeelement.js +4 -3
  140. package/src/view/containerelement.d.ts +4 -4
  141. package/src/view/containerelement.js +2 -2
  142. package/src/view/datatransfer.d.ts +1 -1
  143. package/src/view/datatransfer.js +1 -1
  144. package/src/view/document.d.ts +5 -5
  145. package/src/view/document.js +3 -3
  146. package/src/view/documentfragment.d.ts +5 -5
  147. package/src/view/documentfragment.js +4 -4
  148. package/src/view/documentselection.d.ts +9 -9
  149. package/src/view/documentselection.js +3 -3
  150. package/src/view/domconverter.d.ts +14 -14
  151. package/src/view/domconverter.js +11 -11
  152. package/src/view/downcastwriter.d.ts +18 -18
  153. package/src/view/downcastwriter.js +12 -12
  154. package/src/view/editableelement.d.ts +5 -5
  155. package/src/view/editableelement.js +2 -2
  156. package/src/view/element.d.ts +6 -6
  157. package/src/view/element.js +6 -6
  158. package/src/view/elementdefinition.d.ts +1 -1
  159. package/src/view/elementdefinition.js +1 -1
  160. package/src/view/emptyelement.d.ts +5 -5
  161. package/src/view/emptyelement.js +3 -3
  162. package/src/view/filler.d.ts +2 -2
  163. package/src/view/filler.js +1 -1
  164. package/src/view/item.d.ts +3 -3
  165. package/src/view/item.js +1 -1
  166. package/src/view/matcher.d.ts +2 -2
  167. package/src/view/matcher.js +1 -1
  168. package/src/view/node.d.ts +6 -6
  169. package/src/view/node.js +3 -3
  170. package/src/view/observer/arrowkeysobserver.d.ts +5 -5
  171. package/src/view/observer/arrowkeysobserver.js +3 -3
  172. package/src/view/observer/bubblingemittermixin.d.ts +3 -3
  173. package/src/view/observer/bubblingemittermixin.js +2 -2
  174. package/src/view/observer/bubblingeventinfo.d.ts +4 -4
  175. package/src/view/observer/bubblingeventinfo.js +1 -1
  176. package/src/view/observer/clickobserver.d.ts +4 -4
  177. package/src/view/observer/clickobserver.js +2 -2
  178. package/src/view/observer/compositionobserver.d.ts +4 -4
  179. package/src/view/observer/compositionobserver.js +2 -2
  180. package/src/view/observer/domeventdata.d.ts +4 -4
  181. package/src/view/observer/domeventdata.js +1 -1
  182. package/src/view/observer/domeventobserver.d.ts +2 -2
  183. package/src/view/observer/domeventobserver.js +3 -3
  184. package/src/view/observer/fakeselectionobserver.d.ts +3 -3
  185. package/src/view/observer/fakeselectionobserver.js +3 -3
  186. package/src/view/observer/focusobserver.d.ts +4 -4
  187. package/src/view/observer/focusobserver.js +2 -2
  188. package/src/view/observer/inputobserver.d.ts +5 -5
  189. package/src/view/observer/inputobserver.js +3 -3
  190. package/src/view/observer/keyobserver.d.ts +3 -3
  191. package/src/view/observer/keyobserver.js +2 -2
  192. package/src/view/observer/mouseobserver.d.ts +3 -3
  193. package/src/view/observer/mouseobserver.js +2 -2
  194. package/src/view/observer/mutationobserver.d.ts +5 -5
  195. package/src/view/observer/mutationobserver.js +3 -3
  196. package/src/view/observer/observer.d.ts +3 -3
  197. package/src/view/observer/observer.js +1 -1
  198. package/src/view/observer/selectionobserver.d.ts +8 -8
  199. package/src/view/observer/selectionobserver.js +4 -4
  200. package/src/view/observer/tabobserver.d.ts +5 -5
  201. package/src/view/observer/tabobserver.js +3 -3
  202. package/src/view/placeholder.d.ts +5 -5
  203. package/src/view/placeholder.js +1 -1
  204. package/src/view/position.d.ts +8 -8
  205. package/src/view/position.js +5 -5
  206. package/src/view/range.d.ts +8 -8
  207. package/src/view/range.js +4 -4
  208. package/src/view/rawelement.d.ts +6 -6
  209. package/src/view/rawelement.js +3 -3
  210. package/src/view/renderer.d.ts +6 -6
  211. package/src/view/renderer.js +4 -4
  212. package/src/view/rooteditableelement.d.ts +3 -3
  213. package/src/view/rooteditableelement.js +2 -2
  214. package/src/view/selection.d.ts +9 -9
  215. package/src/view/selection.js +6 -6
  216. package/src/view/styles/background.d.ts +2 -2
  217. package/src/view/styles/background.js +2 -2
  218. package/src/view/styles/border.d.ts +2 -2
  219. package/src/view/styles/border.js +2 -2
  220. package/src/view/styles/margin.d.ts +2 -2
  221. package/src/view/styles/margin.js +2 -2
  222. package/src/view/styles/padding.d.ts +2 -2
  223. package/src/view/styles/padding.js +2 -2
  224. package/src/view/styles/utils.d.ts +2 -2
  225. package/src/view/styles/utils.js +1 -1
  226. package/src/view/stylesmap.d.ts +1 -1
  227. package/src/view/stylesmap.js +1 -1
  228. package/src/view/text.d.ts +3 -3
  229. package/src/view/text.js +2 -2
  230. package/src/view/textproxy.d.ts +7 -7
  231. package/src/view/textproxy.js +2 -2
  232. package/src/view/treewalker.d.ts +4 -4
  233. package/src/view/treewalker.js +5 -5
  234. package/src/view/typecheckable.d.ts +17 -17
  235. package/src/view/typecheckable.js +1 -1
  236. package/src/view/uielement.d.ts +7 -7
  237. package/src/view/uielement.js +3 -3
  238. package/src/view/upcastwriter.d.ts +10 -10
  239. package/src/view/upcastwriter.js +7 -7
  240. package/src/view/view.d.ts +22 -22
  241. package/src/view/view.js +19 -19
  242. package/theme/placeholder.css +1 -1
  243. package/theme/renderer.css +1 -1
  244. package/src/model/utils/findoptimalinsertionrange.d.ts +0 -32
  245. package/src/model/utils/findoptimalinsertionrange.js +0 -57
package/CHANGELOG.md CHANGED
@@ -52,7 +52,7 @@ Changes for the past releases are available below.
52
52
 
53
53
  * `DataController` will now use a single instance of the view document for all its operations (`DataController#viewDocument`). Closes [ckeditor/ckeditor5#6381](https://github.com/ckeditor/ckeditor5/issues/6381). ([851bac6](https://github.com/ckeditor/ckeditor5-engine/commit/851bac6))
54
54
  * `Document#version` is no longer read-only. ([968b193](https://github.com/ckeditor/ckeditor5-engine/commit/968b193))
55
- * `StylesProcessor` rules will not be stored in a singleton, which made them shared between editor instances. In order to allow binding a styles processor instance to a specific view document, we had to replace a dynamic `#document` property in view nodes with a static one, set upon node creation. Closes [ckeditor/ckeditor5#6091](https://github.com/ckeditor/ckeditor5/issues/6091). ([0e2f02e](https://github.com/ckeditor/ckeditor5-engine/commit/0e2f02e))
55
+ * `StylesProcessor` rules will not be stored in a singleton, which made them shared between editor instances. To allow binding a styles processor instance to a specific view document, we had to replace a dynamic `#document` property in view nodes with a static one, set upon node creation. Closes [ckeditor/ckeditor5#6091](https://github.com/ckeditor/ckeditor5/issues/6091). ([0e2f02e](https://github.com/ckeditor/ckeditor5-engine/commit/0e2f02e))
56
56
  * Introduced support for multi-range selections. Closes [ckeditor/ckeditor5#6116](https://github.com/ckeditor/ckeditor5/issues/6116). ([ffce577](https://github.com/ckeditor/ckeditor5-engine/commit/ffce577))
57
57
 
58
58
 
@@ -67,7 +67,7 @@ Changes for the past releases are available below.
67
67
 
68
68
  ### Bug fixes
69
69
 
70
- * Changes irrelevant to the view (e.g. inside UIElements) will no longer force a view render nor will they trigger mutation event on the document. Closes [ckeditor/ckeditor5#5600](https://github.com/ckeditor/ckeditor5/issues/5600). ([b7e2bfe](https://github.com/ckeditor/ckeditor5-engine/commit/b7e2bfe))
70
+ * Changes irrelevant to the view (for example, inside `UIElements`) will no longer force a view render nor will they trigger a mutation event on the document. Closes [ckeditor/ckeditor5#5600](https://github.com/ckeditor/ckeditor5/issues/5600). ([b7e2bfe](https://github.com/ckeditor/ckeditor5-engine/commit/b7e2bfe))
71
71
  * DOM selection change will not be converted if the selection was placed outside of the editable element. Closes [ckeditor/ckeditor5#4199](https://github.com/ckeditor/ckeditor5/issues/4199). ([1c3749e](https://github.com/ckeditor/ckeditor5-engine/commit/1c3749e))
72
72
 
73
73
  ### Other changes
@@ -121,7 +121,7 @@ Changes for the past releases are available below.
121
121
 
122
122
  ### Bug fixes
123
123
 
124
- * Fixed problem with handling very large text nodes. ([a7ae813](https://github.com/ckeditor/ckeditor5-engine/commit/a7ae813))
124
+ * Fixed a problem with handling large text nodes. ([a7ae813](https://github.com/ckeditor/ckeditor5-engine/commit/a7ae813))
125
125
  * Prevented `Differ` crashing in some scenarios involving attribute changes on elements. Closes [#1764](https://github.com/ckeditor/ckeditor5-engine/issues/1764). ([482e55e](https://github.com/ckeditor/ckeditor5-engine/commit/482e55e))
126
126
 
127
127
  ### Other changes
@@ -129,7 +129,7 @@ Changes for the past releases are available below.
129
129
  * Add `unwrapElement()` method to UpcastWriter. ([9e97196](https://github.com/ckeditor/ckeditor5-engine/commit/9e97196))
130
130
  * Allowed for unbinding single elements from a marker name in `Mapper`. Closes [#1758](https://github.com/ckeditor/ckeditor5-engine/issues/1758). ([52e701d](https://github.com/ckeditor/ckeditor5-engine/commit/52e701d))
131
131
  * The issue tracker for this package was moved to https://github.com/ckeditor/ckeditor5/issues. See [ckeditor/ckeditor5#1988](https://github.com/ckeditor/ckeditor5/issues/1988). ([6ed94c6](https://github.com/ckeditor/ckeditor5-engine/commit/6ed94c6))
132
- * Introduced automatic marker re-rendering during conversion for markers which view element was unbound. Closes [#1780](https://github.com/ckeditor/ckeditor5-engine/issues/1780). ([5661fb6](https://github.com/ckeditor/ckeditor5-engine/commit/5661fb6))
132
+ * Introduced automatic marker re-rendering during conversion for markers whose view element was unbound. Closes [#1780](https://github.com/ckeditor/ckeditor5-engine/issues/1780). ([5661fb6](https://github.com/ckeditor/ckeditor5-engine/commit/5661fb6))
133
133
  * Position getters (such as `#parent` or `#index`) will throw when position points at an incorrect place in its root. Closes [#1776](https://github.com/ckeditor/ckeditor5-engine/issues/1776). ([a359866](https://github.com/ckeditor/ckeditor5-engine/commit/a359866))
134
134
 
135
135
  ### BREAKING CHANGES
@@ -180,7 +180,7 @@ Internal changes only (updated dependencies, documentation, etc.).
180
180
  * `Model#insertContent()` will return a range affected by the insertion. ([f4e4644](https://github.com/ckeditor/ckeditor5-engine/commit/f4e4644))
181
181
 
182
182
  In `Model#deleteContent()`, added `doNotAutoparagraph` flag to `options`.
183
- `Position` and `LivePosition` static creators should handle `stickiness` param.
183
+ `Position` and `LivePosition` static creators should handle the `stickiness` parameter.
184
184
  * Added possibility to refresh the marker with no changes through `Writer#updateMarker()` method. Closes [#1649](https://github.com/ckeditor/ckeditor5-engine/issues/1649). ([cf56d90](https://github.com/ckeditor/ckeditor5-engine/commit/cf56d90))
185
185
  * Introduced `Schema#setAttributeProperties()` and `Schema#getAttributeProperties()` methods. Closes [ckeditor/ckeditor5#1659](https://github.com/ckeditor/ckeditor5/issues/1659). ([1c6f83a](https://github.com/ckeditor/ckeditor5-engine/commit/1c6f83a))
186
186
  * Introduced `UpcastConversionApi#getSplitParts()`. Also, provided a way to set upcast conversion helper fired for every view element. Closes https://github.com/ckeditor/ckeditor5/issues/1580. Closes https://github.com/ckeditor/ckeditor5/issues/1581. ([d0ee3f4](https://github.com/ckeditor/ckeditor5-engine/commit/d0ee3f4))
@@ -243,7 +243,7 @@ Internal changes only (updated dependencies, documentation, etc.).
243
243
  ### BREAKING CHANGES
244
244
 
245
245
  * Upgraded minimal versions of Node to `8.0.0` and npm to `5.7.1`. See: [ckeditor/ckeditor5#1507](https://github.com/ckeditor/ckeditor5/issues/1507). ([612ea3c](https://github.com/ckeditor/ckeditor5-cloud-services/commit/612ea3c))
246
- * `DataController#get()` method now returns an empty string when the editor content is empty (instead of returning e.g. `<p>&nbsp;</p>`).
246
+ * The `DataController#get()` method now returns an empty string when the editor content is empty (instead of returning, for example, `<p>&nbsp;</p>`).
247
247
  * The wrap() conversion helper was removed from public API.
248
248
  * The `attachPlaceholder()` has been renamed to `enablePlaceholder()`.
249
249
  * `enablePlaceholder()` accepts a configuration object instead of separate parameters.
@@ -306,8 +306,8 @@ Internal changes only (updated dependencies, documentation, etc.).
306
306
  ### Other changes
307
307
 
308
308
  * `ContainerElement#getFillerOffset()` can now be re-used in other places in the code (it is now exported by the module). See [ckeditor/ckeditor5-list#117](https://github.com/ckeditor/ckeditor5-list/issues/117). ([12f28bb](https://github.com/ckeditor/ckeditor5-engine/commit/12f28bb))
309
- * Moved `Position`, `Range` and `Selection` static factories from those classes to the model/view writers and `Model`/`View` instances. Previously, those factories were available as static methods of the `Position`, `Range` and `Selection` classes which meant that you needed to import those classes to your plugin's code to create new instances. That required your package to depend on `@ckeditor/ckeditor5-engine` and was not very useful in general. After this change, you can create instances of those classes without importing anything. See the "Breaking changes" section for more details. Closes [#1555](https://github.com/ckeditor/ckeditor5-engine/issues/1555). ([e7f8467](https://github.com/ckeditor/ckeditor5-engine/commit/e7f8467))
310
- * Various fixes in the API docs. Thanks to [@denisname](https://github.com/denisname)!
309
+ * Moved `Position`, `Range`, and `Selection` static factories from those classes to the model/view writers and `Model`/`View` instances. Previously, those factories were available as static methods of the `Position`, `Range`, and `Selection` classes which meant that you needed to import those classes to your plugin's code to create new instances. That required your package to depend on `@ckeditor/ckeditor5-engine` and was not useful in general. After this change, you can create instances of those classes without importing anything. See the "Breaking changes" section for more details. Closes [#1555](https://github.com/ckeditor/ckeditor5-engine/issues/1555). ([e7f8467](https://github.com/ckeditor/ckeditor5-engine/commit/e7f8467))
310
+ * Various fixes in the API documentation. Thanks to [@denisname](https://github.com/denisname)!
311
311
 
312
312
  ### BREAKING CHANGES
313
313
 
@@ -359,7 +359,7 @@ Internal changes only (updated dependencies, documentation, etc.).
359
359
  Huge thanks to [Dmitri Pisarev](https://github.com/dimaip) for this contribution!
360
360
  * Marked reused element attributes to be rendered if the element being replaced was also marked. Closes [#1560](https://github.com/ckeditor/ckeditor5-engine/issues/1560). Closes [#1561](https://github.com/ckeditor/ckeditor5-engine/issues/1561). ([6619a1f](https://github.com/ckeditor/ckeditor5-engine/commit/6619a1f))
361
361
  * Remove clone groups in `view.DowncastWriter` manually. Closes [#1571](https://github.com/ckeditor/ckeditor5-engine/issues/1571). ([420166a](https://github.com/ckeditor/ckeditor5-engine/commit/420166a))
362
- * Use numbers instead of booleans in `Array.sort()`. ([00fbf7f](https://github.com/ckeditor/ckeditor5-engine/commit/00fbf7f))
362
+ * Use numbers instead of Boolean values in `Array.sort()`. ([00fbf7f](https://github.com/ckeditor/ckeditor5-engine/commit/00fbf7f))
363
363
 
364
364
  ### Other changes
365
365
 
@@ -371,7 +371,7 @@ Internal changes only (updated dependencies, documentation, etc.).
371
371
  Huge thanks to [Mate Bartus](https://github.com/CHItA) for this contribution!
372
372
  * Always update attributes of reused elements while rendering. Closes [#1560](https://github.com/ckeditor/ckeditor5-engine/issues/1560). ([9b95a8a](https://github.com/ckeditor/ckeditor5-engine/commit/9b95a8a))
373
373
  * Changed long name returned by `Operation.className` property to a short one. Closes [#1513](https://github.com/ckeditor/ckeditor5-engine/issues/1513). ([7765953](https://github.com/ckeditor/ckeditor5-engine/commit/7765953))
374
- * Made the view's `stringify()` dev util output the content of the `UIElement` (see [ckeditor/ckeditor5-media-embed#1](https://github.com/ckeditor/ckeditor5-media-embed/issues/1)). ([49cd795](https://github.com/ckeditor/ckeditor5-engine/commit/49cd795))
374
+ * Made the view's `stringify()` utility output the content of the `UIElement` (see [ckeditor/ckeditor5-media-embed#1](https://github.com/ckeditor/ckeditor5-media-embed/issues/1)). ([49cd795](https://github.com/ckeditor/ckeditor5-engine/commit/49cd795))
375
375
  * Made `toJSON()` methods serialize nested objects. Closes [#1477](https://github.com/ckeditor/ckeditor5-engine/issues/1477). ([27ab310](https://github.com/ckeditor/ckeditor5-engine/commit/27ab310))
376
376
 
377
377
  Aligned `Schema#getValidRanges()` results to changes in `AttributeOperation`.
@@ -393,7 +393,7 @@ Internal changes only (updated dependencies, documentation, etc.).
393
393
  * `LiveRange#event:change` second parameter is now an object containing property `deletionPosition`. It can be `model.Position` instance, if the range was moved to the graveyard root. The position is equal to the position from which nodes were removed. Otherwise, it is set to `null`.
394
394
  * `Schema#getValidRanges()` will now return only flat ranges. If an attribute is allowed on some nodes and in those nodes children, multiple "nested" ranges will be returned.
395
395
  * `Schema#getValidRanges()` is now a generator.
396
- * The concept of deltas (sets of operations) was removed from the engine. They were replaced by opertations matching the types of removed deltas.
396
+ * The concept of deltas (sets of operations) was removed from the engine. They were replaced by operations matching the types of removed deltas.
397
397
  * `model.Writer#setAttribute()` (and `AttributeOperation`) now applies attribute only to the top-level nodes in the `range` (instead of all the nodes in the range).
398
398
 
399
399
 
@@ -479,7 +479,7 @@ Internal changes only (updated dependencies, documentation, etc.).
479
479
  * The `writer#setMarker()` method is used only to create a new marker and it does not accept a `marker` instance as a parameter. To update existing marker use `writer#updateMarker()` method.
480
480
  * The `options.usingOperation` option in `writer#setMarker()` is now a required one.
481
481
  * The `range` parameter was removed. Use `options.range` instead.
482
- * Properties in `MatcherPattern`, view `ElementDefinition` and options for conversion utils have been renamed: `class` to `classes`, `style` to `styles`, `attribute` to `attributes`.
482
+ * Properties in `MatcherPattern`, view `ElementDefinition`, and options for conversion utilities have been renamed: `class` to `classes`, `style` to `styles`, `attribute` to `attributes`.
483
483
  * Introduced `view.DocumentSelection`. It has protected API and can be modified only by the view writer. Observers creating instance of selection (like `SelectionObserver`, `MutationObserver`) use the `view.Selection` class now.
484
484
 
485
485
 
@@ -489,7 +489,7 @@ Internal changes only (updated dependencies, documentation, etc.).
489
489
 
490
490
  In 1.0.0-beta.1 the engine's API has underwent a thorough review which resulted in a deep refactoring. Most of the underlying concepts and architecture remained untouched. The API, though, is brand new. The changes are huge and, in this package exclusively, resulted in changing 40.000 LOC. Therefore, the list of changes below is neither complete nor will explain you how the engine is structured now and how to should migrate to this version.
491
491
 
492
- Instead, we recommend reading https://ckeditor.com/docs/ckeditor5/latest/framework/guides/architecture/editing-engine.html once more (it will be updated in a couple of days after the release).
492
+ Instead, we recommend reading the [Editing engine guide](https://ckeditor.com/docs/ckeditor5/latest/framework/guides/architecture/editing-engine.html) once more (it will be updated in a couple of days after the release).
493
493
 
494
494
  The good news is that our focus when designing the new API was on the developer experience. APIs which were dangerous or confusing were removed or hidden and new APIs were added in their place. The engine is now a safer and more useful library and we hope you will enjoy it.
495
495
 
@@ -503,9 +503,9 @@ The good news is that our focus when designing the new API was on the developer
503
503
  Feature: `Schema#findAllowedParent()` has been introduced.
504
504
  Feature: `SchemaContext#concat()` has been introduced.
505
505
  * Engine debug tools can be easily disabled using disableEngineDebug() function. Closes [#1193](https://github.com/ckeditor/ckeditor5-engine/issues/1193). ([0934496](https://github.com/ckeditor/ckeditor5-engine/commit/0934496))
506
- * Introduced `ViewElementDefinition` and `definition-based-converters` module with a set of utils allowing to turn element definitions to converters. Closes [#1198](https://github.com/ckeditor/ckeditor5-engine/issues/1198). ([d2e9f06](https://github.com/ckeditor/ckeditor5-engine/commit/d2e9f06))
506
+ * Introduced `ViewElementDefinition` and `definition-based-converters` module with a set of utilities allowing to turn element definitions to converters. Closes [#1198](https://github.com/ckeditor/ckeditor5-engine/issues/1198). ([d2e9f06](https://github.com/ckeditor/ckeditor5-engine/commit/d2e9f06))
507
507
  * Introduced composition observer. Closes [#1329](https://github.com/ckeditor/ckeditor5-engine/issues/1329). ([a0ad8fe](https://github.com/ckeditor/ckeditor5-engine/commit/a0ad8fe))
508
- * Introduced decorable DataController#init metohd. Closes [ckeditor/ckeditor5-core#120](https://github.com/ckeditor/ckeditor5-core/issues/120). ([d20d660](https://github.com/ckeditor/ckeditor5-engine/commit/d20d660))
508
+ * Introduced the `DataController#init` method that you can decorate. Closes [ckeditor/ckeditor5-core#120](https://github.com/ckeditor/ckeditor5-core/issues/120). ([d20d660](https://github.com/ckeditor/ckeditor5-engine/commit/d20d660))
509
509
  * Introduced two-step caret movement mechanism. Closes [#1289](https://github.com/ckeditor/ckeditor5-engine/issues/1289). ([88bb94c](https://github.com/ckeditor/ckeditor5-engine/commit/88bb94c))
510
510
 
511
511
  ### Bug fixes
@@ -515,7 +515,7 @@ The good news is that our focus when designing the new API was on the developer
515
515
  * `model.DocumentSelection` should update its attributes after each change, including external changes. Closes [#1267](https://github.com/ckeditor/ckeditor5-engine/issues/1267). ([b91d967](https://github.com/ckeditor/ckeditor5-engine/commit/b91d967))
516
516
  * `Model#insertContent()` will not merge nodes if the model after the merge would violate schema rules. Closes [ckeditor/ckeditor5#730](https://github.com/ckeditor/ckeditor5/issues/730). ([2a73830](https://github.com/ckeditor/ckeditor5-engine/commit/2a73830))
517
517
  * `Schema#getLimitElement()` will return a proper limit element (the root element) if one of the selection's ranges have the root element as the limit element. Closes [#1275](https://github.com/ckeditor/ckeditor5-engine/issues/1275). ([050a415](https://github.com/ckeditor/ckeditor5-engine/commit/050a415))
518
- * Added a 50ms timeout after `Document#focus` event before rendering to be sure that selection changes are processed on Firefox and Safari. Closes [ckeditor/ckeditor5#676](https://github.com/ckeditor/ckeditor5/issues/676). Closes [#1157](https://github.com/ckeditor/ckeditor5-engine/issues/1157). Closes [#1155](https://github.com/ckeditor/ckeditor5-engine/issues/1155). Closes [#1153](https://github.com/ckeditor/ckeditor5-engine/issues/1153). ([aba8e68](https://github.com/ckeditor/ckeditor5-engine/commit/aba8e68))
518
+ * Added a 50ms timeout after `Document#focus` event before rendering to be sure that selection changes are processed in Firefox and Safari. Closes [ckeditor/ckeditor5#676](https://github.com/ckeditor/ckeditor5/issues/676). Closes [#1157](https://github.com/ckeditor/ckeditor5-engine/issues/1157). Closes [#1155](https://github.com/ckeditor/ckeditor5-engine/issues/1155). Closes [#1153](https://github.com/ckeditor/ckeditor5-engine/issues/1153). ([aba8e68](https://github.com/ckeditor/ckeditor5-engine/commit/aba8e68))
519
519
  * Added missing parse context in `DataController#set()`. Closes [#1278](https://github.com/ckeditor/ckeditor5-engine/issues/1278). ([8c56dce](https://github.com/ckeditor/ckeditor5-engine/commit/8c56dce))
520
520
  * Corrected how change items in `model.Differ` are dismissed if they are in inserted/removed parent. Closes https://github.com/ckeditor/ckeditor5/issues/733. ([e70ab96](https://github.com/ckeditor/ckeditor5-engine/commit/e70ab96))
521
521
  * Corrected offsets transformation in `model.Differ` when multiple change items interfere with each other. Closes [#1309](https://github.com/ckeditor/ckeditor5-engine/issues/1309). Closes https://github.com/ckeditor/ckeditor5/issues/849. ([30dcf6c](https://github.com/ckeditor/ckeditor5-engine/commit/30dcf6c))
@@ -547,14 +547,14 @@ The good news is that our focus when designing the new API was on the developer
547
547
  Fixed: Markers are cleared now before an operation is applied to `model.Document` tree to fix scenarios where marker range could not be converted to the view after the model changed.
548
548
  * Prevented `Writer` from usage outside of the `change` block. Closes [#1212](https://github.com/ckeditor/ckeditor5-engine/issues/1212). ([2592bf1](https://github.com/ckeditor/ckeditor5-engine/commit/2592bf1))
549
549
  * Provided one API for two types of markers, improved docs. Closes [#1086](https://github.com/ckeditor/ckeditor5-engine/issues/1086). ([bfe23c9](https://github.com/ckeditor/ckeditor5-engine/commit/bfe23c9))
550
- * Refactor: engine/model reorganization, introducing new change and enqueueChange block, split batch/writer. Related: [#1186](https://github.com/ckeditor/ckeditor5-engine/issues/1186). ([5be1ad6](https://github.com/ckeditor/ckeditor5-engine/commit/5be1ad6))
550
+ * Refactor: Engine/model reorganization, introducing new `change` and `enqueueChange` block, split batch/writer. Related: [#1186](https://github.com/ckeditor/ckeditor5-engine/issues/1186). ([5be1ad6](https://github.com/ckeditor/ckeditor5-engine/commit/5be1ad6))
551
551
  * Refactored events fired by model classes. Closes [#1207](https://github.com/ckeditor/ckeditor5-engine/issues/1207). ([f56bddf](https://github.com/ckeditor/ckeditor5-engine/commit/f56bddf))
552
552
  * Refactoring of the view API. Closes [#1210](https://github.com/ckeditor/ckeditor5-engine/issues/1210). ([dd9ae51](https://github.com/ckeditor/ckeditor5-engine/commit/dd9ae51))
553
553
  * Refactoring: Conversion refactoring. Introduced `model.Differ`. Changes now will be converted after all changes in a change block are done. Closes [#1172](https://github.com/ckeditor/ckeditor5-engine/issues/1172). ([6479bfd](https://github.com/ckeditor/ckeditor5-engine/commit/6479bfd))
554
- * Refactoring: make writer a protected operations util. ([440dfc7](https://github.com/ckeditor/ckeditor5-engine/commit/440dfc7))
554
+ * Refactoring: Make writer a protected operations utility. ([440dfc7](https://github.com/ckeditor/ckeditor5-engine/commit/440dfc7))
555
555
  * Rewritten the Schema API. Closes [#532](https://github.com/ckeditor/ckeditor5-engine/issues/532). ([4e4f5c3](https://github.com/ckeditor/ckeditor5-engine/commit/4e4f5c3))
556
556
  * Simplified model to view selection conversion. Closes [#1238](https://github.com/ckeditor/ckeditor5-engine/issues/1238). ([9a53251](https://github.com/ckeditor/ckeditor5-engine/commit/9a53251))
557
- * UIElement custom `render()` method can be now provided without using inheritance. Closes [#1254](https://github.com/ckeditor/ckeditor5-engine/issues/1254). ([e05b8b1](https://github.com/ckeditor/ckeditor5-engine/commit/e05b8b1))
557
+ * The UI element's custom `render()` method can be now provided without using inheritance. Closes [#1254](https://github.com/ckeditor/ckeditor5-engine/issues/1254). ([e05b8b1](https://github.com/ckeditor/ckeditor5-engine/commit/e05b8b1))
558
558
 
559
559
  ### BREAKING CHANGES
560
560
 
@@ -570,8 +570,8 @@ The good news is that our focus when designing the new API was on the developer
570
570
  * `ViewConversionApi#storage` has been introduced.
571
571
  * `ViewConsumable` has been merged to `ViewConversionApi`.
572
572
  * Format od data object passed across conversion callback has been changed.
573
- Feature: `Schema#findAllowedParent` has been introduced.
574
- Feature: `SchemaContext#concat` has been introduced.
573
+ * Feature: `Schema#findAllowedParent` has been introduced.
574
+ * Feature: `SchemaContext#concat` has been introduced.
575
575
  * `DataController#parse`, `DataController#toModel`, `ViewConversionDispatcher#convert` gets `SchemaContextDefinition` as a context instead of `String`.
576
576
 
577
577
 
@@ -597,7 +597,7 @@ Feature: `SchemaContext#concat` has been introduced.
597
597
  * Fixed a bug in `Range#getTransformedByDelta()` that caused editor to crash after some `MergeDelta`s were transformed. Closes [#1132](https://github.com/ckeditor/ckeditor5-engine/issues/1132). ([97a4f4b](https://github.com/ckeditor/ckeditor5-engine/commit/97a4f4b))
598
598
  * Fixed a bug when a block quote could not be applied to an empty paragraph with a basic style (bold, etc.) active in it. Closes [#1127](https://github.com/ckeditor/ckeditor5-engine/issues/1127). ([6d33b9f](https://github.com/ckeditor/ckeditor5-engine/commit/6d33b9f))
599
599
  * Fixed a bug when editor crashed during `MergeDelta` transformation in a specific case. Closes [#1103](https://github.com/ckeditor/ckeditor5-engine/issues/1103). ([ef1b07e](https://github.com/ckeditor/ckeditor5-engine/commit/ef1b07e))
600
- * Spaces inside `<code>` will be rendered in a normal way (previously `DomConverter` tried to treat `<code>` like a preformatted block which is not what HTML needs). Closes [#1126](https://github.com/ckeditor/ckeditor5-engine/issues/1126). ([88630b7](https://github.com/ckeditor/ckeditor5-engine/commit/88630b7))
600
+ * Spaces inside `<code>` will be rendered in a normal way (previously `DomConverter` tried to treat `<code>` like a pre-formatted block which is not what HTML needs). Closes [#1126](https://github.com/ckeditor/ckeditor5-engine/issues/1126). ([88630b7](https://github.com/ckeditor/ckeditor5-engine/commit/88630b7))
601
601
  * Fixed a bug when undo did no changes instead of merging elements, in a scenario when an element was split and then the "new" element was removed. See https://github.com/ckeditor/ckeditor5-undo/issues/65#issuecomment-323682195. ([60024c0](https://github.com/ckeditor/ckeditor5-engine/commit/60024c0))
602
602
  * View and model nodes will now be removed from their old parents when they are added to a new parent to prevent having same node on multiple elements' children lists. Closes [#1139](https://github.com/ckeditor/ckeditor5-engine/issues/1139). ([dec9c28](https://github.com/ckeditor/ckeditor5-engine/commit/dec9c28))
603
603
 
@@ -608,7 +608,7 @@ Feature: `SchemaContext#concat` has been introduced.
608
608
 
609
609
  ### BREAKING CHANGES
610
610
 
611
- * View and model nodes are now automatically removed from their old parents when they are inserted into new elements. This is important e.g. if you iterate through element's children and they are moved during that iteration. In that case, it is safest to cache the element's children in an array.
611
+ * View and model nodes are now automatically removed from their old parents when they are inserted into new elements. This is important, for example, if you iterate through element's children and they are moved during that iteration. In that case, it is safest to cache the element's children in an array.
612
612
 
613
613
 
614
614
  ## [0.11.0](https://github.com/ckeditor/ckeditor5-engine/compare/v0.10.0...v0.11.0) (September 3, 2017)
@@ -631,7 +631,7 @@ Feature: `SchemaContext#concat` has been introduced.
631
631
  * Fixed incorrect markers transformations and conversions. Closes [#1112](https://github.com/ckeditor/ckeditor5-engine/issues/1112). Closes [#1080](https://github.com/ckeditor/ckeditor5-engine/issues/1080). Closes [#1079](https://github.com/ckeditor/ckeditor5-engine/issues/1079). ([b71adfb](https://github.com/ckeditor/ckeditor5-engine/commit/b71adfb))
632
632
  * Multiple spaces in an empty paragraph are now allowed. Closes ckeditor/ckeditor5-typing[#101](https://github.com/ckeditor/ckeditor5-engine/issues/101). ([9ca61d5](https://github.com/ckeditor/ckeditor5-engine/commit/9ca61d5))
633
633
  * Mutation observer will ignore children mutations if as a result of several native mutations the element's children have not changed. Closes [#1031](https://github.com/ckeditor/ckeditor5-engine/issues/1031). ([552198e](https://github.com/ckeditor/ckeditor5-engine/commit/552198e))
634
- * None of the editable's ancestors should scroll when the `DomConverter` focuses an editable. Closes [#957](https://github.com/ckeditor/ckeditor5-engine/issues/957). ([e3bc4d1](https://github.com/ckeditor/ckeditor5-engine/commit/e3bc4d1))
634
+ * None of the ancestors of the editable should scroll when the `DomConverter` focuses an editable. Closes [#957](https://github.com/ckeditor/ckeditor5-engine/issues/957). ([e3bc4d1](https://github.com/ckeditor/ckeditor5-engine/commit/e3bc4d1))
635
635
  * Placeholder text now will not be hidden if the element has only UI elements. Closes [#1018](https://github.com/ckeditor/ckeditor5-engine/issues/1018). ([299628b](https://github.com/ckeditor/ckeditor5-engine/commit/299628b))
636
636
  * Prevent unbinding elements that are reused during rendering. Closes [#922](https://github.com/ckeditor/ckeditor5-engine/issues/922). ([88fcdcb](https://github.com/ckeditor/ckeditor5-engine/commit/88fcdcb))
637
637
  * Prevented editor throwing during `SplitDelta` x `RemoveDelta` transformation when SplitDelta's first operation was neither InsertOperation nor ReinsertOperation. Closes [#1065](https://github.com/ckeditor/ckeditor5-engine/issues/1065). ([85e38e1](https://github.com/ckeditor/ckeditor5-engine/commit/85e38e1))
@@ -640,7 +640,7 @@ Feature: `SchemaContext#concat` has been introduced.
640
640
  * Singular white spaces (new lines, tabs and carriage returns) will be ignored when loading data when used outside/between block elements. Closes [#822](https://github.com/ckeditor/ckeditor5-engine/issues/822). ([4c9a0af](https://github.com/ckeditor/ckeditor5-engine/commit/4c9a0af))
641
641
 
642
642
  Also, the range of characters which are being normalized during DOM to view conversion was reduced to `[ \n\t\r]` to avoid losing space characters (which matches `/\s/`) that could be significant.
643
- * Splitting paragraph twice in the same position will now be undoable. Also fixed SplitDelta x SplitDelta transformation. Closes [#1096](https://github.com/ckeditor/ckeditor5-engine/issues/1096). Closes [#1097](https://github.com/ckeditor/ckeditor5-engine/issues/1097). ([b7cc243](https://github.com/ckeditor/ckeditor5-engine/commit/b7cc243))
643
+ * It is now possible to undo splitting a paragraph twice in the same position. Also fixed the `SplitDelta` x `SplitDelta` transformation. Closes [#1096](https://github.com/ckeditor/ckeditor5-engine/issues/1096). Closes [#1097](https://github.com/ckeditor/ckeditor5-engine/issues/1097). ([b7cc243](https://github.com/ckeditor/ckeditor5-engine/commit/b7cc243))
644
644
  * Writer will create a consistent hierarchy for attribute elements with same priorities. Introduced viewElement.getIdentity() method. Closes [#1060](https://github.com/ckeditor/ckeditor5-engine/issues/1060). ([85c96ef](https://github.com/ckeditor/ckeditor5-engine/commit/85c96ef))
645
645
  * Selection attributes should be cleared in an `enqueueChanges()` block. Fixed also a bug concerning `AttributeDelta` x `SplitDelta` transformation. Closes [#1055](https://github.com/ckeditor/ckeditor5-engine/issues/1055). ([ed1b7e7](https://github.com/ckeditor/ckeditor5-engine/commit/ed1b7e7))
646
646
  * Fixed a bug when additional list item has been created when undoing applying block quote to a list followed by splitting list item in that list. Closes [#1053](https://github.com/ckeditor/ckeditor5-engine/issues/1053). ([a6c6167](https://github.com/ckeditor/ckeditor5-engine/commit/a6c6167))
@@ -653,7 +653,7 @@ Feature: `SchemaContext#concat` has been introduced.
653
653
 
654
654
  * `DataController#deleteContent()` will leave a paragraph if the entire content was selected. Closes [#1012](https://github.com/ckeditor/ckeditor5-engine/issues/1012). ([17e70c3](https://github.com/ckeditor/ckeditor5-engine/commit/17e70c3))
655
655
 
656
- On the occasion `$root` element has been marked as a limit element in `Schema` in order to simplify the checks.
656
+ On the occasion `$root` element has been marked as a limit element in `Schema` to simplify the checks.
657
657
  * `model.LiveRange#event:change` got renamed to `change:range`. Introduced `model.LiveRange#event:change:content`. Closes [#1089](https://github.com/ckeditor/ckeditor5-engine/issues/1089). ([ec22a29](https://github.com/ckeditor/ckeditor5-engine/commit/ec22a29))
658
658
  * `model.LiveRange#event:change` now contains `data.batch` instance which changed the range. Closes [#1076](https://github.com/ckeditor/ckeditor5-engine/issues/1076). ([c6f5e9f](https://github.com/ckeditor/ckeditor5-engine/commit/c6f5e9f))
659
659
  * Enhanced `Selection#setTo()`, introduced `Selection#setIn()`, `Selection#setOn()`, `Range.createCollapsedAt()` and renamed few existing `Selection` methods for both model and view. Closes [#1074](https://github.com/ckeditor/ckeditor5-engine/issues/1074). ([070c313](https://github.com/ckeditor/ckeditor5-engine/commit/070c313))
@@ -699,7 +699,7 @@ Feature: `SchemaContext#concat` has been introduced.
699
699
  * `ModelConverterBuilder#toStamp()` functionality is renamed to `ModelConverterBuilder#toElement()`. Introduced `ModelConverterBuilder#toVirtualSelection()` which replaces current marker to element conversion.
700
700
  * The `DataController#deleteContent()` option was renamed from `merge` to `leaveUnmerged` and the default behavior of the function was changed to merge blocks.
701
701
  * Removed the `wrapRange()` and `unwrapRange()` functions from `model-to-view-converters.js` as they are no longer used.
702
- * Renamed marker stamps to marker elements in code and docs.
702
+ * Renamed marker stamps to marker elements in the code and documentation.
703
703
  * Renamed `Selection#collapse()` to `Selection#setCollapsedAt()`.
704
704
  * Renamed `Selection#setFocus()` to `Selection#moveFocusTo()`.
705
705
  * The `includeNode` option of `Node#getAncestors()` methods (model and view) was renamed to `includeSelf`. See [#1036](https://github.com/ckeditor/ckeditor5-engine/issues/1036).
@@ -721,10 +721,10 @@ Feature: `SchemaContext#concat` has been introduced.
721
721
 
722
722
  Minor upgrades to `ViewConversionBuilder`:
723
723
 
724
- * converters from `ViewConversionBuilder` will not convert if "creator function" returned `null`.
725
- * simplified view converters building by making `ViewConversionBuilder#toAttribute()` `value` param optional. If not set, the attribute value is taken from converted view element.
724
+ * Converters from `ViewConversionBuilder` will not convert if "creator function" returned `null`.
725
+ * Simplified view converters building by making the `value` parameter of `ViewConversionBuilder#toAttribute()` optional. If not set, the attribute value is taken from the converted view element.
726
726
  * Improved compatibility with MS Edge. See [#923](https://github.com/ckeditor/ckeditor5-engine/issues/923). Closes [#925](https://github.com/ckeditor/ckeditor5-engine/issues/925). ([1af4a50](https://github.com/ckeditor/ckeditor5-engine/commit/1af4a50))
727
- * Improved performance of the `view.Element`'s inline styles parser. Big property values (like base64 encoded images) should not crash the editor anymore. Closes [#881](https://github.com/ckeditor/ckeditor5-engine/issues/881). ([3d494a3](https://github.com/ckeditor/ckeditor5-engine/commit/3d494a3))
727
+ * Improved performance of the `view.Element`'s inline styles parser. Big property values (like Base64-encoded images) should not crash the editor anymore. Closes [#881](https://github.com/ckeditor/ckeditor5-engine/issues/881). ([3d494a3](https://github.com/ckeditor/ckeditor5-engine/commit/3d494a3))
728
728
  * Removed invalid promise catches from `dev-utils.DeltaReplayer`. Closes [#906](https://github.com/ckeditor/ckeditor5-engine/issues/906). ([69cfdd1](https://github.com/ckeditor/ckeditor5-engine/commit/69cfdd1))
729
729
  * Unified values returned in `data.output` during view-to-model conversion. See breaking changes. Closes [#932](https://github.com/ckeditor/ckeditor5-engine/issues/932). ([16ae05a](https://github.com/ckeditor/ckeditor5-engine/commit/16ae05a))
730
730
 
@@ -771,7 +771,7 @@ Feature: `SchemaContext#concat` has been introduced.
771
771
  ### Other changes
772
772
 
773
773
  * Changed the behavior of `DataController#deleteContent()` in a case of nested elements to better match situations like using <kbd>Backspace</kbd> after a block quotation. Closes [#710](https://github.com/ckeditor/ckeditor5-engine/issues/710). ([42a4429](https://github.com/ckeditor/ckeditor5-engine/commit/42a4429))
774
- * Default conversion.Mapper position mapping algorithms are now added as callbacks with low priority and are fired only if earlier callbacks did not provide a result. Closes [#884](https://github.com/ckeditor/ckeditor5-engine/issues/884). ([5627993](https://github.com/ckeditor/ckeditor5-engine/commit/5627993))
774
+ * Default `conversion.Mapper` position mapping algorithms are now added as callbacks with low priority and are fired only if earlier callbacks did not provide a result. Closes [#884](https://github.com/ckeditor/ckeditor5-engine/issues/884). ([5627993](https://github.com/ckeditor/ckeditor5-engine/commit/5627993))
775
775
  * Simplified `SelectionObserver`'s infinite loop check which should improve its stability. Closes [#889](https://github.com/ckeditor/ckeditor5-engine/issues/889). ([8b859fb](https://github.com/ckeditor/ckeditor5-engine/commit/8b859fb))
776
776
 
777
777
  ### BREAKING CHANGES
@@ -779,7 +779,7 @@ Feature: `SchemaContext#concat` has been introduced.
779
779
  * Since the default position mapping algorithms are attached with low priority, custom position mapping callbacks added with higher priority will not receive the position calculated by default algorithms in data. To execute default position mapping algorithms and use their value, hook custom callback with lower priority.
780
780
  * `BuildModelConverter#fromMarkerCollapsed()` is removed. Use `BuildModelConverter#fromMarker()` instead.
781
781
 
782
- ### NOTE
782
+ ### Note
783
783
 
784
784
  * The `insertUIElement()` model to view converter now supports collapsed and non-collapsed ranges.
785
785
 
@@ -789,7 +789,7 @@ Feature: `SchemaContext#concat` has been introduced.
789
789
  ### Bug fixes
790
790
 
791
791
  * `view.Matcher#getElementName()` now returns proper value when named function is used as a pattern. Closes [#850](https://github.com/ckeditor/ckeditor5/issues/850). ([93f41c5](https://github.com/ckeditor/ckeditor5-engine/commit/93f41c5))
792
- * Collapsed `model.Range` no longer sticks to its neighbour node when that node is moved. Closes [#852](https://github.com/ckeditor/ckeditor5/issues/852). ([ccd23d1](https://github.com/ckeditor/ckeditor5-engine/commit/ccd23d1))
792
+ * Collapsed `model.Range` no longer sticks to its neighbor node when that node is moved. Closes [#852](https://github.com/ckeditor/ckeditor5/issues/852). ([ccd23d1](https://github.com/ckeditor/ckeditor5-engine/commit/ccd23d1))
793
793
  * Default `remove()` converter no longer removes `view.UIElements` that are next to removed nodes. Closes [#854](https://github.com/ckeditor/ckeditor5/issues/854). ([c054ded](https://github.com/ckeditor/ckeditor5-engine/commit/c054ded))
794
794
  * `dev-utils/model#setData()` should work with custom roots. Closes [#815](https://github.com/ckeditor/ckeditor5/issues/815). ([0ad3074](https://github.com/ckeditor/ckeditor5-engine/commit/0ad3074))
795
795
  * You can now return `null` from the element creators in converters for selection attributes and markers. It does not crash the conversion anymore. Closes [#833](https://github.com/ckeditor/ckeditor5/issues/833). ([8ffa038](https://github.com/ckeditor/ckeditor5-engine/commit/8ffa038))
@@ -818,6 +818,6 @@ Feature: `SchemaContext#concat` has been introduced.
818
818
  * Removed `view.DocumentFragment#getAncestors()`. Closes [#803](https://github.com/ckeditor/ckeditor5/issues/803). Closes [#805](https://github.com/ckeditor/ckeditor5/issues/805).
819
819
  * `Position.getAncestors()` should return elements in the same order as `Node.getAncestors()`.
820
820
 
821
- ### NOTE
821
+ ### Note
822
822
 
823
823
  * It is advised to use either `Range#getTrimmed()` or `Range#getEnlarged()` before operating on a range returned from `Mapper`.
package/LICENSE.md CHANGED
@@ -2,7 +2,7 @@ Software License Agreement
2
2
  ==========================
3
3
 
4
4
  **CKEditor&nbsp;5 editing engine** – https://github.com/ckeditor/ckeditor5-engine <br>
5
- Copyright (c) 2003–2023, [CKSource Holding sp. z o.o.](https://cksource.com) All rights reserved.
5
+ Copyright (c) 2003–2024, [CKSource Holding sp. z o.o.](https://cksource.com) All rights reserved.
6
6
 
7
7
  Licensed under the terms of [GNU General Public License Version 2 or later](http://www.gnu.org/licenses/gpl.html).
8
8
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ckeditor/ckeditor5-engine",
3
- "version": "40.2.0",
3
+ "version": "41.0.0",
4
4
  "description": "The editing engine of CKEditor 5 – the best browser-based rich text editor.",
5
5
  "keywords": [
6
6
  "wysiwyg",
@@ -21,9 +21,10 @@
21
21
  "ckeditor5-lib",
22
22
  "ckeditor5-dll"
23
23
  ],
24
+ "type": "module",
24
25
  "main": "src/index.js",
25
26
  "dependencies": {
26
- "@ckeditor/ckeditor5-utils": "40.2.0",
27
+ "@ckeditor/ckeditor5-utils": "41.0.0",
27
28
  "lodash-es": "4.17.21"
28
29
  },
29
30
  "author": "CKSource (http://cksource.com/)",
@@ -1,22 +1,22 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
- import Mapper from '../conversion/mapper';
6
- import DowncastDispatcher from '../conversion/downcastdispatcher';
7
- import UpcastDispatcher from '../conversion/upcastdispatcher';
8
- import ViewDocumentFragment from '../view/documentfragment';
9
- import ViewDocument from '../view/document';
10
- import type ViewElement from '../view/element';
11
- import type { StylesProcessor } from '../view/stylesmap';
12
- import type { MatcherPattern } from '../view/matcher';
13
- import type Model from '../model/model';
14
- import type ModelElement from '../model/element';
15
- import type ModelDocumentFragment from '../model/documentfragment';
16
- import type { SchemaContextDefinition } from '../model/schema';
17
- import type { BatchType } from '../model/batch';
18
- import HtmlDataProcessor from '../dataprocessor/htmldataprocessor';
19
- import type DataProcessor from '../dataprocessor/dataprocessor';
5
+ import Mapper from '../conversion/mapper.js';
6
+ import DowncastDispatcher from '../conversion/downcastdispatcher.js';
7
+ import UpcastDispatcher from '../conversion/upcastdispatcher.js';
8
+ import ViewDocumentFragment from '../view/documentfragment.js';
9
+ import ViewDocument from '../view/document.js';
10
+ import type ViewElement from '../view/element.js';
11
+ import type { StylesProcessor } from '../view/stylesmap.js';
12
+ import type { MatcherPattern } from '../view/matcher.js';
13
+ import type Model from '../model/model.js';
14
+ import type ModelElement from '../model/element.js';
15
+ import type ModelDocumentFragment from '../model/documentfragment.js';
16
+ import type { SchemaContextDefinition } from '../model/schema.js';
17
+ import type { BatchType } from '../model/batch.js';
18
+ import HtmlDataProcessor from '../dataprocessor/htmldataprocessor.js';
19
+ import type DataProcessor from '../dataprocessor/dataprocessor.js';
20
20
  declare const DataController_base: {
21
21
  new (): import("@ckeditor/ckeditor5-utils").Emitter;
22
22
  prototype: import("@ckeditor/ckeditor5-utils").Emitter;
@@ -1,22 +1,22 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
  /**
6
6
  * @module engine/controller/datacontroller
7
7
  */
8
8
  import { CKEditorError, EmitterMixin, ObservableMixin, logWarning } from '@ckeditor/ckeditor5-utils';
9
- import Mapper from '../conversion/mapper';
10
- import DowncastDispatcher from '../conversion/downcastdispatcher';
11
- import { insertAttributesAndChildren, insertText } from '../conversion/downcasthelpers';
12
- import UpcastDispatcher from '../conversion/upcastdispatcher';
13
- import { convertText, convertToModelFragment } from '../conversion/upcasthelpers';
14
- import ViewDocumentFragment from '../view/documentfragment';
15
- import ViewDocument from '../view/document';
16
- import ViewDowncastWriter from '../view/downcastwriter';
17
- import ModelRange from '../model/range';
18
- import { autoParagraphEmptyRoots } from '../model/utils/autoparagraphing';
19
- import HtmlDataProcessor from '../dataprocessor/htmldataprocessor';
9
+ import Mapper from '../conversion/mapper.js';
10
+ import DowncastDispatcher from '../conversion/downcastdispatcher.js';
11
+ import { insertAttributesAndChildren, insertText } from '../conversion/downcasthelpers.js';
12
+ import UpcastDispatcher from '../conversion/upcastdispatcher.js';
13
+ import { convertText, convertToModelFragment } from '../conversion/upcasthelpers.js';
14
+ import ViewDocumentFragment from '../view/documentfragment.js';
15
+ import ViewDocument from '../view/document.js';
16
+ import ViewDowncastWriter from '../view/downcastwriter.js';
17
+ import ModelRange from '../model/range.js';
18
+ import { autoParagraphEmptyRoots } from '../model/utils/autoparagraphing.js';
19
+ import HtmlDataProcessor from '../dataprocessor/htmldataprocessor.js';
20
20
  /**
21
21
  * Controller for the data pipeline. The data pipeline controls how data is retrieved from the document
22
22
  * and set inside it. Hence, the controller features two methods which allow to {@link ~DataController#get get}
@@ -1,14 +1,14 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
- import View from '../view/view';
6
- import Mapper from '../conversion/mapper';
7
- import DowncastDispatcher from '../conversion/downcastdispatcher';
8
- import type { default as Model } from '../model/model';
9
- import type ModelItem from '../model/item';
10
- import type { Marker } from '../model/markercollection';
11
- import type { StylesProcessor } from '../view/stylesmap';
5
+ import View from '../view/view.js';
6
+ import Mapper from '../conversion/mapper.js';
7
+ import DowncastDispatcher from '../conversion/downcastdispatcher.js';
8
+ import type { default as Model } from '../model/model.js';
9
+ import type ModelItem from '../model/item.js';
10
+ import type { Marker } from '../model/markercollection.js';
11
+ import type { StylesProcessor } from '../view/stylesmap.js';
12
12
  declare const EditingController_base: {
13
13
  new (): import("@ckeditor/ckeditor5-utils").Observable;
14
14
  prototype: import("@ckeditor/ckeditor5-utils").Observable;
@@ -1,18 +1,18 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
  /**
6
6
  * @module engine/controller/editingcontroller
7
7
  */
8
8
  import { CKEditorError, ObservableMixin, env } from '@ckeditor/ckeditor5-utils';
9
- import RootEditableElement from '../view/rooteditableelement';
10
- import View from '../view/view';
11
- import Mapper from '../conversion/mapper';
12
- import DowncastDispatcher from '../conversion/downcastdispatcher';
13
- import { cleanSelection, convertCollapsedSelection, convertRangeSelection, insertAttributesAndChildren, insertText, remove } from '../conversion/downcasthelpers';
14
- import { convertSelectionChange } from '../conversion/upcasthelpers';
15
- import { tryFixingRange } from '../model/utils/selection-post-fixer';
9
+ import RootEditableElement from '../view/rooteditableelement.js';
10
+ import View from '../view/view.js';
11
+ import Mapper from '../conversion/mapper.js';
12
+ import DowncastDispatcher from '../conversion/downcastdispatcher.js';
13
+ import { cleanSelection, convertCollapsedSelection, convertRangeSelection, insertAttributesAndChildren, insertText, remove } from '../conversion/downcasthelpers.js';
14
+ import { convertSelectionChange } from '../conversion/upcasthelpers.js';
15
+ import { tryFixingRange } from '../model/utils/selection-post-fixer.js';
16
16
  // @if CK_DEBUG_ENGINE // const { dumpTrees, initDocumentDumping } = require( '../dev-utils/utils' );
17
17
  /**
18
18
  * A controller for the editing pipeline. The editing pipeline controls the {@link ~EditingController#model model} rendering,
@@ -1,17 +1,17 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
  /**
6
6
  * @module engine/conversion/conversion
7
7
  */
8
8
  import { type ArrayOrItem, type PriorityString } from '@ckeditor/ckeditor5-utils';
9
- import UpcastHelpers from './upcasthelpers';
10
- import DowncastHelpers, { type AttributeCreatorFunction, type AttributeDescriptor } from './downcasthelpers';
11
- import type DowncastDispatcher from './downcastdispatcher';
12
- import type UpcastDispatcher from './upcastdispatcher';
13
- import type ElementDefinition from '../view/elementdefinition';
14
- import type { MatcherPattern } from '../view/matcher';
9
+ import UpcastHelpers from './upcasthelpers.js';
10
+ import DowncastHelpers, { type AttributeCreatorFunction, type AttributeDescriptor } from './downcasthelpers.js';
11
+ import type DowncastDispatcher from './downcastdispatcher.js';
12
+ import type UpcastDispatcher from './upcastdispatcher.js';
13
+ import type ElementDefinition from '../view/elementdefinition.js';
14
+ import type { MatcherPattern } from '../view/matcher.js';
15
15
  /**
16
16
  * A utility class that helps add converters to upcast and downcast dispatchers.
17
17
  *
@@ -1,13 +1,13 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
  /**
6
6
  * @module engine/conversion/conversion
7
7
  */
8
8
  import { CKEditorError, toArray } from '@ckeditor/ckeditor5-utils';
9
- import UpcastHelpers from './upcasthelpers';
10
- import DowncastHelpers from './downcasthelpers';
9
+ import UpcastHelpers from './upcasthelpers.js';
10
+ import DowncastHelpers from './downcasthelpers.js';
11
11
  /**
12
12
  * A utility class that helps add converters to upcast and downcast dispatchers.
13
13
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
  /**
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
  /**
@@ -1,23 +1,23 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
  /**
6
6
  * @module engine/conversion/downcastdispatcher
7
7
  */
8
- import Consumable from './modelconsumable';
9
- import Range from '../model/range';
10
- import type { default as Differ, DiffItem } from '../model/differ';
11
- import type { default as MarkerCollection } from '../model/markercollection';
12
- import type DocumentSelection from '../model/documentselection';
13
- import type DowncastWriter from '../view/downcastwriter';
14
- import type Element from '../model/element';
15
- import type Item from '../model/item';
16
- import type Mapper from './mapper';
17
- import type Position from '../model/position';
18
- import type Schema from '../model/schema';
19
- import type Selection from '../model/selection';
20
- import type ViewElement from '../view/element';
8
+ import Consumable from './modelconsumable.js';
9
+ import Range from '../model/range.js';
10
+ import type { default as Differ, DiffItem } from '../model/differ.js';
11
+ import type { default as MarkerCollection } from '../model/markercollection.js';
12
+ import type DocumentSelection from '../model/documentselection.js';
13
+ import type DowncastWriter from '../view/downcastwriter.js';
14
+ import type Element from '../model/element.js';
15
+ import type Item from '../model/item.js';
16
+ import type Mapper from './mapper.js';
17
+ import type Position from '../model/position.js';
18
+ import type Schema from '../model/schema.js';
19
+ import type Selection from '../model/selection.js';
20
+ import type ViewElement from '../view/element.js';
21
21
  declare const DowncastDispatcher_base: {
22
22
  new (): import("@ckeditor/ckeditor5-utils").Emitter;
23
23
  prototype: import("@ckeditor/ckeditor5-utils").Emitter;
@@ -1,12 +1,12 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
  /**
6
6
  * @module engine/conversion/downcastdispatcher
7
7
  */
8
- import Consumable from './modelconsumable';
9
- import Range from '../model/range';
8
+ import Consumable from './modelconsumable.js';
9
+ import Range from '../model/range.js';
10
10
  import { EmitterMixin } from '@ckeditor/ckeditor5-utils';
11
11
  /**
12
12
  * The downcast dispatcher is a central point of downcasting (conversion from the model to the view), which is a process of reacting