@skyux/validation 7.5.0 → 7.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/documentation.json +2 -2
- package/esm2020/lib/modules/url-validation/url-validation-options.mjs +1 -1
- package/esm2020/lib/modules/url-validation/url-validation.directive.mjs +2 -2
- package/fesm2015/skyux-validation.mjs +1 -1
- package/fesm2015/skyux-validation.mjs.map +1 -1
- package/fesm2020/skyux-validation.mjs +1 -1
- package/fesm2020/skyux-validation.mjs.map +1 -1
- package/lib/modules/url-validation/url-validation-options.d.ts +1 -1
- package/lib/modules/url-validation/url-validation.directive.d.ts +1 -1
- package/package.json +1 -1
package/documentation.json
CHANGED
|
@@ -633,7 +633,7 @@
|
|
|
633
633
|
"kindString": "Set signature",
|
|
634
634
|
"flags": {},
|
|
635
635
|
"comment": {
|
|
636
|
-
"shortText": "
|
|
636
|
+
"shortText": "Configuration options for the URL validation component."
|
|
637
637
|
},
|
|
638
638
|
"parameters": [
|
|
639
639
|
{
|
|
@@ -847,7 +847,7 @@
|
|
|
847
847
|
"kindString": "Property",
|
|
848
848
|
"flags": {},
|
|
849
849
|
"comment": {
|
|
850
|
-
"shortText": "
|
|
850
|
+
"shortText": "The ruleset for URL validation. Ruleset 1 uses a regular expression, and ruleset 2 uses the third-party [validator.js library](https://github.com/validatorjs/validator.js)."
|
|
851
851
|
},
|
|
852
852
|
"sources": [
|
|
853
853
|
{
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLXZhbGlkYXRpb24tb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy92YWxpZGF0aW9uL3NyYy9saWIvbW9kdWxlcy91cmwtdmFsaWRhdGlvbi91cmwtdmFsaWRhdGlvbi1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNwZWNpZmllcyBvcHRpb25zIGZvciB0aGUgVVJMIHZhbGlkYXRvciBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2t5VXJsVmFsaWRhdGlvbk9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHJ1bGVzZXQgZm9yIFVSTCB2YWxpZGF0aW9uLiBSdWxlc2V0IDEgdXNlcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiwgYW5kIHJ1bGVzZXQgMiB1c2VzIHRoZSB0aGlyZC1wYXJ0eSBbdmFsaWRhdG9yLmpzIGxpYnJhcnldKGh0dHBzOi8vZ2l0aHViLmNvbS92YWxpZGF0b3Jqcy92YWxpZGF0b3IuanMpLlxuICAgKi9cbiAgcnVsZXNldFZlcnNpb246IDEgfCAyO1xufVxuIl19
|
|
@@ -20,7 +20,7 @@ export class SkyUrlValidationDirective {
|
|
|
20
20
|
_SkyUrlValidationDirective_validatorChange.set(this, () => { });
|
|
21
21
|
}
|
|
22
22
|
/**
|
|
23
|
-
*
|
|
23
|
+
* Configuration options for the URL validation component.
|
|
24
24
|
*/
|
|
25
25
|
set skyUrlValidation(value) {
|
|
26
26
|
__classPrivateFieldSet(this, _SkyUrlValidationDirective__skyUrlValidationOptions, value, "f");
|
|
@@ -51,4 +51,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImpo
|
|
|
51
51
|
}], propDecorators: { skyUrlValidation: [{
|
|
52
52
|
type: Input
|
|
53
53
|
}] } });
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLXZhbGlkYXRpb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3ZhbGlkYXRpb24vc3JjL2xpYi9tb2R1bGVzL3VybC12YWxpZGF0aW9uL3VybC12YWxpZGF0aW9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBRUwsYUFBYSxHQUdkLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQUl6RCxzREFBc0Q7QUFDdEQsTUFBTSw0QkFBNEIsR0FBRztJQUNuQyxPQUFPLEVBQUUsYUFBYTtJQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixDQUFDO0lBQ3hELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQUVGOztHQUVHO0FBS0gsTUFBTSxPQUFPLHlCQUF5QjtJQUp0QztRQWNFLHNFQUErRDtRQUUvRCxnRUFBZ0U7UUFDaEUscURBQW1CLEdBQUcsRUFBRSxHQUFFLENBQUMsRUFBQztLQWlCN0I7SUE3QkM7O09BRUc7SUFDSCxJQUNXLGdCQUFnQixDQUFDLEtBQTBDO1FBQ3BFLHVCQUFBLElBQUksdURBQTZCLEtBQUssTUFBQSxDQUFDO1FBQ3ZDLHVCQUFBLElBQUksa0RBQWlCLE1BQXJCLElBQUksQ0FBbUIsQ0FBQztJQUMxQixDQUFDO0lBT00sUUFBUSxDQUFDLE9BQXdCO1FBQ3RDLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFFNUIsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxPQUFPLGFBQWEsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLHVCQUFBLElBQUksMkRBQTBCLENBQUM7WUFDL0QsQ0FBQyxDQUFDLElBQUk7WUFDTixDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRU0seUJBQXlCLENBQUMsRUFBYztRQUM3Qyx1QkFBQSxJQUFJLDhDQUFvQixFQUFFLE1BQUEsQ0FBQztJQUM3QixDQUFDOzs7dUhBN0JVLHlCQUF5QjsyR0FBekIseUJBQXlCLCtGQUZ6QixDQUFDLDRCQUE0QixDQUFDOzRGQUU5Qix5QkFBeUI7a0JBSnJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsU0FBUyxFQUFFLENBQUMsNEJBQTRCLENBQUM7aUJBQzFDOzhCQU1ZLGdCQUFnQjtzQkFEMUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgTkdfVkFMSURBVE9SUyxcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IFNreVZhbGlkYXRpb24gfSBmcm9tICcuLi92YWxpZGF0aW9uL3ZhbGlkYXRpb24nO1xuXG5pbXBvcnQgeyBTa3lVcmxWYWxpZGF0aW9uT3B0aW9ucyB9IGZyb20gJy4vdXJsLXZhbGlkYXRpb24tb3B0aW9ucyc7XG5cbi8vIHRzbGludDpkaXNhYmxlOm5vLWZvcndhcmQtcmVmIG5vLXVzZS1iZWZvcmUtZGVjbGFyZVxuY29uc3QgU0tZX1VSTF9WQUxJREFUSU9OX1ZBTElEQVRPUiA9IHtcbiAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2t5VXJsVmFsaWRhdGlvbkRpcmVjdGl2ZSksXG4gIG11bHRpOiB0cnVlLFxufTtcblxuLyoqXG4gKiBBZGRzIFVSTCB2YWxpZGF0aW9uIHRvIGFuIGlucHV0IGVsZW1lbnQuIFRoZSBkaXJlY3RpdmUgdXNlcyBgTmdNb2RlbGAgdG8gYmluZCBkYXRhLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbc2t5VXJsVmFsaWRhdGlvbl0nLFxuICBwcm92aWRlcnM6IFtTS1lfVVJMX1ZBTElEQVRJT05fVkFMSURBVE9SXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VXJsVmFsaWRhdGlvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIFZhbGlkYXRvciB7XG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBVUkwgdmFsaWRhdGlvbiBjb21wb25lbnQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNreVVybFZhbGlkYXRpb24odmFsdWU6IFNreVVybFZhbGlkYXRpb25PcHRpb25zIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX3NreVVybFZhbGlkYXRpb25PcHRpb25zID0gdmFsdWU7XG4gICAgdGhpcy4jdmFsaWRhdG9yQ2hhbmdlKCk7XG4gIH1cblxuICAjX3NreVVybFZhbGlkYXRpb25PcHRpb25zOiBTa3lVcmxWYWxpZGF0aW9uT3B0aW9ucyB8IHVuZGVmaW5lZDtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gICN2YWxpZGF0b3JDaGFuZ2UgPSAoKSA9PiB7fTtcblxuICBwdWJsaWMgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGNvbnN0IHZhbHVlID0gY29udHJvbC52YWx1ZTtcblxuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBTa3lWYWxpZGF0aW9uLmlzVXJsKHZhbHVlLCB0aGlzLiNfc2t5VXJsVmFsaWRhdGlvbk9wdGlvbnMpXG4gICAgICA/IG51bGxcbiAgICAgIDogeyBza3lVcmw6IHsgaW52YWxpZDogdmFsdWUgfSB9O1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLiN2YWxpZGF0b3JDaGFuZ2UgPSBmbjtcbiAgfVxufVxuIl19
|
|
@@ -97,7 +97,7 @@ class SkyUrlValidationDirective {
|
|
|
97
97
|
_SkyUrlValidationDirective_validatorChange.set(this, () => { });
|
|
98
98
|
}
|
|
99
99
|
/**
|
|
100
|
-
*
|
|
100
|
+
* Configuration options for the URL validation component.
|
|
101
101
|
*/
|
|
102
102
|
set skyUrlValidation(value) {
|
|
103
103
|
__classPrivateFieldSet(this, _SkyUrlValidationDirective__skyUrlValidationOptions, value, "f");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skyux-validation.mjs","sources":["../../../../../libs/components/validation/src/lib/modules/validation/validation.ts","../../../../../libs/components/validation/src/lib/modules/email-validation/email-validation.directive.ts","../../../../../libs/components/validation/src/lib/modules/email-validation/email-validation.module.ts","../../../../../libs/components/validation/src/lib/modules/url-validation/url-validation.directive.ts","../../../../../libs/components/validation/src/lib/modules/url-validation/url-validation.module.ts","../../../../../libs/components/validation/src/lib/modules/validators/validators.ts","../../../../../libs/components/validation/src/skyux-validation.ts"],"sourcesContent":["import isURL from 'validator/es/lib/isURL';\n\nimport { SkyUrlValidationOptions } from '../url-validation/url-validation-options';\n\nexport abstract class SkyValidation {\n public static isEmail(emailAddress: string): boolean {\n // The regex was obtained from http://emailregex.com/\n // which claims to correctly handle ~99% of all email addresses.\n const regex =\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n return regex.test(emailAddress);\n }\n\n public static isUrl(\n value: unknown,\n options?: SkyUrlValidationOptions\n ): boolean {\n if (typeof value !== 'string') {\n return false;\n }\n\n const url: string = value;\n\n const regex = /^((http|https):\\/\\/)?([\\w-]+\\.)+[\\w-]+/i;\n if (options) {\n switch (options.rulesetVersion) {\n case 1:\n return regex.test(url);\n case 2:\n // we are using the `validator` package's default options\n return isURL(url);\n }\n } else {\n return regex.test(url);\n }\n }\n}\n","import { Directive, forwardRef } from '@angular/core';\nimport {\n AbstractControl,\n NG_VALIDATORS,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\n\nimport { SkyValidation } from '../validation/validation';\n\nconst SKY_EMAIL_VALIDATION_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SkyEmailValidationDirective),\n multi: true,\n};\n\n/**\n * Adds email address validation to an input element. The directive uses `NgModel` to bind data.\n */\n@Directive({\n selector: '[skyEmailValidation]',\n providers: [SKY_EMAIL_VALIDATION_VALIDATOR],\n})\nexport class SkyEmailValidationDirective implements Validator {\n public validate(control: AbstractControl): ValidationErrors | null {\n const value = control.value;\n\n if (!value || this.emailIsValid(value)) {\n return null;\n }\n\n return {\n skyEmail: {\n invalid: control.value,\n },\n };\n }\n\n public emailIsValid(email: string): boolean {\n return SkyValidation.isEmail(email);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { SkyEmailValidationDirective } from './email-validation.directive';\n\n@NgModule({\n declarations: [SkyEmailValidationDirective],\n imports: [FormsModule],\n exports: [SkyEmailValidationDirective],\n})\nexport class SkyEmailValidationModule {}\n","import { Directive, Input, forwardRef } from '@angular/core';\nimport {\n AbstractControl,\n NG_VALIDATORS,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\n\nimport { SkyValidation } from '../validation/validation';\n\nimport { SkyUrlValidationOptions } from './url-validation-options';\n\n// tslint:disable:no-forward-ref no-use-before-declare\nconst SKY_URL_VALIDATION_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SkyUrlValidationDirective),\n multi: true,\n};\n\n/**\n * Adds URL validation to an input element. The directive uses `NgModel` to bind data.\n */\n@Directive({\n selector: '[skyUrlValidation]',\n providers: [SKY_URL_VALIDATION_VALIDATOR],\n})\nexport class SkyUrlValidationDirective implements Validator {\n /**\n * Specifies configuration options for the URL validation component.\n */\n @Input()\n public set skyUrlValidation(value: SkyUrlValidationOptions | undefined) {\n this.#_skyUrlValidationOptions = value;\n this.#validatorChange();\n }\n\n #_skyUrlValidationOptions: SkyUrlValidationOptions | undefined;\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n #validatorChange = () => {};\n\n public validate(control: AbstractControl): ValidationErrors | null {\n const value = control.value;\n\n if (!value) {\n return null;\n }\n\n return SkyValidation.isUrl(value, this.#_skyUrlValidationOptions)\n ? null\n : { skyUrl: { invalid: value } };\n }\n\n public registerOnValidatorChange(fn: () => void): void {\n this.#validatorChange = fn;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { SkyUrlValidationDirective } from './url-validation.directive';\n\n@NgModule({\n declarations: [SkyUrlValidationDirective],\n imports: [FormsModule],\n exports: [SkyUrlValidationDirective],\n})\nexport class SkyUrlValidationModule {}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nimport { SkyUrlValidationOptions } from '../url-validation/url-validation-options';\nimport { SkyValidation } from '../validation/validation';\n\n// Need to add the following to classes which contain static methods.\n// See: https://github.com/ng-packagr/ng-packagr/issues/641\n// @dynamic\nexport class SkyValidators {\n /**\n * Validates email addresses in reactive forms. Add this validator directly to the form control\n * model in the component class. If users enter values that are not valid email addresses, the\n * validator throws an error. Since this is a sync validator, it returns a set of validation\n * errors or `null` immediately when users enter values.\n */\n public static email(control: AbstractControl): ValidationErrors | null {\n const value = control.value;\n\n if (!value) {\n return null;\n }\n\n return SkyValidation.isEmail(value)\n ? null\n : { skyEmail: { invalid: value } };\n }\n\n /**\n * Validates URLs in reactive forms. Add this validator directly to the form control model in\n * the component class. If users enter values that are not valid URLs, the validator throws an\n * error. Since this is a sync validator, it returns a set of validation errors or `null`\n * immediately when users enter values.\n */\n public static url(abstractControl: AbstractControl): ValidationErrors | null;\n\n /**\n * Validates URLs in reactive forms. Add this validator with ruleset parameters directly to\n * the form control model in the component class. If users enter values that are not valid\n * URLs, the validator throws an error. Since this is a sync validator, it returns a set of\n * validation errors or `null` immediately when users enter values.\n */\n public static url(\n skyUrlValidationOptions: SkyUrlValidationOptions\n ): ValidatorFn;\n\n public static url(\n value: AbstractControl | SkyUrlValidationOptions\n ): ValidatorFn | ValidationErrors | null {\n const typeTester = value as SkyUrlValidationOptions;\n if (typeTester.rulesetVersion === undefined) {\n // there are no SkyUrlValidationOptions passed in, so return ValidationErrors | null\n const abstractControl = value as AbstractControl;\n const abstractControlValue = abstractControl.value;\n if (!abstractControlValue) {\n return null;\n }\n return SkyValidation.isUrl(abstractControlValue)\n ? null\n : { skyUrl: { invalid: abstractControlValue } };\n } else {\n // there are SkyUrlValidationOptions passed in, so return ValidatorFn\n const skyUrlValidationOptions = value as SkyUrlValidationOptions;\n return (abstractControl: AbstractControl): ValidationErrors | null => {\n const abstractControlValue = abstractControl.value;\n if (!abstractControlValue) {\n return null;\n }\n\n return SkyValidation.isUrl(\n abstractControl.value,\n skyUrlValidationOptions\n )\n ? null\n : { skyUrl: { invalid: abstractControl.value } };\n };\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skyux-validation.mjs","sources":["../../../../../libs/components/validation/src/lib/modules/validation/validation.ts","../../../../../libs/components/validation/src/lib/modules/email-validation/email-validation.directive.ts","../../../../../libs/components/validation/src/lib/modules/email-validation/email-validation.module.ts","../../../../../libs/components/validation/src/lib/modules/url-validation/url-validation.directive.ts","../../../../../libs/components/validation/src/lib/modules/url-validation/url-validation.module.ts","../../../../../libs/components/validation/src/lib/modules/validators/validators.ts","../../../../../libs/components/validation/src/skyux-validation.ts"],"sourcesContent":["import isURL from 'validator/es/lib/isURL';\n\nimport { SkyUrlValidationOptions } from '../url-validation/url-validation-options';\n\nexport abstract class SkyValidation {\n public static isEmail(emailAddress: string): boolean {\n // The regex was obtained from http://emailregex.com/\n // which claims to correctly handle ~99% of all email addresses.\n const regex =\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n return regex.test(emailAddress);\n }\n\n public static isUrl(\n value: unknown,\n options?: SkyUrlValidationOptions\n ): boolean {\n if (typeof value !== 'string') {\n return false;\n }\n\n const url: string = value;\n\n const regex = /^((http|https):\\/\\/)?([\\w-]+\\.)+[\\w-]+/i;\n if (options) {\n switch (options.rulesetVersion) {\n case 1:\n return regex.test(url);\n case 2:\n // we are using the `validator` package's default options\n return isURL(url);\n }\n } else {\n return regex.test(url);\n }\n }\n}\n","import { Directive, forwardRef } from '@angular/core';\nimport {\n AbstractControl,\n NG_VALIDATORS,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\n\nimport { SkyValidation } from '../validation/validation';\n\nconst SKY_EMAIL_VALIDATION_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SkyEmailValidationDirective),\n multi: true,\n};\n\n/**\n * Adds email address validation to an input element. The directive uses `NgModel` to bind data.\n */\n@Directive({\n selector: '[skyEmailValidation]',\n providers: [SKY_EMAIL_VALIDATION_VALIDATOR],\n})\nexport class SkyEmailValidationDirective implements Validator {\n public validate(control: AbstractControl): ValidationErrors | null {\n const value = control.value;\n\n if (!value || this.emailIsValid(value)) {\n return null;\n }\n\n return {\n skyEmail: {\n invalid: control.value,\n },\n };\n }\n\n public emailIsValid(email: string): boolean {\n return SkyValidation.isEmail(email);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { SkyEmailValidationDirective } from './email-validation.directive';\n\n@NgModule({\n declarations: [SkyEmailValidationDirective],\n imports: [FormsModule],\n exports: [SkyEmailValidationDirective],\n})\nexport class SkyEmailValidationModule {}\n","import { Directive, Input, forwardRef } from '@angular/core';\nimport {\n AbstractControl,\n NG_VALIDATORS,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\n\nimport { SkyValidation } from '../validation/validation';\n\nimport { SkyUrlValidationOptions } from './url-validation-options';\n\n// tslint:disable:no-forward-ref no-use-before-declare\nconst SKY_URL_VALIDATION_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SkyUrlValidationDirective),\n multi: true,\n};\n\n/**\n * Adds URL validation to an input element. The directive uses `NgModel` to bind data.\n */\n@Directive({\n selector: '[skyUrlValidation]',\n providers: [SKY_URL_VALIDATION_VALIDATOR],\n})\nexport class SkyUrlValidationDirective implements Validator {\n /**\n * Configuration options for the URL validation component.\n */\n @Input()\n public set skyUrlValidation(value: SkyUrlValidationOptions | undefined) {\n this.#_skyUrlValidationOptions = value;\n this.#validatorChange();\n }\n\n #_skyUrlValidationOptions: SkyUrlValidationOptions | undefined;\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n #validatorChange = () => {};\n\n public validate(control: AbstractControl): ValidationErrors | null {\n const value = control.value;\n\n if (!value) {\n return null;\n }\n\n return SkyValidation.isUrl(value, this.#_skyUrlValidationOptions)\n ? null\n : { skyUrl: { invalid: value } };\n }\n\n public registerOnValidatorChange(fn: () => void): void {\n this.#validatorChange = fn;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { SkyUrlValidationDirective } from './url-validation.directive';\n\n@NgModule({\n declarations: [SkyUrlValidationDirective],\n imports: [FormsModule],\n exports: [SkyUrlValidationDirective],\n})\nexport class SkyUrlValidationModule {}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nimport { SkyUrlValidationOptions } from '../url-validation/url-validation-options';\nimport { SkyValidation } from '../validation/validation';\n\n// Need to add the following to classes which contain static methods.\n// See: https://github.com/ng-packagr/ng-packagr/issues/641\n// @dynamic\nexport class SkyValidators {\n /**\n * Validates email addresses in reactive forms. Add this validator directly to the form control\n * model in the component class. If users enter values that are not valid email addresses, the\n * validator throws an error. Since this is a sync validator, it returns a set of validation\n * errors or `null` immediately when users enter values.\n */\n public static email(control: AbstractControl): ValidationErrors | null {\n const value = control.value;\n\n if (!value) {\n return null;\n }\n\n return SkyValidation.isEmail(value)\n ? null\n : { skyEmail: { invalid: value } };\n }\n\n /**\n * Validates URLs in reactive forms. Add this validator directly to the form control model in\n * the component class. If users enter values that are not valid URLs, the validator throws an\n * error. Since this is a sync validator, it returns a set of validation errors or `null`\n * immediately when users enter values.\n */\n public static url(abstractControl: AbstractControl): ValidationErrors | null;\n\n /**\n * Validates URLs in reactive forms. Add this validator with ruleset parameters directly to\n * the form control model in the component class. If users enter values that are not valid\n * URLs, the validator throws an error. Since this is a sync validator, it returns a set of\n * validation errors or `null` immediately when users enter values.\n */\n public static url(\n skyUrlValidationOptions: SkyUrlValidationOptions\n ): ValidatorFn;\n\n public static url(\n value: AbstractControl | SkyUrlValidationOptions\n ): ValidatorFn | ValidationErrors | null {\n const typeTester = value as SkyUrlValidationOptions;\n if (typeTester.rulesetVersion === undefined) {\n // there are no SkyUrlValidationOptions passed in, so return ValidationErrors | null\n const abstractControl = value as AbstractControl;\n const abstractControlValue = abstractControl.value;\n if (!abstractControlValue) {\n return null;\n }\n return SkyValidation.isUrl(abstractControlValue)\n ? null\n : { skyUrl: { invalid: abstractControlValue } };\n } else {\n // there are SkyUrlValidationOptions passed in, so return ValidatorFn\n const skyUrlValidationOptions = value as SkyUrlValidationOptions;\n return (abstractControl: AbstractControl): ValidationErrors | null => {\n const abstractControlValue = abstractControl.value;\n if (!abstractControlValue) {\n return null;\n }\n\n return SkyValidation.isUrl(\n abstractControl.value,\n skyUrlValidationOptions\n )\n ? null\n : { skyUrl: { invalid: abstractControl.value } };\n };\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -97,7 +97,7 @@ class SkyUrlValidationDirective {
|
|
|
97
97
|
_SkyUrlValidationDirective_validatorChange.set(this, () => { });
|
|
98
98
|
}
|
|
99
99
|
/**
|
|
100
|
-
*
|
|
100
|
+
* Configuration options for the URL validation component.
|
|
101
101
|
*/
|
|
102
102
|
set skyUrlValidation(value) {
|
|
103
103
|
__classPrivateFieldSet(this, _SkyUrlValidationDirective__skyUrlValidationOptions, value, "f");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skyux-validation.mjs","sources":["../../../../../libs/components/validation/src/lib/modules/validation/validation.ts","../../../../../libs/components/validation/src/lib/modules/email-validation/email-validation.directive.ts","../../../../../libs/components/validation/src/lib/modules/email-validation/email-validation.module.ts","../../../../../libs/components/validation/src/lib/modules/url-validation/url-validation.directive.ts","../../../../../libs/components/validation/src/lib/modules/url-validation/url-validation.module.ts","../../../../../libs/components/validation/src/lib/modules/validators/validators.ts","../../../../../libs/components/validation/src/skyux-validation.ts"],"sourcesContent":["import isURL from 'validator/es/lib/isURL';\n\nimport { SkyUrlValidationOptions } from '../url-validation/url-validation-options';\n\nexport abstract class SkyValidation {\n public static isEmail(emailAddress: string): boolean {\n // The regex was obtained from http://emailregex.com/\n // which claims to correctly handle ~99% of all email addresses.\n const regex =\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n return regex.test(emailAddress);\n }\n\n public static isUrl(\n value: unknown,\n options?: SkyUrlValidationOptions\n ): boolean {\n if (typeof value !== 'string') {\n return false;\n }\n\n const url: string = value;\n\n const regex = /^((http|https):\\/\\/)?([\\w-]+\\.)+[\\w-]+/i;\n if (options) {\n switch (options.rulesetVersion) {\n case 1:\n return regex.test(url);\n case 2:\n // we are using the `validator` package's default options\n return isURL(url);\n }\n } else {\n return regex.test(url);\n }\n }\n}\n","import { Directive, forwardRef } from '@angular/core';\nimport {\n AbstractControl,\n NG_VALIDATORS,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\n\nimport { SkyValidation } from '../validation/validation';\n\nconst SKY_EMAIL_VALIDATION_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SkyEmailValidationDirective),\n multi: true,\n};\n\n/**\n * Adds email address validation to an input element. The directive uses `NgModel` to bind data.\n */\n@Directive({\n selector: '[skyEmailValidation]',\n providers: [SKY_EMAIL_VALIDATION_VALIDATOR],\n})\nexport class SkyEmailValidationDirective implements Validator {\n public validate(control: AbstractControl): ValidationErrors | null {\n const value = control.value;\n\n if (!value || this.emailIsValid(value)) {\n return null;\n }\n\n return {\n skyEmail: {\n invalid: control.value,\n },\n };\n }\n\n public emailIsValid(email: string): boolean {\n return SkyValidation.isEmail(email);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { SkyEmailValidationDirective } from './email-validation.directive';\n\n@NgModule({\n declarations: [SkyEmailValidationDirective],\n imports: [FormsModule],\n exports: [SkyEmailValidationDirective],\n})\nexport class SkyEmailValidationModule {}\n","import { Directive, Input, forwardRef } from '@angular/core';\nimport {\n AbstractControl,\n NG_VALIDATORS,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\n\nimport { SkyValidation } from '../validation/validation';\n\nimport { SkyUrlValidationOptions } from './url-validation-options';\n\n// tslint:disable:no-forward-ref no-use-before-declare\nconst SKY_URL_VALIDATION_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SkyUrlValidationDirective),\n multi: true,\n};\n\n/**\n * Adds URL validation to an input element. The directive uses `NgModel` to bind data.\n */\n@Directive({\n selector: '[skyUrlValidation]',\n providers: [SKY_URL_VALIDATION_VALIDATOR],\n})\nexport class SkyUrlValidationDirective implements Validator {\n /**\n * Specifies configuration options for the URL validation component.\n */\n @Input()\n public set skyUrlValidation(value: SkyUrlValidationOptions | undefined) {\n this.#_skyUrlValidationOptions = value;\n this.#validatorChange();\n }\n\n #_skyUrlValidationOptions: SkyUrlValidationOptions | undefined;\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n #validatorChange = () => {};\n\n public validate(control: AbstractControl): ValidationErrors | null {\n const value = control.value;\n\n if (!value) {\n return null;\n }\n\n return SkyValidation.isUrl(value, this.#_skyUrlValidationOptions)\n ? null\n : { skyUrl: { invalid: value } };\n }\n\n public registerOnValidatorChange(fn: () => void): void {\n this.#validatorChange = fn;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { SkyUrlValidationDirective } from './url-validation.directive';\n\n@NgModule({\n declarations: [SkyUrlValidationDirective],\n imports: [FormsModule],\n exports: [SkyUrlValidationDirective],\n})\nexport class SkyUrlValidationModule {}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nimport { SkyUrlValidationOptions } from '../url-validation/url-validation-options';\nimport { SkyValidation } from '../validation/validation';\n\n// Need to add the following to classes which contain static methods.\n// See: https://github.com/ng-packagr/ng-packagr/issues/641\n// @dynamic\nexport class SkyValidators {\n /**\n * Validates email addresses in reactive forms. Add this validator directly to the form control\n * model in the component class. If users enter values that are not valid email addresses, the\n * validator throws an error. Since this is a sync validator, it returns a set of validation\n * errors or `null` immediately when users enter values.\n */\n public static email(control: AbstractControl): ValidationErrors | null {\n const value = control.value;\n\n if (!value) {\n return null;\n }\n\n return SkyValidation.isEmail(value)\n ? null\n : { skyEmail: { invalid: value } };\n }\n\n /**\n * Validates URLs in reactive forms. Add this validator directly to the form control model in\n * the component class. If users enter values that are not valid URLs, the validator throws an\n * error. Since this is a sync validator, it returns a set of validation errors or `null`\n * immediately when users enter values.\n */\n public static url(abstractControl: AbstractControl): ValidationErrors | null;\n\n /**\n * Validates URLs in reactive forms. Add this validator with ruleset parameters directly to\n * the form control model in the component class. If users enter values that are not valid\n * URLs, the validator throws an error. Since this is a sync validator, it returns a set of\n * validation errors or `null` immediately when users enter values.\n */\n public static url(\n skyUrlValidationOptions: SkyUrlValidationOptions\n ): ValidatorFn;\n\n public static url(\n value: AbstractControl | SkyUrlValidationOptions\n ): ValidatorFn | ValidationErrors | null {\n const typeTester = value as SkyUrlValidationOptions;\n if (typeTester.rulesetVersion === undefined) {\n // there are no SkyUrlValidationOptions passed in, so return ValidationErrors | null\n const abstractControl = value as AbstractControl;\n const abstractControlValue = abstractControl.value;\n if (!abstractControlValue) {\n return null;\n }\n return SkyValidation.isUrl(abstractControlValue)\n ? null\n : { skyUrl: { invalid: abstractControlValue } };\n } else {\n // there are SkyUrlValidationOptions passed in, so return ValidatorFn\n const skyUrlValidationOptions = value as SkyUrlValidationOptions;\n return (abstractControl: AbstractControl): ValidationErrors | null => {\n const abstractControlValue = abstractControl.value;\n if (!abstractControlValue) {\n return null;\n }\n\n return SkyValidation.isUrl(\n abstractControl.value,\n skyUrlValidationOptions\n )\n ? null\n : { skyUrl: { invalid: abstractControl.value } };\n };\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skyux-validation.mjs","sources":["../../../../../libs/components/validation/src/lib/modules/validation/validation.ts","../../../../../libs/components/validation/src/lib/modules/email-validation/email-validation.directive.ts","../../../../../libs/components/validation/src/lib/modules/email-validation/email-validation.module.ts","../../../../../libs/components/validation/src/lib/modules/url-validation/url-validation.directive.ts","../../../../../libs/components/validation/src/lib/modules/url-validation/url-validation.module.ts","../../../../../libs/components/validation/src/lib/modules/validators/validators.ts","../../../../../libs/components/validation/src/skyux-validation.ts"],"sourcesContent":["import isURL from 'validator/es/lib/isURL';\n\nimport { SkyUrlValidationOptions } from '../url-validation/url-validation-options';\n\nexport abstract class SkyValidation {\n public static isEmail(emailAddress: string): boolean {\n // The regex was obtained from http://emailregex.com/\n // which claims to correctly handle ~99% of all email addresses.\n const regex =\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n return regex.test(emailAddress);\n }\n\n public static isUrl(\n value: unknown,\n options?: SkyUrlValidationOptions\n ): boolean {\n if (typeof value !== 'string') {\n return false;\n }\n\n const url: string = value;\n\n const regex = /^((http|https):\\/\\/)?([\\w-]+\\.)+[\\w-]+/i;\n if (options) {\n switch (options.rulesetVersion) {\n case 1:\n return regex.test(url);\n case 2:\n // we are using the `validator` package's default options\n return isURL(url);\n }\n } else {\n return regex.test(url);\n }\n }\n}\n","import { Directive, forwardRef } from '@angular/core';\nimport {\n AbstractControl,\n NG_VALIDATORS,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\n\nimport { SkyValidation } from '../validation/validation';\n\nconst SKY_EMAIL_VALIDATION_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SkyEmailValidationDirective),\n multi: true,\n};\n\n/**\n * Adds email address validation to an input element. The directive uses `NgModel` to bind data.\n */\n@Directive({\n selector: '[skyEmailValidation]',\n providers: [SKY_EMAIL_VALIDATION_VALIDATOR],\n})\nexport class SkyEmailValidationDirective implements Validator {\n public validate(control: AbstractControl): ValidationErrors | null {\n const value = control.value;\n\n if (!value || this.emailIsValid(value)) {\n return null;\n }\n\n return {\n skyEmail: {\n invalid: control.value,\n },\n };\n }\n\n public emailIsValid(email: string): boolean {\n return SkyValidation.isEmail(email);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { SkyEmailValidationDirective } from './email-validation.directive';\n\n@NgModule({\n declarations: [SkyEmailValidationDirective],\n imports: [FormsModule],\n exports: [SkyEmailValidationDirective],\n})\nexport class SkyEmailValidationModule {}\n","import { Directive, Input, forwardRef } from '@angular/core';\nimport {\n AbstractControl,\n NG_VALIDATORS,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\n\nimport { SkyValidation } from '../validation/validation';\n\nimport { SkyUrlValidationOptions } from './url-validation-options';\n\n// tslint:disable:no-forward-ref no-use-before-declare\nconst SKY_URL_VALIDATION_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SkyUrlValidationDirective),\n multi: true,\n};\n\n/**\n * Adds URL validation to an input element. The directive uses `NgModel` to bind data.\n */\n@Directive({\n selector: '[skyUrlValidation]',\n providers: [SKY_URL_VALIDATION_VALIDATOR],\n})\nexport class SkyUrlValidationDirective implements Validator {\n /**\n * Configuration options for the URL validation component.\n */\n @Input()\n public set skyUrlValidation(value: SkyUrlValidationOptions | undefined) {\n this.#_skyUrlValidationOptions = value;\n this.#validatorChange();\n }\n\n #_skyUrlValidationOptions: SkyUrlValidationOptions | undefined;\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n #validatorChange = () => {};\n\n public validate(control: AbstractControl): ValidationErrors | null {\n const value = control.value;\n\n if (!value) {\n return null;\n }\n\n return SkyValidation.isUrl(value, this.#_skyUrlValidationOptions)\n ? null\n : { skyUrl: { invalid: value } };\n }\n\n public registerOnValidatorChange(fn: () => void): void {\n this.#validatorChange = fn;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { SkyUrlValidationDirective } from './url-validation.directive';\n\n@NgModule({\n declarations: [SkyUrlValidationDirective],\n imports: [FormsModule],\n exports: [SkyUrlValidationDirective],\n})\nexport class SkyUrlValidationModule {}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nimport { SkyUrlValidationOptions } from '../url-validation/url-validation-options';\nimport { SkyValidation } from '../validation/validation';\n\n// Need to add the following to classes which contain static methods.\n// See: https://github.com/ng-packagr/ng-packagr/issues/641\n// @dynamic\nexport class SkyValidators {\n /**\n * Validates email addresses in reactive forms. Add this validator directly to the form control\n * model in the component class. If users enter values that are not valid email addresses, the\n * validator throws an error. Since this is a sync validator, it returns a set of validation\n * errors or `null` immediately when users enter values.\n */\n public static email(control: AbstractControl): ValidationErrors | null {\n const value = control.value;\n\n if (!value) {\n return null;\n }\n\n return SkyValidation.isEmail(value)\n ? null\n : { skyEmail: { invalid: value } };\n }\n\n /**\n * Validates URLs in reactive forms. Add this validator directly to the form control model in\n * the component class. If users enter values that are not valid URLs, the validator throws an\n * error. Since this is a sync validator, it returns a set of validation errors or `null`\n * immediately when users enter values.\n */\n public static url(abstractControl: AbstractControl): ValidationErrors | null;\n\n /**\n * Validates URLs in reactive forms. Add this validator with ruleset parameters directly to\n * the form control model in the component class. If users enter values that are not valid\n * URLs, the validator throws an error. Since this is a sync validator, it returns a set of\n * validation errors or `null` immediately when users enter values.\n */\n public static url(\n skyUrlValidationOptions: SkyUrlValidationOptions\n ): ValidatorFn;\n\n public static url(\n value: AbstractControl | SkyUrlValidationOptions\n ): ValidatorFn | ValidationErrors | null {\n const typeTester = value as SkyUrlValidationOptions;\n if (typeTester.rulesetVersion === undefined) {\n // there are no SkyUrlValidationOptions passed in, so return ValidationErrors | null\n const abstractControl = value as AbstractControl;\n const abstractControlValue = abstractControl.value;\n if (!abstractControlValue) {\n return null;\n }\n return SkyValidation.isUrl(abstractControlValue)\n ? null\n : { skyUrl: { invalid: abstractControlValue } };\n } else {\n // there are SkyUrlValidationOptions passed in, so return ValidatorFn\n const skyUrlValidationOptions = value as SkyUrlValidationOptions;\n return (abstractControl: AbstractControl): ValidationErrors | null => {\n const abstractControlValue = abstractControl.value;\n if (!abstractControlValue) {\n return null;\n }\n\n return SkyValidation.isUrl(\n abstractControl.value,\n skyUrlValidationOptions\n )\n ? null\n : { skyUrl: { invalid: abstractControl.value } };\n };\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export interface SkyUrlValidationOptions {
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* The ruleset for URL validation. Ruleset 1 uses a regular expression, and ruleset 2 uses the third-party [validator.js library](https://github.com/validatorjs/validator.js).
|
|
7
7
|
*/
|
|
8
8
|
rulesetVersion: 1 | 2;
|
|
9
9
|
}
|
|
@@ -7,7 +7,7 @@ import * as i0 from "@angular/core";
|
|
|
7
7
|
export declare class SkyUrlValidationDirective implements Validator {
|
|
8
8
|
#private;
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
10
|
+
* Configuration options for the URL validation component.
|
|
11
11
|
*/
|
|
12
12
|
set skyUrlValidation(value: SkyUrlValidationOptions | undefined);
|
|
13
13
|
validate(control: AbstractControl): ValidationErrors | null;
|