@progress/kendo-angular-grid 6.0.2-dev.202201270915 → 6.0.3
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.
- package/dist/cdn/js/kendo-angular-grid.js +1 -1
- package/dist/cdn/main.js +1 -1
- package/dist/es/package-metadata.js +1 -1
- package/dist/es/rendering/header/header.component.js +1 -1
- package/dist/es/selection/selectall-checkbox.directive.js +18 -11
- package/dist/es2015/index.metadata.json +1 -1
- package/dist/es2015/package-metadata.js +1 -1
- package/dist/es2015/rendering/header/header.component.js +1 -1
- package/dist/es2015/selection/selectall-checkbox.directive.d.ts +1 -1
- package/dist/es2015/selection/selectall-checkbox.directive.js +18 -11
- package/dist/fesm2015/index.js +18 -12
- package/dist/fesm5/index.js +18 -12
- package/dist/npm/package-metadata.js +1 -1
- package/dist/npm/rendering/header/header.component.js +1 -1
- package/dist/npm/selection/selectall-checkbox.directive.js +17 -10
- package/dist/systemjs/kendo-angular-grid.js +1 -1
- package/package.json +1 -1
|
@@ -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:
|
|
12
|
+
publishDate: 1644936604,
|
|
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
|
};
|
|
@@ -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
|
|
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
|
|
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 =
|
|
25
|
+
this.type = 'checkbox';
|
|
25
26
|
this.stateSet = false;
|
|
26
27
|
this.ngZone.runOutsideAngular(() => {
|
|
27
|
-
this.destroyClick = this.renderer.listen(this.el.nativeElement,
|
|
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
|
|
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
|
-
|
|
50
|
-
|
|
50
|
+
const enabledAndMultiple = options.enabled && options.mode === 'multiple';
|
|
51
|
+
const shouldEmitSelectAll = hasObservers(this.selectAllChange);
|
|
52
|
+
if (enabledAndMultiple || shouldEmitSelectAll) {
|
|
51
53
|
this.ngZone.run(() => {
|
|
52
|
-
|
|
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,
|
|
63
|
-
this.renderer.setProperty(elem,
|
|
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
|
|
77
|
+
case 'checked':
|
|
71
78
|
return true;
|
|
72
|
-
case
|
|
79
|
+
case 'unchecked':
|
|
73
80
|
return false;
|
|
74
81
|
default:
|
|
75
82
|
return undefined;
|
package/dist/fesm2015/index.js
CHANGED
|
@@ -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:
|
|
2834
|
+
publishDate: 1644936604,
|
|
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
|
};
|
|
@@ -16976,7 +16976,7 @@ HeaderComponent = __decorate([
|
|
|
16976
16976
|
<ng-template [ngIf]="!column.headerTemplateRef">
|
|
16977
16977
|
<span class="k-column-title">{{column.displayTitle}}</span>
|
|
16978
16978
|
</ng-template>
|
|
16979
|
-
<span [attr.aria-label]="sortableLabel" [ngClass]="sortIcon(column.field)"></span>
|
|
16979
|
+
<span role="note" [attr.aria-label]="sortableLabel" [ngClass]="sortIcon(column.field)"></span>
|
|
16980
16980
|
<span *ngIf="showSortNumbering(column)" class="k-sort-order">{{sortOrder(column.field)}}</span>
|
|
16981
16981
|
</span>
|
|
16982
16982
|
<span role="status"
|
|
@@ -17329,10 +17329,10 @@ let SelectAllCheckboxDirective = class SelectAllCheckboxDirective {
|
|
|
17329
17329
|
* ([see example]({% slug selection_grid %}#toc-select-all-feature)).
|
|
17330
17330
|
*/
|
|
17331
17331
|
this.selectAllChange = new EventEmitter();
|
|
17332
|
-
this.type =
|
|
17332
|
+
this.type = 'checkbox';
|
|
17333
17333
|
this.stateSet = false;
|
|
17334
17334
|
this.ngZone.runOutsideAngular(() => {
|
|
17335
|
-
this.destroyClick = this.renderer.listen(this.el.nativeElement,
|
|
17335
|
+
this.destroyClick = this.renderer.listen(this.el.nativeElement, 'click', this.onClick.bind(this));
|
|
17336
17336
|
});
|
|
17337
17337
|
}
|
|
17338
17338
|
ngAfterContentChecked() {
|
|
@@ -17350,14 +17350,20 @@ let SelectAllCheckboxDirective = class SelectAllCheckboxDirective {
|
|
|
17350
17350
|
* @hidden
|
|
17351
17351
|
*/
|
|
17352
17352
|
onClick() {
|
|
17353
|
-
// yields consistent cross-browser behavior when clicking an
|
|
17353
|
+
// yields consistent cross-browser behavior when clicking an indeterminate checkbox
|
|
17354
17354
|
const undefinedCheckedStateInIE = detectIE() && this.selectionService.selectAllState === undefined;
|
|
17355
17355
|
const isChecked = undefinedCheckedStateInIE ? true : this.el.nativeElement.checked;
|
|
17356
17356
|
const options = this.selectionService.options;
|
|
17357
|
-
|
|
17358
|
-
|
|
17357
|
+
const enabledAndMultiple = options.enabled && options.mode === 'multiple';
|
|
17358
|
+
const shouldEmitSelectAll = hasObservers(this.selectAllChange);
|
|
17359
|
+
if (enabledAndMultiple || shouldEmitSelectAll) {
|
|
17359
17360
|
this.ngZone.run(() => {
|
|
17360
|
-
|
|
17361
|
+
if (enabledAndMultiple) {
|
|
17362
|
+
this.selectionService.updateAll(isChecked);
|
|
17363
|
+
}
|
|
17364
|
+
if (shouldEmitSelectAll) {
|
|
17365
|
+
this.selectAllChange.emit(isChecked ? 'checked' : 'unchecked');
|
|
17366
|
+
}
|
|
17361
17367
|
});
|
|
17362
17368
|
}
|
|
17363
17369
|
}
|
|
@@ -17367,17 +17373,17 @@ let SelectAllCheckboxDirective = class SelectAllCheckboxDirective {
|
|
|
17367
17373
|
setState() {
|
|
17368
17374
|
const state$$1 = this.stateSet ? this.stateToBool() : this.selectionService.selectAllState;
|
|
17369
17375
|
const elem = this.el.nativeElement;
|
|
17370
|
-
this.renderer.setProperty(elem,
|
|
17371
|
-
this.renderer.setProperty(elem,
|
|
17376
|
+
this.renderer.setProperty(elem, 'indeterminate', !isPresent(state$$1));
|
|
17377
|
+
this.renderer.setProperty(elem, 'checked', isPresent(state$$1) ? state$$1 : false);
|
|
17372
17378
|
}
|
|
17373
17379
|
/**
|
|
17374
17380
|
* @hidden
|
|
17375
17381
|
*/
|
|
17376
17382
|
stateToBool() {
|
|
17377
17383
|
switch (this.state) {
|
|
17378
|
-
case
|
|
17384
|
+
case 'checked':
|
|
17379
17385
|
return true;
|
|
17380
|
-
case
|
|
17386
|
+
case 'unchecked':
|
|
17381
17387
|
return false;
|
|
17382
17388
|
default:
|
|
17383
17389
|
return undefined;
|
package/dist/fesm5/index.js
CHANGED
|
@@ -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:
|
|
3047
|
+
publishDate: 1644936604,
|
|
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
|
};
|
|
@@ -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 =
|
|
17739
|
+
this.type = 'checkbox';
|
|
17740
17740
|
this.stateSet = false;
|
|
17741
17741
|
this.ngZone.runOutsideAngular(function () {
|
|
17742
|
-
_this.destroyClick = _this.renderer.listen(_this.el.nativeElement,
|
|
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
|
|
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
|
-
|
|
17766
|
-
|
|
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
|
-
|
|
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,
|
|
17779
|
-
this.renderer.setProperty(elem,
|
|
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
|
|
17792
|
+
case 'checked':
|
|
17787
17793
|
return true;
|
|
17788
|
-
case
|
|
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:
|
|
14
|
+
publishDate: 1644936604,
|
|
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
|
};
|
|
@@ -565,7 +565,7 @@ var HeaderComponent = /** @class */ (function () {
|
|
|
565
565
|
core_1.Component({
|
|
566
566
|
selector: '[kendoGridHeader]',
|
|
567
567
|
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 "],
|
|
568
|
-
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 "
|
|
568
|
+
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 "
|
|
569
569
|
}),
|
|
570
570
|
tslib_1.__metadata("design:paramtypes", [single_popup_service_1.SinglePopupService,
|
|
571
571
|
drag_hint_service_1.DragHintService,
|
|
@@ -9,6 +9,7 @@ var utils_1 = require("./../utils");
|
|
|
9
9
|
var core_1 = require("@angular/core");
|
|
10
10
|
var selection_service_1 = require("./selection.service");
|
|
11
11
|
var utils_2 = require("../utils");
|
|
12
|
+
var kendo_angular_common_1 = require("@progress/kendo-angular-common");
|
|
12
13
|
/**
|
|
13
14
|
* Represents the select-all checkbox feature of the Grid ([see example]({% slug selection_grid %}#toc-select-all-feature)).
|
|
14
15
|
*/
|
|
@@ -24,10 +25,10 @@ var SelectAllCheckboxDirective = /** @class */ (function () {
|
|
|
24
25
|
* ([see example]({% slug selection_grid %}#toc-select-all-feature)).
|
|
25
26
|
*/
|
|
26
27
|
this.selectAllChange = new core_1.EventEmitter();
|
|
27
|
-
this.type =
|
|
28
|
+
this.type = 'checkbox';
|
|
28
29
|
this.stateSet = false;
|
|
29
30
|
this.ngZone.runOutsideAngular(function () {
|
|
30
|
-
_this.destroyClick = _this.renderer.listen(_this.el.nativeElement,
|
|
31
|
+
_this.destroyClick = _this.renderer.listen(_this.el.nativeElement, 'click', _this.onClick.bind(_this));
|
|
31
32
|
});
|
|
32
33
|
}
|
|
33
34
|
SelectAllCheckboxDirective.prototype.ngAfterContentChecked = function () {
|
|
@@ -46,14 +47,20 @@ var SelectAllCheckboxDirective = /** @class */ (function () {
|
|
|
46
47
|
*/
|
|
47
48
|
SelectAllCheckboxDirective.prototype.onClick = function () {
|
|
48
49
|
var _this = this;
|
|
49
|
-
// yields consistent cross-browser behavior when clicking an
|
|
50
|
+
// yields consistent cross-browser behavior when clicking an indeterminate checkbox
|
|
50
51
|
var undefinedCheckedStateInIE = utils_1.detectIE() && this.selectionService.selectAllState === undefined;
|
|
51
52
|
var isChecked = undefinedCheckedStateInIE ? true : this.el.nativeElement.checked;
|
|
52
53
|
var options = this.selectionService.options;
|
|
53
|
-
|
|
54
|
-
|
|
54
|
+
var enabledAndMultiple = options.enabled && options.mode === 'multiple';
|
|
55
|
+
var shouldEmitSelectAll = kendo_angular_common_1.hasObservers(this.selectAllChange);
|
|
56
|
+
if (enabledAndMultiple || shouldEmitSelectAll) {
|
|
55
57
|
this.ngZone.run(function () {
|
|
56
|
-
|
|
58
|
+
if (enabledAndMultiple) {
|
|
59
|
+
_this.selectionService.updateAll(isChecked);
|
|
60
|
+
}
|
|
61
|
+
if (shouldEmitSelectAll) {
|
|
62
|
+
_this.selectAllChange.emit(isChecked ? 'checked' : 'unchecked');
|
|
63
|
+
}
|
|
57
64
|
});
|
|
58
65
|
}
|
|
59
66
|
};
|
|
@@ -63,17 +70,17 @@ var SelectAllCheckboxDirective = /** @class */ (function () {
|
|
|
63
70
|
SelectAllCheckboxDirective.prototype.setState = function () {
|
|
64
71
|
var state = this.stateSet ? this.stateToBool() : this.selectionService.selectAllState;
|
|
65
72
|
var elem = this.el.nativeElement;
|
|
66
|
-
this.renderer.setProperty(elem,
|
|
67
|
-
this.renderer.setProperty(elem,
|
|
73
|
+
this.renderer.setProperty(elem, 'indeterminate', !utils_2.isPresent(state));
|
|
74
|
+
this.renderer.setProperty(elem, 'checked', utils_2.isPresent(state) ? state : false);
|
|
68
75
|
};
|
|
69
76
|
/**
|
|
70
77
|
* @hidden
|
|
71
78
|
*/
|
|
72
79
|
SelectAllCheckboxDirective.prototype.stateToBool = function () {
|
|
73
80
|
switch (this.state) {
|
|
74
|
-
case
|
|
81
|
+
case 'checked':
|
|
75
82
|
return true;
|
|
76
|
-
case
|
|
83
|
+
case 'unchecked':
|
|
77
84
|
return false;
|
|
78
85
|
default:
|
|
79
86
|
return undefined;
|