signal-template-forms
Version:
A powerful, type-safe Angular forms library built with signals, providing reactive form management with excellent developer experience and performance.
40 lines (39 loc) • 2.88 kB
TypeScript
import { DestroyRef, ElementRef, Injector, OnInit, Renderer2 } from '@angular/core';
import { type FormOption } from '../../../models/signal-form.model';
import * as i0 from "@angular/core";
export declare class FormDropdownOverlayComponent implements OnInit {
private readonly renderer;
private readonly elementRef;
private readonly destroyRef;
private readonly injector;
options: import("@angular/core").InputSignal<FormOption<string | number | boolean | object, unknown>[]>;
multiselect: import("@angular/core").InputSignal<boolean>;
triggerElement: import("@angular/core").InputSignal<HTMLElement | undefined>;
initialSelection: import("@angular/core").InputSignal<FormOption<string | number | boolean | object, unknown> | FormOption<string | number | boolean | object, unknown>[] | undefined>;
ariaListboxId: import("@angular/core").InputSignal<string>;
select: import("@angular/core").OutputEmitterRef<FormOption<string | number | boolean | object, unknown> | FormOption<string | number | boolean | object, unknown>[] | null>;
close: import("@angular/core").OutputEmitterRef<void>;
optionElements: import("@angular/core").Signal<readonly ElementRef<any>[]>;
protected focusedIndex: import("@angular/core").WritableSignal<number>;
protected selectedOptions: import("@angular/core").WritableSignal<FormOption<string | number | boolean | object, unknown>[]>;
protected readonly checkIcon: import("lucide-angular").LucideIconData;
protected readonly clearIcon: import("lucide-angular").LucideIconData;
constructor(renderer: Renderer2, elementRef: ElementRef, destroyRef: DestroyRef, injector: Injector);
ngOnInit(): void;
private handleSingleOrMultiSelect;
selectOption(option: FormOption): void;
private emitSelection;
toggleOption(option: FormOption): void;
setPosition({ top, left, width, }: {
top: number;
left: number;
width: number | string;
}): void;
protected isSelected(formOption: FormOption): boolean;
private listenToDocumentMouseClicks;
private listenToTriggerElementKeyDown;
private handleKeydown;
private listenToOptionElementForView;
static ɵfac: i0.ɵɵFactoryDeclaration<FormDropdownOverlayComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<FormDropdownOverlayComponent, "form-dropdown-overlay", never, { "options": { "alias": "options"; "required": true; "isSignal": true; }; "multiselect": { "alias": "multiselect"; "required": false; "isSignal": true; }; "triggerElement": { "alias": "triggerElement"; "required": false; "isSignal": true; }; "initialSelection": { "alias": "initialSelection"; "required": false; "isSignal": true; }; "ariaListboxId": { "alias": "ariaListboxId"; "required": true; "isSignal": true; }; }, { "select": "select"; "close": "close"; }, never, never, true, never>;
}