handsontable
Version:
Handsontable is a JavaScript Data Grid available for React, Angular and Vue.
27 lines (26 loc) • 884 B
JavaScript
;
exports.__esModule = true;
exports.valueSetter = valueSetter;
var _object = require("../../../helpers/object");
/**
* Defines what value is set to an multiSelect-typed cell.
*
* @param {*} newValue The value to be set.
* @param {number} row The visual row index.
* @param {number|string} column The visual column index or property name.
* @returns {*} The new value to be set.
*/
function valueSetter(newValue, row, column) {
if (Array.isArray(newValue)) {
const sourceDataAtCell = this.getSourceDataAtCell(this.toPhysicalRow(row), column);
if (Array.isArray(sourceDataAtCell) && sourceDataAtCell.length > 0 && (0, _object.isKeyValueObject)(sourceDataAtCell[0])) {
return newValue.map(val => {
return (0, _object.isKeyValueObject)(val) ? val : {
key: val,
value: val
};
});
}
}
return newValue;
}