handsontable
Version:
Handsontable is a JavaScript Data Grid available for React, Angular and Vue.
36 lines (33 loc) • 1.4 kB
JavaScript
;
exports.__esModule = true;
exports.textRenderer = textRenderer;
var _baseRenderer = require("../baseRenderer");
var _element = require("../../helpers/dom/element");
var _mixed = require("../../helpers/mixed");
const RENDERER_TYPE = exports.RENDERER_TYPE = 'text';
/**
* Default text renderer.
*
* @private
* @param {Core} hotInstance 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 {@link Core#getCellMeta}).
*/
function textRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
_baseRenderer.baseRenderer.apply(this, [hotInstance, TD, row, col, prop, value, cellProperties]);
let escaped = value;
if (!escaped && cellProperties.placeholder) {
escaped = cellProperties.placeholder;
}
escaped = (0, _mixed.stringify)(escaped);
if (cellProperties.trimWhitespace) {
escaped = escaped.trim();
}
// this is faster than innerHTML. See: https://github.com/handsontable/handsontable/wiki/JavaScript-&-DOM-performance-tips
(0, _element.fastInnerText)(TD, escaped);
}
textRenderer.RENDERER_TYPE = RENDERER_TYPE;