@ckeditor/ckeditor5-engine 36.0.0 → 37.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/package.json +24 -23
- package/src/controller/datacontroller.d.ts +331 -0
- package/src/controller/datacontroller.js +62 -109
- package/src/controller/editingcontroller.d.ts +98 -0
- package/src/controller/editingcontroller.js +22 -46
- package/src/conversion/conversion.d.ts +476 -0
- package/src/conversion/conversion.js +328 -347
- package/src/conversion/conversionhelpers.d.ts +26 -0
- package/src/conversion/conversionhelpers.js +1 -5
- package/src/conversion/downcastdispatcher.d.ts +547 -0
- package/src/conversion/downcastdispatcher.js +74 -152
- package/src/conversion/downcasthelpers.d.ts +1226 -0
- package/src/conversion/downcasthelpers.js +843 -762
- package/src/conversion/mapper.d.ts +499 -0
- package/src/conversion/mapper.js +84 -99
- package/src/conversion/modelconsumable.d.ts +201 -0
- package/src/conversion/modelconsumable.js +96 -99
- package/src/conversion/upcastdispatcher.d.ts +492 -0
- package/src/conversion/upcastdispatcher.js +73 -100
- package/src/conversion/upcasthelpers.d.ts +499 -0
- package/src/conversion/upcasthelpers.js +406 -373
- package/src/conversion/viewconsumable.d.ts +177 -0
- package/src/conversion/viewconsumable.js +157 -162
- package/src/dataprocessor/basichtmlwriter.d.ts +18 -0
- package/src/dataprocessor/basichtmlwriter.js +0 -9
- package/src/dataprocessor/dataprocessor.d.ts +61 -0
- package/src/dataprocessor/htmldataprocessor.d.ts +76 -0
- package/src/dataprocessor/htmldataprocessor.js +6 -28
- package/src/dataprocessor/htmlwriter.d.ts +16 -0
- package/src/dataprocessor/xmldataprocessor.d.ts +90 -0
- package/src/dataprocessor/xmldataprocessor.js +8 -40
- package/src/dev-utils/model.d.ts +124 -0
- package/src/dev-utils/model.js +41 -38
- package/src/dev-utils/operationreplayer.d.ts +51 -0
- package/src/dev-utils/operationreplayer.js +6 -14
- package/src/dev-utils/utils.d.ts +37 -0
- package/src/dev-utils/utils.js +5 -18
- package/src/dev-utils/view.d.ts +319 -0
- package/src/dev-utils/view.js +205 -226
- package/src/index.d.ts +105 -0
- package/src/index.js +1 -0
- package/src/model/batch.d.ts +106 -0
- package/src/model/differ.d.ts +329 -0
- package/src/model/document.d.ts +245 -0
- package/src/model/document.js +1 -1
- package/src/model/documentfragment.d.ts +196 -0
- package/src/model/documentfragment.js +2 -2
- package/src/model/documentselection.d.ts +420 -0
- package/src/model/element.d.ts +165 -0
- package/src/model/history.d.ts +114 -0
- package/src/model/item.d.ts +14 -0
- package/src/model/liveposition.d.ts +77 -0
- package/src/model/liverange.d.ts +102 -0
- package/src/model/markercollection.d.ts +335 -0
- package/src/model/model.d.ts +812 -0
- package/src/model/model.js +59 -30
- package/src/model/node.d.ts +256 -0
- package/src/model/nodelist.d.ts +91 -0
- package/src/model/operation/attributeoperation.d.ts +98 -0
- package/src/model/operation/detachoperation.d.ts +55 -0
- package/src/model/operation/insertoperation.d.ts +85 -0
- package/src/model/operation/markeroperation.d.ts +86 -0
- package/src/model/operation/mergeoperation.d.ts +95 -0
- package/src/model/operation/moveoperation.d.ts +91 -0
- package/src/model/operation/nooperation.d.ts +33 -0
- package/src/model/operation/operation.d.ts +89 -0
- package/src/model/operation/operationfactory.d.ts +18 -0
- package/src/model/operation/renameoperation.d.ts +78 -0
- package/src/model/operation/rootattributeoperation.d.ts +97 -0
- package/src/model/operation/rootattributeoperation.js +1 -1
- package/src/model/operation/splitoperation.d.ts +104 -0
- package/src/model/operation/transform.d.ts +100 -0
- package/src/model/operation/utils.d.ts +71 -0
- package/src/model/position.d.ts +539 -0
- package/src/model/position.js +1 -1
- package/src/model/range.d.ts +458 -0
- package/src/model/range.js +1 -1
- package/src/model/rootelement.d.ts +40 -0
- package/src/model/schema.d.ts +1176 -0
- package/src/model/schema.js +15 -15
- package/src/model/selection.d.ts +472 -0
- package/src/model/text.d.ts +66 -0
- package/src/model/text.js +0 -2
- package/src/model/textproxy.d.ts +144 -0
- package/src/model/treewalker.d.ts +186 -0
- package/src/model/treewalker.js +19 -10
- package/src/model/typecheckable.d.ts +255 -0
- package/src/model/utils/autoparagraphing.d.ts +37 -0
- package/src/model/utils/deletecontent.d.ts +58 -0
- package/src/model/utils/findoptimalinsertionrange.d.ts +32 -0
- package/src/model/utils/getselectedcontent.d.ts +30 -0
- package/src/model/utils/insertcontent.d.ts +46 -0
- package/src/model/utils/insertcontent.js +2 -12
- package/src/model/utils/insertobject.d.ts +44 -0
- package/src/model/utils/insertobject.js +3 -14
- package/src/model/utils/modifyselection.d.ts +48 -0
- package/src/model/utils/selection-post-fixer.d.ts +65 -0
- package/src/model/writer.d.ts +726 -0
- package/src/model/writer.js +6 -4
- package/src/view/attributeelement.d.ts +108 -0
- package/src/view/attributeelement.js +25 -69
- package/src/view/containerelement.d.ts +49 -0
- package/src/view/containerelement.js +10 -43
- package/src/view/datatransfer.d.ts +75 -0
- package/src/view/datatransfer.js +24 -27
- package/src/view/document.d.ts +184 -0
- package/src/view/document.js +15 -84
- package/src/view/documentfragment.d.ts +150 -0
- package/src/view/documentfragment.js +40 -81
- package/src/view/documentselection.d.ts +219 -0
- package/src/view/documentselection.js +75 -121
- package/src/view/domconverter.d.ts +620 -0
- package/src/view/domconverter.js +159 -276
- package/src/view/downcastwriter.d.ts +804 -0
- package/src/view/downcastwriter.js +336 -380
- package/src/view/editableelement.d.ts +52 -0
- package/src/view/editableelement.js +9 -49
- package/src/view/element.d.ts +466 -0
- package/src/view/element.js +150 -222
- package/src/view/elementdefinition.d.ts +87 -0
- package/src/view/emptyelement.d.ts +41 -0
- package/src/view/emptyelement.js +11 -44
- package/src/view/filler.d.ts +111 -0
- package/src/view/filler.js +24 -21
- package/src/view/item.d.ts +14 -0
- package/src/view/matcher.d.ts +486 -0
- package/src/view/matcher.js +247 -218
- package/src/view/node.d.ts +160 -0
- package/src/view/node.js +26 -100
- package/src/view/observer/arrowkeysobserver.d.ts +41 -0
- package/src/view/observer/arrowkeysobserver.js +0 -13
- package/src/view/observer/bubblingemittermixin.d.ts +166 -0
- package/src/view/observer/bubblingemittermixin.js +36 -25
- package/src/view/observer/bubblingeventinfo.d.ts +47 -0
- package/src/view/observer/bubblingeventinfo.js +3 -29
- package/src/view/observer/clickobserver.d.ts +43 -0
- package/src/view/observer/clickobserver.js +9 -19
- package/src/view/observer/compositionobserver.d.ts +82 -0
- package/src/view/observer/compositionobserver.js +13 -42
- package/src/view/observer/domeventdata.d.ts +50 -0
- package/src/view/observer/domeventdata.js +5 -30
- package/src/view/observer/domeventobserver.d.ts +69 -0
- package/src/view/observer/domeventobserver.js +19 -21
- package/src/view/observer/fakeselectionobserver.d.ts +46 -0
- package/src/view/observer/fakeselectionobserver.js +2 -15
- package/src/view/observer/focusobserver.d.ts +82 -0
- package/src/view/observer/focusobserver.js +14 -40
- package/src/view/observer/inputobserver.d.ts +86 -0
- package/src/view/observer/inputobserver.js +18 -64
- package/src/view/observer/keyobserver.d.ts +67 -0
- package/src/view/observer/keyobserver.js +8 -42
- package/src/view/observer/mouseobserver.d.ts +89 -0
- package/src/view/observer/mouseobserver.js +8 -28
- package/src/view/observer/mutationobserver.d.ts +82 -0
- package/src/view/observer/mutationobserver.js +7 -37
- package/src/view/observer/observer.d.ts +84 -0
- package/src/view/observer/observer.js +12 -25
- package/src/view/observer/selectionobserver.d.ts +143 -0
- package/src/view/observer/selectionobserver.js +9 -99
- package/src/view/observer/tabobserver.d.ts +42 -0
- package/src/view/observer/tabobserver.js +0 -14
- package/src/view/placeholder.d.ts +85 -0
- package/src/view/placeholder.js +26 -43
- package/src/view/position.d.ts +189 -0
- package/src/view/position.js +36 -83
- package/src/view/range.d.ts +279 -0
- package/src/view/range.js +79 -122
- package/src/view/rawelement.d.ts +73 -0
- package/src/view/rawelement.js +34 -48
- package/src/view/renderer.d.ts +265 -0
- package/src/view/renderer.js +105 -193
- package/src/view/rooteditableelement.d.ts +41 -0
- package/src/view/rooteditableelement.js +12 -40
- package/src/view/selection.d.ts +375 -0
- package/src/view/selection.js +79 -153
- package/src/view/styles/background.d.ts +33 -0
- package/src/view/styles/background.js +14 -12
- package/src/view/styles/border.d.ts +43 -0
- package/src/view/styles/border.js +58 -48
- package/src/view/styles/margin.d.ts +29 -0
- package/src/view/styles/margin.js +13 -11
- package/src/view/styles/padding.d.ts +29 -0
- package/src/view/styles/padding.js +13 -11
- package/src/view/styles/utils.d.ts +93 -0
- package/src/view/styles/utils.js +22 -48
- package/src/view/stylesmap.d.ts +675 -0
- package/src/view/stylesmap.js +249 -244
- package/src/view/text.d.ts +74 -0
- package/src/view/text.js +16 -46
- package/src/view/textproxy.d.ts +97 -0
- package/src/view/textproxy.js +10 -59
- package/src/view/treewalker.d.ts +195 -0
- package/src/view/treewalker.js +43 -106
- package/src/view/typecheckable.d.ts +401 -0
- package/src/view/uielement.d.ts +96 -0
- package/src/view/uielement.js +28 -62
- package/src/view/upcastwriter.d.ts +328 -0
- package/src/view/upcastwriter.js +124 -134
- package/src/view/view.d.ts +327 -0
- package/src/view/view.js +79 -150
|
@@ -73,53 +73,44 @@ import { EmitterMixin } from '@ckeditor/ckeditor5-utils';
|
|
|
73
73
|
*
|
|
74
74
|
* You can read more about conversion in the following guide:
|
|
75
75
|
*
|
|
76
|
-
* * {@glink framework/
|
|
76
|
+
* * {@glink framework/deep-dive/conversion/downcast Downcast conversion}
|
|
77
77
|
*
|
|
78
78
|
* An example of a custom converter for the downcast dispatcher:
|
|
79
79
|
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
*
|
|
85
|
-
*
|
|
80
|
+
* ```ts
|
|
81
|
+
* // You will convert inserting a "paragraph" model element into the model.
|
|
82
|
+
* downcastDispatcher.on( 'insert:paragraph', ( evt, data, conversionApi ) => {
|
|
83
|
+
* // Remember to check whether the change has not been consumed yet and consume it.
|
|
84
|
+
* if ( !conversionApi.consumable.consume( data.item, 'insert' ) ) {
|
|
85
|
+
* return;
|
|
86
|
+
* }
|
|
86
87
|
*
|
|
87
|
-
*
|
|
88
|
-
*
|
|
88
|
+
* // Translate the position in the model to a position in the view.
|
|
89
|
+
* const viewPosition = conversionApi.mapper.toViewPosition( data.range.start );
|
|
89
90
|
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
91
|
+
* // Create a <p> element that will be inserted into the view at the `viewPosition`.
|
|
92
|
+
* const viewElement = conversionApi.writer.createContainerElement( 'p' );
|
|
92
93
|
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
94
|
+
* // Bind the newly created view element to the model element so positions will map accordingly in the future.
|
|
95
|
+
* conversionApi.mapper.bindElements( data.item, viewElement );
|
|
95
96
|
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
*
|
|
97
|
+
* // Add the newly created view element to the view.
|
|
98
|
+
* conversionApi.writer.insert( viewPosition, viewElement );
|
|
99
|
+
* } );
|
|
100
|
+
* ```
|
|
99
101
|
*/
|
|
100
102
|
export default class DowncastDispatcher extends EmitterMixin() {
|
|
101
103
|
/**
|
|
102
104
|
* Creates a downcast dispatcher instance.
|
|
103
105
|
*
|
|
104
106
|
* @see module:engine/conversion/downcastdispatcher~DowncastConversionApi
|
|
105
|
-
*
|
|
107
|
+
*
|
|
108
|
+
* @param conversionApi Additional properties for an interface that will be passed to events fired
|
|
106
109
|
* by the downcast dispatcher.
|
|
107
110
|
*/
|
|
108
111
|
constructor(conversionApi) {
|
|
109
112
|
super();
|
|
110
|
-
/**
|
|
111
|
-
* A template for an interface passed by the dispatcher to the event callbacks.
|
|
112
|
-
*
|
|
113
|
-
* @protected
|
|
114
|
-
* @member {module:engine/conversion/downcastdispatcher~DowncastConversionApi}
|
|
115
|
-
*/
|
|
116
113
|
this._conversionApi = { dispatcher: this, ...conversionApi };
|
|
117
|
-
/**
|
|
118
|
-
* A map of already fired events for a given `ModelConsumable`.
|
|
119
|
-
*
|
|
120
|
-
* @private
|
|
121
|
-
* @member {WeakMap.<module:engine/conversion/downcastdispatcher~DowncastConversionApi,Map>}
|
|
122
|
-
*/
|
|
123
114
|
this._firedEventsMap = new WeakMap();
|
|
124
115
|
}
|
|
125
116
|
/**
|
|
@@ -132,9 +123,9 @@ export default class DowncastDispatcher extends EmitterMixin() {
|
|
|
132
123
|
* @fires addMarker
|
|
133
124
|
* @fires removeMarker
|
|
134
125
|
* @fires reduceChanges
|
|
135
|
-
* @param
|
|
136
|
-
* @param
|
|
137
|
-
* @param
|
|
126
|
+
* @param differ The differ object with buffered changes.
|
|
127
|
+
* @param markers Markers related to the model fragment to convert.
|
|
128
|
+
* @param writer The view writer that should be used to modify the view document.
|
|
138
129
|
*/
|
|
139
130
|
convertChanges(differ, markers, writer) {
|
|
140
131
|
const conversionApi = this._createConversionApi(writer, differ.getRefreshedItems());
|
|
@@ -180,10 +171,10 @@ export default class DowncastDispatcher extends EmitterMixin() {
|
|
|
180
171
|
* @fires insert
|
|
181
172
|
* @fires attribute
|
|
182
173
|
* @fires addMarker
|
|
183
|
-
* @param
|
|
184
|
-
* @param
|
|
185
|
-
* @param
|
|
186
|
-
* @param
|
|
174
|
+
* @param range The inserted range.
|
|
175
|
+
* @param markers The map of markers that should be down-casted.
|
|
176
|
+
* @param writer The view writer that should be used to modify the view document.
|
|
177
|
+
* @param options Optional options object passed to `convertionApi.options`.
|
|
187
178
|
*/
|
|
188
179
|
convert(range, markers, writer, options = {}) {
|
|
189
180
|
const conversionApi = this._createConversionApi(writer, undefined, options);
|
|
@@ -202,9 +193,9 @@ export default class DowncastDispatcher extends EmitterMixin() {
|
|
|
202
193
|
* @fires selection
|
|
203
194
|
* @fires addMarker
|
|
204
195
|
* @fires attribute
|
|
205
|
-
* @param
|
|
206
|
-
* @param
|
|
207
|
-
* @param
|
|
196
|
+
* @param selection The selection to convert.
|
|
197
|
+
* @param markers Markers connected with the converted model.
|
|
198
|
+
* @param writer View writer that should be used to modify the view document.
|
|
208
199
|
*/
|
|
209
200
|
convertSelection(selection, markers, writer) {
|
|
210
201
|
const markersAtSelection = Array.from(markers.getMarkersAtPosition(selection.getFirstPosition()));
|
|
@@ -248,13 +239,11 @@ export default class DowncastDispatcher extends EmitterMixin() {
|
|
|
248
239
|
* For each node in the range, {@link #event:insert `insert` event is fired}. For each attribute on each node,
|
|
249
240
|
* {@link #event:attribute `attribute` event is fired}.
|
|
250
241
|
*
|
|
251
|
-
* @protected
|
|
252
242
|
* @fires insert
|
|
253
243
|
* @fires attribute
|
|
254
|
-
* @param
|
|
255
|
-
* @param
|
|
256
|
-
* @param
|
|
257
|
-
* @param {Boolean} [options.doNotAddConsumables=false] Whether the ModelConsumable should not get populated
|
|
244
|
+
* @param range The inserted range.
|
|
245
|
+
* @param conversionApi The conversion API object.
|
|
246
|
+
* @param options.doNotAddConsumables Whether the ModelConsumable should not get populated
|
|
258
247
|
* for items in the provided range.
|
|
259
248
|
*/
|
|
260
249
|
_convertInsert(range, conversionApi, options = {}) {
|
|
@@ -270,11 +259,10 @@ export default class DowncastDispatcher extends EmitterMixin() {
|
|
|
270
259
|
/**
|
|
271
260
|
* Fires conversion of a single node removal. Fires {@link #event:remove remove event} with provided data.
|
|
272
261
|
*
|
|
273
|
-
* @
|
|
274
|
-
* @param
|
|
275
|
-
* @param
|
|
276
|
-
* @param
|
|
277
|
-
* @param {module:engine/conversion/downcastdispatcher~DowncastConversionApi} conversionApi The conversion API object.
|
|
262
|
+
* @param position Position from which node was removed.
|
|
263
|
+
* @param length Offset size of removed node.
|
|
264
|
+
* @param name Name of removed node.
|
|
265
|
+
* @param conversionApi The conversion API object.
|
|
278
266
|
*/
|
|
279
267
|
_convertRemove(position, length, name, conversionApi) {
|
|
280
268
|
this.fire(`remove:${name}`, { position, length }, conversionApi);
|
|
@@ -284,13 +272,12 @@ export default class DowncastDispatcher extends EmitterMixin() {
|
|
|
284
272
|
*
|
|
285
273
|
* For each node in the given `range`, {@link #event:attribute attribute event} is fired with the passed data.
|
|
286
274
|
*
|
|
287
|
-
* @protected
|
|
288
275
|
* @fires attribute
|
|
289
|
-
* @param
|
|
290
|
-
* @param
|
|
291
|
-
* @param
|
|
292
|
-
* @param
|
|
293
|
-
* @param
|
|
276
|
+
* @param range Changed range.
|
|
277
|
+
* @param key Key of the attribute that has changed.
|
|
278
|
+
* @param oldValue Attribute value before the change or `null` if the attribute has not been set before.
|
|
279
|
+
* @param newValue New attribute value or `null` if the attribute has been removed.
|
|
280
|
+
* @param conversionApi The conversion API object.
|
|
294
281
|
*/
|
|
295
282
|
_convertAttribute(range, key, oldValue, newValue, conversionApi) {
|
|
296
283
|
// Create a list with attributes to consume.
|
|
@@ -314,11 +301,10 @@ export default class DowncastDispatcher extends EmitterMixin() {
|
|
|
314
301
|
* For each node in the range on its depth (without children), {@link #event:insert `insert` event} is fired.
|
|
315
302
|
* For each attribute on each node, {@link #event:attribute `attribute` event} is fired.
|
|
316
303
|
*
|
|
317
|
-
* @protected
|
|
318
304
|
* @fires insert
|
|
319
305
|
* @fires attribute
|
|
320
|
-
* @param
|
|
321
|
-
* @param
|
|
306
|
+
* @param range The range to reinsert.
|
|
307
|
+
* @param conversionApi The conversion API object.
|
|
322
308
|
*/
|
|
323
309
|
_convertReinsert(range, conversionApi) {
|
|
324
310
|
// Convert the elements - without converting children.
|
|
@@ -334,11 +320,10 @@ export default class DowncastDispatcher extends EmitterMixin() {
|
|
|
334
320
|
* Converts the added marker. Fires the {@link #event:addMarker `addMarker`} event for each item
|
|
335
321
|
* in the marker's range. If the range is collapsed, a single event is dispatched. See the event description for more details.
|
|
336
322
|
*
|
|
337
|
-
* @protected
|
|
338
323
|
* @fires addMarker
|
|
339
|
-
* @param
|
|
340
|
-
* @param
|
|
341
|
-
* @param
|
|
324
|
+
* @param markerName Marker name.
|
|
325
|
+
* @param markerRange The marker range.
|
|
326
|
+
* @param conversionApi The conversion API object.
|
|
342
327
|
*/
|
|
343
328
|
_convertMarkerAdd(markerName, markerRange, conversionApi) {
|
|
344
329
|
// Do not convert if range is in graveyard.
|
|
@@ -375,11 +360,10 @@ export default class DowncastDispatcher extends EmitterMixin() {
|
|
|
375
360
|
/**
|
|
376
361
|
* Fires the conversion of the marker removal. Fires the {@link #event:removeMarker `removeMarker`} event with the provided data.
|
|
377
362
|
*
|
|
378
|
-
* @protected
|
|
379
363
|
* @fires removeMarker
|
|
380
|
-
* @param
|
|
381
|
-
* @param
|
|
382
|
-
* @param
|
|
364
|
+
* @param markerName Marker name.
|
|
365
|
+
* @param markerRange The marker range.
|
|
366
|
+
* @param conversionApi The conversion API object.
|
|
383
367
|
*/
|
|
384
368
|
_convertMarkerRemove(markerName, markerRange, conversionApi) {
|
|
385
369
|
// Do not convert if range is in graveyard.
|
|
@@ -395,10 +379,7 @@ export default class DowncastDispatcher extends EmitterMixin() {
|
|
|
395
379
|
* reconversion. The {@link module:engine/conversion/downcasthelpers~DowncastHelpers#elementToStructure
|
|
396
380
|
* `DowncastHelpers.elementToStructure()`} is using this event to trigger reconversion.
|
|
397
381
|
*
|
|
398
|
-
* @private
|
|
399
382
|
* @fires reduceChanges
|
|
400
|
-
* @param {Iterable.<module:engine/model/differ~DiffItem>} changes
|
|
401
|
-
* @returns {Iterable.<module:engine/model/differ~DiffItem>}
|
|
402
383
|
*/
|
|
403
384
|
_reduceChanges(changes) {
|
|
404
385
|
const data = { changes };
|
|
@@ -409,10 +390,9 @@ export default class DowncastDispatcher extends EmitterMixin() {
|
|
|
409
390
|
* Populates provided {@link module:engine/conversion/modelconsumable~ModelConsumable} with values to consume from a given range,
|
|
410
391
|
* assuming that the range has just been inserted to the model.
|
|
411
392
|
*
|
|
412
|
-
* @
|
|
413
|
-
* @param
|
|
414
|
-
* @
|
|
415
|
-
* @returns {module:engine/conversion/modelconsumable~ModelConsumable} The values to consume.
|
|
393
|
+
* @param consumable The consumable.
|
|
394
|
+
* @param walkerValues The walker values for the inserted range.
|
|
395
|
+
* @returns The values to consume.
|
|
416
396
|
*/
|
|
417
397
|
_addConsumablesForInsert(consumable, walkerValues) {
|
|
418
398
|
for (const value of walkerValues) {
|
|
@@ -430,11 +410,10 @@ export default class DowncastDispatcher extends EmitterMixin() {
|
|
|
430
410
|
/**
|
|
431
411
|
* Populates provided {@link module:engine/conversion/modelconsumable~ModelConsumable} with values to consume for a given range.
|
|
432
412
|
*
|
|
433
|
-
* @
|
|
434
|
-
* @param
|
|
435
|
-
* @param
|
|
436
|
-
* @
|
|
437
|
-
* @returns {module:engine/conversion/modelconsumable~ModelConsumable} The values to consume.
|
|
413
|
+
* @param consumable The consumable.
|
|
414
|
+
* @param range The affected range.
|
|
415
|
+
* @param type Consumable type.
|
|
416
|
+
* @returns The values to consume.
|
|
438
417
|
*/
|
|
439
418
|
_addConsumablesForRange(consumable, range, type) {
|
|
440
419
|
for (const item of range.getItems()) {
|
|
@@ -445,11 +424,10 @@ export default class DowncastDispatcher extends EmitterMixin() {
|
|
|
445
424
|
/**
|
|
446
425
|
* Populates provided {@link module:engine/conversion/modelconsumable~ModelConsumable} with selection consumable values.
|
|
447
426
|
*
|
|
448
|
-
* @
|
|
449
|
-
* @param
|
|
450
|
-
* @param
|
|
451
|
-
* @
|
|
452
|
-
* @returns {module:engine/conversion/modelconsumable~ModelConsumable} The values to consume.
|
|
427
|
+
* @param consumable The consumable.
|
|
428
|
+
* @param selection The selection to create the consumable from.
|
|
429
|
+
* @param markers Markers that contain the selection.
|
|
430
|
+
* @returns The values to consume.
|
|
453
431
|
*/
|
|
454
432
|
_addConsumablesForSelection(consumable, selection, markers) {
|
|
455
433
|
consumable.add(selection, 'selection');
|
|
@@ -464,12 +442,11 @@ export default class DowncastDispatcher extends EmitterMixin() {
|
|
|
464
442
|
/**
|
|
465
443
|
* Tests whether given event wasn't already fired and if so, fires it.
|
|
466
444
|
*
|
|
467
|
-
* @private
|
|
468
445
|
* @fires insert
|
|
469
446
|
* @fires attribute
|
|
470
|
-
* @param
|
|
471
|
-
* @param
|
|
472
|
-
* @param
|
|
447
|
+
* @param type Event type.
|
|
448
|
+
* @param data Event data.
|
|
449
|
+
* @param conversionApi The conversion API object.
|
|
473
450
|
*/
|
|
474
451
|
_testAndFire(type, data, conversionApi) {
|
|
475
452
|
const eventName = getEventName(type, data);
|
|
@@ -490,9 +467,8 @@ export default class DowncastDispatcher extends EmitterMixin() {
|
|
|
490
467
|
/**
|
|
491
468
|
* Fires not already fired events for setting attributes on just inserted item.
|
|
492
469
|
*
|
|
493
|
-
* @
|
|
494
|
-
* @param
|
|
495
|
-
* @param {module:engine/conversion/downcastdispatcher~DowncastConversionApi} conversionApi The conversion API object.
|
|
470
|
+
* @param item The model item to convert attributes for.
|
|
471
|
+
* @param conversionApi The conversion API object.
|
|
496
472
|
*/
|
|
497
473
|
_testAndFireAddAttributes(item, conversionApi) {
|
|
498
474
|
const data = {
|
|
@@ -510,12 +486,11 @@ export default class DowncastDispatcher extends EmitterMixin() {
|
|
|
510
486
|
* Builds an instance of the {@link module:engine/conversion/downcastdispatcher~DowncastConversionApi} from a template and a given
|
|
511
487
|
* {@link module:engine/view/downcastwriter~DowncastWriter `DowncastWriter`} and options object.
|
|
512
488
|
*
|
|
513
|
-
* @
|
|
514
|
-
* @param
|
|
515
|
-
* @param {Set.<module:engine/model/element~Element>} [refreshedItems] A set of model elements that should not reuse their
|
|
489
|
+
* @param writer View writer that should be used to modify the view document.
|
|
490
|
+
* @param refreshedItems A set of model elements that should not reuse their
|
|
516
491
|
* previous view representations.
|
|
517
|
-
* @param
|
|
518
|
-
* @return
|
|
492
|
+
* @param options Optional options passed to `convertionApi.options`.
|
|
493
|
+
* @return The conversion API object.
|
|
519
494
|
*/
|
|
520
495
|
_createConversionApi(writer, refreshedItems = new Set(), options = {}) {
|
|
521
496
|
const conversionApi = {
|
|
@@ -532,13 +507,10 @@ export default class DowncastDispatcher extends EmitterMixin() {
|
|
|
532
507
|
return conversionApi;
|
|
533
508
|
}
|
|
534
509
|
}
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
// @param {module:engine/model/markercollection~Marker} marker
|
|
540
|
-
// @param {module:engine/conversion/mapper~Mapper} mapper
|
|
541
|
-
// @returns {Boolean}
|
|
510
|
+
/**
|
|
511
|
+
* Helper function, checks whether change of `marker` at `modelPosition` should be converted. Marker changes are not
|
|
512
|
+
* converted if they happen inside an element with custom conversion method.
|
|
513
|
+
*/
|
|
542
514
|
function shouldMarkerChangeBeConverted(modelPosition, marker, mapper) {
|
|
543
515
|
const range = marker.getRange();
|
|
544
516
|
const ancestors = Array.from(modelPosition.getAncestors());
|
|
@@ -564,53 +536,3 @@ function walkerValueToEventData(value) {
|
|
|
564
536
|
range: itemRange
|
|
565
537
|
};
|
|
566
538
|
}
|
|
567
|
-
/**
|
|
568
|
-
* The {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher} instance.
|
|
569
|
-
*
|
|
570
|
-
* @member {module:engine/conversion/downcastdispatcher~DowncastDispatcher} #dispatcher
|
|
571
|
-
*/
|
|
572
|
-
/**
|
|
573
|
-
* Stores the information about what parts of a processed model item are still waiting to be handled. After a piece of a model item was
|
|
574
|
-
* converted, an appropriate consumable value should be {@link module:engine/conversion/modelconsumable~ModelConsumable#consume consumed}.
|
|
575
|
-
*
|
|
576
|
-
* @member {module:engine/conversion/modelconsumable~ModelConsumable} #consumable
|
|
577
|
-
*/
|
|
578
|
-
/**
|
|
579
|
-
* The {@link module:engine/conversion/mapper~Mapper} instance.
|
|
580
|
-
*
|
|
581
|
-
* @member {module:engine/conversion/mapper~Mapper} #mapper
|
|
582
|
-
*/
|
|
583
|
-
/**
|
|
584
|
-
* The {@link module:engine/model/schema~Schema} instance set for the model that is downcast.
|
|
585
|
-
*
|
|
586
|
-
* @member {module:engine/model/schema~Schema} #schema
|
|
587
|
-
*/
|
|
588
|
-
/**
|
|
589
|
-
* The {@link module:engine/view/downcastwriter~DowncastWriter} instance used to manipulate the data during conversion.
|
|
590
|
-
*
|
|
591
|
-
* @member {module:engine/view/downcastwriter~DowncastWriter} #writer
|
|
592
|
-
*/
|
|
593
|
-
/**
|
|
594
|
-
* Triggers conversion of a specified item.
|
|
595
|
-
* This conversion is triggered within (as a separate process of) the parent conversion.
|
|
596
|
-
*
|
|
597
|
-
* @method #convertItem
|
|
598
|
-
* @param {module:engine/model/item~Item} item The model item to trigger nested insert conversion on.
|
|
599
|
-
*/
|
|
600
|
-
/**
|
|
601
|
-
* Triggers conversion of children of a specified element.
|
|
602
|
-
*
|
|
603
|
-
* @method #convertChildren
|
|
604
|
-
* @param {module:engine/model/element~Element} element The model element to trigger children insert conversion on.
|
|
605
|
-
*/
|
|
606
|
-
/**
|
|
607
|
-
* Triggers conversion of attributes of a specified item.
|
|
608
|
-
*
|
|
609
|
-
* @method #convertAttributes
|
|
610
|
-
* @param {module:engine/model/item~Item} item The model item to trigger attribute conversion on.
|
|
611
|
-
*/
|
|
612
|
-
/**
|
|
613
|
-
* An object with an additional configuration which can be used during the conversion process. Available only for data downcast conversion.
|
|
614
|
-
*
|
|
615
|
-
* @member {Object} #options
|
|
616
|
-
*/
|