igniteui-angular 12.2.4 → 12.3.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/README.md +12 -11
  2. package/bundles/igniteui-angular.umd.js +1773 -1462
  3. package/bundles/igniteui-angular.umd.js.map +1 -1
  4. package/esm2015/igniteui-angular.js +97 -97
  5. package/esm2015/lib/combo/combo-dropdown.component.js +9 -4
  6. package/esm2015/lib/combo/combo-item.component.js +4 -3
  7. package/esm2015/lib/combo/combo.api.js +3 -3
  8. package/esm2015/lib/combo/combo.common.js +999 -2
  9. package/esm2015/lib/combo/combo.component.js +92 -1124
  10. package/esm2015/lib/combo/combo.pipes.js +3 -3
  11. package/esm2015/lib/data-operations/data-util.js +2 -3
  12. package/esm2015/lib/data-operations/grouping-strategy.js +1 -1
  13. package/esm2015/lib/grids/grid/grid.component.js +19 -2
  14. package/esm2015/lib/grids/grid/grid.pipes.js +3 -3
  15. package/esm2015/lib/services/exporter-common/base-export-service.js +2 -2
  16. package/esm2015/lib/simple-combo/public_api.js +2 -0
  17. package/esm2015/lib/simple-combo/simple-combo.component.js +298 -0
  18. package/esm2015/lib/toast/toast.component.js +46 -21
  19. package/esm2015/public_api.js +2 -1
  20. package/fesm2015/igniteui-angular.js +1305 -1025
  21. package/fesm2015/igniteui-angular.js.map +1 -1
  22. package/igniteui-angular.d.ts +96 -96
  23. package/igniteui-angular.metadata.json +1 -1
  24. package/lib/combo/combo-dropdown.component.d.ts +2 -0
  25. package/lib/combo/combo-item.component.d.ts +2 -0
  26. package/lib/combo/combo.common.d.ts +717 -4
  27. package/lib/combo/combo.component.d.ts +39 -782
  28. package/lib/combo/combo.pipes.d.ts +1 -1
  29. package/lib/data-operations/data-util.d.ts +2 -1
  30. package/lib/data-operations/grouping-strategy.d.ts +5 -2
  31. package/lib/grids/grid/grid.component.d.ts +17 -0
  32. package/lib/grids/grid/grid.pipes.d.ts +2 -1
  33. package/lib/simple-combo/public_api.d.ts +1 -0
  34. package/lib/simple-combo/simple-combo.component.d.ts +109 -0
  35. package/lib/toast/toast.component.d.ts +8 -4
  36. package/migrations/migration-collection.json +5 -0
  37. package/migrations/update-12_3_0/changes/members.json +26 -0
  38. package/migrations/update-12_3_0/index.d.ts +3 -0
  39. package/migrations/update-12_3_0/index.js +9 -0
  40. package/package.json +1 -1
  41. package/public_api.d.ts +1 -0
@@ -1,5 +1,18 @@
1
- import { ElementRef, EventEmitter, InjectionToken } from '@angular/core';
2
- import { CancelableBrowserEventArgs, IBaseEventArgs } from '../core/utils';
1
+ import { AfterViewInit, ChangeDetectorRef, DoCheck, ElementRef, EventEmitter, InjectionToken, Injector, OnDestroy, OnInit, TemplateRef } from '@angular/core';
2
+ import { ControlValueAccessor, NgControl } from '@angular/forms';
3
+ import { Subject } from 'rxjs';
4
+ import { DisplayDensityBase, IDisplayDensityOptions } from '../core/displayDensity';
5
+ import { IgxSelectionAPIService } from '../core/selection';
6
+ import { CancelableBrowserEventArgs, IBaseCancelableBrowserEventArgs, IBaseEventArgs } from '../core/utils';
7
+ import { IForOfState, IgxForOfDirective } from '../directives/for-of/for_of.directive';
8
+ import { ISelectionEventArgs } from '../drop-down/public_api';
9
+ import { IgxIconService } from '../icon/public_api';
10
+ import { IgxInputGroupType } from '../input-group/inputGroupType';
11
+ import { IgxInputDirective, IgxInputGroupComponent } from '../input-group/public_api';
12
+ import { OverlaySettings } from '../services/public_api';
13
+ import { IgxComboDropDownComponent } from './combo-dropdown.component';
14
+ import { IgxComboAPIService } from './combo.api';
15
+ import { IComboFilteringOptions, IComboItemAdditionEvent, IComboSearchInputEventArgs, IComboSelectionChangingEventArgs } from './public_api';
3
16
  export declare const IGX_COMBO_COMPONENT: InjectionToken<IgxComboBase>;
4
17
  /** @hidden @internal TODO: Evaluate */
5
18
  export interface IgxComboBase {
@@ -25,6 +38,706 @@ export interface IgxComboBase {
25
38
  isAddButtonVisible(): boolean;
26
39
  handleInputChange(event?: string): void;
27
40
  isItemSelected(itemID: any): boolean;
28
- selectItems(itemIDs: any[], clearSelection?: boolean, event?: Event): void;
29
- deselectItems(itemIDs: any[], event?: Event): void;
41
+ select(item: any): void;
42
+ select(itemIDs: any[], clearSelection?: boolean, event?: Event): void;
43
+ deselect(item: any): void;
44
+ deselect(itemIDs: any[], event?: Event): void;
45
+ }
46
+ /** @hidden @internal */
47
+ export declare enum DataTypes {
48
+ EMPTY = "empty",
49
+ PRIMITIVE = "primitive",
50
+ COMPLEX = "complex",
51
+ PRIMARYKEY = "valueKey"
52
+ }
53
+ export declare enum IgxComboState {
54
+ /**
55
+ * Combo with initial state.
56
+ */
57
+ INITIAL = 0,
58
+ /**
59
+ * Combo with valid state.
60
+ */
61
+ VALID = 1,
62
+ /**
63
+ * Combo with invalid state.
64
+ */
65
+ INVALID = 2
66
+ }
67
+ export declare abstract class IgxComboBaseDirective extends DisplayDensityBase implements IgxComboBase, OnInit, DoCheck, AfterViewInit, OnDestroy, ControlValueAccessor {
68
+ protected elementRef: ElementRef;
69
+ protected cdr: ChangeDetectorRef;
70
+ protected selectionService: IgxSelectionAPIService;
71
+ protected comboAPI: IgxComboAPIService;
72
+ protected _iconService: IgxIconService;
73
+ protected _displayDensityOptions: IDisplayDensityOptions;
74
+ protected _inputGroupType: IgxInputGroupType;
75
+ protected _injector: Injector;
76
+ /**
77
+ * Set custom overlay settings that control how the combo's list of items is displayed.
78
+ * Set:
79
+ * ```html
80
+ * <igx-combo [overlaySettings] = "customOverlaySettings"></igx-combo>
81
+ * ```
82
+ *
83
+ * ```typescript
84
+ * const customSettings = { positionStrategy: { settings: { target: myTarget } } };
85
+ * combo.overlaySettings = customSettings;
86
+ * ```
87
+ * Get any custom overlay settings used by the combo:
88
+ * ```typescript
89
+ * const comboOverlaySettings: OverlaySettings = myCombo.overlaySettings;
90
+ * ```
91
+ */
92
+ overlaySettings: OverlaySettings;
93
+ /**
94
+ * Gets/gets combo id.
95
+ *
96
+ * ```typescript
97
+ * // get
98
+ * let id = this.combo.id;
99
+ * ```
100
+ *
101
+ * ```html
102
+ * <!--set-->
103
+ * <igx-combo [id]='combo1'></igx-combo>
104
+ * ```
105
+ */
106
+ id: string;
107
+ /**
108
+ * Sets the style width of the element
109
+ *
110
+ * ```typescript
111
+ * // get
112
+ * let myComboWidth = this.combo.width;
113
+ * ```
114
+ *
115
+ * ```html
116
+ * <!--set-->
117
+ * <igx-combo [width]='250px'></igx-combo>
118
+ * ```
119
+ */
120
+ width: string;
121
+ /**
122
+ * Controls whether custom values can be added to the collection
123
+ *
124
+ * ```typescript
125
+ * // get
126
+ * let comboAllowsCustomValues = this.combo.allowCustomValues;
127
+ * ```
128
+ *
129
+ * ```html
130
+ * <!--set-->
131
+ * <igx-combo [allowCustomValues]='true'></igx-combo>
132
+ * ```
133
+ */
134
+ allowCustomValues: boolean;
135
+ /**
136
+ * Configures the drop down list height
137
+ *
138
+ * ```typescript
139
+ * // get
140
+ * let myComboItemsMaxHeight = this.combo.itemsMaxHeight;
141
+ * ```
142
+ *
143
+ * ```html
144
+ * <!--set-->
145
+ * <igx-combo [itemsMaxHeight]='320'></igx-combo>
146
+ * ```
147
+ */
148
+ get itemsMaxHeight(): number;
149
+ set itemsMaxHeight(val: number);
150
+ /**
151
+ * Configures the drop down list item height
152
+ *
153
+ * ```typescript
154
+ * // get
155
+ * let myComboItemHeight = this.combo.itemHeight;
156
+ * ```
157
+ *
158
+ * ```html
159
+ * <!--set-->
160
+ * <igx-combo [itemHeight]='32'></igx-combo>
161
+ * ```
162
+ */
163
+ get itemHeight(): number;
164
+ set itemHeight(val: number);
165
+ /**
166
+ * Configures the drop down list width
167
+ *
168
+ * ```typescript
169
+ * // get
170
+ * let myComboItemsWidth = this.combo.itemsWidth;
171
+ * ```
172
+ *
173
+ * ```html
174
+ * <!--set-->
175
+ * <igx-combo [itemsWidth] = '"180px"'></igx-combo>
176
+ * ```
177
+ */
178
+ itemsWidth: string;
179
+ /**
180
+ * Defines the placeholder value for the combo value field
181
+ *
182
+ * ```typescript
183
+ * // get
184
+ * let myComboPlaceholder = this.combo.placeholder;
185
+ * ```
186
+ *
187
+ * ```html
188
+ * <!--set-->
189
+ * <igx-combo [placeholder]='newPlaceHolder'></igx-combo>
190
+ * ```
191
+ */
192
+ placeholder: string;
193
+ /**
194
+ * Combo data source.
195
+ *
196
+ * ```html
197
+ * <!--set-->
198
+ * <igx-combo [data]='items'></igx-combo>
199
+ * ```
200
+ */
201
+ get data(): any[] | null;
202
+ set data(val: any[] | null);
203
+ /**
204
+ * Determines which column in the data source is used to determine the value.
205
+ *
206
+ * ```typescript
207
+ * // get
208
+ * let myComboValueKey = this.combo.valueKey;
209
+ * ```
210
+ *
211
+ * ```html
212
+ * <!--set-->
213
+ * <igx-combo [valueKey]='myKey'></igx-combo>
214
+ * ```
215
+ */
216
+ valueKey: string;
217
+ set displayKey(val: string);
218
+ /**
219
+ * Determines which column in the data source is used to determine the display value.
220
+ *
221
+ * ```typescript
222
+ * // get
223
+ * let myComboDisplayKey = this.combo.displayKey;
224
+ *
225
+ * // set
226
+ * this.combo.displayKey = 'val';
227
+ *
228
+ * ```
229
+ *
230
+ * ```html
231
+ * <!--set-->
232
+ * <igx-combo [displayKey]='myDisplayKey'></igx-combo>
233
+ * ```
234
+ */
235
+ get displayKey(): string;
236
+ /**
237
+ * The item property by which items should be grouped inside the items list. Not usable if data is not of type Object[].
238
+ *
239
+ * ```html
240
+ * <!--set-->
241
+ * <igx-combo [groupKey]='newGroupKey'></igx-combo>
242
+ * ```
243
+ */
244
+ set groupKey(val: string);
245
+ /**
246
+ * The item property by which items should be grouped inside the items list. Not usable if data is not of type Object[].
247
+ *
248
+ * ```typescript
249
+ * // get
250
+ * let currentGroupKey = this.combo.groupKey;
251
+ * ```
252
+ */
253
+ get groupKey(): string;
254
+ /**
255
+ * An @Input property that set aria-labelledby attribute
256
+ * ```html
257
+ * <igx-combo [ariaLabelledBy]="'label1'">
258
+ * ```
259
+ */
260
+ ariaLabelledBy: string;
261
+ /** @hidden @internal */
262
+ cssClass: string;
263
+ /** @hidden @internal */
264
+ role: string;
265
+ /** @hidden @internal */
266
+ get ariaExpanded(): boolean;
267
+ /** @hidden @internal */
268
+ get hasPopUp(): string;
269
+ /** @hidden @internal */
270
+ get ariaOwns(): string;
271
+ /**
272
+ * An @Input property that enabled/disables combo. The default is `false`.
273
+ * ```html
274
+ * <igx-combo [disabled]="'true'">
275
+ * ```
276
+ */
277
+ disabled: boolean;
278
+ /**
279
+ * An @Input property that sets how the combo will be styled.
280
+ * The allowed values are `line`, `box`, `border` and `search`. The default is `box`.
281
+ * ```html
282
+ * <igx-combo [type]="'line'">
283
+ * ```
284
+ */
285
+ get type(): IgxInputGroupType;
286
+ set type(val: IgxInputGroupType);
287
+ /**
288
+ * Emitted when item selection is changing, before the selection completes
289
+ *
290
+ * ```html
291
+ * <igx-combo (selectionChanging)='handleSelection()'></igx-combo>
292
+ * ```
293
+ */
294
+ selectionChanging: EventEmitter<ISelectionEventArgs | IComboSelectionChangingEventArgs>;
295
+ /**
296
+ * Emitted before the dropdown is opened
297
+ *
298
+ * ```html
299
+ * <igx-combo opening='handleOpening($event)'></igx-combo>
300
+ * ```
301
+ */
302
+ opening: EventEmitter<IBaseCancelableBrowserEventArgs>;
303
+ /**
304
+ * Emitted after the dropdown is opened
305
+ *
306
+ * ```html
307
+ * <igx-combo (opened)='handleOpened($event)'></igx-combo>
308
+ * ```
309
+ */
310
+ opened: EventEmitter<IBaseEventArgs>;
311
+ /**
312
+ * Emitted before the dropdown is closed
313
+ *
314
+ * ```html
315
+ * <igx-combo (closing)='handleClosing($event)'></igx-combo>
316
+ * ```
317
+ */
318
+ closing: EventEmitter<IBaseCancelableBrowserEventArgs>;
319
+ /**
320
+ * Emitted after the dropdown is closed
321
+ *
322
+ * ```html
323
+ * <igx-combo (closed)='handleClosed($event)'></igx-combo>
324
+ * ```
325
+ */
326
+ closed: EventEmitter<IBaseEventArgs>;
327
+ /**
328
+ * Emitted when an item is being added to the data collection
329
+ *
330
+ * ```html
331
+ * <igx-combo (addition)='handleAdditionEvent($event)'></igx-combo>
332
+ * ```
333
+ */
334
+ addition: EventEmitter<IComboItemAdditionEvent>;
335
+ /**
336
+ * Emitted when the value of the search input changes (e.g. typing, pasting, clear, etc.)
337
+ *
338
+ * ```html
339
+ * <igx-combo (searchInputUpdate)='handleSearchInputEvent($event)'></igx-combo>
340
+ * ```
341
+ */
342
+ searchInputUpdate: EventEmitter<IComboSearchInputEventArgs>;
343
+ /**
344
+ * Emitted when new chunk of data is loaded from the virtualization
345
+ *
346
+ * ```html
347
+ * <igx-combo (dataPreLoad)='handleDataPreloadEvent($event)'></igx-combo>
348
+ * ```
349
+ */
350
+ dataPreLoad: EventEmitter<IForOfState>;
351
+ /**
352
+ * The custom template, if any, that should be used when rendering ITEMS in the combo list
353
+ *
354
+ * ```typescript
355
+ * // Set in typescript
356
+ * const myCustomTemplate: TemplateRef<any> = myComponent.customTemplate;
357
+ * myComponent.combo.itemTemplate = myCustomTemplate;
358
+ * ```
359
+ * ```html
360
+ * <!-- Set in markup -->
361
+ * <igx-combo #combo>
362
+ * ...
363
+ * <ng-template igxComboItem>
364
+ * <div class="custom-item" let-item let-key="valueKey">
365
+ * <div class="custom-item__name">{{ item[key] }}</div>
366
+ * <div class="custom-item__cost">{{ item.cost }}</div>
367
+ * </div>
368
+ * </ng-template>
369
+ * </igx-combo>
370
+ * ```
371
+ */
372
+ itemTemplate: TemplateRef<any>;
373
+ /**
374
+ * The custom template, if any, that should be used when rendering the HEADER for the combo items list
375
+ *
376
+ * ```typescript
377
+ * // Set in typescript
378
+ * const myCustomTemplate: TemplateRef<any> = myComponent.customTemplate;
379
+ * myComponent.combo.headerTemplate = myCustomTemplate;
380
+ * ```
381
+ * ```html
382
+ * <!-- Set in markup -->
383
+ * <igx-combo #combo>
384
+ * ...
385
+ * <ng-template igxComboHeader>
386
+ * <div class="combo__header">
387
+ * This is a custom header
388
+ * </div>
389
+ * </ng-template>
390
+ * </igx-combo>
391
+ * ```
392
+ */
393
+ headerTemplate: TemplateRef<any>;
394
+ /**
395
+ * The custom template, if any, that should be used when rendering the FOOTER for the combo items list
396
+ *
397
+ * ```typescript
398
+ * // Set in typescript
399
+ * const myCustomTemplate: TemplateRef<any> = myComponent.customTemplate;
400
+ * myComponent.combo.footerTemplate = myCustomTemplate;
401
+ * ```
402
+ * ```html
403
+ * <!-- Set in markup -->
404
+ * <igx-combo #combo>
405
+ * ...
406
+ * <ng-template igxComboFooter>
407
+ * <div class="combo__footer">
408
+ * This is a custom footer
409
+ * </div>
410
+ * </ng-template>
411
+ * </igx-combo>
412
+ * ```
413
+ */
414
+ footerTemplate: TemplateRef<any>;
415
+ /**
416
+ * The custom template, if any, that should be used when rendering HEADER ITEMS for groups in the combo list
417
+ *
418
+ * ```typescript
419
+ * // Set in typescript
420
+ * const myCustomTemplate: TemplateRef<any> = myComponent.customTemplate;
421
+ * myComponent.combo.headerItemTemplate = myCustomTemplate;
422
+ * ```
423
+ * ```html
424
+ * <!-- Set in markup -->
425
+ * <igx-combo #combo>
426
+ * ...
427
+ * <ng-template igxComboHeaderItem let-item let-key="groupKey">
428
+ * <div class="custom-item--group">Group header for {{ item[key] }}</div>
429
+ * </ng-template>
430
+ * </igx-combo>
431
+ * ```
432
+ */
433
+ headerItemTemplate: TemplateRef<any>;
434
+ /**
435
+ * The custom template, if any, that should be used when rendering the ADD BUTTON in the combo drop down
436
+ *
437
+ * ```typescript
438
+ * // Set in typescript
439
+ * const myCustomTemplate: TemplateRef<any> = myComponent.customTemplate;
440
+ * myComponent.combo.addItemTemplate = myCustomTemplate;
441
+ * ```
442
+ * ```html
443
+ * <!-- Set in markup -->
444
+ * <igx-combo #combo>
445
+ * ...
446
+ * <ng-template igxComboAddItem>
447
+ * <button class="combo__add-button">
448
+ * Click to add item
449
+ * </button>
450
+ * </ng-template>
451
+ * </igx-combo>
452
+ * ```
453
+ */
454
+ addItemTemplate: TemplateRef<any>;
455
+ /**
456
+ * The custom template, if any, that should be used when rendering the ADD BUTTON in the combo drop down
457
+ *
458
+ * ```typescript
459
+ * // Set in typescript
460
+ * const myCustomTemplate: TemplateRef<any> = myComponent.customTemplate;
461
+ * myComponent.combo.emptyTemplate = myCustomTemplate;
462
+ * ```
463
+ * ```html
464
+ * <!-- Set in markup -->
465
+ * <igx-combo #combo>
466
+ * ...
467
+ * <ng-template igxComboEmpty>
468
+ * <div class="combo--empty">
469
+ * There are no items to display
470
+ * </div>
471
+ * </ng-template>
472
+ * </igx-combo>
473
+ * ```
474
+ */
475
+ emptyTemplate: TemplateRef<any>;
476
+ /**
477
+ * The custom template, if any, that should be used when rendering the combo TOGGLE(open/close) button
478
+ *
479
+ * ```typescript
480
+ * // Set in typescript
481
+ * const myCustomTemplate: TemplateRef<any> = myComponent.customTemplate;
482
+ * myComponent.combo.toggleIconTemplate = myCustomTemplate;
483
+ * ```
484
+ * ```html
485
+ * <!-- Set in markup -->
486
+ * <igx-combo #combo>
487
+ * ...
488
+ * <ng-template igxComboToggleIcon let-collapsed>
489
+ * <igx-icon>{{ collapsed ? 'remove_circle' : 'remove_circle_outline'}}</igx-icon>
490
+ * </ng-template>
491
+ * </igx-combo>
492
+ * ```
493
+ */
494
+ toggleIconTemplate: TemplateRef<any>;
495
+ /**
496
+ * The custom template, if any, that should be used when rendering the combo CLEAR button
497
+ *
498
+ * ```typescript
499
+ * // Set in typescript
500
+ * const myCustomTemplate: TemplateRef<any> = myComponent.customTemplate;
501
+ * myComponent.combo.clearIconTemplate = myCustomTemplate;
502
+ * ```
503
+ * ```html
504
+ * <!-- Set in markup -->
505
+ * <igx-combo #combo>
506
+ * ...
507
+ * <ng-template igxComboClearIcon>
508
+ * <igx-icon>clear</igx-icon>
509
+ * </ng-template>
510
+ * </igx-combo>
511
+ * ```
512
+ */
513
+ clearIconTemplate: TemplateRef<any>;
514
+ /** @hidden @internal */
515
+ inputGroup: IgxInputGroupComponent;
516
+ /** @hidden @internal */
517
+ comboInput: IgxInputDirective;
518
+ /** @hidden @internal */
519
+ searchInput: ElementRef<HTMLInputElement>;
520
+ /** @hidden @internal */
521
+ virtualScrollContainer: IgxForOfDirective<any>;
522
+ protected virtDir: IgxForOfDirective<any>;
523
+ protected dropdownContainer: ElementRef;
524
+ protected primitiveTemplate: TemplateRef<any>;
525
+ protected complexTemplate: TemplateRef<any>;
526
+ /** @hidden @internal */
527
+ get searchValue(): string;
528
+ set searchValue(val: string);
529
+ /** @hidden @internal */
530
+ get isRemote(): boolean;
531
+ /** @hidden @internal */
532
+ get dataType(): string;
533
+ /**
534
+ * Gets if control is valid, when used in a form
535
+ *
536
+ * ```typescript
537
+ * // get
538
+ * let valid = this.combo.valid;
539
+ * ```
540
+ */
541
+ get valid(): IgxComboState;
542
+ /**
543
+ * Sets if control is valid, when used in a form
544
+ *
545
+ * ```typescript
546
+ * // set
547
+ * this.combo.valid = IgxComboState.INVALID;
548
+ * ```
549
+ */
550
+ set valid(valid: IgxComboState);
551
+ /**
552
+ * The text displayed in the combo input
553
+ *
554
+ * ```typescript
555
+ * // get
556
+ * let comboValue = this.combo.value;
557
+ * ```
558
+ */
559
+ get value(): string;
560
+ /**
561
+ * Defines the current state of the virtualized data. It contains `startIndex` and `chunkSize`
562
+ *
563
+ * ```typescript
564
+ * // get
565
+ * let state = this.combo.virtualizationState;
566
+ * ```
567
+ */
568
+ get virtualizationState(): IForOfState;
569
+ /**
570
+ * Sets the current state of the virtualized data.
571
+ *
572
+ * ```typescript
573
+ * // set
574
+ * this.combo.virtualizationState(state);
575
+ * ```
576
+ */
577
+ set virtualizationState(state: IForOfState);
578
+ /**
579
+ * Gets drop down state.
580
+ *
581
+ * ```typescript
582
+ * let state = this.combo.collapsed;
583
+ * ```
584
+ */
585
+ get collapsed(): boolean;
586
+ /**
587
+ * Gets total count of the virtual data items, when using remote service.
588
+ *
589
+ * ```typescript
590
+ * // get
591
+ * let count = this.combo.totalItemCount;
592
+ * ```
593
+ */
594
+ get totalItemCount(): number;
595
+ /**
596
+ * Sets total count of the virtual data items, when using remote service.
597
+ *
598
+ * ```typescript
599
+ * // set
600
+ * this.combo.totalItemCount(remoteService.count);
601
+ * ```
602
+ */
603
+ set totalItemCount(count: number);
604
+ /** @hidden @internal */
605
+ get template(): TemplateRef<any>;
606
+ /** @hidden @internal */
607
+ customValueFlag: boolean;
608
+ /** @hidden @internal */
609
+ filterValue: string;
610
+ /** @hidden @internal */
611
+ defaultFallbackGroup: string;
612
+ /** @hidden @internal */
613
+ filteringOptions: IComboFilteringOptions;
614
+ protected _data: any[];
615
+ protected _value: string;
616
+ protected _groupKey: string;
617
+ protected _filteredData: any[];
618
+ protected _displayKey: string;
619
+ protected _remoteSelection: {};
620
+ protected _valid: IgxComboState;
621
+ protected ngControl: NgControl;
622
+ protected destroy$: Subject<any>;
623
+ protected _onTouchedCallback: () => void;
624
+ protected _onChangeCallback: (_: any) => void;
625
+ private _type;
626
+ private _dataType;
627
+ private _searchValue;
628
+ private _itemHeight;
629
+ private _itemsMaxHeight;
630
+ private _overlaySettings;
631
+ abstract dropdown: IgxComboDropDownComponent;
632
+ constructor(elementRef: ElementRef, cdr: ChangeDetectorRef, selectionService: IgxSelectionAPIService, comboAPI: IgxComboAPIService, _iconService: IgxIconService, _displayDensityOptions: IDisplayDensityOptions, _inputGroupType: IgxInputGroupType, _injector: Injector);
633
+ /** @hidden @internal */
634
+ onArrowDown(event: Event): void;
635
+ /** @hidden @internal */
636
+ ngOnInit(): void;
637
+ /** @hidden @internal */
638
+ ngAfterViewInit(): void;
639
+ /** @hidden @internal */
640
+ ngOnDestroy(): void;
641
+ /**
642
+ * A method that opens/closes the combo.
643
+ *
644
+ * ```html
645
+ * <button (click)="combo.toggle()">Toggle Combo</button>
646
+ * <igx-combo #combo></igx-combo>
647
+ * ```
648
+ */
649
+ toggle(): void;
650
+ /**
651
+ * A method that opens the combo.
652
+ *
653
+ * ```html
654
+ * <button (click)="combo.open()">Open Combo</button>
655
+ * <igx-combo #combo></igx-combo>
656
+ * ```
657
+ */
658
+ open(): void;
659
+ /**
660
+ * A method that closes the combo.
661
+ *
662
+ * ```html
663
+ * <button (click)="combo.close()">Close Combo</button>
664
+ * <igx-combo #combo></igx-combo>
665
+ * ```
666
+ */
667
+ close(): void;
668
+ /**
669
+ * Triggers change detection on the combo view
670
+ */
671
+ triggerCheck(): void;
672
+ /**
673
+ * Get current selection state
674
+ *
675
+ * @returns Array of selected items
676
+ * ```typescript
677
+ * let selectedItems = this.combo.selectedItems();
678
+ * ```
679
+ */
680
+ get selection(): any[];
681
+ /**
682
+ * Returns if the specified itemID is selected
683
+ *
684
+ * @hidden
685
+ * @internal
686
+ */
687
+ isItemSelected(item: any): boolean;
688
+ /** @hidden @internal */
689
+ addItemToCollection(): void;
690
+ /** @hidden @internal */
691
+ isAddButtonVisible(): boolean;
692
+ /** @hidden @internal */
693
+ handleInputChange(event?: any): void;
694
+ /**
695
+ * Event handlers
696
+ *
697
+ * @hidden
698
+ * @internal
699
+ */
700
+ handleOpening(e: IBaseCancelableBrowserEventArgs): void;
701
+ /** @hidden @internal */
702
+ handleClosing(e: IBaseCancelableBrowserEventArgs): void;
703
+ /** @hidden @internal */
704
+ handleClosed(): void;
705
+ /** @hidden @internal */
706
+ handleKeyDown(event: KeyboardEvent): void;
707
+ /** @hidden @internal */
708
+ registerOnChange(fn: any): void;
709
+ /** @hidden @internal */
710
+ registerOnTouched(fn: any): void;
711
+ /** @hidden @internal */
712
+ setDisabledState(isDisabled: boolean): void;
713
+ /** @hidden @internal */
714
+ onClick(event: Event): void;
715
+ /** @hidden @internal */
716
+ onBlur(): void;
717
+ protected onStatusChanged: () => void;
718
+ /** if there is a valueKey - map the keys to data items, else - just return the keys */
719
+ protected convertKeysToItems(keys: any[]): any[];
720
+ protected checkMatch(): void;
721
+ protected findMatch: (element: any) => boolean;
722
+ protected manageRequiredAsterisk(): void;
723
+ /** Contains key-value pairs of the selected valueKeys and their resp. displayKeys */
724
+ protected registerRemoteEntries(ids: any[], add?: boolean): void;
725
+ /**
726
+ * For `id: any[]` returns a mapped `{ [combo.valueKey]: any, [combo.displayKey]: any }[]`
727
+ */
728
+ protected getValueDisplayPairs(ids: any[]): {
729
+ [x: string]: any;
730
+ }[];
731
+ protected getRemoteSelection(newSelection: any[], oldSelection: any[]): string;
732
+ abstract get filteredData(): any[] | null;
733
+ abstract set filteredData(val: any[] | null);
734
+ abstract handleOpened(): any;
735
+ abstract focusSearchInput(opening?: boolean): any;
736
+ abstract select(newItem: any): void;
737
+ abstract select(newItems: Array<any> | any, clearCurrentSelection?: boolean, event?: Event): void;
738
+ abstract deselect(item: any): void;
739
+ abstract deselect(items: Array<any>, event?: Event): void;
740
+ abstract writeValue(value: any): void;
741
+ protected abstract setSelection(newSelection: Set<any>, event?: Event): void;
742
+ protected abstract createDisplayText(newSelection: any[], oldSelection: any[]): any;
30
743
  }