|
|
@@ -8,7 +8,7 @@
|
|
|
*/
|
|
|
|
|
|
import TableWalker from './../tablewalker';
|
|
|
-import { toWidgetEditable } from '@ckeditor/ckeditor5-widget/src/utils';
|
|
|
+import { toWidgetEditable, setHighlightHandling } from '@ckeditor/ckeditor5-widget/src/utils';
|
|
|
import { toTableWidget } from '../utils';
|
|
|
|
|
|
/**
|
|
|
@@ -330,6 +330,13 @@ function renameViewTableCell( tableCell, desiredCellElementName, conversionApi,
|
|
|
const editable = viewWriter.createEditableElement( desiredCellElementName, viewCell.getAttributes() );
|
|
|
renamedCell = toWidgetEditable( editable, viewWriter );
|
|
|
|
|
|
+ setHighlightHandling(
|
|
|
+ renamedCell,
|
|
|
+ viewWriter,
|
|
|
+ ( element, descriptor, writer ) => writer.addClass( normalizeToArray( descriptor.classes ), element ),
|
|
|
+ ( element, descriptor, writer ) => writer.removeClass( normalizeToArray( descriptor.classes ), element )
|
|
|
+ );
|
|
|
+
|
|
|
viewWriter.insert( viewWriter.createPositionAfter( viewCell ), renamedCell );
|
|
|
viewWriter.move( viewWriter.createRangeIn( viewCell ), viewWriter.createPositionAt( renamedCell, 0 ) );
|
|
|
viewWriter.remove( viewWriter.createRangeOn( viewCell ) );
|
|
|
@@ -341,6 +348,10 @@ function renameViewTableCell( tableCell, desiredCellElementName, conversionApi,
|
|
|
conversionApi.mapper.bindElements( tableCell, renamedCell );
|
|
|
}
|
|
|
|
|
|
+function normalizeToArray( classes ) {
|
|
|
+ return Array.isArray( classes ) ? classes : [ classes ];
|
|
|
+}
|
|
|
+
|
|
|
// Renames a table cell element in the view according to its location in the table.
|
|
|
//
|
|
|
// @param {module:table/tablewalker~TableSlot} tableSlot
|
|
|
@@ -375,6 +386,15 @@ function createViewTableCellElement( tableSlot, tableAttributes, insertPosition,
|
|
|
toWidgetEditable( conversionApi.writer.createEditableElement( cellElementName ), conversionApi.writer ) :
|
|
|
conversionApi.writer.createContainerElement( cellElementName );
|
|
|
|
|
|
+ if ( asWidget ) {
|
|
|
+ setHighlightHandling(
|
|
|
+ cellElement,
|
|
|
+ conversionApi.writer,
|
|
|
+ ( element, descriptor, writer ) => writer.addClass( normalizeToArray( descriptor.classes ), element ),
|
|
|
+ ( element, descriptor, writer ) => writer.removeClass( normalizeToArray( descriptor.classes ), element )
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
const tableCell = tableSlot.cell;
|
|
|
|
|
|
const firstChild = tableCell.getChild( 0 );
|