igniteui-angular 19.2.0-beta.0 → 19.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 (43) hide show
  1. package/fesm2022/igniteui-angular.mjs +250 -48
  2. package/fesm2022/igniteui-angular.mjs.map +1 -1
  3. package/lib/core/styles/components/action-strip/_action-strip-theme.scss +6 -0
  4. package/lib/core/styles/components/calendar/_calendar-component.scss +12 -0
  5. package/lib/core/styles/components/calendar/_calendar-theme.scss +86 -9
  6. package/lib/core/styles/components/card/_card-theme.scss +8 -0
  7. package/lib/core/styles/components/input/_input-group-theme.scss +16 -1
  8. package/lib/core/styles/components/list/_list-theme.scss +7 -5
  9. package/lib/data-operations/expressions-tree-util.d.ts +1 -1
  10. package/lib/data-operations/filtering-strategy.d.ts +2 -1
  11. package/lib/grids/common/enums.d.ts +5 -4
  12. package/lib/grids/common/grid.interface.d.ts +1 -0
  13. package/lib/grids/filtering/advanced-filtering/advanced-filtering-dialog.component.d.ts +2 -5
  14. package/lib/grids/grid-base.directive.d.ts +3 -1
  15. package/lib/grids/hierarchical-grid/hierarchical-grid.component.d.ts +22 -2
  16. package/lib/query-builder/query-builder-tree.component.d.ts +7 -1
  17. package/package.json +2 -2
  18. package/styles/igniteui-angular-dark.css +1 -1
  19. package/styles/igniteui-angular.css +1 -1
  20. package/styles/igniteui-bootstrap-dark.css +1 -1
  21. package/styles/igniteui-bootstrap-light.css +1 -1
  22. package/styles/igniteui-dark-green.css +1 -1
  23. package/styles/igniteui-fluent-dark-excel.css +1 -1
  24. package/styles/igniteui-fluent-dark-word.css +1 -1
  25. package/styles/igniteui-fluent-dark.css +1 -1
  26. package/styles/igniteui-fluent-light-excel.css +1 -1
  27. package/styles/igniteui-fluent-light-word.css +1 -1
  28. package/styles/igniteui-fluent-light.css +1 -1
  29. package/styles/igniteui-indigo-dark.css +1 -1
  30. package/styles/igniteui-indigo-light.css +1 -1
  31. package/styles/maps/igniteui-angular-dark.css.map +1 -1
  32. package/styles/maps/igniteui-angular.css.map +1 -1
  33. package/styles/maps/igniteui-bootstrap-dark.css.map +1 -1
  34. package/styles/maps/igniteui-bootstrap-light.css.map +1 -1
  35. package/styles/maps/igniteui-dark-green.css.map +1 -1
  36. package/styles/maps/igniteui-fluent-dark-excel.css.map +1 -1
  37. package/styles/maps/igniteui-fluent-dark-word.css.map +1 -1
  38. package/styles/maps/igniteui-fluent-dark.css.map +1 -1
  39. package/styles/maps/igniteui-fluent-light-excel.css.map +1 -1
  40. package/styles/maps/igniteui-fluent-light-word.css.map +1 -1
  41. package/styles/maps/igniteui-fluent-light.css.map +1 -1
  42. package/styles/maps/igniteui-indigo-dark.css.map +1 -1
  43. package/styles/maps/igniteui-indigo-light.css.map +1 -1
@@ -200,5 +200,11 @@
200
200
  igx-icon {
201
201
  color: var-get($theme, 'delete-action');
202
202
  }
203
+
204
+ [igxIconButton] {
205
+ igx-icon {
206
+ color: var-get($theme, 'delete-action');
207
+ }
208
+ }
203
209
  }
204
210
  }
@@ -393,6 +393,18 @@
393
393
  @extend %date-last-preview-special !optional;
394
394
  }
395
395
 
396
+ @include e(date, $mods: ('first', 'range-preview', 'active')) {
397
+ @extend %date-first-preview-active !optional;
398
+ }
399
+
400
+ @include e(date, $mods: ('last', 'range-preview', 'active')) {
401
+ @extend %date-last-preview-active !optional;
402
+ }
403
+
404
+ @include e(date, $mods: ('first', 'last', 'selected')) {
405
+ @extend %date-first-last-selected !optional;
406
+ }
407
+
396
408
  @include e(date, $mods: ('first', 'range-preview', 'special', 'current')) {
397
409
  @extend %date-first-preview-special-current !optional;
398
410
  }
@@ -1543,7 +1543,9 @@
1543
1543
  %date-selected-special-active {
1544
1544
  %date-inner {
1545
1545
  &::after {
1546
- border-color: var-get($theme, 'date-selected-special-focus-border-color');
1546
+ @if $variant != 'fluent' {
1547
+ border-color: var-get($theme, 'date-selected-special-focus-border-color');
1548
+ }
1547
1549
  }
1548
1550
  }
1549
1551
  }
@@ -1606,7 +1608,9 @@
1606
1608
  %date-selected-special-current-first-last {
1607
1609
  %date-inner {
1608
1610
  &::after {
1609
- border-color: var-get($theme, 'date-selected-special-border-color');
1611
+ @if $variant != 'fluent' {
1612
+ border-color: var-get($theme, 'date-selected-special-border-color');
1613
+ }
1610
1614
  }
1611
1615
  }
1612
1616
  }
@@ -1779,7 +1783,9 @@
1779
1783
  %date-special-current-selected-active {
1780
1784
  %date-inner {
1781
1785
  &::after {
1782
- border-color: var-get($theme, 'date-selected-special-border-color');
1786
+ @if $variant != 'fluent' {
1787
+ border-color: var-get($theme, 'date-selected-special-border-color');
1788
+ }
1783
1789
  }
1784
1790
  }
1785
1791
  }
@@ -1852,6 +1858,16 @@
1852
1858
  }
1853
1859
  }
1854
1860
 
1861
+ @if $variant == 'fluent' {
1862
+ %date-selected-current-special {
1863
+ %date-inner {
1864
+ &::after {
1865
+ border-color: var-get($theme, 'date-selected-current-background');
1866
+ }
1867
+ }
1868
+ }
1869
+ }
1870
+
1855
1871
  %date-inactive {
1856
1872
  cursor: default;
1857
1873
 
@@ -2007,7 +2023,7 @@
2007
2023
  %date-selected-current-range-special-active:not(%date-selected-current-range-special-first),
2008
2024
  %date-selected-current-range-special-active:not(%date-selected-current-range-special-last) {
2009
2025
  %date-inner {
2010
- @if not $bootstrap-theme {
2026
+ @if not $bootstrap-theme and not $variant == 'fluent' {
2011
2027
  color: var-get($theme, 'date-special-focus-foreground');
2012
2028
  }
2013
2029
 
@@ -2157,7 +2173,6 @@
2157
2173
  position: absolute;
2158
2174
  height: $date-size;
2159
2175
  width: $date-size;
2160
- border-radius: var-get($theme, 'date-border-radius');
2161
2176
  }
2162
2177
  }
2163
2178
 
@@ -2183,7 +2198,32 @@
2183
2198
  &::after {
2184
2199
  width: $date-inner-size;
2185
2200
  height: $date-inner-size;
2186
- border-color: var-get($theme, 'date-selected-special-border-color');
2201
+
2202
+ @if $variant != 'fluent' {
2203
+ border-color: var-get($theme, 'date-selected-special-border-color');
2204
+ }
2205
+ }
2206
+ }
2207
+ }
2208
+
2209
+ @if $variant == 'fluent' {
2210
+ %date-first-preview-active {
2211
+ %date-inner {
2212
+ background: transparent;
2213
+ border-inline-end-color: transparent;
2214
+ }
2215
+ }
2216
+
2217
+ %date-last-preview-active {
2218
+ %date-inner {
2219
+ background: transparent;
2220
+ border-inline-start-color: transparent;
2221
+ }
2222
+ }
2223
+
2224
+ %date-first-last-selected {
2225
+ %date-inner {
2226
+ background: transparent;
2187
2227
  }
2188
2228
  }
2189
2229
  }
@@ -2303,7 +2343,7 @@
2303
2343
  content: '';
2304
2344
  position: absolute;
2305
2345
  height: $date-size;
2306
- width: calc($date-size / 2 + #{$border-size});
2346
+ width: $date-size;
2307
2347
  border: rem(1px) solid var-get($theme, 'date-range-border-color');
2308
2348
  z-index: 3;
2309
2349
  pointer-events: none;
@@ -2311,16 +2351,53 @@
2311
2351
  }
2312
2352
 
2313
2353
  %date-range-selected-first {
2354
+ %date-inner {
2355
+ border-start-end-radius: var-get($theme, 'date-border-radius');
2356
+ border-end-end-radius: var-get($theme, 'date-border-radius');
2357
+ }
2358
+
2314
2359
  &::before {
2315
- inset-inline-end: calc(50% - #{$border-size});
2316
2360
  border-inline-end-color: transparent;
2361
+ border-start-start-radius: var-get($theme, 'date-range-border-radius');
2362
+ border-end-start-radius: var-get($theme, 'date-range-border-radius');
2317
2363
  }
2318
2364
  }
2319
2365
 
2320
2366
  %date-range-selected-last {
2367
+ %date-inner {
2368
+ border-start-start-radius: var-get($theme, 'date-border-radius');
2369
+ border-end-start-radius: var-get($theme, 'date-border-radius');
2370
+ }
2371
+
2321
2372
  &::before {
2322
- inset-inline-start: calc(50% - #{$border-size});
2323
2373
  border-inline-start-color: transparent;
2374
+ border-start-end-radius: var-get($theme, 'date-range-border-radius');
2375
+ border-end-end-radius: var-get($theme, 'date-range-border-radius');
2376
+ }
2377
+ }
2378
+
2379
+
2380
+ %date-first-preview {
2381
+ %date-inner {
2382
+ border-start-start-radius: var-get($theme, 'date-range-border-radius');
2383
+ border-end-start-radius: var-get($theme, 'date-range-border-radius');
2384
+ border-start-end-radius: 0;
2385
+ border-end-end-radius: 0;
2386
+ }
2387
+ }
2388
+
2389
+ %date-last-preview {
2390
+ %date-inner {
2391
+ border-start-end-radius: var-get($theme, 'date-range-border-radius');
2392
+ border-end-end-radius: var-get($theme, 'date-range-border-radius');
2393
+ border-start-start-radius: 0;
2394
+ border-end-start-radius: 0;
2395
+ }
2396
+ }
2397
+
2398
+ %date-first-last {
2399
+ %date-inner {
2400
+ border-radius: var-get($theme, 'date-range-border-radius');
2324
2401
  }
2325
2402
  }
2326
2403
  }
@@ -327,6 +327,10 @@
327
327
  margin-inline-start: auto;
328
328
  gap: rem(8px);
329
329
 
330
+ [igxIconButton] {
331
+ color: var-get($theme, 'actions-text-color');
332
+ }
333
+
330
334
  &:empty {
331
335
  display: none;
332
336
  }
@@ -338,6 +342,10 @@
338
342
  order: 0;
339
343
  gap: rem(8px);
340
344
 
345
+ [igxIconButton] {
346
+ color: var-get($theme, 'actions-text-color');
347
+ }
348
+
341
349
  &:empty {
342
350
  display: none;
343
351
  }
@@ -1648,6 +1648,18 @@
1648
1648
  [igxPrefix] {
1649
1649
  overflow: hidden;
1650
1650
  }
1651
+
1652
+ igx-prefix,
1653
+ [igxPrefix] {
1654
+ background: var(--igx-input-group-input-prefix-background, transparent);
1655
+ color: var(--igx-input-group-input-prefix-color, var(--ig-primary-500));
1656
+ }
1657
+
1658
+ igx-suffix,
1659
+ [igxSuffix] {
1660
+ background: var(--igx-input-group-input-suffix-background, transparent);
1661
+ color: var(--igx-input-group-input-suffix-color, var(--ig-primary-500));
1662
+ }
1651
1663
  }
1652
1664
 
1653
1665
  %igx-input-group-fluent-search--focused {
@@ -1731,6 +1743,10 @@
1731
1743
  %form-group-bundle--fluent--focus {
1732
1744
  border-color: var-get($theme, 'focused-border-color');
1733
1745
  border-width: rem(2px);
1746
+
1747
+ &:hover {
1748
+ border-color: var-get($theme, 'focused-border-color');
1749
+ }
1734
1750
  }
1735
1751
 
1736
1752
  %form-group-bundle-error--fluent,
@@ -1846,7 +1862,6 @@
1846
1862
  }
1847
1863
 
1848
1864
  %fluent-label-focused {
1849
- color: color(null, 'gray', 800);
1850
1865
  transform: translateY(0) scale(1);
1851
1866
  }
1852
1867
 
@@ -425,7 +425,6 @@
425
425
  justify-content: center;
426
426
  border-radius: var-get($theme, 'item-border-radius');
427
427
  color: var-get($theme, 'item-text-color');
428
- background: var-get($theme, 'item-background');
429
428
 
430
429
  @if $bootstrap-theme or $variant == 'fluent' {
431
430
  border-bottom: var-get($theme, 'border-width') solid var-get($theme, 'border-color');
@@ -436,9 +435,6 @@
436
435
  }
437
436
 
438
437
  &:hover {
439
- color: var-get($theme, 'item-text-color-hover');
440
- background: var-get($theme, 'item-background-hover');
441
-
442
438
  %igx-list__item-lines {
443
439
  color: currentColor;
444
440
  }
@@ -544,9 +540,15 @@
544
540
  align-items: center;
545
541
  position: relative;
546
542
  border-radius: var-get($theme, 'item-border-radius');
547
- background: inherit;
543
+ background: var-get($theme, 'item-background');
548
544
  z-index: 2;
549
545
  gap: if($variant == 'indigo', rem(8px), rem(16px));
546
+
547
+ &:hover,
548
+ &:focus-within {
549
+ color: var-get($theme, 'item-text-color-hover');
550
+ background: var-get($theme, 'item-background-hover');
551
+ }
550
552
  }
551
553
 
552
554
  %igx-list-header,
@@ -31,7 +31,7 @@ export declare function isTree(entry: IExpressionTree | IFilteringExpression): e
31
31
  * @param entities An array of entities to use for recreating the tree.
32
32
  * @returns The recreated expression tree.
33
33
  */
34
- export declare function recreateTree(tree: IExpressionTree, entities: EntityType[]): IExpressionTree;
34
+ export declare function recreateTree(tree: IExpressionTree, entities: EntityType[], isRoot?: boolean): IExpressionTree;
35
35
  /**
36
36
  * Recreates the tree from a given array of fields by applying the correct operands.
37
37
  * It is recommended to use `recreateTree` if there will be multiple entities in the tree
@@ -16,7 +16,8 @@ export interface IgxFilterItem {
16
16
  }
17
17
  export declare abstract class BaseFilteringStrategy implements IFilteringStrategy {
18
18
  findMatchByExpression(rec: any, expr: IFilteringExpression, isDate?: boolean, isTime?: boolean, grid?: GridType): boolean;
19
- matchRecord(rec: any, expressions: IFilteringExpressionsTree | IFilteringExpression, grid?: GridType): boolean;
19
+ matchRecord(rec: any, expressions: IFilteringExpressionsTree | IFilteringExpression, grid?: GridType, entity?: string): boolean;
20
+ private findEntityByName;
20
21
  getFilterItems(column: ColumnType, tree: IFilteringExpressionsTree): Promise<IgxFilterItem[]>;
21
22
  protected getFilterItemLabel(column: ColumnType, value: any, applyFormatter: boolean, data: any): any;
22
23
  protected getUniqueFilterItems(column: ColumnType, filterItems: IgxFilterItem[]): any[];
@@ -89,10 +89,11 @@ export declare enum RowPinningPosition {
89
89
  * - Local: The grid will use local data to extract pages during paging.
90
90
  * - Remote: The grid will expect pages to be delivered from a remote location and will only raise events during paging interactions.
91
91
  */
92
- export declare enum GridPagingMode {
93
- Local = 0,
94
- Remote = 1
95
- }
92
+ export declare const GridPagingMode: {
93
+ Local: "local";
94
+ Remote: "remote";
95
+ };
96
+ export type GridPagingMode = (typeof GridPagingMode)[keyof typeof GridPagingMode];
96
97
  /**
97
98
  * @hidden @internal
98
99
  *
@@ -1354,4 +1354,5 @@ export interface IClipboardOptions {
1354
1354
  export interface EntityType {
1355
1355
  name: string;
1356
1356
  fields: FieldType[];
1357
+ childEntities?: EntityType[];
1357
1358
  }
@@ -3,7 +3,7 @@ import { IgxOverlayService } from '../../../services/overlay/overlay';
3
3
  import { IDragStartEventArgs } from '../../../directives/drag-drop/drag-drop.directive';
4
4
  import { IActiveNode } from '../../grid-navigation.service';
5
5
  import { PlatformUtil } from '../../../core/utils';
6
- import { FieldType, GridType } from '../../common/grid.interface';
6
+ import { EntityType, FieldType, GridType } from '../../common/grid.interface';
7
7
  import { IgxQueryBuilderComponent } from '../../../query-builder/query-builder.component';
8
8
  import * as i0 from "@angular/core";
9
9
  /**
@@ -100,10 +100,7 @@ export declare class IgxAdvancedFilteringDialogComponent implements AfterViewIni
100
100
  /**
101
101
  * @hidden @internal
102
102
  */
103
- generateEntity(): {
104
- name: any;
105
- fields: FieldType[];
106
- }[];
103
+ generateEntity(): EntityType[];
107
104
  private assignResourceStrings;
108
105
  static ɵfac: i0.ɵɵFactoryDeclaration<IgxAdvancedFilteringDialogComponent, never>;
109
106
  static ɵcmp: i0.ɵɵComponentDeclaration<IgxAdvancedFilteringDialogComponent, "igx-advanced-filtering-dialog", never, { "grid": { "alias": "grid"; "required": false; }; }, {}, never, never, true, never>;
@@ -28,7 +28,7 @@ import { IgxColumnResizingService } from './resizing/resizing.service';
28
28
  import { IFilteringStrategy } from '../data-operations/filtering-strategy';
29
29
  import { GridSelectionMode, GridSummaryPosition, GridSummaryCalculationMode, FilterMode, GridPagingMode, GridValidationTrigger, Size } from './common/enums';
30
30
  import { IGridCellEventArgs, IRowSelectionEventArgs, IPinColumnEventArgs, IRowDataEventArgs, IColumnResizeEventArgs, IColumnMovingStartEventArgs, IColumnMovingEventArgs, IColumnMovingEndEventArgs, IGridKeydownEventArgs, IRowDragStartEventArgs, IRowDragEndEventArgs, IGridClipboardEvent, IGridToolbarExportEventArgs, ISearchInfo, ICellPosition, IRowToggleEventArgs, IColumnSelectionEventArgs, IPinRowEventArgs, IGridScrollEventArgs, IActiveNodeChangeEventArgs, ISortingEventArgs, IFilteringEventArgs, IColumnVisibilityChangedEventArgs, IColumnVisibilityChangingEventArgs, IPinColumnCancellableEventArgs, IGridEditEventArgs, IRowDataCancelableEventArgs, IGridEditDoneEventArgs, IGridRowEventArgs, IGridContextMenuEventArgs, IColumnsAutoGeneratedEventArgs } from './common/events';
31
- import { ColumnType, GridServiceType, GridType, IGridFormGroupCreatedEventArgs, IGridValidationStatusEventArgs, IgxGridEmptyTemplateContext, IgxGridHeaderTemplateContext, IgxGridRowDragGhostContext, IgxGridRowEditActionsTemplateContext, IgxGridRowEditTemplateContext, IgxGridRowEditTextTemplateContext, IgxGridRowTemplateContext, IgxGridTemplateContext, IgxHeadSelectorTemplateContext, IgxRowSelectorTemplateContext, ISizeInfo, RowType, IPinningConfig, IClipboardOptions } from './common/grid.interface';
31
+ import { ColumnType, GridServiceType, GridType, IGridFormGroupCreatedEventArgs, IGridValidationStatusEventArgs, IgxGridEmptyTemplateContext, IgxGridHeaderTemplateContext, IgxGridRowDragGhostContext, IgxGridRowEditActionsTemplateContext, IgxGridRowEditTemplateContext, IgxGridRowEditTextTemplateContext, IgxGridRowTemplateContext, IgxGridTemplateContext, IgxHeadSelectorTemplateContext, IgxRowSelectorTemplateContext, ISizeInfo, RowType, IPinningConfig, IClipboardOptions, EntityType } from './common/grid.interface';
32
32
  import { DropPosition } from './moving/moving.service';
33
33
  import { IgxColumnComponent } from './columns/column.component';
34
34
  import { IgxSnackbarComponent } from '../snackbar/snackbar.component';
@@ -1932,6 +1932,7 @@ export declare abstract class IgxGridBaseDirective implements GridType, OnInit,
1932
1932
  protected _autoGeneratedColsRefs: ComponentRef<IgxColumnComponent>[];
1933
1933
  protected _dataView: any[];
1934
1934
  protected _lastSearchInfo: ISearchInfo;
1935
+ protected _hGridSchema: EntityType[];
1935
1936
  protected gridComputedStyles: any;
1936
1937
  /** @hidden @internal */
1937
1938
  get paginator(): IgxPaginatorComponent;
@@ -3533,6 +3534,7 @@ export declare abstract class IgxGridBaseDirective implements GridType, OnInit,
3533
3534
  * Clears the current navigation service active node
3534
3535
  */
3535
3536
  private clearActiveNode;
3537
+ private getRecreatedTree;
3536
3538
  static ɵfac: i0.ɵɵFactoryDeclaration<IgxGridBaseDirective, [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, { optional: true; }]>;
3537
3539
  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; }; "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; }; "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"; "columnsAutogenerated": "columnsAutogenerated"; "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", "excelStyleFilteringComponents", "columnList", "actionStripComponents", "headSelectorsTemplates", "rowSelectorsTemplates", "dragGhostCustomTemplates", "rowEditCustomDirectives", "rowEditTextDirectives", "rowEditActionsDirectives", "dragIndicatorIconTemplates", "rowEditTabsCUSTOM", "toolbar", "paginationComponents"], never, true, never>;
3538
3540
  static ngAcceptInputType_autoGenerate: unknown;
@@ -3,10 +3,11 @@ import { IgxHierarchicalGridAPIService } from './hierarchical-grid-api.service';
3
3
  import { IgxRowIslandComponent } from './row-island.component';
4
4
  import { IgxColumnComponent } from '../columns/column.component';
5
5
  import { IgxHierarchicalGridBaseDirective } from './hierarchical-grid-base.directive';
6
- import { CellType, GridType, RowType } from '../common/grid.interface';
6
+ import { CellType, EntityType, GridType, RowType } from '../common/grid.interface';
7
7
  import type { IgxPaginatorComponent } from '../../paginator/paginator.component';
8
8
  import { IgxGridExcelStyleFilteringComponent } from '../filtering/excel-style/excel-style-filtering.component';
9
9
  import { IgxActionStripToken } from '../../action-strip/token';
10
+ import { IFilteringExpressionsTree } from '../../data-operations/filtering-expressions-tree';
10
11
  import * as i0 from "@angular/core";
11
12
  /**
12
13
  * @hidden @internal
@@ -159,6 +160,8 @@ export declare class IgxHierarchicalGridComponent extends IgxHierarchicalGridBas
159
160
  protected actionStripComponents: QueryList<IgxActionStripToken>;
160
161
  /** @hidden @internal */
161
162
  get actionStrip(): IgxActionStripToken;
163
+ get advancedFilteringExpressionsTree(): IFilteringExpressionsTree;
164
+ set advancedFilteringExpressionsTree(value: IFilteringExpressionsTree);
162
165
  private _data;
163
166
  private h_id;
164
167
  private childGridTemplates;
@@ -229,6 +232,21 @@ export declare class IgxHierarchicalGridComponent extends IgxHierarchicalGridBas
229
232
  * @memberof IgxHierarchicalGridComponent
230
233
  */
231
234
  get expandChildren(): boolean;
235
+ /**
236
+ * Gets/Sets the schema for the hierarchical grid.
237
+ * This schema defines the structure and properties of the data displayed in the grid.
238
+ * @Input()
239
+ * @param {EntityType[]} entities - An array of EntityType objects representing the grid's schema.
240
+ * @remarks
241
+ * This property is required in remote data filtering scenarios.
242
+ * @example
243
+ * ```typescript
244
+ * const schema = this.grid.schema;
245
+ * this.grid.schema = [{ name: 'Products', fields: [...], childEntities: [...] }];
246
+ * ```
247
+ */
248
+ set schema(entities: EntityType[]);
249
+ get schema(): EntityType[];
232
250
  /**
233
251
  * Gets the unique identifier of the parent row. It may be a `string` or `number` if `primaryKey` of the
234
252
  * parent grid is set or an object reference of the parent record otherwise.
@@ -433,7 +451,9 @@ export declare class IgxHierarchicalGridComponent extends IgxHierarchicalGridBas
433
451
  protected _shouldAutoSize(renderedHeight: any): boolean;
434
452
  private updateColumnList;
435
453
  private _clearSeletionHighlights;
454
+ private generateSchema;
455
+ private generateChildEntity;
436
456
  static ɵfac: i0.ɵɵFactoryDeclaration<IgxHierarchicalGridComponent, never>;
437
- static ɵcmp: i0.ɵɵComponentDeclaration<IgxHierarchicalGridComponent, "igx-hierarchical-grid", never, { "id": { "alias": "id"; "required": false; }; "data": { "alias": "data"; "required": false; }; "totalItemCount": { "alias": "totalItemCount"; "required": false; }; "expandChildren": { "alias": "expandChildren"; "required": false; }; }, {}, ["childLayoutList", "allLayoutList", "paginatorList", "actionStripComponents"], ["igx-grid-toolbar,igc-grid-toolbar", "igx-grid-footer,igc-grid-footer", "igx-paginator,igc-paginator", "igx-grid-state,igc-grid-state", "igx-column,igc-column,igx-column-group,igc-column-group,igx-action-strip,igc-action-strip", "igx-row-island,igc-row-island"], true, never>;
457
+ static ɵcmp: i0.ɵɵComponentDeclaration<IgxHierarchicalGridComponent, "igx-hierarchical-grid", never, { "id": { "alias": "id"; "required": false; }; "data": { "alias": "data"; "required": false; }; "totalItemCount": { "alias": "totalItemCount"; "required": false; }; "expandChildren": { "alias": "expandChildren"; "required": false; }; "schema": { "alias": "schema"; "required": false; }; }, {}, ["childLayoutList", "allLayoutList", "paginatorList", "actionStripComponents"], ["igx-grid-toolbar,igc-grid-toolbar", "igx-grid-footer,igc-grid-footer", "igx-paginator,igc-paginator", "igx-grid-state,igc-grid-state", "igx-column,igc-column,igx-column-group,igc-column-group,igx-action-strip,igc-action-strip", "igx-row-island,igc-row-island"], true, never>;
438
458
  static ngAcceptInputType_expandChildren: unknown;
439
459
  }
@@ -90,6 +90,10 @@ export declare class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDe
90
90
  * Returns the resource strings.
91
91
  */
92
92
  get resourceStrings(): IQueryBuilderResourceStrings;
93
+ /**
94
+ * Gets/sets the expected return field.
95
+ */
96
+ expectedReturnField: string;
93
97
  /**
94
98
  * Event fired as the expression tree is changed.
95
99
  */
@@ -230,6 +234,8 @@ export declare class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDe
230
234
  /** @hidden */
231
235
  protected isAdvancedFiltering(): boolean;
232
236
  /** @hidden */
237
+ protected isHierarchicalNestedQuery(): boolean;
238
+ /** @hidden */
233
239
  protected isSearchValueInputDisabled(): boolean;
234
240
  constructor(cdr: ChangeDetectorRef, dragService: IgxQueryBuilderDragService, platform: PlatformUtil, elRef: ElementRef, _localeId: string);
235
241
  /**
@@ -499,5 +505,5 @@ export declare class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDe
499
505
  /** rootGroup is recreated after clicking Apply, which sets new expressionTree and calls init()*/
500
506
  protected trackExpressionItem: typeof trackByIdentity;
501
507
  static ɵfac: i0.ɵɵFactoryDeclaration<IgxQueryBuilderTreeComponent, never>;
502
- static ɵcmp: i0.ɵɵComponentDeclaration<IgxQueryBuilderTreeComponent, "igx-query-builder-tree", never, { "entities": { "alias": "entities"; "required": false; }; "queryBuilder": { "alias": "queryBuilder"; "required": false; }; "searchValueTemplate": { "alias": "searchValueTemplate"; "required": false; }; "parentExpression": { "alias": "parentExpression"; "required": false; }; "fields": { "alias": "fields"; "required": false; }; "expressionTree": { "alias": "expressionTree"; "required": false; }; "locale": { "alias": "locale"; "required": false; }; "resourceStrings": { "alias": "resourceStrings"; "required": false; }; }, { "expressionTreeChange": "expressionTreeChange"; "inEditModeChange": "inEditModeChange"; }, never, never, true, never>;
508
+ static ɵcmp: i0.ɵɵComponentDeclaration<IgxQueryBuilderTreeComponent, "igx-query-builder-tree", never, { "entities": { "alias": "entities"; "required": false; }; "queryBuilder": { "alias": "queryBuilder"; "required": false; }; "searchValueTemplate": { "alias": "searchValueTemplate"; "required": false; }; "parentExpression": { "alias": "parentExpression"; "required": false; }; "fields": { "alias": "fields"; "required": false; }; "expressionTree": { "alias": "expressionTree"; "required": false; }; "locale": { "alias": "locale"; "required": false; }; "resourceStrings": { "alias": "resourceStrings"; "required": false; }; "expectedReturnField": { "alias": "expectedReturnField"; "required": false; }; }, { "expressionTreeChange": "expressionTreeChange"; "inEditModeChange": "inEditModeChange"; }, never, never, true, never>;
503
509
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "igniteui-angular",
3
- "version": "19.2.0-beta.0",
3
+ "version": "19.2.0-rc.0",
4
4
  "description": "Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps",
5
5
  "author": "Infragistics",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -73,7 +73,7 @@
73
73
  "tslib": "^2.3.0",
74
74
  "igniteui-trial-watermark": "^3.0.2",
75
75
  "lodash-es": "^4.17.21",
76
- "igniteui-theming": "^17.1.0",
76
+ "igniteui-theming": "^17.2.0",
77
77
  "@igniteui/material-icons-extended": "^3.1.0"
78
78
  },
79
79
  "peerDependencies": {