@ckeditor/ckeditor5-engine 43.3.1 → 44.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ckeditor/ckeditor5-engine",
3
- "version": "43.3.1",
3
+ "version": "44.0.0-alpha.0",
4
4
  "description": "The editing engine of CKEditor 5 – the best browser-based rich text editor.",
5
5
  "keywords": [
6
6
  "wysiwyg",
@@ -24,7 +24,7 @@
24
24
  "type": "module",
25
25
  "main": "src/index.js",
26
26
  "dependencies": {
27
- "@ckeditor/ckeditor5-utils": "43.3.1",
27
+ "@ckeditor/ckeditor5-utils": "44.0.0-alpha.0",
28
28
  "lodash-es": "4.17.21"
29
29
  },
30
30
  "author": "CKSource (http://cksource.com/)",
package/src/index.d.ts CHANGED
@@ -50,7 +50,7 @@ export type { default as Differ, DiffItem, DiffItemAttribute, DiffItemInsert, Di
50
50
  export type { default as Item } from './model/item.js';
51
51
  export type { default as Node, NodeAttributes } from './model/node.js';
52
52
  export type { default as RootElement } from './model/rootelement.js';
53
- export type { default as Schema, SchemaAttributeCheckCallback, SchemaChildCheckCallback, AttributeProperties, SchemaItemDefinition, SchemaContext } from './model/schema.js';
53
+ export type { default as Schema, SchemaAttributeCheckCallback, SchemaChildCheckCallback, AttributeProperties, SchemaItemDefinition, SchemaContext, SchemaContextDefinition } from './model/schema.js';
54
54
  export type { default as Selection, Selectable } from './model/selection.js';
55
55
  export type { default as TypeCheckable } from './model/typecheckable.js';
56
56
  export type { default as Writer } from './model/writer.js';
@@ -454,7 +454,9 @@ export default class Renderer extends /* #__PURE__ */ ObservableMixin() {
454
454
  // Note: It is important to first remove DOM attributes and then set new ones, because some view attributes may be renamed
455
455
  // as they are set on DOM (due to unsafe attributes handling). If we set the view attribute first, and then remove
456
456
  // non-existing DOM attributes, then we would remove the attribute that we just set.
457
- for (const domAttr of domElement.attributes) {
457
+ //
458
+ // Note: The domElement.attributes is a live collection, so we need to convert it to an array to avoid issues.
459
+ for (const domAttr of Array.from(domElement.attributes)) {
458
460
  const key = domAttr.name;
459
461
  // All other attributes not present in the DOM should be removed.
460
462
  if (!viewElement.hasAttribute(key)) {