numericRenderer.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. 'use strict';
  2. exports.__esModule = true;
  3. var _numbro = require('numbro');
  4. var _numbro2 = _interopRequireDefault(_numbro);
  5. var _index = require('./index');
  6. var _number = require('./../helpers/number');
  7. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  8. /**
  9. * Numeric cell renderer
  10. *
  11. * @private
  12. * @renderer NumericRenderer
  13. * @dependencies numbro
  14. * @param {Object} instance Handsontable instance
  15. * @param {Element} TD Table cell where to render
  16. * @param {Number} row
  17. * @param {Number} col
  18. * @param {String|Number} prop Row object property name
  19. * @param value Value to render (remember to escape unsafe HTML before inserting to DOM!)
  20. * @param {Object} cellProperties Cell properties (shared by cell renderer and editor)
  21. */
  22. function numericRenderer(instance, TD, row, col, prop, value, cellProperties) {
  23. if ((0, _number.isNumeric)(value)) {
  24. if (typeof cellProperties.language !== 'undefined') {
  25. _numbro2.default.culture(cellProperties.language);
  26. }
  27. value = (0, _numbro2.default)(value).format(cellProperties.format || '0');
  28. var className = cellProperties.className || '';
  29. var classArr = className.length ? className.split(' ') : [];
  30. if (classArr.indexOf('htLeft') < 0 && classArr.indexOf('htCenter') < 0 && classArr.indexOf('htRight') < 0 && classArr.indexOf('htJustify') < 0) {
  31. classArr.push('htRight');
  32. }
  33. if (classArr.indexOf('htNumeric') < 0) {
  34. classArr.push('htNumeric');
  35. }
  36. cellProperties.className = classArr.join(' ');
  37. }
  38. (0, _index.getRenderer)('text')(instance, TD, row, col, prop, value, cellProperties);
  39. }
  40. exports.default = numericRenderer;