ng-form-helper
Version:
Feature set to use in your angular form
99 lines • 7.23 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: lib/regexed-field.directive.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Directive, ElementRef, forwardRef, HostListener, Input, Renderer2 } from '@angular/core';
import { NG_VALUE_ACCESSOR } from '@angular/forms';
import { FormFieldDirective } from './form-field.directive';
var RegexedFieldDirective = /** @class */ (function (_super) {
tslib_1.__extends(RegexedFieldDirective, _super);
function RegexedFieldDirective(element, renderer) {
var _this = _super.call(this) || this;
_this.element = element;
_this.renderer = renderer;
_this.regexRule = /(?:)/;
return _this;
}
Object.defineProperty(RegexedFieldDirective.prototype, "setRegex", {
set: /**
* @param {?} regex
* @return {?}
*/
function (regex) {
this.regexRule = new RegExp(regex);
},
enumerable: true,
configurable: true
});
/**
* @param {?} event
* @return {?}
*/
RegexedFieldDirective.prototype.onInput = /**
* @param {?} event
* @return {?}
*/
function (event) {
/** @type {?} */
var 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 {?} */
var 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 {?}
*/
function () { return RegexedFieldDirective; })),
multi: true
}
]
},] }
];
/** @nocollapse */
RegexedFieldDirective.ctorParameters = function () { return [
{ type: ElementRef },
{ type: Renderer2 }
]; };
RegexedFieldDirective.propDecorators = {
setRegex: [{ type: Input, args: ['formRegexedField',] }],
onInput: [{ type: HostListener, args: ['input', ['$event'],] }]
};
return RegexedFieldDirective;
}(FormFieldDirective));
export { RegexedFieldDirective };
if (false) {
/**
* @type {?}
* @private
*/
RegexedFieldDirective.prototype.regexRule;
/**
* @type {?}
* @protected
*/
RegexedFieldDirective.prototype.element;
/**
* @type {?}
* @protected
*/
RegexedFieldDirective.prototype.renderer;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnZXhlZC1maWVsZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1mb3JtLWhlbHBlci8iLCJzb3VyY2VzIjpbImxpYi9yZWdleGVkLWZpZWxkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFNUQ7SUFVMkMsaURBQWtCO0lBUzNELCtCQUNZLE9BQW1CLEVBQ25CLFFBQW1CO1FBRi9CLFlBSUUsaUJBQU8sU0FDUjtRQUpXLGFBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsY0FBUSxHQUFSLFFBQVEsQ0FBVztRQUp2QixlQUFTLEdBQUcsTUFBTSxDQUFDOztJQU8zQixDQUFDO0lBWkQsc0JBQ0ksMkNBQVE7Ozs7O1FBRFosVUFDYSxLQUFhO1lBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsQ0FBQzs7O09BQUE7Ozs7O0lBWUQsdUNBQU87Ozs7SUFEUCxVQUNRLEtBQW9COztZQUNwQixLQUFLLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEtBQUssQ0FBQztRQUNuRCx1RkFBdUY7UUFDdkYscUJBQXFCO1FBQ3JCLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFO1lBQ2pDLE9BQU87U0FDUjtRQUVELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7O2dCQUN4QixxQkFBcUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxjQUFjO1lBQ3ZFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QixJQUFJLENBQUMsaUJBQWlCLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUM5QyxPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQzs7Z0JBM0NGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVU7Ozs0QkFBQyxjQUFNLE9BQUEscUJBQXFCLEVBQXJCLENBQXFCLEVBQUM7NEJBQ3BELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGOzs7O2dCQWJtQixVQUFVO2dCQUFtQyxTQUFTOzs7MkJBZ0J2RSxLQUFLLFNBQUMsa0JBQWtCOzBCQWN4QixZQUFZLFNBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDOztJQWtCbkMsNEJBQUM7Q0FBQSxBQTVDRCxDQVUyQyxrQkFBa0IsR0FrQzVEO1NBbENZLHFCQUFxQjs7Ozs7O0lBT2hDLDBDQUEyQjs7Ozs7SUFHekIsd0NBQTZCOzs7OztJQUM3Qix5Q0FBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGZvcndhcmRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRm9ybUZpZWxkRGlyZWN0aXZlIH0gZnJvbSAnLi9mb3JtLWZpZWxkLmRpcmVjdGl2ZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tmb3JtUmVnZXhlZEZpZWxkXScsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSZWdleGVkRmllbGREaXJlY3RpdmUpLFxyXG4gICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgfVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFJlZ2V4ZWRGaWVsZERpcmVjdGl2ZSBleHRlbmRzIEZvcm1GaWVsZERpcmVjdGl2ZSB7XHJcblxyXG4gIEBJbnB1dCgnZm9ybVJlZ2V4ZWRGaWVsZCcpXHJcbiAgc2V0IHNldFJlZ2V4KHJlZ2V4OiBzdHJpbmcpIHtcclxuICAgIHRoaXMucmVnZXhSdWxlID0gbmV3IFJlZ0V4cChyZWdleCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlZ2V4UnVsZSA9IC8oPzopLztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgZWxlbWVudDogRWxlbWVudFJlZixcclxuICAgIHByb3RlY3RlZCByZW5kZXJlcjogUmVuZGVyZXIyXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignaW5wdXQnLCBbJyRldmVudCddKVxyXG4gIG9uSW5wdXQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRWYWx1ZUZyb21LZXlib2FyZEV2ZW50KGV2ZW50KTtcclxuICAgIC8vICB0aGlzIHZhbGlkYXRpb24gaXMgaGVyZSBmb3IgSUUxMSBvciBsb3dlci4uLiBpdCBlbW1pdHMgdGhlIGlucHV0IGV2ZW50IGZvciBhbnl0aGluZ1xyXG4gICAgLy8gIGFuZCBjcmVhdGUgYSBsb29wXHJcbiAgICBpZiAodmFsdWUgPT09IHRoaXMub2xkU3RhdGUudmFsdWUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnJlZ2V4UnVsZS50ZXN0KHZhbHVlKSkge1xyXG4gICAgICBjb25zdCBjdXJzb3JJbml0aWFsUG9zaXRpb24gPSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydDtcclxuICAgICAgdGhpcy51cGRhdGVGaWVsZFZhbHVlKHZhbHVlKTtcclxuICAgICAgdGhpcy5zZXRDdXJzb3JQb3NpdGlvbihjdXJzb3JJbml0aWFsUG9zaXRpb24pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5yZXNldEZpZWxkKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==