@ckeditor/ckeditor5-engine 34.2.0 → 35.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +823 -0
- package/LICENSE.md +4 -0
- package/package.json +32 -25
- package/src/controller/datacontroller.js +467 -561
- package/src/controller/editingcontroller.js +168 -204
- package/src/conversion/conversion.js +541 -565
- package/src/conversion/conversionhelpers.js +24 -28
- package/src/conversion/downcastdispatcher.js +457 -686
- package/src/conversion/downcasthelpers.js +1583 -1965
- package/src/conversion/mapper.js +518 -707
- package/src/conversion/modelconsumable.js +240 -283
- package/src/conversion/upcastdispatcher.js +372 -718
- package/src/conversion/upcasthelpers.js +707 -818
- package/src/conversion/viewconsumable.js +524 -581
- package/src/dataprocessor/basichtmlwriter.js +12 -16
- package/src/dataprocessor/dataprocessor.js +5 -0
- package/src/dataprocessor/htmldataprocessor.js +101 -117
- package/src/dataprocessor/htmlwriter.js +1 -18
- package/src/dataprocessor/xmldataprocessor.js +117 -138
- package/src/dev-utils/model.js +260 -352
- package/src/dev-utils/operationreplayer.js +106 -126
- package/src/dev-utils/utils.js +34 -51
- package/src/dev-utils/view.js +632 -753
- package/src/index.js +0 -11
- package/src/model/batch.js +111 -127
- package/src/model/differ.js +988 -1233
- package/src/model/document.js +340 -449
- package/src/model/documentfragment.js +327 -364
- package/src/model/documentselection.js +996 -1189
- package/src/model/element.js +306 -410
- package/src/model/history.js +224 -262
- package/src/model/item.js +5 -0
- package/src/model/liveposition.js +84 -145
- package/src/model/liverange.js +108 -185
- package/src/model/markercollection.js +379 -480
- package/src/model/model.js +883 -1034
- package/src/model/node.js +419 -463
- package/src/model/nodelist.js +175 -201
- package/src/model/operation/attributeoperation.js +153 -182
- package/src/model/operation/detachoperation.js +64 -83
- package/src/model/operation/insertoperation.js +135 -166
- package/src/model/operation/markeroperation.js +114 -140
- package/src/model/operation/mergeoperation.js +163 -191
- package/src/model/operation/moveoperation.js +157 -187
- package/src/model/operation/nooperation.js +28 -38
- package/src/model/operation/operation.js +106 -125
- package/src/model/operation/operationfactory.js +30 -34
- package/src/model/operation/renameoperation.js +109 -135
- package/src/model/operation/rootattributeoperation.js +155 -188
- package/src/model/operation/splitoperation.js +196 -232
- package/src/model/operation/transform.js +1833 -2204
- package/src/model/operation/utils.js +140 -204
- package/src/model/position.js +899 -1053
- package/src/model/range.js +910 -1028
- package/src/model/rootelement.js +77 -97
- package/src/model/schema.js +1189 -1835
- package/src/model/selection.js +745 -862
- package/src/model/text.js +90 -114
- package/src/model/textproxy.js +204 -240
- package/src/model/treewalker.js +316 -397
- package/src/model/typecheckable.js +16 -0
- package/src/model/utils/autoparagraphing.js +32 -44
- package/src/model/utils/deletecontent.js +334 -418
- package/src/model/utils/findoptimalinsertionrange.js +25 -36
- package/src/model/utils/getselectedcontent.js +96 -118
- package/src/model/utils/insertcontent.js +654 -773
- package/src/model/utils/insertobject.js +96 -119
- package/src/model/utils/modifyselection.js +120 -158
- package/src/model/utils/selection-post-fixer.js +153 -201
- package/src/model/writer.js +1305 -1474
- package/src/view/attributeelement.js +189 -225
- package/src/view/containerelement.js +75 -85
- package/src/view/document.js +172 -215
- package/src/view/documentfragment.js +200 -249
- package/src/view/documentselection.js +338 -367
- package/src/view/domconverter.js +1371 -1613
- package/src/view/downcastwriter.js +1747 -2076
- package/src/view/editableelement.js +81 -97
- package/src/view/element.js +739 -890
- package/src/view/elementdefinition.js +5 -0
- package/src/view/emptyelement.js +82 -92
- package/src/view/filler.js +35 -50
- package/src/view/item.js +5 -0
- package/src/view/matcher.js +260 -559
- package/src/view/node.js +274 -360
- package/src/view/observer/arrowkeysobserver.js +19 -28
- package/src/view/observer/bubblingemittermixin.js +120 -263
- package/src/view/observer/bubblingeventinfo.js +47 -55
- package/src/view/observer/clickobserver.js +7 -13
- package/src/view/observer/compositionobserver.js +14 -24
- package/src/view/observer/domeventdata.js +57 -67
- package/src/view/observer/domeventobserver.js +40 -64
- package/src/view/observer/fakeselectionobserver.js +81 -96
- package/src/view/observer/focusobserver.js +45 -61
- package/src/view/observer/inputobserver.js +7 -13
- package/src/view/observer/keyobserver.js +17 -27
- package/src/view/observer/mouseobserver.js +7 -14
- package/src/view/observer/mutationobserver.js +220 -315
- package/src/view/observer/observer.js +81 -102
- package/src/view/observer/selectionobserver.js +191 -246
- package/src/view/observer/tabobserver.js +23 -36
- package/src/view/placeholder.js +128 -173
- package/src/view/position.js +350 -401
- package/src/view/range.js +453 -513
- package/src/view/rawelement.js +85 -112
- package/src/view/renderer.js +874 -1014
- package/src/view/rooteditableelement.js +80 -90
- package/src/view/selection.js +608 -689
- package/src/view/styles/background.js +43 -44
- package/src/view/styles/border.js +220 -276
- package/src/view/styles/margin.js +8 -17
- package/src/view/styles/padding.js +8 -16
- package/src/view/styles/utils.js +127 -160
- package/src/view/stylesmap.js +728 -905
- package/src/view/text.js +102 -126
- package/src/view/textproxy.js +144 -170
- package/src/view/treewalker.js +383 -479
- package/src/view/typecheckable.js +19 -0
- package/src/view/uielement.js +166 -187
- package/src/view/upcastwriter.js +395 -449
- package/src/view/view.js +569 -664
- package/src/dataprocessor/dataprocessor.jsdoc +0 -64
- package/src/model/item.jsdoc +0 -14
- package/src/view/elementdefinition.jsdoc +0 -59
- package/src/view/item.jsdoc +0 -14
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license Copyright (c) 2003-2022, 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
|
+
export default class TypeCheckable {
|
|
6
|
+
/* istanbul ignore next */
|
|
7
|
+
is() {
|
|
8
|
+
// There are a lot of overloads above.
|
|
9
|
+
// Overriding method in derived classes remove them and only `is( type: string ): boolean` is visible which we don't want.
|
|
10
|
+
// One option would be to copy them all to all classes, but that's ugly.
|
|
11
|
+
// It's best when TypeScript compiler doesn't see those overloads, except the one in the top base class.
|
|
12
|
+
// To overload a method, but not let the compiler see it, do after class definition:
|
|
13
|
+
// `MyClass.prototype.is = function( type: string ) {...}`
|
|
14
|
+
throw new Error('is() method is abstract');
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -2,11 +2,9 @@
|
|
|
2
2
|
* @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
|
4
4
|
*/
|
|
5
|
-
|
|
6
5
|
/**
|
|
7
6
|
* @module engine/model/utils/autoparagraphing
|
|
8
7
|
*/
|
|
9
|
-
|
|
10
8
|
/**
|
|
11
9
|
* Fixes all empty roots.
|
|
12
10
|
*
|
|
@@ -14,52 +12,44 @@
|
|
|
14
12
|
* @param {module:engine/model/writer~Writer} writer The model writer.
|
|
15
13
|
* @returns {Boolean} `true` if any change has been applied, `false` otherwise.
|
|
16
14
|
*/
|
|
17
|
-
export function autoParagraphEmptyRoots(
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
return false;
|
|
15
|
+
export function autoParagraphEmptyRoots(writer) {
|
|
16
|
+
const { schema, document } = writer.model;
|
|
17
|
+
for (const rootName of document.getRootNames()) {
|
|
18
|
+
const root = document.getRoot(rootName);
|
|
19
|
+
if (root.isEmpty && !schema.checkChild(root, '$text')) {
|
|
20
|
+
// If paragraph element is allowed in the root, create paragraph element.
|
|
21
|
+
if (schema.checkChild(root, 'paragraph')) {
|
|
22
|
+
writer.insertElement('paragraph', root);
|
|
23
|
+
// Other roots will get fixed in the next post-fixer round. Those will be triggered
|
|
24
|
+
// in the same batch no matter if this method was triggered by the post-fixing or not
|
|
25
|
+
// (the above insertElement call will trigger the post-fixers).
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return false;
|
|
37
31
|
}
|
|
38
|
-
|
|
39
32
|
/**
|
|
40
33
|
* Checks if the given node wrapped with a paragraph would be accepted by the schema in the given position.
|
|
41
34
|
*
|
|
35
|
+
* @internal
|
|
42
36
|
* @protected
|
|
43
37
|
* @param {module:engine/model/position~Position} position The position at which to check.
|
|
44
38
|
* @param {module:engine/model/node~Node|String} nodeOrType The child node or child type to check.
|
|
45
39
|
* @param {module:engine/model/schema~Schema} schema A schema instance used for element validation.
|
|
46
40
|
*/
|
|
47
|
-
export function isParagraphable(
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
return true;
|
|
41
|
+
export function isParagraphable(position, nodeOrType, schema) {
|
|
42
|
+
const context = schema.createContext(position);
|
|
43
|
+
// When paragraph is allowed in this context...
|
|
44
|
+
if (!schema.checkChild(context, 'paragraph')) {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
// And a node would be allowed in this paragraph...
|
|
48
|
+
if (!schema.checkChild(context.push('paragraph'), nodeOrType)) {
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
return true;
|
|
61
52
|
}
|
|
62
|
-
|
|
63
53
|
/**
|
|
64
54
|
* Inserts a new paragraph at the given position and returns a position inside that paragraph.
|
|
65
55
|
*
|
|
@@ -68,10 +58,8 @@ export function isParagraphable( position, nodeOrType, schema ) {
|
|
|
68
58
|
* @param {module:engine/model/writer~Writer} writer The model writer.
|
|
69
59
|
* @returns {module:engine/model/position~Position} Position inside the created paragraph.
|
|
70
60
|
*/
|
|
71
|
-
export function wrapInParagraph(
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
return writer.createPositionAt( paragraph, 0 );
|
|
61
|
+
export function wrapInParagraph(position, writer) {
|
|
62
|
+
const paragraph = writer.createElement('paragraph');
|
|
63
|
+
writer.insert(paragraph, position);
|
|
64
|
+
return writer.createPositionAt(paragraph, 0);
|
|
77
65
|
}
|