@ckeditor/ckeditor5-engine 45.2.1 → 46.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/dist/index.js +2563 -2257
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/src/controller/datacontroller.d.ts +33 -32
- package/src/controller/datacontroller.js +29 -28
- package/src/controller/editingcontroller.d.ts +8 -8
- package/src/controller/editingcontroller.js +10 -10
- package/src/conversion/conversion.d.ts +18 -19
- package/src/conversion/conversion.js +4 -4
- package/src/conversion/conversionhelpers.d.ts +1 -1
- package/src/conversion/conversionhelpers.js +1 -1
- package/src/conversion/downcastdispatcher.d.ts +63 -69
- package/src/conversion/downcastdispatcher.js +16 -16
- package/src/conversion/downcasthelpers.d.ts +94 -83
- package/src/conversion/downcasthelpers.js +63 -53
- package/src/conversion/mapper.d.ts +27 -27
- package/src/conversion/mapper.js +15 -15
- package/src/conversion/modelconsumable.d.ts +26 -26
- package/src/conversion/modelconsumable.js +23 -23
- package/src/conversion/upcastdispatcher.d.ts +33 -32
- package/src/conversion/upcastdispatcher.js +19 -19
- package/src/conversion/upcasthelpers.d.ts +46 -38
- package/src/conversion/upcasthelpers.js +33 -24
- package/src/conversion/viewconsumable.d.ts +50 -45
- package/src/conversion/viewconsumable.js +32 -27
- package/src/dataprocessor/basichtmlwriter.d.ts +4 -2
- package/src/dataprocessor/basichtmlwriter.js +3 -1
- package/src/dataprocessor/dataprocessor.d.ts +7 -6
- package/src/dataprocessor/htmldataprocessor.d.ts +10 -10
- package/src/dataprocessor/htmldataprocessor.js +6 -6
- package/src/dataprocessor/htmlwriter.d.ts +1 -1
- package/src/dataprocessor/xmldataprocessor.d.ts +10 -10
- package/src/dataprocessor/xmldataprocessor.js +6 -6
- package/src/dev-utils/model.d.ts +25 -26
- package/src/dev-utils/model.js +35 -36
- package/src/dev-utils/operationreplayer.d.ts +5 -3
- package/src/dev-utils/operationreplayer.js +4 -2
- package/src/dev-utils/utils.d.ts +8 -0
- package/src/dev-utils/utils.js +8 -0
- package/src/dev-utils/view.d.ts +66 -63
- package/src/dev-utils/view.js +144 -134
- package/src/index.d.ts +135 -106
- package/src/index.js +120 -71
- package/src/legacyerrors.d.ts +5 -0
- package/src/legacyerrors.js +17 -0
- package/src/model/batch.d.ts +2 -15
- package/src/model/batch.js +1 -23
- package/src/model/differ.d.ts +54 -31
- package/src/model/differ.js +15 -15
- package/src/model/document.d.ts +31 -31
- package/src/model/document.js +13 -13
- package/src/model/documentfragment.d.ts +45 -45
- package/src/model/documentfragment.js +40 -40
- package/src/model/documentselection.d.ts +92 -92
- package/src/model/documentselection.js +71 -70
- package/src/model/element.d.ts +31 -31
- package/src/model/element.js +29 -29
- package/src/model/history.d.ts +3 -3
- package/src/model/history.js +2 -2
- package/src/model/item.d.ts +4 -5
- package/src/model/liveposition.d.ts +31 -31
- package/src/model/liveposition.js +18 -18
- package/src/model/liverange.d.ts +42 -38
- package/src/model/liverange.js +17 -16
- package/src/model/markercollection.d.ts +41 -40
- package/src/model/markercollection.js +22 -20
- package/src/model/model.d.ts +82 -81
- package/src/model/model.js +54 -54
- package/src/model/node.d.ts +48 -48
- package/src/model/node.js +31 -31
- package/src/model/nodelist.d.ts +17 -17
- package/src/model/nodelist.js +11 -11
- package/src/model/operation/attributeoperation.d.ts +10 -10
- package/src/model/operation/attributeoperation.js +7 -7
- package/src/model/operation/detachoperation.d.ts +11 -9
- package/src/model/operation/detachoperation.js +8 -6
- package/src/model/operation/insertoperation.d.ts +13 -13
- package/src/model/operation/insertoperation.js +15 -15
- package/src/model/operation/markeroperation.d.ts +12 -12
- package/src/model/operation/markeroperation.js +5 -5
- package/src/model/operation/mergeoperation.d.ts +16 -16
- package/src/model/operation/mergeoperation.js +18 -18
- package/src/model/operation/moveoperation.d.ts +16 -16
- package/src/model/operation/moveoperation.js +18 -15
- package/src/model/operation/nooperation.d.ts +4 -4
- package/src/model/operation/nooperation.js +2 -2
- package/src/model/operation/operation.d.ts +10 -10
- package/src/model/operation/operation.js +5 -5
- package/src/model/operation/operationfactory.d.ts +4 -4
- package/src/model/operation/operationfactory.js +12 -12
- package/src/model/operation/renameoperation.d.ts +10 -10
- package/src/model/operation/renameoperation.js +7 -7
- package/src/model/operation/rootattributeoperation.d.ts +12 -12
- package/src/model/operation/rootattributeoperation.js +8 -8
- package/src/model/operation/rootoperation.d.ts +8 -8
- package/src/model/operation/rootoperation.js +3 -3
- package/src/model/operation/splitoperation.d.ts +17 -17
- package/src/model/operation/splitoperation.js +19 -19
- package/src/model/operation/transform.d.ts +11 -8
- package/src/model/operation/transform.js +66 -49
- package/src/model/operation/utils.d.ts +24 -23
- package/src/model/operation/utils.js +20 -20
- package/src/model/position.d.ts +101 -97
- package/src/model/position.js +69 -64
- package/src/model/range.d.ts +90 -90
- package/src/model/range.js +87 -87
- package/src/model/rootelement.d.ts +11 -11
- package/src/model/rootelement.js +9 -9
- package/src/model/schema.d.ts +158 -154
- package/src/model/schema.js +93 -90
- package/src/model/selection.d.ts +73 -73
- package/src/model/selection.js +62 -62
- package/src/model/text.d.ts +11 -10
- package/src/model/text.js +11 -10
- package/src/model/textproxy.d.ts +39 -38
- package/src/model/textproxy.js +31 -30
- package/src/model/treewalker.d.ts +37 -37
- package/src/model/treewalker.js +14 -14
- package/src/model/typecheckable.d.ts +45 -45
- package/src/model/typecheckable.js +1 -1
- package/src/model/utils/autoparagraphing.d.ts +7 -7
- package/src/model/utils/deletecontent.d.ts +7 -5
- package/src/model/utils/deletecontent.js +13 -11
- package/src/model/utils/getselectedcontent.d.ts +6 -5
- package/src/model/utils/getselectedcontent.js +2 -1
- package/src/model/utils/insertcontent.d.ts +9 -8
- package/src/model/utils/insertcontent.js +41 -40
- package/src/model/utils/insertobject.d.ts +9 -9
- package/src/model/utils/insertobject.js +4 -4
- package/src/model/utils/modifyselection.d.ts +5 -4
- package/src/model/utils/modifyselection.js +12 -11
- package/src/model/utils/selection-post-fixer.d.ts +12 -8
- package/src/model/utils/selection-post-fixer.js +15 -11
- package/src/model/writer.d.ts +102 -101
- package/src/model/writer.js +99 -98
- package/src/view/attributeelement.d.ts +29 -29
- package/src/view/attributeelement.js +25 -25
- package/src/view/containerelement.d.ts +16 -15
- package/src/view/containerelement.js +15 -14
- package/src/view/datatransfer.d.ts +7 -7
- package/src/view/datatransfer.js +1 -1
- package/src/view/document.d.ts +25 -25
- package/src/view/document.js +15 -15
- package/src/view/documentfragment.d.ts +21 -21
- package/src/view/documentfragment.js +14 -14
- package/src/view/documentselection.d.ts +65 -63
- package/src/view/documentselection.js +27 -25
- package/src/view/domconverter.d.ts +94 -89
- package/src/view/domconverter.js +78 -73
- package/src/view/downcastwriter.d.ts +185 -181
- package/src/view/downcastwriter.js +222 -210
- package/src/view/editableelement.d.ts +13 -13
- package/src/view/editableelement.js +8 -8
- package/src/view/element.d.ts +75 -74
- package/src/view/element.js +58 -58
- package/src/view/elementdefinition.d.ts +3 -4
- package/src/view/emptyelement.d.ts +13 -13
- package/src/view/emptyelement.js +13 -13
- package/src/view/filler.d.ts +14 -3
- package/src/view/filler.js +12 -1
- package/src/view/item.d.ts +4 -5
- package/src/view/matcher.d.ts +22 -19
- package/src/view/matcher.js +6 -6
- package/src/view/node.d.ts +33 -33
- package/src/view/node.js +9 -9
- package/src/view/observer/arrowkeysobserver.d.ts +10 -10
- package/src/view/observer/arrowkeysobserver.js +5 -5
- package/src/view/observer/bubblingemittermixin.d.ts +5 -5
- package/src/view/observer/bubblingemittermixin.js +2 -9
- package/src/view/observer/bubblingeventinfo.d.ts +9 -9
- package/src/view/observer/bubblingeventinfo.js +1 -1
- package/src/view/observer/clickobserver.d.ts +8 -8
- package/src/view/observer/clickobserver.js +4 -4
- package/src/view/observer/compositionobserver.d.ts +19 -19
- package/src/view/observer/compositionobserver.js +6 -6
- package/src/view/observer/domeventdata.d.ts +9 -9
- package/src/view/observer/domeventdata.js +2 -2
- package/src/view/observer/domeventobserver.d.ts +3 -3
- package/src/view/observer/domeventobserver.js +5 -5
- package/src/view/observer/fakeselectionobserver.d.ts +9 -9
- package/src/view/observer/fakeselectionobserver.js +8 -8
- package/src/view/observer/focusobserver.d.ts +16 -16
- package/src/view/observer/focusobserver.js +7 -7
- package/src/view/observer/inputobserver.d.ts +18 -18
- package/src/view/observer/inputobserver.js +5 -5
- package/src/view/observer/keyobserver.d.ts +11 -11
- package/src/view/observer/keyobserver.js +3 -3
- package/src/view/observer/mouseobserver.d.ts +16 -16
- package/src/view/observer/mouseobserver.js +3 -3
- package/src/view/observer/mutationobserver.d.ts +21 -21
- package/src/view/observer/mutationobserver.js +7 -7
- package/src/view/observer/observer.d.ts +12 -12
- package/src/view/observer/observer.js +6 -6
- package/src/view/observer/selectionobserver.d.ts +33 -33
- package/src/view/observer/selectionobserver.js +14 -14
- package/src/view/observer/tabobserver.d.ts +10 -10
- package/src/view/observer/tabobserver.js +5 -5
- package/src/view/observer/touchobserver.d.ts +13 -13
- package/src/view/observer/touchobserver.js +3 -3
- package/src/view/placeholder.d.ts +21 -21
- package/src/view/placeholder.js +23 -23
- package/src/view/position.d.ts +49 -49
- package/src/view/position.js +42 -42
- package/src/view/range.d.ts +76 -74
- package/src/view/range.js +67 -65
- package/src/view/rawelement.d.ts +19 -19
- package/src/view/rawelement.js +16 -16
- package/src/view/renderer.d.ts +14 -14
- package/src/view/renderer.js +7 -7
- package/src/view/rooteditableelement.d.ts +8 -7
- package/src/view/rooteditableelement.js +7 -6
- package/src/view/selection.d.ts +66 -64
- package/src/view/selection.js +50 -48
- package/src/view/styles/background.d.ts +2 -2
- package/src/view/styles/background.js +9 -9
- package/src/view/styles/border.d.ts +2 -2
- package/src/view/styles/border.js +13 -13
- package/src/view/styles/margin.d.ts +2 -2
- package/src/view/styles/margin.js +5 -5
- package/src/view/styles/padding.d.ts +2 -2
- package/src/view/styles/padding.js +5 -5
- package/src/view/styles/utils.d.ts +24 -24
- package/src/view/styles/utils.js +25 -25
- package/src/view/stylesmap.d.ts +28 -32
- package/src/view/stylesmap.js +52 -39
- package/src/view/text.d.ts +11 -11
- package/src/view/text.js +10 -10
- package/src/view/textproxy.d.ts +33 -32
- package/src/view/textproxy.js +23 -22
- package/src/view/tokenlist.d.ts +14 -14
- package/src/view/tokenlist.js +10 -10
- package/src/view/treewalker.d.ts +42 -40
- package/src/view/treewalker.js +36 -35
- package/src/view/typecheckable.d.ts +76 -75
- package/src/view/typecheckable.js +1 -1
- package/src/view/uielement.d.ts +22 -21
- package/src/view/uielement.js +17 -16
- package/src/view/upcastwriter.d.ts +70 -70
- package/src/view/upcastwriter.js +42 -42
- package/src/view/view.d.ts +70 -69
- package/src/view/view.js +56 -55
|
@@ -5,19 +5,19 @@
|
|
|
5
5
|
/**
|
|
6
6
|
* @module engine/conversion/downcastdispatcher
|
|
7
7
|
*/
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import type {
|
|
11
|
-
import type {
|
|
12
|
-
import type
|
|
13
|
-
import type
|
|
14
|
-
import type
|
|
15
|
-
import type
|
|
16
|
-
import type Mapper from './mapper.js';
|
|
17
|
-
import type
|
|
18
|
-
import type
|
|
19
|
-
import type
|
|
20
|
-
import type ViewElement from '../view/element.js';
|
|
8
|
+
import { ModelConsumable } from './modelconsumable.js';
|
|
9
|
+
import { ModelRange } from '../model/range.js';
|
|
10
|
+
import type { Differ, DifferItem, DifferItemReinsert } from '../model/differ.js';
|
|
11
|
+
import type { MarkerCollection } from '../model/markercollection.js';
|
|
12
|
+
import { type ModelDocumentSelection } from '../model/documentselection.js';
|
|
13
|
+
import { type ViewDowncastWriter } from '../view/downcastwriter.js';
|
|
14
|
+
import { type ModelElement } from '../model/element.js';
|
|
15
|
+
import { type ModelItem } from '../model/item.js';
|
|
16
|
+
import { type Mapper } from './mapper.js';
|
|
17
|
+
import { type ModelPosition } from '../model/position.js';
|
|
18
|
+
import { type ModelSchema } from '../model/schema.js';
|
|
19
|
+
import { type ModelSelection } 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;
|
|
@@ -83,7 +83,7 @@ declare const DowncastDispatcher_base: {
|
|
|
83
83
|
* then the default converter at the `lowest` priority will not trigger the conversion of this node's attributes and child nodes.
|
|
84
84
|
*
|
|
85
85
|
* When providing custom listeners for a downcast dispatcher, remember to use the provided
|
|
86
|
-
* {@link module:engine/view/downcastwriter~
|
|
86
|
+
* {@link module:engine/view/downcastwriter~ViewDowncastWriter view downcast writer} to apply changes to the view document.
|
|
87
87
|
*
|
|
88
88
|
* You can read more about conversion in the following guide:
|
|
89
89
|
*
|
|
@@ -113,7 +113,7 @@ declare const DowncastDispatcher_base: {
|
|
|
113
113
|
* } );
|
|
114
114
|
* ```
|
|
115
115
|
*/
|
|
116
|
-
export
|
|
116
|
+
export declare class DowncastDispatcher extends /* #__PURE__ */ DowncastDispatcher_base {
|
|
117
117
|
/**
|
|
118
118
|
* A template for an interface passed by the dispatcher to the event callbacks.
|
|
119
119
|
*
|
|
@@ -147,7 +147,7 @@ export default class DowncastDispatcher extends /* #__PURE__ */ DowncastDispatch
|
|
|
147
147
|
* @param markers Markers related to the model fragment to convert.
|
|
148
148
|
* @param writer The view writer that should be used to modify the view document.
|
|
149
149
|
*/
|
|
150
|
-
convertChanges(differ: Differ, markers: MarkerCollection, writer:
|
|
150
|
+
convertChanges(differ: Differ, markers: MarkerCollection, writer: ViewDowncastWriter): void;
|
|
151
151
|
/**
|
|
152
152
|
* Starts a conversion of a model range and the provided markers.
|
|
153
153
|
*
|
|
@@ -159,11 +159,11 @@ export default class DowncastDispatcher extends /* #__PURE__ */ DowncastDispatch
|
|
|
159
159
|
* @param writer The view writer that should be used to modify the view document.
|
|
160
160
|
* @param options Optional options object passed to `convertionApi.options`.
|
|
161
161
|
*/
|
|
162
|
-
convert(range:
|
|
162
|
+
convert(range: ModelRange, markers: Map<string, ModelRange>, writer: ViewDowncastWriter, options?: DowncastConversionApi['options']): void;
|
|
163
163
|
/**
|
|
164
164
|
* Starts the model selection conversion.
|
|
165
165
|
*
|
|
166
|
-
* Fires events for a given {@link module:engine/model/selection~
|
|
166
|
+
* Fires events for a given {@link module:engine/model/selection~ModelSelection selection} to start the selection conversion.
|
|
167
167
|
*
|
|
168
168
|
* @fires selection
|
|
169
169
|
* @fires addMarker
|
|
@@ -172,7 +172,7 @@ export default class DowncastDispatcher extends /* #__PURE__ */ DowncastDispatch
|
|
|
172
172
|
* @param markers Markers connected with the converted model.
|
|
173
173
|
* @param writer View writer that should be used to modify the view document.
|
|
174
174
|
*/
|
|
175
|
-
convertSelection(selection:
|
|
175
|
+
convertSelection(selection: ModelSelection | ModelDocumentSelection, markers: MarkerCollection, writer: ViewDowncastWriter): void;
|
|
176
176
|
/**
|
|
177
177
|
* Fires insertion conversion of a range of nodes.
|
|
178
178
|
*
|
|
@@ -244,7 +244,7 @@ export default class DowncastDispatcher extends /* #__PURE__ */ DowncastDispatch
|
|
|
244
244
|
/**
|
|
245
245
|
* Fires the reduction of changes buffered in the {@link module:engine/model/differ~Differ `Differ`}.
|
|
246
246
|
*
|
|
247
|
-
* Features can replace selected {@link module:engine/model/differ~
|
|
247
|
+
* Features can replace selected {@link module:engine/model/differ~DifferItem `DifferItem`}s with `reinsert` entries to trigger
|
|
248
248
|
* reconversion. The {@link module:engine/conversion/downcasthelpers~DowncastHelpers#elementToStructure
|
|
249
249
|
* `DowncastHelpers.elementToStructure()`} is using this event to trigger reconversion.
|
|
250
250
|
*
|
|
@@ -297,7 +297,7 @@ export default class DowncastDispatcher extends /* #__PURE__ */ DowncastDispatch
|
|
|
297
297
|
private _testAndFireAddAttributes;
|
|
298
298
|
/**
|
|
299
299
|
* Builds an instance of the {@link module:engine/conversion/downcastdispatcher~DowncastConversionApi} from a template and a given
|
|
300
|
-
* {@link module:engine/view/downcastwriter~
|
|
300
|
+
* {@link module:engine/view/downcastwriter~ViewDowncastWriter `ViewDowncastWriter`} and options object.
|
|
301
301
|
*
|
|
302
302
|
* @param writer View writer that should be used to modify the view document.
|
|
303
303
|
* @param refreshedItems A set of model elements that should not reuse their
|
|
@@ -311,7 +311,7 @@ export default class DowncastDispatcher extends /* #__PURE__ */ DowncastDispatch
|
|
|
311
311
|
* Fired to enable reducing (transforming) changes buffered in the {@link module:engine/model/differ~Differ `Differ`} before
|
|
312
312
|
* {@link ~DowncastDispatcher#convertChanges `convertChanges()`} will fire any conversion events.
|
|
313
313
|
*
|
|
314
|
-
* For instance, a feature can replace selected {@link module:engine/model/differ~
|
|
314
|
+
* For instance, a feature can replace selected {@link module:engine/model/differ~DifferItem `DifferItem`}s with a `reinsert` entry
|
|
315
315
|
* to trigger reconversion of an element when e.g. its attribute has changes.
|
|
316
316
|
* The {@link module:engine/conversion/downcasthelpers~DowncastHelpers#elementToStructure
|
|
317
317
|
* `DowncastHelpers.elementToStructure()`} helper is using this event to trigger reconversion of an element when the element,
|
|
@@ -327,75 +327,75 @@ export type DowncastReduceChangesEventData = {
|
|
|
327
327
|
/**
|
|
328
328
|
* A buffered changes to get reduced.
|
|
329
329
|
*/
|
|
330
|
-
changes: Iterable<
|
|
330
|
+
changes: Iterable<DifferItem | DifferItemReinsert>;
|
|
331
331
|
};
|
|
332
|
-
type
|
|
332
|
+
export type DowncastDispatcherEventMap<TItem = ModelItem> = {
|
|
333
333
|
insert: {
|
|
334
334
|
item: TItem;
|
|
335
|
-
range:
|
|
335
|
+
range: ModelRange;
|
|
336
336
|
reconversion?: boolean;
|
|
337
337
|
};
|
|
338
338
|
remove: {
|
|
339
|
-
position:
|
|
339
|
+
position: ModelPosition;
|
|
340
340
|
length: number;
|
|
341
341
|
};
|
|
342
342
|
attribute: {
|
|
343
343
|
item: TItem;
|
|
344
|
-
range:
|
|
344
|
+
range: ModelRange;
|
|
345
345
|
attributeKey: string;
|
|
346
346
|
attributeOldValue: unknown;
|
|
347
347
|
attributeNewValue: unknown;
|
|
348
348
|
};
|
|
349
349
|
cleanSelection: {
|
|
350
|
-
selection:
|
|
350
|
+
selection: ModelSelection | ModelDocumentSelection;
|
|
351
351
|
};
|
|
352
352
|
selection: {
|
|
353
|
-
selection:
|
|
353
|
+
selection: ModelSelection | ModelDocumentSelection;
|
|
354
354
|
};
|
|
355
355
|
addMarker: {
|
|
356
|
-
item?:
|
|
357
|
-
range?:
|
|
358
|
-
markerRange:
|
|
356
|
+
item?: ModelItem | ModelSelection | ModelDocumentSelection;
|
|
357
|
+
range?: ModelRange;
|
|
358
|
+
markerRange: ModelRange;
|
|
359
359
|
markerName: string;
|
|
360
360
|
};
|
|
361
361
|
removeMarker: {
|
|
362
|
-
markerRange:
|
|
362
|
+
markerRange: ModelRange;
|
|
363
363
|
markerName: string;
|
|
364
364
|
};
|
|
365
365
|
};
|
|
366
|
-
export type DowncastEvent<TName extends keyof
|
|
366
|
+
export type DowncastEvent<TName extends keyof DowncastDispatcherEventMap<TItem>, TItem = ModelItem> = {
|
|
367
367
|
name: TName | `${TName}:${string}`;
|
|
368
|
-
args: [data:
|
|
368
|
+
args: [data: DowncastDispatcherEventMap<TItem>[TName], conversionApi: DowncastConversionApi];
|
|
369
369
|
};
|
|
370
370
|
/**
|
|
371
371
|
* Fired for inserted nodes.
|
|
372
372
|
*
|
|
373
373
|
* `insert` is a namespace for a class of events. Names of actually called events follow this pattern:
|
|
374
|
-
* `insert:name`. `name` is either `'$text'`, when {@link module:engine/model/text~
|
|
375
|
-
* or {@link module:engine/model/element~
|
|
374
|
+
* `insert:name`. `name` is either `'$text'`, when {@link module:engine/model/text~ModelText a text node} has been inserted,
|
|
375
|
+
* or {@link module:engine/model/element~ModelElement#name name} of inserted element.
|
|
376
376
|
*
|
|
377
377
|
* This way, the listeners can either listen to a general `insert` event or specific event (for example `insert:paragraph`).
|
|
378
378
|
*
|
|
379
379
|
* @eventName ~DowncastDispatcher#insert
|
|
380
380
|
* @param {Object} data Additional information about the change.
|
|
381
|
-
* @param {module:engine/model/item~
|
|
382
|
-
* @param {module:engine/model/range~
|
|
381
|
+
* @param {module:engine/model/item~ModelItem} data.item The inserted item.
|
|
382
|
+
* @param {module:engine/model/range~ModelRange} data.range Range spanning over inserted item.
|
|
383
383
|
* @param {module:engine/conversion/downcastdispatcher~DowncastConversionApi} conversionApi Conversion interface
|
|
384
384
|
* to be used by callback, passed in the `DowncastDispatcher` constructor.
|
|
385
385
|
*/
|
|
386
|
-
export type DowncastInsertEvent<TItem extends
|
|
386
|
+
export type DowncastInsertEvent<TItem extends ModelItem = ModelItem> = DowncastEvent<'insert', TItem>;
|
|
387
387
|
/**
|
|
388
388
|
* Fired for removed nodes.
|
|
389
389
|
*
|
|
390
390
|
* `remove` is a namespace for a class of events. Names of actually called events follow this pattern:
|
|
391
|
-
* `remove:name`. `name` is either `'$text'`, when a {@link module:engine/model/text~
|
|
392
|
-
* or the {@link module:engine/model/element~
|
|
391
|
+
* `remove:name`. `name` is either `'$text'`, when a {@link module:engine/model/text~ModelText a text node} has been removed,
|
|
392
|
+
* or the {@link module:engine/model/element~ModelElement#name name} of removed element.
|
|
393
393
|
*
|
|
394
394
|
* This way, listeners can either listen to a general `remove` event or specific event (for example `remove:paragraph`).
|
|
395
395
|
*
|
|
396
396
|
* @eventName ~DowncastDispatcher#remove
|
|
397
397
|
* @param {Object} data Additional information about the change.
|
|
398
|
-
* @param {module:engine/model/position~
|
|
398
|
+
* @param {module:engine/model/position~ModelPosition} data.position Position from which the node has been removed.
|
|
399
399
|
* @param {Number} data.length Offset size of the removed node.
|
|
400
400
|
* @param {module:engine/conversion/downcastdispatcher~DowncastConversionApi} conversionApi Conversion interface
|
|
401
401
|
* to be used by callback, passed in `DowncastDispatcher` constructor.
|
|
@@ -410,28 +410,28 @@ export type DowncastRemoveEvent = DowncastEvent<'remove'>;
|
|
|
410
410
|
*
|
|
411
411
|
* `attribute` is a namespace for a class of events. Names of actually called events follow this pattern:
|
|
412
412
|
* `attribute:attributeKey:name`. `attributeKey` is the key of added/changed/removed attribute.
|
|
413
|
-
* `name` is either `'$text'` if change was on {@link module:engine/model/text~
|
|
414
|
-
* or the {@link module:engine/model/element~
|
|
413
|
+
* `name` is either `'$text'` if change was on {@link module:engine/model/text~ModelText a text node},
|
|
414
|
+
* or the {@link module:engine/model/element~ModelElement#name name} of element which attribute has changed.
|
|
415
415
|
*
|
|
416
416
|
* This way listeners can either listen to a general `attribute:bold` event or specific event (for example `attribute:src:imageBlock`).
|
|
417
417
|
*
|
|
418
418
|
* @eventName ~DowncastDispatcher#attribute
|
|
419
419
|
* @param {Object} data Additional information about the change.
|
|
420
|
-
* @param {module:engine/model/item~
|
|
420
|
+
* @param {module:engine/model/item~ModelItem|module:engine/model/documentselection~ModelDocumentSelection} data.item Changed item
|
|
421
421
|
* or converted selection.
|
|
422
|
-
* @param {module:engine/model/range~
|
|
422
|
+
* @param {module:engine/model/range~ModelRange} data.range Range spanning over changed item or selection range.
|
|
423
423
|
* @param {String} data.attributeKey Attribute key.
|
|
424
424
|
* @param {*} data.attributeOldValue Attribute value before the change. This is `null` when selection attribute is converted.
|
|
425
425
|
* @param {*} data.attributeNewValue New attribute value.
|
|
426
426
|
* @param {module:engine/conversion/downcastdispatcher~DowncastConversionApi} conversionApi Conversion interface
|
|
427
427
|
* to be used by callback, passed in `DowncastDispatcher` constructor.
|
|
428
428
|
*/
|
|
429
|
-
export type DowncastAttributeEvent<TItem =
|
|
429
|
+
export type DowncastAttributeEvent<TItem = ModelItem | ModelSelection | ModelDocumentSelection> = DowncastEvent<'attribute', TItem>;
|
|
430
430
|
/**
|
|
431
|
-
* Fired for {@link module:engine/model/selection~
|
|
431
|
+
* Fired for {@link module:engine/model/selection~ModelSelection selection} changes.
|
|
432
432
|
*
|
|
433
433
|
* @eventName ~DowncastDispatcher#selection
|
|
434
|
-
* @param {module:engine/model/selection~
|
|
434
|
+
* @param {module:engine/model/selection~ModelSelection} selection Selection that is converted.
|
|
435
435
|
* @param {module:engine/conversion/downcastdispatcher~DowncastConversionApi} conversionApi Conversion interface
|
|
436
436
|
* to be used by callback, passed in `DowncastDispatcher` constructor.
|
|
437
437
|
*/
|
|
@@ -443,7 +443,7 @@ export type DowncastSelectionEvent = DowncastEvent<'selection'>;
|
|
|
443
443
|
* Should be used to clean up the view state at the current selection position, before the selection is moved to another place.
|
|
444
444
|
*
|
|
445
445
|
* @eventName ~DowncastDispatcher#cleanSelection
|
|
446
|
-
* @param {module:engine/model/selection~
|
|
446
|
+
* @param {module:engine/model/selection~ModelSelection} selection Selection that is converted.
|
|
447
447
|
* @param {module:engine/conversion/downcastdispatcher~DowncastConversionApi} conversionApi Conversion interface
|
|
448
448
|
* to be used by callback, passed in `DowncastDispatcher` constructor.
|
|
449
449
|
*/
|
|
@@ -473,11 +473,11 @@ export type DowncastCleanSelectionEvent = DowncastEvent<'cleanSelection'>;
|
|
|
473
473
|
*
|
|
474
474
|
* @eventName ~DowncastDispatcher#addMarker
|
|
475
475
|
* @param {Object} data Additional information about the change.
|
|
476
|
-
* @param {module:engine/model/item~
|
|
476
|
+
* @param {module:engine/model/item~ModelItem|module:engine/model/selection~ModelSelection} data.item Item inside the new marker or
|
|
477
477
|
* the selection that is being converted.
|
|
478
|
-
* @param {module:engine/model/range~
|
|
478
|
+
* @param {module:engine/model/range~ModelRange} [data.range] Range spanning over converted item. Available only in marker conversion, if
|
|
479
479
|
* the marker range was not collapsed.
|
|
480
|
-
* @param {module:engine/model/range~
|
|
480
|
+
* @param {module:engine/model/range~ModelRange} data.markerRange Marker range.
|
|
481
481
|
* @param {String} data.markerName Marker name.
|
|
482
482
|
* @param {module:engine/conversion/downcastdispatcher~DowncastConversionApi} conversionApi Conversion interface
|
|
483
483
|
* to be used by callback, passed in `DowncastDispatcher` constructor.
|
|
@@ -493,18 +493,12 @@ export type DowncastAddMarkerEvent = DowncastEvent<'addMarker'>;
|
|
|
493
493
|
*
|
|
494
494
|
* @eventName ~DowncastDispatcher#removeMarker
|
|
495
495
|
* @param {Object} data Additional information about the change.
|
|
496
|
-
* @param {module:engine/model/range~
|
|
496
|
+
* @param {module:engine/model/range~ModelRange} data.markerRange Marker range.
|
|
497
497
|
* @param {String} data.markerName Marker name.
|
|
498
498
|
* @param {module:engine/conversion/downcastdispatcher~DowncastConversionApi} conversionApi Conversion interface
|
|
499
499
|
* to be used by callback, passed in `DowncastDispatcher` constructor.
|
|
500
500
|
*/
|
|
501
501
|
export type DowncastRemoveMarkerEvent = DowncastEvent<'removeMarker'>;
|
|
502
|
-
export interface DiffItemReinsert {
|
|
503
|
-
type: 'reinsert';
|
|
504
|
-
name: string;
|
|
505
|
-
position: Position;
|
|
506
|
-
length: number;
|
|
507
|
-
}
|
|
508
502
|
/**
|
|
509
503
|
* Conversion interface that is registered for given {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher}
|
|
510
504
|
* and is passed as one of parameters when {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher dispatcher}
|
|
@@ -520,19 +514,19 @@ export interface DowncastConversionApi {
|
|
|
520
514
|
* converted, an appropriate consumable value should be {@link module:engine/conversion/modelconsumable~ModelConsumable#consume
|
|
521
515
|
* consumed}.
|
|
522
516
|
*/
|
|
523
|
-
consumable:
|
|
517
|
+
consumable: ModelConsumable;
|
|
524
518
|
/**
|
|
525
519
|
* The {@link module:engine/conversion/mapper~Mapper} instance.
|
|
526
520
|
*/
|
|
527
521
|
mapper: Mapper;
|
|
528
522
|
/**
|
|
529
|
-
* The {@link module:engine/model/schema~
|
|
523
|
+
* The {@link module:engine/model/schema~ModelSchema} instance set for the model that is downcast.
|
|
530
524
|
*/
|
|
531
|
-
schema:
|
|
525
|
+
schema: ModelSchema;
|
|
532
526
|
/**
|
|
533
|
-
* The {@link module:engine/view/downcastwriter~
|
|
527
|
+
* The {@link module:engine/view/downcastwriter~ViewDowncastWriter} instance used to manipulate the data during conversion.
|
|
534
528
|
*/
|
|
535
|
-
writer:
|
|
529
|
+
writer: ViewDowncastWriter;
|
|
536
530
|
/**
|
|
537
531
|
* An object with an additional configuration which can be used during the conversion process.
|
|
538
532
|
* Available only for data downcast conversion.
|
|
@@ -544,19 +538,19 @@ export interface DowncastConversionApi {
|
|
|
544
538
|
*
|
|
545
539
|
* @param item The model item to trigger nested insert conversion on.
|
|
546
540
|
*/
|
|
547
|
-
convertItem(item:
|
|
541
|
+
convertItem(item: ModelItem): void;
|
|
548
542
|
/**
|
|
549
543
|
* Triggers conversion of children of a specified element.
|
|
550
544
|
*
|
|
551
545
|
* @param element The model element to trigger children insert conversion on.
|
|
552
546
|
*/
|
|
553
|
-
convertChildren(element:
|
|
547
|
+
convertChildren(element: ModelElement): void;
|
|
554
548
|
/**
|
|
555
549
|
* Triggers conversion of attributes of a specified item.
|
|
556
550
|
*
|
|
557
551
|
* @param item The model item to trigger attribute conversion on.
|
|
558
552
|
*/
|
|
559
|
-
convertAttributes(item:
|
|
553
|
+
convertAttributes(item: ModelItem): void;
|
|
560
554
|
canReuseView(element: ViewElement): boolean;
|
|
561
555
|
}
|
|
562
556
|
export {};
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
/**
|
|
6
6
|
* @module engine/conversion/downcastdispatcher
|
|
7
7
|
*/
|
|
8
|
-
import
|
|
9
|
-
import
|
|
8
|
+
import { ModelConsumable } from './modelconsumable.js';
|
|
9
|
+
import { ModelRange } 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
|
|
@@ -69,7 +69,7 @@ import { EmitterMixin } from '@ckeditor/ckeditor5-utils';
|
|
|
69
69
|
* then the default converter at the `lowest` priority will not trigger the conversion of this node's attributes and child nodes.
|
|
70
70
|
*
|
|
71
71
|
* When providing custom listeners for a downcast dispatcher, remember to use the provided
|
|
72
|
-
* {@link module:engine/view/downcastwriter~
|
|
72
|
+
* {@link module:engine/view/downcastwriter~ViewDowncastWriter view downcast writer} to apply changes to the view document.
|
|
73
73
|
*
|
|
74
74
|
* You can read more about conversion in the following guide:
|
|
75
75
|
*
|
|
@@ -99,7 +99,7 @@ import { EmitterMixin } from '@ckeditor/ckeditor5-utils';
|
|
|
99
99
|
* } );
|
|
100
100
|
* ```
|
|
101
101
|
*/
|
|
102
|
-
export
|
|
102
|
+
export class DowncastDispatcher extends /* #__PURE__ */ EmitterMixin() {
|
|
103
103
|
/**
|
|
104
104
|
* A template for an interface passed by the dispatcher to the event callbacks.
|
|
105
105
|
*
|
|
@@ -148,10 +148,10 @@ export default class DowncastDispatcher extends /* #__PURE__ */ EmitterMixin() {
|
|
|
148
148
|
// Convert changes that happened on model tree.
|
|
149
149
|
for (const entry of changes) {
|
|
150
150
|
if (entry.type === 'insert') {
|
|
151
|
-
this._convertInsert(
|
|
151
|
+
this._convertInsert(ModelRange._createFromPositionAndShift(entry.position, entry.length), conversionApi);
|
|
152
152
|
}
|
|
153
153
|
else if (entry.type === 'reinsert') {
|
|
154
|
-
this._convertReinsert(
|
|
154
|
+
this._convertReinsert(ModelRange._createFromPositionAndShift(entry.position, entry.length), conversionApi);
|
|
155
155
|
}
|
|
156
156
|
else if (entry.type === 'remove') {
|
|
157
157
|
this._convertRemove(entry.position, entry.length, entry.name, conversionApi);
|
|
@@ -199,7 +199,7 @@ export default class DowncastDispatcher extends /* #__PURE__ */ EmitterMixin() {
|
|
|
199
199
|
/**
|
|
200
200
|
* Starts the model selection conversion.
|
|
201
201
|
*
|
|
202
|
-
* Fires events for a given {@link module:engine/model/selection~
|
|
202
|
+
* Fires events for a given {@link module:engine/model/selection~ModelSelection selection} to start the selection conversion.
|
|
203
203
|
*
|
|
204
204
|
* @fires selection
|
|
205
205
|
* @fires addMarker
|
|
@@ -306,7 +306,7 @@ export default class DowncastDispatcher extends /* #__PURE__ */ EmitterMixin() {
|
|
|
306
306
|
for (const value of range) {
|
|
307
307
|
const data = {
|
|
308
308
|
item: value.item,
|
|
309
|
-
range:
|
|
309
|
+
range: ModelRange._createFromPositionAndShift(value.previousPosition, value.length),
|
|
310
310
|
attributeKey: key,
|
|
311
311
|
attributeOldValue: oldValue,
|
|
312
312
|
attributeNewValue: newValue
|
|
@@ -373,7 +373,7 @@ export default class DowncastDispatcher extends /* #__PURE__ */ EmitterMixin() {
|
|
|
373
373
|
if (!conversionApi.consumable.test(item, eventName)) {
|
|
374
374
|
continue;
|
|
375
375
|
}
|
|
376
|
-
const data = { item, range:
|
|
376
|
+
const data = { item, range: ModelRange._createOn(item), markerName, markerRange };
|
|
377
377
|
this.fire(eventName, data, conversionApi);
|
|
378
378
|
}
|
|
379
379
|
}
|
|
@@ -395,7 +395,7 @@ export default class DowncastDispatcher extends /* #__PURE__ */ EmitterMixin() {
|
|
|
395
395
|
/**
|
|
396
396
|
* Fires the reduction of changes buffered in the {@link module:engine/model/differ~Differ `Differ`}.
|
|
397
397
|
*
|
|
398
|
-
* Features can replace selected {@link module:engine/model/differ~
|
|
398
|
+
* Features can replace selected {@link module:engine/model/differ~DifferItem `DifferItem`}s with `reinsert` entries to trigger
|
|
399
399
|
* reconversion. The {@link module:engine/conversion/downcasthelpers~DowncastHelpers#elementToStructure
|
|
400
400
|
* `DowncastHelpers.elementToStructure()`} is using this event to trigger reconversion.
|
|
401
401
|
*
|
|
@@ -493,7 +493,7 @@ export default class DowncastDispatcher extends /* #__PURE__ */ EmitterMixin() {
|
|
|
493
493
|
_testAndFireAddAttributes(item, conversionApi) {
|
|
494
494
|
const data = {
|
|
495
495
|
item,
|
|
496
|
-
range:
|
|
496
|
+
range: ModelRange._createOn(item)
|
|
497
497
|
};
|
|
498
498
|
for (const key of data.item.getAttributeKeys()) {
|
|
499
499
|
data.attributeKey = key;
|
|
@@ -504,7 +504,7 @@ export default class DowncastDispatcher extends /* #__PURE__ */ EmitterMixin() {
|
|
|
504
504
|
}
|
|
505
505
|
/**
|
|
506
506
|
* Builds an instance of the {@link module:engine/conversion/downcastdispatcher~DowncastConversionApi} from a template and a given
|
|
507
|
-
* {@link module:engine/view/downcastwriter~
|
|
507
|
+
* {@link module:engine/view/downcastwriter~ViewDowncastWriter `ViewDowncastWriter`} and options object.
|
|
508
508
|
*
|
|
509
509
|
* @param writer View writer that should be used to modify the view document.
|
|
510
510
|
* @param refreshedItems A set of model elements that should not reuse their
|
|
@@ -515,11 +515,11 @@ export default class DowncastDispatcher extends /* #__PURE__ */ EmitterMixin() {
|
|
|
515
515
|
_createConversionApi(writer, refreshedItems = new Set(), options = {}) {
|
|
516
516
|
const conversionApi = {
|
|
517
517
|
...this._conversionApi,
|
|
518
|
-
consumable: new
|
|
518
|
+
consumable: new ModelConsumable(),
|
|
519
519
|
writer,
|
|
520
520
|
options,
|
|
521
|
-
convertItem: item => this._convertInsert(
|
|
522
|
-
convertChildren: element => this._convertInsert(
|
|
521
|
+
convertItem: item => this._convertInsert(ModelRange._createOn(item), conversionApi),
|
|
522
|
+
convertChildren: element => this._convertInsert(ModelRange._createIn(element), conversionApi, { doNotAddConsumables: true }),
|
|
523
523
|
convertAttributes: item => this._testAndFireAddAttributes(item, conversionApi),
|
|
524
524
|
canReuseView: viewElement => !refreshedItems.has(conversionApi.mapper.toModelElement(viewElement))
|
|
525
525
|
};
|
|
@@ -551,6 +551,6 @@ function getEventName(type, data) {
|
|
|
551
551
|
function walkerValueToEventData(value) {
|
|
552
552
|
return {
|
|
553
553
|
item: value.item,
|
|
554
|
-
range:
|
|
554
|
+
range: ModelRange._createFromPositionAndShift(value.previousPosition, value.length)
|
|
555
555
|
};
|
|
556
556
|
}
|