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