@progress/kendo-vue-grid 3.0.5-dev.202202071439 → 3.0.6-dev.202202101018

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/es/Grid.d.ts CHANGED
@@ -132,6 +132,7 @@ export interface GridComputed {
132
132
  [key: string]: any;
133
133
  getCorrectHeight: any;
134
134
  currentGroupable: boolean;
135
+ computedCollapsed: any[][];
135
136
  }
136
137
  /**
137
138
  * @hidden
package/dist/es/Grid.js CHANGED
@@ -69,7 +69,7 @@ import { ColumnResize } from './drag/ColumnResize';
69
69
  import { CommonDragLogic } from './drag/CommonDragLogic';
70
70
  import { DragClue } from './drag/DragClue';
71
71
  import { DropClue } from './drag/DropClue';
72
- import { getNestedValue, flatData, mapColumns, readColumns, autoGenerateColumns, applyExpandedState } from './utils/index';
72
+ import { getNestedValue, flatData, mapColumns, readColumns, autoGenerateColumns, applyExpandedState, groupedFirstItemValue } from './utils/index';
73
73
  import { GridCell } from './cells/GridCell';
74
74
  import { GridGroupCell } from './cells/GridGroupCell';
75
75
  import { GridRow } from './rows/GridRow';
@@ -86,8 +86,15 @@ var GridVue2 = {
86
86
  props: {
87
87
  topCacheCount: {
88
88
  type: Number,
89
- default: 4
89
+ default: 0
90
90
  },
91
+ collapsedGroups: {
92
+ type: Array,
93
+ default: function _default() {
94
+ return [];
95
+ }
96
+ },
97
+ uniqueField: String,
91
98
  totalGroupedHeight: Number,
92
99
  allGroupedItems: Object,
93
100
  alternatePerGroup: Boolean,
@@ -201,6 +208,21 @@ var GridVue2 = {
201
208
  },
202
209
  currentGroupable: function currentGroupable() {
203
210
  return this.$props.groupable === true && this.$props.group && this.$props.group.length || _typeof(this.$props.groupable) === 'object' && this.$props.groupable.enabled !== false;
211
+ },
212
+ computedCollapsed: function computedCollapsed() {
213
+ var newCollapsed = [];
214
+
215
+ if (this.$props.group) {
216
+ for (var i = 0; i < this.$props.group.length; i++) {
217
+ if (this.$props.collapsedGroups[i]) {
218
+ newCollapsed.push(this.$props.collapsedGroups[i]);
219
+ } else {
220
+ newCollapsed.push([]);
221
+ }
222
+ }
223
+ }
224
+
225
+ return newCollapsed;
204
226
  }
205
227
  },
206
228
  methods: {
@@ -347,26 +369,25 @@ var GridVue2 = {
347
369
  }
348
370
  },
349
371
  updateGroupCollapsed: function updateGroupCollapsed(event) {
350
- var groupToUpdate = this.$props.group.find(function (g) {
351
- return g.field === event.dataItem.field;
352
- });
353
- var collapsed = groupToUpdate.collapsed ? __spreadArrays(groupToUpdate.collapsed) : [];
372
+ var collapsed = this.computedCollapsed;
373
+ var collapsedLevel = collapsed[event.level];
374
+ var uniqueItemValue = groupedFirstItemValue(event.dataItem, this.$props.uniqueField);
354
375
 
355
376
  if (event.value) {
356
- if (collapsed.length) {
357
- var expandedIndex = collapsed.indexOf(event.dataItem.value);
377
+ if (collapsedLevel && collapsedLevel.length) {
378
+ var expandedIndex = collapsedLevel.indexOf(uniqueItemValue);
358
379
 
359
380
  if (expandedIndex > -1) {
360
- collapsed.splice(expandedIndex, 1);
381
+ collapsedLevel.splice(expandedIndex, 1);
361
382
  }
362
383
  }
363
384
  } else {
364
- if (collapsed) {
365
- if (!collapsed.includes(event.dataItem.value)) {
366
- collapsed.push(event.dataItem.value);
385
+ if (collapsedLevel) {
386
+ if (!collapsedLevel.includes(uniqueItemValue)) {
387
+ collapsedLevel.push(uniqueItemValue);
367
388
  }
368
389
  } else {
369
- collapsed = [event.dataItem.value];
390
+ collapsedLevel = [uniqueItemValue];
370
391
  }
371
392
  }
372
393
 
@@ -379,9 +400,8 @@ var GridVue2 = {
379
400
  var expandChange = hasListener.call(this, 'expandchange');
380
401
 
381
402
  if (expandChange) {
382
- var collapsed = this.updateGroupCollapsed(event);
383
403
  this.$emit('expandchange', __assign(__assign({}, this.getArguments(event.event)), {
384
- collapsed: collapsed,
404
+ collapsedGroups: this.updateGroupCollapsed(event),
385
405
  dataItem: event.dataItem,
386
406
  value: event.value
387
407
  }));
@@ -798,7 +818,7 @@ var GridVue2 = {
798
818
  if (Array.isArray(this.$props.dataItems)) {
799
819
  gridData = this.$props.dataItems;
800
820
  } else if (this.$props.dataItems) {
801
- gridData = applyExpandedState(this.$props.dataItems, this.$props.group).data;
821
+ gridData = applyExpandedState(this.$props.dataItems, this.computedCollapsed, this.$props.uniqueField).data;
802
822
  total = total || this.$props.dataItems.total;
803
823
  }
804
824
 
@@ -814,9 +834,9 @@ var GridVue2 = {
814
834
  } else {
815
835
  if (this.$props.totalGroupedHeight) {
816
836
  this.vs.containerHeight = Math.min(1533915, this.$props.totalGroupedHeight);
817
- } else if (this.$props.allGroupedItems) {
818
- var allGroupedItems = this.totalGroupedRows(applyExpandedState(this.$props.allGroupedItems, this.$props.group).data);
819
- this.vs.containerHeight = Math.min(1533915, this.$props.rowHeight * allGroupedItems);
837
+ } else if (this.$props.allGroupedItems && this.$props.allGroupedItems.data) {
838
+ var allGroupedTotal = this.totalGroupedRows(applyExpandedState(this.$props.allGroupedItems, this.computedCollapsed, this.$props.uniqueField).data);
839
+ this.vs.containerHeight = Math.min(1533915, this.$props.rowHeight * allGroupedTotal);
820
840
  } else {
821
841
  this.vs.containerHeight = 1533915;
822
842
  }
@@ -1218,10 +1238,8 @@ var GridVue2 = {
1218
1238
  columnCellRenderFunction = templateRendering.call(this, column.cell, getListeners.call(this));
1219
1239
  }
1220
1240
 
1221
- var isCollapsed = this.group && this.group.some(function (gr) {
1222
- return gr.field === column.field && gr.collapsed && gr.collapsed.some(function (c) {
1223
- return c === item.dataItem[column.field || ''];
1224
- });
1241
+ var isCollapsed = this.computedCollapsed && this.computedCollapsed[item.level] && this.computedCollapsed[item.level].some(function (c) {
1242
+ return c === groupedFirstItemValue(item.dataItem, _this.$props.uniqueField);
1225
1243
  });
1226
1244
  var isExpanded = isCollapsed ? !isCollapsed : item.expanded;
1227
1245
 
@@ -1432,7 +1450,7 @@ var GridVue2 = {
1432
1450
 
1433
1451
  var hiddenRows = 0;
1434
1452
 
1435
- if (this.$props.scrollable === 'virtual' && this.totalGroupedRows(this.currentData) > this.$props.take) {
1453
+ if (this.$props.scrollable === 'virtual' && this.totalGroupedRows(this.currentData) / 2 > this.$props.take) {
1436
1454
  var topIndex = this.vs.topCacheCount + this.vs.attendedSkip - (this.$props.skip || 0);
1437
1455
 
1438
1456
  for (var i = 0; i < topIndex; i++) {
@@ -47,6 +47,12 @@ var VirtualScroll = /** @class */ (function () {
47
47
  accumulate = 0;
48
48
  }
49
49
  }
50
+ if (allRows.length && !result.length) {
51
+ result.push({
52
+ line: allRows[0].scrollHeight,
53
+ acc: accumulate
54
+ });
55
+ }
50
56
  return result;
51
57
  },
52
58
  enumerable: false,
@@ -61,6 +61,7 @@ var GridGroupCellVue2 = {
61
61
  dataItem: this.$props.dataItem,
62
62
  dataIndex: this.$props.dataIndex,
63
63
  event: event,
64
+ level: this.$props.level,
64
65
  field: undefined,
65
66
  value: !expanded
66
67
  });
@@ -72,6 +73,7 @@ var GridGroupCellVue2 = {
72
73
  dataItem: dataItem,
73
74
  dataIndex: this.$props.dataIndex,
74
75
  event: e,
76
+ level: this.$props.level,
75
77
  field: undefined,
76
78
  value: !expanded
77
79
  });
@@ -288,6 +288,14 @@ export interface GridProps {
288
288
  * Passes the collection of all grouped items that is needed for the virtualization scenario.
289
289
  */
290
290
  allGroupedItems?: any[];
291
+ /**
292
+ * Passes the collection of all collapsed groups for every grouped level.
293
+ */
294
+ collapsedGroups?: any[][];
295
+ /**
296
+ * Specifies the name of the field which will provide a unique for every item identifier.
297
+ */
298
+ uniqueField?: string;
291
299
  /**
292
300
  * Fires when Grid keyboard navigation position is changed.
293
301
  */
@@ -5,7 +5,7 @@ export var packageMetadata = {
5
5
  name: '@progress/kendo-vue-grid',
6
6
  productName: 'Kendo UI for Vue',
7
7
  productCodes: ['KENDOUIVUE', 'KENDOUICOMPLETE'],
8
- publishDate: 1644244547,
8
+ publishDate: 1644488047,
9
9
  version: '',
10
10
  licensingDocsUrl: 'https://www.telerik.com/kendo-vue-ui/my-license/?utm_medium=product&utm_source=kendovue&utm_campaign=kendo-ui-vue-purchase-license-keys-warning'
11
11
  };
@@ -84,4 +84,8 @@ export declare const parsers: {
84
84
  /**
85
85
  * @hidden
86
86
  */
87
- export declare function applyExpandedState(sdata: DataResult, group?: Array<GroupDescriptor>): DataResult;
87
+ export declare function applyExpandedState(sdata: DataResult, collapsed: any[], uniqueField: string): DataResult;
88
+ /**
89
+ * @hidden
90
+ */
91
+ export declare function groupedFirstItemValue(item: any, field: string): any;
@@ -356,13 +356,11 @@ export var parsers = {
356
356
  /**
357
357
  * @hidden
358
358
  */
359
- function updateItemsExpanded(items, field, collapsed) {
359
+ function updateItemsExpanded(items, collapsed, uniqueField, level) {
360
360
  items.forEach(function (di) {
361
- if (di.field === field) {
362
- di.expanded = !collapsed.includes(di.value);
363
- }
364
- else if (di.items && di.items.length) {
365
- di.items = updateItemsExpanded(di.items, field, collapsed);
361
+ di.expanded = collapsed[level] && !collapsed[level].includes(groupedFirstItemValue(di, uniqueField));
362
+ if (di.items && di.items.length) {
363
+ di.items = updateItemsExpanded(di.items, collapsed, uniqueField, level + 1);
366
364
  }
367
365
  });
368
366
  return items;
@@ -370,20 +368,24 @@ function updateItemsExpanded(items, field, collapsed) {
370
368
  /**
371
369
  * @hidden
372
370
  */
373
- export function applyExpandedState(sdata, group) {
374
- if (group) {
375
- group.forEach(function (gr) {
376
- if (gr.collapsed && gr.collapsed.length) {
377
- sdata.data.forEach(function (di) {
378
- if (di.field === gr.field) {
379
- di.expanded = !gr.collapsed.includes(di.value);
380
- }
381
- else if (di.items && di.items.length) {
382
- di.items = updateItemsExpanded(di.items, gr.field, gr.collapsed);
383
- }
384
- });
371
+ export function applyExpandedState(sdata, collapsed, uniqueField) {
372
+ if (collapsed && collapsed.length) {
373
+ sdata.data.forEach(function (di) {
374
+ di.expanded = collapsed[0] && !collapsed[0].includes(groupedFirstItemValue(di, uniqueField));
375
+ if (di.items && di.items.length) {
376
+ di.items = updateItemsExpanded(di.items, collapsed, uniqueField, 1);
385
377
  }
386
378
  });
387
379
  }
388
380
  return sdata;
389
381
  }
382
+ /**
383
+ * @hidden
384
+ */
385
+ export function groupedFirstItemValue(item, field) {
386
+ var resultItem = item;
387
+ while (resultItem.items && resultItem.items.length) {
388
+ resultItem = resultItem.items[0];
389
+ }
390
+ return field ? resultItem[field] : item.value;
391
+ }
@@ -132,6 +132,7 @@ export interface GridComputed {
132
132
  [key: string]: any;
133
133
  getCorrectHeight: any;
134
134
  currentGroupable: boolean;
135
+ computedCollapsed: any[][];
135
136
  }
136
137
  /**
137
138
  * @hidden
package/dist/npm/Grid.js CHANGED
@@ -122,8 +122,15 @@ var GridVue2 = {
122
122
  props: {
123
123
  topCacheCount: {
124
124
  type: Number,
125
- default: 4
125
+ default: 0
126
126
  },
127
+ collapsedGroups: {
128
+ type: Array,
129
+ default: function _default() {
130
+ return [];
131
+ }
132
+ },
133
+ uniqueField: String,
127
134
  totalGroupedHeight: Number,
128
135
  allGroupedItems: Object,
129
136
  alternatePerGroup: Boolean,
@@ -237,6 +244,21 @@ var GridVue2 = {
237
244
  },
238
245
  currentGroupable: function currentGroupable() {
239
246
  return this.$props.groupable === true && this.$props.group && this.$props.group.length || _typeof(this.$props.groupable) === 'object' && this.$props.groupable.enabled !== false;
247
+ },
248
+ computedCollapsed: function computedCollapsed() {
249
+ var newCollapsed = [];
250
+
251
+ if (this.$props.group) {
252
+ for (var i = 0; i < this.$props.group.length; i++) {
253
+ if (this.$props.collapsedGroups[i]) {
254
+ newCollapsed.push(this.$props.collapsedGroups[i]);
255
+ } else {
256
+ newCollapsed.push([]);
257
+ }
258
+ }
259
+ }
260
+
261
+ return newCollapsed;
240
262
  }
241
263
  },
242
264
  methods: {
@@ -383,26 +405,25 @@ var GridVue2 = {
383
405
  }
384
406
  },
385
407
  updateGroupCollapsed: function updateGroupCollapsed(event) {
386
- var groupToUpdate = this.$props.group.find(function (g) {
387
- return g.field === event.dataItem.field;
388
- });
389
- var collapsed = groupToUpdate.collapsed ? __spreadArrays(groupToUpdate.collapsed) : [];
408
+ var collapsed = this.computedCollapsed;
409
+ var collapsedLevel = collapsed[event.level];
410
+ var uniqueItemValue = index_1.groupedFirstItemValue(event.dataItem, this.$props.uniqueField);
390
411
 
391
412
  if (event.value) {
392
- if (collapsed.length) {
393
- var expandedIndex = collapsed.indexOf(event.dataItem.value);
413
+ if (collapsedLevel && collapsedLevel.length) {
414
+ var expandedIndex = collapsedLevel.indexOf(uniqueItemValue);
394
415
 
395
416
  if (expandedIndex > -1) {
396
- collapsed.splice(expandedIndex, 1);
417
+ collapsedLevel.splice(expandedIndex, 1);
397
418
  }
398
419
  }
399
420
  } else {
400
- if (collapsed) {
401
- if (!collapsed.includes(event.dataItem.value)) {
402
- collapsed.push(event.dataItem.value);
421
+ if (collapsedLevel) {
422
+ if (!collapsedLevel.includes(uniqueItemValue)) {
423
+ collapsedLevel.push(uniqueItemValue);
403
424
  }
404
425
  } else {
405
- collapsed = [event.dataItem.value];
426
+ collapsedLevel = [uniqueItemValue];
406
427
  }
407
428
  }
408
429
 
@@ -415,9 +436,8 @@ var GridVue2 = {
415
436
  var expandChange = kendo_vue_common_1.hasListener.call(this, 'expandchange');
416
437
 
417
438
  if (expandChange) {
418
- var collapsed = this.updateGroupCollapsed(event);
419
439
  this.$emit('expandchange', __assign(__assign({}, this.getArguments(event.event)), {
420
- collapsed: collapsed,
440
+ collapsedGroups: this.updateGroupCollapsed(event),
421
441
  dataItem: event.dataItem,
422
442
  value: event.value
423
443
  }));
@@ -834,7 +854,7 @@ var GridVue2 = {
834
854
  if (Array.isArray(this.$props.dataItems)) {
835
855
  gridData = this.$props.dataItems;
836
856
  } else if (this.$props.dataItems) {
837
- gridData = index_1.applyExpandedState(this.$props.dataItems, this.$props.group).data;
857
+ gridData = index_1.applyExpandedState(this.$props.dataItems, this.computedCollapsed, this.$props.uniqueField).data;
838
858
  total = total || this.$props.dataItems.total;
839
859
  }
840
860
 
@@ -850,9 +870,9 @@ var GridVue2 = {
850
870
  } else {
851
871
  if (this.$props.totalGroupedHeight) {
852
872
  this.vs.containerHeight = Math.min(1533915, this.$props.totalGroupedHeight);
853
- } else if (this.$props.allGroupedItems) {
854
- var allGroupedItems = this.totalGroupedRows(index_1.applyExpandedState(this.$props.allGroupedItems, this.$props.group).data);
855
- this.vs.containerHeight = Math.min(1533915, this.$props.rowHeight * allGroupedItems);
873
+ } else if (this.$props.allGroupedItems && this.$props.allGroupedItems.data) {
874
+ var allGroupedTotal = this.totalGroupedRows(index_1.applyExpandedState(this.$props.allGroupedItems, this.computedCollapsed, this.$props.uniqueField).data);
875
+ this.vs.containerHeight = Math.min(1533915, this.$props.rowHeight * allGroupedTotal);
856
876
  } else {
857
877
  this.vs.containerHeight = 1533915;
858
878
  }
@@ -1254,10 +1274,8 @@ var GridVue2 = {
1254
1274
  columnCellRenderFunction = kendo_vue_common_1.templateRendering.call(this, column.cell, kendo_vue_common_1.getListeners.call(this));
1255
1275
  }
1256
1276
 
1257
- var isCollapsed = this.group && this.group.some(function (gr) {
1258
- return gr.field === column.field && gr.collapsed && gr.collapsed.some(function (c) {
1259
- return c === item.dataItem[column.field || ''];
1260
- });
1277
+ var isCollapsed = this.computedCollapsed && this.computedCollapsed[item.level] && this.computedCollapsed[item.level].some(function (c) {
1278
+ return c === index_1.groupedFirstItemValue(item.dataItem, _this.$props.uniqueField);
1261
1279
  });
1262
1280
  var isExpanded = isCollapsed ? !isCollapsed : item.expanded;
1263
1281
 
@@ -1468,7 +1486,7 @@ var GridVue2 = {
1468
1486
 
1469
1487
  var hiddenRows = 0;
1470
1488
 
1471
- if (this.$props.scrollable === 'virtual' && this.totalGroupedRows(this.currentData) > this.$props.take) {
1489
+ if (this.$props.scrollable === 'virtual' && this.totalGroupedRows(this.currentData) / 2 > this.$props.take) {
1472
1490
  var topIndex = this.vs.topCacheCount + this.vs.attendedSkip - (this.$props.skip || 0);
1473
1491
 
1474
1492
  for (var i = 0; i < topIndex; i++) {
@@ -50,6 +50,12 @@ var VirtualScroll = /** @class */ (function () {
50
50
  accumulate = 0;
51
51
  }
52
52
  }
53
+ if (allRows.length && !result.length) {
54
+ result.push({
55
+ line: allRows[0].scrollHeight,
56
+ acc: accumulate
57
+ });
58
+ }
53
59
  return result;
54
60
  },
55
61
  enumerable: false,
@@ -71,6 +71,7 @@ var GridGroupCellVue2 = {
71
71
  dataItem: this.$props.dataItem,
72
72
  dataIndex: this.$props.dataIndex,
73
73
  event: event,
74
+ level: this.$props.level,
74
75
  field: undefined,
75
76
  value: !expanded
76
77
  });
@@ -82,6 +83,7 @@ var GridGroupCellVue2 = {
82
83
  dataItem: dataItem,
83
84
  dataIndex: this.$props.dataIndex,
84
85
  event: e,
86
+ level: this.$props.level,
85
87
  field: undefined,
86
88
  value: !expanded
87
89
  });
@@ -288,6 +288,14 @@ export interface GridProps {
288
288
  * Passes the collection of all grouped items that is needed for the virtualization scenario.
289
289
  */
290
290
  allGroupedItems?: any[];
291
+ /**
292
+ * Passes the collection of all collapsed groups for every grouped level.
293
+ */
294
+ collapsedGroups?: any[][];
295
+ /**
296
+ * Specifies the name of the field which will provide a unique for every item identifier.
297
+ */
298
+ uniqueField?: string;
291
299
  /**
292
300
  * Fires when Grid keyboard navigation position is changed.
293
301
  */
@@ -8,7 +8,7 @@ exports.packageMetadata = {
8
8
  name: '@progress/kendo-vue-grid',
9
9
  productName: 'Kendo UI for Vue',
10
10
  productCodes: ['KENDOUIVUE', 'KENDOUICOMPLETE'],
11
- publishDate: 1644244547,
11
+ publishDate: 1644488047,
12
12
  version: '',
13
13
  licensingDocsUrl: 'https://www.telerik.com/kendo-vue-ui/my-license/?utm_medium=product&utm_source=kendovue&utm_campaign=kendo-ui-vue-purchase-license-keys-warning'
14
14
  };
@@ -84,4 +84,8 @@ export declare const parsers: {
84
84
  /**
85
85
  * @hidden
86
86
  */
87
- export declare function applyExpandedState(sdata: DataResult, group?: Array<GroupDescriptor>): DataResult;
87
+ export declare function applyExpandedState(sdata: DataResult, collapsed: any[], uniqueField: string): DataResult;
88
+ /**
89
+ * @hidden
90
+ */
91
+ export declare function groupedFirstItemValue(item: any, field: string): any;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.applyExpandedState = exports.parsers = exports.footerColumns = exports.autoGenerateColumns = exports.readColumns = exports.mapColumns = exports.checkPropCompatibility = exports.getIndex = exports.isRtl = exports.flatData = exports.getNestedValue = void 0;
3
+ exports.groupedFirstItemValue = exports.applyExpandedState = exports.parsers = exports.footerColumns = exports.autoGenerateColumns = exports.readColumns = exports.mapColumns = exports.checkPropCompatibility = exports.getIndex = exports.isRtl = exports.flatData = exports.getNestedValue = void 0;
4
4
  var kendo_vue_data_tools_1 = require("@progress/kendo-vue-data-tools");
5
5
  var kendo_vue_common_1 = require("@progress/kendo-vue-common");
6
6
  var STRING = 'string';
@@ -367,13 +367,11 @@ exports.parsers = {
367
367
  /**
368
368
  * @hidden
369
369
  */
370
- function updateItemsExpanded(items, field, collapsed) {
370
+ function updateItemsExpanded(items, collapsed, uniqueField, level) {
371
371
  items.forEach(function (di) {
372
- if (di.field === field) {
373
- di.expanded = !collapsed.includes(di.value);
374
- }
375
- else if (di.items && di.items.length) {
376
- di.items = updateItemsExpanded(di.items, field, collapsed);
372
+ di.expanded = collapsed[level] && !collapsed[level].includes(groupedFirstItemValue(di, uniqueField));
373
+ if (di.items && di.items.length) {
374
+ di.items = updateItemsExpanded(di.items, collapsed, uniqueField, level + 1);
377
375
  }
378
376
  });
379
377
  return items;
@@ -381,21 +379,26 @@ function updateItemsExpanded(items, field, collapsed) {
381
379
  /**
382
380
  * @hidden
383
381
  */
384
- function applyExpandedState(sdata, group) {
385
- if (group) {
386
- group.forEach(function (gr) {
387
- if (gr.collapsed && gr.collapsed.length) {
388
- sdata.data.forEach(function (di) {
389
- if (di.field === gr.field) {
390
- di.expanded = !gr.collapsed.includes(di.value);
391
- }
392
- else if (di.items && di.items.length) {
393
- di.items = updateItemsExpanded(di.items, gr.field, gr.collapsed);
394
- }
395
- });
382
+ function applyExpandedState(sdata, collapsed, uniqueField) {
383
+ if (collapsed && collapsed.length) {
384
+ sdata.data.forEach(function (di) {
385
+ di.expanded = collapsed[0] && !collapsed[0].includes(groupedFirstItemValue(di, uniqueField));
386
+ if (di.items && di.items.length) {
387
+ di.items = updateItemsExpanded(di.items, collapsed, uniqueField, 1);
396
388
  }
397
389
  });
398
390
  }
399
391
  return sdata;
400
392
  }
401
393
  exports.applyExpandedState = applyExpandedState;
394
+ /**
395
+ * @hidden
396
+ */
397
+ function groupedFirstItemValue(item, field) {
398
+ var resultItem = item;
399
+ while (resultItem.items && resultItem.items.length) {
400
+ resultItem = resultItem.items[0];
401
+ }
402
+ return field ? resultItem[field] : item.value;
403
+ }
404
+ exports.groupedFirstItemValue = groupedFirstItemValue;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-vue-grid",
3
- "version": "3.0.5-dev.202202071439",
3
+ "version": "3.0.6-dev.202202101018",
4
4
  "description": "Kendo UI for Vue Grid package",
5
5
  "repository": {
6
6
  "type": "git",
@@ -34,23 +34,23 @@
34
34
  "vue": "^2.6.12 || ^3.0.2"
35
35
  },
36
36
  "dependencies": {
37
- "@progress/kendo-vue-common": "3.0.5-dev.202202071439"
37
+ "@progress/kendo-vue-common": "3.0.6-dev.202202101018"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@progress/kendo-data-query": "^1.5.4",
41
41
  "@progress/kendo-drawing": "^1.9.3",
42
42
  "@progress/kendo-licensing": "^1.1.0",
43
- "@progress/kendo-vue-animation": "3.0.5-dev.202202071439",
44
- "@progress/kendo-vue-buttons": "3.0.5-dev.202202071439",
45
- "@progress/kendo-vue-charts": "3.0.5-dev.202202071439",
46
- "@progress/kendo-vue-data-tools": "3.0.5-dev.202202071439",
47
- "@progress/kendo-vue-dateinputs": "3.0.5-dev.202202071439",
48
- "@progress/kendo-vue-dropdowns": "3.0.5-dev.202202071439",
49
- "@progress/kendo-vue-excel-export": "3.0.5-dev.202202071439",
50
- "@progress/kendo-vue-inputs": "3.0.5-dev.202202071439",
51
- "@progress/kendo-vue-intl": "3.0.5-dev.202202071439",
52
- "@progress/kendo-vue-pdf": "3.0.5-dev.202202071439",
53
- "@progress/kendo-vue-popup": "3.0.5-dev.202202071439",
43
+ "@progress/kendo-vue-animation": "3.0.6-dev.202202101018",
44
+ "@progress/kendo-vue-buttons": "3.0.6-dev.202202101018",
45
+ "@progress/kendo-vue-charts": "3.0.6-dev.202202101018",
46
+ "@progress/kendo-vue-data-tools": "3.0.6-dev.202202101018",
47
+ "@progress/kendo-vue-dateinputs": "3.0.6-dev.202202101018",
48
+ "@progress/kendo-vue-dropdowns": "3.0.6-dev.202202101018",
49
+ "@progress/kendo-vue-excel-export": "3.0.6-dev.202202101018",
50
+ "@progress/kendo-vue-inputs": "3.0.6-dev.202202101018",
51
+ "@progress/kendo-vue-intl": "3.0.6-dev.202202101018",
52
+ "@progress/kendo-vue-pdf": "3.0.6-dev.202202101018",
53
+ "@progress/kendo-vue-popup": "3.0.6-dev.202202101018",
54
54
  "cldr-core": "^34.0.0",
55
55
  "cldr-dates-full": "^34.0.0",
56
56
  "cldr-numbers-full": "^34.0.0",