igniteui-angular 22.1.3 → 22.2.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) 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 +15 -12
  6. package/fesm2022/igniteui-angular-action-strip.mjs.map +1 -1
  7. package/fesm2022/igniteui-angular-avatar.mjs +7 -7
  8. package/fesm2022/igniteui-angular-badge.mjs +7 -7
  9. package/fesm2022/igniteui-angular-banner.mjs +15 -12
  10. package/fesm2022/igniteui-angular-banner.mjs.map +1 -1
  11. package/fesm2022/igniteui-angular-bottom-nav.mjs +22 -22
  12. package/fesm2022/igniteui-angular-button-group.mjs +12 -13
  13. package/fesm2022/igniteui-angular-button-group.mjs.map +1 -1
  14. package/fesm2022/igniteui-angular-calendar.mjs +73 -66
  15. package/fesm2022/igniteui-angular-calendar.mjs.map +1 -1
  16. package/fesm2022/igniteui-angular-card.mjs +31 -31
  17. package/fesm2022/igniteui-angular-carousel.mjs +27 -24
  18. package/fesm2022/igniteui-angular-carousel.mjs.map +1 -1
  19. package/fesm2022/igniteui-angular-chat-extras.mjs +6 -6
  20. package/fesm2022/igniteui-angular-chat.mjs +12 -12
  21. package/fesm2022/igniteui-angular-checkbox.mjs +7 -7
  22. package/fesm2022/igniteui-angular-chips.mjs +15 -12
  23. package/fesm2022/igniteui-angular-chips.mjs.map +1 -1
  24. package/fesm2022/igniteui-angular-combo.mjs +273 -122
  25. package/fesm2022/igniteui-angular-combo.mjs.map +1 -1
  26. package/fesm2022/igniteui-angular-core.mjs +188 -59
  27. package/fesm2022/igniteui-angular-core.mjs.map +1 -1
  28. package/fesm2022/igniteui-angular-date-picker.mjs +76 -82
  29. package/fesm2022/igniteui-angular-date-picker.mjs.map +1 -1
  30. package/fesm2022/igniteui-angular-dialog.mjs +13 -13
  31. package/fesm2022/igniteui-angular-directives.mjs +321 -457
  32. package/fesm2022/igniteui-angular-directives.mjs.map +1 -1
  33. package/fesm2022/igniteui-angular-drop-down.mjs +331 -104
  34. package/fesm2022/igniteui-angular-drop-down.mjs.map +1 -1
  35. package/fesm2022/igniteui-angular-expansion-panel.mjs +28 -28
  36. package/fesm2022/igniteui-angular-grids-core.mjs +556 -518
  37. package/fesm2022/igniteui-angular-grids-core.mjs.map +1 -1
  38. package/fesm2022/igniteui-angular-grids-grid.mjs +91 -85
  39. package/fesm2022/igniteui-angular-grids-grid.mjs.map +1 -1
  40. package/fesm2022/igniteui-angular-grids-hierarchical-grid.mjs +59 -46
  41. package/fesm2022/igniteui-angular-grids-hierarchical-grid.mjs.map +1 -1
  42. package/fesm2022/igniteui-angular-grids-lite.mjs +12 -12
  43. package/fesm2022/igniteui-angular-grids-pivot-grid.mjs +113 -86
  44. package/fesm2022/igniteui-angular-grids-pivot-grid.mjs.map +1 -1
  45. package/fesm2022/igniteui-angular-grids-tree-grid.mjs +57 -57
  46. package/fesm2022/igniteui-angular-grids-tree-grid.mjs.map +1 -1
  47. package/fesm2022/igniteui-angular-icon.mjs +10 -10
  48. package/fesm2022/igniteui-angular-input-group.mjs +52 -63
  49. package/fesm2022/igniteui-angular-input-group.mjs.map +1 -1
  50. package/fesm2022/igniteui-angular-list.mjs +45 -42
  51. package/fesm2022/igniteui-angular-list.mjs.map +1 -1
  52. package/fesm2022/igniteui-angular-navbar.mjs +13 -13
  53. package/fesm2022/igniteui-angular-navigation-drawer.mjs +16 -16
  54. package/fesm2022/igniteui-angular-paginator.mjs +24 -21
  55. package/fesm2022/igniteui-angular-paginator.mjs.map +1 -1
  56. package/fesm2022/igniteui-angular-progressbar.mjs +19 -19
  57. package/fesm2022/igniteui-angular-query-builder.mjs +44 -31
  58. package/fesm2022/igniteui-angular-query-builder.mjs.map +1 -1
  59. package/fesm2022/igniteui-angular-radio.mjs +59 -35
  60. package/fesm2022/igniteui-angular-radio.mjs.map +1 -1
  61. package/fesm2022/igniteui-angular-select.mjs +35 -43
  62. package/fesm2022/igniteui-angular-select.mjs.map +1 -1
  63. package/fesm2022/igniteui-angular-simple-combo.mjs +44 -33
  64. package/fesm2022/igniteui-angular-simple-combo.mjs.map +1 -1
  65. package/fesm2022/igniteui-angular-slider.mjs +28 -28
  66. package/fesm2022/igniteui-angular-snackbar.mjs +7 -7
  67. package/fesm2022/igniteui-angular-splitter.mjs +37 -27
  68. package/fesm2022/igniteui-angular-splitter.mjs.map +1 -1
  69. package/fesm2022/igniteui-angular-stepper.mjs +34 -34
  70. package/fesm2022/igniteui-angular-switch.mjs +7 -7
  71. package/fesm2022/igniteui-angular-tabs.mjs +34 -34
  72. package/fesm2022/igniteui-angular-time-picker.mjs +34 -40
  73. package/fesm2022/igniteui-angular-time-picker.mjs.map +1 -1
  74. package/fesm2022/igniteui-angular-toast.mjs +7 -7
  75. package/fesm2022/igniteui-angular-tree.mjs +33 -30
  76. package/fesm2022/igniteui-angular-tree.mjs.map +1 -1
  77. package/fesm2022/igniteui-angular-virtual-scroll.mjs +1257 -0
  78. package/fesm2022/igniteui-angular-virtual-scroll.mjs.map +1 -0
  79. package/fesm2022/igniteui-angular.mjs +1 -0
  80. package/fesm2022/igniteui-angular.mjs.map +1 -1
  81. package/input-group/README.md +2 -0
  82. package/lib/core/styles/components/scrollbar/scrollbar-component.scss +0 -2
  83. package/lib/core/styles/components/scrollbar/scrollbar-theme.scss +23 -51
  84. package/lib/grids/core/src/column-actions/themes/_derived.scss +3 -3
  85. package/lib/grids/core/src/filtering/excel-style/themes/_derived.scss +3 -3
  86. package/lib/grids/themes/_derived.scss +3 -3
  87. package/lib/query-builder/src/query-builder/themes/_derived.scss +3 -3
  88. package/migrations/migration-collection.json +10 -0
  89. package/migrations/update-22_2_0/changes/theme-changes.json +77 -0
  90. package/migrations/update-22_2_0/index.d.ts +3 -0
  91. package/migrations/update-22_2_0/index.js +18 -0
  92. package/migrations/update-22_2_0/index.spec.d.ts +1 -0
  93. package/migrations/update-22_2_0/index.spec.js +88 -0
  94. package/migrations/update-22_2_0_grid-summary-borders/changes/theme-changes.json +17 -0
  95. package/migrations/update-22_2_0_grid-summary-borders/index.d.ts +3 -0
  96. package/migrations/update-22_2_0_grid-summary-borders/index.js +64 -0
  97. package/migrations/update-22_2_0_grid-summary-borders/index.spec.d.ts +1 -0
  98. package/migrations/update-22_2_0_grid-summary-borders/index.spec.js +100 -0
  99. package/package.json +6 -2
  100. package/schematics/tsconfig.tsbuildinfo +1 -1
  101. package/simple-combo/README.md +3 -0
  102. package/skills/igniteui-angular-components/references/form-controls.md +58 -0
  103. package/styles/igniteui-angular-dark.css +1 -1
  104. package/styles/igniteui-angular.css +1 -1
  105. package/styles/igniteui-bootstrap-dark.css +1 -1
  106. package/styles/igniteui-bootstrap-light.css +1 -1
  107. package/styles/igniteui-dark-green.css +1 -1
  108. package/styles/igniteui-fluent-dark-excel.css +1 -1
  109. package/styles/igniteui-fluent-dark-word.css +1 -1
  110. package/styles/igniteui-fluent-dark.css +1 -1
  111. package/styles/igniteui-fluent-light-excel.css +1 -1
  112. package/styles/igniteui-fluent-light-word.css +1 -1
  113. package/styles/igniteui-fluent-light.css +1 -1
  114. package/styles/igniteui-indigo-dark.css +1 -1
  115. package/styles/igniteui-indigo-light.css +1 -1
  116. package/styles/maps/igniteui-angular-dark.css.map +1 -1
  117. package/styles/maps/igniteui-angular.css.map +1 -1
  118. package/styles/maps/igniteui-bootstrap-dark.css.map +1 -1
  119. package/styles/maps/igniteui-bootstrap-light.css.map +1 -1
  120. package/styles/maps/igniteui-dark-green.css.map +1 -1
  121. package/styles/maps/igniteui-fluent-dark-excel.css.map +1 -1
  122. package/styles/maps/igniteui-fluent-dark-word.css.map +1 -1
  123. package/styles/maps/igniteui-fluent-dark.css.map +1 -1
  124. package/styles/maps/igniteui-fluent-light-excel.css.map +1 -1
  125. package/styles/maps/igniteui-fluent-light-word.css.map +1 -1
  126. package/styles/maps/igniteui-fluent-light.css.map +1 -1
  127. package/styles/maps/igniteui-indigo-dark.css.map +1 -1
  128. package/styles/maps/igniteui-indigo-light.css.map +1 -1
  129. package/types/igniteui-angular-action-strip.d.ts +1 -0
  130. package/types/igniteui-angular-banner.d.ts +1 -0
  131. package/types/igniteui-angular-calendar.d.ts +3 -1
  132. package/types/igniteui-angular-carousel.d.ts +1 -0
  133. package/types/igniteui-angular-chips.d.ts +1 -0
  134. package/types/igniteui-angular-combo.d.ts +56 -12
  135. package/types/igniteui-angular-core.d.ts +64 -11
  136. package/types/igniteui-angular-date-picker.d.ts +4 -4
  137. package/types/igniteui-angular-directives.d.ts +50 -164
  138. package/types/igniteui-angular-drop-down.d.ts +76 -4
  139. package/types/igniteui-angular-grids-core.d.ts +64 -28
  140. package/types/igniteui-angular-grids-grid.d.ts +4 -7
  141. package/types/igniteui-angular-grids-hierarchical-grid.d.ts +5 -4
  142. package/types/igniteui-angular-grids-pivot-grid.d.ts +11 -5
  143. package/types/igniteui-angular-grids-tree-grid.d.ts +1 -1
  144. package/types/igniteui-angular-icon.d.ts +1 -1
  145. package/types/igniteui-angular-input-group.d.ts +2 -2
  146. package/types/igniteui-angular-list.d.ts +1 -0
  147. package/types/igniteui-angular-paginator.d.ts +1 -0
  148. package/types/igniteui-angular-query-builder.d.ts +5 -1
  149. package/types/igniteui-angular-radio.d.ts +16 -1
  150. package/types/igniteui-angular-select.d.ts +1 -2
  151. package/types/igniteui-angular-simple-combo.d.ts +7 -0
  152. package/types/igniteui-angular-splitter.d.ts +6 -1
  153. package/types/igniteui-angular-stepper.d.ts +1 -1
  154. package/types/igniteui-angular-time-picker.d.ts +2 -2
  155. package/types/igniteui-angular-tree.d.ts +4 -3
  156. package/types/igniteui-angular-virtual-scroll.d.ts +408 -0
  157. package/types/igniteui-angular.d.ts +1 -0
  158. package/virtual-scroll/README.md +332 -0
@@ -1,5 +1,5 @@
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';
@@ -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,18 @@ 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;
988
+ if (this._control && !this.disabled && this._control.touchedOrDirty) {
989
+ if (this._control.hasValidators && this.inputGroup.isFocused) {
990
+ this.inputDirective.valid = this._control.valid ? IgxInputState.VALID : IgxInputState.INVALID;
995
991
  }
996
992
  else {
997
- this.inputDirective.valid = this._ngControl.valid ? IgxInputState.INITIAL : IgxInputState.INVALID;
993
+ this.inputDirective.valid = this._control.valid ? IgxInputState.INITIAL : IgxInputState.INVALID;
998
994
  }
999
995
  }
1000
996
  else {
1001
997
  this.inputDirective.valid = IgxInputState.INITIAL;
1002
998
  }
1003
999
  }
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
1000
  handleSelection(date) {
1011
1001
  if (this.dateValue && DateTimeUtil.isValidDate(this.dateValue)) {
1012
1002
  date.setHours(this.dateValue.getHours());
@@ -1127,13 +1117,13 @@ class IgxDatePickerComponent extends PickerBaseDirective {
1127
1117
  updateResources() {
1128
1118
  this._resourceStrings = getCurrentResourceStrings(DatePickerResourceStringsEN, false, this._locale);
1129
1119
  }
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: [
1120
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxDatePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1121
+ 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
1122
  { provide: NG_VALUE_ACCESSOR, useExisting: IgxDatePickerComponent, multi: true },
1133
1123
  { provide: NG_VALIDATORS, useExisting: IgxDatePickerComponent, multi: true }
1134
1124
  ], 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
1125
  }
1136
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxDatePickerComponent, decorators: [{
1126
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxDatePickerComponent, decorators: [{
1137
1127
  type: Component,
1138
1128
  args: [{ providers: [
1139
1129
  { provide: NG_VALUE_ACCESSOR, useExisting: IgxDatePickerComponent, multi: true },
@@ -1276,10 +1266,10 @@ class DateRangePickerFormatPipe {
1276
1266
  }
1277
1267
  return formatted ? formatted : '';
1278
1268
  }
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" }); }
1269
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: DateRangePickerFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
1270
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.1.7", ngImport: i0, type: DateRangePickerFormatPipe, isStandalone: true, name: "dateRange" }); }
1281
1271
  }
1282
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: DateRangePickerFormatPipe, decorators: [{
1272
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: DateRangePickerFormatPipe, decorators: [{
1283
1273
  type: Pipe,
1284
1274
  args: [{
1285
1275
  name: 'dateRange',
@@ -1288,6 +1278,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1288
1278
  }] });
1289
1279
  /** @hidden @internal */
1290
1280
  class IgxDateRangeInputsBaseComponent extends IgxInputGroupComponent {
1281
+ constructor() {
1282
+ super(...arguments);
1283
+ this.injector = inject(Injector);
1284
+ }
1291
1285
  /** @hidden @internal */
1292
1286
  get nativeElement() {
1293
1287
  return this.element.nativeElement;
@@ -1298,10 +1292,9 @@ class IgxDateRangeInputsBaseComponent extends IgxInputGroupComponent {
1298
1292
  }
1299
1293
  /** @hidden @internal */
1300
1294
  updateInputValue(value) {
1301
- if (this.ngControl) {
1302
- this.ngControl.control.setValue(value);
1303
- }
1304
- else {
1295
+ // A control that ignores the write reads the value from the editor instead.
1296
+ const write = NgControlAdapter.from(this.ngControl, this.injector)?.setValue(value);
1297
+ if (write !== 'accepted') {
1305
1298
  this.dateTimeEditor.value = value;
1306
1299
  }
1307
1300
  }
@@ -1309,10 +1302,10 @@ class IgxDateRangeInputsBaseComponent extends IgxInputGroupComponent {
1309
1302
  updateInputValidity(state) {
1310
1303
  this.inputDirective.valid = state;
1311
1304
  }
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 }); }
1305
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxDateRangeInputsBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1306
+ 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
1307
  }
1315
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxDateRangeInputsBaseComponent, decorators: [{
1308
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxDateRangeInputsBaseComponent, decorators: [{
1316
1309
  type: Component,
1317
1310
  args: [{
1318
1311
  template: ``,
@@ -1356,13 +1349,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1356
1349
  * ```
1357
1350
  */
1358
1351
  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: [
1352
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxDateRangeStartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1353
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: IgxDateRangeStartComponent, isStandalone: true, selector: "igx-date-range-start", providers: [
1361
1354
  { provide: IgxInputGroupBase, useExisting: IgxDateRangeStartComponent },
1362
1355
  { provide: IgxDateRangeInputsBaseComponent, useExisting: IgxDateRangeStartComponent }
1363
1356
  ], 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
1357
  }
1365
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxDateRangeStartComponent, decorators: [{
1358
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxDateRangeStartComponent, decorators: [{
1366
1359
  type: Component,
1367
1360
  args: [{ selector: 'igx-date-range-start', providers: [
1368
1361
  { provide: IgxInputGroupBase, useExisting: IgxDateRangeStartComponent },
@@ -1394,13 +1387,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1394
1387
  * ```
1395
1388
  */
1396
1389
  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: [
1390
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxDateRangeEndComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1391
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: IgxDateRangeEndComponent, isStandalone: true, selector: "igx-date-range-end", providers: [
1399
1392
  { provide: IgxInputGroupBase, useExisting: IgxDateRangeEndComponent },
1400
1393
  { provide: IgxDateRangeInputsBaseComponent, useExisting: IgxDateRangeEndComponent }
1401
1394
  ], 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
1395
  }
1403
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxDateRangeEndComponent, decorators: [{
1396
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxDateRangeEndComponent, decorators: [{
1404
1397
  type: Component,
1405
1398
  args: [{ selector: 'igx-date-range-end', providers: [
1406
1399
  { provide: IgxInputGroupBase, useExisting: IgxDateRangeEndComponent },
@@ -1435,10 +1428,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1435
1428
  * ```
1436
1429
  */
1437
1430
  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 }); }
1431
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxDateRangeSeparatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1432
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: IgxDateRangeSeparatorDirective, isStandalone: true, selector: "[igxDateRangeSeparator]", ngImport: i0 }); }
1440
1433
  }
1441
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxDateRangeSeparatorDirective, decorators: [{
1434
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxDateRangeSeparatorDirective, decorators: [{
1442
1435
  type: Directive,
1443
1436
  args: [{
1444
1437
  selector: '[igxDateRangeSeparator]',
@@ -1625,13 +1618,14 @@ class IgxDateRangePickerComponent extends PickerBaseDirective {
1625
1618
  * By default it uses EN resources.
1626
1619
  */
1627
1620
  set resourceStrings(value) {
1628
- this._resourceStrings = Object.assign({}, this._resourceStrings, value);
1621
+ this._resourceStrings = value;
1622
+ this._customResourceStrings = Object.assign({}, this._defaultResourceStrings, this._resourceStrings);
1629
1623
  }
1630
1624
  /**
1631
1625
  * An accessor that returns the resource strings.
1632
1626
  */
1633
1627
  get resourceStrings() {
1634
- return this._resourceStrings || this._defaultResourceStrings;
1628
+ return this._resourceStrings ? this._customResourceStrings : this._defaultResourceStrings;
1635
1629
  }
1636
1630
  /** @hidden @internal */
1637
1631
  get dateSeparator() {
@@ -1738,11 +1732,7 @@ class IgxDateRangePickerComponent extends PickerBaseDirective {
1738
1732
  return this._calendarContainer;
1739
1733
  }
1740
1734
  get required() {
1741
- if (this._ngControl && this._ngControl.control && this._ngControl.control.validator) {
1742
- const error = this._ngControl.control.validator({});
1743
- return (error && error.required) ? true : false;
1744
- }
1745
- return false;
1735
+ return this._control?.required ?? false;
1746
1736
  }
1747
1737
  get calendar() {
1748
1738
  return this._calendar;
@@ -1827,11 +1817,13 @@ class IgxDateRangePickerComponent extends PickerBaseDirective {
1827
1817
  /** @hidden @internal */
1828
1818
  this.cssClass = 'igx-date-range-picker';
1829
1819
  this._resourceStrings = null;
1820
+ this._customResourceStrings = null;
1830
1821
  this._defaultResourceStrings = getCurrentResourceStrings(DateRangePickerResourceStringsEN);
1831
1822
  this._doneButtonText = null;
1832
1823
  this._cancelButtonText = null;
1833
1824
  this._dateSeparator = null;
1834
1825
  this._overlayId = '';
1826
+ this._control = null;
1835
1827
  this._displayMonthsCount = 2;
1836
1828
  this._specialDates = null;
1837
1829
  this._disabledDates = null;
@@ -2035,6 +2027,7 @@ class IgxDateRangePickerComponent extends PickerBaseDirective {
2035
2027
  /** @hidden */
2036
2028
  ngOnInit() {
2037
2029
  this._ngControl = this._injector.get(NgControl, null);
2030
+ this._control = NgControlAdapter.from(this._ngControl, this._injector);
2038
2031
  }
2039
2032
  /** @hidden */
2040
2033
  ngAfterViewInit() {
@@ -2046,8 +2039,8 @@ class IgxDateRangePickerComponent extends PickerBaseDirective {
2046
2039
  this.cacheFocusedInput();
2047
2040
  this.attachOnTouched();
2048
2041
  this.setRequiredToInputs();
2049
- if (this._ngControl) {
2050
- this._statusChanges$ = this._ngControl.statusChanges.subscribe(this.onStatusChanged.bind(this));
2042
+ if (this._control) {
2043
+ this._statusChanges$ = this._control.statusChanges.subscribe(this.onStatusChanged.bind(this));
2051
2044
  }
2052
2045
  // delay invocations until the current change detection cycle has completed
2053
2046
  Promise.resolve().then(() => {
@@ -2093,24 +2086,18 @@ class IgxDateRangePickerComponent extends PickerBaseDirective {
2093
2086
  return this.inputDirective.nativeElement;
2094
2087
  }
2095
2088
  setValidityState(inputDirective, isFocused) {
2096
- if (this._ngControl && !this._ngControl.disabled && this.isTouchedOrDirty) {
2097
- if (this.hasValidators && isFocused) {
2098
- inputDirective.valid = this._ngControl.valid ? IgxInputState.VALID : IgxInputState.INVALID;
2089
+ if (this._control && !this._control.disabled && this._control.touchedOrDirty) {
2090
+ if (this._control.hasValidators && isFocused) {
2091
+ inputDirective.valid = this._control.valid ? IgxInputState.VALID : IgxInputState.INVALID;
2099
2092
  }
2100
2093
  else {
2101
- inputDirective.valid = this._ngControl.valid ? IgxInputState.INITIAL : IgxInputState.INVALID;
2094
+ inputDirective.valid = this._control.valid ? IgxInputState.INITIAL : IgxInputState.INVALID;
2102
2095
  }
2103
2096
  }
2104
2097
  else {
2105
2098
  inputDirective.valid = IgxInputState.INITIAL;
2106
2099
  }
2107
2100
  }
2108
- get isTouchedOrDirty() {
2109
- return (this._ngControl.control.touched || this._ngControl.control.dirty);
2110
- }
2111
- get hasValidators() {
2112
- return (!!this._ngControl.control.validator || !!this._ngControl.control.asyncValidator);
2113
- }
2114
2101
  handleSelection(selectionData) {
2115
2102
  let newValue = this.extractRange(selectionData);
2116
2103
  if (!newValue.start && !newValue.end) {
@@ -2234,6 +2221,8 @@ class IgxDateRangePickerComponent extends PickerBaseDirective {
2234
2221
  else if (this.hasProjectedInputs && this._ngControl) {
2235
2222
  this.projectedInputs.forEach(i => i.isRequired = isRequired);
2236
2223
  }
2224
+ // Written outside change detection; a required-only change has nothing else to repaint it.
2225
+ this._cdr.markForCheck();
2237
2226
  });
2238
2227
  }
2239
2228
  parseMinValue(value) {
@@ -2431,6 +2420,10 @@ class IgxDateRangePickerComponent extends PickerBaseDirective {
2431
2420
  const _value = this.value ? this.toRangeOfDates(this.value) : null;
2432
2421
  start.updateInputValue(_value?.start || null);
2433
2422
  end.updateInputValue(_value?.end || null);
2423
+ // `validate()` reads the editors, which Signal Forms validate before writing to; re-run it.
2424
+ if (this._control?.backend === 'signal') {
2425
+ this.onValidatorChange();
2426
+ }
2434
2427
  }
2435
2428
  }
2436
2429
  updateDisplayFormat() {
@@ -2463,6 +2456,7 @@ class IgxDateRangePickerComponent extends PickerBaseDirective {
2463
2456
  }
2464
2457
  updateResources() {
2465
2458
  this._defaultResourceStrings = getCurrentResourceStrings(DateRangePickerResourceStringsEN, false, this._locale);
2459
+ this._customResourceStrings = this._resourceStrings ? Object.assign({}, this._defaultResourceStrings, this._resourceStrings) : null;
2466
2460
  }
2467
2461
  _initializeCalendarContainer(componentInstance) {
2468
2462
  this._calendar = componentInstance.calendar;
@@ -2544,13 +2538,13 @@ class IgxDateRangePickerComponent extends PickerBaseDirective {
2544
2538
  this._calendar.viewDate = value ?? this.activeDate;
2545
2539
  }
2546
2540
  }
2547
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxDateRangePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2548
- 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: [
2541
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxDateRangePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2542
+ 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: [
2549
2543
  { provide: NG_VALUE_ACCESSOR, useExisting: IgxDateRangePickerComponent, multi: true },
2550
2544
  { provide: NG_VALIDATORS, useExisting: IgxDateRangePickerComponent, multi: true }
2551
2545
  ], 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 }); }
2552
2546
  }
2553
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxDateRangePickerComponent, decorators: [{
2547
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxDateRangePickerComponent, decorators: [{
2554
2548
  type: Component,
2555
2549
  args: [{ selector: 'igx-date-range-picker', encapsulation: ViewEncapsulation.None, providers: [
2556
2550
  { provide: NG_VALUE_ACCESSOR, useExisting: IgxDateRangePickerComponent, multi: true },
@@ -2675,11 +2669,11 @@ const IGX_DATE_RANGE_PICKER_DIRECTIVES = [
2675
2669
  * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components
2676
2670
  */
2677
2671
  class IgxDatePickerModule {
2678
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxDatePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2679
- 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] }); }
2680
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxDatePickerModule, imports: [IgxDatePickerComponent, i2.IgxPickerToggleComponent, i2.IgxPickerClearComponent] }); }
2672
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxDatePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2673
+ 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] }); }
2674
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxDatePickerModule, imports: [IgxDatePickerComponent, i2.IgxPickerToggleComponent, i2.IgxPickerClearComponent] }); }
2681
2675
  }
2682
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxDatePickerModule, decorators: [{
2676
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxDatePickerModule, decorators: [{
2683
2677
  type: NgModule,
2684
2678
  args: [{
2685
2679
  imports: [
@@ -2697,11 +2691,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
2697
2691
  * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components
2698
2692
  */
2699
2693
  class IgxDateRangePickerModule {
2700
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxDateRangePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2701
- 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] }); }
2702
- 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] }); }
2694
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxDateRangePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2695
+ 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] }); }
2696
+ 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] }); }
2703
2697
  }
2704
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxDateRangePickerModule, decorators: [{
2698
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: IgxDateRangePickerModule, decorators: [{
2705
2699
  type: NgModule,
2706
2700
  args: [{
2707
2701
  imports: [