Aleksander Nowodzinski 5 年之前
父節點
當前提交
edb40fc346
共有 2 個文件被更改,包括 23 次插入2 次删除
  1. 21 0
      packages/ckeditor5-engine/src/model/schema.js
  2. 2 2
      packages/ckeditor5-table/src/tableediting.js

+ 21 - 0
packages/ckeditor5-engine/src/model/schema.js

@@ -307,6 +307,27 @@ export default class Schema {
 	}
 
 	/**
+	 * Returns `true` if the given item is defined to be
+	 * a selectable element by the {@link module:engine/model/schema~SchemaItemDefinition}'s `isSelectable` property.
+	 *
+	 *		TODO
+	 *
+	 * See the {@glink framework/guides/deep-dive/schema#TODO Selectable elements} section of the Schema deep dive}
+	 * guide for more details.
+	 *
+	 * @param {module:engine/model/item~Item|module:engine/model/schema~SchemaContextItem|String} item
+	 */
+	isSelectable( item ) {
+		const def = this.getDefinition( item );
+
+		if ( !def ) {
+			return false;
+		}
+
+		return !!( def.isSelectable || def.isObject );
+	}
+
+	/**
 	 * Checks whether the given node (`child`) can be a child of the given context.
 	 *
 	 *		schema.checkChild( model.document.getRoot(), paragraph ); // -> false

+ 2 - 2
packages/ckeditor5-table/src/tableediting.js

@@ -64,7 +64,6 @@ export default class TableEditing extends Plugin {
 		schema.register( 'table', {
 			allowWhere: '$block',
 			allowAttributes: [ 'headingRows', 'headingColumns' ],
-			isLimit: true,
 			isObject: true,
 			isBlock: true
 		} );
@@ -77,7 +76,8 @@ export default class TableEditing extends Plugin {
 		schema.register( 'tableCell', {
 			allowIn: 'tableRow',
 			allowAttributes: [ 'colspan', 'rowspan' ],
-			isObject: true
+			isLimit: true,
+			isSelectable: true
 		} );
 
 		// Allow all $block content inside table cell.