UNPKG

primeng

Version:

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Join the chat at https://gitter.im/primefaces/primeng](https://badges.gitter.im/primefaces/primeng.svg)](https://gitter.im/primefaces/primeng?ut

159 lines 5.74 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); var core_1 = require("@angular/core"); var common_1 = require("@angular/common"); var domhandler_1 = require("../dom/domhandler"); var forms_1 = require("@angular/forms"); exports.KEYFILTER_VALIDATOR = { provide: forms_1.NG_VALIDATORS, useExisting: core_1.forwardRef(function () { return KeyFilter; }), multi: true }; var KeyFilter = /** @class */ (function () { function KeyFilter(el, domHandler) { this.el = el; this.domHandler = domHandler; } KeyFilter_1 = KeyFilter; Object.defineProperty(KeyFilter.prototype, "pattern", { get: function () { return this._pattern; }, set: function (_pattern) { this._pattern = _pattern; this.regex = KeyFilter_1.DEFAULT_MASKS[this._pattern] || this._pattern; }, enumerable: true, configurable: true }); KeyFilter.prototype.isNavKeyPress = function (e) { var k = e.keyCode; k = this.domHandler.getBrowser().safari ? (KeyFilter_1.SAFARI_KEYS[k] || k) : k; return (k >= 33 && k <= 40) || k == KeyFilter_1.KEYS.RETURN || k == KeyFilter_1.KEYS.TAB || k == KeyFilter_1.KEYS.ESC; }; ; KeyFilter.prototype.isSpecialKey = function (e) { var k = e.keyCode; var c = e.charCode; return k == 9 || k == 13 || k == 27 || k == 16 || k == 17 || (k >= 18 && k <= 20) || (this.domHandler.getBrowser().opera && !e.shiftKey && (k == 8 || (k >= 33 && k <= 35) || (k >= 36 && k <= 39) || (k >= 44 && k <= 45))); }; KeyFilter.prototype.getKey = function (e) { var k = e.keyCode || e.charCode; return this.domHandler.getBrowser().safari ? (KeyFilter_1.SAFARI_KEYS[k] || k) : k; }; KeyFilter.prototype.getCharCode = function (e) { return e.charCode || e.keyCode || e.which; }; ; KeyFilter.prototype.onKeyPress = function (e) { if (this.pValidateOnly) { return; } var browser = this.domHandler.getBrowser(); if (e.ctrlKey || e.altKey) { return; } var k = this.getKey(e); if (browser.mozilla && (this.isNavKeyPress(e) || k == KeyFilter_1.KEYS.BACKSPACE || (k == KeyFilter_1.KEYS.DELETE && e.charCode == 0))) { return; } var c = this.getCharCode(e); var cc = String.fromCharCode(c); var ok = true; if (browser.mozilla && (this.isSpecialKey(e) || !cc)) { return; } ok = this.regex.test(cc); if (!ok) { e.preventDefault(); } }; KeyFilter.prototype.validate = function (c) { if (this.pValidateOnly) { var value = this.el.nativeElement.value; if (value && !this.regex.test(value)) { return { validatePattern: false }; } } }; KeyFilter.DEFAULT_MASKS = { pint: /[\d]/, 'int': /[\d\-]/, pnum: /[\d\.]/, money: /[\d\.\s,]/, num: /[\d\-\.]/, hex: /[0-9a-f]/i, email: /[a-z0-9_\.\-@]/i, alpha: /[a-z_]/i, alphanum: /[a-z0-9_]/i }; KeyFilter.KEYS = { TAB: 9, RETURN: 13, ESC: 27, BACKSPACE: 8, DELETE: 46 }; KeyFilter.SAFARI_KEYS = { 63234: 37, 63235: 39, 63232: 38, 63233: 40, 63276: 33, 63277: 34, 63272: 46, 63273: 36, 63275: 35 // end }; __decorate([ core_1.Input(), __metadata("design:type", Boolean) ], KeyFilter.prototype, "pValidateOnly", void 0); __decorate([ core_1.Input('pKeyFilter'), __metadata("design:type", Object), __metadata("design:paramtypes", [Object]) ], KeyFilter.prototype, "pattern", null); __decorate([ core_1.HostListener('keypress', ['$event']), __metadata("design:type", Function), __metadata("design:paramtypes", [KeyboardEvent]), __metadata("design:returntype", void 0) ], KeyFilter.prototype, "onKeyPress", null); KeyFilter = KeyFilter_1 = __decorate([ core_1.Directive({ selector: '[pKeyFilter]', providers: [domhandler_1.DomHandler, exports.KEYFILTER_VALIDATOR] }), __metadata("design:paramtypes", [core_1.ElementRef, domhandler_1.DomHandler]) ], KeyFilter); return KeyFilter; var KeyFilter_1; }()); exports.KeyFilter = KeyFilter; var KeyFilterModule = /** @class */ (function () { function KeyFilterModule() { } KeyFilterModule = __decorate([ core_1.NgModule({ imports: [common_1.CommonModule], exports: [KeyFilter], declarations: [KeyFilter] }) ], KeyFilterModule); return KeyFilterModule; }()); exports.KeyFilterModule = KeyFilterModule; //# sourceMappingURL=keyfilter.js.map