@ckeditor/ckeditor5-engine 36.0.1 → 37.0.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/README.md +1 -1
- package/package.json +25 -24
- package/src/controller/datacontroller.d.ts +331 -0
- package/src/controller/datacontroller.js +72 -116
- package/src/controller/editingcontroller.d.ts +98 -0
- package/src/controller/editingcontroller.js +22 -46
- package/src/conversion/conversion.d.ts +476 -0
- package/src/conversion/conversion.js +328 -347
- package/src/conversion/conversionhelpers.d.ts +26 -0
- package/src/conversion/conversionhelpers.js +1 -5
- package/src/conversion/downcastdispatcher.d.ts +547 -0
- package/src/conversion/downcastdispatcher.js +74 -152
- package/src/conversion/downcasthelpers.d.ts +1226 -0
- package/src/conversion/downcasthelpers.js +843 -762
- package/src/conversion/mapper.d.ts +503 -0
- package/src/conversion/mapper.js +84 -99
- package/src/conversion/modelconsumable.d.ts +201 -0
- package/src/conversion/modelconsumable.js +96 -99
- package/src/conversion/upcastdispatcher.d.ts +492 -0
- package/src/conversion/upcastdispatcher.js +73 -100
- package/src/conversion/upcasthelpers.d.ts +499 -0
- package/src/conversion/upcasthelpers.js +406 -373
- package/src/conversion/viewconsumable.d.ts +369 -0
- package/src/conversion/viewconsumable.js +139 -173
- package/src/dataprocessor/basichtmlwriter.d.ts +18 -0
- package/src/dataprocessor/basichtmlwriter.js +0 -9
- package/src/dataprocessor/dataprocessor.d.ts +61 -0
- package/src/dataprocessor/htmldataprocessor.d.ts +76 -0
- package/src/dataprocessor/htmldataprocessor.js +6 -28
- package/src/dataprocessor/htmlwriter.d.ts +16 -0
- package/src/dataprocessor/xmldataprocessor.d.ts +90 -0
- package/src/dataprocessor/xmldataprocessor.js +8 -40
- package/src/dev-utils/model.d.ts +124 -0
- package/src/dev-utils/model.js +41 -38
- package/src/dev-utils/operationreplayer.d.ts +51 -0
- package/src/dev-utils/operationreplayer.js +6 -14
- package/src/dev-utils/utils.d.ts +37 -0
- package/src/dev-utils/utils.js +5 -18
- package/src/dev-utils/view.d.ts +319 -0
- package/src/dev-utils/view.js +205 -226
- package/src/index.d.ts +108 -0
- package/src/index.js +4 -0
- package/src/model/batch.d.ts +106 -0
- package/src/model/differ.d.ts +329 -0
- package/src/model/document.d.ts +246 -0
- package/src/model/document.js +1 -1
- package/src/model/documentfragment.d.ts +196 -0
- package/src/model/documentfragment.js +2 -2
- package/src/model/documentselection.d.ts +420 -0
- package/src/model/element.d.ts +165 -0
- package/src/model/history.d.ts +114 -0
- package/src/model/item.d.ts +14 -0
- package/src/model/liveposition.d.ts +77 -0
- package/src/model/liverange.d.ts +102 -0
- package/src/model/markercollection.d.ts +335 -0
- package/src/model/model.d.ts +885 -0
- package/src/model/model.js +59 -81
- package/src/model/node.d.ts +256 -0
- package/src/model/nodelist.d.ts +91 -0
- package/src/model/operation/attributeoperation.d.ts +98 -0
- package/src/model/operation/detachoperation.d.ts +55 -0
- package/src/model/operation/insertoperation.d.ts +85 -0
- package/src/model/operation/markeroperation.d.ts +86 -0
- package/src/model/operation/mergeoperation.d.ts +95 -0
- package/src/model/operation/mergeoperation.js +1 -1
- package/src/model/operation/moveoperation.d.ts +91 -0
- package/src/model/operation/nooperation.d.ts +33 -0
- package/src/model/operation/operation.d.ts +89 -0
- package/src/model/operation/operationfactory.d.ts +18 -0
- package/src/model/operation/renameoperation.d.ts +78 -0
- package/src/model/operation/rootattributeoperation.d.ts +97 -0
- package/src/model/operation/rootattributeoperation.js +1 -1
- package/src/model/operation/splitoperation.d.ts +104 -0
- package/src/model/operation/splitoperation.js +1 -1
- package/src/model/operation/transform.d.ts +100 -0
- package/src/model/operation/utils.d.ts +71 -0
- package/src/model/operation/utils.js +1 -1
- package/src/model/position.d.ts +539 -0
- package/src/model/position.js +1 -1
- package/src/model/range.d.ts +458 -0
- package/src/model/range.js +1 -1
- package/src/model/rootelement.d.ts +40 -0
- package/src/model/schema.d.ts +1176 -0
- package/src/model/schema.js +19 -19
- package/src/model/selection.d.ts +472 -0
- package/src/model/text.d.ts +66 -0
- package/src/model/text.js +0 -2
- package/src/model/textproxy.d.ts +144 -0
- package/src/model/treewalker.d.ts +186 -0
- package/src/model/treewalker.js +19 -10
- package/src/model/typecheckable.d.ts +285 -0
- package/src/model/utils/autoparagraphing.d.ts +37 -0
- package/src/model/utils/deletecontent.d.ts +58 -0
- package/src/model/utils/findoptimalinsertionrange.d.ts +32 -0
- package/src/model/utils/getselectedcontent.d.ts +30 -0
- package/src/model/utils/insertcontent.d.ts +46 -0
- package/src/model/utils/insertcontent.js +2 -12
- package/src/model/utils/insertobject.d.ts +44 -0
- package/src/model/utils/insertobject.js +3 -14
- package/src/model/utils/modifyselection.d.ts +48 -0
- package/src/model/utils/selection-post-fixer.d.ts +65 -0
- package/src/model/writer.d.ts +823 -0
- package/src/model/writer.js +6 -61
- package/src/view/attributeelement.d.ts +108 -0
- package/src/view/attributeelement.js +25 -69
- package/src/view/containerelement.d.ts +49 -0
- package/src/view/containerelement.js +10 -43
- package/src/view/datatransfer.d.ts +75 -0
- package/src/view/document.d.ts +184 -0
- package/src/view/document.js +15 -84
- package/src/view/documentfragment.d.ts +149 -0
- package/src/view/documentfragment.js +39 -81
- package/src/view/documentselection.d.ts +306 -0
- package/src/view/documentselection.js +42 -143
- package/src/view/domconverter.d.ts +650 -0
- package/src/view/domconverter.js +157 -283
- package/src/view/downcastwriter.d.ts +996 -0
- package/src/view/downcastwriter.js +259 -426
- package/src/view/editableelement.d.ts +52 -0
- package/src/view/editableelement.js +9 -49
- package/src/view/element.d.ts +468 -0
- package/src/view/element.js +150 -222
- package/src/view/elementdefinition.d.ts +87 -0
- package/src/view/emptyelement.d.ts +41 -0
- package/src/view/emptyelement.js +11 -44
- package/src/view/filler.d.ts +111 -0
- package/src/view/filler.js +24 -21
- package/src/view/item.d.ts +14 -0
- package/src/view/matcher.d.ts +486 -0
- package/src/view/matcher.js +247 -218
- package/src/view/node.d.ts +163 -0
- package/src/view/node.js +26 -100
- package/src/view/observer/arrowkeysobserver.d.ts +41 -0
- package/src/view/observer/arrowkeysobserver.js +0 -13
- package/src/view/observer/bubblingemittermixin.d.ts +166 -0
- package/src/view/observer/bubblingemittermixin.js +36 -25
- package/src/view/observer/bubblingeventinfo.d.ts +47 -0
- package/src/view/observer/bubblingeventinfo.js +3 -29
- package/src/view/observer/clickobserver.d.ts +43 -0
- package/src/view/observer/clickobserver.js +9 -19
- package/src/view/observer/compositionobserver.d.ts +82 -0
- package/src/view/observer/compositionobserver.js +13 -42
- package/src/view/observer/domeventdata.d.ts +50 -0
- package/src/view/observer/domeventdata.js +5 -30
- package/src/view/observer/domeventobserver.d.ts +69 -0
- package/src/view/observer/domeventobserver.js +19 -21
- package/src/view/observer/fakeselectionobserver.d.ts +43 -0
- package/src/view/observer/fakeselectionobserver.js +0 -16
- package/src/view/observer/focusobserver.d.ts +82 -0
- package/src/view/observer/focusobserver.js +14 -40
- package/src/view/observer/inputobserver.d.ts +86 -0
- package/src/view/observer/inputobserver.js +18 -64
- package/src/view/observer/keyobserver.d.ts +66 -0
- package/src/view/observer/keyobserver.js +8 -42
- package/src/view/observer/mouseobserver.d.ts +89 -0
- package/src/view/observer/mouseobserver.js +8 -28
- package/src/view/observer/mutationobserver.d.ts +82 -0
- package/src/view/observer/mutationobserver.js +7 -37
- package/src/view/observer/observer.d.ts +84 -0
- package/src/view/observer/observer.js +12 -25
- package/src/view/observer/selectionobserver.d.ts +144 -0
- package/src/view/observer/selectionobserver.js +17 -107
- package/src/view/observer/tabobserver.d.ts +42 -0
- package/src/view/observer/tabobserver.js +0 -14
- package/src/view/placeholder.d.ts +85 -0
- package/src/view/placeholder.js +26 -43
- package/src/view/position.d.ts +189 -0
- package/src/view/position.js +36 -83
- package/src/view/range.d.ts +279 -0
- package/src/view/range.js +79 -122
- package/src/view/rawelement.d.ts +73 -0
- package/src/view/rawelement.js +34 -48
- package/src/view/renderer.d.ts +265 -0
- package/src/view/renderer.js +105 -193
- package/src/view/rooteditableelement.d.ts +41 -0
- package/src/view/rooteditableelement.js +12 -40
- package/src/view/selection.d.ts +375 -0
- package/src/view/selection.js +79 -153
- package/src/view/styles/background.d.ts +33 -0
- package/src/view/styles/background.js +14 -12
- package/src/view/styles/border.d.ts +43 -0
- package/src/view/styles/border.js +58 -48
- package/src/view/styles/margin.d.ts +29 -0
- package/src/view/styles/margin.js +13 -11
- package/src/view/styles/padding.d.ts +29 -0
- package/src/view/styles/padding.js +13 -11
- package/src/view/styles/utils.d.ts +93 -0
- package/src/view/styles/utils.js +22 -48
- package/src/view/stylesmap.d.ts +675 -0
- package/src/view/stylesmap.js +249 -244
- package/src/view/text.d.ts +74 -0
- package/src/view/text.js +16 -46
- package/src/view/textproxy.d.ts +97 -0
- package/src/view/textproxy.js +10 -59
- package/src/view/treewalker.d.ts +195 -0
- package/src/view/treewalker.js +43 -106
- package/src/view/typecheckable.d.ts +448 -0
- package/src/view/uielement.d.ts +96 -0
- package/src/view/uielement.js +29 -63
- package/src/view/upcastwriter.d.ts +417 -0
- package/src/view/upcastwriter.js +86 -157
- package/src/view/view.d.ts +417 -0
- package/src/view/view.js +47 -175
package/src/view/view.js
CHANGED
|
@@ -32,9 +32,11 @@ import { injectQuirksHandling } from './filler';
|
|
|
32
32
|
* all changes need to be done using the {@link module:engine/view/view~View#change} method, using
|
|
33
33
|
* {@link module:engine/view/downcastwriter~DowncastWriter}:
|
|
34
34
|
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
35
|
+
* ```ts
|
|
36
|
+
* view.change( writer => {
|
|
37
|
+
* writer.insert( position, writer.createText( 'foo' ) );
|
|
38
|
+
* } );
|
|
39
|
+
* ```
|
|
38
40
|
*
|
|
39
41
|
* View controller also register {@link module:engine/view/observer/observer~Observer observers} which observes changes
|
|
40
42
|
* on DOM and fire events on the {@link module:engine/view/document~Document Document}.
|
|
@@ -53,113 +55,52 @@ import { injectQuirksHandling } from './filler';
|
|
|
53
55
|
*
|
|
54
56
|
* If you do not need full a DOM - view management, and only want to transform a tree of view elements to a tree of DOM
|
|
55
57
|
* elements you do not need this controller. You can use the {@link module:engine/view/domconverter~DomConverter DomConverter} instead.
|
|
56
|
-
*
|
|
57
|
-
* @mixes module:utils/observablemixin~ObservableMixin
|
|
58
58
|
*/
|
|
59
59
|
export default class View extends ObservableMixin() {
|
|
60
60
|
/**
|
|
61
|
-
* @param
|
|
61
|
+
* @param stylesProcessor The styles processor instance.
|
|
62
62
|
*/
|
|
63
63
|
constructor(stylesProcessor) {
|
|
64
64
|
super();
|
|
65
|
-
/**
|
|
66
|
-
* Instance of the {@link module:engine/view/document~Document} associated with this view controller.
|
|
67
|
-
*
|
|
68
|
-
* @readonly
|
|
69
|
-
* @type {module:engine/view/document~Document}
|
|
70
|
-
*/
|
|
71
|
-
this.document = new Document(stylesProcessor);
|
|
72
|
-
/**
|
|
73
|
-
* Instance of the {@link module:engine/view/domconverter~DomConverter domConverter} used by
|
|
74
|
-
* {@link module:engine/view/view~View#_renderer renderer}
|
|
75
|
-
* and {@link module:engine/view/observer/observer~Observer observers}.
|
|
76
|
-
*
|
|
77
|
-
* @readonly
|
|
78
|
-
* @type {module:engine/view/domconverter~DomConverter}
|
|
79
|
-
*/
|
|
80
|
-
this.domConverter = new DomConverter(this.document);
|
|
81
65
|
/**
|
|
82
66
|
* Roots of the DOM tree. Map on the `HTMLElement`s with roots names as keys.
|
|
83
|
-
*
|
|
84
|
-
* @readonly
|
|
85
|
-
* @type {Map.<String, HTMLElement>}
|
|
86
67
|
*/
|
|
87
68
|
this.domRoots = new Map();
|
|
88
|
-
/**
|
|
89
|
-
* Used to prevent calling {@link #forceRender} and {@link #change} during rendering view to the DOM.
|
|
90
|
-
*
|
|
91
|
-
* @readonly
|
|
92
|
-
* @member {Boolean} #isRenderingInProgress
|
|
93
|
-
*/
|
|
94
|
-
this.set('isRenderingInProgress', false);
|
|
95
|
-
/**
|
|
96
|
-
* Informs whether the DOM selection is inside any of the DOM roots managed by the view.
|
|
97
|
-
*
|
|
98
|
-
* @readonly
|
|
99
|
-
* @member {Boolean} #hasDomSelection
|
|
100
|
-
*/
|
|
101
|
-
this.set('hasDomSelection', false);
|
|
102
|
-
/**
|
|
103
|
-
* Instance of the {@link module:engine/view/renderer~Renderer renderer}.
|
|
104
|
-
*
|
|
105
|
-
* @protected
|
|
106
|
-
* @type {module:engine/view/renderer~Renderer}
|
|
107
|
-
*/
|
|
108
|
-
this._renderer = new Renderer(this.domConverter, this.document.selection);
|
|
109
|
-
this._renderer.bind('isFocused', 'isSelecting', 'isComposing')
|
|
110
|
-
.to(this.document, 'isFocused', 'isSelecting', 'isComposing');
|
|
111
69
|
/**
|
|
112
70
|
* A DOM root attributes cache. It saves the initial values of DOM root attributes before the DOM element
|
|
113
71
|
* is {@link module:engine/view/view~View#attachDomRoot attached} to the view so later on, when
|
|
114
72
|
* the view is destroyed ({@link module:engine/view/view~View#detachDomRoot}), they can be easily restored.
|
|
115
73
|
* This way, the DOM element can go back to the (clean) state as if the editing view never used it.
|
|
116
|
-
*
|
|
117
|
-
* @private
|
|
118
|
-
* @member {WeakMap.<HTMLElement,Object>}
|
|
119
74
|
*/
|
|
120
75
|
this._initialDomRootAttributes = new WeakMap();
|
|
121
76
|
/**
|
|
122
77
|
* Map of registered {@link module:engine/view/observer/observer~Observer observers}.
|
|
123
|
-
*
|
|
124
|
-
* @private
|
|
125
|
-
* @type {Map.<Function, module:engine/view/observer/observer~Observer>}
|
|
126
78
|
*/
|
|
127
79
|
this._observers = new Map();
|
|
128
80
|
/**
|
|
129
81
|
* Is set to `true` when {@link #change view changes} are currently in progress.
|
|
130
|
-
*
|
|
131
|
-
* @private
|
|
132
|
-
* @type {Boolean}
|
|
133
82
|
*/
|
|
134
83
|
this._ongoingChange = false;
|
|
135
84
|
/**
|
|
136
85
|
* Used to prevent calling {@link #forceRender} and {@link #change} during rendering view to the DOM.
|
|
137
|
-
*
|
|
138
|
-
* @private
|
|
139
|
-
* @type {Boolean}
|
|
140
86
|
*/
|
|
141
87
|
this._postFixersInProgress = false;
|
|
142
88
|
/**
|
|
143
89
|
* Internal flag to temporary disable rendering. See the usage in the {@link #_disableRendering}.
|
|
144
|
-
*
|
|
145
|
-
* @private
|
|
146
|
-
* @type {Boolean}
|
|
147
90
|
*/
|
|
148
91
|
this._renderingDisabled = false;
|
|
149
92
|
/**
|
|
150
93
|
* Internal flag that disables rendering when there are no changes since the last rendering.
|
|
151
94
|
* It stores information about changed selection and changed elements from attached document roots.
|
|
152
|
-
*
|
|
153
|
-
* @private
|
|
154
|
-
* @type {Boolean}
|
|
155
95
|
*/
|
|
156
96
|
this._hasChangedSinceTheLastRendering = false;
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
97
|
+
this.document = new Document(stylesProcessor);
|
|
98
|
+
this.domConverter = new DomConverter(this.document);
|
|
99
|
+
this.set('isRenderingInProgress', false);
|
|
100
|
+
this.set('hasDomSelection', false);
|
|
101
|
+
this._renderer = new Renderer(this.domConverter, this.document.selection);
|
|
102
|
+
this._renderer.bind('isFocused', 'isSelecting', 'isComposing')
|
|
103
|
+
.to(this.document, 'isFocused', 'isSelecting', 'isComposing');
|
|
163
104
|
this._writer = new DowncastWriter(this.document);
|
|
164
105
|
// Add default observers.
|
|
165
106
|
this.addObserver(MutationObserver);
|
|
@@ -201,8 +142,8 @@ export default class View extends ObservableMixin() {
|
|
|
201
142
|
*
|
|
202
143
|
* **Note:** Use {@link #detachDomRoot `detachDomRoot()`} to revert this action.
|
|
203
144
|
*
|
|
204
|
-
* @param
|
|
205
|
-
* @param
|
|
145
|
+
* @param domRoot DOM root element.
|
|
146
|
+
* @param name Name of the root.
|
|
206
147
|
*/
|
|
207
148
|
attachDomRoot(domRoot, name = 'main') {
|
|
208
149
|
const viewRoot = this.document.getRoot(name);
|
|
@@ -261,7 +202,7 @@ export default class View extends ObservableMixin() {
|
|
|
261
202
|
* Detaches a DOM root element from the view element and restores its attributes to the state before
|
|
262
203
|
* {@link #attachDomRoot `attachDomRoot()`}.
|
|
263
204
|
*
|
|
264
|
-
* @param
|
|
205
|
+
* @param name Name of the root to detach.
|
|
265
206
|
*/
|
|
266
207
|
detachDomRoot(name) {
|
|
267
208
|
const domRoot = this.domRoots.get(name);
|
|
@@ -278,8 +219,8 @@ export default class View extends ObservableMixin() {
|
|
|
278
219
|
/**
|
|
279
220
|
* Gets DOM root element.
|
|
280
221
|
*
|
|
281
|
-
* @param
|
|
282
|
-
* @returns
|
|
222
|
+
* @param name Name of the root.
|
|
223
|
+
* @returns DOM root element instance.
|
|
283
224
|
*/
|
|
284
225
|
getDomRoot(name = 'main') {
|
|
285
226
|
return this.domRoots.get(name);
|
|
@@ -293,9 +234,9 @@ export default class View extends ObservableMixin() {
|
|
|
293
234
|
* when registered for the first time. This means that features and other components can register a single observer
|
|
294
235
|
* multiple times without caring whether it has been already added or not.
|
|
295
236
|
*
|
|
296
|
-
* @param
|
|
237
|
+
* @param ObserverConstructor The constructor of an observer to add.
|
|
297
238
|
* Should create an instance inheriting from {@link module:engine/view/observer/observer~Observer}.
|
|
298
|
-
* @returns
|
|
239
|
+
* @returns Added observer instance.
|
|
299
240
|
*/
|
|
300
241
|
addObserver(ObserverConstructor) {
|
|
301
242
|
let observer = this._observers.get(ObserverConstructor);
|
|
@@ -313,8 +254,8 @@ export default class View extends ObservableMixin() {
|
|
|
313
254
|
/**
|
|
314
255
|
* Returns observer of the given type or `undefined` if such observer has not been added yet.
|
|
315
256
|
*
|
|
316
|
-
* @param
|
|
317
|
-
* @returns
|
|
257
|
+
* @param ObserverConstructor The constructor of an observer to get.
|
|
258
|
+
* @returns Observer instance or undefined.
|
|
318
259
|
*/
|
|
319
260
|
getObserver(ObserverConstructor) {
|
|
320
261
|
return this._observers.get(ObserverConstructor);
|
|
@@ -375,18 +316,20 @@ export default class View extends ObservableMixin() {
|
|
|
375
316
|
* to nest calls one inside another and still performs a single rendering after all those changes are made.
|
|
376
317
|
* It also returns the return value of its callback.
|
|
377
318
|
*
|
|
378
|
-
*
|
|
379
|
-
*
|
|
380
|
-
*
|
|
319
|
+
* ```ts
|
|
320
|
+
* const text = view.change( writer => {
|
|
321
|
+
* const newText = writer.createText( 'foo' );
|
|
322
|
+
* writer.insert( position1, newText );
|
|
381
323
|
*
|
|
382
|
-
*
|
|
383
|
-
*
|
|
384
|
-
*
|
|
324
|
+
* view.change( writer => {
|
|
325
|
+
* writer.insert( position2, writer.createText( 'bar' ) );
|
|
326
|
+
* } );
|
|
385
327
|
*
|
|
386
|
-
*
|
|
328
|
+
* writer.remove( range );
|
|
387
329
|
*
|
|
388
|
-
*
|
|
389
|
-
*
|
|
330
|
+
* return newText;
|
|
331
|
+
* } );
|
|
332
|
+
* ```
|
|
390
333
|
*
|
|
391
334
|
* When the outermost change block is done and rendering to the DOM is over the
|
|
392
335
|
* {@link module:engine/view/view~View#event:render `View#render`} event is fired.
|
|
@@ -394,8 +337,8 @@ export default class View extends ObservableMixin() {
|
|
|
394
337
|
* This method throws a `applying-view-changes-on-rendering` error when
|
|
395
338
|
* the change block is used after rendering to the DOM has started.
|
|
396
339
|
*
|
|
397
|
-
* @param
|
|
398
|
-
* @returns
|
|
340
|
+
* @param callback Callback function which may modify the view.
|
|
341
|
+
* @returns Value returned by the callback.
|
|
399
342
|
*/
|
|
400
343
|
change(callback) {
|
|
401
344
|
if (this.isRenderingInProgress || this._postFixersInProgress) {
|
|
@@ -404,8 +347,9 @@ export default class View extends ObservableMixin() {
|
|
|
404
347
|
* cause some unexpected behaviour and inconsistency between the DOM and the view.
|
|
405
348
|
* This may be caused by:
|
|
406
349
|
*
|
|
407
|
-
* * calling {@link #change} or {@link #forceRender} during rendering
|
|
408
|
-
*
|
|
350
|
+
* * calling {@link module:engine/view/view~View#change} or {@link module:engine/view/view~View#forceRender} during rendering
|
|
351
|
+
* process,
|
|
352
|
+
* * calling {@link module:engine/view/view~View#change} or {@link module:engine/view/view~View#forceRender} inside of
|
|
409
353
|
* {@link module:engine/view/document~Document#registerPostFixer post-fixer function}.
|
|
410
354
|
*
|
|
411
355
|
* @error cannot-change-view-tree
|
|
@@ -477,9 +421,7 @@ export default class View extends ObservableMixin() {
|
|
|
477
421
|
* * {@link #createPositionBefore},
|
|
478
422
|
* * {@link #createPositionAfter},
|
|
479
423
|
*
|
|
480
|
-
* @param {module:engine/view/item~Item
|
|
481
|
-
* @param {Number|'end'|'before'|'after'} [offset] Offset or one of the flags. Used only when
|
|
482
|
-
* first parameter is a {@link module:engine/view/item~Item view item}.
|
|
424
|
+
* @param offset Offset or one of the flags. Used only when first parameter is a {@link module:engine/view/item~Item view item}.
|
|
483
425
|
*/
|
|
484
426
|
createPositionAt(itemOrPosition, offset) {
|
|
485
427
|
return Position._createAt(itemOrPosition, offset);
|
|
@@ -487,8 +429,7 @@ export default class View extends ObservableMixin() {
|
|
|
487
429
|
/**
|
|
488
430
|
* Creates a new position after given view item.
|
|
489
431
|
*
|
|
490
|
-
* @param
|
|
491
|
-
* @returns {module:engine/view/position~Position}
|
|
432
|
+
* @param item View item after which the position should be located.
|
|
492
433
|
*/
|
|
493
434
|
createPositionAfter(item) {
|
|
494
435
|
return Position._createAfter(item);
|
|
@@ -496,8 +437,7 @@ export default class View extends ObservableMixin() {
|
|
|
496
437
|
/**
|
|
497
438
|
* Creates a new position before given view item.
|
|
498
439
|
*
|
|
499
|
-
* @param
|
|
500
|
-
* @returns {module:engine/view/position~Position}
|
|
440
|
+
* @param item View item before which the position should be located.
|
|
501
441
|
*/
|
|
502
442
|
createPositionBefore(item) {
|
|
503
443
|
return Position._createBefore(item);
|
|
@@ -507,18 +447,14 @@ export default class View extends ObservableMixin() {
|
|
|
507
447
|
*
|
|
508
448
|
* **Note:** This factory method creates it's own {@link module:engine/view/position~Position} instances basing on passed values.
|
|
509
449
|
*
|
|
510
|
-
* @param
|
|
511
|
-
* @param
|
|
512
|
-
* @returns {module:engine/view/range~Range}
|
|
450
|
+
* @param start Start position.
|
|
451
|
+
* @param end End position. If not set, range will be collapsed at `start` position.
|
|
513
452
|
*/
|
|
514
|
-
createRange(
|
|
515
|
-
return new Range(
|
|
453
|
+
createRange(start, end) {
|
|
454
|
+
return new Range(start, end);
|
|
516
455
|
}
|
|
517
456
|
/**
|
|
518
457
|
* Creates a range that starts before given {@link module:engine/view/item~Item view item} and ends after it.
|
|
519
|
-
*
|
|
520
|
-
* @param {module:engine/view/item~Item} item
|
|
521
|
-
* @returns {module:engine/view/range~Range}
|
|
522
458
|
*/
|
|
523
459
|
createRangeOn(item) {
|
|
524
460
|
return Range._createOn(item);
|
|
@@ -527,72 +463,11 @@ export default class View extends ObservableMixin() {
|
|
|
527
463
|
* Creates a range inside an {@link module:engine/view/element~Element element} which starts before the first child of
|
|
528
464
|
* that element and ends after the last child of that element.
|
|
529
465
|
*
|
|
530
|
-
* @param
|
|
531
|
-
* @returns {module:engine/view/range~Range}
|
|
466
|
+
* @param element Element which is a parent for the range.
|
|
532
467
|
*/
|
|
533
468
|
createRangeIn(element) {
|
|
534
469
|
return Range._createIn(element);
|
|
535
470
|
}
|
|
536
|
-
/**
|
|
537
|
-
Creates new {@link module:engine/view/selection~Selection} instance.
|
|
538
|
-
*
|
|
539
|
-
* // Creates empty selection without ranges.
|
|
540
|
-
* const selection = view.createSelection();
|
|
541
|
-
*
|
|
542
|
-
* // Creates selection at the given range.
|
|
543
|
-
* const range = view.createRange( start, end );
|
|
544
|
-
* const selection = view.createSelection( range );
|
|
545
|
-
*
|
|
546
|
-
* // Creates selection at the given ranges
|
|
547
|
-
* const ranges = [ view.createRange( start1, end2 ), view.createRange( star2, end2 ) ];
|
|
548
|
-
* const selection = view.createSelection( ranges );
|
|
549
|
-
*
|
|
550
|
-
* // Creates selection from the other selection.
|
|
551
|
-
* const otherSelection = view.createSelection();
|
|
552
|
-
* const selection = view.createSelection( otherSelection );
|
|
553
|
-
*
|
|
554
|
-
* // Creates selection from the document selection.
|
|
555
|
-
* const selection = view.createSelection( editor.editing.view.document.selection );
|
|
556
|
-
*
|
|
557
|
-
* // Creates selection at the given position.
|
|
558
|
-
* const position = view.createPositionFromPath( root, path );
|
|
559
|
-
* const selection = view.createSelection( position );
|
|
560
|
-
*
|
|
561
|
-
* // Creates collapsed selection at the position of given item and offset.
|
|
562
|
-
* const paragraph = view.createContainerElement( 'paragraph' );
|
|
563
|
-
* const selection = view.createSelection( paragraph, offset );
|
|
564
|
-
*
|
|
565
|
-
* // Creates a range inside an {@link module:engine/view/element~Element element} which starts before the
|
|
566
|
-
* // first child of that element and ends after the last child of that element.
|
|
567
|
-
* const selection = view.createSelection( paragraph, 'in' );
|
|
568
|
-
*
|
|
569
|
-
* // Creates a range on an {@link module:engine/view/item~Item item} which starts before the item and ends
|
|
570
|
-
* // just after the item.
|
|
571
|
-
* const selection = view.createSelection( paragraph, 'on' );
|
|
572
|
-
*
|
|
573
|
-
* `Selection`'s factory method allow passing additional options (`backward`, `fake` and `label`) as the last argument.
|
|
574
|
-
*
|
|
575
|
-
* // Creates backward selection.
|
|
576
|
-
* const selection = view.createSelection( range, { backward: true } );
|
|
577
|
-
*
|
|
578
|
-
* Fake selection does not render as browser native selection over selected elements and is hidden to the user.
|
|
579
|
-
* This way, no native selection UI artifacts are displayed to the user and selection over elements can be
|
|
580
|
-
* represented in other way, for example by applying proper CSS class.
|
|
581
|
-
*
|
|
582
|
-
* Additionally fake's selection label can be provided. It will be used to describe fake selection in DOM
|
|
583
|
-
* (and be properly handled by screen readers).
|
|
584
|
-
*
|
|
585
|
-
* // Creates fake selection with label.
|
|
586
|
-
* const selection = view.createSelection( range, { fake: true, label: 'foo' } );
|
|
587
|
-
*
|
|
588
|
-
* @param {module:engine/view/selection~Selectable} [selectable=null]
|
|
589
|
-
* @param {Number|'before'|'end'|'after'|'on'|'in'} [placeOrOffset] Offset or place when selectable is an `Item`.
|
|
590
|
-
* @param {Object} [options]
|
|
591
|
-
* @param {Boolean} [options.backward] Sets this selection instance to be backward.
|
|
592
|
-
* @param {Boolean} [options.fake] Sets this selection instance to be marked as `fake`.
|
|
593
|
-
* @param {String} [options.label] Label for the fake selection.
|
|
594
|
-
* @returns {module:engine/view/selection~Selection}
|
|
595
|
-
*/
|
|
596
471
|
createSelection(...args) {
|
|
597
472
|
return new Selection(...args);
|
|
598
473
|
}
|
|
@@ -600,9 +475,8 @@ export default class View extends ObservableMixin() {
|
|
|
600
475
|
* Disables or enables rendering. If the flag is set to `true` then the rendering will be disabled.
|
|
601
476
|
* If the flag is set to `false` and if there was some change in the meantime, then the rendering action will be performed.
|
|
602
477
|
*
|
|
603
|
-
* @protected
|
|
604
478
|
* @internal
|
|
605
|
-
* @param
|
|
479
|
+
* @param flag A flag indicates whether the rendering should be disabled.
|
|
606
480
|
*/
|
|
607
481
|
_disableRendering(flag) {
|
|
608
482
|
this._renderingDisabled = flag;
|
|
@@ -614,8 +488,6 @@ export default class View extends ObservableMixin() {
|
|
|
614
488
|
/**
|
|
615
489
|
* Renders all changes. In order to avoid triggering the observers (e.g. selection) all observers are disabled
|
|
616
490
|
* before rendering and re-enabled after that.
|
|
617
|
-
*
|
|
618
|
-
* @private
|
|
619
491
|
*/
|
|
620
492
|
_render() {
|
|
621
493
|
this.isRenderingInProgress = true;
|