8
0
فهرست منبع

Merge branch 't/1060' into t/1015

Szymon Kupś 8 سال پیش
والد
کامیت
943220983f
2فایلهای تغییر یافته به همراه10 افزوده شده و 21 حذف شده
  1. 5 16
      packages/ckeditor5-engine/src/view/element.js
  2. 5 5
      packages/ckeditor5-engine/tests/view/element.js

+ 5 - 16
packages/ckeditor5-engine/src/view/element.js

@@ -678,7 +678,7 @@ export default class Element extends Node {
 	 * Two elements that {@link #isSimilar are similar} will have same identity string.
 	 * It has the following format:
 	 *
-	 *		"name|classes(class1,class2,class3)|styles(style1=val1,style2=val2)|attributes(attr1=val1,attr2=val2)"
+	 *		'name class="class1,class2" style="style1:value1;style2:value2" attr1="val1" attr2="val2"'
  	 *
 	 * For example:
 	 *
@@ -689,7 +689,7 @@ export default class Element extends Node {
 	 *		element.setStyle( 'border-color', 'white' );
 	 *		element.addClass( 'baz' );
 	 *
-	 *		// returns "foo|classes(baz)|styles(border-color=white,color=red)|attributes(apple=20,banana=10)"
+	 *		// returns 'foo class="baz" style="border-color:white;color:red" apple="20" banana="10"'
 	 *		element.getIdentity();
 	 *
 	 * NOTE: Classes, styles and other attributes are sorted alphabetically.
@@ -698,10 +698,10 @@ export default class Element extends Node {
 	 */
 	getIdentity() {
 		const classes = Array.from( this._classes ).sort().join( ',' );
-		const attributes = mapToSortedString( this._attrs );
-		const styles = mapToSortedString( this._styles );
+		const styles = Array.from( this._styles ).map( i => `${ i[ 0 ] }:${ i[ 1 ] }` ).sort().join( ';' );
+		const attributes = Array.from( this._attrs ).map( i => `${ i[ 0 ] }="${ i[ 1 ] }"` ).sort().join( ' ' );
 
-		return `${ this.name }|classes(${ classes })|styles(${ styles })|attributes(${ attributes })`;
+		return `${ this.name } class="${ classes }" style="${ styles }"${ attributes == '' ? '' : ' ' + attributes }`;
 	}
 
 	/**
@@ -819,14 +819,3 @@ function normalize( nodes ) {
 			return typeof node == 'string' ? new Text( node ) : node;
 		} );
 }
-
-// Returns string representation of povided map in following format:
-//
-//		"mapKey1=value1,mapKey2=value2,mapKey3=value3"
-//
-// NOTE: All map keys should be strings. Key-value pairs will be sorted.
-//
-// @returns {String}
-function mapToSortedString( map ) {
-	return Array.from( map ).map( i => i[ 0 ] + '=' + i[ 1 ] ).sort().join( ',' );
-}

+ 5 - 5
packages/ckeditor5-engine/tests/view/element.js

@@ -986,14 +986,14 @@ describe( 'Element', () => {
 		it( 'should return only name if no other attributes are present', () => {
 			const el = new Element( 'foo' );
 
-			expect( el.getIdentity() ).to.equal( 'foo|classes()|styles()|attributes()' );
+			expect( el.getIdentity() ).to.equal( 'foo class="" style=""' );
 		} );
 
 		it( 'should return classes in sorted order', () => {
 			const el = new Element( 'fruit' );
 			el.addClass( 'banana', 'lemon', 'apple' );
 
-			expect( el.getIdentity() ).to.equal( 'fruit|classes(apple,banana,lemon)|styles()|attributes()' );
+			expect( el.getIdentity() ).to.equal( 'fruit class="apple,banana,lemon" style=""' );
 		} );
 
 		it( 'should return styles in sorted order', () => {
@@ -1001,7 +1001,7 @@ describe( 'Element', () => {
 				style: 'border: 1px solid red; background-color: red'
 			} );
 
-			expect( el.getIdentity() ).to.equal( 'foo|classes()|styles(background-color=red,border=1px solid red)|attributes()' );
+			expect( el.getIdentity() ).to.equal( 'foo class="" style="background-color:red;border:1px solid red"' );
 		} );
 
 		it( 'should return attributes in sorted order', () => {
@@ -1011,7 +1011,7 @@ describe( 'Element', () => {
 				b: 3
 			} );
 
-			expect( el.getIdentity() ).to.equal( 'foo|classes()|styles()|attributes(a=1,b=3,d=4)' );
+			expect( el.getIdentity() ).to.equal( 'foo class="" style="" a="1" b="3" d="4"' );
 		} );
 
 		it( 'should return classes, styles and attributes', () => {
@@ -1024,7 +1024,7 @@ describe( 'Element', () => {
 			el.addClass( 'three', 'two', 'one' );
 
 			expect( el.getIdentity() ).to.equal(
-				'baz|classes(one,three,two)|styles(border-radius=10px,text-align=center)|attributes(bar=two,foo=one)'
+				'baz class="one,three,two" style="border-radius:10px;text-align:center" bar="two" foo="one"'
 			);
 		} );
 	} );