UNPKG

8.68 kBTypeScriptView Raw
1import { OnChanges, OnDestroy, OnInit, AfterViewInit, ChangeDetectorRef, EventEmitter, TemplateRef, ElementRef, SimpleChanges, QueryList, InjectionToken } from '@angular/core';
2import { ControlValueAccessor } from '@angular/forms';
3import { Subject } from 'rxjs';
4import { ConsoleService } from './console.service';
5import { ItemsList } from './items-list';
6import { NgOption, DropdownPosition } from './ng-select.types';
7import { NgDropdownPanelComponent } from './ng-dropdown-panel.component';
8import { NgOptionComponent } from './ng-option.component';
9import { SelectionModelFactory } from './selection-model';
10import { NgSelectConfig } from './config.service';
11import * as i0 from "@angular/core";
12export declare const SELECTION_MODEL_FACTORY: InjectionToken<SelectionModelFactory>;
13export declare type AddTagFn = ((term: string) => any | Promise<any>);
14export declare type CompareWithFn = (a: any, b: any) => boolean;
15export declare type GroupValueFn = (key: string | any, children: any[]) => string | any;
16export declare class NgSelectComponent implements OnDestroy, OnChanges, OnInit, AfterViewInit, ControlValueAccessor {
17 classes: string;
18 private autoFocus;
19 config: NgSelectConfig;
20 private _cd;
21 private _console;
22 bindLabel: string;
23 bindValue: string;
24 markFirst: boolean;
25 placeholder: string;
26 notFoundText: string;
27 typeToSearchText: string;
28 addTagText: string;
29 loadingText: string;
30 clearAllText: string;
31 appearance: string;
32 dropdownPosition: DropdownPosition;
33 appendTo: string;
34 loading: boolean;
35 closeOnSelect: boolean;
36 hideSelected: boolean;
37 selectOnTab: boolean;
38 openOnEnter: boolean;
39 maxSelectedItems: number;
40 groupBy: string | ((value: any) => any);
41 groupValue: GroupValueFn;
42 bufferAmount: number;
43 virtualScroll: boolean;
44 selectableGroup: boolean;
45 selectableGroupAsModel: boolean;
46 searchFn: any;
47 trackByFn: any;
48 clearOnBackspace: boolean;
49 labelForId: any;
50 inputAttrs: {
51 [key: string]: string;
52 };
53 tabIndex: number;
54 readonly: boolean;
55 searchWhileComposing: boolean;
56 minTermLength: number;
57 editableSearchTerm: boolean;
58 keyDownFn: (_: KeyboardEvent) => boolean;
59 typeahead: Subject<string>;
60 multiple: boolean;
61 addTag: boolean | AddTagFn;
62 searchable: boolean;
63 clearable: boolean;
64 isOpen: boolean;
65 get items(): any[] | null;
66 set items(value: any[] | null);
67 get compareWith(): CompareWithFn;
68 set compareWith(fn: CompareWithFn);
69 get clearSearchOnAdd(): boolean;
70 set clearSearchOnAdd(value: boolean);
71 blurEvent: EventEmitter<any>;
72 focusEvent: EventEmitter<any>;
73 changeEvent: EventEmitter<any>;
74 openEvent: EventEmitter<any>;
75 closeEvent: EventEmitter<any>;
76 searchEvent: EventEmitter<{
77 term: string;
78 items: any[];
79 }>;
80 clearEvent: EventEmitter<any>;
81 addEvent: EventEmitter<any>;
82 removeEvent: EventEmitter<any>;
83 scroll: EventEmitter<{
84 start: number;
85 end: number;
86 }>;
87 scrollToEnd: EventEmitter<any>;
88 optionTemplate: TemplateRef<any>;
89 optgroupTemplate: TemplateRef<any>;
90 labelTemplate: TemplateRef<any>;
91 multiLabelTemplate: TemplateRef<any>;
92 headerTemplate: TemplateRef<any>;
93 footerTemplate: TemplateRef<any>;
94 notFoundTemplate: TemplateRef<any>;
95 typeToSearchTemplate: TemplateRef<any>;
96 loadingTextTemplate: TemplateRef<any>;
97 tagTemplate: TemplateRef<any>;
98 loadingSpinnerTemplate: TemplateRef<any>;
99 dropdownPanel: NgDropdownPanelComponent;
100 searchInput: ElementRef<HTMLInputElement>;
101 ngOptions: QueryList<NgOptionComponent>;
102 useDefaultClass: boolean;
103 get disabled(): boolean;
104 get filtered(): boolean;
105 get single(): boolean;
106 itemsList: ItemsList;
107 viewPortItems: NgOption[];
108 searchTerm: string;
109 dropdownId: string;
110 element: HTMLElement;
111 focused: boolean;
112 escapeHTML: boolean;
113 private _items;
114 private _itemsAreUsed;
115 private _defaultLabel;
116 private _primitive;
117 private _manualOpen;
118 private _disabled;
119 private _pressedKeys;
120 private _compareWith;
121 private _clearSearchOnAdd;
122 private _isComposing;
123 private get _editableSearchTerm();
124 private readonly _destroy$;
125 private readonly _keyPress$;
126 private _onChange;
127 private _onTouched;
128 clearItem: (item: any) => void;
129 constructor(classes: string, autoFocus: any, config: NgSelectConfig, newSelectionModel: SelectionModelFactory, _elementRef: ElementRef<HTMLElement>, _cd: ChangeDetectorRef, _console: ConsoleService);
130 get selectedItems(): NgOption[];
131 get selectedValues(): any[];
132 get hasValue(): boolean;
133 get currentPanelPosition(): DropdownPosition;
134 ngOnInit(): void;
135 ngOnChanges(changes: SimpleChanges): void;
136 ngAfterViewInit(): void;
137 ngOnDestroy(): void;
138 handleKeyDown($event: KeyboardEvent): void;
139 handleKeyCode($event: KeyboardEvent): void;
140 handleMousedown($event: MouseEvent): void;
141 handleArrowClick(): void;
142 handleClearClick(): void;
143 clearModel(): void;
144 writeValue(value: any | any[]): void;
145 registerOnChange(fn: any): void;
146 registerOnTouched(fn: any): void;
147 setDisabledState(state: boolean): void;
148 toggle(): void;
149 open(): void;
150 close(): void;
151 toggleItem(item: NgOption): void;
152 select(item: NgOption): void;
153 focus(): void;
154 blur(): void;
155 unselect(item: NgOption): void;
156 selectTag(): void;
157 showClear(): boolean;
158 trackByOption: (_: number, item: NgOption) => any;
159 get showAddTag(): boolean;
160 showNoItemsFound(): boolean;
161 showTypeToSearch(): boolean;
162 onCompositionStart(): void;
163 onCompositionEnd(term: string): void;
164 filter(term: string): void;
165 onInputFocus($event: any): void;
166 onInputBlur($event: any): void;
167 onItemHover(item: NgOption): void;
168 detectChanges(): void;
169 private _setSearchTermFromItems;
170 private _setItems;
171 private _setItemsFromNgOptions;
172 private _isValidWriteValue;
173 private _handleWriteValue;
174 private _handleKeyPresses;
175 private _setInputAttributes;
176 private _updateNgModel;
177 private _clearSearch;
178 private _changeSearch;
179 private _scrollToMarked;
180 private _scrollToTag;
181 private _onSelectionChanged;
182 private _handleTab;
183 private _handleEnter;
184 private _handleSpace;
185 private _handleArrowDown;
186 private _handleArrowUp;
187 private _nextItemIsTag;
188 private _handleBackspace;
189 private get _isTypeahead();
190 private get _validTerm();
191 private _mergeGlobalConfig;
192 static ɵfac: i0.ɵɵFactoryDeclaration<NgSelectComponent, [{ attribute: "class"; }, { attribute: "autofocus"; }, null, null, null, null, null]>;
193 static ɵcmp: i0.ɵɵComponentDeclaration<NgSelectComponent, "ng-select", never, { "bindLabel": "bindLabel"; "bindValue": "bindValue"; "markFirst": "markFirst"; "placeholder": "placeholder"; "notFoundText": "notFoundText"; "typeToSearchText": "typeToSearchText"; "addTagText": "addTagText"; "loadingText": "loadingText"; "clearAllText": "clearAllText"; "appearance": "appearance"; "dropdownPosition": "dropdownPosition"; "appendTo": "appendTo"; "loading": "loading"; "closeOnSelect": "closeOnSelect"; "hideSelected": "hideSelected"; "selectOnTab": "selectOnTab"; "openOnEnter": "openOnEnter"; "maxSelectedItems": "maxSelectedItems"; "groupBy": "groupBy"; "groupValue": "groupValue"; "bufferAmount": "bufferAmount"; "virtualScroll": "virtualScroll"; "selectableGroup": "selectableGroup"; "selectableGroupAsModel": "selectableGroupAsModel"; "searchFn": "searchFn"; "trackByFn": "trackByFn"; "clearOnBackspace": "clearOnBackspace"; "labelForId": "labelForId"; "inputAttrs": "inputAttrs"; "tabIndex": "tabIndex"; "readonly": "readonly"; "searchWhileComposing": "searchWhileComposing"; "minTermLength": "minTermLength"; "editableSearchTerm": "editableSearchTerm"; "keyDownFn": "keyDownFn"; "typeahead": "typeahead"; "multiple": "multiple"; "addTag": "addTag"; "searchable": "searchable"; "clearable": "clearable"; "isOpen": "isOpen"; "items": "items"; "compareWith": "compareWith"; "clearSearchOnAdd": "clearSearchOnAdd"; }, { "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", "typeToSearchTemplate", "loadingTextTemplate", "tagTemplate", "loadingSpinnerTemplate", "ngOptions"], never>;
194}