@progress/kendo-angular-grid 13.0.0-develop.12 → 13.0.0-develop.14

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.
@@ -22,7 +22,7 @@ import * as i1$3 from '@angular/platform-browser';
22
22
  import * as i3 from '@progress/kendo-angular-icons';
23
23
  import { IconsModule } from '@progress/kendo-angular-icons';
24
24
  import { plusIcon, cancelIcon, lockIcon, unlockIcon, insertMiddleIcon, caretAltLeftIcon, caretAltToLeftIcon, caretAltRightIcon, caretAltToRightIcon, sortDescSmallIcon, sortAscSmallIcon, filterIcon, stickIcon, unstickIcon, setColumnPositionIcon, columnsIcon, maxWidthIcon, displayInlineFlexIcon, moreHorizontalIcon, moreVerticalIcon, filterClearIcon, reorderIcon, caretAltDownIcon, minusIcon } from '@progress/kendo-svg-icons';
25
- import * as i40 from '@progress/kendo-angular-utils';
25
+ import * as i41 from '@progress/kendo-angular-utils';
26
26
  import { DragTargetContainerDirective, DropTargetContainerDirective, DragAndDropModule as DragAndDropModule$1 } from '@progress/kendo-angular-utils';
27
27
  import * as i4$1 from '@progress/kendo-angular-buttons';
28
28
  import { ButtonModule, ChipModule, Button } from '@progress/kendo-angular-buttons';
@@ -2074,6 +2074,7 @@ class SelectionService {
2074
2074
  this.localDataChangesService = localDataChangesService;
2075
2075
  this.navigationService = navigationService;
2076
2076
  this.changes = new EventEmitter();
2077
+ this.aggregateChanges = new EventEmitter();
2077
2078
  this.lastSelectionStartIndex = 0;
2078
2079
  this.currentSelection = [];
2079
2080
  this.selectAllChecked = false;
@@ -2157,6 +2158,10 @@ class SelectionService {
2157
2158
  }
2158
2159
  ev.ctrlKey = ctrlKey;
2159
2160
  ev.shiftKey = event.shiftKey;
2161
+ if (this.options.cellAggregates) {
2162
+ this.aggregateChanges.emit(ev);
2163
+ ev.cellAggregates = this.aggregates;
2164
+ }
2160
2165
  this.changes.emit(ev);
2161
2166
  }
2162
2167
  toggle(item) {
@@ -2311,9 +2316,15 @@ class SelectionService {
2311
2316
  }
2312
2317
  next = iterator.next();
2313
2318
  }
2319
+ let cellAggregates;
2320
+ if (this.options.cellAggregates) {
2321
+ this.aggregateChanges.emit({ selectedRows, deselectedRows });
2322
+ cellAggregates = this.aggregates;
2323
+ }
2314
2324
  return {
2315
2325
  deselectedRows: deselectedRows,
2316
- selectedRows: selectedRows
2326
+ selectedRows: selectedRows,
2327
+ cellAggregates
2317
2328
  };
2318
2329
  }
2319
2330
  get selectAllState() {
@@ -2326,6 +2337,7 @@ class SelectionService {
2326
2337
  }
2327
2338
  get options() {
2328
2339
  const defaultOptions = {
2340
+ cellAggregates: false,
2329
2341
  checkboxOnly: false,
2330
2342
  enabled: true,
2331
2343
  mode: "multiple"
@@ -2335,6 +2347,7 @@ class SelectionService {
2335
2347
  }
2336
2348
  if (typeof this.settings.selectable === 'boolean') {
2337
2349
  return {
2350
+ cellAggregates: false,
2338
2351
  checkboxOnly: false,
2339
2352
  enabled: this.settings.selectable,
2340
2353
  mode: "multiple"
@@ -2422,6 +2435,7 @@ class CellSelectionService {
2422
2435
  this.localDataChangesService = localDataChangesService;
2423
2436
  this.navigationService = navigationService;
2424
2437
  this.changes = new EventEmitter();
2438
+ this.aggregateChanges = new EventEmitter();
2425
2439
  this.mouseUpEvent = new EventEmitter();
2426
2440
  this.currentSelection = [];
2427
2441
  this.active = false;
@@ -2507,6 +2521,10 @@ class CellSelectionService {
2507
2521
  }
2508
2522
  ev.ctrlKey = ctrlKey;
2509
2523
  ev.shiftKey = event.shiftKey;
2524
+ if (this.options.cellAggregates) {
2525
+ this.aggregateChanges.emit(ev);
2526
+ ev.cellAggregates = this.aggregates;
2527
+ }
2510
2528
  this.changes.emit(ev);
2511
2529
  }
2512
2530
  toggle(item) {
@@ -2610,13 +2628,20 @@ class CellSelectionService {
2610
2628
  }
2611
2629
  next = iterator.next();
2612
2630
  }
2631
+ let cellAggregates;
2632
+ if (this.options.cellAggregates) {
2633
+ this.aggregateChanges.emit({ selectedCells, deselectedCells });
2634
+ cellAggregates = this.aggregates;
2635
+ }
2613
2636
  return {
2614
2637
  deselectedCells,
2615
- selectedCells
2638
+ selectedCells,
2639
+ cellAggregates
2616
2640
  };
2617
2641
  }
2618
2642
  get options() {
2619
2643
  const defaultOptions = {
2644
+ cellAggregates: false,
2620
2645
  checkboxOnly: false,
2621
2646
  enabled: true,
2622
2647
  mode: "multiple"
@@ -2626,6 +2651,7 @@ class CellSelectionService {
2626
2651
  }
2627
2652
  if (typeof this.settings.selectable === 'boolean') {
2628
2653
  return {
2654
+ cellAggregates: false,
2629
2655
  checkboxOnly: false,
2630
2656
  enabled: this.settings.selectable,
2631
2657
  mode: "multiple"
@@ -2899,8 +2925,8 @@ const packageMetadata = {
2899
2925
  name: '@progress/kendo-angular-grid',
2900
2926
  productName: 'Kendo UI for Angular',
2901
2927
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
2902
- publishDate: 1685372819,
2903
- version: '13.0.0-develop.12',
2928
+ publishDate: 1685438859,
2929
+ version: '13.0.0-develop.14',
2904
2930
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
2905
2931
  };
2906
2932
 
@@ -6450,6 +6476,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
6450
6476
  type: Output
6451
6477
  }] } });
6452
6478
 
6479
+ /**
6480
+ * Represents the status bar template of the Grid. Allows you to visualize the aggregates using custom rendering inside the template.
6481
+ * The template context has the following field:
6482
+ * - `aggregates`—The [SelectionAggregates]({% slug api_grid_selectionaggregates %}) object that contains all calculated aggregates.
6483
+ * Use the Angular [ngFor](link:site.data.urls.angular['ngfor']) structural directive combined with the [KeyValuePipe](https://angular.io/api/common/KeyValuePipe)
6484
+ * to loop through the aggregates as key-value pairs.
6485
+ */
6486
+ class StatusBarTemplateDirective {
6487
+ constructor(templateRef) {
6488
+ this.templateRef = templateRef;
6489
+ }
6490
+ }
6491
+ StatusBarTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: StatusBarTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
6492
+ StatusBarTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: StatusBarTemplateDirective, selector: "[kendoGridStatusBarTemplate]", ngImport: i0 });
6493
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: StatusBarTemplateDirective, decorators: [{
6494
+ type: Directive,
6495
+ args: [{
6496
+ selector: '[kendoGridStatusBarTemplate]'
6497
+ }]
6498
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
6499
+
6453
6500
  /**
6454
6501
  * @hidden
6455
6502
  */
@@ -15798,6 +15845,8 @@ class SelectionCheckboxDirective {
15798
15845
  const ev = this.selectionService.toggleByIndex(this.itemIndex);
15799
15846
  ev.ctrlKey = true;
15800
15847
  ev.shiftKey = false;
15848
+ this.selectionService.aggregateChanges.emit(ev);
15849
+ ev.cellAggregates = this.selectionService.aggregates;
15801
15850
  this.selectionService.changes.emit(ev);
15802
15851
  });
15803
15852
  }
@@ -18553,6 +18602,224 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
18553
18602
  type: Input
18554
18603
  }] } });
18555
18604
 
18605
+ /* eslint-disable @typescript-eslint/no-explicit-any */
18606
+ ;
18607
+ /**
18608
+ * @hidden
18609
+ */
18610
+ class StatusBarComponent {
18611
+ constructor(ctx, selectionService, dataChanges, columnInfoService, cellSelectionService) {
18612
+ this.ctx = ctx;
18613
+ this.selectionService = selectionService;
18614
+ this.dataChanges = dataChanges;
18615
+ this.columnInfoService = columnInfoService;
18616
+ this.cellSelectionService = cellSelectionService;
18617
+ this.hostClasses = true;
18618
+ this.groupedAggregates = { dates: [], numbers: [], booleans: [] };
18619
+ this.aggregates = {
18620
+ sum: null,
18621
+ average: null,
18622
+ min: null,
18623
+ max: null,
18624
+ count: null,
18625
+ isTrue: null,
18626
+ isFalse: null,
18627
+ earliest: null,
18628
+ latest: null
18629
+ };
18630
+ this.subs = new Subscription();
18631
+ this.selectedItems = [];
18632
+ }
18633
+ get isStatusBarTemplate() {
18634
+ return this.statusBarTemplate ? '' : 'none';
18635
+ }
18636
+ ngOnInit() {
18637
+ if (this.selectableSettings.cellAggregates) {
18638
+ this.data = this.dataChanges.data ? this.dataChanges.data : this.ctx.grid.data;
18639
+ this.selectService = this.isRowSelection ? this.selectionService : this.cellSelectionService;
18640
+ if (this.isAggregateIncluded('count')) {
18641
+ this.aggregates['count'] = 0;
18642
+ }
18643
+ const selectionDirective = this.ctx.grid.selectionDirective;
18644
+ if (selectionDirective && !this.isRowSelection) {
18645
+ this.selectedItems = selectionDirective.selectedKeys;
18646
+ }
18647
+ this.subs.add(this.selectService.aggregateChanges.subscribe((selectionArgs) => this.onSelectionChange(selectionArgs)));
18648
+ }
18649
+ }
18650
+ ngOnDestroy() {
18651
+ this.subs.unsubscribe();
18652
+ }
18653
+ onSelectionChange(selectionArgs) {
18654
+ this.handleSelectedItems(selectionArgs);
18655
+ this.nullifyAggregates();
18656
+ this.handleAggregateChanges();
18657
+ this.selectService.aggregates = this.aggregates;
18658
+ }
18659
+ handleAggregateChanges() {
18660
+ const lockedColumns = this.columnInfoService.lockedLeafColumns.toArray();
18661
+ const nonLockedColumns = this.columnInfoService.nonLockedLeafColumns.toArray();
18662
+ const selectedItemsLength = this.selectedItems.length;
18663
+ const columns = [...lockedColumns, ...nonLockedColumns];
18664
+ const fields = columns.map(col => col.field);
18665
+ if (this.isAggregateIncluded('count')) {
18666
+ this.aggregates['count'] = this.isRowSelection ? (selectedItemsLength * columns.length) : selectedItemsLength;
18667
+ }
18668
+ this.selectedItems.forEach((item) => {
18669
+ if (this.isRowSelection) {
18670
+ fields.forEach((field) => {
18671
+ const cellValue = item.dataItem;
18672
+ if (cellValue && cellValue.hasOwnProperty(field)) {
18673
+ const cellValue = item.dataItem[field];
18674
+ this.groupAggregates(cellValue);
18675
+ }
18676
+ });
18677
+ }
18678
+ else if (this.selectService.options.cell) {
18679
+ const itemKey = this.data[item.itemKey];
18680
+ const field = fields[item.columnKey];
18681
+ if (itemKey && itemKey.hasOwnProperty(field)) {
18682
+ const cellValue = itemKey[fields[item.columnKey]];
18683
+ this.groupAggregates(cellValue);
18684
+ }
18685
+ }
18686
+ });
18687
+ this.calculateAggregates();
18688
+ }
18689
+ groupAggregates(aggregate) {
18690
+ if (typeof aggregate === 'number') {
18691
+ this.groupedAggregates.numbers.push(aggregate);
18692
+ }
18693
+ else if (typeof aggregate === 'boolean') {
18694
+ this.groupedAggregates.booleans.push(aggregate);
18695
+ }
18696
+ else if (aggregate instanceof Date) {
18697
+ this.groupedAggregates.dates.push(aggregate);
18698
+ }
18699
+ }
18700
+ calculateAggregates() {
18701
+ if (this.groupedAggregates.numbers.length > 0) {
18702
+ if (this.isAggregateIncluded('min')) {
18703
+ this.aggregates['min'] = Math.min(...this.groupedAggregates.numbers);
18704
+ }
18705
+ if (this.isAggregateIncluded('max')) {
18706
+ this.aggregates['max'] = Math.max(...this.groupedAggregates.numbers);
18707
+ }
18708
+ if (this.isAggregateIncluded('sum')) {
18709
+ this.aggregates['sum'] = this.groupedAggregates.numbers.reduce((acc, curr) => acc += curr, 0);
18710
+ }
18711
+ if (this.isAggregateIncluded('average')) {
18712
+ this.aggregates['average'] = this.aggregates['sum'] / this.groupedAggregates.numbers.length;
18713
+ }
18714
+ }
18715
+ if (this.groupedAggregates.booleans.length > 0) {
18716
+ if (this.isAggregateIncluded('isTrue')) {
18717
+ const isTrueCount = this.groupedAggregates.booleans.filter(bool => bool).length;
18718
+ this.aggregates['isTrue'] = isTrueCount > 0 ? isTrueCount : null;
18719
+ }
18720
+ if (this.isAggregateIncluded('isFalse')) {
18721
+ const isFalseCount = this.groupedAggregates.booleans.length - this.aggregates['isTrue'];
18722
+ this.aggregates['isFalse'] = isFalseCount > 0 ? isFalseCount : null;
18723
+ }
18724
+ }
18725
+ if (this.groupedAggregates.dates.length > 0) {
18726
+ if (this.isAggregateIncluded('earliest')) {
18727
+ this.aggregates['earliest'] = new Date(Math.min(...this.groupedAggregates.dates));
18728
+ }
18729
+ if (this.isAggregateIncluded('latest')) {
18730
+ this.aggregates['latest'] = new Date(Math.max(...this.groupedAggregates.dates));
18731
+ }
18732
+ }
18733
+ }
18734
+ handleSelectedItems(selectionArgs) {
18735
+ const rowOrCellSelect = `${this.isRowSelection ? 'selectedRows' : 'selectedCells'}`;
18736
+ const rowOrCellDeselect = `${this.isRowSelection ? 'deselectedRows' : 'deselectedCells'}`;
18737
+ const selectedItems = selectionArgs[rowOrCellSelect];
18738
+ const deselectedItems = selectionArgs[rowOrCellDeselect];
18739
+ if (!this.isRowSelection) {
18740
+ // Needed when we have column groups with cell selection, the deselected items are duplicated
18741
+ deselectedItems.forEach((item, index) => {
18742
+ if (index + 1 < deselectedItems.length) {
18743
+ if (item.itemKey === deselectedItems[index + 1].itemKey
18744
+ && item.columnKey === deselectedItems[index + 1].columnKey) {
18745
+ deselectedItems.splice(index, 1);
18746
+ }
18747
+ }
18748
+ });
18749
+ }
18750
+ if (selectedItems.length > 0) {
18751
+ selectedItems.forEach((item) => {
18752
+ this.selectedItems = [...this.selectedItems, item];
18753
+ });
18754
+ }
18755
+ if (deselectedItems.length > 0) {
18756
+ if (this.isRowSelection) {
18757
+ deselectedItems.forEach((row) => {
18758
+ this.selectedItems = this.selectedItems.filter((elem) => elem.dataItem !== row.dataItem);
18759
+ });
18760
+ }
18761
+ else {
18762
+ deselectedItems.forEach((cell) => {
18763
+ const index = this.selectedItems.findIndex((elem) => elem.itemKey === cell.itemKey && elem.columnKey === cell.columnKey);
18764
+ this.selectedItems.splice(index, 1);
18765
+ });
18766
+ }
18767
+ }
18768
+ }
18769
+ isAggregateIncluded(aggregate) {
18770
+ const { cellAggregates } = this.selectService.options;
18771
+ if (typeof cellAggregates !== 'boolean') {
18772
+ return cellAggregates.includes(aggregate);
18773
+ }
18774
+ return true;
18775
+ }
18776
+ nullifyAggregates() {
18777
+ this.groupedAggregates = { dates: [], numbers: [], booleans: [] };
18778
+ this.aggregates['count'] = null;
18779
+ this.aggregates['sum'] = this.aggregates['average'] = null;
18780
+ this.aggregates['max'] = this.aggregates['min'] = null;
18781
+ this.aggregates['isFalse'] = this.aggregates['isTrue'] = null;
18782
+ this.aggregates['earliest'] = this.aggregates['latest'] = null;
18783
+ }
18784
+ get isRowSelection() {
18785
+ return typeof this.selectableSettings === 'boolean' || !this.selectableSettings.cell;
18786
+ }
18787
+ }
18788
+ StatusBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: StatusBarComponent, deps: [{ token: ContextService }, { token: SelectionService }, { token: LocalDataChangesService }, { token: ColumnInfoService }, { token: CellSelectionService }], target: i0.ɵɵFactoryTarget.Component });
18789
+ StatusBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: StatusBarComponent, selector: "kendo-grid-status-bar", inputs: { selectableSettings: "selectableSettings", statusBarTemplate: "statusBarTemplate" }, host: { properties: { "class.k-selection-aggregates": "this.hostClasses", "class.k-grid-selection-aggregates": "this.hostClasses", "style.display": "this.isStatusBarTemplate" } }, ngImport: i0, template: `
18790
+ <ng-template
18791
+ *ngIf="statusBarTemplate"
18792
+ [ngTemplateOutlet]="statusBarTemplate?.templateRef"
18793
+ [ngTemplateOutletContext]="{ aggregates: aggregates }">
18794
+ </ng-template>
18795
+ `, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
18796
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: StatusBarComponent, decorators: [{
18797
+ type: Component,
18798
+ args: [{
18799
+ selector: 'kendo-grid-status-bar',
18800
+ template: `
18801
+ <ng-template
18802
+ *ngIf="statusBarTemplate"
18803
+ [ngTemplateOutlet]="statusBarTemplate?.templateRef"
18804
+ [ngTemplateOutletContext]="{ aggregates: aggregates }">
18805
+ </ng-template>
18806
+ `
18807
+ }]
18808
+ }], ctorParameters: function () { return [{ type: ContextService }, { type: SelectionService }, { type: LocalDataChangesService }, { type: ColumnInfoService }, { type: CellSelectionService }]; }, propDecorators: { hostClasses: [{
18809
+ type: HostBinding,
18810
+ args: ['class.k-selection-aggregates']
18811
+ }, {
18812
+ type: HostBinding,
18813
+ args: ['class.k-grid-selection-aggregates']
18814
+ }], isStatusBarTemplate: [{
18815
+ type: HostBinding,
18816
+ args: ['style.display']
18817
+ }], selectableSettings: [{
18818
+ type: Input
18819
+ }], statusBarTemplate: [{
18820
+ type: Input
18821
+ }] } });
18822
+
18556
18823
  /**
18557
18824
  * @hidden
18558
18825
  */
@@ -19146,6 +19413,12 @@ class GridComponent {
19146
19413
  get group() {
19147
19414
  return this._group;
19148
19415
  }
19416
+ /**
19417
+ * @hidden
19418
+ */
19419
+ get showStatusBar() {
19420
+ return !!(this.selectable);
19421
+ }
19149
19422
  /**
19150
19423
  * @hidden
19151
19424
  */
@@ -19379,6 +19652,15 @@ class GridComponent {
19379
19652
  set loadingTemplate(loadingTemplate) {
19380
19653
  this._loadingTemplate = loadingTemplate;
19381
19654
  }
19655
+ get statusBarTemplate() {
19656
+ if (this._statusBarTemplate) {
19657
+ return this._statusBarTemplate;
19658
+ }
19659
+ return this.statusBarTemplateChildren ? this.statusBarTemplateChildren.first : undefined;
19660
+ }
19661
+ set statusBarTemplate(statusBarTemplate) {
19662
+ this._statusBarTemplate = statusBarTemplate;
19663
+ }
19382
19664
  get noRecordsTemplate() {
19383
19665
  if (this._customNoRecordsTemplate) {
19384
19666
  return this._customNoRecordsTemplate;
@@ -20640,7 +20922,7 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
20640
20922
  ContextService,
20641
20923
  SizingOptionsService,
20642
20924
  RowReorderService
20643
- ], queries: [{ propertyName: "columns", predicate: ColumnBase }, { propertyName: "detailTemplateChildren", predicate: DetailTemplateDirective }, { propertyName: "cellLoadingTemplateChildren", predicate: CellLoadingTemplateDirective }, { propertyName: "loadingTemplateChildren", predicate: LoadingTemplateDirective }, { propertyName: "noRecordsTemplateChildren", predicate: NoRecordsTemplateDirective }, { propertyName: "pagerTemplateChildren", predicate: PagerTemplateDirective }, { propertyName: "toolbarTemplateChildren", predicate: ToolbarTemplateDirective }, { propertyName: "columnMenuTemplates", predicate: ColumnMenuTemplateDirective }], viewQueries: [{ propertyName: "lockedHeader", first: true, predicate: ["lockedHeader"], descendants: true }, { propertyName: "header", first: true, predicate: ["header"], descendants: true }, { propertyName: "ariaRoot", first: true, predicate: ["ariaRoot"], descendants: true, static: true }, { propertyName: "dragTargetContainer", first: true, predicate: DragTargetContainerDirective, descendants: true }, { propertyName: "dropTargetContainer", first: true, predicate: DropTargetContainerDirective, descendants: true }, { propertyName: "footer", predicate: ["footer"], descendants: true }], exportAs: ["kendoGrid"], usesOnChanges: true, ngImport: i0, template: `
20925
+ ], queries: [{ propertyName: "columns", predicate: ColumnBase }, { propertyName: "detailTemplateChildren", predicate: DetailTemplateDirective }, { propertyName: "cellLoadingTemplateChildren", predicate: CellLoadingTemplateDirective }, { propertyName: "loadingTemplateChildren", predicate: LoadingTemplateDirective }, { propertyName: "statusBarTemplateChildren", predicate: StatusBarTemplateDirective }, { propertyName: "noRecordsTemplateChildren", predicate: NoRecordsTemplateDirective }, { propertyName: "pagerTemplateChildren", predicate: PagerTemplateDirective }, { propertyName: "toolbarTemplateChildren", predicate: ToolbarTemplateDirective }, { propertyName: "columnMenuTemplates", predicate: ColumnMenuTemplateDirective }], viewQueries: [{ propertyName: "lockedHeader", first: true, predicate: ["lockedHeader"], descendants: true }, { propertyName: "header", first: true, predicate: ["header"], descendants: true }, { propertyName: "ariaRoot", first: true, predicate: ["ariaRoot"], descendants: true, static: true }, { propertyName: "dragTargetContainer", first: true, predicate: DragTargetContainerDirective, descendants: true }, { propertyName: "dropTargetContainer", first: true, predicate: DropTargetContainerDirective, descendants: true }, { propertyName: "footer", predicate: ["footer"], descendants: true }], exportAs: ["kendoGrid"], usesOnChanges: true, ngImport: i0, template: `
20644
20926
  <ng-container kendoGridLocalizedMessages
20645
20927
  i18n-groupPanelEmpty="kendo.grid.groupPanelEmpty|The label visible in the Grid group panel when it is empty"
20646
20928
  groupPanelEmpty="Drag a column header and drop it here to group by that column"
@@ -20888,285 +21170,288 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
20888
21170
  [navigable]="navigation.toolbarEnabled"
20889
21171
  [attr.aria-controls]="ariaRootId"
20890
21172
  position="top"></kendo-grid-toolbar>
20891
- <kendo-pager
20892
- *ngIf="showTopPager"
20893
- [tabindex]="navigation.pagerEnabled ? '0' : '-1'"
20894
- [attr.role]="navigation.pagerEnabled ? 'application' : undefined"
20895
- class="k-grid-pager-top k-pager"
20896
- [template]="pagerTemplate"
20897
- [pageSize]="pageSize"
20898
- [total]="view.total"
20899
- [skip]="skip"
20900
- [size]="size"
20901
- [options]="pageable"
20902
- (pageChange)="notifyPageChange('pager', $event)">
20903
- </kendo-pager>
20904
- <kendo-grid-group-panel
20905
- *ngIf="showGroupPanel"
20906
- [navigable]="navigation.toolbarEnabled"
20907
- [text]="groupableEmptyText"
20908
- [groups]="group"
20909
- role="toolbar"
20910
- [attr.aria-label]="messageFor('groupPanelLabel')"
20911
- [attr.aria-controls]="ariaRootId"
20912
- (change)="groupChange.emit($event)">
20913
- </kendo-grid-group-panel>
20914
- <div #ariaRoot
20915
- class="k-grid-aria-root"
20916
- role="grid"
20917
- [id]="ariaRootId"
20918
- [attr.aria-label]="ariaLabel"
20919
- [attr.aria-rowcount]="ariaRowCount"
20920
- [attr.aria-colcount]="ariaColCount">
20921
- <ng-container *ngIf="isScrollable">
20922
- <div *ngIf="!hideHeader"
20923
- class="k-grid-header"
20924
- role="presentation"
20925
- [style.padding]="headerPadding">
20926
- <div *ngIf="isLocked"
20927
- #lockedHeader
20928
- role="presentation"
20929
- class="k-grid-header-locked"
20930
- [style.width.px]="lockedWidth">
20931
- <table
20932
- [locked]="true"
21173
+ <kendo-pager
21174
+ *ngIf="showTopPager"
21175
+ [tabindex]="navigation.pagerEnabled ? '0' : '-1'"
21176
+ [attr.role]="navigation.pagerEnabled ? 'application' : undefined"
21177
+ class="k-grid-pager-top k-pager"
21178
+ [template]="pagerTemplate"
21179
+ [pageSize]="pageSize"
21180
+ [total]="view.total"
21181
+ [skip]="skip"
21182
+ [size]="size"
21183
+ [options]="pageable"
21184
+ (pageChange)="notifyPageChange('pager', $event)">
21185
+ </kendo-pager>
21186
+ <kendo-grid-group-panel
21187
+ *ngIf="showGroupPanel"
21188
+ [navigable]="navigation.toolbarEnabled"
21189
+ [text]="groupableEmptyText"
21190
+ [groups]="group"
21191
+ role="toolbar"
21192
+ [attr.aria-label]="messageFor('groupPanelLabel')"
21193
+ [attr.aria-controls]="ariaRootId"
21194
+ (change)="groupChange.emit($event)">
21195
+ </kendo-grid-group-panel>
21196
+ <div #ariaRoot
21197
+ class="k-grid-aria-root"
21198
+ role="grid"
21199
+ [id]="ariaRootId"
21200
+ [attr.aria-label]="ariaLabel"
21201
+ [attr.aria-rowcount]="ariaRowCount"
21202
+ [attr.aria-colcount]="ariaColCount">
21203
+ <ng-container *ngIf="isScrollable">
21204
+ <div *ngIf="!hideHeader"
21205
+ class="k-grid-header"
21206
+ role="presentation"
21207
+ [style.padding]="headerPadding">
21208
+ <div *ngIf="isLocked"
21209
+ #lockedHeader
20933
21210
  role="presentation"
20934
- class="k-grid-header-table"
20935
- [style.width.px]="lockedWidth"
20936
- kendoGridTable
20937
- [size]="size">
20938
- <colgroup kendoGridColGroup
21211
+ class="k-grid-header-locked"
21212
+ [style.width.px]="lockedWidth">
21213
+ <table
21214
+ [locked]="true"
20939
21215
  role="presentation"
20940
- [columns]="$any(lockedLeafColumns)"
20941
- [groups]="group"
20942
- [detailTemplate]="detailTemplate">
20943
- </colgroup>
20944
- <thead kendoGridHeader
20945
- role="rowgroup"
20946
- [resizable]="resizable"
20947
- [scrollable]="true"
20948
- [columns]="$any(lockedColumns)"
20949
- [totalColumnLevels]="totalColumnLevels"
20950
- [sort]="sort"
20951
- [groups]="group"
20952
- [filter]="filter"
20953
- [filterable]="filterable"
20954
- [groupable]="showGroupPanel"
20955
- [reorderable]="reorderable"
20956
- [sortable]="sortable"
20957
- [columnMenu]="columnMenuOptions"
20958
- [columnMenuTemplate]="columnMenuTemplate"
20959
- [totalColumnsCount]="leafColumns.length"
20960
- [detailTemplate]="detailTemplate"
20961
- [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
20962
- </thead>
20963
- </table>
20964
- </div>
20965
- <div #header class="k-grid-header-wrap" role="presentation" data-scrollable
20966
- [kendoGridResizableContainer]="lockedLeafColumns.length > 0"
20967
- [lockedWidth]="lockedWidth + scrollbarWidth + 2">
20968
- <table
20969
- role="presentation"
20970
- class="k-grid-header-table"
20971
- [style.width.px]="nonLockedWidth"
20972
- [virtualColumns]="virtualColumns"
20973
- kendoGridTable
20974
- [size]="size">
20975
- <colgroup kendoGridColGroup
21216
+ class="k-grid-header-table"
21217
+ [style.width.px]="lockedWidth"
21218
+ kendoGridTable
21219
+ [size]="size">
21220
+ <colgroup kendoGridColGroup
21221
+ role="presentation"
21222
+ [columns]="$any(lockedLeafColumns)"
21223
+ [groups]="group"
21224
+ [detailTemplate]="detailTemplate">
21225
+ </colgroup>
21226
+ <thead kendoGridHeader
21227
+ role="rowgroup"
21228
+ [resizable]="resizable"
21229
+ [scrollable]="true"
21230
+ [columns]="$any(lockedColumns)"
21231
+ [totalColumnLevels]="totalColumnLevels"
21232
+ [sort]="sort"
21233
+ [groups]="group"
21234
+ [filter]="filter"
21235
+ [filterable]="filterable"
21236
+ [groupable]="showGroupPanel"
21237
+ [reorderable]="reorderable"
21238
+ [sortable]="sortable"
21239
+ [columnMenu]="columnMenuOptions"
21240
+ [columnMenuTemplate]="columnMenuTemplate"
21241
+ [totalColumnsCount]="leafColumns.length"
21242
+ [detailTemplate]="detailTemplate"
21243
+ [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
21244
+ </thead>
21245
+ </table>
21246
+ </div>
21247
+ <div #header class="k-grid-header-wrap" role="presentation" data-scrollable
21248
+ [kendoGridResizableContainer]="lockedLeafColumns.length > 0"
21249
+ [lockedWidth]="lockedWidth + scrollbarWidth + 2">
21250
+ <table
20976
21251
  role="presentation"
20977
- [columns]="headerLeafColumns"
20978
- [groups]="isLocked ? [] : group"
20979
- [detailTemplate]="detailTemplate">
20980
- </colgroup>
20981
- <thead kendoGridHeader
20982
- [resizable]="resizable"
20983
- role="rowgroup"
20984
- [scrollable]="true"
20985
- [columns]="headerColumns"
20986
- [totalColumnLevels]="totalColumnLevels"
20987
- [sort]="sort"
20988
- [filter]="filter"
20989
- [filterable]="filterable"
20990
- [groupable]="showGroupPanel"
20991
- [reorderable]="reorderable"
20992
- [groups]="isLocked ? [] : group"
20993
- [sortable]="sortable"
20994
- [columnMenu]="columnMenuOptions"
20995
- [columnMenuTemplate]="columnMenuTemplate"
20996
- [lockedColumnsCount]="lockedLeafColumns.length"
20997
- [totalColumnsCount]="leafColumns.length"
20998
- [detailTemplate]="detailTemplate"
20999
- [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
21000
- </thead>
21001
- </table>
21002
- <div *ngIf="virtualColumns" class="k-width-container" role="presentation">
21003
- <div [style.width.px]="columnsContainer.unlockedWidth"></div>
21252
+ class="k-grid-header-table"
21253
+ [style.width.px]="nonLockedWidth"
21254
+ [virtualColumns]="virtualColumns"
21255
+ kendoGridTable
21256
+ [size]="size">
21257
+ <colgroup kendoGridColGroup
21258
+ role="presentation"
21259
+ [columns]="headerLeafColumns"
21260
+ [groups]="isLocked ? [] : group"
21261
+ [detailTemplate]="detailTemplate">
21262
+ </colgroup>
21263
+ <thead kendoGridHeader
21264
+ [resizable]="resizable"
21265
+ role="rowgroup"
21266
+ [scrollable]="true"
21267
+ [columns]="headerColumns"
21268
+ [totalColumnLevels]="totalColumnLevels"
21269
+ [sort]="sort"
21270
+ [filter]="filter"
21271
+ [filterable]="filterable"
21272
+ [groupable]="showGroupPanel"
21273
+ [reorderable]="reorderable"
21274
+ [groups]="isLocked ? [] : group"
21275
+ [sortable]="sortable"
21276
+ [columnMenu]="columnMenuOptions"
21277
+ [columnMenuTemplate]="columnMenuTemplate"
21278
+ [lockedColumnsCount]="lockedLeafColumns.length"
21279
+ [totalColumnsCount]="leafColumns.length"
21280
+ [detailTemplate]="detailTemplate"
21281
+ [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
21282
+ </thead>
21283
+ </table>
21284
+ <div *ngIf="virtualColumns" class="k-width-container" role="presentation">
21285
+ <div [style.width.px]="columnsContainer.unlockedWidth"></div>
21286
+ </div>
21004
21287
  </div>
21005
21288
  </div>
21006
- </div>
21007
- <kendo-grid-list
21008
- kendoDragTargetContainer
21009
- kendoDropTargetContainer
21010
- mode="manual"
21011
- [dragDisabled]="!rowReorderable"
21012
- [dropDisabled]="!rowReorderable"
21013
- [dragTargetFilter]="getDefaultSelectors('dragTarget')"
21014
- [dropTargetFilter]="getDefaultSelectors('dropTarget')"
21015
- [dragHandle]="getDefaultSelectors('handle')"
21016
- [hint]="{hintTemplate: defaultHint}"
21017
- (onPress)="handleReorderEvents($event, 'press')"
21018
- (onDragStart)="handleReorderEvents($event, 'dragStart')"
21019
- (onDrag)="handleReorderEvents($event, 'drag')"
21020
- (onDragEnter)="handleReorderEvents($event, 'dragEnter')"
21021
- (onDragLeave)="handleReorderEvents($event, 'dragLeave')"
21022
- (onDragEnd)="handleReorderEvents($event, 'dragEnd')"
21023
- (onDrop)="handleReorderEvents($event, 'drop')"
21024
- [dragData]="gridData"
21025
- [data]="$any(view)"
21026
- [rowHeight]="rowHeight"
21027
- [detailRowHeight]="detailRowHeight"
21028
- [total]="totalCount"
21029
- [take]="pageSize"
21030
- [groups]="group"
21031
- [groupable]="groupable"
21032
- [skip]="skip"
21033
- [trackBy]="trackBy"
21034
- [columns]="columnsContainer"
21035
- [selectable]="selectable"
21036
- [filterable]="filterable"
21037
- [detailTemplate]="detailTemplate"
21038
- [noRecordsTemplate]="noRecordsTemplate"
21039
- [size]="size"
21040
- (pageChange)="notifyPageChange('list', $event)"
21041
- [rowClass]="rowClass"
21042
- [rowSticky]="rowSticky"
21043
- [loading]="loading"
21044
- [isVirtual]="isVirtual"
21045
- [cellLoadingTemplate]="cellLoadingTemplate?.templateRef"
21046
- [loadingTemplate]="loadingTemplate?.templateRef"
21047
- [virtualColumns]="virtualColumns"
21048
- (scrollBottom)="notifyScrollBottom()"
21049
- (contentScroll)="contentScroll.emit($event)"
21050
- kendoDraggable
21051
- kendoGridSelectionMarquee
21052
- [enableDrag]="marqueeSelection"
21053
- [sort]="sort"
21054
- >
21055
- </kendo-grid-list>
21056
- <div
21057
- *ngIf="showFooter"
21058
- class="k-grid-footer"
21059
- [style.padding]="headerPadding">
21060
- <div
21061
- *ngIf="lockedLeafColumns.length"
21062
- class="k-grid-footer-locked"
21063
- [style.width.px]="lockedWidth">
21064
- <table
21065
- role="presentation"
21066
- class="k-grid-footer-table"
21067
- [locked]="true"
21068
- [style.width.px]="lockedWidth"
21069
- kendoGridTable
21070
- [size]="size">
21071
- <colgroup kendoGridColGroup
21072
- [columns]="$any(lockedLeafColumns)"
21073
- [groups]="group"
21074
- [detailTemplate]="detailTemplate">
21075
- </colgroup>
21076
- <tfoot kendoGridFooter
21077
- [scrollable]="true"
21078
- [groups]="group"
21079
- [columns]="$any(lockedLeafColumns)"
21080
- [detailTemplate]="detailTemplate"
21081
- [logicalRowIndex]="ariaRowCount">
21082
- </tfoot>
21083
- </table>
21084
- </div>
21085
- <div #footer
21086
- class="k-grid-footer-wrap" data-scrollable
21087
- [kendoGridResizableContainer]="lockedLeafColumns.length > 0"
21088
- [lockedWidth]="lockedWidth + scrollbarWidth + 3">
21089
- <table
21090
- role="presentation"
21091
- class="k-grid-footer-table"
21092
- [style.width.px]="nonLockedWidth"
21093
- kendoGridTable
21094
- [size]="size">
21095
- <colgroup kendoGridColGroup
21096
- [columns]="$any(nonLockedLeafColumns)"
21097
- [groups]="isLocked ? [] : group"
21098
- [detailTemplate]="detailTemplate">
21099
- </colgroup>
21100
- <tfoot kendoGridFooter
21101
- [logicalRowIndex]="ariaRowCount"
21102
- [scrollable]="true"
21103
- [groups]="isLocked ? [] : group"
21104
- [columns]="$any(nonLockedLeafColumns)"
21105
- [lockedColumnsCount]="lockedLeafColumns.length"
21106
- [detailTemplate]="detailTemplate">
21107
- </tfoot>
21108
- </table>
21109
- </div>
21110
- </div>
21111
- </ng-container>
21112
- <ng-container *ngIf="!isScrollable">
21113
- <table
21114
- [style.table-layout]="resizable ? 'fixed' : null"
21115
- kendoGridTable
21116
- [size]="size">
21117
- <colgroup kendoGridColGroup
21118
- [columns]="$any(leafColumns)"
21119
- [groups]="group"
21120
- [detailTemplate]="detailTemplate">
21121
- </colgroup>
21122
- <thead kendoGridHeader
21123
- *ngIf="!hideHeader"
21124
- [resizable]="resizable"
21125
- [scrollable]="false"
21126
- [columns]="$any(visibleColumns)"
21127
- [totalColumnLevels]="totalColumnLevels"
21128
- [groups]="group"
21129
- [groupable]="showGroupPanel"
21130
- [reorderable]="reorderable"
21131
- [sort]="sort"
21132
- [sortable]="sortable"
21133
- [filter]="filter"
21134
- [filterable]="filterable"
21135
- [columnMenu]="columnMenuOptions"
21136
- [columnMenuTemplate]="columnMenuTemplate"
21137
- [detailTemplate]="detailTemplate"
21138
- [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
21139
- </thead>
21140
- <tbody kendoGridTableBody
21141
- [isLoading]="loading"
21142
- [groups]="group"
21289
+ <kendo-grid-list
21290
+ kendoDragTargetContainer
21291
+ kendoDropTargetContainer
21292
+ mode="manual"
21293
+ [dragDisabled]="!rowReorderable"
21294
+ [dropDisabled]="!rowReorderable"
21295
+ [dragTargetFilter]="getDefaultSelectors('dragTarget')"
21296
+ [dropTargetFilter]="getDefaultSelectors('dropTarget')"
21297
+ [dragHandle]="getDefaultSelectors('handle')"
21298
+ [hint]="{hintTemplate: defaultHint}"
21299
+ (onPress)="handleReorderEvents($event, 'press')"
21300
+ (onDragStart)="handleReorderEvents($event, 'dragStart')"
21301
+ (onDrag)="handleReorderEvents($event, 'drag')"
21302
+ (onDragEnter)="handleReorderEvents($event, 'dragEnter')"
21303
+ (onDragLeave)="handleReorderEvents($event, 'dragLeave')"
21304
+ (onDragEnd)="handleReorderEvents($event, 'dragEnd')"
21305
+ (onDrop)="handleReorderEvents($event, 'drop')"
21306
+ [dragData]="gridData"
21143
21307
  [data]="$any(view)"
21308
+ [rowHeight]="rowHeight"
21309
+ [detailRowHeight]="detailRowHeight"
21310
+ [total]="totalCount"
21311
+ [take]="pageSize"
21312
+ [groups]="group"
21313
+ [groupable]="groupable"
21144
21314
  [skip]="skip"
21145
- [columns]="$any(leafColumns)"
21315
+ [trackBy]="trackBy"
21316
+ [columns]="columnsContainer"
21146
21317
  [selectable]="selectable"
21147
21318
  [filterable]="filterable"
21148
- [noRecordsTemplate]="noRecordsTemplate"
21149
21319
  [detailTemplate]="detailTemplate"
21150
- [showGroupFooters]="showGroupFooters"
21151
- [trackBy]="trackBy"
21320
+ [noRecordsTemplate]="noRecordsTemplate"
21321
+ [size]="size"
21322
+ (pageChange)="notifyPageChange('list', $event)"
21152
21323
  [rowClass]="rowClass"
21324
+ [rowSticky]="rowSticky"
21325
+ [loading]="loading"
21326
+ [isVirtual]="isVirtual"
21327
+ [cellLoadingTemplate]="cellLoadingTemplate?.templateRef"
21328
+ [loadingTemplate]="loadingTemplate?.templateRef"
21329
+ [virtualColumns]="virtualColumns"
21330
+ (scrollBottom)="notifyScrollBottom()"
21331
+ (contentScroll)="contentScroll.emit($event)"
21153
21332
  kendoDraggable
21154
21333
  kendoGridSelectionMarquee
21155
- [enableDrag]="marqueeSelection">
21156
- </tbody>
21157
- <tfoot kendoGridFooter
21334
+ [enableDrag]="marqueeSelection"
21335
+ [sort]="sort">
21336
+ </kendo-grid-list>
21337
+ <div
21158
21338
  *ngIf="showFooter"
21159
- [scrollable]="false"
21160
- [logicalRowIndex]="ariaRowCount"
21161
- [groups]="group"
21162
- [columns]="$any(leafColumns)"
21163
- [detailTemplate]="detailTemplate">
21164
- </tfoot>
21165
- </table>
21166
- </ng-container>
21167
- <div [loadingTemplate]="loadingTemplate" *ngIf="loading" kendoGridLoading>
21168
- </div>
21339
+ class="k-grid-footer"
21340
+ [style.padding]="headerPadding">
21341
+ <div
21342
+ *ngIf="lockedLeafColumns.length"
21343
+ class="k-grid-footer-locked"
21344
+ [style.width.px]="lockedWidth">
21345
+ <table
21346
+ role="presentation"
21347
+ class="k-grid-footer-table"
21348
+ [locked]="true"
21349
+ [style.width.px]="lockedWidth"
21350
+ kendoGridTable
21351
+ [size]="size">
21352
+ <colgroup kendoGridColGroup
21353
+ [columns]="$any(lockedLeafColumns)"
21354
+ [groups]="group"
21355
+ [detailTemplate]="detailTemplate">
21356
+ </colgroup>
21357
+ <tfoot kendoGridFooter
21358
+ [scrollable]="true"
21359
+ [groups]="group"
21360
+ [columns]="$any(lockedLeafColumns)"
21361
+ [detailTemplate]="detailTemplate"
21362
+ [logicalRowIndex]="ariaRowCount">
21363
+ </tfoot>
21364
+ </table>
21365
+ </div>
21366
+ <div #footer
21367
+ class="k-grid-footer-wrap" data-scrollable
21368
+ [kendoGridResizableContainer]="lockedLeafColumns.length > 0"
21369
+ [lockedWidth]="lockedWidth + scrollbarWidth + 3">
21370
+ <table
21371
+ role="presentation"
21372
+ class="k-grid-footer-table"
21373
+ [style.width.px]="nonLockedWidth"
21374
+ kendoGridTable
21375
+ [size]="size">
21376
+ <colgroup kendoGridColGroup
21377
+ [columns]="$any(nonLockedLeafColumns)"
21378
+ [groups]="isLocked ? [] : group"
21379
+ [detailTemplate]="detailTemplate">
21380
+ </colgroup>
21381
+ <tfoot kendoGridFooter
21382
+ [logicalRowIndex]="ariaRowCount"
21383
+ [scrollable]="true"
21384
+ [groups]="isLocked ? [] : group"
21385
+ [columns]="$any(nonLockedLeafColumns)"
21386
+ [lockedColumnsCount]="lockedLeafColumns.length"
21387
+ [detailTemplate]="detailTemplate">
21388
+ </tfoot>
21389
+ </table>
21390
+ </div>
21391
+ </div>
21392
+ </ng-container>
21393
+ <ng-container *ngIf="!isScrollable">
21394
+ <table
21395
+ [style.table-layout]="resizable ? 'fixed' : null"
21396
+ kendoGridTable
21397
+ [size]="size">
21398
+ <colgroup kendoGridColGroup
21399
+ [columns]="$any(leafColumns)"
21400
+ [groups]="group"
21401
+ [detailTemplate]="detailTemplate">
21402
+ </colgroup>
21403
+ <thead kendoGridHeader
21404
+ *ngIf="!hideHeader"
21405
+ [resizable]="resizable"
21406
+ [scrollable]="false"
21407
+ [columns]="$any(visibleColumns)"
21408
+ [totalColumnLevels]="totalColumnLevels"
21409
+ [groups]="group"
21410
+ [groupable]="showGroupPanel"
21411
+ [reorderable]="reorderable"
21412
+ [sort]="sort"
21413
+ [sortable]="sortable"
21414
+ [filter]="filter"
21415
+ [filterable]="filterable"
21416
+ [columnMenu]="columnMenuOptions"
21417
+ [columnMenuTemplate]="columnMenuTemplate"
21418
+ [detailTemplate]="detailTemplate"
21419
+ [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
21420
+ </thead>
21421
+ <tbody kendoGridTableBody
21422
+ [isLoading]="loading"
21423
+ [groups]="group"
21424
+ [data]="$any(view)"
21425
+ [skip]="skip"
21426
+ [columns]="$any(leafColumns)"
21427
+ [selectable]="selectable"
21428
+ [filterable]="filterable"
21429
+ [noRecordsTemplate]="noRecordsTemplate"
21430
+ [detailTemplate]="detailTemplate"
21431
+ [showGroupFooters]="showGroupFooters"
21432
+ [trackBy]="trackBy"
21433
+ [rowClass]="rowClass"
21434
+ kendoDraggable
21435
+ kendoGridSelectionMarquee
21436
+ [enableDrag]="marqueeSelection">
21437
+ </tbody>
21438
+ <tfoot kendoGridFooter
21439
+ *ngIf="showFooter"
21440
+ [scrollable]="false"
21441
+ [logicalRowIndex]="ariaRowCount"
21442
+ [groups]="group"
21443
+ [columns]="$any(leafColumns)"
21444
+ [detailTemplate]="detailTemplate">
21445
+ </tfoot>
21446
+ </table>
21447
+ </ng-container>
21448
+ <div [loadingTemplate]="loadingTemplate" *ngIf="loading" kendoGridLoading></div>
21169
21449
  </div>
21450
+ <kendo-grid-status-bar
21451
+ *ngIf="showStatusBar"
21452
+ [selectableSettings]="selectable"
21453
+ [statusBarTemplate]="statusBarTemplate">
21454
+ </kendo-grid-status-bar>
21170
21455
  <kendo-pager
21171
21456
  *ngIf="showBottomPager"
21172
21457
  [tabindex]="navigation.pagerEnabled ? '0' : '-1'"
@@ -21198,7 +21483,7 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
21198
21483
  </kendo-icon-wrapper>
21199
21484
  {{hintText}}
21200
21485
  </ng-template>
21201
- `, isInline: true, components: [{ type: ToolbarComponent, selector: "kendo-grid-toolbar", inputs: ["position", "size", "navigable"] }, { type: PagerComponent, selector: "kendo-pager", inputs: ["total", "skip", "pageSize", "options", "size", "template"], outputs: ["pageChange"] }, { type: GroupPanelComponent, selector: "kendo-grid-group-panel", inputs: ["text", "navigable", "groups"], outputs: ["change"] }, { type: ColGroupComponent, selector: "[kendoGridColGroup]", inputs: ["columns", "groups", "detailTemplate", "sort"] }, { type: HeaderComponent, selector: "[kendoGridHeader]", inputs: ["totalColumnLevels", "columns", "groups", "detailTemplate", "scrollable", "filterable", "sort", "filter", "sortable", "groupable", "lockedColumnsCount", "resizable", "reorderable", "columnMenu", "columnMenuTemplate", "totalColumnsCount", "tabIndex", "size"] }, { type: ListComponent, selector: "kendo-grid-list", inputs: ["data", "groups", "total", "rowHeight", "stickyRowHeight", "detailRowHeight", "take", "skip", "columns", "detailTemplate", "noRecordsTemplate", "selectable", "groupable", "filterable", "rowClass", "rowSticky", "loading", "trackBy", "virtualColumns", "isVirtual", "cellLoadingTemplate", "loadingTemplate", "sort", "size"], outputs: ["contentScroll", "pageChange", "scrollBottom"] }, { type: FooterComponent, selector: "[kendoGridFooter]", inputs: ["columns", "groups", "detailTemplate", "scrollable", "lockedColumnsCount", "logicalRowIndex"] }, { type: TableBodyComponent, selector: "[kendoGridTableBody]", inputs: ["columns", "allColumns", "groups", "detailTemplate", "noRecordsTemplate", "data", "skip", "selectable", "filterable", "noRecordsText", "isLocked", "isLoading", "isVirtual", "cellLoadingTemplate", "skipGroupDecoration", "showGroupFooters", "lockedColumnsCount", "totalColumnsCount", "virtualColumns", "trackBy", "rowSticky", "rowClass"] }, { type: LoadingComponent, selector: "[kendoGridLoading]", inputs: ["loadingTemplate"] }, { type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: LocalizedMessagesDirective, selector: "[kendoGridLocalizedMessages]" }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TableDirective, selector: "table", inputs: ["locked", "virtualColumns"] }, { type: GridTableDirective, selector: "[kendoGridTable]", inputs: ["size"] }, { type: ResizableContainerDirective, selector: "[kendoGridResizableContainer]", inputs: ["lockedWidth", "kendoGridResizableContainer"] }, { type: i40.DragTargetContainerDirective, selector: "[kendoDragTargetContainer]", inputs: ["hint", "dragTargetFilter", "dragHandle", "dragDelay", "threshold", "dragTargetId", "dragData", "dragDisabled", "mode"], outputs: ["onDragReady", "onPress", "onDragStart", "onDrag", "onRelease", "onDragEnd"], exportAs: ["kendoDragTargetContainer"] }, { type: i40.DropTargetContainerDirective, selector: "[kendoDropTargetContainer]", inputs: ["dropTargetFilter", "dropDisabled"], outputs: ["onDragEnter", "onDragOver", "onDragLeave", "onDrop"], exportAs: ["kendoDropTargetContainer"] }, { type: i1$1.DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { type: GridMarqueeDirective, selector: "[kendoGridSelectionMarquee]" }], encapsulation: i0.ViewEncapsulation.None });
21486
+ `, isInline: true, components: [{ type: ToolbarComponent, selector: "kendo-grid-toolbar", inputs: ["position", "size", "navigable"] }, { type: PagerComponent, selector: "kendo-pager", inputs: ["total", "skip", "pageSize", "options", "size", "template"], outputs: ["pageChange"] }, { type: GroupPanelComponent, selector: "kendo-grid-group-panel", inputs: ["text", "navigable", "groups"], outputs: ["change"] }, { type: ColGroupComponent, selector: "[kendoGridColGroup]", inputs: ["columns", "groups", "detailTemplate", "sort"] }, { type: HeaderComponent, selector: "[kendoGridHeader]", inputs: ["totalColumnLevels", "columns", "groups", "detailTemplate", "scrollable", "filterable", "sort", "filter", "sortable", "groupable", "lockedColumnsCount", "resizable", "reorderable", "columnMenu", "columnMenuTemplate", "totalColumnsCount", "tabIndex", "size"] }, { type: ListComponent, selector: "kendo-grid-list", inputs: ["data", "groups", "total", "rowHeight", "stickyRowHeight", "detailRowHeight", "take", "skip", "columns", "detailTemplate", "noRecordsTemplate", "selectable", "groupable", "filterable", "rowClass", "rowSticky", "loading", "trackBy", "virtualColumns", "isVirtual", "cellLoadingTemplate", "loadingTemplate", "sort", "size"], outputs: ["contentScroll", "pageChange", "scrollBottom"] }, { type: FooterComponent, selector: "[kendoGridFooter]", inputs: ["columns", "groups", "detailTemplate", "scrollable", "lockedColumnsCount", "logicalRowIndex"] }, { type: TableBodyComponent, selector: "[kendoGridTableBody]", inputs: ["columns", "allColumns", "groups", "detailTemplate", "noRecordsTemplate", "data", "skip", "selectable", "filterable", "noRecordsText", "isLocked", "isLoading", "isVirtual", "cellLoadingTemplate", "skipGroupDecoration", "showGroupFooters", "lockedColumnsCount", "totalColumnsCount", "virtualColumns", "trackBy", "rowSticky", "rowClass"] }, { type: LoadingComponent, selector: "[kendoGridLoading]", inputs: ["loadingTemplate"] }, { type: StatusBarComponent, selector: "kendo-grid-status-bar", inputs: ["selectableSettings", "statusBarTemplate"] }, { type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: LocalizedMessagesDirective, selector: "[kendoGridLocalizedMessages]" }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TableDirective, selector: "table", inputs: ["locked", "virtualColumns"] }, { type: GridTableDirective, selector: "[kendoGridTable]", inputs: ["size"] }, { type: ResizableContainerDirective, selector: "[kendoGridResizableContainer]", inputs: ["lockedWidth", "kendoGridResizableContainer"] }, { type: i41.DragTargetContainerDirective, selector: "[kendoDragTargetContainer]", inputs: ["hint", "dragTargetFilter", "dragHandle", "dragDelay", "threshold", "dragTargetId", "dragData", "dragDisabled", "mode"], outputs: ["onDragReady", "onPress", "onDragStart", "onDrag", "onRelease", "onDragEnd"], exportAs: ["kendoDragTargetContainer"] }, { type: i41.DropTargetContainerDirective, selector: "[kendoDropTargetContainer]", inputs: ["dropTargetFilter", "dropDisabled"], outputs: ["onDragEnter", "onDragOver", "onDragLeave", "onDrop"], exportAs: ["kendoDropTargetContainer"] }, { type: i1$1.DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { type: GridMarqueeDirective, selector: "[kendoGridSelectionMarquee]" }], encapsulation: i0.ViewEncapsulation.None });
21202
21487
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridComponent, decorators: [{
21203
21488
  type: Component,
21204
21489
  args: [{
@@ -21497,285 +21782,288 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
21497
21782
  [navigable]="navigation.toolbarEnabled"
21498
21783
  [attr.aria-controls]="ariaRootId"
21499
21784
  position="top"></kendo-grid-toolbar>
21500
- <kendo-pager
21501
- *ngIf="showTopPager"
21502
- [tabindex]="navigation.pagerEnabled ? '0' : '-1'"
21503
- [attr.role]="navigation.pagerEnabled ? 'application' : undefined"
21504
- class="k-grid-pager-top k-pager"
21505
- [template]="pagerTemplate"
21506
- [pageSize]="pageSize"
21507
- [total]="view.total"
21508
- [skip]="skip"
21509
- [size]="size"
21510
- [options]="pageable"
21511
- (pageChange)="notifyPageChange('pager', $event)">
21512
- </kendo-pager>
21513
- <kendo-grid-group-panel
21514
- *ngIf="showGroupPanel"
21515
- [navigable]="navigation.toolbarEnabled"
21516
- [text]="groupableEmptyText"
21517
- [groups]="group"
21518
- role="toolbar"
21519
- [attr.aria-label]="messageFor('groupPanelLabel')"
21520
- [attr.aria-controls]="ariaRootId"
21521
- (change)="groupChange.emit($event)">
21522
- </kendo-grid-group-panel>
21523
- <div #ariaRoot
21524
- class="k-grid-aria-root"
21525
- role="grid"
21526
- [id]="ariaRootId"
21527
- [attr.aria-label]="ariaLabel"
21528
- [attr.aria-rowcount]="ariaRowCount"
21529
- [attr.aria-colcount]="ariaColCount">
21530
- <ng-container *ngIf="isScrollable">
21531
- <div *ngIf="!hideHeader"
21532
- class="k-grid-header"
21533
- role="presentation"
21534
- [style.padding]="headerPadding">
21535
- <div *ngIf="isLocked"
21536
- #lockedHeader
21537
- role="presentation"
21538
- class="k-grid-header-locked"
21539
- [style.width.px]="lockedWidth">
21540
- <table
21541
- [locked]="true"
21785
+ <kendo-pager
21786
+ *ngIf="showTopPager"
21787
+ [tabindex]="navigation.pagerEnabled ? '0' : '-1'"
21788
+ [attr.role]="navigation.pagerEnabled ? 'application' : undefined"
21789
+ class="k-grid-pager-top k-pager"
21790
+ [template]="pagerTemplate"
21791
+ [pageSize]="pageSize"
21792
+ [total]="view.total"
21793
+ [skip]="skip"
21794
+ [size]="size"
21795
+ [options]="pageable"
21796
+ (pageChange)="notifyPageChange('pager', $event)">
21797
+ </kendo-pager>
21798
+ <kendo-grid-group-panel
21799
+ *ngIf="showGroupPanel"
21800
+ [navigable]="navigation.toolbarEnabled"
21801
+ [text]="groupableEmptyText"
21802
+ [groups]="group"
21803
+ role="toolbar"
21804
+ [attr.aria-label]="messageFor('groupPanelLabel')"
21805
+ [attr.aria-controls]="ariaRootId"
21806
+ (change)="groupChange.emit($event)">
21807
+ </kendo-grid-group-panel>
21808
+ <div #ariaRoot
21809
+ class="k-grid-aria-root"
21810
+ role="grid"
21811
+ [id]="ariaRootId"
21812
+ [attr.aria-label]="ariaLabel"
21813
+ [attr.aria-rowcount]="ariaRowCount"
21814
+ [attr.aria-colcount]="ariaColCount">
21815
+ <ng-container *ngIf="isScrollable">
21816
+ <div *ngIf="!hideHeader"
21817
+ class="k-grid-header"
21818
+ role="presentation"
21819
+ [style.padding]="headerPadding">
21820
+ <div *ngIf="isLocked"
21821
+ #lockedHeader
21542
21822
  role="presentation"
21543
- class="k-grid-header-table"
21544
- [style.width.px]="lockedWidth"
21545
- kendoGridTable
21546
- [size]="size">
21547
- <colgroup kendoGridColGroup
21823
+ class="k-grid-header-locked"
21824
+ [style.width.px]="lockedWidth">
21825
+ <table
21826
+ [locked]="true"
21548
21827
  role="presentation"
21549
- [columns]="$any(lockedLeafColumns)"
21550
- [groups]="group"
21551
- [detailTemplate]="detailTemplate">
21552
- </colgroup>
21553
- <thead kendoGridHeader
21554
- role="rowgroup"
21555
- [resizable]="resizable"
21556
- [scrollable]="true"
21557
- [columns]="$any(lockedColumns)"
21558
- [totalColumnLevels]="totalColumnLevels"
21559
- [sort]="sort"
21560
- [groups]="group"
21561
- [filter]="filter"
21562
- [filterable]="filterable"
21563
- [groupable]="showGroupPanel"
21564
- [reorderable]="reorderable"
21565
- [sortable]="sortable"
21566
- [columnMenu]="columnMenuOptions"
21567
- [columnMenuTemplate]="columnMenuTemplate"
21568
- [totalColumnsCount]="leafColumns.length"
21569
- [detailTemplate]="detailTemplate"
21570
- [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
21571
- </thead>
21572
- </table>
21573
- </div>
21574
- <div #header class="k-grid-header-wrap" role="presentation" data-scrollable
21575
- [kendoGridResizableContainer]="lockedLeafColumns.length > 0"
21576
- [lockedWidth]="lockedWidth + scrollbarWidth + 2">
21577
- <table
21578
- role="presentation"
21579
- class="k-grid-header-table"
21580
- [style.width.px]="nonLockedWidth"
21581
- [virtualColumns]="virtualColumns"
21582
- kendoGridTable
21583
- [size]="size">
21584
- <colgroup kendoGridColGroup
21828
+ class="k-grid-header-table"
21829
+ [style.width.px]="lockedWidth"
21830
+ kendoGridTable
21831
+ [size]="size">
21832
+ <colgroup kendoGridColGroup
21833
+ role="presentation"
21834
+ [columns]="$any(lockedLeafColumns)"
21835
+ [groups]="group"
21836
+ [detailTemplate]="detailTemplate">
21837
+ </colgroup>
21838
+ <thead kendoGridHeader
21839
+ role="rowgroup"
21840
+ [resizable]="resizable"
21841
+ [scrollable]="true"
21842
+ [columns]="$any(lockedColumns)"
21843
+ [totalColumnLevels]="totalColumnLevels"
21844
+ [sort]="sort"
21845
+ [groups]="group"
21846
+ [filter]="filter"
21847
+ [filterable]="filterable"
21848
+ [groupable]="showGroupPanel"
21849
+ [reorderable]="reorderable"
21850
+ [sortable]="sortable"
21851
+ [columnMenu]="columnMenuOptions"
21852
+ [columnMenuTemplate]="columnMenuTemplate"
21853
+ [totalColumnsCount]="leafColumns.length"
21854
+ [detailTemplate]="detailTemplate"
21855
+ [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
21856
+ </thead>
21857
+ </table>
21858
+ </div>
21859
+ <div #header class="k-grid-header-wrap" role="presentation" data-scrollable
21860
+ [kendoGridResizableContainer]="lockedLeafColumns.length > 0"
21861
+ [lockedWidth]="lockedWidth + scrollbarWidth + 2">
21862
+ <table
21585
21863
  role="presentation"
21586
- [columns]="headerLeafColumns"
21587
- [groups]="isLocked ? [] : group"
21588
- [detailTemplate]="detailTemplate">
21589
- </colgroup>
21590
- <thead kendoGridHeader
21591
- [resizable]="resizable"
21592
- role="rowgroup"
21593
- [scrollable]="true"
21594
- [columns]="headerColumns"
21595
- [totalColumnLevels]="totalColumnLevels"
21596
- [sort]="sort"
21597
- [filter]="filter"
21598
- [filterable]="filterable"
21599
- [groupable]="showGroupPanel"
21600
- [reorderable]="reorderable"
21601
- [groups]="isLocked ? [] : group"
21602
- [sortable]="sortable"
21603
- [columnMenu]="columnMenuOptions"
21604
- [columnMenuTemplate]="columnMenuTemplate"
21605
- [lockedColumnsCount]="lockedLeafColumns.length"
21606
- [totalColumnsCount]="leafColumns.length"
21607
- [detailTemplate]="detailTemplate"
21608
- [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
21609
- </thead>
21610
- </table>
21611
- <div *ngIf="virtualColumns" class="k-width-container" role="presentation">
21612
- <div [style.width.px]="columnsContainer.unlockedWidth"></div>
21864
+ class="k-grid-header-table"
21865
+ [style.width.px]="nonLockedWidth"
21866
+ [virtualColumns]="virtualColumns"
21867
+ kendoGridTable
21868
+ [size]="size">
21869
+ <colgroup kendoGridColGroup
21870
+ role="presentation"
21871
+ [columns]="headerLeafColumns"
21872
+ [groups]="isLocked ? [] : group"
21873
+ [detailTemplate]="detailTemplate">
21874
+ </colgroup>
21875
+ <thead kendoGridHeader
21876
+ [resizable]="resizable"
21877
+ role="rowgroup"
21878
+ [scrollable]="true"
21879
+ [columns]="headerColumns"
21880
+ [totalColumnLevels]="totalColumnLevels"
21881
+ [sort]="sort"
21882
+ [filter]="filter"
21883
+ [filterable]="filterable"
21884
+ [groupable]="showGroupPanel"
21885
+ [reorderable]="reorderable"
21886
+ [groups]="isLocked ? [] : group"
21887
+ [sortable]="sortable"
21888
+ [columnMenu]="columnMenuOptions"
21889
+ [columnMenuTemplate]="columnMenuTemplate"
21890
+ [lockedColumnsCount]="lockedLeafColumns.length"
21891
+ [totalColumnsCount]="leafColumns.length"
21892
+ [detailTemplate]="detailTemplate"
21893
+ [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
21894
+ </thead>
21895
+ </table>
21896
+ <div *ngIf="virtualColumns" class="k-width-container" role="presentation">
21897
+ <div [style.width.px]="columnsContainer.unlockedWidth"></div>
21898
+ </div>
21613
21899
  </div>
21614
21900
  </div>
21615
- </div>
21616
- <kendo-grid-list
21617
- kendoDragTargetContainer
21618
- kendoDropTargetContainer
21619
- mode="manual"
21620
- [dragDisabled]="!rowReorderable"
21621
- [dropDisabled]="!rowReorderable"
21622
- [dragTargetFilter]="getDefaultSelectors('dragTarget')"
21623
- [dropTargetFilter]="getDefaultSelectors('dropTarget')"
21624
- [dragHandle]="getDefaultSelectors('handle')"
21625
- [hint]="{hintTemplate: defaultHint}"
21626
- (onPress)="handleReorderEvents($event, 'press')"
21627
- (onDragStart)="handleReorderEvents($event, 'dragStart')"
21628
- (onDrag)="handleReorderEvents($event, 'drag')"
21629
- (onDragEnter)="handleReorderEvents($event, 'dragEnter')"
21630
- (onDragLeave)="handleReorderEvents($event, 'dragLeave')"
21631
- (onDragEnd)="handleReorderEvents($event, 'dragEnd')"
21632
- (onDrop)="handleReorderEvents($event, 'drop')"
21633
- [dragData]="gridData"
21634
- [data]="$any(view)"
21635
- [rowHeight]="rowHeight"
21636
- [detailRowHeight]="detailRowHeight"
21637
- [total]="totalCount"
21638
- [take]="pageSize"
21639
- [groups]="group"
21640
- [groupable]="groupable"
21641
- [skip]="skip"
21642
- [trackBy]="trackBy"
21643
- [columns]="columnsContainer"
21644
- [selectable]="selectable"
21645
- [filterable]="filterable"
21646
- [detailTemplate]="detailTemplate"
21647
- [noRecordsTemplate]="noRecordsTemplate"
21648
- [size]="size"
21649
- (pageChange)="notifyPageChange('list', $event)"
21650
- [rowClass]="rowClass"
21651
- [rowSticky]="rowSticky"
21652
- [loading]="loading"
21653
- [isVirtual]="isVirtual"
21654
- [cellLoadingTemplate]="cellLoadingTemplate?.templateRef"
21655
- [loadingTemplate]="loadingTemplate?.templateRef"
21656
- [virtualColumns]="virtualColumns"
21657
- (scrollBottom)="notifyScrollBottom()"
21658
- (contentScroll)="contentScroll.emit($event)"
21659
- kendoDraggable
21660
- kendoGridSelectionMarquee
21661
- [enableDrag]="marqueeSelection"
21662
- [sort]="sort"
21663
- >
21664
- </kendo-grid-list>
21665
- <div
21666
- *ngIf="showFooter"
21667
- class="k-grid-footer"
21668
- [style.padding]="headerPadding">
21669
- <div
21670
- *ngIf="lockedLeafColumns.length"
21671
- class="k-grid-footer-locked"
21672
- [style.width.px]="lockedWidth">
21673
- <table
21674
- role="presentation"
21675
- class="k-grid-footer-table"
21676
- [locked]="true"
21677
- [style.width.px]="lockedWidth"
21678
- kendoGridTable
21679
- [size]="size">
21680
- <colgroup kendoGridColGroup
21681
- [columns]="$any(lockedLeafColumns)"
21682
- [groups]="group"
21683
- [detailTemplate]="detailTemplate">
21684
- </colgroup>
21685
- <tfoot kendoGridFooter
21686
- [scrollable]="true"
21687
- [groups]="group"
21688
- [columns]="$any(lockedLeafColumns)"
21689
- [detailTemplate]="detailTemplate"
21690
- [logicalRowIndex]="ariaRowCount">
21691
- </tfoot>
21692
- </table>
21693
- </div>
21694
- <div #footer
21695
- class="k-grid-footer-wrap" data-scrollable
21696
- [kendoGridResizableContainer]="lockedLeafColumns.length > 0"
21697
- [lockedWidth]="lockedWidth + scrollbarWidth + 3">
21698
- <table
21699
- role="presentation"
21700
- class="k-grid-footer-table"
21701
- [style.width.px]="nonLockedWidth"
21702
- kendoGridTable
21703
- [size]="size">
21704
- <colgroup kendoGridColGroup
21705
- [columns]="$any(nonLockedLeafColumns)"
21706
- [groups]="isLocked ? [] : group"
21707
- [detailTemplate]="detailTemplate">
21708
- </colgroup>
21709
- <tfoot kendoGridFooter
21710
- [logicalRowIndex]="ariaRowCount"
21711
- [scrollable]="true"
21712
- [groups]="isLocked ? [] : group"
21713
- [columns]="$any(nonLockedLeafColumns)"
21714
- [lockedColumnsCount]="lockedLeafColumns.length"
21715
- [detailTemplate]="detailTemplate">
21716
- </tfoot>
21717
- </table>
21718
- </div>
21719
- </div>
21720
- </ng-container>
21721
- <ng-container *ngIf="!isScrollable">
21722
- <table
21723
- [style.table-layout]="resizable ? 'fixed' : null"
21724
- kendoGridTable
21725
- [size]="size">
21726
- <colgroup kendoGridColGroup
21727
- [columns]="$any(leafColumns)"
21728
- [groups]="group"
21729
- [detailTemplate]="detailTemplate">
21730
- </colgroup>
21731
- <thead kendoGridHeader
21732
- *ngIf="!hideHeader"
21733
- [resizable]="resizable"
21734
- [scrollable]="false"
21735
- [columns]="$any(visibleColumns)"
21736
- [totalColumnLevels]="totalColumnLevels"
21737
- [groups]="group"
21738
- [groupable]="showGroupPanel"
21739
- [reorderable]="reorderable"
21740
- [sort]="sort"
21741
- [sortable]="sortable"
21742
- [filter]="filter"
21743
- [filterable]="filterable"
21744
- [columnMenu]="columnMenuOptions"
21745
- [columnMenuTemplate]="columnMenuTemplate"
21746
- [detailTemplate]="detailTemplate"
21747
- [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
21748
- </thead>
21749
- <tbody kendoGridTableBody
21750
- [isLoading]="loading"
21751
- [groups]="group"
21901
+ <kendo-grid-list
21902
+ kendoDragTargetContainer
21903
+ kendoDropTargetContainer
21904
+ mode="manual"
21905
+ [dragDisabled]="!rowReorderable"
21906
+ [dropDisabled]="!rowReorderable"
21907
+ [dragTargetFilter]="getDefaultSelectors('dragTarget')"
21908
+ [dropTargetFilter]="getDefaultSelectors('dropTarget')"
21909
+ [dragHandle]="getDefaultSelectors('handle')"
21910
+ [hint]="{hintTemplate: defaultHint}"
21911
+ (onPress)="handleReorderEvents($event, 'press')"
21912
+ (onDragStart)="handleReorderEvents($event, 'dragStart')"
21913
+ (onDrag)="handleReorderEvents($event, 'drag')"
21914
+ (onDragEnter)="handleReorderEvents($event, 'dragEnter')"
21915
+ (onDragLeave)="handleReorderEvents($event, 'dragLeave')"
21916
+ (onDragEnd)="handleReorderEvents($event, 'dragEnd')"
21917
+ (onDrop)="handleReorderEvents($event, 'drop')"
21918
+ [dragData]="gridData"
21752
21919
  [data]="$any(view)"
21920
+ [rowHeight]="rowHeight"
21921
+ [detailRowHeight]="detailRowHeight"
21922
+ [total]="totalCount"
21923
+ [take]="pageSize"
21924
+ [groups]="group"
21925
+ [groupable]="groupable"
21753
21926
  [skip]="skip"
21754
- [columns]="$any(leafColumns)"
21927
+ [trackBy]="trackBy"
21928
+ [columns]="columnsContainer"
21755
21929
  [selectable]="selectable"
21756
21930
  [filterable]="filterable"
21757
- [noRecordsTemplate]="noRecordsTemplate"
21758
21931
  [detailTemplate]="detailTemplate"
21759
- [showGroupFooters]="showGroupFooters"
21760
- [trackBy]="trackBy"
21932
+ [noRecordsTemplate]="noRecordsTemplate"
21933
+ [size]="size"
21934
+ (pageChange)="notifyPageChange('list', $event)"
21761
21935
  [rowClass]="rowClass"
21936
+ [rowSticky]="rowSticky"
21937
+ [loading]="loading"
21938
+ [isVirtual]="isVirtual"
21939
+ [cellLoadingTemplate]="cellLoadingTemplate?.templateRef"
21940
+ [loadingTemplate]="loadingTemplate?.templateRef"
21941
+ [virtualColumns]="virtualColumns"
21942
+ (scrollBottom)="notifyScrollBottom()"
21943
+ (contentScroll)="contentScroll.emit($event)"
21762
21944
  kendoDraggable
21763
21945
  kendoGridSelectionMarquee
21764
- [enableDrag]="marqueeSelection">
21765
- </tbody>
21766
- <tfoot kendoGridFooter
21946
+ [enableDrag]="marqueeSelection"
21947
+ [sort]="sort">
21948
+ </kendo-grid-list>
21949
+ <div
21767
21950
  *ngIf="showFooter"
21768
- [scrollable]="false"
21769
- [logicalRowIndex]="ariaRowCount"
21770
- [groups]="group"
21771
- [columns]="$any(leafColumns)"
21772
- [detailTemplate]="detailTemplate">
21773
- </tfoot>
21774
- </table>
21775
- </ng-container>
21776
- <div [loadingTemplate]="loadingTemplate" *ngIf="loading" kendoGridLoading>
21777
- </div>
21951
+ class="k-grid-footer"
21952
+ [style.padding]="headerPadding">
21953
+ <div
21954
+ *ngIf="lockedLeafColumns.length"
21955
+ class="k-grid-footer-locked"
21956
+ [style.width.px]="lockedWidth">
21957
+ <table
21958
+ role="presentation"
21959
+ class="k-grid-footer-table"
21960
+ [locked]="true"
21961
+ [style.width.px]="lockedWidth"
21962
+ kendoGridTable
21963
+ [size]="size">
21964
+ <colgroup kendoGridColGroup
21965
+ [columns]="$any(lockedLeafColumns)"
21966
+ [groups]="group"
21967
+ [detailTemplate]="detailTemplate">
21968
+ </colgroup>
21969
+ <tfoot kendoGridFooter
21970
+ [scrollable]="true"
21971
+ [groups]="group"
21972
+ [columns]="$any(lockedLeafColumns)"
21973
+ [detailTemplate]="detailTemplate"
21974
+ [logicalRowIndex]="ariaRowCount">
21975
+ </tfoot>
21976
+ </table>
21977
+ </div>
21978
+ <div #footer
21979
+ class="k-grid-footer-wrap" data-scrollable
21980
+ [kendoGridResizableContainer]="lockedLeafColumns.length > 0"
21981
+ [lockedWidth]="lockedWidth + scrollbarWidth + 3">
21982
+ <table
21983
+ role="presentation"
21984
+ class="k-grid-footer-table"
21985
+ [style.width.px]="nonLockedWidth"
21986
+ kendoGridTable
21987
+ [size]="size">
21988
+ <colgroup kendoGridColGroup
21989
+ [columns]="$any(nonLockedLeafColumns)"
21990
+ [groups]="isLocked ? [] : group"
21991
+ [detailTemplate]="detailTemplate">
21992
+ </colgroup>
21993
+ <tfoot kendoGridFooter
21994
+ [logicalRowIndex]="ariaRowCount"
21995
+ [scrollable]="true"
21996
+ [groups]="isLocked ? [] : group"
21997
+ [columns]="$any(nonLockedLeafColumns)"
21998
+ [lockedColumnsCount]="lockedLeafColumns.length"
21999
+ [detailTemplate]="detailTemplate">
22000
+ </tfoot>
22001
+ </table>
22002
+ </div>
22003
+ </div>
22004
+ </ng-container>
22005
+ <ng-container *ngIf="!isScrollable">
22006
+ <table
22007
+ [style.table-layout]="resizable ? 'fixed' : null"
22008
+ kendoGridTable
22009
+ [size]="size">
22010
+ <colgroup kendoGridColGroup
22011
+ [columns]="$any(leafColumns)"
22012
+ [groups]="group"
22013
+ [detailTemplate]="detailTemplate">
22014
+ </colgroup>
22015
+ <thead kendoGridHeader
22016
+ *ngIf="!hideHeader"
22017
+ [resizable]="resizable"
22018
+ [scrollable]="false"
22019
+ [columns]="$any(visibleColumns)"
22020
+ [totalColumnLevels]="totalColumnLevels"
22021
+ [groups]="group"
22022
+ [groupable]="showGroupPanel"
22023
+ [reorderable]="reorderable"
22024
+ [sort]="sort"
22025
+ [sortable]="sortable"
22026
+ [filter]="filter"
22027
+ [filterable]="filterable"
22028
+ [columnMenu]="columnMenuOptions"
22029
+ [columnMenuTemplate]="columnMenuTemplate"
22030
+ [detailTemplate]="detailTemplate"
22031
+ [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
22032
+ </thead>
22033
+ <tbody kendoGridTableBody
22034
+ [isLoading]="loading"
22035
+ [groups]="group"
22036
+ [data]="$any(view)"
22037
+ [skip]="skip"
22038
+ [columns]="$any(leafColumns)"
22039
+ [selectable]="selectable"
22040
+ [filterable]="filterable"
22041
+ [noRecordsTemplate]="noRecordsTemplate"
22042
+ [detailTemplate]="detailTemplate"
22043
+ [showGroupFooters]="showGroupFooters"
22044
+ [trackBy]="trackBy"
22045
+ [rowClass]="rowClass"
22046
+ kendoDraggable
22047
+ kendoGridSelectionMarquee
22048
+ [enableDrag]="marqueeSelection">
22049
+ </tbody>
22050
+ <tfoot kendoGridFooter
22051
+ *ngIf="showFooter"
22052
+ [scrollable]="false"
22053
+ [logicalRowIndex]="ariaRowCount"
22054
+ [groups]="group"
22055
+ [columns]="$any(leafColumns)"
22056
+ [detailTemplate]="detailTemplate">
22057
+ </tfoot>
22058
+ </table>
22059
+ </ng-container>
22060
+ <div [loadingTemplate]="loadingTemplate" *ngIf="loading" kendoGridLoading></div>
21778
22061
  </div>
22062
+ <kendo-grid-status-bar
22063
+ *ngIf="showStatusBar"
22064
+ [selectableSettings]="selectable"
22065
+ [statusBarTemplate]="statusBarTemplate">
22066
+ </kendo-grid-status-bar>
21779
22067
  <kendo-pager
21780
22068
  *ngIf="showBottomPager"
21781
22069
  [tabindex]="navigation.pagerEnabled ? '0' : '-1'"
@@ -21958,6 +22246,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
21958
22246
  }], loadingTemplateChildren: [{
21959
22247
  type: ContentChildren,
21960
22248
  args: [LoadingTemplateDirective]
22249
+ }], statusBarTemplateChildren: [{
22250
+ type: ContentChildren,
22251
+ args: [StatusBarTemplateDirective]
21961
22252
  }], noRecordsTemplateChildren: [{
21962
22253
  type: ContentChildren,
21963
22254
  args: [NoRecordsTemplateDirective]
@@ -25265,6 +25556,7 @@ const exportedModules$1 = [
25265
25556
  ToolbarTemplateDirective,
25266
25557
  ToolbarComponent,
25267
25558
  GridSpacerComponent,
25559
+ StatusBarTemplateDirective,
25268
25560
  DataBindingDirective,
25269
25561
  SelectionDirective,
25270
25562
  CustomMessagesComponent,
@@ -25302,7 +25594,9 @@ const declarations$2 = [
25302
25594
  GroupBindingDirective,
25303
25595
  GridMarqueeDirective,
25304
25596
  GridSpacerComponent,
25305
- GridToolbarFocusableDirective
25597
+ GridToolbarFocusableDirective,
25598
+ StatusBarComponent,
25599
+ StatusBarTemplateDirective
25306
25600
  ];
25307
25601
  /**
25308
25602
  * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
@@ -25344,7 +25638,9 @@ GridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13
25344
25638
  GroupBindingDirective,
25345
25639
  GridMarqueeDirective,
25346
25640
  GridSpacerComponent,
25347
- GridToolbarFocusableDirective], imports: [CommonModule,
25641
+ GridToolbarFocusableDirective,
25642
+ StatusBarComponent,
25643
+ StatusBarTemplateDirective], imports: [CommonModule,
25348
25644
  GroupModule,
25349
25645
  SharedModule,
25350
25646
  BodyModule,
@@ -25359,6 +25655,7 @@ GridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13
25359
25655
  ToolbarTemplateDirective,
25360
25656
  ToolbarComponent,
25361
25657
  GridSpacerComponent,
25658
+ StatusBarTemplateDirective,
25362
25659
  DataBindingDirective,
25363
25660
  SelectionDirective,
25364
25661
  CustomMessagesComponent,
@@ -26254,5 +26551,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
26254
26551
  * Generated bundle index. Do not edit.
26255
26552
  */
26256
26553
 
26257
- export { AddCommandDirective, AfterEqFilterOperatorComponent, AfterFilterOperatorComponent, AutoCompleteFilterCellComponent, BaseFilterCellComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, BodyModule, BooleanFilterCellComponent, BooleanFilterComponent, BooleanFilterMenuComponent, BooleanFilterRadioButtonDirective, BrowserSupportService, CELL_CONTEXT, CancelCommandDirective, CellCloseEvent, CellComponent, CellLoadingTemplateDirective, CellSelectionService, CellTemplateDirective, ChangeNotificationService, CheckboxColumnComponent, ColGroupComponent, ColumnBase, ColumnChooserComponent, ColumnComponent, ColumnGroupComponent, ColumnHandleDirective, ColumnInfoService, ColumnListComponent, ColumnLockedChangeEvent, ColumnMenuAutoSizeAllColumnsComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuChooserComponent, ColumnMenuComponent, ColumnMenuContainerComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuItemDirective, ColumnMenuLockComponent, ColumnMenuPositionComponent, ColumnMenuService, ColumnMenuSortComponent, ColumnMenuStickComponent, ColumnMenuTemplateDirective, ColumnReorderEvent, ColumnReorderService, ColumnResizingService, ColumnStickyChangeEvent, ColumnVisibilityChangeEvent, ColumnsContainer, CommandColumnComponent, ContainsFilterOperatorComponent, ContextService, CustomMessagesComponent, DEFAULT_SCROLLER_FACTORY, DataBindingDirective, DateFilterCellComponent, DateFilterComponent, DateFilterMenuComponent, DateFilterMenuInputComponent, DetailCollapseEvent, DetailExpandEvent, DetailTemplateDirective, DetailsService, DoesNotContainFilterOperatorComponent, DomEventsService, DragAndDropService, DragHintService, DropCueService, EditCommandDirective, EditService, EditTemplateDirective, EditingDirectiveBase, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, ExcelCommandDirective, ExcelComponent, ExcelExportEvent, ExcelModule, ExcelService, ExpandDetailsDirective, ExpandGroupDirective, FieldAccessorPipe, FilterCellComponent, FilterCellHostDirective, FilterCellOperatorsComponent, FilterCellTemplateDirective, FilterCellWrapperComponent, FilterInputDirective, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuDropDownListDirective, FilterMenuHostDirective, FilterMenuInputWrapperComponent, FilterMenuModule, FilterMenuTemplateDirective, FilterRowComponent, FilterService, FocusRoot, FocusableDirective, FooterComponent, FooterModule, FooterTemplateDirective, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, GridComponent, GridModule, GridSpacerComponent, GridTableDirective, GridToolbarFocusableDirective, GridToolbarNavigationService, GroupBindingDirective, GroupFooterTemplateDirective, GroupHeaderColumnTemplateDirective, GroupHeaderComponent, GroupHeaderTemplateDirective, GroupInfoService, GroupModule, GroupPanelComponent, GroupsService, HeaderComponent, HeaderModule, HeaderTemplateDirective, IdService, InCellEditingDirective, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, ListComponent, LoadingComponent, LoadingTemplateDirective, LocalDataChangesService, LogicalCellDirective, LogicalRowDirective, MenuTabbingService, NavigationService, NoRecordsTemplateDirective, NotEqualFilterOperatorComponent, NumericFilterCellComponent, NumericFilterComponent, NumericFilterMenuComponent, NumericFilterMenuInputComponent, PDFCommandDirective, PDFComponent, PDFMarginComponent, PDFModule, PDFService, PDFTemplateDirective, PagerComponent, PagerContextService, PagerDropDownListDirective, PagerInfoComponent, PagerInputComponent, PagerInputDirective, PagerModule, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerPageSizesComponent, PagerPrevButtonsComponent, PagerTemplateDirective, PopupCloseEvent, ReactiveEditingDirective, RemoveCommandDirective, ResizableContainerDirective, ResizeService, ResponsiveService, RowEditingDirectiveBase, RowFilterModule, RowReorderColumnComponent, SaveCommandDirective, ScrollRequestService, ScrollSyncService, SelectAllCheckboxDirective, SelectionCheckboxDirective, SelectionDirective, SelectionService, SharedFilterModule, SharedModule, SinglePopupService, SizingOptionsService, Skip, SortService, SpanColumnComponent, StartsWithFilterOperatorComponent, StringFilterCellComponent, StringFilterComponent, StringFilterMenuComponent, StringFilterMenuInputComponent, SuspendService, TableBodyComponent, TableDirective, TemplateContextDirective, TemplateEditingDirective, ToolbarComponent, ToolbarTemplateDirective, count, defaultTrackBy, hasFilterMenu, hasFilterRow, isFilterable, slice };
26554
+ export { AddCommandDirective, AfterEqFilterOperatorComponent, AfterFilterOperatorComponent, AutoCompleteFilterCellComponent, BaseFilterCellComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, BodyModule, BooleanFilterCellComponent, BooleanFilterComponent, BooleanFilterMenuComponent, BooleanFilterRadioButtonDirective, BrowserSupportService, CELL_CONTEXT, CancelCommandDirective, CellCloseEvent, CellComponent, CellLoadingTemplateDirective, CellSelectionService, CellTemplateDirective, ChangeNotificationService, CheckboxColumnComponent, ColGroupComponent, ColumnBase, ColumnChooserComponent, ColumnComponent, ColumnGroupComponent, ColumnHandleDirective, ColumnInfoService, ColumnListComponent, ColumnLockedChangeEvent, ColumnMenuAutoSizeAllColumnsComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuChooserComponent, ColumnMenuComponent, ColumnMenuContainerComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuItemDirective, ColumnMenuLockComponent, ColumnMenuPositionComponent, ColumnMenuService, ColumnMenuSortComponent, ColumnMenuStickComponent, ColumnMenuTemplateDirective, ColumnReorderEvent, ColumnReorderService, ColumnResizingService, ColumnStickyChangeEvent, ColumnVisibilityChangeEvent, ColumnsContainer, CommandColumnComponent, ContainsFilterOperatorComponent, ContextService, CustomMessagesComponent, DEFAULT_SCROLLER_FACTORY, DataBindingDirective, DateFilterCellComponent, DateFilterComponent, DateFilterMenuComponent, DateFilterMenuInputComponent, DetailCollapseEvent, DetailExpandEvent, DetailTemplateDirective, DetailsService, DoesNotContainFilterOperatorComponent, DomEventsService, DragAndDropService, DragHintService, DropCueService, EditCommandDirective, EditService, EditTemplateDirective, EditingDirectiveBase, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, ExcelCommandDirective, ExcelComponent, ExcelExportEvent, ExcelModule, ExcelService, ExpandDetailsDirective, ExpandGroupDirective, FieldAccessorPipe, FilterCellComponent, FilterCellHostDirective, FilterCellOperatorsComponent, FilterCellTemplateDirective, FilterCellWrapperComponent, FilterInputDirective, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuDropDownListDirective, FilterMenuHostDirective, FilterMenuInputWrapperComponent, FilterMenuModule, FilterMenuTemplateDirective, FilterRowComponent, FilterService, FocusRoot, FocusableDirective, FooterComponent, FooterModule, FooterTemplateDirective, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, GridComponent, GridModule, GridSpacerComponent, GridTableDirective, GridToolbarFocusableDirective, GridToolbarNavigationService, GroupBindingDirective, GroupFooterTemplateDirective, GroupHeaderColumnTemplateDirective, GroupHeaderComponent, GroupHeaderTemplateDirective, GroupInfoService, GroupModule, GroupPanelComponent, GroupsService, HeaderComponent, HeaderModule, HeaderTemplateDirective, IdService, InCellEditingDirective, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, ListComponent, LoadingComponent, LoadingTemplateDirective, LocalDataChangesService, LogicalCellDirective, LogicalRowDirective, MenuTabbingService, NavigationService, NoRecordsTemplateDirective, NotEqualFilterOperatorComponent, NumericFilterCellComponent, NumericFilterComponent, NumericFilterMenuComponent, NumericFilterMenuInputComponent, PDFCommandDirective, PDFComponent, PDFMarginComponent, PDFModule, PDFService, PDFTemplateDirective, PagerComponent, PagerContextService, PagerDropDownListDirective, PagerInfoComponent, PagerInputComponent, PagerInputDirective, PagerModule, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerPageSizesComponent, PagerPrevButtonsComponent, PagerTemplateDirective, PopupCloseEvent, ReactiveEditingDirective, RemoveCommandDirective, ResizableContainerDirective, ResizeService, ResponsiveService, RowEditingDirectiveBase, RowFilterModule, RowReorderColumnComponent, SaveCommandDirective, ScrollRequestService, ScrollSyncService, SelectAllCheckboxDirective, SelectionCheckboxDirective, SelectionDirective, SelectionService, SharedFilterModule, SharedModule, SinglePopupService, SizingOptionsService, Skip, SortService, SpanColumnComponent, StartsWithFilterOperatorComponent, StatusBarTemplateDirective, StringFilterCellComponent, StringFilterComponent, StringFilterMenuComponent, StringFilterMenuInputComponent, SuspendService, TableBodyComponent, TableDirective, TemplateContextDirective, TemplateEditingDirective, ToolbarComponent, ToolbarTemplateDirective, count, defaultTrackBy, hasFilterMenu, hasFilterRow, isFilterable, slice };
26258
26555