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,12 +1,12 @@
1
1
  import * as i2 from 'igniteui-angular/core';
2
- import { PickerInteractionMode, I18N_FORMATTER, PickerHeaderOrientation, DEFAULT_LOCALE, onResourceChangeHandle, IgxPickerToggleComponent, IgxPickerClearComponent, DateRangePickerResourceStringsEN, CalendarDay, DateTimeUtil, IgxOverlayService, PlatformUtil, PickerCalendarOrientation, getCurrentResourceStrings, DatePickerResourceStringsEN, AutoPositionStrategy, AbsoluteScrollStrategy, isDate, isDateInRanges, DateRangeType, IgxPickerActionsDirective, clamp, THEME_TOKEN, parseDate, calendarRange } from 'igniteui-angular/core';
2
+ import { PickerInteractionMode, I18N_FORMATTER, PickerHeaderOrientation, DEFAULT_LOCALE, onResourceChangeHandle, IgxPickerToggleComponent, IgxPickerClearComponent, DateRangePickerResourceStringsEN, CalendarDay, DateTimeUtil, IgxOverlayService, PlatformUtil, PickerCalendarOrientation, getCurrentResourceStrings, DatePickerResourceStringsEN, AutoPositionStrategy, AbsoluteScrollStrategy, isDate, isDateInRanges, NgControlAdapter, DateRangeType, IgxPickerActionsDirective, clamp, THEME_TOKEN, parseDate, calendarRange } from 'igniteui-angular/core';
3
3
  import * as i0 from '@angular/core';
4
4
  import { inject, ElementRef, LOCALE_ID, EventEmitter, booleanAttribute, ViewChild, ContentChildren, Output, Input, Directive, ChangeDetectionStrategy, Component, HostListener, HostBinding, Injector, Renderer2, ChangeDetectorRef, ViewContainerRef, ContentChild, ViewEncapsulation, Pipe, TemplateRef, NgModule } from '@angular/core';
5
5
  import { NgControl, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
6
6
  import * as i4 from 'igniteui-angular/calendar';
7
7
  import { IgxCalendarComponent, IgxCalendarHeaderTitleTemplateDirective, IgxCalendarHeaderTemplateDirective, IgxCalendarSubheaderTemplateDirective, CalendarSelection } from 'igniteui-angular/calendar';
8
8
  import * as i3 from 'igniteui-angular/input-group';
9
- import { IGX_INPUT_GROUP_TYPE, IgxInputGroupComponent, IgxPrefixDirective, IgxSuffixDirective, IgxHintDirective, IgxInputState, IgxInputDirective, IgxReadOnlyInputDirective, IgxLabelDirective, IgxInputGroupBase } from 'igniteui-angular/input-group';
9
+ import { IGX_INPUT_GROUP_TYPE, IgxInputGroupComponent, IgxPrefixDirective, IgxSuffixDirective, IgxHintDirective, toInputState, IgxInputState, IgxInputDirective, IgxReadOnlyInputDirective, IgxLabelDirective, IgxInputGroupBase } from 'igniteui-angular/input-group';
10
10
  import { Subject, merge, noop, fromEvent } from 'rxjs';
11
11
  import { takeUntil, filter } from 'rxjs/operators';
12
12
  import { IgxButtonDirective, IgxRippleDirective, IgxDividerComponent, IgxDateTimeEditorDirective, IgxTextSelectionDirective } from 'igniteui-angular/directives';
@@ -272,10 +272,10 @@ class PickerBaseDirective {
272
272
  this.updateResources();
273
273
  }
274
274
  updateResources() { }
275
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: PickerBaseDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
276
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.1.1", type: PickerBaseDirective, isStandalone: true, inputs: { inputFormat: "inputFormat", displayFormat: "displayFormat", placeholder: "placeholder", mode: "mode", headerOrientation: "headerOrientation", hideHeader: ["hideHeader", "hideHeader", booleanAttribute], overlaySettings: "overlaySettings", disabled: ["disabled", "disabled", booleanAttribute], locale: "locale", weekStart: "weekStart", outlet: "outlet", type: "type", tabIndex: "tabIndex" }, outputs: { opening: "opening", opened: "opened", closing: "closing", closed: "closed" }, queries: [{ propertyName: "toggleComponents", predicate: IgxPickerToggleComponent, descendants: true }, { propertyName: "clearComponents", predicate: IgxPickerClearComponent, descendants: 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: IgxInputGroupComponent, descendants: true }], ngImport: i0 }); }
275
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: PickerBaseDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
276
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.1.7", type: PickerBaseDirective, isStandalone: true, inputs: { inputFormat: "inputFormat", displayFormat: "displayFormat", placeholder: "placeholder", mode: "mode", headerOrientation: "headerOrientation", hideHeader: ["hideHeader", "hideHeader", booleanAttribute], overlaySettings: "overlaySettings", disabled: ["disabled", "disabled", booleanAttribute], locale: "locale", weekStart: "weekStart", outlet: "outlet", type: "type", tabIndex: "tabIndex" }, outputs: { opening: "opening", opened: "opened", closing: "closing", closed: "closed" }, queries: [{ propertyName: "toggleComponents", predicate: IgxPickerToggleComponent, descendants: true }, { propertyName: "clearComponents", predicate: IgxPickerClearComponent, descendants: 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: IgxInputGroupComponent, descendants: true }], ngImport: i0 }); }
277
277
  }
278
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: PickerBaseDirective, decorators: [{
278
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: PickerBaseDirective, decorators: [{
279
279
  type: Directive
280
280
  }], ctorParameters: () => [], propDecorators: { inputFormat: [{
281
281
  type: Input
@@ -374,10 +374,10 @@ class IgxPredefinedRangesAreaComponent {
374
374
  dateRange: range.get()
375
375
  }));
376
376
  }
377
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxPredefinedRangesAreaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
378
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: IgxPredefinedRangesAreaComponent, isStandalone: true, selector: "igx-predefined-ranges-area", inputs: { usePredefinedRanges: "usePredefinedRanges", customRanges: "customRanges", resourceStrings: "resourceStrings" }, outputs: { rangeSelect: "rangeSelect" }, ngImport: i0, template: "<div class=\"igx-predefined-ranges\" role=\"group\" aria-label=\"Predefined ranges\">\n @for (r of ranges; track r.label) {\n <igx-chip (click)=\"onSelect(r.dateRange)\">\n {{ r.label }}\n </igx-chip>\n }\n</div>\n", styles: [":host{display:block}.igx-predefined-ranges{display:flex;flex-wrap:wrap;gap:.5rem;padding:.5rem .75rem}\n"], dependencies: [{ kind: "component", type: IgxChipComponent, selector: "igx-chip", inputs: ["variant", "id", "tabIndex", "data", "draggable", "animateOnRelease", "hideBaseOnDrag", "removable", "removeIcon", "outlined", "selectable", "selectIcon", "class", "disabled", "selected", "color", "resourceStrings"], outputs: ["selectedChange", "moveStart", "moveEnd", "remove", "chipClick", "selectedChanging", "selectedChanged", "keyDown", "dragEnter", "dragLeave", "dragOver", "dragDrop"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
377
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxPredefinedRangesAreaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
378
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: IgxPredefinedRangesAreaComponent, isStandalone: true, selector: "igx-predefined-ranges-area", inputs: { usePredefinedRanges: "usePredefinedRanges", customRanges: "customRanges", resourceStrings: "resourceStrings" }, outputs: { rangeSelect: "rangeSelect" }, ngImport: i0, template: "<div class=\"igx-predefined-ranges\" role=\"group\" aria-label=\"Predefined ranges\">\n @for (r of ranges; track r.label) {\n <igx-chip (click)=\"onSelect(r.dateRange)\">\n {{ r.label }}\n </igx-chip>\n }\n</div>\n", styles: [":host{display:block}.igx-predefined-ranges{display:flex;flex-wrap:wrap;gap:.5rem;padding:.5rem .75rem}\n"], dependencies: [{ kind: "component", type: IgxChipComponent, selector: "igx-chip", inputs: ["variant", "id", "tabIndex", "data", "draggable", "animateOnRelease", "hideBaseOnDrag", "removable", "removeIcon", "outlined", "selectable", "selectIcon", "class", "disabled", "selected", "color", "resourceStrings"], outputs: ["selectedChange", "moveStart", "moveEnd", "remove", "chipClick", "selectedChanging", "selectedChanged", "keyDown", "dragEnter", "dragLeave", "dragOver", "dragDrop"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
379
379
  }
380
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxPredefinedRangesAreaComponent, decorators: [{
380
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxPredefinedRangesAreaComponent, decorators: [{
381
381
  type: Component,
382
382
  args: [{ selector: 'igx-predefined-ranges-area', standalone: true, imports: [IgxChipComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"igx-predefined-ranges\" role=\"group\" aria-label=\"Predefined ranges\">\n @for (r of ranges; track r.label) {\n <igx-chip (click)=\"onSelect(r.dateRange)\">\n {{ r.label }}\n </igx-chip>\n }\n</div>\n", styles: [":host{display:block}.igx-predefined-ranges{display:flex;flex-wrap:wrap;gap:.5rem;padding:.5rem .75rem}\n"] }]
383
383
  }], propDecorators: { usePredefinedRanges: [{
@@ -421,10 +421,10 @@ class IgxCalendarContainerComponent {
421
421
  get isReadonly() {
422
422
  return this.mode === PickerInteractionMode.Dialog;
423
423
  }
424
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxCalendarContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
425
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: IgxCalendarContainerComponent, isStandalone: true, selector: "igx-calendar-container", outputs: { calendarClose: "calendarClose", calendarCancel: "calendarCancel", todaySelection: "todaySelection", rangeSelected: "rangeSelected" }, host: { listeners: { "keydown.alt.arrowup": "onEscape($event)" }, properties: { "class.igx-date-picker": "this.styleClass", "class.igx-date-picker--dropdown": "this.dropdownCSS", "class.igx-date-picker--dialog": "this.dialogCSS" } }, viewQueries: [{ propertyName: "calendar", first: true, predicate: IgxCalendarComponent, descendants: true, static: true }], ngImport: i0, template: "<ng-template #defaultPickerActions>\n @if (closeButtonLabel || cancelButtonLabel || todayButtonLabel) {\n <div class=\"igx-date-picker__buttons\">\n @if (cancelButtonLabel) {\n <button\n #cancelButton type=\"button\"\n [igxButton]=\"cancelButtonType\" igxRipple\n (click)=\"calendarCancel.emit({ owner: this})\"\n >\n {{ cancelButtonLabel }}\n </button>\n }\n @if (closeButtonLabel) {\n <button\n #closeButton\n type=\"button\"\n [igxButton]=\"closeButtonType\"\n igxRipple\n (click)=\"calendarClose.emit({ owner: this})\"\n >\n {{ closeButtonLabel }}\n </button>\n }\n @if (todayButtonLabel) {\n <button\n #todayButton\n type=\"button\"\n igxButton=\"flat\"\n igxRipple\n (click)=\"todaySelection.emit({ owner: this })\"\n >\n {{ todayButtonLabel }}\n </button>\n }\n </div>\n }\n</ng-template>\n\n<igx-calendar></igx-calendar>\n @if( usePredefinedRanges || (customRanges?.length || 0) > 0 ){\n <igx-predefined-ranges-area\n [usePredefinedRanges]=\"usePredefinedRanges\"\n [customRanges]=\"customRanges\"\n [resourceStrings]=\"resourceStrings\"\n (rangeSelect)=\"rangeSelected.emit($event)\">\n </igx-predefined-ranges-area>\n }\n@if (pickerActions?.template || (closeButtonLabel || todayButtonLabel)) {\n <igx-divider></igx-divider>\n}\n@if (pickerActions?.template || (closeButtonLabel || cancelButtonLabel || todayButtonLabel)) {\n <div class=\"igx-date-picker__actions\">\n <ng-container\n *ngTemplateOutlet=\"\n pickerActions?.template || defaultPickerActions;\n context: { $implicit: calendar }\n \"\n >\n </ng-container>\n </div>\n}\n", styles: [":host{display:block}\n"], dependencies: [{ 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: "component", type: IgxCalendarComponent, selector: "igx-calendar", inputs: ["id", "hasHeader", "vertical", "orientation", "headerOrientation", "monthsViewNumber", "showWeekNumbers"] }, { 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: "component", type: IgxPredefinedRangesAreaComponent, selector: "igx-predefined-ranges-area", inputs: ["usePredefinedRanges", "customRanges", "resourceStrings"], outputs: ["rangeSelect"] }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
424
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxCalendarContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
425
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: IgxCalendarContainerComponent, isStandalone: true, selector: "igx-calendar-container", outputs: { calendarClose: "calendarClose", calendarCancel: "calendarCancel", todaySelection: "todaySelection", rangeSelected: "rangeSelected" }, host: { listeners: { "keydown.alt.arrowup": "onEscape($event)" }, properties: { "class.igx-date-picker": "this.styleClass", "class.igx-date-picker--dropdown": "this.dropdownCSS", "class.igx-date-picker--dialog": "this.dialogCSS" } }, viewQueries: [{ propertyName: "calendar", first: true, predicate: IgxCalendarComponent, descendants: true, static: true }], ngImport: i0, template: "<ng-template #defaultPickerActions>\n @if (closeButtonLabel || cancelButtonLabel || todayButtonLabel) {\n <div class=\"igx-date-picker__buttons\">\n @if (cancelButtonLabel) {\n <button\n #cancelButton type=\"button\"\n [igxButton]=\"cancelButtonType\" igxRipple\n (click)=\"calendarCancel.emit({ owner: this})\"\n >\n {{ cancelButtonLabel }}\n </button>\n }\n @if (closeButtonLabel) {\n <button\n #closeButton\n type=\"button\"\n [igxButton]=\"closeButtonType\"\n igxRipple\n (click)=\"calendarClose.emit({ owner: this})\"\n >\n {{ closeButtonLabel }}\n </button>\n }\n @if (todayButtonLabel) {\n <button\n #todayButton\n type=\"button\"\n igxButton=\"flat\"\n igxRipple\n (click)=\"todaySelection.emit({ owner: this })\"\n >\n {{ todayButtonLabel }}\n </button>\n }\n </div>\n }\n</ng-template>\n\n<igx-calendar></igx-calendar>\n @if( usePredefinedRanges || (customRanges?.length || 0) > 0 ){\n <igx-predefined-ranges-area\n [usePredefinedRanges]=\"usePredefinedRanges\"\n [customRanges]=\"customRanges\"\n [resourceStrings]=\"resourceStrings\"\n (rangeSelect)=\"rangeSelected.emit($event)\">\n </igx-predefined-ranges-area>\n }\n@if (pickerActions?.template || (closeButtonLabel || todayButtonLabel)) {\n <igx-divider></igx-divider>\n}\n@if (pickerActions?.template || (closeButtonLabel || cancelButtonLabel || todayButtonLabel)) {\n <div class=\"igx-date-picker__actions\">\n <ng-container\n *ngTemplateOutlet=\"\n pickerActions?.template || defaultPickerActions;\n context: { $implicit: calendar }\n \"\n >\n </ng-container>\n </div>\n}\n", styles: [":host{display:block}\n"], dependencies: [{ 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: "component", type: IgxCalendarComponent, selector: "igx-calendar", inputs: ["id", "hasHeader", "vertical", "orientation", "headerOrientation", "monthsViewNumber", "showWeekNumbers"] }, { 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: "component", type: IgxPredefinedRangesAreaComponent, selector: "igx-predefined-ranges-area", inputs: ["usePredefinedRanges", "customRanges", "resourceStrings"], outputs: ["rangeSelect"] }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
426
426
  }
427
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxCalendarContainerComponent, decorators: [{
427
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxCalendarContainerComponent, decorators: [{
428
428
  type: Component,
429
429
  args: [{ selector: 'igx-calendar-container', changeDetection: ChangeDetectionStrategy.Eager, imports: [
430
430
  IgxButtonDirective,
@@ -659,6 +659,7 @@ class IgxDatePickerComponent extends PickerBaseDirective {
659
659
  this._resourceStrings = getCurrentResourceStrings(DatePickerResourceStringsEN);
660
660
  this._overlayId = '';
661
661
  this._ngControl = null;
662
+ this._control = null;
662
663
  this._specialDates = null;
663
664
  this._disabledDates = null;
664
665
  this._activeDate = null;
@@ -705,12 +706,7 @@ class IgxDatePickerComponent extends PickerBaseDirective {
705
706
  }
706
707
  /** @hidden @internal */
707
708
  get required() {
708
- if (this._ngControl && this._ngControl.control && this._ngControl.control.validator) {
709
- // Run the validation with empty object to check if required is enabled.
710
- const error = this._ngControl.control.validator({});
711
- return error && error.required;
712
- }
713
- return false;
709
+ return this._control?.required ?? false;
714
710
  }
715
711
  /** @hidden @internal */
716
712
  get pickerResourceStrings() {
@@ -919,6 +915,7 @@ class IgxDatePickerComponent extends PickerBaseDirective {
919
915
  /** @hidden @internal */
920
916
  ngOnInit() {
921
917
  this._ngControl = this._injector.get(NgControl, null);
918
+ this._control = NgControlAdapter.from(this._ngControl, this._injector);
922
919
  }
923
920
  /** @hidden @internal */
924
921
  ngAfterViewInit() {
@@ -935,10 +932,9 @@ class IgxDatePickerComponent extends PickerBaseDirective {
935
932
  this.updateValidity();
936
933
  }
937
934
  });
938
- if (this._ngControl) {
939
- this._statusChanges$ =
940
- this._ngControl.statusChanges.subscribe(this.onStatusChanged.bind(this));
941
- if (this._ngControl.control.validator) {
935
+ if (this._control) {
936
+ this._statusChanges$ = this._control.statusChanges.subscribe(this.onStatusChanged.bind(this));
937
+ if (this._control.hasValidators) {
942
938
  this.inputGroup.isRequired = this.required;
943
939
  this.cdr.detectChanges();
944
940
  }
@@ -989,24 +985,14 @@ class IgxDatePickerComponent extends PickerBaseDirective {
989
985
  }
990
986
  updateValidity() {
991
987
  // B.P. 18 May 2021: IgxDatePicker does not reset its state upon resetForm #9526
992
- if (this._ngControl && !this.disabled && this.isTouchedOrDirty) {
993
- if (this.hasValidators && this.inputGroup.isFocused) {
994
- this.inputDirective.valid = this._ngControl.valid ? IgxInputState.VALID : IgxInputState.INVALID;
995
- }
996
- else {
997
- this.inputDirective.valid = this._ngControl.valid ? IgxInputState.INITIAL : IgxInputState.INVALID;
998
- }
988
+ if (this._control && !this.disabled && this._control.touchedOrDirty) {
989
+ const showSuccess = this._control.hasValidators && this.inputGroup.isFocused;
990
+ this.inputDirective.valid = toInputState(this._control.status, showSuccess ? 'allowed' : 'suppressed');
999
991
  }
1000
992
  else {
1001
993
  this.inputDirective.valid = IgxInputState.INITIAL;
1002
994
  }
1003
995
  }
1004
- get isTouchedOrDirty() {
1005
- return (this._ngControl.control.touched || this._ngControl.control.dirty);
1006
- }
1007
- get hasValidators() {
1008
- return (!!this._ngControl.control.validator || !!this._ngControl.control.asyncValidator);
1009
- }
1010
996
  handleSelection(date) {
1011
997
  if (this.dateValue && DateTimeUtil.isValidDate(this.dateValue)) {
1012
998
  date.setHours(this.dateValue.getHours());
@@ -1127,13 +1113,13 @@ class IgxDatePickerComponent extends PickerBaseDirective {
1127
1113
  updateResources() {
1128
1114
  this._resourceStrings = getCurrentResourceStrings(DatePickerResourceStringsEN, false, this._locale);
1129
1115
  }
1130
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxDatePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1131
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: IgxDatePickerComponent, isStandalone: true, selector: "igx-date-picker", inputs: { hideOutsideDays: ["hideOutsideDays", "hideOutsideDays", booleanAttribute], displayMonthsCount: "displayMonthsCount", orientation: "orientation", showWeekNumbers: ["showWeekNumbers", "showWeekNumbers", booleanAttribute], activeDate: "activeDate", formatter: "formatter", todayButtonLabel: "todayButtonLabel", cancelButtonLabel: "cancelButtonLabel", spinLoop: ["spinLoop", "spinLoop", booleanAttribute], spinDelta: "spinDelta", id: "id", formatViews: "formatViews", disabledDates: "disabledDates", specialDates: "specialDates", calendarFormat: "calendarFormat", value: "value", minValue: "minValue", maxValue: "maxValue", resourceStrings: "resourceStrings", readOnly: ["readOnly", "readOnly", booleanAttribute] }, outputs: { valueChange: "valueChange", validationFailed: "validationFailed" }, host: { listeners: { "keydown": "onKeyDown($event)" }, properties: { "attr.id": "this.id" }, classAttribute: "igx-date-picker" }, providers: [
1116
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxDatePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1117
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: IgxDatePickerComponent, isStandalone: true, selector: "igx-date-picker", inputs: { hideOutsideDays: ["hideOutsideDays", "hideOutsideDays", booleanAttribute], displayMonthsCount: "displayMonthsCount", orientation: "orientation", showWeekNumbers: ["showWeekNumbers", "showWeekNumbers", booleanAttribute], activeDate: "activeDate", formatter: "formatter", todayButtonLabel: "todayButtonLabel", cancelButtonLabel: "cancelButtonLabel", spinLoop: ["spinLoop", "spinLoop", booleanAttribute], spinDelta: "spinDelta", id: "id", formatViews: "formatViews", disabledDates: "disabledDates", specialDates: "specialDates", calendarFormat: "calendarFormat", value: "value", minValue: "minValue", maxValue: "maxValue", resourceStrings: "resourceStrings", readOnly: ["readOnly", "readOnly", booleanAttribute] }, outputs: { valueChange: "valueChange", validationFailed: "validationFailed" }, host: { listeners: { "keydown": "onKeyDown($event)" }, properties: { "attr.id": "this.id" }, classAttribute: "igx-date-picker" }, providers: [
1132
1118
  { provide: NG_VALUE_ACCESSOR, useExisting: IgxDatePickerComponent, multi: true },
1133
1119
  { provide: NG_VALIDATORS, useExisting: IgxDatePickerComponent, multi: true }
1134
1120
  ], queries: [{ propertyName: "label", first: true, predicate: IgxLabelDirective, descendants: true }, { propertyName: "headerTitleTemplate", first: true, predicate: IgxCalendarHeaderTitleTemplateDirective, descendants: true }, { propertyName: "headerTemplate", first: true, predicate: IgxCalendarHeaderTemplateDirective, descendants: true }, { propertyName: "subheaderTemplate", first: true, predicate: IgxCalendarSubheaderTemplateDirective, descendants: true }, { propertyName: "pickerActions", first: true, predicate: IgxPickerActionsDirective, descendants: true }], viewQueries: [{ propertyName: "dateTimeEditor", first: true, predicate: IgxDateTimeEditorDirective, descendants: true, static: true }, { propertyName: "viewContainerRef", first: true, predicate: IgxInputGroupComponent, descendants: true, read: ViewContainerRef }, { propertyName: "labelDirective", first: true, predicate: IgxLabelDirective, descendants: true }, { propertyName: "inputDirective", first: true, predicate: IgxInputDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<igx-input-group [type]=\"type\">\n @if (!toggleComponents.length) {\n <igx-prefix (click)=\"toggle()\">\n <igx-icon\n [title]=\"\n value\n ? pickerResourceStrings.igx_date_picker_change_date\n : pickerResourceStrings.igx_date_picker_choose_date\n \"\n family=\"default\"\n name=\"today\"\n >\n </igx-icon>\n </igx-prefix>\n }\n\n <input class=\"igx-date-picker__input-date\"\n [igxReadOnlyInput]=\"readOnly\"\n [displayValuePipe]=\"$any($any(formatter) ? displayValue : null)\" igxInput\n [igxDateTimeEditor]=\"inputFormat\" [displayFormat]=\"displayFormat\"\n [minValue]=\"minValue\" [maxValue]=\"maxValue\" [spinDelta]=\"spinDelta\" [spinLoop]=\"spinLoop\"\n [disabled]=\"disabled\" [placeholder]=\"placeholder\" [readonly]=\"!isDropdown || readOnly\"\n [igxTextSelection]=\"isDropdown && !readOnly\" [locale]=\"locale\" [attr.aria-expanded]=\"!collapsed\"\n [attr.aria-labelledby]=\"label?.id\" aria-haspopup=\"dialog\" aria-autocomplete=\"none\" role=\"combobox\">\n\n @if (!clearComponents.length && value) {\n <igx-suffix (click)=\"clear()\">\n <igx-icon family=\"default\" name=\"input_clear\"></igx-icon>\n </igx-suffix>\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 <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", styles: ["@layer ig.base{.igx-date-picker{display:block}.igx-date-picker igx-calendar,.igx-date-picker igx-days-view,.igx-date-picker igx-months-view,.igx-date-picker igx-years-view{box-shadow:none;border-radius:0}.igx-date-picker igx-divider{--ig-divider-color: var(--actions-divider-color)}.igx-date-picker__actions{--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;justify-content:flex-end;gap:.5rem}.igx-date-picker__actions [igxButton]{--component-size: var(--ig-size, var(--default-size)) !important}.igx-date-picker__buttons{display:flex;align-items:center;justify-content:flex-end;gap:.5rem}.igx-date-picker--dropdown{display:flex;flex:1 0 0;flex-direction:column;box-shadow:0 0 0 .0625rem var(--border-color),var(--ig-elevation-3);background:var(--content-background);border-radius:var(--border-radius);overflow:hidden}.igx-date-picker--dialog{box-shadow:0 0 0 .0625rem var(--border-color),var(--ig-elevation-24);background:var(--content-background);border-radius:var(--border-radius);overflow:hidden}}@layer ig.material{@container style(--ig-theme: material){.igx-date-picker__actions{min-height:max(var(--is-large, 1)*max(3.25rem,-1 * 3.25rem),var(--is-medium, 1)*max(2.875rem,-1 * 2.875rem),var(--is-small, 1)*max(2.5rem,-1 * 2.5rem));padding:.5rem}}}@layer ig.bootstrap{@container style(--ig-theme: bootstrap){.igx-date-picker__actions{min-height:max(var(--is-large, 1)*max(4rem,-1 * 4rem),var(--is-medium, 1)*max(3.375rem,-1 * 3.375rem),var(--is-small, 1)*max(2.9375rem,-1 * 2.9375rem));padding:.5rem}}}@layer ig.fluent{@container style(--ig-theme: fluent){.igx-date-picker__actions{min-height:max(var(--is-large, 1)*max(3.375rem,-1 * 3.375rem),var(--is-medium, 1)*max(3rem,-1 * 3rem),var(--is-small, 1)*max(2.5rem,-1 * 2.5rem));padding:.5rem}}}@layer ig.indigo{@container style(--ig-theme: indigo){.igx-date-picker__actions{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));padding:.5rem 1rem}.igx-date-picker--dropdown{box-shadow:0 0 0 .0625rem var(--border-color),var(--ig-elevation-3)}.igx-date-picker--dialog{box-shadow:0 0 0 .0625rem var(--border-color),var(--ig-elevation-5)}}}\n"], dependencies: [{ kind: "component", type: IgxInputGroupComponent, selector: "igx-input-group", inputs: ["resourceStrings", "suppressInputAutofocus", "type", "theme"] }, { kind: "directive", type: IgxPrefixDirective, selector: "[igxPrefix],[igxStart],igx-prefix" }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["ariaHidden", "family", "name", "active"] }, { kind: "directive", type: IgxInputDirective, selector: "[igxInput]", inputs: ["value", "disabled", "required"], exportAs: ["igxInput"] }, { kind: "directive", type: IgxReadOnlyInputDirective, selector: "[igxReadOnlyInput]", inputs: ["igxReadOnlyInput"], exportAs: ["igxReadOnlyInput"] }, { 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: IgxSuffixDirective, selector: "[igxSuffix],[igxEnd],igx-suffix" }], changeDetection: i0.ChangeDetectionStrategy.Eager, encapsulation: i0.ViewEncapsulation.None }); }
1135
1121
  }
1136
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxDatePickerComponent, decorators: [{
1122
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxDatePickerComponent, decorators: [{
1137
1123
  type: Component,
1138
1124
  args: [{ providers: [
1139
1125
  { provide: NG_VALUE_ACCESSOR, useExisting: IgxDatePickerComponent, multi: true },
@@ -1276,10 +1262,10 @@ class DateRangePickerFormatPipe {
1276
1262
  }
1277
1263
  return formatted ? formatted : '';
1278
1264
  }
1279
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: DateRangePickerFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
1280
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.1.1", ngImport: i0, type: DateRangePickerFormatPipe, isStandalone: true, name: "dateRange" }); }
1265
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: DateRangePickerFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
1266
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.1.7", ngImport: i0, type: DateRangePickerFormatPipe, isStandalone: true, name: "dateRange" }); }
1281
1267
  }
1282
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: DateRangePickerFormatPipe, decorators: [{
1268
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: DateRangePickerFormatPipe, decorators: [{
1283
1269
  type: Pipe,
1284
1270
  args: [{
1285
1271
  name: 'dateRange',
@@ -1288,6 +1274,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1288
1274
  }] });
1289
1275
  /** @hidden @internal */
1290
1276
  class IgxDateRangeInputsBaseComponent extends IgxInputGroupComponent {
1277
+ constructor() {
1278
+ super(...arguments);
1279
+ this.injector = inject(Injector);
1280
+ }
1291
1281
  /** @hidden @internal */
1292
1282
  get nativeElement() {
1293
1283
  return this.element.nativeElement;
@@ -1298,10 +1288,9 @@ class IgxDateRangeInputsBaseComponent extends IgxInputGroupComponent {
1298
1288
  }
1299
1289
  /** @hidden @internal */
1300
1290
  updateInputValue(value) {
1301
- if (this.ngControl) {
1302
- this.ngControl.control.setValue(value);
1303
- }
1304
- else {
1291
+ // A control that ignores the write reads the value from the editor instead.
1292
+ const write = NgControlAdapter.from(this.ngControl, this.injector)?.setValue(value);
1293
+ if (write !== 'accepted') {
1305
1294
  this.dateTimeEditor.value = value;
1306
1295
  }
1307
1296
  }
@@ -1309,10 +1298,10 @@ class IgxDateRangeInputsBaseComponent extends IgxInputGroupComponent {
1309
1298
  updateInputValidity(state) {
1310
1299
  this.inputDirective.valid = state;
1311
1300
  }
1312
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxDateRangeInputsBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1313
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: IgxDateRangeInputsBaseComponent, isStandalone: true, selector: "igx-date-range-base", providers: [{ provide: IgxInputGroupBase, useExisting: IgxDateRangeInputsBaseComponent }], queries: [{ propertyName: "dateTimeEditor", first: true, predicate: IgxDateTimeEditorDirective, descendants: true }, { propertyName: "inputDirective", first: true, predicate: IgxInputDirective, descendants: true }, { propertyName: "ngControl", first: true, predicate: NgControl, descendants: true }], usesInheritance: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.Eager }); }
1301
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxDateRangeInputsBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1302
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.7", type: IgxDateRangeInputsBaseComponent, isStandalone: true, selector: "igx-date-range-base", providers: [{ provide: IgxInputGroupBase, useExisting: IgxDateRangeInputsBaseComponent }], queries: [{ propertyName: "dateTimeEditor", first: true, predicate: IgxDateTimeEditorDirective, descendants: true }, { propertyName: "inputDirective", first: true, predicate: IgxInputDirective, descendants: true }, { propertyName: "ngControl", first: true, predicate: NgControl, descendants: true }], usesInheritance: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.Eager }); }
1314
1303
  }
1315
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxDateRangeInputsBaseComponent, decorators: [{
1304
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxDateRangeInputsBaseComponent, decorators: [{
1316
1305
  type: Component,
1317
1306
  args: [{
1318
1307
  template: ``,
@@ -1356,13 +1345,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1356
1345
  * ```
1357
1346
  */
1358
1347
  class IgxDateRangeStartComponent extends IgxDateRangeInputsBaseComponent {
1359
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxDateRangeStartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1360
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: IgxDateRangeStartComponent, isStandalone: true, selector: "igx-date-range-start", providers: [
1348
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxDateRangeStartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1349
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: IgxDateRangeStartComponent, isStandalone: true, selector: "igx-date-range-start", providers: [
1361
1350
  { provide: IgxInputGroupBase, useExisting: IgxDateRangeStartComponent },
1362
1351
  { provide: IgxDateRangeInputsBaseComponent, useExisting: IgxDateRangeStartComponent }
1363
1352
  ], usesInheritance: true, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"bundle\"></ng-container>\n\n<ng-template #label>\n <ng-content select=\"[igxLabel]\"></ng-content>\n</ng-template>\n\n<ng-template #uploadButton>\n @if (isFileType) {\n <div class=\"igx-input-group__upload\">\n <button\n igxButton\n type=\"button\"\n class=\"igx-input-group__upload-button\"\n [disabled]=\"disabled\"\n tabindex=\"-1\"\n >\n {{ resourceStrings.igx_input_upload_button }}\n </button>\n </div>\n }\n</ng-template>\n\n<ng-template #files>\n @if (isFileType) {\n <div\n class=\"igx-input-group__file-input\"\n [title]=\"fileNames\"\n >\n <span>{{ fileNames }}</span>\n </div>\n }\n</ng-template>\n\n<ng-template #clear>\n @if (isFileType && isFilled) {\n <igx-suffix\n class=\"igx-input-group__clear-icon\"\n (click)=\"clearValueHandler()\"\n (keydown.Enter)=\"clearValueHandler()\"\n title=\"clear files\"\n tabindex=\"0\"\n >\n <igx-icon family=\"default\" name=\"input_clear\"></igx-icon>\n </igx-suffix>\n }\n</ng-template>\n\n<ng-template #bundle>\n @if (!isTypeBorder) {\n <ng-container *ngTemplateOutlet=\"label\"></ng-container>\n }\n\n <div class=\"igx-input-group__bundle\">\n <div class=\"igx-input-group__bundle-start\">\n <ng-content select=\"igx-prefix, [igxPrefix]\"></ng-content>\n </div>\n\n @if (isFileType) {\n <ng-container *ngTemplateOutlet=\"uploadButton\"></ng-container>\n }\n\n @if (isTypeBorder) {\n <div class=\"igx-input-group__notch\">\n <ng-container *ngTemplateOutlet=\"label\"></ng-container>\n </div>\n }\n\n <div class=\"igx-input-group__bundle-main\">\n <ng-content select=\"[igxInput]\"></ng-content>\n\n @if (isFileType) {\n <ng-container *ngTemplateOutlet=\"files\"></ng-container>\n }\n </div>\n\n @if (isTypeBorder) {\n <div class=\"igx-input-group__filler\"></div>\n }\n\n <div class=\"igx-input-group__bundle-end\">\n @if (isFileType && isFilled) {\n <ng-container *ngTemplateOutlet=\"clear\"></ng-container>\n\n }\n <ng-content select=\"igx-suffix, [igxSuffix]\"></ng-content>\n </div>\n </div>\n\n\n @if (hasHints) {\n <div class=\"igx-input-group__hint\" (click)=\"hintClickHandler($event)\">\n <ng-content select=\"igx-hint, [igxHint]\"></ng-content>\n </div>\n }\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxLabel"], outputs: ["buttonSelected"] }, { kind: "directive", type: IgxSuffixDirective, selector: "[igxSuffix],[igxEnd],igx-suffix" }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["ariaHidden", "family", "name", "active"] }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
1364
1353
  }
1365
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxDateRangeStartComponent, decorators: [{
1354
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxDateRangeStartComponent, decorators: [{
1366
1355
  type: Component,
1367
1356
  args: [{ selector: 'igx-date-range-start', providers: [
1368
1357
  { provide: IgxInputGroupBase, useExisting: IgxDateRangeStartComponent },
@@ -1394,13 +1383,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1394
1383
  * ```
1395
1384
  */
1396
1385
  class IgxDateRangeEndComponent extends IgxDateRangeInputsBaseComponent {
1397
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxDateRangeEndComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1398
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: IgxDateRangeEndComponent, isStandalone: true, selector: "igx-date-range-end", providers: [
1386
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxDateRangeEndComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1387
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: IgxDateRangeEndComponent, isStandalone: true, selector: "igx-date-range-end", providers: [
1399
1388
  { provide: IgxInputGroupBase, useExisting: IgxDateRangeEndComponent },
1400
1389
  { provide: IgxDateRangeInputsBaseComponent, useExisting: IgxDateRangeEndComponent }
1401
1390
  ], usesInheritance: true, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"bundle\"></ng-container>\n\n<ng-template #label>\n <ng-content select=\"[igxLabel]\"></ng-content>\n</ng-template>\n\n<ng-template #uploadButton>\n @if (isFileType) {\n <div class=\"igx-input-group__upload\">\n <button\n igxButton\n type=\"button\"\n class=\"igx-input-group__upload-button\"\n [disabled]=\"disabled\"\n tabindex=\"-1\"\n >\n {{ resourceStrings.igx_input_upload_button }}\n </button>\n </div>\n }\n</ng-template>\n\n<ng-template #files>\n @if (isFileType) {\n <div\n class=\"igx-input-group__file-input\"\n [title]=\"fileNames\"\n >\n <span>{{ fileNames }}</span>\n </div>\n }\n</ng-template>\n\n<ng-template #clear>\n @if (isFileType && isFilled) {\n <igx-suffix\n class=\"igx-input-group__clear-icon\"\n (click)=\"clearValueHandler()\"\n (keydown.Enter)=\"clearValueHandler()\"\n title=\"clear files\"\n tabindex=\"0\"\n >\n <igx-icon family=\"default\" name=\"input_clear\"></igx-icon>\n </igx-suffix>\n }\n</ng-template>\n\n<ng-template #bundle>\n @if (!isTypeBorder) {\n <ng-container *ngTemplateOutlet=\"label\"></ng-container>\n }\n\n <div class=\"igx-input-group__bundle\">\n <div class=\"igx-input-group__bundle-start\">\n <ng-content select=\"igx-prefix, [igxPrefix]\"></ng-content>\n </div>\n\n @if (isFileType) {\n <ng-container *ngTemplateOutlet=\"uploadButton\"></ng-container>\n }\n\n @if (isTypeBorder) {\n <div class=\"igx-input-group__notch\">\n <ng-container *ngTemplateOutlet=\"label\"></ng-container>\n </div>\n }\n\n <div class=\"igx-input-group__bundle-main\">\n <ng-content select=\"[igxInput]\"></ng-content>\n\n @if (isFileType) {\n <ng-container *ngTemplateOutlet=\"files\"></ng-container>\n }\n </div>\n\n @if (isTypeBorder) {\n <div class=\"igx-input-group__filler\"></div>\n }\n\n <div class=\"igx-input-group__bundle-end\">\n @if (isFileType && isFilled) {\n <ng-container *ngTemplateOutlet=\"clear\"></ng-container>\n\n }\n <ng-content select=\"igx-suffix, [igxSuffix]\"></ng-content>\n </div>\n </div>\n\n\n @if (hasHints) {\n <div class=\"igx-input-group__hint\" (click)=\"hintClickHandler($event)\">\n <ng-content select=\"igx-hint, [igxHint]\"></ng-content>\n </div>\n }\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxLabel"], outputs: ["buttonSelected"] }, { kind: "directive", type: IgxSuffixDirective, selector: "[igxSuffix],[igxEnd],igx-suffix" }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["ariaHidden", "family", "name", "active"] }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
1402
1391
  }
1403
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxDateRangeEndComponent, decorators: [{
1392
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxDateRangeEndComponent, decorators: [{
1404
1393
  type: Component,
1405
1394
  args: [{ selector: 'igx-date-range-end', providers: [
1406
1395
  { provide: IgxInputGroupBase, useExisting: IgxDateRangeEndComponent },
@@ -1435,10 +1424,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1435
1424
  * ```
1436
1425
  */
1437
1426
  class IgxDateRangeSeparatorDirective {
1438
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxDateRangeSeparatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1439
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.1", type: IgxDateRangeSeparatorDirective, isStandalone: true, selector: "[igxDateRangeSeparator]", ngImport: i0 }); }
1427
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxDateRangeSeparatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1428
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: IgxDateRangeSeparatorDirective, isStandalone: true, selector: "[igxDateRangeSeparator]", ngImport: i0 }); }
1440
1429
  }
1441
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxDateRangeSeparatorDirective, decorators: [{
1430
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxDateRangeSeparatorDirective, decorators: [{
1442
1431
  type: Directive,
1443
1432
  args: [{
1444
1433
  selector: '[igxDateRangeSeparator]',
@@ -1739,11 +1728,7 @@ class IgxDateRangePickerComponent extends PickerBaseDirective {
1739
1728
  return this._calendarContainer;
1740
1729
  }
1741
1730
  get required() {
1742
- if (this._ngControl && this._ngControl.control && this._ngControl.control.validator) {
1743
- const error = this._ngControl.control.validator({});
1744
- return (error && error.required) ? true : false;
1745
- }
1746
- return false;
1731
+ return this._control?.required ?? false;
1747
1732
  }
1748
1733
  get calendar() {
1749
1734
  return this._calendar;
@@ -1834,6 +1819,7 @@ class IgxDateRangePickerComponent extends PickerBaseDirective {
1834
1819
  this._cancelButtonText = null;
1835
1820
  this._dateSeparator = null;
1836
1821
  this._overlayId = '';
1822
+ this._control = null;
1837
1823
  this._displayMonthsCount = 2;
1838
1824
  this._specialDates = null;
1839
1825
  this._disabledDates = null;
@@ -2037,6 +2023,7 @@ class IgxDateRangePickerComponent extends PickerBaseDirective {
2037
2023
  /** @hidden */
2038
2024
  ngOnInit() {
2039
2025
  this._ngControl = this._injector.get(NgControl, null);
2026
+ this._control = NgControlAdapter.from(this._ngControl, this._injector);
2040
2027
  }
2041
2028
  /** @hidden */
2042
2029
  ngAfterViewInit() {
@@ -2048,8 +2035,8 @@ class IgxDateRangePickerComponent extends PickerBaseDirective {
2048
2035
  this.cacheFocusedInput();
2049
2036
  this.attachOnTouched();
2050
2037
  this.setRequiredToInputs();
2051
- if (this._ngControl) {
2052
- this._statusChanges$ = this._ngControl.statusChanges.subscribe(this.onStatusChanged.bind(this));
2038
+ if (this._control) {
2039
+ this._statusChanges$ = this._control.statusChanges.subscribe(this.onStatusChanged.bind(this));
2053
2040
  }
2054
2041
  // delay invocations until the current change detection cycle has completed
2055
2042
  Promise.resolve().then(() => {
@@ -2095,24 +2082,14 @@ class IgxDateRangePickerComponent extends PickerBaseDirective {
2095
2082
  return this.inputDirective.nativeElement;
2096
2083
  }
2097
2084
  setValidityState(inputDirective, isFocused) {
2098
- if (this._ngControl && !this._ngControl.disabled && this.isTouchedOrDirty) {
2099
- if (this.hasValidators && isFocused) {
2100
- inputDirective.valid = this._ngControl.valid ? IgxInputState.VALID : IgxInputState.INVALID;
2101
- }
2102
- else {
2103
- inputDirective.valid = this._ngControl.valid ? IgxInputState.INITIAL : IgxInputState.INVALID;
2104
- }
2085
+ if (this._control && !this._control.disabled && this._control.touchedOrDirty) {
2086
+ const showSuccess = this._control.hasValidators && isFocused;
2087
+ inputDirective.valid = toInputState(this._control.status, showSuccess ? 'allowed' : 'suppressed');
2105
2088
  }
2106
2089
  else {
2107
2090
  inputDirective.valid = IgxInputState.INITIAL;
2108
2091
  }
2109
2092
  }
2110
- get isTouchedOrDirty() {
2111
- return (this._ngControl.control.touched || this._ngControl.control.dirty);
2112
- }
2113
- get hasValidators() {
2114
- return (!!this._ngControl.control.validator || !!this._ngControl.control.asyncValidator);
2115
- }
2116
2093
  handleSelection(selectionData) {
2117
2094
  let newValue = this.extractRange(selectionData);
2118
2095
  if (!newValue.start && !newValue.end) {
@@ -2196,25 +2173,16 @@ class IgxDateRangePickerComponent extends PickerBaseDirective {
2196
2173
  updateValidityOnBlur() {
2197
2174
  this._focusedInput = null;
2198
2175
  this.onTouchCallback();
2199
- if (this._ngControl) {
2200
- if (this.hasProjectedInputs) {
2201
- this.projectedInputs.forEach(i => {
2202
- if (!this._ngControl.valid) {
2203
- i.updateInputValidity(IgxInputState.INVALID);
2204
- }
2205
- else {
2206
- i.updateInputValidity(IgxInputState.INITIAL);
2207
- }
2208
- });
2209
- }
2210
- if (this.inputDirective) {
2211
- if (!this._ngControl.valid) {
2212
- this.inputDirective.valid = IgxInputState.INVALID;
2213
- }
2214
- else {
2215
- this.inputDirective.valid = IgxInputState.INITIAL;
2216
- }
2217
- }
2176
+ if (!this._control) {
2177
+ return;
2178
+ }
2179
+ // Blur never shows success, only the error.
2180
+ const state = toInputState(this._control.status, 'suppressed');
2181
+ if (this.hasProjectedInputs) {
2182
+ this.projectedInputs.forEach(i => i.updateInputValidity(state));
2183
+ }
2184
+ if (this.inputDirective) {
2185
+ this.inputDirective.valid = state;
2218
2186
  }
2219
2187
  }
2220
2188
  updateDisabledState() {
@@ -2236,6 +2204,8 @@ class IgxDateRangePickerComponent extends PickerBaseDirective {
2236
2204
  else if (this.hasProjectedInputs && this._ngControl) {
2237
2205
  this.projectedInputs.forEach(i => i.isRequired = isRequired);
2238
2206
  }
2207
+ // Written outside change detection; a required-only change has nothing else to repaint it.
2208
+ this._cdr.markForCheck();
2239
2209
  });
2240
2210
  }
2241
2211
  parseMinValue(value) {
@@ -2433,6 +2403,10 @@ class IgxDateRangePickerComponent extends PickerBaseDirective {
2433
2403
  const _value = this.value ? this.toRangeOfDates(this.value) : null;
2434
2404
  start.updateInputValue(_value?.start || null);
2435
2405
  end.updateInputValue(_value?.end || null);
2406
+ // `validate()` reads the editors, which Signal Forms validate before writing to; re-run it.
2407
+ if (this._control?.backend === 'signal') {
2408
+ this.onValidatorChange();
2409
+ }
2436
2410
  }
2437
2411
  }
2438
2412
  updateDisplayFormat() {
@@ -2547,13 +2521,13 @@ class IgxDateRangePickerComponent extends PickerBaseDirective {
2547
2521
  this._calendar.viewDate = value ?? this.activeDate;
2548
2522
  }
2549
2523
  }
2550
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxDateRangePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2551
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: IgxDateRangePickerComponent, isStandalone: true, selector: "igx-date-range-picker", inputs: { displayMonthsCount: "displayMonthsCount", orientation: "orientation", hideOutsideDays: ["hideOutsideDays", "hideOutsideDays", booleanAttribute], formatter: "formatter", doneButtonText: "doneButtonText", cancelButtonText: "cancelButtonText", overlaySettings: "overlaySettings", displayFormat: "displayFormat", inputFormat: "inputFormat", minValue: "minValue", maxValue: "maxValue", disabledDates: "disabledDates", specialDates: "specialDates", resourceStrings: "resourceStrings", placeholder: "placeholder", showWeekNumbers: ["showWeekNumbers", "showWeekNumbers", booleanAttribute], readOnly: ["readOnly", "readOnly", booleanAttribute], usePredefinedRanges: "usePredefinedRanges", customRanges: "customRanges", activeDate: "activeDate", locale: "locale", value: "value" }, outputs: { valueChange: "valueChange" }, host: { listeners: { "keydown": "onKeyDown($event)" }, properties: { "class.igx-date-range-picker": "this.cssClass" } }, providers: [
2524
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxDateRangePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2525
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: IgxDateRangePickerComponent, isStandalone: true, selector: "igx-date-range-picker", inputs: { displayMonthsCount: "displayMonthsCount", orientation: "orientation", hideOutsideDays: ["hideOutsideDays", "hideOutsideDays", booleanAttribute], formatter: "formatter", doneButtonText: "doneButtonText", cancelButtonText: "cancelButtonText", overlaySettings: "overlaySettings", displayFormat: "displayFormat", inputFormat: "inputFormat", minValue: "minValue", maxValue: "maxValue", disabledDates: "disabledDates", specialDates: "specialDates", resourceStrings: "resourceStrings", placeholder: "placeholder", showWeekNumbers: ["showWeekNumbers", "showWeekNumbers", booleanAttribute], readOnly: ["readOnly", "readOnly", booleanAttribute], usePredefinedRanges: "usePredefinedRanges", customRanges: "customRanges", activeDate: "activeDate", locale: "locale", value: "value" }, outputs: { valueChange: "valueChange" }, host: { listeners: { "keydown": "onKeyDown($event)" }, properties: { "class.igx-date-range-picker": "this.cssClass" } }, providers: [
2552
2526
  { provide: NG_VALUE_ACCESSOR, useExisting: IgxDateRangePickerComponent, multi: true },
2553
2527
  { provide: NG_VALIDATORS, useExisting: IgxDateRangePickerComponent, multi: true }
2554
2528
  ], queries: [{ propertyName: "label", first: true, predicate: IgxLabelDirective, descendants: true }, { propertyName: "hint", first: true, predicate: IgxHintDirective, descendants: true }, { propertyName: "pickerActions", first: true, predicate: IgxPickerActionsDirective, descendants: true }, { propertyName: "dateSeparatorTemplate", first: true, predicate: IgxDateRangeSeparatorDirective, descendants: true, read: TemplateRef }, { propertyName: "headerTitleTemplate", first: true, predicate: IgxCalendarHeaderTitleTemplateDirective, descendants: true }, { propertyName: "headerTemplate", first: true, predicate: IgxCalendarHeaderTemplateDirective, descendants: true }, { propertyName: "subheaderTemplate", first: true, predicate: IgxCalendarSubheaderTemplateDirective, descendants: true }, { propertyName: "projectedInputs", predicate: IgxDateRangeInputsBaseComponent }], viewQueries: [{ propertyName: "viewContainerRef", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef }, { propertyName: "inputDirective", first: true, predicate: IgxInputDirective, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"hasProjectedInputs ? startEndTemplate : defTemplate\"></ng-container>\n\n<ng-template #singleTemplate>\n <div (click)=\"open()\" class=\"content-wrap\">\n <ng-content select=\"igx-date-single\"></ng-content>\n </div>\n</ng-template>\n\n<ng-template #startEndTemplate>\n <ng-content select=\"igx-date-range-start\"></ng-content>\n <div [className]=\"separatorClass\">\n <ng-container *ngTemplateOutlet=\"dateSeparatorTemplate || defDateSeparatorTemplate;\">\n </ng-container>\n </div>\n <ng-content select=\"igx-date-range-end\"></ng-content>\n</ng-template>\n\n<ng-template #defIcon>\n <igx-icon family=\"default\" name=\"date_range\"></igx-icon>\n</ng-template>\n\n<ng-template #clearIcon>\n <igx-icon family=\"default\" name=\"input_clear\" [attr.aria-hidden]=\"true\"></igx-icon>\n</ng-template>\n\n<ng-template #defDateSeparatorTemplate>{{ dateSeparator }}</ng-template>\n\n<ng-template #defTemplate>\n <igx-input-group [type]=\"type\">\n <!-- only set mask placeholder when empty, otherwise input group might use it as label if none is set -->\n <input #singleInput igxInput type=\"text\" [igxReadOnlyInput]=\"readOnly\" readonly [disabled]=\"disabled\" [placeholder]=\"value ? '' : singleInputFormat\"\n role=\"combobox\" aria-haspopup=\"grid\" [attr.aria-expanded]=\"!collapsed\" [attr.aria-labelledby]=\"label?.id\"\n [value]=\"value! | dateRange: appliedFormat : locale : formatter\" />\n\n @if (!toggleComponents.length) {\n <igx-prefix (click)=\"toggle()\">\n <ng-container *ngTemplateOutlet=\"defIcon\"></ng-container>\n </igx-prefix>\n }\n\n @if (!clearComponents.length && value) {\n <igx-suffix (click)=\"clear()\">\n <ng-container *ngTemplateOutlet=\"clearIcon\"></ng-container>\n </igx-suffix>\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 <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</ng-template>\n\n<ng-container #container></ng-container>\n", styles: ["@layer ig.base{.igx-date-picker{display:block}.igx-date-picker igx-calendar,.igx-date-picker igx-days-view,.igx-date-picker igx-months-view,.igx-date-picker igx-years-view{box-shadow:none;border-radius:0}.igx-date-picker igx-divider{--ig-divider-color: var(--actions-divider-color)}.igx-date-picker__actions{--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;justify-content:flex-end;gap:.5rem}.igx-date-picker__actions [igxButton]{--component-size: var(--ig-size, var(--default-size)) !important}.igx-date-picker__buttons{display:flex;align-items:center;justify-content:flex-end;gap:.5rem}.igx-date-picker--dropdown{display:flex;flex:1 0 0;flex-direction:column;box-shadow:0 0 0 .0625rem var(--border-color),var(--ig-elevation-3);background:var(--content-background);border-radius:var(--border-radius);overflow:hidden}.igx-date-picker--dialog{box-shadow:0 0 0 .0625rem var(--border-color),var(--ig-elevation-24);background:var(--content-background);border-radius:var(--border-radius);overflow:hidden}}@layer ig.material{@container style(--ig-theme: material){.igx-date-picker__actions{min-height:max(var(--is-large, 1)*max(3.25rem,-1 * 3.25rem),var(--is-medium, 1)*max(2.875rem,-1 * 2.875rem),var(--is-small, 1)*max(2.5rem,-1 * 2.5rem));padding:.5rem}}}@layer ig.bootstrap{@container style(--ig-theme: bootstrap){.igx-date-picker__actions{min-height:max(var(--is-large, 1)*max(4rem,-1 * 4rem),var(--is-medium, 1)*max(3.375rem,-1 * 3.375rem),var(--is-small, 1)*max(2.9375rem,-1 * 2.9375rem));padding:.5rem}}}@layer ig.fluent{@container style(--ig-theme: fluent){.igx-date-picker__actions{min-height:max(var(--is-large, 1)*max(3.375rem,-1 * 3.375rem),var(--is-medium, 1)*max(3rem,-1 * 3rem),var(--is-small, 1)*max(2.5rem,-1 * 2.5rem));padding:.5rem}}}@layer ig.indigo{@container style(--ig-theme: indigo){.igx-date-picker__actions{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));padding:.5rem 1rem}.igx-date-picker--dropdown{box-shadow:0 0 0 .0625rem var(--border-color),var(--ig-elevation-3)}.igx-date-picker--dialog{box-shadow:0 0 0 .0625rem var(--border-color),var(--ig-elevation-5)}}}\n", "@layer ig.base{.igx-date-range-picker{--_range-column-gap: .25rem;--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);display:grid;position:relative;align-items:start;row-gap:.25rem;-moz-column-gap:var(--_range-column-gap);column-gap:var(--_range-column-gap)}.igx-date-range-picker>igx-icon{cursor:pointer}.igx-date-range-picker:has(igx-date-range-start,igx-date-range-end):not(:has(.igx-date-range-picker__label)){grid-template-columns:auto 1fr auto auto 1fr auto}.igx-date-range-picker:has(igx-date-range-start,igx-date-range-end):not(:has(.igx-date-range-picker__label)) igx-date-range-start .igx-input-group__bundle{grid-column:1/span 3!important}.igx-date-range-picker:has(igx-date-range-start,igx-date-range-end):not(:has(.igx-date-range-picker__label)) igx-date-range-end .igx-input-group__bundle{grid-column:4/-1!important}.igx-date-range-picker:has(igx-date-range-start,igx-date-range-end):has(.igx-date-range-picker__label){grid-template-columns:auto 1fr auto 2ch auto 1fr auto}.igx-date-range-picker:has(igx-date-range-start,igx-date-range-end):has(.igx-date-range-picker__label) igx-date-range-start .igx-input-group__bundle{grid-column:1/span 3!important}.igx-date-range-picker:has(igx-date-range-start,igx-date-range-end):has(.igx-date-range-picker__label) igx-date-range-start .igx-input-group__label{grid-column:2/span 2!important}.igx-date-range-picker:has(igx-date-range-start,igx-date-range-end):has(.igx-date-range-picker__label) igx-date-range-start .igx-input-group__hint{grid-column:1/span 2!important}.igx-date-range-picker:has(igx-date-range-start,igx-date-range-end):has(.igx-date-range-picker__label) igx-date-range-end .igx-input-group__bundle{grid-column:5/-1!important}.igx-date-range-picker:has(igx-date-range-start,igx-date-range-end):has(.igx-date-range-picker__label) igx-date-range-end .igx-input-group__label,.igx-date-range-picker:has(igx-date-range-start,igx-date-range-end):has(.igx-date-range-picker__label) igx-date-range-end .igx-input-group__hint{grid-column:6/7!important}.igx-date-range-picker:has(igx-date-range-start,igx-date-range-end):has(.igx-date-range-picker__label) igx-date-range-end .igx-input-group__hint{grid-column:5/span 2!important}.igx-date-range-picker:has(.igx-input-group__label) .igx-date-range-picker__label{grid-row:2}.igx-date-range-picker .igx-input-group__label:only-child,.igx-date-range-picker .igx-input-group__hint:only-child{grid-column:1/-1}.igx-date-range-picker igx-date-range-start,.igx-date-range-picker igx-date-range-end{display:contents}.igx-date-range-picker__label{--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);font-family:var(--ig-caption-font-family, var(--ig-font-family));font-size:var(--ig-caption-font-size);font-weight:var(--ig-caption-font-weight);font-style:var(--ig-caption-font-style);line-height:var(--ig-caption-line-height);letter-spacing:var(--ig-caption-letter-spacing);text-transform:var(--ig-caption-text-transform);margin-top:var(--ig-caption-margin-top);margin-bottom:var(--ig-caption-margin-bottom);display:flex;align-items:center;justify-content:center;height:100%;color:var(--label-color);pointer-events:none;grid-column:4/5;grid-row:1}.igx-date-range-picker-buttons{display:flex;justify-content:flex-end;padding:0 1rem 1rem}.igx-date-range-picker-buttons>*{margin-inline-end:.5rem}.igx-date-range-picker-buttons>*:last-of-type{margin-inline-end:0}.igx-date-range-picker-buttons:empty{display:none}}@layer ig.bootstrap{@container style(--ig-theme: bootstrap){.igx-date-range-picker__label{font-family:var(--ig-body-1-font-family, var(--ig-font-family));font-size:var(--ig-body-1-font-size);font-weight:var(--ig-body-1-font-weight);font-style:var(--ig-body-1-font-style);line-height:var(--ig-body-1-line-height);letter-spacing:var(--ig-body-1-letter-spacing);text-transform:var(--ig-body-1-text-transform);margin-top:var(--ig-body-1-margin-top);margin-bottom:var(--ig-body-1-margin-bottom)}.igx-date-range-picker .igx-input-group:not(:has(.igx-input-group__label)){--_bundle-row: 2;--_hint-row: 3}.igx-date-range-picker:not(:has(.igx-input-group__label)) .igx-date-range-picker__label{grid-row:2}}}@layer ig.indigo{@container style(--ig-theme: indigo){.igx-date-range-picker .igx-input-group:not(:has(.igx-input-group__label)){--_bundle-row: 2;--_hint-row: 3}.igx-date-range-picker:not(:has(.igx-input-group__label)) .igx-date-range-picker__label{grid-row:2}}}@layer ig.fluent{@container style(--ig-theme: fluent){.igx-date-range-picker .igx-input-group:not(:has(.igx-input-group__label)){--_bundle-row: 2;--_hint-row: 3}.igx-date-range-picker:not(:has(.igx-input-group__label)) .igx-date-range-picker__label{grid-row:2}}}@layer ig.material{@container style(--ig-theme: material){.igx-date-range-picker:has(.igx-input-group__label) .igx-date-range-picker__label{grid-row:1}.igx-date-range-picker .igx-input-group:not(:has(.igx-input-group__label)){--_bundle-row: 1;--_hint-row: 2}}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["ariaHidden", "family", "name", "active"] }, { 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: IgxPrefixDirective, selector: "[igxPrefix],[igxStart],igx-prefix" }, { kind: "directive", type: IgxSuffixDirective, selector: "[igxSuffix],[igxEnd],igx-suffix" }, { kind: "directive", type: IgxReadOnlyInputDirective, selector: "[igxReadOnlyInput]", inputs: ["igxReadOnlyInput"], exportAs: ["igxReadOnlyInput"] }, { kind: "pipe", type: DateRangePickerFormatPipe, name: "dateRange" }], changeDetection: i0.ChangeDetectionStrategy.Eager, encapsulation: i0.ViewEncapsulation.None }); }
2555
2529
  }
2556
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxDateRangePickerComponent, decorators: [{
2530
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxDateRangePickerComponent, decorators: [{
2557
2531
  type: Component,
2558
2532
  args: [{ selector: 'igx-date-range-picker', encapsulation: ViewEncapsulation.None, providers: [
2559
2533
  { provide: NG_VALUE_ACCESSOR, useExisting: IgxDateRangePickerComponent, multi: true },
@@ -2678,11 +2652,11 @@ const IGX_DATE_RANGE_PICKER_DIRECTIVES = [
2678
2652
  * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components
2679
2653
  */
2680
2654
  class IgxDatePickerModule {
2681
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxDatePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2682
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.1", ngImport: i0, type: IgxDatePickerModule, imports: [IgxDatePickerComponent, i2.IgxPickerToggleComponent, i2.IgxPickerClearComponent, i2.IgxPickerActionsDirective, i3.IgxLabelDirective, i3.IgxPrefixDirective, i3.IgxSuffixDirective, i3.IgxHintDirective, i4.IgxCalendarHeaderTemplateDirective, i4.IgxCalendarSubheaderTemplateDirective, i4.IgxCalendarHeaderTitleTemplateDirective], exports: [IgxDatePickerComponent, i2.IgxPickerToggleComponent, i2.IgxPickerClearComponent, i2.IgxPickerActionsDirective, i3.IgxLabelDirective, i3.IgxPrefixDirective, i3.IgxSuffixDirective, i3.IgxHintDirective, i4.IgxCalendarHeaderTemplateDirective, i4.IgxCalendarSubheaderTemplateDirective, i4.IgxCalendarHeaderTitleTemplateDirective] }); }
2683
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxDatePickerModule, imports: [IgxDatePickerComponent, i2.IgxPickerToggleComponent, i2.IgxPickerClearComponent] }); }
2655
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxDatePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2656
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.7", ngImport: i0, type: IgxDatePickerModule, imports: [IgxDatePickerComponent, i2.IgxPickerToggleComponent, i2.IgxPickerClearComponent, i2.IgxPickerActionsDirective, i3.IgxLabelDirective, i3.IgxPrefixDirective, i3.IgxSuffixDirective, i3.IgxHintDirective, i4.IgxCalendarHeaderTemplateDirective, i4.IgxCalendarSubheaderTemplateDirective, i4.IgxCalendarHeaderTitleTemplateDirective], exports: [IgxDatePickerComponent, i2.IgxPickerToggleComponent, i2.IgxPickerClearComponent, i2.IgxPickerActionsDirective, i3.IgxLabelDirective, i3.IgxPrefixDirective, i3.IgxSuffixDirective, i3.IgxHintDirective, i4.IgxCalendarHeaderTemplateDirective, i4.IgxCalendarSubheaderTemplateDirective, i4.IgxCalendarHeaderTitleTemplateDirective] }); }
2657
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxDatePickerModule, imports: [IgxDatePickerComponent, i2.IgxPickerToggleComponent, i2.IgxPickerClearComponent] }); }
2684
2658
  }
2685
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxDatePickerModule, decorators: [{
2659
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxDatePickerModule, decorators: [{
2686
2660
  type: NgModule,
2687
2661
  args: [{
2688
2662
  imports: [
@@ -2700,11 +2674,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
2700
2674
  * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components
2701
2675
  */
2702
2676
  class IgxDateRangePickerModule {
2703
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxDateRangePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2704
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.1", ngImport: i0, type: IgxDateRangePickerModule, imports: [IgxDateRangePickerComponent, i2.IgxPickerToggleComponent, i2.IgxPickerClearComponent, IgxDateRangeStartComponent, IgxDateRangeEndComponent, IgxDateRangeSeparatorDirective, i3.IgxLabelDirective, i3.IgxPrefixDirective, i3.IgxSuffixDirective, i3.IgxHintDirective, i4.IgxCalendarHeaderTemplateDirective, i4.IgxCalendarSubheaderTemplateDirective, i4.IgxCalendarHeaderTitleTemplateDirective], exports: [IgxDateRangePickerComponent, i2.IgxPickerToggleComponent, i2.IgxPickerClearComponent, IgxDateRangeStartComponent, IgxDateRangeEndComponent, IgxDateRangeSeparatorDirective, i3.IgxLabelDirective, i3.IgxPrefixDirective, i3.IgxSuffixDirective, i3.IgxHintDirective, i4.IgxCalendarHeaderTemplateDirective, i4.IgxCalendarSubheaderTemplateDirective, i4.IgxCalendarHeaderTitleTemplateDirective] }); }
2705
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxDateRangePickerModule, imports: [IgxDateRangePickerComponent, i2.IgxPickerToggleComponent, i2.IgxPickerClearComponent, IgxDateRangeStartComponent, IgxDateRangeEndComponent] }); }
2677
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxDateRangePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2678
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.7", ngImport: i0, type: IgxDateRangePickerModule, imports: [IgxDateRangePickerComponent, i2.IgxPickerToggleComponent, i2.IgxPickerClearComponent, IgxDateRangeStartComponent, IgxDateRangeEndComponent, IgxDateRangeSeparatorDirective, i3.IgxLabelDirective, i3.IgxPrefixDirective, i3.IgxSuffixDirective, i3.IgxHintDirective, i4.IgxCalendarHeaderTemplateDirective, i4.IgxCalendarSubheaderTemplateDirective, i4.IgxCalendarHeaderTitleTemplateDirective], exports: [IgxDateRangePickerComponent, i2.IgxPickerToggleComponent, i2.IgxPickerClearComponent, IgxDateRangeStartComponent, IgxDateRangeEndComponent, IgxDateRangeSeparatorDirective, i3.IgxLabelDirective, i3.IgxPrefixDirective, i3.IgxSuffixDirective, i3.IgxHintDirective, i4.IgxCalendarHeaderTemplateDirective, i4.IgxCalendarSubheaderTemplateDirective, i4.IgxCalendarHeaderTitleTemplateDirective] }); }
2679
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxDateRangePickerModule, imports: [IgxDateRangePickerComponent, i2.IgxPickerToggleComponent, i2.IgxPickerClearComponent, IgxDateRangeStartComponent, IgxDateRangeEndComponent] }); }
2706
2680
  }
2707
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxDateRangePickerModule, decorators: [{
2681
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxDateRangePickerModule, decorators: [{
2708
2682
  type: NgModule,
2709
2683
  args: [{
2710
2684
  imports: [