handsontable
Version:
Handsontable is a JavaScript Spreadsheet Component available for React, Angular and Vue.
45 lines (38 loc) • 1.53 kB
JavaScript
/**
* Adds appropriate CSS class to table cell, based on cellProperties.
*/
import { addClass, removeClass } from "../../helpers/dom/element.mjs";
export var RENDERER_TYPE = 'base';
/**
* @param {Core} instance The Handsontable instance.
* @param {HTMLTableCellElement} TD The rendered cell element.
* @param {number} row The visual row index.
* @param {number} col The visual column index.
* @param {number|string} prop The column property (passed when datasource is an array of objects).
* @param {*} value The rendered value.
* @param {object} cellProperties The cell meta object ({@see Core#getCellMeta}).
*/
export function baseRenderer(instance, TD, row, col, prop, value, cellProperties) {
var classesToAdd = [];
var classesToRemove = [];
if (cellProperties.className) {
addClass(TD, cellProperties.className);
}
if (cellProperties.readOnly) {
classesToAdd.push(cellProperties.readOnlyCellClassName);
}
if (cellProperties.valid === false && cellProperties.invalidCellClassName) {
classesToAdd.push(cellProperties.invalidCellClassName);
} else {
classesToRemove.push(cellProperties.invalidCellClassName);
}
if (cellProperties.wordWrap === false && cellProperties.noWordWrapClassName) {
classesToAdd.push(cellProperties.noWordWrapClassName);
}
if (!value && cellProperties.placeholder) {
classesToAdd.push(cellProperties.placeholderCellClassName);
}
removeClass(TD, classesToRemove);
addClass(TD, classesToAdd);
}
baseRenderer.RENDERER_TYPE = RENDERER_TYPE;