UNPKG

handsontable

Version:

Handsontable is a JavaScript Data Grid available for React, Angular and Vue.

55 lines (52 loc) 1.51 kB
"use strict"; exports.__esModule = true; exports.autocompleteValidator = autocompleteValidator; var _object = require("../../helpers/object"); const VALIDATOR_TYPE = exports.VALIDATOR_TYPE = 'autocomplete'; /** * The Autocomplete cell validator. * * @private * @param {*} value Value of edited cell. * @param {Function} callback Callback called with validation result. */ function autocompleteValidator(value, callback) { let valueToValidate = value; if (valueToValidate === null || valueToValidate === undefined) { valueToValidate = ''; } if (this.allowEmpty && valueToValidate === '') { callback(true); return; } if (this.strict && this.source) { if (typeof this.source === 'function') { this.source(valueToValidate, process(valueToValidate, callback)); } else { process(valueToValidate, callback)(this.source); } } else { callback(true); } } autocompleteValidator.VALIDATOR_TYPE = VALIDATOR_TYPE; /** * Function responsible for validation of autocomplete value. * * @param {*} value Value of edited cell. * @param {Function} callback Callback called with validation result. * @returns {Function} */ function process(value, callback) { const originalVal = value; return function (source) { let found = false; for (let s = 0, slen = source.length; s < slen; s++) { if ((0, _object.isObjectEqual)(originalVal, source[s])) { found = true; // perfect match break; } } callback(found); }; }