in js/projection/editable.js [30:66]
beforeSet: function (local) {
var editable = function () {
return true;
};
if (_.has(local, 'column.editable')) {
let editableOptions = local['column.editable'];
let viewConfig = {};
let conditions = {};
if (_.isArray(editableOptions)) {
_.each(editableOptions, editableColumn => {
if (_.isString(editableColumn)) {
conditions[editableColumn] = editable;
} else if (_.isObject(editableColumn) && _.isString(editableColumn.name)) {
conditions[editableColumn.name] = _.isFunction(editableColumn.condition) ? editableColumn.condition : editable;
}
viewConfig[editableColumn] = null;
});
} else {
_.each(editableOptions, (options, columnName) => {
if (_.isFunction(options)) {
conditions[columnName] = editable;
viewConfig[columnName] = options;
} else if (_.isObject(options)) {
conditions[columnName] = options.condition;
viewConfig[columnName] = options.editor;
}
});
}
this.viewConfig = viewConfig;
this.isEditable = function (key, item) {
return _.isFunction(conditions[key]) && conditions[key](item);
};
}
},