UNPKG

@controladad/ng-base

Version:
88 lines (87 loc) 4.41 kB
import { AfterViewInit, DestroyRef, ElementRef, EventEmitter, OnChanges, OnDestroy, SimpleChanges } from '@angular/core'; import { BehaviorSubject, Observable, Subscription } from 'rxjs'; import { MatMenuTrigger } from '@angular/material/menu'; import { ItemRecord, ItemRecords$ } from '../../../../core'; import { SelectionModel } from '../../../classes'; import { FormControlExtended } from '@al00x/forms'; import * as i0 from "@angular/core"; interface SelectItem<T> extends ItemRecord<T> { optional?: boolean; type?: 'selectAll'; } export declare class CacSelectOptionsComponent<T> implements OnChanges, AfterViewInit, OnDestroy { destroyRef: DestroyRef; readonly SEARCH_OR_ADD_TEXT: string; readonly SEARCH_TEXT: string; readonly N_ITEMS_SELECTED_TEXT: string; readonly CHOOSE_OPTIONAL_VALUE_TEXT: string; readonly LOADING_TEXT: string; readonly NO_ITEMS_AVAILABLE_TEXT: string; trigger: MatMenuTrigger; wrapperEl: ElementRef<HTMLDivElement>; filterInputEl?: ElementRef<HTMLInputElement>; panelEl: ElementRef<HTMLDivElement>; containerEl: ElementRef<HTMLDivElement>; control: FormControlExtended; items?: ItemRecords$<T, any> | undefined; requiredCharactersForFilter: number; filterStrategy: 'startWith' | 'includes'; optional?: boolean; searchable?: boolean; menuClass?: string; multiple?: boolean; showIcons?: boolean; categories?: ItemRecords$<string | number, any> | undefined; menuClosed: EventEmitter<any>; onSelect: EventEmitter<T>; onKeydown: EventEmitter<KeyboardEvent>; onMultiSelect: EventEmitter<ItemRecord<T, unknown>[]>; originalItems$: BehaviorSubject<ItemRecord<T, unknown>[] | undefined>; categories$: BehaviorSubject<ItemRecord<string | number, unknown>[] | undefined>; filteredItems$: BehaviorSubject<SelectItem<T>[] | undefined>; itemsUpdateSub: Subscription; categoriesUpdateSub: Subscription; controlSub: Subscription; customInputSub: Subscription; currentItemControl: FormControlExtended<SelectItem<T> | null | undefined, any>; filterControl: FormControlExtended<string, any>; categoryControl: FormControlExtended<string | number | undefined, any>; isLoading$: Observable<boolean>; isClosing: boolean; isOpening: boolean; private _initialValue?; private _instanceOfItems?; private _recentOptionalItems; private _customInput?; protected _selectionModel: SelectionModel<SelectItem<any>>; currentFocusIndex: import("@angular/core").WritableSignal<number>; protected _showingOptionalValue: import("@angular/core").WritableSignal<boolean>; constructor(); ngAfterViewInit(): void; ngOnChanges(changes: SimpleChanges): void; ngOnDestroy(): void; selectItem(item: SelectItem<T>, e?: MouseEvent): void; selectFirstItem(): void; selectFocusedItem(): void; open(): void; close(): void; focusNextItem(): void; focusPrevItem(): void; onFilterKeyDown(e: KeyboardEvent): void; setElementToFocus(el: HTMLInputElement): void; private invokeTypedItemAction; private scrollToFocusedIndex; private setFocusIndex; private updateFocusIndex; private itemToIndex; private indexToItem; private prepareClose; private setCurrentItemByValue; private updateSelectionModel; private markAsTouched; private markAsDirty; private valueTypeTransform; static ɵfac: i0.ɵɵFactoryDeclaration<CacSelectOptionsComponent<any>, never>; static ɵcmp: i0.ɵɵComponentDeclaration<CacSelectOptionsComponent<any>, "cac-select-options", never, { "control": { "alias": "control"; "required": false; }; "items": { "alias": "items"; "required": false; }; "requiredCharactersForFilter": { "alias": "requiredCharactersForFilter"; "required": false; }; "filterStrategy": { "alias": "filterStrategy"; "required": false; }; "optional": { "alias": "optional"; "required": false; }; "searchable": { "alias": "searchable"; "required": false; }; "menuClass": { "alias": "menuClass"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "showIcons": { "alias": "showIcons"; "required": false; }; "categories": { "alias": "categories"; "required": false; }; }, { "menuClosed": "menuClosed"; "onSelect": "onSelect"; "onKeydown": "onKeydown"; "onMultiSelect": "onMultiSelect"; }, never, never, true, never>; } export {};