@ngx-performance-ui/core
Version:
Ngx Performance UI - Core
134 lines • 7.86 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { ChangeDetectorRef, Component, Injector, Input } from '@angular/core';
/**
* @template T, U
*/
export class AbstractNgModelComponent {
/**
* @param {?} injector
*/
constructor(injector) {
this.injector = injector;
this.valueFn = (/**
* @param {?} value
* @return {?}
*/
value => (/** @type {?} */ (((/** @type {?} */ (value))))));
this.valueLimitFn = (/**
* @param {?} value
* @return {?}
*/
value => false);
this.cdRef = injector.get(ChangeDetectorRef);
}
/**
* @param {?} value
* @return {?}
*/
set value(value) {
value = this.valueFn((/** @type {?} */ (((/** @type {?} */ (value))))), this._value);
if (this.valueLimitFn(value, this._value) !== false)
return;
this._value = value;
this.notifyValueChange();
}
/**
* @return {?}
*/
get value() {
return this._value || this.defaultValue;
}
/**
* @return {?}
*/
get defaultValue() {
return this._value;
}
/**
* @return {?}
*/
notifyValueChange() {
if (this.onChange) {
this.onChange(this.value);
}
}
/**
* @param {?} value
* @return {?}
*/
writeValue(value) {
this._value = this.valueLimitFn(value, this._value) || value;
setTimeout((/**
* @return {?}
*/
() => this.cdRef.detectChanges()), 0);
}
/**
* @param {?} fn
* @return {?}
*/
registerOnChange(fn) {
this.onChange = fn;
}
/**
* @param {?} fn
* @return {?}
*/
registerOnTouched(fn) {
this.onTouched = fn;
}
/**
* @param {?} isDisabled
* @return {?}
*/
setDisabledState(isDisabled) {
this.disabled = isDisabled;
}
}
AbstractNgModelComponent.decorators = [
{ type: Component, args: [{ template: '' }] }
];
/** @nocollapse */
AbstractNgModelComponent.ctorParameters = () => [
{ type: Injector }
];
AbstractNgModelComponent.propDecorators = {
disabled: [{ type: Input }],
id: [{ type: Input }],
ngModel: [{ type: Input }],
valueFn: [{ type: Input }],
valueLimitFn: [{ type: Input }],
value: [{ type: Input }]
};
if (false) {
/**
* @type {?}
* @protected
*/
AbstractNgModelComponent.prototype._value;
/** @type {?} */
AbstractNgModelComponent.prototype.disabled;
/** @type {?} */
AbstractNgModelComponent.prototype.id;
/** @type {?} */
AbstractNgModelComponent.prototype.ngModel;
/** @type {?} */
AbstractNgModelComponent.prototype.valueFn;
/** @type {?} */
AbstractNgModelComponent.prototype.valueLimitFn;
/** @type {?} */
AbstractNgModelComponent.prototype.onChange;
/** @type {?} */
AbstractNgModelComponent.prototype.onTouched;
/**
* @type {?}
* @protected
*/
AbstractNgModelComponent.prototype.cdRef;
/** @type {?} */
AbstractNgModelComponent.prototype.injector;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctbW9kZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neC1wZXJmb3JtYW5jZS11aS9jb3JlLyIsInNvdXJjZXMiOlsibGliL2Fic3RyYWN0cy9uZy1tb2RlbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQUc5RSxNQUFNLE9BQU8sd0JBQXdCOzs7O0lBeUNuQyxZQUFtQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBNUJyQyxZQUFPOzs7O1FBQXVDLEtBQUssQ0FBQyxFQUFFLENBQUMsbUJBQUEsQ0FBQyxtQkFBQSxLQUFLLEVBQU8sQ0FBQyxFQUFLLEVBQUM7UUFHM0UsaUJBQVk7Ozs7UUFBeUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUM7UUEwQmxFLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQy9DLENBQUM7Ozs7O0lBekJELElBQ0ksS0FBSyxDQUFDLEtBQVE7UUFDaEIsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQUEsQ0FBQyxtQkFBQSxLQUFLLEVBQU8sQ0FBQyxFQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXZELElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEtBQUs7WUFBRSxPQUFPO1FBRTVELElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7Ozs7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMxQyxDQUFDOzs7O0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7Ozs7SUFXRCxpQkFBaUI7UUFDZixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDM0I7SUFDSCxDQUFDOzs7OztJQUVELFVBQVUsQ0FBQyxLQUFRO1FBQ2pCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQztRQUM3RCxVQUFVOzs7UUFBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxHQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7Ozs7O0lBRUQsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDOzs7OztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQzs7Ozs7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUM3QixDQUFDOzs7WUFuRUYsU0FBUyxTQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTs7OztZQUZZLFFBQVE7Ozt1QkFNNUMsS0FBSztpQkFHTCxLQUFLO3NCQUdMLEtBQUs7c0JBR0wsS0FBSzsyQkFHTCxLQUFLO29CQUdMLEtBQUs7Ozs7Ozs7SUFqQk4sMENBQW9COztJQUVwQiw0Q0FDa0I7O0lBRWxCLHNDQUNXOztJQUVYLDJDQUNnQjs7SUFFaEIsMkNBQzJFOztJQUUzRSxnREFDb0U7O0lBb0JwRSw0Q0FBMkI7O0lBQzNCLDZDQUFvQjs7Ozs7SUFFcEIseUNBQW1DOztJQUV2Qiw0Q0FBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEluamVjdG9yLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHsgdGVtcGxhdGU6ICcnIH0pXG5leHBvcnQgY2xhc3MgQWJzdHJhY3ROZ01vZGVsQ29tcG9uZW50PFQgPSBhbnksIFUgPSBUPiBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgcHJvdGVjdGVkIF92YWx1ZTogVDtcblxuICBASW5wdXQoKVxuICBkaXNhYmxlZDogYm9vbGVhbjtcblxuICBASW5wdXQoKVxuICBpZDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIG5nTW9kZWw6IG51bWJlcjtcblxuICBASW5wdXQoKVxuICB2YWx1ZUZuOiAodmFsdWU6IFUsIHByZXZpb3VzVmFsdWU/OiBUKSA9PiBUID0gdmFsdWUgPT4gKHZhbHVlIGFzIGFueSkgYXMgVDtcblxuICBASW5wdXQoKVxuICB2YWx1ZUxpbWl0Rm46ICh2YWx1ZTogVCwgcHJldmlvdXNWYWx1ZT86IFQpID0+IGFueSA9IHZhbHVlID0+IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHNldCB2YWx1ZSh2YWx1ZTogVCkge1xuICAgIHZhbHVlID0gdGhpcy52YWx1ZUZuKCh2YWx1ZSBhcyBhbnkpIGFzIFUsIHRoaXMuX3ZhbHVlKTtcblxuICAgIGlmICh0aGlzLnZhbHVlTGltaXRGbih2YWx1ZSwgdGhpcy5fdmFsdWUpICE9PSBmYWxzZSkgcmV0dXJuO1xuXG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLm5vdGlmeVZhbHVlQ2hhbmdlKCk7XG4gIH1cblxuICBnZXQgdmFsdWUoKTogVCB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlIHx8IHRoaXMuZGVmYXVsdFZhbHVlO1xuICB9XG5cbiAgZ2V0IGRlZmF1bHRWYWx1ZSgpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBvbkNoYW5nZTogKHZhbHVlOiBUKSA9PiB7fTtcbiAgb25Ub3VjaGVkOiAoKSA9PiB7fTtcblxuICBwcm90ZWN0ZWQgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICB0aGlzLmNkUmVmID0gaW5qZWN0b3IuZ2V0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgfVxuXG4gIG5vdGlmeVZhbHVlQ2hhbmdlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm9uQ2hhbmdlKSB7XG4gICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IFQpOiB2b2lkIHtcbiAgICB0aGlzLl92YWx1ZSA9IHRoaXMudmFsdWVMaW1pdEZuKHZhbHVlLCB0aGlzLl92YWx1ZSkgfHwgdmFsdWU7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKSwgMCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG59XG4iXX0=