ng-form-helper
Version:
Feature set to use in your angular form
212 lines • 12.4 kB
JavaScript
/**
* @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
*/
var FormFieldDirective = /** @class */ (function () {
function FormFieldDirective() {
this.oldState = {
cursorStart: 0,
cursorEnd: 0,
value: ''
};
// These are for angular use
this.isDisabled = false;
this.onChange = (/**
* @param {...?} arg
* @return {?}
*/
function () {
var arg = [];
for (var _i = 0; _i < arguments.length; _i++) {
arg[_i] = arguments[_i];
}
return void (0);
});
this.onTouch = (/**
* @return {?}
*/
function () { return void (0); });
}
/**
* @return {?}
*/
FormFieldDirective.prototype.ngOnInit = /**
* @return {?}
*/
function () {
this.oldState.value = this.element.nativeElement.value;
};
/**
* @return {?}
*/
FormFieldDirective.prototype.onKeyDown = /**
* @return {?}
*/
function () {
this.oldState.cursorStart = this.element.nativeElement.selectionStart;
this.oldState.cursorEnd = this.element.nativeElement.selectionEnd;
};
/**
* @return {?}
*/
FormFieldDirective.prototype.onBlur = /**
* @return {?}
*/
function () {
this.onTouch();
};
/**
* @param {?} value
* @return {?}
*/
FormFieldDirective.prototype.writeValue = /**
* @param {?} value
* @return {?}
*/
function (value) {
/** @type {?} */
var normalizedValue = value == null ? '' : value;
this.oldState.value = normalizedValue;
this.onChange(value);
this.renderer.setProperty(this.element.nativeElement, 'value', normalizedValue);
};
/**
* @param {?} isDisabled
* @return {?}
*/
FormFieldDirective.prototype.setDisabledState = /**
* @param {?} isDisabled
* @return {?}
*/
function (isDisabled) {
this.renderer.setProperty(this.element.nativeElement, 'disabled', isDisabled);
this.isDisabled = isDisabled;
};
/**
* @protected
* @param {?} event
* @return {?}
*/
FormFieldDirective.prototype.getValueFromKeyboardEvent = /**
* @protected
* @param {?} event
* @return {?}
*/
function (event) {
/** @type {?} */
var el = event.target && (/** @type {?} */ (event.target)) || null;
return el && el.value || '';
};
/**
* @protected
* @param {?} start
* @param {?=} end
* @return {?}
*/
FormFieldDirective.prototype.setCursorPosition = /**
* @protected
* @param {?} start
* @param {?=} end
* @return {?}
*/
function (start, end) {
if (end === void 0) { end = start; }
/** @type {?} */
var el = this.element.nativeElement;
/** @type {?} */
var type = el.getAttribute('type');
el.setAttribute('type', 'text');
el.selectionStart = start;
el.selectionEnd = end;
el.setAttribute('type', type);
};
/**
* @return {?}
*/
FormFieldDirective.prototype.resetField = /**
* @return {?}
*/
function () {
this.onChange(this.oldState.value);
this.writeValue(this.oldState.value);
this.setCursorPosition(this.oldState.cursorStart, this.oldState.cursorEnd);
};
/**
* @param {?} value
* @return {?}
*/
FormFieldDirective.prototype.updateFieldValue = /**
* @param {?} value
* @return {?}
*/
function (value) {
this.writeValue(value);
this.oldState.value = value;
};
/**
* @param {?} fn
* @return {?}
*/
FormFieldDirective.prototype.registerOnChange = /**
* @param {?} fn
* @return {?}
*/
function (fn) {
this.onChange = fn;
};
/**
* @param {?} fn
* @return {?}
*/
FormFieldDirective.prototype.registerOnTouched = /**
* @param {?} fn
* @return {?}
*/
function (fn) {
this.onTouch = fn;
};
FormFieldDirective.propDecorators = {
onKeyDown: [{ type: HostListener, args: ['keydown',] }],
onBlur: [{ type: HostListener, args: ['blur',] }]
};
return FormFieldDirective;
}());
export { FormFieldDirective };
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1mb3JtLWhlbHBlci8iLCJzb3VyY2VzIjpbImxpYi9mb3JtLWZpZWxkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBYyxZQUFZLEVBQXFCLE1BQU0sZUFBZSxDQUFDOzs7O0FBRzVFO0lBQUE7UUFLWSxhQUFRLEdBQThEO1lBQzlFLFdBQVcsRUFBRSxDQUFDO1lBQ2QsU0FBUyxFQUFFLENBQUM7WUFDWixLQUFLLEVBQUUsRUFBRTtTQUNWLENBQUM7O1FBR1EsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixhQUFROzs7O1FBQUc7WUFBQyxhQUFhO2lCQUFiLFVBQWEsRUFBYixxQkFBYSxFQUFiLElBQWE7Z0JBQWIsd0JBQWE7O1lBQUssT0FBQSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQVIsQ0FBUSxFQUFDO1FBQ3ZDLFlBQU87OztRQUFHLGNBQU0sT0FBQSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQVIsQ0FBUSxFQUFDO0lBNkRyQyxDQUFDOzs7O0lBM0RDLHFDQUFROzs7SUFBUjtRQUNFLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztJQUN6RCxDQUFDOzs7O0lBR0Qsc0NBQVM7OztJQURUO1FBRUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQztJQUNwRSxDQUFDOzs7O0lBR0QsbUNBQU07OztJQUROO1FBRUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pCLENBQUM7Ozs7O0lBRUQsdUNBQVU7Ozs7SUFBVixVQUFXLEtBQWE7O1lBQ2hCLGVBQWUsR0FBRyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUs7UUFDbEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsZUFBZSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsT0FBTyxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7Ozs7O0lBRUQsNkNBQWdCOzs7O0lBQWhCLFVBQWlCLFVBQW1CO1FBQ2xDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM5RSxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDOzs7Ozs7SUFFUyxzREFBeUI7Ozs7O0lBQW5DLFVBQW9DLEtBQW9COztZQUNoRCxFQUFFLEdBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSSxtQkFBQSxLQUFLLENBQUMsTUFBTSxFQUFvQixJQUFJLElBQUk7UUFDbkUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7SUFDOUIsQ0FBQzs7Ozs7OztJQUVTLDhDQUFpQjs7Ozs7O0lBQTNCLFVBQTRCLEtBQWEsRUFBRSxHQUFXO1FBQVgsb0JBQUEsRUFBQSxXQUFXOztZQUM5QyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhOztZQUMvQixJQUFJLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7UUFDcEMsRUFBRSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDaEMsRUFBRSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDMUIsRUFBRSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUM7UUFDdEIsRUFBRSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQzs7OztJQUVELHVDQUFVOzs7SUFBVjtRQUNFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDN0UsQ0FBQzs7Ozs7SUFFRCw2Q0FBZ0I7Ozs7SUFBaEIsVUFBaUIsS0FBYTtRQUM1QixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUM5QixDQUFDOzs7OztJQUVELDZDQUFnQjs7OztJQUFoQixVQUFpQixFQUFnQztRQUMvQyxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDOzs7OztJQUVELDhDQUFpQjs7OztJQUFqQixVQUFrQixFQUFtQjtRQUNuQyxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNwQixDQUFDOzs0QkF0REEsWUFBWSxTQUFDLFNBQVM7eUJBTXRCLFlBQVksU0FBQyxNQUFNOztJQWlEdEIseUJBQUM7Q0FBQSxBQTNFRCxJQTJFQztTQTNFcUIsa0JBQWtCOzs7Ozs7SUFFdEMscUNBQXVDOzs7OztJQUN2QyxzQ0FBdUM7Ozs7O0lBRXZDLHNDQUlFOzs7OztJQUdGLHdDQUE2Qjs7Ozs7SUFDN0Isc0NBQWlEOzs7OztJQUNqRCxxQ0FBbUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIE9uSW5pdCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZvcm1GaWVsZERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG5cclxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZWxlbWVudDogRWxlbWVudFJlZjtcclxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVuZGVyZXI6IFJlbmRlcmVyMjtcclxuXHJcbiAgcHJvdGVjdGVkIG9sZFN0YXRlOiB7IGN1cnNvclN0YXJ0OiBudW1iZXI7IGN1cnNvckVuZDogbnVtYmVyOyB2YWx1ZTogc3RyaW5nIH0gPSB7XHJcbiAgICBjdXJzb3JTdGFydDogMCxcclxuICAgIGN1cnNvckVuZDogMCxcclxuICAgIHZhbHVlOiAnJ1xyXG4gIH07XHJcblxyXG4gIC8vICBUaGVzZSBhcmUgZm9yIGFuZ3VsYXIgdXNlXHJcbiAgcHJvdGVjdGVkIGlzRGlzYWJsZWQgPSBmYWxzZTtcclxuICBwcm90ZWN0ZWQgb25DaGFuZ2UgPSAoLi4uYXJnOiBhbnlbXSkgPT4gdm9pZCAoMCk7XHJcbiAgcHJvdGVjdGVkIG9uVG91Y2ggPSAoKSA9PiB2b2lkICgwKTtcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLm9sZFN0YXRlLnZhbHVlID0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWU7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJylcclxuICBvbktleURvd24oKTogdm9pZCB7XHJcbiAgICB0aGlzLm9sZFN0YXRlLmN1cnNvclN0YXJ0ID0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ7XHJcbiAgICB0aGlzLm9sZFN0YXRlLmN1cnNvckVuZCA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvbkVuZDtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2JsdXInKVxyXG4gIG9uQmx1cigpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaCgpO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBub3JtYWxpemVkVmFsdWUgPSB2YWx1ZSA9PSBudWxsID8gJycgOiB2YWx1ZTtcclxuICAgIHRoaXMub2xkU3RhdGUudmFsdWUgPSBub3JtYWxpemVkVmFsdWU7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICd2YWx1ZScsIG5vcm1hbGl6ZWRWYWx1ZSk7XHJcbiAgfVxyXG5cclxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdkaXNhYmxlZCcsIGlzRGlzYWJsZWQpO1xyXG4gICAgdGhpcy5pc0Rpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBnZXRWYWx1ZUZyb21LZXlib2FyZEV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGVsID0gZXZlbnQudGFyZ2V0ICYmIGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50IHx8IG51bGw7XHJcbiAgICByZXR1cm4gZWwgJiYgZWwudmFsdWUgfHwgJyc7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgc2V0Q3Vyc29yUG9zaXRpb24oc3RhcnQ6IG51bWJlciwgZW5kID0gc3RhcnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IGVsID0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBjb25zdCB0eXBlID0gZWwuZ2V0QXR0cmlidXRlKCd0eXBlJyk7XHJcbiAgICBlbC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAndGV4dCcpO1xyXG4gICAgZWwuc2VsZWN0aW9uU3RhcnQgPSBzdGFydDtcclxuICAgIGVsLnNlbGVjdGlvbkVuZCA9IGVuZDtcclxuICAgIGVsLnNldEF0dHJpYnV0ZSgndHlwZScsIHR5cGUpO1xyXG4gIH1cclxuXHJcbiAgcmVzZXRGaWVsZCgpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UodGhpcy5vbGRTdGF0ZS52YWx1ZSk7XHJcbiAgICB0aGlzLndyaXRlVmFsdWUodGhpcy5vbGRTdGF0ZS52YWx1ZSk7XHJcbiAgICB0aGlzLnNldEN1cnNvclBvc2l0aW9uKHRoaXMub2xkU3RhdGUuY3Vyc29yU3RhcnQsIHRoaXMub2xkU3RhdGUuY3Vyc29yRW5kKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUZpZWxkVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy53cml0ZVZhbHVlKHZhbHVlKTtcclxuICAgIHRoaXMub2xkU3RhdGUudmFsdWUgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICguLi5hcmc6IGFueVtdKSA9PiB1bmRlZmluZWQpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB1bmRlZmluZWQpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xyXG4gIH1cclxufVxyXG4iXX0=