UNPKG

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.

42 lines 5.15 kB
import { NG_VALIDATORS } from '@angular/forms'; import { Directive } from '@angular/core'; import * as i0 from "@angular/core"; export const urlValidator = (control) => { const urlPattern = '^((https|http|ftp|rtsp|mms)?://)' + '?(([0-9a-z_!~*\'().&=+$%-]+: )?[0-9a-z_!~*\'().&=+$%-]+@)?' //ftp user@ + '(([0-9]{1,3}\.){3}[0-9]{1,3}" // IP URL- 199.194.52.184' + '|' + '([0-9a-z_!~*\'()-]+\.)*' // - www. + '([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\.' + '[a-z]{2,6})' // first level domain- .com or .museum + '(:[0-9]{1,4})?' //- :80 + '((/?)|' // a slash isn't required if there is no file name + '(/[0-9a-z_!~*\'().;?:@&=+$,%#-]+)+/?)$'; const regExp = new RegExp(urlPattern); return regExp.test(control.value) ? null : { url: control.value }; }; export class UrlValidatorDirective { validate(control) { return urlValidator(control); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: UrlValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.9", type: UrlValidatorDirective, selector: "[systelab-urlValidator]", providers: [{ provide: NG_VALIDATORS, useExisting: UrlValidatorDirective, multi: true }], ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: UrlValidatorDirective, decorators: [{ type: Directive, args: [{ selector: '[systelab-urlValidator]', providers: [{ provide: NG_VALIDATORS, useExisting: UrlValidatorDirective, multi: true }] }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLXZhbGlkYXRvci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zeXN0ZWxhYi1jb21wb25lbnRzL3NyYy9saWIvZm9ybXMvdmFsaWRhdG9ycy91cmwtdmFsaWRhdG9yLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLGFBQWEsRUFBNkIsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDOztBQUV4QyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxPQUEyQixFQUEyQixFQUFFO0lBQ25GLE1BQU0sVUFBVSxHQUFXLGtDQUFrQztVQUN6RCw0REFBNEQsQ0FBQyxXQUFXO1VBQ3hFLHlEQUF5RDtVQUN6RCxHQUFHO1VBQ0gseUJBQXlCLENBQUMsU0FBUztVQUNuQyxzQ0FBc0M7VUFDdEMsYUFBYSxDQUFDLHNDQUFzQztVQUNwRCxnQkFBZ0IsQ0FBQyxPQUFPO1VBQ3hCLFFBQVEsQ0FBQyxrREFBa0Q7VUFDM0Qsd0NBQXdDLENBQUM7SUFFM0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFdEMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN6QyxHQUFHLEVBQUUsT0FBTyxDQUFDLEtBQUs7S0FDckIsQ0FBQztBQUNKLENBQUMsQ0FBQztBQVVGLE1BQU0sT0FBTyxxQkFBcUI7SUFFaEMsUUFBUSxDQUFDLE9BQTJCO1FBQ2hDLE9BQU8sWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7OEdBSlUscUJBQXFCO2tHQUFyQixxQkFBcUIsa0RBTnJCLENBQUM7Z0JBQ1IsT0FBTyxFQUFFLGFBQWE7Z0JBQ3RCLFdBQVcsRUFBRSxxQkFBcUI7Z0JBQ2xDLEtBQUssRUFBRSxJQUFJO2FBQ2QsQ0FBQzs7MkZBRVMscUJBQXFCO2tCQVJqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFNBQVMsRUFBRSxDQUFDOzRCQUNSLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixXQUFXLHVCQUF1Qjs0QkFDbEMsS0FBSyxFQUFFLElBQUk7eUJBQ2QsQ0FBQztpQkFDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VW50eXBlZEZvcm1Db250cm9sLCBOR19WQUxJREFUT1JTLFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvcn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtEaXJlY3RpdmV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgdXJsVmFsaWRhdG9yID0gKGNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgY29uc3QgdXJsUGF0dGVybjogc3RyaW5nID0gJ14oKGh0dHBzfGh0dHB8ZnRwfHJ0c3B8bW1zKT86Ly8pJ1xuICAgICsgJz8oKFswLTlhLXpfIX4qXFwnKCkuJj0rJCUtXSs6ICk/WzAtOWEtel8hfipcXCcoKS4mPSskJS1dK0ApPycgLy9mdHAgdXNlckBcbiAgICArICcoKFswLTldezEsM31cXC4pezN9WzAtOV17MSwzfVwiIC8vIElQIFVSTC0gMTk5LjE5NC41Mi4xODQnXG4gICAgKyAnfCdcbiAgICArICcoWzAtOWEtel8hfipcXCcoKS1dK1xcLikqJyAvLyAtIHd3dy5cbiAgICArICcoWzAtOWEtel1bMC05YS16LV17MCw2MX0pP1swLTlhLXpdXFwuJ1xuICAgICsgJ1thLXpdezIsNn0pJyAvLyBmaXJzdCBsZXZlbCBkb21haW4tIC5jb20gb3IgLm11c2V1bVxuICAgICsgJyg6WzAtOV17MSw0fSk/JyAvLy0gOjgwXG4gICAgKyAnKCgvPyl8JyAvLyBhIHNsYXNoIGlzbid0IHJlcXVpcmVkIGlmIHRoZXJlIGlzIG5vIGZpbGUgbmFtZVxuICAgICsgJygvWzAtOWEtel8hfipcXCcoKS47PzpAJj0rJCwlIy1dKykrLz8pJCc7XG5cbiAgICBjb25zdCByZWdFeHAgPSBuZXcgUmVnRXhwKHVybFBhdHRlcm4pO1xuXG4gICAgcmV0dXJuIHJlZ0V4cC50ZXN0KGNvbnRyb2wudmFsdWUpID8gbnVsbCA6IHtcbiAgICAgIHVybDogY29udHJvbC52YWx1ZVxuICB9O1xufTtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3N5c3RlbGFiLXVybFZhbGlkYXRvcl0nLFxuICBwcm92aWRlcnM6IFt7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IFVybFZhbGlkYXRvckRpcmVjdGl2ZSxcbiAgICAgIG11bHRpOiB0cnVlXG4gIH1dXG59KVxuZXhwb3J0IGNsYXNzIFVybFZhbGlkYXRvckRpcmVjdGl2ZSBpbXBsZW1lbnRzIFZhbGlkYXRvciB7XG5cbiAgdmFsaWRhdGUoY29udHJvbDogVW50eXBlZEZvcm1Db250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgICAgcmV0dXJuIHVybFZhbGlkYXRvcihjb250cm9sKTtcbiAgfVxufVxuXG5cblxuIl19