UNPKG

@ng-select/ng-select

Version:

Angular ng-select - All in One UI Select, Multiselect and Autocomplete

246 lines (245 loc) 13 kB
import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, InjectionToken, OnChanges, OnDestroy, OnInit, QueryList, SimpleChanges, TemplateRef } from '@angular/core'; import { ControlValueAccessor } from '@angular/forms'; import { Subject } from 'rxjs'; import { NgSelectConfig } from './config.service'; import { ConsoleService } from './console.service'; import { ItemsList } from './items-list'; import { NgDropdownPanelComponent } from './ng-dropdown-panel.component'; import { NgOptionComponent } from './ng-option.component'; import { DropdownPosition, NgOption } from './ng-select.types'; import { SelectionModelFactory } from './selection-model'; import * as i0 from "@angular/core"; export declare const SELECTION_MODEL_FACTORY: InjectionToken<SelectionModelFactory>; export type AddTagFn = (term: string) => any | Promise<any>; export type CompareWithFn = (a: any, b: any) => boolean; export type GroupValueFn = (key: string | any, children: any[]) => string | any; export declare class NgSelectComponent implements OnDestroy, OnChanges, OnInit, AfterViewInit, ControlValueAccessor { classes: string; private readonly autoFocus; config: NgSelectConfig; private readonly _cd; private readonly _console; ariaLabelDropdown: string; bindLabel: string; bindValue: string; ariaLabel: string | undefined; markFirst: boolean; placeholder: string; fixedPlaceholder: boolean; notFoundText: string; typeToSearchText: string; preventToggleOnRightClick: boolean; addTagText: string; loadingText: string; clearAllText: string; appearance: string; dropdownPosition: DropdownPosition; appendTo: string; loading: boolean; closeOnSelect: boolean; hideSelected: boolean; selectOnTab: boolean; openOnEnter: boolean; maxSelectedItems: number; groupBy: string | ((value: any) => any); groupValue: GroupValueFn; bufferAmount: number; virtualScroll: boolean; selectableGroup: boolean; selectableGroupAsModel: boolean; searchFn: any; trackByFn: any; clearOnBackspace: boolean; labelForId: any; inputAttrs: { [key: string]: string; }; tabIndex: number; tabFocusOnClearButton: import("@angular/core").InputSignalWithTransform<boolean, unknown>; readonly: boolean; searchWhileComposing: boolean; minTermLength: number; editableSearchTerm: boolean; ngClass: any; typeahead: Subject<string>; multiple: boolean; addTag: boolean | AddTagFn; searchable: boolean; clearable: boolean; isOpen?: boolean; blurEvent: EventEmitter<any>; focusEvent: EventEmitter<any>; changeEvent: EventEmitter<any>; openEvent: EventEmitter<any>; closeEvent: EventEmitter<any>; searchEvent: EventEmitter<{ term: string; items: any[]; }>; clearEvent: EventEmitter<any>; addEvent: EventEmitter<any>; removeEvent: EventEmitter<any>; scroll: EventEmitter<{ start: number; end: number; }>; scrollToEnd: EventEmitter<any>; optionTemplate: TemplateRef<any>; optgroupTemplate: TemplateRef<any>; labelTemplate: TemplateRef<any>; multiLabelTemplate: TemplateRef<any>; headerTemplate: TemplateRef<any>; footerTemplate: TemplateRef<any>; notFoundTemplate: TemplateRef<any>; placeholderTemplate: TemplateRef<any>; typeToSearchTemplate: TemplateRef<any>; loadingTextTemplate: TemplateRef<any>; tagTemplate: TemplateRef<any>; loadingSpinnerTemplate: TemplateRef<any>; clearButtonTemplate: TemplateRef<any>; dropdownPanel: NgDropdownPanelComponent; searchInput: ElementRef<HTMLInputElement>; clearButton: ElementRef<HTMLSpanElement>; ngOptions: QueryList<NgOptionComponent>; useDefaultClass: boolean; itemsList: ItemsList; viewPortItems: NgOption[]; searchTerm: string; dropdownId: string; element: HTMLElement; focused: boolean; escapeHTML: boolean; private _itemsAreUsed; private readonly _defaultLabel; private _primitive; private _manualOpen; private _pressedKeys; private _isComposing; private readonly _destroy$; private readonly _keyPress$; constructor(classes: string, autoFocus: any, config: NgSelectConfig, newSelectionModel: SelectionModelFactory | undefined, _elementRef: ElementRef<HTMLElement>, _cd: ChangeDetectorRef, _console: ConsoleService); get filtered(): boolean; get single(): boolean; private _items; get items(): readonly any[] | null | undefined; set items(value: readonly any[] | null | undefined); private _disabled; get disabled(): boolean; private _compareWith; get compareWith(): CompareWithFn; set compareWith(fn: CompareWithFn); private _clearSearchOnAdd; get clearSearchOnAdd(): boolean; set clearSearchOnAdd(value: boolean); private _deselectOnClick; get deselectOnClick(): boolean; set deselectOnClick(value: 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(); keyDownFn: (_: 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(): 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 _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: i0.ɵɵFactoryDeclaration<NgSelectComponent, [{ attribute: "class"; }, { attribute: "autofocus"; }, null, { optional: true; }, null, null, null]>; static ɵcmp: i0.ɵɵComponentDeclaration<NgSelectComponent, "ng-select", never, { "ariaLabelDropdown": { "alias": "ariaLabelDropdown"; "required": false; }; "bindLabel": { "alias": "bindLabel"; "required": false; }; "bindValue": { "alias": "bindValue"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "markFirst": { "alias": "markFirst"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "fixedPlaceholder": { "alias": "fixedPlaceholder"; "required": false; }; "notFoundText": { "alias": "notFoundText"; "required": false; }; "typeToSearchText": { "alias": "typeToSearchText"; "required": false; }; "preventToggleOnRightClick": { "alias": "preventToggleOnRightClick"; "required": false; }; "addTagText": { "alias": "addTagText"; "required": false; }; "loadingText": { "alias": "loadingText"; "required": false; }; "clearAllText": { "alias": "clearAllText"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "dropdownPosition": { "alias": "dropdownPosition"; "required": false; }; "appendTo": { "alias": "appendTo"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "closeOnSelect": { "alias": "closeOnSelect"; "required": false; }; "hideSelected": { "alias": "hideSelected"; "required": false; }; "selectOnTab": { "alias": "selectOnTab"; "required": false; }; "openOnEnter": { "alias": "openOnEnter"; "required": false; }; "maxSelectedItems": { "alias": "maxSelectedItems"; "required": false; }; "groupBy": { "alias": "groupBy"; "required": false; }; "groupValue": { "alias": "groupValue"; "required": false; }; "bufferAmount": { "alias": "bufferAmount"; "required": false; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; }; "selectableGroup": { "alias": "selectableGroup"; "required": false; }; "selectableGroupAsModel": { "alias": "selectableGroupAsModel"; "required": false; }; "searchFn": { "alias": "searchFn"; "required": false; }; "trackByFn": { "alias": "trackByFn"; "required": false; }; "clearOnBackspace": { "alias": "clearOnBackspace"; "required": false; }; "labelForId": { "alias": "labelForId"; "required": false; }; "inputAttrs": { "alias": "inputAttrs"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "tabFocusOnClearButton": { "alias": "tabFocusOnClearButton"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; }; "searchWhileComposing": { "alias": "searchWhileComposing"; "required": false; }; "minTermLength": { "alias": "minTermLength"; "required": false; }; "editableSearchTerm": { "alias": "editableSearchTerm"; "required": false; }; "ngClass": { "alias": "ngClass"; "required": false; }; "typeahead": { "alias": "typeahead"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "addTag": { "alias": "addTag"; "required": false; }; "searchable": { "alias": "searchable"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "isOpen": { "alias": "isOpen"; "required": false; }; "items": { "alias": "items"; "required": false; }; "compareWith": { "alias": "compareWith"; "required": false; }; "clearSearchOnAdd": { "alias": "clearSearchOnAdd"; "required": false; }; "deselectOnClick": { "alias": "deselectOnClick"; "required": false; }; "keyDownFn": { "alias": "keyDownFn"; "required": false; }; }, { "blurEvent": "blur"; "focusEvent": "focus"; "changeEvent": "change"; "openEvent": "open"; "closeEvent": "close"; "searchEvent": "search"; "clearEvent": "clear"; "addEvent": "add"; "removeEvent": "remove"; "scroll": "scroll"; "scrollToEnd": "scrollToEnd"; }, ["optionTemplate", "optgroupTemplate", "labelTemplate", "multiLabelTemplate", "headerTemplate", "footerTemplate", "notFoundTemplate", "placeholderTemplate", "typeToSearchTemplate", "loadingTextTemplate", "tagTemplate", "loadingSpinnerTemplate", "clearButtonTemplate", "ngOptions"], never, true, never>; static ngAcceptInputType_markFirst: unknown; static ngAcceptInputType_loading: unknown; static ngAcceptInputType_closeOnSelect: unknown; static ngAcceptInputType_hideSelected: unknown; static ngAcceptInputType_selectOnTab: unknown; static ngAcceptInputType_openOnEnter: unknown; static ngAcceptInputType_maxSelectedItems: unknown; static ngAcceptInputType_bufferAmount: unknown; static ngAcceptInputType_virtualScroll: unknown; static ngAcceptInputType_selectableGroup: unknown; static ngAcceptInputType_selectableGroupAsModel: unknown; static ngAcceptInputType_clearOnBackspace: unknown; static ngAcceptInputType_tabIndex: unknown; static ngAcceptInputType_readonly: unknown; static ngAcceptInputType_searchWhileComposing: unknown; static ngAcceptInputType_minTermLength: unknown; static ngAcceptInputType_editableSearchTerm: unknown; static ngAcceptInputType_multiple: unknown; static ngAcceptInputType_searchable: unknown; static ngAcceptInputType_clearable: unknown; }