ng6-text-restrictions
Version:
This is a project for restrict the use of caracteres in forms inputs.
152 lines (151 loc) • 9.73 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { Directive, HostListener } from '@angular/core';
import { NgControl } from '@angular/forms';
var DigitDirective = /** @class */ (function () {
function DigitDirective(ngControl) {
this.ngControl = ngControl;
/**
* Expreción regular que se evalua
*/
this.DIGIT = '^[0-9]*$';
/**
* Nuevo objeto RegExp
*/
this.regExp = new RegExp(this.DIGIT);
}
/**
* Maneja evento de cambio en el input y se ejecuta la funcion onInputChange.
* {*} event Valor de input
* @memberof AlphaMxDirective
*/
/**
* Maneja evento de cambio en el input y se ejecuta la funcion onInputChange.
* {*} event Valor de input
* \@memberof AlphaMxDirective
* @param {?} event
* @return {?}
*/
DigitDirective.prototype.onModelChange = /**
* Maneja evento de cambio en el input y se ejecuta la funcion onInputChange.
* {*} event Valor de input
* \@memberof AlphaMxDirective
* @param {?} event
* @return {?}
*/
function (event) {
if (event !== null) {
this.onInputChange(event, false);
}
else {
this.ngControl.valueAccessor.writeValue(this.valorActual);
}
};
/**
* Maneja el evento de tecla de retroceso enviando true como segundo parametro.
* {*} event Evento de tecla de retroceso
* @memberof AlphaMxDirective
*/
/**
* Maneja el evento de tecla de retroceso enviando true como segundo parametro.
* {*} event Evento de tecla de retroceso
* \@memberof AlphaMxDirective
* @param {?} event
* @return {?}
*/
DigitDirective.prototype.keydownBackspace = /**
* Maneja el evento de tecla de retroceso enviando true como segundo parametro.
* {*} event Evento de tecla de retroceso
* \@memberof AlphaMxDirective
* @param {?} event
* @return {?}
*/
function (event) {
this.onInputChange(event.target.value, true);
};
/**
* Evalua los parametros con RegExp y actualiza el contenido del input
* por medio de ngControl.valueAccessor, si el valor no es valido se remplaza
* el contenido con la funcion replace.
* {*} event Valor que se obtiene del input.
* {*} backSpace Bandera valor true si el evento es desatado por esta tecla.
* @memberof AlphaMxDirective
*/
/**
* Evalua los parametros con RegExp y actualiza el contenido del input
* por medio de ngControl.valueAccessor, si el valor no es valido se remplaza
* el contenido con la funcion replace.
* {*} event Valor que se obtiene del input.
* {*} backSpace Bandera valor true si el evento es desatado por esta tecla.
* \@memberof AlphaMxDirective
* @param {?} event
* @param {?} backSpace
* @return {?}
*/
DigitDirective.prototype.onInputChange = /**
* Evalua los parametros con RegExp y actualiza el contenido del input
* por medio de ngControl.valueAccessor, si el valor no es valido se remplaza
* el contenido con la funcion replace.
* {*} event Valor que se obtiene del input.
* {*} backSpace Bandera valor true si el evento es desatado por esta tecla.
* \@memberof AlphaMxDirective
* @param {?} event
* @param {?} backSpace
* @return {?}
*/
function (event, backSpace) {
/** @type {?} */
var newVal;
if (backSpace) {
newVal = event;
this.ngControl.valueAccessor.writeValue(newVal);
}
else {
if ((this.regExp.test(event))) {
this.valorActual = event;
this.ngControl.valueAccessor.writeValue(this.valorActual);
}
else {
newVal = event.replace(/[^0-9]/g, '');
this.ngControl.valueAccessor.writeValue(newVal);
}
}
};
DigitDirective.decorators = [
{ type: Directive, args: [{
selector: '[alhDigit]'
},] },
];
/** @nocollapse */
DigitDirective.ctorParameters = function () { return [
{ type: NgControl }
]; };
DigitDirective.propDecorators = {
onModelChange: [{ type: HostListener, args: ['ngModelChange', ['$event'],] }],
keydownBackspace: [{ type: HostListener, args: ['keydown.backspace', ['$event'],] }]
};
return DigitDirective;
}());
export { DigitDirective };
if (false) {
/**
* Expreción regular que se evalua
* @type {?}
*/
DigitDirective.prototype.DIGIT;
/**
* Nuevo objeto RegExp
* @type {?}
*/
DigitDirective.prototype.regExp;
/**
* Valor ingresado en el input
* @type {?}
*/
DigitDirective.prototype.valorActual;
/** @type {?} */
DigitDirective.prototype.ngControl;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmc2LXRleHQtcmVzdHJpY3Rpb25zLyIsInNvdXJjZXMiOlsibGliL2RpZ2l0L2RpZ2l0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztJQWdCekMsd0JBQ1U7UUFBQSxjQUFTLEdBQVQsU0FBUzs7OztxQkFUSixVQUFVOzs7O3NCQUdoQixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0tBTzFCO0lBRUw7Ozs7T0FJRzs7Ozs7Ozs7SUFFSCxzQ0FBYTs7Ozs7OztJQURiLFVBQ2MsS0FBSztRQUNqQixFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNuQixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztTQUNsQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUM3RDtLQUNGO0lBRUQ7Ozs7T0FJRzs7Ozs7Ozs7SUFFSCx5Q0FBZ0I7Ozs7Ozs7SUFEaEIsVUFDaUIsS0FBSztRQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQzlDO0lBRUQ7Ozs7Ozs7T0FPRzs7Ozs7Ozs7Ozs7O0lBQ0gsc0NBQWE7Ozs7Ozs7Ozs7O0lBQWIsVUFBYyxLQUFLLEVBQUUsU0FBUzs7UUFDNUIsSUFBSSxNQUFNLENBQVM7UUFDbkIsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNkLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDZixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDakQ7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNOLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO2dCQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQzNEO1lBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ04sTUFBTSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN0QyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDakQ7U0FDRjtLQUNGOztnQkFoRUYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxZQUFZO2lCQUN2Qjs7OztnQkFKUSxTQUFTOzs7Z0NBeUJmLFlBQVksU0FBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7bUNBY3hDLFlBQVksU0FBQyxtQkFBbUIsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7eUJBeEMvQzs7U0FNYSxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2FsaERpZ2l0XSdcbn0pXG5leHBvcnQgY2xhc3MgRGlnaXREaXJlY3RpdmUge1xuXG4gIC8qKiBFeHByZWNpw7NuIHJlZ3VsYXIgcXVlIHNlIGV2YWx1YSAqL1xuICBwdWJsaWMgRElHSVQgPSAnXlswLTldKiQnO1xuXG4gIC8qKiAgTnVldm8gb2JqZXRvIFJlZ0V4cCAqL1xuICByZWdFeHAgPSBuZXcgUmVnRXhwKHRoaXMuRElHSVQpO1xuXG4gIC8qKiBWYWxvciBpbmdyZXNhZG8gZW4gZWwgaW5wdXQgKi9cbiAgdmFsb3JBY3R1YWw6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG5nQ29udHJvbDogTmdDb250cm9sXG4gICkgeyB9XG5cbiAgLyoqXG4gICAqIE1hbmVqYSBldmVudG8gZGUgY2FtYmlvIGVuIGVsIGlucHV0IHkgc2UgZWplY3V0YSBsYSBmdW5jaW9uIG9uSW5wdXRDaGFuZ2UuXG4gICAqIHsqfSBldmVudCBWYWxvciBkZSBpbnB1dFxuICAgKiBAbWVtYmVyb2YgQWxwaGFNeERpcmVjdGl2ZVxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcignbmdNb2RlbENoYW5nZScsIFsnJGV2ZW50J10pXG4gIG9uTW9kZWxDaGFuZ2UoZXZlbnQpIHtcbiAgICBpZiAoZXZlbnQgIT09IG51bGwpIHtcbiAgICAgIHRoaXMub25JbnB1dENoYW5nZShldmVudCwgZmFsc2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3Iud3JpdGVWYWx1ZSh0aGlzLnZhbG9yQWN0dWFsKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTWFuZWphIGVsIGV2ZW50byBkZSB0ZWNsYSBkZSByZXRyb2Nlc28gZW52aWFuZG8gdHJ1ZSBjb21vIHNlZ3VuZG8gcGFyYW1ldHJvLlxuICAgKiB7Kn0gZXZlbnQgRXZlbnRvIGRlIHRlY2xhIGRlIHJldHJvY2Vzb1xuICAgKiBAbWVtYmVyb2YgQWxwaGFNeERpcmVjdGl2ZVxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5iYWNrc3BhY2UnLCBbJyRldmVudCddKVxuICBrZXlkb3duQmFja3NwYWNlKGV2ZW50KSB7XG4gICAgdGhpcy5vbklucHV0Q2hhbmdlKGV2ZW50LnRhcmdldC52YWx1ZSwgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogRXZhbHVhIGxvcyBwYXJhbWV0cm9zIGNvbiBSZWdFeHAgeSBhY3R1YWxpemEgZWwgY29udGVuaWRvIGRlbCBpbnB1dFxuICAgKiBwb3IgbWVkaW8gZGUgbmdDb250cm9sLnZhbHVlQWNjZXNzb3IsIHNpIGVsIHZhbG9yIG5vIGVzIHZhbGlkbyBzZSByZW1wbGF6YVxuICAgKiBlbCBjb250ZW5pZG8gY29uIGxhIGZ1bmNpb24gcmVwbGFjZS5cbiAgICogeyp9IGV2ZW50IFZhbG9yIHF1ZSBzZSBvYnRpZW5lIGRlbCBpbnB1dC5cbiAgICogeyp9IGJhY2tTcGFjZSBCYW5kZXJhIHZhbG9yIHRydWUgc2kgZWwgZXZlbnRvIGVzIGRlc2F0YWRvIHBvciBlc3RhIHRlY2xhLlxuICAgKiBAbWVtYmVyb2YgQWxwaGFNeERpcmVjdGl2ZVxuICAgKi9cbiAgb25JbnB1dENoYW5nZShldmVudCwgYmFja1NwYWNlKSB7XG4gICAgbGV0IG5ld1ZhbDogc3RyaW5nO1xuICAgIGlmIChiYWNrU3BhY2UpIHtcbiAgICAgIG5ld1ZhbCA9IGV2ZW50O1xuICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3Nvci53cml0ZVZhbHVlKG5ld1ZhbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICgodGhpcy5yZWdFeHAudGVzdChldmVudCkpKSB7XG4gICAgICAgIHRoaXMudmFsb3JBY3R1YWwgPSBldmVudDtcbiAgICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3Nvci53cml0ZVZhbHVlKHRoaXMudmFsb3JBY3R1YWwpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV3VmFsID0gZXZlbnQucmVwbGFjZSgvW14wLTldL2csICcnKTtcbiAgICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3Nvci53cml0ZVZhbHVlKG5ld1ZhbCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cblxufVxuIl19