@ckeditor/ckeditor5-engine 38.1.1 → 38.2.0-alpha.1
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 +3 -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 +547 -547
- package/src/conversion/downcastdispatcher.js +538 -538
- 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 +113 -113
- package/src/index.js +77 -77
- package/src/model/batch.d.ts +106 -106
- package/src/model/batch.js +96 -96
- package/src/model/differ.d.ts +373 -373
- package/src/model/differ.js +1090 -1090
- package/src/model/document.d.ts +266 -264
- package/src/model/document.js +356 -356
- 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 +990 -987
- 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 +920 -920
- package/src/model/model.js +843 -843
- 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 +80 -80
- package/src/model/operation/rootoperation.js +114 -114
- 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 +54 -54
- package/src/model/rootelement.js +68 -68
- package/src/model/schema.d.ts +1186 -1176
- package/src/model/schema.js +1237 -1237
- 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 +64 -64
- 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 +634 -650
- package/src/view/domconverter.js +1407 -1373
- package/src/view/downcastwriter.d.ts +996 -996
- package/src/view/downcastwriter.js +1696 -1696
- package/src/view/editableelement.d.ts +52 -52
- package/src/view/editableelement.js +61 -61
- 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 -148
- 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 +85 -85
- package/src/view/placeholder.js +230 -230
- 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 -1000
- 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 +480 -480
- package/src/view/view.js +534 -534
|
@@ -1,155 +1,155 @@
|
|
|
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/model/operation/rootattributeoperation
|
|
7
|
-
*/
|
|
8
|
-
import Operation from './operation';
|
|
9
|
-
import { CKEditorError } from '@ckeditor/ckeditor5-utils';
|
|
10
|
-
/**
|
|
11
|
-
* Operation to change root element's attribute. Using this class you can add, remove or change value of the attribute.
|
|
12
|
-
*
|
|
13
|
-
* This operation is needed, because root elements can't be changed through
|
|
14
|
-
* {@link module:engine/model/operation/attributeoperation~AttributeOperation}.
|
|
15
|
-
* It is because {@link module:engine/model/operation/attributeoperation~AttributeOperation}
|
|
16
|
-
* requires a range to change and root element can't
|
|
17
|
-
* be a part of range because every {@link module:engine/model/position~Position} has to be inside a root.
|
|
18
|
-
* {@link module:engine/model/position~Position} can't be created before a root element.
|
|
19
|
-
*/
|
|
20
|
-
export default class RootAttributeOperation extends Operation {
|
|
21
|
-
/**
|
|
22
|
-
* Creates an operation that changes, removes or adds attributes on root element.
|
|
23
|
-
*
|
|
24
|
-
* @see module:engine/model/operation/attributeoperation~AttributeOperation
|
|
25
|
-
* @param root Root element to change.
|
|
26
|
-
* @param key Key of an attribute to change or remove.
|
|
27
|
-
* @param oldValue Old value of the attribute with given key or `null`, if attribute was not set before.
|
|
28
|
-
* @param newValue New value of the attribute with given key or `null`, if operation should remove attribute.
|
|
29
|
-
* @param baseVersion Document {@link module:engine/model/document~Document#version} on which operation
|
|
30
|
-
* can be applied or `null` if the operation operates on detached (non-document) tree.
|
|
31
|
-
*/
|
|
32
|
-
constructor(root, key, oldValue, newValue, baseVersion) {
|
|
33
|
-
super(baseVersion);
|
|
34
|
-
this.root = root;
|
|
35
|
-
this.key = key;
|
|
36
|
-
this.oldValue = oldValue === undefined ? null : oldValue;
|
|
37
|
-
this.newValue = newValue === undefined ? null : newValue;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* @inheritDoc
|
|
41
|
-
*/
|
|
42
|
-
get type() {
|
|
43
|
-
if (this.oldValue === null) {
|
|
44
|
-
return 'addRootAttribute';
|
|
45
|
-
}
|
|
46
|
-
else if (this.newValue === null) {
|
|
47
|
-
return 'removeRootAttribute';
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
return 'changeRootAttribute';
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* @inheritDoc
|
|
55
|
-
*/
|
|
56
|
-
get affectedSelectable() {
|
|
57
|
-
return this.root;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Creates and returns an operation that has the same parameters as this operation.
|
|
61
|
-
*
|
|
62
|
-
* @returns Clone of this operation.
|
|
63
|
-
*/
|
|
64
|
-
clone() {
|
|
65
|
-
return new RootAttributeOperation(this.root, this.key, this.oldValue, this.newValue, this.baseVersion);
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* See {@link module:engine/model/operation/operation~Operation#getReversed `Operation#getReversed()`}.
|
|
69
|
-
*/
|
|
70
|
-
getReversed() {
|
|
71
|
-
return new RootAttributeOperation(this.root, this.key, this.newValue, this.oldValue, this.baseVersion + 1);
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* @inheritDoc
|
|
75
|
-
* @internal
|
|
76
|
-
*/
|
|
77
|
-
_validate() {
|
|
78
|
-
if (this.root != this.root.root || this.root.is('documentFragment')) {
|
|
79
|
-
/**
|
|
80
|
-
* The element to change is not a root element.
|
|
81
|
-
*
|
|
82
|
-
* @error rootattribute-operation-not-a-root
|
|
83
|
-
* @param root
|
|
84
|
-
* @param key
|
|
85
|
-
* @param value
|
|
86
|
-
*/
|
|
87
|
-
throw new CKEditorError('rootattribute-operation-not-a-root', this, { root: this.root, key: this.key });
|
|
88
|
-
}
|
|
89
|
-
if (this.oldValue !== null && this.root.getAttribute(this.key) !== this.oldValue) {
|
|
90
|
-
/**
|
|
91
|
-
* The attribute which should be removed does not exist for the given node.
|
|
92
|
-
*
|
|
93
|
-
* @error rootattribute-operation-wrong-old-value
|
|
94
|
-
* @param root
|
|
95
|
-
* @param key
|
|
96
|
-
* @param value
|
|
97
|
-
*/
|
|
98
|
-
throw new CKEditorError('rootattribute-operation-wrong-old-value', this, { root: this.root, key: this.key });
|
|
99
|
-
}
|
|
100
|
-
if (this.oldValue === null && this.newValue !== null && this.root.hasAttribute(this.key)) {
|
|
101
|
-
/**
|
|
102
|
-
* The attribute with given key already exists for the given node.
|
|
103
|
-
*
|
|
104
|
-
* @error rootattribute-operation-attribute-exists
|
|
105
|
-
* @param root
|
|
106
|
-
* @param key
|
|
107
|
-
*/
|
|
108
|
-
throw new CKEditorError('rootattribute-operation-attribute-exists', this, { root: this.root, key: this.key });
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* @inheritDoc
|
|
113
|
-
* @internal
|
|
114
|
-
*/
|
|
115
|
-
_execute() {
|
|
116
|
-
if (this.newValue !== null) {
|
|
117
|
-
this.root._setAttribute(this.key, this.newValue);
|
|
118
|
-
}
|
|
119
|
-
else {
|
|
120
|
-
this.root._removeAttribute(this.key);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* @inheritDoc
|
|
125
|
-
*/
|
|
126
|
-
toJSON() {
|
|
127
|
-
const json = super.toJSON();
|
|
128
|
-
json.root = this.root.toJSON();
|
|
129
|
-
return json;
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* @inheritDoc
|
|
133
|
-
*/
|
|
134
|
-
static get className() {
|
|
135
|
-
return 'RootAttributeOperation';
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* Creates `RootAttributeOperation` object from deserialized object, i.e. from parsed JSON string.
|
|
139
|
-
*
|
|
140
|
-
* @param json Deserialized JSON object.
|
|
141
|
-
* @param document Document on which this operation will be applied.
|
|
142
|
-
*/
|
|
143
|
-
static fromJSON(json, document) {
|
|
144
|
-
if (!document.getRoot(json.root)) {
|
|
145
|
-
/**
|
|
146
|
-
* Cannot create RootAttributeOperation for document. Root with specified name does not exist.
|
|
147
|
-
*
|
|
148
|
-
* @error rootattribute-operation-fromjson-no-root
|
|
149
|
-
* @param rootName
|
|
150
|
-
*/
|
|
151
|
-
throw new CKEditorError('rootattribute-operation-fromjson-no-root', this, { rootName: json.root });
|
|
152
|
-
}
|
|
153
|
-
return new RootAttributeOperation(document.getRoot(json.root), json.key, json.oldValue, json.newValue, json.baseVersion);
|
|
154
|
-
}
|
|
155
|
-
}
|
|
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/model/operation/rootattributeoperation
|
|
7
|
+
*/
|
|
8
|
+
import Operation from './operation.js';
|
|
9
|
+
import { CKEditorError } from '@ckeditor/ckeditor5-utils';
|
|
10
|
+
/**
|
|
11
|
+
* Operation to change root element's attribute. Using this class you can add, remove or change value of the attribute.
|
|
12
|
+
*
|
|
13
|
+
* This operation is needed, because root elements can't be changed through
|
|
14
|
+
* {@link module:engine/model/operation/attributeoperation~AttributeOperation}.
|
|
15
|
+
* It is because {@link module:engine/model/operation/attributeoperation~AttributeOperation}
|
|
16
|
+
* requires a range to change and root element can't
|
|
17
|
+
* be a part of range because every {@link module:engine/model/position~Position} has to be inside a root.
|
|
18
|
+
* {@link module:engine/model/position~Position} can't be created before a root element.
|
|
19
|
+
*/
|
|
20
|
+
export default class RootAttributeOperation extends Operation {
|
|
21
|
+
/**
|
|
22
|
+
* Creates an operation that changes, removes or adds attributes on root element.
|
|
23
|
+
*
|
|
24
|
+
* @see module:engine/model/operation/attributeoperation~AttributeOperation
|
|
25
|
+
* @param root Root element to change.
|
|
26
|
+
* @param key Key of an attribute to change or remove.
|
|
27
|
+
* @param oldValue Old value of the attribute with given key or `null`, if attribute was not set before.
|
|
28
|
+
* @param newValue New value of the attribute with given key or `null`, if operation should remove attribute.
|
|
29
|
+
* @param baseVersion Document {@link module:engine/model/document~Document#version} on which operation
|
|
30
|
+
* can be applied or `null` if the operation operates on detached (non-document) tree.
|
|
31
|
+
*/
|
|
32
|
+
constructor(root, key, oldValue, newValue, baseVersion) {
|
|
33
|
+
super(baseVersion);
|
|
34
|
+
this.root = root;
|
|
35
|
+
this.key = key;
|
|
36
|
+
this.oldValue = oldValue === undefined ? null : oldValue;
|
|
37
|
+
this.newValue = newValue === undefined ? null : newValue;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* @inheritDoc
|
|
41
|
+
*/
|
|
42
|
+
get type() {
|
|
43
|
+
if (this.oldValue === null) {
|
|
44
|
+
return 'addRootAttribute';
|
|
45
|
+
}
|
|
46
|
+
else if (this.newValue === null) {
|
|
47
|
+
return 'removeRootAttribute';
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
return 'changeRootAttribute';
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* @inheritDoc
|
|
55
|
+
*/
|
|
56
|
+
get affectedSelectable() {
|
|
57
|
+
return this.root;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Creates and returns an operation that has the same parameters as this operation.
|
|
61
|
+
*
|
|
62
|
+
* @returns Clone of this operation.
|
|
63
|
+
*/
|
|
64
|
+
clone() {
|
|
65
|
+
return new RootAttributeOperation(this.root, this.key, this.oldValue, this.newValue, this.baseVersion);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* See {@link module:engine/model/operation/operation~Operation#getReversed `Operation#getReversed()`}.
|
|
69
|
+
*/
|
|
70
|
+
getReversed() {
|
|
71
|
+
return new RootAttributeOperation(this.root, this.key, this.newValue, this.oldValue, this.baseVersion + 1);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* @inheritDoc
|
|
75
|
+
* @internal
|
|
76
|
+
*/
|
|
77
|
+
_validate() {
|
|
78
|
+
if (this.root != this.root.root || this.root.is('documentFragment')) {
|
|
79
|
+
/**
|
|
80
|
+
* The element to change is not a root element.
|
|
81
|
+
*
|
|
82
|
+
* @error rootattribute-operation-not-a-root
|
|
83
|
+
* @param root
|
|
84
|
+
* @param key
|
|
85
|
+
* @param value
|
|
86
|
+
*/
|
|
87
|
+
throw new CKEditorError('rootattribute-operation-not-a-root', this, { root: this.root, key: this.key });
|
|
88
|
+
}
|
|
89
|
+
if (this.oldValue !== null && this.root.getAttribute(this.key) !== this.oldValue) {
|
|
90
|
+
/**
|
|
91
|
+
* The attribute which should be removed does not exist for the given node.
|
|
92
|
+
*
|
|
93
|
+
* @error rootattribute-operation-wrong-old-value
|
|
94
|
+
* @param root
|
|
95
|
+
* @param key
|
|
96
|
+
* @param value
|
|
97
|
+
*/
|
|
98
|
+
throw new CKEditorError('rootattribute-operation-wrong-old-value', this, { root: this.root, key: this.key });
|
|
99
|
+
}
|
|
100
|
+
if (this.oldValue === null && this.newValue !== null && this.root.hasAttribute(this.key)) {
|
|
101
|
+
/**
|
|
102
|
+
* The attribute with given key already exists for the given node.
|
|
103
|
+
*
|
|
104
|
+
* @error rootattribute-operation-attribute-exists
|
|
105
|
+
* @param root
|
|
106
|
+
* @param key
|
|
107
|
+
*/
|
|
108
|
+
throw new CKEditorError('rootattribute-operation-attribute-exists', this, { root: this.root, key: this.key });
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* @inheritDoc
|
|
113
|
+
* @internal
|
|
114
|
+
*/
|
|
115
|
+
_execute() {
|
|
116
|
+
if (this.newValue !== null) {
|
|
117
|
+
this.root._setAttribute(this.key, this.newValue);
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
this.root._removeAttribute(this.key);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* @inheritDoc
|
|
125
|
+
*/
|
|
126
|
+
toJSON() {
|
|
127
|
+
const json = super.toJSON();
|
|
128
|
+
json.root = this.root.toJSON();
|
|
129
|
+
return json;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* @inheritDoc
|
|
133
|
+
*/
|
|
134
|
+
static get className() {
|
|
135
|
+
return 'RootAttributeOperation';
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Creates `RootAttributeOperation` object from deserialized object, i.e. from parsed JSON string.
|
|
139
|
+
*
|
|
140
|
+
* @param json Deserialized JSON object.
|
|
141
|
+
* @param document Document on which this operation will be applied.
|
|
142
|
+
*/
|
|
143
|
+
static fromJSON(json, document) {
|
|
144
|
+
if (!document.getRoot(json.root)) {
|
|
145
|
+
/**
|
|
146
|
+
* Cannot create RootAttributeOperation for document. Root with specified name does not exist.
|
|
147
|
+
*
|
|
148
|
+
* @error rootattribute-operation-fromjson-no-root
|
|
149
|
+
* @param rootName
|
|
150
|
+
*/
|
|
151
|
+
throw new CKEditorError('rootattribute-operation-fromjson-no-root', this, { rootName: json.root });
|
|
152
|
+
}
|
|
153
|
+
return new RootAttributeOperation(document.getRoot(json.root), json.key, json.oldValue, json.newValue, json.baseVersion);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
@@ -1,80 +1,80 @@
|
|
|
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/model/operation/rootoperation
|
|
7
|
-
*/
|
|
8
|
-
import Operation from './operation';
|
|
9
|
-
import type Document from '../document';
|
|
10
|
-
import type { Selectable } from '../selection';
|
|
11
|
-
/**
|
|
12
|
-
* Operation that creates (or attaches) or detaches a root element.
|
|
13
|
-
*/
|
|
14
|
-
export default class RootOperation extends Operation {
|
|
15
|
-
/**
|
|
16
|
-
* Root name to create or detach.
|
|
17
|
-
*/
|
|
18
|
-
readonly rootName: string;
|
|
19
|
-
/**
|
|
20
|
-
* Root element name.
|
|
21
|
-
*/
|
|
22
|
-
readonly elementName: string;
|
|
23
|
-
/**
|
|
24
|
-
* Specifies whether the operation adds (`true`) or detaches the root (`false`).
|
|
25
|
-
*/
|
|
26
|
-
readonly isAdd: boolean;
|
|
27
|
-
/**
|
|
28
|
-
* Document which owns the root.
|
|
29
|
-
*/
|
|
30
|
-
private readonly _document;
|
|
31
|
-
/**
|
|
32
|
-
* Creates an operation that creates or removes a root element.
|
|
33
|
-
*
|
|
34
|
-
* @param rootName Root name to create or detach.
|
|
35
|
-
* @param elementName Root element name.
|
|
36
|
-
* @param isAdd Specifies whether the operation adds (`true`) or detaches the root (`false`).
|
|
37
|
-
* @param document Document which owns the root.
|
|
38
|
-
* @param baseVersion Document {@link module:engine/model/document~Document#version} on which operation can be applied.
|
|
39
|
-
*/
|
|
40
|
-
constructor(rootName: string, elementName: string, isAdd: boolean, document: Document, baseVersion: number);
|
|
41
|
-
/**
|
|
42
|
-
* @inheritDoc
|
|
43
|
-
*/
|
|
44
|
-
get type(): 'addRoot' | 'detachRoot';
|
|
45
|
-
/**
|
|
46
|
-
* @inheritDoc
|
|
47
|
-
*/
|
|
48
|
-
get affectedSelectable(): Selectable;
|
|
49
|
-
/**
|
|
50
|
-
* @inheritDoc
|
|
51
|
-
*/
|
|
52
|
-
clone(): RootOperation;
|
|
53
|
-
/**
|
|
54
|
-
* @inheritDoc
|
|
55
|
-
*/
|
|
56
|
-
getReversed(): RootOperation;
|
|
57
|
-
/**
|
|
58
|
-
* @inheritDoc
|
|
59
|
-
*/
|
|
60
|
-
_validate(): void;
|
|
61
|
-
/**
|
|
62
|
-
* @inheritDoc
|
|
63
|
-
*/
|
|
64
|
-
_execute(): void;
|
|
65
|
-
/**
|
|
66
|
-
* @inheritDoc
|
|
67
|
-
*/
|
|
68
|
-
toJSON(): unknown;
|
|
69
|
-
/**
|
|
70
|
-
* @inheritDoc
|
|
71
|
-
*/
|
|
72
|
-
static get className(): string;
|
|
73
|
-
/**
|
|
74
|
-
* Creates `RootOperation` object from deserialized object, i.e. from parsed JSON string.
|
|
75
|
-
*
|
|
76
|
-
* @param json Deserialized JSON object.
|
|
77
|
-
* @param document Document on which this operation will be applied.
|
|
78
|
-
*/
|
|
79
|
-
static fromJSON(json: any, document: Document): RootOperation;
|
|
80
|
-
}
|
|
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/model/operation/rootoperation
|
|
7
|
+
*/
|
|
8
|
+
import Operation from './operation.js';
|
|
9
|
+
import type Document from '../document.js';
|
|
10
|
+
import type { Selectable } from '../selection.js';
|
|
11
|
+
/**
|
|
12
|
+
* Operation that creates (or attaches) or detaches a root element.
|
|
13
|
+
*/
|
|
14
|
+
export default class RootOperation extends Operation {
|
|
15
|
+
/**
|
|
16
|
+
* Root name to create or detach.
|
|
17
|
+
*/
|
|
18
|
+
readonly rootName: string;
|
|
19
|
+
/**
|
|
20
|
+
* Root element name.
|
|
21
|
+
*/
|
|
22
|
+
readonly elementName: string;
|
|
23
|
+
/**
|
|
24
|
+
* Specifies whether the operation adds (`true`) or detaches the root (`false`).
|
|
25
|
+
*/
|
|
26
|
+
readonly isAdd: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Document which owns the root.
|
|
29
|
+
*/
|
|
30
|
+
private readonly _document;
|
|
31
|
+
/**
|
|
32
|
+
* Creates an operation that creates or removes a root element.
|
|
33
|
+
*
|
|
34
|
+
* @param rootName Root name to create or detach.
|
|
35
|
+
* @param elementName Root element name.
|
|
36
|
+
* @param isAdd Specifies whether the operation adds (`true`) or detaches the root (`false`).
|
|
37
|
+
* @param document Document which owns the root.
|
|
38
|
+
* @param baseVersion Document {@link module:engine/model/document~Document#version} on which operation can be applied.
|
|
39
|
+
*/
|
|
40
|
+
constructor(rootName: string, elementName: string, isAdd: boolean, document: Document, baseVersion: number);
|
|
41
|
+
/**
|
|
42
|
+
* @inheritDoc
|
|
43
|
+
*/
|
|
44
|
+
get type(): 'addRoot' | 'detachRoot';
|
|
45
|
+
/**
|
|
46
|
+
* @inheritDoc
|
|
47
|
+
*/
|
|
48
|
+
get affectedSelectable(): Selectable;
|
|
49
|
+
/**
|
|
50
|
+
* @inheritDoc
|
|
51
|
+
*/
|
|
52
|
+
clone(): RootOperation;
|
|
53
|
+
/**
|
|
54
|
+
* @inheritDoc
|
|
55
|
+
*/
|
|
56
|
+
getReversed(): RootOperation;
|
|
57
|
+
/**
|
|
58
|
+
* @inheritDoc
|
|
59
|
+
*/
|
|
60
|
+
_validate(): void;
|
|
61
|
+
/**
|
|
62
|
+
* @inheritDoc
|
|
63
|
+
*/
|
|
64
|
+
_execute(): void;
|
|
65
|
+
/**
|
|
66
|
+
* @inheritDoc
|
|
67
|
+
*/
|
|
68
|
+
toJSON(): unknown;
|
|
69
|
+
/**
|
|
70
|
+
* @inheritDoc
|
|
71
|
+
*/
|
|
72
|
+
static get className(): string;
|
|
73
|
+
/**
|
|
74
|
+
* Creates `RootOperation` object from deserialized object, i.e. from parsed JSON string.
|
|
75
|
+
*
|
|
76
|
+
* @param json Deserialized JSON object.
|
|
77
|
+
* @param document Document on which this operation will be applied.
|
|
78
|
+
*/
|
|
79
|
+
static fromJSON(json: any, document: Document): RootOperation;
|
|
80
|
+
}
|