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

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.
@@ -9,7 +9,7 @@ export const packageMetadata = {
9
9
  name: '@progress/kendo-angular-grid',
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
12
- publishDate: 1692370838,
13
- version: '13.4.0-develop.3',
12
+ publishDate: 1692620937,
13
+ version: '13.4.0-develop.4',
14
14
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
15
15
  };
@@ -2,7 +2,7 @@
2
2
  * Copyright © 2023 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, Input } from '@angular/core';
5
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input, ViewChild } from '@angular/core';
6
6
  import { ContextService } from '../common/provider.service';
7
7
  import { PagerContextService } from './pager-context.service';
8
8
  import { PagerElementComponent } from './pager-element.component';
@@ -19,7 +19,6 @@ export class PagerNumericButtonsComponent extends PagerElementComponent {
19
19
  constructor(ctx, cd, pagerContext) {
20
20
  super(ctx, pagerContext, cd);
21
21
  this.pagerContext = pagerContext;
22
- this.numbersWrapClass = true;
23
22
  }
24
23
  /**
25
24
  * @hidden
@@ -89,10 +88,12 @@ export class PagerNumericButtonsComponent extends PagerElementComponent {
89
88
  }
90
89
  }
91
90
  PagerNumericButtonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerNumericButtonsComponent, deps: [{ token: i1.ContextService }, { token: i0.ChangeDetectorRef }, { token: i2.PagerContextService }], target: i0.ɵɵFactoryTarget.Component });
92
- 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: `
91
+ 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: `
93
92
  <select
93
+ #select
94
94
  class="k-dropdown-list k-dropdown k-picker k-picker-solid k-rounded-md"
95
95
  kendoGridFocusable
96
+ [style.display]="'none'"
96
97
  [attr.title]="textFor('selectPage')"
97
98
  [attr.aria-label]="textFor('selectPage')"
98
99
  [ngClass]="{
@@ -119,7 +120,7 @@ PagerNumericButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
119
120
  [attr.aria-label]="pageLabel(end + 1)">...
120
121
  </option>
121
122
  </select>
122
- <div class="k-pager-numbers">
123
+ <div class="k-pager-numbers" #numbers>
123
124
  <button *ngIf="start > 1"
124
125
  type="button"
125
126
  kendoGridFocusable
@@ -169,8 +170,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
169
170
  selector: 'kendo-pager-numeric-buttons',
170
171
  template: `
171
172
  <select
173
+ #select
172
174
  class="k-dropdown-list k-dropdown k-picker k-picker-solid k-rounded-md"
173
175
  kendoGridFocusable
176
+ [style.display]="'none'"
174
177
  [attr.title]="textFor('selectPage')"
175
178
  [attr.aria-label]="textFor('selectPage')"
176
179
  [ngClass]="{
@@ -197,7 +200,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
197
200
  [attr.aria-label]="pageLabel(end + 1)">...
198
201
  </option>
199
202
  </select>
200
- <div class="k-pager-numbers">
203
+ <div class="k-pager-numbers" #numbers>
201
204
  <button *ngIf="start > 1"
202
205
  type="button"
203
206
  kendoGridFocusable
@@ -241,9 +244,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
241
244
  </div>
242
245
  `
243
246
  }]
244
- }], ctorParameters: function () { return [{ type: i1.ContextService }, { type: i0.ChangeDetectorRef }, { type: i2.PagerContextService }]; }, propDecorators: { numbersWrapClass: [{
245
- type: HostBinding,
246
- args: ['class.k-pager-numbers-wrap']
247
+ }], ctorParameters: function () { return [{ type: i1.ContextService }, { type: i0.ChangeDetectorRef }, { type: i2.PagerContextService }]; }, propDecorators: { selectElement: [{
248
+ type: ViewChild,
249
+ args: ['select', { read: ElementRef }]
250
+ }], numbersElement: [{
251
+ type: ViewChild,
252
+ args: ['numbers', { read: ElementRef }]
247
253
  }], buttonCount: [{
248
254
  type: Input
249
255
  }] } });
@@ -2,7 +2,7 @@
2
2
  * Copyright © 2023 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
- import { Component, Input, EventEmitter, Output, HostBinding, ElementRef, Renderer2, HostListener, NgZone, Optional, Inject } from '@angular/core';
5
+ import { Component, Input, EventEmitter, Output, HostBinding, ElementRef, Renderer2, HostListener, NgZone, Optional, Inject, ViewChild } from '@angular/core';
6
6
  import { normalize } from './pager-settings';
7
7
  import { PagerTemplateDirective } from './pager-template.directive';
8
8
  import { anyChanged, replaceMessagePlaceholder } from '../utils';
@@ -16,6 +16,9 @@ import { FocusGroup } from '../navigation/focus-group';
16
16
  import { FocusRoot, FOCUS_ROOT_ACTIVE } from '../navigation/focus-root';
17
17
  import { findFocusableChild, findLastFocusableChild } from '../rendering/common/dom-queries';
18
18
  import { ContextService } from '../common/provider.service';
19
+ import { PagerInfoComponent } from './pager-info.component';
20
+ import { PagerPageSizesComponent } from './pager-page-sizes.component';
21
+ import { PagerNumericButtonsComponent } from './pager-numeric-buttons.component';
19
22
  import * as i0 from "@angular/core";
20
23
  import * as i1 from "./pager-context.service";
21
24
  import * as i2 from "../navigation/navigation.service";
@@ -59,18 +62,33 @@ export class PagerComponent {
59
62
  if (this.template || !element) {
60
63
  return;
61
64
  }
62
- const width = element.offsetWidth;
63
- if (width < RESPONSIVE_BREAKPOINT_MEDIUM) {
64
- this.renderer.removeClass(element, 'k-pager-mobile-md');
65
- this.renderer.addClass(element, 'k-pager-mobile-sm');
66
- }
67
- else if (width >= RESPONSIVE_BREAKPOINT_MEDIUM && width < RESPONSIVE_BREAKPOINT_LARGE) {
68
- this.renderer.addClass(element, 'k-pager-mobile-md');
69
- this.renderer.removeClass(element, 'k-pager-mobile-sm');
70
- }
71
- else {
72
- this.clearResponsiveClasses();
73
- }
65
+ this.zone.runOutsideAngular(() => {
66
+ setTimeout(() => {
67
+ const width = element.offsetWidth;
68
+ if (this.numericButtons) {
69
+ const selectElement = this.numericButtons.selectElement.nativeElement;
70
+ const numbersElement = this.numericButtons.numbersElement.nativeElement;
71
+ this.renderer.removeStyle(numbersElement, 'display');
72
+ this.renderer.setStyle(selectElement, 'display', 'none');
73
+ if (width < RESPONSIVE_BREAKPOINT_MEDIUM) {
74
+ this.renderer.removeStyle(selectElement, 'display');
75
+ this.renderer.setStyle(numbersElement, 'display', 'none');
76
+ }
77
+ }
78
+ if (this.pagerInfo) {
79
+ this.renderer.removeStyle(this.pagerInfo.nativeElement, 'display');
80
+ if (width < RESPONSIVE_BREAKPOINT_LARGE) {
81
+ this.renderer.setStyle(this.pagerInfo.nativeElement, 'display', 'none');
82
+ }
83
+ }
84
+ if (this.pagerPageSizes) {
85
+ this.renderer.removeStyle(this.pagerPageSizes.nativeElement, 'display');
86
+ if (width < RESPONSIVE_BREAKPOINT_MEDIUM) {
87
+ this.renderer.setStyle(this.pagerPageSizes.nativeElement, 'display', 'none');
88
+ }
89
+ }
90
+ });
91
+ });
74
92
  };
75
93
  }
76
94
  set options(value) {
@@ -189,12 +207,10 @@ export class PagerComponent {
189
207
  }
190
208
  const changesInTemplate = changes['template'];
191
209
  if (changesInTemplate) {
192
- // eslint-disable-next-line no-unused-expressions
193
- changesInTemplate.currentValue ? this.clearResponsiveClasses() : this.resizeHandler();
210
+ changesInTemplate.currentValue ? this.clearResponsiveStyling() : this.resizeHandler();
194
211
  }
195
212
  if (changes['options']) {
196
- // eslint-disable-next-line no-unused-expressions
197
- this.settings.responsive ? this.resizeHandler() : this.clearResponsiveClasses();
213
+ this.settings.responsive ? this.resizeHandler() : this.clearResponsiveStyling();
198
214
  }
199
215
  }
200
216
  ngOnDestroy() {
@@ -220,11 +236,6 @@ export class PagerComponent {
220
236
  }
221
237
  });
222
238
  }
223
- clearResponsiveClasses() {
224
- const element = this.element.nativeElement;
225
- this.renderer.removeClass(element, 'k-pager-mobile-sm');
226
- this.renderer.removeClass(element, 'k-pager-mobile-md');
227
- }
228
239
  shouldTriggerPageChange(target, condition) {
229
240
  return this.navigationService.pagerEnabled &&
230
241
  target === this.element.nativeElement &&
@@ -247,6 +258,18 @@ export class PagerComponent {
247
258
  this.cellContext.focusGroup = this.focusGroup;
248
259
  }
249
260
  }
261
+ clearResponsiveStyling() {
262
+ this.zone.runOutsideAngular(() => {
263
+ setTimeout(() => {
264
+ if (this.numericButtons) {
265
+ this.renderer.removeStyle(this.numericButtons.numbersElement.nativeElement, 'display');
266
+ this.renderer.setStyle(this.numericButtons.selectElement.nativeElement, 'display', 'none');
267
+ }
268
+ this.pagerInfo && this.renderer.removeStyle(this.pagerInfo.nativeElement, 'display');
269
+ this.pagerPageSizes && this.renderer.removeStyle(this.pagerPageSizes.nativeElement, 'display');
270
+ });
271
+ });
272
+ }
250
273
  }
251
274
  PagerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerComponent, deps: [{ token: i1.PagerContextService }, { token: i2.NavigationService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i3.ContextService }, { token: CELL_CONTEXT, optional: true }, { token: i4.FocusRoot }, { token: i5.FocusGroup }], target: i0.ɵɵFactoryTarget.Component });
252
275
  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: [{
@@ -260,7 +283,7 @@ PagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
260
283
  provide: FocusGroup,
261
284
  deps: [FocusRoot],
262
285
  useClass: FocusGroup
263
- }], usesOnChanges: true, ngImport: i0, template: `
286
+ }], 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: `
264
287
  <div
265
288
  *ngIf="navigationService.pagerEnabled"
266
289
  class="k-sr-only"
@@ -274,20 +297,21 @@ PagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
274
297
  [ngTemplateOutletContext]="templateContext">
275
298
  </ng-container>
276
299
  <ng-container *ngIf="!template?.templateRef">
277
- <kendo-pager-prev-buttons [size]="size" *ngIf="settings.previousNext"></kendo-pager-prev-buttons>
278
- <kendo-pager-numeric-buttons
279
- [size]="size"
280
- *ngIf="settings.type === 'numeric'"
281
- [buttonCount]="settings.buttonCount">
282
- </kendo-pager-numeric-buttons>
283
- <kendo-pager-input [size]="size" *ngIf="settings.type === 'input'"></kendo-pager-input>
284
- <kendo-pager-next-buttons [size]="size" *ngIf="settings.previousNext"></kendo-pager-next-buttons>
300
+ <div class="k-pager-numbers-wrap">
301
+ <kendo-pager-prev-buttons [size]="size" *ngIf="settings.previousNext"></kendo-pager-prev-buttons>
302
+ <kendo-pager-numeric-buttons
303
+ [size]="size"
304
+ *ngIf="settings.type === 'numeric'"
305
+ [buttonCount]="settings.buttonCount">
306
+ </kendo-pager-numeric-buttons>
307
+ <kendo-pager-input [size]="size" *ngIf="settings.type === 'input'"></kendo-pager-input>
308
+ <kendo-pager-next-buttons [size]="size" *ngIf="settings.previousNext"></kendo-pager-next-buttons>
309
+ </div>
285
310
  <kendo-pager-info *ngIf='settings.info'></kendo-pager-info>
286
311
  <kendo-pager-page-sizes
287
312
  [size]="size"
288
313
  *ngIf="settings.pageSizes"
289
314
  [pageSizes]="$any(settings.pageSizes)"
290
- #pageSizes
291
315
  ></kendo-pager-page-sizes>
292
316
  </ng-container>
293
317
  <div
@@ -329,20 +353,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
329
353
  [ngTemplateOutletContext]="templateContext">
330
354
  </ng-container>
331
355
  <ng-container *ngIf="!template?.templateRef">
332
- <kendo-pager-prev-buttons [size]="size" *ngIf="settings.previousNext"></kendo-pager-prev-buttons>
333
- <kendo-pager-numeric-buttons
334
- [size]="size"
335
- *ngIf="settings.type === 'numeric'"
336
- [buttonCount]="settings.buttonCount">
337
- </kendo-pager-numeric-buttons>
338
- <kendo-pager-input [size]="size" *ngIf="settings.type === 'input'"></kendo-pager-input>
339
- <kendo-pager-next-buttons [size]="size" *ngIf="settings.previousNext"></kendo-pager-next-buttons>
356
+ <div class="k-pager-numbers-wrap">
357
+ <kendo-pager-prev-buttons [size]="size" *ngIf="settings.previousNext"></kendo-pager-prev-buttons>
358
+ <kendo-pager-numeric-buttons
359
+ [size]="size"
360
+ *ngIf="settings.type === 'numeric'"
361
+ [buttonCount]="settings.buttonCount">
362
+ </kendo-pager-numeric-buttons>
363
+ <kendo-pager-input [size]="size" *ngIf="settings.type === 'input'"></kendo-pager-input>
364
+ <kendo-pager-next-buttons [size]="size" *ngIf="settings.previousNext"></kendo-pager-next-buttons>
365
+ </div>
340
366
  <kendo-pager-info *ngIf='settings.info'></kendo-pager-info>
341
367
  <kendo-pager-page-sizes
342
368
  [size]="size"
343
369
  *ngIf="settings.pageSizes"
344
370
  [pageSizes]="$any(settings.pageSizes)"
345
- #pageSizes
346
371
  ></kendo-pager-page-sizes>
347
372
  </ng-container>
348
373
  <div
@@ -360,7 +385,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
360
385
  }, {
361
386
  type: Inject,
362
387
  args: [CELL_CONTEXT]
363
- }] }, { type: i4.FocusRoot }, { type: i5.FocusGroup }]; }, propDecorators: { total: [{
388
+ }] }, { type: i4.FocusRoot }, { type: i5.FocusGroup }]; }, propDecorators: { pagerInfo: [{
389
+ type: ViewChild,
390
+ args: [PagerInfoComponent, { read: ElementRef }]
391
+ }], pagerPageSizes: [{
392
+ type: ViewChild,
393
+ args: [PagerPageSizesComponent, { read: ElementRef }]
394
+ }], numericButtons: [{
395
+ type: ViewChild,
396
+ args: [PagerNumericButtonsComponent]
397
+ }], total: [{
364
398
  type: Input
365
399
  }], skip: [{
366
400
  type: Input