xenos
Version:
Xenos is a data grid built upon angular2 and bootstrap.
44 lines • 1.83 kB
JavaScript
var DefaultCandidateMatcher = (function () {
function DefaultCandidateMatcher() {
this.cases = new Map();
this.cases.set(String.prototype.constructor, DefaultCandidateMatcher.matchString);
this.cases.set(Number.prototype.constructor, DefaultCandidateMatcher.matchNumber);
this.cases.set(Boolean.prototype.constructor, DefaultCandidateMatcher.matchBoolean);
this.cases.set(Date.prototype.constructor, DefaultCandidateMatcher.matchDate);
}
DefaultCandidateMatcher.prototype.match = function (phrase, value) {
if (value == null) {
return false;
}
if (this.cases.has(value.constructor)) {
return this.cases.get(value.constructor)(phrase, value);
}
return false;
};
DefaultCandidateMatcher.matchDate = function (phrase, value) {
var date = value.toLocaleDateString();
var index = date.indexOf(phrase);
return index >= 0;
};
DefaultCandidateMatcher.matchBoolean = function (phrase, value) {
var regex = new RegExp("yes|no|true|false|1|0", "i");
var result = regex.exec(phrase);
if (result.length == 0) {
return false;
}
var b = new Boolean(result[0]);
return value == b;
};
DefaultCandidateMatcher.matchString = function (phrase, value) {
var regex = new RegExp("" + phrase, "i");
return regex.test(value);
};
DefaultCandidateMatcher.matchNumber = function (phrase, value) {
var regex = new RegExp("" + phrase, "i");
return regex.test(value.toString());
};
return DefaultCandidateMatcher;
}());
exports.DefaultCandidateMatcher = DefaultCandidateMatcher;
//# sourceMappingURL=default-candidate-matcher.js.map
;