UNPKG

ng-form-helper

Version:

Feature set to use in your angular form

160 lines 10.6 kB
/** * @fileoverview added by tsickle * Generated from: lib/form-field.directive.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { HostListener } from '@angular/core'; /** * @abstract */ export class FormFieldDirective { constructor() { this.oldState = { cursorStart: 0, cursorEnd: 0, value: '' }; // These are for angular use this.isDisabled = false; this.onChange = (/** * @param {...?} arg * @return {?} */ (...arg) => void (0)); this.onTouch = (/** * @return {?} */ () => void (0)); } /** * @return {?} */ ngOnInit() { this.oldState.value = this.element.nativeElement.value; } /** * @return {?} */ onKeyDown() { this.oldState.cursorStart = this.element.nativeElement.selectionStart; this.oldState.cursorEnd = this.element.nativeElement.selectionEnd; } /** * @return {?} */ onBlur() { this.onTouch(); } /** * @param {?} value * @return {?} */ writeValue(value) { /** @type {?} */ const normalizedValue = value == null ? '' : value; this.oldState.value = normalizedValue; this.onChange(value); this.renderer.setProperty(this.element.nativeElement, 'value', normalizedValue); } /** * @param {?} isDisabled * @return {?} */ setDisabledState(isDisabled) { this.renderer.setProperty(this.element.nativeElement, 'disabled', isDisabled); this.isDisabled = isDisabled; } /** * @protected * @param {?} event * @return {?} */ getValueFromKeyboardEvent(event) { /** @type {?} */ const el = event.target && (/** @type {?} */ (event.target)) || null; return el && el.value || ''; } /** * @protected * @param {?} start * @param {?=} end * @return {?} */ setCursorPosition(start, end = start) { /** @type {?} */ const el = this.element.nativeElement; /** @type {?} */ const type = el.getAttribute('type'); el.setAttribute('type', 'text'); el.selectionStart = start; el.selectionEnd = end; el.setAttribute('type', type); } /** * @return {?} */ resetField() { this.onChange(this.oldState.value); this.writeValue(this.oldState.value); this.setCursorPosition(this.oldState.cursorStart, this.oldState.cursorEnd); } /** * @param {?} value * @return {?} */ updateFieldValue(value) { this.writeValue(value); this.oldState.value = value; } /** * @param {?} fn * @return {?} */ registerOnChange(fn) { this.onChange = fn; } /** * @param {?} fn * @return {?} */ registerOnTouched(fn) { this.onTouch = fn; } } FormFieldDirective.propDecorators = { onKeyDown: [{ type: HostListener, args: ['keydown',] }], onBlur: [{ type: HostListener, args: ['blur',] }] }; if (false) { /** * @type {?} * @protected */ FormFieldDirective.prototype.element; /** * @type {?} * @protected */ FormFieldDirective.prototype.renderer; /** * @type {?} * @protected */ FormFieldDirective.prototype.oldState; /** * @type {?} * @protected */ FormFieldDirective.prototype.isDisabled; /** * @type {?} * @protected */ FormFieldDirective.prototype.onChange; /** * @type {?} * @protected */ FormFieldDirective.prototype.onTouch; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1mb3JtLWhlbHBlci8iLCJzb3VyY2VzIjpbImxpYi9mb3JtLWZpZWxkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBYyxZQUFZLEVBQXFCLE1BQU0sZUFBZSxDQUFDOzs7O0FBRzVFLE1BQU0sT0FBZ0Isa0JBQWtCO0lBQXhDO1FBS1ksYUFBUSxHQUE4RDtZQUM5RSxXQUFXLEVBQUUsQ0FBQztZQUNkLFNBQVMsRUFBRSxDQUFDO1lBQ1osS0FBSyxFQUFFLEVBQUU7U0FDVixDQUFDOztRQUdRLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsYUFBUTs7OztRQUFHLENBQUMsR0FBRyxHQUFVLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBQztRQUN2QyxZQUFPOzs7UUFBRyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUM7SUE2RHJDLENBQUM7Ozs7SUEzREMsUUFBUTtRQUNOLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztJQUN6RCxDQUFDOzs7O0lBR0QsU0FBUztRQUNQLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQztRQUN0RSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUM7SUFDcEUsQ0FBQzs7OztJQUdELE1BQU07UUFDSixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQzs7Ozs7SUFFRCxVQUFVLENBQUMsS0FBYTs7Y0FDaEIsZUFBZSxHQUFHLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSztRQUNsRCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxlQUFlLENBQUM7UUFDdEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDbEYsQ0FBQzs7Ozs7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNsQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUUsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQzs7Ozs7O0lBRVMseUJBQXlCLENBQUMsS0FBb0I7O2NBQ2hELEVBQUUsR0FBRyxLQUFLLENBQUMsTUFBTSxJQUFJLG1CQUFBLEtBQUssQ0FBQyxNQUFNLEVBQW9CLElBQUksSUFBSTtRQUNuRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDOzs7Ozs7O0lBRVMsaUJBQWlCLENBQUMsS0FBYSxFQUFFLEdBQUcsR0FBRyxLQUFLOztjQUM5QyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhOztjQUMvQixJQUFJLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7UUFDcEMsRUFBRSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDaEMsRUFBRSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDMUIsRUFBRSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUM7UUFDdEIsRUFBRSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQzs7OztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7Ozs7O0lBRUQsZ0JBQWdCLENBQUMsS0FBYTtRQUM1QixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUM5QixDQUFDOzs7OztJQUVELGdCQUFnQixDQUFDLEVBQWdDO1FBQy9DLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7Ozs7O0lBRUQsaUJBQWlCLENBQUMsRUFBbUI7UUFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDcEIsQ0FBQzs7O3dCQXREQSxZQUFZLFNBQUMsU0FBUztxQkFNdEIsWUFBWSxTQUFDLE1BQU07Ozs7Ozs7SUF4QnBCLHFDQUF1Qzs7Ozs7SUFDdkMsc0NBQXVDOzs7OztJQUV2QyxzQ0FJRTs7Ozs7SUFHRix3Q0FBNkI7Ozs7O0lBQzdCLHNDQUFpRDs7Ozs7SUFDakQscUNBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBPbkluaXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGb3JtRmllbGREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuXHJcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGVsZW1lbnQ6IEVsZW1lbnRSZWY7XHJcbiAgcHJvdGVjdGVkIGFic3RyYWN0IHJlbmRlcmVyOiBSZW5kZXJlcjI7XHJcblxyXG4gIHByb3RlY3RlZCBvbGRTdGF0ZTogeyBjdXJzb3JTdGFydDogbnVtYmVyOyBjdXJzb3JFbmQ6IG51bWJlcjsgdmFsdWU6IHN0cmluZyB9ID0ge1xyXG4gICAgY3Vyc29yU3RhcnQ6IDAsXHJcbiAgICBjdXJzb3JFbmQ6IDAsXHJcbiAgICB2YWx1ZTogJydcclxuICB9O1xyXG5cclxuICAvLyAgVGhlc2UgYXJlIGZvciBhbmd1bGFyIHVzZVxyXG4gIHByb3RlY3RlZCBpc0Rpc2FibGVkID0gZmFsc2U7XHJcbiAgcHJvdGVjdGVkIG9uQ2hhbmdlID0gKC4uLmFyZzogYW55W10pID0+IHZvaWQgKDApO1xyXG4gIHByb3RlY3RlZCBvblRvdWNoID0gKCkgPT4gdm9pZCAoMCk7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5vbGRTdGF0ZS52YWx1ZSA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicpXHJcbiAgb25LZXlEb3duKCk6IHZvaWQge1xyXG4gICAgdGhpcy5vbGRTdGF0ZS5jdXJzb3JTdGFydCA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0O1xyXG4gICAgdGhpcy5vbGRTdGF0ZS5jdXJzb3JFbmQgPSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25FbmQ7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdibHVyJylcclxuICBvbkJsdXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2goKTtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3Qgbm9ybWFsaXplZFZhbHVlID0gdmFsdWUgPT0gbnVsbCA/ICcnIDogdmFsdWU7XHJcbiAgICB0aGlzLm9sZFN0YXRlLnZhbHVlID0gbm9ybWFsaXplZFZhbHVlO1xyXG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCAndmFsdWUnLCBub3JtYWxpemVkVmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCAnZGlzYWJsZWQnLCBpc0Rpc2FibGVkKTtcclxuICAgIHRoaXMuaXNEaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgZ2V0VmFsdWVGcm9tS2V5Ym9hcmRFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBlbCA9IGV2ZW50LnRhcmdldCAmJiBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCB8fCBudWxsO1xyXG4gICAgcmV0dXJuIGVsICYmIGVsLnZhbHVlIHx8ICcnO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHNldEN1cnNvclBvc2l0aW9uKHN0YXJ0OiBudW1iZXIsIGVuZCA9IHN0YXJ0KTogdm9pZCB7XHJcbiAgICBjb25zdCBlbCA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xyXG4gICAgY29uc3QgdHlwZSA9IGVsLmdldEF0dHJpYnV0ZSgndHlwZScpO1xyXG4gICAgZWwuc2V0QXR0cmlidXRlKCd0eXBlJywgJ3RleHQnKTtcclxuICAgIGVsLnNlbGVjdGlvblN0YXJ0ID0gc3RhcnQ7XHJcbiAgICBlbC5zZWxlY3Rpb25FbmQgPSBlbmQ7XHJcbiAgICBlbC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCB0eXBlKTtcclxuICB9XHJcblxyXG4gIHJlc2V0RmllbGQoKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMub2xkU3RhdGUudmFsdWUpO1xyXG4gICAgdGhpcy53cml0ZVZhbHVlKHRoaXMub2xkU3RhdGUudmFsdWUpO1xyXG4gICAgdGhpcy5zZXRDdXJzb3JQb3NpdGlvbih0aGlzLm9sZFN0YXRlLmN1cnNvclN0YXJ0LCB0aGlzLm9sZFN0YXRlLmN1cnNvckVuZCk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVGaWVsZFZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMud3JpdGVWYWx1ZSh2YWx1ZSk7XHJcbiAgICB0aGlzLm9sZFN0YXRlLnZhbHVlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoLi4uYXJnOiBhbnlbXSkgPT4gdW5kZWZpbmVkKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdW5kZWZpbmVkKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2ggPSBmbjtcclxuICB9XHJcbn1cclxuIl19