systelab-components
Version:
systelab-components is a set of components that use wide accepted and adopted standard technologies like Angular and Bootstrap, as well as other popular libraries. Please read the ATTRIBUTION.md file for a complete list of dependencies.
32 lines • 4.01 kB
JavaScript
import { NG_VALIDATORS } from '@angular/forms';
import { Directive } from '@angular/core';
import * as i0 from "@angular/core";
export const phoneValidator = (control) => {
const phoneRegex = /^(([+][(]?[0-9]{1,3}[)]?)|([(]?([0]{2})?[0-9]{1,3}[)]?)|\s*)\s*[)]?[-\s\.]?[(]?[0-9]{0,4}[)]?([-\s\.]?[0-9]{2,3})([-\s\.]?[0-9]{2,3})([-\s\.]?[0-9]{2,3})$/;
return phoneRegex.test(control.value) ? null : {
phone: control.value
};
};
export class PhoneValidatorDirective {
validate(control) {
return phoneValidator(control);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: PhoneValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.9", type: PhoneValidatorDirective, selector: "[systelab-phoneValidator]", providers: [{
provide: NG_VALIDATORS,
useExisting: PhoneValidatorDirective,
multi: true
}], ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: PhoneValidatorDirective, decorators: [{
type: Directive,
args: [{
selector: '[systelab-phoneValidator]',
providers: [{
provide: NG_VALIDATORS,
useExisting: PhoneValidatorDirective,
multi: true
}]
}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtdmFsaWRhdG9yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N5c3RlbGFiLWNvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy92YWxpZGF0b3JzL3Bob25lLXZhbGlkYXRvci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixhQUFhLEVBQTZCLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0YsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFFeEMsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsT0FBMkIsRUFBMkIsRUFBRTtJQUNyRixNQUFNLFVBQVUsR0FBVSw0SkFBNEosQ0FBQztJQUV2TCxPQUFRLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzlDLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSztLQUNyQixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBVUYsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxRQUFRLENBQUMsT0FBMkI7UUFDaEMsT0FBTyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkMsQ0FBQzs4R0FIVSx1QkFBdUI7a0dBQXZCLHVCQUF1QixvREFOdkIsQ0FBQztnQkFDUixPQUFPLEVBQUUsYUFBYTtnQkFDdEIsV0FBVyxFQUFFLHVCQUF1QjtnQkFDcEMsS0FBSyxFQUFFLElBQUk7YUFDZCxDQUFDOzsyRkFFUyx1QkFBdUI7a0JBUm5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsU0FBUyxFQUFFLENBQUM7NEJBQ1IsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcseUJBQXlCOzRCQUNwQyxLQUFLLEVBQUUsSUFBSTt5QkFDZCxDQUFDO2lCQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtVbnR5cGVkRm9ybUNvbnRyb2wsIE5HX1ZBTElEQVRPUlMsVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0RpcmVjdGl2ZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBwaG9uZVZhbGlkYXRvciA9IChjb250cm9sOiBVbnR5cGVkRm9ybUNvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gIGNvbnN0IHBob25lUmVnZXg6IFJlZ0V4cCA9L14oKFsrXVsoXT9bMC05XXsxLDN9WyldPyl8KFsoXT8oWzBdezJ9KT9bMC05XXsxLDN9WyldPyl8XFxzKilcXHMqWyldP1stXFxzXFwuXT9bKF0/WzAtOV17MCw0fVspXT8oWy1cXHNcXC5dP1swLTldezIsM30pKFstXFxzXFwuXT9bMC05XXsyLDN9KShbLVxcc1xcLl0/WzAtOV17MiwzfSkkLztcbiAgXG4gIHJldHVybiAgcGhvbmVSZWdleC50ZXN0KGNvbnRyb2wudmFsdWUpID8gbnVsbCA6IHtcbiAgICBwaG9uZTogY29udHJvbC52YWx1ZVxuICB9O1xufTtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3N5c3RlbGFiLXBob25lVmFsaWRhdG9yXScsXG4gIHByb3ZpZGVyczogW3tcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogUGhvbmVWYWxpZGF0b3JEaXJlY3RpdmUsXG4gICAgICBtdWx0aTogdHJ1ZVxuICB9XVxufSlcbmV4cG9ydCBjbGFzcyBQaG9uZVZhbGlkYXRvckRpcmVjdGl2ZSBpbXBsZW1lbnRzIFZhbGlkYXRvciB7XG4gIHZhbGlkYXRlKGNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICAgIHJldHVybiBwaG9uZVZhbGlkYXRvcihjb250cm9sKTtcbiAgfVxufVxuXG5cblxuIl19