@ckeditor/ckeditor5-engine 36.0.1 → 37.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/README.md +1 -1
- package/package.json +24 -23
- package/src/controller/datacontroller.d.ts +331 -0
- package/src/controller/datacontroller.js +62 -109
- 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 +499 -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 +177 -0
- package/src/conversion/viewconsumable.js +157 -162
- 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 +105 -0
- package/src/index.js +1 -0
- package/src/model/batch.d.ts +106 -0
- package/src/model/differ.d.ts +329 -0
- package/src/model/document.d.ts +245 -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 +812 -0
- package/src/model/model.js +59 -30
- 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/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/transform.d.ts +100 -0
- package/src/model/operation/utils.d.ts +71 -0
- 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 +15 -15
- 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 +255 -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 +726 -0
- package/src/model/writer.js +6 -4
- 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 +150 -0
- package/src/view/documentfragment.js +40 -81
- package/src/view/documentselection.d.ts +219 -0
- package/src/view/documentselection.js +75 -121
- package/src/view/domconverter.d.ts +620 -0
- package/src/view/domconverter.js +159 -276
- package/src/view/downcastwriter.d.ts +804 -0
- package/src/view/downcastwriter.js +336 -380
- package/src/view/editableelement.d.ts +52 -0
- package/src/view/editableelement.js +9 -49
- package/src/view/element.d.ts +466 -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 +160 -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 +46 -0
- package/src/view/observer/fakeselectionobserver.js +2 -15
- 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 +67 -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 +143 -0
- package/src/view/observer/selectionobserver.js +9 -99
- 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 +401 -0
- package/src/view/uielement.d.ts +96 -0
- package/src/view/uielement.js +28 -62
- package/src/view/upcastwriter.d.ts +328 -0
- package/src/view/upcastwriter.js +124 -134
- package/src/view/view.d.ts +327 -0
- package/src/view/view.js +79 -150
|
@@ -36,65 +36,61 @@ import { CKEditorError } from '@ckeditor/ckeditor5-utils';
|
|
|
36
36
|
*
|
|
37
37
|
* Consuming multiple values in a single callback:
|
|
38
38
|
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
39
|
+
* ```ts
|
|
40
|
+
* // Converter for custom `imageBlock` element that might have a `caption` element inside which changes
|
|
41
|
+
* // how the image is displayed in the view:
|
|
42
|
+
* //
|
|
43
|
+
* // Model:
|
|
44
|
+
* //
|
|
45
|
+
* // [imageBlock]
|
|
46
|
+
* // └─ [caption]
|
|
47
|
+
* // └─ foo
|
|
48
|
+
* //
|
|
49
|
+
* // View:
|
|
50
|
+
* //
|
|
51
|
+
* // <figure>
|
|
52
|
+
* // ├─ <img />
|
|
53
|
+
* // └─ <caption>
|
|
54
|
+
* // └─ foo
|
|
55
|
+
* modelConversionDispatcher.on( 'insert:imageBlock', ( evt, data, conversionApi ) => {
|
|
56
|
+
* // First, consume the `imageBlock` element.
|
|
57
|
+
* conversionApi.consumable.consume( data.item, 'insert' );
|
|
57
58
|
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
59
|
+
* // Just create normal image element for the view.
|
|
60
|
+
* // Maybe it will be "decorated" later.
|
|
61
|
+
* const viewImage = new ViewElement( 'img' );
|
|
62
|
+
* const insertPosition = conversionApi.mapper.toViewPosition( data.range.start );
|
|
63
|
+
* const viewWriter = conversionApi.writer;
|
|
63
64
|
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
65
|
+
* // Check if the `imageBlock` element has children.
|
|
66
|
+
* if ( data.item.childCount > 0 ) {
|
|
67
|
+
* const modelCaption = data.item.getChild( 0 );
|
|
67
68
|
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
69
|
+
* // `modelCaption` insertion change is consumed from consumable values.
|
|
70
|
+
* // It will not be converted by other converters, but it's children (probably some text) will be.
|
|
71
|
+
* // Through mapping, converters for text will know where to insert contents of `modelCaption`.
|
|
72
|
+
* if ( conversionApi.consumable.consume( modelCaption, 'insert' ) ) {
|
|
73
|
+
* const viewCaption = new ViewElement( 'figcaption' );
|
|
73
74
|
*
|
|
74
|
-
*
|
|
75
|
+
* const viewImageHolder = new ViewElement( 'figure', null, [ viewImage, viewCaption ] );
|
|
75
76
|
*
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
*
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
83
|
-
*
|
|
77
|
+
* conversionApi.mapper.bindElements( modelCaption, viewCaption );
|
|
78
|
+
* conversionApi.mapper.bindElements( data.item, viewImageHolder );
|
|
79
|
+
* viewWriter.insert( insertPosition, viewImageHolder );
|
|
80
|
+
* }
|
|
81
|
+
* } else {
|
|
82
|
+
* conversionApi.mapper.bindElements( data.item, viewImage );
|
|
83
|
+
* viewWriter.insert( insertPosition, viewImage );
|
|
84
|
+
* }
|
|
84
85
|
*
|
|
85
|
-
*
|
|
86
|
-
*
|
|
86
|
+
* evt.stop();
|
|
87
|
+
* } );
|
|
88
|
+
* ```
|
|
87
89
|
*/
|
|
88
90
|
export default class ModelConsumable {
|
|
89
|
-
/**
|
|
90
|
-
* Creates an empty consumables list.
|
|
91
|
-
*/
|
|
92
91
|
constructor() {
|
|
93
92
|
/**
|
|
94
93
|
* Contains list of consumable values.
|
|
95
|
-
*
|
|
96
|
-
* @private
|
|
97
|
-
* @member {Map} module:engine/conversion/modelconsumable~ModelConsumable#_consumable
|
|
98
94
|
*/
|
|
99
95
|
this._consumable = new Map();
|
|
100
96
|
/**
|
|
@@ -104,24 +100,22 @@ export default class ModelConsumable {
|
|
|
104
100
|
* is given a unique `Symbol` which is then registered as consumable. This process is transparent for the `ModelConsumable`
|
|
105
101
|
* API user because whenever `TextProxy` is added, tested, consumed or reverted, the internal mechanisms of
|
|
106
102
|
* `ModelConsumable` translate `TextProxy` to that unique `Symbol`.
|
|
107
|
-
*
|
|
108
|
-
* @private
|
|
109
|
-
* @member {Map} module:engine/conversion/modelconsumable~ModelConsumable#_textProxyRegistry
|
|
110
103
|
*/
|
|
111
104
|
this._textProxyRegistry = new Map();
|
|
112
105
|
}
|
|
113
106
|
/**
|
|
114
107
|
* Adds a consumable value to the consumables list and links it with a given model item.
|
|
115
108
|
*
|
|
116
|
-
*
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
-
*
|
|
120
|
-
*
|
|
109
|
+
* ```ts
|
|
110
|
+
* modelConsumable.add( modelElement, 'insert' ); // Add `modelElement` insertion change to consumable values.
|
|
111
|
+
* modelConsumable.add( modelElement, 'addAttribute:bold' ); // Add `bold` attribute insertion on `modelElement` change.
|
|
112
|
+
* modelConsumable.add( modelElement, 'removeAttribute:bold' ); // Add `bold` attribute removal on `modelElement` change.
|
|
113
|
+
* modelConsumable.add( modelSelection, 'selection' ); // Add `modelSelection` to consumable values.
|
|
114
|
+
* modelConsumable.add( modelRange, 'range' ); // Add `modelRange` to consumable values.
|
|
115
|
+
* ```
|
|
121
116
|
*
|
|
122
|
-
* @param
|
|
123
|
-
*
|
|
124
|
-
* @param {String} type Consumable type. Will be normalized to a proper form, that is either `<word>` or `<part>:<part>`.
|
|
117
|
+
* @param item Model item, range or selection that has the consumable.
|
|
118
|
+
* @param type Consumable type. Will be normalized to a proper form, that is either `<word>` or `<part>:<part>`.
|
|
125
119
|
* Second colon and everything after will be cut. Passing event name is a safe and good practice.
|
|
126
120
|
*/
|
|
127
121
|
add(item, type) {
|
|
@@ -137,17 +131,18 @@ export default class ModelConsumable {
|
|
|
137
131
|
/**
|
|
138
132
|
* Removes a given consumable value from a given model item.
|
|
139
133
|
*
|
|
140
|
-
*
|
|
141
|
-
*
|
|
142
|
-
*
|
|
143
|
-
*
|
|
144
|
-
*
|
|
134
|
+
* ```ts
|
|
135
|
+
* modelConsumable.consume( modelElement, 'insert' ); // Remove `modelElement` insertion change from consumable values.
|
|
136
|
+
* modelConsumable.consume( modelElement, 'addAttribute:bold' ); // Remove `bold` attribute insertion on `modelElement` change.
|
|
137
|
+
* modelConsumable.consume( modelElement, 'removeAttribute:bold' ); // Remove `bold` attribute removal on `modelElement` change.
|
|
138
|
+
* modelConsumable.consume( modelSelection, 'selection' ); // Remove `modelSelection` from consumable values.
|
|
139
|
+
* modelConsumable.consume( modelRange, 'range' ); // Remove 'modelRange' from consumable values.
|
|
140
|
+
* ```
|
|
145
141
|
*
|
|
146
|
-
* @param
|
|
147
|
-
*
|
|
148
|
-
* @param {String} type Consumable type. Will be normalized to a proper form, that is either `<word>` or `<part>:<part>`.
|
|
142
|
+
* @param item Model item, range or selection from which consumable will be consumed.
|
|
143
|
+
* @param type Consumable type. Will be normalized to a proper form, that is either `<word>` or `<part>:<part>`.
|
|
149
144
|
* Second colon and everything after will be cut. Passing event name is a safe and good practice.
|
|
150
|
-
* @returns
|
|
145
|
+
* @returns `true` if consumable value was available and was consumed, `false` otherwise.
|
|
151
146
|
*/
|
|
152
147
|
consume(item, type) {
|
|
153
148
|
type = _normalizeConsumableType(type);
|
|
@@ -165,17 +160,18 @@ export default class ModelConsumable {
|
|
|
165
160
|
/**
|
|
166
161
|
* Tests whether there is a consumable value of a given type connected with a given model item.
|
|
167
162
|
*
|
|
168
|
-
*
|
|
169
|
-
*
|
|
170
|
-
*
|
|
171
|
-
*
|
|
172
|
-
*
|
|
163
|
+
* ```ts
|
|
164
|
+
* modelConsumable.test( modelElement, 'insert' ); // Check for `modelElement` insertion change.
|
|
165
|
+
* modelConsumable.test( modelElement, 'addAttribute:bold' ); // Check for `bold` attribute insertion on `modelElement` change.
|
|
166
|
+
* modelConsumable.test( modelElement, 'removeAttribute:bold' ); // Check for `bold` attribute removal on `modelElement` change.
|
|
167
|
+
* modelConsumable.test( modelSelection, 'selection' ); // Check if `modelSelection` is consumable.
|
|
168
|
+
* modelConsumable.test( modelRange, 'range' ); // Check if `modelRange` is consumable.
|
|
169
|
+
* ```
|
|
173
170
|
*
|
|
174
|
-
* @param
|
|
175
|
-
*
|
|
176
|
-
* @param {String} type Consumable type. Will be normalized to a proper form, that is either `<word>` or `<part>:<part>`.
|
|
171
|
+
* @param item Model item, range or selection to be tested.
|
|
172
|
+
* @param type Consumable type. Will be normalized to a proper form, that is either `<word>` or `<part>:<part>`.
|
|
177
173
|
* Second colon and everything after will be cut. Passing event name is a safe and good practice.
|
|
178
|
-
* @returns
|
|
174
|
+
* @returns `null` if such consumable was never added, `false` if the consumable values was
|
|
179
175
|
* already consumed or `true` if it was added and not consumed yet.
|
|
180
176
|
*/
|
|
181
177
|
test(item, type) {
|
|
@@ -196,16 +192,17 @@ export default class ModelConsumable {
|
|
|
196
192
|
/**
|
|
197
193
|
* Reverts consuming of a consumable value.
|
|
198
194
|
*
|
|
199
|
-
*
|
|
200
|
-
*
|
|
201
|
-
*
|
|
202
|
-
*
|
|
203
|
-
*
|
|
195
|
+
* ```ts
|
|
196
|
+
* modelConsumable.revert( modelElement, 'insert' ); // Revert consuming `modelElement` insertion change.
|
|
197
|
+
* modelConsumable.revert( modelElement, 'addAttribute:bold' ); // Revert consuming `bold` attribute insert from `modelElement`.
|
|
198
|
+
* modelConsumable.revert( modelElement, 'removeAttribute:bold' ); // Revert consuming `bold` attribute remove from `modelElement`.
|
|
199
|
+
* modelConsumable.revert( modelSelection, 'selection' ); // Revert consuming `modelSelection`.
|
|
200
|
+
* modelConsumable.revert( modelRange, 'range' ); // Revert consuming `modelRange`.
|
|
201
|
+
* ```
|
|
204
202
|
*
|
|
205
|
-
* @param
|
|
206
|
-
*
|
|
207
|
-
* @
|
|
208
|
-
* @returns {null|Boolean} `true` if consumable has been reversed, `false` otherwise. `null` if the consumable has
|
|
203
|
+
* @param item Model item, range or selection to be reverted.
|
|
204
|
+
* @param type Consumable type.
|
|
205
|
+
* @returns `true` if consumable has been reversed, `false` otherwise. `null` if the consumable has
|
|
209
206
|
* never been added.
|
|
210
207
|
*/
|
|
211
208
|
revert(item, type) {
|
|
@@ -226,7 +223,7 @@ export default class ModelConsumable {
|
|
|
226
223
|
/**
|
|
227
224
|
* Verifies if all events from the specified group were consumed.
|
|
228
225
|
*
|
|
229
|
-
* @param
|
|
226
|
+
* @param eventGroup The events group to verify.
|
|
230
227
|
*/
|
|
231
228
|
verifyAllConsumed(eventGroup) {
|
|
232
229
|
const items = [];
|
|
@@ -268,9 +265,8 @@ export default class ModelConsumable {
|
|
|
268
265
|
* Used internally to correctly consume `TextProxy` instances.
|
|
269
266
|
*
|
|
270
267
|
* @internal
|
|
271
|
-
* @
|
|
272
|
-
* @
|
|
273
|
-
* @returns {Symbol} Symbol representing all equal instances of `TextProxy`.
|
|
268
|
+
* @param textProxy `TextProxy` instance to get a symbol for.
|
|
269
|
+
* @returns Symbol representing all equal instances of `TextProxy`.
|
|
274
270
|
*/
|
|
275
271
|
_getSymbolForTextProxy(textProxy) {
|
|
276
272
|
let symbol = null;
|
|
@@ -291,9 +287,8 @@ export default class ModelConsumable {
|
|
|
291
287
|
*
|
|
292
288
|
* Used internally to correctly consume `TextProxy` instances.
|
|
293
289
|
*
|
|
294
|
-
* @
|
|
295
|
-
* @
|
|
296
|
-
* @returns {Symbol} Symbol generated for given `TextProxy`.
|
|
290
|
+
* @param textProxy Text proxy instance.
|
|
291
|
+
* @returns Symbol generated for given `TextProxy`.
|
|
297
292
|
*/
|
|
298
293
|
_addSymbolForTextProxy(textProxy) {
|
|
299
294
|
const start = textProxy.startOffset;
|
|
@@ -316,12 +311,14 @@ export default class ModelConsumable {
|
|
|
316
311
|
return symbol;
|
|
317
312
|
}
|
|
318
313
|
}
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
314
|
+
/**
|
|
315
|
+
* Returns a normalized consumable type name from the given string. A normalized consumable type name is a string that has
|
|
316
|
+
* at most one colon, for example: `insert` or `addMarker:highlight`. If a string to normalize has more "parts" (more colons),
|
|
317
|
+
* the further parts are dropped, for example: `addattribute:bold:$text` -> `addattributes:bold`.
|
|
318
|
+
*
|
|
319
|
+
* @param type Consumable type.
|
|
320
|
+
* @returns Normalized consumable type.
|
|
321
|
+
*/
|
|
325
322
|
function _normalizeConsumableType(type) {
|
|
326
323
|
const parts = type.split(':');
|
|
327
324
|
// For inserts allow passing event name, it's stored in the context of a specified element so the element name is not needed.
|