UNPKG

ng6-text-restrictions

Version:

This is a project for restrict the use of caracteres in forms inputs.

152 lines (151 loc) 9.73 kB
/** * @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