@koalarx/ui
Version:
Koala UI is a modern and accessible component library designed to speed up interface development in Angular projects. With simple integration and clear documentation, you can easily build robust and visually appealing applications.
157 lines (149 loc) • 8.49 kB
TypeScript
import * as _angular_core from '@angular/core';
import { Signal, WritableSignal, ResourceRef, InjectionToken, OnInit, OnDestroy, ElementRef } from '@angular/core';
import { FormControl } from '@angular/forms';
import { InputFieldBase } from '@koalarx/ui/shared/components/input-field';
import * as _koalarx_ui_shared_components_input_field_autocomplete from '@koalarx/ui/shared/components/input-field/autocomplete';
import { KlArray } from '@koalarx/utils/KlArray';
type AutocompleteOptionValue = string | number | null;
interface AutocompleteOption<TData = any> {
label: string;
value: AutocompleteOptionValue;
data?: TData;
}
type AutocompleteList = AutocompleteOption[];
interface AutocompleteDataOptionsFnParams {
filter?: string | null;
autofill?: any | null;
internalFilter?: string | null;
}
type AutocompleteDataOptionsFn = (data: Signal<AutocompleteDataOptionsFnParams>) => ResourceRef<AutocompleteList>;
type AutocompleteDataOptions = AutocompleteDataOptionsFn | ResourceRef<AutocompleteList> | Signal<AutocompleteList> | AutocompleteList;
declare class AutocompleteValue {
private readonly destroyRef;
private readonly _filter;
private _control?;
private readonly _currentValue;
private _multiple;
private _options?;
private _autofill;
private _isLoading?;
private _internalFilter;
private _isOnDemand?;
private readonly _requestOptionsParams;
private readonly _selectedOption;
private readonly _selectedOptions;
private readonly _hasValue;
filterControl: FormControl<string | null>;
get filter(): Signal<string | null>;
get hasValue(): Signal<boolean>;
get currentValue(): Signal<AutocompleteOption<any> | AutocompleteOption<any>[] | null>;
get selectedOption(): Signal<AutocompleteOption<any> | null>;
get selectedOptions(): Signal<AutocompleteOption<any>[]>;
get autofill(): Signal<any>;
get requestOptionsParams(): Signal<AutocompleteDataOptionsFnParams>;
set internalFilter(value: string | null);
get isOnDemand(): Signal<boolean>;
private selectedOptionIsDiff;
private selectOption;
makeAutofill(): Promise<void>;
init(control: FormControl<any>, options: Signal<AutocompleteList>, isLoading: Signal<boolean>, isOnDemand: WritableSignal<boolean>, multiple?: boolean): void;
clear(event: MouseEvent): void;
remove(event: MouseEvent, value: AutocompleteOptionValue): void;
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AutocompleteValue, never>;
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AutocompleteValue>;
}
type AutocompleteAfterCloseTrigger = string | Record<string, any>;
type AutocompleteAfterCloseTriggerFn = (trigger: AutocompleteAfterCloseTrigger) => void;
declare const AUTOCOMPLETE_APP_REF: InjectionToken<unknown>;
interface AutocompleteOpenData {
fieldId: string;
options: Signal<AutocompleteList>;
control: FormControl<any>;
multiple: boolean;
autocompleteValue: AutocompleteValue;
placeholderSearchField?: string;
disableAutoTypeConversion?: boolean;
}
declare class Autocomplete {
private readonly appRef;
private readonly viewContainerRef;
private readonly injector;
private generateElementId;
private calculatePosition;
private waitForButtonEnabled;
private positionOnScreen;
open(data: AutocompleteOpenData): Promise<void>;
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Autocomplete, never>;
static ɵprov: _angular_core.ɵɵInjectableDeclaration<Autocomplete>;
}
declare class AutocompleteBuilder {
onDemand(config: AutocompleteDataOptionsFn): AutocompleteDataOptionsFn;
onServer(config: ResourceRef<AutocompleteList>): ResourceRef<AutocompleteList>;
inMemory(config: AutocompleteList): AutocompleteList;
inMemoryWithLoading(config: Signal<AutocompleteList>): Signal<AutocompleteList>;
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AutocompleteBuilder, never>;
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AutocompleteBuilder>;
}
interface OptionsResource {
onDemand?: ResourceRef<AutocompleteList>;
onServer?: ResourceRef<AutocompleteList>;
inMemory?: AutocompleteList;
inMemoryWithLoading?: Signal<AutocompleteList>;
}
declare class AutocompleteField extends InputFieldBase implements OnInit {
private readonly injector;
readonly autocompleteValue: AutocompleteValue;
readonly autocomplete: Autocomplete;
readonly options: _angular_core.InputSignal<AutocompleteDataOptions>;
readonly multiple: _angular_core.InputSignalWithTransform<boolean, unknown>;
readonly placeholderSearchField: _angular_core.InputSignal<string | undefined>;
readonly disableAutoTypeConversion: _angular_core.InputSignalWithTransform<boolean, unknown>;
readonly isLoading: _angular_core.WritableSignal<boolean>;
readonly optionList: _angular_core.WritableSignal<AutocompleteList>;
readonly optionsResource: _angular_core.WritableSignal<OptionsResource | null>;
readonly isOnDemand: _angular_core.WritableSignal<boolean>;
constructor();
private applyFilter;
private generateOptionsResource;
open(): void;
ngOnInit(): void;
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AutocompleteField, never>;
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AutocompleteField, "kl-autocomplete-field", never, { "options": { "alias": "options"; "required": true; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "placeholderSearchField": { "alias": "placeholderSearchField"; "required": false; "isSignal": true; }; "disableAutoTypeConversion": { "alias": "disableAutoTypeConversion"; "required": false; "isSignal": true; }; }, {}, never, ["[errors]"], true, never>;
}
declare class AutocompleteOptions implements OnInit, OnDestroy {
private readonly autocompleteRef;
private readonly viewContainerRef;
private firstLoad;
fieldId: _angular_core.InputSignal<string>;
options: _angular_core.InputSignal<Signal<AutocompleteList>>;
control: _angular_core.InputSignal<FormControl<any>>;
multiple: _angular_core.InputSignal<boolean>;
autocompleteValue: _angular_core.InputSignal<AutocompleteValue>;
placeholderSearchField: _angular_core.InputSignal<string | undefined>;
disableAutoTypeConversion: _angular_core.InputSignalWithTransform<boolean, unknown>;
list: _angular_core.WritableSignal<KlArray<_koalarx_ui_shared_components_input_field_autocomplete.AutocompleteOption<any>>>;
optionFocused: _angular_core.WritableSignal<number>;
searchInputRef: Signal<ElementRef<HTMLInputElement> | undefined>;
constructor();
private updateScrollPosition;
private onKeyDown;
private onKeyup;
private onClick;
private onScroll;
private close;
ngOnDestroy(): void;
ngOnInit(): void;
setValue(event: Event): void;
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AutocompleteOptions, never>;
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AutocompleteOptions, "kl-autocomplete-options", never, { "fieldId": { "alias": "fieldId"; "required": true; "isSignal": true; }; "options": { "alias": "options"; "required": true; "isSignal": true; }; "control": { "alias": "control"; "required": true; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": true; "isSignal": true; }; "autocompleteValue": { "alias": "autocompleteValue"; "required": true; "isSignal": true; }; "placeholderSearchField": { "alias": "placeholderSearchField"; "required": false; "isSignal": true; }; "disableAutoTypeConversion": { "alias": "disableAutoTypeConversion"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
declare const AUTOCOMPLETE_REF_TOKEN: InjectionToken<unknown>;
declare class AutocompleteRef {
private readonly appRef;
private readonly componentRef;
close(): void;
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AutocompleteRef, never>;
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AutocompleteRef>;
}
export { AUTOCOMPLETE_APP_REF, AUTOCOMPLETE_REF_TOKEN, Autocomplete, AutocompleteBuilder, AutocompleteField, AutocompleteOptions, AutocompleteRef, AutocompleteValue };
export type { AutocompleteAfterCloseTrigger, AutocompleteAfterCloseTriggerFn, AutocompleteDataOptions, AutocompleteDataOptionsFn, AutocompleteDataOptionsFnParams, AutocompleteList, AutocompleteOpenData, AutocompleteOption, AutocompleteOptionValue };