@ckeditor/ckeditor5-engine 30.0.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 (117) hide show
  1. package/LICENSE.md +17 -0
  2. package/README.md +30 -0
  3. package/package.json +70 -0
  4. package/src/controller/datacontroller.js +563 -0
  5. package/src/controller/editingcontroller.js +149 -0
  6. package/src/conversion/conversion.js +644 -0
  7. package/src/conversion/conversionhelpers.js +40 -0
  8. package/src/conversion/downcastdispatcher.js +914 -0
  9. package/src/conversion/downcasthelpers.js +1706 -0
  10. package/src/conversion/mapper.js +696 -0
  11. package/src/conversion/modelconsumable.js +329 -0
  12. package/src/conversion/upcastdispatcher.js +807 -0
  13. package/src/conversion/upcasthelpers.js +997 -0
  14. package/src/conversion/viewconsumable.js +623 -0
  15. package/src/dataprocessor/basichtmlwriter.js +32 -0
  16. package/src/dataprocessor/dataprocessor.jsdoc +64 -0
  17. package/src/dataprocessor/htmldataprocessor.js +159 -0
  18. package/src/dataprocessor/htmlwriter.js +22 -0
  19. package/src/dataprocessor/xmldataprocessor.js +161 -0
  20. package/src/dev-utils/model.js +482 -0
  21. package/src/dev-utils/operationreplayer.js +140 -0
  22. package/src/dev-utils/utils.js +103 -0
  23. package/src/dev-utils/view.js +1091 -0
  24. package/src/index.js +52 -0
  25. package/src/model/batch.js +82 -0
  26. package/src/model/differ.js +1282 -0
  27. package/src/model/document.js +483 -0
  28. package/src/model/documentfragment.js +390 -0
  29. package/src/model/documentselection.js +1261 -0
  30. package/src/model/element.js +438 -0
  31. package/src/model/history.js +138 -0
  32. package/src/model/item.jsdoc +14 -0
  33. package/src/model/liveposition.js +182 -0
  34. package/src/model/liverange.js +221 -0
  35. package/src/model/markercollection.js +553 -0
  36. package/src/model/model.js +934 -0
  37. package/src/model/node.js +507 -0
  38. package/src/model/nodelist.js +217 -0
  39. package/src/model/operation/attributeoperation.js +202 -0
  40. package/src/model/operation/detachoperation.js +103 -0
  41. package/src/model/operation/insertoperation.js +188 -0
  42. package/src/model/operation/markeroperation.js +154 -0
  43. package/src/model/operation/mergeoperation.js +216 -0
  44. package/src/model/operation/moveoperation.js +209 -0
  45. package/src/model/operation/nooperation.js +58 -0
  46. package/src/model/operation/operation.js +139 -0
  47. package/src/model/operation/operationfactory.js +49 -0
  48. package/src/model/operation/renameoperation.js +155 -0
  49. package/src/model/operation/rootattributeoperation.js +211 -0
  50. package/src/model/operation/splitoperation.js +254 -0
  51. package/src/model/operation/transform.js +2389 -0
  52. package/src/model/operation/utils.js +292 -0
  53. package/src/model/position.js +1164 -0
  54. package/src/model/range.js +1049 -0
  55. package/src/model/rootelement.js +111 -0
  56. package/src/model/schema.js +1851 -0
  57. package/src/model/selection.js +902 -0
  58. package/src/model/text.js +138 -0
  59. package/src/model/textproxy.js +279 -0
  60. package/src/model/treewalker.js +414 -0
  61. package/src/model/utils/autoparagraphing.js +77 -0
  62. package/src/model/utils/deletecontent.js +528 -0
  63. package/src/model/utils/getselectedcontent.js +150 -0
  64. package/src/model/utils/insertcontent.js +824 -0
  65. package/src/model/utils/modifyselection.js +229 -0
  66. package/src/model/utils/selection-post-fixer.js +297 -0
  67. package/src/model/writer.js +1574 -0
  68. package/src/view/attributeelement.js +274 -0
  69. package/src/view/containerelement.js +123 -0
  70. package/src/view/document.js +221 -0
  71. package/src/view/documentfragment.js +273 -0
  72. package/src/view/documentselection.js +387 -0
  73. package/src/view/domconverter.js +1437 -0
  74. package/src/view/downcastwriter.js +2121 -0
  75. package/src/view/editableelement.js +118 -0
  76. package/src/view/element.js +945 -0
  77. package/src/view/elementdefinition.jsdoc +59 -0
  78. package/src/view/emptyelement.js +119 -0
  79. package/src/view/filler.js +161 -0
  80. package/src/view/item.jsdoc +14 -0
  81. package/src/view/matcher.js +776 -0
  82. package/src/view/node.js +391 -0
  83. package/src/view/observer/arrowkeysobserver.js +58 -0
  84. package/src/view/observer/bubblingemittermixin.js +307 -0
  85. package/src/view/observer/bubblingeventinfo.js +71 -0
  86. package/src/view/observer/clickobserver.js +46 -0
  87. package/src/view/observer/compositionobserver.js +79 -0
  88. package/src/view/observer/domeventdata.js +82 -0
  89. package/src/view/observer/domeventobserver.js +99 -0
  90. package/src/view/observer/fakeselectionobserver.js +118 -0
  91. package/src/view/observer/focusobserver.js +106 -0
  92. package/src/view/observer/inputobserver.js +44 -0
  93. package/src/view/observer/keyobserver.js +83 -0
  94. package/src/view/observer/mouseobserver.js +56 -0
  95. package/src/view/observer/mutationobserver.js +345 -0
  96. package/src/view/observer/observer.js +118 -0
  97. package/src/view/observer/selectionobserver.js +242 -0
  98. package/src/view/placeholder.js +285 -0
  99. package/src/view/position.js +426 -0
  100. package/src/view/range.js +533 -0
  101. package/src/view/rawelement.js +148 -0
  102. package/src/view/renderer.js +1037 -0
  103. package/src/view/rooteditableelement.js +107 -0
  104. package/src/view/selection.js +718 -0
  105. package/src/view/styles/background.js +73 -0
  106. package/src/view/styles/border.js +362 -0
  107. package/src/view/styles/margin.js +41 -0
  108. package/src/view/styles/padding.js +40 -0
  109. package/src/view/styles/utils.js +277 -0
  110. package/src/view/stylesmap.js +938 -0
  111. package/src/view/text.js +147 -0
  112. package/src/view/textproxy.js +199 -0
  113. package/src/view/treewalker.js +496 -0
  114. package/src/view/uielement.js +238 -0
  115. package/src/view/upcastwriter.js +484 -0
  116. package/src/view/view.js +721 -0
  117. package/theme/placeholder.css +27 -0
package/src/index.js ADDED
@@ -0,0 +1,52 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+
6
+ /**
7
+ * @module engine
8
+ */
9
+
10
+ export * from './view/placeholder';
11
+
12
+ export { default as EditingController } from './controller/editingcontroller';
13
+ export { default as DataController } from './controller/datacontroller';
14
+
15
+ export { default as Conversion } from './conversion/conversion';
16
+
17
+ export { default as HtmlDataProcessor } from './dataprocessor/htmldataprocessor';
18
+
19
+ export { default as InsertOperation } from './model/operation/insertoperation';
20
+ export { default as MarkerOperation } from './model/operation/markeroperation';
21
+ export { default as OperationFactory } from './model/operation/operationfactory';
22
+ export { transformSets } from './model/operation/transform';
23
+
24
+ export { default as DocumentSelection } from './model/documentselection';
25
+ export { default as Range } from './model/range';
26
+ export { default as LiveRange } from './model/liverange';
27
+ export { default as LivePosition } from './model/liveposition';
28
+ export { default as Model } from './model/model';
29
+ export { default as TreeWalker } from './model/treewalker';
30
+ export { default as Element } from './model/element';
31
+
32
+ export { default as DomConverter } from './view/domconverter';
33
+ export { default as Renderer } from './view/renderer';
34
+ export { default as ViewDocument } from './view/document';
35
+
36
+ export { getFillerOffset } from './view/containerelement';
37
+ export { default as Observer } from './view/observer/observer';
38
+ export { default as ClickObserver } from './view/observer/clickobserver';
39
+ export { default as DomEventObserver } from './view/observer/domeventobserver';
40
+ export { default as MouseObserver } from './view/observer/mouseobserver';
41
+ export { default as DowncastWriter } from './view/downcastwriter';
42
+ export { default as UpcastWriter } from './view/upcastwriter';
43
+ export { default as Matcher } from './view/matcher';
44
+
45
+ export { default as DomEventData } from './view/observer/domeventdata';
46
+
47
+ export { StylesProcessor } from './view/stylesmap';
48
+ export * from './view/styles/background';
49
+ export * from './view/styles/border';
50
+ export * from './view/styles/margin';
51
+ export * from './view/styles/padding';
52
+ export * from './view/styles/utils';
@@ -0,0 +1,82 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+
6
+ /**
7
+ * @module engine/model/batch
8
+ */
9
+
10
+ /**
11
+ * A batch instance groups model changes ({@link module:engine/model/operation/operation~Operation operations}). All operations
12
+ * grouped in a single batch can be reverted together, so you can also think about a batch as of a single undo step. If you want
13
+ * to extend a given undo step, you can add more changes to the batch using {@link module:engine/model/model~Model#enqueueChange}:
14
+ *
15
+ * model.enqueueChange( batch, writer => {
16
+ * writer.insertText( 'foo', paragraph, 'end' );
17
+ * } );
18
+ *
19
+ * @see module:engine/model/model~Model#enqueueChange
20
+ * @see module:engine/model/model~Model#change
21
+ */
22
+ export default class Batch {
23
+ /**
24
+ * Creates a batch instance.
25
+ *
26
+ * @see module:engine/model/model~Model#enqueueChange
27
+ * @see module:engine/model/model~Model#change
28
+ * @param {'transparent'|'default'} [type='default'] The type of the batch.
29
+ */
30
+ constructor( type = 'default' ) {
31
+ /**
32
+ * An array of operations that compose this batch.
33
+ *
34
+ * @readonly
35
+ * @type {Array.<module:engine/model/operation/operation~Operation>}
36
+ */
37
+ this.operations = [];
38
+
39
+ /**
40
+ * The type of the batch.
41
+ *
42
+ * It can be one of the following values:
43
+ * * `'default'` &ndash; All "normal" batches. This is the most commonly used type.
44
+ * * `'transparent'` &ndash; A batch that should be ignored by other features, i.e. an initial batch or collaborative editing
45
+ * changes.
46
+ *
47
+ * @readonly
48
+ * @type {'transparent'|'default'}
49
+ */
50
+ this.type = type;
51
+ }
52
+
53
+ /**
54
+ * Returns the base version of this batch, which is equal to the base version of the first operation in the batch.
55
+ * If there are no operations in the batch or neither operation has the base version set, it returns `null`.
56
+ *
57
+ * @readonly
58
+ * @type {Number|null}
59
+ */
60
+ get baseVersion() {
61
+ for ( const op of this.operations ) {
62
+ if ( op.baseVersion !== null ) {
63
+ return op.baseVersion;
64
+ }
65
+ }
66
+
67
+ return null;
68
+ }
69
+
70
+ /**
71
+ * Adds an operation to the batch instance.
72
+ *
73
+ * @param {module:engine/model/operation/operation~Operation} operation An operation to add.
74
+ * @returns {module:engine/model/operation/operation~Operation} The added operation.
75
+ */
76
+ addOperation( operation ) {
77
+ operation.batch = this;
78
+ this.operations.push( operation );
79
+
80
+ return operation;
81
+ }
82
+ }