@progress/kendo-angular-listbox 21.4.0 → 21.4.1

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.
@@ -201,7 +201,11 @@ export class DataBindingDirective {
201
201
  if (!isPresent(itemIndices) || itemIndices.length === 0) {
202
202
  return;
203
203
  }
204
- this.selectedBox.data = this.selectedBox.data.filter((_, index) => !itemIndices.includes(index));
204
+ // Remove items in reverse order to maintain correct indices
205
+ const sortedIndices = [...itemIndices].sort((a, b) => b - a);
206
+ for (const index of sortedIndices) {
207
+ this.selectedBox.data.splice(index, 1);
208
+ }
205
209
  this.selectedBox.selectionService.clearSelection();
206
210
  }
207
211
  transferSelectedItems(source, target) {
@@ -212,8 +216,13 @@ export class DataBindingDirective {
212
216
  const sourceLastIndex = source.selectionService.rangeSelectionTargetIndex ??
213
217
  source.selectionService.lastSelectedOrUnselectedIndex ??
214
218
  0;
215
- target.data.push(...selectedIndices.map(index => source.data[index]));
216
- source.data = source.data.filter((_, index) => !selectedIndices.includes(index));
219
+ const itemsToTransfer = selectedIndices.map(index => source.data[index]);
220
+ target.data.push(...itemsToTransfer);
221
+ // Remove items in reverse order to maintain correct indices
222
+ const sortedIndices = [...selectedIndices].sort((a, b) => b - a);
223
+ for (const index of sortedIndices) {
224
+ source.data.splice(index, 1);
225
+ }
217
226
  source.clearSelection();
218
227
  const removedBeforeAnchor = selectedIndices.filter(i => i < sourceLastIndex).length;
219
228
  const adjustedAnchorIndex = Math.max(0, Math.min(sourceLastIndex - removedBeforeAnchor, source.data.length - 1));
@@ -237,7 +246,12 @@ export class DataBindingDirective {
237
246
  if (itemsToTransfer.length === 0) {
238
247
  return;
239
248
  }
240
- source.data = source.data.filter((item) => source.itemDisabled(item));
249
+ // Remove items in reverse order to maintain correct indices
250
+ for (let i = source.data.length - 1; i >= 0; i--) {
251
+ if (!source.itemDisabled(source.data[i])) {
252
+ source.data.splice(i, 1);
253
+ }
254
+ }
241
255
  target.data.push(...itemsToTransfer);
242
256
  source.clearSelection();
243
257
  const sourceNavService = source.keyboardNavigationService;
@@ -10,7 +10,7 @@ export const packageMetadata = {
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCode: 'KENDOUIANGULAR',
12
12
  productCodes: ['KENDOUIANGULAR'],
13
- publishDate: 1768220157,
14
- version: '21.4.0',
13
+ publishDate: 1768393337,
14
+ version: '21.4.1',
15
15
  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'
16
16
  };
@@ -24,8 +24,8 @@ const packageMetadata = {
24
24
  productName: 'Kendo UI for Angular',
25
25
  productCode: 'KENDOUIANGULAR',
26
26
  productCodes: ['KENDOUIANGULAR'],
27
- publishDate: 1768220157,
28
- version: '21.4.0',
27
+ publishDate: 1768393337,
28
+ version: '21.4.1',
29
29
  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'
30
30
  };
31
31
 
@@ -1801,7 +1801,11 @@ class DataBindingDirective {
1801
1801
  if (!isPresent(itemIndices) || itemIndices.length === 0) {
1802
1802
  return;
1803
1803
  }
1804
- this.selectedBox.data = this.selectedBox.data.filter((_, index) => !itemIndices.includes(index));
1804
+ // Remove items in reverse order to maintain correct indices
1805
+ const sortedIndices = [...itemIndices].sort((a, b) => b - a);
1806
+ for (const index of sortedIndices) {
1807
+ this.selectedBox.data.splice(index, 1);
1808
+ }
1805
1809
  this.selectedBox.selectionService.clearSelection();
1806
1810
  }
1807
1811
  transferSelectedItems(source, target) {
@@ -1812,8 +1816,13 @@ class DataBindingDirective {
1812
1816
  const sourceLastIndex = source.selectionService.rangeSelectionTargetIndex ??
1813
1817
  source.selectionService.lastSelectedOrUnselectedIndex ??
1814
1818
  0;
1815
- target.data.push(...selectedIndices.map(index => source.data[index]));
1816
- source.data = source.data.filter((_, index) => !selectedIndices.includes(index));
1819
+ const itemsToTransfer = selectedIndices.map(index => source.data[index]);
1820
+ target.data.push(...itemsToTransfer);
1821
+ // Remove items in reverse order to maintain correct indices
1822
+ const sortedIndices = [...selectedIndices].sort((a, b) => b - a);
1823
+ for (const index of sortedIndices) {
1824
+ source.data.splice(index, 1);
1825
+ }
1817
1826
  source.clearSelection();
1818
1827
  const removedBeforeAnchor = selectedIndices.filter(i => i < sourceLastIndex).length;
1819
1828
  const adjustedAnchorIndex = Math.max(0, Math.min(sourceLastIndex - removedBeforeAnchor, source.data.length - 1));
@@ -1837,7 +1846,12 @@ class DataBindingDirective {
1837
1846
  if (itemsToTransfer.length === 0) {
1838
1847
  return;
1839
1848
  }
1840
- source.data = source.data.filter((item) => source.itemDisabled(item));
1849
+ // Remove items in reverse order to maintain correct indices
1850
+ for (let i = source.data.length - 1; i >= 0; i--) {
1851
+ if (!source.itemDisabled(source.data[i])) {
1852
+ source.data.splice(i, 1);
1853
+ }
1854
+ }
1841
1855
  target.data.push(...itemsToTransfer);
1842
1856
  source.clearSelection();
1843
1857
  const sourceNavService = source.keyboardNavigationService;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-listbox",
3
- "version": "21.4.0",
3
+ "version": "21.4.1",
4
4
  "description": "Kendo UI for Angular ListBox",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -44,7 +44,7 @@
44
44
  "package": {
45
45
  "productName": "Kendo UI for Angular",
46
46
  "productCode": "KENDOUIANGULAR",
47
- "publishDate": 1768220157,
47
+ "publishDate": 1768393337,
48
48
  "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"
49
49
  }
50
50
  },
@@ -54,14 +54,14 @@
54
54
  "@angular/core": "18 - 21",
55
55
  "@angular/platform-browser": "18 - 21",
56
56
  "@progress/kendo-licensing": "^1.7.0",
57
- "@progress/kendo-angular-buttons": "21.4.0",
58
- "@progress/kendo-angular-common": "21.4.0",
59
- "@progress/kendo-angular-popup": "21.4.0",
57
+ "@progress/kendo-angular-buttons": "21.4.1",
58
+ "@progress/kendo-angular-common": "21.4.1",
59
+ "@progress/kendo-angular-popup": "21.4.1",
60
60
  "rxjs": "^6.5.3 || ^7.0.0"
61
61
  },
62
62
  "dependencies": {
63
63
  "tslib": "^2.3.1",
64
- "@progress/kendo-angular-schematics": "21.4.0",
64
+ "@progress/kendo-angular-schematics": "21.4.1",
65
65
  "@progress/kendo-common": "^1.0.1"
66
66
  },
67
67
  "schematics": "./schematics/collection.json",
@@ -11,11 +11,11 @@ function default_1(options) {
11
11
  // Additional dependencies to install.
12
12
  // See https://github.com/telerik/kendo-schematics/issues/28
13
13
  peerDependencies: {
14
- '@progress/kendo-angular-buttons': '21.4.0',
15
- '@progress/kendo-angular-common': '21.4.0',
16
- '@progress/kendo-angular-l10n': '21.4.0',
14
+ '@progress/kendo-angular-buttons': '21.4.1',
15
+ '@progress/kendo-angular-common': '21.4.1',
16
+ '@progress/kendo-angular-l10n': '21.4.1',
17
17
  // Peer of kendo-angular-buttons
18
- '@progress/kendo-angular-popup': '21.4.0'
18
+ '@progress/kendo-angular-popup': '21.4.1'
19
19
  } });
20
20
  return (0, schematics_1.externalSchematic)('@progress/kendo-angular-schematics', 'ng-add', finalOptions);
21
21
  }