UNPKG

ng6-text-restrictions

Version:

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

141 lines (140 loc) 9.09 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import { Directive, HostListener } from '@angular/core'; import { NgControl } from '@angular/forms'; var AlphaMxDirective = /** @class */ (function () { function AlphaMxDirective(ngControl) { this.ngControl = ngControl; /** * Expreción regular que se evalua */ this.ALPHA_MX = '^([A-Za-záéíóúñüÁÉÍÓÚÑÜ ])+$'; /** * Nuevo objeto RegExp */ this.regExp = new RegExp(this.ALPHA_MX); } /** * 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 {?} */ AlphaMxDirective.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) { this.onInputChange(event, false); }; /** * 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 {?} */ AlphaMxDirective.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 {?} */ AlphaMxDirective.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.ngControl.valueAccessor.writeValue(event); } else { newVal = event.replace(/[^A-Za-záéíóúñüÁÉÍÓÚÑÜ\s]/g, ''); this.ngControl.valueAccessor.writeValue(newVal); } } }; AlphaMxDirective.decorators = [ { type: Directive, args: [{ selector: '[alhAlphaMx]' },] }, ]; /** @nocollapse */ AlphaMxDirective.ctorParameters = function () { return [ { type: NgControl } ]; }; AlphaMxDirective.propDecorators = { onModelChange: [{ type: HostListener, args: ['ngModelChange', ['$event'],] }], keydownBackspace: [{ type: HostListener, args: ['keydown.backspace', ['$event'],] }] }; return AlphaMxDirective; }()); export { AlphaMxDirective }; if (false) { /** * Expreción regular que se evalua * @type {?} */ AlphaMxDirective.prototype.ALPHA_MX; /** * Nuevo objeto RegExp * @type {?} */ AlphaMxDirective.prototype.regExp; /** @type {?} */ AlphaMxDirective.prototype.ngControl; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxwaGEtbXguZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmc2LXRleHQtcmVzdHJpY3Rpb25zLyIsInNvdXJjZXMiOlsibGliL2FscGhhLW14L2FscGhhLW14LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztJQVl6QywwQkFDVTtRQUFBLGNBQVMsR0FBVCxTQUFTOzs7O3dCQUxELDhCQUE4Qjs7OztzQkFFdkMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztLQUk3QjtJQUVMOzs7O09BSUc7Ozs7Ozs7O0lBRUgsd0NBQWE7Ozs7Ozs7SUFEYixVQUNjLEtBQUs7UUFDakIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7S0FDbEM7SUFFRDs7OztPQUlHOzs7Ozs7OztJQUVILDJDQUFnQjs7Ozs7OztJQURoQixVQUNpQixLQUFLO1FBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDOUM7SUFFRDs7Ozs7OztPQU9HOzs7Ozs7Ozs7Ozs7SUFDSCx3Q0FBYTs7Ozs7Ozs7Ozs7SUFBYixVQUFjLEtBQUssRUFBRSxTQUFTOztRQUM1QixJQUFJLE1BQU0sQ0FBUztRQUNuQixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ2QsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNmLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNqRDtRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ04sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ2hEO1lBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ04sTUFBTSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsNEJBQTRCLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3pELElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNqRDtTQUNGO0tBQ0Y7O2dCQXZERixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7aUJBQ3pCOzs7O2dCQUpRLFNBQVM7OztnQ0FxQmYsWUFBWSxTQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQzttQ0FVeEMsWUFBWSxTQUFDLG1CQUFtQixFQUFFLENBQUMsUUFBUSxDQUFDOzsyQkFqQy9DOztTQU9hLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2FsaEFscGhhTXhdJ1xufSlcbmV4cG9ydCBjbGFzcyBBbHBoYU14RGlyZWN0aXZlIHtcblxuICAvKiogRXhwcmVjacOzbiByZWd1bGFyIHF1ZSBzZSBldmFsdWEgKi9cbiAgcHVibGljIEFMUEhBX01YID0gJ14oW0EtWmEtesOhw6nDrcOzw7rDscO8w4HDicONw5PDmsORw5wgXSkrJCc7XG4gIC8qKiAgTnVldm8gb2JqZXRvIFJlZ0V4cCAqL1xuICByZWdFeHAgPSBuZXcgUmVnRXhwKHRoaXMuQUxQSEFfTVgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbmdDb250cm9sOiBOZ0NvbnRyb2xcbiAgKSB7IH1cblxuICAvKipcbiAgICogTWFuZWphIGV2ZW50byBkZSBjYW1iaW8gZW4gZWwgaW5wdXQgeSBzZSBlamVjdXRhIGxhIGZ1bmNpb24gb25JbnB1dENoYW5nZS5cbiAgICogeyp9IGV2ZW50IFZhbG9yIGRlIGlucHV0XG4gICAqIEBtZW1iZXJvZiBBbHBoYU14RGlyZWN0aXZlXG4gICAqL1xuICBASG9zdExpc3RlbmVyKCduZ01vZGVsQ2hhbmdlJywgWyckZXZlbnQnXSlcbiAgb25Nb2RlbENoYW5nZShldmVudCkge1xuICAgIHRoaXMub25JbnB1dENoYW5nZShldmVudCwgZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hbmVqYSBlbCBldmVudG8gZGUgdGVjbGEgZGUgcmV0cm9jZXNvIGVudmlhbmRvIHRydWUgY29tbyBzZWd1bmRvIHBhcmFtZXRyby5cbiAgICogeyp9IGV2ZW50IEV2ZW50byBkZSB0ZWNsYSBkZSByZXRyb2Nlc29cbiAgICogQG1lbWJlcm9mIEFscGhhTXhEaXJlY3RpdmVcbiAgICovXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYmFja3NwYWNlJywgWyckZXZlbnQnXSlcbiAga2V5ZG93bkJhY2tzcGFjZShldmVudCkge1xuICAgIHRoaXMub25JbnB1dENoYW5nZShldmVudC50YXJnZXQudmFsdWUsIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV2YWx1YSBsb3MgcGFyYW1ldHJvcyBjb24gUmVnRXhwIHkgYWN0dWFsaXphIGVsIGNvbnRlbmlkbyBkZWwgaW5wdXRcbiAgICogcG9yIG1lZGlvIGRlIG5nQ29udHJvbC52YWx1ZUFjY2Vzc29yLCBzaSBlbCB2YWxvciBubyBlcyB2YWxpZG8gc2UgcmVtcGxhemFcbiAgICogZWwgY29udGVuaWRvIGNvbiBsYSBmdW5jaW9uIHJlcGxhY2UuXG4gICAqIHsqfSBldmVudCBWYWxvciBxdWUgc2Ugb2J0aWVuZSBkZWwgaW5wdXQuXG4gICAqIHsqfSBiYWNrU3BhY2UgQmFuZGVyYSB2YWxvciB0cnVlIHNpIGVsIGV2ZW50byBlcyBkZXNhdGFkbyBwb3IgZXN0YSB0ZWNsYS5cbiAgICogQG1lbWJlcm9mIEFscGhhTXhEaXJlY3RpdmVcbiAgICovXG4gIG9uSW5wdXRDaGFuZ2UoZXZlbnQsIGJhY2tTcGFjZSkge1xuICAgIGxldCBuZXdWYWw6IHN0cmluZztcbiAgICBpZiAoYmFja1NwYWNlKSB7XG4gICAgICBuZXdWYWwgPSBldmVudDtcbiAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3Iud3JpdGVWYWx1ZShuZXdWYWwpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoKHRoaXMucmVnRXhwLnRlc3QoZXZlbnQpKSkge1xuICAgICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yLndyaXRlVmFsdWUoZXZlbnQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV3VmFsID0gZXZlbnQucmVwbGFjZSgvW15BLVphLXrDocOpw63Ds8O6w7HDvMOBw4nDjcOTw5rDkcOcXFxzXS9nLCAnJyk7XG4gICAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3Iud3JpdGVWYWx1ZShuZXdWYWwpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG4iXX0=