import * as rxjs from 'rxjs'; import { Subject } from 'rxjs'; import * as _angular_core from '@angular/core'; import { ElementRef, OnDestroy, OnChanges, OnInit, AfterViewInit, TemplateRef, SimpleChanges, InjectionToken } from '@angular/core'; import { ControlValueAccessor } from '@angular/forms'; declare class NgSelectConfig { placeholder: string; fixedPlaceholder: boolean; notFoundText: string; typeToSearchText: string; addTagText: string; loadingText: string; clearAllText: string; disableVirtualScroll: boolean; openOnEnter: boolean; appendTo: string; bindValue: string; bindLabel: string; appearance: string; clearSearchOnAdd: boolean; deselectOnClick: boolean; tabFocusOnClear: boolean; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } interface NgOption { [name: string]: any; index?: number; htmlId?: string; selected?: boolean; disabled?: boolean; marked?: boolean; label?: string; value?: string | any; parent?: NgOption; children?: NgOption[]; } type DropdownPosition = 'top' | 'right' | 'bottom' | 'left' | 'auto'; type SelectionModelFactory = () => SelectionModel; declare function DefaultSelectionModelFactory(): DefaultSelectionModel; interface SelectionModel { value: NgOption[]; select(item: NgOption, multiple: boolean, selectableGroupAsModel: boolean): any; unselect(item: NgOption, multiple: boolean): any; clear(keepDisabled: boolean): any; } declare class DefaultSelectionModel implements SelectionModel { private _selected; get value(): NgOption[]; select(item: NgOption, multiple: boolean, groupAsModel: boolean): void; unselect(item: NgOption, multiple: boolean): void; clear(keepDisabled: boolean): void; private _setChildrenSelectedState; private _removeChildren; private _removeParent; private _activeChildren; } declare class ItemsList { private _ngSelect; private _selectionModel; private _groups; constructor(_ngSelect: NgSelectComponent, _selectionModel: SelectionModel); private _items; get items(): NgOption[]; private _filteredItems; get filteredItems(): NgOption[]; private _markedIndex; get markedIndex(): number; get selectedItems(): NgOption[]; get markedItem(): NgOption; get noItemsToSelect(): boolean; get maxItemsSelected(): boolean; get lastSelectedItem(): NgOption; setItems(items: readonly any[]): void; select(item: NgOption): void; unselect(item: NgOption): void; findItem(value: any): NgOption; addItem(item: any): NgOption; clearSelected(keepDisabled?: boolean): void; findByLabel(term: string): NgOption; filter(term: string): void; resetFilteredItems(): void; unmarkItem(): void; markNextItem(): void; markPreviousItem(): void; markItem(item: NgOption): void; markSelectedOrDefault(markDefault?: boolean): void; resolveNested(option: any, key: string): any; mapItem(item: any, index: number): NgOption; mapSelectedItems(): void; private _showSelected; private _hideSelected; private _defaultSearchFn; private _getNextItemIndex; private _stepToItem; private _getLastMarkedIndex; private _groupBy; private _flatten; } type StateChange = { value: any; disabled: boolean; label?: string; }; declare class NgOptionComponent { readonly value: _angular_core.InputSignal; readonly disabled: _angular_core.InputSignalWithTransform; readonly elementRef: ElementRef; readonly label: _angular_core.WritableSignal; constructor(); readonly stateChange: _angular_core.Signal; readonly stateChange$: rxjs.Observable; private get _label(); static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare const SELECTION_MODEL_FACTORY: InjectionToken; type AddTagFn = (term: string) => any | Promise; type CompareWithFn = (a: any, b: any) => boolean; type GroupValueFn = (key: string | any, children: any[]) => string | any; declare class NgSelectComponent implements OnDestroy, OnChanges, OnInit, AfterViewInit, ControlValueAccessor { readonly classes: string; private readonly autoFocus; readonly config: NgSelectConfig; private readonly _cd; private readonly _console; readonly _disabled: _angular_core.WritableSignal; readonly ariaLabelDropdown: _angular_core.InputSignal; readonly ariaLabel: _angular_core.InputSignal; readonly markFirst: _angular_core.InputSignalWithTransform; readonly placeholder: _angular_core.InputSignal; readonly fixedPlaceholder: _angular_core.InputSignal; readonly notFoundText: _angular_core.InputSignal; readonly typeToSearchText: _angular_core.InputSignal; readonly preventToggleOnRightClick: _angular_core.InputSignal; readonly addTagText: _angular_core.InputSignal; readonly loadingText: _angular_core.InputSignal; readonly clearAllText: _angular_core.InputSignal; readonly dropdownPosition: _angular_core.InputSignal; readonly appendTo: _angular_core.InputSignal; readonly loading: _angular_core.InputSignalWithTransform; readonly closeOnSelect: _angular_core.InputSignalWithTransform; readonly hideSelected: _angular_core.InputSignalWithTransform; readonly selectOnTab: _angular_core.InputSignalWithTransform; readonly openOnEnter: _angular_core.InputSignalWithTransform; readonly maxSelectedItems: _angular_core.InputSignalWithTransform; readonly groupBy: _angular_core.InputSignal any)>; readonly groupValue: _angular_core.InputSignal; readonly bufferAmount: _angular_core.InputSignalWithTransform; readonly virtualScroll: _angular_core.InputSignalWithTransform; readonly selectableGroup: _angular_core.InputSignalWithTransform; readonly tabFocusOnClearButton: _angular_core.InputSignal; readonly selectableGroupAsModel: _angular_core.InputSignalWithTransform; readonly searchFn: _angular_core.InputSignal; readonly trackByFn: _angular_core.InputSignal; readonly clearOnBackspace: _angular_core.InputSignalWithTransform; readonly labelForId: _angular_core.InputSignal; readonly inputAttrs: _angular_core.InputSignal<{ [key: string]: string; }>; readonly tabIndex: _angular_core.InputSignalWithTransform; readonly readonly: _angular_core.InputSignalWithTransform; readonly searchWhileComposing: _angular_core.InputSignalWithTransform; readonly minTermLength: _angular_core.InputSignalWithTransform; readonly editableSearchTerm: _angular_core.InputSignalWithTransform; readonly ngClass: _angular_core.InputSignal; readonly typeahead: _angular_core.InputSignal>; readonly multiple: _angular_core.InputSignalWithTransform; readonly addTag: _angular_core.InputSignal; readonly searchable: _angular_core.InputSignalWithTransform; readonly clearable: _angular_core.InputSignalWithTransform; readonly deselectOnClick: _angular_core.InputSignal; readonly clearSearchOnAdd: _angular_core.InputSignal; readonly compareWith: _angular_core.InputSignalWithTransform; readonly bindLabel: _angular_core.ModelSignal; readonly bindValue: _angular_core.ModelSignal; readonly appearance: _angular_core.ModelSignal; readonly isOpen: _angular_core.ModelSignal; readonly items: _angular_core.ModelSignal; readonly blurEvent: _angular_core.OutputEmitterRef; readonly focusEvent: _angular_core.OutputEmitterRef; readonly changeEvent: _angular_core.OutputEmitterRef; readonly openEvent: _angular_core.OutputEmitterRef; readonly closeEvent: _angular_core.OutputEmitterRef; readonly searchEvent: _angular_core.OutputEmitterRef<{ term: string; items: any[]; }>; readonly clearEvent: _angular_core.OutputEmitterRef; readonly addEvent: _angular_core.OutputEmitterRef; readonly removeEvent: _angular_core.OutputEmitterRef; readonly scroll: _angular_core.OutputEmitterRef<{ start: number; end: number; }>; readonly scrollToEnd: _angular_core.OutputEmitterRef; readonly disabled: _angular_core.Signal; readonly clearSearchOnAddValue: _angular_core.Signal; readonly deselectOnClickValue: _angular_core.Signal; readonly optionTemplate: _angular_core.Signal>; readonly optgroupTemplate: _angular_core.Signal>; readonly labelTemplate: _angular_core.Signal>; readonly multiLabelTemplate: _angular_core.Signal>; readonly headerTemplate: _angular_core.Signal>; readonly footerTemplate: _angular_core.Signal>; readonly notFoundTemplate: _angular_core.Signal>; readonly placeholderTemplate: _angular_core.Signal>; readonly typeToSearchTemplate: _angular_core.Signal>; readonly loadingTextTemplate: _angular_core.Signal>; readonly tagTemplate: _angular_core.Signal>; readonly loadingSpinnerTemplate: _angular_core.Signal>; readonly clearButtonTemplate: _angular_core.Signal>; readonly dropdownPanel: _angular_core.Signal; readonly searchInput: _angular_core.Signal>; readonly clearButton: _angular_core.Signal>; ngOptions: _angular_core.Signal; ngOptionsObservable: rxjs.Observable; itemsList: ItemsList; viewPortItems: NgOption[]; searchTerm: string; dropdownId: string; element: HTMLElement; focused: boolean; escapeHTML: boolean; tabFocusOnClear: _angular_core.WritableSignal; private _itemsAreUsed; private readonly _defaultLabel; private _primitive; private _manualOpen; private _pressedKeys; private _isComposing; private readonly _destroy$; private readonly _keyPress$; constructor(); get filtered(): boolean; get selectedItems(): NgOption[]; get selectedValues(): any[]; get hasValue(): boolean; get currentPanelPosition(): DropdownPosition; get showAddTag(): boolean; private get _editableSearchTerm(); private get _isTypeahead(); private get _validTerm(); readonly keyDownFn: _angular_core.InputSignal<(_: KeyboardEvent) => boolean>; clearItem: (item: any) => void; ngOnInit(): void; ngOnChanges(changes: SimpleChanges): void; ngAfterViewInit(): void; ngOnDestroy(): void; handleKeyDown($event: KeyboardEvent): void; handleKeyCode($event: KeyboardEvent): void; handleKeyCodeInput($event: KeyboardEvent): void; handleKeyCodeClear($event: KeyboardEvent): void; handleMousedown($event: MouseEvent): boolean; handleArrowClick(): void; handleClearClick(_event?: MouseEvent): void; clearModel(): void; writeValue(value: any | any[]): void; registerOnChange(fn: any): void; registerOnTouched(fn: any): void; setDisabledState(state: boolean): void; toggle(): void; open(): void; close(): void; toggleItem(item: NgOption): void; select(item: NgOption): void; focus(): void; blur(): void; unselect(item: NgOption): void; selectTag(): void; showClear(): boolean; focusOnClear(): void; trackByOption: (_: number, item: NgOption) => any; showNoItemsFound(): boolean; showTypeToSearch(): boolean; onCompositionStart(): void; onCompositionEnd(term: string): void; filter(term: string): void; onInputFocus($event: FocusEvent): void; onInputBlur($event: FocusEvent): void; onItemHover(item: NgOption): void; detectChanges(): void; private _onChange; private _onTouched; private _setSearchTermFromItems; private _setItems; private _setItemsFromNgOptions; private _isValidWriteValue; private _handleWriteValue; private _handleKeyPresses; private _setInputAttributes; private _setTabFocusOnClear; private _updateNgModel; private _clearSearch; private _changeSearch; private _scrollToMarked; private _scrollToTag; private _onSelectionChanged; private _handleTab; private _handleEnter; private _handleSpace; private _handleArrowDown; private _handleArrowUp; private _nextItemIsTag; private _handleBackspace; private _mergeGlobalConfig; /** * Gets virtual scroll value from input or from config * * @param config NgSelectConfig object * * @returns `true` if virtual scroll is enabled, `false` otherwise */ private getVirtualScroll; /** * Gets disableVirtualScroll value from input or from config * * @param config NgSelectConfig object * * @returns `true` if disableVirtualScroll is enabled, `false` otherwise */ private isVirtualScrollDisabled; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class NgDropdownPanelComponent implements OnInit, OnChanges, OnDestroy { private _renderer; private _zone; private _panelService; private _document; private _dropdown; readonly items: _angular_core.InputSignal; readonly markedItem: _angular_core.InputSignal; readonly position: _angular_core.InputSignal; readonly appendTo: _angular_core.InputSignal; readonly bufferAmount: _angular_core.InputSignal; readonly virtualScroll: _angular_core.InputSignalWithTransform; readonly headerTemplate: _angular_core.InputSignal>; readonly footerTemplate: _angular_core.InputSignal>; readonly filterValue: _angular_core.InputSignal; readonly ariaLabelDropdown: _angular_core.InputSignal; readonly update: _angular_core.OutputEmitterRef; readonly scroll: _angular_core.OutputEmitterRef<{ start: number; end: number; }>; readonly scrollToEnd: _angular_core.OutputEmitterRef; readonly outsideClick: _angular_core.OutputEmitterRef; private readonly contentElementRef; private readonly scrollElementRef; private readonly paddingElementRef; private readonly _destroy$; private readonly _virtualPadding; private readonly _scrollablePanel; private readonly _contentPanel; private _select; private _parent; private _scrollToEndFired; private _updateScrollHeight; private _lastScrollPosition; private _currentPosition; get currentPosition(): DropdownPosition; private _itemsLength; private get itemsLength(); private set itemsLength(value); private get _startOffset(); ngOnInit(): void; ngOnChanges(changes: SimpleChanges): void; ngOnDestroy(): void; scrollTo(option: NgOption, startFromOption?: boolean): void; scrollToTag(): void; adjustPosition(): void; private _handleDropdownPosition; private _updateDropdownClass; private _handleScroll; private _handleOutsideClick; private _checkToClose; private _onItemsChange; private _updateItems; private _updateItemsRange; private _onContentScrolled; private _updateVirtualHeight; private _setVirtualHeight; private _onItemsLengthChanged; private _renderItemsRange; private _measureDimensions; private _fireScrollToEnd; private _calculateCurrentPosition; private _appendDropdown; private _updateXPosition; private _updateYPosition; private _setupMousedownListener; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class NgItemLabelDirective { private element; ngItemLabel: _angular_core.InputSignal; escape: _angular_core.InputSignal; constructor(); static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵdir: _angular_core.ɵɵDirectiveDeclaration; } declare class NgOptionTemplateDirective { readonly template: TemplateRef; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵdir: _angular_core.ɵɵDirectiveDeclaration; } declare class NgOptgroupTemplateDirective { readonly template: TemplateRef; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵdir: _angular_core.ɵɵDirectiveDeclaration; } declare class NgLabelTemplateDirective { readonly template: TemplateRef; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵdir: _angular_core.ɵɵDirectiveDeclaration; } declare class NgMultiLabelTemplateDirective { readonly template: TemplateRef; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵdir: _angular_core.ɵɵDirectiveDeclaration; } declare class NgHeaderTemplateDirective { readonly template: TemplateRef; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵdir: _angular_core.ɵɵDirectiveDeclaration; } declare class NgFooterTemplateDirective { readonly template: TemplateRef; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵdir: _angular_core.ɵɵDirectiveDeclaration; } declare class NgNotFoundTemplateDirective { readonly template: TemplateRef; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵdir: _angular_core.ɵɵDirectiveDeclaration; } declare class NgPlaceholderTemplateDirective { readonly template: TemplateRef; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵdir: _angular_core.ɵɵDirectiveDeclaration; } declare class NgTypeToSearchTemplateDirective { readonly template: TemplateRef; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵdir: _angular_core.ɵɵDirectiveDeclaration; } declare class NgLoadingTextTemplateDirective { readonly template: TemplateRef; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵdir: _angular_core.ɵɵDirectiveDeclaration; } declare class NgTagTemplateDirective { readonly template: TemplateRef; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵdir: _angular_core.ɵɵDirectiveDeclaration; } declare class NgLoadingSpinnerTemplateDirective { readonly template: TemplateRef; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵdir: _angular_core.ɵɵDirectiveDeclaration; } declare class NgClearButtonTemplateDirective { readonly template: TemplateRef; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵdir: _angular_core.ɵɵDirectiveDeclaration; } declare class NgSelectModule { static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵmod: _angular_core.ɵɵNgModuleDeclaration; static ɵinj: _angular_core.ɵɵInjectorDeclaration; } declare class ConsoleService { warn(message: string): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } interface ItemsRangeResult { scrollHeight: number; topPadding: number; start: number; end: number; } interface PanelDimensions { itemHeight: number; panelHeight: number; itemsPerViewport: number; } declare class NgDropdownPanelService { private _dimensions; get dimensions(): PanelDimensions; calculateItems(scrollPos: number, itemsLength: number, buffer: number): ItemsRangeResult; setDimensions(itemHeight: number, panelHeight: number): void; getScrollTo(itemTop: number, itemHeight: number, lastScroll: number): number; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } export { ConsoleService, DefaultSelectionModel, DefaultSelectionModelFactory, NgClearButtonTemplateDirective, NgDropdownPanelComponent, NgDropdownPanelService, NgFooterTemplateDirective, NgHeaderTemplateDirective, NgItemLabelDirective, NgLabelTemplateDirective, NgLoadingSpinnerTemplateDirective, NgLoadingTextTemplateDirective, NgMultiLabelTemplateDirective, NgNotFoundTemplateDirective, NgOptgroupTemplateDirective, NgOptionComponent, NgOptionTemplateDirective, NgPlaceholderTemplateDirective, NgSelectComponent, NgSelectConfig, NgSelectModule, NgTagTemplateDirective, NgTypeToSearchTemplateDirective, SELECTION_MODEL_FACTORY }; export type { DropdownPosition, NgOption, SelectionModel };