@ckeditor/ckeditor5-engine 39.0.2 → 40.0.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/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 +2183 -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 +532 -532
- package/src/dataprocessor/basichtmlwriter.d.ts +18 -18
- package/src/dataprocessor/basichtmlwriter.js +19 -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 +361 -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 +62 -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 +213 -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 +120 -120
- package/src/view/documentfragment.d.ts +149 -149
- package/src/view/documentfragment.js +228 -228
- package/src/view/documentselection.d.ts +306 -306
- package/src/view/documentselection.js +256 -256
- package/src/view/domconverter.d.ts +640 -640
- package/src/view/domconverter.js +1450 -1425
- 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 +999 -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 +766 -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 +182 -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,448 +1,448 @@
|
|
|
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
|
-
import type AttributeElement from './attributeelement';
|
|
6
|
-
import type ContainerElement from './containerelement';
|
|
7
|
-
import type DocumentFragment from './documentfragment';
|
|
8
|
-
import type DocumentSelection from './documentselection';
|
|
9
|
-
import type EditableElement from './editableelement';
|
|
10
|
-
import type Element from './element';
|
|
11
|
-
import type EmptyElement from './emptyelement';
|
|
12
|
-
import type Node from './node';
|
|
13
|
-
import type Position from './position';
|
|
14
|
-
import type Range from './range';
|
|
15
|
-
import type RawElement from './rawelement';
|
|
16
|
-
import type RootEditableElement from './rooteditableelement';
|
|
17
|
-
import type Selection from './selection';
|
|
18
|
-
import type Text from './text';
|
|
19
|
-
import type TextProxy from './textproxy';
|
|
20
|
-
import type UIElement from './uielement';
|
|
21
|
-
/**
|
|
22
|
-
* @module engine/view/typecheckable
|
|
23
|
-
*/
|
|
24
|
-
export default abstract class TypeCheckable {
|
|
25
|
-
/**
|
|
26
|
-
* Checks whether this object is of type {@link module:engine/view/node~Node} or its subclass.
|
|
27
|
-
*
|
|
28
|
-
* This method is useful when processing view objects that are of unknown type. For example, a function
|
|
29
|
-
* may return a {@link module:engine/view/documentfragment~DocumentFragment} or a {@link module:engine/view/node~Node}
|
|
30
|
-
* that can be either a text node or an element. This method can be used to check what kind of object is returned.
|
|
31
|
-
*
|
|
32
|
-
* ```ts
|
|
33
|
-
* someObject.is( 'element' ); // -> true if this is an element
|
|
34
|
-
* someObject.is( 'node' ); // -> true if this is a node (a text node or an element)
|
|
35
|
-
* someObject.is( 'documentFragment' ); // -> true if this is a document fragment
|
|
36
|
-
* ```
|
|
37
|
-
*
|
|
38
|
-
* Since this method is also available on a range of model objects, you can prefix the type of the object with
|
|
39
|
-
* `model:` or `view:` to check, for example, if this is the model's or view's element:
|
|
40
|
-
*
|
|
41
|
-
* ```ts
|
|
42
|
-
* viewElement.is( 'view:element' ); // -> true
|
|
43
|
-
* viewElement.is( 'model:element' ); // -> false
|
|
44
|
-
* ```
|
|
45
|
-
*
|
|
46
|
-
* By using this method it is also possible to check a name of an element:
|
|
47
|
-
*
|
|
48
|
-
* ```ts
|
|
49
|
-
* imgElement.is( 'element', 'img' ); // -> true
|
|
50
|
-
* imgElement.is( 'view:element', 'img' ); // -> same as above, but more precise
|
|
51
|
-
* ```
|
|
52
|
-
* @label NODE
|
|
53
|
-
*/
|
|
54
|
-
is(type: 'node' | 'view:node'): this is (Node | Text | Element | AttributeElement | ContainerElement | EditableElement | EmptyElement | RawElement | RootEditableElement | UIElement);
|
|
55
|
-
/**
|
|
56
|
-
* Checks whether this object is of type {@link module:engine/view/element~Element} or its subclass.
|
|
57
|
-
*
|
|
58
|
-
* ```ts
|
|
59
|
-
* element.is( 'element' ); // -> true
|
|
60
|
-
* element.is( 'node' ); // -> true
|
|
61
|
-
* element.is( 'view:element' ); // -> true
|
|
62
|
-
* element.is( 'view:node' ); // -> true
|
|
63
|
-
*
|
|
64
|
-
* element.is( 'model:element' ); // -> false
|
|
65
|
-
* element.is( 'documentSelection' ); // -> false
|
|
66
|
-
* ```
|
|
67
|
-
*
|
|
68
|
-
* Assuming that the object being checked is an element, you can also check its
|
|
69
|
-
* {@link module:engine/view/element~Element#name name}:
|
|
70
|
-
*
|
|
71
|
-
* ```ts
|
|
72
|
-
* element.is( 'element', 'img' ); // -> true if this is an <img> element
|
|
73
|
-
* text.is( 'element', 'img' ); -> false
|
|
74
|
-
* ```
|
|
75
|
-
*
|
|
76
|
-
* @label ELEMENT
|
|
77
|
-
*/
|
|
78
|
-
is(type: 'element' | 'view:element'): this is (Element | AttributeElement | ContainerElement | EditableElement | EmptyElement | RawElement | RootEditableElement | UIElement);
|
|
79
|
-
/**
|
|
80
|
-
* Checks whether this object is of type {@link module:engine/view/attributeelement~AttributeElement}.
|
|
81
|
-
*
|
|
82
|
-
* ```ts
|
|
83
|
-
* attributeElement.is( 'attributeElement' ); // -> true
|
|
84
|
-
* attributeElement.is( 'element' ); // -> true
|
|
85
|
-
* attributeElement.is( 'node' ); // -> true
|
|
86
|
-
* attributeElement.is( 'view:attributeElement' ); // -> true
|
|
87
|
-
* attributeElement.is( 'view:element' ); // -> true
|
|
88
|
-
* attributeElement.is( 'view:node' ); // -> true
|
|
89
|
-
*
|
|
90
|
-
* attributeElement.is( 'model:element' ); // -> false
|
|
91
|
-
* attributeElement.is( 'documentFragment' ); // -> false
|
|
92
|
-
* ```
|
|
93
|
-
*
|
|
94
|
-
* Assuming that the object being checked is an attribute element, you can also check its
|
|
95
|
-
* {@link module:engine/view/attributeelement~AttributeElement#name name}:
|
|
96
|
-
*
|
|
97
|
-
* ```ts
|
|
98
|
-
* attributeElement.is( 'element', 'b' ); // -> true if this is a bold element
|
|
99
|
-
* attributeElement.is( 'attributeElement', 'b' ); // -> same as above
|
|
100
|
-
* text.is( 'element', 'b' ); -> false
|
|
101
|
-
* ```
|
|
102
|
-
*
|
|
103
|
-
* @label ATTRIBUTE_ELEMENT
|
|
104
|
-
*/
|
|
105
|
-
is(type: 'attributeElement' | 'view:attributeElement'): this is AttributeElement;
|
|
106
|
-
/**
|
|
107
|
-
* Checks whether this object is of type {@link module:engine/view/containerelement~ContainerElement} or its subclass.
|
|
108
|
-
*
|
|
109
|
-
* ```ts
|
|
110
|
-
* containerElement.is( 'containerElement' ); // -> true
|
|
111
|
-
* containerElement.is( 'element' ); // -> true
|
|
112
|
-
* containerElement.is( 'node' ); // -> true
|
|
113
|
-
* containerElement.is( 'view:containerElement' ); // -> true
|
|
114
|
-
* containerElement.is( 'view:element' ); // -> true
|
|
115
|
-
* containerElement.is( 'view:node' ); // -> true
|
|
116
|
-
*
|
|
117
|
-
* containerElement.is( 'model:element' ); // -> false
|
|
118
|
-
* containerElement.is( 'documentFragment' ); // -> false
|
|
119
|
-
* ```
|
|
120
|
-
*
|
|
121
|
-
* Assuming that the object being checked is a container element, you can also check its
|
|
122
|
-
* {@link module:engine/view/containerelement~ContainerElement#name name}:
|
|
123
|
-
*
|
|
124
|
-
* ```ts
|
|
125
|
-
* containerElement.is( 'element', 'div' ); // -> true if this is a div container element
|
|
126
|
-
* containerElement.is( 'contaienrElement', 'div' ); // -> same as above
|
|
127
|
-
* text.is( 'element', 'div' ); -> false
|
|
128
|
-
* ```
|
|
129
|
-
*
|
|
130
|
-
* @label CONTAINER_ELEMENT
|
|
131
|
-
*/
|
|
132
|
-
is(type: 'containerElement' | 'view:containerElement'): this is ContainerElement | EditableElement | RootEditableElement;
|
|
133
|
-
/**
|
|
134
|
-
* Checks whether this object is of type {@link module:engine/view/editableelement~EditableElement} or its subclass.
|
|
135
|
-
*
|
|
136
|
-
* ```ts
|
|
137
|
-
* editableElement.is( 'editableElement' ); // -> true
|
|
138
|
-
* editableElement.is( 'element' ); // -> true
|
|
139
|
-
* editableElement.is( 'node' ); // -> true
|
|
140
|
-
* editableElement.is( 'view:editableElement' ); // -> true
|
|
141
|
-
* editableElement.is( 'view:element' ); // -> true
|
|
142
|
-
* editableElement.is( 'view:node' ); // -> true
|
|
143
|
-
*
|
|
144
|
-
* editableElement.is( 'model:element' ); // -> false
|
|
145
|
-
* editableElement.is( 'documentFragment' ); // -> false
|
|
146
|
-
* ```
|
|
147
|
-
*
|
|
148
|
-
* Assuming that the object being checked is an editbale element, you can also check its
|
|
149
|
-
* {@link module:engine/view/editableelement~EditableElement#name name}:
|
|
150
|
-
*
|
|
151
|
-
* ```ts
|
|
152
|
-
* editableElement.is( 'element', 'div' ); // -> true if this is a div element
|
|
153
|
-
* editableElement.is( 'editableElement', 'div' ); // -> same as above
|
|
154
|
-
* text.is( 'element', 'div' ); -> false
|
|
155
|
-
* ```
|
|
156
|
-
*
|
|
157
|
-
* @label EDITABLE_ELEMENT
|
|
158
|
-
*/
|
|
159
|
-
is(type: 'editableElement' | 'view:editableElement'): this is EditableElement | RootEditableElement;
|
|
160
|
-
/**
|
|
161
|
-
* Checks whether this object is of type {@link module:engine/view/emptyelement~EmptyElement}.
|
|
162
|
-
*
|
|
163
|
-
* ```ts
|
|
164
|
-
* emptyElement.is( 'emptyElement' ); // -> true
|
|
165
|
-
* emptyElement.is( 'element' ); // -> true
|
|
166
|
-
* emptyElement.is( 'node' ); // -> true
|
|
167
|
-
* emptyElement.is( 'view:emptyElement' ); // -> true
|
|
168
|
-
* emptyElement.is( 'view:element' ); // -> true
|
|
169
|
-
* emptyElement.is( 'view:node' ); // -> true
|
|
170
|
-
*
|
|
171
|
-
* emptyElement.is( 'model:element' ); // -> false
|
|
172
|
-
* emptyElement.is( 'documentFragment' ); // -> false
|
|
173
|
-
* ```
|
|
174
|
-
*
|
|
175
|
-
* Assuming that the object being checked is an empty element, you can also check its
|
|
176
|
-
* {@link module:engine/view/emptyelement~EmptyElement#name name}:
|
|
177
|
-
*
|
|
178
|
-
* ```ts
|
|
179
|
-
* emptyElement.is( 'element', 'img' ); // -> true if this is a img element
|
|
180
|
-
* emptyElement.is( 'emptyElement', 'img' ); // -> same as above
|
|
181
|
-
* text.is( 'element', 'img' ); -> false
|
|
182
|
-
* ```
|
|
183
|
-
*
|
|
184
|
-
* @label EMPTY_ELEMENT
|
|
185
|
-
*/
|
|
186
|
-
is(type: 'emptyElement' | 'view:emptyElement'): this is EmptyElement;
|
|
187
|
-
/**
|
|
188
|
-
* Checks whether this object is of type {@link module:engine/view/rawelement~RawElement}.
|
|
189
|
-
*
|
|
190
|
-
* ```ts
|
|
191
|
-
* rawElement.is( 'rawElement' ); // -> true
|
|
192
|
-
* rawElement.is( 'element' ); // -> true
|
|
193
|
-
* rawElement.is( 'node' ); // -> true
|
|
194
|
-
* rawElement.is( 'view:rawElement' ); // -> true
|
|
195
|
-
* rawElement.is( 'view:element' ); // -> true
|
|
196
|
-
* rawElement.is( 'view:node' ); // -> true
|
|
197
|
-
*
|
|
198
|
-
* rawElement.is( 'model:element' ); // -> false
|
|
199
|
-
* rawElement.is( 'documentFragment' ); // -> false
|
|
200
|
-
* ```
|
|
201
|
-
*
|
|
202
|
-
* Assuming that the object being checked is a raw element, you can also check its
|
|
203
|
-
* {@link module:engine/view/rawelement~RawElement#name name}:
|
|
204
|
-
*
|
|
205
|
-
* ```ts
|
|
206
|
-
* rawElement.is( 'img' ); // -> true if this is an img element
|
|
207
|
-
* rawElement.is( 'rawElement', 'img' ); // -> same as above
|
|
208
|
-
* text.is( 'img' ); -> false
|
|
209
|
-
* ```
|
|
210
|
-
*
|
|
211
|
-
* @label RAW_ELEMENT
|
|
212
|
-
*/
|
|
213
|
-
is(type: 'rawElement' | 'view:rawElement'): this is RawElement;
|
|
214
|
-
/**
|
|
215
|
-
* Checks whether this object is of type {@link module:engine/view/rooteditableelement~RootEditableElement}.
|
|
216
|
-
*
|
|
217
|
-
* ```ts
|
|
218
|
-
* rootEditableElement.is( 'rootElement' ); // -> true
|
|
219
|
-
* rootEditableElement.is( 'editableElement' ); // -> true
|
|
220
|
-
* rootEditableElement.is( 'element' ); // -> true
|
|
221
|
-
* rootEditableElement.is( 'node' ); // -> true
|
|
222
|
-
* rootEditableElement.is( 'view:editableElement' ); // -> true
|
|
223
|
-
* rootEditableElement.is( 'view:element' ); // -> true
|
|
224
|
-
* rootEditableElement.is( 'view:node' ); // -> true
|
|
225
|
-
*
|
|
226
|
-
* rootEditableElement.is( 'model:element' ); // -> false
|
|
227
|
-
* rootEditableElement.is( 'documentFragment' ); // -> false
|
|
228
|
-
* ```
|
|
229
|
-
*
|
|
230
|
-
* Assuming that the object being checked is a root editable element, you can also check its
|
|
231
|
-
* {@link module:engine/view/rooteditableelement~RootEditableElement#name name}:
|
|
232
|
-
*
|
|
233
|
-
* ```ts
|
|
234
|
-
* rootEditableElement.is( 'element', 'div' ); // -> true if this is a div root editable element
|
|
235
|
-
* rootEditableElement.is( 'rootElement', 'div' ); // -> same as above
|
|
236
|
-
* text.is( 'element', 'div' ); -> false
|
|
237
|
-
* ```
|
|
238
|
-
*
|
|
239
|
-
* @label ROOT_ELEMENT
|
|
240
|
-
*/
|
|
241
|
-
is(type: 'rootElement' | 'view:rootElement'): this is RootEditableElement;
|
|
242
|
-
/**
|
|
243
|
-
* Checks whether this object is of type {@link module:engine/view/uielement~UIElement}.
|
|
244
|
-
*
|
|
245
|
-
* ```ts
|
|
246
|
-
* uiElement.is( 'uiElement' ); // -> true
|
|
247
|
-
* uiElement.is( 'element' ); // -> true
|
|
248
|
-
* uiElement.is( 'node' ); // -> true
|
|
249
|
-
* uiElement.is( 'view:uiElement' ); // -> true
|
|
250
|
-
* uiElement.is( 'view:element' ); // -> true
|
|
251
|
-
* uiElement.is( 'view:node' ); // -> true
|
|
252
|
-
*
|
|
253
|
-
* uiElement.is( 'model:element' ); // -> false
|
|
254
|
-
* uiElement.is( 'documentFragment' ); // -> false
|
|
255
|
-
* ```
|
|
256
|
-
*
|
|
257
|
-
* Assuming that the object being checked is an ui element, you can also check its
|
|
258
|
-
* {@link module:engine/view/uielement~UIElement#name name}:
|
|
259
|
-
*
|
|
260
|
-
* ```ts
|
|
261
|
-
* uiElement.is( 'element', 'span' ); // -> true if this is a span ui element
|
|
262
|
-
* uiElement.is( 'uiElement', 'span' ); // -> same as above
|
|
263
|
-
* text.is( 'element', 'span' ); -> false
|
|
264
|
-
* ```
|
|
265
|
-
*
|
|
266
|
-
* @label UI_ELEMENT
|
|
267
|
-
*/
|
|
268
|
-
is(type: 'uiElement' | 'view:uiElement'): this is UIElement;
|
|
269
|
-
/**
|
|
270
|
-
* Checks whether this object is of type {@link module:engine/view/text~Text}.
|
|
271
|
-
*
|
|
272
|
-
* ```ts
|
|
273
|
-
* text.is( '$text' ); // -> true
|
|
274
|
-
* text.is( 'node' ); // -> true
|
|
275
|
-
* text.is( 'view:$text' ); // -> true
|
|
276
|
-
* text.is( 'view:node' ); // -> true
|
|
277
|
-
*
|
|
278
|
-
* text.is( 'model:$text' ); // -> false
|
|
279
|
-
* text.is( 'element' ); // -> false
|
|
280
|
-
* text.is( 'range' ); // -> false
|
|
281
|
-
* ```
|
|
282
|
-
*
|
|
283
|
-
* @label TEXT
|
|
284
|
-
*/
|
|
285
|
-
is(type: '$text' | 'view:$text'): this is Text;
|
|
286
|
-
/**
|
|
287
|
-
* hecks whether this object is of type {@link module:engine/view/documentfragment~DocumentFragment}.
|
|
288
|
-
*
|
|
289
|
-
* ```ts
|
|
290
|
-
* docFrag.is( 'documentFragment' ); // -> true
|
|
291
|
-
* docFrag.is( 'view:documentFragment' ); // -> true
|
|
292
|
-
*
|
|
293
|
-
* docFrag.is( 'model:documentFragment' ); // -> false
|
|
294
|
-
* docFrag.is( 'element' ); // -> false
|
|
295
|
-
* docFrag.is( 'node' ); // -> false
|
|
296
|
-
* ```
|
|
297
|
-
*
|
|
298
|
-
* @label DOCUMENT_FRAGMENT
|
|
299
|
-
*/
|
|
300
|
-
is(type: 'documentFragment' | 'view:documentFragment'): this is DocumentFragment;
|
|
301
|
-
/**
|
|
302
|
-
* Checks whether this object is of type {@link module:engine/view/textproxy~TextProxy}.
|
|
303
|
-
*
|
|
304
|
-
* ```ts
|
|
305
|
-
* textProxy.is( '$textProxy' ); // -> true
|
|
306
|
-
* textProxy.is( 'view:$textProxy' ); // -> true
|
|
307
|
-
*
|
|
308
|
-
* textProxy.is( 'model:$textProxy' ); // -> false
|
|
309
|
-
* textProxy.is( 'element' ); // -> false
|
|
310
|
-
* textProxy.is( 'range' ); // -> false
|
|
311
|
-
* ```
|
|
312
|
-
*
|
|
313
|
-
* **Note:** Until version 20.0.0 this method wasn't accepting `'$textProxy'` type. The legacy `'textProxy'` type is still
|
|
314
|
-
* accepted for backward compatibility.
|
|
315
|
-
*
|
|
316
|
-
* @label TEXT_PROXY
|
|
317
|
-
*/
|
|
318
|
-
is(type: '$textProxy' | 'view:$textProxy'): this is TextProxy;
|
|
319
|
-
/**
|
|
320
|
-
* Checks whether this object is of type {@link module:engine/view/position~Position}.
|
|
321
|
-
*
|
|
322
|
-
* ```ts
|
|
323
|
-
* position.is( 'position' ); // -> true
|
|
324
|
-
* position.is( 'view:position' ); // -> true
|
|
325
|
-
*
|
|
326
|
-
* position.is( 'model:position' ); // -> false
|
|
327
|
-
* position.is( 'element' ); // -> false
|
|
328
|
-
* position.is( 'range' ); // -> false
|
|
329
|
-
* ```
|
|
330
|
-
*
|
|
331
|
-
* @label POSITION
|
|
332
|
-
*/
|
|
333
|
-
is(type: 'position' | 'view:position'): this is Position;
|
|
334
|
-
/**
|
|
335
|
-
* Checks whether this object is of type {@link module:engine/view/range~Range}.
|
|
336
|
-
*
|
|
337
|
-
* ```ts
|
|
338
|
-
* range.is( 'range' ); // -> true
|
|
339
|
-
* range.is( 'view:range' ); // -> true
|
|
340
|
-
*
|
|
341
|
-
* range.is( 'model:range' ); // -> false
|
|
342
|
-
* range.is( 'element' ); // -> false
|
|
343
|
-
* range.is( 'selection' ); // -> false
|
|
344
|
-
* ```
|
|
345
|
-
*
|
|
346
|
-
* @label RANGE
|
|
347
|
-
*/
|
|
348
|
-
is(type: 'range' | 'view:range'): this is Range;
|
|
349
|
-
/**
|
|
350
|
-
* Checks whether this object is of type {@link module:engine/view/selection~Selection} or
|
|
351
|
-
* {@link module:engine/view/documentselection~DocumentSelection}.
|
|
352
|
-
*
|
|
353
|
-
* ```ts
|
|
354
|
-
* selection.is( 'selection' ); // -> true
|
|
355
|
-
* selection.is( 'view:selection' ); // -> true
|
|
356
|
-
*
|
|
357
|
-
* selection.is( 'model:selection' ); // -> false
|
|
358
|
-
* selection.is( 'element' ); // -> false
|
|
359
|
-
* selection.is( 'range' ); // -> false
|
|
360
|
-
* ```
|
|
361
|
-
*
|
|
362
|
-
* @label SELECTION
|
|
363
|
-
*/
|
|
364
|
-
is(type: 'selection' | 'view:selection'): this is Selection | DocumentSelection;
|
|
365
|
-
/**
|
|
366
|
-
* Checks whether this object is of type {@link module:engine/view/documentselection~DocumentSelection}.
|
|
367
|
-
*
|
|
368
|
-
* ```ts
|
|
369
|
-
* `docSelection.is( 'selection' ); // -> true
|
|
370
|
-
* docSelection.is( 'documentSelection' ); // -> true
|
|
371
|
-
* docSelection.is( 'view:selection' ); // -> true
|
|
372
|
-
* docSelection.is( 'view:documentSelection' ); // -> true
|
|
373
|
-
*
|
|
374
|
-
* docSelection.is( 'model:documentSelection' ); // -> false
|
|
375
|
-
* docSelection.is( 'element' ); // -> false
|
|
376
|
-
* docSelection.is( 'node' ); // -> false
|
|
377
|
-
* ```
|
|
378
|
-
*
|
|
379
|
-
* @label DOCUMENT_SELECTION
|
|
380
|
-
*/
|
|
381
|
-
is(type: 'documentSelection' | 'view:documentSelection'): this is DocumentSelection;
|
|
382
|
-
/**
|
|
383
|
-
* Checks whether the object is of type {@link module:engine/view/element~Element} or its subclass and has the specified `name`.
|
|
384
|
-
*
|
|
385
|
-
* @label ELEMENT_NAME
|
|
386
|
-
*/
|
|
387
|
-
is<N extends string>(type: 'element' | 'view:element', name: N): this is (Element | AttributeElement | ContainerElement | EditableElement | EmptyElement | RawElement | RootEditableElement | UIElement) & {
|
|
388
|
-
name: N;
|
|
389
|
-
};
|
|
390
|
-
/**
|
|
391
|
-
* Checks whether the object is of type {@link module:engine/view/attributeelement~AttributeElement} and has the specified `name`.
|
|
392
|
-
*
|
|
393
|
-
* @label ATTRIBUTE_ELEMENT_NAME
|
|
394
|
-
*/
|
|
395
|
-
is<N extends string>(type: 'attributeElement' | 'view:attributeElement', name: N): this is AttributeElement & {
|
|
396
|
-
name: N;
|
|
397
|
-
};
|
|
398
|
-
/**
|
|
399
|
-
* Checks whether the object is of type {@link module:engine/view/containerelement~ContainerElement}
|
|
400
|
-
* or its subclass and has the specified `name`.
|
|
401
|
-
*
|
|
402
|
-
* @label CONTAINER_ELEMENT_NAME
|
|
403
|
-
*/
|
|
404
|
-
is<N extends string>(type: 'containerElement' | 'view:containerElement', name: N): this is (ContainerElement | EditableElement | RootEditableElement) & {
|
|
405
|
-
name: N;
|
|
406
|
-
};
|
|
407
|
-
/**
|
|
408
|
-
* Checks whether the object is of type {@link module:engine/view/editableelement~EditableElement}
|
|
409
|
-
* or its subclass and has the specified `name`.
|
|
410
|
-
*
|
|
411
|
-
* @label EDITABLE_ELEMENT_NAME
|
|
412
|
-
*/
|
|
413
|
-
is<N extends string>(type: 'editableElement' | 'view:editableElement', name: N): this is (EditableElement | RootEditableElement) & {
|
|
414
|
-
name: N;
|
|
415
|
-
};
|
|
416
|
-
/**
|
|
417
|
-
* Checks whether the object is of type {@link module:engine/view/emptyelement~EmptyElement} has the specified `name`.
|
|
418
|
-
*
|
|
419
|
-
* @label EMPTY_ELEMENT_NAME
|
|
420
|
-
*/
|
|
421
|
-
is<N extends string>(type: 'emptyElement' | 'view:emptyElement', name: N): this is EmptyElement & {
|
|
422
|
-
name: N;
|
|
423
|
-
};
|
|
424
|
-
/**
|
|
425
|
-
* Checks whether the object is of type {@link module:engine/view/rawelement~RawElement} and has the specified `name`.
|
|
426
|
-
*
|
|
427
|
-
* @label RAW_ELEMENT_NAME
|
|
428
|
-
*/
|
|
429
|
-
is<N extends string>(type: 'rawElement' | 'view:rawElement', name: N): this is RawElement & {
|
|
430
|
-
name: N;
|
|
431
|
-
};
|
|
432
|
-
/**
|
|
433
|
-
* Checks whether the object is of type {@link module:engine/view/rooteditableelement~RootEditableElement} and has the specified `name`.
|
|
434
|
-
*
|
|
435
|
-
* @label ROOT_ELEMENT_NAME
|
|
436
|
-
*/
|
|
437
|
-
is<N extends string>(type: 'rootElement' | 'view:rootElement', name: N): this is RootEditableElement & {
|
|
438
|
-
name: N;
|
|
439
|
-
};
|
|
440
|
-
/**
|
|
441
|
-
* Checks whether the object is of type {@link module:engine/view/uielement~UIElement} and has the specified `name`.
|
|
442
|
-
*
|
|
443
|
-
* @label UI_ELEMENT_NAME
|
|
444
|
-
*/
|
|
445
|
-
is<N extends string>(type: 'uiElement' | 'view:uiElement', name: N): this is UIElement & {
|
|
446
|
-
name: N;
|
|
447
|
-
};
|
|
448
|
-
}
|
|
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
|
+
import type AttributeElement from './attributeelement';
|
|
6
|
+
import type ContainerElement from './containerelement';
|
|
7
|
+
import type DocumentFragment from './documentfragment';
|
|
8
|
+
import type DocumentSelection from './documentselection';
|
|
9
|
+
import type EditableElement from './editableelement';
|
|
10
|
+
import type Element from './element';
|
|
11
|
+
import type EmptyElement from './emptyelement';
|
|
12
|
+
import type Node from './node';
|
|
13
|
+
import type Position from './position';
|
|
14
|
+
import type Range from './range';
|
|
15
|
+
import type RawElement from './rawelement';
|
|
16
|
+
import type RootEditableElement from './rooteditableelement';
|
|
17
|
+
import type Selection from './selection';
|
|
18
|
+
import type Text from './text';
|
|
19
|
+
import type TextProxy from './textproxy';
|
|
20
|
+
import type UIElement from './uielement';
|
|
21
|
+
/**
|
|
22
|
+
* @module engine/view/typecheckable
|
|
23
|
+
*/
|
|
24
|
+
export default abstract class TypeCheckable {
|
|
25
|
+
/**
|
|
26
|
+
* Checks whether this object is of type {@link module:engine/view/node~Node} or its subclass.
|
|
27
|
+
*
|
|
28
|
+
* This method is useful when processing view objects that are of unknown type. For example, a function
|
|
29
|
+
* may return a {@link module:engine/view/documentfragment~DocumentFragment} or a {@link module:engine/view/node~Node}
|
|
30
|
+
* that can be either a text node or an element. This method can be used to check what kind of object is returned.
|
|
31
|
+
*
|
|
32
|
+
* ```ts
|
|
33
|
+
* someObject.is( 'element' ); // -> true if this is an element
|
|
34
|
+
* someObject.is( 'node' ); // -> true if this is a node (a text node or an element)
|
|
35
|
+
* someObject.is( 'documentFragment' ); // -> true if this is a document fragment
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* Since this method is also available on a range of model objects, you can prefix the type of the object with
|
|
39
|
+
* `model:` or `view:` to check, for example, if this is the model's or view's element:
|
|
40
|
+
*
|
|
41
|
+
* ```ts
|
|
42
|
+
* viewElement.is( 'view:element' ); // -> true
|
|
43
|
+
* viewElement.is( 'model:element' ); // -> false
|
|
44
|
+
* ```
|
|
45
|
+
*
|
|
46
|
+
* By using this method it is also possible to check a name of an element:
|
|
47
|
+
*
|
|
48
|
+
* ```ts
|
|
49
|
+
* imgElement.is( 'element', 'img' ); // -> true
|
|
50
|
+
* imgElement.is( 'view:element', 'img' ); // -> same as above, but more precise
|
|
51
|
+
* ```
|
|
52
|
+
* @label NODE
|
|
53
|
+
*/
|
|
54
|
+
is(type: 'node' | 'view:node'): this is (Node | Text | Element | AttributeElement | ContainerElement | EditableElement | EmptyElement | RawElement | RootEditableElement | UIElement);
|
|
55
|
+
/**
|
|
56
|
+
* Checks whether this object is of type {@link module:engine/view/element~Element} or its subclass.
|
|
57
|
+
*
|
|
58
|
+
* ```ts
|
|
59
|
+
* element.is( 'element' ); // -> true
|
|
60
|
+
* element.is( 'node' ); // -> true
|
|
61
|
+
* element.is( 'view:element' ); // -> true
|
|
62
|
+
* element.is( 'view:node' ); // -> true
|
|
63
|
+
*
|
|
64
|
+
* element.is( 'model:element' ); // -> false
|
|
65
|
+
* element.is( 'documentSelection' ); // -> false
|
|
66
|
+
* ```
|
|
67
|
+
*
|
|
68
|
+
* Assuming that the object being checked is an element, you can also check its
|
|
69
|
+
* {@link module:engine/view/element~Element#name name}:
|
|
70
|
+
*
|
|
71
|
+
* ```ts
|
|
72
|
+
* element.is( 'element', 'img' ); // -> true if this is an <img> element
|
|
73
|
+
* text.is( 'element', 'img' ); -> false
|
|
74
|
+
* ```
|
|
75
|
+
*
|
|
76
|
+
* @label ELEMENT
|
|
77
|
+
*/
|
|
78
|
+
is(type: 'element' | 'view:element'): this is (Element | AttributeElement | ContainerElement | EditableElement | EmptyElement | RawElement | RootEditableElement | UIElement);
|
|
79
|
+
/**
|
|
80
|
+
* Checks whether this object is of type {@link module:engine/view/attributeelement~AttributeElement}.
|
|
81
|
+
*
|
|
82
|
+
* ```ts
|
|
83
|
+
* attributeElement.is( 'attributeElement' ); // -> true
|
|
84
|
+
* attributeElement.is( 'element' ); // -> true
|
|
85
|
+
* attributeElement.is( 'node' ); // -> true
|
|
86
|
+
* attributeElement.is( 'view:attributeElement' ); // -> true
|
|
87
|
+
* attributeElement.is( 'view:element' ); // -> true
|
|
88
|
+
* attributeElement.is( 'view:node' ); // -> true
|
|
89
|
+
*
|
|
90
|
+
* attributeElement.is( 'model:element' ); // -> false
|
|
91
|
+
* attributeElement.is( 'documentFragment' ); // -> false
|
|
92
|
+
* ```
|
|
93
|
+
*
|
|
94
|
+
* Assuming that the object being checked is an attribute element, you can also check its
|
|
95
|
+
* {@link module:engine/view/attributeelement~AttributeElement#name name}:
|
|
96
|
+
*
|
|
97
|
+
* ```ts
|
|
98
|
+
* attributeElement.is( 'element', 'b' ); // -> true if this is a bold element
|
|
99
|
+
* attributeElement.is( 'attributeElement', 'b' ); // -> same as above
|
|
100
|
+
* text.is( 'element', 'b' ); -> false
|
|
101
|
+
* ```
|
|
102
|
+
*
|
|
103
|
+
* @label ATTRIBUTE_ELEMENT
|
|
104
|
+
*/
|
|
105
|
+
is(type: 'attributeElement' | 'view:attributeElement'): this is AttributeElement;
|
|
106
|
+
/**
|
|
107
|
+
* Checks whether this object is of type {@link module:engine/view/containerelement~ContainerElement} or its subclass.
|
|
108
|
+
*
|
|
109
|
+
* ```ts
|
|
110
|
+
* containerElement.is( 'containerElement' ); // -> true
|
|
111
|
+
* containerElement.is( 'element' ); // -> true
|
|
112
|
+
* containerElement.is( 'node' ); // -> true
|
|
113
|
+
* containerElement.is( 'view:containerElement' ); // -> true
|
|
114
|
+
* containerElement.is( 'view:element' ); // -> true
|
|
115
|
+
* containerElement.is( 'view:node' ); // -> true
|
|
116
|
+
*
|
|
117
|
+
* containerElement.is( 'model:element' ); // -> false
|
|
118
|
+
* containerElement.is( 'documentFragment' ); // -> false
|
|
119
|
+
* ```
|
|
120
|
+
*
|
|
121
|
+
* Assuming that the object being checked is a container element, you can also check its
|
|
122
|
+
* {@link module:engine/view/containerelement~ContainerElement#name name}:
|
|
123
|
+
*
|
|
124
|
+
* ```ts
|
|
125
|
+
* containerElement.is( 'element', 'div' ); // -> true if this is a div container element
|
|
126
|
+
* containerElement.is( 'contaienrElement', 'div' ); // -> same as above
|
|
127
|
+
* text.is( 'element', 'div' ); -> false
|
|
128
|
+
* ```
|
|
129
|
+
*
|
|
130
|
+
* @label CONTAINER_ELEMENT
|
|
131
|
+
*/
|
|
132
|
+
is(type: 'containerElement' | 'view:containerElement'): this is ContainerElement | EditableElement | RootEditableElement;
|
|
133
|
+
/**
|
|
134
|
+
* Checks whether this object is of type {@link module:engine/view/editableelement~EditableElement} or its subclass.
|
|
135
|
+
*
|
|
136
|
+
* ```ts
|
|
137
|
+
* editableElement.is( 'editableElement' ); // -> true
|
|
138
|
+
* editableElement.is( 'element' ); // -> true
|
|
139
|
+
* editableElement.is( 'node' ); // -> true
|
|
140
|
+
* editableElement.is( 'view:editableElement' ); // -> true
|
|
141
|
+
* editableElement.is( 'view:element' ); // -> true
|
|
142
|
+
* editableElement.is( 'view:node' ); // -> true
|
|
143
|
+
*
|
|
144
|
+
* editableElement.is( 'model:element' ); // -> false
|
|
145
|
+
* editableElement.is( 'documentFragment' ); // -> false
|
|
146
|
+
* ```
|
|
147
|
+
*
|
|
148
|
+
* Assuming that the object being checked is an editbale element, you can also check its
|
|
149
|
+
* {@link module:engine/view/editableelement~EditableElement#name name}:
|
|
150
|
+
*
|
|
151
|
+
* ```ts
|
|
152
|
+
* editableElement.is( 'element', 'div' ); // -> true if this is a div element
|
|
153
|
+
* editableElement.is( 'editableElement', 'div' ); // -> same as above
|
|
154
|
+
* text.is( 'element', 'div' ); -> false
|
|
155
|
+
* ```
|
|
156
|
+
*
|
|
157
|
+
* @label EDITABLE_ELEMENT
|
|
158
|
+
*/
|
|
159
|
+
is(type: 'editableElement' | 'view:editableElement'): this is EditableElement | RootEditableElement;
|
|
160
|
+
/**
|
|
161
|
+
* Checks whether this object is of type {@link module:engine/view/emptyelement~EmptyElement}.
|
|
162
|
+
*
|
|
163
|
+
* ```ts
|
|
164
|
+
* emptyElement.is( 'emptyElement' ); // -> true
|
|
165
|
+
* emptyElement.is( 'element' ); // -> true
|
|
166
|
+
* emptyElement.is( 'node' ); // -> true
|
|
167
|
+
* emptyElement.is( 'view:emptyElement' ); // -> true
|
|
168
|
+
* emptyElement.is( 'view:element' ); // -> true
|
|
169
|
+
* emptyElement.is( 'view:node' ); // -> true
|
|
170
|
+
*
|
|
171
|
+
* emptyElement.is( 'model:element' ); // -> false
|
|
172
|
+
* emptyElement.is( 'documentFragment' ); // -> false
|
|
173
|
+
* ```
|
|
174
|
+
*
|
|
175
|
+
* Assuming that the object being checked is an empty element, you can also check its
|
|
176
|
+
* {@link module:engine/view/emptyelement~EmptyElement#name name}:
|
|
177
|
+
*
|
|
178
|
+
* ```ts
|
|
179
|
+
* emptyElement.is( 'element', 'img' ); // -> true if this is a img element
|
|
180
|
+
* emptyElement.is( 'emptyElement', 'img' ); // -> same as above
|
|
181
|
+
* text.is( 'element', 'img' ); -> false
|
|
182
|
+
* ```
|
|
183
|
+
*
|
|
184
|
+
* @label EMPTY_ELEMENT
|
|
185
|
+
*/
|
|
186
|
+
is(type: 'emptyElement' | 'view:emptyElement'): this is EmptyElement;
|
|
187
|
+
/**
|
|
188
|
+
* Checks whether this object is of type {@link module:engine/view/rawelement~RawElement}.
|
|
189
|
+
*
|
|
190
|
+
* ```ts
|
|
191
|
+
* rawElement.is( 'rawElement' ); // -> true
|
|
192
|
+
* rawElement.is( 'element' ); // -> true
|
|
193
|
+
* rawElement.is( 'node' ); // -> true
|
|
194
|
+
* rawElement.is( 'view:rawElement' ); // -> true
|
|
195
|
+
* rawElement.is( 'view:element' ); // -> true
|
|
196
|
+
* rawElement.is( 'view:node' ); // -> true
|
|
197
|
+
*
|
|
198
|
+
* rawElement.is( 'model:element' ); // -> false
|
|
199
|
+
* rawElement.is( 'documentFragment' ); // -> false
|
|
200
|
+
* ```
|
|
201
|
+
*
|
|
202
|
+
* Assuming that the object being checked is a raw element, you can also check its
|
|
203
|
+
* {@link module:engine/view/rawelement~RawElement#name name}:
|
|
204
|
+
*
|
|
205
|
+
* ```ts
|
|
206
|
+
* rawElement.is( 'img' ); // -> true if this is an img element
|
|
207
|
+
* rawElement.is( 'rawElement', 'img' ); // -> same as above
|
|
208
|
+
* text.is( 'img' ); -> false
|
|
209
|
+
* ```
|
|
210
|
+
*
|
|
211
|
+
* @label RAW_ELEMENT
|
|
212
|
+
*/
|
|
213
|
+
is(type: 'rawElement' | 'view:rawElement'): this is RawElement;
|
|
214
|
+
/**
|
|
215
|
+
* Checks whether this object is of type {@link module:engine/view/rooteditableelement~RootEditableElement}.
|
|
216
|
+
*
|
|
217
|
+
* ```ts
|
|
218
|
+
* rootEditableElement.is( 'rootElement' ); // -> true
|
|
219
|
+
* rootEditableElement.is( 'editableElement' ); // -> true
|
|
220
|
+
* rootEditableElement.is( 'element' ); // -> true
|
|
221
|
+
* rootEditableElement.is( 'node' ); // -> true
|
|
222
|
+
* rootEditableElement.is( 'view:editableElement' ); // -> true
|
|
223
|
+
* rootEditableElement.is( 'view:element' ); // -> true
|
|
224
|
+
* rootEditableElement.is( 'view:node' ); // -> true
|
|
225
|
+
*
|
|
226
|
+
* rootEditableElement.is( 'model:element' ); // -> false
|
|
227
|
+
* rootEditableElement.is( 'documentFragment' ); // -> false
|
|
228
|
+
* ```
|
|
229
|
+
*
|
|
230
|
+
* Assuming that the object being checked is a root editable element, you can also check its
|
|
231
|
+
* {@link module:engine/view/rooteditableelement~RootEditableElement#name name}:
|
|
232
|
+
*
|
|
233
|
+
* ```ts
|
|
234
|
+
* rootEditableElement.is( 'element', 'div' ); // -> true if this is a div root editable element
|
|
235
|
+
* rootEditableElement.is( 'rootElement', 'div' ); // -> same as above
|
|
236
|
+
* text.is( 'element', 'div' ); -> false
|
|
237
|
+
* ```
|
|
238
|
+
*
|
|
239
|
+
* @label ROOT_ELEMENT
|
|
240
|
+
*/
|
|
241
|
+
is(type: 'rootElement' | 'view:rootElement'): this is RootEditableElement;
|
|
242
|
+
/**
|
|
243
|
+
* Checks whether this object is of type {@link module:engine/view/uielement~UIElement}.
|
|
244
|
+
*
|
|
245
|
+
* ```ts
|
|
246
|
+
* uiElement.is( 'uiElement' ); // -> true
|
|
247
|
+
* uiElement.is( 'element' ); // -> true
|
|
248
|
+
* uiElement.is( 'node' ); // -> true
|
|
249
|
+
* uiElement.is( 'view:uiElement' ); // -> true
|
|
250
|
+
* uiElement.is( 'view:element' ); // -> true
|
|
251
|
+
* uiElement.is( 'view:node' ); // -> true
|
|
252
|
+
*
|
|
253
|
+
* uiElement.is( 'model:element' ); // -> false
|
|
254
|
+
* uiElement.is( 'documentFragment' ); // -> false
|
|
255
|
+
* ```
|
|
256
|
+
*
|
|
257
|
+
* Assuming that the object being checked is an ui element, you can also check its
|
|
258
|
+
* {@link module:engine/view/uielement~UIElement#name name}:
|
|
259
|
+
*
|
|
260
|
+
* ```ts
|
|
261
|
+
* uiElement.is( 'element', 'span' ); // -> true if this is a span ui element
|
|
262
|
+
* uiElement.is( 'uiElement', 'span' ); // -> same as above
|
|
263
|
+
* text.is( 'element', 'span' ); -> false
|
|
264
|
+
* ```
|
|
265
|
+
*
|
|
266
|
+
* @label UI_ELEMENT
|
|
267
|
+
*/
|
|
268
|
+
is(type: 'uiElement' | 'view:uiElement'): this is UIElement;
|
|
269
|
+
/**
|
|
270
|
+
* Checks whether this object is of type {@link module:engine/view/text~Text}.
|
|
271
|
+
*
|
|
272
|
+
* ```ts
|
|
273
|
+
* text.is( '$text' ); // -> true
|
|
274
|
+
* text.is( 'node' ); // -> true
|
|
275
|
+
* text.is( 'view:$text' ); // -> true
|
|
276
|
+
* text.is( 'view:node' ); // -> true
|
|
277
|
+
*
|
|
278
|
+
* text.is( 'model:$text' ); // -> false
|
|
279
|
+
* text.is( 'element' ); // -> false
|
|
280
|
+
* text.is( 'range' ); // -> false
|
|
281
|
+
* ```
|
|
282
|
+
*
|
|
283
|
+
* @label TEXT
|
|
284
|
+
*/
|
|
285
|
+
is(type: '$text' | 'view:$text'): this is Text;
|
|
286
|
+
/**
|
|
287
|
+
* hecks whether this object is of type {@link module:engine/view/documentfragment~DocumentFragment}.
|
|
288
|
+
*
|
|
289
|
+
* ```ts
|
|
290
|
+
* docFrag.is( 'documentFragment' ); // -> true
|
|
291
|
+
* docFrag.is( 'view:documentFragment' ); // -> true
|
|
292
|
+
*
|
|
293
|
+
* docFrag.is( 'model:documentFragment' ); // -> false
|
|
294
|
+
* docFrag.is( 'element' ); // -> false
|
|
295
|
+
* docFrag.is( 'node' ); // -> false
|
|
296
|
+
* ```
|
|
297
|
+
*
|
|
298
|
+
* @label DOCUMENT_FRAGMENT
|
|
299
|
+
*/
|
|
300
|
+
is(type: 'documentFragment' | 'view:documentFragment'): this is DocumentFragment;
|
|
301
|
+
/**
|
|
302
|
+
* Checks whether this object is of type {@link module:engine/view/textproxy~TextProxy}.
|
|
303
|
+
*
|
|
304
|
+
* ```ts
|
|
305
|
+
* textProxy.is( '$textProxy' ); // -> true
|
|
306
|
+
* textProxy.is( 'view:$textProxy' ); // -> true
|
|
307
|
+
*
|
|
308
|
+
* textProxy.is( 'model:$textProxy' ); // -> false
|
|
309
|
+
* textProxy.is( 'element' ); // -> false
|
|
310
|
+
* textProxy.is( 'range' ); // -> false
|
|
311
|
+
* ```
|
|
312
|
+
*
|
|
313
|
+
* **Note:** Until version 20.0.0 this method wasn't accepting `'$textProxy'` type. The legacy `'textProxy'` type is still
|
|
314
|
+
* accepted for backward compatibility.
|
|
315
|
+
*
|
|
316
|
+
* @label TEXT_PROXY
|
|
317
|
+
*/
|
|
318
|
+
is(type: '$textProxy' | 'view:$textProxy'): this is TextProxy;
|
|
319
|
+
/**
|
|
320
|
+
* Checks whether this object is of type {@link module:engine/view/position~Position}.
|
|
321
|
+
*
|
|
322
|
+
* ```ts
|
|
323
|
+
* position.is( 'position' ); // -> true
|
|
324
|
+
* position.is( 'view:position' ); // -> true
|
|
325
|
+
*
|
|
326
|
+
* position.is( 'model:position' ); // -> false
|
|
327
|
+
* position.is( 'element' ); // -> false
|
|
328
|
+
* position.is( 'range' ); // -> false
|
|
329
|
+
* ```
|
|
330
|
+
*
|
|
331
|
+
* @label POSITION
|
|
332
|
+
*/
|
|
333
|
+
is(type: 'position' | 'view:position'): this is Position;
|
|
334
|
+
/**
|
|
335
|
+
* Checks whether this object is of type {@link module:engine/view/range~Range}.
|
|
336
|
+
*
|
|
337
|
+
* ```ts
|
|
338
|
+
* range.is( 'range' ); // -> true
|
|
339
|
+
* range.is( 'view:range' ); // -> true
|
|
340
|
+
*
|
|
341
|
+
* range.is( 'model:range' ); // -> false
|
|
342
|
+
* range.is( 'element' ); // -> false
|
|
343
|
+
* range.is( 'selection' ); // -> false
|
|
344
|
+
* ```
|
|
345
|
+
*
|
|
346
|
+
* @label RANGE
|
|
347
|
+
*/
|
|
348
|
+
is(type: 'range' | 'view:range'): this is Range;
|
|
349
|
+
/**
|
|
350
|
+
* Checks whether this object is of type {@link module:engine/view/selection~Selection} or
|
|
351
|
+
* {@link module:engine/view/documentselection~DocumentSelection}.
|
|
352
|
+
*
|
|
353
|
+
* ```ts
|
|
354
|
+
* selection.is( 'selection' ); // -> true
|
|
355
|
+
* selection.is( 'view:selection' ); // -> true
|
|
356
|
+
*
|
|
357
|
+
* selection.is( 'model:selection' ); // -> false
|
|
358
|
+
* selection.is( 'element' ); // -> false
|
|
359
|
+
* selection.is( 'range' ); // -> false
|
|
360
|
+
* ```
|
|
361
|
+
*
|
|
362
|
+
* @label SELECTION
|
|
363
|
+
*/
|
|
364
|
+
is(type: 'selection' | 'view:selection'): this is Selection | DocumentSelection;
|
|
365
|
+
/**
|
|
366
|
+
* Checks whether this object is of type {@link module:engine/view/documentselection~DocumentSelection}.
|
|
367
|
+
*
|
|
368
|
+
* ```ts
|
|
369
|
+
* `docSelection.is( 'selection' ); // -> true
|
|
370
|
+
* docSelection.is( 'documentSelection' ); // -> true
|
|
371
|
+
* docSelection.is( 'view:selection' ); // -> true
|
|
372
|
+
* docSelection.is( 'view:documentSelection' ); // -> true
|
|
373
|
+
*
|
|
374
|
+
* docSelection.is( 'model:documentSelection' ); // -> false
|
|
375
|
+
* docSelection.is( 'element' ); // -> false
|
|
376
|
+
* docSelection.is( 'node' ); // -> false
|
|
377
|
+
* ```
|
|
378
|
+
*
|
|
379
|
+
* @label DOCUMENT_SELECTION
|
|
380
|
+
*/
|
|
381
|
+
is(type: 'documentSelection' | 'view:documentSelection'): this is DocumentSelection;
|
|
382
|
+
/**
|
|
383
|
+
* Checks whether the object is of type {@link module:engine/view/element~Element} or its subclass and has the specified `name`.
|
|
384
|
+
*
|
|
385
|
+
* @label ELEMENT_NAME
|
|
386
|
+
*/
|
|
387
|
+
is<N extends string>(type: 'element' | 'view:element', name: N): this is (Element | AttributeElement | ContainerElement | EditableElement | EmptyElement | RawElement | RootEditableElement | UIElement) & {
|
|
388
|
+
name: N;
|
|
389
|
+
};
|
|
390
|
+
/**
|
|
391
|
+
* Checks whether the object is of type {@link module:engine/view/attributeelement~AttributeElement} and has the specified `name`.
|
|
392
|
+
*
|
|
393
|
+
* @label ATTRIBUTE_ELEMENT_NAME
|
|
394
|
+
*/
|
|
395
|
+
is<N extends string>(type: 'attributeElement' | 'view:attributeElement', name: N): this is AttributeElement & {
|
|
396
|
+
name: N;
|
|
397
|
+
};
|
|
398
|
+
/**
|
|
399
|
+
* Checks whether the object is of type {@link module:engine/view/containerelement~ContainerElement}
|
|
400
|
+
* or its subclass and has the specified `name`.
|
|
401
|
+
*
|
|
402
|
+
* @label CONTAINER_ELEMENT_NAME
|
|
403
|
+
*/
|
|
404
|
+
is<N extends string>(type: 'containerElement' | 'view:containerElement', name: N): this is (ContainerElement | EditableElement | RootEditableElement) & {
|
|
405
|
+
name: N;
|
|
406
|
+
};
|
|
407
|
+
/**
|
|
408
|
+
* Checks whether the object is of type {@link module:engine/view/editableelement~EditableElement}
|
|
409
|
+
* or its subclass and has the specified `name`.
|
|
410
|
+
*
|
|
411
|
+
* @label EDITABLE_ELEMENT_NAME
|
|
412
|
+
*/
|
|
413
|
+
is<N extends string>(type: 'editableElement' | 'view:editableElement', name: N): this is (EditableElement | RootEditableElement) & {
|
|
414
|
+
name: N;
|
|
415
|
+
};
|
|
416
|
+
/**
|
|
417
|
+
* Checks whether the object is of type {@link module:engine/view/emptyelement~EmptyElement} has the specified `name`.
|
|
418
|
+
*
|
|
419
|
+
* @label EMPTY_ELEMENT_NAME
|
|
420
|
+
*/
|
|
421
|
+
is<N extends string>(type: 'emptyElement' | 'view:emptyElement', name: N): this is EmptyElement & {
|
|
422
|
+
name: N;
|
|
423
|
+
};
|
|
424
|
+
/**
|
|
425
|
+
* Checks whether the object is of type {@link module:engine/view/rawelement~RawElement} and has the specified `name`.
|
|
426
|
+
*
|
|
427
|
+
* @label RAW_ELEMENT_NAME
|
|
428
|
+
*/
|
|
429
|
+
is<N extends string>(type: 'rawElement' | 'view:rawElement', name: N): this is RawElement & {
|
|
430
|
+
name: N;
|
|
431
|
+
};
|
|
432
|
+
/**
|
|
433
|
+
* Checks whether the object is of type {@link module:engine/view/rooteditableelement~RootEditableElement} and has the specified `name`.
|
|
434
|
+
*
|
|
435
|
+
* @label ROOT_ELEMENT_NAME
|
|
436
|
+
*/
|
|
437
|
+
is<N extends string>(type: 'rootElement' | 'view:rootElement', name: N): this is RootEditableElement & {
|
|
438
|
+
name: N;
|
|
439
|
+
};
|
|
440
|
+
/**
|
|
441
|
+
* Checks whether the object is of type {@link module:engine/view/uielement~UIElement} and has the specified `name`.
|
|
442
|
+
*
|
|
443
|
+
* @label UI_ELEMENT_NAME
|
|
444
|
+
*/
|
|
445
|
+
is<N extends string>(type: 'uiElement' | 'view:uiElement', name: N): this is UIElement & {
|
|
446
|
+
name: N;
|
|
447
|
+
};
|
|
448
|
+
}
|