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

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.
@@ -7,7 +7,7 @@ import { InjectionToken, EventEmitter, Injectable, SecurityContext, Optional, In
7
7
  import { merge, of, Subject, from, Subscription, interval, fromEvent, Observable, zip as zip$1, BehaviorSubject } from 'rxjs';
8
8
  import * as i9 from '@progress/kendo-angular-common';
9
9
  import { isDocumentAvailable, Keys, anyChanged, TemplateContextDirective, DraggableDirective, EventsOutsideAngularDirective, isChanged as isChanged$1, KendoInput, guid, hasObservers, ResizeSensorComponent, isPresent as isPresent$1, closest as closest$1, isFocusable as isFocusable$1, shouldShowValidationUI, WatermarkOverlayComponent, ResizeBatchService, DraggableModule } from '@progress/kendo-angular-common';
10
- import { switchMap, take, map, filter, takeUntil, switchMapTo, delay, tap, throttleTime, debounceTime, distinctUntilChanged, auditTime, bufferCount } from 'rxjs/operators';
10
+ import { switchMap, take, map, filter, takeUntil, switchMapTo, delay, tap, throttleTime, debounceTime, distinctUntilChanged, skip, auditTime, bufferCount } from 'rxjs/operators';
11
11
  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';
12
12
  import * as i1 from '@angular/platform-browser';
13
13
  import * as i1$1 from '@progress/kendo-angular-icons';
@@ -7992,7 +7992,8 @@ class SinglePopupService {
7992
7992
  */
7993
7993
  this.onClose = new Subject();
7994
7994
  this.pointerEventsSub = new Subscription();
7995
- this.scrollSubscription = scrollSyncService.changes.subscribe(() => this.destroy());
7995
+ this.canClosePopup = true;
7996
+ this.scrollSubscription = scrollSyncService.changes.pipe(skip(1)).subscribe(() => this.destroy());
7996
7997
  }
7997
7998
  /**
7998
7999
  * @hidden
@@ -8960,6 +8961,9 @@ class FilterMenuComponent {
8960
8961
  this.filterIcon = filterIcon;
8961
8962
  this.tabIndex = '-1';
8962
8963
  }
8964
+ ngOnDestroy() {
8965
+ this.cleanUp();
8966
+ }
8963
8967
  get hasFilters() {
8964
8968
  return filtersByField(this.filter, (this.column || {}).field).length > 0;
8965
8969
  }
@@ -8978,21 +8982,24 @@ class FilterMenuComponent {
8978
8982
  return this.navigationService.tableEnabled;
8979
8983
  }
8980
8984
  toggle(anchor, template) {
8981
- var _a;
8985
+ var _a, _b;
8982
8986
  this.popupRef = this.popupService.open(anchor, template, this.popupRef);
8983
8987
  // Needed as changes to 'popupRef' are not reflected
8984
8988
  // automatically when the Popup is closed by clicking outside the anchor
8985
8989
  const ariaRoot = this.isNavigable ? anchor.closest('.k-table-th') : anchor;
8986
8990
  if (this.popupRef) {
8987
- this.popupRef.popup.instance.close.pipe(take(1)).subscribe(() => {
8988
- this.popupRef = null;
8989
- const ariaRoot = this.isNavigable ? anchor.closest('.k-table-th') : anchor;
8990
- ariaRoot && this.renderer.removeAttribute(ariaRoot, 'aria-controls');
8991
- ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-expanded', 'false');
8991
+ (_a = this.popupSubs) === null || _a === void 0 ? void 0 : _a.unsubscribe();
8992
+ this.popupSubs = this.popupRef.popup.instance.anchorViewportLeave.subscribe(() => {
8993
+ this.close();
8994
+ this.updateAria(ariaRoot);
8992
8995
  });
8996
+ this.popupSubs.add(this.popupRef.popup.instance.close.subscribe(() => {
8997
+ this.popupRef = null;
8998
+ this.updateAria(ariaRoot);
8999
+ }));
8993
9000
  const popupAriaElement = this.popupRef.popupElement.querySelector('.k-grid-filter-popup');
8994
9001
  if (popupAriaElement) {
8995
- const popupId = getId$1((_a = this.idService) === null || _a === void 0 ? void 0 : _a.gridId());
9002
+ const popupId = getId$1((_b = this.idService) === null || _b === void 0 ? void 0 : _b.gridId());
8996
9003
  this.renderer.setAttribute(popupAriaElement, 'id', popupId);
8997
9004
  this.renderer.setAttribute(popupAriaElement, 'role', 'dialog');
8998
9005
  this.renderer.setAttribute(popupAriaElement, 'aria-label', this.filterLabel);
@@ -9011,9 +9018,7 @@ class FilterMenuComponent {
9011
9018
  return false;
9012
9019
  }
9013
9020
  close() {
9014
- this.popupService.destroy();
9015
- this.popupRef = null;
9016
- this.cdr.markForCheck();
9021
+ this.cleanUp();
9017
9022
  if (this.navigationService.tableEnabled) {
9018
9023
  this.navigationService.focusCell(0, this.column.leafIndex);
9019
9024
  }
@@ -9021,6 +9026,18 @@ class FilterMenuComponent {
9021
9026
  this.anchor.nativeElement.focus();
9022
9027
  }
9023
9028
  }
9029
+ updateAria(ariaRoot) {
9030
+ ariaRoot && this.renderer.removeAttribute(ariaRoot, 'aria-controls');
9031
+ ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-expanded', 'false');
9032
+ }
9033
+ cleanUp() {
9034
+ var _a;
9035
+ this.popupService.destroy();
9036
+ this.popupRef = null;
9037
+ (_a = this.popupSubs) === null || _a === void 0 ? void 0 : _a.unsubscribe();
9038
+ this.popupSubs = null;
9039
+ this.cdr.markForCheck();
9040
+ }
9024
9041
  }
9025
9042
  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 });
9026
9043
  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: `
@@ -12142,17 +12159,20 @@ class ColumnMenuComponent {
12142
12159
  this.service.sortable = this.sortable;
12143
12160
  }
12144
12161
  ngOnDestroy() {
12162
+ var _a;
12145
12163
  this.close();
12146
12164
  this.closeSubscription.unsubscribe();
12165
+ (_a = this.popupSubs) === null || _a === void 0 ? void 0 : _a.unsubscribe();
12166
+ this.closeSubscription = this.popupSubs = null;
12147
12167
  }
12148
12168
  /**
12149
12169
  * @hidden
12150
12170
  */
12151
12171
  toggle(e, anchor, template) {
12152
- var _a, _b;
12172
+ var _a, _b, _c;
12153
12173
  if (e) {
12154
12174
  e.preventDefault();
12155
- e.stopImmediatePropagation();
12175
+ e instanceof KeyboardEvent && e.stopImmediatePropagation();
12156
12176
  }
12157
12177
  this.expandedFilter = this.getExpandedState(this.settings.filter);
12158
12178
  this.expandedColumns = this.getExpandedState(this.settings.columnChooser);
@@ -12162,15 +12182,23 @@ class ColumnMenuComponent {
12162
12182
  // automatically when the Popup is closed by clicking outside the anchor
12163
12183
  const ariaRoot = this.isNavigable ? anchor.closest('.k-table-th') : anchor;
12164
12184
  if (this.popupRef) {
12165
- this.popupRef.popup.instance.close.pipe(take(1)).subscribe(() => {
12166
- this.popupRef = null;
12167
- const ariaRoot = this.isNavigable ? anchor.closest('.k-table-th') : anchor;
12168
- ariaRoot && this.renderer.removeAttribute(ariaRoot, 'aria-controls');
12169
- ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-expanded', 'false');
12185
+ (_a = this.popupSubs) === null || _a === void 0 ? void 0 : _a.unsubscribe();
12186
+ this.popupSubs = this.popupRef.popup.instance.anchorViewportLeave.subscribe(() => {
12187
+ var _a;
12188
+ (_a = this.popupSubs) === null || _a === void 0 ? void 0 : _a.unsubscribe();
12189
+ this.popupSubs = null;
12190
+ this.close(true);
12191
+ this.updateAria(ariaRoot);
12170
12192
  });
12193
+ this.popupSubs.add(this.popupRef.popup.instance.close.subscribe(() => {
12194
+ var _a;
12195
+ (_a = this.popupSubs) === null || _a === void 0 ? void 0 : _a.unsubscribe();
12196
+ this.popupSubs = this.popupRef = null;
12197
+ this.updateAria(ariaRoot);
12198
+ }));
12171
12199
  const popupAriaElement = this.popupRef.popupElement.querySelector('.k-grid-columnmenu-popup');
12172
12200
  if (popupAriaElement) {
12173
- const popupId = getId((_a = this.idService) === null || _a === void 0 ? void 0 : _a.gridId());
12201
+ const popupId = getId((_b = this.idService) === null || _b === void 0 ? void 0 : _b.gridId());
12174
12202
  this.renderer.setAttribute(popupAriaElement, 'id', popupId);
12175
12203
  this.renderer.setAttribute(popupAriaElement, 'role', 'dialog');
12176
12204
  this.renderer.setAttribute(popupAriaElement, 'aria-label', this.columnMenuTitle);
@@ -12181,7 +12209,7 @@ class ColumnMenuComponent {
12181
12209
  this.renderer.addClass(popupAriaElement, 'k-column-menu-tabbed');
12182
12210
  this.renderer.addClass(popupAriaElement, 'k-column-menu');
12183
12211
  this.cdr.detectChanges();
12184
- (_b = this.tabStrip) === null || _b === void 0 ? void 0 : _b.selectTab(0);
12212
+ (_c = this.tabStrip) === null || _c === void 0 ? void 0 : _c.selectTab(0);
12185
12213
  }
12186
12214
  }
12187
12215
  else {
@@ -12221,6 +12249,10 @@ class ColumnMenuComponent {
12221
12249
  getExpandedState(menuItemSettings) {
12222
12250
  return typeof (menuItemSettings) === 'object' ? menuItemSettings.expanded : false;
12223
12251
  }
12252
+ updateAria(ariaRoot) {
12253
+ ariaRoot && this.renderer.removeAttribute(ariaRoot, 'aria-controls');
12254
+ ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-expanded', 'false');
12255
+ }
12224
12256
  }
12225
12257
  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 });
12226
12258
  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: [
@@ -13904,6 +13936,10 @@ class CellSelectionAggregateService {
13904
13936
  earliest: null,
13905
13937
  latest: null
13906
13938
  };
13939
+ this.sub = new Subscription();
13940
+ }
13941
+ ngOnDestroy() {
13942
+ this.sub.unsubscribe();
13907
13943
  }
13908
13944
  isAggregateIncluded(aggregate) {
13909
13945
  const { cellAggregates } = this.ctx.grid.selectable;
@@ -13913,8 +13949,15 @@ class CellSelectionAggregateService {
13913
13949
  return true;
13914
13950
  }
13915
13951
  init() {
13952
+ this.sub.add(this.ctx.grid.dataStateChange.subscribe(_ => {
13953
+ // nullifies aggregates and sets default count to avoid mismatching state -
13954
+ // https://github.com/telerik/kendo-angular-private/issues/2964
13955
+ this.nullifyAggregates();
13956
+ if (this.isAggregateIncluded('count')) {
13957
+ this.aggregates['count'] = 0;
13958
+ }
13959
+ }));
13916
13960
  if (this.ctx.grid.selectable.cellAggregates) {
13917
- this.data = this.dataChanges.data ? this.dataChanges.data : this.ctx.grid.data;
13918
13961
  if (this.isAggregateIncluded('count')) {
13919
13962
  this.aggregates['count'] = 0;
13920
13963
  }
@@ -13953,10 +13996,12 @@ class CellSelectionAggregateService {
13953
13996
  });
13954
13997
  }
13955
13998
  else if (!this.isRowSelection) {
13956
- const itemKey = this.data[item.itemKey];
13999
+ // Enables working with the current Grid data regardless of its form (array, GridDataResult, GroupedResult).
14000
+ // Currently gets the item by index only - https://github.com/telerik/kendo-angular-private/issues/2964
14001
+ const selectedItem = this.ctx.grid.flatData.flatMap(recursiveFlatMap)[item.itemKey];
13957
14002
  const field = fields[item.columnKey];
13958
- if (itemKey && itemKey.hasOwnProperty(field)) {
13959
- const cellValue = itemKey[fields[item.columnKey]];
14003
+ if (selectedItem && selectedItem.hasOwnProperty(field)) {
14004
+ const cellValue = selectedItem[fields[item.columnKey]];
13960
14005
  this.groupAggregates(cellValue);
13961
14006
  }
13962
14007
  }
@@ -19466,8 +19511,8 @@ const packageMetadata = {
19466
19511
  name: '@progress/kendo-angular-grid',
19467
19512
  productName: 'Kendo UI for Angular',
19468
19513
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
19469
- publishDate: 1727163888,
19470
- version: '16.10.0',
19514
+ publishDate: 1727264542,
19515
+ version: '16.10.1-develop.1',
19471
19516
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
19472
19517
  };
19473
19518
 
@@ -23476,6 +23521,12 @@ class GridComponent {
23476
23521
  }
23477
23522
  }
23478
23523
  }
23524
+ ngAfterContentInit() {
23525
+ this.shouldGenerateColumns = !this.columns.length;
23526
+ this.autoGenerateColumns();
23527
+ this.columnList = new ColumnList(this.columns);
23528
+ this.columnsChangeSubscription = this.columns.changes.subscribe(() => this.verifySettings());
23529
+ }
23479
23530
  ngAfterViewInit() {
23480
23531
  this.attachScrollSync();
23481
23532
  this.attachElementEventHandlers();
@@ -23487,12 +23538,6 @@ class GridComponent {
23487
23538
  this.verifySettings();
23488
23539
  this.initSelectionService();
23489
23540
  }
23490
- ngAfterContentInit() {
23491
- this.shouldGenerateColumns = !this.columns.length;
23492
- this.autoGenerateColumns();
23493
- this.columnList = new ColumnList(this.columns);
23494
- this.columnsChangeSubscription = this.columns.changes.subscribe(() => this.verifySettings());
23495
- }
23496
23541
  ngOnInit() {
23497
23542
  if (this.navigable.length) {
23498
23543
  this.navigationService.init(this.navigationMetadata(), this.navigable);
@@ -23903,6 +23948,12 @@ class GridComponent {
23903
23948
  handleReorderEvents(ev, evType) {
23904
23949
  this.rowReorderService[evType](ev);
23905
23950
  }
23951
+ /**
23952
+ * @hidden
23953
+ */
23954
+ get flatData() {
23955
+ return isArray(this.data) ? this.data : this.data.data;
23956
+ }
23906
23957
  /**
23907
23958
  * @hidden
23908
23959
  */
@@ -24424,9 +24475,6 @@ class GridComponent {
24424
24475
  (_a = this.dragTargetContainer) === null || _a === void 0 ? void 0 : _a.notify();
24425
24476
  (_b = this.dropTargetContainer) === null || _b === void 0 ? void 0 : _b.notify();
24426
24477
  }
24427
- get flatData() {
24428
- return isArray(this.data) ? this.data : this.data.data;
24429
- }
24430
24478
  }
24431
24479
  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 });
24432
24480
  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: [
@@ -24734,293 +24782,293 @@ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
24734
24782
  [navigable]="navigation.toolbarEnabled"
24735
24783
  [attr.aria-controls]="ariaRootId"
24736
24784
  position="top"></kendo-grid-toolbar>
24737
- <kendo-pager
24738
- *ngIf="showTopPager"
24739
- [tabindex]="navigation.pagerEnabled ? '0' : '-1'"
24740
- [attr.role]="navigation.pagerEnabled ? 'application' : undefined"
24741
- class="k-grid-pager-top k-pager"
24742
- [template]="pagerTemplate"
24743
- [pageSize]="pageSize"
24744
- [total]="view.total"
24745
- [skip]="skip"
24746
- [size]="size"
24747
- [options]="pageable"
24748
- (pageChange)="notifyPageChange('pager', $event)">
24749
- </kendo-pager>
24750
- <kendo-grid-group-panel
24751
- *ngIf="showGroupPanel"
24752
- [navigable]="navigation.toolbarEnabled"
24753
- [text]="groupableEmptyText"
24754
- [groups]="group"
24755
- role="toolbar"
24756
- [attr.aria-label]="messageFor('groupPanelLabel')"
24757
- [attr.aria-controls]="ariaRootId"
24758
- (change)="groupChange.emit($event)">
24759
- </kendo-grid-group-panel>
24760
- <div #ariaRoot
24761
- class="k-grid-aria-root"
24762
- role="grid"
24763
- kendoDragTargetContainer
24764
- kendoDropTargetContainer
24765
- mode="manual"
24766
- [dragDisabled]="!rowReorderable"
24767
- [dropDisabled]="!rowReorderable"
24768
- [dragTargetFilter]="getDefaultSelectors('dragTarget')"
24769
- [dropTargetFilter]="getDefaultSelectors('dropTarget')"
24770
- [dragHandle]="getDefaultSelectors('handle')"
24771
- [hint]="{hintTemplate: defaultHint}"
24772
- (onPress)="handleReorderEvents($event, 'press')"
24773
- (onDragStart)="handleReorderEvents($event, 'dragStart')"
24774
- (onDrag)="handleReorderEvents($event, 'drag')"
24775
- (onDragEnter)="handleReorderEvents($event, 'dragEnter')"
24776
- (onDragLeave)="handleReorderEvents($event, 'dragLeave')"
24777
- (onDragEnd)="handleReorderEvents($event, 'dragEnd')"
24778
- (onDrop)="handleReorderEvents($event, 'drop')"
24779
- [dragData]="gridData"
24780
- [id]="ariaRootId"
24781
- [attr.aria-label]="ariaLabel"
24782
- [attr.aria-rowcount]="ariaRowCount"
24783
- [attr.aria-colcount]="ariaColCount">
24784
- <ng-container *ngIf="isScrollable">
24785
- <div *ngIf="!hideHeader"
24786
- class="k-grid-header"
24785
+ <kendo-pager
24786
+ *ngIf="showTopPager"
24787
+ [tabindex]="navigation.pagerEnabled ? '0' : '-1'"
24788
+ [attr.role]="navigation.pagerEnabled ? 'application' : undefined"
24789
+ class="k-grid-pager-top k-pager"
24790
+ [template]="pagerTemplate"
24791
+ [pageSize]="pageSize"
24792
+ [total]="view.total"
24793
+ [skip]="skip"
24794
+ [size]="size"
24795
+ [options]="pageable"
24796
+ (pageChange)="notifyPageChange('pager', $event)">
24797
+ </kendo-pager>
24798
+ <kendo-grid-group-panel
24799
+ *ngIf="showGroupPanel"
24800
+ [navigable]="navigation.toolbarEnabled"
24801
+ [text]="groupableEmptyText"
24802
+ [groups]="group"
24803
+ role="toolbar"
24804
+ [attr.aria-label]="messageFor('groupPanelLabel')"
24805
+ [attr.aria-controls]="ariaRootId"
24806
+ (change)="groupChange.emit($event)">
24807
+ </kendo-grid-group-panel>
24808
+ <div #ariaRoot
24809
+ class="k-grid-aria-root"
24810
+ role="grid"
24811
+ kendoDragTargetContainer
24812
+ kendoDropTargetContainer
24813
+ mode="manual"
24814
+ [dragDisabled]="!rowReorderable"
24815
+ [dropDisabled]="!rowReorderable"
24816
+ [dragTargetFilter]="getDefaultSelectors('dragTarget')"
24817
+ [dropTargetFilter]="getDefaultSelectors('dropTarget')"
24818
+ [dragHandle]="getDefaultSelectors('handle')"
24819
+ [hint]="{hintTemplate: defaultHint}"
24820
+ (onPress)="handleReorderEvents($event, 'press')"
24821
+ (onDragStart)="handleReorderEvents($event, 'dragStart')"
24822
+ (onDrag)="handleReorderEvents($event, 'drag')"
24823
+ (onDragEnter)="handleReorderEvents($event, 'dragEnter')"
24824
+ (onDragLeave)="handleReorderEvents($event, 'dragLeave')"
24825
+ (onDragEnd)="handleReorderEvents($event, 'dragEnd')"
24826
+ (onDrop)="handleReorderEvents($event, 'drop')"
24827
+ [dragData]="gridData"
24828
+ [id]="ariaRootId"
24829
+ [attr.aria-label]="ariaLabel"
24830
+ [attr.aria-rowcount]="ariaRowCount"
24831
+ [attr.aria-colcount]="ariaColCount">
24832
+ <ng-container *ngIf="isScrollable">
24833
+ <div *ngIf="!hideHeader"
24834
+ class="k-grid-header"
24835
+ role="presentation"
24836
+ [style.padding]="headerPadding">
24837
+ <div *ngIf="isLocked"
24838
+ #lockedHeader
24787
24839
  role="presentation"
24788
- [style.padding]="headerPadding">
24789
- <div *ngIf="isLocked"
24790
- #lockedHeader
24840
+ class="k-grid-header-locked"
24841
+ [style.width.px]="lockedWidth">
24842
+ <table
24843
+ kendoGridResizableTable
24844
+ [locked]="true"
24791
24845
  role="presentation"
24792
- class="k-grid-header-locked"
24793
- [style.width.px]="lockedWidth">
24794
- <table
24795
- kendoGridResizableTable
24796
- [locked]="true"
24797
- role="presentation"
24798
- class="k-grid-header-table"
24799
- [style.width.px]="lockedWidth"
24800
- kendoGridTable
24801
- [size]="size">
24802
- <colgroup kendoGridColGroup
24803
- [columns]="$any(lockedLeafColumns)"
24804
- [groups]="group"
24805
- [detailTemplate]="detailTemplate">
24806
- </colgroup>
24807
- <thead kendoGridHeader
24808
- role="rowgroup"
24809
- [resizable]="resizable"
24810
- [scrollable]="true"
24811
- [columns]="$any(lockedColumns)"
24812
- [totalColumnLevels]="totalColumnLevels"
24813
- [sort]="sort"
24814
- [groups]="group"
24815
- [filter]="filter"
24816
- [filterable]="filterable"
24817
- [groupable]="showGroupPanel"
24818
- [reorderable]="reorderable"
24819
- [sortable]="sortable"
24820
- [columnMenu]="columnMenuOptions"
24821
- [columnMenuTemplate]="columnMenuTemplate"
24822
- [totalColumnsCount]="leafColumns.length"
24823
- [totalColumns]="columnsContainer"
24824
- [detailTemplate]="detailTemplate"
24825
- [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
24826
- </thead>
24827
- </table>
24828
- </div>
24829
- <div #header class="k-grid-header-wrap" role="presentation" data-scrollable
24830
- [kendoGridResizableContainer]="lockedLeafColumns.length > 0"
24831
- [lockedWidth]="lockedWidth + scrollbarWidth + 2">
24832
- <table
24833
- role="presentation"
24834
- class="k-grid-header-table"
24835
- [style.width.px]="nonLockedWidth"
24836
- kendoGridResizableTable
24837
- [virtualColumns]="virtualColumns"
24838
- kendoGridTable
24839
- [size]="size">
24840
- <colgroup kendoGridColGroup
24841
- [columns]="headerLeafColumns"
24842
- [groups]="isLocked ? [] : group"
24843
- [detailTemplate]="detailTemplate">
24844
- </colgroup>
24845
- <thead kendoGridHeader
24846
- [resizable]="resizable"
24847
- role="rowgroup"
24848
- [scrollable]="true"
24849
- [columns]="headerColumns"
24850
- [totalColumnLevels]="totalColumnLevels"
24851
- [sort]="sort"
24852
- [filter]="filter"
24853
- [filterable]="filterable"
24854
- [groupable]="showGroupPanel"
24855
- [reorderable]="reorderable"
24856
- [groups]="isLocked ? [] : group"
24857
- [sortable]="sortable"
24858
- [columnMenu]="columnMenuOptions"
24859
- [columnMenuTemplate]="columnMenuTemplate"
24860
- [lockedColumnsCount]="lockedLeafColumns.length"
24861
- [totalColumnsCount]="leafColumns.length"
24862
- [totalColumns]="columnsContainer"
24863
- [detailTemplate]="detailTemplate"
24864
- [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
24865
- </thead>
24866
- </table>
24867
- <div *ngIf="virtualColumns" class="k-width-container" role="presentation">
24868
- <div [style.width.px]="columnsContainer.unlockedWidth"></div>
24869
- </div>
24846
+ class="k-grid-header-table"
24847
+ [style.width.px]="lockedWidth"
24848
+ kendoGridTable
24849
+ [size]="size">
24850
+ <colgroup kendoGridColGroup
24851
+ [columns]="$any(lockedLeafColumns)"
24852
+ [groups]="group"
24853
+ [detailTemplate]="detailTemplate">
24854
+ </colgroup>
24855
+ <thead kendoGridHeader
24856
+ role="rowgroup"
24857
+ [resizable]="resizable"
24858
+ [scrollable]="true"
24859
+ [columns]="$any(lockedColumns)"
24860
+ [totalColumnLevels]="totalColumnLevels"
24861
+ [sort]="sort"
24862
+ [groups]="group"
24863
+ [filter]="filter"
24864
+ [filterable]="filterable"
24865
+ [groupable]="showGroupPanel"
24866
+ [reorderable]="reorderable"
24867
+ [sortable]="sortable"
24868
+ [columnMenu]="columnMenuOptions"
24869
+ [columnMenuTemplate]="columnMenuTemplate"
24870
+ [totalColumnsCount]="leafColumns.length"
24871
+ [totalColumns]="columnsContainer"
24872
+ [detailTemplate]="detailTemplate"
24873
+ [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
24874
+ </thead>
24875
+ </table>
24876
+ </div>
24877
+ <div #header class="k-grid-header-wrap" role="presentation" data-scrollable
24878
+ [kendoGridResizableContainer]="lockedLeafColumns.length > 0"
24879
+ [lockedWidth]="lockedWidth + scrollbarWidth + 2">
24880
+ <table
24881
+ role="presentation"
24882
+ class="k-grid-header-table"
24883
+ [style.width.px]="nonLockedWidth"
24884
+ kendoGridResizableTable
24885
+ [virtualColumns]="virtualColumns"
24886
+ kendoGridTable
24887
+ [size]="size">
24888
+ <colgroup kendoGridColGroup
24889
+ [columns]="headerLeafColumns"
24890
+ [groups]="isLocked ? [] : group"
24891
+ [detailTemplate]="detailTemplate">
24892
+ </colgroup>
24893
+ <thead kendoGridHeader
24894
+ [resizable]="resizable"
24895
+ role="rowgroup"
24896
+ [scrollable]="true"
24897
+ [columns]="headerColumns"
24898
+ [totalColumnLevels]="totalColumnLevels"
24899
+ [sort]="sort"
24900
+ [filter]="filter"
24901
+ [filterable]="filterable"
24902
+ [groupable]="showGroupPanel"
24903
+ [reorderable]="reorderable"
24904
+ [groups]="isLocked ? [] : group"
24905
+ [sortable]="sortable"
24906
+ [columnMenu]="columnMenuOptions"
24907
+ [columnMenuTemplate]="columnMenuTemplate"
24908
+ [lockedColumnsCount]="lockedLeafColumns.length"
24909
+ [totalColumnsCount]="leafColumns.length"
24910
+ [totalColumns]="columnsContainer"
24911
+ [detailTemplate]="detailTemplate"
24912
+ [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
24913
+ </thead>
24914
+ </table>
24915
+ <div *ngIf="virtualColumns" class="k-width-container" role="presentation">
24916
+ <div [style.width.px]="columnsContainer.unlockedWidth"></div>
24870
24917
  </div>
24871
24918
  </div>
24872
- <kendo-grid-list
24873
- [data]="$any(view)"
24874
- [rowHeight]="rowHeight"
24875
- [detailRowHeight]="detailRowHeight"
24876
- [total]="totalCount"
24877
- [take]="pageSize"
24919
+ </div>
24920
+ <kendo-grid-list
24921
+ [data]="$any(view)"
24922
+ [rowHeight]="rowHeight"
24923
+ [detailRowHeight]="detailRowHeight"
24924
+ [total]="totalCount"
24925
+ [take]="pageSize"
24926
+ [groups]="group"
24927
+ [groupable]="groupable"
24928
+ [skip]="skip"
24929
+ [trackBy]="trackBy"
24930
+ [columns]="columnsContainer"
24931
+ [selectable]="selectable"
24932
+ [filterable]="filterable"
24933
+ [detailTemplate]="detailTemplate"
24934
+ [noRecordsTemplate]="noRecordsTemplate"
24935
+ [size]="size"
24936
+ (pageChange)="notifyPageChange('list', $event)"
24937
+ [rowClass]="rowClass"
24938
+ [rowSticky]="rowSticky"
24939
+ [loading]="loading"
24940
+ [isVirtual]="isVirtual"
24941
+ [cellLoadingTemplate]="cellLoadingTemplate?.templateRef"
24942
+ [loadingTemplate]="loadingTemplate?.templateRef"
24943
+ [virtualColumns]="virtualColumns"
24944
+ (scrollBottom)="notifyScrollBottom()"
24945
+ (contentScroll)="contentScroll.emit($event)"
24946
+ kendoDraggable
24947
+ kendoGridSelectionMarquee
24948
+ [enableDrag]="marqueeSelection"
24949
+ [sort]="sort">
24950
+ </kendo-grid-list>
24951
+ <div
24952
+ *ngIf="showFooter"
24953
+ class="k-grid-footer"
24954
+ [style.padding]="headerPadding">
24955
+ <div
24956
+ *ngIf="lockedLeafColumns.length"
24957
+ class="k-grid-footer-locked"
24958
+ [style.width.px]="lockedWidth">
24959
+ <table
24960
+ role="presentation"
24961
+ class="k-grid-footer-table"
24962
+ kendoGridResizableTable
24963
+ [locked]="true"
24964
+ [style.width.px]="lockedWidth"
24965
+ kendoGridTable
24966
+ [size]="size">
24967
+ <colgroup kendoGridColGroup
24968
+ [columns]="$any(lockedLeafColumns)"
24969
+ [groups]="group"
24970
+ [detailTemplate]="detailTemplate">
24971
+ </colgroup>
24972
+ <tfoot kendoGridFooter
24973
+ [scrollable]="true"
24974
+ [groups]="group"
24975
+ [columns]="$any(lockedLeafColumns)"
24976
+ [detailTemplate]="detailTemplate"
24977
+ [logicalRowIndex]="ariaRowCount"
24978
+ [totalColumns]="columnsContainer">
24979
+ </tfoot>
24980
+ </table>
24981
+ </div>
24982
+ <div #footer
24983
+ class="k-grid-footer-wrap" data-scrollable
24984
+ [kendoGridResizableContainer]="lockedLeafColumns.length > 0"
24985
+ [lockedWidth]="lockedWidth + scrollbarWidth + 3">
24986
+ <table
24987
+ role="presentation"
24988
+ class="k-grid-footer-table"
24989
+ [style.width.px]="nonLockedWidth"
24990
+ kendoGridTable
24991
+ kendoGridResizableTable
24992
+ [size]="size">
24993
+ <colgroup kendoGridColGroup
24994
+ [columns]="$any(headerLeafColumns)"
24995
+ [groups]="isLocked ? [] : group"
24996
+ [detailTemplate]="detailTemplate">
24997
+ </colgroup>
24998
+ <tfoot kendoGridFooter
24999
+ [logicalRowIndex]="ariaRowCount"
25000
+ [scrollable]="true"
25001
+ [groups]="isLocked ? [] : group"
25002
+ [columns]="$any(headerColumns)"
25003
+ [lockedColumnsCount]="lockedLeafColumns.length"
25004
+ [detailTemplate]="detailTemplate"
25005
+ [totalColumns]="columnsContainer">
25006
+ </tfoot>
25007
+ </table>
25008
+ </div>
25009
+ </div>
25010
+ </ng-container>
25011
+ <ng-container *ngIf="!isScrollable">
25012
+ <table
25013
+ [style.table-layout]="resizable ? 'fixed' : null"
25014
+ kendoGridTable
25015
+ kendoGridResizableTable
25016
+ role="presentation"
25017
+ [size]="size">
25018
+ <colgroup kendoGridColGroup
25019
+ [columns]="$any(leafColumns)"
25020
+ [groups]="group"
25021
+ [detailTemplate]="detailTemplate">
25022
+ </colgroup>
25023
+ <thead kendoGridHeader
25024
+ *ngIf="!hideHeader"
25025
+ [resizable]="resizable"
25026
+ [scrollable]="false"
25027
+ [columns]="$any(visibleColumns)"
25028
+ [totalColumnLevels]="totalColumnLevels"
25029
+ [totalColumns]="columnsContainer"
25030
+ [groups]="group"
25031
+ [groupable]="showGroupPanel"
25032
+ [reorderable]="reorderable"
25033
+ [sort]="sort"
25034
+ [sortable]="sortable"
25035
+ [filter]="filter"
25036
+ [filterable]="filterable"
25037
+ [columnMenu]="columnMenuOptions"
25038
+ [columnMenuTemplate]="columnMenuTemplate"
25039
+ [detailTemplate]="detailTemplate"
25040
+ [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
25041
+ </thead>
25042
+ <tbody kendoGridTableBody
25043
+ [isLoading]="loading"
24878
25044
  [groups]="group"
24879
- [groupable]="groupable"
25045
+ [data]="$any(view)"
24880
25046
  [skip]="skip"
24881
- [trackBy]="trackBy"
24882
- [columns]="columnsContainer"
25047
+ [columns]="$any(leafColumns)"
24883
25048
  [selectable]="selectable"
24884
25049
  [filterable]="filterable"
24885
- [detailTemplate]="detailTemplate"
24886
25050
  [noRecordsTemplate]="noRecordsTemplate"
24887
- [size]="size"
24888
- (pageChange)="notifyPageChange('list', $event)"
25051
+ [detailTemplate]="detailTemplate"
25052
+ [showGroupFooters]="showGroupFooters"
25053
+ [trackBy]="trackBy"
24889
25054
  [rowClass]="rowClass"
24890
- [rowSticky]="rowSticky"
24891
- [loading]="loading"
24892
- [isVirtual]="isVirtual"
24893
- [cellLoadingTemplate]="cellLoadingTemplate?.templateRef"
24894
- [loadingTemplate]="loadingTemplate?.templateRef"
24895
- [virtualColumns]="virtualColumns"
24896
- (scrollBottom)="notifyScrollBottom()"
24897
- (contentScroll)="contentScroll.emit($event)"
24898
25055
  kendoDraggable
24899
25056
  kendoGridSelectionMarquee
24900
- [enableDrag]="marqueeSelection"
24901
- [sort]="sort">
24902
- </kendo-grid-list>
24903
- <div
25057
+ [enableDrag]="marqueeSelection">
25058
+ </tbody>
25059
+ <tfoot kendoGridFooter
24904
25060
  *ngIf="showFooter"
24905
- class="k-grid-footer"
24906
- [style.padding]="headerPadding">
24907
- <div
24908
- *ngIf="lockedLeafColumns.length"
24909
- class="k-grid-footer-locked"
24910
- [style.width.px]="lockedWidth">
24911
- <table
24912
- role="presentation"
24913
- class="k-grid-footer-table"
24914
- kendoGridResizableTable
24915
- [locked]="true"
24916
- [style.width.px]="lockedWidth"
24917
- kendoGridTable
24918
- [size]="size">
24919
- <colgroup kendoGridColGroup
24920
- [columns]="$any(lockedLeafColumns)"
24921
- [groups]="group"
24922
- [detailTemplate]="detailTemplate">
24923
- </colgroup>
24924
- <tfoot kendoGridFooter
24925
- [scrollable]="true"
24926
- [groups]="group"
24927
- [columns]="$any(lockedLeafColumns)"
24928
- [detailTemplate]="detailTemplate"
24929
- [logicalRowIndex]="ariaRowCount"
24930
- [totalColumns]="columnsContainer">
24931
- </tfoot>
24932
- </table>
24933
- </div>
24934
- <div #footer
24935
- class="k-grid-footer-wrap" data-scrollable
24936
- [kendoGridResizableContainer]="lockedLeafColumns.length > 0"
24937
- [lockedWidth]="lockedWidth + scrollbarWidth + 3">
24938
- <table
24939
- role="presentation"
24940
- class="k-grid-footer-table"
24941
- [style.width.px]="nonLockedWidth"
24942
- kendoGridTable
24943
- kendoGridResizableTable
24944
- [size]="size">
24945
- <colgroup kendoGridColGroup
24946
- [columns]="$any(headerLeafColumns)"
24947
- [groups]="isLocked ? [] : group"
24948
- [detailTemplate]="detailTemplate">
24949
- </colgroup>
24950
- <tfoot kendoGridFooter
24951
- [logicalRowIndex]="ariaRowCount"
24952
- [scrollable]="true"
24953
- [groups]="isLocked ? [] : group"
24954
- [columns]="$any(headerColumns)"
24955
- [lockedColumnsCount]="lockedLeafColumns.length"
24956
- [detailTemplate]="detailTemplate"
24957
- [totalColumns]="columnsContainer">
24958
- </tfoot>
24959
- </table>
24960
- </div>
24961
- </div>
24962
- </ng-container>
24963
- <ng-container *ngIf="!isScrollable">
24964
- <table
24965
- [style.table-layout]="resizable ? 'fixed' : null"
24966
- kendoGridTable
24967
- kendoGridResizableTable
24968
- role="presentation"
24969
- [size]="size">
24970
- <colgroup kendoGridColGroup
24971
- [columns]="$any(leafColumns)"
24972
- [groups]="group"
24973
- [detailTemplate]="detailTemplate">
24974
- </colgroup>
24975
- <thead kendoGridHeader
24976
- *ngIf="!hideHeader"
24977
- [resizable]="resizable"
24978
- [scrollable]="false"
24979
- [columns]="$any(visibleColumns)"
24980
- [totalColumnLevels]="totalColumnLevels"
24981
- [totalColumns]="columnsContainer"
24982
- [groups]="group"
24983
- [groupable]="showGroupPanel"
24984
- [reorderable]="reorderable"
24985
- [sort]="sort"
24986
- [sortable]="sortable"
24987
- [filter]="filter"
24988
- [filterable]="filterable"
24989
- [columnMenu]="columnMenuOptions"
24990
- [columnMenuTemplate]="columnMenuTemplate"
24991
- [detailTemplate]="detailTemplate"
24992
- [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
24993
- </thead>
24994
- <tbody kendoGridTableBody
24995
- [isLoading]="loading"
24996
- [groups]="group"
24997
- [data]="$any(view)"
24998
- [skip]="skip"
24999
- [columns]="$any(leafColumns)"
25000
- [selectable]="selectable"
25001
- [filterable]="filterable"
25002
- [noRecordsTemplate]="noRecordsTemplate"
25003
- [detailTemplate]="detailTemplate"
25004
- [showGroupFooters]="showGroupFooters"
25005
- [trackBy]="trackBy"
25006
- [rowClass]="rowClass"
25007
- kendoDraggable
25008
- kendoGridSelectionMarquee
25009
- [enableDrag]="marqueeSelection">
25010
- </tbody>
25011
- <tfoot kendoGridFooter
25012
- *ngIf="showFooter"
25013
- [scrollable]="false"
25014
- [logicalRowIndex]="ariaRowCount"
25015
- [groups]="group"
25016
- [columns]="$any(leafColumns)"
25017
- [detailTemplate]="detailTemplate"
25018
- [totalColumns]="columnsContainer">
25019
- </tfoot>
25020
- </table>
25021
- </ng-container>
25022
- <div [loadingTemplate]="loadingTemplate" *ngIf="loading" kendoGridLoading></div>
25023
- </div>
25061
+ [scrollable]="false"
25062
+ [logicalRowIndex]="ariaRowCount"
25063
+ [groups]="group"
25064
+ [columns]="$any(leafColumns)"
25065
+ [detailTemplate]="detailTemplate"
25066
+ [totalColumns]="columnsContainer">
25067
+ </tfoot>
25068
+ </table>
25069
+ </ng-container>
25070
+ <div [loadingTemplate]="loadingTemplate" *ngIf="loading" kendoGridLoading></div>
25071
+ </div>
25024
25072
  <kendo-grid-status-bar
25025
25073
  *ngIf="showStatusBar"
25026
25074
  [statusBarTemplate]="statusBarTemplate">
@@ -25371,293 +25419,293 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
25371
25419
  [navigable]="navigation.toolbarEnabled"
25372
25420
  [attr.aria-controls]="ariaRootId"
25373
25421
  position="top"></kendo-grid-toolbar>
25374
- <kendo-pager
25375
- *ngIf="showTopPager"
25376
- [tabindex]="navigation.pagerEnabled ? '0' : '-1'"
25377
- [attr.role]="navigation.pagerEnabled ? 'application' : undefined"
25378
- class="k-grid-pager-top k-pager"
25379
- [template]="pagerTemplate"
25380
- [pageSize]="pageSize"
25381
- [total]="view.total"
25382
- [skip]="skip"
25383
- [size]="size"
25384
- [options]="pageable"
25385
- (pageChange)="notifyPageChange('pager', $event)">
25386
- </kendo-pager>
25387
- <kendo-grid-group-panel
25388
- *ngIf="showGroupPanel"
25389
- [navigable]="navigation.toolbarEnabled"
25390
- [text]="groupableEmptyText"
25391
- [groups]="group"
25392
- role="toolbar"
25393
- [attr.aria-label]="messageFor('groupPanelLabel')"
25394
- [attr.aria-controls]="ariaRootId"
25395
- (change)="groupChange.emit($event)">
25396
- </kendo-grid-group-panel>
25397
- <div #ariaRoot
25398
- class="k-grid-aria-root"
25399
- role="grid"
25400
- kendoDragTargetContainer
25401
- kendoDropTargetContainer
25402
- mode="manual"
25403
- [dragDisabled]="!rowReorderable"
25404
- [dropDisabled]="!rowReorderable"
25405
- [dragTargetFilter]="getDefaultSelectors('dragTarget')"
25406
- [dropTargetFilter]="getDefaultSelectors('dropTarget')"
25407
- [dragHandle]="getDefaultSelectors('handle')"
25408
- [hint]="{hintTemplate: defaultHint}"
25409
- (onPress)="handleReorderEvents($event, 'press')"
25410
- (onDragStart)="handleReorderEvents($event, 'dragStart')"
25411
- (onDrag)="handleReorderEvents($event, 'drag')"
25412
- (onDragEnter)="handleReorderEvents($event, 'dragEnter')"
25413
- (onDragLeave)="handleReorderEvents($event, 'dragLeave')"
25414
- (onDragEnd)="handleReorderEvents($event, 'dragEnd')"
25415
- (onDrop)="handleReorderEvents($event, 'drop')"
25416
- [dragData]="gridData"
25417
- [id]="ariaRootId"
25418
- [attr.aria-label]="ariaLabel"
25419
- [attr.aria-rowcount]="ariaRowCount"
25420
- [attr.aria-colcount]="ariaColCount">
25421
- <ng-container *ngIf="isScrollable">
25422
- <div *ngIf="!hideHeader"
25423
- class="k-grid-header"
25422
+ <kendo-pager
25423
+ *ngIf="showTopPager"
25424
+ [tabindex]="navigation.pagerEnabled ? '0' : '-1'"
25425
+ [attr.role]="navigation.pagerEnabled ? 'application' : undefined"
25426
+ class="k-grid-pager-top k-pager"
25427
+ [template]="pagerTemplate"
25428
+ [pageSize]="pageSize"
25429
+ [total]="view.total"
25430
+ [skip]="skip"
25431
+ [size]="size"
25432
+ [options]="pageable"
25433
+ (pageChange)="notifyPageChange('pager', $event)">
25434
+ </kendo-pager>
25435
+ <kendo-grid-group-panel
25436
+ *ngIf="showGroupPanel"
25437
+ [navigable]="navigation.toolbarEnabled"
25438
+ [text]="groupableEmptyText"
25439
+ [groups]="group"
25440
+ role="toolbar"
25441
+ [attr.aria-label]="messageFor('groupPanelLabel')"
25442
+ [attr.aria-controls]="ariaRootId"
25443
+ (change)="groupChange.emit($event)">
25444
+ </kendo-grid-group-panel>
25445
+ <div #ariaRoot
25446
+ class="k-grid-aria-root"
25447
+ role="grid"
25448
+ kendoDragTargetContainer
25449
+ kendoDropTargetContainer
25450
+ mode="manual"
25451
+ [dragDisabled]="!rowReorderable"
25452
+ [dropDisabled]="!rowReorderable"
25453
+ [dragTargetFilter]="getDefaultSelectors('dragTarget')"
25454
+ [dropTargetFilter]="getDefaultSelectors('dropTarget')"
25455
+ [dragHandle]="getDefaultSelectors('handle')"
25456
+ [hint]="{hintTemplate: defaultHint}"
25457
+ (onPress)="handleReorderEvents($event, 'press')"
25458
+ (onDragStart)="handleReorderEvents($event, 'dragStart')"
25459
+ (onDrag)="handleReorderEvents($event, 'drag')"
25460
+ (onDragEnter)="handleReorderEvents($event, 'dragEnter')"
25461
+ (onDragLeave)="handleReorderEvents($event, 'dragLeave')"
25462
+ (onDragEnd)="handleReorderEvents($event, 'dragEnd')"
25463
+ (onDrop)="handleReorderEvents($event, 'drop')"
25464
+ [dragData]="gridData"
25465
+ [id]="ariaRootId"
25466
+ [attr.aria-label]="ariaLabel"
25467
+ [attr.aria-rowcount]="ariaRowCount"
25468
+ [attr.aria-colcount]="ariaColCount">
25469
+ <ng-container *ngIf="isScrollable">
25470
+ <div *ngIf="!hideHeader"
25471
+ class="k-grid-header"
25472
+ role="presentation"
25473
+ [style.padding]="headerPadding">
25474
+ <div *ngIf="isLocked"
25475
+ #lockedHeader
25424
25476
  role="presentation"
25425
- [style.padding]="headerPadding">
25426
- <div *ngIf="isLocked"
25427
- #lockedHeader
25477
+ class="k-grid-header-locked"
25478
+ [style.width.px]="lockedWidth">
25479
+ <table
25480
+ kendoGridResizableTable
25481
+ [locked]="true"
25428
25482
  role="presentation"
25429
- class="k-grid-header-locked"
25430
- [style.width.px]="lockedWidth">
25431
- <table
25432
- kendoGridResizableTable
25433
- [locked]="true"
25434
- role="presentation"
25435
- class="k-grid-header-table"
25436
- [style.width.px]="lockedWidth"
25437
- kendoGridTable
25438
- [size]="size">
25439
- <colgroup kendoGridColGroup
25440
- [columns]="$any(lockedLeafColumns)"
25441
- [groups]="group"
25442
- [detailTemplate]="detailTemplate">
25443
- </colgroup>
25444
- <thead kendoGridHeader
25445
- role="rowgroup"
25446
- [resizable]="resizable"
25447
- [scrollable]="true"
25448
- [columns]="$any(lockedColumns)"
25449
- [totalColumnLevels]="totalColumnLevels"
25450
- [sort]="sort"
25451
- [groups]="group"
25452
- [filter]="filter"
25453
- [filterable]="filterable"
25454
- [groupable]="showGroupPanel"
25455
- [reorderable]="reorderable"
25456
- [sortable]="sortable"
25457
- [columnMenu]="columnMenuOptions"
25458
- [columnMenuTemplate]="columnMenuTemplate"
25459
- [totalColumnsCount]="leafColumns.length"
25460
- [totalColumns]="columnsContainer"
25461
- [detailTemplate]="detailTemplate"
25462
- [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
25463
- </thead>
25464
- </table>
25465
- </div>
25466
- <div #header class="k-grid-header-wrap" role="presentation" data-scrollable
25467
- [kendoGridResizableContainer]="lockedLeafColumns.length > 0"
25468
- [lockedWidth]="lockedWidth + scrollbarWidth + 2">
25469
- <table
25470
- role="presentation"
25471
- class="k-grid-header-table"
25472
- [style.width.px]="nonLockedWidth"
25473
- kendoGridResizableTable
25474
- [virtualColumns]="virtualColumns"
25475
- kendoGridTable
25476
- [size]="size">
25477
- <colgroup kendoGridColGroup
25478
- [columns]="headerLeafColumns"
25479
- [groups]="isLocked ? [] : group"
25480
- [detailTemplate]="detailTemplate">
25481
- </colgroup>
25482
- <thead kendoGridHeader
25483
- [resizable]="resizable"
25484
- role="rowgroup"
25485
- [scrollable]="true"
25486
- [columns]="headerColumns"
25487
- [totalColumnLevels]="totalColumnLevels"
25488
- [sort]="sort"
25489
- [filter]="filter"
25490
- [filterable]="filterable"
25491
- [groupable]="showGroupPanel"
25492
- [reorderable]="reorderable"
25493
- [groups]="isLocked ? [] : group"
25494
- [sortable]="sortable"
25495
- [columnMenu]="columnMenuOptions"
25496
- [columnMenuTemplate]="columnMenuTemplate"
25497
- [lockedColumnsCount]="lockedLeafColumns.length"
25498
- [totalColumnsCount]="leafColumns.length"
25499
- [totalColumns]="columnsContainer"
25500
- [detailTemplate]="detailTemplate"
25501
- [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
25502
- </thead>
25503
- </table>
25504
- <div *ngIf="virtualColumns" class="k-width-container" role="presentation">
25505
- <div [style.width.px]="columnsContainer.unlockedWidth"></div>
25506
- </div>
25483
+ class="k-grid-header-table"
25484
+ [style.width.px]="lockedWidth"
25485
+ kendoGridTable
25486
+ [size]="size">
25487
+ <colgroup kendoGridColGroup
25488
+ [columns]="$any(lockedLeafColumns)"
25489
+ [groups]="group"
25490
+ [detailTemplate]="detailTemplate">
25491
+ </colgroup>
25492
+ <thead kendoGridHeader
25493
+ role="rowgroup"
25494
+ [resizable]="resizable"
25495
+ [scrollable]="true"
25496
+ [columns]="$any(lockedColumns)"
25497
+ [totalColumnLevels]="totalColumnLevels"
25498
+ [sort]="sort"
25499
+ [groups]="group"
25500
+ [filter]="filter"
25501
+ [filterable]="filterable"
25502
+ [groupable]="showGroupPanel"
25503
+ [reorderable]="reorderable"
25504
+ [sortable]="sortable"
25505
+ [columnMenu]="columnMenuOptions"
25506
+ [columnMenuTemplate]="columnMenuTemplate"
25507
+ [totalColumnsCount]="leafColumns.length"
25508
+ [totalColumns]="columnsContainer"
25509
+ [detailTemplate]="detailTemplate"
25510
+ [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
25511
+ </thead>
25512
+ </table>
25513
+ </div>
25514
+ <div #header class="k-grid-header-wrap" role="presentation" data-scrollable
25515
+ [kendoGridResizableContainer]="lockedLeafColumns.length > 0"
25516
+ [lockedWidth]="lockedWidth + scrollbarWidth + 2">
25517
+ <table
25518
+ role="presentation"
25519
+ class="k-grid-header-table"
25520
+ [style.width.px]="nonLockedWidth"
25521
+ kendoGridResizableTable
25522
+ [virtualColumns]="virtualColumns"
25523
+ kendoGridTable
25524
+ [size]="size">
25525
+ <colgroup kendoGridColGroup
25526
+ [columns]="headerLeafColumns"
25527
+ [groups]="isLocked ? [] : group"
25528
+ [detailTemplate]="detailTemplate">
25529
+ </colgroup>
25530
+ <thead kendoGridHeader
25531
+ [resizable]="resizable"
25532
+ role="rowgroup"
25533
+ [scrollable]="true"
25534
+ [columns]="headerColumns"
25535
+ [totalColumnLevels]="totalColumnLevels"
25536
+ [sort]="sort"
25537
+ [filter]="filter"
25538
+ [filterable]="filterable"
25539
+ [groupable]="showGroupPanel"
25540
+ [reorderable]="reorderable"
25541
+ [groups]="isLocked ? [] : group"
25542
+ [sortable]="sortable"
25543
+ [columnMenu]="columnMenuOptions"
25544
+ [columnMenuTemplate]="columnMenuTemplate"
25545
+ [lockedColumnsCount]="lockedLeafColumns.length"
25546
+ [totalColumnsCount]="leafColumns.length"
25547
+ [totalColumns]="columnsContainer"
25548
+ [detailTemplate]="detailTemplate"
25549
+ [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
25550
+ </thead>
25551
+ </table>
25552
+ <div *ngIf="virtualColumns" class="k-width-container" role="presentation">
25553
+ <div [style.width.px]="columnsContainer.unlockedWidth"></div>
25507
25554
  </div>
25508
25555
  </div>
25509
- <kendo-grid-list
25510
- [data]="$any(view)"
25511
- [rowHeight]="rowHeight"
25512
- [detailRowHeight]="detailRowHeight"
25513
- [total]="totalCount"
25514
- [take]="pageSize"
25556
+ </div>
25557
+ <kendo-grid-list
25558
+ [data]="$any(view)"
25559
+ [rowHeight]="rowHeight"
25560
+ [detailRowHeight]="detailRowHeight"
25561
+ [total]="totalCount"
25562
+ [take]="pageSize"
25563
+ [groups]="group"
25564
+ [groupable]="groupable"
25565
+ [skip]="skip"
25566
+ [trackBy]="trackBy"
25567
+ [columns]="columnsContainer"
25568
+ [selectable]="selectable"
25569
+ [filterable]="filterable"
25570
+ [detailTemplate]="detailTemplate"
25571
+ [noRecordsTemplate]="noRecordsTemplate"
25572
+ [size]="size"
25573
+ (pageChange)="notifyPageChange('list', $event)"
25574
+ [rowClass]="rowClass"
25575
+ [rowSticky]="rowSticky"
25576
+ [loading]="loading"
25577
+ [isVirtual]="isVirtual"
25578
+ [cellLoadingTemplate]="cellLoadingTemplate?.templateRef"
25579
+ [loadingTemplate]="loadingTemplate?.templateRef"
25580
+ [virtualColumns]="virtualColumns"
25581
+ (scrollBottom)="notifyScrollBottom()"
25582
+ (contentScroll)="contentScroll.emit($event)"
25583
+ kendoDraggable
25584
+ kendoGridSelectionMarquee
25585
+ [enableDrag]="marqueeSelection"
25586
+ [sort]="sort">
25587
+ </kendo-grid-list>
25588
+ <div
25589
+ *ngIf="showFooter"
25590
+ class="k-grid-footer"
25591
+ [style.padding]="headerPadding">
25592
+ <div
25593
+ *ngIf="lockedLeafColumns.length"
25594
+ class="k-grid-footer-locked"
25595
+ [style.width.px]="lockedWidth">
25596
+ <table
25597
+ role="presentation"
25598
+ class="k-grid-footer-table"
25599
+ kendoGridResizableTable
25600
+ [locked]="true"
25601
+ [style.width.px]="lockedWidth"
25602
+ kendoGridTable
25603
+ [size]="size">
25604
+ <colgroup kendoGridColGroup
25605
+ [columns]="$any(lockedLeafColumns)"
25606
+ [groups]="group"
25607
+ [detailTemplate]="detailTemplate">
25608
+ </colgroup>
25609
+ <tfoot kendoGridFooter
25610
+ [scrollable]="true"
25611
+ [groups]="group"
25612
+ [columns]="$any(lockedLeafColumns)"
25613
+ [detailTemplate]="detailTemplate"
25614
+ [logicalRowIndex]="ariaRowCount"
25615
+ [totalColumns]="columnsContainer">
25616
+ </tfoot>
25617
+ </table>
25618
+ </div>
25619
+ <div #footer
25620
+ class="k-grid-footer-wrap" data-scrollable
25621
+ [kendoGridResizableContainer]="lockedLeafColumns.length > 0"
25622
+ [lockedWidth]="lockedWidth + scrollbarWidth + 3">
25623
+ <table
25624
+ role="presentation"
25625
+ class="k-grid-footer-table"
25626
+ [style.width.px]="nonLockedWidth"
25627
+ kendoGridTable
25628
+ kendoGridResizableTable
25629
+ [size]="size">
25630
+ <colgroup kendoGridColGroup
25631
+ [columns]="$any(headerLeafColumns)"
25632
+ [groups]="isLocked ? [] : group"
25633
+ [detailTemplate]="detailTemplate">
25634
+ </colgroup>
25635
+ <tfoot kendoGridFooter
25636
+ [logicalRowIndex]="ariaRowCount"
25637
+ [scrollable]="true"
25638
+ [groups]="isLocked ? [] : group"
25639
+ [columns]="$any(headerColumns)"
25640
+ [lockedColumnsCount]="lockedLeafColumns.length"
25641
+ [detailTemplate]="detailTemplate"
25642
+ [totalColumns]="columnsContainer">
25643
+ </tfoot>
25644
+ </table>
25645
+ </div>
25646
+ </div>
25647
+ </ng-container>
25648
+ <ng-container *ngIf="!isScrollable">
25649
+ <table
25650
+ [style.table-layout]="resizable ? 'fixed' : null"
25651
+ kendoGridTable
25652
+ kendoGridResizableTable
25653
+ role="presentation"
25654
+ [size]="size">
25655
+ <colgroup kendoGridColGroup
25656
+ [columns]="$any(leafColumns)"
25657
+ [groups]="group"
25658
+ [detailTemplate]="detailTemplate">
25659
+ </colgroup>
25660
+ <thead kendoGridHeader
25661
+ *ngIf="!hideHeader"
25662
+ [resizable]="resizable"
25663
+ [scrollable]="false"
25664
+ [columns]="$any(visibleColumns)"
25665
+ [totalColumnLevels]="totalColumnLevels"
25666
+ [totalColumns]="columnsContainer"
25667
+ [groups]="group"
25668
+ [groupable]="showGroupPanel"
25669
+ [reorderable]="reorderable"
25670
+ [sort]="sort"
25671
+ [sortable]="sortable"
25672
+ [filter]="filter"
25673
+ [filterable]="filterable"
25674
+ [columnMenu]="columnMenuOptions"
25675
+ [columnMenuTemplate]="columnMenuTemplate"
25676
+ [detailTemplate]="detailTemplate"
25677
+ [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
25678
+ </thead>
25679
+ <tbody kendoGridTableBody
25680
+ [isLoading]="loading"
25515
25681
  [groups]="group"
25516
- [groupable]="groupable"
25682
+ [data]="$any(view)"
25517
25683
  [skip]="skip"
25518
- [trackBy]="trackBy"
25519
- [columns]="columnsContainer"
25684
+ [columns]="$any(leafColumns)"
25520
25685
  [selectable]="selectable"
25521
25686
  [filterable]="filterable"
25522
- [detailTemplate]="detailTemplate"
25523
25687
  [noRecordsTemplate]="noRecordsTemplate"
25524
- [size]="size"
25525
- (pageChange)="notifyPageChange('list', $event)"
25688
+ [detailTemplate]="detailTemplate"
25689
+ [showGroupFooters]="showGroupFooters"
25690
+ [trackBy]="trackBy"
25526
25691
  [rowClass]="rowClass"
25527
- [rowSticky]="rowSticky"
25528
- [loading]="loading"
25529
- [isVirtual]="isVirtual"
25530
- [cellLoadingTemplate]="cellLoadingTemplate?.templateRef"
25531
- [loadingTemplate]="loadingTemplate?.templateRef"
25532
- [virtualColumns]="virtualColumns"
25533
- (scrollBottom)="notifyScrollBottom()"
25534
- (contentScroll)="contentScroll.emit($event)"
25535
25692
  kendoDraggable
25536
25693
  kendoGridSelectionMarquee
25537
- [enableDrag]="marqueeSelection"
25538
- [sort]="sort">
25539
- </kendo-grid-list>
25540
- <div
25694
+ [enableDrag]="marqueeSelection">
25695
+ </tbody>
25696
+ <tfoot kendoGridFooter
25541
25697
  *ngIf="showFooter"
25542
- class="k-grid-footer"
25543
- [style.padding]="headerPadding">
25544
- <div
25545
- *ngIf="lockedLeafColumns.length"
25546
- class="k-grid-footer-locked"
25547
- [style.width.px]="lockedWidth">
25548
- <table
25549
- role="presentation"
25550
- class="k-grid-footer-table"
25551
- kendoGridResizableTable
25552
- [locked]="true"
25553
- [style.width.px]="lockedWidth"
25554
- kendoGridTable
25555
- [size]="size">
25556
- <colgroup kendoGridColGroup
25557
- [columns]="$any(lockedLeafColumns)"
25558
- [groups]="group"
25559
- [detailTemplate]="detailTemplate">
25560
- </colgroup>
25561
- <tfoot kendoGridFooter
25562
- [scrollable]="true"
25563
- [groups]="group"
25564
- [columns]="$any(lockedLeafColumns)"
25565
- [detailTemplate]="detailTemplate"
25566
- [logicalRowIndex]="ariaRowCount"
25567
- [totalColumns]="columnsContainer">
25568
- </tfoot>
25569
- </table>
25570
- </div>
25571
- <div #footer
25572
- class="k-grid-footer-wrap" data-scrollable
25573
- [kendoGridResizableContainer]="lockedLeafColumns.length > 0"
25574
- [lockedWidth]="lockedWidth + scrollbarWidth + 3">
25575
- <table
25576
- role="presentation"
25577
- class="k-grid-footer-table"
25578
- [style.width.px]="nonLockedWidth"
25579
- kendoGridTable
25580
- kendoGridResizableTable
25581
- [size]="size">
25582
- <colgroup kendoGridColGroup
25583
- [columns]="$any(headerLeafColumns)"
25584
- [groups]="isLocked ? [] : group"
25585
- [detailTemplate]="detailTemplate">
25586
- </colgroup>
25587
- <tfoot kendoGridFooter
25588
- [logicalRowIndex]="ariaRowCount"
25589
- [scrollable]="true"
25590
- [groups]="isLocked ? [] : group"
25591
- [columns]="$any(headerColumns)"
25592
- [lockedColumnsCount]="lockedLeafColumns.length"
25593
- [detailTemplate]="detailTemplate"
25594
- [totalColumns]="columnsContainer">
25595
- </tfoot>
25596
- </table>
25597
- </div>
25598
- </div>
25599
- </ng-container>
25600
- <ng-container *ngIf="!isScrollable">
25601
- <table
25602
- [style.table-layout]="resizable ? 'fixed' : null"
25603
- kendoGridTable
25604
- kendoGridResizableTable
25605
- role="presentation"
25606
- [size]="size">
25607
- <colgroup kendoGridColGroup
25608
- [columns]="$any(leafColumns)"
25609
- [groups]="group"
25610
- [detailTemplate]="detailTemplate">
25611
- </colgroup>
25612
- <thead kendoGridHeader
25613
- *ngIf="!hideHeader"
25614
- [resizable]="resizable"
25615
- [scrollable]="false"
25616
- [columns]="$any(visibleColumns)"
25617
- [totalColumnLevels]="totalColumnLevels"
25618
- [totalColumns]="columnsContainer"
25619
- [groups]="group"
25620
- [groupable]="showGroupPanel"
25621
- [reorderable]="reorderable"
25622
- [sort]="sort"
25623
- [sortable]="sortable"
25624
- [filter]="filter"
25625
- [filterable]="filterable"
25626
- [columnMenu]="columnMenuOptions"
25627
- [columnMenuTemplate]="columnMenuTemplate"
25628
- [detailTemplate]="detailTemplate"
25629
- [tabIndex]="navigation.tableEnabled ? '-1' : '0'">
25630
- </thead>
25631
- <tbody kendoGridTableBody
25632
- [isLoading]="loading"
25633
- [groups]="group"
25634
- [data]="$any(view)"
25635
- [skip]="skip"
25636
- [columns]="$any(leafColumns)"
25637
- [selectable]="selectable"
25638
- [filterable]="filterable"
25639
- [noRecordsTemplate]="noRecordsTemplate"
25640
- [detailTemplate]="detailTemplate"
25641
- [showGroupFooters]="showGroupFooters"
25642
- [trackBy]="trackBy"
25643
- [rowClass]="rowClass"
25644
- kendoDraggable
25645
- kendoGridSelectionMarquee
25646
- [enableDrag]="marqueeSelection">
25647
- </tbody>
25648
- <tfoot kendoGridFooter
25649
- *ngIf="showFooter"
25650
- [scrollable]="false"
25651
- [logicalRowIndex]="ariaRowCount"
25652
- [groups]="group"
25653
- [columns]="$any(leafColumns)"
25654
- [detailTemplate]="detailTemplate"
25655
- [totalColumns]="columnsContainer">
25656
- </tfoot>
25657
- </table>
25658
- </ng-container>
25659
- <div [loadingTemplate]="loadingTemplate" *ngIf="loading" kendoGridLoading></div>
25660
- </div>
25698
+ [scrollable]="false"
25699
+ [logicalRowIndex]="ariaRowCount"
25700
+ [groups]="group"
25701
+ [columns]="$any(leafColumns)"
25702
+ [detailTemplate]="detailTemplate"
25703
+ [totalColumns]="columnsContainer">
25704
+ </tfoot>
25705
+ </table>
25706
+ </ng-container>
25707
+ <div [loadingTemplate]="loadingTemplate" *ngIf="loading" kendoGridLoading></div>
25708
+ </div>
25661
25709
  <kendo-grid-status-bar
25662
25710
  *ngIf="showStatusBar"
25663
25711
  [statusBarTemplate]="statusBarTemplate">