@progress/kendo-angular-spreadsheet 21.4.0-develop.8 → 21.4.0

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 (166) hide show
  1. package/LICENSE.md +1 -1
  2. package/README.md +1 -1
  3. package/action-bar/formula-input.directive.d.ts +1 -1
  4. package/action-bar/list.component.d.ts +1 -1
  5. package/action-bar/namebox.component.d.ts +1 -1
  6. package/common/calendar-editor.component.d.ts +1 -1
  7. package/common/error-handling.service.d.ts +1 -1
  8. package/common/list-editor.component.d.ts +1 -1
  9. package/common/main-menu.directive.d.ts +1 -1
  10. package/common/sheet-changes.d.ts +1 -1
  11. package/common/spreadsheet.service.d.ts +1 -1
  12. package/directives.d.ts +1 -1
  13. package/esm2022/action-bar/formula-input.directive.mjs +1 -1
  14. package/esm2022/action-bar/list.component.mjs +1 -1
  15. package/esm2022/action-bar/namebox.component.mjs +1 -1
  16. package/esm2022/common/calendar-editor.component.mjs +1 -1
  17. package/esm2022/common/error-handling.service.mjs +1 -1
  18. package/esm2022/common/list-editor.component.mjs +1 -1
  19. package/esm2022/common/main-menu.directive.mjs +1 -1
  20. package/esm2022/common/sheet-changes.mjs +1 -1
  21. package/esm2022/common/spreadsheet.service.mjs +1 -1
  22. package/esm2022/directives.mjs +1 -1
  23. package/esm2022/filter-menu/filter-menu-item-content-template.directive.mjs +1 -1
  24. package/esm2022/filter-menu/filter-menu-item.component.mjs +1 -1
  25. package/esm2022/index.mjs +1 -1
  26. package/esm2022/localization/custom-messages.component.mjs +1 -1
  27. package/esm2022/localization/localized-messages.directive.mjs +1 -1
  28. package/esm2022/localization/messages.mjs +14 -2
  29. package/esm2022/localization/spreadsheet-localization.service.mjs +1 -1
  30. package/esm2022/models/cell-editor-action-args.mjs +1 -1
  31. package/esm2022/models/cell-editor-options.mjs +1 -1
  32. package/esm2022/models/events.mjs +1 -1
  33. package/esm2022/models/filter-menu-item.mjs +1 -1
  34. package/esm2022/models/index.mjs +1 -1
  35. package/esm2022/models/main-menu-item.mjs +1 -1
  36. package/esm2022/models/range-filter-value.mjs +1 -1
  37. package/esm2022/models/sheet-info.mjs +1 -1
  38. package/esm2022/package-metadata.mjs +3 -3
  39. package/esm2022/progress-kendo-angular-spreadsheet.mjs +1 -1
  40. package/esm2022/sheets-bar/action-dialog.component.mjs +1 -1
  41. package/esm2022/sheets-bar/sheets-bar.component.mjs +1 -1
  42. package/esm2022/sheets-bar/utils.mjs +1 -1
  43. package/esm2022/spreadsheet.component.mjs +23 -7
  44. package/esm2022/spreadsheet.module.mjs +1 -1
  45. package/esm2022/tools/align/align-tool.directive.mjs +1 -1
  46. package/esm2022/tools/align/horizontal-align-tool.directive.mjs +1 -1
  47. package/esm2022/tools/align/vertical-align-tool.directive.mjs +1 -1
  48. package/esm2022/tools/colorpicker/spreadsheet-backcolor.component.mjs +1 -1
  49. package/esm2022/tools/colorpicker/spreadsheet-forecolor.component.mjs +1 -1
  50. package/esm2022/tools/data-validation-dialog.component.mjs +1 -1
  51. package/esm2022/tools/data-validation-tool.directive.mjs +1 -1
  52. package/esm2022/tools/decrease-decimal-tool.directive.mjs +1 -1
  53. package/esm2022/tools/filter-sort/filter-tool.directive.mjs +17 -3
  54. package/esm2022/tools/filter-sort/sort-tool.directive.mjs +7 -2
  55. package/esm2022/tools/font-family/font-family-dropdownlist.component.mjs +1 -1
  56. package/esm2022/tools/font-family/spreadsheet-fontfamily-tool.component.mjs +1 -1
  57. package/esm2022/tools/font-size/decrease-font-tool.directive.mjs +1 -1
  58. package/esm2022/tools/font-size/font-size-dropdownlist.component.mjs +1 -1
  59. package/esm2022/tools/font-size/increase-font-tool.directive.mjs +1 -1
  60. package/esm2022/tools/font-size/spreadsheet-fontsize-tool.component.mjs +1 -1
  61. package/esm2022/tools/format-tool.directive.mjs +1 -1
  62. package/esm2022/tools/gridlines-tool.directive.mjs +1 -1
  63. package/esm2022/tools/history/redo-tool.mjs +1 -1
  64. package/esm2022/tools/history/undo-tool.mjs +1 -1
  65. package/esm2022/tools/increase-decimal-tool.directive.mjs +1 -1
  66. package/esm2022/tools/index.mjs +1 -1
  67. package/esm2022/tools/insert/insert-link-dialog.component.mjs +1 -1
  68. package/esm2022/tools/insert/insert-link-tool.directive.mjs +1 -1
  69. package/esm2022/tools/load-file.component.mjs +1 -1
  70. package/esm2022/tools/save-file-tool.directive.mjs +1 -1
  71. package/esm2022/tools/shared/command-icons.mjs +1 -1
  72. package/esm2022/tools/shared/commands.mjs +1 -1
  73. package/esm2022/tools/shared/constants.mjs +1 -1
  74. package/esm2022/tools/shared/dialog-content.component.mjs +1 -1
  75. package/esm2022/tools/shared/spreadsheet-command-base.mjs +1 -1
  76. package/esm2022/tools/shared/spreadsheet-command-button.mjs +1 -1
  77. package/esm2022/tools/shared/spreadsheet-dropdown-tools-base.mjs +1 -1
  78. package/esm2022/tools/shared/spreadsheet-dropdownlist.base.mjs +1 -1
  79. package/esm2022/tools/tables/add-column-left-button.directive.mjs +1 -1
  80. package/esm2022/tools/tables/add-column-right-button.directive.mjs +1 -1
  81. package/esm2022/tools/tables/add-row-above-button.directive.mjs +1 -1
  82. package/esm2022/tools/tables/add-row-below-button.directive.mjs +1 -1
  83. package/esm2022/tools/tables/delete-column-button.directive.mjs +1 -1
  84. package/esm2022/tools/tables/delete-row-button.directive.mjs +1 -1
  85. package/esm2022/tools/tables/index.mjs +1 -1
  86. package/esm2022/tools/tables/merge-tool.directive.mjs +1 -1
  87. package/esm2022/tools/text-wrap-tool.directive.mjs +1 -1
  88. package/esm2022/tools/tools.service.mjs +1 -1
  89. package/esm2022/tools/typographical-emphasis/bold-tool.directive.mjs +1 -1
  90. package/esm2022/tools/typographical-emphasis/italic-tool.directive.mjs +1 -1
  91. package/esm2022/tools/typographical-emphasis/underline-tool.directive.mjs +1 -1
  92. package/esm2022/tools/utils.mjs +1 -1
  93. package/esm2022/utils.mjs +1 -1
  94. package/fesm2022/progress-kendo-angular-spreadsheet.mjs +60 -13
  95. package/filter-menu/filter-menu-item-content-template.directive.d.ts +1 -1
  96. package/filter-menu/filter-menu-item.component.d.ts +1 -1
  97. package/index.d.ts +1 -1
  98. package/localization/custom-messages.component.d.ts +1 -1
  99. package/localization/localized-messages.directive.d.ts +1 -1
  100. package/localization/messages.d.ts +10 -2
  101. package/localization/spreadsheet-localization.service.d.ts +1 -1
  102. package/models/cell-editor-action-args.d.ts +1 -1
  103. package/models/cell-editor-options.d.ts +1 -1
  104. package/models/events.d.ts +1 -1
  105. package/models/filter-menu-item.d.ts +1 -1
  106. package/models/index.d.ts +1 -1
  107. package/models/main-menu-item.d.ts +1 -1
  108. package/models/range-filter-value.d.ts +1 -1
  109. package/models/sheet-info.d.ts +1 -1
  110. package/package-metadata.d.ts +1 -1
  111. package/package.json +18 -18
  112. package/schematics/ngAdd/index.js +3 -3
  113. package/sheets-bar/action-dialog.component.d.ts +1 -1
  114. package/sheets-bar/sheets-bar.component.d.ts +1 -1
  115. package/sheets-bar/utils.d.ts +1 -1
  116. package/spreadsheet.component.d.ts +8 -2
  117. package/spreadsheet.module.d.ts +1 -1
  118. package/tools/align/align-tool.directive.d.ts +1 -1
  119. package/tools/align/horizontal-align-tool.directive.d.ts +1 -1
  120. package/tools/align/vertical-align-tool.directive.d.ts +1 -1
  121. package/tools/colorpicker/spreadsheet-backcolor.component.d.ts +1 -1
  122. package/tools/colorpicker/spreadsheet-forecolor.component.d.ts +1 -1
  123. package/tools/data-validation-dialog.component.d.ts +1 -1
  124. package/tools/data-validation-tool.directive.d.ts +1 -1
  125. package/tools/decrease-decimal-tool.directive.d.ts +1 -1
  126. package/tools/filter-sort/filter-tool.directive.d.ts +4 -3
  127. package/tools/filter-sort/sort-tool.directive.d.ts +1 -1
  128. package/tools/font-family/font-family-dropdownlist.component.d.ts +1 -1
  129. package/tools/font-family/spreadsheet-fontfamily-tool.component.d.ts +1 -1
  130. package/tools/font-size/decrease-font-tool.directive.d.ts +1 -1
  131. package/tools/font-size/font-size-dropdownlist.component.d.ts +1 -1
  132. package/tools/font-size/increase-font-tool.directive.d.ts +1 -1
  133. package/tools/font-size/spreadsheet-fontsize-tool.component.d.ts +1 -1
  134. package/tools/format-tool.directive.d.ts +1 -1
  135. package/tools/gridlines-tool.directive.d.ts +1 -1
  136. package/tools/history/redo-tool.d.ts +1 -1
  137. package/tools/history/undo-tool.d.ts +1 -1
  138. package/tools/increase-decimal-tool.directive.d.ts +1 -1
  139. package/tools/index.d.ts +1 -1
  140. package/tools/insert/insert-link-dialog.component.d.ts +1 -1
  141. package/tools/insert/insert-link-tool.directive.d.ts +1 -1
  142. package/tools/load-file.component.d.ts +1 -1
  143. package/tools/save-file-tool.directive.d.ts +1 -1
  144. package/tools/shared/command-icons.d.ts +1 -1
  145. package/tools/shared/commands.d.ts +1 -1
  146. package/tools/shared/constants.d.ts +1 -1
  147. package/tools/shared/dialog-content.component.d.ts +1 -1
  148. package/tools/shared/spreadsheet-command-base.d.ts +1 -1
  149. package/tools/shared/spreadsheet-command-button.d.ts +1 -1
  150. package/tools/shared/spreadsheet-dropdown-tools-base.d.ts +1 -1
  151. package/tools/shared/spreadsheet-dropdownlist.base.d.ts +1 -1
  152. package/tools/tables/add-column-left-button.directive.d.ts +1 -1
  153. package/tools/tables/add-column-right-button.directive.d.ts +1 -1
  154. package/tools/tables/add-row-above-button.directive.d.ts +1 -1
  155. package/tools/tables/add-row-below-button.directive.d.ts +1 -1
  156. package/tools/tables/delete-column-button.directive.d.ts +1 -1
  157. package/tools/tables/delete-row-button.directive.d.ts +1 -1
  158. package/tools/tables/index.d.ts +1 -1
  159. package/tools/tables/merge-tool.directive.d.ts +1 -1
  160. package/tools/text-wrap-tool.directive.d.ts +1 -1
  161. package/tools/tools.service.d.ts +1 -1
  162. package/tools/typographical-emphasis/bold-tool.directive.d.ts +1 -1
  163. package/tools/typographical-emphasis/italic-tool.directive.d.ts +1 -1
  164. package/tools/typographical-emphasis/underline-tool.directive.d.ts +1 -1
  165. package/tools/utils.d.ts +1 -1
  166. package/utils.d.ts +1 -1
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { ChangeDetectorRef, Directive } from '@angular/core';
@@ -34,6 +34,10 @@ export class SpreadsheetFilterDirective extends SpreadsheetCommandButton {
34
34
  this.toggleActiveState(button);
35
35
  }));
36
36
  }
37
+ ngOnInit() {
38
+ super.ngOnInit();
39
+ this.toggleActiveState(this.button);
40
+ }
37
41
  ngOnDestroy() {
38
42
  this.subs.unsubscribe();
39
43
  }
@@ -46,8 +50,18 @@ export class SpreadsheetFilterDirective extends SpreadsheetCommandButton {
46
50
  this.spreadsheetService.spreadsheet.executeCommand(options);
47
51
  }
48
52
  toggleActiveState(button, range) {
49
- const currentSheet = this.spreadsheetService.spreadsheet.activeSheet();
50
- const currentRange = isPresent(range) ? range : currentSheet.range(currentSheet.activeCell());
53
+ if (range?._ref?.length > 1 || range?._ref?.refs?.length > 1) {
54
+ if (!button.disabled) {
55
+ button.disabled = true;
56
+ this.cdr.detectChanges();
57
+ }
58
+ return;
59
+ }
60
+ const currentSheet = this.spreadsheetService.spreadsheet?.activeSheet();
61
+ if (!currentSheet) {
62
+ return;
63
+ }
64
+ const currentRange = isPresent(range) ? range : currentSheet.selection();
51
65
  let disabled = true;
52
66
  let rangeHasValue = false;
53
67
  currentRange.values().forEach((nestedArr) => {
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Directive } from '@angular/core';
@@ -39,9 +39,14 @@ export class SpreadsheetSortDirective {
39
39
  return;
40
40
  }
41
41
  const dir = item.value;
42
+ const currentFilterOptions = this.spreadsheetService.spreadsheetComponent?.currentFilterOptions;
43
+ const currentRange = currentFilterOptions?.range;
44
+ const noHeaderRange = currentRange?.resize({ top: 1 });
42
45
  const options = {
43
46
  value: dir,
44
- sheet: false
47
+ sheet: false,
48
+ operatingRange: noHeaderRange,
49
+ column: currentFilterOptions?.column
45
50
  };
46
51
  this.spreadsheetService.spreadsheet.executeCommand({ command: 'SortCommand', options });
47
52
  }
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Component } from '@angular/core';
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Component, forwardRef, Inject } from '@angular/core';
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Directive } from '@angular/core';
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Component } from '@angular/core';
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Directive } from '@angular/core';
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Component, forwardRef, Inject } from '@angular/core';
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Directive } from '@angular/core';
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Directive } from '@angular/core';
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Directive } from '@angular/core';
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Directive } from '@angular/core';
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Directive } from '@angular/core';
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  export { SpreadsheetBackColorComponent } from './colorpicker/spreadsheet-backcolor.component';
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Component } from '@angular/core';
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Directive } from '@angular/core';
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Component, ElementRef, Inject, ViewChild, forwardRef } from '@angular/core';
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Directive } from '@angular/core';
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { alignCenterIcon, alignJustifyIcon, alignLeftIcon, alignRightIcon, boldIcon, dropletIcon, foregroundColorIcon, italicIcon, tableColumnDeleteIcon, tableColumnInsertLeftIcon, tableColumnInsertRightIcon, tableRowDeleteIcon, tableRowInsertAboveIcon, tableRowInsertBelowIcon, underlineIcon, arrowRotateCcwIcon, arrowRotateCwIcon, bordersNoneIcon, alignTopIcon, alignMiddleIcon, alignBottomIcon, textWrapIcon, folderOpenIcon, downloadIcon, customFormatIcon, fontSizeIcon, fontFamilyIcon, cellsMergeHorizontallyIcon, cellsMergeIcon, cellsMergeVerticallyIcon, tableUnmergeIcon, linkIcon, fontGrowIcon, fontShrinkIcon, decimalDecreaseIcon, decimalIncreaseIcon, copyIcon, cutIcon, clipboardIcon, eyeSlashIcon, eyeIcon, exclamationCircleIcon, filterIcon, sortAscIcon, sortDescIcon, sortClearIcon } from '@progress/kendo-svg-icons';
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  export {};
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { InjectionToken } from "@angular/core";
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Component } from '@angular/core';
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Subscription } from 'rxjs';
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { SpreadsheetCommandBaseDirective } from './spreadsheet-command-base';
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Component, ElementRef, EventEmitter, Inject, Output, ViewChild } from "@angular/core";
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Directive, ElementRef, EventEmitter, HostBinding, Input, Output, ViewChild } from "@angular/core";
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Directive } from '@angular/core';
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Directive } from '@angular/core';
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Directive } from '@angular/core';
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Directive } from '@angular/core';
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Directive } from '@angular/core';
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Directive } from '@angular/core';
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  export { SpreadsheetAddColumnLeftButtonDirective } from './add-column-left-button.directive';
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Directive } from '@angular/core';
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Directive } from '@angular/core';
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { EventEmitter, Injectable, NgZone, Output } from '@angular/core';
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Directive } from '@angular/core';
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Directive } from '@angular/core';
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Directive } from '@angular/core';
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { isPresent } from "@progress/kendo-angular-common";
package/esm2022/utils.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  /**
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import * as i0 from '@angular/core';
@@ -47,8 +47,8 @@ const packageMetadata = {
47
47
  productName: 'Kendo UI for Angular',
48
48
  productCode: 'KENDOUIANGULAR',
49
49
  productCodes: ['KENDOUIANGULAR'],
50
- publishDate: 1766136773,
51
- version: '21.4.0-develop.8',
50
+ publishDate: 1768220049,
51
+ version: '21.4.0',
52
52
  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',
53
53
  };
54
54
 
@@ -3452,6 +3452,10 @@ class MessagesDirective extends ComponentMessages {
3452
3452
  * Sets the title for the **Data Validation** tool.
3453
3453
  */
3454
3454
  dataValidation;
3455
+ /**
3456
+ * Sets the title for the **Filter** tool.
3457
+ */
3458
+ filter;
3455
3459
  /**
3456
3460
  * Sets the label text for the Cell Range input in the data validation dialog.
3457
3461
  */
@@ -3985,8 +3989,12 @@ class MessagesDirective extends ComponentMessages {
3985
3989
  * The content of the dialog that warns about sorting incorrect (empty) range.
3986
3990
  */
3987
3991
  cantSortNullRef;
3992
+ /**
3993
+ * The content of the dialog that warns about sorting multiple range selection.
3994
+ */
3995
+ cantSortMultipleSelection;
3988
3996
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MessagesDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
3989
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: MessagesDirective, isStandalone: true, selector: "[kendoSpreadsheetMessages]", inputs: { home: "home", file: "file", insert: "insert", formatTab: "formatTab", dataTab: "dataTab", saveFile: "saveFile", loadFile: "loadFile", bold: "bold", dataValidation: "dataValidation", validationCellRange: "validationCellRange", validationCriteria: "validationCriteria", validationComparer: "validationComparer", validationMinValue: "validationMinValue", validationMaxValue: "validationMaxValue", validationStartValue: "validationStartValue", validationEndValue: "validationEndValue", validationValue: "validationValue", validationShowListButtonCheckbox: "validationShowListButtonCheckbox", validationShowDateButtonCheckbox: "validationShowDateButtonCheckbox", validationIgnoreBlankCheckbox: "validationIgnoreBlankCheckbox", validationOnInvalidData: "validationOnInvalidData", validationRejectInput: "validationRejectInput", validationShowWarning: "validationShowWarning", validationShowHint: "validationShowHint", anyValueValidationCriteria: "anyValueValidationCriteria", numberValidationCriteria: "numberValidationCriteria", textValidationCriteria: "textValidationCriteria", dateValidationCriteria: "dateValidationCriteria", customFormulaValidationCriteria: "customFormulaValidationCriteria", listValidationCriteria: "listValidationCriteria", greaterThanValidationComparer: "greaterThanValidationComparer", lessThanValidationComparer: "lessThanValidationComparer", betweenValidationComparer: "betweenValidationComparer", notBetweenValidationComparer: "notBetweenValidationComparer", equalToValidationComparer: "equalToValidationComparer", notEqualToValidationComparer: "notEqualToValidationComparer", greaterThanOrEqualToValidationComparer: "greaterThanOrEqualToValidationComparer", lessThanOrEqualToValidationComparer: "lessThanOrEqualToValidationComparer", validationHintMessage: "validationHintMessage", validationHintTitle: "validationHintTitle", italic: "italic", underline: "underline", format: "format", fontFamily: "fontFamily", fontSize: "fontSize", undo: "undo", redo: "redo", background: "background", color: "color", gridLines: "gridLines", addColumnLeft: "addColumnLeft", addColumnRight: "addColumnRight", addRowBelow: "addRowBelow", addRowAbove: "addRowAbove", deleteColumn: "deleteColumn", deleteRow: "deleteRow", wrap: "wrap", align: "align", alignHorizontal: "alignHorizontal", alignVertical: "alignVertical", alignLeft: "alignLeft", alignCenter: "alignCenter", alignRight: "alignRight", alignJustify: "alignJustify", alignTop: "alignTop", alignMiddle: "alignMiddle", alignBottom: "alignBottom", dialogApply: "dialogApply", dialogCancel: "dialogCancel", dialogDelete: "dialogDelete", dialogRename: "dialogRename", dialogInsert: "dialogInsert", dialogRemove: "dialogRemove", dialogRemoveLink: "dialogRemoveLink", delete: "delete", rename: "rename", nameBox: "nameBox", formulaInput: "formulaInput", addSheet: "addSheet", sheetsMenu: "sheetsMenu", view: "view", merge: "merge", mergeHorizontally: "mergeHorizontally", mergeVertically: "mergeVertically", mergeAll: "mergeAll", unmerge: "unmerge", insertLink: "insertLink", increaseDecimal: "increaseDecimal", decreaseDecimal: "decreaseDecimal", increaseFontSize: "increaseFontSize", decreaseFontSize: "decreaseFontSize", openUnsupported: "openUnsupported", modifyMerged: "modifyMerged", cannotModifyDisabled: "cannotModifyDisabled", dialogOk: "dialogOk", dialogError: "dialogError", duplicateSheetName: "duplicateSheetName", copy: "copy", cut: "cut", paste: "paste", hideRow: "hideRow", unhideRow: "unhideRow", hideColumn: "hideColumn", unhideColumn: "unhideColumn", sheetDelete: "sheetDelete", sheetRename: "sheetRename", sheetHide: "sheetHide", sheetDuplicate: "sheetDuplicate", sheetMoveLeft: "sheetMoveLeft", sheetMoveRight: "sheetMoveRight", invalidNameError: "invalidNameError", cantSortMixedCells: "cantSortMixedCells", filterApply: "filterApply", filterClear: "filterClear", filterMenuAll: "filterMenuAll", blankValues: "blankValues", filterContainsOperator: "filterContainsOperator", filterNotContainsOperator: "filterNotContainsOperator", filterStartsWithOperator: "filterStartsWithOperator", filterEndsWithOperator: "filterEndsWithOperator", filterMatchesOperator: "filterMatchesOperator", filterNotMatchesOperator: "filterNotMatchesOperator", filterDateEqOperator: "filterDateEqOperator", filterDateNotEqOperator: "filterDateNotEqOperator", filterBeforeOperator: "filterBeforeOperator", filterAfterOperator: "filterAfterOperator", filterEqOperator: "filterEqOperator", filterNotEqOperator: "filterNotEqOperator", filterGteOperator: "filterGteOperator", filterGtOperator: "filterGtOperator", filterLteOperator: "filterLteOperator", filterLtOperator: "filterLtOperator", filterNoneOperator: "filterNoneOperator", filterMenuConditionItem: "filterMenuConditionItem", filterMenuValueItem: "filterMenuValueItem", sort: "sort", sortAsc: "sortAsc", sortDesc: "sortDesc", unsort: "unsort", cantSortNullRef: "cantSortNullRef" }, usesInheritance: true, ngImport: i0 });
3997
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: MessagesDirective, isStandalone: true, selector: "[kendoSpreadsheetMessages]", inputs: { home: "home", file: "file", insert: "insert", formatTab: "formatTab", dataTab: "dataTab", saveFile: "saveFile", loadFile: "loadFile", bold: "bold", dataValidation: "dataValidation", filter: "filter", validationCellRange: "validationCellRange", validationCriteria: "validationCriteria", validationComparer: "validationComparer", validationMinValue: "validationMinValue", validationMaxValue: "validationMaxValue", validationStartValue: "validationStartValue", validationEndValue: "validationEndValue", validationValue: "validationValue", validationShowListButtonCheckbox: "validationShowListButtonCheckbox", validationShowDateButtonCheckbox: "validationShowDateButtonCheckbox", validationIgnoreBlankCheckbox: "validationIgnoreBlankCheckbox", validationOnInvalidData: "validationOnInvalidData", validationRejectInput: "validationRejectInput", validationShowWarning: "validationShowWarning", validationShowHint: "validationShowHint", anyValueValidationCriteria: "anyValueValidationCriteria", numberValidationCriteria: "numberValidationCriteria", textValidationCriteria: "textValidationCriteria", dateValidationCriteria: "dateValidationCriteria", customFormulaValidationCriteria: "customFormulaValidationCriteria", listValidationCriteria: "listValidationCriteria", greaterThanValidationComparer: "greaterThanValidationComparer", lessThanValidationComparer: "lessThanValidationComparer", betweenValidationComparer: "betweenValidationComparer", notBetweenValidationComparer: "notBetweenValidationComparer", equalToValidationComparer: "equalToValidationComparer", notEqualToValidationComparer: "notEqualToValidationComparer", greaterThanOrEqualToValidationComparer: "greaterThanOrEqualToValidationComparer", lessThanOrEqualToValidationComparer: "lessThanOrEqualToValidationComparer", validationHintMessage: "validationHintMessage", validationHintTitle: "validationHintTitle", italic: "italic", underline: "underline", format: "format", fontFamily: "fontFamily", fontSize: "fontSize", undo: "undo", redo: "redo", background: "background", color: "color", gridLines: "gridLines", addColumnLeft: "addColumnLeft", addColumnRight: "addColumnRight", addRowBelow: "addRowBelow", addRowAbove: "addRowAbove", deleteColumn: "deleteColumn", deleteRow: "deleteRow", wrap: "wrap", align: "align", alignHorizontal: "alignHorizontal", alignVertical: "alignVertical", alignLeft: "alignLeft", alignCenter: "alignCenter", alignRight: "alignRight", alignJustify: "alignJustify", alignTop: "alignTop", alignMiddle: "alignMiddle", alignBottom: "alignBottom", dialogApply: "dialogApply", dialogCancel: "dialogCancel", dialogDelete: "dialogDelete", dialogRename: "dialogRename", dialogInsert: "dialogInsert", dialogRemove: "dialogRemove", dialogRemoveLink: "dialogRemoveLink", delete: "delete", rename: "rename", nameBox: "nameBox", formulaInput: "formulaInput", addSheet: "addSheet", sheetsMenu: "sheetsMenu", view: "view", merge: "merge", mergeHorizontally: "mergeHorizontally", mergeVertically: "mergeVertically", mergeAll: "mergeAll", unmerge: "unmerge", insertLink: "insertLink", increaseDecimal: "increaseDecimal", decreaseDecimal: "decreaseDecimal", increaseFontSize: "increaseFontSize", decreaseFontSize: "decreaseFontSize", openUnsupported: "openUnsupported", modifyMerged: "modifyMerged", cannotModifyDisabled: "cannotModifyDisabled", dialogOk: "dialogOk", dialogError: "dialogError", duplicateSheetName: "duplicateSheetName", copy: "copy", cut: "cut", paste: "paste", hideRow: "hideRow", unhideRow: "unhideRow", hideColumn: "hideColumn", unhideColumn: "unhideColumn", sheetDelete: "sheetDelete", sheetRename: "sheetRename", sheetHide: "sheetHide", sheetDuplicate: "sheetDuplicate", sheetMoveLeft: "sheetMoveLeft", sheetMoveRight: "sheetMoveRight", invalidNameError: "invalidNameError", cantSortMixedCells: "cantSortMixedCells", filterApply: "filterApply", filterClear: "filterClear", filterMenuAll: "filterMenuAll", blankValues: "blankValues", filterContainsOperator: "filterContainsOperator", filterNotContainsOperator: "filterNotContainsOperator", filterStartsWithOperator: "filterStartsWithOperator", filterEndsWithOperator: "filterEndsWithOperator", filterMatchesOperator: "filterMatchesOperator", filterNotMatchesOperator: "filterNotMatchesOperator", filterDateEqOperator: "filterDateEqOperator", filterDateNotEqOperator: "filterDateNotEqOperator", filterBeforeOperator: "filterBeforeOperator", filterAfterOperator: "filterAfterOperator", filterEqOperator: "filterEqOperator", filterNotEqOperator: "filterNotEqOperator", filterGteOperator: "filterGteOperator", filterGtOperator: "filterGtOperator", filterLteOperator: "filterLteOperator", filterLtOperator: "filterLtOperator", filterNoneOperator: "filterNoneOperator", filterMenuConditionItem: "filterMenuConditionItem", filterMenuValueItem: "filterMenuValueItem", sort: "sort", sortAsc: "sortAsc", sortDesc: "sortDesc", unsort: "unsort", cantSortNullRef: "cantSortNullRef", cantSortMultipleSelection: "cantSortMultipleSelection" }, usesInheritance: true, ngImport: i0 });
3990
3998
  }
3991
3999
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MessagesDirective, decorators: [{
3992
4000
  type: Directive,
@@ -4012,6 +4020,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
4012
4020
  type: Input
4013
4021
  }], dataValidation: [{
4014
4022
  type: Input
4023
+ }], filter: [{
4024
+ type: Input
4015
4025
  }], validationCellRange: [{
4016
4026
  type: Input
4017
4027
  }], validationCriteria: [{
@@ -4274,6 +4284,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
4274
4284
  type: Input
4275
4285
  }], cantSortNullRef: [{
4276
4286
  type: Input
4287
+ }], cantSortMultipleSelection: [{
4288
+ type: Input
4277
4289
  }] } });
4278
4290
 
4279
4291
  /**
@@ -5102,6 +5114,10 @@ class SpreadsheetFilterDirective extends SpreadsheetCommandButton {
5102
5114
  this.toggleActiveState(button);
5103
5115
  }));
5104
5116
  }
5117
+ ngOnInit() {
5118
+ super.ngOnInit();
5119
+ this.toggleActiveState(this.button);
5120
+ }
5105
5121
  ngOnDestroy() {
5106
5122
  this.subs.unsubscribe();
5107
5123
  }
@@ -5114,8 +5130,18 @@ class SpreadsheetFilterDirective extends SpreadsheetCommandButton {
5114
5130
  this.spreadsheetService.spreadsheet.executeCommand(options);
5115
5131
  }
5116
5132
  toggleActiveState(button, range) {
5117
- const currentSheet = this.spreadsheetService.spreadsheet.activeSheet();
5118
- const currentRange = isPresent(range) ? range : currentSheet.range(currentSheet.activeCell());
5133
+ if (range?._ref?.length > 1 || range?._ref?.refs?.length > 1) {
5134
+ if (!button.disabled) {
5135
+ button.disabled = true;
5136
+ this.cdr.detectChanges();
5137
+ }
5138
+ return;
5139
+ }
5140
+ const currentSheet = this.spreadsheetService.spreadsheet?.activeSheet();
5141
+ if (!currentSheet) {
5142
+ return;
5143
+ }
5144
+ const currentRange = isPresent(range) ? range : currentSheet.selection();
5119
5145
  let disabled = true;
5120
5146
  let rangeHasValue = false;
5121
5147
  currentRange.values().forEach((nestedArr) => {
@@ -5448,9 +5474,14 @@ class SpreadsheetSortDirective {
5448
5474
  return;
5449
5475
  }
5450
5476
  const dir = item.value;
5477
+ const currentFilterOptions = this.spreadsheetService.spreadsheetComponent?.currentFilterOptions;
5478
+ const currentRange = currentFilterOptions?.range;
5479
+ const noHeaderRange = currentRange?.resize({ top: 1 });
5451
5480
  const options = {
5452
5481
  value: dir,
5453
- sheet: false
5482
+ sheet: false,
5483
+ operatingRange: noHeaderRange,
5484
+ column: currentFilterOptions?.column
5454
5485
  };
5455
5486
  this.spreadsheetService.spreadsheet.executeCommand({ command: 'SortCommand', options });
5456
5487
  }
@@ -5687,6 +5718,10 @@ class SpreadsheetComponent {
5687
5718
  get selectedCondition() {
5688
5719
  return this._selectedCondition;
5689
5720
  }
5721
+ /**
5722
+ * @hidden
5723
+ */
5724
+ currentFilterOptions = null;
5690
5725
  _selectedCondition;
5691
5726
  _sheetsInfo;
5692
5727
  _activeSheet;
@@ -5694,7 +5729,6 @@ class SpreadsheetComponent {
5694
5729
  currentRange;
5695
5730
  subs = new Subscription();
5696
5731
  filterMenuOpened = false;
5697
- currentFilterOptions = null;
5698
5732
  popupRef;
5699
5733
  popupPositionChangeSub;
5700
5734
  constructor(ngZone, intl, host, localization, spreadsheetService, toolsService, errorService, dialogService, popupService, container, cdr) {
@@ -6591,14 +6625,19 @@ class SpreadsheetComponent {
6591
6625
  return uniqueValuesSorted;
6592
6626
  }
6593
6627
  removeDuplicateValues(values) {
6594
- const uniqueMap = new Map();
6628
+ const hash = new Map();
6629
+ const result = [];
6595
6630
  for (const item of values) {
6596
- const key = `${item.dataType}:${item.value}`;
6597
- if (!uniqueMap.has(key)) {
6598
- uniqueMap.set(key, item);
6631
+ const existingItem = hash.get(item.value);
6632
+ if (!existingItem) {
6633
+ hash.set(item.value, item);
6634
+ result.push(item);
6635
+ }
6636
+ else if (!existingItem.checked && item.checked) {
6637
+ existingItem.checked = true;
6599
6638
  }
6600
6639
  }
6601
- return Array.from(uniqueMap.values());
6640
+ return result;
6602
6641
  }
6603
6642
  compareFilterValues(a, b) {
6604
6643
  if (a.dataType === b.dataType) {
@@ -6681,6 +6720,8 @@ class SpreadsheetComponent {
6681
6720
  bold="Bold"
6682
6721
  i18n-dataValidation="kendo.spreadsheet.dataValidation|The title of the Data Validation tool."
6683
6722
  dataValidation="Data Validation"
6723
+ i18n-filter="kendo.spreadsheet.filter|The title of the Filter tool."
6724
+ filter="Filter"
6684
6725
  i18n-validationCellRange="kendo.spreadsheet.validationCellRange|The text of the Cell Range label in the data validation dialog."
6685
6726
  validationCellRange="Cell Range"
6686
6727
  i18n-validationCriteria="kendo.spreadsheet.validationCriteria|The text of the Criteria dropdown list label in the data validation dialog."
@@ -6899,6 +6940,8 @@ class SpreadsheetComponent {
6899
6940
  cantSortMixedCells="Cannot sort range containing cells of mixed shapes"
6900
6941
  i18n-cantSortNullRef="kendo.spreadsheet.cantSortNullRef|The content of the dialog that warns about sorting incorrect (empty) range."
6901
6942
  cantSortNullRef="Cannot sort empty selection"
6943
+ i18n-cantSortMultipleSelection="kendo.spreadsheet.cantSortMultipleSelection|The content of the dialog that warns about sorting multiple range selection."
6944
+ cantSortMultipleSelection="Cannot sort multiple selection"
6902
6945
  i18n-filterApply="kendo.spreadsheet.filterApply|The text of the **Apply** button in the filter menu."
6903
6946
  filterApply="Apply"
6904
6947
  i18n-filterClear="kendo.spreadsheet.filterClear|The text of the **Clear** button in the filter menu."
@@ -7208,6 +7251,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
7208
7251
  bold="Bold"
7209
7252
  i18n-dataValidation="kendo.spreadsheet.dataValidation|The title of the Data Validation tool."
7210
7253
  dataValidation="Data Validation"
7254
+ i18n-filter="kendo.spreadsheet.filter|The title of the Filter tool."
7255
+ filter="Filter"
7211
7256
  i18n-validationCellRange="kendo.spreadsheet.validationCellRange|The text of the Cell Range label in the data validation dialog."
7212
7257
  validationCellRange="Cell Range"
7213
7258
  i18n-validationCriteria="kendo.spreadsheet.validationCriteria|The text of the Criteria dropdown list label in the data validation dialog."
@@ -7426,6 +7471,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
7426
7471
  cantSortMixedCells="Cannot sort range containing cells of mixed shapes"
7427
7472
  i18n-cantSortNullRef="kendo.spreadsheet.cantSortNullRef|The content of the dialog that warns about sorting incorrect (empty) range."
7428
7473
  cantSortNullRef="Cannot sort empty selection"
7474
+ i18n-cantSortMultipleSelection="kendo.spreadsheet.cantSortMultipleSelection|The content of the dialog that warns about sorting multiple range selection."
7475
+ cantSortMultipleSelection="Cannot sort multiple selection"
7429
7476
  i18n-filterApply="kendo.spreadsheet.filterApply|The text of the **Apply** button in the filter menu."
7430
7477
  filterApply="Apply"
7431
7478
  i18n-filterClear="kendo.spreadsheet.filterClear|The text of the **Clear** button in the filter menu."
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2025 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { TemplateRef } from '@angular/core';