@nova-ui/bits
Version:
SolarWinds Nova Framework
57 lines • 7.22 kB
JavaScript
// © 2022 SolarWinds Worldwide, LLC. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to
// deal in the Software without restriction, including without limitation the
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
// sell copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
import _isNil from "lodash/isNil";
import moment from "moment/moment";
/**
* Class that represents custom Nui validators
*/
/**
* @ignore
*/
export class NuiValidators {
/**
* Validator that returns validation function and checks if value matches integer regex.
* @param unsigned
* @returns
*/
static integer(unsigned = false) {
const res = (control) => {
const integerRegex = unsigned
? /^(0|[1-9]\d*)$/
: /^\-?(0|[1-9]\d*)$/;
const errorObject = {
value: control.value,
invalidInteger: "Invalid integer value",
};
const valid = integerRegex.test(control.value);
return valid ? null : errorObject;
};
return res;
}
/**
* Validator that returns date validation using Moment.isValid method.
*/
static dateFormat(value) {
return !_isNil(value) && moment.isMoment(value) && value.isValid()
? null
: { invalidFormat: "The provided format is invalid" };
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVpLXZhbGlkYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdmFsaWRhdG9ycy9udWktdmFsaWRhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx5REFBeUQ7QUFDekQsRUFBRTtBQUNGLCtFQUErRTtBQUMvRSw0RUFBNEU7QUFDNUUsOEVBQThFO0FBQzlFLCtFQUErRTtBQUMvRSw4RUFBOEU7QUFDOUUsNERBQTREO0FBQzVELEVBQUU7QUFDRiw2RUFBNkU7QUFDN0UsdURBQXVEO0FBQ3ZELEVBQUU7QUFDRiw2RUFBNkU7QUFDN0UsNEVBQTRFO0FBQzVFLCtFQUErRTtBQUMvRSwwRUFBMEU7QUFDMUUsaUZBQWlGO0FBQ2pGLDZFQUE2RTtBQUM3RSxpQkFBaUI7QUFHakIsT0FBTyxNQUFNLE1BQU0sY0FBYyxDQUFDO0FBQ2xDLE9BQU8sTUFBTSxNQUFNLGVBQWUsQ0FBQztBQUduQzs7R0FFRztBQUVIOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGFBQWE7SUFDdEI7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBb0IsS0FBSztRQUNwQyxNQUFNLEdBQUcsR0FBRyxDQUFDLE9BQXdCLEVBQTJCLEVBQUU7WUFDOUQsTUFBTSxZQUFZLEdBQVcsUUFBUTtnQkFDakMsQ0FBQyxDQUFDLGdCQUFnQjtnQkFDbEIsQ0FBQyxDQUFDLG1CQUFtQixDQUFDO1lBQzFCLE1BQU0sV0FBVyxHQUFHO2dCQUNoQixLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7Z0JBQ3BCLGNBQWMsRUFBRSx1QkFBdUI7YUFDMUMsQ0FBQztZQUNGLE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQy9DLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztRQUN0QyxDQUFDLENBQUM7UUFDRixPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBYTtRQUMzQixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRTtZQUM5RCxDQUFDLENBQUMsSUFBSTtZQUNOLENBQUMsQ0FBQyxFQUFFLGFBQWEsRUFBRSxnQ0FBZ0MsRUFBRSxDQUFDO0lBQzlELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8vIMKpIDIwMjIgU29sYXJXaW5kcyBXb3JsZHdpZGUsIExMQy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyAgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG9cbi8vICBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZVxuLy8gIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vclxuLy8gIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyAgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vICBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vICBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vICBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyAgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vICBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyAgVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZuIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgX2lzTmlsIGZyb20gXCJsb2Rhc2gvaXNOaWxcIjtcbmltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudC9tb21lbnRcIjtcbmltcG9ydCB7IE1vbWVudCB9IGZyb20gXCJtb21lbnQvbW9tZW50XCI7XG5cbi8qKlxuICogQ2xhc3MgdGhhdCByZXByZXNlbnRzIGN1c3RvbSBOdWkgdmFsaWRhdG9yc1xuICovXG5cbi8qKlxuICogQGlnbm9yZVxuICovXG5leHBvcnQgY2xhc3MgTnVpVmFsaWRhdG9ycyB7XG4gICAgLyoqXG4gICAgICogVmFsaWRhdG9yIHRoYXQgcmV0dXJucyB2YWxpZGF0aW9uIGZ1bmN0aW9uIGFuZCBjaGVja3MgaWYgdmFsdWUgbWF0Y2hlcyBpbnRlZ2VyIHJlZ2V4LlxuICAgICAqIEBwYXJhbSAgdW5zaWduZWRcbiAgICAgKiBAcmV0dXJuc1xuICAgICAqL1xuICAgIHN0YXRpYyBpbnRlZ2VyKHVuc2lnbmVkOiBib29sZWFuID0gZmFsc2UpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIGNvbnN0IHJlcyA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICAgICAgICBjb25zdCBpbnRlZ2VyUmVnZXg6IFJlZ0V4cCA9IHVuc2lnbmVkXG4gICAgICAgICAgICAgICAgPyAvXigwfFsxLTldXFxkKikkL1xuICAgICAgICAgICAgICAgIDogL15cXC0/KDB8WzEtOV1cXGQqKSQvO1xuICAgICAgICAgICAgY29uc3QgZXJyb3JPYmplY3QgPSB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IGNvbnRyb2wudmFsdWUsXG4gICAgICAgICAgICAgICAgaW52YWxpZEludGVnZXI6IFwiSW52YWxpZCBpbnRlZ2VyIHZhbHVlXCIsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgdmFsaWQgPSBpbnRlZ2VyUmVnZXgudGVzdChjb250cm9sLnZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybiB2YWxpZCA/IG51bGwgOiBlcnJvck9iamVjdDtcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0b3IgdGhhdCByZXR1cm5zIGRhdGUgdmFsaWRhdGlvbiB1c2luZyBNb21lbnQuaXNWYWxpZCBtZXRob2QuXG4gICAgICovXG4gICAgc3RhdGljIGRhdGVGb3JtYXQodmFsdWU6IE1vbWVudCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuICFfaXNOaWwodmFsdWUpICYmIG1vbWVudC5pc01vbWVudCh2YWx1ZSkgJiYgdmFsdWUuaXNWYWxpZCgpXG4gICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgIDogeyBpbnZhbGlkRm9ybWF0OiBcIlRoZSBwcm92aWRlZCBmb3JtYXQgaXMgaW52YWxpZFwiIH07XG4gICAgfVxufVxuIl19