@deepkit/desktop-ui
Version:
Library for desktop UI widgets in Angular 10+
101 lines (100 loc) • 3.32 kB
TypeScript
import { ChangeDetectorRef, EventEmitter, Injector, OnDestroy, Type } from '@angular/core';
import { ControlValueAccessor, NgControl } from '@angular/forms';
import { FormComponent } from '../components/form/form.component';
import * as i0 from "@angular/core";
export declare function ngValueAccessor<T>(clazz: Type<T>): {
provide: import("@angular/core").InjectionToken<readonly ControlValueAccessor[]>;
useExisting: Type<any>;
multi: boolean;
};
/**
* If you sub class this class and have own constructor or property initialization you need
* to provide the dependencies of this class manually.
*
*
constructor(
protected injector: Injector,
protected cd: ChangeDetectorRef,
@SkipSelf() protected cdParent: ChangeDetectorRef,
) {
super(injector, cd, cdParent);
}
*
*/
export declare class ValueAccessorBase<T> implements ControlValueAccessor, OnDestroy {
protected readonly injector: Injector;
readonly cd: ChangeDetectorRef;
readonly cdParent: ChangeDetectorRef;
/**
* @hidden
*/
private _innerValue;
/**
* @hidden
*/
readonly _changedCallback: ((value: T | undefined) => void)[];
/**
* @hidden
*/
readonly _touchedCallback: (() => void)[];
private _ngControl?;
private _ngControlFetched;
disabled?: boolean | '';
get isDisabled(): boolean;
valid?: boolean;
get isValid(): boolean;
error?: boolean;
get isError(): boolean | null | undefined;
required: boolean | '';
readonly change: EventEmitter<T>;
protected formComponent?: FormComponent;
constructor(injector: Injector, cd: ChangeDetectorRef, cdParent: ChangeDetectorRef);
get ngControl(): NgControl | undefined;
/**
* @hidden
*/
setDisabledState(isDisabled: boolean): void;
/**
* @hidden
*/
ngOnDestroy(): void;
/**
* @hidden
*/
get innerValue(): T | undefined;
/**
* Sets the internal value and signals Angular's form and other users (that subscribed via registerOnChange())
* that a change happened.
*
* @hidden
*/
set innerValue(value: T | undefined);
/**
* Internal note: This method is called from outside. Either from Angular's form or other users.
*
* @hidden
*/
writeValue(value?: T): void;
/**
* This method can be overwritten to get easily notified when innerValue has been changed, either
* by outside or inside.
*
* @hidden
*/
onInnerValueChange(): Promise<void>;
/**
* Call this method to signal Angular's form or other users that this widget has been touched.
* @hidden
*/
touch(): void;
/**
* @hidden
*/
registerOnChange(fn: (value: T | undefined) => void): void;
/**
* @hidden
*/
registerOnTouched(fn: () => void): void;
static ɵfac: i0.ɵɵFactoryDeclaration<ValueAccessorBase<any>, [null, null, { skipSelf: true; }]>;
static ɵdir: i0.ɵɵDirectiveDeclaration<ValueAccessorBase<any>, never, never, { "disabled": { "alias": "disabled"; "required": false; }; "valid": { "alias": "valid"; "required": false; }; "error": { "alias": "error"; "required": false; }; "required": { "alias": "required"; "required": false; }; }, { "change": "change"; }, never, never, true, never>;
}