@ckeditor/ckeditor5-engine 47.6.1 → 48.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.
Files changed (258) hide show
  1. package/LICENSE.md +1 -1
  2. package/{src → dist}/engineconfig.d.ts +6 -15
  3. package/dist/index-editor.css +38 -15
  4. package/dist/index.css +37 -37
  5. package/dist/index.css.map +1 -1
  6. package/{src → dist}/index.d.ts +0 -1
  7. package/dist/index.js +588 -94
  8. package/dist/index.js.map +1 -1
  9. package/{src → dist}/model/model.d.ts +10 -4
  10. package/{src → dist}/model/selection.d.ts +1 -1
  11. package/{src → dist}/view/downcastwriter.d.ts +3 -2
  12. package/{src → dist}/view/element.d.ts +2 -2
  13. package/{src → dist}/view/matcher.d.ts +4 -2
  14. package/dist/view/styles/background.d.ts +18 -0
  15. package/{src → dist}/view/styles/border.d.ts +0 -12
  16. package/{src → dist}/view/styles/margin.d.ts +0 -13
  17. package/{src → dist}/view/styles/padding.d.ts +0 -13
  18. package/{src → dist}/view/styles/utils.d.ts +12 -0
  19. package/package.json +20 -39
  20. package/src/controller/datacontroller.js +0 -522
  21. package/src/controller/editingcontroller.js +0 -181
  22. package/src/conversion/conversion.js +0 -606
  23. package/src/conversion/conversionhelpers.js +0 -33
  24. package/src/conversion/downcastdispatcher.js +0 -563
  25. package/src/conversion/downcasthelpers.js +0 -2160
  26. package/src/conversion/mapper.js +0 -1050
  27. package/src/conversion/modelconsumable.js +0 -331
  28. package/src/conversion/upcastdispatcher.js +0 -470
  29. package/src/conversion/upcasthelpers.js +0 -952
  30. package/src/conversion/viewconsumable.js +0 -541
  31. package/src/dataprocessor/basichtmlwriter.js +0 -22
  32. package/src/dataprocessor/dataprocessor.js +0 -5
  33. package/src/dataprocessor/htmldataprocessor.js +0 -107
  34. package/src/dataprocessor/htmlwriter.js +0 -5
  35. package/src/dataprocessor/xmldataprocessor.js +0 -127
  36. package/src/dev-utils/model.js +0 -396
  37. package/src/dev-utils/operationreplayer.js +0 -116
  38. package/src/dev-utils/utils.js +0 -122
  39. package/src/dev-utils/view.js +0 -990
  40. package/src/engineconfig.js +0 -5
  41. package/src/index.js +0 -134
  42. package/src/legacyerrors.js +0 -17
  43. package/src/model/batch.js +0 -98
  44. package/src/model/differ.js +0 -1288
  45. package/src/model/document.js +0 -398
  46. package/src/model/documentfragment.js +0 -332
  47. package/src/model/documentselection.js +0 -1026
  48. package/src/model/element.js +0 -323
  49. package/src/model/history.js +0 -206
  50. package/src/model/item.js +0 -5
  51. package/src/model/liveposition.js +0 -93
  52. package/src/model/liverange.js +0 -121
  53. package/src/model/markercollection.js +0 -436
  54. package/src/model/model.js +0 -866
  55. package/src/model/node.js +0 -371
  56. package/src/model/nodelist.js +0 -244
  57. package/src/model/operation/attributeoperation.js +0 -172
  58. package/src/model/operation/detachoperation.js +0 -87
  59. package/src/model/operation/insertoperation.js +0 -153
  60. package/src/model/operation/markeroperation.js +0 -136
  61. package/src/model/operation/mergeoperation.js +0 -184
  62. package/src/model/operation/moveoperation.js +0 -179
  63. package/src/model/operation/nooperation.js +0 -48
  64. package/src/model/operation/operation.js +0 -78
  65. package/src/model/operation/operationfactory.js +0 -44
  66. package/src/model/operation/renameoperation.js +0 -128
  67. package/src/model/operation/rootattributeoperation.js +0 -173
  68. package/src/model/operation/rootoperation.js +0 -106
  69. package/src/model/operation/splitoperation.js +0 -214
  70. package/src/model/operation/transform.js +0 -2211
  71. package/src/model/operation/utils.js +0 -217
  72. package/src/model/position.js +0 -1041
  73. package/src/model/range.js +0 -880
  74. package/src/model/rootelement.js +0 -82
  75. package/src/model/schema.js +0 -1542
  76. package/src/model/selection.js +0 -814
  77. package/src/model/text.js +0 -92
  78. package/src/model/textproxy.js +0 -202
  79. package/src/model/treewalker.js +0 -313
  80. package/src/model/typecheckable.js +0 -16
  81. package/src/model/utils/autoparagraphing.js +0 -63
  82. package/src/model/utils/deletecontent.js +0 -509
  83. package/src/model/utils/getselectedcontent.js +0 -126
  84. package/src/model/utils/insertcontent.js +0 -750
  85. package/src/model/utils/insertobject.js +0 -135
  86. package/src/model/utils/modifyselection.js +0 -187
  87. package/src/model/utils/selection-post-fixer.js +0 -264
  88. package/src/model/writer.js +0 -1318
  89. package/src/view/attributeelement.js +0 -220
  90. package/src/view/containerelement.js +0 -91
  91. package/src/view/datatransfer.js +0 -106
  92. package/src/view/document.js +0 -139
  93. package/src/view/documentfragment.js +0 -251
  94. package/src/view/documentselection.js +0 -270
  95. package/src/view/domconverter.js +0 -1661
  96. package/src/view/downcastwriter.js +0 -1589
  97. package/src/view/editableelement.js +0 -74
  98. package/src/view/element.js +0 -1053
  99. package/src/view/elementdefinition.js +0 -5
  100. package/src/view/emptyelement.js +0 -83
  101. package/src/view/filler.js +0 -161
  102. package/src/view/item.js +0 -5
  103. package/src/view/matcher.js +0 -437
  104. package/src/view/node.js +0 -238
  105. package/src/view/observer/arrowkeysobserver.js +0 -40
  106. package/src/view/observer/bubblingemittermixin.js +0 -215
  107. package/src/view/observer/bubblingeventinfo.js +0 -49
  108. package/src/view/observer/clickobserver.js +0 -26
  109. package/src/view/observer/compositionobserver.js +0 -64
  110. package/src/view/observer/domeventdata.js +0 -63
  111. package/src/view/observer/domeventobserver.js +0 -81
  112. package/src/view/observer/fakeselectionobserver.js +0 -95
  113. package/src/view/observer/focusobserver.js +0 -166
  114. package/src/view/observer/inputobserver.js +0 -236
  115. package/src/view/observer/keyobserver.js +0 -36
  116. package/src/view/observer/mouseobserver.js +0 -26
  117. package/src/view/observer/mutationobserver.js +0 -219
  118. package/src/view/observer/observer.js +0 -92
  119. package/src/view/observer/pointerobserver.js +0 -26
  120. package/src/view/observer/selectionobserver.js +0 -318
  121. package/src/view/observer/tabobserver.js +0 -42
  122. package/src/view/observer/touchobserver.js +0 -26
  123. package/src/view/placeholder.js +0 -285
  124. package/src/view/position.js +0 -341
  125. package/src/view/range.js +0 -451
  126. package/src/view/rawelement.js +0 -115
  127. package/src/view/renderer.js +0 -1148
  128. package/src/view/rooteditableelement.js +0 -78
  129. package/src/view/selection.js +0 -594
  130. package/src/view/styles/background.d.ts +0 -33
  131. package/src/view/styles/background.js +0 -74
  132. package/src/view/styles/border.js +0 -316
  133. package/src/view/styles/margin.js +0 -34
  134. package/src/view/styles/padding.js +0 -34
  135. package/src/view/styles/utils.js +0 -219
  136. package/src/view/stylesmap.js +0 -941
  137. package/src/view/text.js +0 -110
  138. package/src/view/textproxy.js +0 -136
  139. package/src/view/tokenlist.js +0 -194
  140. package/src/view/treewalker.js +0 -389
  141. package/src/view/typecheckable.js +0 -19
  142. package/src/view/uielement.js +0 -194
  143. package/src/view/upcastwriter.js +0 -363
  144. package/src/view/view.js +0 -579
  145. package/theme/placeholder.css +0 -36
  146. package/theme/renderer.css +0 -9
  147. /package/{src → dist}/controller/datacontroller.d.ts +0 -0
  148. /package/{src → dist}/controller/editingcontroller.d.ts +0 -0
  149. /package/{src → dist}/conversion/conversion.d.ts +0 -0
  150. /package/{src → dist}/conversion/conversionhelpers.d.ts +0 -0
  151. /package/{src → dist}/conversion/downcastdispatcher.d.ts +0 -0
  152. /package/{src → dist}/conversion/downcasthelpers.d.ts +0 -0
  153. /package/{src → dist}/conversion/mapper.d.ts +0 -0
  154. /package/{src → dist}/conversion/modelconsumable.d.ts +0 -0
  155. /package/{src → dist}/conversion/upcastdispatcher.d.ts +0 -0
  156. /package/{src → dist}/conversion/upcasthelpers.d.ts +0 -0
  157. /package/{src → dist}/conversion/viewconsumable.d.ts +0 -0
  158. /package/{src → dist}/dataprocessor/basichtmlwriter.d.ts +0 -0
  159. /package/{src → dist}/dataprocessor/dataprocessor.d.ts +0 -0
  160. /package/{src → dist}/dataprocessor/htmldataprocessor.d.ts +0 -0
  161. /package/{src → dist}/dataprocessor/htmlwriter.d.ts +0 -0
  162. /package/{src → dist}/dataprocessor/xmldataprocessor.d.ts +0 -0
  163. /package/{src → dist}/dev-utils/model.d.ts +0 -0
  164. /package/{src → dist}/dev-utils/operationreplayer.d.ts +0 -0
  165. /package/{src → dist}/dev-utils/utils.d.ts +0 -0
  166. /package/{src → dist}/dev-utils/view.d.ts +0 -0
  167. /package/{src → dist}/legacyerrors.d.ts +0 -0
  168. /package/{src → dist}/model/batch.d.ts +0 -0
  169. /package/{src → dist}/model/differ.d.ts +0 -0
  170. /package/{src → dist}/model/document.d.ts +0 -0
  171. /package/{src → dist}/model/documentfragment.d.ts +0 -0
  172. /package/{src → dist}/model/documentselection.d.ts +0 -0
  173. /package/{src → dist}/model/element.d.ts +0 -0
  174. /package/{src → dist}/model/history.d.ts +0 -0
  175. /package/{src → dist}/model/item.d.ts +0 -0
  176. /package/{src → dist}/model/liveposition.d.ts +0 -0
  177. /package/{src → dist}/model/liverange.d.ts +0 -0
  178. /package/{src → dist}/model/markercollection.d.ts +0 -0
  179. /package/{src → dist}/model/node.d.ts +0 -0
  180. /package/{src → dist}/model/nodelist.d.ts +0 -0
  181. /package/{src → dist}/model/operation/attributeoperation.d.ts +0 -0
  182. /package/{src → dist}/model/operation/detachoperation.d.ts +0 -0
  183. /package/{src → dist}/model/operation/insertoperation.d.ts +0 -0
  184. /package/{src → dist}/model/operation/markeroperation.d.ts +0 -0
  185. /package/{src → dist}/model/operation/mergeoperation.d.ts +0 -0
  186. /package/{src → dist}/model/operation/moveoperation.d.ts +0 -0
  187. /package/{src → dist}/model/operation/nooperation.d.ts +0 -0
  188. /package/{src → dist}/model/operation/operation.d.ts +0 -0
  189. /package/{src → dist}/model/operation/operationfactory.d.ts +0 -0
  190. /package/{src → dist}/model/operation/renameoperation.d.ts +0 -0
  191. /package/{src → dist}/model/operation/rootattributeoperation.d.ts +0 -0
  192. /package/{src → dist}/model/operation/rootoperation.d.ts +0 -0
  193. /package/{src → dist}/model/operation/splitoperation.d.ts +0 -0
  194. /package/{src → dist}/model/operation/transform.d.ts +0 -0
  195. /package/{src → dist}/model/operation/utils.d.ts +0 -0
  196. /package/{src → dist}/model/position.d.ts +0 -0
  197. /package/{src → dist}/model/range.d.ts +0 -0
  198. /package/{src → dist}/model/rootelement.d.ts +0 -0
  199. /package/{src → dist}/model/schema.d.ts +0 -0
  200. /package/{src → dist}/model/text.d.ts +0 -0
  201. /package/{src → dist}/model/textproxy.d.ts +0 -0
  202. /package/{src → dist}/model/treewalker.d.ts +0 -0
  203. /package/{src → dist}/model/typecheckable.d.ts +0 -0
  204. /package/{src → dist}/model/utils/autoparagraphing.d.ts +0 -0
  205. /package/{src → dist}/model/utils/deletecontent.d.ts +0 -0
  206. /package/{src → dist}/model/utils/getselectedcontent.d.ts +0 -0
  207. /package/{src → dist}/model/utils/insertcontent.d.ts +0 -0
  208. /package/{src → dist}/model/utils/insertobject.d.ts +0 -0
  209. /package/{src → dist}/model/utils/modifyselection.d.ts +0 -0
  210. /package/{src → dist}/model/utils/selection-post-fixer.d.ts +0 -0
  211. /package/{src → dist}/model/writer.d.ts +0 -0
  212. /package/{src → dist}/view/attributeelement.d.ts +0 -0
  213. /package/{src → dist}/view/containerelement.d.ts +0 -0
  214. /package/{src → dist}/view/datatransfer.d.ts +0 -0
  215. /package/{src → dist}/view/document.d.ts +0 -0
  216. /package/{src → dist}/view/documentfragment.d.ts +0 -0
  217. /package/{src → dist}/view/documentselection.d.ts +0 -0
  218. /package/{src → dist}/view/domconverter.d.ts +0 -0
  219. /package/{src → dist}/view/editableelement.d.ts +0 -0
  220. /package/{src → dist}/view/elementdefinition.d.ts +0 -0
  221. /package/{src → dist}/view/emptyelement.d.ts +0 -0
  222. /package/{src → dist}/view/filler.d.ts +0 -0
  223. /package/{src → dist}/view/item.d.ts +0 -0
  224. /package/{src → dist}/view/node.d.ts +0 -0
  225. /package/{src → dist}/view/observer/arrowkeysobserver.d.ts +0 -0
  226. /package/{src → dist}/view/observer/bubblingemittermixin.d.ts +0 -0
  227. /package/{src → dist}/view/observer/bubblingeventinfo.d.ts +0 -0
  228. /package/{src → dist}/view/observer/clickobserver.d.ts +0 -0
  229. /package/{src → dist}/view/observer/compositionobserver.d.ts +0 -0
  230. /package/{src → dist}/view/observer/domeventdata.d.ts +0 -0
  231. /package/{src → dist}/view/observer/domeventobserver.d.ts +0 -0
  232. /package/{src → dist}/view/observer/fakeselectionobserver.d.ts +0 -0
  233. /package/{src → dist}/view/observer/focusobserver.d.ts +0 -0
  234. /package/{src → dist}/view/observer/inputobserver.d.ts +0 -0
  235. /package/{src → dist}/view/observer/keyobserver.d.ts +0 -0
  236. /package/{src → dist}/view/observer/mouseobserver.d.ts +0 -0
  237. /package/{src → dist}/view/observer/mutationobserver.d.ts +0 -0
  238. /package/{src → dist}/view/observer/observer.d.ts +0 -0
  239. /package/{src → dist}/view/observer/pointerobserver.d.ts +0 -0
  240. /package/{src → dist}/view/observer/selectionobserver.d.ts +0 -0
  241. /package/{src → dist}/view/observer/tabobserver.d.ts +0 -0
  242. /package/{src → dist}/view/observer/touchobserver.d.ts +0 -0
  243. /package/{src → dist}/view/placeholder.d.ts +0 -0
  244. /package/{src → dist}/view/position.d.ts +0 -0
  245. /package/{src → dist}/view/range.d.ts +0 -0
  246. /package/{src → dist}/view/rawelement.d.ts +0 -0
  247. /package/{src → dist}/view/renderer.d.ts +0 -0
  248. /package/{src → dist}/view/rooteditableelement.d.ts +0 -0
  249. /package/{src → dist}/view/selection.d.ts +0 -0
  250. /package/{src → dist}/view/stylesmap.d.ts +0 -0
  251. /package/{src → dist}/view/text.d.ts +0 -0
  252. /package/{src → dist}/view/textproxy.d.ts +0 -0
  253. /package/{src → dist}/view/tokenlist.d.ts +0 -0
  254. /package/{src → dist}/view/treewalker.d.ts +0 -0
  255. /package/{src → dist}/view/typecheckable.d.ts +0 -0
  256. /package/{src → dist}/view/uielement.d.ts +0 -0
  257. /package/{src → dist}/view/upcastwriter.d.ts +0 -0
  258. /package/{src → dist}/view/view.d.ts +0 -0
@@ -1,363 +0,0 @@
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
- /**
6
- * @module engine/view/upcastwriter
7
- */
8
- import { ViewDocumentFragment } from './documentfragment.js';
9
- import { ViewElement } from './element.js';
10
- import { ViewText } from './text.js';
11
- import { isPlainObject } from 'es-toolkit/compat';
12
- import { ViewPosition } from './position.js';
13
- import { ViewRange } from './range.js';
14
- import { ViewSelection } from './selection.js';
15
- /**
16
- * View upcast writer. It provides a set of methods used to manipulate non-semantic view trees.
17
- *
18
- * It should be used only while working on a non-semantic view
19
- * (e.g. a view created from HTML string on paste).
20
- * To manipulate a view which was or is being downcasted from the the model use the
21
- * {@link module:engine/view/downcastwriter~ViewDowncastWriter downcast writer}.
22
- *
23
- * Read more about changing the view in the {@glink framework/architecture/editing-engine#changing-the-view Changing the view}
24
- * section of the {@glink framework/architecture/editing-engine Editing engine architecture} guide.
25
- *
26
- * Unlike `ViewDowncastWriter`, which is available in the {@link module:engine/view/view~EditingView#change `View#change()`} block,
27
- * `ViewUpcastWriter` can be created wherever you need it:
28
- *
29
- * ```ts
30
- * const writer = new ViewUpcastWriter( viewDocument );
31
- * const text = writer.createText( 'foo!' );
32
- *
33
- * writer.appendChild( text, someViewElement );
34
- * ```
35
- */
36
- export class ViewUpcastWriter {
37
- /**
38
- * The view document instance in which this upcast writer operates.
39
- */
40
- document;
41
- /**
42
- * @param document The view document instance in which this upcast writer operates.
43
- */
44
- constructor(document) {
45
- this.document = document;
46
- }
47
- /**
48
- * Creates a new {@link module:engine/view/documentfragment~ViewDocumentFragment} instance.
49
- *
50
- * @param children A list of nodes to be inserted into the created document fragment.
51
- * @returns The created document fragment.
52
- */
53
- createDocumentFragment(children) {
54
- return new ViewDocumentFragment(this.document, children);
55
- }
56
- /**
57
- * Creates a new {@link module:engine/view/element~ViewElement} instance.
58
- *
59
- * Attributes can be passed in various formats:
60
- *
61
- * ```ts
62
- * upcastWriter.createElement( 'div', { class: 'editor', contentEditable: 'true' } ); // object
63
- * upcastWriter.createElement( 'div', [ [ 'class', 'editor' ], [ 'contentEditable', 'true' ] ] ); // map-like iterator
64
- * upcastWriter.createElement( 'div', mapOfAttributes ); // map
65
- * ```
66
- *
67
- * @param name Node name.
68
- * @param attrs Collection of attributes.
69
- * @param children A list of nodes to be inserted into created element.
70
- * @returns Created element.
71
- */
72
- createElement(name, attrs, children) {
73
- return new ViewElement(this.document, name, attrs, children);
74
- }
75
- /**
76
- * Creates a new {@link module:engine/view/text~ViewText} instance.
77
- *
78
- * @param data The text's data.
79
- * @returns The created text node.
80
- */
81
- createText(data) {
82
- return new ViewText(this.document, data);
83
- }
84
- /**
85
- * Clones the provided element.
86
- *
87
- * @see module:engine/view/element~ViewElement#_clone
88
- * @param element Element to be cloned.
89
- * @param deep If set to `true` clones element and all its children recursively. When set to `false`,
90
- * element will be cloned without any children.
91
- * @returns Clone of this element.
92
- */
93
- clone(element, deep = false) {
94
- return element._clone(deep);
95
- }
96
- /**
97
- * Appends a child node or a list of child nodes at the end of this node
98
- * and sets the parent of these nodes to this element.
99
- *
100
- * @see module:engine/view/element~ViewElement#_appendChild
101
- * @param items Items to be inserted.
102
- * @param element Element to which items will be appended.
103
- * @returns Number of appended nodes.
104
- */
105
- appendChild(items, element) {
106
- return element._appendChild(items);
107
- }
108
- /**
109
- * Inserts a child node or a list of child nodes on the given index and sets the parent of these nodes to
110
- * this element.
111
- *
112
- * @see module:engine/view/element~ViewElement#_insertChild
113
- * @param index Offset at which nodes should be inserted.
114
- * @param items Items to be inserted.
115
- * @param element Element to which items will be inserted.
116
- * @returns Number of inserted nodes.
117
- */
118
- insertChild(index, items, element) {
119
- return element._insertChild(index, items);
120
- }
121
- /**
122
- * Removes the given number of child nodes starting at the given index and set the parent of these nodes to `null`.
123
- *
124
- * @see module:engine/view/element~ViewElement#_removeChildren
125
- * @param index Offset from which nodes will be removed.
126
- * @param howMany Number of nodes to remove.
127
- * @param element Element which children will be removed.
128
- * @returns The array containing removed nodes.
129
- */
130
- removeChildren(index, howMany, element) {
131
- return element._removeChildren(index, howMany);
132
- }
133
- /**
134
- * Removes given element from the view structure. Will not have effect on detached elements.
135
- *
136
- * @param element Element which will be removed.
137
- * @returns The array containing removed nodes.
138
- */
139
- remove(element) {
140
- const parent = element.parent;
141
- if (parent) {
142
- return this.removeChildren(parent.getChildIndex(element), 1, parent);
143
- }
144
- return [];
145
- }
146
- /**
147
- * Replaces given element with the new one in the view structure. Will not have effect on detached elements.
148
- *
149
- * @param oldElement Element which will be replaced.
150
- * @param newElement Element which will be inserted in the place of the old element.
151
- * @returns Whether old element was successfully replaced.
152
- */
153
- replace(oldElement, newElement) {
154
- const parent = oldElement.parent;
155
- if (parent) {
156
- const index = parent.getChildIndex(oldElement);
157
- this.removeChildren(index, 1, parent);
158
- this.insertChild(index, newElement, parent);
159
- return true;
160
- }
161
- return false;
162
- }
163
- /**
164
- * Removes given element from view structure and places its children in its position.
165
- * It does nothing if element has no parent.
166
- *
167
- * @param element Element to unwrap.
168
- */
169
- unwrapElement(element) {
170
- const parent = element.parent;
171
- if (parent) {
172
- const index = parent.getChildIndex(element);
173
- this.remove(element);
174
- this.insertChild(index, element.getChildren(), parent);
175
- }
176
- }
177
- /**
178
- * Renames element by creating a copy of a given element but with its name changed and then moving contents of the
179
- * old element to the new one.
180
- *
181
- * Since this function creates a new element and removes the given one, the new element is returned to keep reference.
182
- *
183
- * @param newName New element name.
184
- * @param element Element to be renamed.
185
- * @returns New element or null if the old element was not replaced (happens for detached elements).
186
- */
187
- rename(newName, element) {
188
- const newElement = new ViewElement(this.document, newName, element.getAttributes(), element.getChildren());
189
- return this.replace(element, newElement) ? newElement : null;
190
- }
191
- /**
192
- * Adds or overwrites element's attribute with a specified key and value.
193
- *
194
- * ```ts
195
- * writer.setAttribute( 'href', 'http://ckeditor.com', linkElement );
196
- * ```
197
- *
198
- * @see module:engine/view/element~ViewElement#_setAttribute
199
- * @param key Attribute key.
200
- * @param value Attribute value.
201
- * @param element Element for which attribute will be set.
202
- */
203
- setAttribute(key, value, element) {
204
- element._setAttribute(key, value);
205
- }
206
- /**
207
- * Removes attribute from the element.
208
- *
209
- * ```ts
210
- * writer.removeAttribute( 'href', linkElement );
211
- * ```
212
- *
213
- * @see module:engine/view/element~ViewElement#_removeAttribute
214
- * @param key Attribute key.
215
- * @param element Element from which attribute will be removed.
216
- */
217
- removeAttribute(key, element) {
218
- element._removeAttribute(key);
219
- }
220
- /**
221
- * Adds specified class to the element.
222
- *
223
- * ```ts
224
- * writer.addClass( 'foo', linkElement );
225
- * writer.addClass( [ 'foo', 'bar' ], linkElement );
226
- * ```
227
- *
228
- * @see module:engine/view/element~ViewElement#_addClass
229
- * @param className Single class name or array of class names which will be added.
230
- * @param element Element for which class will be added.
231
- */
232
- addClass(className, element) {
233
- element._addClass(className);
234
- }
235
- /**
236
- * Removes specified class from the element.
237
- *
238
- * ```ts
239
- * writer.removeClass( 'foo', linkElement );
240
- * writer.removeClass( [ 'foo', 'bar' ], linkElement );
241
- * ```
242
- *
243
- * @see module:engine/view/element~ViewElement#_removeClass
244
- * @param className Single class name or array of class names which will be removed.
245
- * @param element Element from which class will be removed.
246
- */
247
- removeClass(className, element) {
248
- element._removeClass(className);
249
- }
250
- setStyle(property, valueOrElement, element) {
251
- if (isPlainObject(property) && element === undefined) {
252
- valueOrElement._setStyle(property);
253
- }
254
- else {
255
- element._setStyle(property, valueOrElement);
256
- }
257
- }
258
- /**
259
- * Removes specified style from the element.
260
- *
261
- * ```ts
262
- * writer.removeStyle( 'color', element ); // Removes 'color' style.
263
- * writer.removeStyle( [ 'color', 'border-top' ], element ); // Removes both 'color' and 'border-top' styles.
264
- * ```
265
- *
266
- * **Note**: This method can work with normalized style names if
267
- * {@link module:engine/controller/datacontroller~DataController#addStyleProcessorRules a particular style processor rule is enabled}.
268
- * See {@link module:engine/view/stylesmap~StylesMap#remove `StylesMap#remove()`} for details.
269
- *
270
- * @see module:engine/view/element~ViewElement#_removeStyle
271
- * @param property Style property name or names to be removed.
272
- * @param element Element from which style will be removed.
273
- */
274
- removeStyle(property, element) {
275
- element._removeStyle(property);
276
- }
277
- /**
278
- * Sets a custom property on element. Unlike attributes, custom properties are not rendered to the DOM,
279
- * so they can be used to add special data to elements.
280
- *
281
- * @see module:engine/view/element~ViewElement#_setCustomProperty
282
- * @param key Custom property name/key.
283
- * @param value Custom property value to be stored.
284
- * @param element Element for which custom property will be set.
285
- */
286
- setCustomProperty(key, value, element) {
287
- element._setCustomProperty(key, value);
288
- }
289
- /**
290
- * Removes a custom property stored under the given key.
291
- *
292
- * @see module:engine/view/element~ViewElement#_removeCustomProperty
293
- * @param key Name/key of the custom property to be removed.
294
- * @param element Element from which the custom property will be removed.
295
- * @returns Returns true if property was removed.
296
- */
297
- removeCustomProperty(key, element) {
298
- return element._removeCustomProperty(key);
299
- }
300
- /**
301
- * Creates position at the given location. The location can be specified as:
302
- *
303
- * * a {@link module:engine/view/position~ViewPosition position},
304
- * * parent element and offset (offset defaults to `0`),
305
- * * parent element and `'end'` (sets position at the end of that element),
306
- * * {@link module:engine/view/item~ViewItem view item} and `'before'` or `'after'` (sets position before or after given view item).
307
- *
308
- * This method is a shortcut to other constructors such as:
309
- *
310
- * * {@link #createPositionBefore},
311
- * * {@link #createPositionAfter},
312
- *
313
- * @param offset Offset or one of the flags. Used only when first parameter is a {@link module:engine/view/item~ViewItem view item}.
314
- */
315
- createPositionAt(itemOrPosition, offset) {
316
- return ViewPosition._createAt(itemOrPosition, offset);
317
- }
318
- /**
319
- * Creates a new position after given view item.
320
- *
321
- * @param item View item after which the position should be located.
322
- */
323
- createPositionAfter(item) {
324
- return ViewPosition._createAfter(item);
325
- }
326
- /**
327
- * Creates a new position before given view item.
328
- *
329
- * @param item View item before which the position should be located.
330
- */
331
- createPositionBefore(item) {
332
- return ViewPosition._createBefore(item);
333
- }
334
- /**
335
- * Creates a range spanning from `start` position to `end` position.
336
- *
337
- * **Note:** This factory method creates it's own {@link module:engine/view/position~ViewPosition} instances basing on passed values.
338
- *
339
- * @param start Start position.
340
- * @param end End position. If not set, range will be collapsed at `start` position.
341
- */
342
- createRange(start, end) {
343
- return new ViewRange(start, end);
344
- }
345
- /**
346
- * Creates a range that starts before given {@link module:engine/view/item~ViewItem view item} and ends after it.
347
- */
348
- createRangeOn(item) {
349
- return ViewRange._createOn(item);
350
- }
351
- /**
352
- * Creates a range inside an {@link module:engine/view/element~ViewElement element} which starts before the first child of
353
- * that element and ends after the last child of that element.
354
- *
355
- * @param element Element which is a parent for the range.
356
- */
357
- createRangeIn(element) {
358
- return ViewRange._createIn(element);
359
- }
360
- createSelection(...args) {
361
- return new ViewSelection(...args);
362
- }
363
- }