@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 { plusIcon, cancelIcon, lockIcon, unlockIcon, insertMiddleIcon, caretAltL
22
22
  import * as i1$3 from '@angular/platform-browser';
23
23
  import * as i3 from '@progress/kendo-angular-icons';
24
24
  import { IconsModule } from '@progress/kendo-angular-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';
@@ -2081,6 +2081,7 @@ class SelectionService {
2081
2081
  this.localDataChangesService = localDataChangesService;
2082
2082
  this.navigationService = navigationService;
2083
2083
  this.changes = new EventEmitter();
2084
+ this.aggregateChanges = new EventEmitter();
2084
2085
  this.lastSelectionStartIndex = 0;
2085
2086
  this.currentSelection = [];
2086
2087
  this.selectAllChecked = false;
@@ -2164,6 +2165,10 @@ class SelectionService {
2164
2165
  }
2165
2166
  ev.ctrlKey = ctrlKey;
2166
2167
  ev.shiftKey = event.shiftKey;
2168
+ if (this.options.cellAggregates) {
2169
+ this.aggregateChanges.emit(ev);
2170
+ ev.cellAggregates = this.aggregates;
2171
+ }
2167
2172
  this.changes.emit(ev);
2168
2173
  }
2169
2174
  toggle(item) {
@@ -2318,9 +2323,15 @@ class SelectionService {
2318
2323
  }
2319
2324
  next = iterator.next();
2320
2325
  }
2326
+ let cellAggregates;
2327
+ if (this.options.cellAggregates) {
2328
+ this.aggregateChanges.emit({ selectedRows, deselectedRows });
2329
+ cellAggregates = this.aggregates;
2330
+ }
2321
2331
  return {
2322
2332
  deselectedRows: deselectedRows,
2323
- selectedRows: selectedRows
2333
+ selectedRows: selectedRows,
2334
+ cellAggregates
2324
2335
  };
2325
2336
  }
2326
2337
  get selectAllState() {
@@ -2333,6 +2344,7 @@ class SelectionService {
2333
2344
  }
2334
2345
  get options() {
2335
2346
  const defaultOptions = {
2347
+ cellAggregates: false,
2336
2348
  checkboxOnly: false,
2337
2349
  enabled: true,
2338
2350
  mode: "multiple"
@@ -2342,6 +2354,7 @@ class SelectionService {
2342
2354
  }
2343
2355
  if (typeof this.settings.selectable === 'boolean') {
2344
2356
  return {
2357
+ cellAggregates: false,
2345
2358
  checkboxOnly: false,
2346
2359
  enabled: this.settings.selectable,
2347
2360
  mode: "multiple"
@@ -2429,6 +2442,7 @@ class CellSelectionService {
2429
2442
  this.localDataChangesService = localDataChangesService;
2430
2443
  this.navigationService = navigationService;
2431
2444
  this.changes = new EventEmitter();
2445
+ this.aggregateChanges = new EventEmitter();
2432
2446
  this.mouseUpEvent = new EventEmitter();
2433
2447
  this.currentSelection = [];
2434
2448
  this.active = false;
@@ -2514,6 +2528,10 @@ class CellSelectionService {
2514
2528
  }
2515
2529
  ev.ctrlKey = ctrlKey;
2516
2530
  ev.shiftKey = event.shiftKey;
2531
+ if (this.options.cellAggregates) {
2532
+ this.aggregateChanges.emit(ev);
2533
+ ev.cellAggregates = this.aggregates;
2534
+ }
2517
2535
  this.changes.emit(ev);
2518
2536
  }
2519
2537
  toggle(item) {
@@ -2617,13 +2635,20 @@ class CellSelectionService {
2617
2635
  }
2618
2636
  next = iterator.next();
2619
2637
  }
2638
+ let cellAggregates;
2639
+ if (this.options.cellAggregates) {
2640
+ this.aggregateChanges.emit({ selectedCells, deselectedCells });
2641
+ cellAggregates = this.aggregates;
2642
+ }
2620
2643
  return {
2621
2644
  deselectedCells,
2622
- selectedCells
2645
+ selectedCells,
2646
+ cellAggregates
2623
2647
  };
2624
2648
  }
2625
2649
  get options() {
2626
2650
  const defaultOptions = {
2651
+ cellAggregates: false,
2627
2652
  checkboxOnly: false,
2628
2653
  enabled: true,
2629
2654
  mode: "multiple"
@@ -2633,6 +2658,7 @@ class CellSelectionService {
2633
2658
  }
2634
2659
  if (typeof this.settings.selectable === 'boolean') {
2635
2660
  return {
2661
+ cellAggregates: false,
2636
2662
  checkboxOnly: false,
2637
2663
  enabled: this.settings.selectable,
2638
2664
  mode: "multiple"
@@ -2906,8 +2932,8 @@ const packageMetadata = {
2906
2932
  name: '@progress/kendo-angular-grid',
2907
2933
  productName: 'Kendo UI for Angular',
2908
2934
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
2909
- publishDate: 1685372819,
2910
- version: '13.0.0-develop.12',
2935
+ publishDate: 1685438859,
2936
+ version: '13.0.0-develop.14',
2911
2937
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
2912
2938
  };
2913
2939
 
@@ -6497,6 +6523,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
6497
6523
  type: Output
6498
6524
  }] } });
6499
6525
 
6526
+ /**
6527
+ * Represents the status bar template of the Grid. Allows you to visualize the aggregates using custom rendering inside the template.
6528
+ * The template context has the following field:
6529
+ * - `aggregates`—The [SelectionAggregates]({% slug api_grid_selectionaggregates %}) object that contains all calculated aggregates.
6530
+ * Use the Angular [ngFor](link:site.data.urls.angular['ngfor']) structural directive combined with the [KeyValuePipe](https://angular.io/api/common/KeyValuePipe)
6531
+ * to loop through the aggregates as key-value pairs.
6532
+ */
6533
+ class StatusBarTemplateDirective {
6534
+ constructor(templateRef) {
6535
+ this.templateRef = templateRef;
6536
+ }
6537
+ }
6538
+ StatusBarTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: StatusBarTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
6539
+ StatusBarTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: StatusBarTemplateDirective, selector: "[kendoGridStatusBarTemplate]", ngImport: i0 });
6540
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: StatusBarTemplateDirective, decorators: [{
6541
+ type: Directive,
6542
+ args: [{
6543
+ selector: '[kendoGridStatusBarTemplate]'
6544
+ }]
6545
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
6546
+
6500
6547
  /**
6501
6548
  * @hidden
6502
6549
  */
@@ -15867,6 +15914,8 @@ class SelectionCheckboxDirective {
15867
15914
  const ev = this.selectionService.toggleByIndex(this.itemIndex);
15868
15915
  ev.ctrlKey = true;
15869
15916
  ev.shiftKey = false;
15917
+ this.selectionService.aggregateChanges.emit(ev);
15918
+ ev.cellAggregates = this.selectionService.aggregates;
15870
15919
  this.selectionService.changes.emit(ev);
15871
15920
  });
15872
15921
  }
@@ -18626,6 +18675,224 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
18626
18675
  type: Input
18627
18676
  }] } });
18628
18677
 
18678
+ /* eslint-disable @typescript-eslint/no-explicit-any */
18679
+ ;
18680
+ /**
18681
+ * @hidden
18682
+ */
18683
+ class StatusBarComponent {
18684
+ constructor(ctx, selectionService, dataChanges, columnInfoService, cellSelectionService) {
18685
+ this.ctx = ctx;
18686
+ this.selectionService = selectionService;
18687
+ this.dataChanges = dataChanges;
18688
+ this.columnInfoService = columnInfoService;
18689
+ this.cellSelectionService = cellSelectionService;
18690
+ this.hostClasses = true;
18691
+ this.groupedAggregates = { dates: [], numbers: [], booleans: [] };
18692
+ this.aggregates = {
18693
+ sum: null,
18694
+ average: null,
18695
+ min: null,
18696
+ max: null,
18697
+ count: null,
18698
+ isTrue: null,
18699
+ isFalse: null,
18700
+ earliest: null,
18701
+ latest: null
18702
+ };
18703
+ this.subs = new Subscription();
18704
+ this.selectedItems = [];
18705
+ }
18706
+ get isStatusBarTemplate() {
18707
+ return this.statusBarTemplate ? '' : 'none';
18708
+ }
18709
+ ngOnInit() {
18710
+ if (this.selectableSettings.cellAggregates) {
18711
+ this.data = this.dataChanges.data ? this.dataChanges.data : this.ctx.grid.data;
18712
+ this.selectService = this.isRowSelection ? this.selectionService : this.cellSelectionService;
18713
+ if (this.isAggregateIncluded('count')) {
18714
+ this.aggregates['count'] = 0;
18715
+ }
18716
+ const selectionDirective = this.ctx.grid.selectionDirective;
18717
+ if (selectionDirective && !this.isRowSelection) {
18718
+ this.selectedItems = selectionDirective.selectedKeys;
18719
+ }
18720
+ this.subs.add(this.selectService.aggregateChanges.subscribe((selectionArgs) => this.onSelectionChange(selectionArgs)));
18721
+ }
18722
+ }
18723
+ ngOnDestroy() {
18724
+ this.subs.unsubscribe();
18725
+ }
18726
+ onSelectionChange(selectionArgs) {
18727
+ this.handleSelectedItems(selectionArgs);
18728
+ this.nullifyAggregates();
18729
+ this.handleAggregateChanges();
18730
+ this.selectService.aggregates = this.aggregates;
18731
+ }
18732
+ handleAggregateChanges() {
18733
+ const lockedColumns = this.columnInfoService.lockedLeafColumns.toArray();
18734
+ const nonLockedColumns = this.columnInfoService.nonLockedLeafColumns.toArray();
18735
+ const selectedItemsLength = this.selectedItems.length;
18736
+ const columns = [...lockedColumns, ...nonLockedColumns];
18737
+ const fields = columns.map(col => col.field);
18738
+ if (this.isAggregateIncluded('count')) {
18739
+ this.aggregates['count'] = this.isRowSelection ? (selectedItemsLength * columns.length) : selectedItemsLength;
18740
+ }
18741
+ this.selectedItems.forEach((item) => {
18742
+ if (this.isRowSelection) {
18743
+ fields.forEach((field) => {
18744
+ const cellValue = item.dataItem;
18745
+ if (cellValue && cellValue.hasOwnProperty(field)) {
18746
+ const cellValue = item.dataItem[field];
18747
+ this.groupAggregates(cellValue);
18748
+ }
18749
+ });
18750
+ }
18751
+ else if (this.selectService.options.cell) {
18752
+ const itemKey = this.data[item.itemKey];
18753
+ const field = fields[item.columnKey];
18754
+ if (itemKey && itemKey.hasOwnProperty(field)) {
18755
+ const cellValue = itemKey[fields[item.columnKey]];
18756
+ this.groupAggregates(cellValue);
18757
+ }
18758
+ }
18759
+ });
18760
+ this.calculateAggregates();
18761
+ }
18762
+ groupAggregates(aggregate) {
18763
+ if (typeof aggregate === 'number') {
18764
+ this.groupedAggregates.numbers.push(aggregate);
18765
+ }
18766
+ else if (typeof aggregate === 'boolean') {
18767
+ this.groupedAggregates.booleans.push(aggregate);
18768
+ }
18769
+ else if (aggregate instanceof Date) {
18770
+ this.groupedAggregates.dates.push(aggregate);
18771
+ }
18772
+ }
18773
+ calculateAggregates() {
18774
+ if (this.groupedAggregates.numbers.length > 0) {
18775
+ if (this.isAggregateIncluded('min')) {
18776
+ this.aggregates['min'] = Math.min(...this.groupedAggregates.numbers);
18777
+ }
18778
+ if (this.isAggregateIncluded('max')) {
18779
+ this.aggregates['max'] = Math.max(...this.groupedAggregates.numbers);
18780
+ }
18781
+ if (this.isAggregateIncluded('sum')) {
18782
+ this.aggregates['sum'] = this.groupedAggregates.numbers.reduce((acc, curr) => acc += curr, 0);
18783
+ }
18784
+ if (this.isAggregateIncluded('average')) {
18785
+ this.aggregates['average'] = this.aggregates['sum'] / this.groupedAggregates.numbers.length;
18786
+ }
18787
+ }
18788
+ if (this.groupedAggregates.booleans.length > 0) {
18789
+ if (this.isAggregateIncluded('isTrue')) {
18790
+ const isTrueCount = this.groupedAggregates.booleans.filter(bool => bool).length;
18791
+ this.aggregates['isTrue'] = isTrueCount > 0 ? isTrueCount : null;
18792
+ }
18793
+ if (this.isAggregateIncluded('isFalse')) {
18794
+ const isFalseCount = this.groupedAggregates.booleans.length - this.aggregates['isTrue'];
18795
+ this.aggregates['isFalse'] = isFalseCount > 0 ? isFalseCount : null;
18796
+ }
18797
+ }
18798
+ if (this.groupedAggregates.dates.length > 0) {
18799
+ if (this.isAggregateIncluded('earliest')) {
18800
+ this.aggregates['earliest'] = new Date(Math.min(...this.groupedAggregates.dates));
18801
+ }
18802
+ if (this.isAggregateIncluded('latest')) {
18803
+ this.aggregates['latest'] = new Date(Math.max(...this.groupedAggregates.dates));
18804
+ }
18805
+ }
18806
+ }
18807
+ handleSelectedItems(selectionArgs) {
18808
+ const rowOrCellSelect = `${this.isRowSelection ? 'selectedRows' : 'selectedCells'}`;
18809
+ const rowOrCellDeselect = `${this.isRowSelection ? 'deselectedRows' : 'deselectedCells'}`;
18810
+ const selectedItems = selectionArgs[rowOrCellSelect];
18811
+ const deselectedItems = selectionArgs[rowOrCellDeselect];
18812
+ if (!this.isRowSelection) {
18813
+ // Needed when we have column groups with cell selection, the deselected items are duplicated
18814
+ deselectedItems.forEach((item, index) => {
18815
+ if (index + 1 < deselectedItems.length) {
18816
+ if (item.itemKey === deselectedItems[index + 1].itemKey
18817
+ && item.columnKey === deselectedItems[index + 1].columnKey) {
18818
+ deselectedItems.splice(index, 1);
18819
+ }
18820
+ }
18821
+ });
18822
+ }
18823
+ if (selectedItems.length > 0) {
18824
+ selectedItems.forEach((item) => {
18825
+ this.selectedItems = [...this.selectedItems, item];
18826
+ });
18827
+ }
18828
+ if (deselectedItems.length > 0) {
18829
+ if (this.isRowSelection) {
18830
+ deselectedItems.forEach((row) => {
18831
+ this.selectedItems = this.selectedItems.filter((elem) => elem.dataItem !== row.dataItem);
18832
+ });
18833
+ }
18834
+ else {
18835
+ deselectedItems.forEach((cell) => {
18836
+ const index = this.selectedItems.findIndex((elem) => elem.itemKey === cell.itemKey && elem.columnKey === cell.columnKey);
18837
+ this.selectedItems.splice(index, 1);
18838
+ });
18839
+ }
18840
+ }
18841
+ }
18842
+ isAggregateIncluded(aggregate) {
18843
+ const { cellAggregates } = this.selectService.options;
18844
+ if (typeof cellAggregates !== 'boolean') {
18845
+ return cellAggregates.includes(aggregate);
18846
+ }
18847
+ return true;
18848
+ }
18849
+ nullifyAggregates() {
18850
+ this.groupedAggregates = { dates: [], numbers: [], booleans: [] };
18851
+ this.aggregates['count'] = null;
18852
+ this.aggregates['sum'] = this.aggregates['average'] = null;
18853
+ this.aggregates['max'] = this.aggregates['min'] = null;
18854
+ this.aggregates['isFalse'] = this.aggregates['isTrue'] = null;
18855
+ this.aggregates['earliest'] = this.aggregates['latest'] = null;
18856
+ }
18857
+ get isRowSelection() {
18858
+ return typeof this.selectableSettings === 'boolean' || !this.selectableSettings.cell;
18859
+ }
18860
+ }
18861
+ 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 });
18862
+ 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: `
18863
+ <ng-template
18864
+ *ngIf="statusBarTemplate"
18865
+ [ngTemplateOutlet]="statusBarTemplate?.templateRef"
18866
+ [ngTemplateOutletContext]="{ aggregates: aggregates }">
18867
+ </ng-template>
18868
+ `, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
18869
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: StatusBarComponent, decorators: [{
18870
+ type: Component,
18871
+ args: [{
18872
+ selector: 'kendo-grid-status-bar',
18873
+ template: `
18874
+ <ng-template
18875
+ *ngIf="statusBarTemplate"
18876
+ [ngTemplateOutlet]="statusBarTemplate?.templateRef"
18877
+ [ngTemplateOutletContext]="{ aggregates: aggregates }">
18878
+ </ng-template>
18879
+ `
18880
+ }]
18881
+ }], ctorParameters: function () { return [{ type: ContextService }, { type: SelectionService }, { type: LocalDataChangesService }, { type: ColumnInfoService }, { type: CellSelectionService }]; }, propDecorators: { hostClasses: [{
18882
+ type: HostBinding,
18883
+ args: ['class.k-selection-aggregates']
18884
+ }, {
18885
+ type: HostBinding,
18886
+ args: ['class.k-grid-selection-aggregates']
18887
+ }], isStatusBarTemplate: [{
18888
+ type: HostBinding,
18889
+ args: ['style.display']
18890
+ }], selectableSettings: [{
18891
+ type: Input
18892
+ }], statusBarTemplate: [{
18893
+ type: Input
18894
+ }] } });
18895
+
18629
18896
  /**
18630
18897
  * @hidden
18631
18898
  */
@@ -19219,6 +19486,12 @@ class GridComponent {
19219
19486
  get group() {
19220
19487
  return this._group;
19221
19488
  }
19489
+ /**
19490
+ * @hidden
19491
+ */
19492
+ get showStatusBar() {
19493
+ return !!(this.selectable);
19494
+ }
19222
19495
  /**
19223
19496
  * @hidden
19224
19497
  */
@@ -19453,6 +19726,15 @@ class GridComponent {
19453
19726
  set loadingTemplate(loadingTemplate) {
19454
19727
  this._loadingTemplate = loadingTemplate;
19455
19728
  }
19729
+ get statusBarTemplate() {
19730
+ if (this._statusBarTemplate) {
19731
+ return this._statusBarTemplate;
19732
+ }
19733
+ return this.statusBarTemplateChildren ? this.statusBarTemplateChildren.first : undefined;
19734
+ }
19735
+ set statusBarTemplate(statusBarTemplate) {
19736
+ this._statusBarTemplate = statusBarTemplate;
19737
+ }
19456
19738
  get noRecordsTemplate() {
19457
19739
  if (this._customNoRecordsTemplate) {
19458
19740
  return this._customNoRecordsTemplate;
@@ -20716,7 +20998,7 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
20716
20998
  ContextService,
20717
20999
  SizingOptionsService,
20718
21000
  RowReorderService
20719
- ], 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: `
21001
+ ], 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: `
20720
21002
  <ng-container kendoGridLocalizedMessages
20721
21003
  i18n-groupPanelEmpty="kendo.grid.groupPanelEmpty|The label visible in the Grid group panel when it is empty"
20722
21004
  groupPanelEmpty="Drag a column header and drop it here to group by that column"
@@ -20964,285 +21246,288 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
20964
21246
  [navigable]="navigation.toolbarEnabled"
20965
21247
  [attr.aria-controls]="ariaRootId"
20966
21248
  position="top"></kendo-grid-toolbar>
20967
- <kendo-pager
20968
- *ngIf="showTopPager"
20969
- [tabindex]="navigation.pagerEnabled ? '0' : '-1'"
20970
- [attr.role]="navigation.pagerEnabled ? 'application' : undefined"
20971
- class="k-grid-pager-top k-pager"
20972
- [template]="pagerTemplate"
20973
- [pageSize]="pageSize"
20974
- [total]="view.total"
20975
- [skip]="skip"
20976
- [size]="size"
20977
- [options]="pageable"
20978
- (pageChange)="notifyPageChange('pager', $event)">
20979
- </kendo-pager>
20980
- <kendo-grid-group-panel
20981
- *ngIf="showGroupPanel"
20982
- [navigable]="navigation.toolbarEnabled"
20983
- [text]="groupableEmptyText"
20984
- [groups]="group"
20985
- role="toolbar"
20986
- [attr.aria-label]="messageFor('groupPanelLabel')"
20987
- [attr.aria-controls]="ariaRootId"
20988
- (change)="groupChange.emit($event)">
20989
- </kendo-grid-group-panel>
20990
- <div #ariaRoot
20991
- class="k-grid-aria-root"
20992
- role="grid"
20993
- [id]="ariaRootId"
20994
- [attr.aria-label]="ariaLabel"
20995
- [attr.aria-rowcount]="ariaRowCount"
20996
- [attr.aria-colcount]="ariaColCount">
20997
- <ng-container *ngIf="isScrollable">
20998
- <div *ngIf="!hideHeader"
20999
- class="k-grid-header"
21000
- role="presentation"
21001
- [style.padding]="headerPadding">
21002
- <div *ngIf="isLocked"
21003
- #lockedHeader
21004
- role="presentation"
21005
- class="k-grid-header-locked"
21006
- [style.width.px]="lockedWidth">
21007
- <table
21008
- [locked]="true"
21249
+ <kendo-pager
21250
+ *ngIf="showTopPager"
21251
+ [tabindex]="navigation.pagerEnabled ? '0' : '-1'"
21252
+ [attr.role]="navigation.pagerEnabled ? 'application' : undefined"
21253
+ class="k-grid-pager-top k-pager"
21254
+ [template]="pagerTemplate"
21255
+ [pageSize]="pageSize"
21256
+ [total]="view.total"
21257
+ [skip]="skip"
21258
+ [size]="size"
21259
+ [options]="pageable"
21260
+ (pageChange)="notifyPageChange('pager', $event)">
21261
+ </kendo-pager>
21262
+ <kendo-grid-group-panel
21263
+ *ngIf="showGroupPanel"
21264
+ [navigable]="navigation.toolbarEnabled"
21265
+ [text]="groupableEmptyText"
21266
+ [groups]="group"
21267
+ role="toolbar"
21268
+ [attr.aria-label]="messageFor('groupPanelLabel')"
21269
+ [attr.aria-controls]="ariaRootId"
21270
+ (change)="groupChange.emit($event)">
21271
+ </kendo-grid-group-panel>
21272
+ <div #ariaRoot
21273
+ class="k-grid-aria-root"
21274
+ role="grid"
21275
+ [id]="ariaRootId"
21276
+ [attr.aria-label]="ariaLabel"
21277
+ [attr.aria-rowcount]="ariaRowCount"
21278
+ [attr.aria-colcount]="ariaColCount">
21279
+ <ng-container *ngIf="isScrollable">
21280
+ <div *ngIf="!hideHeader"
21281
+ class="k-grid-header"
21282
+ role="presentation"
21283
+ [style.padding]="headerPadding">
21284
+ <div *ngIf="isLocked"
21285
+ #lockedHeader
21009
21286
  role="presentation"
21010
- class="k-grid-header-table"
21011
- [style.width.px]="lockedWidth"
21012
- kendoGridTable
21013
- [size]="size">
21014
- <colgroup kendoGridColGroup
21287
+ class="k-grid-header-locked"
21288
+ [style.width.px]="lockedWidth">
21289
+ <table
21290
+ [locked]="true"
21015
21291
  role="presentation"
21016
- [columns]="$any(lockedLeafColumns)"
21017
- [groups]="group"
21018
- [detailTemplate]="detailTemplate">
21019
- </colgroup>
21020
- <thead kendoGridHeader
21021
- role="rowgroup"
21022
- [resizable]="resizable"
21023
- [scrollable]="true"
21024
- [columns]="$any(lockedColumns)"
21025
- [totalColumnLevels]="totalColumnLevels"
21026
- [sort]="sort"
21027
- [groups]="group"
21028
- [filter]="filter"
21029
- [filterable]="filterable"
21030
- [groupable]="showGroupPanel"
21031
- [reorderable]="reorderable"
21032
- [sortable]="sortable"
21033
- [columnMenu]="columnMenuOptions"
21034
- [columnMenuTemplate]="columnMenuTemplate"
21035
- [totalColumnsCount]="leafColumns.length"
21036
- [detailTemplate]="detailTemplate"
21037
- [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
21038
- </thead>
21039
- </table>
21040
- </div>
21041
- <div #header class="k-grid-header-wrap" role="presentation" data-scrollable
21042
- [kendoGridResizableContainer]="lockedLeafColumns.length > 0"
21043
- [lockedWidth]="lockedWidth + scrollbarWidth + 2">
21044
- <table
21045
- role="presentation"
21046
- class="k-grid-header-table"
21047
- [style.width.px]="nonLockedWidth"
21048
- [virtualColumns]="virtualColumns"
21049
- kendoGridTable
21050
- [size]="size">
21051
- <colgroup kendoGridColGroup
21292
+ class="k-grid-header-table"
21293
+ [style.width.px]="lockedWidth"
21294
+ kendoGridTable
21295
+ [size]="size">
21296
+ <colgroup kendoGridColGroup
21297
+ role="presentation"
21298
+ [columns]="$any(lockedLeafColumns)"
21299
+ [groups]="group"
21300
+ [detailTemplate]="detailTemplate">
21301
+ </colgroup>
21302
+ <thead kendoGridHeader
21303
+ role="rowgroup"
21304
+ [resizable]="resizable"
21305
+ [scrollable]="true"
21306
+ [columns]="$any(lockedColumns)"
21307
+ [totalColumnLevels]="totalColumnLevels"
21308
+ [sort]="sort"
21309
+ [groups]="group"
21310
+ [filter]="filter"
21311
+ [filterable]="filterable"
21312
+ [groupable]="showGroupPanel"
21313
+ [reorderable]="reorderable"
21314
+ [sortable]="sortable"
21315
+ [columnMenu]="columnMenuOptions"
21316
+ [columnMenuTemplate]="columnMenuTemplate"
21317
+ [totalColumnsCount]="leafColumns.length"
21318
+ [detailTemplate]="detailTemplate"
21319
+ [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
21320
+ </thead>
21321
+ </table>
21322
+ </div>
21323
+ <div #header class="k-grid-header-wrap" role="presentation" data-scrollable
21324
+ [kendoGridResizableContainer]="lockedLeafColumns.length > 0"
21325
+ [lockedWidth]="lockedWidth + scrollbarWidth + 2">
21326
+ <table
21052
21327
  role="presentation"
21053
- [columns]="headerLeafColumns"
21054
- [groups]="isLocked ? [] : group"
21055
- [detailTemplate]="detailTemplate">
21056
- </colgroup>
21057
- <thead kendoGridHeader
21058
- [resizable]="resizable"
21059
- role="rowgroup"
21060
- [scrollable]="true"
21061
- [columns]="headerColumns"
21062
- [totalColumnLevels]="totalColumnLevels"
21063
- [sort]="sort"
21064
- [filter]="filter"
21065
- [filterable]="filterable"
21066
- [groupable]="showGroupPanel"
21067
- [reorderable]="reorderable"
21068
- [groups]="isLocked ? [] : group"
21069
- [sortable]="sortable"
21070
- [columnMenu]="columnMenuOptions"
21071
- [columnMenuTemplate]="columnMenuTemplate"
21072
- [lockedColumnsCount]="lockedLeafColumns.length"
21073
- [totalColumnsCount]="leafColumns.length"
21074
- [detailTemplate]="detailTemplate"
21075
- [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
21076
- </thead>
21077
- </table>
21078
- <div *ngIf="virtualColumns" class="k-width-container" role="presentation">
21079
- <div [style.width.px]="columnsContainer.unlockedWidth"></div>
21328
+ class="k-grid-header-table"
21329
+ [style.width.px]="nonLockedWidth"
21330
+ [virtualColumns]="virtualColumns"
21331
+ kendoGridTable
21332
+ [size]="size">
21333
+ <colgroup kendoGridColGroup
21334
+ role="presentation"
21335
+ [columns]="headerLeafColumns"
21336
+ [groups]="isLocked ? [] : group"
21337
+ [detailTemplate]="detailTemplate">
21338
+ </colgroup>
21339
+ <thead kendoGridHeader
21340
+ [resizable]="resizable"
21341
+ role="rowgroup"
21342
+ [scrollable]="true"
21343
+ [columns]="headerColumns"
21344
+ [totalColumnLevels]="totalColumnLevels"
21345
+ [sort]="sort"
21346
+ [filter]="filter"
21347
+ [filterable]="filterable"
21348
+ [groupable]="showGroupPanel"
21349
+ [reorderable]="reorderable"
21350
+ [groups]="isLocked ? [] : group"
21351
+ [sortable]="sortable"
21352
+ [columnMenu]="columnMenuOptions"
21353
+ [columnMenuTemplate]="columnMenuTemplate"
21354
+ [lockedColumnsCount]="lockedLeafColumns.length"
21355
+ [totalColumnsCount]="leafColumns.length"
21356
+ [detailTemplate]="detailTemplate"
21357
+ [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
21358
+ </thead>
21359
+ </table>
21360
+ <div *ngIf="virtualColumns" class="k-width-container" role="presentation">
21361
+ <div [style.width.px]="columnsContainer.unlockedWidth"></div>
21362
+ </div>
21080
21363
  </div>
21081
21364
  </div>
21082
- </div>
21083
- <kendo-grid-list
21084
- kendoDragTargetContainer
21085
- kendoDropTargetContainer
21086
- mode="manual"
21087
- [dragDisabled]="!rowReorderable"
21088
- [dropDisabled]="!rowReorderable"
21089
- [dragTargetFilter]="getDefaultSelectors('dragTarget')"
21090
- [dropTargetFilter]="getDefaultSelectors('dropTarget')"
21091
- [dragHandle]="getDefaultSelectors('handle')"
21092
- [hint]="{hintTemplate: defaultHint}"
21093
- (onPress)="handleReorderEvents($event, 'press')"
21094
- (onDragStart)="handleReorderEvents($event, 'dragStart')"
21095
- (onDrag)="handleReorderEvents($event, 'drag')"
21096
- (onDragEnter)="handleReorderEvents($event, 'dragEnter')"
21097
- (onDragLeave)="handleReorderEvents($event, 'dragLeave')"
21098
- (onDragEnd)="handleReorderEvents($event, 'dragEnd')"
21099
- (onDrop)="handleReorderEvents($event, 'drop')"
21100
- [dragData]="gridData"
21101
- [data]="$any(view)"
21102
- [rowHeight]="rowHeight"
21103
- [detailRowHeight]="detailRowHeight"
21104
- [total]="totalCount"
21105
- [take]="pageSize"
21106
- [groups]="group"
21107
- [groupable]="groupable"
21108
- [skip]="skip"
21109
- [trackBy]="trackBy"
21110
- [columns]="columnsContainer"
21111
- [selectable]="selectable"
21112
- [filterable]="filterable"
21113
- [detailTemplate]="detailTemplate"
21114
- [noRecordsTemplate]="noRecordsTemplate"
21115
- [size]="size"
21116
- (pageChange)="notifyPageChange('list', $event)"
21117
- [rowClass]="rowClass"
21118
- [rowSticky]="rowSticky"
21119
- [loading]="loading"
21120
- [isVirtual]="isVirtual"
21121
- [cellLoadingTemplate]="cellLoadingTemplate?.templateRef"
21122
- [loadingTemplate]="loadingTemplate?.templateRef"
21123
- [virtualColumns]="virtualColumns"
21124
- (scrollBottom)="notifyScrollBottom()"
21125
- (contentScroll)="contentScroll.emit($event)"
21126
- kendoDraggable
21127
- kendoGridSelectionMarquee
21128
- [enableDrag]="marqueeSelection"
21129
- [sort]="sort"
21130
- >
21131
- </kendo-grid-list>
21132
- <div
21133
- *ngIf="showFooter"
21134
- class="k-grid-footer"
21135
- [style.padding]="headerPadding">
21136
- <div
21137
- *ngIf="lockedLeafColumns.length"
21138
- class="k-grid-footer-locked"
21139
- [style.width.px]="lockedWidth">
21140
- <table
21141
- role="presentation"
21142
- class="k-grid-footer-table"
21143
- [locked]="true"
21144
- [style.width.px]="lockedWidth"
21145
- kendoGridTable
21146
- [size]="size">
21147
- <colgroup kendoGridColGroup
21148
- [columns]="$any(lockedLeafColumns)"
21149
- [groups]="group"
21150
- [detailTemplate]="detailTemplate">
21151
- </colgroup>
21152
- <tfoot kendoGridFooter
21153
- [scrollable]="true"
21154
- [groups]="group"
21155
- [columns]="$any(lockedLeafColumns)"
21156
- [detailTemplate]="detailTemplate"
21157
- [logicalRowIndex]="ariaRowCount">
21158
- </tfoot>
21159
- </table>
21160
- </div>
21161
- <div #footer
21162
- class="k-grid-footer-wrap" data-scrollable
21163
- [kendoGridResizableContainer]="lockedLeafColumns.length > 0"
21164
- [lockedWidth]="lockedWidth + scrollbarWidth + 3">
21165
- <table
21166
- role="presentation"
21167
- class="k-grid-footer-table"
21168
- [style.width.px]="nonLockedWidth"
21169
- kendoGridTable
21170
- [size]="size">
21171
- <colgroup kendoGridColGroup
21172
- [columns]="$any(nonLockedLeafColumns)"
21173
- [groups]="isLocked ? [] : group"
21174
- [detailTemplate]="detailTemplate">
21175
- </colgroup>
21176
- <tfoot kendoGridFooter
21177
- [logicalRowIndex]="ariaRowCount"
21178
- [scrollable]="true"
21179
- [groups]="isLocked ? [] : group"
21180
- [columns]="$any(nonLockedLeafColumns)"
21181
- [lockedColumnsCount]="lockedLeafColumns.length"
21182
- [detailTemplate]="detailTemplate">
21183
- </tfoot>
21184
- </table>
21185
- </div>
21186
- </div>
21187
- </ng-container>
21188
- <ng-container *ngIf="!isScrollable">
21189
- <table
21190
- [style.table-layout]="resizable ? 'fixed' : null"
21191
- kendoGridTable
21192
- [size]="size">
21193
- <colgroup kendoGridColGroup
21194
- [columns]="$any(leafColumns)"
21195
- [groups]="group"
21196
- [detailTemplate]="detailTemplate">
21197
- </colgroup>
21198
- <thead kendoGridHeader
21199
- *ngIf="!hideHeader"
21200
- [resizable]="resizable"
21201
- [scrollable]="false"
21202
- [columns]="$any(visibleColumns)"
21203
- [totalColumnLevels]="totalColumnLevels"
21204
- [groups]="group"
21205
- [groupable]="showGroupPanel"
21206
- [reorderable]="reorderable"
21207
- [sort]="sort"
21208
- [sortable]="sortable"
21209
- [filter]="filter"
21210
- [filterable]="filterable"
21211
- [columnMenu]="columnMenuOptions"
21212
- [columnMenuTemplate]="columnMenuTemplate"
21213
- [detailTemplate]="detailTemplate"
21214
- [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
21215
- </thead>
21216
- <tbody kendoGridTableBody
21217
- [isLoading]="loading"
21218
- [groups]="group"
21365
+ <kendo-grid-list
21366
+ kendoDragTargetContainer
21367
+ kendoDropTargetContainer
21368
+ mode="manual"
21369
+ [dragDisabled]="!rowReorderable"
21370
+ [dropDisabled]="!rowReorderable"
21371
+ [dragTargetFilter]="getDefaultSelectors('dragTarget')"
21372
+ [dropTargetFilter]="getDefaultSelectors('dropTarget')"
21373
+ [dragHandle]="getDefaultSelectors('handle')"
21374
+ [hint]="{hintTemplate: defaultHint}"
21375
+ (onPress)="handleReorderEvents($event, 'press')"
21376
+ (onDragStart)="handleReorderEvents($event, 'dragStart')"
21377
+ (onDrag)="handleReorderEvents($event, 'drag')"
21378
+ (onDragEnter)="handleReorderEvents($event, 'dragEnter')"
21379
+ (onDragLeave)="handleReorderEvents($event, 'dragLeave')"
21380
+ (onDragEnd)="handleReorderEvents($event, 'dragEnd')"
21381
+ (onDrop)="handleReorderEvents($event, 'drop')"
21382
+ [dragData]="gridData"
21219
21383
  [data]="$any(view)"
21384
+ [rowHeight]="rowHeight"
21385
+ [detailRowHeight]="detailRowHeight"
21386
+ [total]="totalCount"
21387
+ [take]="pageSize"
21388
+ [groups]="group"
21389
+ [groupable]="groupable"
21220
21390
  [skip]="skip"
21221
- [columns]="$any(leafColumns)"
21391
+ [trackBy]="trackBy"
21392
+ [columns]="columnsContainer"
21222
21393
  [selectable]="selectable"
21223
21394
  [filterable]="filterable"
21224
- [noRecordsTemplate]="noRecordsTemplate"
21225
21395
  [detailTemplate]="detailTemplate"
21226
- [showGroupFooters]="showGroupFooters"
21227
- [trackBy]="trackBy"
21396
+ [noRecordsTemplate]="noRecordsTemplate"
21397
+ [size]="size"
21398
+ (pageChange)="notifyPageChange('list', $event)"
21228
21399
  [rowClass]="rowClass"
21400
+ [rowSticky]="rowSticky"
21401
+ [loading]="loading"
21402
+ [isVirtual]="isVirtual"
21403
+ [cellLoadingTemplate]="cellLoadingTemplate?.templateRef"
21404
+ [loadingTemplate]="loadingTemplate?.templateRef"
21405
+ [virtualColumns]="virtualColumns"
21406
+ (scrollBottom)="notifyScrollBottom()"
21407
+ (contentScroll)="contentScroll.emit($event)"
21229
21408
  kendoDraggable
21230
21409
  kendoGridSelectionMarquee
21231
- [enableDrag]="marqueeSelection">
21232
- </tbody>
21233
- <tfoot kendoGridFooter
21410
+ [enableDrag]="marqueeSelection"
21411
+ [sort]="sort">
21412
+ </kendo-grid-list>
21413
+ <div
21234
21414
  *ngIf="showFooter"
21235
- [scrollable]="false"
21236
- [logicalRowIndex]="ariaRowCount"
21237
- [groups]="group"
21238
- [columns]="$any(leafColumns)"
21239
- [detailTemplate]="detailTemplate">
21240
- </tfoot>
21241
- </table>
21242
- </ng-container>
21243
- <div [loadingTemplate]="loadingTemplate" *ngIf="loading" kendoGridLoading>
21244
- </div>
21415
+ class="k-grid-footer"
21416
+ [style.padding]="headerPadding">
21417
+ <div
21418
+ *ngIf="lockedLeafColumns.length"
21419
+ class="k-grid-footer-locked"
21420
+ [style.width.px]="lockedWidth">
21421
+ <table
21422
+ role="presentation"
21423
+ class="k-grid-footer-table"
21424
+ [locked]="true"
21425
+ [style.width.px]="lockedWidth"
21426
+ kendoGridTable
21427
+ [size]="size">
21428
+ <colgroup kendoGridColGroup
21429
+ [columns]="$any(lockedLeafColumns)"
21430
+ [groups]="group"
21431
+ [detailTemplate]="detailTemplate">
21432
+ </colgroup>
21433
+ <tfoot kendoGridFooter
21434
+ [scrollable]="true"
21435
+ [groups]="group"
21436
+ [columns]="$any(lockedLeafColumns)"
21437
+ [detailTemplate]="detailTemplate"
21438
+ [logicalRowIndex]="ariaRowCount">
21439
+ </tfoot>
21440
+ </table>
21441
+ </div>
21442
+ <div #footer
21443
+ class="k-grid-footer-wrap" data-scrollable
21444
+ [kendoGridResizableContainer]="lockedLeafColumns.length > 0"
21445
+ [lockedWidth]="lockedWidth + scrollbarWidth + 3">
21446
+ <table
21447
+ role="presentation"
21448
+ class="k-grid-footer-table"
21449
+ [style.width.px]="nonLockedWidth"
21450
+ kendoGridTable
21451
+ [size]="size">
21452
+ <colgroup kendoGridColGroup
21453
+ [columns]="$any(nonLockedLeafColumns)"
21454
+ [groups]="isLocked ? [] : group"
21455
+ [detailTemplate]="detailTemplate">
21456
+ </colgroup>
21457
+ <tfoot kendoGridFooter
21458
+ [logicalRowIndex]="ariaRowCount"
21459
+ [scrollable]="true"
21460
+ [groups]="isLocked ? [] : group"
21461
+ [columns]="$any(nonLockedLeafColumns)"
21462
+ [lockedColumnsCount]="lockedLeafColumns.length"
21463
+ [detailTemplate]="detailTemplate">
21464
+ </tfoot>
21465
+ </table>
21466
+ </div>
21467
+ </div>
21468
+ </ng-container>
21469
+ <ng-container *ngIf="!isScrollable">
21470
+ <table
21471
+ [style.table-layout]="resizable ? 'fixed' : null"
21472
+ kendoGridTable
21473
+ [size]="size">
21474
+ <colgroup kendoGridColGroup
21475
+ [columns]="$any(leafColumns)"
21476
+ [groups]="group"
21477
+ [detailTemplate]="detailTemplate">
21478
+ </colgroup>
21479
+ <thead kendoGridHeader
21480
+ *ngIf="!hideHeader"
21481
+ [resizable]="resizable"
21482
+ [scrollable]="false"
21483
+ [columns]="$any(visibleColumns)"
21484
+ [totalColumnLevels]="totalColumnLevels"
21485
+ [groups]="group"
21486
+ [groupable]="showGroupPanel"
21487
+ [reorderable]="reorderable"
21488
+ [sort]="sort"
21489
+ [sortable]="sortable"
21490
+ [filter]="filter"
21491
+ [filterable]="filterable"
21492
+ [columnMenu]="columnMenuOptions"
21493
+ [columnMenuTemplate]="columnMenuTemplate"
21494
+ [detailTemplate]="detailTemplate"
21495
+ [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
21496
+ </thead>
21497
+ <tbody kendoGridTableBody
21498
+ [isLoading]="loading"
21499
+ [groups]="group"
21500
+ [data]="$any(view)"
21501
+ [skip]="skip"
21502
+ [columns]="$any(leafColumns)"
21503
+ [selectable]="selectable"
21504
+ [filterable]="filterable"
21505
+ [noRecordsTemplate]="noRecordsTemplate"
21506
+ [detailTemplate]="detailTemplate"
21507
+ [showGroupFooters]="showGroupFooters"
21508
+ [trackBy]="trackBy"
21509
+ [rowClass]="rowClass"
21510
+ kendoDraggable
21511
+ kendoGridSelectionMarquee
21512
+ [enableDrag]="marqueeSelection">
21513
+ </tbody>
21514
+ <tfoot kendoGridFooter
21515
+ *ngIf="showFooter"
21516
+ [scrollable]="false"
21517
+ [logicalRowIndex]="ariaRowCount"
21518
+ [groups]="group"
21519
+ [columns]="$any(leafColumns)"
21520
+ [detailTemplate]="detailTemplate">
21521
+ </tfoot>
21522
+ </table>
21523
+ </ng-container>
21524
+ <div [loadingTemplate]="loadingTemplate" *ngIf="loading" kendoGridLoading></div>
21245
21525
  </div>
21526
+ <kendo-grid-status-bar
21527
+ *ngIf="showStatusBar"
21528
+ [selectableSettings]="selectable"
21529
+ [statusBarTemplate]="statusBarTemplate">
21530
+ </kendo-grid-status-bar>
21246
21531
  <kendo-pager
21247
21532
  *ngIf="showBottomPager"
21248
21533
  [tabindex]="navigation.pagerEnabled ? '0' : '-1'"
@@ -21274,7 +21559,7 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
21274
21559
  </kendo-icon-wrapper>
21275
21560
  {{hintText}}
21276
21561
  </ng-template>
21277
- `, 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 });
21562
+ `, 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 });
21278
21563
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridComponent, decorators: [{
21279
21564
  type: Component,
21280
21565
  args: [{
@@ -21573,285 +21858,288 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
21573
21858
  [navigable]="navigation.toolbarEnabled"
21574
21859
  [attr.aria-controls]="ariaRootId"
21575
21860
  position="top"></kendo-grid-toolbar>
21576
- <kendo-pager
21577
- *ngIf="showTopPager"
21578
- [tabindex]="navigation.pagerEnabled ? '0' : '-1'"
21579
- [attr.role]="navigation.pagerEnabled ? 'application' : undefined"
21580
- class="k-grid-pager-top k-pager"
21581
- [template]="pagerTemplate"
21582
- [pageSize]="pageSize"
21583
- [total]="view.total"
21584
- [skip]="skip"
21585
- [size]="size"
21586
- [options]="pageable"
21587
- (pageChange)="notifyPageChange('pager', $event)">
21588
- </kendo-pager>
21589
- <kendo-grid-group-panel
21590
- *ngIf="showGroupPanel"
21591
- [navigable]="navigation.toolbarEnabled"
21592
- [text]="groupableEmptyText"
21593
- [groups]="group"
21594
- role="toolbar"
21595
- [attr.aria-label]="messageFor('groupPanelLabel')"
21596
- [attr.aria-controls]="ariaRootId"
21597
- (change)="groupChange.emit($event)">
21598
- </kendo-grid-group-panel>
21599
- <div #ariaRoot
21600
- class="k-grid-aria-root"
21601
- role="grid"
21602
- [id]="ariaRootId"
21603
- [attr.aria-label]="ariaLabel"
21604
- [attr.aria-rowcount]="ariaRowCount"
21605
- [attr.aria-colcount]="ariaColCount">
21606
- <ng-container *ngIf="isScrollable">
21607
- <div *ngIf="!hideHeader"
21608
- class="k-grid-header"
21609
- role="presentation"
21610
- [style.padding]="headerPadding">
21611
- <div *ngIf="isLocked"
21612
- #lockedHeader
21613
- role="presentation"
21614
- class="k-grid-header-locked"
21615
- [style.width.px]="lockedWidth">
21616
- <table
21617
- [locked]="true"
21861
+ <kendo-pager
21862
+ *ngIf="showTopPager"
21863
+ [tabindex]="navigation.pagerEnabled ? '0' : '-1'"
21864
+ [attr.role]="navigation.pagerEnabled ? 'application' : undefined"
21865
+ class="k-grid-pager-top k-pager"
21866
+ [template]="pagerTemplate"
21867
+ [pageSize]="pageSize"
21868
+ [total]="view.total"
21869
+ [skip]="skip"
21870
+ [size]="size"
21871
+ [options]="pageable"
21872
+ (pageChange)="notifyPageChange('pager', $event)">
21873
+ </kendo-pager>
21874
+ <kendo-grid-group-panel
21875
+ *ngIf="showGroupPanel"
21876
+ [navigable]="navigation.toolbarEnabled"
21877
+ [text]="groupableEmptyText"
21878
+ [groups]="group"
21879
+ role="toolbar"
21880
+ [attr.aria-label]="messageFor('groupPanelLabel')"
21881
+ [attr.aria-controls]="ariaRootId"
21882
+ (change)="groupChange.emit($event)">
21883
+ </kendo-grid-group-panel>
21884
+ <div #ariaRoot
21885
+ class="k-grid-aria-root"
21886
+ role="grid"
21887
+ [id]="ariaRootId"
21888
+ [attr.aria-label]="ariaLabel"
21889
+ [attr.aria-rowcount]="ariaRowCount"
21890
+ [attr.aria-colcount]="ariaColCount">
21891
+ <ng-container *ngIf="isScrollable">
21892
+ <div *ngIf="!hideHeader"
21893
+ class="k-grid-header"
21894
+ role="presentation"
21895
+ [style.padding]="headerPadding">
21896
+ <div *ngIf="isLocked"
21897
+ #lockedHeader
21618
21898
  role="presentation"
21619
- class="k-grid-header-table"
21620
- [style.width.px]="lockedWidth"
21621
- kendoGridTable
21622
- [size]="size">
21623
- <colgroup kendoGridColGroup
21899
+ class="k-grid-header-locked"
21900
+ [style.width.px]="lockedWidth">
21901
+ <table
21902
+ [locked]="true"
21624
21903
  role="presentation"
21625
- [columns]="$any(lockedLeafColumns)"
21626
- [groups]="group"
21627
- [detailTemplate]="detailTemplate">
21628
- </colgroup>
21629
- <thead kendoGridHeader
21630
- role="rowgroup"
21631
- [resizable]="resizable"
21632
- [scrollable]="true"
21633
- [columns]="$any(lockedColumns)"
21634
- [totalColumnLevels]="totalColumnLevels"
21635
- [sort]="sort"
21636
- [groups]="group"
21637
- [filter]="filter"
21638
- [filterable]="filterable"
21639
- [groupable]="showGroupPanel"
21640
- [reorderable]="reorderable"
21641
- [sortable]="sortable"
21642
- [columnMenu]="columnMenuOptions"
21643
- [columnMenuTemplate]="columnMenuTemplate"
21644
- [totalColumnsCount]="leafColumns.length"
21645
- [detailTemplate]="detailTemplate"
21646
- [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
21647
- </thead>
21648
- </table>
21649
- </div>
21650
- <div #header class="k-grid-header-wrap" role="presentation" data-scrollable
21651
- [kendoGridResizableContainer]="lockedLeafColumns.length > 0"
21652
- [lockedWidth]="lockedWidth + scrollbarWidth + 2">
21653
- <table
21654
- role="presentation"
21655
- class="k-grid-header-table"
21656
- [style.width.px]="nonLockedWidth"
21657
- [virtualColumns]="virtualColumns"
21658
- kendoGridTable
21659
- [size]="size">
21660
- <colgroup kendoGridColGroup
21904
+ class="k-grid-header-table"
21905
+ [style.width.px]="lockedWidth"
21906
+ kendoGridTable
21907
+ [size]="size">
21908
+ <colgroup kendoGridColGroup
21909
+ role="presentation"
21910
+ [columns]="$any(lockedLeafColumns)"
21911
+ [groups]="group"
21912
+ [detailTemplate]="detailTemplate">
21913
+ </colgroup>
21914
+ <thead kendoGridHeader
21915
+ role="rowgroup"
21916
+ [resizable]="resizable"
21917
+ [scrollable]="true"
21918
+ [columns]="$any(lockedColumns)"
21919
+ [totalColumnLevels]="totalColumnLevels"
21920
+ [sort]="sort"
21921
+ [groups]="group"
21922
+ [filter]="filter"
21923
+ [filterable]="filterable"
21924
+ [groupable]="showGroupPanel"
21925
+ [reorderable]="reorderable"
21926
+ [sortable]="sortable"
21927
+ [columnMenu]="columnMenuOptions"
21928
+ [columnMenuTemplate]="columnMenuTemplate"
21929
+ [totalColumnsCount]="leafColumns.length"
21930
+ [detailTemplate]="detailTemplate"
21931
+ [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
21932
+ </thead>
21933
+ </table>
21934
+ </div>
21935
+ <div #header class="k-grid-header-wrap" role="presentation" data-scrollable
21936
+ [kendoGridResizableContainer]="lockedLeafColumns.length > 0"
21937
+ [lockedWidth]="lockedWidth + scrollbarWidth + 2">
21938
+ <table
21661
21939
  role="presentation"
21662
- [columns]="headerLeafColumns"
21663
- [groups]="isLocked ? [] : group"
21664
- [detailTemplate]="detailTemplate">
21665
- </colgroup>
21666
- <thead kendoGridHeader
21667
- [resizable]="resizable"
21668
- role="rowgroup"
21669
- [scrollable]="true"
21670
- [columns]="headerColumns"
21671
- [totalColumnLevels]="totalColumnLevels"
21672
- [sort]="sort"
21673
- [filter]="filter"
21674
- [filterable]="filterable"
21675
- [groupable]="showGroupPanel"
21676
- [reorderable]="reorderable"
21677
- [groups]="isLocked ? [] : group"
21678
- [sortable]="sortable"
21679
- [columnMenu]="columnMenuOptions"
21680
- [columnMenuTemplate]="columnMenuTemplate"
21681
- [lockedColumnsCount]="lockedLeafColumns.length"
21682
- [totalColumnsCount]="leafColumns.length"
21683
- [detailTemplate]="detailTemplate"
21684
- [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
21685
- </thead>
21686
- </table>
21687
- <div *ngIf="virtualColumns" class="k-width-container" role="presentation">
21688
- <div [style.width.px]="columnsContainer.unlockedWidth"></div>
21940
+ class="k-grid-header-table"
21941
+ [style.width.px]="nonLockedWidth"
21942
+ [virtualColumns]="virtualColumns"
21943
+ kendoGridTable
21944
+ [size]="size">
21945
+ <colgroup kendoGridColGroup
21946
+ role="presentation"
21947
+ [columns]="headerLeafColumns"
21948
+ [groups]="isLocked ? [] : group"
21949
+ [detailTemplate]="detailTemplate">
21950
+ </colgroup>
21951
+ <thead kendoGridHeader
21952
+ [resizable]="resizable"
21953
+ role="rowgroup"
21954
+ [scrollable]="true"
21955
+ [columns]="headerColumns"
21956
+ [totalColumnLevels]="totalColumnLevels"
21957
+ [sort]="sort"
21958
+ [filter]="filter"
21959
+ [filterable]="filterable"
21960
+ [groupable]="showGroupPanel"
21961
+ [reorderable]="reorderable"
21962
+ [groups]="isLocked ? [] : group"
21963
+ [sortable]="sortable"
21964
+ [columnMenu]="columnMenuOptions"
21965
+ [columnMenuTemplate]="columnMenuTemplate"
21966
+ [lockedColumnsCount]="lockedLeafColumns.length"
21967
+ [totalColumnsCount]="leafColumns.length"
21968
+ [detailTemplate]="detailTemplate"
21969
+ [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
21970
+ </thead>
21971
+ </table>
21972
+ <div *ngIf="virtualColumns" class="k-width-container" role="presentation">
21973
+ <div [style.width.px]="columnsContainer.unlockedWidth"></div>
21974
+ </div>
21689
21975
  </div>
21690
21976
  </div>
21691
- </div>
21692
- <kendo-grid-list
21693
- kendoDragTargetContainer
21694
- kendoDropTargetContainer
21695
- mode="manual"
21696
- [dragDisabled]="!rowReorderable"
21697
- [dropDisabled]="!rowReorderable"
21698
- [dragTargetFilter]="getDefaultSelectors('dragTarget')"
21699
- [dropTargetFilter]="getDefaultSelectors('dropTarget')"
21700
- [dragHandle]="getDefaultSelectors('handle')"
21701
- [hint]="{hintTemplate: defaultHint}"
21702
- (onPress)="handleReorderEvents($event, 'press')"
21703
- (onDragStart)="handleReorderEvents($event, 'dragStart')"
21704
- (onDrag)="handleReorderEvents($event, 'drag')"
21705
- (onDragEnter)="handleReorderEvents($event, 'dragEnter')"
21706
- (onDragLeave)="handleReorderEvents($event, 'dragLeave')"
21707
- (onDragEnd)="handleReorderEvents($event, 'dragEnd')"
21708
- (onDrop)="handleReorderEvents($event, 'drop')"
21709
- [dragData]="gridData"
21710
- [data]="$any(view)"
21711
- [rowHeight]="rowHeight"
21712
- [detailRowHeight]="detailRowHeight"
21713
- [total]="totalCount"
21714
- [take]="pageSize"
21715
- [groups]="group"
21716
- [groupable]="groupable"
21717
- [skip]="skip"
21718
- [trackBy]="trackBy"
21719
- [columns]="columnsContainer"
21720
- [selectable]="selectable"
21721
- [filterable]="filterable"
21722
- [detailTemplate]="detailTemplate"
21723
- [noRecordsTemplate]="noRecordsTemplate"
21724
- [size]="size"
21725
- (pageChange)="notifyPageChange('list', $event)"
21726
- [rowClass]="rowClass"
21727
- [rowSticky]="rowSticky"
21728
- [loading]="loading"
21729
- [isVirtual]="isVirtual"
21730
- [cellLoadingTemplate]="cellLoadingTemplate?.templateRef"
21731
- [loadingTemplate]="loadingTemplate?.templateRef"
21732
- [virtualColumns]="virtualColumns"
21733
- (scrollBottom)="notifyScrollBottom()"
21734
- (contentScroll)="contentScroll.emit($event)"
21735
- kendoDraggable
21736
- kendoGridSelectionMarquee
21737
- [enableDrag]="marqueeSelection"
21738
- [sort]="sort"
21739
- >
21740
- </kendo-grid-list>
21741
- <div
21742
- *ngIf="showFooter"
21743
- class="k-grid-footer"
21744
- [style.padding]="headerPadding">
21745
- <div
21746
- *ngIf="lockedLeafColumns.length"
21747
- class="k-grid-footer-locked"
21748
- [style.width.px]="lockedWidth">
21749
- <table
21750
- role="presentation"
21751
- class="k-grid-footer-table"
21752
- [locked]="true"
21753
- [style.width.px]="lockedWidth"
21754
- kendoGridTable
21755
- [size]="size">
21756
- <colgroup kendoGridColGroup
21757
- [columns]="$any(lockedLeafColumns)"
21758
- [groups]="group"
21759
- [detailTemplate]="detailTemplate">
21760
- </colgroup>
21761
- <tfoot kendoGridFooter
21762
- [scrollable]="true"
21763
- [groups]="group"
21764
- [columns]="$any(lockedLeafColumns)"
21765
- [detailTemplate]="detailTemplate"
21766
- [logicalRowIndex]="ariaRowCount">
21767
- </tfoot>
21768
- </table>
21769
- </div>
21770
- <div #footer
21771
- class="k-grid-footer-wrap" data-scrollable
21772
- [kendoGridResizableContainer]="lockedLeafColumns.length > 0"
21773
- [lockedWidth]="lockedWidth + scrollbarWidth + 3">
21774
- <table
21775
- role="presentation"
21776
- class="k-grid-footer-table"
21777
- [style.width.px]="nonLockedWidth"
21778
- kendoGridTable
21779
- [size]="size">
21780
- <colgroup kendoGridColGroup
21781
- [columns]="$any(nonLockedLeafColumns)"
21782
- [groups]="isLocked ? [] : group"
21783
- [detailTemplate]="detailTemplate">
21784
- </colgroup>
21785
- <tfoot kendoGridFooter
21786
- [logicalRowIndex]="ariaRowCount"
21787
- [scrollable]="true"
21788
- [groups]="isLocked ? [] : group"
21789
- [columns]="$any(nonLockedLeafColumns)"
21790
- [lockedColumnsCount]="lockedLeafColumns.length"
21791
- [detailTemplate]="detailTemplate">
21792
- </tfoot>
21793
- </table>
21794
- </div>
21795
- </div>
21796
- </ng-container>
21797
- <ng-container *ngIf="!isScrollable">
21798
- <table
21799
- [style.table-layout]="resizable ? 'fixed' : null"
21800
- kendoGridTable
21801
- [size]="size">
21802
- <colgroup kendoGridColGroup
21803
- [columns]="$any(leafColumns)"
21804
- [groups]="group"
21805
- [detailTemplate]="detailTemplate">
21806
- </colgroup>
21807
- <thead kendoGridHeader
21808
- *ngIf="!hideHeader"
21809
- [resizable]="resizable"
21810
- [scrollable]="false"
21811
- [columns]="$any(visibleColumns)"
21812
- [totalColumnLevels]="totalColumnLevels"
21813
- [groups]="group"
21814
- [groupable]="showGroupPanel"
21815
- [reorderable]="reorderable"
21816
- [sort]="sort"
21817
- [sortable]="sortable"
21818
- [filter]="filter"
21819
- [filterable]="filterable"
21820
- [columnMenu]="columnMenuOptions"
21821
- [columnMenuTemplate]="columnMenuTemplate"
21822
- [detailTemplate]="detailTemplate"
21823
- [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
21824
- </thead>
21825
- <tbody kendoGridTableBody
21826
- [isLoading]="loading"
21827
- [groups]="group"
21977
+ <kendo-grid-list
21978
+ kendoDragTargetContainer
21979
+ kendoDropTargetContainer
21980
+ mode="manual"
21981
+ [dragDisabled]="!rowReorderable"
21982
+ [dropDisabled]="!rowReorderable"
21983
+ [dragTargetFilter]="getDefaultSelectors('dragTarget')"
21984
+ [dropTargetFilter]="getDefaultSelectors('dropTarget')"
21985
+ [dragHandle]="getDefaultSelectors('handle')"
21986
+ [hint]="{hintTemplate: defaultHint}"
21987
+ (onPress)="handleReorderEvents($event, 'press')"
21988
+ (onDragStart)="handleReorderEvents($event, 'dragStart')"
21989
+ (onDrag)="handleReorderEvents($event, 'drag')"
21990
+ (onDragEnter)="handleReorderEvents($event, 'dragEnter')"
21991
+ (onDragLeave)="handleReorderEvents($event, 'dragLeave')"
21992
+ (onDragEnd)="handleReorderEvents($event, 'dragEnd')"
21993
+ (onDrop)="handleReorderEvents($event, 'drop')"
21994
+ [dragData]="gridData"
21828
21995
  [data]="$any(view)"
21996
+ [rowHeight]="rowHeight"
21997
+ [detailRowHeight]="detailRowHeight"
21998
+ [total]="totalCount"
21999
+ [take]="pageSize"
22000
+ [groups]="group"
22001
+ [groupable]="groupable"
21829
22002
  [skip]="skip"
21830
- [columns]="$any(leafColumns)"
22003
+ [trackBy]="trackBy"
22004
+ [columns]="columnsContainer"
21831
22005
  [selectable]="selectable"
21832
22006
  [filterable]="filterable"
21833
- [noRecordsTemplate]="noRecordsTemplate"
21834
22007
  [detailTemplate]="detailTemplate"
21835
- [showGroupFooters]="showGroupFooters"
21836
- [trackBy]="trackBy"
22008
+ [noRecordsTemplate]="noRecordsTemplate"
22009
+ [size]="size"
22010
+ (pageChange)="notifyPageChange('list', $event)"
21837
22011
  [rowClass]="rowClass"
22012
+ [rowSticky]="rowSticky"
22013
+ [loading]="loading"
22014
+ [isVirtual]="isVirtual"
22015
+ [cellLoadingTemplate]="cellLoadingTemplate?.templateRef"
22016
+ [loadingTemplate]="loadingTemplate?.templateRef"
22017
+ [virtualColumns]="virtualColumns"
22018
+ (scrollBottom)="notifyScrollBottom()"
22019
+ (contentScroll)="contentScroll.emit($event)"
21838
22020
  kendoDraggable
21839
22021
  kendoGridSelectionMarquee
21840
- [enableDrag]="marqueeSelection">
21841
- </tbody>
21842
- <tfoot kendoGridFooter
22022
+ [enableDrag]="marqueeSelection"
22023
+ [sort]="sort">
22024
+ </kendo-grid-list>
22025
+ <div
21843
22026
  *ngIf="showFooter"
21844
- [scrollable]="false"
21845
- [logicalRowIndex]="ariaRowCount"
21846
- [groups]="group"
21847
- [columns]="$any(leafColumns)"
21848
- [detailTemplate]="detailTemplate">
21849
- </tfoot>
21850
- </table>
21851
- </ng-container>
21852
- <div [loadingTemplate]="loadingTemplate" *ngIf="loading" kendoGridLoading>
21853
- </div>
22027
+ class="k-grid-footer"
22028
+ [style.padding]="headerPadding">
22029
+ <div
22030
+ *ngIf="lockedLeafColumns.length"
22031
+ class="k-grid-footer-locked"
22032
+ [style.width.px]="lockedWidth">
22033
+ <table
22034
+ role="presentation"
22035
+ class="k-grid-footer-table"
22036
+ [locked]="true"
22037
+ [style.width.px]="lockedWidth"
22038
+ kendoGridTable
22039
+ [size]="size">
22040
+ <colgroup kendoGridColGroup
22041
+ [columns]="$any(lockedLeafColumns)"
22042
+ [groups]="group"
22043
+ [detailTemplate]="detailTemplate">
22044
+ </colgroup>
22045
+ <tfoot kendoGridFooter
22046
+ [scrollable]="true"
22047
+ [groups]="group"
22048
+ [columns]="$any(lockedLeafColumns)"
22049
+ [detailTemplate]="detailTemplate"
22050
+ [logicalRowIndex]="ariaRowCount">
22051
+ </tfoot>
22052
+ </table>
22053
+ </div>
22054
+ <div #footer
22055
+ class="k-grid-footer-wrap" data-scrollable
22056
+ [kendoGridResizableContainer]="lockedLeafColumns.length > 0"
22057
+ [lockedWidth]="lockedWidth + scrollbarWidth + 3">
22058
+ <table
22059
+ role="presentation"
22060
+ class="k-grid-footer-table"
22061
+ [style.width.px]="nonLockedWidth"
22062
+ kendoGridTable
22063
+ [size]="size">
22064
+ <colgroup kendoGridColGroup
22065
+ [columns]="$any(nonLockedLeafColumns)"
22066
+ [groups]="isLocked ? [] : group"
22067
+ [detailTemplate]="detailTemplate">
22068
+ </colgroup>
22069
+ <tfoot kendoGridFooter
22070
+ [logicalRowIndex]="ariaRowCount"
22071
+ [scrollable]="true"
22072
+ [groups]="isLocked ? [] : group"
22073
+ [columns]="$any(nonLockedLeafColumns)"
22074
+ [lockedColumnsCount]="lockedLeafColumns.length"
22075
+ [detailTemplate]="detailTemplate">
22076
+ </tfoot>
22077
+ </table>
22078
+ </div>
22079
+ </div>
22080
+ </ng-container>
22081
+ <ng-container *ngIf="!isScrollable">
22082
+ <table
22083
+ [style.table-layout]="resizable ? 'fixed' : null"
22084
+ kendoGridTable
22085
+ [size]="size">
22086
+ <colgroup kendoGridColGroup
22087
+ [columns]="$any(leafColumns)"
22088
+ [groups]="group"
22089
+ [detailTemplate]="detailTemplate">
22090
+ </colgroup>
22091
+ <thead kendoGridHeader
22092
+ *ngIf="!hideHeader"
22093
+ [resizable]="resizable"
22094
+ [scrollable]="false"
22095
+ [columns]="$any(visibleColumns)"
22096
+ [totalColumnLevels]="totalColumnLevels"
22097
+ [groups]="group"
22098
+ [groupable]="showGroupPanel"
22099
+ [reorderable]="reorderable"
22100
+ [sort]="sort"
22101
+ [sortable]="sortable"
22102
+ [filter]="filter"
22103
+ [filterable]="filterable"
22104
+ [columnMenu]="columnMenuOptions"
22105
+ [columnMenuTemplate]="columnMenuTemplate"
22106
+ [detailTemplate]="detailTemplate"
22107
+ [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
22108
+ </thead>
22109
+ <tbody kendoGridTableBody
22110
+ [isLoading]="loading"
22111
+ [groups]="group"
22112
+ [data]="$any(view)"
22113
+ [skip]="skip"
22114
+ [columns]="$any(leafColumns)"
22115
+ [selectable]="selectable"
22116
+ [filterable]="filterable"
22117
+ [noRecordsTemplate]="noRecordsTemplate"
22118
+ [detailTemplate]="detailTemplate"
22119
+ [showGroupFooters]="showGroupFooters"
22120
+ [trackBy]="trackBy"
22121
+ [rowClass]="rowClass"
22122
+ kendoDraggable
22123
+ kendoGridSelectionMarquee
22124
+ [enableDrag]="marqueeSelection">
22125
+ </tbody>
22126
+ <tfoot kendoGridFooter
22127
+ *ngIf="showFooter"
22128
+ [scrollable]="false"
22129
+ [logicalRowIndex]="ariaRowCount"
22130
+ [groups]="group"
22131
+ [columns]="$any(leafColumns)"
22132
+ [detailTemplate]="detailTemplate">
22133
+ </tfoot>
22134
+ </table>
22135
+ </ng-container>
22136
+ <div [loadingTemplate]="loadingTemplate" *ngIf="loading" kendoGridLoading></div>
21854
22137
  </div>
22138
+ <kendo-grid-status-bar
22139
+ *ngIf="showStatusBar"
22140
+ [selectableSettings]="selectable"
22141
+ [statusBarTemplate]="statusBarTemplate">
22142
+ </kendo-grid-status-bar>
21855
22143
  <kendo-pager
21856
22144
  *ngIf="showBottomPager"
21857
22145
  [tabindex]="navigation.pagerEnabled ? '0' : '-1'"
@@ -22034,6 +22322,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
22034
22322
  }], loadingTemplateChildren: [{
22035
22323
  type: ContentChildren,
22036
22324
  args: [LoadingTemplateDirective]
22325
+ }], statusBarTemplateChildren: [{
22326
+ type: ContentChildren,
22327
+ args: [StatusBarTemplateDirective]
22037
22328
  }], noRecordsTemplateChildren: [{
22038
22329
  type: ContentChildren,
22039
22330
  args: [NoRecordsTemplateDirective]
@@ -25355,6 +25646,7 @@ const exportedModules$1 = [
25355
25646
  ToolbarTemplateDirective,
25356
25647
  ToolbarComponent,
25357
25648
  GridSpacerComponent,
25649
+ StatusBarTemplateDirective,
25358
25650
  DataBindingDirective,
25359
25651
  SelectionDirective,
25360
25652
  CustomMessagesComponent,
@@ -25392,7 +25684,9 @@ const declarations$2 = [
25392
25684
  GroupBindingDirective,
25393
25685
  GridMarqueeDirective,
25394
25686
  GridSpacerComponent,
25395
- GridToolbarFocusableDirective
25687
+ GridToolbarFocusableDirective,
25688
+ StatusBarComponent,
25689
+ StatusBarTemplateDirective
25396
25690
  ];
25397
25691
  /**
25398
25692
  * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
@@ -25434,7 +25728,9 @@ GridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13
25434
25728
  GroupBindingDirective,
25435
25729
  GridMarqueeDirective,
25436
25730
  GridSpacerComponent,
25437
- GridToolbarFocusableDirective], imports: [CommonModule,
25731
+ GridToolbarFocusableDirective,
25732
+ StatusBarComponent,
25733
+ StatusBarTemplateDirective], imports: [CommonModule,
25438
25734
  GroupModule,
25439
25735
  SharedModule,
25440
25736
  BodyModule,
@@ -25449,6 +25745,7 @@ GridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13
25449
25745
  ToolbarTemplateDirective,
25450
25746
  ToolbarComponent,
25451
25747
  GridSpacerComponent,
25748
+ StatusBarTemplateDirective,
25452
25749
  DataBindingDirective,
25453
25750
  SelectionDirective,
25454
25751
  CustomMessagesComponent,
@@ -26346,5 +26643,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
26346
26643
  * Generated bundle index. Do not edit.
26347
26644
  */
26348
26645
 
26349
- 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 };
26646
+ 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 };
26350
26647