igniteui-angular 22.2.0-rc.1 → 22.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/README.md +1 -1
  2. package/button-group/README.md +42 -9
  3. package/calendar/README.md +30 -20
  4. package/card/README.md +1 -1
  5. package/fesm2022/igniteui-angular-accordion.mjs +7 -7
  6. package/fesm2022/igniteui-angular-action-strip.mjs +11 -22
  7. package/fesm2022/igniteui-angular-action-strip.mjs.map +1 -1
  8. package/fesm2022/igniteui-angular-avatar.mjs +7 -7
  9. package/fesm2022/igniteui-angular-badge.mjs +7 -7
  10. package/fesm2022/igniteui-angular-banner.mjs +10 -10
  11. package/fesm2022/igniteui-angular-bottom-nav.mjs +22 -22
  12. package/fesm2022/igniteui-angular-button-group.mjs +32 -35
  13. package/fesm2022/igniteui-angular-button-group.mjs.map +1 -1
  14. package/fesm2022/igniteui-angular-calendar.mjs +132 -180
  15. package/fesm2022/igniteui-angular-calendar.mjs.map +1 -1
  16. package/fesm2022/igniteui-angular-card.mjs +47 -58
  17. package/fesm2022/igniteui-angular-card.mjs.map +1 -1
  18. package/fesm2022/igniteui-angular-carousel.mjs +22 -22
  19. package/fesm2022/igniteui-angular-chat-extras.mjs +6 -6
  20. package/fesm2022/igniteui-angular-chat.mjs +12 -12
  21. package/fesm2022/igniteui-angular-checkbox.mjs +7 -7
  22. package/fesm2022/igniteui-angular-chips.mjs +10 -10
  23. package/fesm2022/igniteui-angular-combo.mjs +66 -60
  24. package/fesm2022/igniteui-angular-combo.mjs.map +1 -1
  25. package/fesm2022/igniteui-angular-core.mjs +107 -79
  26. package/fesm2022/igniteui-angular-core.mjs.map +1 -1
  27. package/fesm2022/igniteui-angular-date-picker.mjs +38 -38
  28. package/fesm2022/igniteui-angular-dialog.mjs +13 -13
  29. package/fesm2022/igniteui-angular-directives.mjs +194 -194
  30. package/fesm2022/igniteui-angular-drop-down.mjs +29 -29
  31. package/fesm2022/igniteui-angular-expansion-panel.mjs +28 -28
  32. package/fesm2022/igniteui-angular-grids-core.mjs +737 -661
  33. package/fesm2022/igniteui-angular-grids-core.mjs.map +1 -1
  34. package/fesm2022/igniteui-angular-grids-grid.mjs +69 -58
  35. package/fesm2022/igniteui-angular-grids-grid.mjs.map +1 -1
  36. package/fesm2022/igniteui-angular-grids-hierarchical-grid.mjs +37 -37
  37. package/fesm2022/igniteui-angular-grids-lite.mjs +25 -17
  38. package/fesm2022/igniteui-angular-grids-lite.mjs.map +1 -1
  39. package/fesm2022/igniteui-angular-grids-pivot-grid.mjs +92 -81
  40. package/fesm2022/igniteui-angular-grids-pivot-grid.mjs.map +1 -1
  41. package/fesm2022/igniteui-angular-grids-tree-grid.mjs +55 -55
  42. package/fesm2022/igniteui-angular-icon.mjs +10 -10
  43. package/fesm2022/igniteui-angular-input-group.mjs +25 -25
  44. package/fesm2022/igniteui-angular-list.mjs +40 -40
  45. package/fesm2022/igniteui-angular-navbar.mjs +13 -13
  46. package/fesm2022/igniteui-angular-navigation-drawer.mjs +43 -38
  47. package/fesm2022/igniteui-angular-navigation-drawer.mjs.map +1 -1
  48. package/fesm2022/igniteui-angular-paginator.mjs +19 -19
  49. package/fesm2022/igniteui-angular-progressbar.mjs +19 -19
  50. package/fesm2022/igniteui-angular-query-builder.mjs +22 -22
  51. package/fesm2022/igniteui-angular-radio.mjs +25 -21
  52. package/fesm2022/igniteui-angular-radio.mjs.map +1 -1
  53. package/fesm2022/igniteui-angular-select.mjs +25 -25
  54. package/fesm2022/igniteui-angular-simple-combo.mjs +9 -9
  55. package/fesm2022/igniteui-angular-simple-combo.mjs.map +1 -1
  56. package/fesm2022/igniteui-angular-slider.mjs +28 -28
  57. package/fesm2022/igniteui-angular-snackbar.mjs +7 -7
  58. package/fesm2022/igniteui-angular-splitter.mjs +13 -13
  59. package/fesm2022/igniteui-angular-stepper.mjs +34 -34
  60. package/fesm2022/igniteui-angular-switch.mjs +7 -7
  61. package/fesm2022/igniteui-angular-tabs.mjs +34 -34
  62. package/fesm2022/igniteui-angular-time-picker.mjs +19 -19
  63. package/fesm2022/igniteui-angular-toast.mjs +7 -7
  64. package/fesm2022/igniteui-angular-tree.mjs +28 -28
  65. package/fesm2022/igniteui-angular-virtual-scroll.mjs +497 -145
  66. package/fesm2022/igniteui-angular-virtual-scroll.mjs.map +1 -1
  67. package/migrations/common/UpdateChanges.d.ts +25 -5
  68. package/migrations/common/UpdateChanges.js +218 -34
  69. package/migrations/common/UpdateChanges.spec.js +763 -0
  70. package/migrations/migration-collection.json +1 -1
  71. package/migrations/update-22_2_0/index.js +145 -0
  72. package/migrations/update-22_2_0/index.spec.js +133 -0
  73. package/navigation-drawer/README.md +1 -1
  74. package/package.json +4 -4
  75. package/schematics/tsconfig.tsbuildinfo +1 -1
  76. package/skills/igniteui-angular-components/SKILL.md +9 -5
  77. package/skills/igniteui-angular-components/references/form-controls.md +1 -1
  78. package/skills/igniteui-angular-components/references/mcp-setup.md +14 -2
  79. package/skills/igniteui-angular-figma-to-app/SKILL.md +112 -525
  80. package/skills/igniteui-angular-figma-to-app/references/asset-extraction.md +49 -75
  81. package/skills/igniteui-angular-figma-to-app/references/design-provenance.md +201 -0
  82. package/skills/igniteui-angular-figma-to-app/references/design-token-bridge.md +175 -52
  83. package/skills/igniteui-angular-figma-to-app/references/figma-component-map.md +153 -99
  84. package/skills/igniteui-angular-figma-to-app/references/figma-exploration.md +226 -0
  85. package/skills/igniteui-angular-figma-to-app/references/mcp-setup.md +71 -105
  86. package/skills/igniteui-angular-figma-to-app/references/project-setup.md +63 -0
  87. package/skills/igniteui-angular-figma-to-app/references/theme-generation.md +120 -0
  88. package/skills/igniteui-angular-figma-to-app/references/validation-patterns.md +48 -50
  89. package/skills/igniteui-angular-generate-from-image-design/SKILL.md +11 -7
  90. package/skills/igniteui-angular-grids/SKILL.md +7 -3
  91. package/skills/igniteui-angular-grids/references/editing.md +1 -2
  92. package/skills/igniteui-angular-grids/references/grid-migration.md +1 -1
  93. package/skills/igniteui-angular-theming/SKILL.md +9 -5
  94. package/skills/igniteui-angular-theming/references/mcp-setup.md +12 -2
  95. package/types/igniteui-angular-button-group.d.ts +49 -34
  96. package/types/igniteui-angular-calendar.d.ts +33 -50
  97. package/types/igniteui-angular-card.d.ts +12 -17
  98. package/types/igniteui-angular-combo.d.ts +6 -0
  99. package/types/igniteui-angular-core.d.ts +10 -2
  100. package/types/igniteui-angular-grids-core.d.ts +48 -4
  101. package/types/igniteui-angular-grids-grid.d.ts +4 -0
  102. package/types/igniteui-angular-grids-lite.d.ts +5 -1
  103. package/types/igniteui-angular-grids-pivot-grid.d.ts +5 -1
  104. package/types/igniteui-angular-navigation-drawer.d.ts +1 -0
  105. package/types/igniteui-angular-radio.d.ts +5 -0
  106. package/types/igniteui-angular-virtual-scroll.d.ts +41 -13
  107. package/virtual-scroll/README.md +32 -1
@@ -27,10 +27,10 @@ type ButtonGroupAlignment = typeof ButtonGroupAlignment[keyof typeof ButtonGroup
27
27
  * ```
28
28
  * The `fontOptions` value shown above is defined as:
29
29
  * ```typescript
30
- * this.fontOptions = [
31
- * { icon: 'format_bold', selected: false },
32
- * { icon: 'format_italic', selected: false },
33
- * { icon: 'format_underlined', selected: false }];
30
+ * public fontOptions: IButtonGroupButton[] = [
31
+ * { label: 'Bold', icon: 'format_bold', selected: false },
32
+ * { label: 'Italic', icon: 'format_italic', selected: false },
33
+ * { label: 'Underline', icon: 'format_underlined', selected: false }];
34
34
  * ```
35
35
  */
36
36
  declare class IgxButtonGroupComponent implements AfterViewInit, OnDestroy {
@@ -90,13 +90,6 @@ declare class IgxButtonGroupComponent implements AfterViewInit, OnDestroy {
90
90
  * ```
91
91
  */
92
92
  get itemContentCssClass(): string;
93
- /**
94
- * Enables selecting multiple buttons. By default, multi-selection is false.
95
- *
96
- * @deprecated in version 16.1.0. Use the `selectionMode` property instead.
97
- */
98
- get multiSelection(): boolean;
99
- set multiSelection(selectionMode: boolean);
100
93
  /**
101
94
  * Gets/Sets the selection mode to 'single', 'singleRequired' or 'multi' of the buttons. By default, the selection mode is 'single'.
102
95
  * ```html
@@ -106,32 +99,25 @@ declare class IgxButtonGroupComponent implements AfterViewInit, OnDestroy {
106
99
  get selectionMode(): "single" | "singleRequired" | "multi";
107
100
  set selectionMode(selectionMode: 'single' | 'singleRequired' | 'multi');
108
101
  /**
109
- * Property that configures the buttons in the button group using a collection of `Button` objects.
102
+ * Configures the buttons rendered by the button group using a collection of `IButtonGroupButton` objects.
103
+ * The buttons are rendered before any buttons projected in the group's content.
104
+ *
105
+ * The `selected` flag of each item is kept in sync with the selection state of its button.
106
+ *
107
+ * @example
110
108
  * ```typescript
111
- * public ngOnInit() {
112
- * this.cities = [
113
- * new Button({
114
- * label: "Sofia"
115
- * }),
116
- * new Button({
117
- * label: "London"
118
- * }),
119
- * new Button({
120
- * label: "New York",
121
- * selected: true
122
- * }),
123
- * new Button({
124
- * label: "Tokyo"
125
- * })
126
- * ];
127
- * }
128
- * //..
109
+ * public cities: IButtonGroupButton[] = [
110
+ * { label: 'Sofia' },
111
+ * { label: 'London' },
112
+ * { label: 'New York', selected: true },
113
+ * { label: 'Tokyo', disabled: true }
114
+ * ];
129
115
  * ```
130
116
  * ```html
131
- * <igx-buttongroup [selectionMode]="'single'" [values]="cities"></igx-buttongroup>
117
+ * <igx-buttongroup [selectionMode]="'single'" [values]="cities"></igx-buttongroup>
132
118
  * ```
133
119
  */
134
- values: any;
120
+ values: IButtonGroupButton[];
135
121
  /**
136
122
  * Disables the `igx-buttongroup` component. By default it's false.
137
123
  * ```html
@@ -286,7 +272,7 @@ declare class IgxButtonGroupComponent implements AfterViewInit, OnDestroy {
286
272
  private getUpdatedButtons;
287
273
  private updateButtonSelectionState;
288
274
  static ɵfac: i0.ɵɵFactoryDeclaration<IgxButtonGroupComponent, never>;
289
- static ɵcmp: i0.ɵɵComponentDeclaration<IgxButtonGroupComponent, "igx-buttongroup", never, { "id": { "alias": "id"; "required": false; }; "itemContentCssClass": { "alias": "itemContentCssClass"; "required": false; }; "multiSelection": { "alias": "multiSelection"; "required": false; }; "selectionMode": { "alias": "selectionMode"; "required": false; }; "values": { "alias": "values"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "alignment": { "alias": "alignment"; "required": false; }; }, { "selected": "selected"; "deselected": "deselected"; }, ["templateButtons"], ["*"], true, never>;
275
+ static ɵcmp: i0.ɵɵComponentDeclaration<IgxButtonGroupComponent, "igx-buttongroup", never, { "id": { "alias": "id"; "required": false; }; "itemContentCssClass": { "alias": "itemContentCssClass"; "required": false; }; "selectionMode": { "alias": "selectionMode"; "required": false; }; "values": { "alias": "values"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "alignment": { "alias": "alignment"; "required": false; }; }, { "selected": "selected"; "deselected": "deselected"; }, ["templateButtons"], ["*"], true, never>;
290
276
  static ngAcceptInputType_disabled: unknown;
291
277
  }
292
278
  interface IButtonGroupEventArgs extends IBaseEventArgs {
@@ -294,6 +280,35 @@ interface IButtonGroupEventArgs extends IBaseEventArgs {
294
280
  button: IgxButtonDirective;
295
281
  index: number;
296
282
  }
283
+ /**
284
+ * Describes a button rendered by `IgxButtonGroupComponent` through its `values` input.
285
+ *
286
+ * @example
287
+ * ```typescript
288
+ * public alignOptions: IButtonGroupButton[] = [
289
+ * { label: 'Left', icon: 'format_align_left', selected: true },
290
+ * { label: 'Center', icon: 'format_align_center' },
291
+ * { label: 'Right', icon: 'format_align_right', disabled: true }
292
+ * ];
293
+ * ```
294
+ */
295
+ interface IButtonGroupButton {
296
+ /**
297
+ * The text displayed in the button. It is also used as the button's `aria-label`
298
+ * and to track the button when the `values` collection changes, so it should be unique in the collection.
299
+ */
300
+ label: string;
301
+ /** The name of the icon displayed before the label. */
302
+ icon?: string;
303
+ /** The color of the ripple effect shown when the button is clicked. */
304
+ ripple?: string;
305
+ /** Whether the button is selected. Kept in sync with the selection state of the button group. */
306
+ selected?: boolean;
307
+ /** Whether the button is disabled. Disabling the button group disables all of its buttons. */
308
+ disabled?: boolean;
309
+ /** Rendered as the button's `data-togglable` attribute. */
310
+ togglable?: boolean;
311
+ }
297
312
 
298
313
  declare const IGX_BUTTON_GROUP_DIRECTIVES: readonly [typeof IgxButtonGroupComponent, typeof IgxButtonDirective];
299
314
 
@@ -309,4 +324,4 @@ declare class IgxButtonGroupModule {
309
324
  }
310
325
 
311
326
  export { ButtonGroupAlignment, IGX_BUTTON_GROUP_DIRECTIVES, IgxButtonGroupComponent, IgxButtonGroupModule };
312
- export type { IButtonGroupEventArgs };
327
+ export type { IButtonGroupButton, IButtonGroupEventArgs };
@@ -4,7 +4,6 @@ import * as igniteui_angular_core from 'igniteui-angular/core';
4
4
  import { CalendarDay, DateRangeDescriptor, PlatformUtil, DayInterval, ICalendarResourceStrings, WEEKDAYS } from 'igniteui-angular/core';
5
5
  import { ControlValueAccessor } from '@angular/forms';
6
6
  import * as rxjs from 'rxjs';
7
- import { Subject } from 'rxjs';
8
7
 
9
8
  /**
10
9
  * @hidden
@@ -289,7 +288,7 @@ declare abstract class IgxCalendarViewDirective implements ControlValueAccessor
289
288
  /**
290
289
  * @hidden
291
290
  */
292
- protected get formatter(): Intl.DateTimeFormat;
291
+ protected abstract get formatter(): Intl.DateTimeFormat;
293
292
  /**
294
293
  * @hidden
295
294
  */
@@ -476,7 +475,8 @@ declare class IgxMonthsViewComponent extends IgxCalendarViewDirective implements
476
475
  */
477
476
  protected onMouseDown(): void;
478
477
  /**
479
- * Returns the locale representation of the month in the months view.
478
+ * Returns the locale representation of the month in the months view,
479
+ * otherwise returns the default `Date.getMonth()` value.
480
480
  *
481
481
  * @hidden
482
482
  */
@@ -653,18 +653,6 @@ declare class IgxCalendarBaseDirective implements ControlValueAccessor {
653
653
  * @hidden
654
654
  */
655
655
  pageScrollDirection: ScrollDirection;
656
- /**
657
- * @hidden
658
- */
659
- scrollPage$: Subject<void>;
660
- /**
661
- * @hidden
662
- */
663
- stopPageScroll$: Subject<boolean>;
664
- /**
665
- * @hidden
666
- */
667
- startPageScroll$: Subject<void>;
668
656
  /**
669
657
  * @hidden
670
658
  */
@@ -693,10 +681,6 @@ declare class IgxCalendarBaseDirective implements ControlValueAccessor {
693
681
  * @hidden
694
682
  */
695
683
  protected get formatterYear(): Intl.DateTimeFormat;
696
- /**
697
- * @hidden
698
- */
699
- protected get formatterMonthDay(): Intl.DateTimeFormat;
700
684
  /**
701
685
  * @hidden
702
686
  */
@@ -858,10 +842,6 @@ declare class IgxCalendarBaseDirective implements ControlValueAccessor {
858
842
  * @hidden @internal
859
843
  */
860
844
  previousViewDate: Date;
861
- /**
862
- * @hidden
863
- */
864
- changeYear(date: Date): void;
865
845
  /**
866
846
  * Returns the locale representation of the year in the year view if enabled,
867
847
  * otherwise returns the default `Date.getFullYear()` value.
@@ -1465,10 +1445,7 @@ declare class IgxCalendarComponent extends IgxCalendarBaseDirective implements A
1465
1445
  $implicit: {
1466
1446
  index: number;
1467
1447
  date: Date;
1468
- } | {
1469
- index: number;
1470
- date: Date;
1471
- }[];
1448
+ };
1472
1449
  };
1473
1450
  /**
1474
1451
  * Gets the context for the template marked with either `igxCalendarSubHeaderMonth`
@@ -1483,10 +1460,7 @@ declare class IgxCalendarComponent extends IgxCalendarBaseDirective implements A
1483
1460
  $implicit: {
1484
1461
  index: number;
1485
1462
  date: Date;
1486
- } | {
1487
- index: number;
1488
- date: Date;
1489
- }[];
1463
+ };
1490
1464
  };
1491
1465
  /**
1492
1466
  * Date displayed in header
@@ -1623,16 +1597,6 @@ declare class IgxCalendarComponent extends IgxCalendarBaseDirective implements A
1623
1597
  * @internal
1624
1598
  */
1625
1599
  onActiveViewDecadeKB(date: Date, event: KeyboardEvent, activeViewIdx: number): void;
1626
- /**
1627
- * @hidden
1628
- * @internal
1629
- */
1630
- onYearsViewClick(event: MouseEvent): void;
1631
- /**
1632
- * @hidden
1633
- * @internal
1634
- */
1635
- onYearsViewKeydown(event: KeyboardEvent): void;
1636
1600
  /**
1637
1601
  * @hidden
1638
1602
  * @internal
@@ -1706,10 +1670,7 @@ declare class IgxCalendarComponent extends IgxCalendarBaseDirective implements A
1706
1670
  $implicit: {
1707
1671
  index: number;
1708
1672
  date: Date;
1709
- } | {
1710
- index: number;
1711
- date: Date;
1712
- }[];
1673
+ };
1713
1674
  };
1714
1675
  /**
1715
1676
  * @hidden
@@ -1750,7 +1711,7 @@ declare class IgxMonthPickerComponent extends IgxCalendarBaseDirective implement
1750
1711
  * @hidden
1751
1712
  * @internal
1752
1713
  */
1753
- private _activeDescendant;
1714
+ private _activeDescendant?;
1754
1715
  /**
1755
1716
  * @hidden
1756
1717
  * @internal
@@ -1843,6 +1804,26 @@ declare class IgxMonthPickerComponent extends IgxCalendarBaseDirective implement
1843
1804
  */
1844
1805
  protected set showActiveDay(value: boolean);
1845
1806
  protected get showActiveDay(): boolean;
1807
+ /**
1808
+ * Gets the date that is presented. By default it is the current date.
1809
+ *
1810
+ * @returns The date presented in the current view.
1811
+ * @example
1812
+ * ```typescript
1813
+ * const viewDate = this.monthPicker.viewDate;
1814
+ * ```
1815
+ */
1816
+ get viewDate(): Date;
1817
+ /**
1818
+ * Sets the date that will be presented in the default view when the component renders.
1819
+ *
1820
+ * @param value The date to present.
1821
+ * @example
1822
+ * ```html
1823
+ * <igx-month-picker [viewDate]="viewDate"></igx-month-picker>
1824
+ * ```
1825
+ */
1826
+ set viewDate(value: Date | string);
1846
1827
  protected get activeDescendant(): number;
1847
1828
  protected set activeDescendant(date: Date);
1848
1829
  get isDefaultView(): boolean;
@@ -1851,6 +1832,11 @@ declare class IgxMonthPickerComponent extends IgxCalendarBaseDirective implement
1851
1832
  protected onWrapperFocus(event: FocusEvent): void;
1852
1833
  protected onWrapperBlur(event: FocusEvent): void;
1853
1834
  private handlePageUpDown;
1835
+ /**
1836
+ * Drops the cached keyboard-active item so `aria-activedescendant`
1837
+ * falls back to the view date, which is rendered in the current view.
1838
+ */
1839
+ private resetActiveDescendant;
1854
1840
  private handlePageUp;
1855
1841
  private handlePageDown;
1856
1842
  private onArrowUp;
@@ -1880,10 +1866,7 @@ declare class IgxMonthPickerComponent extends IgxCalendarBaseDirective implement
1880
1866
  $implicit: {
1881
1867
  index: number;
1882
1868
  date: Date;
1883
- } | {
1884
- index: number;
1885
- date: Date;
1886
- }[];
1869
+ };
1887
1870
  };
1888
1871
  /**
1889
1872
  * Helper method building and returning the context object inside the calendar templates.
@@ -1,5 +1,4 @@
1
1
  import * as i0 from '@angular/core';
2
- import { OnInit, OnChanges, SimpleChanges } from '@angular/core';
3
2
  import * as i1 from 'igniteui-angular/directives';
4
3
 
5
4
  /**
@@ -207,8 +206,8 @@ type IgxCardActionsLayout = (typeof IgxCardActionsLayout)[keyof typeof IgxCardAc
207
206
  /**
208
207
  * Card actions is container for the card actions.
209
208
  */
210
- declare class IgxCardActionsComponent implements OnInit, OnChanges {
211
- card: IgxCardComponent | null;
209
+ declare class IgxCardActionsComponent {
210
+ card: IgxCardComponent;
212
211
  /**
213
212
  * Sets the layout style of the actions.
214
213
  * You can justify the elements slotted in the igx-card-action container
@@ -222,26 +221,22 @@ declare class IgxCardActionsComponent implements OnInit, OnChanges {
222
221
  */
223
222
  layout: IgxCardActionsLayout | string;
224
223
  /**
225
- * Sets the vertical attribute of the actions.
226
- * When set to `true` the actions will be layed out vertically.
224
+ * Sets/gets whether the actions are laid out vertically.
225
+ * When not set explicitly, it follows the `horizontal` property of the parent card.
226
+ *
227
+ * @example
228
+ * ```html
229
+ * <igx-card-actions [vertical]="true"></igx-card-actions>
230
+ * ```
227
231
  */
228
- vertical: boolean;
232
+ get vertical(): boolean;
233
+ set vertical(value: boolean);
229
234
  /**
230
235
  * A getter that returns `true` when the layout has been
231
236
  * set to `justify`.
232
237
  */
233
238
  get isJustifyLayout(): boolean;
234
- private isVerticalSet;
235
- /**
236
- * @hidden
237
- * @internal
238
- */
239
- ngOnChanges(changes: SimpleChanges): void;
240
- /**
241
- * @hidden
242
- * @internal
243
- */
244
- ngOnInit(): void;
239
+ private _vertical?;
245
240
  static ɵfac: i0.ɵɵFactoryDeclaration<IgxCardActionsComponent, never>;
246
241
  static ɵcmp: i0.ɵɵComponentDeclaration<IgxCardActionsComponent, "igx-card-actions", never, { "layout": { "alias": "layout"; "required": false; }; "vertical": { "alias": "vertical"; "required": false; }; }, {}, never, ["[igxStart], [igxButton]:not([igxEnd])", "*", "[igxEnd], [igxIconButton]:not([igxStart]), igx-icon:not([igxStart])"], true, never>;
247
242
  static ngAcceptInputType_vertical: unknown;
@@ -701,6 +701,12 @@ declare abstract class IgxComboBaseDirective implements IgxComboBase, AfterViewC
701
701
  get filteringOptions(): IComboFilteringOptions;
702
702
  set filteringOptions(value: IComboFilteringOptions);
703
703
  protected itemSize: number | undefined;
704
+ /**
705
+ * @hidden @internal
706
+ * No over-scan, so `stateChange` starts at the first visible row, as `igxFor` did.
707
+ * Otherwise a page fetched for row 20 binds at row 18.
708
+ */
709
+ protected readonly overScan = 0;
704
710
  /** The wanted window, in the shape `virtualizationState` and `dataPreLoad` use. */
705
711
  private _virtualizationState;
706
712
  /** Where the records currently bound sit, which a pending request has not moved yet. */
@@ -734,7 +734,7 @@ interface IgxTouchManagerCallbacks {
734
734
  panCancel?: (event: IgxGestureEvent) => void;
735
735
  /** Fired on pointer up when the movement stays below `tapThreshold`. Suppresses `panEnd`. */
736
736
  tap?: (event: IgxGestureEvent) => void;
737
- /** Fired on pointer up for a fast, primarily horizontal gesture, before `panEnd`. */
737
+ /** Fired on pointer up for a fast, primarily horizontal recognized pan, before `panEnd`. */
738
738
  swipe?: (event: IgxGestureEvent) => void;
739
739
  }
740
740
  /**
@@ -750,6 +750,10 @@ interface IgxTouchManagerOptions {
750
750
  setPointerCapture?: boolean;
751
751
  /** Maximum movement (in px) for a pointer up to be recognized as a tap. Defaults to `0` (disabled). */
752
752
  tapThreshold?: number;
753
+ /** Minimum movement (in px) before a pan starts. Defaults to `0`. */
754
+ panThreshold?: number;
755
+ /** Axis on which movement can start a pan. Defaults to `'all'`. */
756
+ panAxis?: 'all' | 'horizontal' | 'vertical';
753
757
  /** Minimum velocity (in px/ms) for a primarily horizontal gesture to be recognized as a swipe. Defaults to `0.3`. */
754
758
  swipeVelocityThreshold?: number;
755
759
  /**
@@ -807,6 +811,8 @@ declare class IgxTouchManager {
807
811
  private readonly _pointerTypes;
808
812
  private readonly _setPointerCapture;
809
813
  private readonly _tapThreshold;
814
+ private readonly _panThreshold;
815
+ private readonly _panAxis;
810
816
  private readonly _swipeVelocityThreshold;
811
817
  private readonly _canStart;
812
818
  private readonly _ngZone;
@@ -823,8 +829,9 @@ declare class IgxTouchManager {
823
829
  private _onPointerUp;
824
830
  private _onPointerCancel;
825
831
  private _onTouchMove;
826
- /** Stops tracking the current gesture and best-effort releases the pointer capture. */
832
+ private _canStartPan;
827
833
  private _stopTracking;
834
+ private _resetTracking;
828
835
  }
829
836
 
830
837
  /** Source of the state behind an `NgControl`. */
@@ -1380,6 +1387,7 @@ declare class BlockScrollStrategy extends ScrollStrategy {
1380
1387
  */
1381
1388
  detach(): void;
1382
1389
  private onScroll;
1390
+ private preventDefault;
1383
1391
  }
1384
1392
 
1385
1393
  /**
@@ -6237,8 +6237,9 @@ declare class IgxExcelStyleSearchComponent implements AfterViewInit, OnDestroy {
6237
6237
  */
6238
6238
  private firstVisibleIndex;
6239
6239
  /**
6240
- * Clears the focused option when no displayed item remains, so the listbox stops
6241
- * naming a row that the empty render took away.
6240
+ * Clears the focused option and scrolls back to the top when no displayed item remains, so the
6241
+ * listbox stops naming a row that the empty render took away and the next list does not open
6242
+ * at the old offset.
6242
6243
  */
6243
6244
  private reconcileEmptyList;
6244
6245
  /** Names the focused row's element while it is rendered, and nothing while it is not. */
@@ -10762,13 +10763,56 @@ declare class IgxPdfExporterService extends IgxBaseExporter {
10762
10763
  * @memberof IgxPdfExporterService
10763
10764
  */
10764
10765
  exportEnded: EventEmitter<IPdfExportEndedEventArgs>;
10765
- private _currentFontName;
10766
- private _currentBoldFontName;
10767
10766
  protected exportDataImplementation(data: IExportRecord[], options: IgxPdfExporterOptions, done: () => void): void;
10768
10767
  private drawMultiLevelHeaders;
10769
10768
  private drawHierarchicalChildren;
10770
10769
  private drawTableHeaders;
10771
10770
  private drawDataRow;
10771
+ /**
10772
+ * The value every record holds for each of its row dimensions, worked out once up front so
10773
+ * that the merging below can look down the page without searching the columns again for
10774
+ * every row it passes.
10775
+ */
10776
+ private resolveRowDimensionValues;
10777
+ /**
10778
+ * How many records from each one on carry the same row dimension value, level by level -
10779
+ * the run the grid shows as a single, merged row header cell. A value only continues a run
10780
+ * when the dimensions above it match too, so a date that repeats under two different cities
10781
+ * stays two cells. A blank value is left on its own: it is what the export falls back to
10782
+ * when it cannot work a dimension out, and merging blanks would take the row lines of the
10783
+ * dimension column with them.
10784
+ */
10785
+ private measureRowDimensionRuns;
10786
+ /**
10787
+ * Opens the row dimension cells of a record. One that a record above already covers comes
10788
+ * back with no span at all, and one that would reach past the bottom of the page is cut off
10789
+ * there - the next page opens it again, under its own redrawn headers.
10790
+ */
10791
+ private takeRowDimensionCells;
10792
+ /**
10793
+ * The value a pivot record holds for one of its row dimensions: read off the record where it
10794
+ * carries the dimension itself, and worked out from the row header columns by position where
10795
+ * it does not.
10796
+ */
10797
+ private resolveRowDimensionValue;
10798
+ /**
10799
+ * Selects the shade a header cell is filled with. Every cell that heads rather than holds
10800
+ * data takes the same one: a summary row, which closes the rows above it the way the header
10801
+ * opens them, and a pivot grid's row dimension cells, which head the record they sit on.
10802
+ */
10803
+ private setShadedFill;
10804
+ /**
10805
+ * Draws the border of a cell below the header row, together with the shaded background that
10806
+ * goes with it when the cell heads its row rather than holding one of its values.
10807
+ */
10808
+ private drawBodyCell;
10809
+ /**
10810
+ * Selects a font and measures a character with it, so that a font file jsPDF could not read
10811
+ * throws here instead of part way through drawing the table. Both steps are needed: selecting
10812
+ * a font is enough for a name that was never registered, and measuring is what reaches the
10813
+ * glyph data an unreadable file leaves missing.
10814
+ */
10815
+ private verifyFont;
10772
10816
  private saveFile;
10773
10817
  static ɵfac: i0.ɵɵFactoryDeclaration<IgxPdfExporterService, never>;
10774
10818
  static ɵprov: i0.ɵɵInjectableDeclaration<any>;
@@ -3787,6 +3787,10 @@ declare abstract class IgxGridBaseDirective implements GridType, OnInit, DoCheck
3787
3787
  private initLocale;
3788
3788
  private onResourceChange;
3789
3789
  private updateResources;
3790
+ /**
3791
+ * Setup header container listeners related to horizontal scrolling and autosize.
3792
+ */
3793
+ protected setupHeaderContainerListeners(): void;
3790
3794
  static ɵfac: i0.ɵɵFactoryDeclaration<IgxGridBaseDirective, never>;
3791
3795
  static ɵdir: i0.ɵɵDirectiveDeclaration<IgxGridBaseDirective, never, never, { "snackbarDisplayTime": { "alias": "snackbarDisplayTime"; "required": false; }; "autoGenerate": { "alias": "autoGenerate"; "required": false; }; "autoGenerateExclude": { "alias": "autoGenerateExclude"; "required": false; }; "moving": { "alias": "moving"; "required": false; }; "emptyGridTemplate": { "alias": "emptyGridTemplate"; "required": false; }; "addRowEmptyTemplate": { "alias": "addRowEmptyTemplate"; "required": false; }; "loadingGridTemplate": { "alias": "loadingGridTemplate"; "required": false; }; "summaryRowHeight": { "alias": "summaryRowHeight"; "required": false; }; "dataCloneStrategy": { "alias": "dataCloneStrategy"; "required": false; }; "clipboardOptions": { "alias": "clipboardOptions"; "required": false; }; "rowClasses": { "alias": "rowClasses"; "required": false; }; "rowStyles": { "alias": "rowStyles"; "required": false; }; "primaryKey": { "alias": "primaryKey"; "required": false; }; "uniqueColumnValuesStrategy": { "alias": "uniqueColumnValuesStrategy"; "required": false; }; "dragGhostCustomTemplate": { "alias": "dragGhostCustomTemplate"; "required": false; }; "rowEditTextTemplate": { "alias": "rowEditTextTemplate"; "required": false; }; "rowAddTextTemplate": { "alias": "rowAddTextTemplate"; "required": false; }; "rowEditActionsTemplate": { "alias": "rowEditActionsTemplate"; "required": false; }; "rowExpandedIndicatorTemplate": { "alias": "rowExpandedIndicatorTemplate"; "required": false; }; "rowCollapsedIndicatorTemplate": { "alias": "rowCollapsedIndicatorTemplate"; "required": false; }; "headerExpandedIndicatorTemplate": { "alias": "headerExpandedIndicatorTemplate"; "required": false; }; "headerCollapsedIndicatorTemplate": { "alias": "headerCollapsedIndicatorTemplate"; "required": false; }; "excelStyleHeaderIconTemplate": { "alias": "excelStyleHeaderIconTemplate"; "required": false; }; "sortAscendingHeaderIconTemplate": { "alias": "sortAscendingHeaderIconTemplate"; "required": false; }; "sortDescendingHeaderIconTemplate": { "alias": "sortDescendingHeaderIconTemplate"; "required": false; }; "sortHeaderIconTemplate": { "alias": "sortHeaderIconTemplate"; "required": false; }; "resourceStrings": { "alias": "resourceStrings"; "required": false; }; "filteringLogic": { "alias": "filteringLogic"; "required": false; }; "filteringExpressionsTree": { "alias": "filteringExpressionsTree"; "required": false; }; "advancedFilteringExpressionsTree": { "alias": "advancedFilteringExpressionsTree"; "required": false; }; "locale": { "alias": "locale"; "required": false; }; "pagingMode": { "alias": "pagingMode"; "required": false; }; "hideRowSelectors": { "alias": "hideRowSelectors"; "required": false; }; "rowDraggable": { "alias": "rowDraggable"; "required": false; }; "validationTrigger": { "alias": "validationTrigger"; "required": false; }; "rowEditable": { "alias": "rowEditable"; "required": false; }; "height": { "alias": "height"; "required": false; }; "width": { "alias": "width"; "required": false; }; "rowHeight": { "alias": "rowHeight"; "required": false; }; "columnWidth": { "alias": "columnWidth"; "required": false; }; "emptyGridMessage": { "alias": "emptyGridMessage"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; "emptyFilteredGridMessage": { "alias": "emptyFilteredGridMessage"; "required": false; }; "pinning": { "alias": "pinning"; "required": false; }; "allowFiltering": { "alias": "allowFiltering"; "required": false; }; "allowAdvancedFiltering": { "alias": "allowAdvancedFiltering"; "required": false; }; "filterMode": { "alias": "filterMode"; "required": false; }; "summaryPosition": { "alias": "summaryPosition"; "required": false; }; "summaryCalculationMode": { "alias": "summaryCalculationMode"; "required": false; }; "showSummaryOnCollapse": { "alias": "showSummaryOnCollapse"; "required": false; }; "filterStrategy": { "alias": "filterStrategy"; "required": false; }; "sortStrategy": { "alias": "sortStrategy"; "required": false; }; "mergeStrategy": { "alias": "mergeStrategy"; "required": false; }; "sortingOptions": { "alias": "sortingOptions"; "required": false; }; "selectedRows": { "alias": "selectedRows"; "required": false; }; "headSelectorTemplate": { "alias": "headSelectorTemplate"; "required": false; }; "rowSelectorTemplate": { "alias": "rowSelectorTemplate"; "required": false; }; "dragIndicatorIconTemplate": { "alias": "dragIndicatorIconTemplate"; "required": false; }; "sortingExpressions": { "alias": "sortingExpressions"; "required": false; }; "batchEditing": { "alias": "batchEditing"; "required": false; }; "cellSelection": { "alias": "cellSelection"; "required": false; }; "cellMergeMode": { "alias": "cellMergeMode"; "required": false; }; "rowSelection": { "alias": "rowSelection"; "required": false; }; "columnSelection": { "alias": "columnSelection"; "required": false; }; "expansionStates": { "alias": "expansionStates"; "required": false; }; "outlet": { "alias": "outlet"; "required": false; }; "totalRecords": { "alias": "totalRecords"; "required": false; }; "selectRowOnClick": { "alias": "selectRowOnClick"; "required": false; }; }, { "filteringExpressionsTreeChange": "filteringExpressionsTreeChange"; "advancedFilteringExpressionsTreeChange": "advancedFilteringExpressionsTreeChange"; "gridScroll": "gridScroll"; "cellClick": "cellClick"; "rowClick": "rowClick"; "formGroupCreated": "formGroupCreated"; "validationStatusChange": "validationStatusChange"; "selected": "selected"; "rowSelectionChanging": "rowSelectionChanging"; "columnSelectionChanging": "columnSelectionChanging"; "columnPin": "columnPin"; "columnPinned": "columnPinned"; "cellEditEnter": "cellEditEnter"; "cellEditExit": "cellEditExit"; "cellEdit": "cellEdit"; "cellEditDone": "cellEditDone"; "rowEditEnter": "rowEditEnter"; "rowEdit": "rowEdit"; "rowEditDone": "rowEditDone"; "rowEditExit": "rowEditExit"; "columnInit": "columnInit"; "sorting": "sorting"; "sortingDone": "sortingDone"; "filtering": "filtering"; "filteringDone": "filteringDone"; "rowAdded": "rowAdded"; "rowDeleted": "rowDeleted"; "rowDelete": "rowDelete"; "rowAdd": "rowAdd"; "columnResized": "columnResized"; "contextMenu": "contextMenu"; "doubleClick": "doubleClick"; "columnVisibilityChanging": "columnVisibilityChanging"; "columnVisibilityChanged": "columnVisibilityChanged"; "columnMovingStart": "columnMovingStart"; "columnMoving": "columnMoving"; "columnMovingEnd": "columnMovingEnd"; "gridKeydown": "gridKeydown"; "rowDragStart": "rowDragStart"; "rowDragEnd": "rowDragEnd"; "gridCopy": "gridCopy"; "expansionStatesChange": "expansionStatesChange"; "selectedRowsChange": "selectedRowsChange"; "rowToggle": "rowToggle"; "rowPinning": "rowPinning"; "rowPinned": "rowPinned"; "activeNodeChange": "activeNodeChange"; "sortingExpressionsChange": "sortingExpressionsChange"; "toolbarExporting": "toolbarExporting"; "rangeSelected": "rangeSelected"; "rendered": "rendered"; "localeChange": "localeChange"; "dataChanging": "dataChanging"; "dataChanged": "dataChanged"; }, ["excelStyleLoadingValuesTemplateDirective", "rowAddText", "rowExpandedIndicatorDirectiveTemplate", "rowCollapsedIndicatorDirectiveTemplate", "headerExpandedIndicatorDirectiveTemplate", "headerCollapsedIndicatorDirectiveTemplate", "excelStyleHeaderIconDirectiveTemplate", "sortAscendingHeaderIconDirectiveTemplate", "sortDescendingHeaderIconDirectiveTemplate", "sortHeaderIconDirectiveTemplate", "loadingDirectiveTemplate", "emptyDirectiveTemplate", "excelStyleFilteringComponents", "columnList", "headSelectorsTemplates", "rowSelectorsTemplates", "dragGhostCustomTemplates", "rowEditCustomDirectives", "rowEditTextDirectives", "rowEditActionsDirectives", "actionStripComponents", "dragIndicatorIconTemplates", "rowEditTabsCUSTOM", "toolbar", "paginationComponents"], never, true, never>;
3792
3796
  static ngAcceptInputType_autoGenerate: unknown;
@@ -44,7 +44,11 @@ declare class IgxGridLiteColumnComponent<T extends object = any> {
44
44
  /** Reference to the embedded view for the header template and its template function. */
45
45
  private headerViewRef?;
46
46
  protected headerTemplateFunc?: (ctx: IgcHeaderContext<T>) => Node[];
47
- /** Reference to the embedded view for the cell template and its template function. */
47
+ /**
48
+ * Embedded views for the cell template, one per cell element, and the template function.
49
+ * Keyed by cell, not by row data: the virtualizer recycles rows by index, so a cell can
50
+ * show another record without re-rendering, while a view keyed by data would move away.
51
+ */
48
52
  private cellViewRefs?;
49
53
  protected cellTemplateFunc?: (ctx: IgcCellContext<T>) => Node[];
50
54
  /** Template directives used for inline templating */
@@ -1074,6 +1074,10 @@ declare class IgxPivotGridComponent extends IgxGridBaseDirective implements OnIn
1074
1074
  * Notifies for dimension change.
1075
1075
  */
1076
1076
  notifyDimensionChange(regenerateColumns?: boolean): void;
1077
+ /**
1078
+ * @hidden @internal
1079
+ */
1080
+ _zoneBegoneListeners(): void;
1077
1081
  /**
1078
1082
  * Gets the full list of dimensions.
1079
1083
  *
@@ -1585,7 +1589,7 @@ interface IDataSelectorPanel {
1585
1589
  declare class IgxPivotDataSelectorComponent implements OnDestroy {
1586
1590
  private renderer;
1587
1591
  private cdr;
1588
- private pivotConfigChangeSub;
1592
+ private pivotConfigChangeSub?;
1589
1593
  protected pipeRetrigger: number;
1590
1594
  /**
1591
1595
  * Gets/sets whether the columns panel is expanded
@@ -451,6 +451,7 @@ declare class IgxNavigationDrawerComponent implements IToggleView, OnInit, After
451
451
  private updateEdgeZone;
452
452
  private checkPinThreshold;
453
453
  private swipe;
454
+ private canStartPan;
454
455
  private panStart;
455
456
  private pan;
456
457
  private panEnd;
@@ -331,6 +331,11 @@ declare class IgxRadioGroupDirective implements ControlValueAccessor, OnDestroy,
331
331
  * @internal
332
332
  */
333
333
  private _onChangeCallback;
334
+ /**
335
+ * @hidden
336
+ * @internal
337
+ */
338
+ private _onTouchedCallback;
334
339
  /**
335
340
  * @hidden
336
341
  * @internal