@progress/kendo-angular-pivotgrid 21.1.1-develop.2 → 21.2.0-develop.2

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.
@@ -15,7 +15,7 @@ export { AggregateType, averageAggregate, countAggregate, createAggregate, maxAg
15
15
  import { filterIcon, columnsIcon, rowsIcon, arrowLeftIcon, arrowRightIcon, sortAscSmallIcon, sortDescSmallIcon, moreVerticalIcon, chevronUpIcon, chevronDownIcon, gearIcon } from '@progress/kendo-svg-icons';
16
16
  import * as i1$1 from '@progress/kendo-angular-l10n';
17
17
  import { ComponentMessages, LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';
18
- import { NgClass, NgIf, NgTemplateOutlet, NgStyle, NgFor } from '@angular/common';
18
+ import { NgClass, NgTemplateOutlet, NgStyle } from '@angular/common';
19
19
  import * as i3 from '@angular/forms';
20
20
  import { NG_VALUE_ACCESSOR, ReactiveFormsModule, FormsModule } from '@angular/forms';
21
21
  import * as i1$2 from '@progress/kendo-angular-dropdowns';
@@ -1104,7 +1104,7 @@ class ChipMenuItemComponent {
1104
1104
  this.contentState = this.expanded ? 'expanded' : 'collapsed';
1105
1105
  }
1106
1106
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChipMenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1107
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ChipMenuItemComponent, isStandalone: true, selector: "kendo-pivot-chipmenu-item", inputs: { icon: "icon", svgIcon: "svgIcon", text: "text", selected: "selected", expanded: "expanded", disabled: "disabled" }, outputs: { itemClick: "itemClick", expand: "expand", collapse: "collapse" }, queries: [{ propertyName: "contentTemplate", first: true, predicate: ChipMenuItemContentTemplateDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
1107
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ChipMenuItemComponent, isStandalone: true, selector: "kendo-pivot-chipmenu-item", inputs: { icon: "icon", svgIcon: "svgIcon", text: "text", selected: "selected", expanded: "expanded", disabled: "disabled" }, outputs: { itemClick: "itemClick", expand: "expand", collapse: "collapse" }, queries: [{ propertyName: "contentTemplate", first: true, predicate: ChipMenuItemContentTemplateDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
1108
1108
  <div
1109
1109
  class="k-columnmenu-item"
1110
1110
  (click)="onClick($event)"
@@ -1115,17 +1115,20 @@ class ChipMenuItemComponent {
1115
1115
  [attr.aria-expanded]="expanded"
1116
1116
  [attr.aria-disabled]="disabled"
1117
1117
  >
1118
- <kendo-icon-wrapper
1119
- *ngIf="icon"
1120
- [name]="icon"
1121
- [svgIcon]="svgIcon"
1122
- ></kendo-icon-wrapper>
1118
+ @if (icon) {
1119
+ <kendo-icon-wrapper
1120
+ [name]="icon"
1121
+ [svgIcon]="svgIcon"
1122
+ ></kendo-icon-wrapper>
1123
+ }
1123
1124
  {{ text }}
1124
1125
  </div>
1125
- <div *ngIf="contentTemplate" [@state]="contentState" [style.overflow]="'hidden'" class="k-columnmenu-item-content">
1126
- <ng-container [ngTemplateOutlet]="contentTemplate.templateRef"></ng-container>
1127
- <div>
1128
- `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [
1126
+ @if (contentTemplate) {
1127
+ <div [@state]="contentState" [style.overflow]="'hidden'" class="k-columnmenu-item-content">
1128
+ <ng-container [ngTemplateOutlet]="contentTemplate.templateRef"></ng-container>
1129
+ </div>
1130
+ }
1131
+ `, isInline: true, dependencies: [{ kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [
1129
1132
  trigger('state', [
1130
1133
  state('collapsed', style({ display: 'none' })),
1131
1134
  state('expanded', style({ display: 'block' })),
@@ -1187,19 +1190,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
1187
1190
  [attr.aria-expanded]="expanded"
1188
1191
  [attr.aria-disabled]="disabled"
1189
1192
  >
1190
- <kendo-icon-wrapper
1191
- *ngIf="icon"
1192
- [name]="icon"
1193
- [svgIcon]="svgIcon"
1194
- ></kendo-icon-wrapper>
1193
+ @if (icon) {
1194
+ <kendo-icon-wrapper
1195
+ [name]="icon"
1196
+ [svgIcon]="svgIcon"
1197
+ ></kendo-icon-wrapper>
1198
+ }
1195
1199
  {{ text }}
1196
1200
  </div>
1197
- <div *ngIf="contentTemplate" [@state]="contentState" [style.overflow]="'hidden'" class="k-columnmenu-item-content">
1198
- <ng-container [ngTemplateOutlet]="contentTemplate.templateRef"></ng-container>
1199
- <div>
1201
+ @if (contentTemplate) {
1202
+ <div [@state]="contentState" [style.overflow]="'hidden'" class="k-columnmenu-item-content">
1203
+ <ng-container [ngTemplateOutlet]="contentTemplate.templateRef"></ng-container>
1204
+ </div>
1205
+ }
1200
1206
  `,
1201
1207
  standalone: true,
1202
- imports: [NgIf, IconWrapperComponent, NgTemplateOutlet]
1208
+ imports: [IconWrapperComponent, NgTemplateOutlet]
1203
1209
  }]
1204
1210
  }], propDecorators: { itemClick: [{
1205
1211
  type: Output
@@ -1450,77 +1456,81 @@ class ChipMenuReorderComponent extends ChipMenuItemBase {
1450
1456
  this.close();
1451
1457
  }
1452
1458
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChipMenuReorderComponent, deps: [{ token: PivotLocalizationService }, { token: i0.Renderer2 }, { token: ConfiguratorService }, { token: PivotGridDataService }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1453
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ChipMenuReorderComponent, isStandalone: true, selector: "kendo-pivot-chipmenu-reorder", inputs: { chip: "chip" }, usesInheritance: true, ngImport: i0, template: `
1454
- <kendo-pivot-chipmenu-item
1455
- *ngIf="!isMeasureField"
1459
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ChipMenuReorderComponent, isStandalone: true, selector: "kendo-pivot-chipmenu-reorder", inputs: { chip: "chip" }, usesInheritance: true, ngImport: i0, template: `
1460
+ @if (!isMeasureField) {
1461
+ <kendo-pivot-chipmenu-item
1456
1462
  [disabled]="isColumnsField"
1457
1463
  [text]="messageFor('fieldMenuMoveToColumnsItem')"
1458
1464
  icon="columns"
1459
1465
  [svgIcon]="columnsIcon"
1460
1466
  (itemClick)="move($event, 'columns')">
1461
- </kendo-pivot-chipmenu-item>
1462
- <kendo-pivot-chipmenu-item
1463
- *ngIf="!isMeasureField"
1467
+ </kendo-pivot-chipmenu-item>
1468
+ }
1469
+ @if (!isMeasureField) {
1470
+ <kendo-pivot-chipmenu-item
1464
1471
  [disabled]="isRowsField"
1465
1472
  [text]="messageFor('fieldMenuMoveToRowsItem')"
1466
1473
  icon="rows"
1467
1474
  [svgIcon]="rowsIcon"
1468
1475
  (itemClick)="move($event, 'rows')">
1469
- </kendo-pivot-chipmenu-item>
1476
+ </kendo-pivot-chipmenu-item>
1477
+ }
1470
1478
  <kendo-pivot-chipmenu-item
1471
- [disabled]="isFirst"
1472
- [text]="messageFor('fieldMenuMovePreviousItem')"
1473
- [icon]="rtl ? 'arrow-right' : 'arrow-left'"
1474
- [svgIcon]="rtl ? arrowRightIcon : arrowLeftIcon"
1475
- (itemClick)="move($event, 'prev')">
1479
+ [disabled]="isFirst"
1480
+ [text]="messageFor('fieldMenuMovePreviousItem')"
1481
+ [icon]="rtl ? 'arrow-right' : 'arrow-left'"
1482
+ [svgIcon]="rtl ? arrowRightIcon : arrowLeftIcon"
1483
+ (itemClick)="move($event, 'prev')">
1476
1484
  </kendo-pivot-chipmenu-item>
1477
1485
  <kendo-pivot-chipmenu-item
1478
- [disabled]="isLast"
1479
- [text]="messageFor('fieldMenuMoveNextItem')"
1480
- [icon]="rtl ? 'arrow-left' : 'arrow-right'"
1481
- [svgIcon]="rtl ? arrowLeftIcon : arrowRightIcon"
1482
- (itemClick)="move($event, 'next')">
1486
+ [disabled]="isLast"
1487
+ [text]="messageFor('fieldMenuMoveNextItem')"
1488
+ [icon]="rtl ? 'arrow-left' : 'arrow-right'"
1489
+ [svgIcon]="rtl ? arrowLeftIcon : arrowRightIcon"
1490
+ (itemClick)="move($event, 'next')">
1483
1491
  </kendo-pivot-chipmenu-item>
1484
- `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ChipMenuItemComponent, selector: "kendo-pivot-chipmenu-item", inputs: ["icon", "svgIcon", "text", "selected", "expanded", "disabled"], outputs: ["itemClick", "expand", "collapse"] }] });
1492
+ `, isInline: true, dependencies: [{ kind: "component", type: ChipMenuItemComponent, selector: "kendo-pivot-chipmenu-item", inputs: ["icon", "svgIcon", "text", "selected", "expanded", "disabled"], outputs: ["itemClick", "expand", "collapse"] }] });
1485
1493
  }
1486
1494
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChipMenuReorderComponent, decorators: [{
1487
1495
  type: Component,
1488
1496
  args: [{
1489
1497
  selector: 'kendo-pivot-chipmenu-reorder',
1490
1498
  template: `
1491
- <kendo-pivot-chipmenu-item
1492
- *ngIf="!isMeasureField"
1499
+ @if (!isMeasureField) {
1500
+ <kendo-pivot-chipmenu-item
1493
1501
  [disabled]="isColumnsField"
1494
1502
  [text]="messageFor('fieldMenuMoveToColumnsItem')"
1495
1503
  icon="columns"
1496
1504
  [svgIcon]="columnsIcon"
1497
1505
  (itemClick)="move($event, 'columns')">
1498
- </kendo-pivot-chipmenu-item>
1499
- <kendo-pivot-chipmenu-item
1500
- *ngIf="!isMeasureField"
1506
+ </kendo-pivot-chipmenu-item>
1507
+ }
1508
+ @if (!isMeasureField) {
1509
+ <kendo-pivot-chipmenu-item
1501
1510
  [disabled]="isRowsField"
1502
1511
  [text]="messageFor('fieldMenuMoveToRowsItem')"
1503
1512
  icon="rows"
1504
1513
  [svgIcon]="rowsIcon"
1505
1514
  (itemClick)="move($event, 'rows')">
1506
- </kendo-pivot-chipmenu-item>
1515
+ </kendo-pivot-chipmenu-item>
1516
+ }
1507
1517
  <kendo-pivot-chipmenu-item
1508
- [disabled]="isFirst"
1509
- [text]="messageFor('fieldMenuMovePreviousItem')"
1510
- [icon]="rtl ? 'arrow-right' : 'arrow-left'"
1511
- [svgIcon]="rtl ? arrowRightIcon : arrowLeftIcon"
1512
- (itemClick)="move($event, 'prev')">
1518
+ [disabled]="isFirst"
1519
+ [text]="messageFor('fieldMenuMovePreviousItem')"
1520
+ [icon]="rtl ? 'arrow-right' : 'arrow-left'"
1521
+ [svgIcon]="rtl ? arrowRightIcon : arrowLeftIcon"
1522
+ (itemClick)="move($event, 'prev')">
1513
1523
  </kendo-pivot-chipmenu-item>
1514
1524
  <kendo-pivot-chipmenu-item
1515
- [disabled]="isLast"
1516
- [text]="messageFor('fieldMenuMoveNextItem')"
1517
- [icon]="rtl ? 'arrow-left' : 'arrow-right'"
1518
- [svgIcon]="rtl ? arrowLeftIcon : arrowRightIcon"
1519
- (itemClick)="move($event, 'next')">
1525
+ [disabled]="isLast"
1526
+ [text]="messageFor('fieldMenuMoveNextItem')"
1527
+ [icon]="rtl ? 'arrow-left' : 'arrow-right'"
1528
+ [svgIcon]="rtl ? arrowLeftIcon : arrowRightIcon"
1529
+ (itemClick)="move($event, 'next')">
1520
1530
  </kendo-pivot-chipmenu-item>
1521
- `,
1531
+ `,
1522
1532
  standalone: true,
1523
- imports: [NgIf, ChipMenuItemComponent]
1533
+ imports: [ChipMenuItemComponent]
1524
1534
  }]
1525
1535
  }], ctorParameters: () => [{ type: PivotLocalizationService }, { type: i0.Renderer2 }, { type: ConfiguratorService }, { type: PivotGridDataService }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }], propDecorators: { chip: [{
1526
1536
  type: Input
@@ -1798,39 +1808,39 @@ class ChipMenuComponent {
1798
1808
  return replaceMessagePlaceholder(localizationMsg, 'fieldName', chipName);
1799
1809
  }
1800
1810
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChipMenuComponent, deps: [{ token: SinglePopupService }, { token: PivotLocalizationService }, { token: ChipMenuService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
1801
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ChipMenuComponent, isStandalone: true, selector: "kendo-pivot-chip-menu", inputs: { chip: "chip", tabIndex: "tabIndex", isMeasureField: "isMeasureField", anchor: "anchor" }, providers: [
1811
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ChipMenuComponent, isStandalone: true, selector: "kendo-pivot-chip-menu", inputs: { chip: "chip", tabIndex: "tabIndex", isMeasureField: "isMeasureField", anchor: "anchor" }, providers: [
1802
1812
  ChipMenuService,
1803
1813
  MenuTabbingService
1804
1814
  ], viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, static: true }], ngImport: i0, template: `
1805
1815
  <ng-template #template>
1806
- <kendo-pivot-chipmenu-container
1807
- (keydown.escape)="close()"
1808
- (keydown.enter)="$event.stopImmediatePropagation()">
1809
- <ng-container *ngIf="!isMeasureField">
1810
- <kendo-pivot-chipmenu-sort
1811
- #sortItem
1812
- [chip]="chip"
1813
- [kendoPivotChipMenuItem]="sortItem"
1814
- [service]="service">
1815
- </kendo-pivot-chipmenu-sort>
1816
- <span class="k-separator" [style.borderColor]="'rgba(0, 0, 0, 0.08)'"></span>
1817
- <kendo-pivot-chipmenu-filter
1818
- #filterItem
1819
- [chip]="chip"
1820
- [isLast]="true"
1821
- [kendoPivotChipMenuItem]="filterItem"
1822
- [service]="service">
1823
- </kendo-pivot-chipmenu-filter>
1824
- <span class="k-separator" [style.borderColor]="'rgba(0, 0, 0, 0.08)'"></span>
1825
- </ng-container>
1826
- <kendo-pivot-chipmenu-reorder
1827
- #reorderItem
1828
- [chip]="chip"
1829
- [kendoPivotChipMenuItem]="reorderItem"
1830
- [service]="service"></kendo-pivot-chipmenu-reorder>
1831
- </kendo-pivot-chipmenu-container>
1816
+ <kendo-pivot-chipmenu-container
1817
+ (keydown.escape)="close()"
1818
+ (keydown.enter)="$event.stopImmediatePropagation()">
1819
+ @if (!isMeasureField) {
1820
+ <kendo-pivot-chipmenu-sort
1821
+ #sortItem
1822
+ [chip]="chip"
1823
+ [kendoPivotChipMenuItem]="sortItem"
1824
+ [service]="service">
1825
+ </kendo-pivot-chipmenu-sort>
1826
+ <span class="k-separator" [style.borderColor]="'rgba(0, 0, 0, 0.08)'"></span>
1827
+ <kendo-pivot-chipmenu-filter
1828
+ #filterItem
1829
+ [chip]="chip"
1830
+ [isLast]="true"
1831
+ [kendoPivotChipMenuItem]="filterItem"
1832
+ [service]="service">
1833
+ </kendo-pivot-chipmenu-filter>
1834
+ <span class="k-separator" [style.borderColor]="'rgba(0, 0, 0, 0.08)'"></span>
1835
+ }
1836
+ <kendo-pivot-chipmenu-reorder
1837
+ #reorderItem
1838
+ [chip]="chip"
1839
+ [kendoPivotChipMenuItem]="reorderItem"
1840
+ [service]="service"></kendo-pivot-chipmenu-reorder>
1841
+ </kendo-pivot-chipmenu-container>
1832
1842
  </ng-template>
1833
- `, isInline: true, dependencies: [{ kind: "component", type: ChipMenuContainerComponent, selector: "kendo-pivot-chipmenu-container" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ChipMenuSortComponent, selector: "kendo-pivot-chipmenu-sort", inputs: ["chip"] }, { kind: "directive", type: ChipMenuItemDirective, selector: "[kendoPivotChipMenuItem]", inputs: ["kendoPivotChipMenuItem"] }, { kind: "component", type: ChipMenuFilterComponent, selector: "kendo-pivot-chipmenu-filter", inputs: ["chip", "expanded", "isLast"], outputs: ["expand", "collapse"] }, { kind: "component", type: ChipMenuReorderComponent, selector: "kendo-pivot-chipmenu-reorder", inputs: ["chip"] }] });
1843
+ `, isInline: true, dependencies: [{ kind: "component", type: ChipMenuContainerComponent, selector: "kendo-pivot-chipmenu-container" }, { kind: "component", type: ChipMenuSortComponent, selector: "kendo-pivot-chipmenu-sort", inputs: ["chip"] }, { kind: "directive", type: ChipMenuItemDirective, selector: "[kendoPivotChipMenuItem]", inputs: ["kendoPivotChipMenuItem"] }, { kind: "component", type: ChipMenuFilterComponent, selector: "kendo-pivot-chipmenu-filter", inputs: ["chip", "expanded", "isLast"], outputs: ["expand", "collapse"] }, { kind: "component", type: ChipMenuReorderComponent, selector: "kendo-pivot-chipmenu-reorder", inputs: ["chip"] }] });
1834
1844
  }
1835
1845
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChipMenuComponent, decorators: [{
1836
1846
  type: Component,
@@ -1842,36 +1852,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
1842
1852
  selector: 'kendo-pivot-chip-menu',
1843
1853
  template: `
1844
1854
  <ng-template #template>
1845
- <kendo-pivot-chipmenu-container
1846
- (keydown.escape)="close()"
1847
- (keydown.enter)="$event.stopImmediatePropagation()">
1848
- <ng-container *ngIf="!isMeasureField">
1849
- <kendo-pivot-chipmenu-sort
1850
- #sortItem
1851
- [chip]="chip"
1852
- [kendoPivotChipMenuItem]="sortItem"
1853
- [service]="service">
1854
- </kendo-pivot-chipmenu-sort>
1855
- <span class="k-separator" [style.borderColor]="'rgba(0, 0, 0, 0.08)'"></span>
1856
- <kendo-pivot-chipmenu-filter
1857
- #filterItem
1858
- [chip]="chip"
1859
- [isLast]="true"
1860
- [kendoPivotChipMenuItem]="filterItem"
1861
- [service]="service">
1862
- </kendo-pivot-chipmenu-filter>
1863
- <span class="k-separator" [style.borderColor]="'rgba(0, 0, 0, 0.08)'"></span>
1864
- </ng-container>
1865
- <kendo-pivot-chipmenu-reorder
1866
- #reorderItem
1867
- [chip]="chip"
1868
- [kendoPivotChipMenuItem]="reorderItem"
1869
- [service]="service"></kendo-pivot-chipmenu-reorder>
1870
- </kendo-pivot-chipmenu-container>
1855
+ <kendo-pivot-chipmenu-container
1856
+ (keydown.escape)="close()"
1857
+ (keydown.enter)="$event.stopImmediatePropagation()">
1858
+ @if (!isMeasureField) {
1859
+ <kendo-pivot-chipmenu-sort
1860
+ #sortItem
1861
+ [chip]="chip"
1862
+ [kendoPivotChipMenuItem]="sortItem"
1863
+ [service]="service">
1864
+ </kendo-pivot-chipmenu-sort>
1865
+ <span class="k-separator" [style.borderColor]="'rgba(0, 0, 0, 0.08)'"></span>
1866
+ <kendo-pivot-chipmenu-filter
1867
+ #filterItem
1868
+ [chip]="chip"
1869
+ [isLast]="true"
1870
+ [kendoPivotChipMenuItem]="filterItem"
1871
+ [service]="service">
1872
+ </kendo-pivot-chipmenu-filter>
1873
+ <span class="k-separator" [style.borderColor]="'rgba(0, 0, 0, 0.08)'"></span>
1874
+ }
1875
+ <kendo-pivot-chipmenu-reorder
1876
+ #reorderItem
1877
+ [chip]="chip"
1878
+ [kendoPivotChipMenuItem]="reorderItem"
1879
+ [service]="service"></kendo-pivot-chipmenu-reorder>
1880
+ </kendo-pivot-chipmenu-container>
1871
1881
  </ng-template>
1872
- `,
1882
+ `,
1873
1883
  standalone: true,
1874
- imports: [IconWrapperComponent, ChipMenuContainerComponent, NgIf, ChipMenuSortComponent, ChipMenuItemDirective, ChipMenuFilterComponent, ChipMenuReorderComponent]
1884
+ imports: [IconWrapperComponent, ChipMenuContainerComponent, ChipMenuSortComponent, ChipMenuItemDirective, ChipMenuFilterComponent, ChipMenuReorderComponent]
1875
1885
  }]
1876
1886
  }], ctorParameters: () => [{ type: SinglePopupService }, { type: PivotLocalizationService }, { type: ChipMenuService }, { type: i0.Renderer2 }], propDecorators: { chip: [{
1877
1887
  type: Input
@@ -2537,12 +2547,12 @@ class PivotGridConfiguratorComponent {
2537
2547
  this[`${targetCollectionName}sList`]?.chips.last.focus();
2538
2548
  }
2539
2549
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PivotGridConfiguratorComponent, deps: [{ token: PivotGridDataService }, { token: i1$1.LocalizationService }, { token: ConfiguratorService }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2540
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: PivotGridConfiguratorComponent, isStandalone: true, selector: "kendo-pivotgrid-configurator", inputs: { orientation: "orientation", sort: "sort", filter: "filter", navigation: "navigation" }, outputs: { close: "close" }, host: { properties: { "class.k-pivotgrid-configurator": "this.hostClass", "attr.role": "this.hostAriaRole", "attr.aria-labelledby": "this.headerTextId" } }, providers: [
2550
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: PivotGridConfiguratorComponent, isStandalone: true, selector: "kendo-pivotgrid-configurator", inputs: { orientation: "orientation", sort: "sort", filter: "filter", navigation: "navigation" }, outputs: { close: "close" }, host: { properties: { "class.k-pivotgrid-configurator": "this.hostClass", "attr.role": "this.hostAriaRole", "attr.aria-labelledby": "this.headerTextId" } }, providers: [
2541
2551
  ConfiguratorService,
2542
2552
  DropCueService,
2543
2553
  SinglePopupService
2544
2554
  ], viewQueries: [{ propertyName: "treeView", first: true, predicate: TreeViewComponent, descendants: true }, { propertyName: "columnsList", first: true, predicate: ["columnsChiplist"], descendants: true }, { propertyName: "rowsList", first: true, predicate: ["rowsChiplist"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
2545
- <div
2555
+ <div
2546
2556
  class="k-pivotgrid-configurator-panel k-pivotgrid-configurator-push"
2547
2557
  [ngClass]="{
2548
2558
  'k-pivotgrid-configurator-horizontal': isHorizontal,
@@ -2551,7 +2561,7 @@ class PivotGridConfiguratorComponent {
2551
2561
  >
2552
2562
  <div class="k-pivotgrid-configurator-header">
2553
2563
  <div
2554
- [id]="headerTextId"
2564
+ [id]="headerTextId"
2555
2565
  class="k-pivotgrid-configurator-header-text">{{messageFor('configuratorHeaderText')}}</div>
2556
2566
  </div>
2557
2567
 
@@ -2585,17 +2595,21 @@ class PivotGridConfiguratorComponent {
2585
2595
  </div>
2586
2596
  </div>
2587
2597
 
2588
- <div *ngIf="isHorizontal; else verticalTemplate" class="k-form-field-wrapper" [ngStyle]="isHorizontal ? {'padding-left': 0 } : null">
2598
+ @if (isHorizontal) {
2599
+ <div class="k-form-field-wrapper" [ngStyle]="isHorizontal ? {'padding-left': 0 } : null">
2600
+ <ng-container *ngTemplateOutlet="verticalTemplate"></ng-container>
2601
+ </div>
2602
+ } @else {
2589
2603
  <ng-container *ngTemplateOutlet="verticalTemplate"></ng-container>
2590
- </div>
2604
+ }
2591
2605
 
2592
2606
  <ng-template #verticalTemplate>
2593
2607
  <div class="k-form-field" kendoDropTarget axes="columnAxes" [style]="'padding-top: 1em; margin-top: 0;'" [ngStyle]="isHorizontal ? {'padding-top': 0, 'padding-left': '16px' } : null">
2594
2608
  <span [id]="contentLabelId('columns')" class="k-label">{{messageFor('configuratorColumnsText')}}</span>
2595
2609
  </div>
2596
2610
 
2597
- <kendo-chiplist
2598
- *ngIf="state.columnAxes && state.columnAxes.length; else noColumnAxes"
2611
+ @if (state.columnAxes && state.columnAxes.length) {
2612
+ <kendo-chiplist
2599
2613
  [navigable]="false"
2600
2614
  #columnsChiplist
2601
2615
  kendoDropTarget
@@ -2605,30 +2619,35 @@ class PivotGridConfiguratorComponent {
2605
2619
  [attr.aria-labelledby]="headerTextId + ' ' + contentLabelId('columns')"
2606
2620
  [ngStyle]="isHorizontal ? {'padding-top': 0, 'padding-left': '16px' } : null"
2607
2621
  >
2608
- <ng-container *ngFor="let item of state.columnAxes">
2609
- <kendo-chip *ngIf="item.name.length === 1"
2610
- #chip
2611
- kendoChipDraggable
2612
- kendoDraggable
2613
- kendoDropTarget
2614
- kendoChipKeyboardNavigation
2615
- [item]="item"
2616
- [label]="getName(item.name)"
2617
- axes="columnAxes"
2618
- [removable]="true"
2619
- [hasMenu]="true"
2620
- (menuToggle)="chipMenuColumns.toggle($event)"
2621
- (remove)="onChipRemove($event, item, 'column')"
2622
- (reorder)="onReorder($event, 'column', item)"
2623
- >
2624
- <kendo-pivot-chip-menu
2625
- #chipMenuColumns
2626
- [chip]="item"
2627
- [anchor]="chip"
2628
- ></kendo-pivot-chip-menu>
2629
- </kendo-chip>
2630
- </ng-container>
2622
+ @for (item of state.columnAxes; track item.name) {
2623
+ @if (item.name.length === 1) {
2624
+ <kendo-chip
2625
+ #chip
2626
+ kendoChipDraggable
2627
+ kendoDraggable
2628
+ kendoDropTarget
2629
+ kendoChipKeyboardNavigation
2630
+ [item]="item"
2631
+ [label]="getName(item.name)"
2632
+ axes="columnAxes"
2633
+ [removable]="true"
2634
+ [hasMenu]="true"
2635
+ (menuToggle)="chipMenuColumns.toggle($event)"
2636
+ (remove)="onChipRemove($event, item, 'column')"
2637
+ (reorder)="onReorder($event, 'column', item)"
2638
+ >
2639
+ <kendo-pivot-chip-menu
2640
+ #chipMenuColumns
2641
+ [chip]="item"
2642
+ [anchor]="chip"
2643
+ ></kendo-pivot-chip-menu>
2644
+ </kendo-chip>
2645
+ }
2646
+ }
2631
2647
  </kendo-chiplist>
2648
+ } @else {
2649
+ <div class="k-settings-description" kendoDropTarget axes="columnAxes">{{messageFor('configuratorEmptyColumnsText')}}</div>
2650
+ }
2632
2651
 
2633
2652
  <ng-template #noColumnAxes>
2634
2653
  <div class="k-settings-description" kendoDropTarget axes="columnAxes">{{messageFor('configuratorEmptyColumnsText')}}</div>
@@ -2638,8 +2657,8 @@ class PivotGridConfiguratorComponent {
2638
2657
  <span [id]="contentLabelId('rows')" class="k-label">{{messageFor('configuratorRowsText')}}</span>
2639
2658
  </div>
2640
2659
 
2641
- <kendo-chiplist
2642
- *ngIf="state.rowAxes && state.rowAxes.length; else noRowAxes"
2660
+ @if (state.rowAxes && state.rowAxes.length) {
2661
+ <kendo-chiplist
2643
2662
  [navigable]="false"
2644
2663
  #rowsChiplist
2645
2664
  kendoDropTarget
@@ -2649,47 +2668,56 @@ class PivotGridConfiguratorComponent {
2649
2668
  [ngStyle]="isHorizontal ? {'padding-top': 0, 'padding-left': '16px' } : null"
2650
2669
  [style.width.%]="100"
2651
2670
  >
2652
- <ng-container *ngFor="let item of state.rowAxes">
2653
- <kendo-chip *ngIf="item.name.length === 1"
2654
- #chip
2655
- kendoChipDraggable
2656
- kendoDraggable
2657
- kendoDropTarget
2658
- kendoChipKeyboardNavigation
2659
- [item]="item"
2660
- [label]="getName(item.name)"
2661
- axes="rowAxes"
2662
- [removable]="true"
2663
- [hasMenu]="true"
2664
- (menuToggle)="chipMenuRows.toggle($event)"
2665
- (remove)="onChipRemove($event, item, 'row')"
2666
- (reorder)="onReorder($event, 'row', item)"
2667
- >
2668
- <kendo-pivot-chip-menu
2669
- #chipMenuRows
2670
- [chip]="item"
2671
- [anchor]="chip"
2672
- ></kendo-pivot-chip-menu>
2673
- </kendo-chip>
2674
- </ng-container>
2671
+ @for (item of state.rowAxes; track item.name) {
2672
+ @if (item.name.length === 1) {
2673
+ <kendo-chip
2674
+ #chip
2675
+ kendoChipDraggable
2676
+ kendoDraggable
2677
+ kendoDropTarget
2678
+ kendoChipKeyboardNavigation
2679
+ [item]="item"
2680
+ [label]="getName(item.name)"
2681
+ axes="rowAxes"
2682
+ [removable]="true"
2683
+ [hasMenu]="true"
2684
+ (menuToggle)="chipMenuRows.toggle($event)"
2685
+ (remove)="onChipRemove($event, item, 'row')"
2686
+ (reorder)="onReorder($event, 'row', item)"
2687
+ >
2688
+ <kendo-pivot-chip-menu
2689
+ #chipMenuRows
2690
+ [chip]="item"
2691
+ [anchor]="chip"
2692
+ ></kendo-pivot-chip-menu>
2693
+ </kendo-chip>
2694
+ }
2695
+ }
2675
2696
  </kendo-chiplist>
2697
+ } @else {
2698
+ <div class="k-settings-description" kendoDropTarget axes="rowAxes">{{messageFor('configuratorEmptyRowsText')}}</div>
2699
+ }
2676
2700
 
2677
2701
  <ng-template #noRowAxes>
2678
2702
  <div class="k-settings-description" kendoDropTarget axes="rowAxes">{{messageFor('configuratorEmptyRowsText')}}</div>
2679
2703
  </ng-template>
2680
2704
  </ng-template>
2681
2705
 
2682
- <div *ngIf="isHorizontal; else verticalMeasuresTemplate" class="k-form-field-wrapper" [ngStyle]="isHorizontal ? {'padding-left': 0 } : null" >
2706
+ @if (isHorizontal) {
2707
+ <div class="k-form-field-wrapper" [ngStyle]="isHorizontal ? {'padding-left': 0 } : null" >
2708
+ <ng-container *ngTemplateOutlet="verticalMeasuresTemplate"></ng-container>
2709
+ </div>
2710
+ } @else {
2683
2711
  <ng-container *ngTemplateOutlet="verticalMeasuresTemplate"></ng-container>
2684
- </div>
2712
+ }
2685
2713
 
2686
2714
  <ng-template #verticalMeasuresTemplate>
2687
2715
  <div class="k-form-field" kendoDropTarget axes="measureAxes" [style]="'padding-top: 1em; margin-top: 0;'" [ngStyle]="isHorizontal ? {'padding-top': 0, 'padding-left': '16px' } : null">
2688
2716
  <span [id]="contentLabelId('values')" class="k-label">{{messageFor('configuratorValuesText')}}</span>
2689
2717
  </div>
2690
2718
 
2691
- <kendo-chiplist
2692
- *ngIf="state.measureAxes && state.measureAxes.length; else noMeasureAxes"
2719
+ @if (state.measureAxes && state.measureAxes.length) {
2720
+ <kendo-chiplist
2693
2721
  [navigable]="false"
2694
2722
  kendoDropTarget
2695
2723
  class="k-filter-fields"
@@ -2698,34 +2726,39 @@ class PivotGridConfiguratorComponent {
2698
2726
  [ngStyle]="isHorizontal ? {'padding-top': 0, 'padding-left': '16px' } : null"
2699
2727
  [style.width.%]="100"
2700
2728
  >
2701
- <kendo-chip *ngFor="let item of state.measureAxes"
2702
- #chip
2703
- kendoChipDraggable
2704
- kendoDraggable
2705
- kendoDropTarget
2706
- kendoChipKeyboardNavigation
2707
- [item]="item"
2708
- [label]="getName(item.name)"
2709
- axes="measureAxes"
2710
- [removable]="true"
2711
- [hasMenu]="true"
2712
- (menuToggle)="chipMenuValues.toggle($event)"
2713
- (remove)="onChipRemove($event, item, 'measure')"
2714
- (reorder)="onReorder($event, 'measure', item)"
2715
- >
2716
- <kendo-pivot-chip-menu
2717
- #chipMenuValues
2718
- [chip]="item"
2719
- [anchor]="chip"
2720
- ></kendo-pivot-chip-menu>
2721
- </kendo-chip>
2729
+ @for (item of state.measureAxes; track item.name) {
2730
+ <kendo-chip
2731
+ #chip
2732
+ kendoChipDraggable
2733
+ kendoDraggable
2734
+ kendoDropTarget
2735
+ kendoChipKeyboardNavigation
2736
+ [item]="item"
2737
+ [label]="getName(item.name)"
2738
+ axes="measureAxes"
2739
+ [removable]="true"
2740
+ [hasMenu]="true"
2741
+ (menuToggle)="chipMenuValues.toggle($event)"
2742
+ (remove)="onChipRemove($event, item, 'measure')"
2743
+ (reorder)="onReorder($event, 'measure', item)"
2744
+ >
2745
+ <kendo-pivot-chip-menu
2746
+ #chipMenuValues
2747
+ [chip]="item"
2748
+ [anchor]="chip"
2749
+ ></kendo-pivot-chip-menu>
2750
+ </kendo-chip>
2751
+ }
2722
2752
  </kendo-chiplist>
2753
+ } @else {
2754
+ <div class="k-settings-description" kendoDropTarget axes="measureAxes">{{messageFor('configuratorEmptyMeasuresText')}}</div>
2755
+ }
2723
2756
 
2724
2757
  <ng-template #noMeasureAxes>
2725
2758
  <div class="k-settings-description" kendoDropTarget axes="measureAxes">{{messageFor('configuratorEmptyMeasuresText')}}</div>
2726
2759
  </ng-template>
2727
2760
  </ng-template>
2728
-
2761
+
2729
2762
  </div>
2730
2763
  </div>
2731
2764
  <div class="k-pivotgrid-configurator-actions k-actions k-actions-end k-actions-horizontal">
@@ -2733,7 +2766,7 @@ class PivotGridConfiguratorComponent {
2733
2766
  <button kendoButton themeColor="primary" type="button" (click)="handleSubmit()">{{messageFor('configuratorApplyButtonText')}}</button>
2734
2767
  </div>
2735
2768
  </div>
2736
- `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: TreeViewComponent, selector: "kendo-treeview", inputs: ["filterInputPlaceholder", "expandDisabledNodes", "animate", "nodeTemplate", "loadMoreButtonTemplate", "trackBy", "nodes", "textField", "hasChildren", "isChecked", "isDisabled", "hasCheckbox", "isExpanded", "isSelected", "isVisible", "navigable", "children", "loadOnDemand", "filterable", "filter", "size", "disableParentNodesOnly"], outputs: ["childrenLoaded", "blur", "focus", "expand", "collapse", "nodeDragStart", "nodeDrag", "filterStateChange", "nodeDrop", "nodeDragEnd", "addItem", "removeItem", "checkedChange", "selectionChange", "filterChange", "nodeClick", "nodeDblClick"], exportAs: ["kendoTreeView"] }, { kind: "directive", type: ExpandDirective, selector: "[kendoTreeViewExpandable]", inputs: ["isExpanded", "expandBy", "expandOnFilter", "expandedKeys"], outputs: ["expandedKeysChange"] }, { kind: "directive", type: CheckDirective, selector: "[kendoTreeViewCheckable]", inputs: ["isChecked", "checkBy", "checkedKeys", "kendoTreeViewCheckable"], outputs: ["checkedKeysChange"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: DropTargetDirective, selector: "[kendoDropTarget]", inputs: ["item", "axes"] }, { kind: "component", type: ChipListComponent, selector: "kendo-chiplist, kendo-chip-list", inputs: ["orientation", "selection", "size", "role", "navigable"], outputs: ["selectedChange", "remove"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ChipComponent, selector: "kendo-chip", inputs: ["label", "icon", "svgIcon", "iconClass", "avatarSettings", "selected", "removable", "removeIcon", "removeSvgIcon", "hasMenu", "menuIcon", "menuSvgIcon", "disabled", "size", "rounded", "fillMode", "themeColor"], outputs: ["remove", "menuToggle", "contentClick"] }, { kind: "directive", type: DraggableChipDirective, selector: "[kendoChipDraggable]", inputs: ["item"] }, { kind: "directive", type: DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { kind: "directive", type: ChipKeyboardNavigationDirective, selector: "[kendoChipKeyboardNavigation]", outputs: ["reorder"] }, { kind: "component", type: ChipMenuComponent, selector: "kendo-pivot-chip-menu", inputs: ["chip", "tabIndex", "isMeasureField", "anchor"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
2769
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: TreeViewComponent, selector: "kendo-treeview", inputs: ["filterInputPlaceholder", "expandDisabledNodes", "animate", "nodeTemplate", "loadMoreButtonTemplate", "trackBy", "nodes", "textField", "hasChildren", "isChecked", "isDisabled", "hasCheckbox", "isExpanded", "isSelected", "isVisible", "navigable", "children", "loadOnDemand", "filterable", "filter", "size", "disableParentNodesOnly"], outputs: ["childrenLoaded", "blur", "focus", "expand", "collapse", "nodeDragStart", "nodeDrag", "filterStateChange", "nodeDrop", "nodeDragEnd", "addItem", "removeItem", "checkedChange", "selectionChange", "filterChange", "nodeClick", "nodeDblClick"], exportAs: ["kendoTreeView"] }, { kind: "directive", type: ExpandDirective, selector: "[kendoTreeViewExpandable]", inputs: ["isExpanded", "expandBy", "expandOnFilter", "expandedKeys"], outputs: ["expandedKeysChange"] }, { kind: "directive", type: CheckDirective, selector: "[kendoTreeViewCheckable]", inputs: ["isChecked", "checkBy", "checkedKeys", "kendoTreeViewCheckable"], outputs: ["checkedKeysChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: DropTargetDirective, selector: "[kendoDropTarget]", inputs: ["item", "axes"] }, { kind: "component", type: ChipListComponent, selector: "kendo-chiplist, kendo-chip-list", inputs: ["orientation", "selection", "size", "role", "navigable"], outputs: ["selectedChange", "remove"] }, { kind: "component", type: ChipComponent, selector: "kendo-chip", inputs: ["label", "icon", "svgIcon", "iconClass", "avatarSettings", "selected", "removable", "removeIcon", "removeSvgIcon", "hasMenu", "menuIcon", "menuSvgIcon", "disabled", "size", "rounded", "fillMode", "themeColor"], outputs: ["remove", "menuToggle", "contentClick"] }, { kind: "directive", type: DraggableChipDirective, selector: "[kendoChipDraggable]", inputs: ["item"] }, { kind: "directive", type: DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { kind: "directive", type: ChipKeyboardNavigationDirective, selector: "[kendoChipKeyboardNavigation]", outputs: ["reorder"] }, { kind: "component", type: ChipMenuComponent, selector: "kendo-pivot-chip-menu", inputs: ["chip", "tabIndex", "isMeasureField", "anchor"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
2737
2770
  }
2738
2771
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PivotGridConfiguratorComponent, decorators: [{
2739
2772
  type: Component,
@@ -2745,7 +2778,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
2745
2778
  SinglePopupService
2746
2779
  ],
2747
2780
  template: `
2748
- <div
2781
+ <div
2749
2782
  class="k-pivotgrid-configurator-panel k-pivotgrid-configurator-push"
2750
2783
  [ngClass]="{
2751
2784
  'k-pivotgrid-configurator-horizontal': isHorizontal,
@@ -2754,7 +2787,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
2754
2787
  >
2755
2788
  <div class="k-pivotgrid-configurator-header">
2756
2789
  <div
2757
- [id]="headerTextId"
2790
+ [id]="headerTextId"
2758
2791
  class="k-pivotgrid-configurator-header-text">{{messageFor('configuratorHeaderText')}}</div>
2759
2792
  </div>
2760
2793
 
@@ -2788,17 +2821,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
2788
2821
  </div>
2789
2822
  </div>
2790
2823
 
2791
- <div *ngIf="isHorizontal; else verticalTemplate" class="k-form-field-wrapper" [ngStyle]="isHorizontal ? {'padding-left': 0 } : null">
2824
+ @if (isHorizontal) {
2825
+ <div class="k-form-field-wrapper" [ngStyle]="isHorizontal ? {'padding-left': 0 } : null">
2826
+ <ng-container *ngTemplateOutlet="verticalTemplate"></ng-container>
2827
+ </div>
2828
+ } @else {
2792
2829
  <ng-container *ngTemplateOutlet="verticalTemplate"></ng-container>
2793
- </div>
2830
+ }
2794
2831
 
2795
2832
  <ng-template #verticalTemplate>
2796
2833
  <div class="k-form-field" kendoDropTarget axes="columnAxes" [style]="'padding-top: 1em; margin-top: 0;'" [ngStyle]="isHorizontal ? {'padding-top': 0, 'padding-left': '16px' } : null">
2797
2834
  <span [id]="contentLabelId('columns')" class="k-label">{{messageFor('configuratorColumnsText')}}</span>
2798
2835
  </div>
2799
2836
 
2800
- <kendo-chiplist
2801
- *ngIf="state.columnAxes && state.columnAxes.length; else noColumnAxes"
2837
+ @if (state.columnAxes && state.columnAxes.length) {
2838
+ <kendo-chiplist
2802
2839
  [navigable]="false"
2803
2840
  #columnsChiplist
2804
2841
  kendoDropTarget
@@ -2808,30 +2845,35 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
2808
2845
  [attr.aria-labelledby]="headerTextId + ' ' + contentLabelId('columns')"
2809
2846
  [ngStyle]="isHorizontal ? {'padding-top': 0, 'padding-left': '16px' } : null"
2810
2847
  >
2811
- <ng-container *ngFor="let item of state.columnAxes">
2812
- <kendo-chip *ngIf="item.name.length === 1"
2813
- #chip
2814
- kendoChipDraggable
2815
- kendoDraggable
2816
- kendoDropTarget
2817
- kendoChipKeyboardNavigation
2818
- [item]="item"
2819
- [label]="getName(item.name)"
2820
- axes="columnAxes"
2821
- [removable]="true"
2822
- [hasMenu]="true"
2823
- (menuToggle)="chipMenuColumns.toggle($event)"
2824
- (remove)="onChipRemove($event, item, 'column')"
2825
- (reorder)="onReorder($event, 'column', item)"
2826
- >
2827
- <kendo-pivot-chip-menu
2828
- #chipMenuColumns
2829
- [chip]="item"
2830
- [anchor]="chip"
2831
- ></kendo-pivot-chip-menu>
2832
- </kendo-chip>
2833
- </ng-container>
2848
+ @for (item of state.columnAxes; track item.name) {
2849
+ @if (item.name.length === 1) {
2850
+ <kendo-chip
2851
+ #chip
2852
+ kendoChipDraggable
2853
+ kendoDraggable
2854
+ kendoDropTarget
2855
+ kendoChipKeyboardNavigation
2856
+ [item]="item"
2857
+ [label]="getName(item.name)"
2858
+ axes="columnAxes"
2859
+ [removable]="true"
2860
+ [hasMenu]="true"
2861
+ (menuToggle)="chipMenuColumns.toggle($event)"
2862
+ (remove)="onChipRemove($event, item, 'column')"
2863
+ (reorder)="onReorder($event, 'column', item)"
2864
+ >
2865
+ <kendo-pivot-chip-menu
2866
+ #chipMenuColumns
2867
+ [chip]="item"
2868
+ [anchor]="chip"
2869
+ ></kendo-pivot-chip-menu>
2870
+ </kendo-chip>
2871
+ }
2872
+ }
2834
2873
  </kendo-chiplist>
2874
+ } @else {
2875
+ <div class="k-settings-description" kendoDropTarget axes="columnAxes">{{messageFor('configuratorEmptyColumnsText')}}</div>
2876
+ }
2835
2877
 
2836
2878
  <ng-template #noColumnAxes>
2837
2879
  <div class="k-settings-description" kendoDropTarget axes="columnAxes">{{messageFor('configuratorEmptyColumnsText')}}</div>
@@ -2841,8 +2883,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
2841
2883
  <span [id]="contentLabelId('rows')" class="k-label">{{messageFor('configuratorRowsText')}}</span>
2842
2884
  </div>
2843
2885
 
2844
- <kendo-chiplist
2845
- *ngIf="state.rowAxes && state.rowAxes.length; else noRowAxes"
2886
+ @if (state.rowAxes && state.rowAxes.length) {
2887
+ <kendo-chiplist
2846
2888
  [navigable]="false"
2847
2889
  #rowsChiplist
2848
2890
  kendoDropTarget
@@ -2852,47 +2894,56 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
2852
2894
  [ngStyle]="isHorizontal ? {'padding-top': 0, 'padding-left': '16px' } : null"
2853
2895
  [style.width.%]="100"
2854
2896
  >
2855
- <ng-container *ngFor="let item of state.rowAxes">
2856
- <kendo-chip *ngIf="item.name.length === 1"
2857
- #chip
2858
- kendoChipDraggable
2859
- kendoDraggable
2860
- kendoDropTarget
2861
- kendoChipKeyboardNavigation
2862
- [item]="item"
2863
- [label]="getName(item.name)"
2864
- axes="rowAxes"
2865
- [removable]="true"
2866
- [hasMenu]="true"
2867
- (menuToggle)="chipMenuRows.toggle($event)"
2868
- (remove)="onChipRemove($event, item, 'row')"
2869
- (reorder)="onReorder($event, 'row', item)"
2870
- >
2871
- <kendo-pivot-chip-menu
2872
- #chipMenuRows
2873
- [chip]="item"
2874
- [anchor]="chip"
2875
- ></kendo-pivot-chip-menu>
2876
- </kendo-chip>
2877
- </ng-container>
2897
+ @for (item of state.rowAxes; track item.name) {
2898
+ @if (item.name.length === 1) {
2899
+ <kendo-chip
2900
+ #chip
2901
+ kendoChipDraggable
2902
+ kendoDraggable
2903
+ kendoDropTarget
2904
+ kendoChipKeyboardNavigation
2905
+ [item]="item"
2906
+ [label]="getName(item.name)"
2907
+ axes="rowAxes"
2908
+ [removable]="true"
2909
+ [hasMenu]="true"
2910
+ (menuToggle)="chipMenuRows.toggle($event)"
2911
+ (remove)="onChipRemove($event, item, 'row')"
2912
+ (reorder)="onReorder($event, 'row', item)"
2913
+ >
2914
+ <kendo-pivot-chip-menu
2915
+ #chipMenuRows
2916
+ [chip]="item"
2917
+ [anchor]="chip"
2918
+ ></kendo-pivot-chip-menu>
2919
+ </kendo-chip>
2920
+ }
2921
+ }
2878
2922
  </kendo-chiplist>
2923
+ } @else {
2924
+ <div class="k-settings-description" kendoDropTarget axes="rowAxes">{{messageFor('configuratorEmptyRowsText')}}</div>
2925
+ }
2879
2926
 
2880
2927
  <ng-template #noRowAxes>
2881
2928
  <div class="k-settings-description" kendoDropTarget axes="rowAxes">{{messageFor('configuratorEmptyRowsText')}}</div>
2882
2929
  </ng-template>
2883
2930
  </ng-template>
2884
2931
 
2885
- <div *ngIf="isHorizontal; else verticalMeasuresTemplate" class="k-form-field-wrapper" [ngStyle]="isHorizontal ? {'padding-left': 0 } : null" >
2932
+ @if (isHorizontal) {
2933
+ <div class="k-form-field-wrapper" [ngStyle]="isHorizontal ? {'padding-left': 0 } : null" >
2934
+ <ng-container *ngTemplateOutlet="verticalMeasuresTemplate"></ng-container>
2935
+ </div>
2936
+ } @else {
2886
2937
  <ng-container *ngTemplateOutlet="verticalMeasuresTemplate"></ng-container>
2887
- </div>
2938
+ }
2888
2939
 
2889
2940
  <ng-template #verticalMeasuresTemplate>
2890
2941
  <div class="k-form-field" kendoDropTarget axes="measureAxes" [style]="'padding-top: 1em; margin-top: 0;'" [ngStyle]="isHorizontal ? {'padding-top': 0, 'padding-left': '16px' } : null">
2891
2942
  <span [id]="contentLabelId('values')" class="k-label">{{messageFor('configuratorValuesText')}}</span>
2892
2943
  </div>
2893
2944
 
2894
- <kendo-chiplist
2895
- *ngIf="state.measureAxes && state.measureAxes.length; else noMeasureAxes"
2945
+ @if (state.measureAxes && state.measureAxes.length) {
2946
+ <kendo-chiplist
2896
2947
  [navigable]="false"
2897
2948
  kendoDropTarget
2898
2949
  class="k-filter-fields"
@@ -2901,34 +2952,39 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
2901
2952
  [ngStyle]="isHorizontal ? {'padding-top': 0, 'padding-left': '16px' } : null"
2902
2953
  [style.width.%]="100"
2903
2954
  >
2904
- <kendo-chip *ngFor="let item of state.measureAxes"
2905
- #chip
2906
- kendoChipDraggable
2907
- kendoDraggable
2908
- kendoDropTarget
2909
- kendoChipKeyboardNavigation
2910
- [item]="item"
2911
- [label]="getName(item.name)"
2912
- axes="measureAxes"
2913
- [removable]="true"
2914
- [hasMenu]="true"
2915
- (menuToggle)="chipMenuValues.toggle($event)"
2916
- (remove)="onChipRemove($event, item, 'measure')"
2917
- (reorder)="onReorder($event, 'measure', item)"
2918
- >
2919
- <kendo-pivot-chip-menu
2920
- #chipMenuValues
2921
- [chip]="item"
2922
- [anchor]="chip"
2923
- ></kendo-pivot-chip-menu>
2924
- </kendo-chip>
2955
+ @for (item of state.measureAxes; track item.name) {
2956
+ <kendo-chip
2957
+ #chip
2958
+ kendoChipDraggable
2959
+ kendoDraggable
2960
+ kendoDropTarget
2961
+ kendoChipKeyboardNavigation
2962
+ [item]="item"
2963
+ [label]="getName(item.name)"
2964
+ axes="measureAxes"
2965
+ [removable]="true"
2966
+ [hasMenu]="true"
2967
+ (menuToggle)="chipMenuValues.toggle($event)"
2968
+ (remove)="onChipRemove($event, item, 'measure')"
2969
+ (reorder)="onReorder($event, 'measure', item)"
2970
+ >
2971
+ <kendo-pivot-chip-menu
2972
+ #chipMenuValues
2973
+ [chip]="item"
2974
+ [anchor]="chip"
2975
+ ></kendo-pivot-chip-menu>
2976
+ </kendo-chip>
2977
+ }
2925
2978
  </kendo-chiplist>
2979
+ } @else {
2980
+ <div class="k-settings-description" kendoDropTarget axes="measureAxes">{{messageFor('configuratorEmptyMeasuresText')}}</div>
2981
+ }
2926
2982
 
2927
2983
  <ng-template #noMeasureAxes>
2928
2984
  <div class="k-settings-description" kendoDropTarget axes="measureAxes">{{messageFor('configuratorEmptyMeasuresText')}}</div>
2929
2985
  </ng-template>
2930
2986
  </ng-template>
2931
-
2987
+
2932
2988
  </div>
2933
2989
  </div>
2934
2990
  <div class="k-pivotgrid-configurator-actions k-actions k-actions-end k-actions-horizontal">
@@ -2939,8 +2995,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
2939
2995
  `,
2940
2996
  standalone: true,
2941
2997
  imports: [
2942
- NgClass, NgStyle, TreeViewComponent, ExpandDirective, CheckDirective, NgIf,
2943
- NgTemplateOutlet, DropTargetDirective, ChipListComponent, NgFor, ChipComponent, DraggableChipDirective,
2998
+ NgClass, NgStyle, TreeViewComponent, ExpandDirective, CheckDirective,
2999
+ NgTemplateOutlet, DropTargetDirective, ChipListComponent, ChipComponent, DraggableChipDirective,
2944
3000
  DraggableDirective, ChipKeyboardNavigationDirective, ChipMenuComponent, ButtonComponent
2945
3001
  ]
2946
3002
  }]
@@ -3803,8 +3859,8 @@ const packageMetadata = {
3803
3859
  productName: 'Kendo UI for Angular',
3804
3860
  productCode: 'KENDOUIANGULAR',
3805
3861
  productCodes: ['KENDOUIANGULAR'],
3806
- publishDate: 1763729369,
3807
- version: '21.1.1-develop.2',
3862
+ publishDate: 1764002457,
3863
+ version: '21.2.0-develop.2',
3808
3864
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
3809
3865
  };
3810
3866
 
@@ -4146,17 +4202,19 @@ class PivotGridCellDirective {
4146
4202
  });
4147
4203
  };
4148
4204
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PivotGridCellDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: PivotGridDataService }], target: i0.ɵɵFactoryTarget.Component });
4149
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: PivotGridCellDirective, isStandalone: true, selector: "[kendoPivotGridCell]", inputs: { kendoPivotGridCell: "kendoPivotGridCell", tableType: "tableType", rowIndex: "rowIndex", colIndex: "colIndex", customCellTemplate: "customCellTemplate", valueCellTemplate: "valueCellTemplate", rowHeaderCellTemplate: "rowHeaderCellTemplate", columnHeaderCellTemplate: "columnHeaderCellTemplate" }, host: { properties: { "class.k-pivotgrid-cell": "this.cellClass" } }, ngImport: i0, template: `
4150
- <kendo-icon-wrapper
4151
- *ngIf="kendoPivotGridCell.hasChildren && !kendoPivotGridCell.total"
4205
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: PivotGridCellDirective, isStandalone: true, selector: "[kendoPivotGridCell]", inputs: { kendoPivotGridCell: "kendoPivotGridCell", tableType: "tableType", rowIndex: "rowIndex", colIndex: "colIndex", customCellTemplate: "customCellTemplate", valueCellTemplate: "valueCellTemplate", rowHeaderCellTemplate: "rowHeaderCellTemplate", columnHeaderCellTemplate: "columnHeaderCellTemplate" }, host: { properties: { "class.k-pivotgrid-cell": "this.cellClass" } }, ngImport: i0, template: `
4206
+ @if (kendoPivotGridCell.hasChildren && !kendoPivotGridCell.total) {
4207
+ <kendo-icon-wrapper
4152
4208
  aria-hidden="true"
4153
4209
  [kendoEventsOutsideAngular]="{ click: handleClick }"
4154
4210
  [name]="expanded ? 'chevron-up' : 'chevron-down'"
4155
4211
  [svgIcon]="expanded ? chevronUpSVGIcon : chevronDownSVGIcon"
4156
4212
  innerCssClass="k-pivotgrid-toggle">
4157
- </kendo-icon-wrapper>
4213
+ </kendo-icon-wrapper>
4214
+ }
4158
4215
  <!--value cell template-->
4159
- <ng-template *ngIf="tableType === 'values' && valueCellTemplate"
4216
+ @if (tableType === 'values' && valueCellTemplate) {
4217
+ <ng-template
4160
4218
  [templateContext]="{
4161
4219
  templateRef: valueCellTemplate.templateRef,
4162
4220
  $implicit: kendoPivotGridCell,
@@ -4165,9 +4223,11 @@ class PivotGridCellDirective {
4165
4223
  columnIndex: colIndex,
4166
4224
  tableType: tableType
4167
4225
  }">
4168
- </ng-template>
4226
+ </ng-template>
4227
+ }
4169
4228
  <!--row header cell template-->
4170
- <ng-template *ngIf="tableType === 'rowHeader' && rowHeaderCellTemplate"
4229
+ @if (tableType === 'rowHeader' && rowHeaderCellTemplate) {
4230
+ <ng-template
4171
4231
  [templateContext]="{
4172
4232
  templateRef: rowHeaderCellTemplate.templateRef,
4173
4233
  $implicit: kendoPivotGridCell,
@@ -4177,9 +4237,11 @@ class PivotGridCellDirective {
4177
4237
  tableType: tableType,
4178
4238
  expanded: expanded
4179
4239
  }">
4180
- </ng-template>
4240
+ </ng-template>
4241
+ }
4181
4242
  <!--column header cell template-->
4182
- <ng-template *ngIf="tableType === 'columnHeader' && columnHeaderCellTemplate"
4243
+ @if (tableType === 'columnHeader' && columnHeaderCellTemplate) {
4244
+ <ng-template
4183
4245
  [templateContext]="{
4184
4246
  templateRef: columnHeaderCellTemplate.templateRef,
4185
4247
  $implicit: kendoPivotGridCell,
@@ -4189,9 +4251,11 @@ class PivotGridCellDirective {
4189
4251
  tableType: tableType,
4190
4252
  expanded: expanded
4191
4253
  }">
4192
- </ng-template>
4254
+ </ng-template>
4255
+ }
4193
4256
  <!--cell template-->
4194
- <ng-template *ngIf="customCellTemplate && isNotProvidedCellTemplatePerType"
4257
+ @if (customCellTemplate && isNotProvidedCellTemplatePerType) {
4258
+ <ng-template
4195
4259
  [templateContext]="{
4196
4260
  templateRef: customCellTemplate.templateRef,
4197
4261
  $implicit: kendoPivotGridCell,
@@ -4201,12 +4265,15 @@ class PivotGridCellDirective {
4201
4265
  tableType: tableType,
4202
4266
  expanded: expanded
4203
4267
  }">
4204
- </ng-template>
4268
+ </ng-template>
4269
+ }
4205
4270
  <!--default cell content-->
4206
- <span *ngIf="!customCellTemplate && isNotProvidedCellTemplatePerType" [ngClass]="{'k-pivotgrid-header-title': !kendoPivotGridCell.data, 'k-pivotgrid-content': kendoPivotGridCell.data}">
4271
+ @if (!customCellTemplate && isNotProvidedCellTemplatePerType) {
4272
+ <span [ngClass]="{'k-pivotgrid-header-title': !kendoPivotGridCell.data, 'k-pivotgrid-content': kendoPivotGridCell.data}">
4207
4273
  {{ kendoPivotGridCell.data ? kendoPivotGridCell.data.fmtValue : kendoPivotGridCell.caption }}
4208
- </span>
4209
- `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
4274
+ </span>
4275
+ }
4276
+ `, isInline: true, dependencies: [{ kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
4210
4277
  }
4211
4278
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PivotGridCellDirective, decorators: [{
4212
4279
  type: Component,
@@ -4214,16 +4281,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
4214
4281
  // eslint-disable-next-line @angular-eslint/component-selector
4215
4282
  selector: '[kendoPivotGridCell]',
4216
4283
  template: `
4217
- <kendo-icon-wrapper
4218
- *ngIf="kendoPivotGridCell.hasChildren && !kendoPivotGridCell.total"
4284
+ @if (kendoPivotGridCell.hasChildren && !kendoPivotGridCell.total) {
4285
+ <kendo-icon-wrapper
4219
4286
  aria-hidden="true"
4220
4287
  [kendoEventsOutsideAngular]="{ click: handleClick }"
4221
4288
  [name]="expanded ? 'chevron-up' : 'chevron-down'"
4222
4289
  [svgIcon]="expanded ? chevronUpSVGIcon : chevronDownSVGIcon"
4223
4290
  innerCssClass="k-pivotgrid-toggle">
4224
- </kendo-icon-wrapper>
4291
+ </kendo-icon-wrapper>
4292
+ }
4225
4293
  <!--value cell template-->
4226
- <ng-template *ngIf="tableType === 'values' && valueCellTemplate"
4294
+ @if (tableType === 'values' && valueCellTemplate) {
4295
+ <ng-template
4227
4296
  [templateContext]="{
4228
4297
  templateRef: valueCellTemplate.templateRef,
4229
4298
  $implicit: kendoPivotGridCell,
@@ -4232,9 +4301,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
4232
4301
  columnIndex: colIndex,
4233
4302
  tableType: tableType
4234
4303
  }">
4235
- </ng-template>
4304
+ </ng-template>
4305
+ }
4236
4306
  <!--row header cell template-->
4237
- <ng-template *ngIf="tableType === 'rowHeader' && rowHeaderCellTemplate"
4307
+ @if (tableType === 'rowHeader' && rowHeaderCellTemplate) {
4308
+ <ng-template
4238
4309
  [templateContext]="{
4239
4310
  templateRef: rowHeaderCellTemplate.templateRef,
4240
4311
  $implicit: kendoPivotGridCell,
@@ -4244,9 +4315,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
4244
4315
  tableType: tableType,
4245
4316
  expanded: expanded
4246
4317
  }">
4247
- </ng-template>
4318
+ </ng-template>
4319
+ }
4248
4320
  <!--column header cell template-->
4249
- <ng-template *ngIf="tableType === 'columnHeader' && columnHeaderCellTemplate"
4321
+ @if (tableType === 'columnHeader' && columnHeaderCellTemplate) {
4322
+ <ng-template
4250
4323
  [templateContext]="{
4251
4324
  templateRef: columnHeaderCellTemplate.templateRef,
4252
4325
  $implicit: kendoPivotGridCell,
@@ -4256,9 +4329,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
4256
4329
  tableType: tableType,
4257
4330
  expanded: expanded
4258
4331
  }">
4259
- </ng-template>
4332
+ </ng-template>
4333
+ }
4260
4334
  <!--cell template-->
4261
- <ng-template *ngIf="customCellTemplate && isNotProvidedCellTemplatePerType"
4335
+ @if (customCellTemplate && isNotProvidedCellTemplatePerType) {
4336
+ <ng-template
4262
4337
  [templateContext]="{
4263
4338
  templateRef: customCellTemplate.templateRef,
4264
4339
  $implicit: kendoPivotGridCell,
@@ -4268,14 +4343,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
4268
4343
  tableType: tableType,
4269
4344
  expanded: expanded
4270
4345
  }">
4271
- </ng-template>
4346
+ </ng-template>
4347
+ }
4272
4348
  <!--default cell content-->
4273
- <span *ngIf="!customCellTemplate && isNotProvidedCellTemplatePerType" [ngClass]="{'k-pivotgrid-header-title': !kendoPivotGridCell.data, 'k-pivotgrid-content': kendoPivotGridCell.data}">
4349
+ @if (!customCellTemplate && isNotProvidedCellTemplatePerType) {
4350
+ <span [ngClass]="{'k-pivotgrid-header-title': !kendoPivotGridCell.data, 'k-pivotgrid-content': kendoPivotGridCell.data}">
4274
4351
  {{ kendoPivotGridCell.data ? kendoPivotGridCell.data.fmtValue : kendoPivotGridCell.caption }}
4275
- </span>
4276
- `,
4352
+ </span>
4353
+ }
4354
+ `,
4277
4355
  standalone: true,
4278
- imports: [NgIf, IconWrapperComponent, EventsOutsideAngularDirective, TemplateContextDirective, NgClass]
4356
+ imports: [IconWrapperComponent, EventsOutsideAngularDirective, TemplateContextDirective, NgClass]
4279
4357
  }]
4280
4358
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: PivotGridDataService }], propDecorators: { cellClass: [{
4281
4359
  type: HostBinding,
@@ -4328,6 +4406,10 @@ class PivotGridTableComponent {
4328
4406
  startRowIndex = 0;
4329
4407
  startColIndex = 0;
4330
4408
  rtl = false;
4409
+ itemIdCounter = 0;
4410
+ itemIdMap = new WeakMap();
4411
+ rowIdMap = new WeakMap();
4412
+ cellIdMap = new WeakMap();
4331
4413
  tableType;
4332
4414
  colWidth;
4333
4415
  customCellTemplate;
@@ -4378,6 +4460,45 @@ class PivotGridTableComponent {
4378
4460
  this.subs.unsubscribe();
4379
4461
  this.scrollable?.destroy();
4380
4462
  }
4463
+ trackByColIndex(index, item) {
4464
+ // Always include index to ensure uniqueness even if same object appears multiple times
4465
+ if (!item || typeof item !== 'object') {
4466
+ return `col-${index + this.startColIndex}-${item}`;
4467
+ }
4468
+ // Get or assign stable ID for this object
4469
+ if (!this.itemIdMap.has(item)) {
4470
+ this.itemIdMap.set(item, ++this.itemIdCounter);
4471
+ }
4472
+ const objectId = this.itemIdMap.get(item);
4473
+ // Combine object ID with position to handle same object at different indices
4474
+ return `col-${index + this.startColIndex}-obj${objectId}`;
4475
+ }
4476
+ trackByRowIndex(index, row) {
4477
+ // Always include index to ensure uniqueness even if same object appears multiple times
4478
+ if (!row || typeof row !== 'object') {
4479
+ return `row-${index + this.startRowIndex}-${row}`;
4480
+ }
4481
+ // Get or assign stable ID for this object
4482
+ if (!this.rowIdMap.has(row)) {
4483
+ this.rowIdMap.set(row, ++this.itemIdCounter);
4484
+ }
4485
+ const objectId = this.rowIdMap.get(row);
4486
+ // Combine object ID with position to handle same object at different indices
4487
+ return `row-${index + this.startRowIndex}-obj${objectId}`;
4488
+ }
4489
+ trackByCellIndex(index, cell) {
4490
+ // Always include index to ensure uniqueness even if same object appears multiple times
4491
+ if (!cell || typeof cell !== 'object') {
4492
+ return `cell-${index + this.startColIndex}-${cell}`;
4493
+ }
4494
+ // Get or assign stable ID for this object
4495
+ if (!this.cellIdMap.has(cell)) {
4496
+ this.cellIdMap.set(cell, ++this.itemIdCounter);
4497
+ }
4498
+ const objectId = this.cellIdMap.get(cell);
4499
+ // Combine object ID with position to handle same object at different indices
4500
+ return `cell-${index + this.startColIndex}-obj${objectId}`;
4501
+ }
4381
4502
  colsUpdateCallback = (cols) => {
4382
4503
  this.renderedCols = Math.min(cols.length, this.scrollableSettings?.columns);
4383
4504
  this.renderedCols && this.scrollable && (this.scrollable.totalCols = cols.length);
@@ -4493,55 +4614,64 @@ class PivotGridTableComponent {
4493
4614
  }, true);
4494
4615
  }
4495
4616
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PivotGridTableComponent, deps: [{ token: i0.ElementRef }, { token: PivotGridDataService }, { token: i1$1.LocalizationService }, { token: i0.NgZone }, { token: PivotGridScrollService }], target: i0.ɵɵFactoryTarget.Component });
4496
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: PivotGridTableComponent, isStandalone: true, selector: "kendo-pivotgrid-table", inputs: { tableType: "tableType", colWidth: "colWidth", customCellTemplate: "customCellTemplate", valueCellTemplate: "valueCellTemplate", rowHeaderCellTemplate: "rowHeaderCellTemplate", columnHeaderCellTemplate: "columnHeaderCellTemplate", scrollableSettings: "scrollableSettings" }, ngImport: i0, template: `
4617
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: PivotGridTableComponent, isStandalone: true, selector: "kendo-pivotgrid-table", inputs: { tableType: "tableType", colWidth: "colWidth", customCellTemplate: "customCellTemplate", valueCellTemplate: "valueCellTemplate", rowHeaderCellTemplate: "rowHeaderCellTemplate", columnHeaderCellTemplate: "columnHeaderCellTemplate", scrollableSettings: "scrollableSettings" }, ngImport: i0, template: `
4497
4618
  <table
4498
- class="k-pivotgrid-table"
4499
- role="presentation"
4619
+ class="k-pivotgrid-table"
4620
+ role="presentation"
4500
4621
  [ngStyle]="{
4501
4622
  float: tableType === 'values' ? this.rtl ? 'right' : 'left' : 'initial',
4502
4623
  overflow: 'scroll',
4503
4624
  '-ms-overflow-style': tableType !== 'values' ? 'none' : 'auto',
4504
4625
  'scrollbar-width': tableType !== 'values' ? 'none' : 'auto'
4505
4626
  }">
4506
- <colgroup>
4507
- <col *ngIf="tableType === 'values' && columnVirtualization && startColIndex > 0" [style.width]="startColIndex * (colWidth >= 0 ? colWidth : 200) + 'px'"/>
4508
- <col
4509
- *ngFor="let item of (tableType === 'values' && columnVirtualization ? headerItems?.slice(0, renderedCols) : headerItems);"
4510
- [style.width]="tableType !== 'rowHeader' ? colWidth >= 0 ? colWidth + 'px' : '200px' : undefined" />
4511
- </colgroup>
4512
- <tbody class="k-pivotgrid-tbody" [attr.role]="tableType === 'values' ? 'none' : 'rowgroup'">
4513
- <tr *ngFor="let row of (tableType === 'values' && rowVirtualization ? renderedRows : rows); index as rowIndex"
4514
- class="k-pivotgrid-row"
4515
- [attr.role]="tableType === 'values' ? 'none' : 'row'">
4516
- <td *ngIf="tableType === 'values' && columnVirtualization && startColIndex > 0" class="k-pivotgrid-cell"></td>
4517
- <ng-container *ngFor="let cell of (tableType === 'values' && columnVirtualization ? row?.cells.slice(startColIndex, (startColIndex + renderedCols)) : row?.cells); index as colIndex">
4518
- <th
4519
- *ngIf="cell && tableType !== 'values'"
4520
- [kendoPivotGridCell]="cell"
4521
- [customCellTemplate]="customCellTemplate"
4522
- [rowHeaderCellTemplate]="rowHeaderCellTemplate"
4523
- [columnHeaderCellTemplate]="columnHeaderCellTemplate"
4524
- [tableType]="tableType"
4525
- [colIndex]="colIndex + startColIndex"
4526
- [rowIndex]="rowIndex + startRowIndex"
4527
- [attr.aria-expanded]="cell.hasChildren && cell.children.length ? 'true' : 'false'"
4528
- [attr.role]="tableType === 'columnHeader' ? 'columnheader' : tableType === 'rowHeader' ? 'rowheader' : 'none'"
4529
- [attr.id]="pivotGridId + (tableType === 'columnHeader' ? 'ch-' : 'rh-') + (rowIndex + 1) + '-' + (colIndex + 1)"></th>
4530
- <td
4531
- *ngIf="cell && tableType === 'values'"
4532
- [customCellTemplate]="customCellTemplate"
4533
- [valueCellTemplate]="valueCellTemplate"
4534
- [kendoPivotGridCell]="cell"
4535
- tableType="values"
4536
- [colIndex]="colIndex + startColIndex"
4537
- [rowIndex]="rowIndex + startRowIndex"
4538
- role="gridcell"
4539
- [attr.id]="pivotGridId + 'cell-' + (rowIndex + startRowIndex + 1) + '-' + (colIndex + startColIndex + 1)"></td>
4540
- </ng-container>
4541
- </tr>
4542
- </tbody>
4627
+ <colgroup>
4628
+ @if (tableType === 'values' && columnVirtualization && startColIndex > 0) {
4629
+ <col [style.width]="startColIndex * (colWidth >= 0 ? colWidth : 200) + 'px'"/>
4630
+ }
4631
+ @for (item of (tableType === 'values' && columnVirtualization ? headerItems?.slice(0, renderedCols) : headerItems); track trackByColIndex($index, item)) {
4632
+ <col
4633
+ [style.width]="tableType !== 'rowHeader' ? colWidth >= 0 ? colWidth + 'px' : '200px' : undefined" />
4634
+ }
4635
+ </colgroup>
4636
+ <tbody class="k-pivotgrid-tbody" [attr.role]="tableType === 'values' ? 'none' : 'rowgroup'">
4637
+ @for (row of (tableType === 'values' && rowVirtualization ? renderedRows : rows); track trackByRowIndex($index, row); let rowIndex = $index) {
4638
+ <tr
4639
+ class="k-pivotgrid-row"
4640
+ [attr.role]="tableType === 'values' ? 'none' : 'row'">
4641
+ @if (tableType === 'values' && columnVirtualization && startColIndex > 0) {
4642
+ <td class="k-pivotgrid-cell"></td>
4643
+ }
4644
+ @for (cell of (tableType === 'values' && columnVirtualization ? row?.cells.slice(startColIndex, (startColIndex + renderedCols)) : row?.cells); track trackByCellIndex($index, cell); let colIndex = $index) {
4645
+ @if (cell && tableType !== 'values') {
4646
+ <th
4647
+ [kendoPivotGridCell]="cell"
4648
+ [customCellTemplate]="customCellTemplate"
4649
+ [rowHeaderCellTemplate]="rowHeaderCellTemplate"
4650
+ [columnHeaderCellTemplate]="columnHeaderCellTemplate"
4651
+ [tableType]="tableType"
4652
+ [colIndex]="colIndex + startColIndex"
4653
+ [rowIndex]="rowIndex + startRowIndex"
4654
+ [attr.aria-expanded]="cell.hasChildren && cell.children.length ? 'true' : 'false'"
4655
+ [attr.role]="tableType === 'columnHeader' ? 'columnheader' : tableType === 'rowHeader' ? 'rowheader' : 'none'"
4656
+ [attr.id]="pivotGridId + (tableType === 'columnHeader' ? 'ch-' : 'rh-') + (rowIndex + 1) + '-' + (colIndex + 1)"></th>
4657
+ }
4658
+ @if (cell && tableType === 'values') {
4659
+ <td
4660
+ [customCellTemplate]="customCellTemplate"
4661
+ [valueCellTemplate]="valueCellTemplate"
4662
+ [kendoPivotGridCell]="cell"
4663
+ tableType="values"
4664
+ [colIndex]="colIndex + startColIndex"
4665
+ [rowIndex]="rowIndex + startRowIndex"
4666
+ role="gridcell"
4667
+ [attr.id]="pivotGridId + 'cell-' + (rowIndex + startRowIndex + 1) + '-' + (colIndex + startColIndex + 1)"></td>
4668
+ }
4669
+ }
4670
+ </tr>
4671
+ }
4672
+ </tbody>
4543
4673
  </table>
4544
- `, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PivotGridCellDirective, selector: "[kendoPivotGridCell]", inputs: ["kendoPivotGridCell", "tableType", "rowIndex", "colIndex", "customCellTemplate", "valueCellTemplate", "rowHeaderCellTemplate", "columnHeaderCellTemplate"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
4674
+ `, isInline: true, dependencies: [{ kind: "component", type: PivotGridCellDirective, selector: "[kendoPivotGridCell]", inputs: ["kendoPivotGridCell", "tableType", "rowIndex", "colIndex", "customCellTemplate", "valueCellTemplate", "rowHeaderCellTemplate", "columnHeaderCellTemplate"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
4545
4675
  }
4546
4676
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PivotGridTableComponent, decorators: [{
4547
4677
  type: Component,
@@ -4549,55 +4679,64 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
4549
4679
  selector: 'kendo-pivotgrid-table',
4550
4680
  template: `
4551
4681
  <table
4552
- class="k-pivotgrid-table"
4553
- role="presentation"
4682
+ class="k-pivotgrid-table"
4683
+ role="presentation"
4554
4684
  [ngStyle]="{
4555
4685
  float: tableType === 'values' ? this.rtl ? 'right' : 'left' : 'initial',
4556
4686
  overflow: 'scroll',
4557
4687
  '-ms-overflow-style': tableType !== 'values' ? 'none' : 'auto',
4558
4688
  'scrollbar-width': tableType !== 'values' ? 'none' : 'auto'
4559
4689
  }">
4560
- <colgroup>
4561
- <col *ngIf="tableType === 'values' && columnVirtualization && startColIndex > 0" [style.width]="startColIndex * (colWidth >= 0 ? colWidth : 200) + 'px'"/>
4562
- <col
4563
- *ngFor="let item of (tableType === 'values' && columnVirtualization ? headerItems?.slice(0, renderedCols) : headerItems);"
4564
- [style.width]="tableType !== 'rowHeader' ? colWidth >= 0 ? colWidth + 'px' : '200px' : undefined" />
4565
- </colgroup>
4566
- <tbody class="k-pivotgrid-tbody" [attr.role]="tableType === 'values' ? 'none' : 'rowgroup'">
4567
- <tr *ngFor="let row of (tableType === 'values' && rowVirtualization ? renderedRows : rows); index as rowIndex"
4568
- class="k-pivotgrid-row"
4569
- [attr.role]="tableType === 'values' ? 'none' : 'row'">
4570
- <td *ngIf="tableType === 'values' && columnVirtualization && startColIndex > 0" class="k-pivotgrid-cell"></td>
4571
- <ng-container *ngFor="let cell of (tableType === 'values' && columnVirtualization ? row?.cells.slice(startColIndex, (startColIndex + renderedCols)) : row?.cells); index as colIndex">
4572
- <th
4573
- *ngIf="cell && tableType !== 'values'"
4574
- [kendoPivotGridCell]="cell"
4575
- [customCellTemplate]="customCellTemplate"
4576
- [rowHeaderCellTemplate]="rowHeaderCellTemplate"
4577
- [columnHeaderCellTemplate]="columnHeaderCellTemplate"
4578
- [tableType]="tableType"
4579
- [colIndex]="colIndex + startColIndex"
4580
- [rowIndex]="rowIndex + startRowIndex"
4581
- [attr.aria-expanded]="cell.hasChildren && cell.children.length ? 'true' : 'false'"
4582
- [attr.role]="tableType === 'columnHeader' ? 'columnheader' : tableType === 'rowHeader' ? 'rowheader' : 'none'"
4583
- [attr.id]="pivotGridId + (tableType === 'columnHeader' ? 'ch-' : 'rh-') + (rowIndex + 1) + '-' + (colIndex + 1)"></th>
4584
- <td
4585
- *ngIf="cell && tableType === 'values'"
4586
- [customCellTemplate]="customCellTemplate"
4587
- [valueCellTemplate]="valueCellTemplate"
4588
- [kendoPivotGridCell]="cell"
4589
- tableType="values"
4590
- [colIndex]="colIndex + startColIndex"
4591
- [rowIndex]="rowIndex + startRowIndex"
4592
- role="gridcell"
4593
- [attr.id]="pivotGridId + 'cell-' + (rowIndex + startRowIndex + 1) + '-' + (colIndex + startColIndex + 1)"></td>
4594
- </ng-container>
4595
- </tr>
4596
- </tbody>
4690
+ <colgroup>
4691
+ @if (tableType === 'values' && columnVirtualization && startColIndex > 0) {
4692
+ <col [style.width]="startColIndex * (colWidth >= 0 ? colWidth : 200) + 'px'"/>
4693
+ }
4694
+ @for (item of (tableType === 'values' && columnVirtualization ? headerItems?.slice(0, renderedCols) : headerItems); track trackByColIndex($index, item)) {
4695
+ <col
4696
+ [style.width]="tableType !== 'rowHeader' ? colWidth >= 0 ? colWidth + 'px' : '200px' : undefined" />
4697
+ }
4698
+ </colgroup>
4699
+ <tbody class="k-pivotgrid-tbody" [attr.role]="tableType === 'values' ? 'none' : 'rowgroup'">
4700
+ @for (row of (tableType === 'values' && rowVirtualization ? renderedRows : rows); track trackByRowIndex($index, row); let rowIndex = $index) {
4701
+ <tr
4702
+ class="k-pivotgrid-row"
4703
+ [attr.role]="tableType === 'values' ? 'none' : 'row'">
4704
+ @if (tableType === 'values' && columnVirtualization && startColIndex > 0) {
4705
+ <td class="k-pivotgrid-cell"></td>
4706
+ }
4707
+ @for (cell of (tableType === 'values' && columnVirtualization ? row?.cells.slice(startColIndex, (startColIndex + renderedCols)) : row?.cells); track trackByCellIndex($index, cell); let colIndex = $index) {
4708
+ @if (cell && tableType !== 'values') {
4709
+ <th
4710
+ [kendoPivotGridCell]="cell"
4711
+ [customCellTemplate]="customCellTemplate"
4712
+ [rowHeaderCellTemplate]="rowHeaderCellTemplate"
4713
+ [columnHeaderCellTemplate]="columnHeaderCellTemplate"
4714
+ [tableType]="tableType"
4715
+ [colIndex]="colIndex + startColIndex"
4716
+ [rowIndex]="rowIndex + startRowIndex"
4717
+ [attr.aria-expanded]="cell.hasChildren && cell.children.length ? 'true' : 'false'"
4718
+ [attr.role]="tableType === 'columnHeader' ? 'columnheader' : tableType === 'rowHeader' ? 'rowheader' : 'none'"
4719
+ [attr.id]="pivotGridId + (tableType === 'columnHeader' ? 'ch-' : 'rh-') + (rowIndex + 1) + '-' + (colIndex + 1)"></th>
4720
+ }
4721
+ @if (cell && tableType === 'values') {
4722
+ <td
4723
+ [customCellTemplate]="customCellTemplate"
4724
+ [valueCellTemplate]="valueCellTemplate"
4725
+ [kendoPivotGridCell]="cell"
4726
+ tableType="values"
4727
+ [colIndex]="colIndex + startColIndex"
4728
+ [rowIndex]="rowIndex + startRowIndex"
4729
+ role="gridcell"
4730
+ [attr.id]="pivotGridId + 'cell-' + (rowIndex + startRowIndex + 1) + '-' + (colIndex + startColIndex + 1)"></td>
4731
+ }
4732
+ }
4733
+ </tr>
4734
+ }
4735
+ </tbody>
4597
4736
  </table>
4598
- `,
4737
+ `,
4599
4738
  standalone: true,
4600
- imports: [NgFor, NgIf, PivotGridCellDirective, NgStyle]
4739
+ imports: [PivotGridCellDirective, NgStyle]
4601
4740
  }]
4602
4741
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: PivotGridDataService }, { type: i1$1.LocalizationService }, { type: i0.NgZone }, { type: PivotGridScrollService }], propDecorators: { tableType: [{
4603
4742
  type: Input
@@ -4914,7 +5053,7 @@ class PivotGridComponent {
4914
5053
  }
4915
5054
  }
4916
5055
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PivotGridComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: PivotGridDataService }, { token: i1$1.LocalizationService }, { token: i0.Renderer2 }, { token: i1$4.ScrollbarWidthService }, { token: PivotGridScrollService }], target: i0.ɵɵFactoryTarget.Component });
4917
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: PivotGridComponent, isStandalone: true, selector: "kendo-pivotgrid", inputs: { loaderSettings: "loaderSettings", configurator: "configurator", virtualScrolling: "virtualScrolling", columnHeadersWidth: "columnHeadersWidth", navigable: "navigable" }, host: { properties: { "class.k-d-flex": "this.hostClass", "class.k-pos-relative": "this.hostClass", "class.k-flex-row": "this.rightPositionClass", "class.k-flex-row-reverse": "this.leftPositionClass", "class.k-flex-column": "this.bottomPositionClass", "class.k-flex-column-reverse": "this.topPositionClass", "attr.dir": "this.dir" } }, providers: [
5056
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: PivotGridComponent, isStandalone: true, selector: "kendo-pivotgrid", inputs: { loaderSettings: "loaderSettings", configurator: "configurator", virtualScrolling: "virtualScrolling", columnHeadersWidth: "columnHeadersWidth", navigable: "navigable" }, host: { properties: { "class.k-d-flex": "this.hostClass", "class.k-pos-relative": "this.hostClass", "class.k-flex-row": "this.rightPositionClass", "class.k-flex-row-reverse": "this.leftPositionClass", "class.k-flex-column": "this.bottomPositionClass", "class.k-flex-column-reverse": "this.topPositionClass", "attr.dir": "this.dir" } }, providers: [
4918
5057
  PivotGridDataService,
4919
5058
  LocalizationService,
4920
5059
  PivotLocalizationService,
@@ -4925,163 +5064,168 @@ class PivotGridComponent {
4925
5064
  PivotGridScrollService
4926
5065
  ], queries: [{ propertyName: "customCellTemplate", first: true, predicate: CellTemplateDirective, descendants: true }, { propertyName: "valueCellTemplate", first: true, predicate: ValueCellTemplateDirective, descendants: true }, { propertyName: "rowHeaderCellTemplate", first: true, predicate: RowHeaderCellTemplateDirective, descendants: true }, { propertyName: "columnHeaderCellTemplate", first: true, predicate: ColumnHeaderCellTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "colHeadersTable", first: true, predicate: ["colHeadersTable"], descendants: true, read: ElementRef }, { propertyName: "rowHeadersTable", first: true, predicate: ["rowHeadersTable"], descendants: true, read: ElementRef }, { propertyName: "valuesTable", first: true, predicate: ["valuesTable"], descendants: true, read: ElementRef }, { propertyName: "table", first: true, predicate: ["table"], descendants: true, read: ElementRef }, { propertyName: "configuratorWrapper", first: true, predicate: ["configurator"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: `
4927
5066
  <ng-container kendoPivotGridLocalizedMessages
4928
- i18n-loading="kendo.pivotgrid.loading|The loading text"
4929
- loading="Loading"
5067
+ i18n-loading="kendo.pivotgrid.loading|The loading text"
5068
+ loading="Loading"
4930
5069
 
4931
- i18n-emptyCellLabel="kendo.pivotgrid.emptyCellLabel|The value of the aria-label attribute placed on the focusable empty cell element"
4932
- emptyCellLabel="PivotGrid Empty Cell"
5070
+ i18n-emptyCellLabel="kendo.pivotgrid.emptyCellLabel|The value of the aria-label attribute placed on the focusable empty cell element"
5071
+ emptyCellLabel="PivotGrid Empty Cell"
4933
5072
 
4934
- i18n-fieldMenuFilterItemLabel="kendo.pivotgrid.fieldMenuFilterItemLabel|The text content of the filter item in the column and row fields menu"
4935
- fieldMenuFilterItemLabel="Filter"
4936
-
4937
- i18n-fieldMenuSortAscendingItemLabel="kendo.pivotgrid.fieldMenuSortAscendingItemLabel|The text content of the sort ascending item in the column and row fields menu"
4938
- fieldMenuSortAscendingItemLabel="Sort ascending"
4939
-
4940
- i18n-fieldMenuSortDescendingItemLabel="kendo.pivotgrid.fieldMenuSortDescendingItemLabel|The text content of the sort descending item in the column and row fields menu"
4941
- fieldMenuSortDescendingItemLabel="Sort descending"
4942
-
4943
- i18n-filterInputLabel="kendo.pivotgrid.filterInputLabel|The label of the filter input"
4944
- filterInputLabel="{{ '{fields} Filter' }}"
4945
-
4946
- i18n-filterOperatorsDropDownLabel="kendo.pivotgrid.filterOperatorsDropDownLabel|The label of the filter operators DropDownList"
4947
- filterOperatorsDropDownLabel="{{ '{fields} Filter Operators' }}"
4948
-
4949
- i18n-filterEqOperator="kendo.pivotgrid.filterEqOperator|The text of the equal filter operator"
4950
- filterEqOperator="Is equal to"
4951
-
4952
- i18n-filterNotEqOperator="kendo.pivotgrid.filterNotEqOperator|The text of the not equal filter operator"
4953
- filterNotEqOperator="Is not equal to"
4954
-
4955
- i18n-filterIsNullOperator="kendo.pivotgrid.filterIsNullOperator|The text of the is null filter operator"
4956
- filterIsNullOperator="Is null"
4957
-
4958
- i18n-filterIsNotNullOperator="kendo.pivotgrid.filterIsNotNullOperator|The text of the is not null filter operator"
4959
- filterIsNotNullOperator="Is not null"
4960
-
4961
- i18n-filterIsEmptyOperator="kendo.pivotgrid.filterIsEmptyOperator|The text of the is empty filter operator"
4962
- filterIsEmptyOperator="Is empty"
4963
-
4964
- i18n-filterIsNotEmptyOperator="kendo.pivotgrid.filterIsNotEmptyOperator|The text of the is not empty filter operator"
4965
- filterIsNotEmptyOperator="Is not empty"
4966
-
4967
- i18n-filterStartsWithOperator="kendo.pivotgrid.filterStartsWithOperator|The text of the starts with filter operator"
4968
- filterStartsWithOperator="Starts with"
4969
-
4970
- i18n-filterContainsOperator="kendo.pivotgrid.filterContainsOperator|The text of the contains filter operator"
4971
- filterContainsOperator="Contains"
4972
-
4973
- i18n-filterNotContainsOperator="kendo.pivotgrid.filterNotContainsOperator|The text of the does not contain filter operator"
4974
- filterNotContainsOperator="Does not contain"
4975
-
4976
- i18n-filterEndsWithOperator="kendo.pivotgrid.filterEndsWithOperator|The text of the ends with filter operator"
4977
- filterEndsWithOperator="Ends with"
4978
-
4979
- i18n-filterFilterButton="kendo.pivotgrid.filterFilterButton|The text of the filter button"
4980
- filterFilterButton="Filter"
4981
-
4982
- i18n-filterClearButton="kendo.pivotgrid.filterClearButton|The text of the clear filter button"
4983
- filterClearButton="Clear"
4984
-
4985
- i18n-configuratorButtonText="kendo.pivotgrid.configuratorButtonText|The text content of the button that opens and closes the PivotGrid configurator"
4986
- configuratorButtonText="Change Settings"
4987
-
4988
- i18n-configuratorHeaderText="kendo.pivotgrid.configuratorHeaderText|The text content of the PivotGrid configurator title element"
4989
- configuratorHeaderText="Settings"
4990
-
4991
- i18n-configuratorFieldsText="kendo.pivotgrid.configuratorFieldsText|The text content of the PivotGrid configurator fields section title element"
4992
- configuratorFieldsText="Fields"
4993
-
4994
- i18n-configuratorColumnsText="kendo.pivotgrid.configuratorColumnsText|The text content of the PivotGrid configurator columns section title element"
4995
- configuratorColumnsText="Columns"
4996
-
4997
- i18n-configuratorRowsText="kendo.pivotgrid.configuratorRowsText|The text content of the PivotGrid configurator rows section title element"
4998
- configuratorRowsText="Rows"
4999
-
5000
- i18n-configuratorValuesText="kendo.pivotgrid.configuratorValuesText|The text content of the PivotGrid configurator values section title element"
5001
- configuratorValuesText="Values"
5002
-
5003
- i18n-configuratorCancelButtonText="kendo.pivotgrid.configuratorCancelButtonText|The text content of the PivotGrid configurator configurator Cancel button"
5004
- configuratorCancelButtonText="Cancel"
5005
-
5006
- i18n-configuratorApplyButtonText="kendo.pivotgrid.configuratorApplyButtonText|The text content of the PivotGrid configurator configurator Apply button"
5007
- configuratorApplyButtonText="Apply"
5073
+ i18n-fieldMenuFilterItemLabel="kendo.pivotgrid.fieldMenuFilterItemLabel|The text content of the filter item in the column and row fields menu"
5074
+ fieldMenuFilterItemLabel="Filter"
5008
5075
 
5009
- i18n-configuratorEmptyRowsText="kendo.pivotgrid.configuratorEmptyRowsText|The text content of the PivotGrid configurator empty rows container"
5010
- configuratorEmptyRowsText="Select some fields to begin setup"
5076
+ i18n-fieldMenuSortAscendingItemLabel="kendo.pivotgrid.fieldMenuSortAscendingItemLabel|The text content of the sort ascending item in the column and row fields menu"
5077
+ fieldMenuSortAscendingItemLabel="Sort ascending"
5011
5078
 
5012
- i18n-configuratorEmptyColumnsText="kendo.pivotgrid.configuratorEmptyColumnsText|The text content of the PivotGrid configurator empty columns container"
5013
- configuratorEmptyColumnsText="Select some fields to begin setup"
5079
+ i18n-fieldMenuSortDescendingItemLabel="kendo.pivotgrid.fieldMenuSortDescendingItemLabel|The text content of the sort descending item in the column and row fields menu"
5080
+ fieldMenuSortDescendingItemLabel="Sort descending"
5014
5081
 
5015
- i18n-configuratorEmptyMeasuresText="kendo.pivotgrid.configuratorEmptyMeasuresText|The text content of the PivotGrid configurator empty measures container"
5016
- configuratorEmptyMeasuresText="Select some fields to begin setup"
5082
+ i18n-filterInputLabel="kendo.pivotgrid.filterInputLabel|The label of the filter input"
5083
+ filterInputLabel="{{ '{fields} Filter' }}"
5017
5084
 
5018
- i18n-chipMenuIconTitle="kendo.grid.chipMenuIconTitle|The title of the field menu icon"
5019
- chipMenuIconTitle="{{ '{fieldName} Field Menu' }}"
5020
-
5021
- i18n-fieldMenuMoveToColumnsItem="kendo.pivotgrid.fieldMenuMoveToColumnsItem|The text content of the Move to Columns item in the column and row fields menu."
5022
- fieldMenuMoveToColumnsItem="Move to Columns"
5085
+ i18n-filterOperatorsDropDownLabel="kendo.pivotgrid.filterOperatorsDropDownLabel|The label of the filter operators DropDownList"
5086
+ filterOperatorsDropDownLabel="{{ '{fields} Filter Operators' }}"
5087
+
5088
+ i18n-filterEqOperator="kendo.pivotgrid.filterEqOperator|The text of the equal filter operator"
5089
+ filterEqOperator="Is equal to"
5090
+
5091
+ i18n-filterNotEqOperator="kendo.pivotgrid.filterNotEqOperator|The text of the not equal filter operator"
5092
+ filterNotEqOperator="Is not equal to"
5093
+
5094
+ i18n-filterIsNullOperator="kendo.pivotgrid.filterIsNullOperator|The text of the is null filter operator"
5095
+ filterIsNullOperator="Is null"
5096
+
5097
+ i18n-filterIsNotNullOperator="kendo.pivotgrid.filterIsNotNullOperator|The text of the is not null filter operator"
5098
+ filterIsNotNullOperator="Is not null"
5099
+
5100
+ i18n-filterIsEmptyOperator="kendo.pivotgrid.filterIsEmptyOperator|The text of the is empty filter operator"
5101
+ filterIsEmptyOperator="Is empty"
5102
+
5103
+ i18n-filterIsNotEmptyOperator="kendo.pivotgrid.filterIsNotEmptyOperator|The text of the is not empty filter operator"
5104
+ filterIsNotEmptyOperator="Is not empty"
5105
+
5106
+ i18n-filterStartsWithOperator="kendo.pivotgrid.filterStartsWithOperator|The text of the starts with filter operator"
5107
+ filterStartsWithOperator="Starts with"
5108
+
5109
+ i18n-filterContainsOperator="kendo.pivotgrid.filterContainsOperator|The text of the contains filter operator"
5110
+ filterContainsOperator="Contains"
5111
+
5112
+ i18n-filterNotContainsOperator="kendo.pivotgrid.filterNotContainsOperator|The text of the does not contain filter operator"
5113
+ filterNotContainsOperator="Does not contain"
5114
+
5115
+ i18n-filterEndsWithOperator="kendo.pivotgrid.filterEndsWithOperator|The text of the ends with filter operator"
5116
+ filterEndsWithOperator="Ends with"
5117
+
5118
+ i18n-filterFilterButton="kendo.pivotgrid.filterFilterButton|The text of the filter button"
5119
+ filterFilterButton="Filter"
5120
+
5121
+ i18n-filterClearButton="kendo.pivotgrid.filterClearButton|The text of the clear filter button"
5122
+ filterClearButton="Clear"
5123
+
5124
+ i18n-configuratorButtonText="kendo.pivotgrid.configuratorButtonText|The text content of the button that opens and closes the PivotGrid configurator"
5125
+ configuratorButtonText="Change Settings"
5126
+
5127
+ i18n-configuratorHeaderText="kendo.pivotgrid.configuratorHeaderText|The text content of the PivotGrid configurator title element"
5128
+ configuratorHeaderText="Settings"
5129
+
5130
+ i18n-configuratorFieldsText="kendo.pivotgrid.configuratorFieldsText|The text content of the PivotGrid configurator fields section title element"
5131
+ configuratorFieldsText="Fields"
5132
+
5133
+ i18n-configuratorColumnsText="kendo.pivotgrid.configuratorColumnsText|The text content of the PivotGrid configurator columns section title element"
5134
+ configuratorColumnsText="Columns"
5135
+
5136
+ i18n-configuratorRowsText="kendo.pivotgrid.configuratorRowsText|The text content of the PivotGrid configurator rows section title element"
5137
+ configuratorRowsText="Rows"
5138
+
5139
+ i18n-configuratorValuesText="kendo.pivotgrid.configuratorValuesText|The text content of the PivotGrid configurator values section title element"
5140
+ configuratorValuesText="Values"
5141
+
5142
+ i18n-configuratorCancelButtonText="kendo.pivotgrid.configuratorCancelButtonText|The text content of the PivotGrid configurator configurator Cancel button"
5143
+ configuratorCancelButtonText="Cancel"
5144
+
5145
+ i18n-configuratorApplyButtonText="kendo.pivotgrid.configuratorApplyButtonText|The text content of the PivotGrid configurator configurator Apply button"
5146
+ configuratorApplyButtonText="Apply"
5023
5147
 
5024
- i18n-fieldMenuMoveToRowsItem="kendo.pivotgrid.fieldMenuMoveToRowsItem|The text content of the Move to Rows item in the column and row fields menu."
5025
- fieldMenuMoveToRowsItem="Move to Rows"
5148
+ i18n-configuratorEmptyRowsText="kendo.pivotgrid.configuratorEmptyRowsText|The text content of the PivotGrid configurator empty rows container"
5149
+ configuratorEmptyRowsText="Select some fields to begin setup"
5026
5150
 
5027
- i18n-fieldMenuMovePreviousItem="kendo.pivotgrid.fieldMenuMovePreviousItem|The text content of the Move as previous item in the column, row, and value fields menu."
5028
- fieldMenuMovePreviousItem="Move as previous"
5151
+ i18n-configuratorEmptyColumnsText="kendo.pivotgrid.configuratorEmptyColumnsText|The text content of the PivotGrid configurator empty columns container"
5152
+ configuratorEmptyColumnsText="Select some fields to begin setup"
5029
5153
 
5030
- i18n-fieldMenuMoveNextItem="kendo.pivotgrid.fieldMenuMoveNextItem|The text content of the Move as next item in the column, row, and value fields menu."
5154
+ i18n-configuratorEmptyMeasuresText="kendo.pivotgrid.configuratorEmptyMeasuresText|The text content of the PivotGrid configurator empty measures container"
5155
+ configuratorEmptyMeasuresText="Select some fields to begin setup"
5156
+
5157
+ i18n-chipMenuIconTitle="kendo.grid.chipMenuIconTitle|The title of the field menu icon"
5158
+ chipMenuIconTitle="{{ '{fieldName} Field Menu' }}"
5159
+
5160
+ i18n-fieldMenuMoveToColumnsItem="kendo.pivotgrid.fieldMenuMoveToColumnsItem|The text content of the Move to Columns item in the column and row fields menu."
5161
+ fieldMenuMoveToColumnsItem="Move to Columns"
5162
+
5163
+ i18n-fieldMenuMoveToRowsItem="kendo.pivotgrid.fieldMenuMoveToRowsItem|The text content of the Move to Rows item in the column and row fields menu."
5164
+ fieldMenuMoveToRowsItem="Move to Rows"
5165
+
5166
+ i18n-fieldMenuMovePreviousItem="kendo.pivotgrid.fieldMenuMovePreviousItem|The text content of the Move as previous item in the column, row, and value fields menu."
5167
+ fieldMenuMovePreviousItem="Move as previous"
5168
+
5169
+ i18n-fieldMenuMoveNextItem="kendo.pivotgrid.fieldMenuMoveNextItem|The text content of the Move as next item in the column, row, and value fields menu."
5031
5170
  fieldMenuMoveNextItem="Move as next"></ng-container>
5032
-
5171
+
5033
5172
  <div #table class="k-pivotgrid" role="grid">
5034
- <span class="k-pivotgrid-empty-cell" role="columnheader">
5035
- <span class="k-sr-only">{{messageFor('emptyCellLabel')}}</span>
5036
- </span>
5037
- <kendo-pivotgrid-table
5038
- #colHeadersTable
5039
- [colWidth]="columnHeadersWidth"
5040
- [customCellTemplate]="customCellTemplate"
5041
- [columnHeaderCellTemplate]="columnHeaderCellTemplate"
5042
- class="k-pivotgrid-column-headers"
5043
- tableType="columnHeader"></kendo-pivotgrid-table>
5044
- <kendo-pivotgrid-table
5045
- #rowHeadersTable
5046
- [customCellTemplate]="customCellTemplate"
5047
- [rowHeaderCellTemplate]="rowHeaderCellTemplate"
5048
- class="k-pivotgrid-row-headers"
5049
- tableType="rowHeader"></kendo-pivotgrid-table>
5050
- <kendo-pivotgrid-table
5051
- #valuesTable
5052
- [customCellTemplate]="customCellTemplate"
5053
- [valueCellTemplate]="valueCellTemplate"
5054
- [colWidth]="columnHeadersWidth"
5055
- class="k-pivotgrid-values"
5056
- [scrollableSettings]="virtualScrolling"
5057
- tableType="values"></kendo-pivotgrid-table>
5058
-
5059
- <div *ngIf="loading" [style]="'position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);'">
5060
- <kendo-loader
5061
- [type]="loaderSettings?.type"
5062
- [themeColor]="loaderSettings?.themeColor"
5063
- [size]="loaderSettings?.size"
5173
+ <span class="k-pivotgrid-empty-cell" role="columnheader">
5174
+ <span class="k-sr-only">{{messageFor('emptyCellLabel')}}</span>
5175
+ </span>
5176
+ <kendo-pivotgrid-table
5177
+ #colHeadersTable
5178
+ [colWidth]="columnHeadersWidth"
5179
+ [customCellTemplate]="customCellTemplate"
5180
+ [columnHeaderCellTemplate]="columnHeaderCellTemplate"
5181
+ class="k-pivotgrid-column-headers"
5182
+ tableType="columnHeader"></kendo-pivotgrid-table>
5183
+ <kendo-pivotgrid-table
5184
+ #rowHeadersTable
5185
+ [customCellTemplate]="customCellTemplate"
5186
+ [rowHeaderCellTemplate]="rowHeaderCellTemplate"
5187
+ class="k-pivotgrid-row-headers"
5188
+ tableType="rowHeader"></kendo-pivotgrid-table>
5189
+ <kendo-pivotgrid-table
5190
+ #valuesTable
5191
+ [customCellTemplate]="customCellTemplate"
5192
+ [valueCellTemplate]="valueCellTemplate"
5193
+ [colWidth]="columnHeadersWidth"
5194
+ class="k-pivotgrid-values"
5195
+ [scrollableSettings]="virtualScrolling"
5196
+ tableType="values"></kendo-pivotgrid-table>
5197
+
5198
+ @if (loading) {
5199
+ <div [style]="'position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);'">
5200
+ <kendo-loader
5201
+ [type]="loaderSettings?.type"
5202
+ [themeColor]="loaderSettings?.themeColor"
5203
+ [size]="loaderSettings?.size"
5064
5204
  >
5065
- </kendo-loader>
5066
- <span class="k-loading-text">{{ loadingText }}</span>
5205
+ </kendo-loader>
5206
+ <span class="k-loading-text">{{ loadingText }}</span>
5067
5207
  </div>
5208
+ }
5068
5209
  </div>
5069
- <kendo-pivotgrid-configurator
5210
+ @if (showConfigurator) {
5211
+ <kendo-pivotgrid-configurator
5070
5212
  #configurator
5071
- *ngIf="showConfigurator"
5072
5213
  [navigation]="configuratorNavigation"
5073
5214
  [orientation]="configuratorSettings.orientation"
5074
5215
  (close)="toggleConfigurator()">
5075
- </kendo-pivotgrid-configurator>
5076
- <div *ngIf="configurator"
5216
+ </kendo-pivotgrid-configurator>
5217
+ }
5218
+ @if (configurator) {
5219
+ <div
5077
5220
  #configuratorButton
5078
5221
  class="k-pivotgrid-configurator-button"
5079
5222
  aria-hidden="true"
5080
5223
  (click)="toggleConfigurator()">
5081
5224
  <span>{{messageFor('configuratorButtonText')}}<kendo-icon-wrapper name="gear" [svgIcon]="gearSVGIcon"></kendo-icon-wrapper>
5082
- </span>
5225
+ </span>
5083
5226
  </div>
5084
- `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoPivotGridLocalizedMessages]" }, { kind: "component", type: PivotGridTableComponent, selector: "kendo-pivotgrid-table", inputs: ["tableType", "colWidth", "customCellTemplate", "valueCellTemplate", "rowHeaderCellTemplate", "columnHeaderCellTemplate", "scrollableSettings"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: LoaderComponent, selector: "kendo-loader", inputs: ["type", "themeColor", "size"] }, { kind: "component", type: PivotGridConfiguratorComponent, selector: "kendo-pivotgrid-configurator", inputs: ["orientation", "sort", "filter", "navigation"], outputs: ["close"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
5227
+ }
5228
+ `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoPivotGridLocalizedMessages]" }, { kind: "component", type: PivotGridTableComponent, selector: "kendo-pivotgrid-table", inputs: ["tableType", "colWidth", "customCellTemplate", "valueCellTemplate", "rowHeaderCellTemplate", "columnHeaderCellTemplate", "scrollableSettings"] }, { kind: "component", type: LoaderComponent, selector: "kendo-loader", inputs: ["type", "themeColor", "size"] }, { kind: "component", type: PivotGridConfiguratorComponent, selector: "kendo-pivotgrid-configurator", inputs: ["orientation", "sort", "filter", "navigation"], outputs: ["close"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
5085
5229
  }
5086
5230
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PivotGridComponent, decorators: [{
5087
5231
  type: Component,
@@ -5099,165 +5243,170 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
5099
5243
  ],
5100
5244
  template: `
5101
5245
  <ng-container kendoPivotGridLocalizedMessages
5102
- i18n-loading="kendo.pivotgrid.loading|The loading text"
5103
- loading="Loading"
5246
+ i18n-loading="kendo.pivotgrid.loading|The loading text"
5247
+ loading="Loading"
5104
5248
 
5105
- i18n-emptyCellLabel="kendo.pivotgrid.emptyCellLabel|The value of the aria-label attribute placed on the focusable empty cell element"
5106
- emptyCellLabel="PivotGrid Empty Cell"
5249
+ i18n-emptyCellLabel="kendo.pivotgrid.emptyCellLabel|The value of the aria-label attribute placed on the focusable empty cell element"
5250
+ emptyCellLabel="PivotGrid Empty Cell"
5107
5251
 
5108
- i18n-fieldMenuFilterItemLabel="kendo.pivotgrid.fieldMenuFilterItemLabel|The text content of the filter item in the column and row fields menu"
5109
- fieldMenuFilterItemLabel="Filter"
5110
-
5111
- i18n-fieldMenuSortAscendingItemLabel="kendo.pivotgrid.fieldMenuSortAscendingItemLabel|The text content of the sort ascending item in the column and row fields menu"
5112
- fieldMenuSortAscendingItemLabel="Sort ascending"
5113
-
5114
- i18n-fieldMenuSortDescendingItemLabel="kendo.pivotgrid.fieldMenuSortDescendingItemLabel|The text content of the sort descending item in the column and row fields menu"
5115
- fieldMenuSortDescendingItemLabel="Sort descending"
5116
-
5117
- i18n-filterInputLabel="kendo.pivotgrid.filterInputLabel|The label of the filter input"
5118
- filterInputLabel="{{ '{fields} Filter' }}"
5119
-
5120
- i18n-filterOperatorsDropDownLabel="kendo.pivotgrid.filterOperatorsDropDownLabel|The label of the filter operators DropDownList"
5121
- filterOperatorsDropDownLabel="{{ '{fields} Filter Operators' }}"
5122
-
5123
- i18n-filterEqOperator="kendo.pivotgrid.filterEqOperator|The text of the equal filter operator"
5124
- filterEqOperator="Is equal to"
5125
-
5126
- i18n-filterNotEqOperator="kendo.pivotgrid.filterNotEqOperator|The text of the not equal filter operator"
5127
- filterNotEqOperator="Is not equal to"
5128
-
5129
- i18n-filterIsNullOperator="kendo.pivotgrid.filterIsNullOperator|The text of the is null filter operator"
5130
- filterIsNullOperator="Is null"
5131
-
5132
- i18n-filterIsNotNullOperator="kendo.pivotgrid.filterIsNotNullOperator|The text of the is not null filter operator"
5133
- filterIsNotNullOperator="Is not null"
5134
-
5135
- i18n-filterIsEmptyOperator="kendo.pivotgrid.filterIsEmptyOperator|The text of the is empty filter operator"
5136
- filterIsEmptyOperator="Is empty"
5137
-
5138
- i18n-filterIsNotEmptyOperator="kendo.pivotgrid.filterIsNotEmptyOperator|The text of the is not empty filter operator"
5139
- filterIsNotEmptyOperator="Is not empty"
5140
-
5141
- i18n-filterStartsWithOperator="kendo.pivotgrid.filterStartsWithOperator|The text of the starts with filter operator"
5142
- filterStartsWithOperator="Starts with"
5143
-
5144
- i18n-filterContainsOperator="kendo.pivotgrid.filterContainsOperator|The text of the contains filter operator"
5145
- filterContainsOperator="Contains"
5146
-
5147
- i18n-filterNotContainsOperator="kendo.pivotgrid.filterNotContainsOperator|The text of the does not contain filter operator"
5148
- filterNotContainsOperator="Does not contain"
5149
-
5150
- i18n-filterEndsWithOperator="kendo.pivotgrid.filterEndsWithOperator|The text of the ends with filter operator"
5151
- filterEndsWithOperator="Ends with"
5152
-
5153
- i18n-filterFilterButton="kendo.pivotgrid.filterFilterButton|The text of the filter button"
5154
- filterFilterButton="Filter"
5155
-
5156
- i18n-filterClearButton="kendo.pivotgrid.filterClearButton|The text of the clear filter button"
5157
- filterClearButton="Clear"
5158
-
5159
- i18n-configuratorButtonText="kendo.pivotgrid.configuratorButtonText|The text content of the button that opens and closes the PivotGrid configurator"
5160
- configuratorButtonText="Change Settings"
5161
-
5162
- i18n-configuratorHeaderText="kendo.pivotgrid.configuratorHeaderText|The text content of the PivotGrid configurator title element"
5163
- configuratorHeaderText="Settings"
5164
-
5165
- i18n-configuratorFieldsText="kendo.pivotgrid.configuratorFieldsText|The text content of the PivotGrid configurator fields section title element"
5166
- configuratorFieldsText="Fields"
5167
-
5168
- i18n-configuratorColumnsText="kendo.pivotgrid.configuratorColumnsText|The text content of the PivotGrid configurator columns section title element"
5169
- configuratorColumnsText="Columns"
5170
-
5171
- i18n-configuratorRowsText="kendo.pivotgrid.configuratorRowsText|The text content of the PivotGrid configurator rows section title element"
5172
- configuratorRowsText="Rows"
5173
-
5174
- i18n-configuratorValuesText="kendo.pivotgrid.configuratorValuesText|The text content of the PivotGrid configurator values section title element"
5175
- configuratorValuesText="Values"
5176
-
5177
- i18n-configuratorCancelButtonText="kendo.pivotgrid.configuratorCancelButtonText|The text content of the PivotGrid configurator configurator Cancel button"
5178
- configuratorCancelButtonText="Cancel"
5179
-
5180
- i18n-configuratorApplyButtonText="kendo.pivotgrid.configuratorApplyButtonText|The text content of the PivotGrid configurator configurator Apply button"
5181
- configuratorApplyButtonText="Apply"
5252
+ i18n-fieldMenuFilterItemLabel="kendo.pivotgrid.fieldMenuFilterItemLabel|The text content of the filter item in the column and row fields menu"
5253
+ fieldMenuFilterItemLabel="Filter"
5182
5254
 
5183
- i18n-configuratorEmptyRowsText="kendo.pivotgrid.configuratorEmptyRowsText|The text content of the PivotGrid configurator empty rows container"
5184
- configuratorEmptyRowsText="Select some fields to begin setup"
5255
+ i18n-fieldMenuSortAscendingItemLabel="kendo.pivotgrid.fieldMenuSortAscendingItemLabel|The text content of the sort ascending item in the column and row fields menu"
5256
+ fieldMenuSortAscendingItemLabel="Sort ascending"
5185
5257
 
5186
- i18n-configuratorEmptyColumnsText="kendo.pivotgrid.configuratorEmptyColumnsText|The text content of the PivotGrid configurator empty columns container"
5187
- configuratorEmptyColumnsText="Select some fields to begin setup"
5258
+ i18n-fieldMenuSortDescendingItemLabel="kendo.pivotgrid.fieldMenuSortDescendingItemLabel|The text content of the sort descending item in the column and row fields menu"
5259
+ fieldMenuSortDescendingItemLabel="Sort descending"
5188
5260
 
5189
- i18n-configuratorEmptyMeasuresText="kendo.pivotgrid.configuratorEmptyMeasuresText|The text content of the PivotGrid configurator empty measures container"
5190
- configuratorEmptyMeasuresText="Select some fields to begin setup"
5261
+ i18n-filterInputLabel="kendo.pivotgrid.filterInputLabel|The label of the filter input"
5262
+ filterInputLabel="{{ '{fields} Filter' }}"
5191
5263
 
5192
- i18n-chipMenuIconTitle="kendo.grid.chipMenuIconTitle|The title of the field menu icon"
5193
- chipMenuIconTitle="{{ '{fieldName} Field Menu' }}"
5194
-
5195
- i18n-fieldMenuMoveToColumnsItem="kendo.pivotgrid.fieldMenuMoveToColumnsItem|The text content of the Move to Columns item in the column and row fields menu."
5196
- fieldMenuMoveToColumnsItem="Move to Columns"
5264
+ i18n-filterOperatorsDropDownLabel="kendo.pivotgrid.filterOperatorsDropDownLabel|The label of the filter operators DropDownList"
5265
+ filterOperatorsDropDownLabel="{{ '{fields} Filter Operators' }}"
5266
+
5267
+ i18n-filterEqOperator="kendo.pivotgrid.filterEqOperator|The text of the equal filter operator"
5268
+ filterEqOperator="Is equal to"
5269
+
5270
+ i18n-filterNotEqOperator="kendo.pivotgrid.filterNotEqOperator|The text of the not equal filter operator"
5271
+ filterNotEqOperator="Is not equal to"
5272
+
5273
+ i18n-filterIsNullOperator="kendo.pivotgrid.filterIsNullOperator|The text of the is null filter operator"
5274
+ filterIsNullOperator="Is null"
5275
+
5276
+ i18n-filterIsNotNullOperator="kendo.pivotgrid.filterIsNotNullOperator|The text of the is not null filter operator"
5277
+ filterIsNotNullOperator="Is not null"
5278
+
5279
+ i18n-filterIsEmptyOperator="kendo.pivotgrid.filterIsEmptyOperator|The text of the is empty filter operator"
5280
+ filterIsEmptyOperator="Is empty"
5281
+
5282
+ i18n-filterIsNotEmptyOperator="kendo.pivotgrid.filterIsNotEmptyOperator|The text of the is not empty filter operator"
5283
+ filterIsNotEmptyOperator="Is not empty"
5284
+
5285
+ i18n-filterStartsWithOperator="kendo.pivotgrid.filterStartsWithOperator|The text of the starts with filter operator"
5286
+ filterStartsWithOperator="Starts with"
5287
+
5288
+ i18n-filterContainsOperator="kendo.pivotgrid.filterContainsOperator|The text of the contains filter operator"
5289
+ filterContainsOperator="Contains"
5290
+
5291
+ i18n-filterNotContainsOperator="kendo.pivotgrid.filterNotContainsOperator|The text of the does not contain filter operator"
5292
+ filterNotContainsOperator="Does not contain"
5293
+
5294
+ i18n-filterEndsWithOperator="kendo.pivotgrid.filterEndsWithOperator|The text of the ends with filter operator"
5295
+ filterEndsWithOperator="Ends with"
5296
+
5297
+ i18n-filterFilterButton="kendo.pivotgrid.filterFilterButton|The text of the filter button"
5298
+ filterFilterButton="Filter"
5299
+
5300
+ i18n-filterClearButton="kendo.pivotgrid.filterClearButton|The text of the clear filter button"
5301
+ filterClearButton="Clear"
5302
+
5303
+ i18n-configuratorButtonText="kendo.pivotgrid.configuratorButtonText|The text content of the button that opens and closes the PivotGrid configurator"
5304
+ configuratorButtonText="Change Settings"
5305
+
5306
+ i18n-configuratorHeaderText="kendo.pivotgrid.configuratorHeaderText|The text content of the PivotGrid configurator title element"
5307
+ configuratorHeaderText="Settings"
5308
+
5309
+ i18n-configuratorFieldsText="kendo.pivotgrid.configuratorFieldsText|The text content of the PivotGrid configurator fields section title element"
5310
+ configuratorFieldsText="Fields"
5311
+
5312
+ i18n-configuratorColumnsText="kendo.pivotgrid.configuratorColumnsText|The text content of the PivotGrid configurator columns section title element"
5313
+ configuratorColumnsText="Columns"
5197
5314
 
5198
- i18n-fieldMenuMoveToRowsItem="kendo.pivotgrid.fieldMenuMoveToRowsItem|The text content of the Move to Rows item in the column and row fields menu."
5199
- fieldMenuMoveToRowsItem="Move to Rows"
5315
+ i18n-configuratorRowsText="kendo.pivotgrid.configuratorRowsText|The text content of the PivotGrid configurator rows section title element"
5316
+ configuratorRowsText="Rows"
5200
5317
 
5201
- i18n-fieldMenuMovePreviousItem="kendo.pivotgrid.fieldMenuMovePreviousItem|The text content of the Move as previous item in the column, row, and value fields menu."
5202
- fieldMenuMovePreviousItem="Move as previous"
5318
+ i18n-configuratorValuesText="kendo.pivotgrid.configuratorValuesText|The text content of the PivotGrid configurator values section title element"
5319
+ configuratorValuesText="Values"
5203
5320
 
5204
- i18n-fieldMenuMoveNextItem="kendo.pivotgrid.fieldMenuMoveNextItem|The text content of the Move as next item in the column, row, and value fields menu."
5321
+ i18n-configuratorCancelButtonText="kendo.pivotgrid.configuratorCancelButtonText|The text content of the PivotGrid configurator configurator Cancel button"
5322
+ configuratorCancelButtonText="Cancel"
5323
+
5324
+ i18n-configuratorApplyButtonText="kendo.pivotgrid.configuratorApplyButtonText|The text content of the PivotGrid configurator configurator Apply button"
5325
+ configuratorApplyButtonText="Apply"
5326
+
5327
+ i18n-configuratorEmptyRowsText="kendo.pivotgrid.configuratorEmptyRowsText|The text content of the PivotGrid configurator empty rows container"
5328
+ configuratorEmptyRowsText="Select some fields to begin setup"
5329
+
5330
+ i18n-configuratorEmptyColumnsText="kendo.pivotgrid.configuratorEmptyColumnsText|The text content of the PivotGrid configurator empty columns container"
5331
+ configuratorEmptyColumnsText="Select some fields to begin setup"
5332
+
5333
+ i18n-configuratorEmptyMeasuresText="kendo.pivotgrid.configuratorEmptyMeasuresText|The text content of the PivotGrid configurator empty measures container"
5334
+ configuratorEmptyMeasuresText="Select some fields to begin setup"
5335
+
5336
+ i18n-chipMenuIconTitle="kendo.grid.chipMenuIconTitle|The title of the field menu icon"
5337
+ chipMenuIconTitle="{{ '{fieldName} Field Menu' }}"
5338
+
5339
+ i18n-fieldMenuMoveToColumnsItem="kendo.pivotgrid.fieldMenuMoveToColumnsItem|The text content of the Move to Columns item in the column and row fields menu."
5340
+ fieldMenuMoveToColumnsItem="Move to Columns"
5341
+
5342
+ i18n-fieldMenuMoveToRowsItem="kendo.pivotgrid.fieldMenuMoveToRowsItem|The text content of the Move to Rows item in the column and row fields menu."
5343
+ fieldMenuMoveToRowsItem="Move to Rows"
5344
+
5345
+ i18n-fieldMenuMovePreviousItem="kendo.pivotgrid.fieldMenuMovePreviousItem|The text content of the Move as previous item in the column, row, and value fields menu."
5346
+ fieldMenuMovePreviousItem="Move as previous"
5347
+
5348
+ i18n-fieldMenuMoveNextItem="kendo.pivotgrid.fieldMenuMoveNextItem|The text content of the Move as next item in the column, row, and value fields menu."
5205
5349
  fieldMenuMoveNextItem="Move as next"></ng-container>
5206
-
5350
+
5207
5351
  <div #table class="k-pivotgrid" role="grid">
5208
- <span class="k-pivotgrid-empty-cell" role="columnheader">
5209
- <span class="k-sr-only">{{messageFor('emptyCellLabel')}}</span>
5210
- </span>
5211
- <kendo-pivotgrid-table
5212
- #colHeadersTable
5213
- [colWidth]="columnHeadersWidth"
5214
- [customCellTemplate]="customCellTemplate"
5215
- [columnHeaderCellTemplate]="columnHeaderCellTemplate"
5216
- class="k-pivotgrid-column-headers"
5217
- tableType="columnHeader"></kendo-pivotgrid-table>
5218
- <kendo-pivotgrid-table
5219
- #rowHeadersTable
5220
- [customCellTemplate]="customCellTemplate"
5221
- [rowHeaderCellTemplate]="rowHeaderCellTemplate"
5222
- class="k-pivotgrid-row-headers"
5223
- tableType="rowHeader"></kendo-pivotgrid-table>
5224
- <kendo-pivotgrid-table
5225
- #valuesTable
5226
- [customCellTemplate]="customCellTemplate"
5227
- [valueCellTemplate]="valueCellTemplate"
5228
- [colWidth]="columnHeadersWidth"
5229
- class="k-pivotgrid-values"
5230
- [scrollableSettings]="virtualScrolling"
5231
- tableType="values"></kendo-pivotgrid-table>
5232
-
5233
- <div *ngIf="loading" [style]="'position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);'">
5234
- <kendo-loader
5235
- [type]="loaderSettings?.type"
5236
- [themeColor]="loaderSettings?.themeColor"
5237
- [size]="loaderSettings?.size"
5352
+ <span class="k-pivotgrid-empty-cell" role="columnheader">
5353
+ <span class="k-sr-only">{{messageFor('emptyCellLabel')}}</span>
5354
+ </span>
5355
+ <kendo-pivotgrid-table
5356
+ #colHeadersTable
5357
+ [colWidth]="columnHeadersWidth"
5358
+ [customCellTemplate]="customCellTemplate"
5359
+ [columnHeaderCellTemplate]="columnHeaderCellTemplate"
5360
+ class="k-pivotgrid-column-headers"
5361
+ tableType="columnHeader"></kendo-pivotgrid-table>
5362
+ <kendo-pivotgrid-table
5363
+ #rowHeadersTable
5364
+ [customCellTemplate]="customCellTemplate"
5365
+ [rowHeaderCellTemplate]="rowHeaderCellTemplate"
5366
+ class="k-pivotgrid-row-headers"
5367
+ tableType="rowHeader"></kendo-pivotgrid-table>
5368
+ <kendo-pivotgrid-table
5369
+ #valuesTable
5370
+ [customCellTemplate]="customCellTemplate"
5371
+ [valueCellTemplate]="valueCellTemplate"
5372
+ [colWidth]="columnHeadersWidth"
5373
+ class="k-pivotgrid-values"
5374
+ [scrollableSettings]="virtualScrolling"
5375
+ tableType="values"></kendo-pivotgrid-table>
5376
+
5377
+ @if (loading) {
5378
+ <div [style]="'position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);'">
5379
+ <kendo-loader
5380
+ [type]="loaderSettings?.type"
5381
+ [themeColor]="loaderSettings?.themeColor"
5382
+ [size]="loaderSettings?.size"
5238
5383
  >
5239
- </kendo-loader>
5240
- <span class="k-loading-text">{{ loadingText }}</span>
5384
+ </kendo-loader>
5385
+ <span class="k-loading-text">{{ loadingText }}</span>
5241
5386
  </div>
5387
+ }
5242
5388
  </div>
5243
- <kendo-pivotgrid-configurator
5389
+ @if (showConfigurator) {
5390
+ <kendo-pivotgrid-configurator
5244
5391
  #configurator
5245
- *ngIf="showConfigurator"
5246
5392
  [navigation]="configuratorNavigation"
5247
5393
  [orientation]="configuratorSettings.orientation"
5248
5394
  (close)="toggleConfigurator()">
5249
- </kendo-pivotgrid-configurator>
5250
- <div *ngIf="configurator"
5395
+ </kendo-pivotgrid-configurator>
5396
+ }
5397
+ @if (configurator) {
5398
+ <div
5251
5399
  #configuratorButton
5252
5400
  class="k-pivotgrid-configurator-button"
5253
5401
  aria-hidden="true"
5254
5402
  (click)="toggleConfigurator()">
5255
5403
  <span>{{messageFor('configuratorButtonText')}}<kendo-icon-wrapper name="gear" [svgIcon]="gearSVGIcon"></kendo-icon-wrapper>
5256
- </span>
5404
+ </span>
5257
5405
  </div>
5258
- `,
5406
+ }
5407
+ `,
5259
5408
  standalone: true,
5260
- imports: [LocalizedMessagesDirective, PivotGridTableComponent, NgIf, LoaderComponent, PivotGridConfiguratorComponent, IconWrapperComponent]
5409
+ imports: [LocalizedMessagesDirective, PivotGridTableComponent, LoaderComponent, PivotGridConfiguratorComponent, IconWrapperComponent]
5261
5410
  }]
5262
5411
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: PivotGridDataService }, { type: i1$1.LocalizationService }, { type: i0.Renderer2 }, { type: i1$4.ScrollbarWidthService }, { type: PivotGridScrollService }], propDecorators: { hostClass: [{
5263
5412
  type: HostBinding,