@progress/kendo-react-grid 11.0.0-develop.2 → 11.0.0-develop.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (272) hide show
  1. package/BasePDFExport.js +8 -0
  2. package/BasePDFExport.mjs +52 -0
  3. package/Grid.js +1 -1
  4. package/Grid.mjs +13 -18
  5. package/GridClientContextReader.js +1 -1
  6. package/GridClientContextReader.mjs +16 -13
  7. package/GridClientWrapper.js +1 -1
  8. package/GridClientWrapper.mjs +459 -449
  9. package/GridComponent.js +1 -1
  10. package/GridComponent.mjs +397 -414
  11. package/GridPdfExportButton.js +8 -0
  12. package/GridPdfExportButton.mjs +35 -0
  13. package/GridSearchBox.js +1 -1
  14. package/GridSearchBox.mjs +1 -1
  15. package/GridToolbar.js +1 -1
  16. package/GridToolbar.mjs +15 -20
  17. package/StatusBar.js +1 -1
  18. package/StatusBar.mjs +23 -23
  19. package/VirtualScroll.js +1 -1
  20. package/VirtualScroll.mjs +65 -107
  21. package/cells/GridDetailHierarchyCell.js +1 -1
  22. package/cells/GridDetailHierarchyCell.mjs +4 -4
  23. package/cells/GridFilterCell.js +1 -1
  24. package/cells/GridFilterCell.mjs +46 -46
  25. package/cells/datacell/GridCell.js +9 -0
  26. package/cells/datacell/GridCell.mjs +23 -0
  27. package/cells/datacell/GridCellServer.js +8 -0
  28. package/cells/datacell/GridCellServer.mjs +27 -0
  29. package/cells/datacell/GridCellServerContainer.js +9 -0
  30. package/cells/datacell/GridCellServerContainer.mjs +26 -0
  31. package/cells/datacell/useCellClientTdProps.js +9 -0
  32. package/cells/datacell/useCellClientTdProps.mjs +30 -0
  33. package/cells/datacell/utils.js +8 -0
  34. package/cells/datacell/utils.mjs +47 -0
  35. package/cells/detailcell/GridDetailCell.js +9 -0
  36. package/cells/detailcell/GridDetailCell.mjs +18 -0
  37. package/cells/detailcell/GridDetailCellServer.js +8 -0
  38. package/cells/detailcell/GridDetailCellServer.mjs +17 -0
  39. package/{codemods/index.js → cells/detailcell/GridDetailCellServerContainer.js} +2 -1
  40. package/cells/detailcell/GridDetailCellServerContainer.mjs +19 -0
  41. package/cells/detailcell/useDetailCellClientTdProps.js +9 -0
  42. package/cells/detailcell/useDetailCellClientTdProps.mjs +20 -0
  43. package/cells/detailcell/utils.js +8 -0
  44. package/cells/detailcell/utils.mjs +20 -0
  45. package/cells/editcell/GridEditCell.js +9 -0
  46. package/cells/editcell/GridEditCell.mjs +20 -0
  47. package/cells/{client → editcell}/GridEditCellEditor.js +1 -1
  48. package/cells/{client → editcell}/GridEditCellEditor.mjs +1 -1
  49. package/cells/editcell/GridEditCellServer.js +8 -0
  50. package/cells/editcell/GridEditCellServer.mjs +32 -0
  51. package/cells/editcell/GridEditCellServerContainer.js +9 -0
  52. package/cells/editcell/GridEditCellServerContainer.mjs +26 -0
  53. package/cells/editcell/useEditCellClientTdProps.js +9 -0
  54. package/cells/editcell/useEditCellClientTdProps.mjs +21 -0
  55. package/cells/editcell/utils.js +8 -0
  56. package/cells/editcell/utils.mjs +29 -0
  57. package/cells/groupcell/GridGroupCell.js +9 -0
  58. package/cells/groupcell/GridGroupCell.mjs +22 -0
  59. package/cells/groupcell/GridGroupCellServer.js +8 -0
  60. package/cells/groupcell/GridGroupCellServer.mjs +44 -0
  61. package/cells/groupcell/GridGroupCellServerContainer.js +9 -0
  62. package/cells/groupcell/GridGroupCellServerContainer.mjs +38 -0
  63. package/cells/{client → groupcell}/GridGroupCellToggle.js +1 -1
  64. package/cells/{client → groupcell}/GridGroupCellToggle.mjs +1 -1
  65. package/cells/groupcell/useGroupCellClientTdProps.js +9 -0
  66. package/cells/groupcell/useGroupCellClientTdProps.mjs +44 -0
  67. package/cells/groupcell/utils.js +8 -0
  68. package/cells/groupcell/utils.mjs +48 -0
  69. package/cells/hierarchycell/GridHierarchyCell.js +9 -0
  70. package/cells/hierarchycell/GridHierarchyCell.mjs +19 -0
  71. package/cells/hierarchycell/GridHierarchyCellServer.js +8 -0
  72. package/cells/hierarchycell/GridHierarchyCellServer.mjs +32 -0
  73. package/cells/hierarchycell/GridHierarchyCellServerContainer.js +9 -0
  74. package/cells/hierarchycell/GridHierarchyCellServerContainer.mjs +26 -0
  75. package/cells/{client → hierarchycell}/GridHierarchyCellToggle.js +1 -1
  76. package/cells/{client → hierarchycell}/GridHierarchyCellToggle.mjs +1 -1
  77. package/cells/hierarchycell/useHierarchyCellClientTdProps.js +9 -0
  78. package/cells/hierarchycell/useHierarchyCellClientTdProps.mjs +32 -0
  79. package/cells/hierarchycell/utils.js +8 -0
  80. package/cells/hierarchycell/utils.mjs +30 -0
  81. package/cells/hooks.js +9 -0
  82. package/cells/hooks.mjs +41 -0
  83. package/cells/rowreordercell/GridRowReorderCell.js +9 -0
  84. package/cells/rowreordercell/GridRowReorderCell.mjs +19 -0
  85. package/cells/rowreordercell/GridRowReorderCellServer.js +8 -0
  86. package/cells/rowreordercell/GridRowReorderCellServer.mjs +18 -0
  87. package/cells/rowreordercell/GridRowReorderCellServerContainer.js +9 -0
  88. package/cells/rowreordercell/GridRowReorderCellServerContainer.mjs +19 -0
  89. package/cells/rowreordercell/useRowReorderCellClientTdProps.js +9 -0
  90. package/cells/rowreordercell/useRowReorderCellClientTdProps.mjs +26 -0
  91. package/cells/rowreordercell/utils.js +8 -0
  92. package/cells/rowreordercell/utils.mjs +30 -0
  93. package/cells/selectioncell/GridSelectionCell.js +9 -0
  94. package/cells/selectioncell/GridSelectionCell.mjs +20 -0
  95. package/cells/{client → selectioncell}/GridSelectionCellInput.js +1 -1
  96. package/cells/{client → selectioncell}/GridSelectionCellInput.mjs +1 -1
  97. package/cells/selectioncell/GridSelectionCellServer.js +8 -0
  98. package/cells/selectioncell/GridSelectionCellServer.mjs +33 -0
  99. package/cells/selectioncell/GridSelectionCellServerContainer.js +9 -0
  100. package/cells/selectioncell/GridSelectionCellServerContainer.mjs +26 -0
  101. package/cells/selectioncell/useSelectionCellClientTdProps.js +9 -0
  102. package/cells/selectioncell/useSelectionCellClientTdProps.mjs +21 -0
  103. package/cells/selectioncell/utils.js +8 -0
  104. package/cells/selectioncell/utils.mjs +25 -0
  105. package/codemods/v11/cell-render.js +9 -0
  106. package/codemods/v11/column-cell.js +9 -0
  107. package/codemods/v11/column-filter-cell.js +9 -0
  108. package/codemods/v11/column-footer-cell.js +9 -0
  109. package/codemods/v11/column-header-cell.js +9 -0
  110. package/codemods/v11/detail-expand-state.js +9 -0
  111. package/codemods/v11/edit-state.js +9 -0
  112. package/codemods/v11/filter-cell-render.js +9 -0
  113. package/codemods/v11/group-expand-state.js +9 -0
  114. package/codemods/v11/header-cell-render.js +9 -0
  115. package/codemods/v11/index.js +9 -0
  116. package/codemods/v11/row-render.js +9 -0
  117. package/codemods/v11/selection-state.js +9 -0
  118. package/codemods/v11/utils.js +9 -0
  119. package/columnMenu/GridColumnMenuCheckboxFilter.js +1 -1
  120. package/columnMenu/GridColumnMenuCheckboxFilter.mjs +84 -84
  121. package/columnMenu/GridColumnMenuColumnsChooser.js +1 -1
  122. package/columnMenu/GridColumnMenuColumnsChooser.mjs +71 -72
  123. package/columnMenu/GridColumnMenuFilter.js +1 -1
  124. package/columnMenu/GridColumnMenuFilter.mjs +83 -84
  125. package/columnMenu/GridColumnMenuFilterCell.js +1 -1
  126. package/columnMenu/GridColumnMenuFilterCell.mjs +35 -28
  127. package/columnMenu/GridColumnMenuFilterUI.js +1 -1
  128. package/columnMenu/GridColumnMenuFilterUI.mjs +1 -1
  129. package/columnMenu/GridColumnMenuItem.js +1 -1
  130. package/columnMenu/GridColumnMenuItem.mjs +9 -9
  131. package/columnMenu/GridColumnMenuWrapper.js +1 -1
  132. package/columnMenu/GridColumnMenuWrapper.mjs +62 -49
  133. package/columnMenu/adaptiveContent/GridAdaptiveCheckboxFilter.js +1 -1
  134. package/columnMenu/adaptiveContent/GridAdaptiveCheckboxFilter.mjs +40 -34
  135. package/columnMenu/adaptiveContent/GridAdaptiveColumnChooser.js +1 -1
  136. package/columnMenu/adaptiveContent/GridAdaptiveColumnChooser.mjs +51 -45
  137. package/columnMenu/adaptiveContent/GridAdaptiveColumnMenu.js +1 -1
  138. package/columnMenu/adaptiveContent/GridAdaptiveColumnMenu.mjs +2 -2
  139. package/columnMenu/adaptiveContent/GridAdaptiveFilterMenu.js +1 -1
  140. package/columnMenu/adaptiveContent/GridAdaptiveFilterMenu.mjs +40 -33
  141. package/components/GridContainerElementContainer.js +1 -1
  142. package/components/GridContainerElementContainer.mjs +1 -1
  143. package/components/GridDragClue.js +1 -1
  144. package/components/GridDragClue.mjs +1 -1
  145. package/components/GridDraggableRowsContainer.js +1 -1
  146. package/components/GridDraggableRowsContainer.mjs +71 -67
  147. package/components/GridDropClue.js +1 -1
  148. package/components/GridDropClue.mjs +1 -1
  149. package/components/GridEditDialog.js +1 -1
  150. package/components/GridEditDialog.mjs +1 -1
  151. package/components/GridElementContainer.js +1 -1
  152. package/components/GridElementContainer.mjs +1 -1
  153. package/components/PagerContainer.js +1 -1
  154. package/components/PagerContainer.mjs +1 -1
  155. package/components/VirtualScrollHeightContainer.js +1 -1
  156. package/components/VirtualScrollHeightContainer.mjs +4 -4
  157. package/components/colGroup/GridColGroup.js +1 -1
  158. package/components/colGroup/GridColGroup.mjs +1 -1
  159. package/components/noRecords/GridNoRecordsContainer.js +1 -1
  160. package/components/noRecords/GridNoRecordsContainer.mjs +1 -1
  161. package/components/table/GridTable.js +1 -1
  162. package/components/table/GridTable.mjs +1 -1
  163. package/components/table/GridTableBody.js +1 -1
  164. package/components/table/GridTableBody.mjs +1 -1
  165. package/components/table/GridTableScrollable.js +1 -1
  166. package/components/table/GridTableScrollable.mjs +16 -15
  167. package/components/utils.js +1 -1
  168. package/components/utils.mjs +9 -10
  169. package/dist/cdn/js/kendo-react-grid.js +1 -1
  170. package/footer/Footer.js +1 -1
  171. package/footer/Footer.mjs +1 -1
  172. package/footer/FooterCell.js +1 -1
  173. package/footer/FooterCell.mjs +14 -14
  174. package/footer/client/FooterCellContainer.js +1 -1
  175. package/footer/client/FooterCellContainer.mjs +1 -1
  176. package/header/FilterRow.js +1 -1
  177. package/header/FilterRow.mjs +42 -46
  178. package/header/GridHeaderCell.js +1 -1
  179. package/header/GridHeaderCell.mjs +11 -11
  180. package/header/GridHeaderSelectionCell.js +1 -1
  181. package/header/GridHeaderSelectionCell.mjs +14 -14
  182. package/header/GroupPanel.js +1 -1
  183. package/header/GroupPanel.mjs +1 -1
  184. package/header/Header.js +1 -1
  185. package/header/Header.mjs +1 -1
  186. package/header/HeaderRow.js +1 -1
  187. package/header/HeaderRow.mjs +19 -20
  188. package/header/client/GridFilterCellContainer.js +1 -1
  189. package/header/client/GridFilterCellContainer.mjs +11 -12
  190. package/header/client/GridFilterCellElementContainer.js +1 -1
  191. package/header/client/GridFilterCellElementContainer.mjs +1 -1
  192. package/header/client/GridHeaderCellContainer.js +1 -1
  193. package/header/client/GridHeaderCellContainer.mjs +7 -8
  194. package/header/client/GridHeaderCellElementContainer.js +1 -1
  195. package/header/client/GridHeaderCellElementContainer.mjs +1 -1
  196. package/header/client/GridHeaderRowContainer.js +1 -1
  197. package/header/client/GridHeaderRowContainer.mjs +1 -1
  198. package/header/client/HeaderCellResizer.js +1 -1
  199. package/header/client/HeaderCellResizer.mjs +1 -1
  200. package/header/client/HeaderRowDraggable.js +1 -1
  201. package/header/client/HeaderRowDraggable.mjs +1 -1
  202. package/index.d.mts +334 -193
  203. package/index.d.ts +334 -193
  204. package/index.js +1 -1
  205. package/index.mjs +82 -72
  206. package/messages/index.js +1 -1
  207. package/messages/index.mjs +94 -76
  208. package/package-metadata.js +1 -1
  209. package/package-metadata.mjs +2 -2
  210. package/package.json +77 -21
  211. package/paging/GridPagerSettings.js +1 -1
  212. package/paging/GridPagerSettings.mjs +17 -13
  213. package/rows/GridRow.js +1 -1
  214. package/rows/GridRow.mjs +32 -33
  215. package/toolbar-tools/GridToolbarCheckboxFilter.js +8 -0
  216. package/toolbar-tools/GridToolbarCheckboxFilter.mjs +312 -0
  217. package/toolbar-tools/GridToolbarColumnsChooser.js +8 -0
  218. package/toolbar-tools/GridToolbarColumnsChooser.mjs +178 -0
  219. package/toolbar-tools/GridToolbarFilter.js +8 -0
  220. package/toolbar-tools/GridToolbarFilter.mjs +281 -0
  221. package/toolbar-tools/GridToolbarSort.js +8 -0
  222. package/toolbar-tools/GridToolbarSort.mjs +146 -0
  223. package/toolbar-tools/adaptiveContent/GridAdaptiveToolbarCheckboxFilter.js +9 -0
  224. package/toolbar-tools/adaptiveContent/GridAdaptiveToolbarCheckboxFilter.mjs +114 -0
  225. package/toolbar-tools/adaptiveContent/GridAdaptiveToolbarColumnChooser.js +9 -0
  226. package/toolbar-tools/adaptiveContent/GridAdaptiveToolbarColumnChooser.mjs +89 -0
  227. package/toolbar-tools/adaptiveContent/GridAdaptiveToolbarFilter.js +9 -0
  228. package/toolbar-tools/adaptiveContent/GridAdaptiveToolbarFilter.mjs +98 -0
  229. package/toolbar-tools/adaptiveContent/GridAdaptiveToolbarSort.js +9 -0
  230. package/toolbar-tools/adaptiveContent/GridAdaptiveToolbarSort.mjs +68 -0
  231. package/toolbar-tools/adaptiveContext/GridToolbarAdaptiveContext.js +9 -0
  232. package/toolbar-tools/adaptiveContext/GridToolbarAdaptiveContext.mjs +17 -0
  233. package/utils/GridContext.js +9 -0
  234. package/utils/GridContext.mjs +13 -0
  235. package/utils/index.js +1 -1
  236. package/utils/index.mjs +162 -157
  237. package/utils/premium.js +1 -1
  238. package/utils/premium.mjs +18 -22
  239. package/utils/virtualColumns.js +1 -1
  240. package/utils/virtualColumns.mjs +13 -7
  241. package/VirtualScrollFixed.js +0 -8
  242. package/VirtualScrollFixed.mjs +0 -52
  243. package/cells/GridCell.js +0 -8
  244. package/cells/GridCell.mjs +0 -52
  245. package/cells/GridDetailCell.js +0 -8
  246. package/cells/GridDetailCell.mjs +0 -26
  247. package/cells/GridEditCell.js +0 -8
  248. package/cells/GridEditCell.mjs +0 -35
  249. package/cells/GridGroupCell.js +0 -8
  250. package/cells/GridGroupCell.mjs +0 -74
  251. package/cells/GridHierarchyCell.js +0 -8
  252. package/cells/GridHierarchyCell.mjs +0 -33
  253. package/cells/GridRowReorderCell.js +0 -8
  254. package/cells/GridRowReorderCell.mjs +0 -42
  255. package/cells/GridSelectionCell.js +0 -8
  256. package/cells/GridSelectionCell.mjs +0 -30
  257. package/cells/client/DetailCellContainer.js +0 -9
  258. package/cells/client/DetailCellContainer.mjs +0 -27
  259. package/cells/client/GridCellContainer.js +0 -9
  260. package/cells/client/GridCellContainer.mjs +0 -69
  261. package/cells/client/GridEditCellContainer.js +0 -9
  262. package/cells/client/GridEditCellContainer.mjs +0 -61
  263. package/cells/client/GridGroupCellContainer.js +0 -9
  264. package/cells/client/GridGroupCellContainer.mjs +0 -88
  265. package/cells/client/GridHierarchyCellContainer.js +0 -9
  266. package/cells/client/GridHierarchyCellContainer.mjs +0 -64
  267. package/cells/client/GridRowReorderContainer.js +0 -9
  268. package/cells/client/GridRowReorderContainer.mjs +0 -31
  269. package/cells/client/GridSelectionCellContainer.js +0 -9
  270. package/cells/client/GridSelectionCellContainer.mjs +0 -61
  271. package/components/GridCustomCellClientContainer.js +0 -9
  272. package/components/GridCustomCellClientContainer.mjs +0 -34
@@ -0,0 +1,178 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2025 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ import * as t from "react";
9
+ import oe from "react-dom";
10
+ import { Button as w } from "@progress/kendo-react-buttons";
11
+ import { useDocument as ne, useAsyncFocusBlur as le, IconWrap as re, classNames as ae, getActiveElement as ce } from "@progress/kendo-react-common";
12
+ import { TextBox as se, InputPrefix as ie, Checkbox as K } from "@progress/kendo-react-inputs";
13
+ import { searchIcon as ue, columnsIcon as me } from "@progress/kendo-svg-icons";
14
+ import { GridColumnMenuItemContent as de } from "../columnMenu/GridColumnMenuItemContent.mjs";
15
+ import { filterSelectAll as j, messages as u, columnMenuColumnChooserSelectedItems as V, filterApplyButton as H, filterResetButton as W, toolbarColumnsChooser as h } from "../messages/index.mjs";
16
+ import { GridContext as ge } from "../utils/GridContext.mjs";
17
+ import { useLocalization as fe } from "@progress/kendo-react-intl";
18
+ import { GridAdaptiveToolbarColumnChooser as he } from "./adaptiveContent/GridAdaptiveToolbarColumnChooser.mjs";
19
+ import { Popup as Ce } from "@progress/kendo-react-popup";
20
+ import { BadgeContainer as be, Badge as ke } from "@progress/kendo-react-indicators";
21
+ import { GridToolbarAdaptiveProvider as pe } from "./adaptiveContext/GridToolbarAdaptiveContext.mjs";
22
+ const Ee = (n) => {
23
+ var F, G;
24
+ const a = t.useContext(ge), l = a.columnsState, C = a.onColumnsStateChange, [b, f] = t.useState(!1), [m, _] = t.useState(""), [q, k] = t.useState(!1), y = l.reduce((e, o) => ({ ...e, [o.id || ""]: !o.hidden }), {}), [r, p] = t.useState(y), s = t.useRef(null), E = t.useRef(null), B = t.useRef(null), M = t.useRef(0), i = fe(), J = ne(s), D = t.useMemo(
25
+ () => (l == null ? void 0 : l.filter(
26
+ (e) => {
27
+ var o;
28
+ return (o = e.title || e.field) == null ? void 0 : o.toLowerCase().includes(m.toLowerCase());
29
+ }
30
+ )) || [],
31
+ [l, m]
32
+ ), d = t.useMemo(
33
+ () => Object.values(r).filter((e) => e).length,
34
+ [r]
35
+ ), g = t.useMemo(() => d === (l == null ? void 0 : l.length), [l, d]), N = t.useCallback(
36
+ (e) => {
37
+ var O;
38
+ e.preventDefault();
39
+ const c = ((v) => (v == null ? void 0 : v.map((P) => ({
40
+ ...P,
41
+ hidden: !r[P.id || ""]
42
+ }))) || [])(l);
43
+ C && C(c), (O = n.onCloseMenu) == null || O.call(void 0), f(!1);
44
+ },
45
+ [l, C, n.onCloseMenu, r]
46
+ ), A = (e) => {
47
+ e.preventDefault(), p(y), k(!1);
48
+ }, x = t.useCallback(() => {
49
+ const e = { ...r };
50
+ Object.keys(e).forEach(
51
+ (o, c) => e[o] = g && c === 0 ? !0 : !g
52
+ ), p(e), k(!0);
53
+ }, [r, g]), T = t.useCallback(
54
+ (e, o) => {
55
+ const c = { ...r };
56
+ c[o || ""] = e, p(c), k(!0);
57
+ },
58
+ [r]
59
+ ), I = (e) => {
60
+ _(String(e.target.value));
61
+ }, Q = (e) => {
62
+ e.preventDefault(), f(!b);
63
+ }, S = t.useMemo(() => n.show !== void 0 ? n.show : b, [n.show, b]), L = () => {
64
+ var e;
65
+ n.onCloseMenu && n.onCloseMenu(), f(!1), s.current && ((e = s.current.element) == null || e.focus());
66
+ }, U = (e) => {
67
+ const o = ce(document);
68
+ clearTimeout(M.current), M.current = window.setTimeout(() => {
69
+ !a.mobileMode && o && e.relatedTarget !== s.current && E.current && !E.current.contains(o) && L();
70
+ });
71
+ }, X = () => {
72
+ clearTimeout(M.current);
73
+ }, { onFocus: Y, onBlur: Z } = le({
74
+ onFocus: (e) => X(),
75
+ onBlur: (e) => U(e)
76
+ }), $ = (e) => {
77
+ var o;
78
+ (o = B.current) == null || o.triggerMouseEvent(e);
79
+ }, ee = (e) => {
80
+ var o;
81
+ (o = B.current) == null || o.triggerKeyboardEvent(e);
82
+ }, te = (e) => {
83
+ !e.isAnchorClicked && f(!1);
84
+ }, R = /* @__PURE__ */ t.createElement(de, { show: !0 }, /* @__PURE__ */ t.createElement("form", { onSubmit: N, onReset: A, className: "k-filter-menu" }, /* @__PURE__ */ t.createElement("div", { className: "k-filter-menu-container" }, /* @__PURE__ */ t.createElement(
85
+ se,
86
+ {
87
+ className: "k-searchbox",
88
+ value: m,
89
+ onChange: I,
90
+ size: a.mobileMode ? "large" : "medium",
91
+ prefix: () => /* @__PURE__ */ t.createElement(ie, null, /* @__PURE__ */ t.createElement(re, { name: "search", icon: ue }))
92
+ }
93
+ ), /* @__PURE__ */ t.createElement("ul", { className: "k-reset k-multicheck-wrap" }, !m && /* @__PURE__ */ t.createElement("li", { className: "k-item k-check-all-wrap" }, /* @__PURE__ */ t.createElement(
94
+ K,
95
+ {
96
+ checked: g,
97
+ onChange: x,
98
+ label: i.toLanguageString(j, u[j]),
99
+ size: a.mobileMode ? "large" : "medium"
100
+ }
101
+ )), D.map((e) => /* @__PURE__ */ t.createElement("li", { key: e.id, className: "k-item" }, /* @__PURE__ */ t.createElement(
102
+ K,
103
+ {
104
+ disabled: r[e.id || ""] && d === 1,
105
+ checked: r[e.id || ""],
106
+ onChange: (o) => {
107
+ var c;
108
+ return T(!!((c = o.target.element) != null && c.checked), e.id);
109
+ },
110
+ label: e.title || e.field,
111
+ size: a.mobileMode ? "large" : "medium"
112
+ }
113
+ )))), /* @__PURE__ */ t.createElement("div", { className: "k-filter-selected-items" }, d, " ", i.toLanguageString(
114
+ V,
115
+ u[V]
116
+ )), /* @__PURE__ */ t.createElement("div", { className: "k-actions k-actions-start k-actions-horizontal" }, /* @__PURE__ */ t.createElement(w, { type: "submit", themeColor: "primary" }, i.toLanguageString(H, u[H])), /* @__PURE__ */ t.createElement(w, { type: "reset" }, i.toLanguageString(W, u[W])))))), z = /* @__PURE__ */ t.createElement(
117
+ w,
118
+ {
119
+ ref: s,
120
+ togglable: !0,
121
+ selected: S,
122
+ svgIcon: n.svgIcon ? n.svgIcon : n.icon ? void 0 : me,
123
+ icon: n.icon,
124
+ size: a.mobileMode ? "large" : "medium",
125
+ className: ae("k-toolbar-button", {
126
+ "k-icon-button": a.mobileMode
127
+ }),
128
+ title: i.toLanguageString(h, u[h]),
129
+ onClick: Q
130
+ },
131
+ !a.mobileMode && i.toLanguageString(h, u[h])
132
+ );
133
+ return /* @__PURE__ */ t.createElement(t.Fragment, null, q ? /* @__PURE__ */ t.createElement(be, null, z, /* @__PURE__ */ t.createElement(ke, { themeColor: "primary" })) : z, a.mobileMode ? /* @__PURE__ */ t.createElement(pe, null, oe.createPortal(
134
+ /* @__PURE__ */ t.createElement(
135
+ he,
136
+ {
137
+ computedShow: S,
138
+ filter: m,
139
+ filtered: D,
140
+ selectedColumns: r,
141
+ allSelected: g,
142
+ checkedCount: d,
143
+ onClose: L,
144
+ onApply: N,
145
+ onReset: A,
146
+ onFilter: I,
147
+ onCheckChange: T,
148
+ onSelectAll: x
149
+ },
150
+ R
151
+ ),
152
+ (F = J()) == null ? void 0 : F.body
153
+ )) : /* @__PURE__ */ t.createElement(
154
+ Ce,
155
+ {
156
+ anchor: (G = s.current) == null ? void 0 : G.element,
157
+ show: S,
158
+ popupClass: "k-grid-columnmenu-popup",
159
+ onMouseDownOutside: te
160
+ },
161
+ /* @__PURE__ */ t.createElement(
162
+ "div",
163
+ {
164
+ ref: E,
165
+ onBlur: Z,
166
+ onFocus: Y,
167
+ onMouseDown: $,
168
+ onKeyDown: ee,
169
+ className: "k-column-menu k-column-menu-md"
170
+ },
171
+ R
172
+ )
173
+ ));
174
+ };
175
+ Ee.displayName = "KendoReactGridToolbarColumnsChooser";
176
+ export {
177
+ Ee as GridToolbarColumnsChooser
178
+ };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2025 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const qe=require("react"),Oe=require("react-dom"),b=require("@progress/kendo-react-common"),Ae=require("../columnMenu/GridColumnMenuItem.js"),Pe=require("../columnMenu/GridColumnMenuItemContent.js"),Ne=require("../columnMenu/GridColumnMenuItemGroup.js"),Le=require("../utils/GridContext.js"),L=require("@progress/kendo-svg-icons"),f=require("../filterCommon.js"),I=require("@progress/kendo-react-buttons"),Ue=require("../columnMenu/GridColumnMenuFilterUI.js"),u=require("../messages/index.js"),Ve=require("@progress/kendo-react-intl"),C=require("../columnMenu/GridColumnMenuFilter.js"),_e=require("@progress/kendo-react-popup"),de=require("@progress/kendo-react-indicators"),je=require("./adaptiveContext/GridToolbarAdaptiveContext.js"),ze=require("./adaptiveContent/GridAdaptiveToolbarFilter.js");function Ke(i){const l=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(i){for(const m in i)if(m!=="default"){const g=Object.getOwnPropertyDescriptor(i,m);Object.defineProperty(l,m,g.get?g:{enumerable:!0,get:()=>i[m]})}}return l.default=i,Object.freeze(l)}const t=Ke(qe),fe=i=>{var te,re,oe,le,ne,ie,ae;const l=t.useContext(Le.GridContext),m=l.columnsRef;l.filterable;const g=l.defaultFilter,[y,S]=t.useState(!1),[me,E]=t.useState(!1),[F,k]=t.useState((m==null?void 0:m.map(e=>({column:e,expanded:!1})))||[]),[ge,U]=t.useState(!1),h=t.useRef(null),D=t.useRef(null),V=t.useRef(null),B=t.useRef(0),r=t.useRef(null),p=Ve.useLocalization(),pe=b.useDocument(h),_=t.useMemo(()=>(m==null?void 0:m.filter(e=>{var o;return(o=e.title||e.field)==null?void 0:o.toLowerCase()}))||[],[m]);t.useEffect(()=>{g&&E(!0)},[g]);const j=t.useCallback(e=>{const o=g&&g.filters.some(a=>a.field===e.field);return t.createElement(t.Fragment,null,e.title||e.field,o&&t.createElement("span",{className:"k-columnmenu-indicators"},t.createElement(b.SvgIcon,{key:1,icon:L.filterIcon})))},[g]),z=(e,o)=>{k(a=>(r.current=o,a.map(n=>n.column.field===o.field?{...n,expanded:!n.expanded}:{...n,expanded:!1}))),w(K()),U(!ge)},K=()=>{var o,a,n,c,se,ce;let e;if(r!=null&&r.current&&((o=r==null?void 0:r.current)!=null&&o.field)){const Te=f.getFilterType((a=r==null?void 0:r.current)==null?void 0:a.filter),v=f.getDefaultOperator(l.filterOperators,Te);e=C.filterGroupByField((n=r==null?void 0:r.current)==null?void 0:n.field,l.filter),e=e?{...e,filters:e.filters.map(N=>({...N}))}:{logic:"and",filters:[{field:(c=r==null?void 0:r.current)==null?void 0:c.field,operator:v,value:f.IsUnaryFilter(v)?null:void 0},{field:(se=r==null?void 0:r.current)==null?void 0:se.field,operator:v,value:f.IsUnaryFilter(v)?null:void 0}]},e.filters.filter(N=>{var ue;return N.field===((ue=r==null?void 0:r.current)==null?void 0:ue.field)}).length===1&&e.filters.splice(1,0,{field:(ce=r==null?void 0:r.current)==null?void 0:ce.field,operator:v})}return e},Fe=e=>{H(0,e)},he=e=>{H(1,e)},H=(e,o)=>{const a=d.filters.map((n,c)=>c===e?{...n,value:o.value||"",operator:o.operator||G[c].operator}:n);w({...d,filters:a})},[d,w]=t.useState(K()),s=d==null?void 0:d.filters,M=f.getFilterType((te=r==null?void 0:r.current)==null?void 0:te.filter),G=f.operatorMap(l.filterOperators[M],p),J=f.operatorMap(f.booleanFilterValues,p),ve={field:(re=r==null?void 0:r.current)==null?void 0:re.field,value:s==null?void 0:s[0].value,operator:s==null?void 0:s[0].operator,operators:G,booleanValues:J,onChange:Fe,filterType:M},be={field:(oe=r==null?void 0:r.current)==null?void 0:oe.field,value:s==null?void 0:s[1].value,operator:s==null?void 0:s[1].operator,operators:G,booleanValues:J,onChange:he,filterType:M},Ce=e=>{let o=e.target.value;e.target.tagName==="SPAN"&&(o=e.target.parentElement.value),w({...d,logic:o})},Q=d==null?void 0:d.logic,W=f.operatorMap(f.filterLogicList,p),T={value:W.find(e=>e.operator===(Q===null?"":Q)),onChange:Ce,data:W},Ee=i.hideSecondFilter!==void 0?i.hideSecondFilter:f.defaultHideSecondFilter[M],q=i.filterUI,O={firstFilterProps:ve,secondFilterProps:be,logicData:T.data,logicValue:T.value,onLogicChange:T.onChange,hideSecondFilter:Ee},X=()=>({...d,filters:d==null?void 0:d.filters.filter(e=>e.value!==void 0&&e.value!==null&&e.value!==""||e.value===null&&e.operator)}),A=((ne=(le=X())==null?void 0:le.filters)==null?void 0:ne.length)!==0||f.IsUnaryFilter(s==null?void 0:s[0].operator)||f.IsUnaryFilter(s==null?void 0:s[1].operator),Y=e=>{if(e.preventDefault(),!l.filterChange)return;const o=C.rootFilterOrDefault(l.filter),a={...o,filters:o.filters.filter(n=>{var c;return n.field!==((c=r==null?void 0:r.current)==null?void 0:c.field)})};A&&a.filters.push(X()),l.filterChange(a,e),E(!0),k(n=>n.map(c=>({...c,expanded:!1})))},Z=e=>{if(e.preventDefault(),!l.filterChange)return;const o=C.rootFilterOrDefault(l.filter),a=o.filters.filter(n=>{var c;return n.field!==((c=r==null?void 0:r.current)==null?void 0:c.field)});a.length===0?l.filterChange(null,e):l.filterChange({...o,filters:a},e),i.onCloseMenu&&i.onCloseMenu(),E(!1),k(n=>n.map(c=>({...c,expanded:!1})))},ke=()=>{U(!1)},Me=e=>{e.preventDefault(),S(!y)},Ie=e=>{!e.isAnchorClicked&&S(!1)},P=t.useMemo(()=>i.show!==void 0?i.show:y,[i.show,y]),ye=e=>{const o=b.getActiveElement(document);clearTimeout(B.current),B.current=window.setTimeout(()=>{!l.mobileMode&&o&&e.relatedTarget!==h.current&&D.current&&!D.current.contains(o)&&$()})},$=()=>{var e;i.onCloseMenu&&i.onCloseMenu(),S(!1),h.current&&((e=h.current.element)==null||e.focus())},Se=()=>{clearTimeout(B.current)},{onFocus:De,onBlur:Be}=b.useAsyncFocusBlur({onFocus:e=>Se(),onBlur:e=>ye(e)}),we=e=>{var o;(o=V.current)==null||o.triggerMouseEvent(e)},Ge=e=>{var o;(o=V.current)==null||o.triggerKeyboardEvent(e)},x=t.useCallback(e=>{if(e.preventDefault(),!l.filterChange)return;const o=C.rootFilterOrDefault(l.filter),a=o.filters.filter(()=>!1);a.length===0?l.filterChange(null,e):l.filterChange({...o,filters:a},e),E(!1),k(n=>n.map(c=>({...c,expanded:!1})))},[l,C.rootFilterOrDefault]),R=t.createElement(I.Button,{ref:h,togglable:!0,selected:P,svgIcon:i.svgIcon?i.svgIcon:i.icon?void 0:L.filterIcon,icon:i.icon,size:l.mobileMode?"large":"medium",className:b.classNames("k-toolbar-button",{"k-icon-button":l.mobileMode}),title:p.toLanguageString(u.toolbarFilter,u.messages[u.toolbarFilter]),onClick:Me},!l.mobileMode&&p.toLanguageString(u.toolbarFilter,u.messages[u.toolbarFilter])),ee=t.createElement(t.Fragment,null,_.map(e=>{var o,a;return e.filterable&&t.createElement(Ne.GridColumnMenuItemGroup,{key:e.id},t.createElement("div",{className:"k-expander"},t.createElement(Ae.GridColumnMenuItem,{title:j(e),expandable:!0,expanded:!!((o=F==null?void 0:F.find(n=>n.column.field===e.field))!=null&&o.expanded),onClick:n=>z(n,e)})),t.createElement(Pe.GridColumnMenuItemContent,{show:!!((a=F==null?void 0:F.find(n=>n.column.field===e.field))!=null&&a.expanded)},t.createElement("form",{className:"k-filter-menu",onSubmit:Y,onReset:Z},t.createElement("div",{className:"k-filter-menu-container"},q?t.createElement(q,{...O}):t.createElement(Ue.GridColumnMenuFilterUI,{...O}),t.createElement("div",{className:"k-actions k-actions-stretched"},t.createElement(I.Button,{themeColor:"primary",disabled:!A},p.toLanguageString(u.filterSubmitButton,u.messages[u.filterSubmitButton])),t.createElement(I.Button,{type:"reset"},p.toLanguageString(u.filterClearButton,u.messages[u.filterClearButton])))))))}),t.createElement("div",{className:"k-actions k-actions-stretched k-actions-horizontal k-column-menu-footer"},t.createElement(I.Button,{svgIcon:L.filterClearIcon,onClick:x},p.toLanguageString(u.filterClearAllButton,u.messages[u.filterClearAllButton]))));return t.createElement(t.Fragment,null,me?t.createElement(de.BadgeContainer,null,R,t.createElement(de.Badge,{themeColor:"primary"})):R,l.mobileMode?t.createElement(je.GridToolbarAdaptiveProvider,null,Oe.createPortal(t.createElement(ze.GridAdaptiveToolbarFilter,{filtered:_,computedShow:P,expandState:F,FilterUI:q,filterUIProps:O,isFilterValid:A,renderTitle:j,onBackView:ke,clear:Z,submit:Y,onClose:$,onFilterExpand:z,handleClearAllFilters:x},ee),(ie=pe())==null?void 0:ie.body)):t.createElement(_e.Popup,{anchor:(ae=h.current)==null?void 0:ae.element,show:P,popupClass:"k-grid-columnmenu-popup",onMouseDownOutside:Ie},t.createElement("div",{ref:D,onBlur:Be,onFocus:De,onMouseDown:we,onKeyDown:Ge,className:"k-column-menu k-column-menu-md"},ee)))};fe.displayName="KendoReactGridToolbarFilter";exports.GridToolbarFilter=fe;
@@ -0,0 +1,281 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2025 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ import * as t from "react";
9
+ import Ge from "react-dom";
10
+ import { useDocument as Oe, SvgIcon as Ve, useAsyncFocusBlur as Ue, classNames as ze, getActiveElement as Ke } from "@progress/kendo-react-common";
11
+ import { GridColumnMenuItem as _e } from "../columnMenu/GridColumnMenuItem.mjs";
12
+ import { GridColumnMenuItemContent as He } from "../columnMenu/GridColumnMenuItemContent.mjs";
13
+ import { GridColumnMenuItemGroup as je } from "../columnMenu/GridColumnMenuItemGroup.mjs";
14
+ import { GridContext as qe } from "../utils/GridContext.mjs";
15
+ import { filterIcon as fe, filterClearIcon as Je } from "@progress/kendo-svg-icons";
16
+ import { getFilterType as me, operatorMap as V, defaultHideSecondFilter as Qe, IsUnaryFilter as C, getDefaultOperator as We, booleanFilterValues as Xe, filterLogicList as Ye } from "../filterCommon.mjs";
17
+ import { Button as k } from "@progress/kendo-react-buttons";
18
+ import { GridColumnMenuFilterUI as Ze } from "../columnMenu/GridColumnMenuFilterUI.mjs";
19
+ import { toolbarFilter as M, messages as v, filterSubmitButton as de, filterClearButton as ge, filterClearAllButton as pe } from "../messages/index.mjs";
20
+ import { useLocalization as $e } from "@progress/kendo-react-intl";
21
+ import { rootFilterOrDefault as w, filterGroupByField as xe } from "../columnMenu/GridColumnMenuFilter.mjs";
22
+ import { Popup as Re } from "@progress/kendo-react-popup";
23
+ import { BadgeContainer as et, Badge as tt } from "@progress/kendo-react-indicators";
24
+ import { GridToolbarAdaptiveProvider as rt } from "./adaptiveContext/GridToolbarAdaptiveContext.mjs";
25
+ import { GridAdaptiveToolbarFilter as ot } from "./adaptiveContent/GridAdaptiveToolbarFilter.mjs";
26
+ const lt = (c) => {
27
+ var te, re, oe, le, ne, ie, ae;
28
+ const n = t.useContext(qe), m = n.columnsRef;
29
+ n.filterable;
30
+ const p = n.defaultFilter, [S, D] = t.useState(!1), [he, F] = t.useState(!1), [d, E] = t.useState(
31
+ (m == null ? void 0 : m.map((e) => ({ column: e, expanded: !1 }))) || []
32
+ ), [ve, U] = t.useState(!1), g = t.useRef(null), y = t.useRef(null), z = t.useRef(null), I = t.useRef(0), r = t.useRef(null), f = $e(), Fe = Oe(g), K = t.useMemo(
33
+ () => (m == null ? void 0 : m.filter((e) => {
34
+ var o;
35
+ return (o = e.title || e.field) == null ? void 0 : o.toLowerCase();
36
+ })) || [],
37
+ [m]
38
+ );
39
+ t.useEffect(() => {
40
+ p && F(!0);
41
+ }, [p]);
42
+ const _ = t.useCallback(
43
+ (e) => {
44
+ const o = p && p.filters.some((i) => i.field === e.field);
45
+ return /* @__PURE__ */ t.createElement(t.Fragment, null, e.title || e.field, o && /* @__PURE__ */ t.createElement("span", { className: "k-columnmenu-indicators" }, /* @__PURE__ */ t.createElement(Ve, { key: 1, icon: fe })));
46
+ },
47
+ [p]
48
+ ), H = (e, o) => {
49
+ E((i) => (r.current = o, i.map((l) => l.column.field === o.field ? { ...l, expanded: !l.expanded } : { ...l, expanded: !1 }))), B(j()), U(!ve);
50
+ }, j = () => {
51
+ var o, i, l, s, se, ce;
52
+ let e;
53
+ if (r != null && r.current && ((o = r == null ? void 0 : r.current) != null && o.field)) {
54
+ const Pe = me((i = r == null ? void 0 : r.current) == null ? void 0 : i.filter), h = We(n.filterOperators, Pe);
55
+ e = xe((l = r == null ? void 0 : r.current) == null ? void 0 : l.field, n.filter), e = e ? {
56
+ ...e,
57
+ filters: e.filters.map((O) => ({ ...O }))
58
+ } : {
59
+ logic: "and",
60
+ filters: [
61
+ {
62
+ field: (s = r == null ? void 0 : r.current) == null ? void 0 : s.field,
63
+ operator: h,
64
+ value: C(h) ? null : void 0
65
+ },
66
+ {
67
+ field: (se = r == null ? void 0 : r.current) == null ? void 0 : se.field,
68
+ operator: h,
69
+ value: C(h) ? null : void 0
70
+ }
71
+ ]
72
+ }, e.filters.filter((O) => {
73
+ var ue;
74
+ return O.field === ((ue = r == null ? void 0 : r.current) == null ? void 0 : ue.field);
75
+ }).length === 1 && e.filters.splice(1, 0, {
76
+ field: (ce = r == null ? void 0 : r.current) == null ? void 0 : ce.field,
77
+ operator: h
78
+ });
79
+ }
80
+ return e;
81
+ }, Ee = (e) => {
82
+ q(0, e);
83
+ }, be = (e) => {
84
+ q(1, e);
85
+ }, q = (e, o) => {
86
+ const i = u.filters.map((l, s) => s === e ? {
87
+ ...l,
88
+ value: o.value || "",
89
+ operator: o.operator || A[s].operator
90
+ } : l);
91
+ B({
92
+ ...u,
93
+ filters: i
94
+ });
95
+ }, [u, B] = t.useState(j()), a = u == null ? void 0 : u.filters, b = me((te = r == null ? void 0 : r.current) == null ? void 0 : te.filter), A = V(n.filterOperators[b], f), J = V(Xe, f), Ce = {
96
+ field: (re = r == null ? void 0 : r.current) == null ? void 0 : re.field,
97
+ value: a == null ? void 0 : a[0].value,
98
+ operator: a == null ? void 0 : a[0].operator,
99
+ operators: A,
100
+ booleanValues: J,
101
+ onChange: Ee,
102
+ filterType: b
103
+ }, ke = {
104
+ field: (oe = r == null ? void 0 : r.current) == null ? void 0 : oe.field,
105
+ value: a == null ? void 0 : a[1].value,
106
+ operator: a == null ? void 0 : a[1].operator,
107
+ operators: A,
108
+ booleanValues: J,
109
+ onChange: be,
110
+ filterType: b
111
+ }, Me = (e) => {
112
+ let o = e.target.value;
113
+ e.target.tagName === "SPAN" && (o = e.target.parentElement.value), B({ ...u, logic: o });
114
+ }, Q = u == null ? void 0 : u.logic, W = V(Ye, f), T = {
115
+ value: W.find((e) => e.operator === (Q === null ? "" : Q)),
116
+ onChange: Me,
117
+ data: W
118
+ }, we = c.hideSecondFilter !== void 0 ? c.hideSecondFilter : Qe[b], N = c.filterUI, L = {
119
+ firstFilterProps: Ce,
120
+ secondFilterProps: ke,
121
+ logicData: T.data,
122
+ logicValue: T.value,
123
+ onLogicChange: T.onChange,
124
+ hideSecondFilter: we
125
+ }, X = () => ({
126
+ ...u,
127
+ filters: u == null ? void 0 : u.filters.filter((e) => e.value !== void 0 && e.value !== null && e.value !== "" || e.value === null && e.operator)
128
+ }), P = ((ne = (le = X()) == null ? void 0 : le.filters) == null ? void 0 : ne.length) !== 0 || C(a == null ? void 0 : a[0].operator) || C(a == null ? void 0 : a[1].operator), Y = (e) => {
129
+ if (e.preventDefault(), !n.filterChange)
130
+ return;
131
+ const o = w(n.filter), i = {
132
+ ...o,
133
+ filters: o.filters.filter((l) => {
134
+ var s;
135
+ return l.field !== ((s = r == null ? void 0 : r.current) == null ? void 0 : s.field);
136
+ })
137
+ };
138
+ P && i.filters.push(X()), n.filterChange(i, e), F(!0), E(
139
+ (l) => l.map((s) => ({
140
+ ...s,
141
+ expanded: !1
142
+ }))
143
+ );
144
+ }, Z = (e) => {
145
+ if (e.preventDefault(), !n.filterChange)
146
+ return;
147
+ const o = w(n.filter), i = o.filters.filter((l) => {
148
+ var s;
149
+ return l.field !== ((s = r == null ? void 0 : r.current) == null ? void 0 : s.field);
150
+ });
151
+ i.length === 0 ? n.filterChange(null, e) : n.filterChange({ ...o, filters: i }, e), c.onCloseMenu && c.onCloseMenu(), F(!1), E(
152
+ (l) => l.map((s) => ({
153
+ ...s,
154
+ expanded: !1
155
+ }))
156
+ );
157
+ }, Se = () => {
158
+ U(!1);
159
+ }, De = (e) => {
160
+ e.preventDefault(), D(!S);
161
+ }, ye = (e) => {
162
+ !e.isAnchorClicked && D(!1);
163
+ }, G = t.useMemo(() => c.show !== void 0 ? c.show : S, [c.show, S]), Ie = (e) => {
164
+ const o = Ke(document);
165
+ clearTimeout(I.current), I.current = window.setTimeout(() => {
166
+ !n.mobileMode && o && e.relatedTarget !== g.current && y.current && !y.current.contains(o) && $();
167
+ });
168
+ }, $ = () => {
169
+ var e;
170
+ c.onCloseMenu && c.onCloseMenu(), D(!1), g.current && ((e = g.current.element) == null || e.focus());
171
+ }, Be = () => {
172
+ clearTimeout(I.current);
173
+ }, { onFocus: Ae, onBlur: Te } = Ue({
174
+ onFocus: (e) => Be(),
175
+ onBlur: (e) => Ie(e)
176
+ }), Ne = (e) => {
177
+ var o;
178
+ (o = z.current) == null || o.triggerMouseEvent(e);
179
+ }, Le = (e) => {
180
+ var o;
181
+ (o = z.current) == null || o.triggerKeyboardEvent(e);
182
+ }, x = t.useCallback(
183
+ (e) => {
184
+ if (e.preventDefault(), !n.filterChange)
185
+ return;
186
+ const o = w(n.filter), i = o.filters.filter(() => !1);
187
+ i.length === 0 ? n.filterChange(null, e) : n.filterChange({ ...o, filters: i }, e), F(!1), E(
188
+ (l) => l.map((s) => ({
189
+ ...s,
190
+ expanded: !1
191
+ }))
192
+ );
193
+ },
194
+ [n, w]
195
+ ), R = /* @__PURE__ */ t.createElement(
196
+ k,
197
+ {
198
+ ref: g,
199
+ togglable: !0,
200
+ selected: G,
201
+ svgIcon: c.svgIcon ? c.svgIcon : c.icon ? void 0 : fe,
202
+ icon: c.icon,
203
+ size: n.mobileMode ? "large" : "medium",
204
+ className: ze("k-toolbar-button", {
205
+ "k-icon-button": n.mobileMode
206
+ }),
207
+ title: f.toLanguageString(M, v[M]),
208
+ onClick: De
209
+ },
210
+ !n.mobileMode && f.toLanguageString(M, v[M])
211
+ ), ee = /* @__PURE__ */ t.createElement(t.Fragment, null, K.map((e) => {
212
+ var o, i;
213
+ return e.filterable && /* @__PURE__ */ t.createElement(je, { key: e.id }, /* @__PURE__ */ t.createElement("div", { className: "k-expander" }, /* @__PURE__ */ t.createElement(
214
+ _e,
215
+ {
216
+ title: _(e),
217
+ expandable: !0,
218
+ expanded: !!((o = d == null ? void 0 : d.find((l) => l.column.field === e.field)) != null && o.expanded),
219
+ onClick: (l) => H(l, e)
220
+ }
221
+ )), /* @__PURE__ */ t.createElement(
222
+ He,
223
+ {
224
+ show: !!((i = d == null ? void 0 : d.find((l) => l.column.field === e.field)) != null && i.expanded)
225
+ },
226
+ /* @__PURE__ */ t.createElement("form", { className: "k-filter-menu", onSubmit: Y, onReset: Z }, /* @__PURE__ */ t.createElement("div", { className: "k-filter-menu-container" }, N ? /* @__PURE__ */ t.createElement(N, { ...L }) : /* @__PURE__ */ t.createElement(Ze, { ...L }), /* @__PURE__ */ t.createElement("div", { className: "k-actions k-actions-stretched" }, /* @__PURE__ */ t.createElement(k, { themeColor: "primary", disabled: !P }, f.toLanguageString(
227
+ de,
228
+ v[de]
229
+ )), /* @__PURE__ */ t.createElement(k, { type: "reset" }, f.toLanguageString(
230
+ ge,
231
+ v[ge]
232
+ )))))
233
+ ));
234
+ }), /* @__PURE__ */ t.createElement("div", { className: "k-actions k-actions-stretched k-actions-horizontal k-column-menu-footer" }, /* @__PURE__ */ t.createElement(k, { svgIcon: Je, onClick: x }, f.toLanguageString(pe, v[pe]))));
235
+ return /* @__PURE__ */ t.createElement(t.Fragment, null, he ? /* @__PURE__ */ t.createElement(et, null, R, /* @__PURE__ */ t.createElement(tt, { themeColor: "primary" })) : R, n.mobileMode ? /* @__PURE__ */ t.createElement(rt, null, Ge.createPortal(
236
+ /* @__PURE__ */ t.createElement(
237
+ ot,
238
+ {
239
+ filtered: K,
240
+ computedShow: G,
241
+ expandState: d,
242
+ FilterUI: N,
243
+ filterUIProps: L,
244
+ isFilterValid: P,
245
+ renderTitle: _,
246
+ onBackView: Se,
247
+ clear: Z,
248
+ submit: Y,
249
+ onClose: $,
250
+ onFilterExpand: H,
251
+ handleClearAllFilters: x
252
+ },
253
+ ee
254
+ ),
255
+ (ie = Fe()) == null ? void 0 : ie.body
256
+ )) : /* @__PURE__ */ t.createElement(
257
+ Re,
258
+ {
259
+ anchor: (ae = g.current) == null ? void 0 : ae.element,
260
+ show: G,
261
+ popupClass: "k-grid-columnmenu-popup",
262
+ onMouseDownOutside: ye
263
+ },
264
+ /* @__PURE__ */ t.createElement(
265
+ "div",
266
+ {
267
+ ref: y,
268
+ onBlur: Te,
269
+ onFocus: Ae,
270
+ onMouseDown: Ne,
271
+ onKeyDown: Le,
272
+ className: "k-column-menu k-column-menu-md"
273
+ },
274
+ ee
275
+ )
276
+ ));
277
+ };
278
+ lt.displayName = "KendoReactGridToolbarFilter";
279
+ export {
280
+ lt as GridToolbarFilter
281
+ };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2025 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const J=require("react"),Q=require("react-dom"),U=require("../columnMenu/GridColumnMenuItemGroup.js"),W=require("../columnMenu/GridColumnMenuItem.js"),X=require("../utils/GridContext.js"),R=require("@progress/kendo-react-buttons"),d=require("@progress/kendo-svg-icons"),Y=require("@progress/kendo-react-intl"),a=require("../messages/index.js"),u=require("@progress/kendo-react-common"),x=require("@progress/kendo-react-indicators"),Z=require("@progress/kendo-react-popup"),$=require("./adaptiveContext/GridToolbarAdaptiveContext.js"),ee=require("./adaptiveContent/GridAdaptiveToolbarSort.js");function te(r){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(r){for(const l in r)if(l!=="default"){const i=Object.getOwnPropertyDescriptor(r,l);Object.defineProperty(n,l,i.get?i:{enumerable:!0,get:()=>r[l]})}}return n.default=r,Object.freeze(n)}const e=te(J),A=r=>{var q,B;const n=e.useContext(X.GridContext),l=n.columnsState,i=n.sortable,c=n.sort,h=n.defaultSort,[v,E]=e.useState(!0),[O,m]=e.useState(!1),[g,b]=e.useState(!1),s=e.useRef(null),f=e.useRef(null),M=e.useRef(null),C=e.useRef(0),S=Y.useLocalization(),N=u.useDocument(s);e.useEffect(()=>{h&&(m(!0),E(!1))},[h]);const p=e.useMemo(()=>(l==null?void 0:l.filter(t=>{var o;return(o=t.title||t.field)==null?void 0:o.toLowerCase()}))||[],[l]),w=e.useCallback((t,o)=>{n.headerCellClick(t,o),E(!1),m(!0)},[n]),I=e.useCallback(t=>{n.sortChange([],t),m(!1)},[n]),D=e.useCallback(t=>{const o=c?c.findIndex(H=>H.field===t.field):-1;return e.createElement(e.Fragment,null,t.title||t.field,e.createElement("span",{className:"k-columnmenu-indicators"},o>=0&&[e.createElement(u.SvgIcon,{key:1,icon:c[o].dir==="asc"?d.sortAscSmallIcon:d.sortDescSmallIcon}),c.length>1&&e.createElement("span",{key:2,className:"k-sort-index"},o+1)]))},[c]),P=t=>{t.preventDefault(),b(!g)},k=e.useMemo(()=>r.show!==void 0?r.show:g,[r.show,g]),y=()=>{var t;r.onCloseMenu&&r.onCloseMenu(),b(!1),s.current&&((t=s.current.element)==null||t.focus())},F=t=>{const o=u.getActiveElement(document);clearTimeout(C.current),C.current=window.setTimeout(()=>{!n.mobileMode&&o&&t.relatedTarget!==s.current&&f.current&&!f.current.contains(o)&&y()})},j=()=>{clearTimeout(C.current)},{onFocus:z,onBlur:L}=u.useAsyncFocusBlur({onFocus:t=>j(),onBlur:t=>F(t)}),K=t=>{var o;(o=M.current)==null||o.triggerMouseEvent(t)},_=t=>{var o;(o=M.current)==null||o.triggerKeyboardEvent(t)},V=t=>{!t.isAnchorClicked&&b(!1)},G=e.createElement(e.Fragment,null,e.createElement(U.GridColumnMenuItemGroup,null,p.map(t=>e.createElement(W.GridColumnMenuItem,{key:t.id,title:D(t),onClick:o=>w(o,t)}))),e.createElement("div",{className:"k-actions k-actions-stretched k-actions-horizontal k-column-menu-footer"},e.createElement(R.Button,{svgIcon:d.xIcon,onClick:I,disabled:v},S.toLanguageString(a.sortClearButton,a.messages[a.sortClearButton])))),T=e.createElement(R.Button,{ref:s,togglable:!0,selected:k,svgIcon:r.svgIcon?r.svgIcon:r.icon?void 0:d.arrowsSwapIcon,icon:r.icon,size:n.mobileMode?"large":"medium",className:u.classNames("k-toolbar-button",{"k-icon-button":n.mobileMode}),title:S.toLanguageString(a.toolbarSort,a.messages[a.toolbarSort]),onClick:P},!n.mobileMode&&S.toLanguageString(a.toolbarSort,a.messages[a.toolbarSort]));return i&&e.createElement(e.Fragment,null,O?e.createElement(x.BadgeContainer,null,T,e.createElement(x.Badge,{themeColor:"primary"})):T,n.mobileMode?e.createElement($.GridToolbarAdaptiveProvider,null,Q.createPortal(e.createElement(ee.GridAdaptiveToolbarSort,{filtered:p,computedShow:k,isDisabledButton:v,renderTitle:D,onClose:y,onClear:I,handleSorting:w},G),(q=N())==null?void 0:q.body)):e.createElement(Z.Popup,{anchor:(B=s.current)==null?void 0:B.element,show:k,popupClass:"k-grid-columnmenu-popup",onMouseDownOutside:V},e.createElement("div",{ref:f,onBlur:L,onFocus:z,onMouseDown:K,onKeyDown:_,className:"k-column-menu k-column-menu-md"},G)))};A.displayName="KendoReactGridToolbarSort";exports.GridToolbarSort=A;
@@ -0,0 +1,146 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2025 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ import * as e from "react";
9
+ import j from "react-dom";
10
+ import { GridColumnMenuItemGroup as q } from "../columnMenu/GridColumnMenuItemGroup.mjs";
11
+ import { GridColumnMenuItem as J } from "../columnMenu/GridColumnMenuItem.mjs";
12
+ import { GridContext as Q } from "../utils/GridContext.mjs";
13
+ import { Button as x } from "@progress/kendo-react-buttons";
14
+ import { sortAscSmallIcon as U, sortDescSmallIcon as W, xIcon as X, arrowsSwapIcon as Y } from "@progress/kendo-svg-icons";
15
+ import { useLocalization as Z } from "@progress/kendo-react-intl";
16
+ import { sortClearButton as A, messages as b, toolbarSort as c } from "../messages/index.mjs";
17
+ import { useDocument as $, SvgIcon as ee, useAsyncFocusBlur as te, classNames as oe, getActiveElement as ne } from "@progress/kendo-react-common";
18
+ import { BadgeContainer as re, Badge as le } from "@progress/kendo-react-indicators";
19
+ import { Popup as ae } from "@progress/kendo-react-popup";
20
+ import { GridToolbarAdaptiveProvider as se } from "./adaptiveContext/GridToolbarAdaptiveContext.mjs";
21
+ import { GridAdaptiveToolbarSort as ce } from "./adaptiveContent/GridAdaptiveToolbarSort.mjs";
22
+ const ie = (r) => {
23
+ var y, T;
24
+ const n = e.useContext(Q), s = n.columnsState, G = n.sortable, a = n.sort, h = n.defaultSort, [p, k] = e.useState(!0), [F, i] = e.useState(!1), [u, m] = e.useState(!1), l = e.useRef(null), d = e.useRef(null), E = e.useRef(null), f = e.useRef(0), g = Z(), N = $(l);
25
+ e.useEffect(() => {
26
+ h && (i(!0), k(!1));
27
+ }, [h]);
28
+ const S = e.useMemo(
29
+ () => (s == null ? void 0 : s.filter((t) => {
30
+ var o;
31
+ return (o = t.title || t.field) == null ? void 0 : o.toLowerCase();
32
+ })) || [],
33
+ [s]
34
+ ), v = e.useCallback(
35
+ (t, o) => {
36
+ n.headerCellClick(t, o), k(!1), i(!0);
37
+ },
38
+ [n]
39
+ ), w = e.useCallback(
40
+ (t) => {
41
+ n.sortChange([], t), i(!1);
42
+ },
43
+ [n]
44
+ ), M = e.useCallback(
45
+ (t) => {
46
+ const o = a ? a.findIndex((_) => _.field === t.field) : -1;
47
+ return /* @__PURE__ */ e.createElement(e.Fragment, null, t.title || t.field, /* @__PURE__ */ e.createElement("span", { className: "k-columnmenu-indicators" }, o >= 0 && [
48
+ /* @__PURE__ */ e.createElement(
49
+ ee,
50
+ {
51
+ key: 1,
52
+ icon: a[o].dir === "asc" ? U : W
53
+ }
54
+ ),
55
+ a.length > 1 && /* @__PURE__ */ e.createElement("span", { key: 2, className: "k-sort-index" }, o + 1)
56
+ ]));
57
+ },
58
+ [a]
59
+ ), R = (t) => {
60
+ t.preventDefault(), m(!u);
61
+ }, C = e.useMemo(() => r.show !== void 0 ? r.show : u, [r.show, u]), D = () => {
62
+ var t;
63
+ r.onCloseMenu && r.onCloseMenu(), m(!1), l.current && ((t = l.current.element) == null || t.focus());
64
+ }, L = (t) => {
65
+ const o = ne(document);
66
+ clearTimeout(f.current), f.current = window.setTimeout(() => {
67
+ !n.mobileMode && o && t.relatedTarget !== l.current && d.current && !d.current.contains(o) && D();
68
+ });
69
+ }, z = () => {
70
+ clearTimeout(f.current);
71
+ }, { onFocus: K, onBlur: P } = te({
72
+ onFocus: (t) => z(),
73
+ onBlur: (t) => L(t)
74
+ }), O = (t) => {
75
+ var o;
76
+ (o = E.current) == null || o.triggerMouseEvent(t);
77
+ }, V = (t) => {
78
+ var o;
79
+ (o = E.current) == null || o.triggerKeyboardEvent(t);
80
+ }, H = (t) => {
81
+ !t.isAnchorClicked && m(!1);
82
+ }, I = /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(q, null, S.map((t) => /* @__PURE__ */ e.createElement(
83
+ J,
84
+ {
85
+ key: t.id,
86
+ title: M(t),
87
+ onClick: (o) => v(o, t)
88
+ }
89
+ ))), /* @__PURE__ */ e.createElement("div", { className: "k-actions k-actions-stretched k-actions-horizontal k-column-menu-footer" }, /* @__PURE__ */ e.createElement(x, { svgIcon: X, onClick: w, disabled: p }, g.toLanguageString(A, b[A])))), B = /* @__PURE__ */ e.createElement(
90
+ x,
91
+ {
92
+ ref: l,
93
+ togglable: !0,
94
+ selected: C,
95
+ svgIcon: r.svgIcon ? r.svgIcon : r.icon ? void 0 : Y,
96
+ icon: r.icon,
97
+ size: n.mobileMode ? "large" : "medium",
98
+ className: oe("k-toolbar-button", {
99
+ "k-icon-button": n.mobileMode
100
+ }),
101
+ title: g.toLanguageString(c, b[c]),
102
+ onClick: R
103
+ },
104
+ !n.mobileMode && g.toLanguageString(c, b[c])
105
+ );
106
+ return G && /* @__PURE__ */ e.createElement(e.Fragment, null, F ? /* @__PURE__ */ e.createElement(re, null, B, /* @__PURE__ */ e.createElement(le, { themeColor: "primary" })) : B, n.mobileMode ? /* @__PURE__ */ e.createElement(se, null, j.createPortal(
107
+ /* @__PURE__ */ e.createElement(
108
+ ce,
109
+ {
110
+ filtered: S,
111
+ computedShow: C,
112
+ isDisabledButton: p,
113
+ renderTitle: M,
114
+ onClose: D,
115
+ onClear: w,
116
+ handleSorting: v
117
+ },
118
+ I
119
+ ),
120
+ (y = N()) == null ? void 0 : y.body
121
+ )) : /* @__PURE__ */ e.createElement(
122
+ ae,
123
+ {
124
+ anchor: (T = l.current) == null ? void 0 : T.element,
125
+ show: C,
126
+ popupClass: "k-grid-columnmenu-popup",
127
+ onMouseDownOutside: H
128
+ },
129
+ /* @__PURE__ */ e.createElement(
130
+ "div",
131
+ {
132
+ ref: d,
133
+ onBlur: P,
134
+ onFocus: K,
135
+ onMouseDown: O,
136
+ onKeyDown: V,
137
+ className: "k-column-menu k-column-menu-md"
138
+ },
139
+ I
140
+ )
141
+ ));
142
+ };
143
+ ie.displayName = "KendoReactGridToolbarSort";
144
+ export {
145
+ ie as GridToolbarSort
146
+ };
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2025 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";
9
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),n=require("../../messages/index.js"),A=require("../../utils/GridContext.js"),l=require("@progress/kendo-react-layout"),u=require("@progress/kendo-react-buttons"),c=require("@progress/kendo-svg-icons"),N=require("@progress/kendo-react-intl"),g=require("@progress/kendo-react-inputs"),I=require("../../columnMenu/adaptiveContent/GridActionSheetFooter.js"),y=require("../adaptiveContext/GridToolbarAdaptiveContext.js"),M=require("@progress/kendo-react-common"),w=require("../../columnMenu/GridColumnMenuItemGroup.js"),B=require("../../columnMenu/GridColumnMenuItem.js"),q=t=>{const i=e.useContext(A.GridContext),{actionSheetRef:d,firstViewRef:v,secondViewRef:f}=e.useContext(y.GridToolbarAdaptiveContext),r=M.useAdaptiveModeContext(),o=N.useLocalization(),[k,E]=e.useState(""),S={animation:!0,navigatable:!1,navigatableElements:[],expand:t.computedShow,animationStyles:r&&i.adaptiveColumnMenuRef<=r.small?{top:0,width:"100%",height:"100%"}:void 0,className:"k-adaptive-actionsheet",position:r&&i.adaptiveColumnMenuRef<=r.small?"fullscreen":void 0},b=i.dir==="rtl"?c.chevronRightIcon:c.chevronLeftIcon,C=o.toLanguageString(n.adaptiveColumnMenuCheckboxFilterTitle,n.messages[n.adaptiveColumnMenuCheckboxFilterTitle]),x=()=>{t.onBackView&&t.onBackView(),i!=null&&i.mobileMode&&d.current.element.style.setProperty("--kendo-actionsheet-view-current",1)};return e.createElement(l.ActionSheet,{...S,ref:d,style:{"--kendo-actionsheet-view-current":1},onClose:t.onClose},e.createElement(l.ActionSheetView,{className:"k-actionsheet-view-animated",ref:v,style:{transitionDuration:"500ms",transitionProperty:"transform"}},e.createElement(l.ActionSheetHeader,null,e.createElement("div",{className:"k-actionsheet-titlebar-group"},e.createElement("div",{className:"k-actionsheet-title"},e.createElement("div",{className:"k-text-center"},C)),e.createElement("div",{className:"k-actionsheet-actions"},e.createElement(u.Button,{svgIcon:c.xIcon,onClick:t.onClose,fillMode:"flat"})))),e.createElement(l.ActionSheetContent,null,e.createElement("div",{className:"k-column-menu k-column-menu-lg"},t.filtered.map(a=>{var s,m;return e.createElement(w.GridColumnMenuItemGroup,{key:a.id},e.createElement("div",{className:"k-expander"},e.createElement(B.GridColumnMenuItem,{title:t.renderTitle(a),expandable:!0,expanded:!!((m=(s=t.expandState)==null?void 0:s.find(h=>h.column.field===a.field))!=null&&m.expanded),onClick:h=>(d.current.element.style.setProperty("--kendo-actionsheet-view-current",2),E(a.field),t.onFilterExpand(h,a))})))}))),e.createElement(l.ActionSheetFooter,null,e.createElement("div",{className:"k-actions k-actions-stretched k-actions-horizontal k-column-menu-footer"},e.createElement(u.Button,{svgIcon:c.filterClearIcon,onClick:t.handleClearAllFilters,size:"large"},o.toLanguageString(n.filterClearAllButton,n.messages[n.filterClearAllButton]))))),e.createElement(l.ActionSheetView,{className:"k-actionsheet-view-animated",ref:f,style:{transitionDuration:"500ms",transitionProperty:"transform"}},e.createElement(l.ActionSheetHeader,null,e.createElement("div",{className:"k-actionsheet-titlebar-group"},e.createElement("div",{className:"k-actionsheet-actions"},e.createElement(u.Button,{type:"button",onClick:x,svgIcon:b,fillMode:"flat"})),e.createElement("div",{className:"k-actionsheet-title"},e.createElement("div",{className:"k-text-center"},C+(k?` ${k}`:""))),e.createElement("div",{className:"k-actionsheet-actions"},e.createElement(u.Button,{type:"button",svgIcon:c.xIcon,onClick:t.onClose,fillMode:"flat"})))),e.createElement(l.ActionSheetContent,null,e.createElement("div",{className:"k-filter-menu"},e.createElement("div",{className:"k-filter-menu-container"},t.searchBox,e.createElement("ul",{className:"k-multicheck-wrap"},e.createElement("li",{className:"k-item k-check-all-wrap"},e.createElement(g.Checkbox,{size:i.mobileMode?"large":"medium",label:o.toLanguageString(n.filterCheckAll,n.messages[n.filterCheckAll]),onChange:a=>t.handleCheckBoxChange(a,"all"),checked:t.isAllSelected()})),t.currentData.map((a,s)=>e.createElement("li",{className:"k-item",key:`colmenu-checkbox-item-${s}`},e.createElement(g.Checkbox,{size:i.mobileMode?"large":"medium",label:String(a),onChange:m=>t.handleCheckBoxChange(m,a),checked:t.uniqueFilterValues.includes(a)})))),e.createElement("div",{className:"k-filter-selected-items"},t.uniqueFilterValues.length+" "+o.toLanguageString(n.filterSelectedItems,n.messages[n.filterSelectedItems]))))),e.createElement(l.ActionSheetFooter,null,e.createElement(I.GridActionSheetFooterContent,{onApply:t.submit,onReset:t.clear,submitMessage:o.toLanguageString(n.filterSubmitButton,n.messages[n.filterSubmitButton]),resetMessage:o.toLanguageString(n.filterClearButton,n.messages[n.filterClearButton])}))))};exports.GridAdaptiveToolbarCheckboxFilter=q;