@quantlab/handsontable
Version:
Spreadsheet-like data grid editor that provides copy/paste functionality compatible with Excel/Google Docs
35 lines (28 loc) • 1.03 kB
JavaScript
/**
* Adds appropriate CSS class to table cell, based on cellProperties
*/
import {addClass, removeClass} from './../helpers/dom/element';
function cellDecorator(instance, TD, row, col, prop, value, cellProperties) {
if (cellProperties.className) {
if (TD.className) {
TD.className = `${TD.className} ${cellProperties.className}`;
} else {
TD.className = cellProperties.className;
}
}
if (cellProperties.readOnly) {
addClass(TD, cellProperties.readOnlyCellClassName);
}
if (cellProperties.valid === false && cellProperties.invalidCellClassName) {
addClass(TD, cellProperties.invalidCellClassName);
} else {
removeClass(TD, cellProperties.invalidCellClassName);
}
if (cellProperties.wordWrap === false && cellProperties.noWordWrapClassName) {
addClass(TD, cellProperties.noWordWrapClassName);
}
if (!value && cellProperties.placeholder) {
addClass(TD, cellProperties.placeholderCellClassName);
}
}
export default cellDecorator;