@quantlab/handsontable
Version:
Spreadsheet-like data grid editor that provides copy/paste functionality compatible with Excel/Google Docs
119 lines (83 loc) • 3.65 kB
JavaScript
'use strict';
exports.__esModule = true;
exports.getRegisteredCellTypes = exports.getRegisteredCellTypeNames = exports.hasCellType = exports.getCellType = exports.registerCellType = undefined;
var _staticRegister2 = require('./../utils/staticRegister');
var _staticRegister3 = _interopRequireDefault(_staticRegister2);
var _editors = require('./../editors');
var _renderers = require('./../renderers');
var _validators = require('./../validators');
var _autocompleteType = require('./autocompleteType');
var _autocompleteType2 = _interopRequireDefault(_autocompleteType);
var _checkboxType = require('./checkboxType');
var _checkboxType2 = _interopRequireDefault(_checkboxType);
var _dateType = require('./dateType');
var _dateType2 = _interopRequireDefault(_dateType);
var _dropdownType = require('./dropdownType');
var _dropdownType2 = _interopRequireDefault(_dropdownType);
var _formulaType = require('./formulaType');
var _formulaType2 = _interopRequireDefault(_formulaType);
var _handsontableType = require('./handsontableType');
var _handsontableType2 = _interopRequireDefault(_handsontableType);
var _numericType = require('./numericType');
var _numericType2 = _interopRequireDefault(_numericType);
var _passwordType = require('./passwordType');
var _passwordType2 = _interopRequireDefault(_passwordType);
var _textType = require('./textType');
var _textType2 = _interopRequireDefault(_textType);
var _timeType = require('./timeType');
var _timeType2 = _interopRequireDefault(_timeType);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _staticRegister = (0, _staticRegister3.default)('cellTypes'),
register = _staticRegister.register,
getItem = _staticRegister.getItem,
hasItem = _staticRegister.hasItem,
getNames = _staticRegister.getNames,
getValues = _staticRegister.getValues;
_register('autocomplete', _autocompleteType2.default);
_register('checkbox', _checkboxType2.default);
_register('date', _dateType2.default);
_register('dropdown', _dropdownType2.default);
_register('formula', _formulaType2.default);
_register('handsontable', _handsontableType2.default);
_register('numeric', _numericType2.default);
_register('password', _passwordType2.default);
_register('text', _textType2.default);
_register('time', _timeType2.default);
/**
* Retrieve cell type object.
*
* @param {String} name Cell type identification.
* @returns {Object} Returns cell type object.
*/
function _getItem(name) {
if (!hasItem(name)) {
throw Error('You declared cell type "' + name + '" as a string that is not mapped to a known object.\n Cell type must be an object or a string mapped to an object registered by "Handsontable.cellTypes.registerCellType" method');
}
return getItem(name);
}
/**
* Register cell type under specified name.
*
* @param {String} name Cell type identification.
* @param {Object} type An object with contains keys (eq: `editor`, `renderer`, `validator`) which describes specified behaviour of the cell.
*/
function _register(name, type) {
var editor = type.editor,
renderer = type.renderer,
validator = type.validator;
if (editor) {
(0, _editors.registerEditor)(name, editor);
}
if (renderer) {
(0, _renderers.registerRenderer)(name, renderer);
}
if (validator) {
(0, _validators.registerValidator)(name, validator);
}
register(name, type);
}
exports.registerCellType = _register;
exports.getCellType = _getItem;
exports.hasCellType = hasItem;
exports.getRegisteredCellTypeNames = getNames;
exports.getRegisteredCellTypes = getValues;