UNPKG

ng-form-helper

Version:

Feature set to use in your angular form

90 lines 6.54 kB
/** * @fileoverview added by tsickle * Generated from: lib/regexed-field.directive.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Directive, ElementRef, forwardRef, HostListener, Input, Renderer2 } from '@angular/core'; import { NG_VALUE_ACCESSOR } from '@angular/forms'; import { FormFieldDirective } from './form-field.directive'; export class RegexedFieldDirective extends FormFieldDirective { /** * @param {?} element * @param {?} renderer */ constructor(element, renderer) { super(); this.element = element; this.renderer = renderer; this.regexRule = /(?:)/; } /** * @param {?} regex * @return {?} */ set setRegex(regex) { this.regexRule = new RegExp(regex); } /** * @param {?} event * @return {?} */ onInput(event) { /** @type {?} */ const value = this.getValueFromKeyboardEvent(event); // this validation is here for IE11 or lower... it emmits the input event for anything // and create a loop if (value === this.oldState.value) { return; } if (this.regexRule.test(value)) { /** @type {?} */ const cursorInitialPosition = this.element.nativeElement.selectionStart; this.updateFieldValue(value); this.setCursorPosition(cursorInitialPosition); return; } this.resetField(); } } RegexedFieldDirective.decorators = [ { type: Directive, args: [{ selector: '[formRegexedField]', providers: [ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef((/** * @return {?} */ () => RegexedFieldDirective)), multi: true } ] },] } ]; /** @nocollapse */ RegexedFieldDirective.ctorParameters = () => [ { type: ElementRef }, { type: Renderer2 } ]; RegexedFieldDirective.propDecorators = { setRegex: [{ type: Input, args: ['formRegexedField',] }], onInput: [{ type: HostListener, args: ['input', ['$event'],] }] }; if (false) { /** * @type {?} * @private */ RegexedFieldDirective.prototype.regexRule; /** * @type {?} * @protected */ RegexedFieldDirective.prototype.element; /** * @type {?} * @protected */ RegexedFieldDirective.prototype.renderer; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnZXhlZC1maWVsZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1mb3JtLWhlbHBlci8iLCJzb3VyY2VzIjpbImxpYi9yZWdleGVkLWZpZWxkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQVk1RCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsa0JBQWtCOzs7OztJQVMzRCxZQUNZLE9BQW1CLEVBQ25CLFFBQW1CO1FBRTdCLEtBQUssRUFBRSxDQUFDO1FBSEUsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUNuQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBSnZCLGNBQVMsR0FBRyxNQUFNLENBQUM7SUFPM0IsQ0FBQzs7Ozs7SUFaRCxJQUNJLFFBQVEsQ0FBQyxLQUFhO1FBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQzs7Ozs7SUFZRCxPQUFPLENBQUMsS0FBb0I7O2NBQ3BCLEtBQUssR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDO1FBQ25ELHVGQUF1RjtRQUN2RixxQkFBcUI7UUFDckIsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUU7WUFDakMsT0FBTztTQUNSO1FBRUQsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTs7a0JBQ3hCLHFCQUFxQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGNBQWM7WUFDdkUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQzlDLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDOzs7WUEzQ0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxvQkFBb0I7Z0JBQzlCLFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixXQUFXLEVBQUUsVUFBVTs7O3dCQUFDLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixFQUFDO3dCQUNwRCxLQUFLLEVBQUUsSUFBSTtxQkFDWjtpQkFDRjthQUNGOzs7O1lBYm1CLFVBQVU7WUFBbUMsU0FBUzs7O3VCQWdCdkUsS0FBSyxTQUFDLGtCQUFrQjtzQkFjeEIsWUFBWSxTQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQzs7Ozs7OztJQVRqQywwQ0FBMkI7Ozs7O0lBR3pCLHdDQUE2Qjs7Ozs7SUFDN0IseUNBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBmb3J3YXJkUmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEZvcm1GaWVsZERpcmVjdGl2ZSB9IGZyb20gJy4vZm9ybS1maWVsZC5kaXJlY3RpdmUnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbZm9ybVJlZ2V4ZWRGaWVsZF0nLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUmVnZXhlZEZpZWxkRGlyZWN0aXZlKSxcclxuICAgICAgbXVsdGk6IHRydWVcclxuICAgIH1cclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZWdleGVkRmllbGREaXJlY3RpdmUgZXh0ZW5kcyBGb3JtRmllbGREaXJlY3RpdmUge1xyXG5cclxuICBASW5wdXQoJ2Zvcm1SZWdleGVkRmllbGQnKVxyXG4gIHNldCBzZXRSZWdleChyZWdleDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnJlZ2V4UnVsZSA9IG5ldyBSZWdFeHAocmVnZXgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWdleFJ1bGUgPSAvKD86KS87XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXHJcbiAgICBwcm90ZWN0ZWQgcmVuZGVyZXI6IFJlbmRlcmVyMlxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2lucHV0JywgWyckZXZlbnQnXSlcclxuICBvbklucHV0KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWVGcm9tS2V5Ym9hcmRFdmVudChldmVudCk7XHJcbiAgICAvLyAgdGhpcyB2YWxpZGF0aW9uIGlzIGhlcmUgZm9yIElFMTEgb3IgbG93ZXIuLi4gaXQgZW1taXRzIHRoZSBpbnB1dCBldmVudCBmb3IgYW55dGhpbmdcclxuICAgIC8vICBhbmQgY3JlYXRlIGEgbG9vcFxyXG4gICAgaWYgKHZhbHVlID09PSB0aGlzLm9sZFN0YXRlLnZhbHVlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5yZWdleFJ1bGUudGVzdCh2YWx1ZSkpIHtcclxuICAgICAgY29uc3QgY3Vyc29ySW5pdGlhbFBvc2l0aW9uID0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ7XHJcbiAgICAgIHRoaXMudXBkYXRlRmllbGRWYWx1ZSh2YWx1ZSk7XHJcbiAgICAgIHRoaXMuc2V0Q3Vyc29yUG9zaXRpb24oY3Vyc29ySW5pdGlhbFBvc2l0aW9uKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucmVzZXRGaWVsZCgpO1xyXG4gIH1cclxufVxyXG4iXX0=