@progress/kendo-angular-grid 19.2.0-develop.2 → 19.2.0-develop.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.
@@ -10,7 +10,7 @@ export const packageMetadata = {
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCode: 'KENDOUIANGULAR',
12
12
  productCodes: ['KENDOUIANGULAR'],
13
- publishDate: 1750841713,
14
- version: '19.2.0-develop.2',
13
+ publishDate: 1750851099,
14
+ version: '19.2.0-develop.3',
15
15
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
16
16
  };
@@ -82,7 +82,7 @@ export class SelectionCheckboxDirective {
82
82
  const ctrlKey = event.ctrlKey || event.metaKey;
83
83
  if (event.shiftKey && this.selectionService.options.mode === 'multiple') {
84
84
  const item = { index: this.itemIndex };
85
- ev = this.selectionService.addAllTo(item, ctrlKey);
85
+ ev = this.selectionService.addAllTo(item, ctrlKey, false, event.shiftKey);
86
86
  }
87
87
  else {
88
88
  ev = this.selectionService.toggleByIndex(this.itemIndex);
@@ -143,6 +143,8 @@ export class SelectionService {
143
143
  if (ev.shiftKey) {
144
144
  ev.rangeStartRow = { dataItem: this.lastSelectionData, index: this.lastSelectionStartIndex };
145
145
  ev.rangeEndRow = { dataItem: item.data, index: item.index };
146
+ this.lastSelectionData = item.data;
147
+ this.lastSelectionStartIndex = item.index;
146
148
  }
147
149
  this.syncCurrentSelection(ev);
148
150
  this.changes.emit(ev);
@@ -231,13 +233,14 @@ export class SelectionService {
231
233
  item = iterator.next();
232
234
  }
233
235
  }
234
- addAllTo(item, ctrlKey, preserveSelection = false) {
236
+ addAllTo(item, ctrlKey, preserveSelection = false, shiftKey = false) {
235
237
  const selectedRows = [];
236
238
  const deselectedRows = [];
237
239
  const start = Math.min(this.lastSelectionStartIndex, item.index);
238
240
  const end = Math.max(this.lastSelectionStartIndex, item.index);
239
241
  const iterator = this.getIterator();
240
242
  let next = iterator.next();
243
+ let selectedItem;
241
244
  while (!next.done) {
242
245
  if (next.value && next.value.type === "data") {
243
246
  const idx = next.value.index;
@@ -248,6 +251,9 @@ export class SelectionService {
248
251
  if ((idx >= start && idx <= end) && !this.isSelected(idx) && !this.nonSelectableRows.has(idx)) {
249
252
  selectedRows.push(rowArgs);
250
253
  }
254
+ if (idx === item.index && !this.nonSelectableRows.has(idx)) {
255
+ selectedItem = rowArgs;
256
+ }
251
257
  }
252
258
  next = iterator.next();
253
259
  }
@@ -255,10 +261,23 @@ export class SelectionService {
255
261
  const nonSelectableRows = this.currentSelection.filter(i => this.nonSelectableRows.has(i.index));
256
262
  deselectedRows.push(...nonSelectableRows);
257
263
  }
258
- return {
259
- deselectedRows: deselectedRows,
260
- selectedRows: selectedRows
264
+ const selectionEvent = {
265
+ deselectedRows,
266
+ selectedRows
261
267
  };
268
+ if (shiftKey && selectedItem) {
269
+ selectionEvent.rangeStartRow = {
270
+ dataItem: this.lastSelectionData,
271
+ index: this.lastSelectionStartIndex
272
+ };
273
+ selectionEvent.rangeEndRow = {
274
+ dataItem: selectedItem.dataItem,
275
+ index: selectedItem.index
276
+ };
277
+ this.lastSelectionData = selectedItem.dataItem;
278
+ this.lastSelectionStartIndex = selectedItem.index;
279
+ }
280
+ return selectionEvent;
262
281
  }
263
282
  updateAll(selectAllChecked) {
264
283
  this.selectAllChecked = selectAllChecked;
@@ -16985,6 +16985,8 @@ class SelectionService {
16985
16985
  if (ev.shiftKey) {
16986
16986
  ev.rangeStartRow = { dataItem: this.lastSelectionData, index: this.lastSelectionStartIndex };
16987
16987
  ev.rangeEndRow = { dataItem: item.data, index: item.index };
16988
+ this.lastSelectionData = item.data;
16989
+ this.lastSelectionStartIndex = item.index;
16988
16990
  }
16989
16991
  this.syncCurrentSelection(ev);
16990
16992
  this.changes.emit(ev);
@@ -17073,13 +17075,14 @@ class SelectionService {
17073
17075
  item = iterator.next();
17074
17076
  }
17075
17077
  }
17076
- addAllTo(item, ctrlKey, preserveSelection = false) {
17078
+ addAllTo(item, ctrlKey, preserveSelection = false, shiftKey = false) {
17077
17079
  const selectedRows = [];
17078
17080
  const deselectedRows = [];
17079
17081
  const start = Math.min(this.lastSelectionStartIndex, item.index);
17080
17082
  const end = Math.max(this.lastSelectionStartIndex, item.index);
17081
17083
  const iterator = this.getIterator();
17082
17084
  let next = iterator.next();
17085
+ let selectedItem;
17083
17086
  while (!next.done) {
17084
17087
  if (next.value && next.value.type === "data") {
17085
17088
  const idx = next.value.index;
@@ -17090,6 +17093,9 @@ class SelectionService {
17090
17093
  if ((idx >= start && idx <= end) && !this.isSelected(idx) && !this.nonSelectableRows.has(idx)) {
17091
17094
  selectedRows.push(rowArgs);
17092
17095
  }
17096
+ if (idx === item.index && !this.nonSelectableRows.has(idx)) {
17097
+ selectedItem = rowArgs;
17098
+ }
17093
17099
  }
17094
17100
  next = iterator.next();
17095
17101
  }
@@ -17097,10 +17103,23 @@ class SelectionService {
17097
17103
  const nonSelectableRows = this.currentSelection.filter(i => this.nonSelectableRows.has(i.index));
17098
17104
  deselectedRows.push(...nonSelectableRows);
17099
17105
  }
17100
- return {
17101
- deselectedRows: deselectedRows,
17102
- selectedRows: selectedRows
17106
+ const selectionEvent = {
17107
+ deselectedRows,
17108
+ selectedRows
17103
17109
  };
17110
+ if (shiftKey && selectedItem) {
17111
+ selectionEvent.rangeStartRow = {
17112
+ dataItem: this.lastSelectionData,
17113
+ index: this.lastSelectionStartIndex
17114
+ };
17115
+ selectionEvent.rangeEndRow = {
17116
+ dataItem: selectedItem.dataItem,
17117
+ index: selectedItem.index
17118
+ };
17119
+ this.lastSelectionData = selectedItem.dataItem;
17120
+ this.lastSelectionStartIndex = selectedItem.index;
17121
+ }
17122
+ return selectionEvent;
17104
17123
  }
17105
17124
  updateAll(selectAllChecked) {
17106
17125
  this.selectAllChecked = selectAllChecked;
@@ -19089,7 +19108,7 @@ class SelectionCheckboxDirective {
19089
19108
  const ctrlKey = event.ctrlKey || event.metaKey;
19090
19109
  if (event.shiftKey && this.selectionService.options.mode === 'multiple') {
19091
19110
  const item = { index: this.itemIndex };
19092
- ev = this.selectionService.addAllTo(item, ctrlKey);
19111
+ ev = this.selectionService.addAllTo(item, ctrlKey, false, event.shiftKey);
19093
19112
  }
19094
19113
  else {
19095
19114
  ev = this.selectionService.toggleByIndex(this.itemIndex);
@@ -21194,8 +21213,8 @@ const packageMetadata = {
21194
21213
  productName: 'Kendo UI for Angular',
21195
21214
  productCode: 'KENDOUIANGULAR',
21196
21215
  productCodes: ['KENDOUIANGULAR'],
21197
- publishDate: 1750841713,
21198
- version: '19.2.0-develop.2',
21216
+ publishDate: 1750851099,
21217
+ version: '19.2.0-develop.3',
21199
21218
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
21200
21219
  };
21201
21220
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-grid",
3
- "version": "19.2.0-develop.2",
3
+ "version": "19.2.0-develop.3",
4
4
  "description": "Kendo UI Grid for Angular - high performance data grid with paging, filtering, virtualization, CRUD, and more.",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -26,7 +26,7 @@
26
26
  "package": {
27
27
  "productName": "Kendo UI for Angular",
28
28
  "productCode": "KENDOUIANGULAR",
29
- "publishDate": 1750841713,
29
+ "publishDate": 1750851099,
30
30
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
31
31
  }
32
32
  },
@@ -39,28 +39,28 @@
39
39
  "@progress/kendo-data-query": "^1.0.0",
40
40
  "@progress/kendo-drawing": "^1.21.0",
41
41
  "@progress/kendo-licensing": "^1.5.0",
42
- "@progress/kendo-angular-buttons": "19.2.0-develop.2",
43
- "@progress/kendo-angular-common": "19.2.0-develop.2",
44
- "@progress/kendo-angular-dateinputs": "19.2.0-develop.2",
45
- "@progress/kendo-angular-layout": "19.2.0-develop.2",
46
- "@progress/kendo-angular-navigation": "19.2.0-develop.2",
47
- "@progress/kendo-angular-dropdowns": "19.2.0-develop.2",
48
- "@progress/kendo-angular-excel-export": "19.2.0-develop.2",
49
- "@progress/kendo-angular-icons": "19.2.0-develop.2",
50
- "@progress/kendo-angular-inputs": "19.2.0-develop.2",
51
- "@progress/kendo-angular-intl": "19.2.0-develop.2",
52
- "@progress/kendo-angular-l10n": "19.2.0-develop.2",
53
- "@progress/kendo-angular-label": "19.2.0-develop.2",
54
- "@progress/kendo-angular-pager": "19.2.0-develop.2",
55
- "@progress/kendo-angular-pdf-export": "19.2.0-develop.2",
56
- "@progress/kendo-angular-popup": "19.2.0-develop.2",
57
- "@progress/kendo-angular-toolbar": "19.2.0-develop.2",
58
- "@progress/kendo-angular-utils": "19.2.0-develop.2",
42
+ "@progress/kendo-angular-buttons": "19.2.0-develop.3",
43
+ "@progress/kendo-angular-common": "19.2.0-develop.3",
44
+ "@progress/kendo-angular-dateinputs": "19.2.0-develop.3",
45
+ "@progress/kendo-angular-layout": "19.2.0-develop.3",
46
+ "@progress/kendo-angular-navigation": "19.2.0-develop.3",
47
+ "@progress/kendo-angular-dropdowns": "19.2.0-develop.3",
48
+ "@progress/kendo-angular-excel-export": "19.2.0-develop.3",
49
+ "@progress/kendo-angular-icons": "19.2.0-develop.3",
50
+ "@progress/kendo-angular-inputs": "19.2.0-develop.3",
51
+ "@progress/kendo-angular-intl": "19.2.0-develop.3",
52
+ "@progress/kendo-angular-l10n": "19.2.0-develop.3",
53
+ "@progress/kendo-angular-label": "19.2.0-develop.3",
54
+ "@progress/kendo-angular-pager": "19.2.0-develop.3",
55
+ "@progress/kendo-angular-pdf-export": "19.2.0-develop.3",
56
+ "@progress/kendo-angular-popup": "19.2.0-develop.3",
57
+ "@progress/kendo-angular-toolbar": "19.2.0-develop.3",
58
+ "@progress/kendo-angular-utils": "19.2.0-develop.3",
59
59
  "rxjs": "^6.5.3 || ^7.0.0"
60
60
  },
61
61
  "dependencies": {
62
62
  "tslib": "^2.3.1",
63
- "@progress/kendo-angular-schematics": "19.2.0-develop.2",
63
+ "@progress/kendo-angular-schematics": "19.2.0-develop.3",
64
64
  "@progress/kendo-common": "^1.0.1",
65
65
  "@progress/kendo-file-saver": "^1.0.0"
66
66
  },
@@ -4,14 +4,14 @@ const schematics_1 = require("@angular-devkit/schematics");
4
4
  function default_1(options) {
5
5
  const finalOptions = Object.assign(Object.assign({}, options), { mainNgModule: 'GridModule', package: 'grid', peerDependencies: {
6
6
  // peer deps of the dropdowns
7
- '@progress/kendo-angular-treeview': '19.2.0-develop.2',
8
- '@progress/kendo-angular-navigation': '19.2.0-develop.2',
7
+ '@progress/kendo-angular-treeview': '19.2.0-develop.3',
8
+ '@progress/kendo-angular-navigation': '19.2.0-develop.3',
9
9
  // peer dependency of kendo-angular-inputs
10
- '@progress/kendo-angular-dialog': '19.2.0-develop.2',
10
+ '@progress/kendo-angular-dialog': '19.2.0-develop.3',
11
11
  // peer dependency of kendo-angular-icons
12
12
  '@progress/kendo-svg-icons': '^4.0.0',
13
13
  // peer dependency of kendo-angular-layout
14
- '@progress/kendo-angular-progressbar': '19.2.0-develop.2'
14
+ '@progress/kendo-angular-progressbar': '19.2.0-develop.3'
15
15
  } });
16
16
  return (0, schematics_1.externalSchematic)('@progress/kendo-angular-schematics', 'ng-add', finalOptions);
17
17
  }
@@ -59,7 +59,7 @@ export declare class SelectionService implements OnDestroy {
59
59
  toggleByIndex(index: number): any;
60
60
  select(item: any): any;
61
61
  deselect(removedItem: any): void;
62
- addAllTo(item: any, ctrlKey: boolean, preserveSelection?: boolean): any;
62
+ addAllTo(item: any, ctrlKey: boolean, preserveSelection?: boolean, shiftKey?: boolean): any;
63
63
  updateAll(selectAllChecked: boolean): void;
64
64
  selectRange(startIndex: number, endIndex: number, preserveSelection: boolean, existingSelections?: any[]): any;
65
65
  get selectAllState(): any;