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