@jcbautistam/custom-table
Version:
Librería de tabla reutilizable con acciones, filtros, exportación y más.
49 lines • 6.23 kB
JavaScript
import { Directive, HostListener, Input } from '@angular/core';
import { NgControl } from '@angular/forms';
import * as i0 from "@angular/core";
import * as i1 from "@angular/forms";
export class ValidateSpecialCharsDirective {
set validate(value) {
this._validate = (value == 'false') ? false : true;
}
set validChars(value) {
this._validChars = value || "";
}
constructor(ngControl) {
this.ngControl = ngControl;
this._validate = true;
this._validChars = '';
this._validCharsDefault = "!#@\"'?¿*)(+-=/%&";
}
onInputChange(value) {
let valorInput = value;
let validChars = this._validChars;
if (this._validate) {
valorInput = valorInput.replace(/[^a-zA-Z0-9\s]/g, ''); // Eliminar caracteres especiales
}
else {
if (validChars === '')
validChars = this._validCharsDefault;
const validCharsRegex = new RegExp(`[^a-zA-Z0-9${validChars}\\s]`, 'g');
valorInput = valorInput.replace(validCharsRegex, ''); // Eliminar caracteres no permitidos
}
this.ngControl?.control?.setValue(valorInput, { emitEvent: false });
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ValidateSpecialCharsDirective, deps: [{ token: i1.NgControl }], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.2", type: ValidateSpecialCharsDirective, selector: "[validateSpecialChars]", inputs: { validate: ["validateSpecialChars", "validate"], validChars: "validChars" }, host: { listeners: { "input": "onInputChange($event.target.value)" } }, ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ValidateSpecialCharsDirective, decorators: [{
type: Directive,
args: [{
selector: '[validateSpecialChars]'
}]
}], ctorParameters: function () { return [{ type: i1.NgControl }]; }, propDecorators: { validate: [{
type: Input,
args: ['validateSpecialChars']
}], validChars: [{
type: Input
}], onInputChange: [{
type: HostListener,
args: ['input', ['$event.target.value']]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmFsaWRhdGVTcGVjaWFsQ2hhcnMuRGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3VzdG9tLXRhYmxlL3NyYy9saWIvRGlyZWN0aXZlcy9WYWxpZGF0ZVNwZWNpYWxDaGFycy5EaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBSzNDLE1BQU0sT0FBTyw2QkFBNkI7SUFNeEMsSUFDSSxRQUFRLENBQUMsS0FBVTtRQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNyRCxDQUFDO0lBRUQsSUFDSSxVQUFVLENBQUMsS0FBYTtRQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELFlBQW9CLFNBQW9CO1FBQXBCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFkaEMsY0FBUyxHQUFZLElBQUksQ0FBQztRQUMxQixnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN6Qix1QkFBa0IsR0FBVyxtQkFBbUIsQ0FBQztJQVliLENBQUM7SUFFRyxhQUFhLENBQUMsS0FBYTtRQUN6RSxJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUVsQyxJQUFLLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkIsVUFBVSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxpQ0FBaUM7U0FDMUY7YUFBTztZQUVSLElBQUcsVUFBVSxLQUFLLEVBQUU7Z0JBQ2hCLFVBQVUsR0FBSSxJQUFJLENBQUMsa0JBQWtCLENBQUM7WUFFeEMsTUFBTSxlQUFlLEdBQUcsSUFBSSxNQUFNLENBQUMsY0FBYyxVQUFVLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztZQUN4RSxVQUFVLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxvQ0FBb0M7U0FDM0Y7UUFFRCxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsVUFBVSxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQzs4R0FsQ1UsNkJBQTZCO2tHQUE3Qiw2QkFBNkI7OzJGQUE3Qiw2QkFBNkI7a0JBSHpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtpQkFDbkM7Z0dBUUssUUFBUTtzQkFEWCxLQUFLO3VCQUFDLHNCQUFzQjtnQkFNekIsVUFBVTtzQkFEYixLQUFLO2dCQU8wQyxhQUFhO3NCQUE1RCxZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW3ZhbGlkYXRlU3BlY2lhbENoYXJzXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIFZhbGlkYXRlU3BlY2lhbENoYXJzRGlyZWN0aXZlIHtcclxuXHJcbiAgcHJpdmF0ZSBfdmFsaWRhdGU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHByaXZhdGUgX3ZhbGlkQ2hhcnM6IHN0cmluZyA9ICcnO1xyXG4gIHByaXZhdGUgX3ZhbGlkQ2hhcnNEZWZhdWx0OiBzdHJpbmcgPSBcIiEjQFxcXCInP8K/KikoKy09LyUmXCI7XHJcblxyXG4gIEBJbnB1dCgndmFsaWRhdGVTcGVjaWFsQ2hhcnMnKVxyXG4gIHNldCB2YWxpZGF0ZSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLl92YWxpZGF0ZSA9ICh2YWx1ZSA9PSAnZmFsc2UnKSA/IGZhbHNlIDogdHJ1ZTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHZhbGlkQ2hhcnModmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fdmFsaWRDaGFycyA9IHZhbHVlIHx8IFwiXCI7XHJcbiAgfVxyXG4gIFxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbmdDb250cm9sOiBOZ0NvbnRyb2wpIHsgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdpbnB1dCcsIFsnJGV2ZW50LnRhcmdldC52YWx1ZSddKSBvbklucHV0Q2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGxldCB2YWxvcklucHV0ID0gdmFsdWU7XHJcbiAgICBsZXQgdmFsaWRDaGFycyA9IHRoaXMuX3ZhbGlkQ2hhcnM7XHJcblxyXG4gICAgaWYgKCB0aGlzLl92YWxpZGF0ZSkge1xyXG4gICAgICB2YWxvcklucHV0ID0gdmFsb3JJbnB1dC5yZXBsYWNlKC9bXmEtekEtWjAtOVxcc10vZywgJycpOyAvLyBFbGltaW5hciBjYXJhY3RlcmVzIGVzcGVjaWFsZXNcclxuICAgIH0gZWxzZSAge1xyXG4gICAgICAgIFxyXG4gICAgaWYodmFsaWRDaGFycyA9PT0gJycpIFxyXG4gICAgICAgIHZhbGlkQ2hhcnMgPSAgdGhpcy5fdmFsaWRDaGFyc0RlZmF1bHQ7XHJcbiAgICAgIFxyXG4gICAgICBjb25zdCB2YWxpZENoYXJzUmVnZXggPSBuZXcgUmVnRXhwKGBbXmEtekEtWjAtOSR7dmFsaWRDaGFyc31cXFxcc11gLCAnZycpO1xyXG4gICAgICB2YWxvcklucHV0ID0gdmFsb3JJbnB1dC5yZXBsYWNlKHZhbGlkQ2hhcnNSZWdleCwgJycpOyAvLyBFbGltaW5hciBjYXJhY3RlcmVzIG5vIHBlcm1pdGlkb3NcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLm5nQ29udHJvbD8uY29udHJvbD8uc2V0VmFsdWUodmFsb3JJbnB1dCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gIH1cclxufSJdfQ==