@progress/kendo-angular-grid 16.10.0 → 16.10.1-develop.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11,7 +11,7 @@ import * as i1 from '@angular/platform-browser';
11
11
  import * as i1$1 from '@progress/kendo-angular-icons';
12
12
  import { IconWrapperComponent, IconsService, KENDO_ICONS } from '@progress/kendo-angular-icons';
13
13
  import { plusIcon, cancelIcon, lockIcon, unlockIcon, caretAltDownIcon, caretAltRightIcon, caretAltLeftIcon, arrowLeftIcon, arrowRightIcon, sortDescSmallIcon, sortAscSmallIcon, filterClearIcon, filterIcon, columnsIcon, chevronUpIcon, chevronDownIcon, displayInlineFlexIcon, maxWidthIcon, stickIcon, unstickIcon, setColumnPositionIcon, slidersIcon, moreVerticalIcon, reorderIcon, minusIcon, caretAltToLeftIcon, caretAltToRightIcon, insertMiddleIcon } from '@progress/kendo-svg-icons';
14
- import { switchMap, take, map, filter, takeUntil, switchMapTo, delay, tap, throttleTime, debounceTime, distinctUntilChanged, auditTime, bufferCount } from 'rxjs/operators';
14
+ import { switchMap, take, map, filter, takeUntil, switchMapTo, delay, tap, throttleTime, debounceTime, distinctUntilChanged, skip, auditTime, bufferCount } from 'rxjs/operators';
15
15
  import * as i1$2 from '@progress/kendo-angular-l10n';
16
16
  import { ComponentMessages, LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';
17
17
  import { orderBy, isCompositeFilterDescriptor, groupBy, process, filterBy } from '@progress/kendo-data-query';
@@ -6559,7 +6559,8 @@ class SinglePopupService {
6559
6559
  */
6560
6560
  this.onClose = new Subject();
6561
6561
  this.pointerEventsSub = new Subscription();
6562
- this.scrollSubscription = scrollSyncService.changes.subscribe(() => this.destroy());
6562
+ this.canClosePopup = true;
6563
+ this.scrollSubscription = scrollSyncService.changes.pipe(skip(1)).subscribe(() => this.destroy());
6563
6564
  }
6564
6565
  /**
6565
6566
  * @hidden
@@ -8926,6 +8927,9 @@ class FilterMenuComponent {
8926
8927
  this.filterIcon = filterIcon;
8927
8928
  this.tabIndex = '-1';
8928
8929
  }
8930
+ ngOnDestroy() {
8931
+ this.cleanUp();
8932
+ }
8929
8933
  get hasFilters() {
8930
8934
  return filtersByField(this.filter, (this.column || {}).field).length > 0;
8931
8935
  }
@@ -8949,12 +8953,15 @@ class FilterMenuComponent {
8949
8953
  // automatically when the Popup is closed by clicking outside the anchor
8950
8954
  const ariaRoot = this.isNavigable ? anchor.closest('.k-table-th') : anchor;
8951
8955
  if (this.popupRef) {
8952
- this.popupRef.popup.instance.close.pipe(take(1)).subscribe(() => {
8953
- this.popupRef = null;
8954
- const ariaRoot = this.isNavigable ? anchor.closest('.k-table-th') : anchor;
8955
- ariaRoot && this.renderer.removeAttribute(ariaRoot, 'aria-controls');
8956
- ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-expanded', 'false');
8956
+ this.popupSubs?.unsubscribe();
8957
+ this.popupSubs = this.popupRef.popup.instance.anchorViewportLeave.subscribe(() => {
8958
+ this.close();
8959
+ this.updateAria(ariaRoot);
8957
8960
  });
8961
+ this.popupSubs.add(this.popupRef.popup.instance.close.subscribe(() => {
8962
+ this.popupRef = null;
8963
+ this.updateAria(ariaRoot);
8964
+ }));
8958
8965
  const popupAriaElement = this.popupRef.popupElement.querySelector('.k-grid-filter-popup');
8959
8966
  if (popupAriaElement) {
8960
8967
  const popupId = getId$1(this.idService?.gridId());
@@ -8976,9 +8983,7 @@ class FilterMenuComponent {
8976
8983
  return false;
8977
8984
  }
8978
8985
  close() {
8979
- this.popupService.destroy();
8980
- this.popupRef = null;
8981
- this.cdr.markForCheck();
8986
+ this.cleanUp();
8982
8987
  if (this.navigationService.tableEnabled) {
8983
8988
  this.navigationService.focusCell(0, this.column.leafIndex);
8984
8989
  }
@@ -8986,6 +8991,17 @@ class FilterMenuComponent {
8986
8991
  this.anchor.nativeElement.focus();
8987
8992
  }
8988
8993
  }
8994
+ updateAria(ariaRoot) {
8995
+ ariaRoot && this.renderer.removeAttribute(ariaRoot, 'aria-controls');
8996
+ ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-expanded', 'false');
8997
+ }
8998
+ cleanUp() {
8999
+ this.popupService.destroy();
9000
+ this.popupRef = null;
9001
+ this.popupSubs?.unsubscribe();
9002
+ this.popupSubs = null;
9003
+ this.cdr.markForCheck();
9004
+ }
8989
9005
  }
8990
9006
  FilterMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FilterMenuComponent, deps: [{ token: FilterService }, { token: SinglePopupService }, { token: ContextService }, { token: NavigationService }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: IdService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
8991
9007
  FilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: FilterMenuComponent, isStandalone: true, selector: "kendo-grid-filter-menu", inputs: { column: "column", filter: "filter", tabIndex: "tabIndex" }, viewQueries: [{ propertyName: "anchor", first: true, predicate: ["anchor"], descendants: true, static: true }, { propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: `
@@ -12099,6 +12115,8 @@ class ColumnMenuComponent {
12099
12115
  ngOnDestroy() {
12100
12116
  this.close();
12101
12117
  this.closeSubscription.unsubscribe();
12118
+ this.popupSubs?.unsubscribe();
12119
+ this.closeSubscription = this.popupSubs = null;
12102
12120
  }
12103
12121
  /**
12104
12122
  * @hidden
@@ -12106,7 +12124,7 @@ class ColumnMenuComponent {
12106
12124
  toggle(e, anchor, template) {
12107
12125
  if (e) {
12108
12126
  e.preventDefault();
12109
- e.stopImmediatePropagation();
12127
+ e instanceof KeyboardEvent && e.stopImmediatePropagation();
12110
12128
  }
12111
12129
  this.expandedFilter = this.getExpandedState(this.settings.filter);
12112
12130
  this.expandedColumns = this.getExpandedState(this.settings.columnChooser);
@@ -12116,12 +12134,18 @@ class ColumnMenuComponent {
12116
12134
  // automatically when the Popup is closed by clicking outside the anchor
12117
12135
  const ariaRoot = this.isNavigable ? anchor.closest('.k-table-th') : anchor;
12118
12136
  if (this.popupRef) {
12119
- this.popupRef.popup.instance.close.pipe(take(1)).subscribe(() => {
12120
- this.popupRef = null;
12121
- const ariaRoot = this.isNavigable ? anchor.closest('.k-table-th') : anchor;
12122
- ariaRoot && this.renderer.removeAttribute(ariaRoot, 'aria-controls');
12123
- ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-expanded', 'false');
12137
+ this.popupSubs?.unsubscribe();
12138
+ this.popupSubs = this.popupRef.popup.instance.anchorViewportLeave.subscribe(() => {
12139
+ this.popupSubs?.unsubscribe();
12140
+ this.popupSubs = null;
12141
+ this.close(true);
12142
+ this.updateAria(ariaRoot);
12124
12143
  });
12144
+ this.popupSubs.add(this.popupRef.popup.instance.close.subscribe(() => {
12145
+ this.popupSubs?.unsubscribe();
12146
+ this.popupSubs = this.popupRef = null;
12147
+ this.updateAria(ariaRoot);
12148
+ }));
12125
12149
  const popupAriaElement = this.popupRef.popupElement.querySelector('.k-grid-columnmenu-popup');
12126
12150
  if (popupAriaElement) {
12127
12151
  const popupId = getId(this.idService?.gridId());
@@ -12175,6 +12199,10 @@ class ColumnMenuComponent {
12175
12199
  getExpandedState(menuItemSettings) {
12176
12200
  return typeof (menuItemSettings) === 'object' ? menuItemSettings.expanded : false;
12177
12201
  }
12202
+ updateAria(ariaRoot) {
12203
+ ariaRoot && this.renderer.removeAttribute(ariaRoot, 'aria-controls');
12204
+ ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-expanded', 'false');
12205
+ }
12178
12206
  }
12179
12207
  ColumnMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ColumnMenuComponent, deps: [{ token: NavigationService }, { token: SinglePopupService }, { token: ColumnMenuService }, { token: ContextService }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: ColumnInfoService }, { token: IdService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
12180
12208
  ColumnMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ColumnMenuComponent, isStandalone: true, selector: "kendo-grid-column-menu", inputs: { standalone: "standalone", column: "column", settings: "settings", sort: "sort", filter: "filter", sortable: "sortable", columnMenuTemplate: "columnMenuTemplate", tabIndex: "tabIndex" }, host: { properties: { "class.k-grid-column-menu-standalone": "this.standalone" } }, providers: [
@@ -13866,6 +13894,10 @@ class CellSelectionAggregateService {
13866
13894
  earliest: null,
13867
13895
  latest: null
13868
13896
  };
13897
+ this.sub = new Subscription();
13898
+ }
13899
+ ngOnDestroy() {
13900
+ this.sub.unsubscribe();
13869
13901
  }
13870
13902
  isAggregateIncluded(aggregate) {
13871
13903
  const { cellAggregates } = this.ctx.grid.selectable;
@@ -13875,8 +13907,15 @@ class CellSelectionAggregateService {
13875
13907
  return true;
13876
13908
  }
13877
13909
  init() {
13910
+ this.sub.add(this.ctx.grid.dataStateChange.subscribe(_ => {
13911
+ // nullifies aggregates and sets default count to avoid mismatching state -
13912
+ // https://github.com/telerik/kendo-angular-private/issues/2964
13913
+ this.nullifyAggregates();
13914
+ if (this.isAggregateIncluded('count')) {
13915
+ this.aggregates['count'] = 0;
13916
+ }
13917
+ }));
13878
13918
  if (this.ctx.grid.selectable.cellAggregates) {
13879
- this.data = this.dataChanges.data ? this.dataChanges.data : this.ctx.grid.data;
13880
13919
  if (this.isAggregateIncluded('count')) {
13881
13920
  this.aggregates['count'] = 0;
13882
13921
  }
@@ -13915,10 +13954,12 @@ class CellSelectionAggregateService {
13915
13954
  });
13916
13955
  }
13917
13956
  else if (!this.isRowSelection) {
13918
- const itemKey = this.data[item.itemKey];
13957
+ // Enables working with the current Grid data regardless of its form (array, GridDataResult, GroupedResult).
13958
+ // Currently gets the item by index only - https://github.com/telerik/kendo-angular-private/issues/2964
13959
+ const selectedItem = this.ctx.grid.flatData.flatMap(recursiveFlatMap)[item.itemKey];
13919
13960
  const field = fields[item.columnKey];
13920
- if (itemKey && itemKey.hasOwnProperty(field)) {
13921
- const cellValue = itemKey[fields[item.columnKey]];
13961
+ if (selectedItem && selectedItem.hasOwnProperty(field)) {
13962
+ const cellValue = selectedItem[fields[item.columnKey]];
13922
13963
  this.groupAggregates(cellValue);
13923
13964
  }
13924
13965
  }
@@ -19368,8 +19409,8 @@ const packageMetadata = {
19368
19409
  name: '@progress/kendo-angular-grid',
19369
19410
  productName: 'Kendo UI for Angular',
19370
19411
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
19371
- publishDate: 1727163888,
19372
- version: '16.10.0',
19412
+ publishDate: 1727268020,
19413
+ version: '16.10.1-develop.2',
19373
19414
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
19374
19415
  };
19375
19416
 
@@ -23371,6 +23412,12 @@ class GridComponent {
23371
23412
  }
23372
23413
  }
23373
23414
  }
23415
+ ngAfterContentInit() {
23416
+ this.shouldGenerateColumns = !this.columns.length;
23417
+ this.autoGenerateColumns();
23418
+ this.columnList = new ColumnList(this.columns);
23419
+ this.columnsChangeSubscription = this.columns.changes.subscribe(() => this.verifySettings());
23420
+ }
23374
23421
  ngAfterViewInit() {
23375
23422
  this.attachScrollSync();
23376
23423
  this.attachElementEventHandlers();
@@ -23382,12 +23429,6 @@ class GridComponent {
23382
23429
  this.verifySettings();
23383
23430
  this.initSelectionService();
23384
23431
  }
23385
- ngAfterContentInit() {
23386
- this.shouldGenerateColumns = !this.columns.length;
23387
- this.autoGenerateColumns();
23388
- this.columnList = new ColumnList(this.columns);
23389
- this.columnsChangeSubscription = this.columns.changes.subscribe(() => this.verifySettings());
23390
- }
23391
23432
  ngOnInit() {
23392
23433
  if (this.navigable.length) {
23393
23434
  this.navigationService.init(this.navigationMetadata(), this.navigable);
@@ -23797,6 +23838,12 @@ class GridComponent {
23797
23838
  handleReorderEvents(ev, evType) {
23798
23839
  this.rowReorderService[evType](ev);
23799
23840
  }
23841
+ /**
23842
+ * @hidden
23843
+ */
23844
+ get flatData() {
23845
+ return isArray(this.data) ? this.data : this.data.data;
23846
+ }
23800
23847
  /**
23801
23848
  * @hidden
23802
23849
  */
@@ -24317,9 +24364,6 @@ class GridComponent {
24317
24364
  this.dragTargetContainer?.notify();
24318
24365
  this.dropTargetContainer?.notify();
24319
24366
  }
24320
- get flatData() {
24321
- return isArray(this.data) ? this.data : this.data.data;
24322
- }
24323
24367
  }
24324
24368
  GridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GridComponent, deps: [{ token: BrowserSupportService }, { token: SelectionService }, { token: CellSelectionService }, { token: i0.ElementRef }, { token: GroupInfoService }, { token: GroupsService }, { token: ChangeNotificationService }, { token: DetailsService }, { token: EditService }, { token: FilterService }, { token: PDFService }, { token: ResponsiveService }, { token: i0.Renderer2 }, { token: ExcelService }, { token: i0.NgZone }, { token: ScrollSyncService }, { token: DomEventsService }, { token: ColumnResizingService }, { token: i0.ChangeDetectorRef }, { token: ColumnReorderService }, { token: ColumnInfoService }, { token: NavigationService }, { token: SortService }, { token: ScrollRequestService }, { token: i1$2.LocalizationService }, { token: ContextService }, { token: SizingOptionsService }, { token: RowReorderService }], target: i0.ɵɵFactoryTarget.Component });
24325
24369
  GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GridComponent, isStandalone: true, selector: "kendo-grid", inputs: { data: "data", pageSize: "pageSize", height: "height", rowHeight: "rowHeight", detailRowHeight: "detailRowHeight", skip: "skip", scrollable: "scrollable", selectable: "selectable", sort: "sort", size: "size", trackBy: "trackBy", filter: "filter", group: "group", virtualColumns: "virtualColumns", filterable: "filterable", sortable: "sortable", pageable: "pageable", groupable: "groupable", rowReorderable: "rowReorderable", navigable: "navigable", navigatable: "navigatable", autoSize: "autoSize", rowClass: "rowClass", rowSticky: "rowSticky", rowSelected: "rowSelected", cellSelected: "cellSelected", resizable: "resizable", reorderable: "reorderable", loading: "loading", columnMenu: "columnMenu", hideHeader: "hideHeader", isDetailExpanded: "isDetailExpanded", isGroupExpanded: "isGroupExpanded" }, outputs: { filterChange: "filterChange", pageChange: "pageChange", groupChange: "groupChange", sortChange: "sortChange", selectionChange: "selectionChange", rowReorder: "rowReorder", dataStateChange: "dataStateChange", groupExpand: "groupExpand", groupCollapse: "groupCollapse", detailExpand: "detailExpand", detailCollapse: "detailCollapse", edit: "edit", cancel: "cancel", save: "save", remove: "remove", add: "add", cellClose: "cellClose", cellClick: "cellClick", pdfExport: "pdfExport", excelExport: "excelExport", columnResize: "columnResize", columnReorder: "columnReorder", columnVisibilityChange: "columnVisibilityChange", columnLockedChange: "columnLockedChange", columnStickyChange: "columnStickyChange", scrollBottom: "scrollBottom", contentScroll: "contentScroll" }, host: { properties: { "attr.dir": "this.dir", "class.k-grid": "this.hostClass", "class.k-grid-sm": "this.sizeSmallClass", "class.k-grid-md": "this.sizeMediumClass", "class.k-grid-lockedcolumns": "this.lockedClasses", "class.k-grid-virtual": "this.virtualClasses", "class.k-grid-no-scrollbar": "this.noScrollbarClass" } }, providers: [
@@ -24627,293 +24671,293 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
24627
24671
  [navigable]="navigation.toolbarEnabled"
24628
24672
  [attr.aria-controls]="ariaRootId"
24629
24673
  position="top"></kendo-grid-toolbar>
24630
- <kendo-pager
24631
- *ngIf="showTopPager"
24632
- [tabindex]="navigation.pagerEnabled ? '0' : '-1'"
24633
- [attr.role]="navigation.pagerEnabled ? 'application' : undefined"
24634
- class="k-grid-pager-top k-pager"
24635
- [template]="pagerTemplate"
24636
- [pageSize]="pageSize"
24637
- [total]="view.total"
24638
- [skip]="skip"
24639
- [size]="size"
24640
- [options]="pageable"
24641
- (pageChange)="notifyPageChange('pager', $event)">
24642
- </kendo-pager>
24643
- <kendo-grid-group-panel
24644
- *ngIf="showGroupPanel"
24645
- [navigable]="navigation.toolbarEnabled"
24646
- [text]="groupableEmptyText"
24647
- [groups]="group"
24648
- role="toolbar"
24649
- [attr.aria-label]="messageFor('groupPanelLabel')"
24650
- [attr.aria-controls]="ariaRootId"
24651
- (change)="groupChange.emit($event)">
24652
- </kendo-grid-group-panel>
24653
- <div #ariaRoot
24654
- class="k-grid-aria-root"
24655
- role="grid"
24656
- kendoDragTargetContainer
24657
- kendoDropTargetContainer
24658
- mode="manual"
24659
- [dragDisabled]="!rowReorderable"
24660
- [dropDisabled]="!rowReorderable"
24661
- [dragTargetFilter]="getDefaultSelectors('dragTarget')"
24662
- [dropTargetFilter]="getDefaultSelectors('dropTarget')"
24663
- [dragHandle]="getDefaultSelectors('handle')"
24664
- [hint]="{hintTemplate: defaultHint}"
24665
- (onPress)="handleReorderEvents($event, 'press')"
24666
- (onDragStart)="handleReorderEvents($event, 'dragStart')"
24667
- (onDrag)="handleReorderEvents($event, 'drag')"
24668
- (onDragEnter)="handleReorderEvents($event, 'dragEnter')"
24669
- (onDragLeave)="handleReorderEvents($event, 'dragLeave')"
24670
- (onDragEnd)="handleReorderEvents($event, 'dragEnd')"
24671
- (onDrop)="handleReorderEvents($event, 'drop')"
24672
- [dragData]="gridData"
24673
- [id]="ariaRootId"
24674
- [attr.aria-label]="ariaLabel"
24675
- [attr.aria-rowcount]="ariaRowCount"
24676
- [attr.aria-colcount]="ariaColCount">
24677
- <ng-container *ngIf="isScrollable">
24678
- <div *ngIf="!hideHeader"
24679
- class="k-grid-header"
24674
+ <kendo-pager
24675
+ *ngIf="showTopPager"
24676
+ [tabindex]="navigation.pagerEnabled ? '0' : '-1'"
24677
+ [attr.role]="navigation.pagerEnabled ? 'application' : undefined"
24678
+ class="k-grid-pager-top k-pager"
24679
+ [template]="pagerTemplate"
24680
+ [pageSize]="pageSize"
24681
+ [total]="view.total"
24682
+ [skip]="skip"
24683
+ [size]="size"
24684
+ [options]="pageable"
24685
+ (pageChange)="notifyPageChange('pager', $event)">
24686
+ </kendo-pager>
24687
+ <kendo-grid-group-panel
24688
+ *ngIf="showGroupPanel"
24689
+ [navigable]="navigation.toolbarEnabled"
24690
+ [text]="groupableEmptyText"
24691
+ [groups]="group"
24692
+ role="toolbar"
24693
+ [attr.aria-label]="messageFor('groupPanelLabel')"
24694
+ [attr.aria-controls]="ariaRootId"
24695
+ (change)="groupChange.emit($event)">
24696
+ </kendo-grid-group-panel>
24697
+ <div #ariaRoot
24698
+ class="k-grid-aria-root"
24699
+ role="grid"
24700
+ kendoDragTargetContainer
24701
+ kendoDropTargetContainer
24702
+ mode="manual"
24703
+ [dragDisabled]="!rowReorderable"
24704
+ [dropDisabled]="!rowReorderable"
24705
+ [dragTargetFilter]="getDefaultSelectors('dragTarget')"
24706
+ [dropTargetFilter]="getDefaultSelectors('dropTarget')"
24707
+ [dragHandle]="getDefaultSelectors('handle')"
24708
+ [hint]="{hintTemplate: defaultHint}"
24709
+ (onPress)="handleReorderEvents($event, 'press')"
24710
+ (onDragStart)="handleReorderEvents($event, 'dragStart')"
24711
+ (onDrag)="handleReorderEvents($event, 'drag')"
24712
+ (onDragEnter)="handleReorderEvents($event, 'dragEnter')"
24713
+ (onDragLeave)="handleReorderEvents($event, 'dragLeave')"
24714
+ (onDragEnd)="handleReorderEvents($event, 'dragEnd')"
24715
+ (onDrop)="handleReorderEvents($event, 'drop')"
24716
+ [dragData]="gridData"
24717
+ [id]="ariaRootId"
24718
+ [attr.aria-label]="ariaLabel"
24719
+ [attr.aria-rowcount]="ariaRowCount"
24720
+ [attr.aria-colcount]="ariaColCount">
24721
+ <ng-container *ngIf="isScrollable">
24722
+ <div *ngIf="!hideHeader"
24723
+ class="k-grid-header"
24724
+ role="presentation"
24725
+ [style.padding]="headerPadding">
24726
+ <div *ngIf="isLocked"
24727
+ #lockedHeader
24680
24728
  role="presentation"
24681
- [style.padding]="headerPadding">
24682
- <div *ngIf="isLocked"
24683
- #lockedHeader
24729
+ class="k-grid-header-locked"
24730
+ [style.width.px]="lockedWidth">
24731
+ <table
24732
+ kendoGridResizableTable
24733
+ [locked]="true"
24684
24734
  role="presentation"
24685
- class="k-grid-header-locked"
24686
- [style.width.px]="lockedWidth">
24687
- <table
24688
- kendoGridResizableTable
24689
- [locked]="true"
24690
- role="presentation"
24691
- class="k-grid-header-table"
24692
- [style.width.px]="lockedWidth"
24693
- kendoGridTable
24694
- [size]="size">
24695
- <colgroup kendoGridColGroup
24696
- [columns]="$any(lockedLeafColumns)"
24697
- [groups]="group"
24698
- [detailTemplate]="detailTemplate">
24699
- </colgroup>
24700
- <thead kendoGridHeader
24701
- role="rowgroup"
24702
- [resizable]="resizable"
24703
- [scrollable]="true"
24704
- [columns]="$any(lockedColumns)"
24705
- [totalColumnLevels]="totalColumnLevels"
24706
- [sort]="sort"
24707
- [groups]="group"
24708
- [filter]="filter"
24709
- [filterable]="filterable"
24710
- [groupable]="showGroupPanel"
24711
- [reorderable]="reorderable"
24712
- [sortable]="sortable"
24713
- [columnMenu]="columnMenuOptions"
24714
- [columnMenuTemplate]="columnMenuTemplate"
24715
- [totalColumnsCount]="leafColumns.length"
24716
- [totalColumns]="columnsContainer"
24717
- [detailTemplate]="detailTemplate"
24718
- [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
24719
- </thead>
24720
- </table>
24721
- </div>
24722
- <div #header class="k-grid-header-wrap" role="presentation" data-scrollable
24723
- [kendoGridResizableContainer]="lockedLeafColumns.length > 0"
24724
- [lockedWidth]="lockedWidth + scrollbarWidth + 2">
24725
- <table
24726
- role="presentation"
24727
- class="k-grid-header-table"
24728
- [style.width.px]="nonLockedWidth"
24729
- kendoGridResizableTable
24730
- [virtualColumns]="virtualColumns"
24731
- kendoGridTable
24732
- [size]="size">
24733
- <colgroup kendoGridColGroup
24734
- [columns]="headerLeafColumns"
24735
- [groups]="isLocked ? [] : group"
24736
- [detailTemplate]="detailTemplate">
24737
- </colgroup>
24738
- <thead kendoGridHeader
24739
- [resizable]="resizable"
24740
- role="rowgroup"
24741
- [scrollable]="true"
24742
- [columns]="headerColumns"
24743
- [totalColumnLevels]="totalColumnLevels"
24744
- [sort]="sort"
24745
- [filter]="filter"
24746
- [filterable]="filterable"
24747
- [groupable]="showGroupPanel"
24748
- [reorderable]="reorderable"
24749
- [groups]="isLocked ? [] : group"
24750
- [sortable]="sortable"
24751
- [columnMenu]="columnMenuOptions"
24752
- [columnMenuTemplate]="columnMenuTemplate"
24753
- [lockedColumnsCount]="lockedLeafColumns.length"
24754
- [totalColumnsCount]="leafColumns.length"
24755
- [totalColumns]="columnsContainer"
24756
- [detailTemplate]="detailTemplate"
24757
- [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
24758
- </thead>
24759
- </table>
24760
- <div *ngIf="virtualColumns" class="k-width-container" role="presentation">
24761
- <div [style.width.px]="columnsContainer.unlockedWidth"></div>
24762
- </div>
24735
+ class="k-grid-header-table"
24736
+ [style.width.px]="lockedWidth"
24737
+ kendoGridTable
24738
+ [size]="size">
24739
+ <colgroup kendoGridColGroup
24740
+ [columns]="$any(lockedLeafColumns)"
24741
+ [groups]="group"
24742
+ [detailTemplate]="detailTemplate">
24743
+ </colgroup>
24744
+ <thead kendoGridHeader
24745
+ role="rowgroup"
24746
+ [resizable]="resizable"
24747
+ [scrollable]="true"
24748
+ [columns]="$any(lockedColumns)"
24749
+ [totalColumnLevels]="totalColumnLevels"
24750
+ [sort]="sort"
24751
+ [groups]="group"
24752
+ [filter]="filter"
24753
+ [filterable]="filterable"
24754
+ [groupable]="showGroupPanel"
24755
+ [reorderable]="reorderable"
24756
+ [sortable]="sortable"
24757
+ [columnMenu]="columnMenuOptions"
24758
+ [columnMenuTemplate]="columnMenuTemplate"
24759
+ [totalColumnsCount]="leafColumns.length"
24760
+ [totalColumns]="columnsContainer"
24761
+ [detailTemplate]="detailTemplate"
24762
+ [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
24763
+ </thead>
24764
+ </table>
24765
+ </div>
24766
+ <div #header class="k-grid-header-wrap" role="presentation" data-scrollable
24767
+ [kendoGridResizableContainer]="lockedLeafColumns.length > 0"
24768
+ [lockedWidth]="lockedWidth + scrollbarWidth + 2">
24769
+ <table
24770
+ role="presentation"
24771
+ class="k-grid-header-table"
24772
+ [style.width.px]="nonLockedWidth"
24773
+ kendoGridResizableTable
24774
+ [virtualColumns]="virtualColumns"
24775
+ kendoGridTable
24776
+ [size]="size">
24777
+ <colgroup kendoGridColGroup
24778
+ [columns]="headerLeafColumns"
24779
+ [groups]="isLocked ? [] : group"
24780
+ [detailTemplate]="detailTemplate">
24781
+ </colgroup>
24782
+ <thead kendoGridHeader
24783
+ [resizable]="resizable"
24784
+ role="rowgroup"
24785
+ [scrollable]="true"
24786
+ [columns]="headerColumns"
24787
+ [totalColumnLevels]="totalColumnLevels"
24788
+ [sort]="sort"
24789
+ [filter]="filter"
24790
+ [filterable]="filterable"
24791
+ [groupable]="showGroupPanel"
24792
+ [reorderable]="reorderable"
24793
+ [groups]="isLocked ? [] : group"
24794
+ [sortable]="sortable"
24795
+ [columnMenu]="columnMenuOptions"
24796
+ [columnMenuTemplate]="columnMenuTemplate"
24797
+ [lockedColumnsCount]="lockedLeafColumns.length"
24798
+ [totalColumnsCount]="leafColumns.length"
24799
+ [totalColumns]="columnsContainer"
24800
+ [detailTemplate]="detailTemplate"
24801
+ [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
24802
+ </thead>
24803
+ </table>
24804
+ <div *ngIf="virtualColumns" class="k-width-container" role="presentation">
24805
+ <div [style.width.px]="columnsContainer.unlockedWidth"></div>
24763
24806
  </div>
24764
24807
  </div>
24765
- <kendo-grid-list
24766
- [data]="$any(view)"
24767
- [rowHeight]="rowHeight"
24768
- [detailRowHeight]="detailRowHeight"
24769
- [total]="totalCount"
24770
- [take]="pageSize"
24808
+ </div>
24809
+ <kendo-grid-list
24810
+ [data]="$any(view)"
24811
+ [rowHeight]="rowHeight"
24812
+ [detailRowHeight]="detailRowHeight"
24813
+ [total]="totalCount"
24814
+ [take]="pageSize"
24815
+ [groups]="group"
24816
+ [groupable]="groupable"
24817
+ [skip]="skip"
24818
+ [trackBy]="trackBy"
24819
+ [columns]="columnsContainer"
24820
+ [selectable]="selectable"
24821
+ [filterable]="filterable"
24822
+ [detailTemplate]="detailTemplate"
24823
+ [noRecordsTemplate]="noRecordsTemplate"
24824
+ [size]="size"
24825
+ (pageChange)="notifyPageChange('list', $event)"
24826
+ [rowClass]="rowClass"
24827
+ [rowSticky]="rowSticky"
24828
+ [loading]="loading"
24829
+ [isVirtual]="isVirtual"
24830
+ [cellLoadingTemplate]="cellLoadingTemplate?.templateRef"
24831
+ [loadingTemplate]="loadingTemplate?.templateRef"
24832
+ [virtualColumns]="virtualColumns"
24833
+ (scrollBottom)="notifyScrollBottom()"
24834
+ (contentScroll)="contentScroll.emit($event)"
24835
+ kendoDraggable
24836
+ kendoGridSelectionMarquee
24837
+ [enableDrag]="marqueeSelection"
24838
+ [sort]="sort">
24839
+ </kendo-grid-list>
24840
+ <div
24841
+ *ngIf="showFooter"
24842
+ class="k-grid-footer"
24843
+ [style.padding]="headerPadding">
24844
+ <div
24845
+ *ngIf="lockedLeafColumns.length"
24846
+ class="k-grid-footer-locked"
24847
+ [style.width.px]="lockedWidth">
24848
+ <table
24849
+ role="presentation"
24850
+ class="k-grid-footer-table"
24851
+ kendoGridResizableTable
24852
+ [locked]="true"
24853
+ [style.width.px]="lockedWidth"
24854
+ kendoGridTable
24855
+ [size]="size">
24856
+ <colgroup kendoGridColGroup
24857
+ [columns]="$any(lockedLeafColumns)"
24858
+ [groups]="group"
24859
+ [detailTemplate]="detailTemplate">
24860
+ </colgroup>
24861
+ <tfoot kendoGridFooter
24862
+ [scrollable]="true"
24863
+ [groups]="group"
24864
+ [columns]="$any(lockedLeafColumns)"
24865
+ [detailTemplate]="detailTemplate"
24866
+ [logicalRowIndex]="ariaRowCount"
24867
+ [totalColumns]="columnsContainer">
24868
+ </tfoot>
24869
+ </table>
24870
+ </div>
24871
+ <div #footer
24872
+ class="k-grid-footer-wrap" data-scrollable
24873
+ [kendoGridResizableContainer]="lockedLeafColumns.length > 0"
24874
+ [lockedWidth]="lockedWidth + scrollbarWidth + 3">
24875
+ <table
24876
+ role="presentation"
24877
+ class="k-grid-footer-table"
24878
+ [style.width.px]="nonLockedWidth"
24879
+ kendoGridTable
24880
+ kendoGridResizableTable
24881
+ [size]="size">
24882
+ <colgroup kendoGridColGroup
24883
+ [columns]="$any(headerLeafColumns)"
24884
+ [groups]="isLocked ? [] : group"
24885
+ [detailTemplate]="detailTemplate">
24886
+ </colgroup>
24887
+ <tfoot kendoGridFooter
24888
+ [logicalRowIndex]="ariaRowCount"
24889
+ [scrollable]="true"
24890
+ [groups]="isLocked ? [] : group"
24891
+ [columns]="$any(headerColumns)"
24892
+ [lockedColumnsCount]="lockedLeafColumns.length"
24893
+ [detailTemplate]="detailTemplate"
24894
+ [totalColumns]="columnsContainer">
24895
+ </tfoot>
24896
+ </table>
24897
+ </div>
24898
+ </div>
24899
+ </ng-container>
24900
+ <ng-container *ngIf="!isScrollable">
24901
+ <table
24902
+ [style.table-layout]="resizable ? 'fixed' : null"
24903
+ kendoGridTable
24904
+ kendoGridResizableTable
24905
+ role="presentation"
24906
+ [size]="size">
24907
+ <colgroup kendoGridColGroup
24908
+ [columns]="$any(leafColumns)"
24909
+ [groups]="group"
24910
+ [detailTemplate]="detailTemplate">
24911
+ </colgroup>
24912
+ <thead kendoGridHeader
24913
+ *ngIf="!hideHeader"
24914
+ [resizable]="resizable"
24915
+ [scrollable]="false"
24916
+ [columns]="$any(visibleColumns)"
24917
+ [totalColumnLevels]="totalColumnLevels"
24918
+ [totalColumns]="columnsContainer"
24919
+ [groups]="group"
24920
+ [groupable]="showGroupPanel"
24921
+ [reorderable]="reorderable"
24922
+ [sort]="sort"
24923
+ [sortable]="sortable"
24924
+ [filter]="filter"
24925
+ [filterable]="filterable"
24926
+ [columnMenu]="columnMenuOptions"
24927
+ [columnMenuTemplate]="columnMenuTemplate"
24928
+ [detailTemplate]="detailTemplate"
24929
+ [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
24930
+ </thead>
24931
+ <tbody kendoGridTableBody
24932
+ [isLoading]="loading"
24771
24933
  [groups]="group"
24772
- [groupable]="groupable"
24934
+ [data]="$any(view)"
24773
24935
  [skip]="skip"
24774
- [trackBy]="trackBy"
24775
- [columns]="columnsContainer"
24936
+ [columns]="$any(leafColumns)"
24776
24937
  [selectable]="selectable"
24777
24938
  [filterable]="filterable"
24778
- [detailTemplate]="detailTemplate"
24779
24939
  [noRecordsTemplate]="noRecordsTemplate"
24780
- [size]="size"
24781
- (pageChange)="notifyPageChange('list', $event)"
24940
+ [detailTemplate]="detailTemplate"
24941
+ [showGroupFooters]="showGroupFooters"
24942
+ [trackBy]="trackBy"
24782
24943
  [rowClass]="rowClass"
24783
- [rowSticky]="rowSticky"
24784
- [loading]="loading"
24785
- [isVirtual]="isVirtual"
24786
- [cellLoadingTemplate]="cellLoadingTemplate?.templateRef"
24787
- [loadingTemplate]="loadingTemplate?.templateRef"
24788
- [virtualColumns]="virtualColumns"
24789
- (scrollBottom)="notifyScrollBottom()"
24790
- (contentScroll)="contentScroll.emit($event)"
24791
24944
  kendoDraggable
24792
24945
  kendoGridSelectionMarquee
24793
- [enableDrag]="marqueeSelection"
24794
- [sort]="sort">
24795
- </kendo-grid-list>
24796
- <div
24946
+ [enableDrag]="marqueeSelection">
24947
+ </tbody>
24948
+ <tfoot kendoGridFooter
24797
24949
  *ngIf="showFooter"
24798
- class="k-grid-footer"
24799
- [style.padding]="headerPadding">
24800
- <div
24801
- *ngIf="lockedLeafColumns.length"
24802
- class="k-grid-footer-locked"
24803
- [style.width.px]="lockedWidth">
24804
- <table
24805
- role="presentation"
24806
- class="k-grid-footer-table"
24807
- kendoGridResizableTable
24808
- [locked]="true"
24809
- [style.width.px]="lockedWidth"
24810
- kendoGridTable
24811
- [size]="size">
24812
- <colgroup kendoGridColGroup
24813
- [columns]="$any(lockedLeafColumns)"
24814
- [groups]="group"
24815
- [detailTemplate]="detailTemplate">
24816
- </colgroup>
24817
- <tfoot kendoGridFooter
24818
- [scrollable]="true"
24819
- [groups]="group"
24820
- [columns]="$any(lockedLeafColumns)"
24821
- [detailTemplate]="detailTemplate"
24822
- [logicalRowIndex]="ariaRowCount"
24823
- [totalColumns]="columnsContainer">
24824
- </tfoot>
24825
- </table>
24826
- </div>
24827
- <div #footer
24828
- class="k-grid-footer-wrap" data-scrollable
24829
- [kendoGridResizableContainer]="lockedLeafColumns.length > 0"
24830
- [lockedWidth]="lockedWidth + scrollbarWidth + 3">
24831
- <table
24832
- role="presentation"
24833
- class="k-grid-footer-table"
24834
- [style.width.px]="nonLockedWidth"
24835
- kendoGridTable
24836
- kendoGridResizableTable
24837
- [size]="size">
24838
- <colgroup kendoGridColGroup
24839
- [columns]="$any(headerLeafColumns)"
24840
- [groups]="isLocked ? [] : group"
24841
- [detailTemplate]="detailTemplate">
24842
- </colgroup>
24843
- <tfoot kendoGridFooter
24844
- [logicalRowIndex]="ariaRowCount"
24845
- [scrollable]="true"
24846
- [groups]="isLocked ? [] : group"
24847
- [columns]="$any(headerColumns)"
24848
- [lockedColumnsCount]="lockedLeafColumns.length"
24849
- [detailTemplate]="detailTemplate"
24850
- [totalColumns]="columnsContainer">
24851
- </tfoot>
24852
- </table>
24853
- </div>
24854
- </div>
24855
- </ng-container>
24856
- <ng-container *ngIf="!isScrollable">
24857
- <table
24858
- [style.table-layout]="resizable ? 'fixed' : null"
24859
- kendoGridTable
24860
- kendoGridResizableTable
24861
- role="presentation"
24862
- [size]="size">
24863
- <colgroup kendoGridColGroup
24864
- [columns]="$any(leafColumns)"
24865
- [groups]="group"
24866
- [detailTemplate]="detailTemplate">
24867
- </colgroup>
24868
- <thead kendoGridHeader
24869
- *ngIf="!hideHeader"
24870
- [resizable]="resizable"
24871
- [scrollable]="false"
24872
- [columns]="$any(visibleColumns)"
24873
- [totalColumnLevels]="totalColumnLevels"
24874
- [totalColumns]="columnsContainer"
24875
- [groups]="group"
24876
- [groupable]="showGroupPanel"
24877
- [reorderable]="reorderable"
24878
- [sort]="sort"
24879
- [sortable]="sortable"
24880
- [filter]="filter"
24881
- [filterable]="filterable"
24882
- [columnMenu]="columnMenuOptions"
24883
- [columnMenuTemplate]="columnMenuTemplate"
24884
- [detailTemplate]="detailTemplate"
24885
- [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
24886
- </thead>
24887
- <tbody kendoGridTableBody
24888
- [isLoading]="loading"
24889
- [groups]="group"
24890
- [data]="$any(view)"
24891
- [skip]="skip"
24892
- [columns]="$any(leafColumns)"
24893
- [selectable]="selectable"
24894
- [filterable]="filterable"
24895
- [noRecordsTemplate]="noRecordsTemplate"
24896
- [detailTemplate]="detailTemplate"
24897
- [showGroupFooters]="showGroupFooters"
24898
- [trackBy]="trackBy"
24899
- [rowClass]="rowClass"
24900
- kendoDraggable
24901
- kendoGridSelectionMarquee
24902
- [enableDrag]="marqueeSelection">
24903
- </tbody>
24904
- <tfoot kendoGridFooter
24905
- *ngIf="showFooter"
24906
- [scrollable]="false"
24907
- [logicalRowIndex]="ariaRowCount"
24908
- [groups]="group"
24909
- [columns]="$any(leafColumns)"
24910
- [detailTemplate]="detailTemplate"
24911
- [totalColumns]="columnsContainer">
24912
- </tfoot>
24913
- </table>
24914
- </ng-container>
24915
- <div [loadingTemplate]="loadingTemplate" *ngIf="loading" kendoGridLoading></div>
24916
- </div>
24950
+ [scrollable]="false"
24951
+ [logicalRowIndex]="ariaRowCount"
24952
+ [groups]="group"
24953
+ [columns]="$any(leafColumns)"
24954
+ [detailTemplate]="detailTemplate"
24955
+ [totalColumns]="columnsContainer">
24956
+ </tfoot>
24957
+ </table>
24958
+ </ng-container>
24959
+ <div [loadingTemplate]="loadingTemplate" *ngIf="loading" kendoGridLoading></div>
24960
+ </div>
24917
24961
  <kendo-grid-status-bar
24918
24962
  *ngIf="showStatusBar"
24919
24963
  [statusBarTemplate]="statusBarTemplate">
@@ -25264,293 +25308,293 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
25264
25308
  [navigable]="navigation.toolbarEnabled"
25265
25309
  [attr.aria-controls]="ariaRootId"
25266
25310
  position="top"></kendo-grid-toolbar>
25267
- <kendo-pager
25268
- *ngIf="showTopPager"
25269
- [tabindex]="navigation.pagerEnabled ? '0' : '-1'"
25270
- [attr.role]="navigation.pagerEnabled ? 'application' : undefined"
25271
- class="k-grid-pager-top k-pager"
25272
- [template]="pagerTemplate"
25273
- [pageSize]="pageSize"
25274
- [total]="view.total"
25275
- [skip]="skip"
25276
- [size]="size"
25277
- [options]="pageable"
25278
- (pageChange)="notifyPageChange('pager', $event)">
25279
- </kendo-pager>
25280
- <kendo-grid-group-panel
25281
- *ngIf="showGroupPanel"
25282
- [navigable]="navigation.toolbarEnabled"
25283
- [text]="groupableEmptyText"
25284
- [groups]="group"
25285
- role="toolbar"
25286
- [attr.aria-label]="messageFor('groupPanelLabel')"
25287
- [attr.aria-controls]="ariaRootId"
25288
- (change)="groupChange.emit($event)">
25289
- </kendo-grid-group-panel>
25290
- <div #ariaRoot
25291
- class="k-grid-aria-root"
25292
- role="grid"
25293
- kendoDragTargetContainer
25294
- kendoDropTargetContainer
25295
- mode="manual"
25296
- [dragDisabled]="!rowReorderable"
25297
- [dropDisabled]="!rowReorderable"
25298
- [dragTargetFilter]="getDefaultSelectors('dragTarget')"
25299
- [dropTargetFilter]="getDefaultSelectors('dropTarget')"
25300
- [dragHandle]="getDefaultSelectors('handle')"
25301
- [hint]="{hintTemplate: defaultHint}"
25302
- (onPress)="handleReorderEvents($event, 'press')"
25303
- (onDragStart)="handleReorderEvents($event, 'dragStart')"
25304
- (onDrag)="handleReorderEvents($event, 'drag')"
25305
- (onDragEnter)="handleReorderEvents($event, 'dragEnter')"
25306
- (onDragLeave)="handleReorderEvents($event, 'dragLeave')"
25307
- (onDragEnd)="handleReorderEvents($event, 'dragEnd')"
25308
- (onDrop)="handleReorderEvents($event, 'drop')"
25309
- [dragData]="gridData"
25310
- [id]="ariaRootId"
25311
- [attr.aria-label]="ariaLabel"
25312
- [attr.aria-rowcount]="ariaRowCount"
25313
- [attr.aria-colcount]="ariaColCount">
25314
- <ng-container *ngIf="isScrollable">
25315
- <div *ngIf="!hideHeader"
25316
- class="k-grid-header"
25311
+ <kendo-pager
25312
+ *ngIf="showTopPager"
25313
+ [tabindex]="navigation.pagerEnabled ? '0' : '-1'"
25314
+ [attr.role]="navigation.pagerEnabled ? 'application' : undefined"
25315
+ class="k-grid-pager-top k-pager"
25316
+ [template]="pagerTemplate"
25317
+ [pageSize]="pageSize"
25318
+ [total]="view.total"
25319
+ [skip]="skip"
25320
+ [size]="size"
25321
+ [options]="pageable"
25322
+ (pageChange)="notifyPageChange('pager', $event)">
25323
+ </kendo-pager>
25324
+ <kendo-grid-group-panel
25325
+ *ngIf="showGroupPanel"
25326
+ [navigable]="navigation.toolbarEnabled"
25327
+ [text]="groupableEmptyText"
25328
+ [groups]="group"
25329
+ role="toolbar"
25330
+ [attr.aria-label]="messageFor('groupPanelLabel')"
25331
+ [attr.aria-controls]="ariaRootId"
25332
+ (change)="groupChange.emit($event)">
25333
+ </kendo-grid-group-panel>
25334
+ <div #ariaRoot
25335
+ class="k-grid-aria-root"
25336
+ role="grid"
25337
+ kendoDragTargetContainer
25338
+ kendoDropTargetContainer
25339
+ mode="manual"
25340
+ [dragDisabled]="!rowReorderable"
25341
+ [dropDisabled]="!rowReorderable"
25342
+ [dragTargetFilter]="getDefaultSelectors('dragTarget')"
25343
+ [dropTargetFilter]="getDefaultSelectors('dropTarget')"
25344
+ [dragHandle]="getDefaultSelectors('handle')"
25345
+ [hint]="{hintTemplate: defaultHint}"
25346
+ (onPress)="handleReorderEvents($event, 'press')"
25347
+ (onDragStart)="handleReorderEvents($event, 'dragStart')"
25348
+ (onDrag)="handleReorderEvents($event, 'drag')"
25349
+ (onDragEnter)="handleReorderEvents($event, 'dragEnter')"
25350
+ (onDragLeave)="handleReorderEvents($event, 'dragLeave')"
25351
+ (onDragEnd)="handleReorderEvents($event, 'dragEnd')"
25352
+ (onDrop)="handleReorderEvents($event, 'drop')"
25353
+ [dragData]="gridData"
25354
+ [id]="ariaRootId"
25355
+ [attr.aria-label]="ariaLabel"
25356
+ [attr.aria-rowcount]="ariaRowCount"
25357
+ [attr.aria-colcount]="ariaColCount">
25358
+ <ng-container *ngIf="isScrollable">
25359
+ <div *ngIf="!hideHeader"
25360
+ class="k-grid-header"
25361
+ role="presentation"
25362
+ [style.padding]="headerPadding">
25363
+ <div *ngIf="isLocked"
25364
+ #lockedHeader
25317
25365
  role="presentation"
25318
- [style.padding]="headerPadding">
25319
- <div *ngIf="isLocked"
25320
- #lockedHeader
25366
+ class="k-grid-header-locked"
25367
+ [style.width.px]="lockedWidth">
25368
+ <table
25369
+ kendoGridResizableTable
25370
+ [locked]="true"
25321
25371
  role="presentation"
25322
- class="k-grid-header-locked"
25323
- [style.width.px]="lockedWidth">
25324
- <table
25325
- kendoGridResizableTable
25326
- [locked]="true"
25327
- role="presentation"
25328
- class="k-grid-header-table"
25329
- [style.width.px]="lockedWidth"
25330
- kendoGridTable
25331
- [size]="size">
25332
- <colgroup kendoGridColGroup
25333
- [columns]="$any(lockedLeafColumns)"
25334
- [groups]="group"
25335
- [detailTemplate]="detailTemplate">
25336
- </colgroup>
25337
- <thead kendoGridHeader
25338
- role="rowgroup"
25339
- [resizable]="resizable"
25340
- [scrollable]="true"
25341
- [columns]="$any(lockedColumns)"
25342
- [totalColumnLevels]="totalColumnLevels"
25343
- [sort]="sort"
25344
- [groups]="group"
25345
- [filter]="filter"
25346
- [filterable]="filterable"
25347
- [groupable]="showGroupPanel"
25348
- [reorderable]="reorderable"
25349
- [sortable]="sortable"
25350
- [columnMenu]="columnMenuOptions"
25351
- [columnMenuTemplate]="columnMenuTemplate"
25352
- [totalColumnsCount]="leafColumns.length"
25353
- [totalColumns]="columnsContainer"
25354
- [detailTemplate]="detailTemplate"
25355
- [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
25356
- </thead>
25357
- </table>
25358
- </div>
25359
- <div #header class="k-grid-header-wrap" role="presentation" data-scrollable
25360
- [kendoGridResizableContainer]="lockedLeafColumns.length > 0"
25361
- [lockedWidth]="lockedWidth + scrollbarWidth + 2">
25362
- <table
25363
- role="presentation"
25364
- class="k-grid-header-table"
25365
- [style.width.px]="nonLockedWidth"
25366
- kendoGridResizableTable
25367
- [virtualColumns]="virtualColumns"
25368
- kendoGridTable
25369
- [size]="size">
25370
- <colgroup kendoGridColGroup
25371
- [columns]="headerLeafColumns"
25372
- [groups]="isLocked ? [] : group"
25373
- [detailTemplate]="detailTemplate">
25374
- </colgroup>
25375
- <thead kendoGridHeader
25376
- [resizable]="resizable"
25377
- role="rowgroup"
25378
- [scrollable]="true"
25379
- [columns]="headerColumns"
25380
- [totalColumnLevels]="totalColumnLevels"
25381
- [sort]="sort"
25382
- [filter]="filter"
25383
- [filterable]="filterable"
25384
- [groupable]="showGroupPanel"
25385
- [reorderable]="reorderable"
25386
- [groups]="isLocked ? [] : group"
25387
- [sortable]="sortable"
25388
- [columnMenu]="columnMenuOptions"
25389
- [columnMenuTemplate]="columnMenuTemplate"
25390
- [lockedColumnsCount]="lockedLeafColumns.length"
25391
- [totalColumnsCount]="leafColumns.length"
25392
- [totalColumns]="columnsContainer"
25393
- [detailTemplate]="detailTemplate"
25394
- [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
25395
- </thead>
25396
- </table>
25397
- <div *ngIf="virtualColumns" class="k-width-container" role="presentation">
25398
- <div [style.width.px]="columnsContainer.unlockedWidth"></div>
25399
- </div>
25372
+ class="k-grid-header-table"
25373
+ [style.width.px]="lockedWidth"
25374
+ kendoGridTable
25375
+ [size]="size">
25376
+ <colgroup kendoGridColGroup
25377
+ [columns]="$any(lockedLeafColumns)"
25378
+ [groups]="group"
25379
+ [detailTemplate]="detailTemplate">
25380
+ </colgroup>
25381
+ <thead kendoGridHeader
25382
+ role="rowgroup"
25383
+ [resizable]="resizable"
25384
+ [scrollable]="true"
25385
+ [columns]="$any(lockedColumns)"
25386
+ [totalColumnLevels]="totalColumnLevels"
25387
+ [sort]="sort"
25388
+ [groups]="group"
25389
+ [filter]="filter"
25390
+ [filterable]="filterable"
25391
+ [groupable]="showGroupPanel"
25392
+ [reorderable]="reorderable"
25393
+ [sortable]="sortable"
25394
+ [columnMenu]="columnMenuOptions"
25395
+ [columnMenuTemplate]="columnMenuTemplate"
25396
+ [totalColumnsCount]="leafColumns.length"
25397
+ [totalColumns]="columnsContainer"
25398
+ [detailTemplate]="detailTemplate"
25399
+ [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
25400
+ </thead>
25401
+ </table>
25402
+ </div>
25403
+ <div #header class="k-grid-header-wrap" role="presentation" data-scrollable
25404
+ [kendoGridResizableContainer]="lockedLeafColumns.length > 0"
25405
+ [lockedWidth]="lockedWidth + scrollbarWidth + 2">
25406
+ <table
25407
+ role="presentation"
25408
+ class="k-grid-header-table"
25409
+ [style.width.px]="nonLockedWidth"
25410
+ kendoGridResizableTable
25411
+ [virtualColumns]="virtualColumns"
25412
+ kendoGridTable
25413
+ [size]="size">
25414
+ <colgroup kendoGridColGroup
25415
+ [columns]="headerLeafColumns"
25416
+ [groups]="isLocked ? [] : group"
25417
+ [detailTemplate]="detailTemplate">
25418
+ </colgroup>
25419
+ <thead kendoGridHeader
25420
+ [resizable]="resizable"
25421
+ role="rowgroup"
25422
+ [scrollable]="true"
25423
+ [columns]="headerColumns"
25424
+ [totalColumnLevels]="totalColumnLevels"
25425
+ [sort]="sort"
25426
+ [filter]="filter"
25427
+ [filterable]="filterable"
25428
+ [groupable]="showGroupPanel"
25429
+ [reorderable]="reorderable"
25430
+ [groups]="isLocked ? [] : group"
25431
+ [sortable]="sortable"
25432
+ [columnMenu]="columnMenuOptions"
25433
+ [columnMenuTemplate]="columnMenuTemplate"
25434
+ [lockedColumnsCount]="lockedLeafColumns.length"
25435
+ [totalColumnsCount]="leafColumns.length"
25436
+ [totalColumns]="columnsContainer"
25437
+ [detailTemplate]="detailTemplate"
25438
+ [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
25439
+ </thead>
25440
+ </table>
25441
+ <div *ngIf="virtualColumns" class="k-width-container" role="presentation">
25442
+ <div [style.width.px]="columnsContainer.unlockedWidth"></div>
25400
25443
  </div>
25401
25444
  </div>
25402
- <kendo-grid-list
25403
- [data]="$any(view)"
25404
- [rowHeight]="rowHeight"
25405
- [detailRowHeight]="detailRowHeight"
25406
- [total]="totalCount"
25407
- [take]="pageSize"
25445
+ </div>
25446
+ <kendo-grid-list
25447
+ [data]="$any(view)"
25448
+ [rowHeight]="rowHeight"
25449
+ [detailRowHeight]="detailRowHeight"
25450
+ [total]="totalCount"
25451
+ [take]="pageSize"
25452
+ [groups]="group"
25453
+ [groupable]="groupable"
25454
+ [skip]="skip"
25455
+ [trackBy]="trackBy"
25456
+ [columns]="columnsContainer"
25457
+ [selectable]="selectable"
25458
+ [filterable]="filterable"
25459
+ [detailTemplate]="detailTemplate"
25460
+ [noRecordsTemplate]="noRecordsTemplate"
25461
+ [size]="size"
25462
+ (pageChange)="notifyPageChange('list', $event)"
25463
+ [rowClass]="rowClass"
25464
+ [rowSticky]="rowSticky"
25465
+ [loading]="loading"
25466
+ [isVirtual]="isVirtual"
25467
+ [cellLoadingTemplate]="cellLoadingTemplate?.templateRef"
25468
+ [loadingTemplate]="loadingTemplate?.templateRef"
25469
+ [virtualColumns]="virtualColumns"
25470
+ (scrollBottom)="notifyScrollBottom()"
25471
+ (contentScroll)="contentScroll.emit($event)"
25472
+ kendoDraggable
25473
+ kendoGridSelectionMarquee
25474
+ [enableDrag]="marqueeSelection"
25475
+ [sort]="sort">
25476
+ </kendo-grid-list>
25477
+ <div
25478
+ *ngIf="showFooter"
25479
+ class="k-grid-footer"
25480
+ [style.padding]="headerPadding">
25481
+ <div
25482
+ *ngIf="lockedLeafColumns.length"
25483
+ class="k-grid-footer-locked"
25484
+ [style.width.px]="lockedWidth">
25485
+ <table
25486
+ role="presentation"
25487
+ class="k-grid-footer-table"
25488
+ kendoGridResizableTable
25489
+ [locked]="true"
25490
+ [style.width.px]="lockedWidth"
25491
+ kendoGridTable
25492
+ [size]="size">
25493
+ <colgroup kendoGridColGroup
25494
+ [columns]="$any(lockedLeafColumns)"
25495
+ [groups]="group"
25496
+ [detailTemplate]="detailTemplate">
25497
+ </colgroup>
25498
+ <tfoot kendoGridFooter
25499
+ [scrollable]="true"
25500
+ [groups]="group"
25501
+ [columns]="$any(lockedLeafColumns)"
25502
+ [detailTemplate]="detailTemplate"
25503
+ [logicalRowIndex]="ariaRowCount"
25504
+ [totalColumns]="columnsContainer">
25505
+ </tfoot>
25506
+ </table>
25507
+ </div>
25508
+ <div #footer
25509
+ class="k-grid-footer-wrap" data-scrollable
25510
+ [kendoGridResizableContainer]="lockedLeafColumns.length > 0"
25511
+ [lockedWidth]="lockedWidth + scrollbarWidth + 3">
25512
+ <table
25513
+ role="presentation"
25514
+ class="k-grid-footer-table"
25515
+ [style.width.px]="nonLockedWidth"
25516
+ kendoGridTable
25517
+ kendoGridResizableTable
25518
+ [size]="size">
25519
+ <colgroup kendoGridColGroup
25520
+ [columns]="$any(headerLeafColumns)"
25521
+ [groups]="isLocked ? [] : group"
25522
+ [detailTemplate]="detailTemplate">
25523
+ </colgroup>
25524
+ <tfoot kendoGridFooter
25525
+ [logicalRowIndex]="ariaRowCount"
25526
+ [scrollable]="true"
25527
+ [groups]="isLocked ? [] : group"
25528
+ [columns]="$any(headerColumns)"
25529
+ [lockedColumnsCount]="lockedLeafColumns.length"
25530
+ [detailTemplate]="detailTemplate"
25531
+ [totalColumns]="columnsContainer">
25532
+ </tfoot>
25533
+ </table>
25534
+ </div>
25535
+ </div>
25536
+ </ng-container>
25537
+ <ng-container *ngIf="!isScrollable">
25538
+ <table
25539
+ [style.table-layout]="resizable ? 'fixed' : null"
25540
+ kendoGridTable
25541
+ kendoGridResizableTable
25542
+ role="presentation"
25543
+ [size]="size">
25544
+ <colgroup kendoGridColGroup
25545
+ [columns]="$any(leafColumns)"
25546
+ [groups]="group"
25547
+ [detailTemplate]="detailTemplate">
25548
+ </colgroup>
25549
+ <thead kendoGridHeader
25550
+ *ngIf="!hideHeader"
25551
+ [resizable]="resizable"
25552
+ [scrollable]="false"
25553
+ [columns]="$any(visibleColumns)"
25554
+ [totalColumnLevels]="totalColumnLevels"
25555
+ [totalColumns]="columnsContainer"
25556
+ [groups]="group"
25557
+ [groupable]="showGroupPanel"
25558
+ [reorderable]="reorderable"
25559
+ [sort]="sort"
25560
+ [sortable]="sortable"
25561
+ [filter]="filter"
25562
+ [filterable]="filterable"
25563
+ [columnMenu]="columnMenuOptions"
25564
+ [columnMenuTemplate]="columnMenuTemplate"
25565
+ [detailTemplate]="detailTemplate"
25566
+ [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
25567
+ </thead>
25568
+ <tbody kendoGridTableBody
25569
+ [isLoading]="loading"
25408
25570
  [groups]="group"
25409
- [groupable]="groupable"
25571
+ [data]="$any(view)"
25410
25572
  [skip]="skip"
25411
- [trackBy]="trackBy"
25412
- [columns]="columnsContainer"
25573
+ [columns]="$any(leafColumns)"
25413
25574
  [selectable]="selectable"
25414
25575
  [filterable]="filterable"
25415
- [detailTemplate]="detailTemplate"
25416
25576
  [noRecordsTemplate]="noRecordsTemplate"
25417
- [size]="size"
25418
- (pageChange)="notifyPageChange('list', $event)"
25577
+ [detailTemplate]="detailTemplate"
25578
+ [showGroupFooters]="showGroupFooters"
25579
+ [trackBy]="trackBy"
25419
25580
  [rowClass]="rowClass"
25420
- [rowSticky]="rowSticky"
25421
- [loading]="loading"
25422
- [isVirtual]="isVirtual"
25423
- [cellLoadingTemplate]="cellLoadingTemplate?.templateRef"
25424
- [loadingTemplate]="loadingTemplate?.templateRef"
25425
- [virtualColumns]="virtualColumns"
25426
- (scrollBottom)="notifyScrollBottom()"
25427
- (contentScroll)="contentScroll.emit($event)"
25428
25581
  kendoDraggable
25429
25582
  kendoGridSelectionMarquee
25430
- [enableDrag]="marqueeSelection"
25431
- [sort]="sort">
25432
- </kendo-grid-list>
25433
- <div
25583
+ [enableDrag]="marqueeSelection">
25584
+ </tbody>
25585
+ <tfoot kendoGridFooter
25434
25586
  *ngIf="showFooter"
25435
- class="k-grid-footer"
25436
- [style.padding]="headerPadding">
25437
- <div
25438
- *ngIf="lockedLeafColumns.length"
25439
- class="k-grid-footer-locked"
25440
- [style.width.px]="lockedWidth">
25441
- <table
25442
- role="presentation"
25443
- class="k-grid-footer-table"
25444
- kendoGridResizableTable
25445
- [locked]="true"
25446
- [style.width.px]="lockedWidth"
25447
- kendoGridTable
25448
- [size]="size">
25449
- <colgroup kendoGridColGroup
25450
- [columns]="$any(lockedLeafColumns)"
25451
- [groups]="group"
25452
- [detailTemplate]="detailTemplate">
25453
- </colgroup>
25454
- <tfoot kendoGridFooter
25455
- [scrollable]="true"
25456
- [groups]="group"
25457
- [columns]="$any(lockedLeafColumns)"
25458
- [detailTemplate]="detailTemplate"
25459
- [logicalRowIndex]="ariaRowCount"
25460
- [totalColumns]="columnsContainer">
25461
- </tfoot>
25462
- </table>
25463
- </div>
25464
- <div #footer
25465
- class="k-grid-footer-wrap" data-scrollable
25466
- [kendoGridResizableContainer]="lockedLeafColumns.length > 0"
25467
- [lockedWidth]="lockedWidth + scrollbarWidth + 3">
25468
- <table
25469
- role="presentation"
25470
- class="k-grid-footer-table"
25471
- [style.width.px]="nonLockedWidth"
25472
- kendoGridTable
25473
- kendoGridResizableTable
25474
- [size]="size">
25475
- <colgroup kendoGridColGroup
25476
- [columns]="$any(headerLeafColumns)"
25477
- [groups]="isLocked ? [] : group"
25478
- [detailTemplate]="detailTemplate">
25479
- </colgroup>
25480
- <tfoot kendoGridFooter
25481
- [logicalRowIndex]="ariaRowCount"
25482
- [scrollable]="true"
25483
- [groups]="isLocked ? [] : group"
25484
- [columns]="$any(headerColumns)"
25485
- [lockedColumnsCount]="lockedLeafColumns.length"
25486
- [detailTemplate]="detailTemplate"
25487
- [totalColumns]="columnsContainer">
25488
- </tfoot>
25489
- </table>
25490
- </div>
25491
- </div>
25492
- </ng-container>
25493
- <ng-container *ngIf="!isScrollable">
25494
- <table
25495
- [style.table-layout]="resizable ? 'fixed' : null"
25496
- kendoGridTable
25497
- kendoGridResizableTable
25498
- role="presentation"
25499
- [size]="size">
25500
- <colgroup kendoGridColGroup
25501
- [columns]="$any(leafColumns)"
25502
- [groups]="group"
25503
- [detailTemplate]="detailTemplate">
25504
- </colgroup>
25505
- <thead kendoGridHeader
25506
- *ngIf="!hideHeader"
25507
- [resizable]="resizable"
25508
- [scrollable]="false"
25509
- [columns]="$any(visibleColumns)"
25510
- [totalColumnLevels]="totalColumnLevels"
25511
- [totalColumns]="columnsContainer"
25512
- [groups]="group"
25513
- [groupable]="showGroupPanel"
25514
- [reorderable]="reorderable"
25515
- [sort]="sort"
25516
- [sortable]="sortable"
25517
- [filter]="filter"
25518
- [filterable]="filterable"
25519
- [columnMenu]="columnMenuOptions"
25520
- [columnMenuTemplate]="columnMenuTemplate"
25521
- [detailTemplate]="detailTemplate"
25522
- [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
25523
- </thead>
25524
- <tbody kendoGridTableBody
25525
- [isLoading]="loading"
25526
- [groups]="group"
25527
- [data]="$any(view)"
25528
- [skip]="skip"
25529
- [columns]="$any(leafColumns)"
25530
- [selectable]="selectable"
25531
- [filterable]="filterable"
25532
- [noRecordsTemplate]="noRecordsTemplate"
25533
- [detailTemplate]="detailTemplate"
25534
- [showGroupFooters]="showGroupFooters"
25535
- [trackBy]="trackBy"
25536
- [rowClass]="rowClass"
25537
- kendoDraggable
25538
- kendoGridSelectionMarquee
25539
- [enableDrag]="marqueeSelection">
25540
- </tbody>
25541
- <tfoot kendoGridFooter
25542
- *ngIf="showFooter"
25543
- [scrollable]="false"
25544
- [logicalRowIndex]="ariaRowCount"
25545
- [groups]="group"
25546
- [columns]="$any(leafColumns)"
25547
- [detailTemplate]="detailTemplate"
25548
- [totalColumns]="columnsContainer">
25549
- </tfoot>
25550
- </table>
25551
- </ng-container>
25552
- <div [loadingTemplate]="loadingTemplate" *ngIf="loading" kendoGridLoading></div>
25553
- </div>
25587
+ [scrollable]="false"
25588
+ [logicalRowIndex]="ariaRowCount"
25589
+ [groups]="group"
25590
+ [columns]="$any(leafColumns)"
25591
+ [detailTemplate]="detailTemplate"
25592
+ [totalColumns]="columnsContainer">
25593
+ </tfoot>
25594
+ </table>
25595
+ </ng-container>
25596
+ <div [loadingTemplate]="loadingTemplate" *ngIf="loading" kendoGridLoading></div>
25597
+ </div>
25554
25598
  <kendo-grid-status-bar
25555
25599
  *ngIf="showStatusBar"
25556
25600
  [statusBarTemplate]="statusBarTemplate">