@ckeditor/ckeditor5-engine 45.2.1-alpha.9 → 46.0.0-alpha.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/dist/index.js +2563 -2257
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/src/controller/datacontroller.d.ts +33 -32
- package/src/controller/datacontroller.js +29 -28
- package/src/controller/editingcontroller.d.ts +8 -8
- package/src/controller/editingcontroller.js +10 -10
- package/src/conversion/conversion.d.ts +18 -19
- package/src/conversion/conversion.js +4 -4
- package/src/conversion/conversionhelpers.d.ts +1 -1
- package/src/conversion/conversionhelpers.js +1 -1
- package/src/conversion/downcastdispatcher.d.ts +63 -69
- package/src/conversion/downcastdispatcher.js +16 -16
- package/src/conversion/downcasthelpers.d.ts +94 -83
- package/src/conversion/downcasthelpers.js +63 -53
- package/src/conversion/mapper.d.ts +27 -27
- package/src/conversion/mapper.js +15 -15
- package/src/conversion/modelconsumable.d.ts +26 -26
- package/src/conversion/modelconsumable.js +23 -23
- package/src/conversion/upcastdispatcher.d.ts +33 -32
- package/src/conversion/upcastdispatcher.js +19 -19
- package/src/conversion/upcasthelpers.d.ts +46 -38
- package/src/conversion/upcasthelpers.js +33 -24
- package/src/conversion/viewconsumable.d.ts +50 -45
- package/src/conversion/viewconsumable.js +32 -27
- package/src/dataprocessor/basichtmlwriter.d.ts +4 -2
- package/src/dataprocessor/basichtmlwriter.js +3 -1
- package/src/dataprocessor/dataprocessor.d.ts +7 -6
- package/src/dataprocessor/htmldataprocessor.d.ts +10 -10
- package/src/dataprocessor/htmldataprocessor.js +6 -6
- package/src/dataprocessor/htmlwriter.d.ts +1 -1
- package/src/dataprocessor/xmldataprocessor.d.ts +10 -10
- package/src/dataprocessor/xmldataprocessor.js +6 -6
- package/src/dev-utils/model.d.ts +25 -26
- package/src/dev-utils/model.js +35 -36
- package/src/dev-utils/operationreplayer.d.ts +5 -3
- package/src/dev-utils/operationreplayer.js +4 -2
- package/src/dev-utils/utils.d.ts +8 -0
- package/src/dev-utils/utils.js +8 -0
- package/src/dev-utils/view.d.ts +66 -63
- package/src/dev-utils/view.js +144 -134
- package/src/index.d.ts +135 -106
- package/src/index.js +120 -71
- package/src/legacyerrors.d.ts +5 -0
- package/src/legacyerrors.js +17 -0
- package/src/model/batch.d.ts +2 -15
- package/src/model/batch.js +1 -23
- package/src/model/differ.d.ts +54 -31
- package/src/model/differ.js +15 -15
- package/src/model/document.d.ts +31 -31
- package/src/model/document.js +13 -13
- package/src/model/documentfragment.d.ts +45 -45
- package/src/model/documentfragment.js +40 -40
- package/src/model/documentselection.d.ts +92 -92
- package/src/model/documentselection.js +71 -70
- package/src/model/element.d.ts +31 -31
- package/src/model/element.js +29 -29
- package/src/model/history.d.ts +3 -3
- package/src/model/history.js +2 -2
- package/src/model/item.d.ts +4 -5
- package/src/model/liveposition.d.ts +31 -31
- package/src/model/liveposition.js +18 -18
- package/src/model/liverange.d.ts +42 -38
- package/src/model/liverange.js +17 -16
- package/src/model/markercollection.d.ts +41 -40
- package/src/model/markercollection.js +22 -20
- package/src/model/model.d.ts +82 -81
- package/src/model/model.js +54 -54
- package/src/model/node.d.ts +48 -48
- package/src/model/node.js +31 -31
- package/src/model/nodelist.d.ts +17 -17
- package/src/model/nodelist.js +11 -11
- package/src/model/operation/attributeoperation.d.ts +10 -10
- package/src/model/operation/attributeoperation.js +7 -7
- package/src/model/operation/detachoperation.d.ts +11 -9
- package/src/model/operation/detachoperation.js +8 -6
- package/src/model/operation/insertoperation.d.ts +13 -13
- package/src/model/operation/insertoperation.js +15 -15
- package/src/model/operation/markeroperation.d.ts +12 -12
- package/src/model/operation/markeroperation.js +5 -5
- package/src/model/operation/mergeoperation.d.ts +16 -16
- package/src/model/operation/mergeoperation.js +18 -18
- package/src/model/operation/moveoperation.d.ts +16 -16
- package/src/model/operation/moveoperation.js +18 -15
- package/src/model/operation/nooperation.d.ts +4 -4
- package/src/model/operation/nooperation.js +2 -2
- package/src/model/operation/operation.d.ts +10 -10
- package/src/model/operation/operation.js +5 -5
- package/src/model/operation/operationfactory.d.ts +4 -4
- package/src/model/operation/operationfactory.js +12 -12
- package/src/model/operation/renameoperation.d.ts +10 -10
- package/src/model/operation/renameoperation.js +7 -7
- package/src/model/operation/rootattributeoperation.d.ts +12 -12
- package/src/model/operation/rootattributeoperation.js +8 -8
- package/src/model/operation/rootoperation.d.ts +8 -8
- package/src/model/operation/rootoperation.js +3 -3
- package/src/model/operation/splitoperation.d.ts +17 -17
- package/src/model/operation/splitoperation.js +19 -19
- package/src/model/operation/transform.d.ts +11 -8
- package/src/model/operation/transform.js +66 -49
- package/src/model/operation/utils.d.ts +24 -23
- package/src/model/operation/utils.js +20 -20
- package/src/model/position.d.ts +101 -97
- package/src/model/position.js +69 -64
- package/src/model/range.d.ts +90 -90
- package/src/model/range.js +87 -87
- package/src/model/rootelement.d.ts +11 -11
- package/src/model/rootelement.js +9 -9
- package/src/model/schema.d.ts +158 -154
- package/src/model/schema.js +93 -90
- package/src/model/selection.d.ts +73 -73
- package/src/model/selection.js +62 -62
- package/src/model/text.d.ts +11 -10
- package/src/model/text.js +11 -10
- package/src/model/textproxy.d.ts +39 -38
- package/src/model/textproxy.js +31 -30
- package/src/model/treewalker.d.ts +37 -37
- package/src/model/treewalker.js +14 -14
- package/src/model/typecheckable.d.ts +45 -45
- package/src/model/typecheckable.js +1 -1
- package/src/model/utils/autoparagraphing.d.ts +7 -7
- package/src/model/utils/deletecontent.d.ts +7 -5
- package/src/model/utils/deletecontent.js +13 -11
- package/src/model/utils/getselectedcontent.d.ts +6 -5
- package/src/model/utils/getselectedcontent.js +2 -1
- package/src/model/utils/insertcontent.d.ts +9 -8
- package/src/model/utils/insertcontent.js +41 -40
- package/src/model/utils/insertobject.d.ts +9 -9
- package/src/model/utils/insertobject.js +4 -4
- package/src/model/utils/modifyselection.d.ts +5 -4
- package/src/model/utils/modifyselection.js +12 -11
- package/src/model/utils/selection-post-fixer.d.ts +12 -8
- package/src/model/utils/selection-post-fixer.js +15 -11
- package/src/model/writer.d.ts +102 -101
- package/src/model/writer.js +99 -98
- package/src/view/attributeelement.d.ts +29 -29
- package/src/view/attributeelement.js +25 -25
- package/src/view/containerelement.d.ts +16 -15
- package/src/view/containerelement.js +15 -14
- package/src/view/datatransfer.d.ts +7 -7
- package/src/view/datatransfer.js +1 -1
- package/src/view/document.d.ts +25 -25
- package/src/view/document.js +15 -15
- package/src/view/documentfragment.d.ts +21 -21
- package/src/view/documentfragment.js +14 -14
- package/src/view/documentselection.d.ts +65 -63
- package/src/view/documentselection.js +27 -25
- package/src/view/domconverter.d.ts +94 -89
- package/src/view/domconverter.js +78 -73
- package/src/view/downcastwriter.d.ts +185 -181
- package/src/view/downcastwriter.js +222 -210
- package/src/view/editableelement.d.ts +13 -13
- package/src/view/editableelement.js +8 -8
- package/src/view/element.d.ts +75 -74
- package/src/view/element.js +58 -58
- package/src/view/elementdefinition.d.ts +3 -4
- package/src/view/emptyelement.d.ts +13 -13
- package/src/view/emptyelement.js +13 -13
- package/src/view/filler.d.ts +14 -3
- package/src/view/filler.js +12 -1
- package/src/view/item.d.ts +4 -5
- package/src/view/matcher.d.ts +22 -19
- package/src/view/matcher.js +6 -6
- package/src/view/node.d.ts +33 -33
- package/src/view/node.js +9 -9
- package/src/view/observer/arrowkeysobserver.d.ts +10 -10
- package/src/view/observer/arrowkeysobserver.js +5 -5
- package/src/view/observer/bubblingemittermixin.d.ts +5 -5
- package/src/view/observer/bubblingemittermixin.js +2 -9
- package/src/view/observer/bubblingeventinfo.d.ts +9 -9
- package/src/view/observer/bubblingeventinfo.js +1 -1
- package/src/view/observer/clickobserver.d.ts +8 -8
- package/src/view/observer/clickobserver.js +4 -4
- package/src/view/observer/compositionobserver.d.ts +19 -19
- package/src/view/observer/compositionobserver.js +6 -6
- package/src/view/observer/domeventdata.d.ts +9 -9
- package/src/view/observer/domeventdata.js +2 -2
- package/src/view/observer/domeventobserver.d.ts +3 -3
- package/src/view/observer/domeventobserver.js +5 -5
- package/src/view/observer/fakeselectionobserver.d.ts +9 -9
- package/src/view/observer/fakeselectionobserver.js +8 -8
- package/src/view/observer/focusobserver.d.ts +16 -16
- package/src/view/observer/focusobserver.js +7 -7
- package/src/view/observer/inputobserver.d.ts +18 -18
- package/src/view/observer/inputobserver.js +5 -5
- package/src/view/observer/keyobserver.d.ts +11 -11
- package/src/view/observer/keyobserver.js +3 -3
- package/src/view/observer/mouseobserver.d.ts +16 -16
- package/src/view/observer/mouseobserver.js +3 -3
- package/src/view/observer/mutationobserver.d.ts +21 -21
- package/src/view/observer/mutationobserver.js +7 -7
- package/src/view/observer/observer.d.ts +12 -12
- package/src/view/observer/observer.js +6 -6
- package/src/view/observer/selectionobserver.d.ts +33 -33
- package/src/view/observer/selectionobserver.js +14 -14
- package/src/view/observer/tabobserver.d.ts +10 -10
- package/src/view/observer/tabobserver.js +5 -5
- package/src/view/observer/touchobserver.d.ts +13 -13
- package/src/view/observer/touchobserver.js +3 -3
- package/src/view/placeholder.d.ts +21 -21
- package/src/view/placeholder.js +23 -23
- package/src/view/position.d.ts +49 -49
- package/src/view/position.js +42 -42
- package/src/view/range.d.ts +76 -74
- package/src/view/range.js +67 -65
- package/src/view/rawelement.d.ts +19 -19
- package/src/view/rawelement.js +16 -16
- package/src/view/renderer.d.ts +14 -14
- package/src/view/renderer.js +7 -7
- package/src/view/rooteditableelement.d.ts +8 -7
- package/src/view/rooteditableelement.js +7 -6
- package/src/view/selection.d.ts +66 -64
- package/src/view/selection.js +50 -48
- package/src/view/styles/background.d.ts +2 -2
- package/src/view/styles/background.js +9 -9
- package/src/view/styles/border.d.ts +2 -2
- package/src/view/styles/border.js +13 -13
- package/src/view/styles/margin.d.ts +2 -2
- package/src/view/styles/margin.js +5 -5
- package/src/view/styles/padding.d.ts +2 -2
- package/src/view/styles/padding.js +5 -5
- package/src/view/styles/utils.d.ts +24 -24
- package/src/view/styles/utils.js +25 -25
- package/src/view/stylesmap.d.ts +28 -32
- package/src/view/stylesmap.js +52 -39
- package/src/view/text.d.ts +11 -11
- package/src/view/text.js +10 -10
- package/src/view/textproxy.d.ts +33 -32
- package/src/view/textproxy.js +23 -22
- package/src/view/tokenlist.d.ts +14 -14
- package/src/view/tokenlist.js +10 -10
- package/src/view/treewalker.d.ts +42 -40
- package/src/view/treewalker.js +36 -35
- package/src/view/typecheckable.d.ts +76 -75
- package/src/view/typecheckable.js +1 -1
- package/src/view/uielement.d.ts +22 -21
- package/src/view/uielement.js +17 -16
- package/src/view/upcastwriter.d.ts +70 -70
- package/src/view/upcastwriter.js +42 -42
- package/src/view/view.d.ts +70 -69
- package/src/view/view.js +56 -55
package/src/view/domconverter.js
CHANGED
|
@@ -5,15 +5,15 @@
|
|
|
5
5
|
/**
|
|
6
6
|
* @module engine/view/domconverter
|
|
7
7
|
*/
|
|
8
|
-
import ViewText from './text.js';
|
|
9
|
-
import ViewElement from './element.js';
|
|
10
|
-
import ViewUIElement from './uielement.js';
|
|
11
|
-
import ViewPosition from './position.js';
|
|
12
|
-
import ViewRange from './range.js';
|
|
13
|
-
import ViewSelection from './selection.js';
|
|
14
|
-
import ViewDocumentFragment from './documentfragment.js';
|
|
15
|
-
import ViewTreeWalker from './treewalker.js';
|
|
16
|
-
import {
|
|
8
|
+
import { ViewText } from './text.js';
|
|
9
|
+
import { ViewElement } from './element.js';
|
|
10
|
+
import { ViewUIElement } from './uielement.js';
|
|
11
|
+
import { ViewPosition } from './position.js';
|
|
12
|
+
import { ViewRange } from './range.js';
|
|
13
|
+
import { ViewSelection } from './selection.js';
|
|
14
|
+
import { ViewDocumentFragment } from './documentfragment.js';
|
|
15
|
+
import { ViewTreeWalker } from './treewalker.js';
|
|
16
|
+
import { Matcher } from './matcher.js';
|
|
17
17
|
import { BR_FILLER, INLINE_FILLER_LENGTH, NBSP_FILLER, MARKED_NBSP_FILLER, getDataWithoutFiller, isInlineFiller, startsWithFiller } from './filler.js';
|
|
18
18
|
import { global, logWarning, indexOf, getAncestors, isText, isComment, isValidAttributeName, first, env } from '@ckeditor/ckeditor5-utils';
|
|
19
19
|
const BR_FILLER_REF = BR_FILLER(global.document); // eslint-disable-line new-cap
|
|
@@ -22,19 +22,20 @@ const MARKED_NBSP_FILLER_REF = MARKED_NBSP_FILLER(global.document); // eslint-di
|
|
|
22
22
|
const UNSAFE_ATTRIBUTE_NAME_PREFIX = 'data-ck-unsafe-attribute-';
|
|
23
23
|
const UNSAFE_ELEMENT_REPLACEMENT_ATTRIBUTE = 'data-ck-unsafe-element';
|
|
24
24
|
/**
|
|
25
|
-
* `
|
|
26
|
-
* {@link module:engine/view/domconverter~
|
|
25
|
+
* `ViewDomConverter` is a set of tools to do transformations between DOM nodes and view nodes. It also handles
|
|
26
|
+
* {@link module:engine/view/domconverter~ViewDomConverter#bindElements bindings} between these nodes.
|
|
27
27
|
*
|
|
28
28
|
* An instance of the DOM converter is available under
|
|
29
|
-
* {@link module:engine/view/view~
|
|
29
|
+
* {@link module:engine/view/view~EditingView#domConverter `editor.editing.view.domConverter`}.
|
|
30
30
|
*
|
|
31
|
-
* The DOM converter does not check which nodes should be rendered (use {@link module:engine/view/renderer~
|
|
32
|
-
* state of a tree nor keeps the synchronization between the tree view and
|
|
31
|
+
* The DOM converter does not check which nodes should be rendered (use {@link module:engine/view/renderer~ViewRenderer}), does not keep the
|
|
32
|
+
* state of a tree nor keeps the synchronization between the tree view and
|
|
33
|
+
* the DOM tree (use {@link module:engine/view/document~ViewDocument}).
|
|
33
34
|
*
|
|
34
35
|
* The DOM converter keeps DOM elements to view element bindings, so when the converter gets destroyed, the bindings are lost.
|
|
35
36
|
* Two converters will keep separate binding maps, so one tree view can be bound with two DOM trees.
|
|
36
37
|
*/
|
|
37
|
-
export
|
|
38
|
+
export class ViewDomConverter {
|
|
38
39
|
document;
|
|
39
40
|
/**
|
|
40
41
|
* Whether to leave the View-to-DOM conversion result unchanged or improve editing experience by filtering out interactive data.
|
|
@@ -74,7 +75,7 @@ export default class DomConverter {
|
|
|
74
75
|
*/
|
|
75
76
|
unsafeElements;
|
|
76
77
|
/**
|
|
77
|
-
* The DOM Document used by `
|
|
78
|
+
* The DOM Document used by `ViewDomConverter` to create DOM nodes.
|
|
78
79
|
*/
|
|
79
80
|
_domDocument;
|
|
80
81
|
/**
|
|
@@ -132,22 +133,22 @@ export default class DomConverter {
|
|
|
132
133
|
this._domDocument = this.renderingMode === 'editing' ? global.document : global.document.implementation.createHTMLDocument('');
|
|
133
134
|
}
|
|
134
135
|
/**
|
|
135
|
-
* The DOM Document used by `
|
|
136
|
+
* The DOM Document used by `ViewDomConverter` to create DOM nodes.
|
|
136
137
|
*/
|
|
137
138
|
get domDocument() {
|
|
138
139
|
return this._domDocument;
|
|
139
140
|
}
|
|
140
141
|
/**
|
|
141
142
|
* Binds a given DOM element that represents fake selection to a **position** of a
|
|
142
|
-
* {@link module:engine/view/documentselection~
|
|
143
|
+
* {@link module:engine/view/documentselection~ViewDocumentSelection document selection}.
|
|
143
144
|
* Document selection copy is stored and can be retrieved by the
|
|
144
|
-
* {@link module:engine/view/domconverter~
|
|
145
|
+
* {@link module:engine/view/domconverter~ViewDomConverter#fakeSelectionToView} method.
|
|
145
146
|
*/
|
|
146
147
|
bindFakeSelection(domElement, viewDocumentSelection) {
|
|
147
148
|
this._fakeSelectionMapping.set(domElement, new ViewSelection(viewDocumentSelection));
|
|
148
149
|
}
|
|
149
150
|
/**
|
|
150
|
-
* Returns a {@link module:engine/view/selection~
|
|
151
|
+
* Returns a {@link module:engine/view/selection~ViewSelection view selection} instance corresponding to a given
|
|
151
152
|
* DOM element that represents fake selection. Returns `undefined` if binding to the given DOM element does not exist.
|
|
152
153
|
*/
|
|
153
154
|
fakeSelectionToView(domElement) {
|
|
@@ -155,8 +156,8 @@ export default class DomConverter {
|
|
|
155
156
|
}
|
|
156
157
|
/**
|
|
157
158
|
* Binds DOM and view elements, so it will be possible to get corresponding elements using
|
|
158
|
-
* {@link module:engine/view/domconverter~
|
|
159
|
-
* {@link module:engine/view/domconverter~
|
|
159
|
+
* {@link module:engine/view/domconverter~ViewDomConverter#mapDomToView} and
|
|
160
|
+
* {@link module:engine/view/domconverter~ViewDomConverter#mapViewToDom}.
|
|
160
161
|
*
|
|
161
162
|
* @param domElement The DOM element to bind.
|
|
162
163
|
* @param viewElement The view element to bind.
|
|
@@ -183,8 +184,8 @@ export default class DomConverter {
|
|
|
183
184
|
}
|
|
184
185
|
/**
|
|
185
186
|
* Binds DOM and view document fragments, so it will be possible to get corresponding document fragments using
|
|
186
|
-
* {@link module:engine/view/domconverter~
|
|
187
|
-
* {@link module:engine/view/domconverter~
|
|
187
|
+
* {@link module:engine/view/domconverter~ViewDomConverter#mapDomToView} and
|
|
188
|
+
* {@link module:engine/view/domconverter~ViewDomConverter#mapViewToDom}.
|
|
188
189
|
*
|
|
189
190
|
* @param domFragment The DOM document fragment to bind.
|
|
190
191
|
* @param viewFragment The view document fragment to bind.
|
|
@@ -361,7 +362,8 @@ export default class DomConverter {
|
|
|
361
362
|
* @param value The value of the attribute.
|
|
362
363
|
* @param relatedViewElement The view element related to the `domElement` (if there is any).
|
|
363
364
|
* It helps decide whether the attribute set is unsafe. For instance, view elements created via the
|
|
364
|
-
* {@link module:engine/view/downcastwriter~
|
|
365
|
+
* {@link module:engine/view/downcastwriter~ViewDowncastWriter} methods can allow certain attributes
|
|
366
|
+
* that would normally be filtered out.
|
|
365
367
|
*/
|
|
366
368
|
setDomElementAttribute(domElement, key, value, relatedViewElement) {
|
|
367
369
|
const shouldRenderAttribute = this.shouldRenderAttribute(key, value, domElement.tagName.toLowerCase()) ||
|
|
@@ -409,11 +411,11 @@ export default class DomConverter {
|
|
|
409
411
|
}
|
|
410
412
|
/**
|
|
411
413
|
* Converts children of the view element to DOM using the
|
|
412
|
-
* {@link module:engine/view/domconverter~
|
|
414
|
+
* {@link module:engine/view/domconverter~ViewDomConverter#viewToDom} method.
|
|
413
415
|
* Additionally, this method adds block {@link module:engine/view/filler filler} to the list of children, if needed.
|
|
414
416
|
*
|
|
415
417
|
* @param viewElement Parent view element.
|
|
416
|
-
* @param options See {@link module:engine/view/domconverter~
|
|
418
|
+
* @param options See {@link module:engine/view/domconverter~ViewDomConverter#viewToDom} options parameter.
|
|
417
419
|
* @returns DOM nodes.
|
|
418
420
|
*/
|
|
419
421
|
*viewChildrenToDom(viewElement, options = {}) {
|
|
@@ -456,7 +458,7 @@ export default class DomConverter {
|
|
|
456
458
|
}
|
|
457
459
|
}
|
|
458
460
|
/**
|
|
459
|
-
* Converts view {@link module:engine/view/range~
|
|
461
|
+
* Converts view {@link module:engine/view/range~ViewRange} to DOM range.
|
|
460
462
|
* Inline and block {@link module:engine/view/filler fillers} are handled during the conversion.
|
|
461
463
|
*
|
|
462
464
|
* @param viewRange View range.
|
|
@@ -471,7 +473,7 @@ export default class DomConverter {
|
|
|
471
473
|
return domRange;
|
|
472
474
|
}
|
|
473
475
|
/**
|
|
474
|
-
* Converts view {@link module:engine/view/position~
|
|
476
|
+
* Converts view {@link module:engine/view/position~ViewPosition} to DOM parent and offset.
|
|
475
477
|
*
|
|
476
478
|
* Inline and block {@link module:engine/view/filler fillers} are handled during the conversion.
|
|
477
479
|
* If the converted position is directly before inline filler it is moved inside the filler.
|
|
@@ -539,7 +541,7 @@ export default class DomConverter {
|
|
|
539
541
|
* Converts DOM to view. For all text nodes, not bound elements and document fragments new items will
|
|
540
542
|
* be created. For bound elements and document fragments function will return corresponding items. For
|
|
541
543
|
* {@link module:engine/view/filler fillers} `null` will be returned.
|
|
542
|
-
* For all DOM elements rendered by {@link module:engine/view/uielement~
|
|
544
|
+
* For all DOM elements rendered by {@link module:engine/view/uielement~ViewUIElement} that UIElement will be returned.
|
|
543
545
|
*
|
|
544
546
|
* @param domNode DOM node or document fragment to transform.
|
|
545
547
|
* @param options Conversion options.
|
|
@@ -547,7 +549,7 @@ export default class DomConverter {
|
|
|
547
549
|
* @param options.withChildren If `true`, node's and document fragment's children will be converted too. True by default.
|
|
548
550
|
* @param options.keepOriginalCase If `false`, node's tag name will be converted to lower case. False by default.
|
|
549
551
|
* @param options.skipComments If `false`, comment nodes will be converted to `$comment`
|
|
550
|
-
* {@link module:engine/view/uielement~
|
|
552
|
+
* {@link module:engine/view/uielement~ViewUIElement view UI elements}. False by default.
|
|
551
553
|
* @returns Converted node or document fragment or `null` if DOM node is a {@link module:engine/view/filler filler}
|
|
552
554
|
* or the given node is an empty text node.
|
|
553
555
|
*/
|
|
@@ -575,11 +577,11 @@ export default class DomConverter {
|
|
|
575
577
|
}
|
|
576
578
|
/**
|
|
577
579
|
* Converts children of the DOM element to view nodes using
|
|
578
|
-
* the {@link module:engine/view/domconverter~
|
|
580
|
+
* the {@link module:engine/view/domconverter~ViewDomConverter#domToView} method.
|
|
579
581
|
* Additionally this method omits block {@link module:engine/view/filler filler}, if it exists in the DOM parent.
|
|
580
582
|
*
|
|
581
583
|
* @param domElement Parent DOM element.
|
|
582
|
-
* @param options See {@link module:engine/view/domconverter~
|
|
584
|
+
* @param options See {@link module:engine/view/domconverter~ViewDomConverter#domToView} options parameter.
|
|
583
585
|
* @param inlineNodes An array that will be populated with inline nodes. It's used internally for whitespace processing.
|
|
584
586
|
* @returns View nodes.
|
|
585
587
|
*/
|
|
@@ -614,7 +616,7 @@ export default class DomConverter {
|
|
|
614
616
|
this._processDomInlineNodes(domElement, inlineNodes, options);
|
|
615
617
|
}
|
|
616
618
|
/**
|
|
617
|
-
* Converts DOM selection to view {@link module:engine/view/selection~
|
|
619
|
+
* Converts DOM selection to view {@link module:engine/view/selection~ViewSelection}.
|
|
618
620
|
* Ranges which cannot be converted will be omitted.
|
|
619
621
|
*
|
|
620
622
|
* @param domSelection DOM selection.
|
|
@@ -651,7 +653,7 @@ export default class DomConverter {
|
|
|
651
653
|
return new ViewSelection(viewRanges, { backward: isBackward });
|
|
652
654
|
}
|
|
653
655
|
/**
|
|
654
|
-
* Converts DOM Range to view {@link module:engine/view/range~
|
|
656
|
+
* Converts DOM Range to view {@link module:engine/view/range~ViewRange}.
|
|
655
657
|
* If the start or end position cannot be converted `null` is returned.
|
|
656
658
|
*
|
|
657
659
|
* @param domRange DOM range.
|
|
@@ -666,12 +668,12 @@ export default class DomConverter {
|
|
|
666
668
|
return null;
|
|
667
669
|
}
|
|
668
670
|
/**
|
|
669
|
-
* Converts DOM parent and offset to view {@link module:engine/view/position~
|
|
671
|
+
* Converts DOM parent and offset to view {@link module:engine/view/position~ViewPosition}.
|
|
670
672
|
*
|
|
671
673
|
* If the position is inside a {@link module:engine/view/filler filler} which has no corresponding view node,
|
|
672
674
|
* position of the filler will be converted and returned.
|
|
673
675
|
*
|
|
674
|
-
* If the position is inside DOM element rendered by {@link module:engine/view/uielement~
|
|
676
|
+
* If the position is inside DOM element rendered by {@link module:engine/view/uielement~ViewUIElement}
|
|
675
677
|
* that position will be converted to view position before that UIElement.
|
|
676
678
|
*
|
|
677
679
|
* If structures are too different and it is not possible to find corresponding position then `null` will be returned.
|
|
@@ -730,13 +732,13 @@ export default class DomConverter {
|
|
|
730
732
|
}
|
|
731
733
|
}
|
|
732
734
|
/**
|
|
733
|
-
* Returns corresponding view {@link module:engine/view/element~
|
|
734
|
-
* {@link module:engine/view/documentfragment~
|
|
735
|
-
* document fragment. If there is no view item {@link module:engine/view/domconverter~
|
|
735
|
+
* Returns corresponding view {@link module:engine/view/element~ViewElement Element} or
|
|
736
|
+
* {@link module:engine/view/documentfragment~ViewDocumentFragment} for provided DOM element or
|
|
737
|
+
* document fragment. If there is no view item {@link module:engine/view/domconverter~ViewDomConverter#bindElements bound}
|
|
736
738
|
* to the given DOM - `undefined` is returned.
|
|
737
739
|
*
|
|
738
|
-
* For all DOM elements rendered by a {@link module:engine/view/uielement~
|
|
739
|
-
* a {@link module:engine/view/rawelement~
|
|
740
|
+
* For all DOM elements rendered by a {@link module:engine/view/uielement~ViewUIElement} or
|
|
741
|
+
* a {@link module:engine/view/rawelement~ViewRawElement}, the parent `UIElement` or `RawElement` will be returned.
|
|
740
742
|
*
|
|
741
743
|
* @param domElementOrDocumentFragment DOM element or document fragment.
|
|
742
744
|
* @returns Corresponding view element, document fragment or `undefined` if no element was bound.
|
|
@@ -746,17 +748,18 @@ export default class DomConverter {
|
|
|
746
748
|
return hostElement || this._domToViewMapping.get(domElementOrDocumentFragment);
|
|
747
749
|
}
|
|
748
750
|
/**
|
|
749
|
-
* Finds corresponding text node. Text nodes are not {@link module:engine/view/domconverter~
|
|
751
|
+
* Finds corresponding text node. Text nodes are not {@link module:engine/view/domconverter~ViewDomConverter#bindElements bound},
|
|
750
752
|
* corresponding text node is returned based on the sibling or parent.
|
|
751
753
|
*
|
|
752
|
-
* If the directly previous sibling is a {@link module:engine/view/domconverter~
|
|
754
|
+
* If the directly previous sibling is a {@link module:engine/view/domconverter~ViewDomConverter#bindElements bound} element, it is used
|
|
753
755
|
* to find the corresponding text node.
|
|
754
756
|
*
|
|
755
|
-
* If this is a first child in the parent and the parent is a
|
|
757
|
+
* If this is a first child in the parent and the parent is a
|
|
758
|
+
* {@link module:engine/view/domconverter~ViewDomConverter#bindElements bound}
|
|
756
759
|
* element, it is used to find the corresponding text node.
|
|
757
760
|
*
|
|
758
|
-
* For all text nodes rendered by a {@link module:engine/view/uielement~
|
|
759
|
-
* a {@link module:engine/view/rawelement~
|
|
761
|
+
* For all text nodes rendered by a {@link module:engine/view/uielement~ViewUIElement} or
|
|
762
|
+
* a {@link module:engine/view/rawelement~ViewRawElement}, the parent `UIElement` or `RawElement` will be returned.
|
|
760
763
|
*
|
|
761
764
|
* Otherwise `null` is returned.
|
|
762
765
|
*
|
|
@@ -813,13 +816,14 @@ export default class DomConverter {
|
|
|
813
816
|
return this._viewToDomMapping.get(documentFragmentOrElement);
|
|
814
817
|
}
|
|
815
818
|
/**
|
|
816
|
-
* Finds corresponding text node. Text nodes are not {@link module:engine/view/domconverter~
|
|
819
|
+
* Finds corresponding text node. Text nodes are not {@link module:engine/view/domconverter~ViewDomConverter#bindElements bound},
|
|
817
820
|
* corresponding text node is returned based on the sibling or parent.
|
|
818
821
|
*
|
|
819
|
-
* If the directly previous sibling is a {@link module:engine/view/domconverter~
|
|
822
|
+
* If the directly previous sibling is a {@link module:engine/view/domconverter~ViewDomConverter#bindElements bound} element, it is used
|
|
820
823
|
* to find the corresponding text node.
|
|
821
824
|
*
|
|
822
|
-
* If this is a first child in the parent and the parent is a
|
|
825
|
+
* If this is a first child in the parent and the parent is a
|
|
826
|
+
* {@link module:engine/view/domconverter~ViewDomConverter#bindElements bound}
|
|
823
827
|
* element, it is used to find the corresponding text node.
|
|
824
828
|
*
|
|
825
829
|
* Otherwise `null` is returned.
|
|
@@ -840,13 +844,13 @@ export default class DomConverter {
|
|
|
840
844
|
return null;
|
|
841
845
|
}
|
|
842
846
|
/**
|
|
843
|
-
* Focuses DOM editable that is corresponding to provided {@link module:engine/view/editableelement~
|
|
847
|
+
* Focuses DOM editable that is corresponding to provided {@link module:engine/view/editableelement~ViewEditableElement}.
|
|
844
848
|
*/
|
|
845
849
|
focus(viewEditable) {
|
|
846
850
|
const domEditable = this.mapViewToDom(viewEditable);
|
|
847
851
|
if (!domEditable || domEditable.ownerDocument.activeElement === domEditable) {
|
|
848
852
|
// @if CK_DEBUG_TYPING // if ( ( window as any ).logCKETyping ) {
|
|
849
|
-
// @if CK_DEBUG_TYPING // console.info( ..._buildLogMessage( this, '
|
|
853
|
+
// @if CK_DEBUG_TYPING // console.info( ..._buildLogMessage( this, 'ViewDomConverter',
|
|
850
854
|
// @if CK_DEBUG_TYPING // '%cDOM editable is already active or does not exist',
|
|
851
855
|
// @if CK_DEBUG_TYPING // 'font-style: italic'
|
|
852
856
|
// @if CK_DEBUG_TYPING // ) );
|
|
@@ -854,7 +858,7 @@ export default class DomConverter {
|
|
|
854
858
|
return;
|
|
855
859
|
}
|
|
856
860
|
// @if CK_DEBUG_TYPING // if ( ( window as any ).logCKETyping ) {
|
|
857
|
-
// @if CK_DEBUG_TYPING // console.info( ..._buildLogMessage( this, '
|
|
861
|
+
// @if CK_DEBUG_TYPING // console.info( ..._buildLogMessage( this, 'ViewDomConverter',
|
|
858
862
|
// @if CK_DEBUG_TYPING // 'Focus DOM editable:',
|
|
859
863
|
// @if CK_DEBUG_TYPING // { domEditable }
|
|
860
864
|
// @if CK_DEBUG_TYPING // ) );
|
|
@@ -920,7 +924,7 @@ export default class DomConverter {
|
|
|
920
924
|
* Checks if the node is an instance of the block filler for this DOM converter.
|
|
921
925
|
*
|
|
922
926
|
* ```ts
|
|
923
|
-
* const converter = new
|
|
927
|
+
* const converter = new ViewDomConverter( viewDocument, { blockFillerMode: 'br' } );
|
|
924
928
|
*
|
|
925
929
|
* converter.isBlockFiller( BR_FILLER( document ) ); // true
|
|
926
930
|
* converter.isBlockFiller( NBSP_FILLER( document ) ); // false
|
|
@@ -971,7 +975,7 @@ export default class DomConverter {
|
|
|
971
975
|
return backward;
|
|
972
976
|
}
|
|
973
977
|
/**
|
|
974
|
-
* Returns a parent {@link module:engine/view/uielement~
|
|
978
|
+
* Returns a parent {@link module:engine/view/uielement~ViewUIElement} or {@link module:engine/view/rawelement~ViewRawElement}
|
|
975
979
|
* that hosts the provided DOM node. Returns `null` if there is no such parent.
|
|
976
980
|
*/
|
|
977
981
|
getHostViewElement(domNode) {
|
|
@@ -993,8 +997,8 @@ export default class DomConverter {
|
|
|
993
997
|
* The following places are considered as incorrect for selection boundaries:
|
|
994
998
|
*
|
|
995
999
|
* * before or in the middle of an inline filler sequence,
|
|
996
|
-
* * inside a DOM element which represents {@link module:engine/view/uielement~
|
|
997
|
-
* * inside a DOM element which represents {@link module:engine/view/rawelement~
|
|
1000
|
+
* * inside a DOM element which represents {@link module:engine/view/uielement~ViewUIElement a view UI element},
|
|
1001
|
+
* * inside a DOM element which represents {@link module:engine/view/rawelement~ViewRawElement a view raw element}.
|
|
998
1002
|
*
|
|
999
1003
|
* @param domSelection The DOM selection object to be checked.
|
|
1000
1004
|
* @returns `true` if the given selection is at a correct place, `false` otherwise.
|
|
@@ -1007,11 +1011,11 @@ export default class DomConverter {
|
|
|
1007
1011
|
* Registers a {@link module:engine/view/matcher~MatcherPattern} for view elements whose content should be treated as raw data
|
|
1008
1012
|
* and not processed during the conversion from DOM nodes to view elements.
|
|
1009
1013
|
*
|
|
1010
|
-
* This is affecting how {@link module:engine/view/domconverter~
|
|
1011
|
-
* {@link module:engine/view/domconverter~
|
|
1014
|
+
* This is affecting how {@link module:engine/view/domconverter~ViewDomConverter#domToView} and
|
|
1015
|
+
* {@link module:engine/view/domconverter~ViewDomConverter#domChildrenToView} process DOM nodes.
|
|
1012
1016
|
*
|
|
1013
1017
|
* The raw data can be later accessed by a
|
|
1014
|
-
* {@link module:engine/view/element~
|
|
1018
|
+
* {@link module:engine/view/element~ViewElement#getCustomProperty custom property of a view element} called `"$rawContent"`.
|
|
1015
1019
|
*
|
|
1016
1020
|
* @param pattern Pattern matching a view element whose content should
|
|
1017
1021
|
* be treated as raw data.
|
|
@@ -1022,8 +1026,8 @@ export default class DomConverter {
|
|
|
1022
1026
|
/**
|
|
1023
1027
|
* Registers a {@link module:engine/view/matcher~MatcherPattern} for inline object view elements.
|
|
1024
1028
|
*
|
|
1025
|
-
* This is affecting how {@link module:engine/view/domconverter~
|
|
1026
|
-
* {@link module:engine/view/domconverter~
|
|
1029
|
+
* This is affecting how {@link module:engine/view/domconverter~ViewDomConverter#domToView} and
|
|
1030
|
+
* {@link module:engine/view/domconverter~ViewDomConverter#domChildrenToView} process DOM nodes.
|
|
1027
1031
|
*
|
|
1028
1032
|
* This is an extension of a simple {@link #inlineObjectElements} array of element names.
|
|
1029
1033
|
*
|
|
@@ -1290,7 +1294,7 @@ export default class DomConverter {
|
|
|
1290
1294
|
inlineNodes.length = 0;
|
|
1291
1295
|
}
|
|
1292
1296
|
/**
|
|
1293
|
-
* Takes text data from a given {@link module:engine/view/text~
|
|
1297
|
+
* Takes text data from a given {@link module:engine/view/text~ViewText#data} and processes it so
|
|
1294
1298
|
* it is correctly displayed in the DOM.
|
|
1295
1299
|
*
|
|
1296
1300
|
* Following changes are done:
|
|
@@ -1377,7 +1381,7 @@ export default class DomConverter {
|
|
|
1377
1381
|
return false;
|
|
1378
1382
|
}
|
|
1379
1383
|
/**
|
|
1380
|
-
* Helper function. For given {@link module:engine/view/text~
|
|
1384
|
+
* Helper function. For given {@link module:engine/view/text~ViewText view text node}, it finds previous or next sibling
|
|
1381
1385
|
* that is contained in the same container element. If there is no such sibling, `null` is returned.
|
|
1382
1386
|
*
|
|
1383
1387
|
* @param node Reference node.
|
|
@@ -1441,7 +1445,7 @@ export default class DomConverter {
|
|
|
1441
1445
|
* Creates view element basing on the node type.
|
|
1442
1446
|
*
|
|
1443
1447
|
* @param node DOM node to check.
|
|
1444
|
-
* @param options Conversion options. See {@link module:engine/view/domconverter~
|
|
1448
|
+
* @param options Conversion options. See {@link module:engine/view/domconverter~ViewDomConverter#domToView} options parameter.
|
|
1445
1449
|
*/
|
|
1446
1450
|
_createViewElement(node, options) {
|
|
1447
1451
|
if (isComment(node)) {
|
|
@@ -1454,7 +1458,7 @@ export default class DomConverter {
|
|
|
1454
1458
|
* Checks if view element's content should be treated as a raw data.
|
|
1455
1459
|
*
|
|
1456
1460
|
* @param viewElement View element to check.
|
|
1457
|
-
* @param options Conversion options. See {@link module:engine/view/domconverter~
|
|
1461
|
+
* @param options Conversion options. See {@link module:engine/view/domconverter~ViewDomConverter#domToView} options parameter.
|
|
1458
1462
|
*/
|
|
1459
1463
|
_isViewElementWithRawContent(viewElement, options) {
|
|
1460
1464
|
return options.withChildren !== false && viewElement.is('element') && !!this._rawContentElementMatcher.match(viewElement);
|
|
@@ -1610,29 +1614,30 @@ function isGeckoRestrictedDomSelection(domSelection) {
|
|
|
1610
1614
|
return false;
|
|
1611
1615
|
}
|
|
1612
1616
|
/**
|
|
1613
|
-
* While rendering the editor content, the {@link module:engine/view/domconverter~
|
|
1617
|
+
* While rendering the editor content, the {@link module:engine/view/domconverter~ViewDomConverter} detected a `<script>` element that may
|
|
1614
1618
|
* disrupt the editing experience. To avoid this, the `<script>` element was replaced with `<span data-ck-unsafe-element="script"></span>`.
|
|
1615
1619
|
*
|
|
1616
1620
|
* @error domconverter-unsafe-script-element-detected
|
|
1617
1621
|
*/
|
|
1618
1622
|
/**
|
|
1619
|
-
* While rendering the editor content, the
|
|
1623
|
+
* While rendering the editor content, the
|
|
1624
|
+
* {@link module:engine/view/domconverter~ViewDomConverter} detected a `<style>` element that may affect
|
|
1620
1625
|
* the editing experience. To avoid this, the `<style>` element was replaced with `<span data-ck-unsafe-element="style"></span>`.
|
|
1621
1626
|
*
|
|
1622
1627
|
* @error domconverter-unsafe-style-element-detected
|
|
1623
1628
|
*/
|
|
1624
1629
|
/**
|
|
1625
|
-
* The {@link module:engine/view/domconverter~
|
|
1630
|
+
* The {@link module:engine/view/domconverter~ViewDomConverter} detected an interactive attribute in the
|
|
1626
1631
|
* {@glink framework/architecture/editing-engine#editing-pipeline editing pipeline}. For the best
|
|
1627
1632
|
* editing experience, the attribute was renamed to `data-ck-unsafe-attribute-[original attribute name]`.
|
|
1628
1633
|
*
|
|
1629
1634
|
* If you are the author of the plugin that generated this attribute and you want it to be preserved
|
|
1630
1635
|
* in the editing pipeline, you can configure this when creating the element
|
|
1631
|
-
* using {@link module:engine/view/downcastwriter~
|
|
1636
|
+
* using {@link module:engine/view/downcastwriter~ViewDowncastWriter} during the
|
|
1632
1637
|
* {@glink framework/architecture/editing-engine#conversion model–view conversion}. Methods such as
|
|
1633
|
-
* {@link module:engine/view/downcastwriter~
|
|
1634
|
-
* {@link module:engine/view/downcastwriter~
|
|
1635
|
-
* {@link module:engine/view/downcastwriter~
|
|
1638
|
+
* {@link module:engine/view/downcastwriter~ViewDowncastWriter#createContainerElement},
|
|
1639
|
+
* {@link module:engine/view/downcastwriter~ViewDowncastWriter#createAttributeElement}, or
|
|
1640
|
+
* {@link module:engine/view/downcastwriter~ViewDowncastWriter#createEmptyElement}
|
|
1636
1641
|
* accept an option that will disable filtering of specific attributes:
|
|
1637
1642
|
*
|
|
1638
1643
|
* ```ts
|