UNPKG

e-virt-table

Version:

A powerful data table based on canvas. You can use it as data grid、Microsoft Excel or Google sheets. It supports virtual scroll、cell edit etc.

75 lines 2.38 kB
export default class Validator { constructor(rules) { Object.defineProperty(this, "rules", { enumerable: true, configurable: true, writable: true, value: void 0 }); this.rules = rules; } validate(params) { const errors = []; const { column, row, key, rowKey, colIndex, rowIndex, value, field, fieldValue } = params; if (!Array.isArray(this.rules)) { this.rules = [this.rules]; } for (const rule of this.rules) { if (rule.validator) { const ruleParam = { field, fieldValue, value, column, colIndex, rowIndex, row, key, rowKey, ...rule, }; rule.validator(ruleParam, value, (message) => { if (message) { errors.push({ ...ruleParam, message: message, }); } }); } if (!rule.required && (value === undefined || value === null || value === '')) { return errors; } if (rule.pattern && !rule.pattern.test(value)) { errors.push({ value, column, row, key, rowKey, colIndex, rowIndex, field, fieldValue, message: rule.message || `${key} is pattern validation error`, }); } if (rule.required && (value === undefined || value === null || value === '')) { errors.push({ value, column, row, key, rowKey, colIndex, rowIndex, field, fieldValue, message: rule.message || `${key} is required`, }); } } return errors; } } //# sourceMappingURL=Validator.js.map