@ckeditor/ckeditor5-engine 36.0.1 → 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 (200) 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/document.d.ts +184 -0
  107. package/src/view/document.js +15 -84
  108. package/src/view/documentfragment.d.ts +150 -0
  109. package/src/view/documentfragment.js +40 -81
  110. package/src/view/documentselection.d.ts +219 -0
  111. package/src/view/documentselection.js +75 -121
  112. package/src/view/domconverter.d.ts +620 -0
  113. package/src/view/domconverter.js +159 -276
  114. package/src/view/downcastwriter.d.ts +804 -0
  115. package/src/view/downcastwriter.js +336 -380
  116. package/src/view/editableelement.d.ts +52 -0
  117. package/src/view/editableelement.js +9 -49
  118. package/src/view/element.d.ts +466 -0
  119. package/src/view/element.js +150 -222
  120. package/src/view/elementdefinition.d.ts +87 -0
  121. package/src/view/emptyelement.d.ts +41 -0
  122. package/src/view/emptyelement.js +11 -44
  123. package/src/view/filler.d.ts +111 -0
  124. package/src/view/filler.js +24 -21
  125. package/src/view/item.d.ts +14 -0
  126. package/src/view/matcher.d.ts +486 -0
  127. package/src/view/matcher.js +247 -218
  128. package/src/view/node.d.ts +160 -0
  129. package/src/view/node.js +26 -100
  130. package/src/view/observer/arrowkeysobserver.d.ts +41 -0
  131. package/src/view/observer/arrowkeysobserver.js +0 -13
  132. package/src/view/observer/bubblingemittermixin.d.ts +166 -0
  133. package/src/view/observer/bubblingemittermixin.js +36 -25
  134. package/src/view/observer/bubblingeventinfo.d.ts +47 -0
  135. package/src/view/observer/bubblingeventinfo.js +3 -29
  136. package/src/view/observer/clickobserver.d.ts +43 -0
  137. package/src/view/observer/clickobserver.js +9 -19
  138. package/src/view/observer/compositionobserver.d.ts +82 -0
  139. package/src/view/observer/compositionobserver.js +13 -42
  140. package/src/view/observer/domeventdata.d.ts +50 -0
  141. package/src/view/observer/domeventdata.js +5 -30
  142. package/src/view/observer/domeventobserver.d.ts +69 -0
  143. package/src/view/observer/domeventobserver.js +19 -21
  144. package/src/view/observer/fakeselectionobserver.d.ts +46 -0
  145. package/src/view/observer/fakeselectionobserver.js +2 -15
  146. package/src/view/observer/focusobserver.d.ts +82 -0
  147. package/src/view/observer/focusobserver.js +14 -40
  148. package/src/view/observer/inputobserver.d.ts +86 -0
  149. package/src/view/observer/inputobserver.js +18 -64
  150. package/src/view/observer/keyobserver.d.ts +67 -0
  151. package/src/view/observer/keyobserver.js +8 -42
  152. package/src/view/observer/mouseobserver.d.ts +89 -0
  153. package/src/view/observer/mouseobserver.js +8 -28
  154. package/src/view/observer/mutationobserver.d.ts +82 -0
  155. package/src/view/observer/mutationobserver.js +7 -37
  156. package/src/view/observer/observer.d.ts +84 -0
  157. package/src/view/observer/observer.js +12 -25
  158. package/src/view/observer/selectionobserver.d.ts +143 -0
  159. package/src/view/observer/selectionobserver.js +9 -99
  160. package/src/view/observer/tabobserver.d.ts +42 -0
  161. package/src/view/observer/tabobserver.js +0 -14
  162. package/src/view/placeholder.d.ts +85 -0
  163. package/src/view/placeholder.js +26 -43
  164. package/src/view/position.d.ts +189 -0
  165. package/src/view/position.js +36 -83
  166. package/src/view/range.d.ts +279 -0
  167. package/src/view/range.js +79 -122
  168. package/src/view/rawelement.d.ts +73 -0
  169. package/src/view/rawelement.js +34 -48
  170. package/src/view/renderer.d.ts +265 -0
  171. package/src/view/renderer.js +105 -193
  172. package/src/view/rooteditableelement.d.ts +41 -0
  173. package/src/view/rooteditableelement.js +12 -40
  174. package/src/view/selection.d.ts +375 -0
  175. package/src/view/selection.js +79 -153
  176. package/src/view/styles/background.d.ts +33 -0
  177. package/src/view/styles/background.js +14 -12
  178. package/src/view/styles/border.d.ts +43 -0
  179. package/src/view/styles/border.js +58 -48
  180. package/src/view/styles/margin.d.ts +29 -0
  181. package/src/view/styles/margin.js +13 -11
  182. package/src/view/styles/padding.d.ts +29 -0
  183. package/src/view/styles/padding.js +13 -11
  184. package/src/view/styles/utils.d.ts +93 -0
  185. package/src/view/styles/utils.js +22 -48
  186. package/src/view/stylesmap.d.ts +675 -0
  187. package/src/view/stylesmap.js +249 -244
  188. package/src/view/text.d.ts +74 -0
  189. package/src/view/text.js +16 -46
  190. package/src/view/textproxy.d.ts +97 -0
  191. package/src/view/textproxy.js +10 -59
  192. package/src/view/treewalker.d.ts +195 -0
  193. package/src/view/treewalker.js +43 -106
  194. package/src/view/typecheckable.d.ts +401 -0
  195. package/src/view/uielement.d.ts +96 -0
  196. package/src/view/uielement.js +28 -62
  197. package/src/view/upcastwriter.d.ts +328 -0
  198. package/src/view/upcastwriter.js +124 -134
  199. package/src/view/view.d.ts +327 -0
  200. package/src/view/view.js +79 -150
@@ -34,73 +34,74 @@ import { CKEditorError, EmitterMixin } from '@ckeditor/ckeditor5-utils';
34
34
  * The third parameter of the callback is an instance of {@link module:engine/conversion/upcastdispatcher~UpcastConversionApi}
35
35
  * which provides additional tools for converters.
36
36
  *
37
- * You can read more about conversion in the {@glink framework/guides/deep-dive/conversion/upcast Upcast conversion} guide.
37
+ * You can read more about conversion in the {@glink framework/deep-dive/conversion/upcast Upcast conversion} guide.
38
38
  *
39
39
  * Examples of event-based converters:
40
40
  *
41
- * // A converter for links (<a>).
42
- * editor.data.upcastDispatcher.on( 'element:a', ( evt, data, conversionApi ) => {
43
- * if ( conversionApi.consumable.consume( data.viewItem, { name: true, attributes: [ 'href' ] } ) ) {
44
- * // The <a> element is inline and is represented by an attribute in the model.
45
- * // This is why you need to convert only children.
46
- * const { modelRange } = conversionApi.convertChildren( data.viewItem, data.modelCursor );
41
+ * ```ts
42
+ * // A converter for links (<a>).
43
+ * editor.data.upcastDispatcher.on( 'element:a', ( evt, data, conversionApi ) => {
44
+ * if ( conversionApi.consumable.consume( data.viewItem, { name: true, attributes: [ 'href' ] } ) ) {
45
+ * // The <a> element is inline and is represented by an attribute in the model.
46
+ * // This is why you need to convert only children.
47
+ * const { modelRange } = conversionApi.convertChildren( data.viewItem, data.modelCursor );
47
48
  *
48
- * for ( let item of modelRange.getItems() ) {
49
- * if ( conversionApi.schema.checkAttribute( item, 'linkHref' ) ) {
50
- * conversionApi.writer.setAttribute( 'linkHref', data.viewItem.getAttribute( 'href' ), item );
51
- * }
52
- * }
53
- * }
54
- * } );
49
+ * for ( let item of modelRange.getItems() ) {
50
+ * if ( conversionApi.schema.checkAttribute( item, 'linkHref' ) ) {
51
+ * conversionApi.writer.setAttribute( 'linkHref', data.viewItem.getAttribute( 'href' ), item );
52
+ * }
53
+ * }
54
+ * }
55
+ * } );
55
56
  *
56
- * // Convert <p> element's font-size style.
57
- * // Note: You should use a low-priority observer in order to ensure that
58
- * // it is executed after the element-to-element converter.
59
- * editor.data.upcastDispatcher.on( 'element:p', ( evt, data, conversionApi ) => {
60
- * const { consumable, schema, writer } = conversionApi;
57
+ * // Convert <p> element's font-size style.
58
+ * // Note: You should use a low-priority observer in order to ensure that
59
+ * // it is executed after the element-to-element converter.
60
+ * editor.data.upcastDispatcher.on( 'element:p', ( evt, data, conversionApi ) => {
61
+ * const { consumable, schema, writer } = conversionApi;
61
62
  *
62
- * if ( !consumable.consume( data.viewItem, { style: 'font-size' } ) ) {
63
- * return;
64
- * }
63
+ * if ( !consumable.consume( data.viewItem, { style: 'font-size' } ) ) {
64
+ * return;
65
+ * }
65
66
  *
66
- * const fontSize = data.viewItem.getStyle( 'font-size' );
67
+ * const fontSize = data.viewItem.getStyle( 'font-size' );
67
68
  *
68
- * // Do not go for the model element after data.modelCursor because it might happen
69
- * // that a single view element was converted to multiple model elements. Get all of them.
70
- * for ( const item of data.modelRange.getItems( { shallow: true } ) ) {
71
- * if ( schema.checkAttribute( item, 'fontSize' ) ) {
72
- * writer.setAttribute( 'fontSize', fontSize, item );
73
- * }
74
- * }
75
- * }, { priority: 'low' } );
69
+ * // Do not go for the model element after data.modelCursor because it might happen
70
+ * // that a single view element was converted to multiple model elements. Get all of them.
71
+ * for ( const item of data.modelRange.getItems( { shallow: true } ) ) {
72
+ * if ( schema.checkAttribute( item, 'fontSize' ) ) {
73
+ * writer.setAttribute( 'fontSize', fontSize, item );
74
+ * }
75
+ * }
76
+ * }, { priority: 'low' } );
76
77
  *
77
- * // Convert all elements which have no custom converter into a paragraph (autoparagraphing).
78
- * editor.data.upcastDispatcher.on( 'element', ( evt, data, conversionApi ) => {
79
- * // Check if an element can be converted.
80
- * if ( !conversionApi.consumable.test( data.viewItem, { name: data.viewItem.name } ) ) {
81
- * // When an element is already consumed by higher priority converters, do nothing.
82
- * return;
83
- * }
78
+ * // Convert all elements which have no custom converter into a paragraph (autoparagraphing).
79
+ * editor.data.upcastDispatcher.on( 'element', ( evt, data, conversionApi ) => {
80
+ * // Check if an element can be converted.
81
+ * if ( !conversionApi.consumable.test( data.viewItem, { name: data.viewItem.name } ) ) {
82
+ * // When an element is already consumed by higher priority converters, do nothing.
83
+ * return;
84
+ * }
84
85
  *
85
- * const paragraph = conversionApi.writer.createElement( 'paragraph' );
86
+ * const paragraph = conversionApi.writer.createElement( 'paragraph' );
86
87
  *
87
- * // Try to safely insert a paragraph at the model cursor - it will find an allowed parent for the current element.
88
- * if ( !conversionApi.safeInsert( paragraph, data.modelCursor ) ) {
89
- * // When an element was not inserted, it means that you cannot insert a paragraph at this position.
90
- * return;
91
- * }
88
+ * // Try to safely insert a paragraph at the model cursor - it will find an allowed parent for the current element.
89
+ * if ( !conversionApi.safeInsert( paragraph, data.modelCursor ) ) {
90
+ * // When an element was not inserted, it means that you cannot insert a paragraph at this position.
91
+ * return;
92
+ * }
92
93
  *
93
- * // Consume the inserted element.
94
- * conversionApi.consumable.consume( data.viewItem, { name: data.viewItem.name } ) );
94
+ * // Consume the inserted element.
95
+ * conversionApi.consumable.consume( data.viewItem, { name: data.viewItem.name } ) );
95
96
  *
96
- * // Convert the children to a paragraph.
97
- * const { modelRange } = conversionApi.convertChildren( data.viewItem, paragraph ) );
97
+ * // Convert the children to a paragraph.
98
+ * const { modelRange } = conversionApi.convertChildren( data.viewItem, paragraph ) );
98
99
  *
99
- * // Update `modelRange` and `modelCursor` in the `data` as a conversion result.
100
- * conversionApi.updateConversionResult( paragraph, data );
101
- * }, { priority: 'low' } );
100
+ * // Update `modelRange` and `modelCursor` in the `data` as a conversion result.
101
+ * conversionApi.updateConversionResult( paragraph, data );
102
+ * }, { priority: 'low' } );
103
+ * ```
102
104
  *
103
- * @mixes module:utils/emittermixin~EmitterMixin
104
105
  * @fires viewCleanup
105
106
  * @fires element
106
107
  * @fires text
@@ -111,7 +112,7 @@ export default class UpcastDispatcher extends EmitterMixin() {
111
112
  * Creates an upcast dispatcher that operates using the passed API.
112
113
  *
113
114
  * @see module:engine/conversion/upcastdispatcher~UpcastConversionApi
114
- * @param {Object} [conversionApi] Additional properties for an interface that will be passed to events fired
115
+ * @param conversionApi Additional properties for an interface that will be passed to events fired
115
116
  * by the upcast dispatcher.
116
117
  */
117
118
  constructor(conversionApi) {
@@ -120,43 +121,26 @@ export default class UpcastDispatcher extends EmitterMixin() {
120
121
  * The list of elements that were created during splitting.
121
122
  *
122
123
  * After the conversion process, the list is cleared.
123
- *
124
- * @private
125
- * @type {Map.<module:engine/model/element~Element,Array.<module:engine/model/element~Element>>}
126
124
  */
127
125
  this._splitParts = new Map();
128
126
  /**
129
127
  * The list of cursor parent elements that were created during splitting.
130
128
  *
131
129
  * After the conversion process the list is cleared.
132
- *
133
- * @private
134
- * @type {Map.<module:engine/model/element~Element,Array.<module:engine/model/element~Element>>}
135
130
  */
136
131
  this._cursorParents = new Map();
137
132
  /**
138
133
  * The position in the temporary structure where the converted content is inserted. The structure reflects the context of
139
134
  * the target position where the content will be inserted. This property is built based on the context parameter of the
140
135
  * convert method.
141
- *
142
- * @private
143
- * @type {module:engine/model/position~Position|null}
144
136
  */
145
137
  this._modelCursor = null;
146
138
  /**
147
139
  * The list of elements that were created during the splitting but should not get removed on conversion end even if they are empty.
148
140
  *
149
141
  * The list is cleared after the conversion process.
150
- *
151
- * @private
152
- * @type {Set.<module:engine/model/element~Element>}
153
142
  */
154
143
  this._emptyElementsToKeep = new Set();
155
- /**
156
- * An interface passed by the dispatcher to the event callbacks.
157
- *
158
- * @member {module:engine/conversion/upcastdispatcher~UpcastConversionApi}
159
- */
160
144
  this.conversionApi = {
161
145
  ...conversionApi,
162
146
  consumable: null,
@@ -164,10 +148,10 @@ export default class UpcastDispatcher extends EmitterMixin() {
164
148
  store: null,
165
149
  convertItem: (viewItem, modelCursor) => this._convertItem(viewItem, modelCursor),
166
150
  convertChildren: (viewElement, positionOrElement) => this._convertChildren(viewElement, positionOrElement),
167
- safeInsert: (modelElement, position) => this._safeInsert(modelElement, position),
151
+ safeInsert: (modelNode, position) => this._safeInsert(modelNode, position),
168
152
  updateConversionResult: (modelElement, data) => this._updateConversionResult(modelElement, data),
169
153
  // Advanced API - use only if custom position handling is needed.
170
- splitToAllowedParent: (modelElement, modelCursor) => this._splitToAllowedParent(modelElement, modelCursor),
154
+ splitToAllowedParent: (modelNode, modelCursor) => this._splitToAllowedParent(modelNode, modelCursor),
171
155
  getSplitParts: modelElement => this._getSplitParts(modelElement),
172
156
  keepEmptyElement: modelElement => this._keepEmptyElement(modelElement)
173
157
  };
@@ -178,11 +162,10 @@ export default class UpcastDispatcher extends EmitterMixin() {
178
162
  * @fires element
179
163
  * @fires text
180
164
  * @fires documentFragment
181
- * @param {module:engine/view/documentfragment~DocumentFragment|module:engine/view/element~Element} viewElement
182
- * The part of the view to be converted.
183
- * @param {module:engine/model/writer~Writer} writer An instance of the model writer.
184
- * @param {module:engine/model/schema~SchemaContextDefinition} [context=['$root']] Elements will be converted according to this context.
185
- * @returns {module:engine/model/documentfragment~DocumentFragment} Model data that is the result of the conversion process
165
+ * @param viewElement The part of the view to be converted.
166
+ * @param writer An instance of the model writer.
167
+ * @param context Elements will be converted according to this context.
168
+ * @returns Model data that is the result of the conversion process
186
169
  * wrapped in `DocumentFragment`. Converted marker elements will be set as the document fragment's
187
170
  * {@link module:engine/model/documentfragment~DocumentFragment#markers static markers map}.
188
171
  */
@@ -226,7 +209,6 @@ export default class UpcastDispatcher extends EmitterMixin() {
226
209
  return documentFragment;
227
210
  }
228
211
  /**
229
- * @private
230
212
  * @see module:engine/conversion/upcastdispatcher~UpcastConversionApi#convertItem
231
213
  */
232
214
  _convertItem(viewItem, modelCursor) {
@@ -254,7 +236,6 @@ export default class UpcastDispatcher extends EmitterMixin() {
254
236
  return { modelRange: data.modelRange, modelCursor: data.modelCursor };
255
237
  }
256
238
  /**
257
- * @private
258
239
  * @see module:engine/conversion/upcastdispatcher~UpcastConversionApi#convertChildren
259
240
  */
260
241
  _convertChildren(viewItem, elementOrModelCursor) {
@@ -271,24 +252,22 @@ export default class UpcastDispatcher extends EmitterMixin() {
271
252
  return { modelRange, modelCursor: nextModelCursor };
272
253
  }
273
254
  /**
274
- * @private
275
255
  * @see module:engine/conversion/upcastdispatcher~UpcastConversionApi#safeInsert
276
256
  */
277
- _safeInsert(modelElement, position) {
257
+ _safeInsert(modelNode, position) {
278
258
  // Find allowed parent for element that we are going to insert.
279
259
  // If current parent does not allow to insert element but one of the ancestors does
280
260
  // then split nodes to allowed parent.
281
- const splitResult = this._splitToAllowedParent(modelElement, position);
261
+ const splitResult = this._splitToAllowedParent(modelNode, position);
282
262
  // When there is no split result it means that we can't insert element to model tree, so let's skip it.
283
263
  if (!splitResult) {
284
264
  return false;
285
265
  }
286
266
  // Insert element on allowed position.
287
- this.conversionApi.writer.insert(modelElement, splitResult.position);
267
+ this.conversionApi.writer.insert(modelNode, splitResult.position);
288
268
  return true;
289
269
  }
290
270
  /**
291
- * @private
292
271
  * @see module:engine/conversion/upcastdispatcher~UpcastConversionApi#updateConversionResult
293
272
  */
294
273
  _updateConversionResult(modelElement, data) {
@@ -313,7 +292,6 @@ export default class UpcastDispatcher extends EmitterMixin() {
313
292
  }
314
293
  }
315
294
  /**
316
- * @private
317
295
  * @see module:engine/conversion/upcastdispatcher~UpcastConversionApi#splitToAllowedParent
318
296
  */
319
297
  _splitToAllowedParent(node, modelCursor) {
@@ -378,10 +356,6 @@ export default class UpcastDispatcher extends EmitterMixin() {
378
356
  * Registers that a `splitPart` element is a split part of the `originalPart` element.
379
357
  *
380
358
  * The data set by this method is used by {@link #_getSplitParts} and {@link #_removeEmptyElements}.
381
- *
382
- * @private
383
- * @param {module:engine/model/element~Element} originalPart
384
- * @param {module:engine/model/element~Element} splitPart
385
359
  */
386
360
  _registerSplitPair(originalPart, splitPart) {
387
361
  if (!this._splitParts.has(originalPart)) {
@@ -392,7 +366,6 @@ export default class UpcastDispatcher extends EmitterMixin() {
392
366
  list.push(splitPart);
393
367
  }
394
368
  /**
395
- * @private
396
369
  * @see module:engine/conversion/upcastdispatcher~UpcastConversionApi#getSplitParts
397
370
  */
398
371
  _getSplitParts(element) {
@@ -407,8 +380,6 @@ export default class UpcastDispatcher extends EmitterMixin() {
407
380
  }
408
381
  /**
409
382
  * Mark an element that were created during the splitting to not get removed on conversion end even if it is empty.
410
- *
411
- * @private
412
383
  */
413
384
  _keepEmptyElement(element) {
414
385
  this._emptyElementsToKeep.add(element);
@@ -418,8 +389,6 @@ export default class UpcastDispatcher extends EmitterMixin() {
418
389
  *
419
390
  * This method works recursively to re-check empty elements again after at least one element was removed in the initial call,
420
391
  * as some elements might have become empty after other empty elements were removed from them.
421
- *
422
- * @private
423
392
  */
424
393
  _removeEmptyElements() {
425
394
  let anyRemoved = false;
@@ -435,11 +404,13 @@ export default class UpcastDispatcher extends EmitterMixin() {
435
404
  }
436
405
  }
437
406
  }
438
- // Traverses given model item and searches elements which marks marker range. Found element is removed from
439
- // DocumentFragment but path of this element is stored in a Map which is then returned.
440
- //
441
- // @param {module:engine/view/documentfragment~DocumentFragment|module:engine/view/node~Node} modelItem Fragment of model.
442
- // @returns {Map<String, module:engine/model/range~Range>} List of static markers.
407
+ /**
408
+ * Traverses given model item and searches elements which marks marker range. Found element is removed from
409
+ * DocumentFragment but path of this element is stored in a Map which is then returned.
410
+ *
411
+ * @param modelItem Fragment of model.
412
+ * @returns List of static markers.
413
+ */
443
414
  function extractMarkersFromModelFragment(modelItem, writer) {
444
415
  const markerElements = new Set();
445
416
  const markers = new Map();
@@ -469,7 +440,9 @@ function extractMarkersFromModelFragment(modelItem, writer) {
469
440
  }
470
441
  return markers;
471
442
  }
472
- // Creates model fragment according to given context and returns position in the bottom (the deepest) element.
443
+ /**
444
+ * Creates model fragment according to given context and returns position in the bottom (the deepest) element.
445
+ */
473
446
  function createContextTree(contextDefinition, writer) {
474
447
  let position;
475
448
  for (const item of new SchemaContext(contextDefinition)) {