@ckeditor/ckeditor5-engine 40.0.0 → 40.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/LICENSE.md +3 -3
- package/package.json +2 -2
- package/src/controller/datacontroller.d.ts +334 -334
- package/src/controller/datacontroller.js +481 -481
- package/src/controller/editingcontroller.d.ts +98 -98
- package/src/controller/editingcontroller.js +191 -191
- package/src/conversion/conversion.d.ts +478 -478
- package/src/conversion/conversion.js +601 -601
- package/src/conversion/conversionhelpers.d.ts +26 -26
- package/src/conversion/conversionhelpers.js +32 -32
- package/src/conversion/downcastdispatcher.d.ts +562 -562
- package/src/conversion/downcastdispatcher.js +547 -547
- package/src/conversion/downcasthelpers.d.ts +1226 -1226
- package/src/conversion/downcasthelpers.js +2178 -2183
- package/src/conversion/mapper.d.ts +503 -503
- package/src/conversion/mapper.js +536 -536
- package/src/conversion/modelconsumable.d.ts +201 -201
- package/src/conversion/modelconsumable.js +333 -333
- package/src/conversion/upcastdispatcher.d.ts +492 -492
- package/src/conversion/upcastdispatcher.js +460 -460
- package/src/conversion/upcasthelpers.d.ts +499 -499
- package/src/conversion/upcasthelpers.js +950 -950
- package/src/conversion/viewconsumable.d.ts +369 -369
- package/src/conversion/viewconsumable.js +536 -532
- package/src/dataprocessor/basichtmlwriter.d.ts +18 -18
- package/src/dataprocessor/basichtmlwriter.js +20 -19
- package/src/dataprocessor/dataprocessor.d.ts +61 -61
- package/src/dataprocessor/dataprocessor.js +5 -5
- package/src/dataprocessor/htmldataprocessor.d.ts +76 -76
- package/src/dataprocessor/htmldataprocessor.js +96 -96
- package/src/dataprocessor/htmlwriter.d.ts +16 -16
- package/src/dataprocessor/htmlwriter.js +5 -5
- package/src/dataprocessor/xmldataprocessor.d.ts +90 -90
- package/src/dataprocessor/xmldataprocessor.js +108 -108
- package/src/dev-utils/model.d.ts +124 -124
- package/src/dev-utils/model.js +395 -395
- package/src/dev-utils/operationreplayer.d.ts +51 -51
- package/src/dev-utils/operationreplayer.js +112 -112
- package/src/dev-utils/utils.d.ts +37 -37
- package/src/dev-utils/utils.js +73 -73
- package/src/dev-utils/view.d.ts +319 -319
- package/src/dev-utils/view.js +967 -967
- package/src/index.d.ts +114 -114
- package/src/index.js +78 -78
- package/src/model/batch.d.ts +106 -106
- package/src/model/batch.js +96 -96
- package/src/model/differ.d.ts +387 -387
- package/src/model/differ.js +1149 -1149
- package/src/model/document.d.ts +272 -272
- package/src/model/document.js +360 -361
- package/src/model/documentfragment.d.ts +200 -200
- package/src/model/documentfragment.js +306 -306
- package/src/model/documentselection.d.ts +420 -420
- package/src/model/documentselection.js +993 -993
- package/src/model/element.d.ts +165 -165
- package/src/model/element.js +281 -281
- package/src/model/history.d.ts +114 -114
- package/src/model/history.js +207 -207
- package/src/model/item.d.ts +14 -14
- package/src/model/item.js +5 -5
- package/src/model/liveposition.d.ts +77 -77
- package/src/model/liveposition.js +93 -93
- package/src/model/liverange.d.ts +102 -102
- package/src/model/liverange.js +120 -120
- package/src/model/markercollection.d.ts +335 -335
- package/src/model/markercollection.js +403 -403
- package/src/model/model.d.ts +919 -919
- package/src/model/model.js +842 -842
- package/src/model/node.d.ts +256 -256
- package/src/model/node.js +375 -375
- package/src/model/nodelist.d.ts +91 -91
- package/src/model/nodelist.js +163 -163
- package/src/model/operation/attributeoperation.d.ts +103 -103
- package/src/model/operation/attributeoperation.js +148 -148
- package/src/model/operation/detachoperation.d.ts +60 -60
- package/src/model/operation/detachoperation.js +77 -77
- package/src/model/operation/insertoperation.d.ts +90 -90
- package/src/model/operation/insertoperation.js +135 -135
- package/src/model/operation/markeroperation.d.ts +91 -91
- package/src/model/operation/markeroperation.js +107 -107
- package/src/model/operation/mergeoperation.d.ts +100 -100
- package/src/model/operation/mergeoperation.js +167 -167
- package/src/model/operation/moveoperation.d.ts +96 -96
- package/src/model/operation/moveoperation.js +164 -164
- package/src/model/operation/nooperation.d.ts +38 -38
- package/src/model/operation/nooperation.js +48 -48
- package/src/model/operation/operation.d.ts +96 -96
- package/src/model/operation/operation.js +59 -62
- package/src/model/operation/operationfactory.d.ts +18 -18
- package/src/model/operation/operationfactory.js +44 -44
- package/src/model/operation/renameoperation.d.ts +83 -83
- package/src/model/operation/renameoperation.js +115 -115
- package/src/model/operation/rootattributeoperation.d.ts +98 -98
- package/src/model/operation/rootattributeoperation.js +155 -155
- package/src/model/operation/rootoperation.d.ts +76 -76
- package/src/model/operation/rootoperation.js +90 -90
- package/src/model/operation/splitoperation.d.ts +109 -109
- package/src/model/operation/splitoperation.js +194 -194
- package/src/model/operation/transform.d.ts +100 -100
- package/src/model/operation/transform.js +1985 -1985
- package/src/model/operation/utils.d.ts +71 -71
- package/src/model/operation/utils.js +217 -213
- package/src/model/position.d.ts +539 -539
- package/src/model/position.js +979 -979
- package/src/model/range.d.ts +458 -458
- package/src/model/range.js +875 -875
- package/src/model/rootelement.d.ts +60 -60
- package/src/model/rootelement.js +74 -74
- package/src/model/schema.d.ts +1186 -1186
- package/src/model/schema.js +1242 -1242
- package/src/model/selection.d.ts +482 -482
- package/src/model/selection.js +789 -789
- package/src/model/text.d.ts +66 -66
- package/src/model/text.js +85 -85
- package/src/model/textproxy.d.ts +144 -144
- package/src/model/textproxy.js +189 -189
- package/src/model/treewalker.d.ts +186 -186
- package/src/model/treewalker.js +244 -244
- package/src/model/typecheckable.d.ts +285 -285
- package/src/model/typecheckable.js +16 -16
- package/src/model/utils/autoparagraphing.d.ts +37 -37
- package/src/model/utils/autoparagraphing.js +63 -63
- package/src/model/utils/deletecontent.d.ts +58 -58
- package/src/model/utils/deletecontent.js +488 -488
- package/src/model/utils/findoptimalinsertionrange.d.ts +32 -32
- package/src/model/utils/findoptimalinsertionrange.js +57 -57
- package/src/model/utils/getselectedcontent.d.ts +30 -30
- package/src/model/utils/getselectedcontent.js +125 -125
- package/src/model/utils/insertcontent.d.ts +46 -46
- package/src/model/utils/insertcontent.js +705 -705
- package/src/model/utils/insertobject.d.ts +44 -44
- package/src/model/utils/insertobject.js +139 -139
- package/src/model/utils/modifyselection.d.ts +48 -48
- package/src/model/utils/modifyselection.js +186 -186
- package/src/model/utils/selection-post-fixer.d.ts +74 -74
- package/src/model/utils/selection-post-fixer.js +260 -260
- package/src/model/writer.d.ts +851 -851
- package/src/model/writer.js +1306 -1306
- package/src/view/attributeelement.d.ts +108 -108
- package/src/view/attributeelement.js +184 -184
- package/src/view/containerelement.d.ts +49 -49
- package/src/view/containerelement.js +80 -80
- package/src/view/datatransfer.d.ts +79 -79
- package/src/view/datatransfer.js +98 -98
- package/src/view/document.d.ts +184 -184
- package/src/view/document.js +122 -120
- package/src/view/documentfragment.d.ts +153 -149
- package/src/view/documentfragment.js +234 -228
- package/src/view/documentselection.d.ts +306 -306
- package/src/view/documentselection.js +256 -256
- package/src/view/domconverter.d.ts +652 -640
- package/src/view/domconverter.js +1473 -1450
- package/src/view/downcastwriter.d.ts +996 -996
- package/src/view/downcastwriter.js +1696 -1696
- package/src/view/editableelement.d.ts +62 -62
- package/src/view/editableelement.js +62 -62
- package/src/view/element.d.ts +468 -468
- package/src/view/element.js +724 -724
- package/src/view/elementdefinition.d.ts +87 -87
- package/src/view/elementdefinition.js +5 -5
- package/src/view/emptyelement.d.ts +41 -41
- package/src/view/emptyelement.js +73 -73
- package/src/view/filler.d.ts +111 -111
- package/src/view/filler.js +150 -150
- package/src/view/item.d.ts +14 -14
- package/src/view/item.js +5 -5
- package/src/view/matcher.d.ts +486 -486
- package/src/view/matcher.js +507 -507
- package/src/view/node.d.ts +163 -163
- package/src/view/node.js +228 -228
- package/src/view/observer/arrowkeysobserver.d.ts +45 -45
- package/src/view/observer/arrowkeysobserver.js +40 -40
- package/src/view/observer/bubblingemittermixin.d.ts +166 -166
- package/src/view/observer/bubblingemittermixin.js +172 -172
- package/src/view/observer/bubblingeventinfo.d.ts +47 -47
- package/src/view/observer/bubblingeventinfo.js +37 -37
- package/src/view/observer/clickobserver.d.ts +43 -43
- package/src/view/observer/clickobserver.js +29 -29
- package/src/view/observer/compositionobserver.d.ts +82 -82
- package/src/view/observer/compositionobserver.js +60 -60
- package/src/view/observer/domeventdata.d.ts +50 -50
- package/src/view/observer/domeventdata.js +47 -47
- package/src/view/observer/domeventobserver.d.ts +73 -73
- package/src/view/observer/domeventobserver.js +79 -79
- package/src/view/observer/fakeselectionobserver.d.ts +47 -47
- package/src/view/observer/fakeselectionobserver.js +91 -91
- package/src/view/observer/focusobserver.d.ts +82 -82
- package/src/view/observer/focusobserver.js +86 -86
- package/src/view/observer/inputobserver.d.ts +86 -86
- package/src/view/observer/inputobserver.js +164 -164
- package/src/view/observer/keyobserver.d.ts +66 -66
- package/src/view/observer/keyobserver.js +39 -39
- package/src/view/observer/mouseobserver.d.ts +89 -89
- package/src/view/observer/mouseobserver.js +29 -29
- package/src/view/observer/mutationobserver.d.ts +86 -86
- package/src/view/observer/mutationobserver.js +206 -206
- package/src/view/observer/observer.d.ts +89 -89
- package/src/view/observer/observer.js +84 -84
- package/src/view/observer/selectionobserver.d.ts +148 -148
- package/src/view/observer/selectionobserver.js +202 -202
- package/src/view/observer/tabobserver.d.ts +46 -46
- package/src/view/observer/tabobserver.js +42 -42
- package/src/view/placeholder.d.ts +96 -96
- package/src/view/placeholder.js +267 -267
- package/src/view/position.d.ts +189 -189
- package/src/view/position.js +324 -324
- package/src/view/range.d.ts +279 -279
- package/src/view/range.js +430 -430
- package/src/view/rawelement.d.ts +73 -73
- package/src/view/rawelement.js +105 -105
- package/src/view/renderer.d.ts +265 -265
- package/src/view/renderer.js +1000 -999
- package/src/view/rooteditableelement.d.ts +41 -41
- package/src/view/rooteditableelement.js +69 -69
- package/src/view/selection.d.ts +375 -375
- package/src/view/selection.js +559 -559
- package/src/view/styles/background.d.ts +33 -33
- package/src/view/styles/background.js +74 -74
- package/src/view/styles/border.d.ts +43 -43
- package/src/view/styles/border.js +316 -316
- package/src/view/styles/margin.d.ts +29 -29
- package/src/view/styles/margin.js +34 -34
- package/src/view/styles/padding.d.ts +29 -29
- package/src/view/styles/padding.js +34 -34
- package/src/view/styles/utils.d.ts +93 -93
- package/src/view/styles/utils.js +219 -219
- package/src/view/stylesmap.d.ts +675 -675
- package/src/view/stylesmap.js +765 -766
- package/src/view/text.d.ts +74 -74
- package/src/view/text.js +93 -93
- package/src/view/textproxy.d.ts +97 -97
- package/src/view/textproxy.js +124 -124
- package/src/view/treewalker.d.ts +195 -195
- package/src/view/treewalker.js +327 -327
- package/src/view/typecheckable.d.ts +448 -448
- package/src/view/typecheckable.js +19 -19
- package/src/view/uielement.d.ts +96 -96
- package/src/view/uielement.js +183 -182
- package/src/view/upcastwriter.d.ts +417 -417
- package/src/view/upcastwriter.js +359 -359
- package/src/view/view.d.ts +487 -487
- package/src/view/view.js +546 -546
|
@@ -1,79 +1,79 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
|
-
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* @module engine/view/observer/domeventobserver
|
|
7
|
-
*/
|
|
8
|
-
import Observer from './observer';
|
|
9
|
-
import DomEventData from './domeventdata';
|
|
10
|
-
/**
|
|
11
|
-
* Base class for DOM event observers. This class handles
|
|
12
|
-
* {@link module:engine/view/observer/observer~Observer#observe adding} listeners to DOM elements,
|
|
13
|
-
* {@link module:engine/view/observer/observer~Observer#disable disabling} and
|
|
14
|
-
* {@link module:engine/view/observer/observer~Observer#enable re-enabling} events.
|
|
15
|
-
* Child class needs to define
|
|
16
|
-
* {@link module:engine/view/observer/domeventobserver~DomEventObserver#domEventType DOM event type} and
|
|
17
|
-
* {@link module:engine/view/observer/domeventobserver~DomEventObserver#onDomEvent callback}.
|
|
18
|
-
*
|
|
19
|
-
* For instance:
|
|
20
|
-
*
|
|
21
|
-
* ```ts
|
|
22
|
-
* class ClickObserver extends DomEventObserver<'click'> {
|
|
23
|
-
* // It can also be defined as a normal property in the constructor.
|
|
24
|
-
* get domEventType(): 'click' {
|
|
25
|
-
* return 'click';
|
|
26
|
-
* }
|
|
27
|
-
*
|
|
28
|
-
* onDomEvent( domEvent: MouseEvent ): void {
|
|
29
|
-
* this.fire( 'click', domEvent );
|
|
30
|
-
* }
|
|
31
|
-
* }
|
|
32
|
-
* ```
|
|
33
|
-
*
|
|
34
|
-
* @typeParam EventType DOM Event type name or an union of those.
|
|
35
|
-
* @typeParam AdditionalData Additional data passed along with the event.
|
|
36
|
-
*/
|
|
37
|
-
export default class DomEventObserver extends Observer {
|
|
38
|
-
constructor() {
|
|
39
|
-
super(...arguments);
|
|
40
|
-
/**
|
|
41
|
-
* If set to `true` DOM events will be listened on the capturing phase.
|
|
42
|
-
* Default value is `false`.
|
|
43
|
-
*/
|
|
44
|
-
this.useCapture = false;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* @inheritDoc
|
|
48
|
-
*/
|
|
49
|
-
observe(domElement) {
|
|
50
|
-
const types = typeof this.domEventType == 'string' ? [this.domEventType] : this.domEventType;
|
|
51
|
-
types.forEach(type => {
|
|
52
|
-
this.listenTo(domElement, type, (eventInfo, domEvent) => {
|
|
53
|
-
if (this.isEnabled && !this.checkShouldIgnoreEventFromTarget(domEvent.target)) {
|
|
54
|
-
this.onDomEvent(domEvent);
|
|
55
|
-
}
|
|
56
|
-
}, { useCapture: this.useCapture });
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* @inheritDoc
|
|
61
|
-
*/
|
|
62
|
-
stopObserving(domElement) {
|
|
63
|
-
this.stopListening(domElement);
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Calls `Document#fire()` if observer {@link #isEnabled is enabled}.
|
|
67
|
-
*
|
|
68
|
-
* @see module:utils/emittermixin~Emitter#fire
|
|
69
|
-
* @param eventType The event type (name).
|
|
70
|
-
* @param domEvent The DOM event.
|
|
71
|
-
* @param additionalData The additional data which should extend the
|
|
72
|
-
* {@link module:engine/view/observer/domeventdata~DomEventData event data} object.
|
|
73
|
-
*/
|
|
74
|
-
fire(eventType, domEvent, additionalData) {
|
|
75
|
-
if (this.isEnabled) {
|
|
76
|
-
this.document.fire(eventType, new DomEventData(this.view, domEvent, additionalData));
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
|
+
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* @module engine/view/observer/domeventobserver
|
|
7
|
+
*/
|
|
8
|
+
import Observer from './observer';
|
|
9
|
+
import DomEventData from './domeventdata';
|
|
10
|
+
/**
|
|
11
|
+
* Base class for DOM event observers. This class handles
|
|
12
|
+
* {@link module:engine/view/observer/observer~Observer#observe adding} listeners to DOM elements,
|
|
13
|
+
* {@link module:engine/view/observer/observer~Observer#disable disabling} and
|
|
14
|
+
* {@link module:engine/view/observer/observer~Observer#enable re-enabling} events.
|
|
15
|
+
* Child class needs to define
|
|
16
|
+
* {@link module:engine/view/observer/domeventobserver~DomEventObserver#domEventType DOM event type} and
|
|
17
|
+
* {@link module:engine/view/observer/domeventobserver~DomEventObserver#onDomEvent callback}.
|
|
18
|
+
*
|
|
19
|
+
* For instance:
|
|
20
|
+
*
|
|
21
|
+
* ```ts
|
|
22
|
+
* class ClickObserver extends DomEventObserver<'click'> {
|
|
23
|
+
* // It can also be defined as a normal property in the constructor.
|
|
24
|
+
* get domEventType(): 'click' {
|
|
25
|
+
* return 'click';
|
|
26
|
+
* }
|
|
27
|
+
*
|
|
28
|
+
* onDomEvent( domEvent: MouseEvent ): void {
|
|
29
|
+
* this.fire( 'click', domEvent );
|
|
30
|
+
* }
|
|
31
|
+
* }
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* @typeParam EventType DOM Event type name or an union of those.
|
|
35
|
+
* @typeParam AdditionalData Additional data passed along with the event.
|
|
36
|
+
*/
|
|
37
|
+
export default class DomEventObserver extends Observer {
|
|
38
|
+
constructor() {
|
|
39
|
+
super(...arguments);
|
|
40
|
+
/**
|
|
41
|
+
* If set to `true` DOM events will be listened on the capturing phase.
|
|
42
|
+
* Default value is `false`.
|
|
43
|
+
*/
|
|
44
|
+
this.useCapture = false;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* @inheritDoc
|
|
48
|
+
*/
|
|
49
|
+
observe(domElement) {
|
|
50
|
+
const types = typeof this.domEventType == 'string' ? [this.domEventType] : this.domEventType;
|
|
51
|
+
types.forEach(type => {
|
|
52
|
+
this.listenTo(domElement, type, (eventInfo, domEvent) => {
|
|
53
|
+
if (this.isEnabled && !this.checkShouldIgnoreEventFromTarget(domEvent.target)) {
|
|
54
|
+
this.onDomEvent(domEvent);
|
|
55
|
+
}
|
|
56
|
+
}, { useCapture: this.useCapture });
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* @inheritDoc
|
|
61
|
+
*/
|
|
62
|
+
stopObserving(domElement) {
|
|
63
|
+
this.stopListening(domElement);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Calls `Document#fire()` if observer {@link #isEnabled is enabled}.
|
|
67
|
+
*
|
|
68
|
+
* @see module:utils/emittermixin~Emitter#fire
|
|
69
|
+
* @param eventType The event type (name).
|
|
70
|
+
* @param domEvent The DOM event.
|
|
71
|
+
* @param additionalData The additional data which should extend the
|
|
72
|
+
* {@link module:engine/view/observer/domeventdata~DomEventData event data} object.
|
|
73
|
+
*/
|
|
74
|
+
fire(eventType, domEvent, additionalData) {
|
|
75
|
+
if (this.isEnabled) {
|
|
76
|
+
this.document.fire(eventType, new DomEventData(this.view, domEvent, additionalData));
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
|
-
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* @module engine/view/observer/fakeselectionobserver
|
|
7
|
-
*/
|
|
8
|
-
import Observer from './observer';
|
|
9
|
-
import type View from '../view';
|
|
10
|
-
/**
|
|
11
|
-
* Fake selection observer class. If view selection is fake it is placed in dummy DOM container. This observer listens
|
|
12
|
-
* on {@link module:engine/view/document~Document#event:keydown keydown} events and handles moving fake view selection to the correct place
|
|
13
|
-
* if arrow keys are pressed.
|
|
14
|
-
* Fires {@link module:engine/view/document~Document#event:selectionChange selectionChange event} simulating natural behaviour of
|
|
15
|
-
* {@link module:engine/view/observer/selectionobserver~SelectionObserver SelectionObserver}.
|
|
16
|
-
*/
|
|
17
|
-
export default class FakeSelectionObserver extends Observer {
|
|
18
|
-
/**
|
|
19
|
-
* Fires debounced event `selectionChangeDone`. It uses `lodash#debounce` method to delay function call.
|
|
20
|
-
*/
|
|
21
|
-
private readonly _fireSelectionChangeDoneDebounced;
|
|
22
|
-
/**
|
|
23
|
-
* Creates new FakeSelectionObserver instance.
|
|
24
|
-
*/
|
|
25
|
-
constructor(view: View);
|
|
26
|
-
/**
|
|
27
|
-
* @inheritDoc
|
|
28
|
-
*/
|
|
29
|
-
observe(): void;
|
|
30
|
-
/**
|
|
31
|
-
* @inheritDoc
|
|
32
|
-
*/
|
|
33
|
-
stopObserving(): void;
|
|
34
|
-
/**
|
|
35
|
-
* @inheritDoc
|
|
36
|
-
*/
|
|
37
|
-
destroy(): void;
|
|
38
|
-
/**
|
|
39
|
-
* Handles collapsing view selection according to given key code. If left or up key is provided - new selection will be
|
|
40
|
-
* collapsed to left. If right or down key is pressed - new selection will be collapsed to right.
|
|
41
|
-
*
|
|
42
|
-
* This method fires {@link module:engine/view/document~Document#event:selectionChange} and
|
|
43
|
-
* {@link module:engine/view/document~Document#event:selectionChangeDone} events imitating behaviour of
|
|
44
|
-
* {@link module:engine/view/observer/selectionobserver~SelectionObserver}.
|
|
45
|
-
*/
|
|
46
|
-
private _handleSelectionMove;
|
|
47
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
|
+
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* @module engine/view/observer/fakeselectionobserver
|
|
7
|
+
*/
|
|
8
|
+
import Observer from './observer';
|
|
9
|
+
import type View from '../view';
|
|
10
|
+
/**
|
|
11
|
+
* Fake selection observer class. If view selection is fake it is placed in dummy DOM container. This observer listens
|
|
12
|
+
* on {@link module:engine/view/document~Document#event:keydown keydown} events and handles moving fake view selection to the correct place
|
|
13
|
+
* if arrow keys are pressed.
|
|
14
|
+
* Fires {@link module:engine/view/document~Document#event:selectionChange selectionChange event} simulating natural behaviour of
|
|
15
|
+
* {@link module:engine/view/observer/selectionobserver~SelectionObserver SelectionObserver}.
|
|
16
|
+
*/
|
|
17
|
+
export default class FakeSelectionObserver extends Observer {
|
|
18
|
+
/**
|
|
19
|
+
* Fires debounced event `selectionChangeDone`. It uses `lodash#debounce` method to delay function call.
|
|
20
|
+
*/
|
|
21
|
+
private readonly _fireSelectionChangeDoneDebounced;
|
|
22
|
+
/**
|
|
23
|
+
* Creates new FakeSelectionObserver instance.
|
|
24
|
+
*/
|
|
25
|
+
constructor(view: View);
|
|
26
|
+
/**
|
|
27
|
+
* @inheritDoc
|
|
28
|
+
*/
|
|
29
|
+
observe(): void;
|
|
30
|
+
/**
|
|
31
|
+
* @inheritDoc
|
|
32
|
+
*/
|
|
33
|
+
stopObserving(): void;
|
|
34
|
+
/**
|
|
35
|
+
* @inheritDoc
|
|
36
|
+
*/
|
|
37
|
+
destroy(): void;
|
|
38
|
+
/**
|
|
39
|
+
* Handles collapsing view selection according to given key code. If left or up key is provided - new selection will be
|
|
40
|
+
* collapsed to left. If right or down key is pressed - new selection will be collapsed to right.
|
|
41
|
+
*
|
|
42
|
+
* This method fires {@link module:engine/view/document~Document#event:selectionChange} and
|
|
43
|
+
* {@link module:engine/view/document~Document#event:selectionChangeDone} events imitating behaviour of
|
|
44
|
+
* {@link module:engine/view/observer/selectionobserver~SelectionObserver}.
|
|
45
|
+
*/
|
|
46
|
+
private _handleSelectionMove;
|
|
47
|
+
}
|
|
@@ -1,91 +1,91 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
|
-
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* @module engine/view/observer/fakeselectionobserver
|
|
7
|
-
*/
|
|
8
|
-
import Observer from './observer';
|
|
9
|
-
import ViewSelection from '../selection';
|
|
10
|
-
import { keyCodes } from '@ckeditor/ckeditor5-utils';
|
|
11
|
-
import { debounce } from 'lodash-es';
|
|
12
|
-
/**
|
|
13
|
-
* Fake selection observer class. If view selection is fake it is placed in dummy DOM container. This observer listens
|
|
14
|
-
* on {@link module:engine/view/document~Document#event:keydown keydown} events and handles moving fake view selection to the correct place
|
|
15
|
-
* if arrow keys are pressed.
|
|
16
|
-
* Fires {@link module:engine/view/document~Document#event:selectionChange selectionChange event} simulating natural behaviour of
|
|
17
|
-
* {@link module:engine/view/observer/selectionobserver~SelectionObserver SelectionObserver}.
|
|
18
|
-
*/
|
|
19
|
-
export default class FakeSelectionObserver extends Observer {
|
|
20
|
-
/**
|
|
21
|
-
* Creates new FakeSelectionObserver instance.
|
|
22
|
-
*/
|
|
23
|
-
constructor(view) {
|
|
24
|
-
super(view);
|
|
25
|
-
this._fireSelectionChangeDoneDebounced = debounce(data => {
|
|
26
|
-
this.document.fire('selectionChangeDone', data);
|
|
27
|
-
}, 200);
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* @inheritDoc
|
|
31
|
-
*/
|
|
32
|
-
observe() {
|
|
33
|
-
const document = this.document;
|
|
34
|
-
document.on('arrowKey', (eventInfo, data) => {
|
|
35
|
-
const selection = document.selection;
|
|
36
|
-
if (selection.isFake && this.isEnabled) {
|
|
37
|
-
// Prevents default key down handling - no selection change will occur.
|
|
38
|
-
data.preventDefault();
|
|
39
|
-
}
|
|
40
|
-
}, { context: '$capture' });
|
|
41
|
-
document.on('arrowKey', (eventInfo, data) => {
|
|
42
|
-
const selection = document.selection;
|
|
43
|
-
if (selection.isFake && this.isEnabled) {
|
|
44
|
-
this._handleSelectionMove(data.keyCode);
|
|
45
|
-
}
|
|
46
|
-
}, { priority: 'lowest' });
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* @inheritDoc
|
|
50
|
-
*/
|
|
51
|
-
stopObserving() { }
|
|
52
|
-
/**
|
|
53
|
-
* @inheritDoc
|
|
54
|
-
*/
|
|
55
|
-
destroy() {
|
|
56
|
-
super.destroy();
|
|
57
|
-
this._fireSelectionChangeDoneDebounced.cancel();
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Handles collapsing view selection according to given key code. If left or up key is provided - new selection will be
|
|
61
|
-
* collapsed to left. If right or down key is pressed - new selection will be collapsed to right.
|
|
62
|
-
*
|
|
63
|
-
* This method fires {@link module:engine/view/document~Document#event:selectionChange} and
|
|
64
|
-
* {@link module:engine/view/document~Document#event:selectionChangeDone} events imitating behaviour of
|
|
65
|
-
* {@link module:engine/view/observer/selectionobserver~SelectionObserver}.
|
|
66
|
-
*/
|
|
67
|
-
_handleSelectionMove(keyCode) {
|
|
68
|
-
const selection = this.document.selection;
|
|
69
|
-
const newSelection = new ViewSelection(selection.getRanges(), { backward: selection.isBackward, fake: false });
|
|
70
|
-
// Left or up arrow pressed - move selection to start.
|
|
71
|
-
if (keyCode == keyCodes.arrowleft || keyCode == keyCodes.arrowup) {
|
|
72
|
-
newSelection.setTo(newSelection.getFirstPosition());
|
|
73
|
-
}
|
|
74
|
-
// Right or down arrow pressed - move selection to end.
|
|
75
|
-
if (keyCode == keyCodes.arrowright || keyCode == keyCodes.arrowdown) {
|
|
76
|
-
newSelection.setTo(newSelection.getLastPosition());
|
|
77
|
-
}
|
|
78
|
-
const data = {
|
|
79
|
-
oldSelection: selection,
|
|
80
|
-
newSelection,
|
|
81
|
-
domSelection: null
|
|
82
|
-
};
|
|
83
|
-
// Fire dummy selection change event.
|
|
84
|
-
this.document.fire('selectionChange', data);
|
|
85
|
-
// Call` #_fireSelectionChangeDoneDebounced` every time when `selectionChange` event is fired.
|
|
86
|
-
// This function is debounced what means that `selectionChangeDone` event will be fired only when
|
|
87
|
-
// defined int the function time will elapse since the last time the function was called.
|
|
88
|
-
// So `selectionChangeDone` will be fired when selection will stop changing.
|
|
89
|
-
this._fireSelectionChangeDoneDebounced(data);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
|
+
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* @module engine/view/observer/fakeselectionobserver
|
|
7
|
+
*/
|
|
8
|
+
import Observer from './observer';
|
|
9
|
+
import ViewSelection from '../selection';
|
|
10
|
+
import { keyCodes } from '@ckeditor/ckeditor5-utils';
|
|
11
|
+
import { debounce } from 'lodash-es';
|
|
12
|
+
/**
|
|
13
|
+
* Fake selection observer class. If view selection is fake it is placed in dummy DOM container. This observer listens
|
|
14
|
+
* on {@link module:engine/view/document~Document#event:keydown keydown} events and handles moving fake view selection to the correct place
|
|
15
|
+
* if arrow keys are pressed.
|
|
16
|
+
* Fires {@link module:engine/view/document~Document#event:selectionChange selectionChange event} simulating natural behaviour of
|
|
17
|
+
* {@link module:engine/view/observer/selectionobserver~SelectionObserver SelectionObserver}.
|
|
18
|
+
*/
|
|
19
|
+
export default class FakeSelectionObserver extends Observer {
|
|
20
|
+
/**
|
|
21
|
+
* Creates new FakeSelectionObserver instance.
|
|
22
|
+
*/
|
|
23
|
+
constructor(view) {
|
|
24
|
+
super(view);
|
|
25
|
+
this._fireSelectionChangeDoneDebounced = debounce(data => {
|
|
26
|
+
this.document.fire('selectionChangeDone', data);
|
|
27
|
+
}, 200);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* @inheritDoc
|
|
31
|
+
*/
|
|
32
|
+
observe() {
|
|
33
|
+
const document = this.document;
|
|
34
|
+
document.on('arrowKey', (eventInfo, data) => {
|
|
35
|
+
const selection = document.selection;
|
|
36
|
+
if (selection.isFake && this.isEnabled) {
|
|
37
|
+
// Prevents default key down handling - no selection change will occur.
|
|
38
|
+
data.preventDefault();
|
|
39
|
+
}
|
|
40
|
+
}, { context: '$capture' });
|
|
41
|
+
document.on('arrowKey', (eventInfo, data) => {
|
|
42
|
+
const selection = document.selection;
|
|
43
|
+
if (selection.isFake && this.isEnabled) {
|
|
44
|
+
this._handleSelectionMove(data.keyCode);
|
|
45
|
+
}
|
|
46
|
+
}, { priority: 'lowest' });
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* @inheritDoc
|
|
50
|
+
*/
|
|
51
|
+
stopObserving() { }
|
|
52
|
+
/**
|
|
53
|
+
* @inheritDoc
|
|
54
|
+
*/
|
|
55
|
+
destroy() {
|
|
56
|
+
super.destroy();
|
|
57
|
+
this._fireSelectionChangeDoneDebounced.cancel();
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Handles collapsing view selection according to given key code. If left or up key is provided - new selection will be
|
|
61
|
+
* collapsed to left. If right or down key is pressed - new selection will be collapsed to right.
|
|
62
|
+
*
|
|
63
|
+
* This method fires {@link module:engine/view/document~Document#event:selectionChange} and
|
|
64
|
+
* {@link module:engine/view/document~Document#event:selectionChangeDone} events imitating behaviour of
|
|
65
|
+
* {@link module:engine/view/observer/selectionobserver~SelectionObserver}.
|
|
66
|
+
*/
|
|
67
|
+
_handleSelectionMove(keyCode) {
|
|
68
|
+
const selection = this.document.selection;
|
|
69
|
+
const newSelection = new ViewSelection(selection.getRanges(), { backward: selection.isBackward, fake: false });
|
|
70
|
+
// Left or up arrow pressed - move selection to start.
|
|
71
|
+
if (keyCode == keyCodes.arrowleft || keyCode == keyCodes.arrowup) {
|
|
72
|
+
newSelection.setTo(newSelection.getFirstPosition());
|
|
73
|
+
}
|
|
74
|
+
// Right or down arrow pressed - move selection to end.
|
|
75
|
+
if (keyCode == keyCodes.arrowright || keyCode == keyCodes.arrowdown) {
|
|
76
|
+
newSelection.setTo(newSelection.getLastPosition());
|
|
77
|
+
}
|
|
78
|
+
const data = {
|
|
79
|
+
oldSelection: selection,
|
|
80
|
+
newSelection,
|
|
81
|
+
domSelection: null
|
|
82
|
+
};
|
|
83
|
+
// Fire dummy selection change event.
|
|
84
|
+
this.document.fire('selectionChange', data);
|
|
85
|
+
// Call` #_fireSelectionChangeDoneDebounced` every time when `selectionChange` event is fired.
|
|
86
|
+
// This function is debounced what means that `selectionChangeDone` event will be fired only when
|
|
87
|
+
// defined int the function time will elapse since the last time the function was called.
|
|
88
|
+
// So `selectionChangeDone` will be fired when selection will stop changing.
|
|
89
|
+
this._fireSelectionChangeDoneDebounced(data);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
@@ -1,82 +1,82 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
|
-
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* @module engine/view/observer/focusobserver
|
|
7
|
-
*/
|
|
8
|
-
import DomEventObserver from './domeventobserver';
|
|
9
|
-
import type DomEventData from './domeventdata';
|
|
10
|
-
import type View from '../view';
|
|
11
|
-
/**
|
|
12
|
-
* {@link module:engine/view/document~Document#event:focus Focus}
|
|
13
|
-
* and {@link module:engine/view/document~Document#event:blur blur} events observer.
|
|
14
|
-
* Focus observer handle also {@link module:engine/view/rooteditableelement~RootEditableElement#isFocused isFocused} property of the
|
|
15
|
-
* {@link module:engine/view/rooteditableelement~RootEditableElement root elements}.
|
|
16
|
-
*
|
|
17
|
-
* Note that this observer is attached by the {@link module:engine/view/view~View} and is available by default.
|
|
18
|
-
*/
|
|
19
|
-
export default class FocusObserver extends DomEventObserver<'focus' | 'blur'> {
|
|
20
|
-
/**
|
|
21
|
-
* Identifier of the timeout currently used by focus listener to delay rendering execution.
|
|
22
|
-
*/
|
|
23
|
-
private _renderTimeoutId;
|
|
24
|
-
/**
|
|
25
|
-
* Set to `true` if the document is in the process of setting the focus.
|
|
26
|
-
*
|
|
27
|
-
* The flag is used to indicate that setting the focus is in progress.
|
|
28
|
-
*/
|
|
29
|
-
private _isFocusChanging;
|
|
30
|
-
/**
|
|
31
|
-
* @inheritDoc
|
|
32
|
-
*/
|
|
33
|
-
readonly domEventType: readonly ["focus", "blur"];
|
|
34
|
-
/**
|
|
35
|
-
* @inheritDoc
|
|
36
|
-
*/
|
|
37
|
-
constructor(view: View);
|
|
38
|
-
/**
|
|
39
|
-
* Finishes setting the document focus state.
|
|
40
|
-
*/
|
|
41
|
-
flush(): void;
|
|
42
|
-
/**
|
|
43
|
-
* @inheritDoc
|
|
44
|
-
*/
|
|
45
|
-
onDomEvent(domEvent: FocusEvent): void;
|
|
46
|
-
/**
|
|
47
|
-
* @inheritDoc
|
|
48
|
-
*/
|
|
49
|
-
destroy(): void;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Fired when one of the editables gets focus.
|
|
53
|
-
*
|
|
54
|
-
* Introduced by {@link module:engine/view/observer/focusobserver~FocusObserver}.
|
|
55
|
-
*
|
|
56
|
-
* Note that because {@link module:engine/view/observer/focusobserver~FocusObserver} is attached by the
|
|
57
|
-
* {@link module:engine/view/view~View} this event is available by default.
|
|
58
|
-
*
|
|
59
|
-
* @see module:engine/view/observer/focusobserver~FocusObserver
|
|
60
|
-
* @eventName module:engine/view/document~Document#focus
|
|
61
|
-
* @param data Event data.
|
|
62
|
-
*/
|
|
63
|
-
export type ViewDocumentFocusEvent = {
|
|
64
|
-
name: 'focus';
|
|
65
|
-
args: [data: DomEventData<FocusEvent>];
|
|
66
|
-
};
|
|
67
|
-
/**
|
|
68
|
-
* Fired when one of the editables loses focus.
|
|
69
|
-
*
|
|
70
|
-
* Introduced by {@link module:engine/view/observer/focusobserver~FocusObserver}.
|
|
71
|
-
*
|
|
72
|
-
* Note that because {@link module:engine/view/observer/focusobserver~FocusObserver} is attached by the
|
|
73
|
-
* {@link module:engine/view/view~View} this event is available by default.
|
|
74
|
-
*
|
|
75
|
-
* @see module:engine/view/observer/focusobserver~FocusObserver
|
|
76
|
-
* @eventName module:engine/view/document~Document#blur
|
|
77
|
-
* @param data Event data.
|
|
78
|
-
*/
|
|
79
|
-
export type ViewDocumentBlurEvent = {
|
|
80
|
-
name: 'blur';
|
|
81
|
-
args: [data: DomEventData<FocusEvent>];
|
|
82
|
-
};
|
|
1
|
+
/**
|
|
2
|
+
* @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
|
+
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* @module engine/view/observer/focusobserver
|
|
7
|
+
*/
|
|
8
|
+
import DomEventObserver from './domeventobserver';
|
|
9
|
+
import type DomEventData from './domeventdata';
|
|
10
|
+
import type View from '../view';
|
|
11
|
+
/**
|
|
12
|
+
* {@link module:engine/view/document~Document#event:focus Focus}
|
|
13
|
+
* and {@link module:engine/view/document~Document#event:blur blur} events observer.
|
|
14
|
+
* Focus observer handle also {@link module:engine/view/rooteditableelement~RootEditableElement#isFocused isFocused} property of the
|
|
15
|
+
* {@link module:engine/view/rooteditableelement~RootEditableElement root elements}.
|
|
16
|
+
*
|
|
17
|
+
* Note that this observer is attached by the {@link module:engine/view/view~View} and is available by default.
|
|
18
|
+
*/
|
|
19
|
+
export default class FocusObserver extends DomEventObserver<'focus' | 'blur'> {
|
|
20
|
+
/**
|
|
21
|
+
* Identifier of the timeout currently used by focus listener to delay rendering execution.
|
|
22
|
+
*/
|
|
23
|
+
private _renderTimeoutId;
|
|
24
|
+
/**
|
|
25
|
+
* Set to `true` if the document is in the process of setting the focus.
|
|
26
|
+
*
|
|
27
|
+
* The flag is used to indicate that setting the focus is in progress.
|
|
28
|
+
*/
|
|
29
|
+
private _isFocusChanging;
|
|
30
|
+
/**
|
|
31
|
+
* @inheritDoc
|
|
32
|
+
*/
|
|
33
|
+
readonly domEventType: readonly ["focus", "blur"];
|
|
34
|
+
/**
|
|
35
|
+
* @inheritDoc
|
|
36
|
+
*/
|
|
37
|
+
constructor(view: View);
|
|
38
|
+
/**
|
|
39
|
+
* Finishes setting the document focus state.
|
|
40
|
+
*/
|
|
41
|
+
flush(): void;
|
|
42
|
+
/**
|
|
43
|
+
* @inheritDoc
|
|
44
|
+
*/
|
|
45
|
+
onDomEvent(domEvent: FocusEvent): void;
|
|
46
|
+
/**
|
|
47
|
+
* @inheritDoc
|
|
48
|
+
*/
|
|
49
|
+
destroy(): void;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Fired when one of the editables gets focus.
|
|
53
|
+
*
|
|
54
|
+
* Introduced by {@link module:engine/view/observer/focusobserver~FocusObserver}.
|
|
55
|
+
*
|
|
56
|
+
* Note that because {@link module:engine/view/observer/focusobserver~FocusObserver} is attached by the
|
|
57
|
+
* {@link module:engine/view/view~View} this event is available by default.
|
|
58
|
+
*
|
|
59
|
+
* @see module:engine/view/observer/focusobserver~FocusObserver
|
|
60
|
+
* @eventName module:engine/view/document~Document#focus
|
|
61
|
+
* @param data Event data.
|
|
62
|
+
*/
|
|
63
|
+
export type ViewDocumentFocusEvent = {
|
|
64
|
+
name: 'focus';
|
|
65
|
+
args: [data: DomEventData<FocusEvent>];
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Fired when one of the editables loses focus.
|
|
69
|
+
*
|
|
70
|
+
* Introduced by {@link module:engine/view/observer/focusobserver~FocusObserver}.
|
|
71
|
+
*
|
|
72
|
+
* Note that because {@link module:engine/view/observer/focusobserver~FocusObserver} is attached by the
|
|
73
|
+
* {@link module:engine/view/view~View} this event is available by default.
|
|
74
|
+
*
|
|
75
|
+
* @see module:engine/view/observer/focusobserver~FocusObserver
|
|
76
|
+
* @eventName module:engine/view/document~Document#blur
|
|
77
|
+
* @param data Event data.
|
|
78
|
+
*/
|
|
79
|
+
export type ViewDocumentBlurEvent = {
|
|
80
|
+
name: 'blur';
|
|
81
|
+
args: [data: DomEventData<FocusEvent>];
|
|
82
|
+
};
|