igniteui-angular 22.1.4 → 22.2.0-rc.1

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 (145) hide show
  1. package/README.md +2 -2
  2. package/combo/README.md +19 -0
  3. package/drop-down/README.md +40 -4
  4. package/fesm2022/igniteui-angular-accordion.mjs +7 -7
  5. package/fesm2022/igniteui-angular-action-strip.mjs +10 -10
  6. package/fesm2022/igniteui-angular-avatar.mjs +7 -7
  7. package/fesm2022/igniteui-angular-badge.mjs +7 -7
  8. package/fesm2022/igniteui-angular-banner.mjs +10 -10
  9. package/fesm2022/igniteui-angular-bottom-nav.mjs +22 -22
  10. package/fesm2022/igniteui-angular-button-group.mjs +12 -13
  11. package/fesm2022/igniteui-angular-button-group.mjs.map +1 -1
  12. package/fesm2022/igniteui-angular-calendar.mjs +61 -61
  13. package/fesm2022/igniteui-angular-card.mjs +31 -31
  14. package/fesm2022/igniteui-angular-carousel.mjs +22 -22
  15. package/fesm2022/igniteui-angular-chat-extras.mjs +6 -6
  16. package/fesm2022/igniteui-angular-chat.mjs +12 -12
  17. package/fesm2022/igniteui-angular-checkbox.mjs +7 -7
  18. package/fesm2022/igniteui-angular-chips.mjs +10 -10
  19. package/fesm2022/igniteui-angular-combo.mjs +268 -124
  20. package/fesm2022/igniteui-angular-combo.mjs.map +1 -1
  21. package/fesm2022/igniteui-angular-core.mjs +207 -59
  22. package/fesm2022/igniteui-angular-core.mjs.map +1 -1
  23. package/fesm2022/igniteui-angular-date-picker.mjs +80 -106
  24. package/fesm2022/igniteui-angular-date-picker.mjs.map +1 -1
  25. package/fesm2022/igniteui-angular-dialog.mjs +13 -13
  26. package/fesm2022/igniteui-angular-directives.mjs +321 -457
  27. package/fesm2022/igniteui-angular-directives.mjs.map +1 -1
  28. package/fesm2022/igniteui-angular-drop-down.mjs +331 -104
  29. package/fesm2022/igniteui-angular-drop-down.mjs.map +1 -1
  30. package/fesm2022/igniteui-angular-expansion-panel.mjs +28 -28
  31. package/fesm2022/igniteui-angular-grids-core.mjs +552 -516
  32. package/fesm2022/igniteui-angular-grids-core.mjs.map +1 -1
  33. package/fesm2022/igniteui-angular-grids-grid.mjs +79 -80
  34. package/fesm2022/igniteui-angular-grids-grid.mjs.map +1 -1
  35. package/fesm2022/igniteui-angular-grids-hierarchical-grid.mjs +59 -46
  36. package/fesm2022/igniteui-angular-grids-hierarchical-grid.mjs.map +1 -1
  37. package/fesm2022/igniteui-angular-grids-lite.mjs +12 -12
  38. package/fesm2022/igniteui-angular-grids-pivot-grid.mjs +113 -86
  39. package/fesm2022/igniteui-angular-grids-pivot-grid.mjs.map +1 -1
  40. package/fesm2022/igniteui-angular-grids-tree-grid.mjs +57 -57
  41. package/fesm2022/igniteui-angular-grids-tree-grid.mjs.map +1 -1
  42. package/fesm2022/igniteui-angular-icon.mjs +10 -10
  43. package/fesm2022/igniteui-angular-input-group.mjs +73 -83
  44. package/fesm2022/igniteui-angular-input-group.mjs.map +1 -1
  45. package/fesm2022/igniteui-angular-list.mjs +40 -40
  46. package/fesm2022/igniteui-angular-navbar.mjs +13 -13
  47. package/fesm2022/igniteui-angular-navigation-drawer.mjs +16 -16
  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 +23 -23
  51. package/fesm2022/igniteui-angular-query-builder.mjs.map +1 -1
  52. package/fesm2022/igniteui-angular-radio.mjs +59 -35
  53. package/fesm2022/igniteui-angular-radio.mjs.map +1 -1
  54. package/fesm2022/igniteui-angular-select.mjs +36 -48
  55. package/fesm2022/igniteui-angular-select.mjs.map +1 -1
  56. package/fesm2022/igniteui-angular-simple-combo.mjs +44 -33
  57. package/fesm2022/igniteui-angular-simple-combo.mjs.map +1 -1
  58. package/fesm2022/igniteui-angular-slider.mjs +28 -28
  59. package/fesm2022/igniteui-angular-snackbar.mjs +7 -7
  60. package/fesm2022/igniteui-angular-splitter.mjs +13 -13
  61. package/fesm2022/igniteui-angular-stepper.mjs +34 -34
  62. package/fesm2022/igniteui-angular-switch.mjs +7 -7
  63. package/fesm2022/igniteui-angular-tabs.mjs +34 -34
  64. package/fesm2022/igniteui-angular-time-picker.mjs +32 -51
  65. package/fesm2022/igniteui-angular-time-picker.mjs.map +1 -1
  66. package/fesm2022/igniteui-angular-toast.mjs +7 -7
  67. package/fesm2022/igniteui-angular-tree.mjs +28 -28
  68. package/fesm2022/igniteui-angular-virtual-scroll.mjs +1257 -0
  69. package/fesm2022/igniteui-angular-virtual-scroll.mjs.map +1 -0
  70. package/fesm2022/igniteui-angular.mjs +1 -0
  71. package/fesm2022/igniteui-angular.mjs.map +1 -1
  72. package/input-group/README.md +2 -0
  73. package/lib/core/styles/components/scrollbar/scrollbar-component.scss +0 -2
  74. package/lib/core/styles/components/scrollbar/scrollbar-theme.scss +23 -51
  75. package/lib/grids/core/src/column-actions/themes/_derived.scss +3 -3
  76. package/lib/grids/core/src/filtering/excel-style/themes/_derived.scss +3 -3
  77. package/lib/grids/themes/_derived.scss +3 -3
  78. package/lib/query-builder/src/query-builder/themes/_derived.scss +3 -3
  79. package/migrations/common/UpdateChanges.d.ts +36 -0
  80. package/migrations/common/UpdateChanges.js +175 -31
  81. package/migrations/common/UpdateChanges.spec.js +66 -0
  82. package/migrations/migration-collection.json +10 -0
  83. package/migrations/update-22_2_0/changes/theme-changes.json +77 -0
  84. package/migrations/update-22_2_0/index.d.ts +3 -0
  85. package/migrations/update-22_2_0/index.js +18 -0
  86. package/migrations/update-22_2_0/index.spec.d.ts +1 -0
  87. package/migrations/update-22_2_0/index.spec.js +161 -0
  88. package/migrations/update-22_2_0_grid-summary-borders/changes/theme-changes.json +17 -0
  89. package/migrations/update-22_2_0_grid-summary-borders/index.d.ts +3 -0
  90. package/migrations/update-22_2_0_grid-summary-borders/index.js +64 -0
  91. package/migrations/update-22_2_0_grid-summary-borders/index.spec.d.ts +1 -0
  92. package/migrations/update-22_2_0_grid-summary-borders/index.spec.js +100 -0
  93. package/package.json +6 -2
  94. package/schematics/tsconfig.tsbuildinfo +1 -1
  95. package/simple-combo/README.md +3 -0
  96. package/skills/igniteui-angular-components/references/form-controls.md +58 -0
  97. package/styles/igniteui-angular-dark.css +1 -1
  98. package/styles/igniteui-angular.css +1 -1
  99. package/styles/igniteui-bootstrap-dark.css +1 -1
  100. package/styles/igniteui-bootstrap-light.css +1 -1
  101. package/styles/igniteui-dark-green.css +1 -1
  102. package/styles/igniteui-fluent-dark-excel.css +1 -1
  103. package/styles/igniteui-fluent-dark-word.css +1 -1
  104. package/styles/igniteui-fluent-dark.css +1 -1
  105. package/styles/igniteui-fluent-light-excel.css +1 -1
  106. package/styles/igniteui-fluent-light-word.css +1 -1
  107. package/styles/igniteui-fluent-light.css +1 -1
  108. package/styles/igniteui-indigo-dark.css +1 -1
  109. package/styles/igniteui-indigo-light.css +1 -1
  110. package/styles/maps/igniteui-angular-dark.css.map +1 -1
  111. package/styles/maps/igniteui-angular.css.map +1 -1
  112. package/styles/maps/igniteui-bootstrap-dark.css.map +1 -1
  113. package/styles/maps/igniteui-bootstrap-light.css.map +1 -1
  114. package/styles/maps/igniteui-dark-green.css.map +1 -1
  115. package/styles/maps/igniteui-fluent-dark-excel.css.map +1 -1
  116. package/styles/maps/igniteui-fluent-dark-word.css.map +1 -1
  117. package/styles/maps/igniteui-fluent-dark.css.map +1 -1
  118. package/styles/maps/igniteui-fluent-light-excel.css.map +1 -1
  119. package/styles/maps/igniteui-fluent-light-word.css.map +1 -1
  120. package/styles/maps/igniteui-fluent-light.css.map +1 -1
  121. package/styles/maps/igniteui-indigo-dark.css.map +1 -1
  122. package/styles/maps/igniteui-indigo-light.css.map +1 -1
  123. package/types/igniteui-angular-calendar.d.ts +1 -1
  124. package/types/igniteui-angular-combo.d.ts +55 -12
  125. package/types/igniteui-angular-core.d.ts +73 -11
  126. package/types/igniteui-angular-date-picker.d.ts +3 -4
  127. package/types/igniteui-angular-directives.d.ts +50 -164
  128. package/types/igniteui-angular-drop-down.d.ts +76 -4
  129. package/types/igniteui-angular-grids-core.d.ts +63 -28
  130. package/types/igniteui-angular-grids-grid.d.ts +2 -7
  131. package/types/igniteui-angular-grids-hierarchical-grid.d.ts +5 -4
  132. package/types/igniteui-angular-grids-pivot-grid.d.ts +11 -5
  133. package/types/igniteui-angular-grids-tree-grid.d.ts +1 -1
  134. package/types/igniteui-angular-icon.d.ts +1 -1
  135. package/types/igniteui-angular-input-group.d.ts +18 -5
  136. package/types/igniteui-angular-query-builder.d.ts +1 -1
  137. package/types/igniteui-angular-radio.d.ts +16 -1
  138. package/types/igniteui-angular-select.d.ts +1 -2
  139. package/types/igniteui-angular-simple-combo.d.ts +7 -0
  140. package/types/igniteui-angular-stepper.d.ts +1 -1
  141. package/types/igniteui-angular-time-picker.d.ts +1 -3
  142. package/types/igniteui-angular-tree.d.ts +3 -3
  143. package/types/igniteui-angular-virtual-scroll.d.ts +408 -0
  144. package/types/igniteui-angular.d.ts +1 -0
  145. package/virtual-scroll/README.md +332 -0
@@ -1,11 +1,11 @@
1
1
  import * as i2 from 'igniteui-angular/core';
2
- import { IgxTouchManager, I18N_FORMATTER, DateTimeUtil, DatePart, GridColumnDataType, PickerHeaderOrientation, PlatformUtil, PickerInteractionMode, getCurrentResourceStrings, TimePickerResourceStringsEN, AutoPositionStrategy, AbsoluteScrollStrategy, isDate, isEqual, IgxPickerActionsDirective, IgxPickerToggleComponent, IgxPickerClearComponent } from 'igniteui-angular/core';
2
+ import { IgxTouchManager, I18N_FORMATTER, DateTimeUtil, DatePart, GridColumnDataType, PickerHeaderOrientation, PlatformUtil, PickerInteractionMode, getCurrentResourceStrings, TimePickerResourceStringsEN, AutoPositionStrategy, AbsoluteScrollStrategy, isDate, NgControlAdapter, isEqual, IgxPickerActionsDirective, IgxPickerToggleComponent, IgxPickerClearComponent } from 'igniteui-angular/core';
3
3
  import { DatePipe, NgClass, NgTemplateOutlet } from '@angular/common';
4
4
  import * as i0 from '@angular/core';
5
5
  import { InjectionToken, inject, ElementRef, HostListener, HostBinding, Input, Directive, Pipe, Injector, ChangeDetectorRef, EventEmitter, booleanAttribute, ViewChild, ContentChild, Output, ChangeDetectionStrategy, ViewEncapsulation, Component, NgModule } from '@angular/core';
6
6
  import { NgControl, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
7
7
  import * as i3 from 'igniteui-angular/input-group';
8
- import { IgxInputState, IgxInputGroupComponent, IgxInputDirective, IgxPrefixDirective, IgxSuffixDirective, IgxReadOnlyInputDirective, IgxLabelDirective, IgxHintDirective } from 'igniteui-angular/input-group';
8
+ import { toInputState, IgxInputState, IgxInputGroupComponent, IgxInputDirective, IgxPrefixDirective, IgxSuffixDirective, IgxReadOnlyInputDirective, IgxLabelDirective, IgxHintDirective } from 'igniteui-angular/input-group';
9
9
  import { noop, fromEvent } from 'rxjs';
10
10
  import { takeUntil } from 'rxjs/operators';
11
11
  import { IgxDateTimeEditorDirective, IgxTextSelectionDirective, IgxButtonDirective, IgxToggleDirective, IgxDividerComponent } from 'igniteui-angular/directives';
@@ -180,10 +180,10 @@ class IgxItemListDirective {
180
180
  }
181
181
  }
182
182
  }
183
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxItemListDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
184
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.1", type: IgxItemListDirective, isStandalone: true, selector: "[igxItemList]", inputs: { type: ["igxItemList", "type"] }, host: { listeners: { "focus": "onFocus()", "blur": "onBlur()", "keydown.arrowdown": "onKeydownArrowDown($event)", "keydown.arrowup": "onKeydownArrowUp($event)", "keydown.arrowright": "onKeydownArrowRight($event)", "keydown.arrowleft": "onKeydownArrowLeft($event)", "keydown.enter": "onKeydownEnter($event)", "keydown.escape": "onKeydownEscape($event)", "mouseover": "onHover()", "wheel": "onScroll($event)" }, properties: { "attr.tabindex": "this.tabindex", "class.igx-time-picker__column": "this.defaultCSS", "class.igx-time-picker__hourList": "this.hourCSS", "class.igx-time-picker__minuteList": "this.minuteCSS", "class.igx-time-picker__secondsList": "this.secondsCSS", "class.igx-time-picker__ampmList": "this.ampmCSS" } }, ngImport: i0 }); }
183
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxItemListDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
184
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: IgxItemListDirective, isStandalone: true, selector: "[igxItemList]", inputs: { type: ["igxItemList", "type"] }, host: { listeners: { "focus": "onFocus()", "blur": "onBlur()", "keydown.arrowdown": "onKeydownArrowDown($event)", "keydown.arrowup": "onKeydownArrowUp($event)", "keydown.arrowright": "onKeydownArrowRight($event)", "keydown.arrowleft": "onKeydownArrowLeft($event)", "keydown.enter": "onKeydownEnter($event)", "keydown.escape": "onKeydownEscape($event)", "mouseover": "onHover()", "wheel": "onScroll($event)" }, properties: { "attr.tabindex": "this.tabindex", "class.igx-time-picker__column": "this.defaultCSS", "class.igx-time-picker__hourList": "this.hourCSS", "class.igx-time-picker__minuteList": "this.minuteCSS", "class.igx-time-picker__secondsList": "this.secondsCSS", "class.igx-time-picker__ampmList": "this.ampmCSS" } }, ngImport: i0 }); }
185
185
  }
186
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxItemListDirective, decorators: [{
186
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxItemListDirective, decorators: [{
187
187
  type: Directive,
188
188
  args: [{
189
189
  selector: '[igxItemList]',
@@ -370,10 +370,10 @@ class IgxTimeItemDirective {
370
370
  }
371
371
  return hour;
372
372
  }
373
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxTimeItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
374
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.1", type: IgxTimeItemDirective, isStandalone: true, selector: "[igxTimeItem]", inputs: { value: ["igxTimeItem", "value"] }, host: { listeners: { "click": "onClick(value)" }, properties: { "class.igx-time-picker__item": "this.defaultCSS", "class.igx-time-picker__item--selected": "this.selectedCSS", "class.igx-time-picker__item--active": "this.activeCSS" } }, exportAs: ["timeItem"], ngImport: i0 }); }
373
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxTimeItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
374
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: IgxTimeItemDirective, isStandalone: true, selector: "[igxTimeItem]", inputs: { value: ["igxTimeItem", "value"] }, host: { listeners: { "click": "onClick(value)" }, properties: { "class.igx-time-picker__item": "this.defaultCSS", "class.igx-time-picker__item--selected": "this.selectedCSS", "class.igx-time-picker__item--active": "this.activeCSS" } }, exportAs: ["timeItem"], ngImport: i0 }); }
375
375
  }
376
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxTimeItemDirective, decorators: [{
376
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxTimeItemDirective, decorators: [{
377
377
  type: Directive,
378
378
  args: [{
379
379
  selector: '[igxTimeItem]',
@@ -407,10 +407,10 @@ class TimeFormatPipe {
407
407
  const datePipe = new DatePipe(this.timePicker.locale);
408
408
  return datePipe.transform(value, format);
409
409
  }
410
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TimeFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
411
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.1.1", ngImport: i0, type: TimeFormatPipe, isStandalone: true, name: "timeFormatPipe" }); }
410
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: TimeFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
411
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.1.7", ngImport: i0, type: TimeFormatPipe, isStandalone: true, name: "timeFormatPipe" }); }
412
412
  }
413
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TimeFormatPipe, decorators: [{
413
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: TimeFormatPipe, decorators: [{
414
414
  type: Pipe,
415
415
  args: [{
416
416
  name: 'timeFormatPipe',
@@ -584,10 +584,10 @@ class TimeItemPipe {
584
584
  }
585
585
  return hour;
586
586
  }
587
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TimeItemPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
588
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.1.1", ngImport: i0, type: TimeItemPipe, isStandalone: true, name: "timeItemPipe" }); }
587
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: TimeItemPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
588
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.1.7", ngImport: i0, type: TimeItemPipe, isStandalone: true, name: "timeItemPipe" }); }
589
589
  }
590
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TimeItemPipe, decorators: [{
590
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: TimeItemPipe, decorators: [{
591
591
  type: Pipe,
592
592
  args: [{
593
593
  name: 'timeItemPipe',
@@ -760,12 +760,7 @@ class IgxTimePickerComponent extends PickerBaseDirective {
760
760
  return this.toggleRef?.element;
761
761
  }
762
762
  get required() {
763
- if (this._ngControl && this._ngControl.control && this._ngControl.control.validator) {
764
- // Run the validation with empty object to check if required is enabled.
765
- const error = this._ngControl.control.validator({});
766
- return !!(error && error.required);
767
- }
768
- return false;
763
+ return this._control?.required ?? false;
769
764
  }
770
765
  get dialogOverlaySettings() {
771
766
  return Object.assign({}, this._defaultDialogOverlaySettings, this.overlaySettings);
@@ -969,7 +964,7 @@ class IgxTimePickerComponent extends PickerBaseDirective {
969
964
  this._okButtonLabel = null;
970
965
  this._cancelButtonLabel = null;
971
966
  this._itemsDelta = { hours: 1, minutes: 1, seconds: 1, fractionalSeconds: 1 };
972
- this._ngControl = null;
967
+ this._control = null;
973
968
  this._onChangeCallback = noop;
974
969
  this._onTouchedCallback = noop;
975
970
  this._onValidatorChange = noop;
@@ -1075,7 +1070,7 @@ class IgxTimePickerComponent extends PickerBaseDirective {
1075
1070
  //#endregion
1076
1071
  /** @hidden */
1077
1072
  ngOnInit() {
1078
- this._ngControl = this._injector.get(NgControl, null);
1073
+ this._control = NgControlAdapter.from(this._injector.get(NgControl, null), this._injector);
1079
1074
  this.minDropdownValue = this.setMinMaxDropdownValue('min', this.minDateValue);
1080
1075
  this.maxDropdownValue = this.setMinMaxDropdownValue('max', this.maxDateValue);
1081
1076
  this.setSelectedValue(this._dateValue);
@@ -1093,8 +1088,8 @@ class IgxTimePickerComponent extends PickerBaseDirective {
1093
1088
  this.updateValidityOnBlur();
1094
1089
  }
1095
1090
  });
1096
- if (this._ngControl) {
1097
- this._statusChanges$ = this._ngControl.statusChanges.subscribe(this.onStatusChanged.bind(this));
1091
+ if (this._control) {
1092
+ this._statusChanges$ = this._control.statusChanges.subscribe(this.onStatusChanged.bind(this));
1098
1093
  this._inputGroup.isRequired = this.required;
1099
1094
  this.cdr.detectChanges();
1100
1095
  }
@@ -1386,13 +1381,9 @@ class IgxTimePickerComponent extends PickerBaseDirective {
1386
1381
  }
1387
1382
  }
1388
1383
  onStatusChanged() {
1389
- if (this._ngControl && !this._ngControl.disabled && this.isTouchedOrDirty) {
1390
- if (this.hasValidators && this._inputGroup.isFocused) {
1391
- this.inputDirective.valid = this._ngControl.valid ? IgxInputState.VALID : IgxInputState.INVALID;
1392
- }
1393
- else {
1394
- this.inputDirective.valid = this._ngControl.valid ? IgxInputState.INITIAL : IgxInputState.INVALID;
1395
- }
1384
+ if (this._control && !this._control.disabled && this._control.touchedOrDirty) {
1385
+ const showSuccess = this._control.hasValidators && this._inputGroup.isFocused;
1386
+ this.inputDirective.valid = toInputState(this._control.status, showSuccess ? 'allowed' : 'suppressed');
1396
1387
  }
1397
1388
  else {
1398
1389
  // B.P. 18 May 2021: IgxDatePicker does not reset its state upon resetForm #9526
@@ -1406,12 +1397,6 @@ class IgxTimePickerComponent extends PickerBaseDirective {
1406
1397
  this._defaultResourceStrings = getCurrentResourceStrings(TimePickerResourceStringsEN, false, this._locale);
1407
1398
  this._customResourceStrings = this._resourceStrings ? Object.assign({}, this._defaultResourceStrings, this._resourceStrings) : null;
1408
1399
  }
1409
- get isTouchedOrDirty() {
1410
- return (this._ngControl.control.touched || this._ngControl.control.dirty);
1411
- }
1412
- get hasValidators() {
1413
- return (!!this._ngControl.control.validator || !!this._ngControl.control.asyncValidator);
1414
- }
1415
1400
  setMinMaxDropdownValue(type, time) {
1416
1401
  let delta;
1417
1402
  const sign = type === 'min' ? 1 : -1;
@@ -1486,13 +1471,9 @@ class IgxTimePickerComponent extends PickerBaseDirective {
1486
1471
  }
1487
1472
  updateValidityOnBlur() {
1488
1473
  this._onTouchedCallback();
1489
- if (this._ngControl) {
1490
- if (!this._ngControl.valid) {
1491
- this.inputDirective.valid = IgxInputState.INVALID;
1492
- }
1493
- else {
1494
- this.inputDirective.valid = IgxInputState.INITIAL;
1495
- }
1474
+ if (this._control) {
1475
+ // Blur never shows success, only the error.
1476
+ this.inputDirective.valid = toInputState(this._control.status, 'suppressed');
1496
1477
  }
1497
1478
  }
1498
1479
  valueInRange(value, minValue, maxValue) {
@@ -1586,8 +1567,8 @@ class IgxTimePickerComponent extends PickerBaseDirective {
1586
1567
  });
1587
1568
  }
1588
1569
  }
1589
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxTimePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1590
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: IgxTimePickerComponent, isStandalone: true, selector: "igx-time-picker", inputs: { id: "id", displayFormat: "displayFormat", inputFormat: "inputFormat", mode: "mode", minValue: "minValue", maxValue: "maxValue", spinLoop: ["spinLoop", "spinLoop", booleanAttribute], formatter: "formatter", readOnly: ["readOnly", "readOnly", booleanAttribute], value: "value", resourceStrings: "resourceStrings", okButtonLabel: "okButtonLabel", cancelButtonLabel: "cancelButtonLabel", itemsDelta: "itemsDelta" }, outputs: { selected: "selected", valueChange: "valueChange", validationFailed: "validationFailed" }, host: { listeners: { "keydown": "onKeyDown($event)" }, properties: { "attr.id": "this.id" }, classAttribute: "igx-time-picker" }, providers: [
1570
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxTimePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1571
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: IgxTimePickerComponent, isStandalone: true, selector: "igx-time-picker", inputs: { id: "id", displayFormat: "displayFormat", inputFormat: "inputFormat", mode: "mode", minValue: "minValue", maxValue: "maxValue", spinLoop: ["spinLoop", "spinLoop", booleanAttribute], formatter: "formatter", readOnly: ["readOnly", "readOnly", booleanAttribute], value: "value", resourceStrings: "resourceStrings", okButtonLabel: "okButtonLabel", cancelButtonLabel: "cancelButtonLabel", itemsDelta: "itemsDelta" }, outputs: { selected: "selected", valueChange: "valueChange", validationFailed: "validationFailed" }, host: { listeners: { "keydown": "onKeyDown($event)" }, properties: { "attr.id": "this.id" }, classAttribute: "igx-time-picker" }, providers: [
1591
1572
  {
1592
1573
  provide: NG_VALUE_ACCESSOR,
1593
1574
  useExisting: IgxTimePickerComponent,
@@ -1604,7 +1585,7 @@ class IgxTimePickerComponent extends PickerBaseDirective {
1604
1585
  }
1605
1586
  ], queries: [{ propertyName: "label", first: true, predicate: IgxLabelDirective, descendants: true }, { propertyName: "timePickerActionsDirective", first: true, predicate: IgxPickerActionsDirective, descendants: true }], viewQueries: [{ propertyName: "hourList", first: true, predicate: ["hourList"], descendants: true }, { propertyName: "minuteList", first: true, predicate: ["minuteList"], descendants: true }, { propertyName: "secondsList", first: true, predicate: ["secondsList"], descendants: true }, { propertyName: "ampmList", first: true, predicate: ["ampmList"], descendants: true }, { propertyName: "inputDirective", first: true, predicate: IgxInputDirective, descendants: true, read: IgxInputDirective }, { propertyName: "_inputGroup", first: true, predicate: ["inputGroup"], descendants: true, read: IgxInputGroupComponent, static: true }, { propertyName: "dateTimeEditor", first: true, predicate: IgxDateTimeEditorDirective, descendants: true, static: true }, { propertyName: "toggleRef", first: true, predicate: IgxToggleDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<igx-input-group #inputGroup [type]=\"type\">\n <input [igxReadOnlyInput]=\"readOnly\" [displayValuePipe]=\"formatter ? displayValue : undefined\" igxInput [igxDateTimeEditor]=\"inputFormat\"\n type=\"text\" [readonly]=\"!isDropdown || readOnly\" [minValue]=\"minValue\" [maxValue]=\"maxValue\"\n [locale]=\"locale\" [spinDelta]=\"itemsDelta\" [spinLoop]=\"spinLoop\" [placeholder]=\"placeholder\"\n [disabled]=\"disabled\" [displayFormat]=\"displayFormat\" defaultFormatType=\"time\"\n [igxTextSelection]=\"isDropdown && !readOnly\" role=\"combobox\" aria-haspopup=\"dialog\"\n [attr.aria-expanded]=\"!toggleDirective.collapsed\" [attr.aria-labelledby]=\"label?.id\"\n (click)=\"!isDropdown && toggle()\"/>\n\n @if (!toggleComponents.length) {\n <igx-prefix (click)=\"toggle()\">\n <igx-icon\n [title]=\"\n value\n ? resourceStrings.igx_time_picker_change_time\n : resourceStrings.igx_time_picker_choose_time\n \"\n family=\"default\"\n name=\"clock\"\n ></igx-icon>\n </igx-prefix>\n }\n\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\n @if (showClearButton) {\n <igx-suffix (click)=\"clear(); $event.stopPropagation()\">\n <igx-icon family=\"default\" name=\"input_clear\"></igx-icon>\n </igx-suffix>\n }\n\n <ng-container ngProjectAs=\"igx-suffix\">\n <ng-content select=\"igx-suffix,[igxSuffix]\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"igx-hint\">\n <ng-content select=\"igx-hint,[igxHint]\"></ng-content>\n </ng-container>\n</igx-input-group>\n\n<ng-template #defaultTimePickerActions>\n @if (cancelButtonLabel || okButtonLabel) {\n <div class=\"igx-time-picker__buttons\">\n @if (cancelButtonLabel) {\n <button type=\"button\" igxButton=\"flat\" (click)=\"cancelButtonClick()\">\n {{cancelButtonLabel}}\n </button>\n }\n @if (okButtonLabel) {\n <button type=\"button\" igxButton=\"flat\" (click)=\"okButtonClick()\">\n {{okButtonLabel}}\n </button>\n }\n </div>\n }\n</ng-template>\n\n<div #toggleDirective=\"toggle\" igxToggle role=\"dialog\" class=\"igx-time-picker\"\n [ngClass]=\"{\n 'igx-time-picker--dropdown': isDropdown,\n 'igx-time-picker--dialog': !isDropdown,\n 'igx-time-picker--vertical': isVertical && !isDropdown\n }\">\n <div class=\"igx-time-picker__main\">\n @if (!this.isDropdown && !this.hideHeader) {\n <div class=\"igx-time-picker__header\">\n <h2 class=\"igx-time-picker__header-hour\" data-no-typography>\n <span>{{ selectedDate | timeFormatPipe }}</span>\n </h2>\n </div>\n }\n <div class=\"igx-time-picker__body\">\n @if (showHoursList) {\n <div #hourList [igxItemList]=\"'hourList'\">\n @for (hour of hourItems | timeItemPipe:'hour':selectedDate:minDropdownValue:maxDropdownValue; track hour+$index) {\n <span [igxTimeItem]=\"hour\" #timeItem=\"timeItem\" aria-label=\"hour\"\n [attr.role]=\"timeItem.isSelectedTime ? 'spinbutton' : null\"\n [attr.aria-valuenow]=\"timeItem.isSelectedTime ? timeItem.hourValue : null\"\n [attr.aria-valuemin]=\"timeItem.isSelectedTime ? timeItem.minValue : null\"\n [attr.aria-valuemax]=\"timeItem.isSelectedTime ? timeItem.maxValue : null\"\n >{{ hour }}</span>\n }\n </div>\n }\n @if (showMinutesList) {\n <div #minuteList [igxItemList]=\"'minuteList'\">\n @for (minute of minuteItems | timeItemPipe:'minutes':selectedDate:minDropdownValue:maxDropdownValue; track minute+$index) {\n <span [igxTimeItem]=\"minute\" #timeItem=\"timeItem\" aria-label=\"minutes\"\n [attr.role]=\"timeItem.isSelectedTime ? 'spinbutton' : null\"\n [attr.aria-valuenow]=\"timeItem.isSelectedTime ? minute : null\"\n [attr.aria-valuemin]=\"timeItem.isSelectedTime ? timeItem.minValue : null\"\n [attr.aria-valuemax]=\"timeItem.isSelectedTime ? timeItem.maxValue : null\"\n >{{ minute }}</span>\n }\n </div>\n }\n @if (showSecondsList) {\n <div #secondsList [igxItemList]=\"'secondsList'\">\n @for (seconds of secondsItems | timeItemPipe:'seconds':selectedDate:minDropdownValue:maxDropdownValue; track seconds+$index) {\n <span [igxTimeItem]=\"seconds\" #timeItem=\"timeItem\" aria-label=\"seconds\"\n [attr.role]=\"timeItem.isSelectedTime ? 'spinbutton' : null\"\n [attr.aria-valuenow]=\"timeItem.isSelectedTime ? seconds : null\"\n [attr.aria-valuemin]=\"timeItem.isSelectedTime ? timeItem.minValue : null\"\n [attr.aria-valuemax]=\"timeItem.isSelectedTime ? timeItem.maxValue : null\"\n >{{ seconds }}</span>\n }\n </div>\n }\n @if (showAmPmList) {\n <div #ampmList [igxItemList]=\"'ampmList'\">\n @for (ampm of ampmItems | timeItemPipe:'ampm':selectedDate:minDropdownValue:maxDropdownValue; track ampm+$index) {\n <span [igxTimeItem]=\"ampm\" #timeItem=\"timeItem\" aria-label=\"ampm\"\n [attr.role]=\"timeItem.isSelectedTime ? 'spinbutton' : null\"\n [attr.aria-valuenow]=\"timeItem.isSelectedTime ? ampm : null\"\n [attr.aria-valuemin]=\"timeItem.isSelectedTime ? timeItem.minValue : null\"\n [attr.aria-valuemax]=\"timeItem.isSelectedTime ? timeItem.maxValue : null\"\n >{{ ampm }}</span>\n }\n </div>\n }\n </div>\n </div>\n <igx-divider></igx-divider>\n <ng-container\n *ngTemplateOutlet=\"timePickerActionsDirective ? timePickerActionsDirective.template : defaultTimePickerActions\">\n </ng-container>\n</div>\n", styles: ["@layer ig.base{.igx-time-picker{--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));display:flex;flex-flow:column nowrap;min-width:-moz-fit-content;min-width:fit-content}.igx-time-picker igx-divider{--ig-divider-color: var(--divider-color)}.igx-time-picker__header{display:flex;flex-direction:column;background:var(--header-background);padding:1rem}.igx-time-picker__header-hour{font-family:var(--ig-h4-font-family, var(--ig-font-family));font-size:var(--ig-h4-font-size);font-weight:var(--ig-h4-font-weight);font-style:var(--ig-h4-font-style);line-height:var(--ig-h4-line-height);letter-spacing:var(--ig-h4-letter-spacing);text-transform:var(--ig-h4-text-transform);margin-top:var(--ig-h4-margin-top);margin-bottom:var(--ig-h4-margin-bottom);display:flex;color:var(--header-hour-text-color);margin:0}[dir=rtl] .igx-time-picker__header-hour{flex-direction:row-reverse;justify-content:flex-end}.igx-time-picker__main{flex:1 1 auto}.igx-time-picker__column{width:4rem;padding:0;cursor:pointer;display:flex;flex-flow:column nowrap;justify-content:space-between;align-items:center;color:var(--text-color);overflow:hidden;gap:.25rem}.igx-time-picker__column:focus,.igx-time-picker__column:active{outline:none}.igx-time-picker__item{width:2.875rem;padding:max(var(--is-large, 1)*max(.3125rem,-1 * .3125rem)*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(.3125rem,-1 * .3125rem)*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(.3125rem,-1 * .3125rem)*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing)))) max(var(--is-large, 1)*max(.625rem,-1 * .625rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(.625rem,-1 * .625rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(.625rem,-1 * .625rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))));border-radius:var(--active-item-border-radius);height:var(--time-item-size);display:flex;justify-content:center;align-items:center;font-size:max(var(--is-large, 1)*max(var(--ig-body-1-font-size),-1 * var(--ig-body-1-font-size)),var(--is-medium, 1)*max(var(--ig-body-2-font-size),-1 * var(--ig-body-2-font-size)),var(--is-small, 1)*max(var(--ig-body-2-font-size),-1 * var(--ig-body-2-font-size)));font-weight:max(var(--is-large, 1)*max(var(--ig-body-1-font-weight),-1 * var(--ig-body-1-font-weight)),var(--is-medium, 1)*max(var(--ig-body-2-font-weight),-1 * var(--ig-body-2-font-weight)),var(--is-small, 1)*max(var(--ig-body-2-font-weight),-1 * var(--ig-body-2-font-weight)));font-style:max(var(--is-large, 1)*max(var(--ig-body-1-font-style),-1 * var(--ig-body-1-font-style)),var(--is-medium, 1)*max(var(--ig-body-2-font-style),-1 * var(--ig-body-2-font-style)),var(--is-small, 1)*max(var(--ig-body-2-font-style),-1 * var(--ig-body-2-font-style)));line-height:max(var(--is-large, 1)*max(var(--ig-body-1-line-height),-1 * var(--ig-body-1-line-height)),var(--is-medium, 1)*max(var(--ig-body-2-line-height),-1 * var(--ig-body-2-line-height)),var(--is-small, 1)*max(var(--ig-body-2-line-height),-1 * var(--ig-body-2-line-height)));letter-spacing:max(var(--is-large, 1)*max(var(--ig-body-1-letter-spacing),-1 * var(--ig-body-1-letter-spacing)),var(--is-medium, 1)*max(var(--ig-body-2-letter-spacing),-1 * var(--ig-body-2-letter-spacing)),var(--is-small, 1)*max(var(--ig-body-2-letter-spacing),-1 * var(--ig-body-2-letter-spacing)));text-transform:max(var(--is-large, 1)*max(var(--ig-body-1-text-transform),-1 * var(--ig-body-1-text-transform)),var(--is-medium, 1)*max(var(--ig-body-2-text-transform),-1 * var(--ig-body-2-text-transform)),var(--is-small, 1)*max(var(--ig-body-2-text-transform),-1 * var(--ig-body-2-text-transform)))}.igx-time-picker__item:focus,.igx-time-picker__item:active{outline:none}.igx-time-picker__item:hover{color:var(--hover-text-color)}.igx-time-picker__item--selected{font-family:var(--ig-h5-font-family, var(--ig-font-family));font-size:var(--ig-h5-font-size);font-weight:var(--ig-h5-font-weight);font-style:var(--ig-h5-font-style);line-height:var(--ig-h5-line-height);letter-spacing:var(--ig-h5-letter-spacing);text-transform:var(--ig-h5-text-transform);margin-top:var(--ig-h5-margin-top);margin-bottom:var(--ig-h5-margin-bottom);margin:0;color:var(--selected-text-color)}.igx-time-picker__item--active{color:var(--active-item-foreground);background:var(--active-item-background)}.igx-time-picker__item--active:hover,.igx-time-picker__item--active:focus{color:var(--active-item-foreground)}.igx-time-picker__item--disabled{color:var(--disabled-text-color);background:var(--disabled-item-background);pointer-events:none}.igx-time-picker__hourList{text-align:end}[dir=rtl] .igx-time-picker__hourList{order:2}.igx-time-picker__minuteList{text-align:center}[dir=rtl] .igx-time-picker__minuteList{order:1}.igx-time-picker__secondsList{text-align:center}[dir=rtl] .igx-time-picker__ampmList{order:3}.igx-time-picker__body{display:flex;min-width:max(var(--is-large, 1)*max(22.5rem,-1 * 22.5rem),var(--is-medium, 1)*max(19.625rem,-1 * 19.625rem),var(--is-small, 1)*max(18.125rem,-1 * 18.125rem));padding-block:1rem;justify-content:center}.igx-time-picker__buttons{display:flex;min-height:max(var(--is-large, 1)*max(3rem,-1 * 3rem),var(--is-medium, 1)*max(2.75rem,-1 * 2.75rem),var(--is-small, 1)*max(2.5rem,-1 * 2.5rem));justify-content:flex-end;align-items:center;padding:.5rem;gap:.5rem}.igx-time-picker--dropdown{min-width:max(var(--is-large, 1)*max(22.5rem,-1 * 22.5rem),var(--is-medium, 1)*max(19.625rem,-1 * 19.625rem),var(--is-small, 1)*max(18.125rem,-1 * 18.125rem));box-shadow:inset 0 0 0 .0625rem var(--border-color),var(--dropdown-elevation);background:var(--background-color);border-radius:var(--border-radius);overflow:hidden}.igx-time-picker--dropdown .igx-time-picker__body{min-width:auto}.igx-time-picker--dialog{box-shadow:0 0 0 .0625rem var(--border-color),var(--modal-elevation);background:var(--background-color);border-radius:var(--border-radius);overflow:hidden}.igx-time-picker--vertical .igx-time-picker__main{display:flex;flex-grow:1}.igx-time-picker--vertical .igx-time-picker__header{min-width:10.5rem}.igx-time-picker--vertical .igx-time-picker__body{flex-grow:1}.igx-time-picker--vertical .igx-time-picker__buttons{align-items:flex-end}}@layer ig.bootstrap{@container style(--ig-theme: bootstrap){.igx-time-picker__item--selected{font-family:var(--ig-h4-font-family, var(--ig-font-family));font-size:var(--ig-h4-font-size);font-weight:var(--ig-h4-font-weight);font-style:var(--ig-h4-font-style);line-height:var(--ig-h4-line-height);letter-spacing:var(--ig-h4-letter-spacing);text-transform:var(--ig-h4-text-transform);margin-top:var(--ig-h4-margin-top);margin-bottom:var(--ig-h4-margin-bottom);margin:0}}}@layer ig.indigo{@container style(--ig-theme: indigo){.igx-time-picker__header{border-block-end:.0625rem solid var(--divider-color);gap:.125rem}.igx-time-picker__header-hour{font-family:var(--ig-h5-font-family, var(--ig-font-family));font-size:var(--ig-h5-font-size);font-weight:var(--ig-h5-font-weight);font-style:var(--ig-h5-font-style);line-height:var(--ig-h5-line-height);letter-spacing:var(--ig-h5-letter-spacing);text-transform:var(--ig-h5-text-transform);margin-top:var(--ig-h5-margin-top);margin-bottom:var(--ig-h5-margin-bottom)}.igx-time-picker__column{width:3.375rem}.igx-time-picker__item--selected{font-family:var(--ig-h6-font-family, var(--ig-font-family));font-size:var(--ig-h6-font-size);font-weight:var(--ig-h6-font-weight);font-style:var(--ig-h6-font-style);line-height:var(--ig-h6-line-height);letter-spacing:var(--ig-h6-letter-spacing);text-transform:var(--ig-h6-text-transform);margin-top:var(--ig-h6-margin-top);margin-bottom:var(--ig-h6-margin-bottom)}.igx-time-picker__buttons{padding:.5rem 1rem}.igx-time-picker__buttons [igxbutton]{min-width:5.5rem}.igx-time-picker--vertical .igx-time-picker__header{min-width:8.5rem;border-inline-end:.0625rem solid var(--divider-color);border-block-end:none}}}@layer ig.material{@container style(--ig-theme: material){.igx-time-picker__header{padding:1rem 1.5rem}}}\n"], dependencies: [{ 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: IgxDateTimeEditorDirective, selector: "[igxDateTimeEditor]", inputs: ["locale", "minValue", "maxValue", "spinLoop", "displayFormat", "igxDateTimeEditor", "value", "defaultFormatType", "spinDelta"], outputs: ["valueChange", "validationFailed"], exportAs: ["igxDateTimeEditor"] }, { kind: "directive", type: IgxTextSelectionDirective, selector: "[igxTextSelection]", inputs: ["igxTextSelection"], exportAs: ["igxTextSelection"] }, { kind: "directive", type: IgxPrefixDirective, selector: "[igxPrefix],[igxStart],igx-prefix" }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["ariaHidden", "family", "name", "active"] }, { kind: "directive", type: IgxSuffixDirective, selector: "[igxSuffix],[igxEnd],igx-suffix" }, { kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxLabel"], outputs: ["buttonSelected"] }, { kind: "directive", type: IgxToggleDirective, selector: "[igxToggle]", inputs: ["id"], outputs: ["opened", "opening", "closed", "closing", "appended"], exportAs: ["toggle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: IgxItemListDirective, selector: "[igxItemList]", inputs: ["igxItemList"] }, { kind: "directive", type: IgxTimeItemDirective, selector: "[igxTimeItem]", inputs: ["igxTimeItem"], exportAs: ["timeItem"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IgxDividerComponent, selector: "igx-divider", inputs: ["id", "role", "type", "middle", "vertical", "inset"] }, { kind: "directive", type: IgxReadOnlyInputDirective, selector: "[igxReadOnlyInput]", inputs: ["igxReadOnlyInput"], exportAs: ["igxReadOnlyInput"] }, { kind: "pipe", type: TimeFormatPipe, name: "timeFormatPipe" }, { kind: "pipe", type: TimeItemPipe, name: "timeItemPipe" }], changeDetection: i0.ChangeDetectionStrategy.Eager, encapsulation: i0.ViewEncapsulation.None }); }
1606
1587
  }
1607
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxTimePickerComponent, decorators: [{
1588
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxTimePickerComponent, decorators: [{
1608
1589
  type: Component,
1609
1590
  args: [{ providers: [
1610
1591
  {
@@ -1731,11 +1712,11 @@ const IGX_TIME_PICKER_DIRECTIVES = [
1731
1712
  * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components
1732
1713
  */
1733
1714
  class IgxTimePickerModule {
1734
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxTimePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1735
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.1", ngImport: i0, type: IgxTimePickerModule, imports: [IgxTimePickerComponent, i2.IgxPickerActionsDirective, i2.IgxPickerToggleComponent, i2.IgxPickerClearComponent, i3.IgxLabelDirective, i3.IgxPrefixDirective, i3.IgxSuffixDirective, i3.IgxHintDirective], exports: [IgxTimePickerComponent, i2.IgxPickerActionsDirective, i2.IgxPickerToggleComponent, i2.IgxPickerClearComponent, i3.IgxLabelDirective, i3.IgxPrefixDirective, i3.IgxSuffixDirective, i3.IgxHintDirective] }); }
1736
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxTimePickerModule, imports: [IgxTimePickerComponent, i2.IgxPickerToggleComponent, i2.IgxPickerClearComponent] }); }
1715
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxTimePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1716
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.7", ngImport: i0, type: IgxTimePickerModule, imports: [IgxTimePickerComponent, i2.IgxPickerActionsDirective, i2.IgxPickerToggleComponent, i2.IgxPickerClearComponent, i3.IgxLabelDirective, i3.IgxPrefixDirective, i3.IgxSuffixDirective, i3.IgxHintDirective], exports: [IgxTimePickerComponent, i2.IgxPickerActionsDirective, i2.IgxPickerToggleComponent, i2.IgxPickerClearComponent, i3.IgxLabelDirective, i3.IgxPrefixDirective, i3.IgxSuffixDirective, i3.IgxHintDirective] }); }
1717
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxTimePickerModule, imports: [IgxTimePickerComponent, i2.IgxPickerToggleComponent, i2.IgxPickerClearComponent] }); }
1737
1718
  }
1738
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxTimePickerModule, decorators: [{
1719
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxTimePickerModule, decorators: [{
1739
1720
  type: NgModule,
1740
1721
  args: [{
1741
1722
  imports: [