UNPKG

svogv

Version:

A decorator based approach for model driven forms, including an advanced DataGrid and a TreeView component.

36 lines 4.46 kB
/** * 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==