@ckeditor/ckeditor5-engine 48.8.1-alpha.4 → 49.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.
Files changed (135) hide show
  1. package/LICENSE.md +1 -1
  2. package/dist/controller/datacontroller.d.ts +329 -314
  3. package/dist/controller/editingcontroller.d.ts +95 -94
  4. package/dist/conversion/comparemarkers.d.ts +45 -45
  5. package/dist/conversion/conversion.d.ts +474 -474
  6. package/dist/conversion/conversionhelpers.d.ts +21 -21
  7. package/dist/conversion/downcastdispatcher.d.ts +539 -538
  8. package/dist/conversion/downcasthelpers.d.ts +1129 -1129
  9. package/dist/conversion/mapper.d.ts +692 -697
  10. package/dist/conversion/modelconsumable.d.ts +196 -196
  11. package/dist/conversion/upcastdispatcher.d.ts +483 -475
  12. package/dist/conversion/upcasthelpers.d.ts +491 -491
  13. package/dist/conversion/viewconsumable.d.ts +330 -330
  14. package/dist/dataprocessor/basichtmlwriter.d.ts +15 -15
  15. package/dist/dataprocessor/dataprocessor.d.ts +57 -57
  16. package/dist/dataprocessor/htmldataprocessor.d.ts +72 -72
  17. package/dist/dataprocessor/htmlwriter.d.ts +11 -11
  18. package/dist/dataprocessor/xmldataprocessor.d.ts +86 -86
  19. package/dist/dev-utils/model.d.ts +128 -116
  20. package/dist/dev-utils/operationreplayer.d.ts +49 -49
  21. package/dist/dev-utils/utils.d.ts +33 -33
  22. package/dist/dev-utils/view.d.ts +314 -309
  23. package/dist/engineconfig.d.ts +39 -39
  24. package/dist/index-content.css +3 -0
  25. package/dist/index-content.css.map +1 -0
  26. package/dist/index-editor.css +33 -29
  27. package/dist/index-editor.css.map +1 -0
  28. package/dist/index.css +26 -24
  29. package/dist/index.css.map +1 -1
  30. package/dist/index.d.ts +152 -150
  31. package/dist/index.js +34246 -40050
  32. package/dist/index.js.map +1 -1
  33. package/dist/legacyerrors.d.ts +0 -4
  34. package/dist/model/batch.d.ts +86 -86
  35. package/dist/model/differ.d.ts +504 -504
  36. package/dist/model/document.d.ts +265 -262
  37. package/dist/model/documentfragment.d.ts +214 -214
  38. package/dist/model/documentselection.d.ts +412 -410
  39. package/dist/model/element.d.ts +182 -182
  40. package/dist/model/history.d.ts +109 -109
  41. package/dist/model/item.d.ts +9 -9
  42. package/dist/model/liveposition.d.ts +81 -69
  43. package/dist/model/liverange.d.ts +118 -92
  44. package/dist/model/markercollection.d.ts +317 -324
  45. package/dist/model/model.d.ts +889 -909
  46. package/dist/model/node.d.ts +254 -254
  47. package/dist/model/nodelist.d.ts +110 -110
  48. package/dist/model/operation/attributeoperation.d.ts +98 -98
  49. package/dist/model/operation/detachoperation.d.ts +57 -57
  50. package/dist/model/operation/insertoperation.d.ts +85 -85
  51. package/dist/model/operation/markeroperation.d.ts +87 -87
  52. package/dist/model/operation/mergeoperation.d.ts +95 -95
  53. package/dist/model/operation/moveoperation.d.ts +97 -91
  54. package/dist/model/operation/nooperation.d.ts +33 -33
  55. package/dist/model/operation/operation.d.ts +94 -94
  56. package/dist/model/operation/operationfactory.d.ts +14 -14
  57. package/dist/model/operation/renameoperation.d.ts +78 -78
  58. package/dist/model/operation/rootattributeoperation.d.ts +93 -93
  59. package/dist/model/operation/rootoperation.d.ts +71 -71
  60. package/dist/model/operation/splitoperation.d.ts +104 -104
  61. package/dist/model/operation/transform.d.ts +91 -91
  62. package/dist/model/operation/utils.d.ts +58 -58
  63. package/dist/model/position.d.ts +542 -535
  64. package/dist/model/range.d.ts +467 -453
  65. package/dist/model/rootelement.d.ts +55 -55
  66. package/dist/model/schema.d.ts +1325 -1327
  67. package/dist/model/selection.d.ts +452 -471
  68. package/dist/model/text.d.ts +62 -62
  69. package/dist/model/textproxy.d.ts +140 -140
  70. package/dist/model/treewalker.d.ts +190 -190
  71. package/dist/model/typecheckable.d.ts +281 -281
  72. package/dist/model/utils/autoparagraphing.d.ts +29 -29
  73. package/dist/model/utils/deletecontent.d.ts +68 -68
  74. package/dist/model/utils/getselectedcontent.d.ts +27 -27
  75. package/dist/model/utils/insertcontent.d.ts +42 -42
  76. package/dist/model/utils/insertobject.d.ts +41 -41
  77. package/dist/model/utils/modifyselection.d.ts +44 -44
  78. package/dist/model/utils/selection-post-fixer.d.ts +71 -71
  79. package/dist/model/writer.d.ts +857 -848
  80. package/dist/view/attributeelement.d.ts +123 -123
  81. package/dist/view/containerelement.d.ts +49 -49
  82. package/dist/view/datatransfer.d.ts +70 -70
  83. package/dist/view/document.d.ts +175 -177
  84. package/dist/view/documentfragment.d.ts +158 -157
  85. package/dist/view/documentselection.d.ts +308 -307
  86. package/dist/view/domconverter.d.ts +614 -658
  87. package/dist/view/downcastwriter.d.ts +1012 -1006
  88. package/dist/view/editableelement.d.ts +64 -63
  89. package/dist/view/element.d.ts +754 -754
  90. package/dist/view/elementdefinition.d.ts +79 -79
  91. package/dist/view/emptyelement.d.ts +42 -42
  92. package/dist/view/filler.d.ts +75 -75
  93. package/dist/view/item.d.ts +9 -9
  94. package/dist/view/matcher.d.ts +412 -487
  95. package/dist/view/node.d.ts +164 -163
  96. package/dist/view/observer/arrowkeysobserver.d.ts +37 -37
  97. package/dist/view/observer/bubblingemittermixin.d.ts +163 -153
  98. package/dist/view/observer/bubblingeventinfo.d.ts +45 -42
  99. package/dist/view/observer/clickobserver.d.ts +36 -36
  100. package/dist/view/observer/compositionobserver.d.ts +67 -67
  101. package/dist/view/observer/domeventdata.d.ts +46 -46
  102. package/dist/view/observer/domeventobserver.d.ts +77 -74
  103. package/dist/view/observer/fakeselectionobserver.d.ts +42 -42
  104. package/dist/view/observer/focusobserver.d.ts +84 -84
  105. package/dist/view/observer/inputobserver.d.ts +76 -76
  106. package/dist/view/observer/keyobserver.d.ts +53 -53
  107. package/dist/view/observer/mouseobserver.d.ts +73 -73
  108. package/dist/view/observer/mutationobserver.d.ts +101 -101
  109. package/dist/view/observer/observer.d.ts +84 -83
  110. package/dist/view/observer/pointerobserver.d.ts +63 -63
  111. package/dist/view/observer/selectionobserver.d.ts +141 -137
  112. package/dist/view/observer/tabobserver.d.ts +38 -38
  113. package/dist/view/observer/touchobserver.d.ts +60 -60
  114. package/dist/view/placeholder.d.ts +77 -81
  115. package/dist/view/position.d.ts +187 -187
  116. package/dist/view/range.d.ts +282 -282
  117. package/dist/view/rawelement.d.ts +72 -72
  118. package/dist/view/renderer.d.ts +282 -273
  119. package/dist/view/rooteditableelement.d.ts +43 -43
  120. package/dist/view/selection.d.ts +356 -369
  121. package/dist/view/styles/background.d.ts +15 -15
  122. package/dist/view/styles/border.d.ts +27 -27
  123. package/dist/view/styles/margin.d.ts +12 -12
  124. package/dist/view/styles/padding.d.ts +12 -12
  125. package/dist/view/styles/utils.d.ts +72 -72
  126. package/dist/view/stylesmap.d.ts +715 -715
  127. package/dist/view/text.d.ts +75 -75
  128. package/dist/view/textproxy.d.ts +92 -92
  129. package/dist/view/tokenlist.d.ts +104 -104
  130. package/dist/view/treewalker.d.ts +201 -201
  131. package/dist/view/typecheckable.d.ts +445 -445
  132. package/dist/view/uielement.d.ts +93 -93
  133. package/dist/view/upcastwriter.d.ts +412 -412
  134. package/dist/view/view.d.ts +466 -468
  135. package/package.json +3 -3
@@ -1,342 +1,342 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
- */
5
- import type { ViewElement, ViewNormalizedConsumables } from '../view/element.js';
6
- import { type ViewNode } from '../view/node.js';
7
- import { type ViewText } from '../view/text.js';
8
- import { type ViewDocumentFragment } from '../view/documentfragment.js';
9
- import type { Match } from '../view/matcher.js';
2
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
+ */
5
+ import type { ViewElement, ViewNormalizedConsumables } from "../view/element.js";
6
+ import { type ViewNode } from "../view/node.js";
7
+ import { type ViewText } from "../view/text.js";
8
+ import { type ViewDocumentFragment } from "../view/documentfragment.js";
9
+ import type { Match } from "../view/matcher.js";
10
10
  /**
11
- * Class used for handling consumption of view {@link module:engine/view/element~ViewElement elements},
12
- * {@link module:engine/view/text~ViewText text nodes} and
13
- * {@link module:engine/view/documentfragment~ViewDocumentFragment document fragments}.
14
- * Element's name and its parts (attributes, classes and styles) can be consumed separately. Consuming an element's name
15
- * does not consume its attributes, classes and styles.
16
- * To add items for consumption use {@link module:engine/conversion/viewconsumable~ViewConsumable#add add method}.
17
- * To test items use {@link module:engine/conversion/viewconsumable~ViewConsumable#test test method}.
18
- * To consume items use {@link module:engine/conversion/viewconsumable~ViewConsumable#consume consume method}.
19
- * To revert already consumed items use {@link module:engine/conversion/viewconsumable~ViewConsumable#revert revert method}.
20
- *
21
- * ```ts
22
- * viewConsumable.add( element, { name: true } ); // Adds element's name as ready to be consumed.
23
- * viewConsumable.add( textNode ); // Adds text node for consumption.
24
- * viewConsumable.add( docFragment ); // Adds document fragment for consumption.
25
- * viewConsumable.test( element, { name: true } ); // Tests if element's name can be consumed.
26
- * viewConsumable.test( textNode ); // Tests if text node can be consumed.
27
- * viewConsumable.test( docFragment ); // Tests if document fragment can be consumed.
28
- * viewConsumable.consume( element, { name: true } ); // Consume element's name.
29
- * viewConsumable.consume( textNode ); // Consume text node.
30
- * viewConsumable.consume( docFragment ); // Consume document fragment.
31
- * viewConsumable.revert( element, { name: true } ); // Revert already consumed element's name.
32
- * viewConsumable.revert( textNode ); // Revert already consumed text node.
33
- * viewConsumable.revert( docFragment ); // Revert already consumed document fragment.
34
- * ```
35
- */
11
+ * Class used for handling consumption of view {@link module:engine/view/element~ViewElement elements},
12
+ * {@link module:engine/view/text~ViewText text nodes} and
13
+ * {@link module:engine/view/documentfragment~ViewDocumentFragment document fragments}.
14
+ * Element's name and its parts (attributes, classes and styles) can be consumed separately. Consuming an element's name
15
+ * does not consume its attributes, classes and styles.
16
+ * To add items for consumption use {@link module:engine/conversion/viewconsumable~ViewConsumable#add add method}.
17
+ * To test items use {@link module:engine/conversion/viewconsumable~ViewConsumable#test test method}.
18
+ * To consume items use {@link module:engine/conversion/viewconsumable~ViewConsumable#consume consume method}.
19
+ * To revert already consumed items use {@link module:engine/conversion/viewconsumable~ViewConsumable#revert revert method}.
20
+ *
21
+ * ```ts
22
+ * viewConsumable.add( element, { name: true } ); // Adds element's name as ready to be consumed.
23
+ * viewConsumable.add( textNode ); // Adds text node for consumption.
24
+ * viewConsumable.add( docFragment ); // Adds document fragment for consumption.
25
+ * viewConsumable.test( element, { name: true } ); // Tests if element's name can be consumed.
26
+ * viewConsumable.test( textNode ); // Tests if text node can be consumed.
27
+ * viewConsumable.test( docFragment ); // Tests if document fragment can be consumed.
28
+ * viewConsumable.consume( element, { name: true } ); // Consume element's name.
29
+ * viewConsumable.consume( textNode ); // Consume text node.
30
+ * viewConsumable.consume( docFragment ); // Consume document fragment.
31
+ * viewConsumable.revert( element, { name: true } ); // Revert already consumed element's name.
32
+ * viewConsumable.revert( textNode ); // Revert already consumed text node.
33
+ * viewConsumable.revert( docFragment ); // Revert already consumed document fragment.
34
+ * ```
35
+ */
36
36
  export declare class ViewConsumable {
37
- /**
38
- * Map of consumable elements. If {@link module:engine/view/element~ViewElement element} is used as a key,
39
- * {@link module:engine/conversion/viewconsumable~ViewElementConsumables ViewElementConsumables} instance is stored as value.
40
- * For {@link module:engine/view/text~ViewText text nodes} and
41
- * {@link module:engine/view/documentfragment~ViewDocumentFragment document fragments} boolean value is stored as value.
42
- */
43
- private _consumables;
44
- /**
45
- * Adds view {@link module:engine/view/element~ViewElement element}, {@link module:engine/view/text~ViewText text node} or
46
- * {@link module:engine/view/documentfragment~ViewDocumentFragment document fragment} as ready to be consumed.
47
- *
48
- * ```ts
49
- * viewConsumable.add( p, { name: true } ); // Adds element's name to consume.
50
- * viewConsumable.add( p, { attributes: 'name' } ); // Adds element's attribute.
51
- * viewConsumable.add( p, { classes: 'foobar' } ); // Adds element's class.
52
- * viewConsumable.add( p, { styles: 'color' } ); // Adds element's style
53
- * viewConsumable.add( p, { attributes: 'name', styles: 'color' } ); // Adds attribute and style.
54
- * viewConsumable.add( p, { classes: [ 'baz', 'bar' ] } ); // Multiple consumables can be provided.
55
- * viewConsumable.add( textNode ); // Adds text node to consume.
56
- * viewConsumable.add( docFragment ); // Adds document fragment to consume.
57
- * ```
58
- *
59
- * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `viewconsumable-invalid-attribute` when `class` or `style`
60
- * attribute is provided - it should be handled separately by providing actual style/class.
61
- *
62
- * ```ts
63
- * viewConsumable.add( p, { attributes: 'style' } ); // This call will throw an exception.
64
- * viewConsumable.add( p, { styles: 'color' } ); // This is properly handled style.
65
- * ```
66
- *
67
- * @param consumables Used only if first parameter is {@link module:engine/view/element~ViewElement view element} instance.
68
- * @param consumables.name If set to true element's name will be included.
69
- * @param consumables.attributes Attribute name or array of attribute names.
70
- * @param consumables.classes Class name or array of class names.
71
- * @param consumables.styles Style name or array of style names.
72
- */
73
- add(element: ViewText | ViewElement | ViewDocumentFragment, consumables?: Consumables | ViewNormalizedConsumables): void;
74
- /**
75
- * Tests if {@link module:engine/view/element~ViewElement view element}, {@link module:engine/view/text~ViewText text node} or
76
- * {@link module:engine/view/documentfragment~ViewDocumentFragment document fragment} can be consumed.
77
- * It returns `true` when all items included in method's call can be consumed. Returns `false` when
78
- * first already consumed item is found and `null` when first non-consumable item is found.
79
- *
80
- * ```ts
81
- * viewConsumable.test( p, { name: true } ); // Tests element's name.
82
- * viewConsumable.test( p, { attributes: 'name' } ); // Tests attribute.
83
- * viewConsumable.test( p, { classes: 'foobar' } ); // Tests class.
84
- * viewConsumable.test( p, { styles: 'color' } ); // Tests style.
85
- * viewConsumable.test( p, { attributes: 'name', styles: 'color' } ); // Tests attribute and style.
86
- * viewConsumable.test( p, { classes: [ 'baz', 'bar' ] } ); // Multiple consumables can be tested.
87
- * viewConsumable.test( textNode ); // Tests text node.
88
- * viewConsumable.test( docFragment ); // Tests document fragment.
89
- * ```
90
- *
91
- * Testing classes and styles as attribute will test if all added classes/styles can be consumed.
92
- *
93
- * ```ts
94
- * viewConsumable.test( p, { attributes: 'class' } ); // Tests if all added classes can be consumed.
95
- * viewConsumable.test( p, { attributes: 'style' } ); // Tests if all added styles can be consumed.
96
- * ```
97
- *
98
- * @param consumables Used only if first parameter is {@link module:engine/view/element~ViewElement view element} instance.
99
- * @param consumables.name If set to true element's name will be included.
100
- * @param consumables.attributes Attribute name or array of attribute names.
101
- * @param consumables.classes Class name or array of class names.
102
- * @param consumables.styles Style name or array of style names.
103
- * @returns Returns `true` when all items included in method's call can be consumed. Returns `false`
104
- * when first already consumed item is found and `null` when first non-consumable item is found.
105
- */
106
- test(element: ViewNode | ViewDocumentFragment, consumables?: Consumables | Match): boolean | null;
107
- /**
108
- * Consumes {@link module:engine/view/element~ViewElement view element}, {@link module:engine/view/text~ViewText text node} or
109
- * {@link module:engine/view/documentfragment~ViewDocumentFragment document fragment}.
110
- * It returns `true` when all items included in method's call can be consumed, otherwise returns `false`.
111
- *
112
- * ```ts
113
- * viewConsumable.consume( p, { name: true } ); // Consumes element's name.
114
- * viewConsumable.consume( p, { attributes: 'name' } ); // Consumes element's attribute.
115
- * viewConsumable.consume( p, { classes: 'foobar' } ); // Consumes element's class.
116
- * viewConsumable.consume( p, { styles: 'color' } ); // Consumes element's style.
117
- * viewConsumable.consume( p, { attributes: 'name', styles: 'color' } ); // Consumes attribute and style.
118
- * viewConsumable.consume( p, { classes: [ 'baz', 'bar' ] } ); // Multiple consumables can be consumed.
119
- * viewConsumable.consume( textNode ); // Consumes text node.
120
- * viewConsumable.consume( docFragment ); // Consumes document fragment.
121
- * ```
122
- *
123
- * Consuming classes and styles as attribute will test if all added classes/styles can be consumed.
124
- *
125
- * ```ts
126
- * viewConsumable.consume( p, { attributes: 'class' } ); // Consume only if all added classes can be consumed.
127
- * viewConsumable.consume( p, { attributes: 'style' } ); // Consume only if all added styles can be consumed.
128
- * ```
129
- *
130
- * @param consumables Used only if first parameter is {@link module:engine/view/element~ViewElement view element} instance.
131
- * @param consumables.name If set to true element's name will be included.
132
- * @param consumables.attributes Attribute name or array of attribute names.
133
- * @param consumables.classes Class name or array of class names.
134
- * @param consumables.styles Style name or array of style names.
135
- * @returns Returns `true` when all items included in method's call can be consumed,
136
- * otherwise returns `false`.
137
- */
138
- consume(element: ViewNode | ViewDocumentFragment, consumables?: Consumables | Match): boolean;
139
- /**
140
- * Reverts {@link module:engine/view/element~ViewElement view element}, {@link module:engine/view/text~ViewText text node} or
141
- * {@link module:engine/view/documentfragment~ViewDocumentFragment document fragment} so they can be consumed once again.
142
- * Method does not revert items that were never previously added for consumption, even if they are included in
143
- * method's call.
144
- *
145
- * ```ts
146
- * viewConsumable.revert( p, { name: true } ); // Reverts element's name.
147
- * viewConsumable.revert( p, { attributes: 'name' } ); // Reverts element's attribute.
148
- * viewConsumable.revert( p, { classes: 'foobar' } ); // Reverts element's class.
149
- * viewConsumable.revert( p, { styles: 'color' } ); // Reverts element's style.
150
- * viewConsumable.revert( p, { attributes: 'name', styles: 'color' } ); // Reverts attribute and style.
151
- * viewConsumable.revert( p, { classes: [ 'baz', 'bar' ] } ); // Multiple names can be reverted.
152
- * viewConsumable.revert( textNode ); // Reverts text node.
153
- * viewConsumable.revert( docFragment ); // Reverts document fragment.
154
- * ```
155
- *
156
- * Reverting classes and styles as attribute will revert all classes/styles that were previously added for
157
- * consumption.
158
- *
159
- * ```ts
160
- * viewConsumable.revert( p, { attributes: 'class' } ); // Reverts all classes added for consumption.
161
- * viewConsumable.revert( p, { attributes: 'style' } ); // Reverts all styles added for consumption.
162
- * ```
163
- *
164
- * @param consumables Used only if first parameter is {@link module:engine/view/element~ViewElement view element} instance.
165
- * @param consumables.name If set to true element's name will be included.
166
- * @param consumables.attributes Attribute name or array of attribute names.
167
- * @param consumables.classes Class name or array of class names.
168
- * @param consumables.styles Style name or array of style names.
169
- */
170
- revert(element: ViewNode, consumables: Consumables | Match): void;
171
- /**
172
- * Creates {@link module:engine/conversion/viewconsumable~ViewConsumable ViewConsumable} instance from
173
- * {@link module:engine/view/node~ViewNode node} or {@link module:engine/view/documentfragment~ViewDocumentFragment document fragment}.
174
- * Instance will contain all elements, child nodes, attributes, styles and classes added for consumption.
175
- *
176
- * @param from View node or document fragment from which `ViewConsumable` will be created.
177
- * @param instance If provided, given `ViewConsumable` instance will be used
178
- * to add all consumables. It will be returned instead of a new instance.
179
- */
180
- static createFrom(from: ViewNode | ViewDocumentFragment, instance?: ViewConsumable): ViewConsumable;
37
+ /**
38
+ * Map of consumable elements. If {@link module:engine/view/element~ViewElement element} is used as a key,
39
+ * {@link module:engine/conversion/viewconsumable~ViewElementConsumables ViewElementConsumables} instance is stored as value.
40
+ * For {@link module:engine/view/text~ViewText text nodes} and
41
+ * {@link module:engine/view/documentfragment~ViewDocumentFragment document fragments} boolean value is stored as value.
42
+ */
43
+ private _consumables;
44
+ /**
45
+ * Adds view {@link module:engine/view/element~ViewElement element}, {@link module:engine/view/text~ViewText text node} or
46
+ * {@link module:engine/view/documentfragment~ViewDocumentFragment document fragment} as ready to be consumed.
47
+ *
48
+ * ```ts
49
+ * viewConsumable.add( p, { name: true } ); // Adds element's name to consume.
50
+ * viewConsumable.add( p, { attributes: 'name' } ); // Adds element's attribute.
51
+ * viewConsumable.add( p, { classes: 'foobar' } ); // Adds element's class.
52
+ * viewConsumable.add( p, { styles: 'color' } ); // Adds element's style
53
+ * viewConsumable.add( p, { attributes: 'name', styles: 'color' } ); // Adds attribute and style.
54
+ * viewConsumable.add( p, { classes: [ 'baz', 'bar' ] } ); // Multiple consumables can be provided.
55
+ * viewConsumable.add( textNode ); // Adds text node to consume.
56
+ * viewConsumable.add( docFragment ); // Adds document fragment to consume.
57
+ * ```
58
+ *
59
+ * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `viewconsumable-invalid-attribute` when `class` or `style`
60
+ * attribute is provided - it should be handled separately by providing actual style/class.
61
+ *
62
+ * ```ts
63
+ * viewConsumable.add( p, { attributes: 'style' } ); // This call will throw an exception.
64
+ * viewConsumable.add( p, { styles: 'color' } ); // This is properly handled style.
65
+ * ```
66
+ *
67
+ * @param consumables Used only if first parameter is {@link module:engine/view/element~ViewElement view element} instance.
68
+ * @param consumables.name If set to true element's name will be included.
69
+ * @param consumables.attributes Attribute name or array of attribute names.
70
+ * @param consumables.classes Class name or array of class names.
71
+ * @param consumables.styles Style name or array of style names.
72
+ */
73
+ add(element: ViewText | ViewElement | ViewDocumentFragment, consumables?: Consumables | ViewNormalizedConsumables): void;
74
+ /**
75
+ * Tests if {@link module:engine/view/element~ViewElement view element}, {@link module:engine/view/text~ViewText text node} or
76
+ * {@link module:engine/view/documentfragment~ViewDocumentFragment document fragment} can be consumed.
77
+ * It returns `true` when all items included in method's call can be consumed. Returns `false` when
78
+ * first already consumed item is found and `null` when first non-consumable item is found.
79
+ *
80
+ * ```ts
81
+ * viewConsumable.test( p, { name: true } ); // Tests element's name.
82
+ * viewConsumable.test( p, { attributes: 'name' } ); // Tests attribute.
83
+ * viewConsumable.test( p, { classes: 'foobar' } ); // Tests class.
84
+ * viewConsumable.test( p, { styles: 'color' } ); // Tests style.
85
+ * viewConsumable.test( p, { attributes: 'name', styles: 'color' } ); // Tests attribute and style.
86
+ * viewConsumable.test( p, { classes: [ 'baz', 'bar' ] } ); // Multiple consumables can be tested.
87
+ * viewConsumable.test( textNode ); // Tests text node.
88
+ * viewConsumable.test( docFragment ); // Tests document fragment.
89
+ * ```
90
+ *
91
+ * Testing classes and styles as attribute will test if all added classes/styles can be consumed.
92
+ *
93
+ * ```ts
94
+ * viewConsumable.test( p, { attributes: 'class' } ); // Tests if all added classes can be consumed.
95
+ * viewConsumable.test( p, { attributes: 'style' } ); // Tests if all added styles can be consumed.
96
+ * ```
97
+ *
98
+ * @param consumables Used only if first parameter is {@link module:engine/view/element~ViewElement view element} instance.
99
+ * @param consumables.name If set to true element's name will be included.
100
+ * @param consumables.attributes Attribute name or array of attribute names.
101
+ * @param consumables.classes Class name or array of class names.
102
+ * @param consumables.styles Style name or array of style names.
103
+ * @returns Returns `true` when all items included in method's call can be consumed. Returns `false`
104
+ * when first already consumed item is found and `null` when first non-consumable item is found.
105
+ */
106
+ test(element: ViewNode | ViewDocumentFragment, consumables?: Consumables | Match): boolean | null;
107
+ /**
108
+ * Consumes {@link module:engine/view/element~ViewElement view element}, {@link module:engine/view/text~ViewText text node} or
109
+ * {@link module:engine/view/documentfragment~ViewDocumentFragment document fragment}.
110
+ * It returns `true` when all items included in method's call can be consumed, otherwise returns `false`.
111
+ *
112
+ * ```ts
113
+ * viewConsumable.consume( p, { name: true } ); // Consumes element's name.
114
+ * viewConsumable.consume( p, { attributes: 'name' } ); // Consumes element's attribute.
115
+ * viewConsumable.consume( p, { classes: 'foobar' } ); // Consumes element's class.
116
+ * viewConsumable.consume( p, { styles: 'color' } ); // Consumes element's style.
117
+ * viewConsumable.consume( p, { attributes: 'name', styles: 'color' } ); // Consumes attribute and style.
118
+ * viewConsumable.consume( p, { classes: [ 'baz', 'bar' ] } ); // Multiple consumables can be consumed.
119
+ * viewConsumable.consume( textNode ); // Consumes text node.
120
+ * viewConsumable.consume( docFragment ); // Consumes document fragment.
121
+ * ```
122
+ *
123
+ * Consuming classes and styles as attribute will test if all added classes/styles can be consumed.
124
+ *
125
+ * ```ts
126
+ * viewConsumable.consume( p, { attributes: 'class' } ); // Consume only if all added classes can be consumed.
127
+ * viewConsumable.consume( p, { attributes: 'style' } ); // Consume only if all added styles can be consumed.
128
+ * ```
129
+ *
130
+ * @param consumables Used only if first parameter is {@link module:engine/view/element~ViewElement view element} instance.
131
+ * @param consumables.name If set to true element's name will be included.
132
+ * @param consumables.attributes Attribute name or array of attribute names.
133
+ * @param consumables.classes Class name or array of class names.
134
+ * @param consumables.styles Style name or array of style names.
135
+ * @returns Returns `true` when all items included in method's call can be consumed,
136
+ * otherwise returns `false`.
137
+ */
138
+ consume(element: ViewNode | ViewDocumentFragment, consumables?: Consumables | Match): boolean;
139
+ /**
140
+ * Reverts {@link module:engine/view/element~ViewElement view element}, {@link module:engine/view/text~ViewText text node} or
141
+ * {@link module:engine/view/documentfragment~ViewDocumentFragment document fragment} so they can be consumed once again.
142
+ * Method does not revert items that were never previously added for consumption, even if they are included in
143
+ * method's call.
144
+ *
145
+ * ```ts
146
+ * viewConsumable.revert( p, { name: true } ); // Reverts element's name.
147
+ * viewConsumable.revert( p, { attributes: 'name' } ); // Reverts element's attribute.
148
+ * viewConsumable.revert( p, { classes: 'foobar' } ); // Reverts element's class.
149
+ * viewConsumable.revert( p, { styles: 'color' } ); // Reverts element's style.
150
+ * viewConsumable.revert( p, { attributes: 'name', styles: 'color' } ); // Reverts attribute and style.
151
+ * viewConsumable.revert( p, { classes: [ 'baz', 'bar' ] } ); // Multiple names can be reverted.
152
+ * viewConsumable.revert( textNode ); // Reverts text node.
153
+ * viewConsumable.revert( docFragment ); // Reverts document fragment.
154
+ * ```
155
+ *
156
+ * Reverting classes and styles as attribute will revert all classes/styles that were previously added for
157
+ * consumption.
158
+ *
159
+ * ```ts
160
+ * viewConsumable.revert( p, { attributes: 'class' } ); // Reverts all classes added for consumption.
161
+ * viewConsumable.revert( p, { attributes: 'style' } ); // Reverts all styles added for consumption.
162
+ * ```
163
+ *
164
+ * @param consumables Used only if first parameter is {@link module:engine/view/element~ViewElement view element} instance.
165
+ * @param consumables.name If set to true element's name will be included.
166
+ * @param consumables.attributes Attribute name or array of attribute names.
167
+ * @param consumables.classes Class name or array of class names.
168
+ * @param consumables.styles Style name or array of style names.
169
+ */
170
+ revert(element: ViewNode, consumables: Consumables | Match): void;
171
+ /**
172
+ * Creates {@link module:engine/conversion/viewconsumable~ViewConsumable ViewConsumable} instance from
173
+ * {@link module:engine/view/node~ViewNode node} or {@link module:engine/view/documentfragment~ViewDocumentFragment document fragment}.
174
+ * Instance will contain all elements, child nodes, attributes, styles and classes added for consumption.
175
+ *
176
+ * @param from View node or document fragment from which `ViewConsumable` will be created.
177
+ * @param instance If provided, given `ViewConsumable` instance will be used
178
+ * to add all consumables. It will be returned instead of a new instance.
179
+ */
180
+ static createFrom(from: ViewNode | ViewDocumentFragment, instance?: ViewConsumable): ViewConsumable;
181
181
  }
182
182
  /**
183
- * Object describing all features of a view element that could be consumed and converted individually.
184
- * This is a non-normalized form of {@link module:engine/view/element~ViewNormalizedConsumables} generated from the view Element.
185
- *
186
- * Example element:
187
- *
188
- * ```html
189
- * <a class="foo bar" style="color: red; margin: 5px" href="https://ckeditor.com" rel="nofollow noreferrer" target="_blank">
190
- * ```
191
- *
192
- * The `Consumables` would include:
193
- *
194
- * ```json
195
- * {
196
- * name: true,
197
- * classes: [ "foo", "bar" ],
198
- * styles: [ "color", "margin" ]
199
- * }
200
- * ```
201
- *
202
- * You could convert a `Consumable` into a {@link module:engine/view/element~ViewNormalizedConsumables}
203
- * using the {@link module:engine/conversion/viewconsumable~normalizeConsumables} helper.
204
- */
183
+ * Object describing all features of a view element that could be consumed and converted individually.
184
+ * This is a non-normalized form of {@link module:engine/view/element~ViewNormalizedConsumables} generated from the view Element.
185
+ *
186
+ * Example element:
187
+ *
188
+ * ```html
189
+ * <a class="foo bar" style="color: red; margin: 5px" href="https://ckeditor.com" rel="nofollow noreferrer" target="_blank">
190
+ * ```
191
+ *
192
+ * The `Consumables` would include:
193
+ *
194
+ * ```json
195
+ * {
196
+ * name: true,
197
+ * classes: [ "foo", "bar" ],
198
+ * styles: [ "color", "margin" ]
199
+ * }
200
+ * ```
201
+ *
202
+ * You could convert a `Consumable` into a {@link module:engine/view/element~ViewNormalizedConsumables}
203
+ * using the {@link module:engine/conversion/viewconsumable~normalizeConsumables} helper.
204
+ */
205
205
  export interface Consumables {
206
- /**
207
- * If set to `true` element's name will be included in a consumable.
208
- * Depending on the usage context it would be added as consumable, tested for being available for consume or consumed.
209
- */
210
- name?: boolean;
211
- /**
212
- * Attribute name or array of attribute names.
213
- */
214
- attributes?: string | Array<string>;
215
- /**
216
- * Class name or array of class names.
217
- */
218
- classes?: string | Array<string>;
219
- /**
220
- * Style name or array of style names.
221
- */
222
- styles?: string | Array<string>;
206
+ /**
207
+ * If set to `true` element's name will be included in a consumable.
208
+ * Depending on the usage context it would be added as consumable, tested for being available for consume or consumed.
209
+ */
210
+ name?: boolean;
211
+ /**
212
+ * Attribute name or array of attribute names.
213
+ */
214
+ attributes?: string | Array<string>;
215
+ /**
216
+ * Class name or array of class names.
217
+ */
218
+ classes?: string | Array<string>;
219
+ /**
220
+ * Style name or array of style names.
221
+ */
222
+ styles?: string | Array<string>;
223
223
  }
224
224
  /**
225
- * This is a private helper-class for {@link module:engine/conversion/viewconsumable~ViewConsumable}.
226
- * It represents and manipulates consumable parts of a single {@link module:engine/view/element~ViewElement}.
227
- *
228
- * @internal
229
- */
225
+ * This is a private helper-class for {@link module:engine/conversion/viewconsumable~ViewConsumable}.
226
+ * It represents and manipulates consumable parts of a single {@link module:engine/view/element~ViewElement}.
227
+ *
228
+ * @internal
229
+ */
230
230
  export declare class ViewElementConsumables {
231
- readonly element: ViewElement;
232
- /**
233
- * Flag indicating if name of the element can be consumed.
234
- */
235
- private _canConsumeName;
236
- /**
237
- * A map of element's consumables.
238
- * * For plain attributes the value is a boolean indicating whether the attribute is available to consume.
239
- * * For token based attributes (like class list and style) the value is a map of tokens to booleans
240
- * indicating whether the token is available to consume on the given attribute.
241
- */
242
- private readonly _attributes;
243
- /**
244
- * Creates ViewElementConsumables instance.
245
- *
246
- * @param from View element from which `ViewElementConsumables` is being created.
247
- */
248
- constructor(from: ViewElement);
249
- /**
250
- * Adds consumable parts of the {@link module:engine/view/element~ViewElement view element}.
251
- * Element's name itself can be marked to be consumed (when element's name is consumed its attributes, classes and
252
- * styles still could be consumed):
253
- *
254
- * ```ts
255
- * consumables.add( { name: true } );
256
- * ```
257
- *
258
- * Attributes classes and styles:
259
- *
260
- * ```ts
261
- * consumables.add( { attributes: [ [ 'title' ], [ 'class', 'foo' ], [ 'style', 'color'] ] } );
262
- * consumables.add( { attributes: [ [ 'title' ], [ 'name' ], [ 'class', 'foo' ], [ 'class', 'bar' ] ] } );
263
- * ```
264
- *
265
- * Note: This method accepts only {@link module:engine/view/element~ViewNormalizedConsumables}.
266
- * You can use {@link module:engine/conversion/viewconsumable~normalizeConsumables} helper to convert from
267
- * {@link module:engine/conversion/viewconsumable~Consumables} to `ViewNormalizedConsumables`.
268
- *
269
- * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `viewconsumable-invalid-attribute` when `class` or `style`
270
- * attribute is provided - it should be handled separately by providing `style` and `class` in consumables object.
271
- *
272
- * @param consumables Object describing which parts of the element can be consumed.
273
- */
274
- add(consumables: ViewNormalizedConsumables): void;
275
- /**
276
- * Tests if parts of the {@link module:engine/view/element~ViewElement view element} can be consumed.
277
- *
278
- * Element's name can be tested:
279
- *
280
- * ```ts
281
- * consumables.test( { name: true } );
282
- * ```
283
- *
284
- * Attributes classes and styles:
285
- *
286
- * ```ts
287
- * consumables.test( { attributes: [ [ 'title' ], [ 'class', 'foo' ], [ 'style', 'color' ] ] } );
288
- * consumables.test( { attributes: [ [ 'title' ], [ 'name' ], [ 'class', 'foo' ], [ 'class', 'bar' ] ] } );
289
- * ```
290
- *
291
- * @param consumables Object describing which parts of the element should be tested.
292
- * @returns `true` when all tested items can be consumed, `null` when even one of the items
293
- * was never marked for consumption and `false` when even one of the items was already consumed.
294
- */
295
- test(consumables: ViewNormalizedConsumables): boolean | null;
296
- /**
297
- * Tests if parts of the {@link module:engine/view/element~ViewElement view element} can be consumed and consumes them if available.
298
- * It returns `true` when all items included in method's call can be consumed, otherwise returns `false`.
299
- *
300
- * Element's name can be consumed:
301
- *
302
- * ```ts
303
- * consumables.consume( { name: true } );
304
- * ```
305
- *
306
- * Attributes classes and styles:
307
- *
308
- * ```ts
309
- * consumables.consume( { attributes: [ [ 'title' ], [ 'class', 'foo' ], [ 'style', 'color' ] ] } );
310
- * consumables.consume( { attributes: [ [ 'title' ], [ 'name' ], [ 'class', 'foo' ], [ 'class', 'bar' ] ] } );
311
- * ```
312
- *
313
- * @param consumables Object describing which parts of the element should be consumed.
314
- * @returns `true` when all tested items can be consumed and `false` when even one of the items could not be consumed.
315
- */
316
- consume(consumables: ViewNormalizedConsumables): boolean;
317
- /**
318
- * Revert already consumed parts of {@link module:engine/view/element~ViewElement view Element}, so they can be consumed once again.
319
- * Element's name can be reverted:
320
- *
321
- * ```ts
322
- * consumables.revert( { name: true } );
323
- * ```
324
- *
325
- * Attributes classes and styles:
326
- *
327
- * ```ts
328
- * consumables.revert( { attributes: [ [ 'title' ], [ 'class', 'foo' ], [ 'style', 'color' ] ] } );
329
- * consumables.revert( { attributes: [ [ 'title' ], [ 'name' ], [ 'class', 'foo' ], [ 'class', 'bar' ] ] } );
330
- * ```
331
- *
332
- * @param consumables Object describing which parts of the element should be reverted.
333
- */
334
- revert(consumables: ViewNormalizedConsumables): void;
231
+ readonly element: ViewElement;
232
+ /**
233
+ * Flag indicating if name of the element can be consumed.
234
+ */
235
+ private _canConsumeName;
236
+ /**
237
+ * A map of element's consumables.
238
+ * * For plain attributes the value is a boolean indicating whether the attribute is available to consume.
239
+ * * For token based attributes (like class list and style) the value is a map of tokens to booleans
240
+ * indicating whether the token is available to consume on the given attribute.
241
+ */
242
+ private readonly _attributes;
243
+ /**
244
+ * Creates ViewElementConsumables instance.
245
+ *
246
+ * @param from View element from which `ViewElementConsumables` is being created.
247
+ */
248
+ constructor(from: ViewElement);
249
+ /**
250
+ * Adds consumable parts of the {@link module:engine/view/element~ViewElement view element}.
251
+ * Element's name itself can be marked to be consumed (when element's name is consumed its attributes, classes and
252
+ * styles still could be consumed):
253
+ *
254
+ * ```ts
255
+ * consumables.add( { name: true } );
256
+ * ```
257
+ *
258
+ * Attributes classes and styles:
259
+ *
260
+ * ```ts
261
+ * consumables.add( { attributes: [ [ 'title' ], [ 'class', 'foo' ], [ 'style', 'color'] ] } );
262
+ * consumables.add( { attributes: [ [ 'title' ], [ 'name' ], [ 'class', 'foo' ], [ 'class', 'bar' ] ] } );
263
+ * ```
264
+ *
265
+ * Note: This method accepts only {@link module:engine/view/element~ViewNormalizedConsumables}.
266
+ * You can use {@link module:engine/conversion/viewconsumable~normalizeConsumables} helper to convert from
267
+ * {@link module:engine/conversion/viewconsumable~Consumables} to `ViewNormalizedConsumables`.
268
+ *
269
+ * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `viewconsumable-invalid-attribute` when `class` or `style`
270
+ * attribute is provided - it should be handled separately by providing `style` and `class` in consumables object.
271
+ *
272
+ * @param consumables Object describing which parts of the element can be consumed.
273
+ */
274
+ add(consumables: ViewNormalizedConsumables): void;
275
+ /**
276
+ * Tests if parts of the {@link module:engine/view/element~ViewElement view element} can be consumed.
277
+ *
278
+ * Element's name can be tested:
279
+ *
280
+ * ```ts
281
+ * consumables.test( { name: true } );
282
+ * ```
283
+ *
284
+ * Attributes classes and styles:
285
+ *
286
+ * ```ts
287
+ * consumables.test( { attributes: [ [ 'title' ], [ 'class', 'foo' ], [ 'style', 'color' ] ] } );
288
+ * consumables.test( { attributes: [ [ 'title' ], [ 'name' ], [ 'class', 'foo' ], [ 'class', 'bar' ] ] } );
289
+ * ```
290
+ *
291
+ * @param consumables Object describing which parts of the element should be tested.
292
+ * @returns `true` when all tested items can be consumed, `null` when even one of the items
293
+ * was never marked for consumption and `false` when even one of the items was already consumed.
294
+ */
295
+ test(consumables: ViewNormalizedConsumables): boolean | null;
296
+ /**
297
+ * Tests if parts of the {@link module:engine/view/element~ViewElement view element} can be consumed and consumes them if available.
298
+ * It returns `true` when all items included in method's call can be consumed, otherwise returns `false`.
299
+ *
300
+ * Element's name can be consumed:
301
+ *
302
+ * ```ts
303
+ * consumables.consume( { name: true } );
304
+ * ```
305
+ *
306
+ * Attributes classes and styles:
307
+ *
308
+ * ```ts
309
+ * consumables.consume( { attributes: [ [ 'title' ], [ 'class', 'foo' ], [ 'style', 'color' ] ] } );
310
+ * consumables.consume( { attributes: [ [ 'title' ], [ 'name' ], [ 'class', 'foo' ], [ 'class', 'bar' ] ] } );
311
+ * ```
312
+ *
313
+ * @param consumables Object describing which parts of the element should be consumed.
314
+ * @returns `true` when all tested items can be consumed and `false` when even one of the items could not be consumed.
315
+ */
316
+ consume(consumables: ViewNormalizedConsumables): boolean;
317
+ /**
318
+ * Revert already consumed parts of {@link module:engine/view/element~ViewElement view Element}, so they can be consumed once again.
319
+ * Element's name can be reverted:
320
+ *
321
+ * ```ts
322
+ * consumables.revert( { name: true } );
323
+ * ```
324
+ *
325
+ * Attributes classes and styles:
326
+ *
327
+ * ```ts
328
+ * consumables.revert( { attributes: [ [ 'title' ], [ 'class', 'foo' ], [ 'style', 'color' ] ] } );
329
+ * consumables.revert( { attributes: [ [ 'title' ], [ 'name' ], [ 'class', 'foo' ], [ 'class', 'bar' ] ] } );
330
+ * ```
331
+ *
332
+ * @param consumables Object describing which parts of the element should be reverted.
333
+ */
334
+ revert(consumables: ViewNormalizedConsumables): void;
335
335
  }
336
336
  /**
337
- * Normalizes a {@link module:engine/conversion/viewconsumable~Consumables} or {@link module:engine/view/matcher~Match}
338
- * to a {@link module:engine/view/element~ViewNormalizedConsumables}.
339
- *
340
- * @internal
341
- */
337
+ * Normalizes a {@link module:engine/conversion/viewconsumable~Consumables} or {@link module:engine/view/matcher~Match}
338
+ * to a {@link module:engine/view/element~ViewNormalizedConsumables}.
339
+ *
340
+ * @internal
341
+ */
342
342
  export declare function normalizeConsumables(consumables: Consumables | Match): ViewNormalizedConsumables;