@ckeditor/ckeditor5-engine 35.0.1 → 35.1.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/CHANGELOG.md +4 -4
- package/package.json +30 -24
- package/src/controller/datacontroller.js +467 -561
- package/src/controller/editingcontroller.js +168 -204
- package/src/conversion/conversion.js +541 -565
- package/src/conversion/conversionhelpers.js +24 -28
- package/src/conversion/downcastdispatcher.js +457 -686
- package/src/conversion/downcasthelpers.js +1583 -1965
- package/src/conversion/mapper.js +518 -707
- package/src/conversion/modelconsumable.js +240 -283
- package/src/conversion/upcastdispatcher.js +372 -718
- package/src/conversion/upcasthelpers.js +707 -818
- package/src/conversion/viewconsumable.js +524 -581
- package/src/dataprocessor/basichtmlwriter.js +12 -16
- package/src/dataprocessor/dataprocessor.js +5 -0
- package/src/dataprocessor/htmldataprocessor.js +100 -116
- package/src/dataprocessor/htmlwriter.js +1 -18
- package/src/dataprocessor/xmldataprocessor.js +116 -137
- package/src/dev-utils/model.js +260 -352
- package/src/dev-utils/operationreplayer.js +106 -126
- package/src/dev-utils/utils.js +34 -51
- package/src/dev-utils/view.js +632 -753
- package/src/index.js +0 -11
- package/src/model/batch.js +111 -127
- package/src/model/differ.js +988 -1233
- package/src/model/document.js +340 -449
- package/src/model/documentfragment.js +327 -364
- package/src/model/documentselection.js +996 -1189
- package/src/model/element.js +306 -410
- package/src/model/history.js +224 -262
- package/src/model/item.js +5 -0
- package/src/model/liveposition.js +84 -145
- package/src/model/liverange.js +108 -185
- package/src/model/markercollection.js +379 -480
- package/src/model/model.js +883 -1034
- package/src/model/node.js +419 -463
- package/src/model/nodelist.js +175 -201
- package/src/model/operation/attributeoperation.js +153 -182
- package/src/model/operation/detachoperation.js +64 -83
- package/src/model/operation/insertoperation.js +135 -166
- package/src/model/operation/markeroperation.js +114 -140
- package/src/model/operation/mergeoperation.js +163 -191
- package/src/model/operation/moveoperation.js +157 -187
- package/src/model/operation/nooperation.js +28 -38
- package/src/model/operation/operation.js +106 -125
- package/src/model/operation/operationfactory.js +30 -34
- package/src/model/operation/renameoperation.js +109 -135
- package/src/model/operation/rootattributeoperation.js +155 -188
- package/src/model/operation/splitoperation.js +196 -232
- package/src/model/operation/transform.js +1833 -2204
- package/src/model/operation/utils.js +140 -204
- package/src/model/position.js +899 -1053
- package/src/model/range.js +910 -1028
- package/src/model/rootelement.js +77 -97
- package/src/model/schema.js +1189 -1835
- package/src/model/selection.js +745 -862
- package/src/model/text.js +90 -114
- package/src/model/textproxy.js +204 -240
- package/src/model/treewalker.js +316 -397
- package/src/model/typecheckable.js +16 -0
- package/src/model/utils/autoparagraphing.js +32 -44
- package/src/model/utils/deletecontent.js +334 -418
- package/src/model/utils/findoptimalinsertionrange.js +25 -36
- package/src/model/utils/getselectedcontent.js +96 -118
- package/src/model/utils/insertcontent.js +654 -773
- package/src/model/utils/insertobject.js +96 -119
- package/src/model/utils/modifyselection.js +120 -158
- package/src/model/utils/selection-post-fixer.js +153 -201
- package/src/model/writer.js +1305 -1474
- package/src/view/attributeelement.js +189 -225
- package/src/view/containerelement.js +75 -85
- package/src/view/document.js +172 -215
- package/src/view/documentfragment.js +200 -249
- package/src/view/documentselection.js +338 -367
- package/src/view/domconverter.js +1370 -1617
- package/src/view/downcastwriter.js +1747 -2076
- package/src/view/editableelement.js +81 -97
- package/src/view/element.js +739 -890
- package/src/view/elementdefinition.js +5 -0
- package/src/view/emptyelement.js +82 -92
- package/src/view/filler.js +35 -50
- package/src/view/item.js +5 -0
- package/src/view/matcher.js +260 -559
- package/src/view/node.js +274 -360
- package/src/view/observer/arrowkeysobserver.js +19 -28
- package/src/view/observer/bubblingemittermixin.js +120 -263
- package/src/view/observer/bubblingeventinfo.js +47 -55
- package/src/view/observer/clickobserver.js +7 -13
- package/src/view/observer/compositionobserver.js +14 -24
- package/src/view/observer/domeventdata.js +57 -67
- package/src/view/observer/domeventobserver.js +40 -64
- package/src/view/observer/fakeselectionobserver.js +81 -96
- package/src/view/observer/focusobserver.js +45 -61
- package/src/view/observer/inputobserver.js +7 -13
- package/src/view/observer/keyobserver.js +17 -27
- package/src/view/observer/mouseobserver.js +7 -14
- package/src/view/observer/mutationobserver.js +220 -315
- package/src/view/observer/observer.js +81 -102
- package/src/view/observer/selectionobserver.js +191 -246
- package/src/view/observer/tabobserver.js +23 -36
- package/src/view/placeholder.js +128 -173
- package/src/view/position.js +350 -401
- package/src/view/range.js +453 -513
- package/src/view/rawelement.js +85 -112
- package/src/view/renderer.js +874 -1018
- package/src/view/rooteditableelement.js +80 -90
- package/src/view/selection.js +608 -689
- package/src/view/styles/background.js +43 -44
- package/src/view/styles/border.js +220 -276
- package/src/view/styles/margin.js +8 -17
- package/src/view/styles/padding.js +8 -16
- package/src/view/styles/utils.js +127 -160
- package/src/view/stylesmap.js +728 -905
- package/src/view/text.js +102 -126
- package/src/view/textproxy.js +144 -170
- package/src/view/treewalker.js +383 -479
- package/src/view/typecheckable.js +19 -0
- package/src/view/uielement.js +166 -187
- package/src/view/upcastwriter.js +395 -449
- package/src/view/view.js +569 -664
- package/src/dataprocessor/dataprocessor.jsdoc +0 -64
- package/src/model/item.jsdoc +0 -14
- package/src/view/elementdefinition.jsdoc +0 -59
- package/src/view/item.jsdoc +0 -14
|
@@ -2,14 +2,10 @@
|
|
|
2
2
|
* @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
|
4
4
|
*/
|
|
5
|
-
|
|
6
5
|
/**
|
|
7
6
|
* @module engine/view/observer/observer
|
|
8
7
|
*/
|
|
9
|
-
|
|
10
|
-
import DomEmitterMixin from '@ckeditor/ckeditor5-utils/src/dom/emittermixin';
|
|
11
|
-
import mix from '@ckeditor/ckeditor5-utils/src/mix';
|
|
12
|
-
|
|
8
|
+
import { Emitter as DomEmitter } from '@ckeditor/ckeditor5-utils/src/dom/emittermixin';
|
|
13
9
|
/**
|
|
14
10
|
* Abstract base observer class. Observers are classes which listen to DOM events, do the preliminary
|
|
15
11
|
* processing and fire events on the {@link module:engine/view/document~Document} objects.
|
|
@@ -18,101 +14,84 @@ import mix from '@ckeditor/ckeditor5-utils/src/mix';
|
|
|
18
14
|
*
|
|
19
15
|
* @abstract
|
|
20
16
|
*/
|
|
21
|
-
export default class Observer {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
if ( !domTarget || domTarget.nodeType !== 1 ) {
|
|
103
|
-
return false;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
return domTarget.matches( '[data-cke-ignore-events], [data-cke-ignore-events] *' );
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
/**
|
|
110
|
-
* Starts observing the given root element.
|
|
111
|
-
*
|
|
112
|
-
* @method #observe
|
|
113
|
-
* @param {HTMLElement} domElement
|
|
114
|
-
* @param {String} name The name of the root element.
|
|
115
|
-
*/
|
|
17
|
+
export default class Observer extends DomEmitter {
|
|
18
|
+
/**
|
|
19
|
+
* Creates an instance of the observer.
|
|
20
|
+
*
|
|
21
|
+
* @param {module:engine/view/view~View} view
|
|
22
|
+
*/
|
|
23
|
+
constructor(view) {
|
|
24
|
+
super();
|
|
25
|
+
/**
|
|
26
|
+
* An instance of the view controller.
|
|
27
|
+
*
|
|
28
|
+
* @readonly
|
|
29
|
+
* @member {module:engine/view/view~View}
|
|
30
|
+
*/
|
|
31
|
+
this.view = view;
|
|
32
|
+
/**
|
|
33
|
+
* A reference to the {@link module:engine/view/document~Document} object.
|
|
34
|
+
*
|
|
35
|
+
* @readonly
|
|
36
|
+
* @member {module:engine/view/document~Document}
|
|
37
|
+
*/
|
|
38
|
+
this.document = view.document;
|
|
39
|
+
/**
|
|
40
|
+
* The state of the observer. If it is disabled, no events will be fired.
|
|
41
|
+
*
|
|
42
|
+
* @readonly
|
|
43
|
+
* @member {Boolean}
|
|
44
|
+
*/
|
|
45
|
+
this.isEnabled = false;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Enables the observer. This method is called when the observer is registered to the
|
|
49
|
+
* {@link module:engine/view/view~View} and after {@link module:engine/view/view~View#forceRender rendering}
|
|
50
|
+
* (all observers are {@link #disable disabled} before rendering).
|
|
51
|
+
*
|
|
52
|
+
* A typical use case for disabling observers is that mutation observers need to be disabled for the rendering.
|
|
53
|
+
* However, a child class may not need to be disabled, so it can implement an empty method.
|
|
54
|
+
*
|
|
55
|
+
* @see module:engine/view/observer/observer~Observer#disable
|
|
56
|
+
*/
|
|
57
|
+
enable() {
|
|
58
|
+
this.isEnabled = true;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Disables the observer. This method is called before
|
|
62
|
+
* {@link module:engine/view/view~View#forceRender rendering} to prevent firing events during rendering.
|
|
63
|
+
*
|
|
64
|
+
* @see module:engine/view/observer/observer~Observer#enable
|
|
65
|
+
*/
|
|
66
|
+
disable() {
|
|
67
|
+
this.isEnabled = false;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Disables and destroys the observer, among others removes event listeners created by the observer.
|
|
71
|
+
*/
|
|
72
|
+
destroy() {
|
|
73
|
+
this.disable();
|
|
74
|
+
this.stopListening();
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Checks whether a given DOM event should be ignored (should not be turned into a synthetic view document event).
|
|
78
|
+
*
|
|
79
|
+
* Currently, an event will be ignored only if its target or any of its ancestors has the `data-cke-ignore-events` attribute.
|
|
80
|
+
* This attribute can be used inside the structures generated by
|
|
81
|
+
* {@link module:engine/view/downcastwriter~DowncastWriter#createUIElement `DowncastWriter#createUIElement()`} to ignore events
|
|
82
|
+
* fired within a UI that should be excluded from CKEditor 5's realms.
|
|
83
|
+
*
|
|
84
|
+
* @param {Node} domTarget The DOM event target to check (usually an element, sometimes a text node and
|
|
85
|
+
* potentially sometimes a document, too).
|
|
86
|
+
* @returns {Boolean} Whether this event should be ignored by the observer.
|
|
87
|
+
*/
|
|
88
|
+
checkShouldIgnoreEventFromTarget(domTarget) {
|
|
89
|
+
if (domTarget && domTarget.nodeType === 3) {
|
|
90
|
+
domTarget = domTarget.parentNode;
|
|
91
|
+
}
|
|
92
|
+
if (!domTarget || domTarget.nodeType !== 1) {
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
return domTarget.matches('[data-cke-ignore-events], [data-cke-ignore-events] *');
|
|
96
|
+
}
|
|
116
97
|
}
|
|
117
|
-
|
|
118
|
-
mix( Observer, DomEmitterMixin );
|