@progress/kendo-angular-grid 13.4.0-develop.3 → 13.4.0-develop.5

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.
@@ -3,7 +3,7 @@
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import * as i0 from '@angular/core';
6
- import { InjectionToken, Component, HostBinding, Input, EventEmitter, Injectable, Optional, Inject, Directive, SkipSelf, QueryList, isDevMode, ContentChildren, ContentChild, forwardRef, Host, Output, SecurityContext, HostListener, ChangeDetectionStrategy, ViewChild, ViewChildren, Self, TemplateRef, Pipe, ViewEncapsulation, NgModule } from '@angular/core';
6
+ import { InjectionToken, Component, HostBinding, Input, EventEmitter, Injectable, Optional, Inject, Directive, SkipSelf, QueryList, isDevMode, ContentChildren, ContentChild, forwardRef, Host, Output, SecurityContext, HostListener, ChangeDetectionStrategy, ElementRef, ViewChild, ViewChildren, Self, TemplateRef, Pipe, ViewEncapsulation, NgModule } from '@angular/core';
7
7
  import * as i1$1 from '@progress/kendo-angular-common';
8
8
  import { isDocumentAvailable, Keys, isPresent as isPresent$1, closest as closest$1, isFocusable as isFocusable$1, anyChanged, isChanged as isChanged$1, KendoInput, guid, hasObservers, ResizeSensorComponent, DraggableModule, EventsModule, ResizeSensorModule } from '@progress/kendo-angular-common';
9
9
  import { merge, of, Subject, from, Subscription, interval, fromEvent, zip as zip$1, BehaviorSubject, Observable } from 'rxjs';
@@ -24,14 +24,14 @@ import { IconsModule } from '@progress/kendo-angular-icons';
24
24
  import { plusIcon, cancelIcon, lockIcon, unlockIcon, insertMiddleIcon, caretAltLeftIcon, caretAltToLeftIcon, caretAltRightIcon, caretAltToRightIcon, sortDescSmallIcon, sortAscSmallIcon, filterIcon, stickIcon, unstickIcon, setColumnPositionIcon, columnsIcon, maxWidthIcon, displayInlineFlexIcon, slidersIcon, moreVerticalIcon, filterClearIcon, reorderIcon, caretAltDownIcon, minusIcon } from '@progress/kendo-svg-icons';
25
25
  import * as i41 from '@progress/kendo-angular-utils';
26
26
  import { DragTargetContainerDirective, DropTargetContainerDirective, DragAndDropModule as DragAndDropModule$1 } from '@progress/kendo-angular-utils';
27
- import * as i4$1 from '@progress/kendo-angular-buttons';
28
- import { ButtonModule, ChipModule, Button } from '@progress/kendo-angular-buttons';
29
- import * as i3$1 from '@progress/kendo-angular-inputs';
30
- import { NumericTextBoxComponent, InputsModule, NumericTextBoxModule } from '@progress/kendo-angular-inputs';
31
27
  import * as i1$4 from '@progress/kendo-angular-dropdowns';
32
28
  import { DropDownListComponent, DropDownListModule, AutoCompleteModule, DropDownsModule } from '@progress/kendo-angular-dropdowns';
33
29
  import * as i5 from '@progress/kendo-angular-label';
34
30
  import { LabelModule } from '@progress/kendo-angular-label';
31
+ import * as i4$1 from '@progress/kendo-angular-buttons';
32
+ import { ButtonModule, ChipModule, Button } from '@progress/kendo-angular-buttons';
33
+ import * as i3$1 from '@progress/kendo-angular-inputs';
34
+ import { NumericTextBoxComponent, InputsModule, NumericTextBoxModule } from '@progress/kendo-angular-inputs';
35
35
  import * as i4$3 from '@progress/kendo-angular-dateinputs';
36
36
  import { DatePickerModule } from '@progress/kendo-angular-dateinputs';
37
37
  import * as i16 from '@progress/kendo-angular-layout';
@@ -4442,8 +4442,8 @@ const packageMetadata = {
4442
4442
  name: '@progress/kendo-angular-grid',
4443
4443
  productName: 'Kendo UI for Angular',
4444
4444
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
4445
- publishDate: 1692370838,
4446
- version: '13.4.0-develop.3',
4445
+ publishDate: 1692699707,
4446
+ version: '13.4.0-develop.5',
4447
4447
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
4448
4448
  };
4449
4449
 
@@ -7059,23 +7059,46 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
7059
7059
  type: Input
7060
7060
  }] } });
7061
7061
 
7062
+ // eslint-disable no-access-missing-member
7062
7063
  /**
7063
- * Displays buttons for navigating to the first and to the previous page ([see example](slug:pager_template_grid#toc-using-built-in-pager-components)).
7064
+ * Displays information about the current page and the total number of records ([see example](slug:pager_template_grid#toc-using-built-in-pager-components)).
7064
7065
  */
7065
- class PagerPrevButtonsComponent extends PagerElementComponent {
7066
- constructor(ctx, pagerContext, cd, navigationService) {
7066
+ class PagerInfoComponent extends PagerElementComponent {
7067
+ constructor(ctx, cd, pagerContext) {
7067
7068
  super(ctx, pagerContext, cd);
7068
- this.navigationService = navigationService;
7069
+ this.pagerContext = pagerContext;
7070
+ }
7071
+ /**
7072
+ * @hidden
7073
+ *
7074
+ * @readonly
7075
+ * @type {number}
7076
+ * @memberOf PagerInfoComponent
7077
+ */
7078
+ get maxItems() {
7079
+ return Math.min(this.currentPage * this.pageSize, this.total);
7080
+ }
7081
+ /**
7082
+ * @hidden
7083
+ *
7084
+ * @readonly
7085
+ * @type {number}
7086
+ * @memberOf PagerInfoComponent
7087
+ */
7088
+ get currentPageText() {
7089
+ return this.total ?
7090
+ (this.currentPage - 1) * this.pageSize + 1 :
7091
+ 0;
7069
7092
  }
7070
7093
  /**
7071
7094
  * @hidden
7072
7095
  *
7073
7096
  * @readonly
7074
7097
  * @type {boolean}
7075
- * @memberOf PagerPrevButtonsComponent
7098
+ * @memberOf PagerInfoComponent
7076
7099
  */
7077
- get disabled() {
7078
- return this.currentPage === 1 || !this.total;
7100
+ get classes() {
7101
+ return true;
7079
7102
  }
7080
7103
  onChanges({ total, skip, pageSize }) {
7081
7104
  this.total = total;
@@ -7084,80 +7107,177 @@ class PagerPrevButtonsComponent extends PagerElementComponent {
7084
7107
  this.cd.markForCheck();
7085
7108
  }
7086
7109
  }
7087
- PagerPrevButtonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerPrevButtonsComponent, deps: [{ token: ContextService }, { token: PagerContextService }, { token: i0.ChangeDetectorRef }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
7088
- PagerPrevButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerPrevButtonsComponent, selector: "kendo-pager-prev-buttons", usesInheritance: true, ngImport: i0, template: `
7089
- <button
7090
- [kendoGridFocusable]="!disabled"
7091
- kendoButton
7092
- type="button"
7093
- [title]="textFor('pagerFirstPage')"
7094
- [attr.aria-label]="textFor('pagerFirstPage')"
7095
- (click)="currentPage !== 1 ? changePage(0) : false"
7096
- role="button"
7097
- [icon]="prevArrowIcons[0]"
7098
- [svgIcon]="prevArrowSVGIcons[0]"
7099
- class="k-pager-nav k-pager-first"
7100
- [disabled]="disabled"
7101
- fillMode="flat"
7102
- rounded="none"
7103
- [size]="size">
7104
- </button>
7105
- <button
7106
- kendoButton
7107
- [kendoGridFocusable]="!disabled"
7108
- type="button"
7109
- class="k-pager-nav"
7110
- [disabled]="disabled"
7111
- [icon]="prevArrowIcons[1]"
7112
- [svgIcon]="prevArrowSVGIcons[1]"
7113
- fillMode="flat"
7114
- rounded="none"
7110
+ PagerInfoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerInfoComponent, deps: [{ token: ContextService }, { token: i0.ChangeDetectorRef }, { token: PagerContextService }], target: i0.ɵɵFactoryTarget.Component });
7111
+ PagerInfoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerInfoComponent, selector: "kendo-pager-info", host: { properties: { "class.k-pager-info": "this.classes", "class.k-label": "this.classes" } }, usesInheritance: true, ngImport: i0, template: `{{currentPageText}} - {{maxItems}} {{textFor('pagerOf')}} {{total}} {{textFor('pagerItems')}}`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
7112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerInfoComponent, decorators: [{
7113
+ type: Component,
7114
+ args: [{
7115
+ changeDetection: ChangeDetectionStrategy.OnPush,
7116
+ selector: 'kendo-pager-info',
7117
+ template: `{{currentPageText}} - {{maxItems}} {{textFor('pagerOf')}} {{total}} {{textFor('pagerItems')}}`
7118
+ }]
7119
+ }], ctorParameters: function () { return [{ type: ContextService }, { type: i0.ChangeDetectorRef }, { type: PagerContextService }]; }, propDecorators: { classes: [{
7120
+ type: HostBinding,
7121
+ args: ["class.k-pager-info"]
7122
+ }, {
7123
+ type: HostBinding,
7124
+ args: ["class.k-label"]
7125
+ }] } });
7126
+
7127
+ /**
7128
+ * @hidden
7129
+ */
7130
+ class PagerDropDownListDirective {
7131
+ constructor(host) {
7132
+ this.host = host;
7133
+ this.keydownHandler = (e) => {
7134
+ if (e.keyCode === Keys.Escape && this.host.isOpen) {
7135
+ e.stopPropagation();
7136
+ this.host.toggle(false);
7137
+ }
7138
+ };
7139
+ }
7140
+ ngAfterViewInit() {
7141
+ const wrapperElement = this.host.wrapper.nativeElement;
7142
+ wrapperElement.addEventListener('keydown', this.keydownHandler, true);
7143
+ }
7144
+ ngOnDestroy() {
7145
+ this.host.wrapper.nativeElement.removeEventListener('keydown', this.keydownHandler);
7146
+ }
7147
+ }
7148
+ PagerDropDownListDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerDropDownListDirective, deps: [{ token: i1$4.DropDownListComponent }], target: i0.ɵɵFactoryTarget.Directive });
7149
+ PagerDropDownListDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: PagerDropDownListDirective, selector: "[kendoGridPagerDropDown]", ngImport: i0 });
7150
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerDropDownListDirective, decorators: [{
7151
+ type: Directive,
7152
+ args: [{ selector: '[kendoGridPagerDropDown]' }]
7153
+ }], ctorParameters: function () { return [{ type: i1$4.DropDownListComponent }]; } });
7154
+
7155
+ /**
7156
+ * Displays a drop-down list for the page size selection ([see example](slug:pager_template_grid#toc-using-built-in-pager-components)).
7157
+ */
7158
+ class PagerPageSizesComponent extends PagerElementComponent {
7159
+ constructor(ctx, cd, pagerContext, navigationService) {
7160
+ super(ctx, pagerContext, cd);
7161
+ this.pagerContext = pagerContext;
7162
+ this.navigationService = navigationService;
7163
+ this._pageSizes = [];
7164
+ }
7165
+ /**
7166
+ * The page sizes collection. Can be an Array of numbers and/or [`PageSizeItem`](slug:api_grid_pagesizeitem) objects
7167
+ * ([see example]({% slug paging_grid %}#toc-pager-templates))
7168
+ */
7169
+ set pageSizes(pageSizes) {
7170
+ let normalizedItems = [];
7171
+ pageSizes.forEach(item => {
7172
+ if (typeof item === 'number') {
7173
+ normalizedItems.push({
7174
+ text: item.toString(),
7175
+ value: item
7176
+ });
7177
+ }
7178
+ else {
7179
+ normalizedItems.push(item);
7180
+ }
7181
+ });
7182
+ if (this.pageSize && !normalizedItems.some(item => item.value === this.pageSize)) {
7183
+ normalizedItems = [{ text: this.pageSize.toString(), value: this.pageSize }, ...normalizedItems];
7184
+ }
7185
+ this._pageSizes = normalizedItems;
7186
+ }
7187
+ get pageSizes() {
7188
+ return this._pageSizes;
7189
+ }
7190
+ /**
7191
+ * @hidden
7192
+ *
7193
+ * @readonly
7194
+ */
7195
+ get classes() {
7196
+ return true;
7197
+ }
7198
+ /**
7199
+ * @hidden
7200
+ *
7201
+ * @readonly
7202
+ */
7203
+ get showInitialPageSize() {
7204
+ return this.pageSizes
7205
+ .filter(item => {
7206
+ if (typeof item.value === 'number') {
7207
+ return item.value === Number(this.pageSize);
7208
+ }
7209
+ return this.total === Number(this.pageSize);
7210
+ })
7211
+ .length === 0;
7212
+ }
7213
+ /**
7214
+ * @hidden
7215
+ */
7216
+ pageSizeChange(value) {
7217
+ this.pageSize = typeof value === 'number' ? value : this.total;
7218
+ this.pagerContext.changePageSize(this.pageSize);
7219
+ }
7220
+ /**
7221
+ * @hidden
7222
+ */
7223
+ getValue(page) {
7224
+ return typeof page.value === 'number' ? page.value : this.total;
7225
+ }
7226
+ onChanges({ total, skip, pageSize }) {
7227
+ this.total = total;
7228
+ this.skip = skip;
7229
+ this.pageSize = typeof pageSize === 'number' ? pageSize : this.total;
7230
+ this.cd.markForCheck();
7231
+ }
7232
+ }
7233
+ PagerPageSizesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerPageSizesComponent, deps: [{ token: ContextService }, { token: i0.ChangeDetectorRef }, { token: PagerContextService }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
7234
+ PagerPageSizesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerPageSizesComponent, selector: "kendo-pager-page-sizes", inputs: { pageSizes: "pageSizes" }, host: { properties: { "class.k-pager-sizes": "this.classes", "class.k-label": "this.classes" } }, usesInheritance: true, ngImport: i0, template: `
7235
+ <kendo-dropdownlist
7236
+ class="k-dropdown"
7237
+ #dropdownlist
7115
7238
  [size]="size"
7116
- [title]="textFor('pagerPreviousPage')"
7117
- [attr.aria-label]="textFor('pagerPreviousPage')"
7118
- (click)="currentPage !== 1 ? changePage(currentPage-2) : false">
7119
- </button>
7120
- `, isInline: true, components: [{ type: i4$1.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], directives: [{ type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
7121
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerPrevButtonsComponent, decorators: [{
7239
+ kendoGridPagerDropDown
7240
+ [tabindex]="0"
7241
+ kendoGridFocusable
7242
+ [data]="pageSizes"
7243
+ textField="text"
7244
+ valueField="value"
7245
+ [valuePrimitive]="true"
7246
+ [value]="pageSize"
7247
+ (valueChange)="pageSizeChange($event)"></kendo-dropdownlist>
7248
+ <kendo-label [for]="dropdownlist" [text]="textFor('pagerItemsPerPage')"></kendo-label>
7249
+ `, isInline: true, components: [{ type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["showStickyHeader", "iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { type: i5.LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional", "labelCssStyle", "labelCssClass"], exportAs: ["kendoLabel"] }], directives: [{ type: PagerDropDownListDirective, selector: "[kendoGridPagerDropDown]" }, { type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
7250
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerPageSizesComponent, decorators: [{
7122
7251
  type: Component,
7123
7252
  args: [{
7124
7253
  changeDetection: ChangeDetectionStrategy.OnPush,
7125
- selector: 'kendo-pager-prev-buttons',
7254
+ selector: 'kendo-pager-page-sizes',
7126
7255
  template: `
7127
- <button
7128
- [kendoGridFocusable]="!disabled"
7129
- kendoButton
7130
- type="button"
7131
- [title]="textFor('pagerFirstPage')"
7132
- [attr.aria-label]="textFor('pagerFirstPage')"
7133
- (click)="currentPage !== 1 ? changePage(0) : false"
7134
- role="button"
7135
- [icon]="prevArrowIcons[0]"
7136
- [svgIcon]="prevArrowSVGIcons[0]"
7137
- class="k-pager-nav k-pager-first"
7138
- [disabled]="disabled"
7139
- fillMode="flat"
7140
- rounded="none"
7141
- [size]="size">
7142
- </button>
7143
- <button
7144
- kendoButton
7145
- [kendoGridFocusable]="!disabled"
7146
- type="button"
7147
- class="k-pager-nav"
7148
- [disabled]="disabled"
7149
- [icon]="prevArrowIcons[1]"
7150
- [svgIcon]="prevArrowSVGIcons[1]"
7151
- fillMode="flat"
7152
- rounded="none"
7256
+ <kendo-dropdownlist
7257
+ class="k-dropdown"
7258
+ #dropdownlist
7153
7259
  [size]="size"
7154
- [title]="textFor('pagerPreviousPage')"
7155
- [attr.aria-label]="textFor('pagerPreviousPage')"
7156
- (click)="currentPage !== 1 ? changePage(currentPage-2) : false">
7157
- </button>
7260
+ kendoGridPagerDropDown
7261
+ [tabindex]="0"
7262
+ kendoGridFocusable
7263
+ [data]="pageSizes"
7264
+ textField="text"
7265
+ valueField="value"
7266
+ [valuePrimitive]="true"
7267
+ [value]="pageSize"
7268
+ (valueChange)="pageSizeChange($event)"></kendo-dropdownlist>
7269
+ <kendo-label [for]="dropdownlist" [text]="textFor('pagerItemsPerPage')"></kendo-label>
7158
7270
  `
7159
7271
  }]
7160
- }], ctorParameters: function () { return [{ type: ContextService }, { type: PagerContextService }, { type: i0.ChangeDetectorRef }, { type: NavigationService }]; } });
7272
+ }], ctorParameters: function () { return [{ type: ContextService }, { type: i0.ChangeDetectorRef }, { type: PagerContextService }, { type: NavigationService }]; }, propDecorators: { pageSizes: [{
7273
+ type: Input
7274
+ }], classes: [{
7275
+ type: HostBinding,
7276
+ args: ['class.k-pager-sizes']
7277
+ }, {
7278
+ type: HostBinding,
7279
+ args: ['class.k-label']
7280
+ }] } });
7161
7281
 
7162
7282
  /**
7163
7283
  * Displays numeric buttons to enable navigation between the pages ([see example](slug:pager_template_grid#toc-using-built-in-pager-components)).
@@ -7166,7 +7286,6 @@ class PagerNumericButtonsComponent extends PagerElementComponent {
7166
7286
  constructor(ctx, cd, pagerContext) {
7167
7287
  super(ctx, pagerContext, cd);
7168
7288
  this.pagerContext = pagerContext;
7169
- this.numbersWrapClass = true;
7170
7289
  }
7171
7290
  /**
7172
7291
  * @hidden
@@ -7236,10 +7355,12 @@ class PagerNumericButtonsComponent extends PagerElementComponent {
7236
7355
  }
7237
7356
  }
7238
7357
  PagerNumericButtonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerNumericButtonsComponent, deps: [{ token: ContextService }, { token: i0.ChangeDetectorRef }, { token: PagerContextService }], target: i0.ɵɵFactoryTarget.Component });
7239
- PagerNumericButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerNumericButtonsComponent, selector: "kendo-pager-numeric-buttons", inputs: { buttonCount: "buttonCount" }, host: { properties: { "class.k-pager-numbers-wrap": "this.numbersWrapClass" } }, usesInheritance: true, ngImport: i0, template: `
7358
+ PagerNumericButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerNumericButtonsComponent, selector: "kendo-pager-numeric-buttons", inputs: { buttonCount: "buttonCount" }, viewQueries: [{ propertyName: "selectElement", first: true, predicate: ["select"], descendants: true, read: ElementRef }, { propertyName: "numbersElement", first: true, predicate: ["numbers"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: `
7240
7359
  <select
7360
+ #select
7241
7361
  class="k-dropdown-list k-dropdown k-picker k-picker-solid k-rounded-md"
7242
7362
  kendoGridFocusable
7363
+ [style.display]="'none'"
7243
7364
  [attr.title]="textFor('selectPage')"
7244
7365
  [attr.aria-label]="textFor('selectPage')"
7245
7366
  [ngClass]="{
@@ -7266,7 +7387,7 @@ PagerNumericButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
7266
7387
  [attr.aria-label]="pageLabel(end + 1)">...
7267
7388
  </option>
7268
7389
  </select>
7269
- <div class="k-pager-numbers">
7390
+ <div class="k-pager-numbers" #numbers>
7270
7391
  <button *ngIf="start > 1"
7271
7392
  type="button"
7272
7393
  kendoGridFocusable
@@ -7316,8 +7437,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
7316
7437
  selector: 'kendo-pager-numeric-buttons',
7317
7438
  template: `
7318
7439
  <select
7440
+ #select
7319
7441
  class="k-dropdown-list k-dropdown k-picker k-picker-solid k-rounded-md"
7320
7442
  kendoGridFocusable
7443
+ [style.display]="'none'"
7321
7444
  [attr.title]="textFor('selectPage')"
7322
7445
  [attr.aria-label]="textFor('selectPage')"
7323
7446
  [ngClass]="{
@@ -7344,7 +7467,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
7344
7467
  [attr.aria-label]="pageLabel(end + 1)">...
7345
7468
  </option>
7346
7469
  </select>
7347
- <div class="k-pager-numbers">
7470
+ <div class="k-pager-numbers" #numbers>
7348
7471
  <button *ngIf="start > 1"
7349
7472
  type="button"
7350
7473
  kendoGridFocusable
@@ -7388,13 +7511,116 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
7388
7511
  </div>
7389
7512
  `
7390
7513
  }]
7391
- }], ctorParameters: function () { return [{ type: ContextService }, { type: i0.ChangeDetectorRef }, { type: PagerContextService }]; }, propDecorators: { numbersWrapClass: [{
7392
- type: HostBinding,
7393
- args: ['class.k-pager-numbers-wrap']
7514
+ }], ctorParameters: function () { return [{ type: ContextService }, { type: i0.ChangeDetectorRef }, { type: PagerContextService }]; }, propDecorators: { selectElement: [{
7515
+ type: ViewChild,
7516
+ args: ['select', { read: ElementRef }]
7517
+ }], numbersElement: [{
7518
+ type: ViewChild,
7519
+ args: ['numbers', { read: ElementRef }]
7394
7520
  }], buttonCount: [{
7395
7521
  type: Input
7396
7522
  }] } });
7397
7523
 
7524
+ /**
7525
+ * Displays buttons for navigating to the first and to the previous page ([see example](slug:pager_template_grid#toc-using-built-in-pager-components)).
7526
+ */
7527
+ class PagerPrevButtonsComponent extends PagerElementComponent {
7528
+ constructor(ctx, pagerContext, cd, navigationService) {
7529
+ super(ctx, pagerContext, cd);
7530
+ this.navigationService = navigationService;
7531
+ }
7532
+ /**
7533
+ * @hidden
7534
+ *
7535
+ * @readonly
7536
+ * @type {boolean}
7537
+ * @memberOf PagerPrevButtonsComponent
7538
+ */
7539
+ get disabled() {
7540
+ return this.currentPage === 1 || !this.total;
7541
+ }
7542
+ onChanges({ total, skip, pageSize }) {
7543
+ this.total = total;
7544
+ this.skip = skip;
7545
+ this.pageSize = pageSize;
7546
+ this.cd.markForCheck();
7547
+ }
7548
+ }
7549
+ PagerPrevButtonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerPrevButtonsComponent, deps: [{ token: ContextService }, { token: PagerContextService }, { token: i0.ChangeDetectorRef }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
7550
+ PagerPrevButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerPrevButtonsComponent, selector: "kendo-pager-prev-buttons", usesInheritance: true, ngImport: i0, template: `
7551
+ <button
7552
+ [kendoGridFocusable]="!disabled"
7553
+ kendoButton
7554
+ type="button"
7555
+ [title]="textFor('pagerFirstPage')"
7556
+ [attr.aria-label]="textFor('pagerFirstPage')"
7557
+ (click)="currentPage !== 1 ? changePage(0) : false"
7558
+ role="button"
7559
+ [icon]="prevArrowIcons[0]"
7560
+ [svgIcon]="prevArrowSVGIcons[0]"
7561
+ class="k-pager-nav k-pager-first"
7562
+ [disabled]="disabled"
7563
+ fillMode="flat"
7564
+ rounded="none"
7565
+ [size]="size">
7566
+ </button>
7567
+ <button
7568
+ kendoButton
7569
+ [kendoGridFocusable]="!disabled"
7570
+ type="button"
7571
+ class="k-pager-nav"
7572
+ [disabled]="disabled"
7573
+ [icon]="prevArrowIcons[1]"
7574
+ [svgIcon]="prevArrowSVGIcons[1]"
7575
+ fillMode="flat"
7576
+ rounded="none"
7577
+ [size]="size"
7578
+ [title]="textFor('pagerPreviousPage')"
7579
+ [attr.aria-label]="textFor('pagerPreviousPage')"
7580
+ (click)="currentPage !== 1 ? changePage(currentPage-2) : false">
7581
+ </button>
7582
+ `, isInline: true, components: [{ type: i4$1.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], directives: [{ type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
7583
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerPrevButtonsComponent, decorators: [{
7584
+ type: Component,
7585
+ args: [{
7586
+ changeDetection: ChangeDetectionStrategy.OnPush,
7587
+ selector: 'kendo-pager-prev-buttons',
7588
+ template: `
7589
+ <button
7590
+ [kendoGridFocusable]="!disabled"
7591
+ kendoButton
7592
+ type="button"
7593
+ [title]="textFor('pagerFirstPage')"
7594
+ [attr.aria-label]="textFor('pagerFirstPage')"
7595
+ (click)="currentPage !== 1 ? changePage(0) : false"
7596
+ role="button"
7597
+ [icon]="prevArrowIcons[0]"
7598
+ [svgIcon]="prevArrowSVGIcons[0]"
7599
+ class="k-pager-nav k-pager-first"
7600
+ [disabled]="disabled"
7601
+ fillMode="flat"
7602
+ rounded="none"
7603
+ [size]="size">
7604
+ </button>
7605
+ <button
7606
+ kendoButton
7607
+ [kendoGridFocusable]="!disabled"
7608
+ type="button"
7609
+ class="k-pager-nav"
7610
+ [disabled]="disabled"
7611
+ [icon]="prevArrowIcons[1]"
7612
+ [svgIcon]="prevArrowSVGIcons[1]"
7613
+ fillMode="flat"
7614
+ rounded="none"
7615
+ [size]="size"
7616
+ [title]="textFor('pagerPreviousPage')"
7617
+ [attr.aria-label]="textFor('pagerPreviousPage')"
7618
+ (click)="currentPage !== 1 ? changePage(currentPage-2) : false">
7619
+ </button>
7620
+ `
7621
+ }]
7622
+ }], ctorParameters: function () { return [{ type: ContextService }, { type: PagerContextService }, { type: i0.ChangeDetectorRef }, { type: NavigationService }]; } });
7623
+
7398
7624
  /**
7399
7625
  * @hidden
7400
7626
  */
@@ -7637,226 +7863,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
7637
7863
  }]
7638
7864
  }], ctorParameters: function () { return [{ type: ContextService }, { type: PagerContextService }, { type: i0.ChangeDetectorRef }, { type: NavigationService }]; } });
7639
7865
 
7640
- // eslint-disable no-access-missing-member
7641
- /**
7642
- * Displays information about the current page and the total number of records ([see example](slug:pager_template_grid#toc-using-built-in-pager-components)).
7643
- */
7644
- class PagerInfoComponent extends PagerElementComponent {
7645
- constructor(ctx, cd, pagerContext) {
7646
- super(ctx, pagerContext, cd);
7647
- this.pagerContext = pagerContext;
7648
- }
7649
- /**
7650
- * @hidden
7651
- *
7652
- * @readonly
7653
- * @type {number}
7654
- * @memberOf PagerInfoComponent
7655
- */
7656
- get maxItems() {
7657
- return Math.min(this.currentPage * this.pageSize, this.total);
7658
- }
7659
- /**
7660
- * @hidden
7661
- *
7662
- * @readonly
7663
- * @type {number}
7664
- * @memberOf PagerInfoComponent
7665
- */
7666
- get currentPageText() {
7667
- return this.total ?
7668
- (this.currentPage - 1) * this.pageSize + 1 :
7669
- 0;
7670
- }
7671
- /**
7672
- * @hidden
7673
- *
7674
- * @readonly
7675
- * @type {boolean}
7676
- * @memberOf PagerInfoComponent
7677
- */
7678
- get classes() {
7679
- return true;
7680
- }
7681
- onChanges({ total, skip, pageSize }) {
7682
- this.total = total;
7683
- this.skip = skip;
7684
- this.pageSize = pageSize;
7685
- this.cd.markForCheck();
7686
- }
7687
- }
7688
- PagerInfoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerInfoComponent, deps: [{ token: ContextService }, { token: i0.ChangeDetectorRef }, { token: PagerContextService }], target: i0.ɵɵFactoryTarget.Component });
7689
- PagerInfoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerInfoComponent, selector: "kendo-pager-info", host: { properties: { "class.k-pager-info": "this.classes", "class.k-label": "this.classes" } }, usesInheritance: true, ngImport: i0, template: `{{currentPageText}} - {{maxItems}} {{textFor('pagerOf')}} {{total}} {{textFor('pagerItems')}}`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
7690
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerInfoComponent, decorators: [{
7691
- type: Component,
7692
- args: [{
7693
- changeDetection: ChangeDetectionStrategy.OnPush,
7694
- selector: 'kendo-pager-info',
7695
- template: `{{currentPageText}} - {{maxItems}} {{textFor('pagerOf')}} {{total}} {{textFor('pagerItems')}}`
7696
- }]
7697
- }], ctorParameters: function () { return [{ type: ContextService }, { type: i0.ChangeDetectorRef }, { type: PagerContextService }]; }, propDecorators: { classes: [{
7698
- type: HostBinding,
7699
- args: ["class.k-pager-info"]
7700
- }, {
7701
- type: HostBinding,
7702
- args: ["class.k-label"]
7703
- }] } });
7704
-
7705
- /**
7706
- * @hidden
7707
- */
7708
- class PagerDropDownListDirective {
7709
- constructor(host) {
7710
- this.host = host;
7711
- this.keydownHandler = (e) => {
7712
- if (e.keyCode === Keys.Escape && this.host.isOpen) {
7713
- e.stopPropagation();
7714
- this.host.toggle(false);
7715
- }
7716
- };
7717
- }
7718
- ngAfterViewInit() {
7719
- const wrapperElement = this.host.wrapper.nativeElement;
7720
- wrapperElement.addEventListener('keydown', this.keydownHandler, true);
7721
- }
7722
- ngOnDestroy() {
7723
- this.host.wrapper.nativeElement.removeEventListener('keydown', this.keydownHandler);
7724
- }
7725
- }
7726
- PagerDropDownListDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerDropDownListDirective, deps: [{ token: i1$4.DropDownListComponent }], target: i0.ɵɵFactoryTarget.Directive });
7727
- PagerDropDownListDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: PagerDropDownListDirective, selector: "[kendoGridPagerDropDown]", ngImport: i0 });
7728
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerDropDownListDirective, decorators: [{
7729
- type: Directive,
7730
- args: [{ selector: '[kendoGridPagerDropDown]' }]
7731
- }], ctorParameters: function () { return [{ type: i1$4.DropDownListComponent }]; } });
7732
-
7733
- /**
7734
- * Displays a drop-down list for the page size selection ([see example](slug:pager_template_grid#toc-using-built-in-pager-components)).
7735
- */
7736
- class PagerPageSizesComponent extends PagerElementComponent {
7737
- constructor(ctx, cd, pagerContext, navigationService) {
7738
- super(ctx, pagerContext, cd);
7739
- this.pagerContext = pagerContext;
7740
- this.navigationService = navigationService;
7741
- this._pageSizes = [];
7742
- }
7743
- /**
7744
- * The page sizes collection. Can be an Array of numbers and/or [`PageSizeItem`](slug:api_grid_pagesizeitem) objects
7745
- * ([see example]({% slug paging_grid %}#toc-pager-templates))
7746
- */
7747
- set pageSizes(pageSizes) {
7748
- let normalizedItems = [];
7749
- pageSizes.forEach(item => {
7750
- if (typeof item === 'number') {
7751
- normalizedItems.push({
7752
- text: item.toString(),
7753
- value: item
7754
- });
7755
- }
7756
- else {
7757
- normalizedItems.push(item);
7758
- }
7759
- });
7760
- if (this.pageSize && !normalizedItems.some(item => item.value === this.pageSize)) {
7761
- normalizedItems = [{ text: this.pageSize.toString(), value: this.pageSize }, ...normalizedItems];
7762
- }
7763
- this._pageSizes = normalizedItems;
7764
- }
7765
- get pageSizes() {
7766
- return this._pageSizes;
7767
- }
7768
- /**
7769
- * @hidden
7770
- *
7771
- * @readonly
7772
- */
7773
- get classes() {
7774
- return true;
7775
- }
7776
- /**
7777
- * @hidden
7778
- *
7779
- * @readonly
7780
- */
7781
- get showInitialPageSize() {
7782
- return this.pageSizes
7783
- .filter(item => {
7784
- if (typeof item.value === 'number') {
7785
- return item.value === Number(this.pageSize);
7786
- }
7787
- return this.total === Number(this.pageSize);
7788
- })
7789
- .length === 0;
7790
- }
7791
- /**
7792
- * @hidden
7793
- */
7794
- pageSizeChange(value) {
7795
- this.pageSize = typeof value === 'number' ? value : this.total;
7796
- this.pagerContext.changePageSize(this.pageSize);
7797
- }
7798
- /**
7799
- * @hidden
7800
- */
7801
- getValue(page) {
7802
- return typeof page.value === 'number' ? page.value : this.total;
7803
- }
7804
- onChanges({ total, skip, pageSize }) {
7805
- this.total = total;
7806
- this.skip = skip;
7807
- this.pageSize = typeof pageSize === 'number' ? pageSize : this.total;
7808
- this.cd.markForCheck();
7809
- }
7810
- }
7811
- PagerPageSizesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerPageSizesComponent, deps: [{ token: ContextService }, { token: i0.ChangeDetectorRef }, { token: PagerContextService }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
7812
- PagerPageSizesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerPageSizesComponent, selector: "kendo-pager-page-sizes", inputs: { pageSizes: "pageSizes" }, host: { properties: { "class.k-pager-sizes": "this.classes", "class.k-label": "this.classes" } }, usesInheritance: true, ngImport: i0, template: `
7813
- <kendo-dropdownlist
7814
- class="k-dropdown"
7815
- #dropdownlist
7816
- [size]="size"
7817
- kendoGridPagerDropDown
7818
- [tabindex]="0"
7819
- kendoGridFocusable
7820
- [data]="pageSizes"
7821
- textField="text"
7822
- valueField="value"
7823
- [valuePrimitive]="true"
7824
- [value]="pageSize"
7825
- (valueChange)="pageSizeChange($event)"></kendo-dropdownlist>
7826
- <kendo-label [for]="dropdownlist" [text]="textFor('pagerItemsPerPage')"></kendo-label>
7827
- `, isInline: true, components: [{ type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["showStickyHeader", "iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { type: i5.LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional", "labelCssStyle", "labelCssClass"], exportAs: ["kendoLabel"] }], directives: [{ type: PagerDropDownListDirective, selector: "[kendoGridPagerDropDown]" }, { type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
7828
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerPageSizesComponent, decorators: [{
7829
- type: Component,
7830
- args: [{
7831
- changeDetection: ChangeDetectionStrategy.OnPush,
7832
- selector: 'kendo-pager-page-sizes',
7833
- template: `
7834
- <kendo-dropdownlist
7835
- class="k-dropdown"
7836
- #dropdownlist
7837
- [size]="size"
7838
- kendoGridPagerDropDown
7839
- [tabindex]="0"
7840
- kendoGridFocusable
7841
- [data]="pageSizes"
7842
- textField="text"
7843
- valueField="value"
7844
- [valuePrimitive]="true"
7845
- [value]="pageSize"
7846
- (valueChange)="pageSizeChange($event)"></kendo-dropdownlist>
7847
- <kendo-label [for]="dropdownlist" [text]="textFor('pagerItemsPerPage')"></kendo-label>
7848
- `
7849
- }]
7850
- }], ctorParameters: function () { return [{ type: ContextService }, { type: i0.ChangeDetectorRef }, { type: PagerContextService }, { type: NavigationService }]; }, propDecorators: { pageSizes: [{
7851
- type: Input
7852
- }], classes: [{
7853
- type: HostBinding,
7854
- args: ['class.k-pager-sizes']
7855
- }, {
7856
- type: HostBinding,
7857
- args: ['class.k-label']
7858
- }] } });
7859
-
7860
7866
  /**
7861
7867
  * @hidden
7862
7868
  */
@@ -7886,18 +7892,33 @@ class PagerComponent {
7886
7892
  if (this.template || !element) {
7887
7893
  return;
7888
7894
  }
7889
- const width = element.offsetWidth;
7890
- if (width < RESPONSIVE_BREAKPOINT_MEDIUM) {
7891
- this.renderer.removeClass(element, 'k-pager-mobile-md');
7892
- this.renderer.addClass(element, 'k-pager-mobile-sm');
7893
- }
7894
- else if (width >= RESPONSIVE_BREAKPOINT_MEDIUM && width < RESPONSIVE_BREAKPOINT_LARGE) {
7895
- this.renderer.addClass(element, 'k-pager-mobile-md');
7896
- this.renderer.removeClass(element, 'k-pager-mobile-sm');
7897
- }
7898
- else {
7899
- this.clearResponsiveClasses();
7900
- }
7895
+ this.zone.runOutsideAngular(() => {
7896
+ setTimeout(() => {
7897
+ const width = element.offsetWidth;
7898
+ if (this.numericButtons) {
7899
+ const selectElement = this.numericButtons.selectElement.nativeElement;
7900
+ const numbersElement = this.numericButtons.numbersElement.nativeElement;
7901
+ this.renderer.removeStyle(numbersElement, 'display');
7902
+ this.renderer.setStyle(selectElement, 'display', 'none');
7903
+ if (width < RESPONSIVE_BREAKPOINT_MEDIUM) {
7904
+ this.renderer.removeStyle(selectElement, 'display');
7905
+ this.renderer.setStyle(numbersElement, 'display', 'none');
7906
+ }
7907
+ }
7908
+ if (this.pagerInfo) {
7909
+ this.renderer.removeStyle(this.pagerInfo.nativeElement, 'display');
7910
+ if (width < RESPONSIVE_BREAKPOINT_LARGE) {
7911
+ this.renderer.setStyle(this.pagerInfo.nativeElement, 'display', 'none');
7912
+ }
7913
+ }
7914
+ if (this.pagerPageSizes) {
7915
+ this.renderer.removeStyle(this.pagerPageSizes.nativeElement, 'display');
7916
+ if (width < RESPONSIVE_BREAKPOINT_MEDIUM) {
7917
+ this.renderer.setStyle(this.pagerPageSizes.nativeElement, 'display', 'none');
7918
+ }
7919
+ }
7920
+ });
7921
+ });
7901
7922
  };
7902
7923
  }
7903
7924
  set options(value) {
@@ -8016,12 +8037,10 @@ class PagerComponent {
8016
8037
  }
8017
8038
  const changesInTemplate = changes['template'];
8018
8039
  if (changesInTemplate) {
8019
- // eslint-disable-next-line no-unused-expressions
8020
- changesInTemplate.currentValue ? this.clearResponsiveClasses() : this.resizeHandler();
8040
+ changesInTemplate.currentValue ? this.clearResponsiveStyling() : this.resizeHandler();
8021
8041
  }
8022
8042
  if (changes['options']) {
8023
- // eslint-disable-next-line no-unused-expressions
8024
- this.settings.responsive ? this.resizeHandler() : this.clearResponsiveClasses();
8043
+ this.settings.responsive ? this.resizeHandler() : this.clearResponsiveStyling();
8025
8044
  }
8026
8045
  }
8027
8046
  ngOnDestroy() {
@@ -8047,11 +8066,6 @@ class PagerComponent {
8047
8066
  }
8048
8067
  });
8049
8068
  }
8050
- clearResponsiveClasses() {
8051
- const element = this.element.nativeElement;
8052
- this.renderer.removeClass(element, 'k-pager-mobile-sm');
8053
- this.renderer.removeClass(element, 'k-pager-mobile-md');
8054
- }
8055
8069
  shouldTriggerPageChange(target, condition) {
8056
8070
  return this.navigationService.pagerEnabled &&
8057
8071
  target === this.element.nativeElement &&
@@ -8074,6 +8088,18 @@ class PagerComponent {
8074
8088
  this.cellContext.focusGroup = this.focusGroup;
8075
8089
  }
8076
8090
  }
8091
+ clearResponsiveStyling() {
8092
+ this.zone.runOutsideAngular(() => {
8093
+ setTimeout(() => {
8094
+ if (this.numericButtons) {
8095
+ this.renderer.removeStyle(this.numericButtons.numbersElement.nativeElement, 'display');
8096
+ this.renderer.setStyle(this.numericButtons.selectElement.nativeElement, 'display', 'none');
8097
+ }
8098
+ this.pagerInfo && this.renderer.removeStyle(this.pagerInfo.nativeElement, 'display');
8099
+ this.pagerPageSizes && this.renderer.removeStyle(this.pagerPageSizes.nativeElement, 'display');
8100
+ });
8101
+ });
8102
+ }
8077
8103
  }
8078
8104
  PagerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerComponent, deps: [{ token: PagerContextService }, { token: NavigationService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: ContextService }, { token: CELL_CONTEXT, optional: true }, { token: FocusRoot }, { token: FocusGroup }], target: i0.ɵɵFactoryTarget.Component });
8079
8105
  PagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerComponent, selector: "kendo-pager", inputs: { total: "total", skip: "skip", pageSize: "pageSize", options: "options", size: "size", template: "template" }, outputs: { pageChange: "pageChange" }, host: { listeners: { "focusin": "onFocusIn($event)", "focusout": "onFocusOut()", "keydown.escape": "onEscape()", "keydown.enter": "onEnter($event)", "keydown.arrowleft": "navigateToPreviousPage($event)", "keydown.pageup": "navigateToPreviousPage($event)", "keydown.arrowright": "navigateToNextPage($event)", "keydown.pagedown": "navigateToNextPage($event)", "keydown.home": "navigateToFirstPage($event)", "keydown.end": "navigateToLastPage($event)" }, properties: { "class.k-pager-wrap": "this.pagerWrapClass", "class.k-grid-pager": "this.gridPagerClass", "class.k-pager-sm": "this.sizeSmallClass", "class.k-pager-md": "this.sizeMediumClass", "class.k-focus": "this.isFocused", "attr.aria-label": "this.pagerAriaLabel" } }, providers: [{
@@ -8087,7 +8113,7 @@ PagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
8087
8113
  provide: FocusGroup,
8088
8114
  deps: [FocusRoot],
8089
8115
  useClass: FocusGroup
8090
- }], usesOnChanges: true, ngImport: i0, template: `
8116
+ }], viewQueries: [{ propertyName: "pagerInfo", first: true, predicate: PagerInfoComponent, descendants: true, read: ElementRef }, { propertyName: "pagerPageSizes", first: true, predicate: PagerPageSizesComponent, descendants: true, read: ElementRef }, { propertyName: "numericButtons", first: true, predicate: PagerNumericButtonsComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
8091
8117
  <div
8092
8118
  *ngIf="navigationService.pagerEnabled"
8093
8119
  class="k-sr-only"
@@ -8101,20 +8127,21 @@ PagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
8101
8127
  [ngTemplateOutletContext]="templateContext">
8102
8128
  </ng-container>
8103
8129
  <ng-container *ngIf="!template?.templateRef">
8104
- <kendo-pager-prev-buttons [size]="size" *ngIf="settings.previousNext"></kendo-pager-prev-buttons>
8105
- <kendo-pager-numeric-buttons
8106
- [size]="size"
8107
- *ngIf="settings.type === 'numeric'"
8108
- [buttonCount]="settings.buttonCount">
8109
- </kendo-pager-numeric-buttons>
8110
- <kendo-pager-input [size]="size" *ngIf="settings.type === 'input'"></kendo-pager-input>
8111
- <kendo-pager-next-buttons [size]="size" *ngIf="settings.previousNext"></kendo-pager-next-buttons>
8130
+ <div class="k-pager-numbers-wrap">
8131
+ <kendo-pager-prev-buttons [size]="size" *ngIf="settings.previousNext"></kendo-pager-prev-buttons>
8132
+ <kendo-pager-numeric-buttons
8133
+ [size]="size"
8134
+ *ngIf="settings.type === 'numeric'"
8135
+ [buttonCount]="settings.buttonCount">
8136
+ </kendo-pager-numeric-buttons>
8137
+ <kendo-pager-input [size]="size" *ngIf="settings.type === 'input'"></kendo-pager-input>
8138
+ <kendo-pager-next-buttons [size]="size" *ngIf="settings.previousNext"></kendo-pager-next-buttons>
8139
+ </div>
8112
8140
  <kendo-pager-info *ngIf='settings.info'></kendo-pager-info>
8113
8141
  <kendo-pager-page-sizes
8114
8142
  [size]="size"
8115
8143
  *ngIf="settings.pageSizes"
8116
8144
  [pageSizes]="$any(settings.pageSizes)"
8117
- #pageSizes
8118
8145
  ></kendo-pager-page-sizes>
8119
8146
  </ng-container>
8120
8147
  <div
@@ -8156,20 +8183,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
8156
8183
  [ngTemplateOutletContext]="templateContext">
8157
8184
  </ng-container>
8158
8185
  <ng-container *ngIf="!template?.templateRef">
8159
- <kendo-pager-prev-buttons [size]="size" *ngIf="settings.previousNext"></kendo-pager-prev-buttons>
8160
- <kendo-pager-numeric-buttons
8161
- [size]="size"
8162
- *ngIf="settings.type === 'numeric'"
8163
- [buttonCount]="settings.buttonCount">
8164
- </kendo-pager-numeric-buttons>
8165
- <kendo-pager-input [size]="size" *ngIf="settings.type === 'input'"></kendo-pager-input>
8166
- <kendo-pager-next-buttons [size]="size" *ngIf="settings.previousNext"></kendo-pager-next-buttons>
8186
+ <div class="k-pager-numbers-wrap">
8187
+ <kendo-pager-prev-buttons [size]="size" *ngIf="settings.previousNext"></kendo-pager-prev-buttons>
8188
+ <kendo-pager-numeric-buttons
8189
+ [size]="size"
8190
+ *ngIf="settings.type === 'numeric'"
8191
+ [buttonCount]="settings.buttonCount">
8192
+ </kendo-pager-numeric-buttons>
8193
+ <kendo-pager-input [size]="size" *ngIf="settings.type === 'input'"></kendo-pager-input>
8194
+ <kendo-pager-next-buttons [size]="size" *ngIf="settings.previousNext"></kendo-pager-next-buttons>
8195
+ </div>
8167
8196
  <kendo-pager-info *ngIf='settings.info'></kendo-pager-info>
8168
8197
  <kendo-pager-page-sizes
8169
8198
  [size]="size"
8170
8199
  *ngIf="settings.pageSizes"
8171
8200
  [pageSizes]="$any(settings.pageSizes)"
8172
- #pageSizes
8173
8201
  ></kendo-pager-page-sizes>
8174
8202
  </ng-container>
8175
8203
  <div
@@ -8187,7 +8215,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
8187
8215
  }, {
8188
8216
  type: Inject,
8189
8217
  args: [CELL_CONTEXT]
8190
- }] }, { type: FocusRoot }, { type: FocusGroup }]; }, propDecorators: { total: [{
8218
+ }] }, { type: FocusRoot }, { type: FocusGroup }]; }, propDecorators: { pagerInfo: [{
8219
+ type: ViewChild,
8220
+ args: [PagerInfoComponent, { read: ElementRef }]
8221
+ }], pagerPageSizes: [{
8222
+ type: ViewChild,
8223
+ args: [PagerPageSizesComponent, { read: ElementRef }]
8224
+ }], numericButtons: [{
8225
+ type: ViewChild,
8226
+ args: [PagerNumericButtonsComponent]
8227
+ }], total: [{
8191
8228
  type: Input
8192
8229
  }], skip: [{
8193
8230
  type: Input
@@ -22850,7 +22887,15 @@ class ExpandGroupDirective {
22850
22887
  this.expandedGroupKeys.push(key);
22851
22888
  }
22852
22889
  else {
22853
- const index = this.expandedGroupKeys.indexOf(key);
22890
+ const index = this.expandedGroupKeys.findIndex(group => {
22891
+ if (this.expandGroupBy) {
22892
+ return group === key;
22893
+ }
22894
+ else if (key.parentGroupKeys?.length === 0) {
22895
+ return group.value === key.value;
22896
+ }
22897
+ return JSON.stringify(group) === JSON.stringify(key);
22898
+ });
22854
22899
  this.expandedGroupKeys.splice(index, 1);
22855
22900
  }
22856
22901
  this.expandedGroupKeysChange.emit(this.expandedGroupKeys.slice());