@progress/kendo-angular-grid 13.0.0-develop.2 → 13.0.0-develop.21

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.
Files changed (75) hide show
  1. package/aggregates/aggregate-types.d.ts +58 -0
  2. package/aggregates/status-bar-template.directive.d.ts +19 -0
  3. package/aggregates/status-bar.component.d.ts +53 -0
  4. package/column-menu/column-chooser.component.d.ts +1 -1
  5. package/column-menu/column-menu-autosize-all.component.d.ts +3 -4
  6. package/column-menu/column-menu-chooser.component.d.ts +3 -4
  7. package/column-menu/column-menu-filter.component.d.ts +3 -4
  8. package/column-menu/column-menu-lock.component.d.ts +3 -4
  9. package/column-menu/column-menu-position.component.d.ts +3 -4
  10. package/column-menu/column-menu-sort.component.d.ts +4 -2
  11. package/esm2020/aggregates/aggregate-types.mjs +6 -0
  12. package/esm2020/aggregates/status-bar-template.directive.mjs +26 -0
  13. package/esm2020/aggregates/status-bar.component.mjs +236 -0
  14. package/esm2020/column-menu/column-chooser.component.mjs +1 -1
  15. package/esm2020/column-menu/column-list.component.mjs +3 -3
  16. package/esm2020/column-menu/column-menu-autosize-all.component.mjs +3 -4
  17. package/esm2020/column-menu/column-menu-chooser.component.mjs +4 -5
  18. package/esm2020/column-menu/column-menu-filter.component.mjs +4 -5
  19. package/esm2020/column-menu/column-menu-item.component.mjs +1 -1
  20. package/esm2020/column-menu/column-menu-lock.component.mjs +3 -4
  21. package/esm2020/column-menu/column-menu-position.component.mjs +3 -4
  22. package/esm2020/column-menu/column-menu-sort.component.mjs +4 -2
  23. package/esm2020/column-menu/column-menu.component.mjs +1 -1
  24. package/esm2020/editing/add-command.directive.mjs +1 -1
  25. package/esm2020/editing/cancel-command.directive.mjs +1 -1
  26. package/esm2020/editing/edit-command.directive.mjs +1 -1
  27. package/esm2020/editing/remove-command.directive.mjs +1 -1
  28. package/esm2020/editing/save-command.directive.mjs +1 -1
  29. package/esm2020/excel/excel-command.directive.mjs +1 -1
  30. package/esm2020/filtering/cell/boolean-filter-cell.component.mjs +1 -1
  31. package/esm2020/filtering/cell/filter-cell-operators.component.mjs +15 -1
  32. package/esm2020/filtering/cell/filter-cell-wrapper.component.mjs +3 -1
  33. package/esm2020/filtering/cell/string-filter-cell.component.mjs +1 -1
  34. package/esm2020/filtering/filter-input.directive.mjs +5 -1
  35. package/esm2020/filtering/menu/filter-menu-container.component.mjs +11 -11
  36. package/esm2020/filtering/menu/filter-menu.component.mjs +1 -1
  37. package/esm2020/grid.component.mjs +574 -540
  38. package/esm2020/grid.module.mjs +10 -2
  39. package/esm2020/grouping/group-header.component.mjs +25 -8
  40. package/esm2020/grouping/group-panel.component.mjs +2 -2
  41. package/esm2020/index.mjs +1 -0
  42. package/esm2020/localization/messages.mjs +5 -1
  43. package/esm2020/package-metadata.mjs +2 -2
  44. package/esm2020/pager/pager-element.component.mjs +17 -0
  45. package/esm2020/pager/pager-next-buttons.component.mjs +8 -11
  46. package/esm2020/pager/pager-page-sizes.component.mjs +1 -1
  47. package/esm2020/pager/pager-prev-buttons.component.mjs +8 -11
  48. package/esm2020/pdf/pdf-command.directive.mjs +1 -1
  49. package/esm2020/rendering/cell.component.mjs +1 -1
  50. package/esm2020/rendering/header/header.component.mjs +1 -1
  51. package/esm2020/rendering/list.component.mjs +12 -14
  52. package/esm2020/rendering/table-body.component.mjs +1 -1
  53. package/esm2020/selection/cell-selection.service.mjs +20 -1
  54. package/esm2020/selection/selection-checkbox.directive.mjs +2 -0
  55. package/esm2020/selection/selection-default.mjs +14 -1
  56. package/esm2020/selection/selection.service.mjs +31 -5
  57. package/fesm2015/progress-kendo-angular-grid.mjs +1026 -646
  58. package/fesm2020/progress-kendo-angular-grid.mjs +1027 -646
  59. package/filtering/cell/filter-cell-operators.component.d.ts +10 -1
  60. package/grid.component.d.ts +10 -1
  61. package/grid.module.d.ts +100 -98
  62. package/grouping/group-header.component.d.ts +6 -3
  63. package/grouping/group-panel.component.d.ts +0 -1
  64. package/index.d.ts +2 -0
  65. package/localization/messages.d.ts +25 -1
  66. package/package.json +16 -16
  67. package/pager/pager-element.component.d.ts +9 -0
  68. package/pager/pager-next-buttons.component.d.ts +0 -3
  69. package/pager/pager-prev-buttons.component.d.ts +0 -3
  70. package/schematics/ngAdd/index.js +3 -3
  71. package/scrolling/scroll-request.service.d.ts +6 -0
  72. package/selection/cell-selection.service.d.ts +3 -0
  73. package/selection/selection-default.d.ts +17 -2
  74. package/selection/selection.service.d.ts +8 -2
  75. package/selection/types.d.ts +27 -0
@@ -23,6 +23,8 @@ import { FooterModule } from "./rendering/footer/footer.module";
23
23
  import { SharedModule } from './shared.module';
24
24
  import { ToolbarTemplateDirective } from "./rendering/toolbar/toolbar-template.directive";
25
25
  import { ToolbarComponent } from "./rendering/toolbar/toolbar.component";
26
+ import { StatusBarTemplateDirective } from './aggregates/status-bar-template.directive';
27
+ import { StatusBarComponent } from './aggregates/status-bar.component';
26
28
  import { ResizeSensorModule } from '@progress/kendo-angular-common';
27
29
  import { TemplateEditingDirective } from './editing-directives/template-editing.directive';
28
30
  import { ReactiveEditingDirective } from './editing-directives/reactive-editing.directive';
@@ -123,6 +125,7 @@ const exportedModules = [
123
125
  ToolbarTemplateDirective,
124
126
  ToolbarComponent,
125
127
  GridSpacerComponent,
128
+ StatusBarTemplateDirective,
126
129
  DataBindingDirective,
127
130
  SelectionDirective,
128
131
  CustomMessagesComponent,
@@ -160,7 +163,9 @@ const declarations = [
160
163
  GroupBindingDirective,
161
164
  GridMarqueeDirective,
162
165
  GridSpacerComponent,
163
- GridToolbarFocusableDirective
166
+ GridToolbarFocusableDirective,
167
+ StatusBarComponent,
168
+ StatusBarTemplateDirective
164
169
  ];
165
170
  /**
166
171
  * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
@@ -202,7 +207,9 @@ GridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13
202
207
  GroupBindingDirective,
203
208
  GridMarqueeDirective,
204
209
  GridSpacerComponent,
205
- GridToolbarFocusableDirective], imports: [CommonModule,
210
+ GridToolbarFocusableDirective,
211
+ StatusBarComponent,
212
+ StatusBarTemplateDirective], imports: [CommonModule,
206
213
  GroupModule,
207
214
  SharedModule,
208
215
  BodyModule,
@@ -217,6 +224,7 @@ GridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13
217
224
  ToolbarTemplateDirective,
218
225
  ToolbarComponent,
219
226
  GridSpacerComponent,
227
+ StatusBarTemplateDirective,
220
228
  DataBindingDirective,
221
229
  SelectionDirective,
222
230
  CustomMessagesComponent,
@@ -7,8 +7,8 @@ import { GroupInfoService } from './group-info.service';
7
7
  import { GroupsService } from './groups.service';
8
8
  import { columnsSpan } from '../columns/column-common';
9
9
  import { getGroupRowArgs } from './utils';
10
- import { caretAltDownIcon, caretAltRightIcon } from '@progress/kendo-svg-icons';
11
10
  import { ContextService } from '../common/provider.service';
11
+ import { caretAltDownIcon, caretAltRightIcon, caretAltLeftIcon } from '@progress/kendo-svg-icons';
12
12
  import * as i0 from "@angular/core";
13
13
  import * as i1 from "./groups.service";
14
14
  import * as i2 from "./group-info.service";
@@ -30,11 +30,12 @@ export class GroupHeaderComponent {
30
30
  this.hasDetails = false;
31
31
  this.totalColumnsCount = 0;
32
32
  this.groups = [];
33
+ this.groupItemClass = true;
34
+ this.tableGroupRowClass = true;
33
35
  this.isExpanded = false;
34
36
  this.caretAltDownIcon = caretAltDownIcon;
35
37
  this.caretAltRightIcon = caretAltRightIcon;
36
- this.groupItemClass = true;
37
- this.tableGroupRowClass = true;
38
+ this.caretAltLeftIcon = caretAltLeftIcon;
38
39
  }
39
40
  ngDoCheck() {
40
41
  const groupArgs = {
@@ -85,6 +86,22 @@ export class GroupHeaderComponent {
85
86
  const messageKey = this.isExpanded ? 'groupCollapse' : 'groupExpand';
86
87
  return this.ctx.localization.get(messageKey);
87
88
  }
89
+ get arrowIcon() {
90
+ const icon = !this.isExpanded ?
91
+ !this.ctx.localization.rtl ?
92
+ 'caret-alt-right' :
93
+ 'caret-alt-left' :
94
+ 'caret-alt-down';
95
+ return icon;
96
+ }
97
+ get arrowSVGIcon() {
98
+ const icon = !this.isExpanded ?
99
+ !this.ctx.localization.rtl ?
100
+ this.caretAltRightIcon :
101
+ this.caretAltLeftIcon :
102
+ this.caretAltDownIcon;
103
+ return icon;
104
+ }
88
105
  }
89
106
  GroupHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GroupHeaderComponent, deps: [{ token: i1.GroupsService }, { token: i2.GroupInfoService }, { token: i3.ContextService }], target: i0.ɵɵFactoryTarget.Component });
90
107
  GroupHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GroupHeaderComponent, selector: "[kendoGridGroupHeader]", inputs: { rowIndex: "rowIndex", logicalRowIndex: "logicalRowIndex", item: "item", skipGroupDecoration: "skipGroupDecoration", hasDetails: "hasDetails", totalColumnsCount: "totalColumnsCount", hasGroupHeaderColumn: "hasGroupHeaderColumn", groupHeaderColumns: "groupHeaderColumns", columns: "columns", groups: "groups" }, host: { properties: { "class.k-grouping-row": "this.groupItemClass", "class.k-table-group-row": "this.tableGroupRowClass" } }, ngImport: i0, template: `
@@ -111,8 +128,8 @@ GroupHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
111
128
  [attr.title]="groupButtonTitle"
112
129
  [attr.aria-label]="groupButtonTitle">
113
130
  <kendo-icon-wrapper
114
- [name]="isExpanded ? 'caret-alt-down' : 'caret-alt-right'"
115
- [svgIcon]="isExpanded ? caretAltDownIcon : caretAltRightIcon"></kendo-icon-wrapper>
131
+ [name]="arrowIcon"
132
+ [svgIcon]="arrowSVGIcon"></kendo-icon-wrapper>
116
133
  </a>
117
134
  <ng-container *ngIf="!groupHeaderTemplate(item)">
118
135
  {{groupTitle(item)}}: {{item.data | valueOf:"value": formatForGroup(item)}}
@@ -156,7 +173,7 @@ GroupHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
156
173
  </ng-template>
157
174
  </td>
158
175
  </ng-container>
159
- `, isInline: true, components: [{ type: i4.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.LogicalCellDirective, selector: "[kendoGridLogicalCell]", inputs: ["logicalColIndex", "logicalRowIndex", "logicalSlaveCell", "colIndex", "colSpan", "rowSpan", "groupItem", "dataRowIndex", "dataItem", "detailExpandCell", "headerLabelText"] }, { type: i7.TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "valueOf": i8.FieldAccessorPipe } });
176
+ `, isInline: true, components: [{ type: i4.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.LogicalCellDirective, selector: "[kendoGridLogicalCell]", inputs: ["logicalColIndex", "logicalRowIndex", "logicalSlaveCell", "colIndex", "colSpan", "rowSpan", "groupItem", "dataRowIndex", "dataItem", "detailExpandCell", "headerLabelText"] }, { type: i7.TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "valueOf": i8.FieldAccessorPipe } });
160
177
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GroupHeaderComponent, decorators: [{
161
178
  type: Component,
162
179
  args: [{
@@ -185,8 +202,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
185
202
  [attr.title]="groupButtonTitle"
186
203
  [attr.aria-label]="groupButtonTitle">
187
204
  <kendo-icon-wrapper
188
- [name]="isExpanded ? 'caret-alt-down' : 'caret-alt-right'"
189
- [svgIcon]="isExpanded ? caretAltDownIcon : caretAltRightIcon"></kendo-icon-wrapper>
205
+ [name]="arrowIcon"
206
+ [svgIcon]="arrowSVGIcon"></kendo-icon-wrapper>
190
207
  </a>
191
208
  <ng-container *ngIf="!groupHeaderTemplate(item)">
192
209
  {{groupTitle(item)}}: {{item.data | valueOf:"value": formatForGroup(item)}}
@@ -180,7 +180,7 @@ GroupPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
180
180
  [label]="groupTitles[index]"
181
181
  [removable]="true"
182
182
  [icon]="getDirectionIcon(group)"
183
- [svgIcon]=""
183
+ [svgIcon]="getDirectionSvgIcon(group)"
184
184
  (contentClick)="directionChange(group)"
185
185
  (remove)="remove(group)"
186
186
  >
@@ -232,7 +232,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
232
232
  [label]="groupTitles[index]"
233
233
  [removable]="true"
234
234
  [icon]="getDirectionIcon(group)"
235
- [svgIcon]=""
235
+ [svgIcon]="getDirectionSvgIcon(group)"
236
236
  (contentClick)="directionChange(group)"
237
237
  (remove)="remove(group)"
238
238
  >
package/esm2020/index.mjs CHANGED
@@ -25,6 +25,7 @@ export { FooterTemplateDirective } from './rendering/footer/footer-template.dire
25
25
  export { PagerTemplateDirective } from './pager/pager-template.directive';
26
26
  export { GridSpacerComponent } from './rendering/common/spacer.component';
27
27
  export { ExpandDetailsDirective } from './rendering/details-expand.directive';
28
+ export { StatusBarTemplateDirective } from './aggregates/status-bar-template.directive';
28
29
  export { ExpandGroupDirective } from './rendering/groups-expand.directive';
29
30
  export { defaultTrackBy } from './common/default-track-by';
30
31
  export { DetailTemplateDirective } from './rendering/details/detail-template.directive';
@@ -11,7 +11,7 @@ import * as i0 from "@angular/core";
11
11
  export class GridMessages extends ComponentMessages {
12
12
  }
13
13
  GridMessages.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridMessages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
14
- GridMessages.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: GridMessages, selector: "kendo-grid-messages-base", inputs: { groupPanelEmpty: "groupPanelEmpty", noRecords: "noRecords", pagerLabel: "pagerLabel", pagerFirstPage: "pagerFirstPage", pagerLastPage: "pagerLastPage", pagerPreviousPage: "pagerPreviousPage", pagerNextPage: "pagerNextPage", pagerPage: "pagerPage", pagerItemsPerPage: "pagerItemsPerPage", pagerOf: "pagerOf", pagerItems: "pagerItems", pagerPageNumberInputTitle: "pagerPageNumberInputTitle", selectPage: "selectPage", filter: "filter", filterInputLabel: "filterInputLabel", filterMenuTitle: "filterMenuTitle", filterMenuOperatorsDropDownLabel: "filterMenuOperatorsDropDownLabel", filterMenuLogicDropDownLabel: "filterMenuLogicDropDownLabel", filterEqOperator: "filterEqOperator", filterNotEqOperator: "filterNotEqOperator", filterIsNullOperator: "filterIsNullOperator", filterIsNotNullOperator: "filterIsNotNullOperator", filterIsEmptyOperator: "filterIsEmptyOperator", filterIsNotEmptyOperator: "filterIsNotEmptyOperator", filterStartsWithOperator: "filterStartsWithOperator", filterContainsOperator: "filterContainsOperator", filterNotContainsOperator: "filterNotContainsOperator", filterEndsWithOperator: "filterEndsWithOperator", filterGteOperator: "filterGteOperator", filterGtOperator: "filterGtOperator", filterLteOperator: "filterLteOperator", filterLtOperator: "filterLtOperator", filterIsTrue: "filterIsTrue", filterIsFalse: "filterIsFalse", filterBooleanAll: "filterBooleanAll", filterAfterOrEqualOperator: "filterAfterOrEqualOperator", filterAfterOperator: "filterAfterOperator", filterBeforeOperator: "filterBeforeOperator", filterBeforeOrEqualOperator: "filterBeforeOrEqualOperator", filterFilterButton: "filterFilterButton", filterClearButton: "filterClearButton", filterAndLogic: "filterAndLogic", filterOrLogic: "filterOrLogic", loading: "loading", gridLabel: "gridLabel", columnMenu: "columnMenu", setColumnPosition: "setColumnPosition", columns: "columns", lock: "lock", unlock: "unlock", stick: "stick", unstick: "unstick", sortable: "sortable", sortAscending: "sortAscending", sortDescending: "sortDescending", autosizeThisColumn: "autosizeThisColumn", autosizeAllColumns: "autosizeAllColumns", sortedAscending: "sortedAscending", sortedDescending: "sortedDescending", sortedDefault: "sortedDefault", columnsApply: "columnsApply", columnsReset: "columnsReset", detailExpand: "detailExpand", detailCollapse: "detailCollapse", filterDateToday: "filterDateToday", filterDateToggle: "filterDateToggle", filterNumericDecrement: "filterNumericDecrement", filterNumericIncrement: "filterNumericIncrement", selectionCheckboxLabel: "selectionCheckboxLabel", selectAllCheckboxLabel: "selectAllCheckboxLabel", groupCollapse: "groupCollapse", groupExpand: "groupExpand", topToolbarLabel: "topToolbarLabel", bottomToolbarLabel: "bottomToolbarLabel", groupPanelLabel: "groupPanelLabel", dragRowHandleLabel: "dragRowHandleLabel", columnMenuFilterTabTitle: "columnMenuFilterTabTitle", columnMenuGeneralTabTitle: "columnMenuGeneralTabTitle", columnMenuColumnsTabTitle: "columnMenuColumnsTabTitle" }, usesInheritance: true, ngImport: i0 });
14
+ GridMessages.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: GridMessages, selector: "kendo-grid-messages-base", inputs: { groupPanelEmpty: "groupPanelEmpty", noRecords: "noRecords", pagerLabel: "pagerLabel", pagerFirstPage: "pagerFirstPage", pagerLastPage: "pagerLastPage", pagerPreviousPage: "pagerPreviousPage", pagerNextPage: "pagerNextPage", pagerPage: "pagerPage", pagerItemsPerPage: "pagerItemsPerPage", pagerOf: "pagerOf", pagerItems: "pagerItems", pagerPageNumberInputTitle: "pagerPageNumberInputTitle", selectPage: "selectPage", filter: "filter", filterInputLabel: "filterInputLabel", filterMenuTitle: "filterMenuTitle", filterMenuOperatorsDropDownLabel: "filterMenuOperatorsDropDownLabel", filterMenuLogicDropDownLabel: "filterMenuLogicDropDownLabel", filterCellOperatorLabel: "filterCellOperatorLabel", booleanFilterCellLabel: "booleanFilterCellLabel", filterEqOperator: "filterEqOperator", filterNotEqOperator: "filterNotEqOperator", filterIsNullOperator: "filterIsNullOperator", filterIsNotNullOperator: "filterIsNotNullOperator", filterIsEmptyOperator: "filterIsEmptyOperator", filterIsNotEmptyOperator: "filterIsNotEmptyOperator", filterStartsWithOperator: "filterStartsWithOperator", filterContainsOperator: "filterContainsOperator", filterNotContainsOperator: "filterNotContainsOperator", filterEndsWithOperator: "filterEndsWithOperator", filterGteOperator: "filterGteOperator", filterGtOperator: "filterGtOperator", filterLteOperator: "filterLteOperator", filterLtOperator: "filterLtOperator", filterIsTrue: "filterIsTrue", filterIsFalse: "filterIsFalse", filterBooleanAll: "filterBooleanAll", filterAfterOrEqualOperator: "filterAfterOrEqualOperator", filterAfterOperator: "filterAfterOperator", filterBeforeOperator: "filterBeforeOperator", filterBeforeOrEqualOperator: "filterBeforeOrEqualOperator", filterFilterButton: "filterFilterButton", filterClearButton: "filterClearButton", filterAndLogic: "filterAndLogic", filterOrLogic: "filterOrLogic", loading: "loading", gridLabel: "gridLabel", columnMenu: "columnMenu", setColumnPosition: "setColumnPosition", columns: "columns", lock: "lock", unlock: "unlock", stick: "stick", unstick: "unstick", sortable: "sortable", sortAscending: "sortAscending", sortDescending: "sortDescending", autosizeThisColumn: "autosizeThisColumn", autosizeAllColumns: "autosizeAllColumns", sortedAscending: "sortedAscending", sortedDescending: "sortedDescending", sortedDefault: "sortedDefault", columnsApply: "columnsApply", columnsReset: "columnsReset", detailExpand: "detailExpand", detailCollapse: "detailCollapse", filterDateToday: "filterDateToday", filterDateToggle: "filterDateToggle", filterNumericDecrement: "filterNumericDecrement", filterNumericIncrement: "filterNumericIncrement", selectionCheckboxLabel: "selectionCheckboxLabel", selectAllCheckboxLabel: "selectAllCheckboxLabel", groupCollapse: "groupCollapse", groupExpand: "groupExpand", topToolbarLabel: "topToolbarLabel", bottomToolbarLabel: "bottomToolbarLabel", groupPanelLabel: "groupPanelLabel", dragRowHandleLabel: "dragRowHandleLabel", columnMenuFilterTabTitle: "columnMenuFilterTabTitle", columnMenuGeneralTabTitle: "columnMenuGeneralTabTitle", columnMenuColumnsTabTitle: "columnMenuColumnsTabTitle" }, usesInheritance: true, ngImport: i0 });
15
15
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridMessages, decorators: [{
16
16
  type: Directive,
17
17
  args: [{
@@ -54,6 +54,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
54
54
  type: Input
55
55
  }], filterMenuLogicDropDownLabel: [{
56
56
  type: Input
57
+ }], filterCellOperatorLabel: [{
58
+ type: Input
59
+ }], booleanFilterCellLabel: [{
60
+ type: Input
57
61
  }], filterEqOperator: [{
58
62
  type: Input
59
63
  }], filterNotEqOperator: [{
@@ -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: 1684846761,
13
- version: '13.0.0-develop.2',
12
+ publishDate: 1685973015,
13
+ version: '13.0.0-develop.21',
14
14
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
15
15
  };
@@ -5,6 +5,7 @@
5
5
  import { ChangeDetectorRef, Directive, Input } from '@angular/core';
6
6
  import { PagerContextService } from "./pager-context.service";
7
7
  import { ContextService } from '../common/provider.service';
8
+ import { caretAltLeftIcon, caretAltRightIcon, caretAltToLeftIcon, caretAltToRightIcon } from '@progress/kendo-svg-icons';
8
9
  import * as i0 from "@angular/core";
9
10
  import * as i1 from "../common/provider.service";
10
11
  import * as i2 from "./pager-context.service";
@@ -19,6 +20,10 @@ export class PagerElementComponent {
19
20
  this.total = this.pagerContext.total;
20
21
  this.skip = this.pagerContext.skip;
21
22
  this.pageSize = this.pagerContext.pageSize;
23
+ this.caretAltLeftIcon = caretAltLeftIcon;
24
+ this.caretAltToLeftIcon = caretAltToLeftIcon;
25
+ this.caretAltRightIcon = caretAltRightIcon;
26
+ this.caretAltToRightIcon = caretAltToRightIcon;
22
27
  /**
23
28
  * Sets the pager element sizing option.
24
29
  * @default `medium`
@@ -81,6 +86,18 @@ export class PagerElementComponent {
81
86
  this.subscriptions.unsubscribe();
82
87
  }
83
88
  }
89
+ get prevArrowIcons() {
90
+ return !this.ctx.localization.rtl ? ['caret-alt-to-left', 'caret-alt-left'] : ['caret-alt-to-right', 'caret-alt-right'];
91
+ }
92
+ get prevArrowSVGIcons() {
93
+ return !this.ctx.localization.rtl ? [this.caretAltToLeftIcon, this.caretAltLeftIcon] : [this.caretAltToRightIcon, this.caretAltRightIcon];
94
+ }
95
+ get nextArrowIcons() {
96
+ return !this.ctx.localization.rtl ? ['caret-alt-right', 'caret-alt-to-right'] : ['caret-alt-left', 'caret-alt-to-left'];
97
+ }
98
+ get nextArrowSVGIcons() {
99
+ return !this.ctx.localization.rtl ? [this.caretAltRightIcon, this.caretAltToRightIcon] : [this.caretAltLeftIcon, this.caretAltToLeftIcon];
100
+ }
84
101
  }
85
102
  PagerElementComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerElementComponent, deps: [{ token: i1.ContextService }, { token: i2.PagerContextService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
86
103
  PagerElementComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: PagerElementComponent, inputs: { size: "size" }, ngImport: i0 });
@@ -6,7 +6,6 @@ import { NavigationService } from './../navigation/navigation.service';
6
6
  import { Component, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';
7
7
  import { PagerContextService } from "./pager-context.service";
8
8
  import { PagerElementComponent } from './pager-element.component';
9
- import { caretAltRightIcon, caretAltToRightIcon } from '@progress/kendo-svg-icons';
10
9
  import { ContextService } from '../common/provider.service';
11
10
  import * as i0 from "@angular/core";
12
11
  import * as i1 from "../common/provider.service";
@@ -21,8 +20,6 @@ export class PagerNextButtonsComponent extends PagerElementComponent {
21
20
  constructor(ctx, pagerContext, cd, navigationService) {
22
21
  super(ctx, pagerContext, cd);
23
22
  this.navigationService = navigationService;
24
- this.caretAltRightIcon = caretAltRightIcon;
25
- this.caretAltToRightIcon = caretAltToRightIcon;
26
23
  }
27
24
  /**
28
25
  * @hidden
@@ -48,8 +45,8 @@ PagerNextButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
48
45
  [kendoGridFocusable]="!disabled"
49
46
  type="button"
50
47
  [size]="size"
51
- icon="caret-alt-right"
52
- [svgIcon]="caretAltRightIcon"
48
+ [icon]="nextArrowIcons[0]"
49
+ [svgIcon]="nextArrowSVGIcons[0]"
53
50
  fillMode="flat"
54
51
  rounded="none"
55
52
  class="k-pager-nav"
@@ -63,8 +60,8 @@ PagerNextButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
63
60
  [kendoGridFocusable]="!disabled"
64
61
  type="button"
65
62
  [size]="size"
66
- icon="caret-alt-to-right"
67
- [svgIcon]="caretAltToRightIcon"
63
+ [icon]="nextArrowIcons[1]"
64
+ [svgIcon]="nextArrowSVGIcons[1]"
68
65
  fillMode="flat"
69
66
  rounded="none"
70
67
  class="k-pager-nav k-pager-last"
@@ -85,8 +82,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
85
82
  [kendoGridFocusable]="!disabled"
86
83
  type="button"
87
84
  [size]="size"
88
- icon="caret-alt-right"
89
- [svgIcon]="caretAltRightIcon"
85
+ [icon]="nextArrowIcons[0]"
86
+ [svgIcon]="nextArrowSVGIcons[0]"
90
87
  fillMode="flat"
91
88
  rounded="none"
92
89
  class="k-pager-nav"
@@ -100,8 +97,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
100
97
  [kendoGridFocusable]="!disabled"
101
98
  type="button"
102
99
  [size]="size"
103
- icon="caret-alt-to-right"
104
- [svgIcon]="caretAltToRightIcon"
100
+ [icon]="nextArrowIcons[1]"
101
+ [svgIcon]="nextArrowSVGIcons[1]"
105
102
  fillMode="flat"
106
103
  rounded="none"
107
104
  class="k-pager-nav k-pager-last"
@@ -109,7 +109,7 @@ PagerPageSizesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
109
109
  [value]="pageSize"
110
110
  (valueChange)="pageSizeChange($event)"></kendo-dropdownlist>
111
111
  <kendo-label [for]="dropdownlist" [text]="textFor('pagerItemsPerPage')"></kendo-label>
112
- `, isInline: true, components: [{ type: i4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { type: i5.LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional"], exportAs: ["kendoLabel"] }], directives: [{ type: i6.PagerDropDownListDirective, selector: "[kendoGridPagerDropDown]" }, { type: i7.FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
112
+ `, isInline: true, components: [{ type: i4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { type: i5.LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional", "labelCssStyle", "labelCssClass"], exportAs: ["kendoLabel"] }], directives: [{ type: i6.PagerDropDownListDirective, selector: "[kendoGridPagerDropDown]" }, { type: i7.FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
113
113
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerPageSizesComponent, decorators: [{
114
114
  type: Component,
115
115
  args: [{
@@ -6,7 +6,6 @@ import { NavigationService } from './../navigation/navigation.service';
6
6
  import { Component, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';
7
7
  import { PagerContextService } from "./pager-context.service";
8
8
  import { PagerElementComponent } from './pager-element.component';
9
- import { caretAltLeftIcon, caretAltToLeftIcon } from '@progress/kendo-svg-icons';
10
9
  import { ContextService } from '../common/provider.service';
11
10
  import * as i0 from "@angular/core";
12
11
  import * as i1 from "../common/provider.service";
@@ -21,8 +20,6 @@ export class PagerPrevButtonsComponent extends PagerElementComponent {
21
20
  constructor(ctx, pagerContext, cd, navigationService) {
22
21
  super(ctx, pagerContext, cd);
23
22
  this.navigationService = navigationService;
24
- this.caretAltLeftIcon = caretAltLeftIcon;
25
- this.caretAltToLeftIcon = caretAltToLeftIcon;
26
23
  }
27
24
  /**
28
25
  * @hidden
@@ -51,8 +48,8 @@ PagerPrevButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
51
48
  [attr.aria-label]="textFor('pagerFirstPage')"
52
49
  (click)="currentPage !== 1 ? changePage(0) : false"
53
50
  role="button"
54
- icon="caret-alt-to-left"
55
- [svgIcon]="caretAltToLeftIcon"
51
+ [icon]="prevArrowIcons[0]"
52
+ [svgIcon]="prevArrowSVGIcons[0]"
56
53
  class="k-pager-nav k-pager-first"
57
54
  [disabled]="disabled"
58
55
  fillMode="flat"
@@ -65,8 +62,8 @@ PagerPrevButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
65
62
  type="button"
66
63
  class="k-pager-nav"
67
64
  [disabled]="disabled"
68
- icon="caret-alt-left"
69
- [svgIcon]="caretAltLeftIcon"
65
+ [icon]="prevArrowIcons[1]"
66
+ [svgIcon]="prevArrowSVGIcons[1]"
70
67
  fillMode="flat"
71
68
  rounded="none"
72
69
  [size]="size"
@@ -89,8 +86,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
89
86
  [attr.aria-label]="textFor('pagerFirstPage')"
90
87
  (click)="currentPage !== 1 ? changePage(0) : false"
91
88
  role="button"
92
- icon="caret-alt-to-left"
93
- [svgIcon]="caretAltToLeftIcon"
89
+ [icon]="prevArrowIcons[0]"
90
+ [svgIcon]="prevArrowSVGIcons[0]"
94
91
  class="k-pager-nav k-pager-first"
95
92
  [disabled]="disabled"
96
93
  fillMode="flat"
@@ -103,8 +100,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
103
100
  type="button"
104
101
  class="k-pager-nav"
105
102
  [disabled]="disabled"
106
- icon="caret-alt-left"
107
- [svgIcon]="caretAltLeftIcon"
103
+ [icon]="prevArrowIcons[1]"
104
+ [svgIcon]="prevArrowSVGIcons[1]"
108
105
  fillMode="flat"
109
106
  rounded="none"
110
107
  [size]="size"
@@ -62,7 +62,7 @@ PDFCommandDirective.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
62
62
  </span>
63
63
  <span *ngIf="iconClass" class="k-button-icon" [ngClass]="iconClass"></span>
64
64
  <span class="k-button-text"><ng-content></ng-content></span>
65
- `, isInline: true, components: [{ type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
65
+ `, isInline: true, components: [{ type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
66
66
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PDFCommandDirective, decorators: [{
67
67
  type: Component,
68
68
  args: [{
@@ -231,7 +231,7 @@ CellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
231
231
  </ng-container>
232
232
  </ng-container>
233
233
  </ng-container>
234
- `, isInline: true, components: [{ type: i4.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }, { type: i5.NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode"], outputs: ["valueChange", "focus", "blur"], exportAs: ["kendoNumericTextBox"] }, { type: i6.DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "navigationItemTemplate", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "title", "subtitle", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode", "adaptiveMode"], outputs: ["valueChange", "focus", "blur", "open", "close"], exportAs: ["kendo-datepicker"] }], directives: [{ type: i7.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i7.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }, { type: i9.SelectionCheckboxDirective, selector: "[kendoGridSelectionCheckbox]", inputs: ["kendoGridSelectionCheckbox"] }, { type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i10.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i10.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i7.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i10.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }], pipes: { "valueOf": i11.FieldAccessorPipe } });
234
+ `, isInline: true, components: [{ type: i4.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: i5.NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode"], outputs: ["valueChange", "focus", "blur"], exportAs: ["kendoNumericTextBox"] }, { type: i6.DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "navigationItemTemplate", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "title", "subtitle", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode", "adaptiveMode"], outputs: ["valueChange", "focus", "blur", "open", "close"], exportAs: ["kendo-datepicker"] }], directives: [{ type: i7.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i7.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }, { type: i9.SelectionCheckboxDirective, selector: "[kendoGridSelectionCheckbox]", inputs: ["kendoGridSelectionCheckbox"] }, { type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i10.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i10.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i7.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i10.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }], pipes: { "valueOf": i11.FieldAccessorPipe } });
235
235
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CellComponent, decorators: [{
236
236
  type: Component,
237
237
  args: [{
@@ -689,7 +689,7 @@ HeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
689
689
  [logicalSlaveCellsCount]="unlockedColumnsCount"
690
690
  ></tr>
691
691
  </ng-container>
692
- `, isInline: true, components: [{ type: i9.FilterMenuComponent, selector: "kendo-grid-filter-menu", inputs: ["column", "filter", "tabIndex"] }, { type: i10.ColumnMenuComponent, selector: "kendo-grid-column-menu", inputs: ["standalone", "column", "settings", "sort", "filter", "sortable", "columnMenuTemplate", "tabIndex"] }, { type: i11.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }, { type: i12.FilterRowComponent, selector: "[kendoGridFilterRow]", inputs: ["columns", "filter", "groups", "detailTemplate", "logicalRowIndex", "lockedColumnsCount"] }], directives: [{ type: i13.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i14.LogicalRowDirective, selector: "[kendoGridLogicalRow]", inputs: ["logicalRowIndex", "logicalSlaveRow", "logicalCellsCount", "logicalSlaveCellsCount", "dataRowIndex", "dataItem"] }, { type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i15.LogicalCellDirective, selector: "[kendoGridLogicalCell]", inputs: ["logicalColIndex", "logicalRowIndex", "logicalSlaveCell", "colIndex", "colSpan", "rowSpan", "groupItem", "dataRowIndex", "dataItem", "detailExpandCell", "headerLabelText"] }, { type: i16.DropTargetDirective, selector: "[kendoDropTarget]", inputs: ["context"], outputs: ["enter", "leave", "drop"] }, { type: i17.DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { type: i18.DraggableColumnDirective, selector: "[kendoDraggableColumn]", inputs: ["context", "enableDrag"], outputs: ["drag"] }, { type: i13.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i13.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i19.TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i20.SelectAllCheckboxDirective, selector: "[kendoGridSelectAllCheckbox]", inputs: ["state"], outputs: ["selectAllChange"] }, { type: i21.FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }, { type: i22.ColumnHandleDirective, selector: "[kendoGridColumnHandle]", inputs: ["columns", "column"] }] });
692
+ `, isInline: true, components: [{ type: i9.FilterMenuComponent, selector: "kendo-grid-filter-menu", inputs: ["column", "filter", "tabIndex"] }, { type: i10.ColumnMenuComponent, selector: "kendo-grid-column-menu", inputs: ["standalone", "column", "settings", "sort", "filter", "sortable", "columnMenuTemplate", "tabIndex"] }, { type: i11.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: i12.FilterRowComponent, selector: "[kendoGridFilterRow]", inputs: ["columns", "filter", "groups", "detailTemplate", "logicalRowIndex", "lockedColumnsCount"] }], directives: [{ type: i13.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i14.LogicalRowDirective, selector: "[kendoGridLogicalRow]", inputs: ["logicalRowIndex", "logicalSlaveRow", "logicalCellsCount", "logicalSlaveCellsCount", "dataRowIndex", "dataItem"] }, { type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i15.LogicalCellDirective, selector: "[kendoGridLogicalCell]", inputs: ["logicalColIndex", "logicalRowIndex", "logicalSlaveCell", "colIndex", "colSpan", "rowSpan", "groupItem", "dataRowIndex", "dataItem", "detailExpandCell", "headerLabelText"] }, { type: i16.DropTargetDirective, selector: "[kendoDropTarget]", inputs: ["context"], outputs: ["enter", "leave", "drop"] }, { type: i17.DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { type: i18.DraggableColumnDirective, selector: "[kendoDraggableColumn]", inputs: ["context", "enableDrag"], outputs: ["drag"] }, { type: i13.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i13.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i19.TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i20.SelectAllCheckboxDirective, selector: "[kendoGridSelectAllCheckbox]", inputs: ["state"], outputs: ["selectAllChange"] }, { type: i21.FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }, { type: i22.ColumnHandleDirective, selector: "[kendoGridColumnHandle]", inputs: ["columns", "column"] }] });
693
693
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: HeaderComponent, decorators: [{
694
694
  type: Component,
695
695
  args: [{
@@ -614,7 +614,6 @@ ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
614
614
  [size]="size"
615
615
  [style.width.px]="lockedWidth">
616
616
  <colgroup kendoGridColGroup
617
- role="presentation"
618
617
  [groups]="groups"
619
618
  [columns]="$any(lockedLeafColumns)"
620
619
  [detailTemplate]="detailTemplate"
@@ -646,11 +645,12 @@ ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
646
645
  <div [style.height.px]="totalHeight"></div>
647
646
  </div>
648
647
  </div>
649
- <div #container
650
- class="k-grid-content k-virtual-content"
651
- role="presentation" tabindex="-1"
652
- [kendoGridResizableContainer]="lockedLeafColumns.length > 0"
653
- [lockedWidth]="lockedWidth + 1">
648
+ <div
649
+ #container
650
+ class="k-grid-content k-virtual-content"
651
+ [kendoGridResizableContainer]="lockedLeafColumns.length > 0"
652
+ [lockedWidth]="lockedWidth + 1"
653
+ >
654
654
  <div role="presentation" class="k-grid-table-wrap">
655
655
  <table
656
656
  [style.width.px]="nonLockedWidth"
@@ -661,7 +661,6 @@ ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
661
661
  [size]="size"
662
662
  role="presentation">
663
663
  <colgroup kendoGridColGroup
664
- role="presentation"
665
664
  [groups]="isLocked ? [] : groups"
666
665
  [columns]="$any(nonLockedColumnsToRender)"
667
666
  [detailTemplate]="detailTemplate"
@@ -733,7 +732,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
733
732
  [size]="size"
734
733
  [style.width.px]="lockedWidth">
735
734
  <colgroup kendoGridColGroup
736
- role="presentation"
737
735
  [groups]="groups"
738
736
  [columns]="$any(lockedLeafColumns)"
739
737
  [detailTemplate]="detailTemplate"
@@ -765,11 +763,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
765
763
  <div [style.height.px]="totalHeight"></div>
766
764
  </div>
767
765
  </div>
768
- <div #container
769
- class="k-grid-content k-virtual-content"
770
- role="presentation" tabindex="-1"
771
- [kendoGridResizableContainer]="lockedLeafColumns.length > 0"
772
- [lockedWidth]="lockedWidth + 1">
766
+ <div
767
+ #container
768
+ class="k-grid-content k-virtual-content"
769
+ [kendoGridResizableContainer]="lockedLeafColumns.length > 0"
770
+ [lockedWidth]="lockedWidth + 1"
771
+ >
773
772
  <div role="presentation" class="k-grid-table-wrap">
774
773
  <table
775
774
  [style.width.px]="nonLockedWidth"
@@ -780,7 +779,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
780
779
  [size]="size"
781
780
  role="presentation">
782
781
  <colgroup kendoGridColGroup
783
- role="presentation"
784
782
  [groups]="isLocked ? [] : groups"
785
783
  [columns]="$any(nonLockedColumnsToRender)"
786
784
  [detailTemplate]="detailTemplate"
@@ -610,7 +610,7 @@ TableBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
610
610
  </tr>
611
611
  </ng-container>
612
612
  <kendo-resize-sensor *ngIf="rowSticky" (resize)="resizeHandler()"></kendo-resize-sensor>
613
- `, isInline: true, components: [{ type: i11.CellComponent, selector: "[kendoGridCell]", inputs: ["column", "columnIndex", "isNew", "isLoading", "isVirtual", "loadingTemplate", "rowIndex", "dataItem"] }, { type: i12.GroupHeaderComponent, selector: "[kendoGridGroupHeader]", inputs: ["rowIndex", "logicalRowIndex", "item", "skipGroupDecoration", "hasDetails", "totalColumnsCount", "hasGroupHeaderColumn", "groupHeaderColumns", "columns", "groups"] }, { type: i13.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }, { type: i14.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], directives: [{ type: i15.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i16.LogicalRowDirective, selector: "[kendoGridLogicalRow]", inputs: ["logicalRowIndex", "logicalSlaveRow", "logicalCellsCount", "logicalSlaveCellsCount", "dataRowIndex", "dataItem"] }, { type: i15.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i17.LogicalCellDirective, selector: "[kendoGridLogicalCell]", inputs: ["logicalColIndex", "logicalRowIndex", "logicalSlaveCell", "colIndex", "colSpan", "rowSpan", "groupItem", "dataRowIndex", "dataItem", "detailExpandCell", "headerLabelText"] }, { type: i15.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i15.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i18.TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i15.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
613
+ `, isInline: true, components: [{ type: i11.CellComponent, selector: "[kendoGridCell]", inputs: ["column", "columnIndex", "isNew", "isLoading", "isVirtual", "loadingTemplate", "rowIndex", "dataItem"] }, { type: i12.GroupHeaderComponent, selector: "[kendoGridGroupHeader]", inputs: ["rowIndex", "logicalRowIndex", "item", "skipGroupDecoration", "hasDetails", "totalColumnsCount", "hasGroupHeaderColumn", "groupHeaderColumns", "columns", "groups"] }, { type: i13.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: i14.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], directives: [{ type: i15.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i16.LogicalRowDirective, selector: "[kendoGridLogicalRow]", inputs: ["logicalRowIndex", "logicalSlaveRow", "logicalCellsCount", "logicalSlaveCellsCount", "dataRowIndex", "dataItem"] }, { type: i15.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i17.LogicalCellDirective, selector: "[kendoGridLogicalCell]", inputs: ["logicalColIndex", "logicalRowIndex", "logicalSlaveCell", "colIndex", "colSpan", "rowSpan", "groupItem", "dataRowIndex", "dataItem", "detailExpandCell", "headerLabelText"] }, { type: i15.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i15.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i18.TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: i15.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
614
614
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TableBodyComponent, decorators: [{
615
615
  type: Component,
616
616
  args: [{
@@ -21,6 +21,7 @@ export class CellSelectionService {
21
21
  this.localDataChangesService = localDataChangesService;
22
22
  this.navigationService = navigationService;
23
23
  this.changes = new EventEmitter();
24
+ this.aggregateChanges = new EventEmitter();
24
25
  this.mouseUpEvent = new EventEmitter();
25
26
  this.currentSelection = [];
26
27
  this.active = false;
@@ -106,6 +107,16 @@ export class CellSelectionService {
106
107
  }
107
108
  ev.ctrlKey = ctrlKey;
108
109
  ev.shiftKey = event.shiftKey;
110
+ if (this.options.cellAggregates) {
111
+ this.aggregateChanges.emit(ev);
112
+ ev.cellAggregates = this.aggregates;
113
+ }
114
+ if (ev.shiftKey) {
115
+ ev.rangeStartCell = this.lastSelectionItem;
116
+ ev.rangeEndCell = {
117
+ ...this.settings.cellSelected({ dataItem: item.data, index: item.index }, item.column, item.column.leafIndex).item
118
+ };
119
+ }
109
120
  this.changes.emit(ev);
110
121
  }
111
122
  toggle(item) {
@@ -209,13 +220,20 @@ export class CellSelectionService {
209
220
  }
210
221
  next = iterator.next();
211
222
  }
223
+ let cellAggregates;
224
+ if (this.options.cellAggregates) {
225
+ this.aggregateChanges.emit({ selectedCells, deselectedCells });
226
+ cellAggregates = this.aggregates;
227
+ }
212
228
  return {
213
229
  deselectedCells,
214
- selectedCells
230
+ selectedCells,
231
+ cellAggregates
215
232
  };
216
233
  }
217
234
  get options() {
218
235
  const defaultOptions = {
236
+ cellAggregates: false,
219
237
  checkboxOnly: false,
220
238
  enabled: true,
221
239
  mode: "multiple"
@@ -225,6 +243,7 @@ export class CellSelectionService {
225
243
  }
226
244
  if (typeof this.settings.selectable === 'boolean') {
227
245
  return {
246
+ cellAggregates: false,
228
247
  checkboxOnly: false,
229
248
  enabled: this.settings.selectable,
230
249
  mode: "multiple"
@@ -54,6 +54,8 @@ export class SelectionCheckboxDirective {
54
54
  const ev = this.selectionService.toggleByIndex(this.itemIndex);
55
55
  ev.ctrlKey = true;
56
56
  ev.shiftKey = false;
57
+ this.selectionService.aggregateChanges.emit(ev);
58
+ ev.cellAggregates = this.selectionService.aggregates;
57
59
  this.selectionService.changes.emit(ev);
58
60
  });
59
61
  }