svogv
Version:
A decorator based approach for model driven forms, including an advanced DataGrid and a TreeView component.
36 lines • 4.46 kB
JavaScript
/**
* A custom validator to valdiate a range of numbers or dates.
* This is internally to support the infarstructure and not intended to being used by custom code.
*
* @param p The field's name
*
*/
export function validateRange(f, t) {
return function (c) {
if ((Number(f) || Number(t)) && Number(c.value)) {
const fr = Number(f);
const to = Number(t);
const v = Number(c.value);
return (!fr || v >= fr) && (!to || v <= to)
? null
: {
range: {
valid: false
}
};
}
if ((Date.parse(f.toString()) || Date.parse(t.toString())) && Date.parse(c.value)) {
const fr = Date.parse(f.toString());
const to = Date.parse(t.toString());
const v = Date.parse(c.value);
return (!fr || v >= fr) && (!to || v <= to)
? null
: {
range: {
valid: false
}
};
}
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uL3Byb2plY3RzL3N2b2d2L3NyYy8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy92YWxpZGF0b3JzL3JhbmdlLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUFDLENBQWdCLEVBQUUsQ0FBZ0I7SUFDOUQsT0FBTyxVQUFVLENBQWM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQy9DLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQixNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckIsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQixPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDekMsQ0FBQyxDQUFDLElBQUk7Z0JBQ04sQ0FBQyxDQUFDO29CQUNBLEtBQUssRUFBRTt3QkFDTCxLQUFLLEVBQUUsS0FBSztxQkFDYjtpQkFDRixDQUFDO1NBQ0w7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDakYsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNwQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ3BDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlCLE9BQU8sQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN6QyxDQUFDLENBQUMsSUFBSTtnQkFDTixDQUFDLENBQUM7b0JBQ0EsS0FBSyxFQUFFO3dCQUNMLEtBQUssRUFBRSxLQUFLO3FCQUNiO2lCQUNGLENBQUM7U0FDTDtJQUNILENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuLyoqXHJcbiAqIEEgY3VzdG9tIHZhbGlkYXRvciB0byB2YWxkaWF0ZSBhIHJhbmdlIG9mIG51bWJlcnMgb3IgZGF0ZXMuXHJcbiAqIFRoaXMgaXMgaW50ZXJuYWxseSB0byBzdXBwb3J0IHRoZSBpbmZhcnN0cnVjdHVyZSBhbmQgbm90IGludGVuZGVkIHRvIGJlaW5nIHVzZWQgYnkgY3VzdG9tIGNvZGUuXHJcbiAqXHJcbiAqIEBwYXJhbSBwIFRoZSBmaWVsZCdzIG5hbWVcclxuICpcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVJhbmdlKGY6IG51bWJlciB8IERhdGUsIHQ6IG51bWJlciB8IERhdGUpIHtcclxuICByZXR1cm4gZnVuY3Rpb24gKGM6IEZvcm1Db250cm9sKSB7XHJcbiAgICBpZiAoKE51bWJlcihmKSB8fCBOdW1iZXIodCkpICYmIE51bWJlcihjLnZhbHVlKSkge1xyXG4gICAgICBjb25zdCBmciA9IE51bWJlcihmKTtcclxuICAgICAgY29uc3QgdG8gPSBOdW1iZXIodCk7XHJcbiAgICAgIGNvbnN0IHYgPSBOdW1iZXIoYy52YWx1ZSk7XHJcbiAgICAgIHJldHVybiAoIWZyIHx8IHYgPj0gZnIpICYmICghdG8gfHwgdiA8PSB0bylcclxuICAgICAgICA/IG51bGxcclxuICAgICAgICA6IHtcclxuICAgICAgICAgIHJhbmdlOiB7XHJcbiAgICAgICAgICAgIHZhbGlkOiBmYWxzZVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbiAgICBpZiAoKERhdGUucGFyc2UoZi50b1N0cmluZygpKSB8fCBEYXRlLnBhcnNlKHQudG9TdHJpbmcoKSkpICYmIERhdGUucGFyc2UoYy52YWx1ZSkpIHtcclxuICAgICAgY29uc3QgZnIgPSBEYXRlLnBhcnNlKGYudG9TdHJpbmcoKSk7XHJcbiAgICAgIGNvbnN0IHRvID0gRGF0ZS5wYXJzZSh0LnRvU3RyaW5nKCkpO1xyXG4gICAgICBjb25zdCB2ID0gRGF0ZS5wYXJzZShjLnZhbHVlKTtcclxuICAgICAgcmV0dXJuICghZnIgfHwgdiA+PSBmcikgJiYgKCF0byB8fCB2IDw9IHRvKVxyXG4gICAgICAgID8gbnVsbFxyXG4gICAgICAgIDoge1xyXG4gICAgICAgICAgcmFuZ2U6IHtcclxuICAgICAgICAgICAgdmFsaWQ6IGZhbHNlXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuICB9O1xyXG59XHJcbiJdfQ==