Мне нужно изменить плагин таблицы Ckeditor 5, чтобы можно было применять стили к таблице и ко всем ячейкам одновременно. https://ckeditor.com/docs/ckeditor5/latest/api/table.html
Есть ли простой способ сделать это? В настоящее время я перебираю дочерние таблицы и применяю тот же стиль, но это не совсем так. Потому что значение не обновляется в полях для ячеек. Вот некоторый код, который запускается при изменении свойства таблицы.
export function downcastTableAttribute(conversion, modelAttribute, styleName) {
conversion.for('downcast').add(dispatcher => dispatcher.on(`attribute:${modelAttribute}:table`, (evt, data, conversionApi) => {
const {item, attributeNewValue} = data;
const {mapper, writer} = conversionApi;
if (!conversionApi.consumable.consume(data.item, evt.name)) {
return;
}
const table = [...mapper.toViewElement(item).getChildren()].find(child => child.is('table'));
if (attributeNewValue) {
writer.setStyle(styleName, attributeNewValue, table);
//Apply style to cell td too
table._children[0]._children.forEach(row => {
row._children.forEach(td => {
writer.setStyle(styleName, attributeNewValue, td);
});
})
//Apply style to cell td too
} else {
writer.removeStyle(styleName, table);
table._children[0]._children.forEach(row => {
row._children.forEach(td => {
writer.removeStyle(styleName, td);
});
})
}
}));
}
Обновление
Из фотографии видно, что поле не обновляется в соответствии с реальным цветом таблицы.
Как правильно это сделать?