igniteui-angular 22.2.0-rc.1 → 22.2.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 (107) hide show
  1. package/README.md +1 -1
  2. package/button-group/README.md +42 -9
  3. package/calendar/README.md +30 -20
  4. package/card/README.md +1 -1
  5. package/fesm2022/igniteui-angular-accordion.mjs +7 -7
  6. package/fesm2022/igniteui-angular-action-strip.mjs +11 -22
  7. package/fesm2022/igniteui-angular-action-strip.mjs.map +1 -1
  8. package/fesm2022/igniteui-angular-avatar.mjs +7 -7
  9. package/fesm2022/igniteui-angular-badge.mjs +7 -7
  10. package/fesm2022/igniteui-angular-banner.mjs +10 -10
  11. package/fesm2022/igniteui-angular-bottom-nav.mjs +22 -22
  12. package/fesm2022/igniteui-angular-button-group.mjs +32 -35
  13. package/fesm2022/igniteui-angular-button-group.mjs.map +1 -1
  14. package/fesm2022/igniteui-angular-calendar.mjs +132 -180
  15. package/fesm2022/igniteui-angular-calendar.mjs.map +1 -1
  16. package/fesm2022/igniteui-angular-card.mjs +47 -58
  17. package/fesm2022/igniteui-angular-card.mjs.map +1 -1
  18. package/fesm2022/igniteui-angular-carousel.mjs +22 -22
  19. package/fesm2022/igniteui-angular-chat-extras.mjs +6 -6
  20. package/fesm2022/igniteui-angular-chat.mjs +12 -12
  21. package/fesm2022/igniteui-angular-checkbox.mjs +7 -7
  22. package/fesm2022/igniteui-angular-chips.mjs +10 -10
  23. package/fesm2022/igniteui-angular-combo.mjs +66 -60
  24. package/fesm2022/igniteui-angular-combo.mjs.map +1 -1
  25. package/fesm2022/igniteui-angular-core.mjs +107 -79
  26. package/fesm2022/igniteui-angular-core.mjs.map +1 -1
  27. package/fesm2022/igniteui-angular-date-picker.mjs +38 -38
  28. package/fesm2022/igniteui-angular-dialog.mjs +13 -13
  29. package/fesm2022/igniteui-angular-directives.mjs +194 -194
  30. package/fesm2022/igniteui-angular-drop-down.mjs +29 -29
  31. package/fesm2022/igniteui-angular-expansion-panel.mjs +28 -28
  32. package/fesm2022/igniteui-angular-grids-core.mjs +737 -661
  33. package/fesm2022/igniteui-angular-grids-core.mjs.map +1 -1
  34. package/fesm2022/igniteui-angular-grids-grid.mjs +69 -58
  35. package/fesm2022/igniteui-angular-grids-grid.mjs.map +1 -1
  36. package/fesm2022/igniteui-angular-grids-hierarchical-grid.mjs +37 -37
  37. package/fesm2022/igniteui-angular-grids-lite.mjs +25 -17
  38. package/fesm2022/igniteui-angular-grids-lite.mjs.map +1 -1
  39. package/fesm2022/igniteui-angular-grids-pivot-grid.mjs +92 -81
  40. package/fesm2022/igniteui-angular-grids-pivot-grid.mjs.map +1 -1
  41. package/fesm2022/igniteui-angular-grids-tree-grid.mjs +55 -55
  42. package/fesm2022/igniteui-angular-icon.mjs +10 -10
  43. package/fesm2022/igniteui-angular-input-group.mjs +25 -25
  44. package/fesm2022/igniteui-angular-list.mjs +40 -40
  45. package/fesm2022/igniteui-angular-navbar.mjs +13 -13
  46. package/fesm2022/igniteui-angular-navigation-drawer.mjs +43 -38
  47. package/fesm2022/igniteui-angular-navigation-drawer.mjs.map +1 -1
  48. package/fesm2022/igniteui-angular-paginator.mjs +19 -19
  49. package/fesm2022/igniteui-angular-progressbar.mjs +19 -19
  50. package/fesm2022/igniteui-angular-query-builder.mjs +22 -22
  51. package/fesm2022/igniteui-angular-radio.mjs +25 -21
  52. package/fesm2022/igniteui-angular-radio.mjs.map +1 -1
  53. package/fesm2022/igniteui-angular-select.mjs +25 -25
  54. package/fesm2022/igniteui-angular-simple-combo.mjs +9 -9
  55. package/fesm2022/igniteui-angular-simple-combo.mjs.map +1 -1
  56. package/fesm2022/igniteui-angular-slider.mjs +28 -28
  57. package/fesm2022/igniteui-angular-snackbar.mjs +7 -7
  58. package/fesm2022/igniteui-angular-splitter.mjs +13 -13
  59. package/fesm2022/igniteui-angular-stepper.mjs +34 -34
  60. package/fesm2022/igniteui-angular-switch.mjs +7 -7
  61. package/fesm2022/igniteui-angular-tabs.mjs +34 -34
  62. package/fesm2022/igniteui-angular-time-picker.mjs +19 -19
  63. package/fesm2022/igniteui-angular-toast.mjs +7 -7
  64. package/fesm2022/igniteui-angular-tree.mjs +28 -28
  65. package/fesm2022/igniteui-angular-virtual-scroll.mjs +497 -145
  66. package/fesm2022/igniteui-angular-virtual-scroll.mjs.map +1 -1
  67. package/migrations/common/UpdateChanges.d.ts +25 -5
  68. package/migrations/common/UpdateChanges.js +218 -34
  69. package/migrations/common/UpdateChanges.spec.js +763 -0
  70. package/migrations/migration-collection.json +1 -1
  71. package/migrations/update-22_2_0/index.js +145 -0
  72. package/migrations/update-22_2_0/index.spec.js +133 -0
  73. package/navigation-drawer/README.md +1 -1
  74. package/package.json +4 -4
  75. package/schematics/tsconfig.tsbuildinfo +1 -1
  76. package/skills/igniteui-angular-components/SKILL.md +9 -5
  77. package/skills/igniteui-angular-components/references/form-controls.md +1 -1
  78. package/skills/igniteui-angular-components/references/mcp-setup.md +14 -2
  79. package/skills/igniteui-angular-figma-to-app/SKILL.md +112 -525
  80. package/skills/igniteui-angular-figma-to-app/references/asset-extraction.md +49 -75
  81. package/skills/igniteui-angular-figma-to-app/references/design-provenance.md +201 -0
  82. package/skills/igniteui-angular-figma-to-app/references/design-token-bridge.md +175 -52
  83. package/skills/igniteui-angular-figma-to-app/references/figma-component-map.md +153 -99
  84. package/skills/igniteui-angular-figma-to-app/references/figma-exploration.md +226 -0
  85. package/skills/igniteui-angular-figma-to-app/references/mcp-setup.md +71 -105
  86. package/skills/igniteui-angular-figma-to-app/references/project-setup.md +63 -0
  87. package/skills/igniteui-angular-figma-to-app/references/theme-generation.md +120 -0
  88. package/skills/igniteui-angular-figma-to-app/references/validation-patterns.md +48 -50
  89. package/skills/igniteui-angular-generate-from-image-design/SKILL.md +11 -7
  90. package/skills/igniteui-angular-grids/SKILL.md +7 -3
  91. package/skills/igniteui-angular-grids/references/editing.md +1 -2
  92. package/skills/igniteui-angular-grids/references/grid-migration.md +1 -1
  93. package/skills/igniteui-angular-theming/SKILL.md +9 -5
  94. package/skills/igniteui-angular-theming/references/mcp-setup.md +12 -2
  95. package/types/igniteui-angular-button-group.d.ts +49 -34
  96. package/types/igniteui-angular-calendar.d.ts +33 -50
  97. package/types/igniteui-angular-card.d.ts +12 -17
  98. package/types/igniteui-angular-combo.d.ts +6 -0
  99. package/types/igniteui-angular-core.d.ts +10 -2
  100. package/types/igniteui-angular-grids-core.d.ts +48 -4
  101. package/types/igniteui-angular-grids-grid.d.ts +4 -0
  102. package/types/igniteui-angular-grids-lite.d.ts +5 -1
  103. package/types/igniteui-angular-grids-pivot-grid.d.ts +5 -1
  104. package/types/igniteui-angular-navigation-drawer.d.ts +1 -0
  105. package/types/igniteui-angular-radio.d.ts +5 -0
  106. package/types/igniteui-angular-virtual-scroll.d.ts +41 -13
  107. package/virtual-scroll/README.md +32 -1
@@ -62,10 +62,10 @@ class IgxComboAPIService {
62
62
  is_item_selected(itemID) {
63
63
  return this.combo.isItemSelected(itemID);
64
64
  }
65
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxComboAPIService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
66
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxComboAPIService }); }
65
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxComboAPIService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
66
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxComboAPIService }); }
67
67
  }
68
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxComboAPIService, decorators: [{
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxComboAPIService, decorators: [{
69
69
  type: Injectable
70
70
  }] });
71
71
 
@@ -164,10 +164,10 @@ class IgxComboItemComponent extends IgxDropDownItemComponent {
164
164
  disableCheck(event) {
165
165
  event.preventDefault();
166
166
  }
167
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxComboItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
168
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: IgxComboItemComponent, isStandalone: true, selector: "igx-combo-item", inputs: { itemHeight: "itemHeight", ariaLabel: "ariaLabel", singleMode: ["singleMode", "singleMode", booleanAttribute] }, host: { properties: { "style.height.rem": "this._itemHeightToRem", "attr.aria-label": "this.ariaLabel" } }, usesInheritance: true, ngImport: i0, template: "@if (!isHeader && !singleMode) {\n <!-- checkbox should not allow changing its state from UI click (that's why it should be readonly=true), becasue when cancelling the selectionChange event in the combo, then checkbox will still change state.-->\n <igx-checkbox [checked]=\"selected\" [readonly]=\"true\" [disableRipple]=\"true\" [disableTransitions]=\"disableTransitions\" [tabindex]=\"-1\" (click)=\"disableCheck($event)\" class=\"igx-combo__checkbox\"></igx-checkbox>\n}\n<span class=\"igx-drop-down__inner\"><ng-content></ng-content></span>\n", dependencies: [{ kind: "component", type: IgxCheckboxComponent, selector: "igx-checkbox", inputs: ["indeterminate", "checked", "disabled", "invalid", "readonly", "disableTransitions"] }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
167
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxComboItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
168
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.2.0", type: IgxComboItemComponent, isStandalone: true, selector: "igx-combo-item", inputs: { itemHeight: "itemHeight", ariaLabel: "ariaLabel", singleMode: ["singleMode", "singleMode", booleanAttribute] }, host: { properties: { "style.height.rem": "this._itemHeightToRem", "attr.aria-label": "this.ariaLabel" } }, usesInheritance: true, ngImport: i0, template: "@if (!isHeader && !singleMode) {\n <!-- checkbox should not allow changing its state from UI click (that's why it should be readonly=true), becasue when cancelling the selectionChange event in the combo, then checkbox will still change state.-->\n <igx-checkbox [checked]=\"selected\" [readonly]=\"true\" [disableRipple]=\"true\" [disableTransitions]=\"disableTransitions\" [tabindex]=\"-1\" (click)=\"disableCheck($event)\" class=\"igx-combo__checkbox\"></igx-checkbox>\n}\n<span class=\"igx-drop-down__inner\"><ng-content></ng-content></span>\n", dependencies: [{ kind: "component", type: IgxCheckboxComponent, selector: "igx-checkbox", inputs: ["indeterminate", "checked", "disabled", "invalid", "readonly", "disableTransitions"] }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
169
169
  }
170
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxComboItemComponent, decorators: [{
170
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxComboItemComponent, decorators: [{
171
171
  type: Component,
172
172
  args: [{ selector: 'igx-combo-item', changeDetection: ChangeDetectionStrategy.Eager, imports: [IgxCheckboxComponent], template: "@if (!isHeader && !singleMode) {\n <!-- checkbox should not allow changing its state from UI click (that's why it should be readonly=true), becasue when cancelling the selectionChange event in the combo, then checkbox will still change state.-->\n <igx-checkbox [checked]=\"selected\" [readonly]=\"true\" [disableRipple]=\"true\" [disableTransitions]=\"disableTransitions\" [tabindex]=\"-1\" (click)=\"disableCheck($event)\" class=\"igx-combo__checkbox\"></igx-checkbox>\n}\n<span class=\"igx-drop-down__inner\"><ng-content></ng-content></span>\n" }]
173
173
  }], propDecorators: { itemHeight: [{
@@ -202,10 +202,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
202
202
  * </igx-combo>
203
203
  */
204
204
  class IgxComboHeaderDirective {
205
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxComboHeaderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
206
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: IgxComboHeaderDirective, isStandalone: true, selector: "[igxComboHeader]", ngImport: i0 }); }
205
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxComboHeaderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
206
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.2.0", type: IgxComboHeaderDirective, isStandalone: true, selector: "[igxComboHeader]", ngImport: i0 }); }
207
207
  }
208
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxComboHeaderDirective, decorators: [{
208
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxComboHeaderDirective, decorators: [{
209
209
  type: Directive,
210
210
  args: [{
211
211
  selector: '[igxComboHeader]',
@@ -229,10 +229,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
229
229
  * </igx-combo>
230
230
  */
231
231
  class IgxComboFooterDirective {
232
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxComboFooterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
233
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: IgxComboFooterDirective, isStandalone: true, selector: "[igxComboFooter]", ngImport: i0 }); }
232
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxComboFooterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
233
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.2.0", type: IgxComboFooterDirective, isStandalone: true, selector: "[igxComboFooter]", ngImport: i0 }); }
234
234
  }
235
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxComboFooterDirective, decorators: [{
235
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxComboFooterDirective, decorators: [{
236
236
  type: Directive,
237
237
  args: [{
238
238
  selector: '[igxComboFooter]',
@@ -258,10 +258,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
258
258
  * </igx-combo>
259
259
  */
260
260
  class IgxComboItemDirective {
261
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxComboItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
262
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: IgxComboItemDirective, isStandalone: true, selector: "[igxComboItem]", ngImport: i0 }); }
261
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxComboItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
262
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.2.0", type: IgxComboItemDirective, isStandalone: true, selector: "[igxComboItem]", ngImport: i0 }); }
263
263
  }
264
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxComboItemDirective, decorators: [{
264
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxComboItemDirective, decorators: [{
265
265
  type: Directive,
266
266
  args: [{
267
267
  selector: '[igxComboItem]',
@@ -286,10 +286,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
286
286
  * </igx-combo>
287
287
  */
288
288
  class IgxComboEmptyDirective {
289
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxComboEmptyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
290
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: IgxComboEmptyDirective, isStandalone: true, selector: "[igxComboEmpty]", ngImport: i0 }); }
289
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxComboEmptyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
290
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.2.0", type: IgxComboEmptyDirective, isStandalone: true, selector: "[igxComboEmpty]", ngImport: i0 }); }
291
291
  }
292
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxComboEmptyDirective, decorators: [{
292
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxComboEmptyDirective, decorators: [{
293
293
  type: Directive,
294
294
  args: [{
295
295
  selector: '[igxComboEmpty]',
@@ -312,10 +312,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
312
312
  * </igx-combo>
313
313
  */
314
314
  class IgxComboHeaderItemDirective {
315
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxComboHeaderItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
316
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: IgxComboHeaderItemDirective, isStandalone: true, selector: "[igxComboHeaderItem]", ngImport: i0 }); }
315
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxComboHeaderItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
316
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.2.0", type: IgxComboHeaderItemDirective, isStandalone: true, selector: "[igxComboHeaderItem]", ngImport: i0 }); }
317
317
  }
318
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxComboHeaderItemDirective, decorators: [{
318
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxComboHeaderItemDirective, decorators: [{
319
319
  type: Directive,
320
320
  args: [{
321
321
  selector: '[igxComboHeaderItem]',
@@ -342,10 +342,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
342
342
  * </igx-combo>
343
343
  */
344
344
  class IgxComboAddItemDirective {
345
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxComboAddItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
346
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: IgxComboAddItemDirective, isStandalone: true, selector: "[igxComboAddItem]", ngImport: i0 }); }
345
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxComboAddItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
346
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.2.0", type: IgxComboAddItemDirective, isStandalone: true, selector: "[igxComboAddItem]", ngImport: i0 }); }
347
347
  }
348
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxComboAddItemDirective, decorators: [{
348
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxComboAddItemDirective, decorators: [{
349
349
  type: Directive,
350
350
  args: [{
351
351
  selector: '[igxComboAddItem]',
@@ -368,10 +368,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
368
368
  * </igx-combo>
369
369
  */
370
370
  class IgxComboToggleIconDirective {
371
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxComboToggleIconDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
372
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: IgxComboToggleIconDirective, isStandalone: true, selector: "[igxComboToggleIcon]", ngImport: i0 }); }
371
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxComboToggleIconDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
372
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.2.0", type: IgxComboToggleIconDirective, isStandalone: true, selector: "[igxComboToggleIcon]", ngImport: i0 }); }
373
373
  }
374
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxComboToggleIconDirective, decorators: [{
374
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxComboToggleIconDirective, decorators: [{
375
375
  type: Directive,
376
376
  args: [{
377
377
  selector: '[igxComboToggleIcon]',
@@ -394,10 +394,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
394
394
  * </igx-combo>
395
395
  */
396
396
  class IgxComboClearIconDirective {
397
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxComboClearIconDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
398
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: IgxComboClearIconDirective, isStandalone: true, selector: "[igxComboClearIcon]", ngImport: i0 }); }
397
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxComboClearIconDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
398
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.2.0", type: IgxComboClearIconDirective, isStandalone: true, selector: "[igxComboClearIcon]", ngImport: i0 }); }
399
399
  }
400
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxComboClearIconDirective, decorators: [{
400
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxComboClearIconDirective, decorators: [{
401
401
  type: Directive,
402
402
  args: [{
403
403
  selector: '[igxComboClearIcon]',
@@ -1087,6 +1087,12 @@ class IgxComboBaseDirective {
1087
1087
  /** @hidden @internal */
1088
1088
  this.activeDescendant = '';
1089
1089
  this.itemSize = undefined;
1090
+ /**
1091
+ * @hidden @internal
1092
+ * No over-scan, so `stateChange` starts at the first visible row, as `igxFor` did.
1093
+ * Otherwise a page fetched for row 20 binds at row 18.
1094
+ */
1095
+ this.overScan = 0;
1090
1096
  /** The wanted window, in the shape `virtualizationState` and `dataPreLoad` use. */
1091
1097
  this._virtualizationState = { startIndex: 0, chunkSize: 0 };
1092
1098
  /** Where the records currently bound sit, which a pending request has not moved yet. */
@@ -1574,10 +1580,10 @@ class IgxComboBaseDirective {
1574
1580
  get required() {
1575
1581
  return this.control?.required ?? false;
1576
1582
  }
1577
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxComboBaseDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1578
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.1.7", type: IgxComboBaseDirective, isStandalone: true, inputs: { showSearchCaseIcon: ["showSearchCaseIcon", "showSearchCaseIcon", booleanAttribute], disableFiltering: ["disableFiltering", "disableFiltering", booleanAttribute], overlaySettings: "overlaySettings", id: "id", width: "width", allowCustomValues: ["allowCustomValues", "allowCustomValues", booleanAttribute], itemsMaxHeight: "itemsMaxHeight", itemHeight: "itemHeight", itemsWidth: "itemsWidth", placeholder: "placeholder", data: "data", valueKey: "valueKey", displayKey: "displayKey", groupKey: "groupKey", groupSortingDirection: "groupSortingDirection", filterFunction: "filterFunction", ariaLabelledBy: "ariaLabelledBy", disabled: ["disabled", "disabled", booleanAttribute], disableClear: ["disableClear", "disableClear", booleanAttribute], type: "type", resourceStrings: "resourceStrings", filteringOptions: "filteringOptions" }, outputs: { opening: "opening", opened: "opened", closing: "closing", closed: "closed", addition: "addition", searchInputUpdate: "searchInputUpdate", dataPreLoad: "dataPreLoad" }, host: { properties: { "attr.id": "this.id", "style.width": "this.width", "class.igx-combo": "this.cssClass" } }, queries: [{ propertyName: "itemTemplate", first: true, predicate: IgxComboItemDirective, descendants: true, read: TemplateRef }, { propertyName: "headerTemplate", first: true, predicate: IgxComboHeaderDirective, descendants: true, read: TemplateRef }, { propertyName: "footerTemplate", first: true, predicate: IgxComboFooterDirective, descendants: true, read: TemplateRef }, { propertyName: "headerItemTemplate", first: true, predicate: IgxComboHeaderItemDirective, descendants: true, read: TemplateRef }, { propertyName: "addItemTemplate", first: true, predicate: IgxComboAddItemDirective, descendants: true, read: TemplateRef }, { propertyName: "emptyTemplate", first: true, predicate: IgxComboEmptyDirective, descendants: true, read: TemplateRef }, { propertyName: "toggleIconTemplate", first: true, predicate: IgxComboToggleIconDirective, descendants: true, read: TemplateRef }, { propertyName: "clearIconTemplate", first: true, predicate: IgxComboClearIconDirective, descendants: true, read: TemplateRef }, { propertyName: "label", first: true, predicate: i0.forwardRef(() => IgxLabelDirective), descendants: true, static: true }, { propertyName: "prefixes", predicate: IgxPrefixDirective, descendants: true }, { propertyName: "suffixes", predicate: IgxSuffixDirective, descendants: true }, { propertyName: "contentHints", predicate: IgxHintDirective, descendants: true }], viewQueries: [{ propertyName: "inputGroup", first: true, predicate: ["inputGroup"], descendants: true, read: IgxInputGroupComponent, static: true }, { propertyName: "comboInput", first: true, predicate: ["comboInput"], descendants: true, read: IgxInputDirective, static: true }, { propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "virtualScrollContainer", first: true, predicate: ["virtualScroll"], descendants: true, static: true }, { propertyName: "dropdownContainer", first: true, predicate: ["dropdownItemContainer"], descendants: true, static: true }, { propertyName: "primitiveTemplate", first: true, predicate: ["primitive"], descendants: true, read: TemplateRef, static: true }, { propertyName: "complexTemplate", first: true, predicate: ["complex"], descendants: true, read: TemplateRef, static: true }, { propertyName: "internalSuffixes", predicate: IgxSuffixDirective, descendants: true }], ngImport: i0 }); }
1583
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxComboBaseDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1584
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.0", type: IgxComboBaseDirective, isStandalone: true, inputs: { showSearchCaseIcon: ["showSearchCaseIcon", "showSearchCaseIcon", booleanAttribute], disableFiltering: ["disableFiltering", "disableFiltering", booleanAttribute], overlaySettings: "overlaySettings", id: "id", width: "width", allowCustomValues: ["allowCustomValues", "allowCustomValues", booleanAttribute], itemsMaxHeight: "itemsMaxHeight", itemHeight: "itemHeight", itemsWidth: "itemsWidth", placeholder: "placeholder", data: "data", valueKey: "valueKey", displayKey: "displayKey", groupKey: "groupKey", groupSortingDirection: "groupSortingDirection", filterFunction: "filterFunction", ariaLabelledBy: "ariaLabelledBy", disabled: ["disabled", "disabled", booleanAttribute], disableClear: ["disableClear", "disableClear", booleanAttribute], type: "type", resourceStrings: "resourceStrings", filteringOptions: "filteringOptions" }, outputs: { opening: "opening", opened: "opened", closing: "closing", closed: "closed", addition: "addition", searchInputUpdate: "searchInputUpdate", dataPreLoad: "dataPreLoad" }, host: { properties: { "attr.id": "this.id", "style.width": "this.width", "class.igx-combo": "this.cssClass" } }, queries: [{ propertyName: "itemTemplate", first: true, predicate: IgxComboItemDirective, descendants: true, read: TemplateRef }, { propertyName: "headerTemplate", first: true, predicate: IgxComboHeaderDirective, descendants: true, read: TemplateRef }, { propertyName: "footerTemplate", first: true, predicate: IgxComboFooterDirective, descendants: true, read: TemplateRef }, { propertyName: "headerItemTemplate", first: true, predicate: IgxComboHeaderItemDirective, descendants: true, read: TemplateRef }, { propertyName: "addItemTemplate", first: true, predicate: IgxComboAddItemDirective, descendants: true, read: TemplateRef }, { propertyName: "emptyTemplate", first: true, predicate: IgxComboEmptyDirective, descendants: true, read: TemplateRef }, { propertyName: "toggleIconTemplate", first: true, predicate: IgxComboToggleIconDirective, descendants: true, read: TemplateRef }, { propertyName: "clearIconTemplate", first: true, predicate: IgxComboClearIconDirective, descendants: true, read: TemplateRef }, { propertyName: "label", first: true, predicate: i0.forwardRef(() => IgxLabelDirective), descendants: true, static: true }, { propertyName: "prefixes", predicate: IgxPrefixDirective, descendants: true }, { propertyName: "suffixes", predicate: IgxSuffixDirective, descendants: true }, { propertyName: "contentHints", predicate: IgxHintDirective, descendants: true }], viewQueries: [{ propertyName: "inputGroup", first: true, predicate: ["inputGroup"], descendants: true, read: IgxInputGroupComponent, static: true }, { propertyName: "comboInput", first: true, predicate: ["comboInput"], descendants: true, read: IgxInputDirective, static: true }, { propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "virtualScrollContainer", first: true, predicate: ["virtualScroll"], descendants: true, static: true }, { propertyName: "dropdownContainer", first: true, predicate: ["dropdownItemContainer"], descendants: true, static: true }, { propertyName: "primitiveTemplate", first: true, predicate: ["primitive"], descendants: true, read: TemplateRef, static: true }, { propertyName: "complexTemplate", first: true, predicate: ["complex"], descendants: true, read: TemplateRef, static: true }, { propertyName: "internalSuffixes", predicate: IgxSuffixDirective, descendants: true }], ngImport: i0 }); }
1579
1585
  }
1580
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxComboBaseDirective, decorators: [{
1586
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxComboBaseDirective, decorators: [{
1581
1587
  type: Directive
1582
1588
  }], ctorParameters: () => [], propDecorators: { showSearchCaseIcon: [{
1583
1589
  type: Input,
@@ -1729,10 +1735,10 @@ class IgxComboAddItemComponent extends IgxComboItemComponent {
1729
1735
  this.comboAPI.disableTransitions = false;
1730
1736
  this.comboAPI.add_custom_item();
1731
1737
  }
1732
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxComboAddItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1733
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.7", type: IgxComboAddItemComponent, isStandalone: true, selector: "igx-combo-add-item", host: { properties: { "class.igx-drop-down__item": "this.isDropDownItem" } }, providers: [{ provide: IgxComboItemComponent, useExisting: IgxComboAddItemComponent }], usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.Eager }); }
1738
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxComboAddItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1739
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.2.0", type: IgxComboAddItemComponent, isStandalone: true, selector: "igx-combo-add-item", host: { properties: { "class.igx-drop-down__item": "this.isDropDownItem" } }, providers: [{ provide: IgxComboItemComponent, useExisting: IgxComboAddItemComponent }], usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.Eager }); }
1734
1740
  }
1735
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxComboAddItemComponent, decorators: [{
1741
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxComboAddItemComponent, decorators: [{
1736
1742
  type: Component,
1737
1743
  args: [{
1738
1744
  selector: 'igx-combo-add-item',
@@ -1959,10 +1965,10 @@ class IgxComboDropDownComponent extends IgxDropDownComponent {
1959
1965
  this.focusedItem = this.items[this.items.length - 1];
1960
1966
  }
1961
1967
  }
1962
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxComboDropDownComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1963
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: IgxComboDropDownComponent, isStandalone: true, selector: "igx-combo-drop-down", inputs: { singleMode: ["singleMode", "singleMode", booleanAttribute] }, providers: [{ provide: IGX_DROPDOWN_BASE, useExisting: IgxComboDropDownComponent }], queries: [{ propertyName: "children", predicate: IgxComboItemComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"igx-drop-down\" [style.width]=\"width\"\n igxToggle\n (appended)=\"onToggleContentAppended($event)\"\n (opening)=\"onToggleOpening($event)\" (opened)=\"onToggleOpened()\"\n (closing)=\"onToggleClosing($event)\" (closed)=\"onToggleClosed()\">\n <div class=\"igx-drop-down__list-scroll\" #scrollContainer [attr.id]=\"listId\" [attr.role]=\"role\" [attr.aria-labelledby]=\"labelledBy\"\n [style.height]=\"height\"\n [style.maxHeight]=\"maxHeight\">\n @if (!collapsed) {\n <ng-content></ng-content>\n }\n </div>\n</div>\n", styles: ["@layer ig.base{.igx-drop-down__group label,.igx-drop-down__header,.igx-drop-down__item{display:flex;justify-content:flex-start;align-items:center;width:100%;white-space:nowrap;position:relative;height:var(--size);color:var(--item-text-color)}.igx-drop-down__group label igx-divider,.igx-drop-down__header igx-divider,.igx-drop-down__item igx-divider{position:absolute;width:100%;inset-inline-start:0;bottom:0}.igx-drop-down__group label igx-icon,.igx-drop-down__header igx-icon,.igx-drop-down__item igx-icon{--component-size: 1;justify-content:center}.igx-drop-down__group label,.igx-drop-down__header{font-family:var(--ig-overline-font-family, var(--ig-font-family));font-size:var(--ig-overline-font-size);font-weight:var(--ig-overline-font-weight);font-style:var(--ig-overline-font-style);line-height:var(--ig-overline-line-height);letter-spacing:var(--ig-overline-letter-spacing);text-transform:var(--ig-overline-text-transform);margin-top:var(--ig-overline-margin-top);margin-bottom:var(--ig-overline-margin-bottom);color:var(--header-text-color);pointer-events:none;padding-inline:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}.igx-drop-down{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);--component-size: var(--ig-size, var(--default-size));--dropdown-size: var(--component-size);width:-moz-max-content;width:max-content;overflow:hidden;border-radius:var(--border-radius);background:var(--background-color);box-shadow:var(--elevation);min-width:8rem;border:var(--border-width) solid var(--border-color)}.igx-drop-down__list-scroll{overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;position:relative}.igx-drop-down__list-scroll .igx-display-container--scrollbar{padding-inline-end:var(--vhelper-scrollbar-size)}.igx-drop-down__item{font-family:var(--ig-body-2-font-family, var(--ig-font-family));font-size:var(--ig-body-2-font-size);font-weight:var(--ig-body-2-font-weight);font-style:var(--ig-body-2-font-style);line-height:var(--ig-body-2-line-height);letter-spacing:var(--ig-body-2-letter-spacing);text-transform:var(--ig-body-2-text-transform);margin-top:var(--ig-body-2-margin-top);margin-bottom:var(--ig-body-2-margin-bottom);--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);--component-size: var(--dropdown-size);cursor:pointer;padding-inline:max(var(--is-large, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(1.25rem,-1 * 1.25rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));border-radius:var(--item-border-radius)}.igx-drop-down__item igx-icon{color:var(--item-icon-color)}.igx-drop-down__item:hover{background:var(--hover-item-background);color:var(--hover-item-text-color)}.igx-drop-down__item:hover igx-icon{color:var(--hover-item-icon-color)}.igx-drop-down__item:focus{outline:0;outline-color:#0000;background:var(--focused-item-background);color:var(--focused-item-text-color)}.igx-drop-down__inner{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:block;align-items:center;gap:.5rem;margin-inline-end:auto}.igx-drop-down__inner>div{display:flex;align-items:center;gap:.5rem}.igx-drop-down__content{display:flex;width:100%;align-items:center;gap:.5rem}.igx-drop-down__item--focused{background:var(--focused-item-background);color:var(--focused-item-text-color)}.igx-drop-down__item--selected{background:var(--selected-item-background);color:var(--selected-item-text-color)}.igx-drop-down__item--selected igx-icon{color:var(--selected-item-icon-color)}.igx-drop-down__item--selected:hover{background:var(--selected-hover-item-background);color:var(--selected-hover-item-text-color)}.igx-drop-down__item--selected:hover igx-icon{color:var(--selected-hover-item-icon-color)}.igx-drop-down__item--selected.igx-drop-down__item--focused{background:var(--selected-focus-item-background);color:var(--selected-focus-item-text-color)}.igx-drop-down__item--selected.igx-drop-down__item--focused:hover{background:var(--selected-hover-item-background);color:var(--selected-hover-item-text-color)}.igx-drop-down__item--selected.igx-drop-down__item--focused:hover igx-icon{color:var(--selected-hover-item-icon-color)}.igx-drop-down__item--disabled{background:var(--disabled-item-background);color:var(--disabled-item-text-color);cursor:default;pointer-events:none}.igx-drop-down__item--disabled igx-icon{color:var(--disabled-item-text-color)}.igx-drop-down__group{pointer-events:auto}}@layer ig.indigo{@container style(--ig-theme: indigo){.igx-drop-down .igx-drop-down__header,.igx-drop-down .igx-drop-down__item{--ig-icon-size: max(var(--is-large, 1) * max(1rem, -1 * 1rem), var(--is-medium, 1) * max(1rem, -1 * 1rem), var(--is-small, 1) * max(.875rem, -1 * .875rem));padding-inline:max(var(--is-large, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}.igx-drop-down .igx-drop-down__header igx-icon,.igx-drop-down .igx-drop-down__item igx-icon{--component-size: inherit}.igx-drop-down{padding:.1875rem}.igx-drop-down__item{margin-block:.125rem}.igx-drop-down__item:first-of-type,.igx-drop-down__item:last-of-type{margin-block:initial}.igx-drop-down__item--focused{outline:.125rem solid var(--focused-item-border-color);outline-offset:-.125rem}.igx-drop-down__header{margin-block-end:.125rem;padding-block:max(var(--is-large, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.375rem,-1 * .375rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}.igx-drop-down__group label{padding-inline:max(var(--is-large, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));padding-block:max(var(--is-large, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(.375rem,-1 * .375rem)*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))));margin-block-end:.125rem}}}@layer ig.fluent{@container style(--ig-theme: fluent){.igx-drop-down__item--focused{outline:.0625rem solid var(--border-color);outline-offset:-.0625rem}.igx-drop-down__header{font-family:var(--ig-subtitle-2-font-family, var(--ig-font-family));font-size:var(--ig-subtitle-2-font-size);font-weight:var(--ig-subtitle-2-font-weight);font-style:var(--ig-subtitle-2-font-style);line-height:var(--ig-subtitle-2-line-height);letter-spacing:var(--ig-subtitle-2-letter-spacing);text-transform:var(--ig-subtitle-2-text-transform);margin-top:var(--ig-subtitle-2-margin-top);margin-bottom:var(--ig-subtitle-2-margin-bottom)}.igx-drop-down__group{pointer-events:auto}.igx-drop-down__group label{font-family:var(--ig-subtitle-2-font-family, var(--ig-font-family));font-size:var(--ig-subtitle-2-font-size);font-weight:var(--ig-subtitle-2-font-weight);font-style:var(--ig-subtitle-2-font-style);line-height:var(--ig-subtitle-2-line-height);letter-spacing:var(--ig-subtitle-2-letter-spacing);text-transform:var(--ig-subtitle-2-text-transform);margin-top:var(--ig-subtitle-2-margin-top);margin-bottom:var(--ig-subtitle-2-margin-bottom)}}}\n"], dependencies: [{ kind: "directive", type: IgxToggleDirective, selector: "[igxToggle]", inputs: ["id"], outputs: ["opened", "opening", "closed", "closing", "appended"], exportAs: ["toggle"] }], changeDetection: i0.ChangeDetectionStrategy.Eager, encapsulation: i0.ViewEncapsulation.None }); }
1968
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxComboDropDownComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1969
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.2.0", type: IgxComboDropDownComponent, isStandalone: true, selector: "igx-combo-drop-down", inputs: { singleMode: ["singleMode", "singleMode", booleanAttribute] }, providers: [{ provide: IGX_DROPDOWN_BASE, useExisting: IgxComboDropDownComponent }], queries: [{ propertyName: "children", predicate: IgxComboItemComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"igx-drop-down\" [style.width]=\"width\"\n igxToggle\n (appended)=\"onToggleContentAppended($event)\"\n (opening)=\"onToggleOpening($event)\" (opened)=\"onToggleOpened()\"\n (closing)=\"onToggleClosing($event)\" (closed)=\"onToggleClosed()\">\n <div class=\"igx-drop-down__list-scroll\" #scrollContainer [attr.id]=\"listId\" [attr.role]=\"role\" [attr.aria-labelledby]=\"labelledBy\"\n [style.height]=\"height\"\n [style.maxHeight]=\"maxHeight\">\n @if (!collapsed) {\n <ng-content></ng-content>\n }\n </div>\n</div>\n", styles: ["@layer ig.base{.igx-drop-down__group label,.igx-drop-down__header,.igx-drop-down__item{display:flex;justify-content:flex-start;align-items:center;width:100%;white-space:nowrap;position:relative;height:var(--size);color:var(--item-text-color)}.igx-drop-down__group label igx-divider,.igx-drop-down__header igx-divider,.igx-drop-down__item igx-divider{position:absolute;width:100%;inset-inline-start:0;bottom:0}.igx-drop-down__group label igx-icon,.igx-drop-down__header igx-icon,.igx-drop-down__item igx-icon{--component-size: 1;justify-content:center}.igx-drop-down__group label,.igx-drop-down__header{font-family:var(--ig-overline-font-family, var(--ig-font-family));font-size:var(--ig-overline-font-size);font-weight:var(--ig-overline-font-weight);font-style:var(--ig-overline-font-style);line-height:var(--ig-overline-line-height);letter-spacing:var(--ig-overline-letter-spacing);text-transform:var(--ig-overline-text-transform);margin-top:var(--ig-overline-margin-top);margin-bottom:var(--ig-overline-margin-bottom);color:var(--header-text-color);pointer-events:none;padding-inline:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}.igx-drop-down{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);--component-size: var(--ig-size, var(--default-size));--dropdown-size: var(--component-size);width:-moz-max-content;width:max-content;overflow:hidden;border-radius:var(--border-radius);background:var(--background-color);box-shadow:var(--elevation);min-width:8rem;border:var(--border-width) solid var(--border-color)}.igx-drop-down__list-scroll{overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;position:relative}.igx-drop-down__list-scroll .igx-display-container--scrollbar{padding-inline-end:var(--vhelper-scrollbar-size)}.igx-drop-down__item{font-family:var(--ig-body-2-font-family, var(--ig-font-family));font-size:var(--ig-body-2-font-size);font-weight:var(--ig-body-2-font-weight);font-style:var(--ig-body-2-font-style);line-height:var(--ig-body-2-line-height);letter-spacing:var(--ig-body-2-letter-spacing);text-transform:var(--ig-body-2-text-transform);margin-top:var(--ig-body-2-margin-top);margin-bottom:var(--ig-body-2-margin-bottom);--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);--component-size: var(--dropdown-size);cursor:pointer;padding-inline:max(var(--is-large, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(1.25rem,-1 * 1.25rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));border-radius:var(--item-border-radius)}.igx-drop-down__item igx-icon{color:var(--item-icon-color)}.igx-drop-down__item:hover{background:var(--hover-item-background);color:var(--hover-item-text-color)}.igx-drop-down__item:hover igx-icon{color:var(--hover-item-icon-color)}.igx-drop-down__item:focus{outline:0;outline-color:#0000;background:var(--focused-item-background);color:var(--focused-item-text-color)}.igx-drop-down__inner{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:block;align-items:center;gap:.5rem;margin-inline-end:auto}.igx-drop-down__inner>div{display:flex;align-items:center;gap:.5rem}.igx-drop-down__content{display:flex;width:100%;align-items:center;gap:.5rem}.igx-drop-down__item--focused{background:var(--focused-item-background);color:var(--focused-item-text-color)}.igx-drop-down__item--selected{background:var(--selected-item-background);color:var(--selected-item-text-color)}.igx-drop-down__item--selected igx-icon{color:var(--selected-item-icon-color)}.igx-drop-down__item--selected:hover{background:var(--selected-hover-item-background);color:var(--selected-hover-item-text-color)}.igx-drop-down__item--selected:hover igx-icon{color:var(--selected-hover-item-icon-color)}.igx-drop-down__item--selected.igx-drop-down__item--focused{background:var(--selected-focus-item-background);color:var(--selected-focus-item-text-color)}.igx-drop-down__item--selected.igx-drop-down__item--focused:hover{background:var(--selected-hover-item-background);color:var(--selected-hover-item-text-color)}.igx-drop-down__item--selected.igx-drop-down__item--focused:hover igx-icon{color:var(--selected-hover-item-icon-color)}.igx-drop-down__item--disabled{background:var(--disabled-item-background);color:var(--disabled-item-text-color);cursor:default;pointer-events:none}.igx-drop-down__item--disabled igx-icon{color:var(--disabled-item-text-color)}.igx-drop-down__group{pointer-events:auto}}@layer ig.indigo{@container style(--ig-theme: indigo){.igx-drop-down .igx-drop-down__header,.igx-drop-down .igx-drop-down__item{--ig-icon-size: max(var(--is-large, 1) * max(1rem, -1 * 1rem), var(--is-medium, 1) * max(1rem, -1 * 1rem), var(--is-small, 1) * max(.875rem, -1 * .875rem));padding-inline:max(var(--is-large, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}.igx-drop-down .igx-drop-down__header igx-icon,.igx-drop-down .igx-drop-down__item igx-icon{--component-size: inherit}.igx-drop-down{padding:.1875rem}.igx-drop-down__item{margin-block:.125rem}.igx-drop-down__item:first-of-type,.igx-drop-down__item:last-of-type{margin-block:initial}.igx-drop-down__item--focused{outline:.125rem solid var(--focused-item-border-color);outline-offset:-.125rem}.igx-drop-down__header{margin-block-end:.125rem;padding-block:max(var(--is-large, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.375rem,-1 * .375rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}.igx-drop-down__group label{padding-inline:max(var(--is-large, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));padding-block:max(var(--is-large, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(.375rem,-1 * .375rem)*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))));margin-block-end:.125rem}}}@layer ig.fluent{@container style(--ig-theme: fluent){.igx-drop-down__item--focused{outline:.0625rem solid var(--border-color);outline-offset:-.0625rem}.igx-drop-down__header{font-family:var(--ig-subtitle-2-font-family, var(--ig-font-family));font-size:var(--ig-subtitle-2-font-size);font-weight:var(--ig-subtitle-2-font-weight);font-style:var(--ig-subtitle-2-font-style);line-height:var(--ig-subtitle-2-line-height);letter-spacing:var(--ig-subtitle-2-letter-spacing);text-transform:var(--ig-subtitle-2-text-transform);margin-top:var(--ig-subtitle-2-margin-top);margin-bottom:var(--ig-subtitle-2-margin-bottom)}.igx-drop-down__group{pointer-events:auto}.igx-drop-down__group label{font-family:var(--ig-subtitle-2-font-family, var(--ig-font-family));font-size:var(--ig-subtitle-2-font-size);font-weight:var(--ig-subtitle-2-font-weight);font-style:var(--ig-subtitle-2-font-style);line-height:var(--ig-subtitle-2-line-height);letter-spacing:var(--ig-subtitle-2-letter-spacing);text-transform:var(--ig-subtitle-2-text-transform);margin-top:var(--ig-subtitle-2-margin-top);margin-bottom:var(--ig-subtitle-2-margin-bottom)}}}\n"], dependencies: [{ kind: "directive", type: IgxToggleDirective, selector: "[igxToggle]", inputs: ["id"], outputs: ["opened", "opening", "closed", "closing", "appended"], exportAs: ["toggle"] }], changeDetection: i0.ChangeDetectionStrategy.Eager, encapsulation: i0.ViewEncapsulation.None }); }
1964
1970
  }
1965
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxComboDropDownComponent, decorators: [{
1971
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxComboDropDownComponent, decorators: [{
1966
1972
  type: Component,
1967
1973
  args: [{ selector: 'igx-combo-drop-down', encapsulation: ViewEncapsulation.None, providers: [{ provide: IGX_DROPDOWN_BASE, useExisting: IgxComboDropDownComponent }], changeDetection: ChangeDetectionStrategy.Eager, imports: [IgxToggleDirective], template: "<div class=\"igx-drop-down\" [style.width]=\"width\"\n igxToggle\n (appended)=\"onToggleContentAppended($event)\"\n (opening)=\"onToggleOpening($event)\" (opened)=\"onToggleOpened()\"\n (closing)=\"onToggleClosing($event)\" (closed)=\"onToggleClosed()\">\n <div class=\"igx-drop-down__list-scroll\" #scrollContainer [attr.id]=\"listId\" [attr.role]=\"role\" [attr.aria-labelledby]=\"labelledBy\"\n [style.height]=\"height\"\n [style.maxHeight]=\"maxHeight\">\n @if (!collapsed) {\n <ng-content></ng-content>\n }\n </div>\n</div>\n", styles: ["@layer ig.base{.igx-drop-down__group label,.igx-drop-down__header,.igx-drop-down__item{display:flex;justify-content:flex-start;align-items:center;width:100%;white-space:nowrap;position:relative;height:var(--size);color:var(--item-text-color)}.igx-drop-down__group label igx-divider,.igx-drop-down__header igx-divider,.igx-drop-down__item igx-divider{position:absolute;width:100%;inset-inline-start:0;bottom:0}.igx-drop-down__group label igx-icon,.igx-drop-down__header igx-icon,.igx-drop-down__item igx-icon{--component-size: 1;justify-content:center}.igx-drop-down__group label,.igx-drop-down__header{font-family:var(--ig-overline-font-family, var(--ig-font-family));font-size:var(--ig-overline-font-size);font-weight:var(--ig-overline-font-weight);font-style:var(--ig-overline-font-style);line-height:var(--ig-overline-line-height);letter-spacing:var(--ig-overline-letter-spacing);text-transform:var(--ig-overline-text-transform);margin-top:var(--ig-overline-margin-top);margin-bottom:var(--ig-overline-margin-bottom);color:var(--header-text-color);pointer-events:none;padding-inline:max(var(--is-large, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}.igx-drop-down{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);--component-size: var(--ig-size, var(--default-size));--dropdown-size: var(--component-size);width:-moz-max-content;width:max-content;overflow:hidden;border-radius:var(--border-radius);background:var(--background-color);box-shadow:var(--elevation);min-width:8rem;border:var(--border-width) solid var(--border-color)}.igx-drop-down__list-scroll{overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;position:relative}.igx-drop-down__list-scroll .igx-display-container--scrollbar{padding-inline-end:var(--vhelper-scrollbar-size)}.igx-drop-down__item{font-family:var(--ig-body-2-font-family, var(--ig-font-family));font-size:var(--ig-body-2-font-size);font-weight:var(--ig-body-2-font-weight);font-style:var(--ig-body-2-font-style);line-height:var(--ig-body-2-line-height);letter-spacing:var(--ig-body-2-letter-spacing);text-transform:var(--ig-body-2-text-transform);margin-top:var(--ig-body-2-margin-top);margin-bottom:var(--ig-body-2-margin-bottom);--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);--component-size: var(--dropdown-size);cursor:pointer;padding-inline:max(var(--is-large, 1)*max(1.5rem,-1 * 1.5rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(1.25rem,-1 * 1.25rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(1rem,-1 * 1rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));border-radius:var(--item-border-radius)}.igx-drop-down__item igx-icon{color:var(--item-icon-color)}.igx-drop-down__item:hover{background:var(--hover-item-background);color:var(--hover-item-text-color)}.igx-drop-down__item:hover igx-icon{color:var(--hover-item-icon-color)}.igx-drop-down__item:focus{outline:0;outline-color:#0000;background:var(--focused-item-background);color:var(--focused-item-text-color)}.igx-drop-down__inner{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:block;align-items:center;gap:.5rem;margin-inline-end:auto}.igx-drop-down__inner>div{display:flex;align-items:center;gap:.5rem}.igx-drop-down__content{display:flex;width:100%;align-items:center;gap:.5rem}.igx-drop-down__item--focused{background:var(--focused-item-background);color:var(--focused-item-text-color)}.igx-drop-down__item--selected{background:var(--selected-item-background);color:var(--selected-item-text-color)}.igx-drop-down__item--selected igx-icon{color:var(--selected-item-icon-color)}.igx-drop-down__item--selected:hover{background:var(--selected-hover-item-background);color:var(--selected-hover-item-text-color)}.igx-drop-down__item--selected:hover igx-icon{color:var(--selected-hover-item-icon-color)}.igx-drop-down__item--selected.igx-drop-down__item--focused{background:var(--selected-focus-item-background);color:var(--selected-focus-item-text-color)}.igx-drop-down__item--selected.igx-drop-down__item--focused:hover{background:var(--selected-hover-item-background);color:var(--selected-hover-item-text-color)}.igx-drop-down__item--selected.igx-drop-down__item--focused:hover igx-icon{color:var(--selected-hover-item-icon-color)}.igx-drop-down__item--disabled{background:var(--disabled-item-background);color:var(--disabled-item-text-color);cursor:default;pointer-events:none}.igx-drop-down__item--disabled igx-icon{color:var(--disabled-item-text-color)}.igx-drop-down__group{pointer-events:auto}}@layer ig.indigo{@container style(--ig-theme: indigo){.igx-drop-down .igx-drop-down__header,.igx-drop-down .igx-drop-down__item{--ig-icon-size: max(var(--is-large, 1) * max(1rem, -1 * 1rem), var(--is-medium, 1) * max(1rem, -1 * 1rem), var(--is-small, 1) * max(.875rem, -1 * .875rem));padding-inline:max(var(--is-large, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}.igx-drop-down .igx-drop-down__header igx-icon,.igx-drop-down .igx-drop-down__item igx-icon{--component-size: inherit}.igx-drop-down{padding:.1875rem}.igx-drop-down__item{margin-block:.125rem}.igx-drop-down__item:first-of-type,.igx-drop-down__item:last-of-type{margin-block:initial}.igx-drop-down__item--focused{outline:.125rem solid var(--focused-item-border-color);outline-offset:-.125rem}.igx-drop-down__header{margin-block-end:.125rem;padding-block:max(var(--is-large, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.375rem,-1 * .375rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}.igx-drop-down__group label{padding-inline:max(var(--is-large, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.75rem,-1 * .75rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));padding-block:max(var(--is-large, 1)*max(.5rem,-1 * .5rem)*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(.375rem,-1 * .375rem)*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(.25rem,-1 * .25rem)*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))));margin-block-end:.125rem}}}@layer ig.fluent{@container style(--ig-theme: fluent){.igx-drop-down__item--focused{outline:.0625rem solid var(--border-color);outline-offset:-.0625rem}.igx-drop-down__header{font-family:var(--ig-subtitle-2-font-family, var(--ig-font-family));font-size:var(--ig-subtitle-2-font-size);font-weight:var(--ig-subtitle-2-font-weight);font-style:var(--ig-subtitle-2-font-style);line-height:var(--ig-subtitle-2-line-height);letter-spacing:var(--ig-subtitle-2-letter-spacing);text-transform:var(--ig-subtitle-2-text-transform);margin-top:var(--ig-subtitle-2-margin-top);margin-bottom:var(--ig-subtitle-2-margin-bottom)}.igx-drop-down__group{pointer-events:auto}.igx-drop-down__group label{font-family:var(--ig-subtitle-2-font-family, var(--ig-font-family));font-size:var(--ig-subtitle-2-font-size);font-weight:var(--ig-subtitle-2-font-weight);font-style:var(--ig-subtitle-2-font-style);line-height:var(--ig-subtitle-2-line-height);letter-spacing:var(--ig-subtitle-2-letter-spacing);text-transform:var(--ig-subtitle-2-text-transform);margin-top:var(--ig-subtitle-2-margin-top);margin-bottom:var(--ig-subtitle-2-margin-bottom)}}}\n"] }]
1968
1974
  }], propDecorators: { singleMode: [{
@@ -1985,10 +1991,10 @@ class IgxComboRecordWindowPipe {
1985
1991
  ? collection.slice(0, remaining)
1986
1992
  : collection;
1987
1993
  }
1988
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxComboRecordWindowPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
1989
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.1.7", ngImport: i0, type: IgxComboRecordWindowPipe, isStandalone: true, name: "comboRecordWindow" }); }
1994
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxComboRecordWindowPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
1995
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.2.0", ngImport: i0, type: IgxComboRecordWindowPipe, isStandalone: true, name: "comboRecordWindow" }); }
1990
1996
  }
1991
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxComboRecordWindowPipe, decorators: [{
1997
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxComboRecordWindowPipe, decorators: [{
1992
1998
  type: Pipe,
1993
1999
  args: [{
1994
2000
  name: 'comboRecordWindow'
@@ -2008,10 +2014,10 @@ class IgxComboDataWindowPipe {
2008
2014
  // collection to reach it.
2009
2015
  return { items: collection, startIndex: collection.length ? startIndex : 0, totalCount: totalItemCount };
2010
2016
  }
2011
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxComboDataWindowPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
2012
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.1.7", ngImport: i0, type: IgxComboDataWindowPipe, isStandalone: true, name: "comboDataWindow" }); }
2017
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxComboDataWindowPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
2018
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.2.0", ngImport: i0, type: IgxComboDataWindowPipe, isStandalone: true, name: "comboDataWindow" }); }
2013
2019
  }
2014
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxComboDataWindowPipe, decorators: [{
2020
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxComboDataWindowPipe, decorators: [{
2015
2021
  type: Pipe,
2016
2022
  args: [{
2017
2023
  name: 'comboDataWindow',
@@ -2029,10 +2035,10 @@ class IgxComboFilteringPipe {
2029
2035
  filteringOptions.filteringKey = filteringOptions.filteringKey ?? displayKey;
2030
2036
  return filterFunction(collection, searchValue, filteringOptions);
2031
2037
  }
2032
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxComboFilteringPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
2033
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.1.7", ngImport: i0, type: IgxComboFilteringPipe, isStandalone: true, name: "comboFiltering" }); }
2038
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxComboFilteringPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
2039
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.2.0", ngImport: i0, type: IgxComboFilteringPipe, isStandalone: true, name: "comboFiltering" }); }
2034
2040
  }
2035
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxComboFilteringPipe, decorators: [{
2041
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxComboFilteringPipe, decorators: [{
2036
2042
  type: Pipe,
2037
2043
  args: [{
2038
2044
  name: 'comboFiltering',
@@ -2067,10 +2073,10 @@ class IgxComboGroupingPipe {
2067
2073
  });
2068
2074
  return result;
2069
2075
  }
2070
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxComboGroupingPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
2071
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.1.7", ngImport: i0, type: IgxComboGroupingPipe, isStandalone: true, name: "comboGrouping" }); }
2076
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxComboGroupingPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
2077
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.2.0", ngImport: i0, type: IgxComboGroupingPipe, isStandalone: true, name: "comboGrouping" }); }
2072
2078
  }
2073
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxComboGroupingPipe, decorators: [{
2079
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxComboGroupingPipe, decorators: [{
2074
2080
  type: Pipe,
2075
2081
  args: [{
2076
2082
  name: 'comboGrouping',
@@ -2455,14 +2461,14 @@ class IgxComboComponent extends IgxComboBaseDirective {
2455
2461
  selection.join(', ');
2456
2462
  return value;
2457
2463
  }
2458
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxComboComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2459
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: IgxComboComponent, isStandalone: true, selector: "igx-combo", inputs: { autoFocusSearch: ["autoFocusSearch", "autoFocusSearch", booleanAttribute], searchPlaceholder: "searchPlaceholder" }, outputs: { selectionChanging: "selectionChanging", selectionChanged: "selectionChanged" }, host: { listeners: { "keydown.ArrowDown": "onArrowDown($event)", "keydown.Alt.ArrowDown": "onArrowDown($event)", "keydown.Escape": "onEscape($event)" } }, providers: [
2464
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxComboComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2465
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.2.0", type: IgxComboComponent, isStandalone: true, selector: "igx-combo", inputs: { autoFocusSearch: ["autoFocusSearch", "autoFocusSearch", booleanAttribute], searchPlaceholder: "searchPlaceholder" }, outputs: { selectionChanging: "selectionChanging", selectionChanged: "selectionChanged" }, host: { listeners: { "keydown.ArrowDown": "onArrowDown($event)", "keydown.Alt.ArrowDown": "onArrowDown($event)", "keydown.Escape": "onEscape($event)" } }, providers: [
2460
2466
  IgxComboAPIService,
2461
2467
  { provide: IGX_COMBO_COMPONENT, useExisting: IgxComboComponent },
2462
2468
  { provide: NG_VALUE_ACCESSOR, useExisting: IgxComboComponent, multi: true }
2463
- ], viewQueries: [{ propertyName: "dropdown", first: true, predicate: IgxComboDropDownComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<igx-input-group #inputGroup [type]=\"type === 'search' ? 'box' : type\" (click)=\"onClick($event)\">\n <ng-container ngProjectAs=\"[igxLabel]\">\n <ng-content select=\"[igxLabel]\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"igx-prefix\">\n <ng-content select=\"igx-prefix,[igxPrefix]\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"igx-hint, [igxHint]\">\n <ng-content select=\"igx-hint, [igxHint]\"></ng-content>\n </ng-container>\n <input igxInput #comboInput name=\"comboInput\" type=\"text\" [value]=\"displayValue\" readonly\n [attr.placeholder]=\"placeholder\" [disabled]=\"disabled\" [igxReadOnlyInput]=\"false\"\n role=\"combobox\" aria-haspopup=\"listbox\"\n [attr.aria-expanded]=\"!dropdown.collapsed\" [attr.aria-controls]=\"dropdown.listId\"\n [attr.aria-labelledby]=\"ariaLabelledBy || label?.id || placeholder\"\n [attr.aria-label]=\"getAriaLabel()\"\n (blur)=\"onBlur()\" />\n <ng-container ngProjectAs=\"igx-suffix\">\n <ng-content select=\"igx-suffix,[igxSuffix]\"></ng-content>\n </ng-container>\n @if (displayValue && !disableClear) {\n <igx-suffix [attr.aria-label]=\"resourceStrings.igx_combo_clearItems_placeholder\" class=\"igx-combo__clear-button igx-input-group__clear-button\"\n (click)=\"handleClearItems($event)\">\n @if (clearIconTemplate) {\n <ng-container *ngTemplateOutlet=\"clearIconTemplate\"></ng-container>\n }\n @if (!clearIconTemplate) {\n <igx-icon family=\"default\" name=\"input_clear\"></igx-icon>\n }\n </igx-suffix>\n }\n <igx-suffix class=\"igx-input-group__toggle-button igx-combo__toggle-button\">\n @if (toggleIconTemplate) {\n <ng-container *ngTemplateOutlet=\"toggleIconTemplate; context: {$implicit: collapsed}\"></ng-container>\n }\n @if (!toggleIconTemplate) {\n <igx-icon family=\"default\" [name]=\"toggleIcon\"></igx-icon>\n }\n </igx-suffix>\n</igx-input-group>\n<!-- Outside the drop-down: its content is detached while closed, and a @let there fails to serialize (NG0502). -->\n@let itemWindow = data!\n | comboRecordWindow:totalItemCount:virtualStartIndex\n | comboFiltering:filterValue:displayKey:filteringOptions:filterFunction:disableFiltering\n | comboGrouping:groupKey:valueKey:groupSortingDirection:compareCollator\n | comboDataWindow:totalItemCount:virtualStartIndex;\n<igx-combo-drop-down #igxComboDropDown class=\"igx-combo__drop-down\"\n [labelledBy]=\"ariaLabelledBy || label?.id || placeholder || ''\"\n [width]=\"itemsWidth || '100%'\" (opening)=\"handleOpening($event)\" (closing)=\"handleClosing($event)\"\n (opened)=\"handleOpened()\" (closed)=\"handleClosed()\">\n\n <!-- The igx-combo class is needed here in order to scope the css variables -->\n <div class=\"igx-combo\">\n @if (displaySearchInput) {\n <div class=\"igx-combo__search\">\n <igx-input-group type=\"line\">\n <input igxInput #searchInput name=\"searchInput\" autocomplete=\"off\" type=\"text\"\n [(ngModel)]=\"searchValue\" (ngModelChange)=\"handleInputChange($event)\" (keyup)=\"handleKeyUp($event)\"\n (keydown)=\"handleKeyDown($event)\" (focus)=\"dropdown.onBlur($event)\" [attr.placeholder]=\"getSearchPlaceholderText()\"\n aria-autocomplete=\"list\" role=\"searchbox\" aria-label=\"search\"/>\n @if (showSearchCaseIcon) {\n <igx-suffix\n class=\"igx-input-group__case-icon igx-combo__case-icon\"\n [ngClass]=\"{ 'igx-combo__case-icon--active': filteringOptions.caseSensitive }\"\n (click)=\"toggleCaseSensitive()\"\n >\n <igx-icon\n family=\"default\"\n name=\"case_sensitive\"\n [active]=\"filteringOptions.caseSensitive\">\n </igx-icon>\n </igx-suffix>\n }\n </igx-input-group>\n </div>\n }\n <ng-container *ngTemplateOutlet=\"headerTemplate\">\n </ng-container>\n <div #dropdownItemContainer class=\"igx-combo__content\" [style.overflow]=\"'hidden'\"\n [style.maxHeight.rem]=\"itemsMaxHeightInRem\" [igxDropDownItemNavigation]=\"dropdown\" (focus)=\"dropdown.onFocus()\"\n [tabindex]=\"dropdown.collapsed ? -1 : 0\" [attr.id]=\"dropdown.id\" aria-multiselectable=\"true\"\n [attr.aria-activedescendant]=\"activeDescendant\">\n <igx-virtual-scroll #virtualScroll role=\"presentation\"\n [dataWindow]=\"itemWindow\"\n [estimatedItemSize]=\"estimatedItemSize\"\n [initialViewportSize]=\"viewportSize\"\n (stateChange)=\"handleVirtualStateChange($event)\">\n <ng-template igxVirtualItem let-item let-rowIndex=\"index\">\n <igx-combo-item [itemHeight]=\"itemHeight\"\n [value]=\"item\" [isHeader]=\"item?.isHeader\" [index]=\"rowIndex\" [role]=\"item?.isHeader? 'group' : 'option'\">\n @if (item?.isHeader) {\n <ng-container\n *ngTemplateOutlet=\"headerItemTemplate ? headerItemTemplate : headerItemBase;\n context: {$implicit: item, data: data, valueKey: valueKey, groupKey: groupKey, displayKey: displayKey}\">\n </ng-container>\n }\n <!-- if item is 'null' it should be displayed and !!(item?.isHeader) would resolve it to 'false' and not display it -->\n @if (!item?.isHeader) {\n <ng-container #listItem\n *ngTemplateOutlet=\"template; context: {$implicit: item, data: data, valueKey: valueKey, displayKey: displayKey};\">\n </ng-container>\n }\n </igx-combo-item>\n </ng-template>\n </igx-virtual-scroll>\n </div>\n\n @if (filteredData?.length === 0 || isAddButtonVisible()) {\n <div class=\"igx-combo__add\">\n @if (filteredData?.length === 0) {\n <div class=\"igx-combo__empty\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate ? emptyTemplate : empty\">\n </ng-container>\n </div>\n }\n @if (isAddButtonVisible()) {\n <igx-combo-add-item [itemHeight]=\"itemHeight\"\n [tabindex]=\"dropdown.collapsed ? -1 : customValueFlag ? 1 : -1\" class=\"igx-combo__add-item\" role=\"button\"\n [attr.aria-label]=\"resourceStrings.igx_combo_addCustomValues_placeholder\" [index]=\"itemWindow.totalCount\">\n <ng-container *ngTemplateOutlet=\"addItemTemplate ? addItemTemplate : addItemDefault\">\n </ng-container>\n </igx-combo-add-item>\n }\n </div>\n }\n <ng-container *ngTemplateOutlet=\"footerTemplate\">\n </ng-container>\n </div>\n</igx-combo-drop-down>\n<ng-template #complex let-display let-data=\"data\" let-key=\"displayKey\">\n {{display[key]}}\n</ng-template>\n<ng-template #primitive let-display>\n {{display}}\n</ng-template>\n<ng-template #empty>\n <span>{{resourceStrings.igx_combo_empty_message}}</span>\n</ng-template>\n<ng-template #addItemDefault let-control>\n <button type=\"button\" igxButton=\"flat\" igxRipple>{{ resourceStrings.igx_combo_addCustomValues_placeholder }}</button>\n</ng-template>\n<ng-template #headerItemBase let-item let-key=\"valueKey\" let-groupKey=\"groupKey\">\n {{ item[key] }}\n</ng-template>\n", styles: ["@layer ig.base{.igx-drop-down{--item-count: 6;--_search-input-inline-padding: max(var(--is-large, 1) * max(1rem, -1 * 1rem) * var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))), var(--is-medium, 1) * max(.5rem, -1 * .5rem) * var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))), var(--is-small, 1) * max(.25rem, -1 * .25rem) * var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));--_search-input-block-padding: max(var(--is-large, 1) * max(.5rem, -1 * .5rem) * var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))), var(--is-medium, 1) * max(.5rem, -1 * .5rem) * var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))), var(--is-small, 1) * max(.5rem, -1 * .5rem) * var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))))}.igx-drop-down .igx-combo{display:contents}.igx-combo{position:relative;display:block}.igx-combo__checkbox{margin-inline-end:.5rem}.igx-combo__search{--ig-input-group-border-border-radius: 0;padding-inline:var(--_search-input-inline-padding);padding-block:var(--_search-input-block-padding);z-index:26;border-bottom:.0625rem dashed var(--search-separator-border-color)}.igx-combo__search igx-input-group{--ig-size: 1}.igx-combo__case-icon{cursor:pointer;color:var(--ig-gray-600);background:#0000}.igx-combo__case-icon .igx-icon--inactive{--ig-icon-disabled-color: var(--ig-gray-600);opacity:1}.igx-combo__case-icon--active{color:var(--ig-primary-500)}.igx-combo__content{position:relative;overflow:hidden;max-height:calc(var(--size)*var(--item-count))}.igx-combo__content igx-virtual-scroll{max-height:inherit}.igx-combo__content:focus{outline:rgba(0,0,0,0)}.igx-combo__add{display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative;padding:1rem 1.5rem;gap:1rem;background:var(--empty-list-background)}.igx-combo__add-item{height:auto;background:var(--empty-list-background);justify-content:center;outline:none}.igx-combo__empty{display:flex;justify-content:center;align-items:center;width:100%;color:var(--empty-list-placeholder-color);padding:0 1.5rem;font-size:.8125rem}}@layer ig.material{@container style(--ig-theme: material){.igx-combo__checkbox{margin-inline-end:1rem}.igx-combo__checkbox div{padding:0}.igx-combo__search igx-input-group{--size: 2.375rem}.igx-combo__search .igx-input-group__bundle{padding-block-start:0;height:auto}.igx-combo__search .igx-input-group__bundle-main{padding-inline-start:0!important}.igx-combo__search .igx-input-group__bundle-start,.igx-combo__search .igx-input-group__bundle-end{min-width:0}}}@layer ig.bootstrap{@container style(--ig-theme: bootstrap){.igx-combo__search{--ig-input-group-border-border-radius: 0}.igx-combo__search igx-input-group{--size: 1.75rem}.igx-combo__search .igx-input-group--focused .igx-input-group__bundle-start,.igx-combo__search .igx-input-group--focused .igx-input-group__bundle-end{border-block-end-color:var(--focused-border-color);border-block-end-width:.125rem}.igx-combo__search .igx-input-group--focused .igx-input-group__bundle-main{border-block-end-width:.125rem}.igx-combo__search igx-input-group:not(.igx-input-group--prefixed) .igx-input-group__bundle-main,.igx-combo__search igx-input-group:not(.igx-input-group--suffixed) .igx-input-group__bundle-main{border-inline-width:0;border-block-start-width:0}.igx-combo__search igx-input-group.igx-input-group--suffixed .igx-input-group__bundle-end{border-inline-end-width:0;border-block-start-width:0}.igx-combo__search .igx-input-group__input{padding-inline:0}.igx-combo__search .igx-input-group--focused:not(.igx-input-group--file) .igx-input-group__bundle-main{box-shadow:none}}}@layer ig.fluent{@container style(--ig-theme: fluent){.igx-combo{--_search-input-inline-padding: max(var(--is-large, 1) * max(.5rem, -1 * .5rem) * var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))), var(--is-medium, 1) * max(.25rem, -1 * .25rem) * var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))), var(--is-small, 1) * max(.125rem, -1 * .125rem) * var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));--_search-input-block-padding: max(var(--is-large, 1) * max(.5rem, -1 * .5rem) * var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))), var(--is-medium, 1) * max(.25rem, -1 * .25rem) * var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))), var(--is-small, 1) * max(.125rem, -1 * .125rem) * var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))))}.igx-combo__search .igx-input-group__bundle{border-inline-width:0;border-block-start-width:0}.igx-combo__search .igx-input-group__input{padding-inline-start:0}.igx-combo__search .igx-input-group--focused .igx-input-group__bundle:after{border-inline-width:0;border-block-start-width:0}}}@layer ig.indigo{@container style(--ig-theme: indigo){.igx-combo{--_search-input-inline-padding: max(var(--is-large, 1) * max(.75rem, -1 * .75rem) * var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))), var(--is-medium, 1) * max(.75rem, -1 * .75rem) * var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))), var(--is-small, 1) * max(.5rem, -1 * .5rem) * var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));--_search-input-block-padding: max(var(--is-large, 1) * max(.75rem, -1 * .75rem) * var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))), var(--is-medium, 1) * max(.75rem, -1 * .75rem) * var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))), var(--is-small, 1) * max(.75rem, -1 * .75rem) * var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))))}.igx-combo__search igx-input-group{--ig-size: 2}.igx-combo__content{max-height:calc(var(--size)*var(--item-count) + 1rem)}}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: IgxInputGroupComponent, selector: "igx-input-group", inputs: ["resourceStrings", "suppressInputAutofocus", "type", "theme"] }, { kind: "directive", type: IgxInputDirective, selector: "[igxInput]", inputs: ["value", "disabled", "required"], exportAs: ["igxInput"] }, { kind: "directive", type: IgxSuffixDirective, selector: "[igxSuffix],[igxEnd],igx-suffix" }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["ariaHidden", "family", "name", "active"] }, { kind: "component", type: IgxComboDropDownComponent, selector: "igx-combo-drop-down", inputs: ["singleMode"] }, { kind: "directive", type: IgxDropDownItemNavigationDirective, selector: "[igxDropDownItemNavigation]", inputs: ["igxDropDownItemNavigation"] }, { kind: "component", type: IgxVirtualScrollComponent, selector: "igx-virtual-scroll", inputs: ["data", "orientation", "overScan", "estimatedItemSize", "dataWindow", "initialViewportSize", "itemTemplate"], outputs: ["stateChange", "dataRequest"] }, { kind: "directive", type: IgxVirtualItemDirective, selector: "ng-template[igxVirtualItem]" }, { kind: "component", type: IgxComboItemComponent, selector: "igx-combo-item", inputs: ["itemHeight", "ariaLabel", "singleMode"] }, { kind: "component", type: IgxComboAddItemComponent, selector: "igx-combo-add-item" }, { kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxLabel"], outputs: ["buttonSelected"] }, { kind: "directive", type: IgxRippleDirective, selector: "[igxRipple]", inputs: ["igxRippleTarget", "igxRipple", "igxRippleDuration", "igxRippleCentered", "igxRippleDisabled"] }, { kind: "directive", type: IgxReadOnlyInputDirective, selector: "[igxReadOnlyInput]", inputs: ["igxReadOnlyInput"], exportAs: ["igxReadOnlyInput"] }, { kind: "pipe", type: IgxComboFilteringPipe, name: "comboFiltering" }, { kind: "pipe", type: IgxComboGroupingPipe, name: "comboGrouping" }, { kind: "pipe", type: IgxComboDataWindowPipe, name: "comboDataWindow" }, { kind: "pipe", type: IgxComboRecordWindowPipe, name: "comboRecordWindow" }], changeDetection: i0.ChangeDetectionStrategy.Eager, encapsulation: i0.ViewEncapsulation.None }); }
2469
+ ], viewQueries: [{ propertyName: "dropdown", first: true, predicate: IgxComboDropDownComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<igx-input-group #inputGroup [type]=\"type === 'search' ? 'box' : type\" (click)=\"onClick($event)\">\n <ng-container ngProjectAs=\"[igxLabel]\">\n <ng-content select=\"[igxLabel]\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"igx-prefix\">\n <ng-content select=\"igx-prefix,[igxPrefix]\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"igx-hint, [igxHint]\">\n <ng-content select=\"igx-hint, [igxHint]\"></ng-content>\n </ng-container>\n <input igxInput #comboInput name=\"comboInput\" type=\"text\" [value]=\"displayValue\" readonly\n [attr.placeholder]=\"placeholder\" [disabled]=\"disabled\" [igxReadOnlyInput]=\"false\"\n role=\"combobox\" aria-haspopup=\"listbox\"\n [attr.aria-expanded]=\"!dropdown.collapsed\" [attr.aria-controls]=\"dropdown.listId\"\n [attr.aria-labelledby]=\"ariaLabelledBy || label?.id || placeholder\"\n [attr.aria-label]=\"getAriaLabel()\"\n (blur)=\"onBlur()\" />\n <ng-container ngProjectAs=\"igx-suffix\">\n <ng-content select=\"igx-suffix,[igxSuffix]\"></ng-content>\n </ng-container>\n @if (displayValue && !disableClear) {\n <igx-suffix [attr.aria-label]=\"resourceStrings.igx_combo_clearItems_placeholder\" class=\"igx-combo__clear-button igx-input-group__clear-button\"\n (click)=\"handleClearItems($event)\">\n @if (clearIconTemplate) {\n <ng-container *ngTemplateOutlet=\"clearIconTemplate\"></ng-container>\n }\n @if (!clearIconTemplate) {\n <igx-icon family=\"default\" name=\"input_clear\"></igx-icon>\n }\n </igx-suffix>\n }\n <igx-suffix class=\"igx-input-group__toggle-button igx-combo__toggle-button\">\n @if (toggleIconTemplate) {\n <ng-container *ngTemplateOutlet=\"toggleIconTemplate; context: {$implicit: collapsed}\"></ng-container>\n }\n @if (!toggleIconTemplate) {\n <igx-icon family=\"default\" [name]=\"toggleIcon\"></igx-icon>\n }\n </igx-suffix>\n</igx-input-group>\n<!-- Outside the drop-down: its content is detached while closed, and a @let there fails to serialize (NG0502). -->\n@let itemWindow = data!\n | comboRecordWindow:totalItemCount:virtualStartIndex\n | comboFiltering:filterValue:displayKey:filteringOptions:filterFunction:disableFiltering\n | comboGrouping:groupKey:valueKey:groupSortingDirection:compareCollator\n | comboDataWindow:totalItemCount:virtualStartIndex;\n<igx-combo-drop-down #igxComboDropDown class=\"igx-combo__drop-down\"\n [labelledBy]=\"ariaLabelledBy || label?.id || placeholder || ''\"\n [width]=\"itemsWidth || '100%'\" (opening)=\"handleOpening($event)\" (closing)=\"handleClosing($event)\"\n (opened)=\"handleOpened()\" (closed)=\"handleClosed()\">\n\n <!-- The igx-combo class is needed here in order to scope the css variables -->\n <div class=\"igx-combo\">\n @if (displaySearchInput) {\n <div class=\"igx-combo__search\">\n <igx-input-group type=\"line\">\n <input igxInput #searchInput name=\"searchInput\" autocomplete=\"off\" type=\"text\"\n [(ngModel)]=\"searchValue\" (ngModelChange)=\"handleInputChange($event)\" (keyup)=\"handleKeyUp($event)\"\n (keydown)=\"handleKeyDown($event)\" (focus)=\"dropdown.onBlur($event)\" [attr.placeholder]=\"getSearchPlaceholderText()\"\n aria-autocomplete=\"list\" role=\"searchbox\" aria-label=\"search\"/>\n @if (showSearchCaseIcon) {\n <igx-suffix\n class=\"igx-input-group__case-icon igx-combo__case-icon\"\n [ngClass]=\"{ 'igx-combo__case-icon--active': filteringOptions.caseSensitive }\"\n (click)=\"toggleCaseSensitive()\"\n >\n <igx-icon\n family=\"default\"\n name=\"case_sensitive\"\n [active]=\"filteringOptions.caseSensitive\">\n </igx-icon>\n </igx-suffix>\n }\n </igx-input-group>\n </div>\n }\n <ng-container *ngTemplateOutlet=\"headerTemplate\">\n </ng-container>\n <div #dropdownItemContainer class=\"igx-combo__content\" [style.overflow]=\"'hidden'\"\n [style.maxHeight.rem]=\"itemsMaxHeightInRem\" [igxDropDownItemNavigation]=\"dropdown\" (focus)=\"dropdown.onFocus()\"\n [tabindex]=\"dropdown.collapsed ? -1 : 0\" [attr.id]=\"dropdown.id\" aria-multiselectable=\"true\"\n [attr.aria-activedescendant]=\"activeDescendant\">\n <igx-virtual-scroll #virtualScroll role=\"presentation\"\n [dataWindow]=\"itemWindow\"\n [estimatedItemSize]=\"estimatedItemSize\"\n [overScan]=\"overScan\"\n [initialViewportSize]=\"viewportSize\"\n (stateChange)=\"handleVirtualStateChange($event)\">\n <ng-template igxVirtualItem let-item let-rowIndex=\"index\">\n <igx-combo-item [itemHeight]=\"itemHeight\"\n [value]=\"item\" [isHeader]=\"item?.isHeader\" [index]=\"rowIndex\" [role]=\"item?.isHeader? 'group' : 'option'\">\n @if (item?.isHeader) {\n <ng-container\n *ngTemplateOutlet=\"headerItemTemplate ? headerItemTemplate : headerItemBase;\n context: {$implicit: item, data: data, valueKey: valueKey, groupKey: groupKey, displayKey: displayKey}\">\n </ng-container>\n }\n <!-- if item is 'null' it should be displayed and !!(item?.isHeader) would resolve it to 'false' and not display it -->\n @if (!item?.isHeader) {\n <ng-container #listItem\n *ngTemplateOutlet=\"template; context: {$implicit: item, data: data, valueKey: valueKey, displayKey: displayKey};\">\n </ng-container>\n }\n </igx-combo-item>\n </ng-template>\n </igx-virtual-scroll>\n </div>\n\n @if (filteredData?.length === 0 || isAddButtonVisible()) {\n <div class=\"igx-combo__add\">\n @if (filteredData?.length === 0) {\n <div class=\"igx-combo__empty\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate ? emptyTemplate : empty\">\n </ng-container>\n </div>\n }\n @if (isAddButtonVisible()) {\n <igx-combo-add-item [itemHeight]=\"itemHeight\"\n [tabindex]=\"dropdown.collapsed ? -1 : customValueFlag ? 1 : -1\" class=\"igx-combo__add-item\" role=\"button\"\n [attr.aria-label]=\"resourceStrings.igx_combo_addCustomValues_placeholder\" [index]=\"itemWindow.totalCount\">\n <ng-container *ngTemplateOutlet=\"addItemTemplate ? addItemTemplate : addItemDefault\">\n </ng-container>\n </igx-combo-add-item>\n }\n </div>\n }\n <ng-container *ngTemplateOutlet=\"footerTemplate\">\n </ng-container>\n </div>\n</igx-combo-drop-down>\n<ng-template #complex let-display let-data=\"data\" let-key=\"displayKey\">\n {{display[key]}}\n</ng-template>\n<ng-template #primitive let-display>\n {{display}}\n</ng-template>\n<ng-template #empty>\n <span>{{resourceStrings.igx_combo_empty_message}}</span>\n</ng-template>\n<ng-template #addItemDefault let-control>\n <button type=\"button\" igxButton=\"flat\" igxRipple>{{ resourceStrings.igx_combo_addCustomValues_placeholder }}</button>\n</ng-template>\n<ng-template #headerItemBase let-item let-key=\"valueKey\" let-groupKey=\"groupKey\">\n {{ item[key] }}\n</ng-template>\n", styles: ["@layer ig.base{.igx-drop-down{--item-count: 6;--_search-input-inline-padding: max(var(--is-large, 1) * max(1rem, -1 * 1rem) * var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))), var(--is-medium, 1) * max(.5rem, -1 * .5rem) * var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))), var(--is-small, 1) * max(.25rem, -1 * .25rem) * var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));--_search-input-block-padding: max(var(--is-large, 1) * max(.5rem, -1 * .5rem) * var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))), var(--is-medium, 1) * max(.5rem, -1 * .5rem) * var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))), var(--is-small, 1) * max(.5rem, -1 * .5rem) * var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))))}.igx-drop-down .igx-combo{display:contents}.igx-combo{position:relative;display:block}.igx-combo__checkbox{margin-inline-end:.5rem}.igx-combo__search{--ig-input-group-border-border-radius: 0;padding-inline:var(--_search-input-inline-padding);padding-block:var(--_search-input-block-padding);z-index:26;border-bottom:.0625rem dashed var(--search-separator-border-color)}.igx-combo__search igx-input-group{--ig-size: 1}.igx-combo__case-icon{cursor:pointer;color:var(--ig-gray-600);background:#0000}.igx-combo__case-icon .igx-icon--inactive{--ig-icon-disabled-color: var(--ig-gray-600);opacity:1}.igx-combo__case-icon--active{color:var(--ig-primary-500)}.igx-combo__content{position:relative;overflow:hidden;max-height:calc(var(--size)*var(--item-count))}.igx-combo__content igx-virtual-scroll{max-height:inherit}.igx-combo__content:focus{outline:rgba(0,0,0,0)}.igx-combo__add{display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative;padding:1rem 1.5rem;gap:1rem;background:var(--empty-list-background)}.igx-combo__add-item{height:auto;background:var(--empty-list-background);justify-content:center;outline:none}.igx-combo__empty{display:flex;justify-content:center;align-items:center;width:100%;color:var(--empty-list-placeholder-color);padding:0 1.5rem;font-size:.8125rem}}@layer ig.material{@container style(--ig-theme: material){.igx-combo__checkbox{margin-inline-end:1rem}.igx-combo__checkbox div{padding:0}.igx-combo__search igx-input-group{--size: 2.375rem}.igx-combo__search .igx-input-group__bundle{padding-block-start:0;height:auto}.igx-combo__search .igx-input-group__bundle-main{padding-inline-start:0!important}.igx-combo__search .igx-input-group__bundle-start,.igx-combo__search .igx-input-group__bundle-end{min-width:0}}}@layer ig.bootstrap{@container style(--ig-theme: bootstrap){.igx-combo__search{--ig-input-group-border-border-radius: 0}.igx-combo__search igx-input-group{--size: 1.75rem}.igx-combo__search .igx-input-group--focused .igx-input-group__bundle-start,.igx-combo__search .igx-input-group--focused .igx-input-group__bundle-end{border-block-end-color:var(--focused-border-color);border-block-end-width:.125rem}.igx-combo__search .igx-input-group--focused .igx-input-group__bundle-main{border-block-end-width:.125rem}.igx-combo__search igx-input-group:not(.igx-input-group--prefixed) .igx-input-group__bundle-main,.igx-combo__search igx-input-group:not(.igx-input-group--suffixed) .igx-input-group__bundle-main{border-inline-width:0;border-block-start-width:0}.igx-combo__search igx-input-group.igx-input-group--suffixed .igx-input-group__bundle-end{border-inline-end-width:0;border-block-start-width:0}.igx-combo__search .igx-input-group__input{padding-inline:0}.igx-combo__search .igx-input-group--focused:not(.igx-input-group--file) .igx-input-group__bundle-main{box-shadow:none}}}@layer ig.fluent{@container style(--ig-theme: fluent){.igx-combo{--_search-input-inline-padding: max(var(--is-large, 1) * max(.5rem, -1 * .5rem) * var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))), var(--is-medium, 1) * max(.25rem, -1 * .25rem) * var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))), var(--is-small, 1) * max(.125rem, -1 * .125rem) * var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));--_search-input-block-padding: max(var(--is-large, 1) * max(.5rem, -1 * .5rem) * var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))), var(--is-medium, 1) * max(.25rem, -1 * .25rem) * var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))), var(--is-small, 1) * max(.125rem, -1 * .125rem) * var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))))}.igx-combo__search .igx-input-group__bundle{border-inline-width:0;border-block-start-width:0}.igx-combo__search .igx-input-group__input{padding-inline-start:0}.igx-combo__search .igx-input-group--focused .igx-input-group__bundle:after{border-inline-width:0;border-block-start-width:0}}}@layer ig.indigo{@container style(--ig-theme: indigo){.igx-combo{--_search-input-inline-padding: max(var(--is-large, 1) * max(.75rem, -1 * .75rem) * var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))), var(--is-medium, 1) * max(.75rem, -1 * .75rem) * var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))), var(--is-small, 1) * max(.5rem, -1 * .5rem) * var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));--_search-input-block-padding: max(var(--is-large, 1) * max(.75rem, -1 * .75rem) * var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))), var(--is-medium, 1) * max(.75rem, -1 * .75rem) * var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))), var(--is-small, 1) * max(.75rem, -1 * .75rem) * var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))))}.igx-combo__search igx-input-group{--ig-size: 2}.igx-combo__content{max-height:calc(var(--size)*var(--item-count) + 1rem)}}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: IgxInputGroupComponent, selector: "igx-input-group", inputs: ["resourceStrings", "suppressInputAutofocus", "type", "theme"] }, { kind: "directive", type: IgxInputDirective, selector: "[igxInput]", inputs: ["value", "disabled", "required"], exportAs: ["igxInput"] }, { kind: "directive", type: IgxSuffixDirective, selector: "[igxSuffix],[igxEnd],igx-suffix" }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["ariaHidden", "family", "name", "active"] }, { kind: "component", type: IgxComboDropDownComponent, selector: "igx-combo-drop-down", inputs: ["singleMode"] }, { kind: "directive", type: IgxDropDownItemNavigationDirective, selector: "[igxDropDownItemNavigation]", inputs: ["igxDropDownItemNavigation"] }, { kind: "component", type: IgxVirtualScrollComponent, selector: "igx-virtual-scroll", inputs: ["data", "orientation", "overScan", "estimatedItemSize", "dataWindow", "initialViewportSize", "itemTemplate", "keyFunction"], outputs: ["stateChange", "dataRequest"] }, { kind: "directive", type: IgxVirtualItemDirective, selector: "ng-template[igxVirtualItem]" }, { kind: "component", type: IgxComboItemComponent, selector: "igx-combo-item", inputs: ["itemHeight", "ariaLabel", "singleMode"] }, { kind: "component", type: IgxComboAddItemComponent, selector: "igx-combo-add-item" }, { kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxLabel"], outputs: ["buttonSelected"] }, { kind: "directive", type: IgxRippleDirective, selector: "[igxRipple]", inputs: ["igxRippleTarget", "igxRipple", "igxRippleDuration", "igxRippleCentered", "igxRippleDisabled"] }, { kind: "directive", type: IgxReadOnlyInputDirective, selector: "[igxReadOnlyInput]", inputs: ["igxReadOnlyInput"], exportAs: ["igxReadOnlyInput"] }, { kind: "pipe", type: IgxComboFilteringPipe, name: "comboFiltering" }, { kind: "pipe", type: IgxComboGroupingPipe, name: "comboGrouping" }, { kind: "pipe", type: IgxComboDataWindowPipe, name: "comboDataWindow" }, { kind: "pipe", type: IgxComboRecordWindowPipe, name: "comboRecordWindow" }], changeDetection: i0.ChangeDetectionStrategy.Eager, encapsulation: i0.ViewEncapsulation.None }); }
2464
2470
  }
2465
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxComboComponent, decorators: [{
2471
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxComboComponent, decorators: [{
2466
2472
  type: Component,
2467
2473
  args: [{ selector: 'igx-combo', encapsulation: ViewEncapsulation.None, providers: [
2468
2474
  IgxComboAPIService,
@@ -2489,7 +2495,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
2489
2495
  IgxComboGroupingPipe,
2490
2496
  IgxComboDataWindowPipe,
2491
2497
  IgxComboRecordWindowPipe
2492
- ], template: "<igx-input-group #inputGroup [type]=\"type === 'search' ? 'box' : type\" (click)=\"onClick($event)\">\n <ng-container ngProjectAs=\"[igxLabel]\">\n <ng-content select=\"[igxLabel]\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"igx-prefix\">\n <ng-content select=\"igx-prefix,[igxPrefix]\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"igx-hint, [igxHint]\">\n <ng-content select=\"igx-hint, [igxHint]\"></ng-content>\n </ng-container>\n <input igxInput #comboInput name=\"comboInput\" type=\"text\" [value]=\"displayValue\" readonly\n [attr.placeholder]=\"placeholder\" [disabled]=\"disabled\" [igxReadOnlyInput]=\"false\"\n role=\"combobox\" aria-haspopup=\"listbox\"\n [attr.aria-expanded]=\"!dropdown.collapsed\" [attr.aria-controls]=\"dropdown.listId\"\n [attr.aria-labelledby]=\"ariaLabelledBy || label?.id || placeholder\"\n [attr.aria-label]=\"getAriaLabel()\"\n (blur)=\"onBlur()\" />\n <ng-container ngProjectAs=\"igx-suffix\">\n <ng-content select=\"igx-suffix,[igxSuffix]\"></ng-content>\n </ng-container>\n @if (displayValue && !disableClear) {\n <igx-suffix [attr.aria-label]=\"resourceStrings.igx_combo_clearItems_placeholder\" class=\"igx-combo__clear-button igx-input-group__clear-button\"\n (click)=\"handleClearItems($event)\">\n @if (clearIconTemplate) {\n <ng-container *ngTemplateOutlet=\"clearIconTemplate\"></ng-container>\n }\n @if (!clearIconTemplate) {\n <igx-icon family=\"default\" name=\"input_clear\"></igx-icon>\n }\n </igx-suffix>\n }\n <igx-suffix class=\"igx-input-group__toggle-button igx-combo__toggle-button\">\n @if (toggleIconTemplate) {\n <ng-container *ngTemplateOutlet=\"toggleIconTemplate; context: {$implicit: collapsed}\"></ng-container>\n }\n @if (!toggleIconTemplate) {\n <igx-icon family=\"default\" [name]=\"toggleIcon\"></igx-icon>\n }\n </igx-suffix>\n</igx-input-group>\n<!-- Outside the drop-down: its content is detached while closed, and a @let there fails to serialize (NG0502). -->\n@let itemWindow = data!\n | comboRecordWindow:totalItemCount:virtualStartIndex\n | comboFiltering:filterValue:displayKey:filteringOptions:filterFunction:disableFiltering\n | comboGrouping:groupKey:valueKey:groupSortingDirection:compareCollator\n | comboDataWindow:totalItemCount:virtualStartIndex;\n<igx-combo-drop-down #igxComboDropDown class=\"igx-combo__drop-down\"\n [labelledBy]=\"ariaLabelledBy || label?.id || placeholder || ''\"\n [width]=\"itemsWidth || '100%'\" (opening)=\"handleOpening($event)\" (closing)=\"handleClosing($event)\"\n (opened)=\"handleOpened()\" (closed)=\"handleClosed()\">\n\n <!-- The igx-combo class is needed here in order to scope the css variables -->\n <div class=\"igx-combo\">\n @if (displaySearchInput) {\n <div class=\"igx-combo__search\">\n <igx-input-group type=\"line\">\n <input igxInput #searchInput name=\"searchInput\" autocomplete=\"off\" type=\"text\"\n [(ngModel)]=\"searchValue\" (ngModelChange)=\"handleInputChange($event)\" (keyup)=\"handleKeyUp($event)\"\n (keydown)=\"handleKeyDown($event)\" (focus)=\"dropdown.onBlur($event)\" [attr.placeholder]=\"getSearchPlaceholderText()\"\n aria-autocomplete=\"list\" role=\"searchbox\" aria-label=\"search\"/>\n @if (showSearchCaseIcon) {\n <igx-suffix\n class=\"igx-input-group__case-icon igx-combo__case-icon\"\n [ngClass]=\"{ 'igx-combo__case-icon--active': filteringOptions.caseSensitive }\"\n (click)=\"toggleCaseSensitive()\"\n >\n <igx-icon\n family=\"default\"\n name=\"case_sensitive\"\n [active]=\"filteringOptions.caseSensitive\">\n </igx-icon>\n </igx-suffix>\n }\n </igx-input-group>\n </div>\n }\n <ng-container *ngTemplateOutlet=\"headerTemplate\">\n </ng-container>\n <div #dropdownItemContainer class=\"igx-combo__content\" [style.overflow]=\"'hidden'\"\n [style.maxHeight.rem]=\"itemsMaxHeightInRem\" [igxDropDownItemNavigation]=\"dropdown\" (focus)=\"dropdown.onFocus()\"\n [tabindex]=\"dropdown.collapsed ? -1 : 0\" [attr.id]=\"dropdown.id\" aria-multiselectable=\"true\"\n [attr.aria-activedescendant]=\"activeDescendant\">\n <igx-virtual-scroll #virtualScroll role=\"presentation\"\n [dataWindow]=\"itemWindow\"\n [estimatedItemSize]=\"estimatedItemSize\"\n [initialViewportSize]=\"viewportSize\"\n (stateChange)=\"handleVirtualStateChange($event)\">\n <ng-template igxVirtualItem let-item let-rowIndex=\"index\">\n <igx-combo-item [itemHeight]=\"itemHeight\"\n [value]=\"item\" [isHeader]=\"item?.isHeader\" [index]=\"rowIndex\" [role]=\"item?.isHeader? 'group' : 'option'\">\n @if (item?.isHeader) {\n <ng-container\n *ngTemplateOutlet=\"headerItemTemplate ? headerItemTemplate : headerItemBase;\n context: {$implicit: item, data: data, valueKey: valueKey, groupKey: groupKey, displayKey: displayKey}\">\n </ng-container>\n }\n <!-- if item is 'null' it should be displayed and !!(item?.isHeader) would resolve it to 'false' and not display it -->\n @if (!item?.isHeader) {\n <ng-container #listItem\n *ngTemplateOutlet=\"template; context: {$implicit: item, data: data, valueKey: valueKey, displayKey: displayKey};\">\n </ng-container>\n }\n </igx-combo-item>\n </ng-template>\n </igx-virtual-scroll>\n </div>\n\n @if (filteredData?.length === 0 || isAddButtonVisible()) {\n <div class=\"igx-combo__add\">\n @if (filteredData?.length === 0) {\n <div class=\"igx-combo__empty\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate ? emptyTemplate : empty\">\n </ng-container>\n </div>\n }\n @if (isAddButtonVisible()) {\n <igx-combo-add-item [itemHeight]=\"itemHeight\"\n [tabindex]=\"dropdown.collapsed ? -1 : customValueFlag ? 1 : -1\" class=\"igx-combo__add-item\" role=\"button\"\n [attr.aria-label]=\"resourceStrings.igx_combo_addCustomValues_placeholder\" [index]=\"itemWindow.totalCount\">\n <ng-container *ngTemplateOutlet=\"addItemTemplate ? addItemTemplate : addItemDefault\">\n </ng-container>\n </igx-combo-add-item>\n }\n </div>\n }\n <ng-container *ngTemplateOutlet=\"footerTemplate\">\n </ng-container>\n </div>\n</igx-combo-drop-down>\n<ng-template #complex let-display let-data=\"data\" let-key=\"displayKey\">\n {{display[key]}}\n</ng-template>\n<ng-template #primitive let-display>\n {{display}}\n</ng-template>\n<ng-template #empty>\n <span>{{resourceStrings.igx_combo_empty_message}}</span>\n</ng-template>\n<ng-template #addItemDefault let-control>\n <button type=\"button\" igxButton=\"flat\" igxRipple>{{ resourceStrings.igx_combo_addCustomValues_placeholder }}</button>\n</ng-template>\n<ng-template #headerItemBase let-item let-key=\"valueKey\" let-groupKey=\"groupKey\">\n {{ item[key] }}\n</ng-template>\n", styles: ["@layer ig.base{.igx-drop-down{--item-count: 6;--_search-input-inline-padding: max(var(--is-large, 1) * max(1rem, -1 * 1rem) * var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))), var(--is-medium, 1) * max(.5rem, -1 * .5rem) * var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))), var(--is-small, 1) * max(.25rem, -1 * .25rem) * var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));--_search-input-block-padding: max(var(--is-large, 1) * max(.5rem, -1 * .5rem) * var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))), var(--is-medium, 1) * max(.5rem, -1 * .5rem) * var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))), var(--is-small, 1) * max(.5rem, -1 * .5rem) * var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))))}.igx-drop-down .igx-combo{display:contents}.igx-combo{position:relative;display:block}.igx-combo__checkbox{margin-inline-end:.5rem}.igx-combo__search{--ig-input-group-border-border-radius: 0;padding-inline:var(--_search-input-inline-padding);padding-block:var(--_search-input-block-padding);z-index:26;border-bottom:.0625rem dashed var(--search-separator-border-color)}.igx-combo__search igx-input-group{--ig-size: 1}.igx-combo__case-icon{cursor:pointer;color:var(--ig-gray-600);background:#0000}.igx-combo__case-icon .igx-icon--inactive{--ig-icon-disabled-color: var(--ig-gray-600);opacity:1}.igx-combo__case-icon--active{color:var(--ig-primary-500)}.igx-combo__content{position:relative;overflow:hidden;max-height:calc(var(--size)*var(--item-count))}.igx-combo__content igx-virtual-scroll{max-height:inherit}.igx-combo__content:focus{outline:rgba(0,0,0,0)}.igx-combo__add{display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative;padding:1rem 1.5rem;gap:1rem;background:var(--empty-list-background)}.igx-combo__add-item{height:auto;background:var(--empty-list-background);justify-content:center;outline:none}.igx-combo__empty{display:flex;justify-content:center;align-items:center;width:100%;color:var(--empty-list-placeholder-color);padding:0 1.5rem;font-size:.8125rem}}@layer ig.material{@container style(--ig-theme: material){.igx-combo__checkbox{margin-inline-end:1rem}.igx-combo__checkbox div{padding:0}.igx-combo__search igx-input-group{--size: 2.375rem}.igx-combo__search .igx-input-group__bundle{padding-block-start:0;height:auto}.igx-combo__search .igx-input-group__bundle-main{padding-inline-start:0!important}.igx-combo__search .igx-input-group__bundle-start,.igx-combo__search .igx-input-group__bundle-end{min-width:0}}}@layer ig.bootstrap{@container style(--ig-theme: bootstrap){.igx-combo__search{--ig-input-group-border-border-radius: 0}.igx-combo__search igx-input-group{--size: 1.75rem}.igx-combo__search .igx-input-group--focused .igx-input-group__bundle-start,.igx-combo__search .igx-input-group--focused .igx-input-group__bundle-end{border-block-end-color:var(--focused-border-color);border-block-end-width:.125rem}.igx-combo__search .igx-input-group--focused .igx-input-group__bundle-main{border-block-end-width:.125rem}.igx-combo__search igx-input-group:not(.igx-input-group--prefixed) .igx-input-group__bundle-main,.igx-combo__search igx-input-group:not(.igx-input-group--suffixed) .igx-input-group__bundle-main{border-inline-width:0;border-block-start-width:0}.igx-combo__search igx-input-group.igx-input-group--suffixed .igx-input-group__bundle-end{border-inline-end-width:0;border-block-start-width:0}.igx-combo__search .igx-input-group__input{padding-inline:0}.igx-combo__search .igx-input-group--focused:not(.igx-input-group--file) .igx-input-group__bundle-main{box-shadow:none}}}@layer ig.fluent{@container style(--ig-theme: fluent){.igx-combo{--_search-input-inline-padding: max(var(--is-large, 1) * max(.5rem, -1 * .5rem) * var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))), var(--is-medium, 1) * max(.25rem, -1 * .25rem) * var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))), var(--is-small, 1) * max(.125rem, -1 * .125rem) * var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));--_search-input-block-padding: max(var(--is-large, 1) * max(.5rem, -1 * .5rem) * var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))), var(--is-medium, 1) * max(.25rem, -1 * .25rem) * var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))), var(--is-small, 1) * max(.125rem, -1 * .125rem) * var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))))}.igx-combo__search .igx-input-group__bundle{border-inline-width:0;border-block-start-width:0}.igx-combo__search .igx-input-group__input{padding-inline-start:0}.igx-combo__search .igx-input-group--focused .igx-input-group__bundle:after{border-inline-width:0;border-block-start-width:0}}}@layer ig.indigo{@container style(--ig-theme: indigo){.igx-combo{--_search-input-inline-padding: max(var(--is-large, 1) * max(.75rem, -1 * .75rem) * var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))), var(--is-medium, 1) * max(.75rem, -1 * .75rem) * var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))), var(--is-small, 1) * max(.5rem, -1 * .5rem) * var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));--_search-input-block-padding: max(var(--is-large, 1) * max(.75rem, -1 * .75rem) * var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))), var(--is-medium, 1) * max(.75rem, -1 * .75rem) * var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))), var(--is-small, 1) * max(.75rem, -1 * .75rem) * var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))))}.igx-combo__search igx-input-group{--ig-size: 2}.igx-combo__content{max-height:calc(var(--size)*var(--item-count) + 1rem)}}}\n"] }]
2498
+ ], template: "<igx-input-group #inputGroup [type]=\"type === 'search' ? 'box' : type\" (click)=\"onClick($event)\">\n <ng-container ngProjectAs=\"[igxLabel]\">\n <ng-content select=\"[igxLabel]\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"igx-prefix\">\n <ng-content select=\"igx-prefix,[igxPrefix]\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"igx-hint, [igxHint]\">\n <ng-content select=\"igx-hint, [igxHint]\"></ng-content>\n </ng-container>\n <input igxInput #comboInput name=\"comboInput\" type=\"text\" [value]=\"displayValue\" readonly\n [attr.placeholder]=\"placeholder\" [disabled]=\"disabled\" [igxReadOnlyInput]=\"false\"\n role=\"combobox\" aria-haspopup=\"listbox\"\n [attr.aria-expanded]=\"!dropdown.collapsed\" [attr.aria-controls]=\"dropdown.listId\"\n [attr.aria-labelledby]=\"ariaLabelledBy || label?.id || placeholder\"\n [attr.aria-label]=\"getAriaLabel()\"\n (blur)=\"onBlur()\" />\n <ng-container ngProjectAs=\"igx-suffix\">\n <ng-content select=\"igx-suffix,[igxSuffix]\"></ng-content>\n </ng-container>\n @if (displayValue && !disableClear) {\n <igx-suffix [attr.aria-label]=\"resourceStrings.igx_combo_clearItems_placeholder\" class=\"igx-combo__clear-button igx-input-group__clear-button\"\n (click)=\"handleClearItems($event)\">\n @if (clearIconTemplate) {\n <ng-container *ngTemplateOutlet=\"clearIconTemplate\"></ng-container>\n }\n @if (!clearIconTemplate) {\n <igx-icon family=\"default\" name=\"input_clear\"></igx-icon>\n }\n </igx-suffix>\n }\n <igx-suffix class=\"igx-input-group__toggle-button igx-combo__toggle-button\">\n @if (toggleIconTemplate) {\n <ng-container *ngTemplateOutlet=\"toggleIconTemplate; context: {$implicit: collapsed}\"></ng-container>\n }\n @if (!toggleIconTemplate) {\n <igx-icon family=\"default\" [name]=\"toggleIcon\"></igx-icon>\n }\n </igx-suffix>\n</igx-input-group>\n<!-- Outside the drop-down: its content is detached while closed, and a @let there fails to serialize (NG0502). -->\n@let itemWindow = data!\n | comboRecordWindow:totalItemCount:virtualStartIndex\n | comboFiltering:filterValue:displayKey:filteringOptions:filterFunction:disableFiltering\n | comboGrouping:groupKey:valueKey:groupSortingDirection:compareCollator\n | comboDataWindow:totalItemCount:virtualStartIndex;\n<igx-combo-drop-down #igxComboDropDown class=\"igx-combo__drop-down\"\n [labelledBy]=\"ariaLabelledBy || label?.id || placeholder || ''\"\n [width]=\"itemsWidth || '100%'\" (opening)=\"handleOpening($event)\" (closing)=\"handleClosing($event)\"\n (opened)=\"handleOpened()\" (closed)=\"handleClosed()\">\n\n <!-- The igx-combo class is needed here in order to scope the css variables -->\n <div class=\"igx-combo\">\n @if (displaySearchInput) {\n <div class=\"igx-combo__search\">\n <igx-input-group type=\"line\">\n <input igxInput #searchInput name=\"searchInput\" autocomplete=\"off\" type=\"text\"\n [(ngModel)]=\"searchValue\" (ngModelChange)=\"handleInputChange($event)\" (keyup)=\"handleKeyUp($event)\"\n (keydown)=\"handleKeyDown($event)\" (focus)=\"dropdown.onBlur($event)\" [attr.placeholder]=\"getSearchPlaceholderText()\"\n aria-autocomplete=\"list\" role=\"searchbox\" aria-label=\"search\"/>\n @if (showSearchCaseIcon) {\n <igx-suffix\n class=\"igx-input-group__case-icon igx-combo__case-icon\"\n [ngClass]=\"{ 'igx-combo__case-icon--active': filteringOptions.caseSensitive }\"\n (click)=\"toggleCaseSensitive()\"\n >\n <igx-icon\n family=\"default\"\n name=\"case_sensitive\"\n [active]=\"filteringOptions.caseSensitive\">\n </igx-icon>\n </igx-suffix>\n }\n </igx-input-group>\n </div>\n }\n <ng-container *ngTemplateOutlet=\"headerTemplate\">\n </ng-container>\n <div #dropdownItemContainer class=\"igx-combo__content\" [style.overflow]=\"'hidden'\"\n [style.maxHeight.rem]=\"itemsMaxHeightInRem\" [igxDropDownItemNavigation]=\"dropdown\" (focus)=\"dropdown.onFocus()\"\n [tabindex]=\"dropdown.collapsed ? -1 : 0\" [attr.id]=\"dropdown.id\" aria-multiselectable=\"true\"\n [attr.aria-activedescendant]=\"activeDescendant\">\n <igx-virtual-scroll #virtualScroll role=\"presentation\"\n [dataWindow]=\"itemWindow\"\n [estimatedItemSize]=\"estimatedItemSize\"\n [overScan]=\"overScan\"\n [initialViewportSize]=\"viewportSize\"\n (stateChange)=\"handleVirtualStateChange($event)\">\n <ng-template igxVirtualItem let-item let-rowIndex=\"index\">\n <igx-combo-item [itemHeight]=\"itemHeight\"\n [value]=\"item\" [isHeader]=\"item?.isHeader\" [index]=\"rowIndex\" [role]=\"item?.isHeader? 'group' : 'option'\">\n @if (item?.isHeader) {\n <ng-container\n *ngTemplateOutlet=\"headerItemTemplate ? headerItemTemplate : headerItemBase;\n context: {$implicit: item, data: data, valueKey: valueKey, groupKey: groupKey, displayKey: displayKey}\">\n </ng-container>\n }\n <!-- if item is 'null' it should be displayed and !!(item?.isHeader) would resolve it to 'false' and not display it -->\n @if (!item?.isHeader) {\n <ng-container #listItem\n *ngTemplateOutlet=\"template; context: {$implicit: item, data: data, valueKey: valueKey, displayKey: displayKey};\">\n </ng-container>\n }\n </igx-combo-item>\n </ng-template>\n </igx-virtual-scroll>\n </div>\n\n @if (filteredData?.length === 0 || isAddButtonVisible()) {\n <div class=\"igx-combo__add\">\n @if (filteredData?.length === 0) {\n <div class=\"igx-combo__empty\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate ? emptyTemplate : empty\">\n </ng-container>\n </div>\n }\n @if (isAddButtonVisible()) {\n <igx-combo-add-item [itemHeight]=\"itemHeight\"\n [tabindex]=\"dropdown.collapsed ? -1 : customValueFlag ? 1 : -1\" class=\"igx-combo__add-item\" role=\"button\"\n [attr.aria-label]=\"resourceStrings.igx_combo_addCustomValues_placeholder\" [index]=\"itemWindow.totalCount\">\n <ng-container *ngTemplateOutlet=\"addItemTemplate ? addItemTemplate : addItemDefault\">\n </ng-container>\n </igx-combo-add-item>\n }\n </div>\n }\n <ng-container *ngTemplateOutlet=\"footerTemplate\">\n </ng-container>\n </div>\n</igx-combo-drop-down>\n<ng-template #complex let-display let-data=\"data\" let-key=\"displayKey\">\n {{display[key]}}\n</ng-template>\n<ng-template #primitive let-display>\n {{display}}\n</ng-template>\n<ng-template #empty>\n <span>{{resourceStrings.igx_combo_empty_message}}</span>\n</ng-template>\n<ng-template #addItemDefault let-control>\n <button type=\"button\" igxButton=\"flat\" igxRipple>{{ resourceStrings.igx_combo_addCustomValues_placeholder }}</button>\n</ng-template>\n<ng-template #headerItemBase let-item let-key=\"valueKey\" let-groupKey=\"groupKey\">\n {{ item[key] }}\n</ng-template>\n", styles: ["@layer ig.base{.igx-drop-down{--item-count: 6;--_search-input-inline-padding: max(var(--is-large, 1) * max(1rem, -1 * 1rem) * var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))), var(--is-medium, 1) * max(.5rem, -1 * .5rem) * var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))), var(--is-small, 1) * max(.25rem, -1 * .25rem) * var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));--_search-input-block-padding: max(var(--is-large, 1) * max(.5rem, -1 * .5rem) * var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))), var(--is-medium, 1) * max(.5rem, -1 * .5rem) * var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))), var(--is-small, 1) * max(.5rem, -1 * .5rem) * var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))))}.igx-drop-down .igx-combo{display:contents}.igx-combo{position:relative;display:block}.igx-combo__checkbox{margin-inline-end:.5rem}.igx-combo__search{--ig-input-group-border-border-radius: 0;padding-inline:var(--_search-input-inline-padding);padding-block:var(--_search-input-block-padding);z-index:26;border-bottom:.0625rem dashed var(--search-separator-border-color)}.igx-combo__search igx-input-group{--ig-size: 1}.igx-combo__case-icon{cursor:pointer;color:var(--ig-gray-600);background:#0000}.igx-combo__case-icon .igx-icon--inactive{--ig-icon-disabled-color: var(--ig-gray-600);opacity:1}.igx-combo__case-icon--active{color:var(--ig-primary-500)}.igx-combo__content{position:relative;overflow:hidden;max-height:calc(var(--size)*var(--item-count))}.igx-combo__content igx-virtual-scroll{max-height:inherit}.igx-combo__content:focus{outline:rgba(0,0,0,0)}.igx-combo__add{display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative;padding:1rem 1.5rem;gap:1rem;background:var(--empty-list-background)}.igx-combo__add-item{height:auto;background:var(--empty-list-background);justify-content:center;outline:none}.igx-combo__empty{display:flex;justify-content:center;align-items:center;width:100%;color:var(--empty-list-placeholder-color);padding:0 1.5rem;font-size:.8125rem}}@layer ig.material{@container style(--ig-theme: material){.igx-combo__checkbox{margin-inline-end:1rem}.igx-combo__checkbox div{padding:0}.igx-combo__search igx-input-group{--size: 2.375rem}.igx-combo__search .igx-input-group__bundle{padding-block-start:0;height:auto}.igx-combo__search .igx-input-group__bundle-main{padding-inline-start:0!important}.igx-combo__search .igx-input-group__bundle-start,.igx-combo__search .igx-input-group__bundle-end{min-width:0}}}@layer ig.bootstrap{@container style(--ig-theme: bootstrap){.igx-combo__search{--ig-input-group-border-border-radius: 0}.igx-combo__search igx-input-group{--size: 1.75rem}.igx-combo__search .igx-input-group--focused .igx-input-group__bundle-start,.igx-combo__search .igx-input-group--focused .igx-input-group__bundle-end{border-block-end-color:var(--focused-border-color);border-block-end-width:.125rem}.igx-combo__search .igx-input-group--focused .igx-input-group__bundle-main{border-block-end-width:.125rem}.igx-combo__search igx-input-group:not(.igx-input-group--prefixed) .igx-input-group__bundle-main,.igx-combo__search igx-input-group:not(.igx-input-group--suffixed) .igx-input-group__bundle-main{border-inline-width:0;border-block-start-width:0}.igx-combo__search igx-input-group.igx-input-group--suffixed .igx-input-group__bundle-end{border-inline-end-width:0;border-block-start-width:0}.igx-combo__search .igx-input-group__input{padding-inline:0}.igx-combo__search .igx-input-group--focused:not(.igx-input-group--file) .igx-input-group__bundle-main{box-shadow:none}}}@layer ig.fluent{@container style(--ig-theme: fluent){.igx-combo{--_search-input-inline-padding: max(var(--is-large, 1) * max(.5rem, -1 * .5rem) * var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))), var(--is-medium, 1) * max(.25rem, -1 * .25rem) * var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))), var(--is-small, 1) * max(.125rem, -1 * .125rem) * var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));--_search-input-block-padding: max(var(--is-large, 1) * max(.5rem, -1 * .5rem) * var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))), var(--is-medium, 1) * max(.25rem, -1 * .25rem) * var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))), var(--is-small, 1) * max(.125rem, -1 * .125rem) * var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))))}.igx-combo__search .igx-input-group__bundle{border-inline-width:0;border-block-start-width:0}.igx-combo__search .igx-input-group__input{padding-inline-start:0}.igx-combo__search .igx-input-group--focused .igx-input-group__bundle:after{border-inline-width:0;border-block-start-width:0}}}@layer ig.indigo{@container style(--ig-theme: indigo){.igx-combo{--_search-input-inline-padding: max(var(--is-large, 1) * max(.75rem, -1 * .75rem) * var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))), var(--is-medium, 1) * max(.75rem, -1 * .75rem) * var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))), var(--is-small, 1) * max(.5rem, -1 * .5rem) * var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));--_search-input-block-padding: max(var(--is-large, 1) * max(.75rem, -1 * .75rem) * var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))), var(--is-medium, 1) * max(.75rem, -1 * .75rem) * var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))), var(--is-small, 1) * max(.75rem, -1 * .75rem) * var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))))}.igx-combo__search igx-input-group{--ig-size: 2}.igx-combo__content{max-height:calc(var(--size)*var(--item-count) + 1rem)}}}\n"] }]
2493
2499
  }], ctorParameters: () => [], propDecorators: { autoFocusSearch: [{
2494
2500
  type: Input,
2495
2501
  args: [{ transform: booleanAttribute }]
@@ -2535,11 +2541,11 @@ const IGX_COMBO_DIRECTIVES = [
2535
2541
  * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components
2536
2542
  */
2537
2543
  class IgxComboModule {
2538
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxComboModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2539
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.7", ngImport: i0, type: IgxComboModule, imports: [IgxComboComponent, IgxComboAddItemDirective, IgxComboClearIconDirective, IgxComboEmptyDirective, IgxComboFooterDirective, IgxComboHeaderDirective, IgxComboHeaderItemDirective, IgxComboItemDirective, IgxComboToggleIconDirective, i3.IgxLabelDirective, i3.IgxPrefixDirective, i3.IgxSuffixDirective, i3.IgxHintDirective], exports: [IgxComboComponent, IgxComboAddItemDirective, IgxComboClearIconDirective, IgxComboEmptyDirective, IgxComboFooterDirective, IgxComboHeaderDirective, IgxComboHeaderItemDirective, IgxComboItemDirective, IgxComboToggleIconDirective, i3.IgxLabelDirective, i3.IgxPrefixDirective, i3.IgxSuffixDirective, i3.IgxHintDirective] }); }
2540
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxComboModule, imports: [IgxComboComponent] }); }
2544
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxComboModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2545
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.2.0", ngImport: i0, type: IgxComboModule, imports: [IgxComboComponent, IgxComboAddItemDirective, IgxComboClearIconDirective, IgxComboEmptyDirective, IgxComboFooterDirective, IgxComboHeaderDirective, IgxComboHeaderItemDirective, IgxComboItemDirective, IgxComboToggleIconDirective, i3.IgxLabelDirective, i3.IgxPrefixDirective, i3.IgxSuffixDirective, i3.IgxHintDirective], exports: [IgxComboComponent, IgxComboAddItemDirective, IgxComboClearIconDirective, IgxComboEmptyDirective, IgxComboFooterDirective, IgxComboHeaderDirective, IgxComboHeaderItemDirective, IgxComboItemDirective, IgxComboToggleIconDirective, i3.IgxLabelDirective, i3.IgxPrefixDirective, i3.IgxSuffixDirective, i3.IgxHintDirective] }); }
2546
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxComboModule, imports: [IgxComboComponent] }); }
2541
2547
  }
2542
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxComboModule, decorators: [{
2548
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: IgxComboModule, decorators: [{
2543
2549
  type: NgModule,
2544
2550
  args: [{
2545
2551
  imports: [