@progress/kendo-angular-grid 6.0.1 → 6.0.3-dev.202202141635

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: 1642684789,
12
+ publishDate: 1644856057,
13
13
  version: '',
14
14
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
15
15
  };
@@ -44,13 +44,14 @@ PagerNextButtonsComponent = tslib_1.__decorate([
44
44
  [title]="textFor('pagerNextPage')"
45
45
  (click)="currentPage !== totalPages ? changePage(currentPage) : false"
46
46
  (keydown.enter)="currentPage !== totalPages ? changePage(currentPage) : false"
47
+ role="button"
47
48
  [ngClass]="{
48
49
  'k-link': true,
49
50
  'k-pager-nav': true,
50
51
  'k-state-disabled': disabled,
51
52
  '': true
52
53
  }">
53
- <span [attr.aria-label]="textFor('pagerNextPage')"
54
+ <span role="note" [attr.aria-label]="textFor('pagerNextPage')"
54
55
  [ngClass]="{
55
56
  'k-icon':true,
56
57
  'k-i-arrow-e': true
@@ -63,13 +64,14 @@ PagerNextButtonsComponent = tslib_1.__decorate([
63
64
  [title]="textFor('pagerLastPage')"
64
65
  (click)="currentPage !== totalPages ? changePage(totalPages-1) : false"
65
66
  (keydown.enter)="currentPage !== totalPages ? changePage(totalPages-1) : false"
67
+ role="button"
66
68
  [ngClass]="{
67
69
  'k-link': true,
68
70
  'k-pager-nav': true,
69
71
  'k-state-disabled': disabled,
70
72
  'k-pager-last': true
71
73
  }">
72
- <span [attr.aria-label]="textFor('pagerLastPage')"
74
+ <span role="note" [attr.aria-label]="textFor('pagerLastPage')"
73
75
  [ngClass]="{
74
76
  'k-icon':true,
75
77
  'k-i-seek-e': true
@@ -126,6 +126,7 @@ PagerNumericButtonsComponent = tslib_1.__decorate([
126
126
  kendoGridFocusable
127
127
  tabindex="0"
128
128
  class="k-link k-pager-nav"
129
+ role="button"
129
130
  [attr.aria-label]="pageLabel(start - 1)"
130
131
  (click)="changePage(start - 2)"
131
132
  (keydown.enter)="changePage(start - 2)">...</span>
@@ -134,6 +135,7 @@ PagerNumericButtonsComponent = tslib_1.__decorate([
134
135
  <span
135
136
  kendoGridFocusable
136
137
  tabindex="0"
138
+ role="button"
137
139
  [attr.aria-label]="pageLabel(num)"
138
140
  [ngClass]="{'k-link': true, 'k-state-selected':currentPage == num, 'k-pager-nav': true}"
139
141
  (click)="changePage(num - 1)"
@@ -146,6 +148,7 @@ PagerNumericButtonsComponent = tslib_1.__decorate([
146
148
  kendoGridFocusable
147
149
  tabindex="0"
148
150
  class="k-link k-pager-nav"
151
+ role="button"
149
152
  [attr.aria-label]="pageLabel(end + 1)"
150
153
  (click)="changePage(end)"
151
154
  (keydown.enter)="changePage(end)">...</span>
@@ -43,22 +43,25 @@ PagerPrevButtonsComponent = tslib_1.__decorate([
43
43
  [title]="textFor('pagerFirstPage')"
44
44
  (click)="currentPage !== 1 ? changePage(0) : false"
45
45
  (keydown.enter)="currentPage !== 1 ? changePage(0) : false"
46
+ role="button"
46
47
  [ngClass]="{
47
48
  'k-link': true,
48
49
  'k-pager-nav': true,
49
50
  'k-state-disabled': disabled,
50
51
  'k-pager-first': true
51
52
  }">
52
- <span [attr.aria-label]="textFor('pagerFirstPage')"
53
- [ngClass]="{
53
+ <span role="note"
54
+ [attr.aria-label]="textFor('pagerFirstPage')"
55
+ [ngClass]="{
54
56
  'k-icon': true,
55
57
  'k-i-seek-w': true
56
- }">
58
+ }">
57
59
  </span>
58
60
  </span>
59
61
  <span
60
62
  [kendoGridFocusable]="!disabled"
61
63
  [title]="textFor('pagerPreviousPage')"
64
+ role="button"
62
65
  (click)="currentPage !== 1 ? changePage(currentPage-2) : false"
63
66
  (keydown.enter)="currentPage !== 1 ? changePage(currentPage-2) : false"
64
67
  [ngClass]="{
@@ -67,11 +70,12 @@ PagerPrevButtonsComponent = tslib_1.__decorate([
67
70
  'k-state-disabled': disabled,
68
71
  '': true
69
72
  }">
70
- <span [attr.aria-label]="textFor('pagerPreviousPage')"
71
- [ngClass]="{
73
+ <span role="note"
74
+ [attr.aria-label]="textFor('pagerPreviousPage')"
75
+ [ngClass]="{
72
76
  'k-icon': true,
73
77
  'k-i-arrow-w': true
74
- }">
78
+ }">
75
79
  </span>
76
80
  </span>
77
81
  `
@@ -574,7 +574,7 @@ HeaderComponent = tslib_1.__decorate([
574
574
  <ng-template [ngIf]="!column.headerTemplateRef">
575
575
  <span class="k-column-title">{{column.displayTitle}}</span>
576
576
  </ng-template>
577
- <span [attr.aria-label]="sortableLabel" [ngClass]="sortIcon(column.field)"></span>
577
+ <span role="note" [attr.aria-label]="sortableLabel" [ngClass]="sortIcon(column.field)"></span>
578
578
  <span *ngIf="showSortNumbering(column)" class="k-sort-order">{{sortOrder(column.field)}}</span>
579
579
  </span>
580
580
  <span role="status"
@@ -4,7 +4,7 @@
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Renderer2, ElementRef, OnDestroy, AfterContentChecked, OnChanges, EventEmitter, NgZone } from '@angular/core';
6
6
  import { SelectionService } from './selection.service';
7
- import { SelectAllCheckboxState } from "./types";
7
+ import { SelectAllCheckboxState } from './types';
8
8
  /**
9
9
  * Represents the select-all checkbox feature of the Grid ([see example]({% slug selection_grid %}#toc-select-all-feature)).
10
10
  */
@@ -6,7 +6,8 @@ import * as tslib_1 from "tslib";
6
6
  import { detectIE } from './../utils';
7
7
  import { Directive, HostBinding, Renderer2, ElementRef, Input, Output, EventEmitter, NgZone } from '@angular/core';
8
8
  import { SelectionService } from './selection.service';
9
- import { isPresent } from "../utils";
9
+ import { isPresent } from '../utils';
10
+ import { hasObservers } from '@progress/kendo-angular-common';
10
11
  /**
11
12
  * Represents the select-all checkbox feature of the Grid ([see example]({% slug selection_grid %}#toc-select-all-feature)).
12
13
  */
@@ -21,10 +22,10 @@ let SelectAllCheckboxDirective = class SelectAllCheckboxDirective {
21
22
  * ([see example]({% slug selection_grid %}#toc-select-all-feature)).
22
23
  */
23
24
  this.selectAllChange = new EventEmitter();
24
- this.type = "checkbox";
25
+ this.type = 'checkbox';
25
26
  this.stateSet = false;
26
27
  this.ngZone.runOutsideAngular(() => {
27
- this.destroyClick = this.renderer.listen(this.el.nativeElement, "click", this.onClick.bind(this));
28
+ this.destroyClick = this.renderer.listen(this.el.nativeElement, 'click', this.onClick.bind(this));
28
29
  });
29
30
  }
30
31
  ngAfterContentChecked() {
@@ -42,14 +43,20 @@ let SelectAllCheckboxDirective = class SelectAllCheckboxDirective {
42
43
  * @hidden
43
44
  */
44
45
  onClick() {
45
- // yields consistent cross-browser behavior when clicking an "indeterminate" checkbox
46
+ // yields consistent cross-browser behavior when clicking an indeterminate checkbox
46
47
  const undefinedCheckedStateInIE = detectIE() && this.selectionService.selectAllState === undefined;
47
48
  const isChecked = undefinedCheckedStateInIE ? true : this.el.nativeElement.checked;
48
49
  const options = this.selectionService.options;
49
- this.selectAllChange.emit(isChecked ? "checked" : "unchecked");
50
- if (options.enabled && options.mode === "multiple") {
50
+ const enabledAndMultiple = options.enabled && options.mode === 'multiple';
51
+ const shouldEmitSelectAll = hasObservers(this.selectAllChange);
52
+ if (enabledAndMultiple || shouldEmitSelectAll) {
51
53
  this.ngZone.run(() => {
52
- this.selectionService.updateAll(isChecked);
54
+ if (enabledAndMultiple) {
55
+ this.selectionService.updateAll(isChecked);
56
+ }
57
+ if (shouldEmitSelectAll) {
58
+ this.selectAllChange.emit(isChecked ? 'checked' : 'unchecked');
59
+ }
53
60
  });
54
61
  }
55
62
  }
@@ -59,17 +66,17 @@ let SelectAllCheckboxDirective = class SelectAllCheckboxDirective {
59
66
  setState() {
60
67
  const state = this.stateSet ? this.stateToBool() : this.selectionService.selectAllState;
61
68
  const elem = this.el.nativeElement;
62
- this.renderer.setProperty(elem, "indeterminate", !isPresent(state));
63
- this.renderer.setProperty(elem, "checked", isPresent(state) ? state : false);
69
+ this.renderer.setProperty(elem, 'indeterminate', !isPresent(state));
70
+ this.renderer.setProperty(elem, 'checked', isPresent(state) ? state : false);
64
71
  }
65
72
  /**
66
73
  * @hidden
67
74
  */
68
75
  stateToBool() {
69
76
  switch (this.state) {
70
- case "checked":
77
+ case 'checked':
71
78
  return true;
72
- case "unchecked":
79
+ case 'unchecked':
73
80
  return false;
74
81
  default:
75
82
  return undefined;
@@ -2831,7 +2831,7 @@ const packageMetadata = {
2831
2831
  name: '@progress/kendo-angular-grid',
2832
2832
  productName: 'Kendo UI for Angular',
2833
2833
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
2834
- publishDate: 1642684789,
2834
+ publishDate: 1644856057,
2835
2835
  version: '',
2836
2836
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
2837
2837
  };
@@ -14585,22 +14585,25 @@ PagerPrevButtonsComponent = __decorate([
14585
14585
  [title]="textFor('pagerFirstPage')"
14586
14586
  (click)="currentPage !== 1 ? changePage(0) : false"
14587
14587
  (keydown.enter)="currentPage !== 1 ? changePage(0) : false"
14588
+ role="button"
14588
14589
  [ngClass]="{
14589
14590
  'k-link': true,
14590
14591
  'k-pager-nav': true,
14591
14592
  'k-state-disabled': disabled,
14592
14593
  'k-pager-first': true
14593
14594
  }">
14594
- <span [attr.aria-label]="textFor('pagerFirstPage')"
14595
- [ngClass]="{
14595
+ <span role="note"
14596
+ [attr.aria-label]="textFor('pagerFirstPage')"
14597
+ [ngClass]="{
14596
14598
  'k-icon': true,
14597
14599
  'k-i-seek-w': true
14598
- }">
14600
+ }">
14599
14601
  </span>
14600
14602
  </span>
14601
14603
  <span
14602
14604
  [kendoGridFocusable]="!disabled"
14603
14605
  [title]="textFor('pagerPreviousPage')"
14606
+ role="button"
14604
14607
  (click)="currentPage !== 1 ? changePage(currentPage-2) : false"
14605
14608
  (keydown.enter)="currentPage !== 1 ? changePage(currentPage-2) : false"
14606
14609
  [ngClass]="{
@@ -14609,11 +14612,12 @@ PagerPrevButtonsComponent = __decorate([
14609
14612
  'k-state-disabled': disabled,
14610
14613
  '': true
14611
14614
  }">
14612
- <span [attr.aria-label]="textFor('pagerPreviousPage')"
14613
- [ngClass]="{
14615
+ <span role="note"
14616
+ [attr.aria-label]="textFor('pagerPreviousPage')"
14617
+ [ngClass]="{
14614
14618
  'k-icon': true,
14615
14619
  'k-i-arrow-w': true
14616
- }">
14620
+ }">
14617
14621
  </span>
14618
14622
  </span>
14619
14623
  `
@@ -14660,13 +14664,14 @@ PagerNextButtonsComponent = __decorate([
14660
14664
  [title]="textFor('pagerNextPage')"
14661
14665
  (click)="currentPage !== totalPages ? changePage(currentPage) : false"
14662
14666
  (keydown.enter)="currentPage !== totalPages ? changePage(currentPage) : false"
14667
+ role="button"
14663
14668
  [ngClass]="{
14664
14669
  'k-link': true,
14665
14670
  'k-pager-nav': true,
14666
14671
  'k-state-disabled': disabled,
14667
14672
  '': true
14668
14673
  }">
14669
- <span [attr.aria-label]="textFor('pagerNextPage')"
14674
+ <span role="note" [attr.aria-label]="textFor('pagerNextPage')"
14670
14675
  [ngClass]="{
14671
14676
  'k-icon':true,
14672
14677
  'k-i-arrow-e': true
@@ -14679,13 +14684,14 @@ PagerNextButtonsComponent = __decorate([
14679
14684
  [title]="textFor('pagerLastPage')"
14680
14685
  (click)="currentPage !== totalPages ? changePage(totalPages-1) : false"
14681
14686
  (keydown.enter)="currentPage !== totalPages ? changePage(totalPages-1) : false"
14687
+ role="button"
14682
14688
  [ngClass]="{
14683
14689
  'k-link': true,
14684
14690
  'k-pager-nav': true,
14685
14691
  'k-state-disabled': disabled,
14686
14692
  'k-pager-last': true
14687
14693
  }">
14688
- <span [attr.aria-label]="textFor('pagerLastPage')"
14694
+ <span role="note" [attr.aria-label]="textFor('pagerLastPage')"
14689
14695
  [ngClass]="{
14690
14696
  'k-icon':true,
14691
14697
  'k-i-seek-e': true
@@ -14819,6 +14825,7 @@ PagerNumericButtonsComponent = __decorate([
14819
14825
  kendoGridFocusable
14820
14826
  tabindex="0"
14821
14827
  class="k-link k-pager-nav"
14828
+ role="button"
14822
14829
  [attr.aria-label]="pageLabel(start - 1)"
14823
14830
  (click)="changePage(start - 2)"
14824
14831
  (keydown.enter)="changePage(start - 2)">...</span>
@@ -14827,6 +14834,7 @@ PagerNumericButtonsComponent = __decorate([
14827
14834
  <span
14828
14835
  kendoGridFocusable
14829
14836
  tabindex="0"
14837
+ role="button"
14830
14838
  [attr.aria-label]="pageLabel(num)"
14831
14839
  [ngClass]="{'k-link': true, 'k-state-selected':currentPage == num, 'k-pager-nav': true}"
14832
14840
  (click)="changePage(num - 1)"
@@ -14839,6 +14847,7 @@ PagerNumericButtonsComponent = __decorate([
14839
14847
  kendoGridFocusable
14840
14848
  tabindex="0"
14841
14849
  class="k-link k-pager-nav"
14850
+ role="button"
14842
14851
  [attr.aria-label]="pageLabel(end + 1)"
14843
14852
  (click)="changePage(end)"
14844
14853
  (keydown.enter)="changePage(end)">...</span>
@@ -16967,7 +16976,7 @@ HeaderComponent = __decorate([
16967
16976
  <ng-template [ngIf]="!column.headerTemplateRef">
16968
16977
  <span class="k-column-title">{{column.displayTitle}}</span>
16969
16978
  </ng-template>
16970
- <span [attr.aria-label]="sortableLabel" [ngClass]="sortIcon(column.field)"></span>
16979
+ <span role="note" [attr.aria-label]="sortableLabel" [ngClass]="sortIcon(column.field)"></span>
16971
16980
  <span *ngIf="showSortNumbering(column)" class="k-sort-order">{{sortOrder(column.field)}}</span>
16972
16981
  </span>
16973
16982
  <span role="status"
@@ -17320,10 +17329,10 @@ let SelectAllCheckboxDirective = class SelectAllCheckboxDirective {
17320
17329
  * ([see example]({% slug selection_grid %}#toc-select-all-feature)).
17321
17330
  */
17322
17331
  this.selectAllChange = new EventEmitter();
17323
- this.type = "checkbox";
17332
+ this.type = 'checkbox';
17324
17333
  this.stateSet = false;
17325
17334
  this.ngZone.runOutsideAngular(() => {
17326
- this.destroyClick = this.renderer.listen(this.el.nativeElement, "click", this.onClick.bind(this));
17335
+ this.destroyClick = this.renderer.listen(this.el.nativeElement, 'click', this.onClick.bind(this));
17327
17336
  });
17328
17337
  }
17329
17338
  ngAfterContentChecked() {
@@ -17341,14 +17350,20 @@ let SelectAllCheckboxDirective = class SelectAllCheckboxDirective {
17341
17350
  * @hidden
17342
17351
  */
17343
17352
  onClick() {
17344
- // yields consistent cross-browser behavior when clicking an "indeterminate" checkbox
17353
+ // yields consistent cross-browser behavior when clicking an indeterminate checkbox
17345
17354
  const undefinedCheckedStateInIE = detectIE() && this.selectionService.selectAllState === undefined;
17346
17355
  const isChecked = undefinedCheckedStateInIE ? true : this.el.nativeElement.checked;
17347
17356
  const options = this.selectionService.options;
17348
- this.selectAllChange.emit(isChecked ? "checked" : "unchecked");
17349
- if (options.enabled && options.mode === "multiple") {
17357
+ const enabledAndMultiple = options.enabled && options.mode === 'multiple';
17358
+ const shouldEmitSelectAll = hasObservers(this.selectAllChange);
17359
+ if (enabledAndMultiple || shouldEmitSelectAll) {
17350
17360
  this.ngZone.run(() => {
17351
- this.selectionService.updateAll(isChecked);
17361
+ if (enabledAndMultiple) {
17362
+ this.selectionService.updateAll(isChecked);
17363
+ }
17364
+ if (shouldEmitSelectAll) {
17365
+ this.selectAllChange.emit(isChecked ? 'checked' : 'unchecked');
17366
+ }
17352
17367
  });
17353
17368
  }
17354
17369
  }
@@ -17358,17 +17373,17 @@ let SelectAllCheckboxDirective = class SelectAllCheckboxDirective {
17358
17373
  setState() {
17359
17374
  const state$$1 = this.stateSet ? this.stateToBool() : this.selectionService.selectAllState;
17360
17375
  const elem = this.el.nativeElement;
17361
- this.renderer.setProperty(elem, "indeterminate", !isPresent(state$$1));
17362
- this.renderer.setProperty(elem, "checked", isPresent(state$$1) ? state$$1 : false);
17376
+ this.renderer.setProperty(elem, 'indeterminate', !isPresent(state$$1));
17377
+ this.renderer.setProperty(elem, 'checked', isPresent(state$$1) ? state$$1 : false);
17363
17378
  }
17364
17379
  /**
17365
17380
  * @hidden
17366
17381
  */
17367
17382
  stateToBool() {
17368
17383
  switch (this.state) {
17369
- case "checked":
17384
+ case 'checked':
17370
17385
  return true;
17371
- case "unchecked":
17386
+ case 'unchecked':
17372
17387
  return false;
17373
17388
  default:
17374
17389
  return undefined;
@@ -3044,7 +3044,7 @@ var packageMetadata = {
3044
3044
  name: '@progress/kendo-angular-grid',
3045
3045
  productName: 'Kendo UI for Angular',
3046
3046
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
3047
- publishDate: 1642684789,
3047
+ publishDate: 1644856057,
3048
3048
  version: '',
3049
3049
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
3050
3050
  };
@@ -15218,7 +15218,7 @@ var PagerPrevButtonsComponent = /** @class */ (function (_super) {
15218
15218
  Component({
15219
15219
  changeDetection: ChangeDetectionStrategy.OnPush,
15220
15220
  selector: 'kendo-pager-prev-buttons',
15221
- template: "\n <span\n [kendoGridFocusable]=\"!disabled\"\n [title]=\"textFor('pagerFirstPage')\"\n (click)=\"currentPage !== 1 ? changePage(0) : false\"\n (keydown.enter)=\"currentPage !== 1 ? changePage(0) : false\"\n [ngClass]=\"{\n 'k-link': true,\n 'k-pager-nav': true,\n 'k-state-disabled': disabled,\n 'k-pager-first': true\n }\">\n <span [attr.aria-label]=\"textFor('pagerFirstPage')\"\n [ngClass]=\"{\n 'k-icon': true,\n 'k-i-seek-w': true\n }\">\n </span>\n </span>\n <span\n [kendoGridFocusable]=\"!disabled\"\n [title]=\"textFor('pagerPreviousPage')\"\n (click)=\"currentPage !== 1 ? changePage(currentPage-2) : false\"\n (keydown.enter)=\"currentPage !== 1 ? changePage(currentPage-2) : false\"\n [ngClass]=\"{\n 'k-link': true,\n 'k-pager-nav': true,\n 'k-state-disabled': disabled,\n '': true\n }\">\n <span [attr.aria-label]=\"textFor('pagerPreviousPage')\"\n [ngClass]=\"{\n 'k-icon': true,\n 'k-i-arrow-w': true\n }\">\n </span>\n </span>\n "
15221
+ template: "\n <span\n [kendoGridFocusable]=\"!disabled\"\n [title]=\"textFor('pagerFirstPage')\"\n (click)=\"currentPage !== 1 ? changePage(0) : false\"\n (keydown.enter)=\"currentPage !== 1 ? changePage(0) : false\"\n role=\"button\"\n [ngClass]=\"{\n 'k-link': true,\n 'k-pager-nav': true,\n 'k-state-disabled': disabled,\n 'k-pager-first': true\n }\">\n <span role=\"note\"\n [attr.aria-label]=\"textFor('pagerFirstPage')\"\n [ngClass]=\"{\n 'k-icon': true,\n 'k-i-seek-w': true\n }\">\n </span>\n </span>\n <span\n [kendoGridFocusable]=\"!disabled\"\n [title]=\"textFor('pagerPreviousPage')\"\n role=\"button\"\n (click)=\"currentPage !== 1 ? changePage(currentPage-2) : false\"\n (keydown.enter)=\"currentPage !== 1 ? changePage(currentPage-2) : false\"\n [ngClass]=\"{\n 'k-link': true,\n 'k-pager-nav': true,\n 'k-state-disabled': disabled,\n '': true\n }\">\n <span role=\"note\"\n [attr.aria-label]=\"textFor('pagerPreviousPage')\"\n [ngClass]=\"{\n 'k-icon': true,\n 'k-i-arrow-w': true\n }\">\n </span>\n </span>\n "
15222
15222
  }),
15223
15223
  __metadata("design:paramtypes", [LocalizationService,
15224
15224
  PagerContextService,
@@ -15263,7 +15263,7 @@ var PagerNextButtonsComponent = /** @class */ (function (_super) {
15263
15263
  Component({
15264
15264
  changeDetection: ChangeDetectionStrategy.OnPush,
15265
15265
  selector: 'kendo-pager-next-buttons',
15266
- template: "\n <span\n [kendoGridFocusable]=\"!disabled\"\n tabindex=\"0\"\n [title]=\"textFor('pagerNextPage')\"\n (click)=\"currentPage !== totalPages ? changePage(currentPage) : false\"\n (keydown.enter)=\"currentPage !== totalPages ? changePage(currentPage) : false\"\n [ngClass]=\"{\n 'k-link': true,\n 'k-pager-nav': true,\n 'k-state-disabled': disabled,\n '': true\n }\">\n <span [attr.aria-label]=\"textFor('pagerNextPage')\"\n [ngClass]=\"{\n 'k-icon':true,\n 'k-i-arrow-e': true\n }\">\n </span>\n </span>\n <span\n [kendoGridFocusable]=\"!disabled\"\n tabindex=\"0\"\n [title]=\"textFor('pagerLastPage')\"\n (click)=\"currentPage !== totalPages ? changePage(totalPages-1) : false\"\n (keydown.enter)=\"currentPage !== totalPages ? changePage(totalPages-1) : false\"\n [ngClass]=\"{\n 'k-link': true,\n 'k-pager-nav': true,\n 'k-state-disabled': disabled,\n 'k-pager-last': true\n }\">\n <span [attr.aria-label]=\"textFor('pagerLastPage')\"\n [ngClass]=\"{\n 'k-icon':true,\n 'k-i-seek-e': true\n }\">\n </span>\n </span>\n "
15266
+ template: "\n <span\n [kendoGridFocusable]=\"!disabled\"\n tabindex=\"0\"\n [title]=\"textFor('pagerNextPage')\"\n (click)=\"currentPage !== totalPages ? changePage(currentPage) : false\"\n (keydown.enter)=\"currentPage !== totalPages ? changePage(currentPage) : false\"\n role=\"button\"\n [ngClass]=\"{\n 'k-link': true,\n 'k-pager-nav': true,\n 'k-state-disabled': disabled,\n '': true\n }\">\n <span role=\"note\" [attr.aria-label]=\"textFor('pagerNextPage')\"\n [ngClass]=\"{\n 'k-icon':true,\n 'k-i-arrow-e': true\n }\">\n </span>\n </span>\n <span\n [kendoGridFocusable]=\"!disabled\"\n tabindex=\"0\"\n [title]=\"textFor('pagerLastPage')\"\n (click)=\"currentPage !== totalPages ? changePage(totalPages-1) : false\"\n (keydown.enter)=\"currentPage !== totalPages ? changePage(totalPages-1) : false\"\n role=\"button\"\n [ngClass]=\"{\n 'k-link': true,\n 'k-pager-nav': true,\n 'k-state-disabled': disabled,\n 'k-pager-last': true\n }\">\n <span role=\"note\" [attr.aria-label]=\"textFor('pagerLastPage')\"\n [ngClass]=\"{\n 'k-icon':true,\n 'k-i-seek-e': true\n }\">\n </span>\n </span>\n "
15267
15267
  }),
15268
15268
  __metadata("design:paramtypes", [LocalizationService,
15269
15269
  PagerContextService,
@@ -15375,7 +15375,7 @@ var PagerNumericButtonsComponent = /** @class */ (function (_super) {
15375
15375
  Component({
15376
15376
  changeDetection: ChangeDetectionStrategy.OnPush,
15377
15377
  selector: 'kendo-pager-numeric-buttons',
15378
- template: "\n <select\n class=\"k-dropdownlist k-pager-nav\"\n kendoGridFocusable\n tabindex=\"0\"\n [value]=\"(currentPage).toString()\"\n (change)=\"onSelectChange($event)\">\n <option *ngIf=\"start > 1\"\n class=\"k-link\"\n value=\"previousButtons\"\n [attr.aria-label]=\"pageLabel(start - 1)\">...\n </option>\n <option *ngFor=\"let num of buttons\"\n [value]=\"num.toString()\"\n [attr.aria-label]=\"pageLabel(num)\"\n [attr.aria-current]=\"currentPage == num ? 'page' : undefined\"\n [ngClass]=\"{'k-link': true, 'k-state-selected':currentPage == num}\">\n {{num}}\n </option>\n <option *ngIf=\"end < totalPages\"\n value=\"nextButtons\"\n class=\"k-link\"\n [attr.aria-label]=\"pageLabel(end + 1)\">...\n </option>\n </select>\n <ul [ngClass]=\"{'k-pager-numbers': true, 'k-reset': true}\">\n <li *ngIf=\"start > 1\">\n <span\n kendoGridFocusable\n tabindex=\"0\"\n class=\"k-link k-pager-nav\"\n [attr.aria-label]=\"pageLabel(start - 1)\"\n (click)=\"changePage(start - 2)\"\n (keydown.enter)=\"changePage(start - 2)\">...</span>\n </li>\n <li *ngFor=\"let num of buttons\">\n <span\n kendoGridFocusable\n tabindex=\"0\"\n [attr.aria-label]=\"pageLabel(num)\"\n [ngClass]=\"{'k-link': true, 'k-state-selected':currentPage == num, 'k-pager-nav': true}\"\n (click)=\"changePage(num - 1)\"\n (keydown.enter)=\"changePage(num - 1)\">\n {{num}}\n </span>\n </li>\n <li *ngIf=\"end < totalPages\">\n <span\n kendoGridFocusable\n tabindex=\"0\"\n class=\"k-link k-pager-nav\"\n [attr.aria-label]=\"pageLabel(end + 1)\"\n (click)=\"changePage(end)\"\n (keydown.enter)=\"changePage(end)\">...</span>\n </li>\n </ul>\n "
15378
+ template: "\n <select\n class=\"k-dropdownlist k-pager-nav\"\n kendoGridFocusable\n tabindex=\"0\"\n [value]=\"(currentPage).toString()\"\n (change)=\"onSelectChange($event)\">\n <option *ngIf=\"start > 1\"\n class=\"k-link\"\n value=\"previousButtons\"\n [attr.aria-label]=\"pageLabel(start - 1)\">...\n </option>\n <option *ngFor=\"let num of buttons\"\n [value]=\"num.toString()\"\n [attr.aria-label]=\"pageLabel(num)\"\n [attr.aria-current]=\"currentPage == num ? 'page' : undefined\"\n [ngClass]=\"{'k-link': true, 'k-state-selected':currentPage == num}\">\n {{num}}\n </option>\n <option *ngIf=\"end < totalPages\"\n value=\"nextButtons\"\n class=\"k-link\"\n [attr.aria-label]=\"pageLabel(end + 1)\">...\n </option>\n </select>\n <ul [ngClass]=\"{'k-pager-numbers': true, 'k-reset': true}\">\n <li *ngIf=\"start > 1\">\n <span\n kendoGridFocusable\n tabindex=\"0\"\n class=\"k-link k-pager-nav\"\n role=\"button\"\n [attr.aria-label]=\"pageLabel(start - 1)\"\n (click)=\"changePage(start - 2)\"\n (keydown.enter)=\"changePage(start - 2)\">...</span>\n </li>\n <li *ngFor=\"let num of buttons\">\n <span\n kendoGridFocusable\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-label]=\"pageLabel(num)\"\n [ngClass]=\"{'k-link': true, 'k-state-selected':currentPage == num, 'k-pager-nav': true}\"\n (click)=\"changePage(num - 1)\"\n (keydown.enter)=\"changePage(num - 1)\">\n {{num}}\n </span>\n </li>\n <li *ngIf=\"end < totalPages\">\n <span\n kendoGridFocusable\n tabindex=\"0\"\n class=\"k-link k-pager-nav\"\n role=\"button\"\n [attr.aria-label]=\"pageLabel(end + 1)\"\n (click)=\"changePage(end)\"\n (keydown.enter)=\"changePage(end)\">...</span>\n </li>\n </ul>\n "
15379
15379
  }),
15380
15380
  __metadata("design:paramtypes", [LocalizationService,
15381
15381
  ChangeDetectorRef,
@@ -17456,7 +17456,7 @@ var HeaderComponent = /** @class */ (function () {
17456
17456
  Component({
17457
17457
  selector: '[kendoGridHeader]',
17458
17458
  styles: ["\n .k-column-resizer {\n cursor: col-resize;\n display: block;\n height: 1000%;\n position: absolute;\n top: 0;\n width: .5em;\n }\n "],
17459
- template: "\n <ng-template [ngIf]=\"true\">\n <tr *ngFor=\"let i of columnLevels; let levelIndex = index\"\n kendoGridLogicalRow\n [logicalRowIndex]=\"levelIndex\"\n [logicalSlaveRow]=\"lockedColumnsCount > 0\"\n [logicalCellsCount]=\"columns.length\"\n [logicalSlaveCellsCount]=\"unlockedColumnsCount\">\n <th\n class=\"k-group-cell k-header\"\n role=\"presentation\"\n *ngFor=\"let g of groups\">\n </th>\n <th class=\"k-hierarchy-cell k-header\"\n role=\"presentation\"\n *ngIf=\"detailTemplate?.templateRef\"\n kendoGridLogicalCell\n [logicalRowIndex]=\"levelIndex\"\n [logicalColIndex]=\"0\"\n aria-selected=\"false\"\n >\n </th>\n <ng-template ngFor let-column [ngForOf]=\"columnsForLevel(levelIndex)\" [ngForTrackBy]=\"trackByIndex\" let-columnIndex=\"index\" let-last=\"last\">\n <th *ngIf=\"!isColumnGroupComponent(column)\"\n kendoGridLogicalCell\n [logicalRowIndex]=\"levelIndex\"\n [logicalColIndex]=\"logicalColumnIndex(column)\"\n [headerLabelText]=\"column.title || column.field\"\n [colSpan]=\"column.colspan\"\n [rowSpan]=\"column.rowspan(totalColumnLevels)\"\n role=\"columnheader\"\n aria-selected=\"false\"\n [attr.aria-sort]=\"sortState(column)\"\n (keydown)=\"onHeaderKeydown(column, $event)\"\n kendoDropTarget\n kendoDraggable\n kendoDraggableColumn\n [enableDrag]=\"shouldActivate(column)\"\n [context]=\"{\n field: column.field,\n type: 'column',\n column: column,\n hint: column.title || column.field,\n lastColumn: last && columnIndex === 0\n }\"\n class=\"k-header\"\n [class.k-filterable]=\"(showFilterMenu && isFilterable(column)) || showColumnMenu(column)\"\n [class.k-first]=\"isFirstOnRow(column, columnIndex)\"\n [class.k-grid-header-sticky]=\"column.sticky\"\n [ngClass]=\"column.headerClass\"\n [ngStyle]=\"column.sticky ? addStickyStyles(column) : column.headerStyle\"\n [attr.rowspan]=\"column.rowspan(totalColumnLevels)\"\n [attr.colspan]=\"column.colspan\">\n\n <ng-template [ngIf]=\"!isSortable(column)\">\n <kendo-grid-filter-menu\n *ngIf=\"showFilterMenu && isFilterable(column)\"\n [column]=\"column\"\n [filter]=\"filter\"\n [tabIndex]=\"tabIndex\">\n </kendo-grid-filter-menu>\n <kendo-grid-column-menu *ngIf=\"showColumnMenu(column)\"\n [standalone]=\"false\"\n [settings]=\"columnMenu\"\n [column]=\"column\"\n [columnMenuTemplate]=\"columnMenuTemplate\"\n [sort]=\"sort\"\n [filter]=\"filter\"\n [sortable]=\"sortable\"\n [tabIndex]=\"tabIndex\">\n </kendo-grid-column-menu>\n <ng-template\n [templateContext]=\"{\n templateRef: column.headerTemplateRef,\n columnIndex: column.leafIndex,\n column: column,\n $implicit: column\n }\">\n </ng-template>\n <ng-template [ngIf]=\"!column.headerTemplateRef\">{{column.displayTitle}}</ng-template>\n </ng-template>\n\n <ng-template [ngIf]=\"isSortable(column)\">\n <span class=\"k-cell-inner\">\n <span #link class=\"k-link\" (click)=\"onSortClick(column, $event, link)\">\n <ng-template\n [templateContext]=\"{\n templateRef: column.headerTemplateRef,\n columnIndex: column.leafIndex,\n column: column,\n $implicit: column\n }\">\n </ng-template>\n <ng-template [ngIf]=\"!column.headerTemplateRef\">\n <span class=\"k-column-title\">{{column.displayTitle}}</span>\n </ng-template>\n <span [attr.aria-label]=\"sortableLabel\" [ngClass]=\"sortIcon(column.field)\"></span>\n <span *ngIf=\"showSortNumbering(column)\" class=\"k-sort-order\">{{sortOrder(column.field)}}</span>\n </span>\n <span role=\"status\"\n class=\"k-sort-status\"\n style=\"position: absolute; left: -10000px;\"\n [innerHtml]=\"sortStatus(column)\">\n </span>\n <kendo-grid-filter-menu\n *ngIf=\"showFilterMenu && isFilterable(column)\"\n [column]=\"column\"\n [filter]=\"filter\"\n [tabIndex]=\"tabIndex\">\n </kendo-grid-filter-menu>\n <kendo-grid-column-menu *ngIf=\"showColumnMenu(column)\"\n [standalone]=\"false\"\n [settings]=\"columnMenu\"\n [column]=\"column\"\n [columnMenuTemplate]=\"columnMenuTemplate\"\n [sort]=\"sort\"\n [filter]=\"filter\"\n [sortable]=\"sortable\"\n [tabIndex]=\"tabIndex\">\n </kendo-grid-column-menu>\n </span>\n </ng-template>\n\n <ng-template [ngIf]=\"isCheckboxColumn(column) && !column.headerTemplateRef && column.showSelectAll\">\n <input\n class=\"k-checkbox k-checkbox-md k-rounded-md\"\n [attr.id]=\"selectAllCheckboxId()\"\n [attr.aria-label]=\"selectAllCheckboxLabel\"\n kendoGridSelectAllCheckbox\n kendoGridFocusable>\n </ng-template>\n <span kendoGridColumnHandle\n kendoDraggable\n class=\"k-column-resizer\"\n *ngIf=\"resizable\"\n [column]=\"column\"\n [columns]=\"columns\">\n </span>\n </th>\n <th *ngIf=\"isColumnGroupComponent(column)\"\n kendoGridLogicalCell\n [logicalRowIndex]=\"levelIndex\"\n [logicalColIndex]=\"logicalColumnIndex(column)\"\n [rowSpan]=\"column.rowspan(totalColumnLevels)\"\n [colSpan]=\"column.colspan\"\n [headerLabelText]=\"column.title || column.field\"\n kendoDropTarget\n kendoDraggable\n kendoDraggableColumn\n [enableDrag]=\"shouldActivate(column)\"\n [context]=\"{\n type: 'columnGroup',\n column: column,\n hint: column.title,\n lastColumn: last && columnIndex === 0\n }\"\n class=\"k-header\"\n [class.k-first]=\"isFirstOnRow(column, columnIndex)\"\n [class.k-filterable]=\"showColumnMenu(column)\"\n [class.k-grid-content-sticky]=\"column.sticky\"\n [ngClass]=\"column.headerClass\"\n [ngStyle]=\"column.headerStyle\"\n [attr.rowspan]=\"column.rowspan(totalColumnLevels)\"\n [attr.colspan]=\"column.colspan\">\n <kendo-grid-column-menu *ngIf=\"showColumnMenu(column)\"\n [standalone]=\"false\"\n [settings]=\"columnMenu\"\n [column]=\"column\"\n [columnMenuTemplate]=\"columnMenuTemplate\">\n </kendo-grid-column-menu>\n <ng-template\n [templateContext]=\"{\n templateRef: column.headerTemplateRef,\n columnIndex: lockedColumnsCount + columnIndex,\n column: column,\n $implicit: column\n }\">\n </ng-template>\n <ng-template [ngIf]=\"!column.headerTemplateRef\">{{column.displayTitle}}</ng-template>\n <span kendoGridColumnHandle\n kendoDraggable\n class=\"k-column-resizer\"\n *ngIf=\"resizable\"\n [column]=\"column\"\n [columns]=\"columns\">\n </span>\n </th>\n </ng-template>\n </tr>\n <tr *ngIf=\"showFilterRow\"\n kendoGridFilterRow\n [columns]=\"leafColumns\"\n [filter]=\"filter\"\n [groups]=\"groups\"\n [detailTemplate]=\"detailTemplate\"\n [lockedColumnsCount]=\"lockedColumnsCount\"\n kendoGridLogicalRow\n [logicalRowIndex]=\"totalColumnLevels + 1\"\n [logicalSlaveRow]=\"lockedColumnsCount > 0\"\n [logicalCellsCount]=\"columns.length\"\n [logicalSlaveCellsCount]=\"unlockedColumnsCount\"\n ></tr>\n </ng-template>\n "
17459
+ template: "\n <ng-template [ngIf]=\"true\">\n <tr *ngFor=\"let i of columnLevels; let levelIndex = index\"\n kendoGridLogicalRow\n [logicalRowIndex]=\"levelIndex\"\n [logicalSlaveRow]=\"lockedColumnsCount > 0\"\n [logicalCellsCount]=\"columns.length\"\n [logicalSlaveCellsCount]=\"unlockedColumnsCount\">\n <th\n class=\"k-group-cell k-header\"\n role=\"presentation\"\n *ngFor=\"let g of groups\">\n </th>\n <th class=\"k-hierarchy-cell k-header\"\n role=\"presentation\"\n *ngIf=\"detailTemplate?.templateRef\"\n kendoGridLogicalCell\n [logicalRowIndex]=\"levelIndex\"\n [logicalColIndex]=\"0\"\n aria-selected=\"false\"\n >\n </th>\n <ng-template ngFor let-column [ngForOf]=\"columnsForLevel(levelIndex)\" [ngForTrackBy]=\"trackByIndex\" let-columnIndex=\"index\" let-last=\"last\">\n <th *ngIf=\"!isColumnGroupComponent(column)\"\n kendoGridLogicalCell\n [logicalRowIndex]=\"levelIndex\"\n [logicalColIndex]=\"logicalColumnIndex(column)\"\n [headerLabelText]=\"column.title || column.field\"\n [colSpan]=\"column.colspan\"\n [rowSpan]=\"column.rowspan(totalColumnLevels)\"\n role=\"columnheader\"\n aria-selected=\"false\"\n [attr.aria-sort]=\"sortState(column)\"\n (keydown)=\"onHeaderKeydown(column, $event)\"\n kendoDropTarget\n kendoDraggable\n kendoDraggableColumn\n [enableDrag]=\"shouldActivate(column)\"\n [context]=\"{\n field: column.field,\n type: 'column',\n column: column,\n hint: column.title || column.field,\n lastColumn: last && columnIndex === 0\n }\"\n class=\"k-header\"\n [class.k-filterable]=\"(showFilterMenu && isFilterable(column)) || showColumnMenu(column)\"\n [class.k-first]=\"isFirstOnRow(column, columnIndex)\"\n [class.k-grid-header-sticky]=\"column.sticky\"\n [ngClass]=\"column.headerClass\"\n [ngStyle]=\"column.sticky ? addStickyStyles(column) : column.headerStyle\"\n [attr.rowspan]=\"column.rowspan(totalColumnLevels)\"\n [attr.colspan]=\"column.colspan\">\n\n <ng-template [ngIf]=\"!isSortable(column)\">\n <kendo-grid-filter-menu\n *ngIf=\"showFilterMenu && isFilterable(column)\"\n [column]=\"column\"\n [filter]=\"filter\"\n [tabIndex]=\"tabIndex\">\n </kendo-grid-filter-menu>\n <kendo-grid-column-menu *ngIf=\"showColumnMenu(column)\"\n [standalone]=\"false\"\n [settings]=\"columnMenu\"\n [column]=\"column\"\n [columnMenuTemplate]=\"columnMenuTemplate\"\n [sort]=\"sort\"\n [filter]=\"filter\"\n [sortable]=\"sortable\"\n [tabIndex]=\"tabIndex\">\n </kendo-grid-column-menu>\n <ng-template\n [templateContext]=\"{\n templateRef: column.headerTemplateRef,\n columnIndex: column.leafIndex,\n column: column,\n $implicit: column\n }\">\n </ng-template>\n <ng-template [ngIf]=\"!column.headerTemplateRef\">{{column.displayTitle}}</ng-template>\n </ng-template>\n\n <ng-template [ngIf]=\"isSortable(column)\">\n <span class=\"k-cell-inner\">\n <span #link class=\"k-link\" (click)=\"onSortClick(column, $event, link)\">\n <ng-template\n [templateContext]=\"{\n templateRef: column.headerTemplateRef,\n columnIndex: column.leafIndex,\n column: column,\n $implicit: column\n }\">\n </ng-template>\n <ng-template [ngIf]=\"!column.headerTemplateRef\">\n <span class=\"k-column-title\">{{column.displayTitle}}</span>\n </ng-template>\n <span role=\"note\" [attr.aria-label]=\"sortableLabel\" [ngClass]=\"sortIcon(column.field)\"></span>\n <span *ngIf=\"showSortNumbering(column)\" class=\"k-sort-order\">{{sortOrder(column.field)}}</span>\n </span>\n <span role=\"status\"\n class=\"k-sort-status\"\n style=\"position: absolute; left: -10000px;\"\n [innerHtml]=\"sortStatus(column)\">\n </span>\n <kendo-grid-filter-menu\n *ngIf=\"showFilterMenu && isFilterable(column)\"\n [column]=\"column\"\n [filter]=\"filter\"\n [tabIndex]=\"tabIndex\">\n </kendo-grid-filter-menu>\n <kendo-grid-column-menu *ngIf=\"showColumnMenu(column)\"\n [standalone]=\"false\"\n [settings]=\"columnMenu\"\n [column]=\"column\"\n [columnMenuTemplate]=\"columnMenuTemplate\"\n [sort]=\"sort\"\n [filter]=\"filter\"\n [sortable]=\"sortable\"\n [tabIndex]=\"tabIndex\">\n </kendo-grid-column-menu>\n </span>\n </ng-template>\n\n <ng-template [ngIf]=\"isCheckboxColumn(column) && !column.headerTemplateRef && column.showSelectAll\">\n <input\n class=\"k-checkbox k-checkbox-md k-rounded-md\"\n [attr.id]=\"selectAllCheckboxId()\"\n [attr.aria-label]=\"selectAllCheckboxLabel\"\n kendoGridSelectAllCheckbox\n kendoGridFocusable>\n </ng-template>\n <span kendoGridColumnHandle\n kendoDraggable\n class=\"k-column-resizer\"\n *ngIf=\"resizable\"\n [column]=\"column\"\n [columns]=\"columns\">\n </span>\n </th>\n <th *ngIf=\"isColumnGroupComponent(column)\"\n kendoGridLogicalCell\n [logicalRowIndex]=\"levelIndex\"\n [logicalColIndex]=\"logicalColumnIndex(column)\"\n [rowSpan]=\"column.rowspan(totalColumnLevels)\"\n [colSpan]=\"column.colspan\"\n [headerLabelText]=\"column.title || column.field\"\n kendoDropTarget\n kendoDraggable\n kendoDraggableColumn\n [enableDrag]=\"shouldActivate(column)\"\n [context]=\"{\n type: 'columnGroup',\n column: column,\n hint: column.title,\n lastColumn: last && columnIndex === 0\n }\"\n class=\"k-header\"\n [class.k-first]=\"isFirstOnRow(column, columnIndex)\"\n [class.k-filterable]=\"showColumnMenu(column)\"\n [class.k-grid-content-sticky]=\"column.sticky\"\n [ngClass]=\"column.headerClass\"\n [ngStyle]=\"column.headerStyle\"\n [attr.rowspan]=\"column.rowspan(totalColumnLevels)\"\n [attr.colspan]=\"column.colspan\">\n <kendo-grid-column-menu *ngIf=\"showColumnMenu(column)\"\n [standalone]=\"false\"\n [settings]=\"columnMenu\"\n [column]=\"column\"\n [columnMenuTemplate]=\"columnMenuTemplate\">\n </kendo-grid-column-menu>\n <ng-template\n [templateContext]=\"{\n templateRef: column.headerTemplateRef,\n columnIndex: lockedColumnsCount + columnIndex,\n column: column,\n $implicit: column\n }\">\n </ng-template>\n <ng-template [ngIf]=\"!column.headerTemplateRef\">{{column.displayTitle}}</ng-template>\n <span kendoGridColumnHandle\n kendoDraggable\n class=\"k-column-resizer\"\n *ngIf=\"resizable\"\n [column]=\"column\"\n [columns]=\"columns\">\n </span>\n </th>\n </ng-template>\n </tr>\n <tr *ngIf=\"showFilterRow\"\n kendoGridFilterRow\n [columns]=\"leafColumns\"\n [filter]=\"filter\"\n [groups]=\"groups\"\n [detailTemplate]=\"detailTemplate\"\n [lockedColumnsCount]=\"lockedColumnsCount\"\n kendoGridLogicalRow\n [logicalRowIndex]=\"totalColumnLevels + 1\"\n [logicalSlaveRow]=\"lockedColumnsCount > 0\"\n [logicalCellsCount]=\"columns.length\"\n [logicalSlaveCellsCount]=\"unlockedColumnsCount\"\n ></tr>\n </ng-template>\n "
17460
17460
  }),
17461
17461
  __metadata("design:paramtypes", [SinglePopupService,
17462
17462
  DragHintService,
@@ -17736,10 +17736,10 @@ var SelectAllCheckboxDirective = /** @class */ (function () {
17736
17736
  * ([see example]({% slug selection_grid %}#toc-select-all-feature)).
17737
17737
  */
17738
17738
  this.selectAllChange = new EventEmitter();
17739
- this.type = "checkbox";
17739
+ this.type = 'checkbox';
17740
17740
  this.stateSet = false;
17741
17741
  this.ngZone.runOutsideAngular(function () {
17742
- _this.destroyClick = _this.renderer.listen(_this.el.nativeElement, "click", _this.onClick.bind(_this));
17742
+ _this.destroyClick = _this.renderer.listen(_this.el.nativeElement, 'click', _this.onClick.bind(_this));
17743
17743
  });
17744
17744
  }
17745
17745
  SelectAllCheckboxDirective.prototype.ngAfterContentChecked = function () {
@@ -17758,14 +17758,20 @@ var SelectAllCheckboxDirective = /** @class */ (function () {
17758
17758
  */
17759
17759
  SelectAllCheckboxDirective.prototype.onClick = function () {
17760
17760
  var _this = this;
17761
- // yields consistent cross-browser behavior when clicking an "indeterminate" checkbox
17761
+ // yields consistent cross-browser behavior when clicking an indeterminate checkbox
17762
17762
  var undefinedCheckedStateInIE = detectIE() && this.selectionService.selectAllState === undefined;
17763
17763
  var isChecked = undefinedCheckedStateInIE ? true : this.el.nativeElement.checked;
17764
17764
  var options = this.selectionService.options;
17765
- this.selectAllChange.emit(isChecked ? "checked" : "unchecked");
17766
- if (options.enabled && options.mode === "multiple") {
17765
+ var enabledAndMultiple = options.enabled && options.mode === 'multiple';
17766
+ var shouldEmitSelectAll = hasObservers(this.selectAllChange);
17767
+ if (enabledAndMultiple || shouldEmitSelectAll) {
17767
17768
  this.ngZone.run(function () {
17768
- _this.selectionService.updateAll(isChecked);
17769
+ if (enabledAndMultiple) {
17770
+ _this.selectionService.updateAll(isChecked);
17771
+ }
17772
+ if (shouldEmitSelectAll) {
17773
+ _this.selectAllChange.emit(isChecked ? 'checked' : 'unchecked');
17774
+ }
17769
17775
  });
17770
17776
  }
17771
17777
  };
@@ -17775,17 +17781,17 @@ var SelectAllCheckboxDirective = /** @class */ (function () {
17775
17781
  SelectAllCheckboxDirective.prototype.setState = function () {
17776
17782
  var state$$1 = this.stateSet ? this.stateToBool() : this.selectionService.selectAllState;
17777
17783
  var elem = this.el.nativeElement;
17778
- this.renderer.setProperty(elem, "indeterminate", !isPresent(state$$1));
17779
- this.renderer.setProperty(elem, "checked", isPresent(state$$1) ? state$$1 : false);
17784
+ this.renderer.setProperty(elem, 'indeterminate', !isPresent(state$$1));
17785
+ this.renderer.setProperty(elem, 'checked', isPresent(state$$1) ? state$$1 : false);
17780
17786
  };
17781
17787
  /**
17782
17788
  * @hidden
17783
17789
  */
17784
17790
  SelectAllCheckboxDirective.prototype.stateToBool = function () {
17785
17791
  switch (this.state) {
17786
- case "checked":
17792
+ case 'checked':
17787
17793
  return true;
17788
- case "unchecked":
17794
+ case 'unchecked':
17789
17795
  return false;
17790
17796
  default:
17791
17797
  return undefined;
@@ -11,7 +11,7 @@ exports.packageMetadata = {
11
11
  name: '@progress/kendo-angular-grid',
12
12
  productName: 'Kendo UI for Angular',
13
13
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
14
- publishDate: 1642684789,
14
+ publishDate: 1644856057,
15
15
  version: '',
16
16
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
17
17
  };
@@ -45,7 +45,7 @@ var PagerNextButtonsComponent = /** @class */ (function (_super) {
45
45
  core_1.Component({
46
46
  changeDetection: core_1.ChangeDetectionStrategy.OnPush,
47
47
  selector: 'kendo-pager-next-buttons',
48
- template: "\n <span\n [kendoGridFocusable]=\"!disabled\"\n tabindex=\"0\"\n [title]=\"textFor('pagerNextPage')\"\n (click)=\"currentPage !== totalPages ? changePage(currentPage) : false\"\n (keydown.enter)=\"currentPage !== totalPages ? changePage(currentPage) : false\"\n [ngClass]=\"{\n 'k-link': true,\n 'k-pager-nav': true,\n 'k-state-disabled': disabled,\n '': true\n }\">\n <span [attr.aria-label]=\"textFor('pagerNextPage')\"\n [ngClass]=\"{\n 'k-icon':true,\n 'k-i-arrow-e': true\n }\">\n </span>\n </span>\n <span\n [kendoGridFocusable]=\"!disabled\"\n tabindex=\"0\"\n [title]=\"textFor('pagerLastPage')\"\n (click)=\"currentPage !== totalPages ? changePage(totalPages-1) : false\"\n (keydown.enter)=\"currentPage !== totalPages ? changePage(totalPages-1) : false\"\n [ngClass]=\"{\n 'k-link': true,\n 'k-pager-nav': true,\n 'k-state-disabled': disabled,\n 'k-pager-last': true\n }\">\n <span [attr.aria-label]=\"textFor('pagerLastPage')\"\n [ngClass]=\"{\n 'k-icon':true,\n 'k-i-seek-e': true\n }\">\n </span>\n </span>\n "
48
+ template: "\n <span\n [kendoGridFocusable]=\"!disabled\"\n tabindex=\"0\"\n [title]=\"textFor('pagerNextPage')\"\n (click)=\"currentPage !== totalPages ? changePage(currentPage) : false\"\n (keydown.enter)=\"currentPage !== totalPages ? changePage(currentPage) : false\"\n role=\"button\"\n [ngClass]=\"{\n 'k-link': true,\n 'k-pager-nav': true,\n 'k-state-disabled': disabled,\n '': true\n }\">\n <span role=\"note\" [attr.aria-label]=\"textFor('pagerNextPage')\"\n [ngClass]=\"{\n 'k-icon':true,\n 'k-i-arrow-e': true\n }\">\n </span>\n </span>\n <span\n [kendoGridFocusable]=\"!disabled\"\n tabindex=\"0\"\n [title]=\"textFor('pagerLastPage')\"\n (click)=\"currentPage !== totalPages ? changePage(totalPages-1) : false\"\n (keydown.enter)=\"currentPage !== totalPages ? changePage(totalPages-1) : false\"\n role=\"button\"\n [ngClass]=\"{\n 'k-link': true,\n 'k-pager-nav': true,\n 'k-state-disabled': disabled,\n 'k-pager-last': true\n }\">\n <span role=\"note\" [attr.aria-label]=\"textFor('pagerLastPage')\"\n [ngClass]=\"{\n 'k-icon':true,\n 'k-i-seek-e': true\n }\">\n </span>\n </span>\n "
49
49
  }),
50
50
  tslib_1.__metadata("design:paramtypes", [kendo_angular_l10n_1.LocalizationService,
51
51
  pager_context_service_1.PagerContextService,
@@ -111,7 +111,7 @@ var PagerNumericButtonsComponent = /** @class */ (function (_super) {
111
111
  core_1.Component({
112
112
  changeDetection: core_1.ChangeDetectionStrategy.OnPush,
113
113
  selector: 'kendo-pager-numeric-buttons',
114
- template: "\n <select\n class=\"k-dropdownlist k-pager-nav\"\n kendoGridFocusable\n tabindex=\"0\"\n [value]=\"(currentPage).toString()\"\n (change)=\"onSelectChange($event)\">\n <option *ngIf=\"start > 1\"\n class=\"k-link\"\n value=\"previousButtons\"\n [attr.aria-label]=\"pageLabel(start - 1)\">...\n </option>\n <option *ngFor=\"let num of buttons\"\n [value]=\"num.toString()\"\n [attr.aria-label]=\"pageLabel(num)\"\n [attr.aria-current]=\"currentPage == num ? 'page' : undefined\"\n [ngClass]=\"{'k-link': true, 'k-state-selected':currentPage == num}\">\n {{num}}\n </option>\n <option *ngIf=\"end < totalPages\"\n value=\"nextButtons\"\n class=\"k-link\"\n [attr.aria-label]=\"pageLabel(end + 1)\">...\n </option>\n </select>\n <ul [ngClass]=\"{'k-pager-numbers': true, 'k-reset': true}\">\n <li *ngIf=\"start > 1\">\n <span\n kendoGridFocusable\n tabindex=\"0\"\n class=\"k-link k-pager-nav\"\n [attr.aria-label]=\"pageLabel(start - 1)\"\n (click)=\"changePage(start - 2)\"\n (keydown.enter)=\"changePage(start - 2)\">...</span>\n </li>\n <li *ngFor=\"let num of buttons\">\n <span\n kendoGridFocusable\n tabindex=\"0\"\n [attr.aria-label]=\"pageLabel(num)\"\n [ngClass]=\"{'k-link': true, 'k-state-selected':currentPage == num, 'k-pager-nav': true}\"\n (click)=\"changePage(num - 1)\"\n (keydown.enter)=\"changePage(num - 1)\">\n {{num}}\n </span>\n </li>\n <li *ngIf=\"end < totalPages\">\n <span\n kendoGridFocusable\n tabindex=\"0\"\n class=\"k-link k-pager-nav\"\n [attr.aria-label]=\"pageLabel(end + 1)\"\n (click)=\"changePage(end)\"\n (keydown.enter)=\"changePage(end)\">...</span>\n </li>\n </ul>\n "
114
+ template: "\n <select\n class=\"k-dropdownlist k-pager-nav\"\n kendoGridFocusable\n tabindex=\"0\"\n [value]=\"(currentPage).toString()\"\n (change)=\"onSelectChange($event)\">\n <option *ngIf=\"start > 1\"\n class=\"k-link\"\n value=\"previousButtons\"\n [attr.aria-label]=\"pageLabel(start - 1)\">...\n </option>\n <option *ngFor=\"let num of buttons\"\n [value]=\"num.toString()\"\n [attr.aria-label]=\"pageLabel(num)\"\n [attr.aria-current]=\"currentPage == num ? 'page' : undefined\"\n [ngClass]=\"{'k-link': true, 'k-state-selected':currentPage == num}\">\n {{num}}\n </option>\n <option *ngIf=\"end < totalPages\"\n value=\"nextButtons\"\n class=\"k-link\"\n [attr.aria-label]=\"pageLabel(end + 1)\">...\n </option>\n </select>\n <ul [ngClass]=\"{'k-pager-numbers': true, 'k-reset': true}\">\n <li *ngIf=\"start > 1\">\n <span\n kendoGridFocusable\n tabindex=\"0\"\n class=\"k-link k-pager-nav\"\n role=\"button\"\n [attr.aria-label]=\"pageLabel(start - 1)\"\n (click)=\"changePage(start - 2)\"\n (keydown.enter)=\"changePage(start - 2)\">...</span>\n </li>\n <li *ngFor=\"let num of buttons\">\n <span\n kendoGridFocusable\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-label]=\"pageLabel(num)\"\n [ngClass]=\"{'k-link': true, 'k-state-selected':currentPage == num, 'k-pager-nav': true}\"\n (click)=\"changePage(num - 1)\"\n (keydown.enter)=\"changePage(num - 1)\">\n {{num}}\n </span>\n </li>\n <li *ngIf=\"end < totalPages\">\n <span\n kendoGridFocusable\n tabindex=\"0\"\n class=\"k-link k-pager-nav\"\n role=\"button\"\n [attr.aria-label]=\"pageLabel(end + 1)\"\n (click)=\"changePage(end)\"\n (keydown.enter)=\"changePage(end)\">...</span>\n </li>\n </ul>\n "
115
115
  }),
116
116
  tslib_1.__metadata("design:paramtypes", [kendo_angular_l10n_1.LocalizationService,
117
117
  core_1.ChangeDetectorRef,