@progress/kendo-react-data-tools 6.1.1 → 7.0.0-develop.2

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 (310) hide show
  1. package/LICENSE.md +1 -1
  2. package/{dist/npm/columnmenu → columnmenu}/ColumnMenu.d.ts +4 -0
  3. package/{dist/es/columnmenu → columnmenu}/ColumnMenuFilterForm.d.ts +4 -0
  4. package/columnmenu/ColumnMenuFilterLogic.d.ts +7 -0
  5. package/{dist/es/columnmenu → columnmenu}/ColumnMenuFilters.d.ts +4 -0
  6. package/{dist/npm/columnmenu → columnmenu}/ColumnMenuItem.d.ts +4 -0
  7. package/{dist/npm/columnmenu → columnmenu}/ColumnMenuOperators.d.ts +4 -0
  8. package/columnmenu/index.d.ts +10 -0
  9. package/dist/cdn/js/kendo-react-datatools.js +5 -0
  10. package/{dist/npm/drag → drag}/ColumnDraggable.d.ts +5 -1
  11. package/{dist/es/drag → drag}/ColumnResize.d.ts +4 -0
  12. package/{dist/es/drag → drag}/ColumnResizer.d.ts +5 -1
  13. package/{dist/npm/drag → drag}/CommonDragLogic.d.ts +5 -1
  14. package/{dist/npm/drag → drag}/DragClue.d.ts +5 -1
  15. package/drag/DropClue.d.ts +23 -0
  16. package/{dist/npm/filter → filter}/Expression.d.ts +5 -1
  17. package/{dist/es/filter → filter}/FieldSettings.d.ts +4 -0
  18. package/{dist/es/filter → filter}/Filter.d.ts +5 -1
  19. package/{dist/es/filter → filter}/Group.d.ts +5 -1
  20. package/{dist/npm/filter → filter}/filters/BooleanFilter.d.ts +5 -1
  21. package/{dist/npm/filter → filter}/filters/DateFilter.d.ts +5 -1
  22. package/{dist/npm/filter → filter}/filters/EnumFilter.d.ts +5 -1
  23. package/{dist/es/filter → filter}/filters/NumericFilter.d.ts +5 -1
  24. package/{dist/es/filter → filter}/filters/TextFilter.d.ts +5 -1
  25. package/filter/filters/index.d.ts +9 -0
  26. package/filter/index.d.ts +10 -0
  27. package/{dist/es/filter → filter}/operators.d.ts +4 -0
  28. package/filteringCells/BooleanFilter.d.ts +12 -0
  29. package/filteringCells/DateFilter.d.ts +12 -0
  30. package/{dist/es/filteringCells → filteringCells}/FilterCellProps.d.ts +4 -1
  31. package/{dist/npm/filteringCells → filteringCells}/FilterComponent.d.ts +4 -0
  32. package/{dist/es/filteringCells → filteringCells}/FilterComponentProps.d.ts +4 -0
  33. package/filteringCells/FilterOperator.d.ts +17 -0
  34. package/filteringCells/NumericFilter.d.ts +12 -0
  35. package/filteringCells/TextFilter.d.ts +12 -0
  36. package/filteringCells/index.d.ts +12 -0
  37. package/{dist/es/header → header}/CellProps.d.ts +4 -0
  38. package/{dist/npm/header → header}/ColumnProps.d.ts +4 -0
  39. package/{dist/es/header → header}/FilterRow.d.ts +5 -1
  40. package/header/Header.d.ts +22 -0
  41. package/{dist/es/header → header}/HeaderCell.d.ts +5 -1
  42. package/{dist/es/header → header}/HeaderRow.d.ts +6 -2
  43. package/header/HeaderSelectionCell.d.ts +15 -0
  44. package/header/HeaderThElement.d.ts +26 -0
  45. package/{dist/es/header → header}/SortSettings.d.ts +6 -2
  46. package/header/index.d.ts +14 -0
  47. package/{dist/npm/header → header}/utils/index.d.ts +4 -0
  48. package/{dist/es/main.d.ts → index.d.ts} +5 -1
  49. package/index.js +5 -0
  50. package/index.mjs +2901 -0
  51. package/{dist/npm/messages → messages}/index.d.ts +4 -0
  52. package/{dist/es/navigation → navigation}/TableKeyboardNavigation.d.ts +9 -5
  53. package/navigation/TableKeyboardNavigationContext.d.ts +10 -0
  54. package/navigation/TableKeyboardNavigationContextType.d.ts +11 -0
  55. package/navigation/TableKeyboardNavigationStateType.d.ts +14 -0
  56. package/{dist/npm/navigation → navigation}/constants.d.ts +4 -0
  57. package/navigation/hooks.d.ts +16 -0
  58. package/{dist/npm/navigation → navigation}/utils.d.ts +6 -2
  59. package/package-metadata.d.ts +9 -0
  60. package/package.json +36 -51
  61. package/{dist/es/pager → pager}/Pager.d.ts +5 -1
  62. package/{dist/es/pager → pager}/PagerInput.d.ts +5 -1
  63. package/{dist/npm/pager → pager}/PagerNumericButtons.d.ts +5 -1
  64. package/{dist/npm/pager → pager}/PagerPageSizes.d.ts +5 -1
  65. package/{dist/npm/selection → selection}/TableSelectableSettings.d.ts +5 -1
  66. package/{dist/es/selection → selection}/TableSelection.d.ts +5 -2
  67. package/selection/constants.d.ts +10 -0
  68. package/{dist/es/selection → selection}/events.d.ts +4 -0
  69. package/{dist/es/selection → selection}/utils.d.ts +4 -0
  70. package/utils/DataItemWrapper.d.ts +14 -0
  71. package/{dist/npm/utils → utils}/data-operations.d.ts +4 -0
  72. package/{dist/npm/utils → utils}/group-operations.d.ts +5 -1
  73. package/virtualization/columns.d.ts +19 -0
  74. package/virtualization/index.d.ts +5 -0
  75. package/about.md +0 -3
  76. package/dist/cdn/js/kendo-react-data-tools.js +0 -1
  77. package/dist/es/columnmenu/ColumnMenu.d.ts +0 -79
  78. package/dist/es/columnmenu/ColumnMenu.js +0 -238
  79. package/dist/es/columnmenu/ColumnMenuFilterForm.js +0 -33
  80. package/dist/es/columnmenu/ColumnMenuFilterLogic.d.ts +0 -3
  81. package/dist/es/columnmenu/ColumnMenuFilterLogic.js +0 -22
  82. package/dist/es/columnmenu/ColumnMenuFilters.js +0 -62
  83. package/dist/es/columnmenu/ColumnMenuItem.d.ts +0 -11
  84. package/dist/es/columnmenu/ColumnMenuItem.js +0 -7
  85. package/dist/es/columnmenu/ColumnMenuOperators.d.ts +0 -65
  86. package/dist/es/columnmenu/ColumnMenuOperators.js +0 -137
  87. package/dist/es/columnmenu/index.d.ts +0 -6
  88. package/dist/es/columnmenu/index.js +0 -6
  89. package/dist/es/drag/ColumnDraggable.d.ts +0 -30
  90. package/dist/es/drag/ColumnDraggable.js +0 -62
  91. package/dist/es/drag/ColumnResize.js +0 -95
  92. package/dist/es/drag/ColumnResizer.js +0 -71
  93. package/dist/es/drag/CommonDragLogic.d.ts +0 -38
  94. package/dist/es/drag/CommonDragLogic.js +0 -172
  95. package/dist/es/drag/DragClue.d.ts +0 -22
  96. package/dist/es/drag/DragClue.js +0 -66
  97. package/dist/es/drag/DropClue.d.ts +0 -19
  98. package/dist/es/drag/DropClue.js +0 -52
  99. package/dist/es/filter/Expression.d.ts +0 -46
  100. package/dist/es/filter/Expression.js +0 -140
  101. package/dist/es/filter/FieldSettings.js +0 -1
  102. package/dist/es/filter/Filter.js +0 -99
  103. package/dist/es/filter/Group.js +0 -163
  104. package/dist/es/filter/filters/BooleanFilter.d.ts +0 -43
  105. package/dist/es/filter/filters/BooleanFilter.js +0 -48
  106. package/dist/es/filter/filters/DateFilter.d.ts +0 -26
  107. package/dist/es/filter/filters/DateFilter.js +0 -61
  108. package/dist/es/filter/filters/EnumFilter.d.ts +0 -43
  109. package/dist/es/filter/filters/EnumFilter.js +0 -69
  110. package/dist/es/filter/filters/NumericFilter.js +0 -64
  111. package/dist/es/filter/filters/TextFilter.js +0 -65
  112. package/dist/es/filter/filters/index.d.ts +0 -5
  113. package/dist/es/filter/filters/index.js +0 -5
  114. package/dist/es/filter/index.d.ts +0 -6
  115. package/dist/es/filter/index.js +0 -6
  116. package/dist/es/filter/operators.js +0 -150
  117. package/dist/es/filteringCells/BooleanFilter.d.ts +0 -8
  118. package/dist/es/filteringCells/BooleanFilter.js +0 -81
  119. package/dist/es/filteringCells/DateFilter.d.ts +0 -8
  120. package/dist/es/filteringCells/DateFilter.js +0 -46
  121. package/dist/es/filteringCells/FilterCellProps.js +0 -1
  122. package/dist/es/filteringCells/FilterComponent.d.ts +0 -17
  123. package/dist/es/filteringCells/FilterComponent.js +0 -128
  124. package/dist/es/filteringCells/FilterComponentProps.js +0 -1
  125. package/dist/es/filteringCells/FilterOperator.d.ts +0 -13
  126. package/dist/es/filteringCells/FilterOperator.js +0 -1
  127. package/dist/es/filteringCells/NumericFilter.d.ts +0 -8
  128. package/dist/es/filteringCells/NumericFilter.js +0 -46
  129. package/dist/es/filteringCells/TextFilter.d.ts +0 -8
  130. package/dist/es/filteringCells/TextFilter.js +0 -46
  131. package/dist/es/filteringCells/index.d.ts +0 -8
  132. package/dist/es/filteringCells/index.js +0 -8
  133. package/dist/es/header/CellProps.js +0 -1
  134. package/dist/es/header/ColumnProps.d.ts +0 -153
  135. package/dist/es/header/ColumnProps.js +0 -11
  136. package/dist/es/header/FilterRow.js +0 -33
  137. package/dist/es/header/Header.d.ts +0 -18
  138. package/dist/es/header/Header.js +0 -54
  139. package/dist/es/header/HeaderCell.js +0 -26
  140. package/dist/es/header/HeaderRow.js +0 -166
  141. package/dist/es/header/HeaderSelectionCell.d.ts +0 -12
  142. package/dist/es/header/HeaderSelectionCell.js +0 -18
  143. package/dist/es/header/HeaderThElement.d.ts +0 -23
  144. package/dist/es/header/HeaderThElement.js +0 -25
  145. package/dist/es/header/SortSettings.js +0 -19
  146. package/dist/es/header/index.d.ts +0 -10
  147. package/dist/es/header/index.js +0 -10
  148. package/dist/es/header/utils/index.d.ts +0 -83
  149. package/dist/es/header/utils/index.js +0 -186
  150. package/dist/es/main.js +0 -26
  151. package/dist/es/messages/index.d.ts +0 -385
  152. package/dist/es/messages/index.js +0 -386
  153. package/dist/es/navigation/TableKeyboardNavigation.js +0 -241
  154. package/dist/es/navigation/TableKeyboardNavigationContext.d.ts +0 -6
  155. package/dist/es/navigation/TableKeyboardNavigationContext.js +0 -6
  156. package/dist/es/navigation/TableKeyboardNavigationContextType.d.ts +0 -7
  157. package/dist/es/navigation/TableKeyboardNavigationContextType.js +0 -1
  158. package/dist/es/navigation/TableKeyboardNavigationStateType.d.ts +0 -10
  159. package/dist/es/navigation/TableKeyboardNavigationStateType.js +0 -1
  160. package/dist/es/navigation/constants.d.ts +0 -54
  161. package/dist/es/navigation/constants.js +0 -79
  162. package/dist/es/navigation/hooks.d.ts +0 -12
  163. package/dist/es/navigation/hooks.js +0 -19
  164. package/dist/es/navigation/utils.d.ts +0 -145
  165. package/dist/es/navigation/utils.js +0 -212
  166. package/dist/es/package-metadata.d.ts +0 -5
  167. package/dist/es/package-metadata.js +0 -11
  168. package/dist/es/pager/Pager.js +0 -222
  169. package/dist/es/pager/PagerInput.js +0 -57
  170. package/dist/es/pager/PagerNumericButtons.d.ts +0 -28
  171. package/dist/es/pager/PagerNumericButtons.js +0 -105
  172. package/dist/es/pager/PagerPageSizes.d.ts +0 -26
  173. package/dist/es/pager/PagerPageSizes.js +0 -51
  174. package/dist/es/selection/TableSelectableSettings.d.ts +0 -31
  175. package/dist/es/selection/TableSelectableSettings.js +0 -2
  176. package/dist/es/selection/TableSelection.js +0 -155
  177. package/dist/es/selection/constants.d.ts +0 -6
  178. package/dist/es/selection/constants.js +0 -6
  179. package/dist/es/selection/events.js +0 -1
  180. package/dist/es/selection/utils.js +0 -237
  181. package/dist/es/utils/DataItemWrapper.d.ts +0 -10
  182. package/dist/es/utils/DataItemWrapper.js +0 -1
  183. package/dist/es/utils/data-operations.d.ts +0 -94
  184. package/dist/es/utils/data-operations.js +0 -265
  185. package/dist/es/utils/group-operations.d.ts +0 -29
  186. package/dist/es/utils/group-operations.js +0 -54
  187. package/dist/es/virtualization/columns.d.ts +0 -15
  188. package/dist/es/virtualization/columns.js +0 -75
  189. package/dist/es/virtualization/index.d.ts +0 -1
  190. package/dist/es/virtualization/index.js +0 -1
  191. package/dist/npm/columnmenu/ColumnMenu.js +0 -245
  192. package/dist/npm/columnmenu/ColumnMenuFilterForm.d.ts +0 -13
  193. package/dist/npm/columnmenu/ColumnMenuFilterForm.js +0 -38
  194. package/dist/npm/columnmenu/ColumnMenuFilterLogic.d.ts +0 -3
  195. package/dist/npm/columnmenu/ColumnMenuFilterLogic.js +0 -26
  196. package/dist/npm/columnmenu/ColumnMenuFilters.d.ts +0 -19
  197. package/dist/npm/columnmenu/ColumnMenuFilters.js +0 -69
  198. package/dist/npm/columnmenu/ColumnMenuItem.js +0 -11
  199. package/dist/npm/columnmenu/ColumnMenuOperators.js +0 -140
  200. package/dist/npm/columnmenu/index.d.ts +0 -6
  201. package/dist/npm/columnmenu/index.js +0 -22
  202. package/dist/npm/drag/ColumnDraggable.js +0 -65
  203. package/dist/npm/drag/ColumnResize.d.ts +0 -32
  204. package/dist/npm/drag/ColumnResize.js +0 -98
  205. package/dist/npm/drag/ColumnResizer.d.ts +0 -28
  206. package/dist/npm/drag/ColumnResizer.js +0 -74
  207. package/dist/npm/drag/CommonDragLogic.js +0 -175
  208. package/dist/npm/drag/DragClue.js +0 -69
  209. package/dist/npm/drag/DropClue.d.ts +0 -19
  210. package/dist/npm/drag/DropClue.js +0 -55
  211. package/dist/npm/filter/Expression.js +0 -143
  212. package/dist/npm/filter/FieldSettings.d.ts +0 -30
  213. package/dist/npm/filter/FieldSettings.js +0 -2
  214. package/dist/npm/filter/Filter.d.ts +0 -79
  215. package/dist/npm/filter/Filter.js +0 -102
  216. package/dist/npm/filter/Group.d.ts +0 -54
  217. package/dist/npm/filter/Group.js +0 -166
  218. package/dist/npm/filter/filters/BooleanFilter.js +0 -51
  219. package/dist/npm/filter/filters/DateFilter.js +0 -64
  220. package/dist/npm/filter/filters/EnumFilter.js +0 -72
  221. package/dist/npm/filter/filters/NumericFilter.d.ts +0 -33
  222. package/dist/npm/filter/filters/NumericFilter.js +0 -67
  223. package/dist/npm/filter/filters/TextFilter.d.ts +0 -40
  224. package/dist/npm/filter/filters/TextFilter.js +0 -68
  225. package/dist/npm/filter/filters/index.d.ts +0 -5
  226. package/dist/npm/filter/filters/index.js +0 -21
  227. package/dist/npm/filter/index.d.ts +0 -6
  228. package/dist/npm/filter/index.js +0 -22
  229. package/dist/npm/filter/operators.d.ts +0 -73
  230. package/dist/npm/filter/operators.js +0 -155
  231. package/dist/npm/filteringCells/BooleanFilter.d.ts +0 -8
  232. package/dist/npm/filteringCells/BooleanFilter.js +0 -84
  233. package/dist/npm/filteringCells/DateFilter.d.ts +0 -8
  234. package/dist/npm/filteringCells/DateFilter.js +0 -49
  235. package/dist/npm/filteringCells/FilterCellProps.d.ts +0 -36
  236. package/dist/npm/filteringCells/FilterCellProps.js +0 -2
  237. package/dist/npm/filteringCells/FilterComponent.js +0 -132
  238. package/dist/npm/filteringCells/FilterComponentProps.d.ts +0 -23
  239. package/dist/npm/filteringCells/FilterComponentProps.js +0 -2
  240. package/dist/npm/filteringCells/FilterOperator.d.ts +0 -13
  241. package/dist/npm/filteringCells/FilterOperator.js +0 -2
  242. package/dist/npm/filteringCells/NumericFilter.d.ts +0 -8
  243. package/dist/npm/filteringCells/NumericFilter.js +0 -49
  244. package/dist/npm/filteringCells/TextFilter.d.ts +0 -8
  245. package/dist/npm/filteringCells/TextFilter.js +0 -49
  246. package/dist/npm/filteringCells/index.d.ts +0 -8
  247. package/dist/npm/filteringCells/index.js +0 -24
  248. package/dist/npm/header/CellProps.d.ts +0 -68
  249. package/dist/npm/header/CellProps.js +0 -2
  250. package/dist/npm/header/ColumnProps.js +0 -14
  251. package/dist/npm/header/FilterRow.d.ts +0 -25
  252. package/dist/npm/header/FilterRow.js +0 -37
  253. package/dist/npm/header/Header.d.ts +0 -18
  254. package/dist/npm/header/Header.js +0 -57
  255. package/dist/npm/header/HeaderCell.d.ts +0 -47
  256. package/dist/npm/header/HeaderCell.js +0 -30
  257. package/dist/npm/header/HeaderRow.d.ts +0 -37
  258. package/dist/npm/header/HeaderRow.js +0 -169
  259. package/dist/npm/header/HeaderSelectionCell.d.ts +0 -12
  260. package/dist/npm/header/HeaderSelectionCell.js +0 -22
  261. package/dist/npm/header/HeaderThElement.d.ts +0 -23
  262. package/dist/npm/header/HeaderThElement.js +0 -29
  263. package/dist/npm/header/SortSettings.d.ts +0 -26
  264. package/dist/npm/header/SortSettings.js +0 -23
  265. package/dist/npm/header/index.d.ts +0 -10
  266. package/dist/npm/header/index.js +0 -26
  267. package/dist/npm/header/utils/index.js +0 -196
  268. package/dist/npm/main.d.ts +0 -26
  269. package/dist/npm/main.js +0 -51
  270. package/dist/npm/messages/index.js +0 -390
  271. package/dist/npm/navigation/TableKeyboardNavigation.d.ts +0 -68
  272. package/dist/npm/navigation/TableKeyboardNavigation.js +0 -244
  273. package/dist/npm/navigation/TableKeyboardNavigationContext.d.ts +0 -6
  274. package/dist/npm/navigation/TableKeyboardNavigationContext.js +0 -9
  275. package/dist/npm/navigation/TableKeyboardNavigationContextType.d.ts +0 -7
  276. package/dist/npm/navigation/TableKeyboardNavigationContextType.js +0 -2
  277. package/dist/npm/navigation/TableKeyboardNavigationStateType.d.ts +0 -10
  278. package/dist/npm/navigation/TableKeyboardNavigationStateType.js +0 -2
  279. package/dist/npm/navigation/constants.js +0 -82
  280. package/dist/npm/navigation/hooks.d.ts +0 -12
  281. package/dist/npm/navigation/hooks.js +0 -23
  282. package/dist/npm/navigation/utils.js +0 -235
  283. package/dist/npm/package-metadata.d.ts +0 -5
  284. package/dist/npm/package-metadata.js +0 -14
  285. package/dist/npm/pager/Pager.d.ts +0 -204
  286. package/dist/npm/pager/Pager.js +0 -225
  287. package/dist/npm/pager/PagerInput.d.ts +0 -25
  288. package/dist/npm/pager/PagerInput.js +0 -60
  289. package/dist/npm/pager/PagerNumericButtons.js +0 -108
  290. package/dist/npm/pager/PagerPageSizes.js +0 -54
  291. package/dist/npm/selection/TableSelectableSettings.js +0 -3
  292. package/dist/npm/selection/TableSelection.d.ts +0 -12
  293. package/dist/npm/selection/TableSelection.js +0 -159
  294. package/dist/npm/selection/constants.d.ts +0 -6
  295. package/dist/npm/selection/constants.js +0 -9
  296. package/dist/npm/selection/events.d.ts +0 -94
  297. package/dist/npm/selection/events.js +0 -2
  298. package/dist/npm/selection/utils.d.ts +0 -66
  299. package/dist/npm/selection/utils.js +0 -249
  300. package/dist/npm/utils/DataItemWrapper.d.ts +0 -10
  301. package/dist/npm/utils/DataItemWrapper.js +0 -2
  302. package/dist/npm/utils/data-operations.js +0 -278
  303. package/dist/npm/utils/group-operations.js +0 -60
  304. package/dist/npm/virtualization/columns.d.ts +0 -15
  305. package/dist/npm/virtualization/columns.js +0 -79
  306. package/dist/npm/virtualization/index.d.ts +0 -1
  307. package/dist/npm/virtualization/index.js +0 -17
  308. package/dist/systemjs/kendo-react-data-tools.js +0 -1
  309. package/e2e-next/filter.basic.tests.ts +0 -24
  310. package/e2e-next/pager.basic.tests.ts +0 -24
package/index.mjs ADDED
@@ -0,0 +1,2901 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2023 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import * as a from "react";
6
+ import * as d from "prop-types";
7
+ import { classNames as _, kendoThemeMaps as _t, validatePackage as dt, Draggable as ht, Keys as B, IconWrap as Re, canUseDOM as $t, toIconName as sn, extendDataItem as gt, mapTree as ae, getItemPath as an, getNestedValue as $e, guid as ln, getActiveElement as cn, getter as Wt, hasRelativeStackingContext as un, useDocument as pn } from "@progress/kendo-react-common";
8
+ import { Button as K, Toolbar as Ht, ToolbarItem as We, ButtonGroup as dn } from "@progress/kendo-react-buttons";
9
+ import { provideLocalizationService as q, provideIntlService as Vt, registerForLocalization as $, registerForIntl as hn, useLocalization as Y } from "@progress/kendo-react-intl";
10
+ import { NumericTextBox as Me, Input as Yt, TextBox as gn, Checkbox as fn } from "@progress/kendo-react-inputs";
11
+ import { DropDownList as G } from "@progress/kendo-react-dropdowns";
12
+ import { caretAltToRightIcon as Lt, caretAltToLeftIcon as Dt, caretAltRightIcon as wt, caretAltLeftIcon as Ot, filterIcon as Xt, filterClearIcon as mn, sortAscSmallIcon as Ut, sortDescSmallIcon as jt, cancelIcon as vn, plusIcon as En, xIcon as Zt, filterAddExpressionIcon as Cn, filterAddGroupIcon as xn, moreVerticalIcon as bn } from "@progress/kendo-svg-icons";
13
+ import * as yn from "react-dom";
14
+ import { createPortal as Jt } from "react-dom";
15
+ import { isCompositeFilterDescriptor as Qt, orderBy as er, filterBy as In } from "@progress/kendo-data-query";
16
+ import { DatePicker as ft } from "@progress/kendo-react-dateinputs";
17
+ import { Popup as kn } from "@progress/kendo-react-popup";
18
+ import { Reveal as Sn } from "@progress/kendo-react-animation";
19
+ const de = "pager.info", he = "pager.firstPage", ge = "pager.previousPage", fe = "pager.nextPage", me = "pager.lastPage", ve = "pager.itemsPerPage", Fn = "pager.pageSelection", V = "pager.page", Ee = "pager.of", Ce = "pager.totalPages", Rn = "pager.pageLabel", xe = "pager.ariaKeyshortcuts", be = "pager.ariaLabel", ye = "pager.pageSizeAriaLabel", Ie = "pager.mobileSelect", ke = "pager.moreButtonLabel", ie = "filter.eqOperator", le = "filter.notEqOperator", Le = "filter.isNullOperator", De = "filter.isNotNullOperator", tr = "filter.isEmptyOperator", rr = "filter.isNotEmptyOperator", nr = "filter.startsWithOperator", or = "filter.containsOperator", sr = "filter.notContainsOperator", ar = "filter.endsWithOperator", ir = "filter.gteOperator", lr = "filter.gtOperator", cr = "filter.lteOperator", ur = "filter.ltOperator", pr = "filter.isTrue", dr = "filter.isFalse", hr = "filter.afterOrEqualOperator", gr = "filter.afterOperator", fr = "filter.beforeOperator", mr = "filter.beforeOrEqualOperator", Ve = "filter.andLogic", Ye = "filter.orLogic", te = "filter.addExpression", re = "filter.addGroup", oe = "filter.close", Xe = "filter.groupAriaLabel", Ue = "filter.expressionAriaLabel", je = "filter.expressionDropdownAriaLabel", Ze = "filter.expressionOperatorDropdownAriaLabel", Je = "filter.enumFilterDropdownAriaLabel", Qe = "filter.numericFilterAriaLabel", et = "filter.textFilterAriaLabel", tt = "columnMenu.filterClearButton", rt = "columnMenu.filterSubmitButton", nt = "columnMenu.filterTitle", ot = "columnMenu.sortAscending", st = "columnMenu.sortDescending", we = "columnMenu.filterEqOperator", Oe = "columnMenu.filterNotEqOperator", Ne = "columnMenu.filterIsNullOperator", Ae = "columnMenu.filterIsNotNullOperator", vr = "columnMenu.filterIsEmptyOperator", Er = "columnMenu.filterIsNotEmptyOperator", Cr = "columnMenu.filterStartsWithOperator", xr = "columnMenu.filterContainsOperator", br = "columnMenu.filterNotContainsOperator", yr = "columnMenu.filterEndsWithOperator", Ir = "columnMenu.filterGteOperator", kr = "columnMenu.filterGtOperator", Sr = "columnMenu.filterLteOperator", Fr = "columnMenu.filterLtOperator", Rr = "columnMenu.filterIsTrue", Mr = "columnMenu.filterAfterOrEqualOperator", Lr = "columnMenu.filterAfterOperator", Dr = "columnMenu.filterBeforeOperator", wr = "columnMenu.filterBeforeOrEqualOperator", Or = "columnMenu.filterAndLogic", Nr = "columnMenu.filterOrLogic", at = "sort.ariaLabel", it = "filter.ariaLabel", v = {
20
+ [ve]: "items per page",
21
+ [Fn]: "Select page",
22
+ [de]: "{0} - {1} of {2} items",
23
+ [he]: "Go to the first page",
24
+ [ge]: "Go to the previous page",
25
+ [fe]: "Go to the next page",
26
+ [me]: "Go to the last page",
27
+ [V]: "Page",
28
+ [Ee]: "of",
29
+ [Ce]: "{0}",
30
+ [Rn]: "Page",
31
+ [xe]: "Enter ArrowRight ArrowLeft",
32
+ [be]: "Pager",
33
+ [ye]: "Page size",
34
+ [Ie]: "Select",
35
+ [ke]: "More pages",
36
+ [at]: "Sortable",
37
+ [it]: "Filter",
38
+ [ie]: "Is equal to",
39
+ [le]: "Is not equal to",
40
+ [Le]: "Is null",
41
+ [De]: "Is not null",
42
+ [tr]: "Is empty",
43
+ [rr]: "Is not empty",
44
+ [nr]: "Starts with",
45
+ [or]: "Contains",
46
+ [sr]: "Does not contain",
47
+ [ar]: "Ends with",
48
+ [ir]: "Is greater than or equal to",
49
+ [lr]: "Is greater than",
50
+ [cr]: "Is less than or equal to",
51
+ [ur]: "Is less than",
52
+ [pr]: "Is true",
53
+ [dr]: "Is false",
54
+ [hr]: "Is after or equal to",
55
+ [gr]: "Is after",
56
+ [fr]: "Is before",
57
+ [mr]: "Is before or equal to",
58
+ [Ve]: "And",
59
+ [Ye]: "Or",
60
+ [te]: "Add Expression",
61
+ [re]: "Add Group",
62
+ [oe]: "Close",
63
+ [Xe]: "Filter toolbar",
64
+ [Ue]: "Filter expression row",
65
+ [je]: "Filter dropdown",
66
+ [Ze]: "Filter operator dropdown",
67
+ [Je]: "Select True/False",
68
+ [Qe]: "Enter number",
69
+ [et]: "Enter text",
70
+ [tt]: "Clear",
71
+ [rt]: "Filter",
72
+ [nt]: "Filter",
73
+ [ot]: "Sort Ascending",
74
+ [st]: "Sort Descending",
75
+ [we]: "Is equal to",
76
+ [Oe]: "Is not equal to",
77
+ [Ne]: "Is null",
78
+ [Ae]: "Is not null",
79
+ [vr]: "Is empty",
80
+ [Er]: "Is not empty",
81
+ [Cr]: "Starts with",
82
+ [xr]: "Contains",
83
+ [br]: "Does not contain",
84
+ [yr]: "Ends with",
85
+ [Ir]: "Is greater than or equal to",
86
+ [kr]: "Is greater than",
87
+ [Sr]: "Is less than or equal to",
88
+ [Fr]: "Is less than",
89
+ [Rr]: "Is true",
90
+ [Mr]: "Is after or equal to",
91
+ [Lr]: "Is after",
92
+ [Dr]: "Is before",
93
+ [wr]: "Is before or equal to",
94
+ [Or]: "And",
95
+ [Nr]: "Or"
96
+ }, Nt = "...";
97
+ class Mn extends a.Component {
98
+ constructor() {
99
+ super(...arguments), this.handlePageChange = (t, r) => {
100
+ t.preventDefault(), this.props.pageChange(r, t);
101
+ }, this.handleSelectPageChange = (t) => {
102
+ t.preventDefault(), this.props.pageChange(t.target.value, t);
103
+ };
104
+ }
105
+ render() {
106
+ const t = q(this), r = this.props.messagesMap ? this.props.messagesMap(Ie) : { messageKey: Ie, defaultMessage: v[Ie] }, n = this.props.messagesMap ? this.props.messagesMap(V) : { messageKey: V, defaultMessage: v[V] }, o = this.props.messagesMap ? this.props.messagesMap(ke) : { messageKey: ke, defaultMessage: v[ke] }, s = t.toLanguageString(o.messageKey, o.defaultMessage), i = this.start > 1 && this.renderDots(this.start - 1, s), l = this.end < this.props.totalPages && this.renderDots(this.end + 1, s), c = this.start > 1 && this.renderOptionDots(this.start - 1), u = this.end < this.props.totalPages && this.renderOptionDots(this.end + 1), p = [];
107
+ for (let h = this.start; h <= this.end; h++)
108
+ p.push(h);
109
+ const f = p.map((h) => /* @__PURE__ */ a.createElement(
110
+ K,
111
+ {
112
+ className: _({ "k-selected": this.props.currentPage === h }),
113
+ key: h,
114
+ fillMode: "flat",
115
+ themeColor: "primary",
116
+ size: this.props.size,
117
+ rounded: null,
118
+ role: "button",
119
+ "aria-label": t.toLanguageString(n.messageKey, n.defaultMessage) + " " + h,
120
+ "aria-current": this.props.currentPage === h ? !0 : void 0,
121
+ onClick: (C) => this.handlePageChange(C, h)
122
+ },
123
+ h
124
+ )), m = p.map((h) => /* @__PURE__ */ a.createElement("option", { key: h }, h));
125
+ return /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(
126
+ "select",
127
+ {
128
+ style: { width: "5em", margin: "0px 1em", display: this.props.type === "dropdown" ? "inline-flex" : "none" },
129
+ className: _(
130
+ "k-picker k-dropdown-list k-dropdown k-rounded-md",
131
+ {
132
+ [`k-picker-${_t.sizeMap[this.props.size] || this.props.size}`]: this.props.size
133
+ }
134
+ ),
135
+ "aria-label": t.toLanguageString(r.messageKey, r.defaultMessage),
136
+ value: this.props.currentPage,
137
+ onChange: (h) => this.handleSelectPageChange(h)
138
+ },
139
+ c,
140
+ m,
141
+ u
142
+ ), /* @__PURE__ */ a.createElement(
143
+ "div",
144
+ {
145
+ className: "k-pager-numbers",
146
+ style: { display: this.props.type === "numbers" ? "" : "none" }
147
+ },
148
+ i,
149
+ f,
150
+ l
151
+ ));
152
+ }
153
+ get end() {
154
+ return Math.min(this.start + this.props.buttonCount - 1, this.props.totalPages);
155
+ }
156
+ get start() {
157
+ const t = this.props.currentPage, r = this.props.buttonCount;
158
+ if (t > r) {
159
+ const n = t % r;
160
+ return n === 0 ? t - r + 1 : t - n + 1;
161
+ }
162
+ return 1;
163
+ }
164
+ renderDots(t, r) {
165
+ return /* @__PURE__ */ a.createElement(
166
+ K,
167
+ {
168
+ fillMode: "flat",
169
+ themeColor: "primary",
170
+ size: this.props.size,
171
+ rounded: null,
172
+ role: "button",
173
+ "aria-label": r,
174
+ onClick: (n) => this.handlePageChange(n, t)
175
+ },
176
+ Nt
177
+ );
178
+ }
179
+ renderOptionDots(t) {
180
+ return /* @__PURE__ */ a.createElement("option", { value: t }, Nt);
181
+ }
182
+ }
183
+ class Ar extends a.Component {
184
+ constructor() {
185
+ super(...arguments), this.state = { page: this.props.currentPage }, this.handleOnChange = (t) => {
186
+ this.setState({ page: t.target.value }), t.target.value && this.props.pageChange(t.target.value, t);
187
+ };
188
+ }
189
+ render() {
190
+ const t = Vt(this), r = q(this), n = this.props.messagesMap ? this.props.messagesMap(V) : { messageKey: V, defaultMessage: v[V] }, o = this.props.messagesMap ? this.props.messagesMap(Ee) : { messageKey: Ee, defaultMessage: v[Ee] }, s = this.props.messagesMap ? this.props.messagesMap(Ce) : { messageKey: Ce, defaultMessage: v[Ce] };
191
+ return /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement("span", { className: "k-pager-input" }, /* @__PURE__ */ a.createElement("span", null, r.toLanguageString(n.messageKey, n.defaultMessage)), /* @__PURE__ */ a.createElement(
192
+ Me,
193
+ {
194
+ value: this.props.currentPage !== void 0 ? this.props.currentPage : this.state.page,
195
+ onChange: this.handleOnChange,
196
+ min: 1,
197
+ spinners: !1
198
+ }
199
+ ), /* @__PURE__ */ a.createElement("span", null, `${r.toLanguageString(o.messageKey, o.defaultMessage)} ${t.format(r.toLanguageString(s.messageKey, s.defaultMessage), [
200
+ this.props.totalPages
201
+ ])}`)));
202
+ }
203
+ }
204
+ $(Ar);
205
+ class Pr extends a.Component {
206
+ constructor() {
207
+ super(...arguments), this.pageSizeChange = (t) => {
208
+ this.props.pageChange && this.props.pageChange({ skip: 0, take: parseInt(t.target.value, 10) }, t);
209
+ };
210
+ }
211
+ render() {
212
+ const { value: t, pageSizes: r, pageSize: n, messagesMap: o } = this.props, s = r.slice();
213
+ t === void 0 && s.filter((c) => c === n).length === 0 && s.unshift(n);
214
+ const i = o ? o(ve) : { messageKey: ve, defaultMessage: v[ve] }, l = o ? o(ye) : { messageKey: ye, defaultMessage: v[ye] };
215
+ return /* @__PURE__ */ a.createElement("span", { className: "k-pager-sizes" }, /* @__PURE__ */ a.createElement(
216
+ G,
217
+ {
218
+ value: t !== void 0 ? t : n,
219
+ data: s,
220
+ onChange: this.pageSizeChange,
221
+ ariaLabel: q(this).toLanguageString(l.messageKey, l.defaultMessage),
222
+ size: this.props.size
223
+ }
224
+ ), /* @__PURE__ */ a.createElement("span", null, q(this).toLanguageString(i.messageKey, i.defaultMessage)));
225
+ }
226
+ }
227
+ $(Pr);
228
+ const mt = {
229
+ name: "@progress/kendo-react-data-tools",
230
+ productName: "KendoReact",
231
+ productCodes: ["KENDOUIREACT", "KENDOUICOMPLETE"],
232
+ publishDate: 1700573209,
233
+ version: "",
234
+ licensingDocsUrl: "https://www.telerik.com/kendo-react-ui/components/my-license/"
235
+ }, At = 600, Ln = 768;
236
+ class Pe extends a.Component {
237
+ constructor(t) {
238
+ super(t), this._element = null, this.onPageChange = (r, n) => {
239
+ const o = {
240
+ target: this,
241
+ syntheticEvent: n.syntheticEvent,
242
+ nativeEvent: n.nativeEvent,
243
+ targetEvent: n,
244
+ ...r
245
+ };
246
+ this.props.onPageChange && this.props.onPageChange.call(void 0, o);
247
+ }, this.changePage = (r, n) => {
248
+ this.props.onPageChange && r > 0 && r <= this.totalPages && this.props.onPageChange({
249
+ target: this,
250
+ skip: (r - 1) * this.props.take,
251
+ take: this.props.take,
252
+ syntheticEvent: n,
253
+ nativeEvent: n.nativeEvent,
254
+ targetEvent: n
255
+ });
256
+ }, this.onWindowResize = () => {
257
+ const r = this.element;
258
+ if (!r || !this.props.responsive)
259
+ return;
260
+ const n = r.offsetWidth;
261
+ n < At ? this.setState({ showPagerSizes: !1 }) : n >= At && n < Ln ? this.setState({ showPagerInfo: !1, showPagerSizes: !0 }) : this.setState({ showPagerInfo: !0, showPagerSizes: !0 });
262
+ }, dt(mt), this.state = { showPagerSizes: !0, showPagerInfo: !0 };
263
+ }
264
+ get isRtl() {
265
+ return this.props.dir === "rtl";
266
+ }
267
+ /**
268
+ * Returns the HTML element of the Pager component.
269
+ */
270
+ get element() {
271
+ return this._element;
272
+ }
273
+ /**
274
+ * @hidden
275
+ */
276
+ componentDidMount() {
277
+ window.addEventListener("resize", this.onWindowResize), this.onWindowResize();
278
+ }
279
+ /**
280
+ * @hidden
281
+ */
282
+ componentWillUnmount() {
283
+ window.removeEventListener("resize", this.onWindowResize);
284
+ }
285
+ /**
286
+ * @hidden
287
+ */
288
+ render() {
289
+ const { showPagerSizes: t, showPagerInfo: r } = this.state, { skip: n, take: o, total: s, pageSizes: i, size: l, responsive: c, messagesMap: u, pageSizeValue: p } = this.props, f = q(this), m = Vt(this), h = Math.floor(n / o) + 1, C = this.props.type === "numeric" ? /* @__PURE__ */ a.createElement(
290
+ Mn,
291
+ {
292
+ type: c && !t ? "dropdown" : "numbers",
293
+ buttonCount: this.props.buttonCount || 0,
294
+ totalPages: this.totalPages,
295
+ currentPage: h,
296
+ pageChange: this.changePage,
297
+ messagesMap: this.props.messagesMap,
298
+ size: this.props.size
299
+ }
300
+ ) : /* @__PURE__ */ a.createElement(
301
+ Ar,
302
+ {
303
+ buttonCount: this.props.buttonCount || 0,
304
+ totalPages: this.totalPages,
305
+ currentPage: h,
306
+ pageChange: this.changePage,
307
+ messagesMap: u,
308
+ size: this.props.size
309
+ }
310
+ ), b = u ? u(he) : { messageKey: he, defaultMessage: v[he] }, x = u ? u(ge) : { messageKey: ge, defaultMessage: v[ge] }, g = u ? u(fe) : { messageKey: fe, defaultMessage: v[fe] }, I = u ? u(me) : { messageKey: me, defaultMessage: v[me] }, F = u ? u(de) : { messageKey: de, defaultMessage: v[de] }, k = u ? u(xe) : { messageKey: xe, defaultMessage: v[xe] }, E = u ? u(be) : { messageKey: be, defaultMessage: v[be] };
311
+ let y, S, w, P;
312
+ this.props.previousNext && (y = this.renderButton(
313
+ 1,
314
+ "k-pager-nav k-pager-first" + (h === 1 ? " k-disabled" : ""),
315
+ f.toLanguageString(b.messageKey, b.defaultMessage),
316
+ this.isRtl ? "caret-alt-to-right" : "caret-alt-to-left",
317
+ this.isRtl ? Lt : Dt,
318
+ h === 1 ? !0 : void 0
319
+ ), S = this.renderButton(
320
+ h - 1,
321
+ "k-pager-nav" + (h === 1 ? " k-disabled" : ""),
322
+ f.toLanguageString(x.messageKey, x.defaultMessage),
323
+ this.isRtl ? "caret-alt-right" : "caret-alt-left",
324
+ this.isRtl ? wt : Ot,
325
+ h === 1 ? !0 : void 0
326
+ ), w = this.renderButton(
327
+ h + 1,
328
+ "k-pager-nav" + (h >= this.totalPages ? " k-disabled" : ""),
329
+ f.toLanguageString(g.messageKey, g.defaultMessage),
330
+ this.isRtl ? "caret-alt-left" : "caret-alt-right",
331
+ this.isRtl ? Ot : wt,
332
+ h >= this.totalPages ? !0 : void 0
333
+ ), P = this.renderButton(
334
+ this.totalPages,
335
+ "k-pager-nav k-pager-last" + (h >= this.totalPages ? " k-disabled" : ""),
336
+ f.toLanguageString(I.messageKey, I.defaultMessage),
337
+ this.isRtl ? "caret-alt-to-left" : "caret-alt-to-right",
338
+ this.isRtl ? Dt : Lt,
339
+ h >= this.totalPages ? !0 : void 0
340
+ ));
341
+ const T = i && /* @__PURE__ */ a.createElement(
342
+ Pr,
343
+ {
344
+ pageChange: this.onPageChange,
345
+ pageSize: o,
346
+ pageSizes: i,
347
+ value: p,
348
+ messagesMap: u,
349
+ size: this.props.size
350
+ }
351
+ ), z = this.props.info && /* @__PURE__ */ a.createElement("span", { className: "k-pager-info" }, m.format(f.toLanguageString(F.messageKey, F.defaultMessage), [
352
+ Math.min(n + 1, s),
353
+ Math.min(n + o, s),
354
+ s
355
+ ]));
356
+ return /* @__PURE__ */ a.createElement(
357
+ "div",
358
+ {
359
+ className: _(
360
+ "k-pager",
361
+ {
362
+ [`k-pager-${_t.sizeMap[l] || l}`]: l
363
+ },
364
+ this.props.className
365
+ ),
366
+ style: this.props.style,
367
+ role: "application",
368
+ "aria-roledescription": "pager",
369
+ dir: this.props.dir,
370
+ "aria-keyshortcuts": f.toLanguageString(k.messageKey, k.defaultMessage),
371
+ "aria-label": f.toLanguageString(E.messageKey, E.defaultMessage),
372
+ ref: (L) => this._element = L
373
+ },
374
+ /* @__PURE__ */ a.createElement("div", { className: _("k-pager-numbers-wrap") }, y, S, C, w, P),
375
+ c ? t && T : T,
376
+ c ? r && z : z
377
+ );
378
+ }
379
+ renderButton(t, r, n, o, s, i) {
380
+ return /* @__PURE__ */ a.createElement(
381
+ K,
382
+ {
383
+ fillMode: "flat",
384
+ themeColor: "base",
385
+ size: this.props.size,
386
+ rounded: null,
387
+ className: r,
388
+ icon: o,
389
+ svgIcon: s,
390
+ title: n,
391
+ role: "button",
392
+ "aria-disabled": i,
393
+ onClick: (l) => {
394
+ l.preventDefault(), this.changePage(t, l);
395
+ }
396
+ }
397
+ );
398
+ }
399
+ get totalPages() {
400
+ return Math.ceil((this.props.total || 0) / this.props.take);
401
+ }
402
+ }
403
+ Pe.propTypes = {
404
+ className: d.string,
405
+ style: d.object,
406
+ total: d.number.isRequired,
407
+ skip: d.number.isRequired,
408
+ take: d.number.isRequired,
409
+ buttonCount: d.number,
410
+ info: d.bool,
411
+ type: d.oneOf(["numeric", "input"]),
412
+ pageSizes: d.arrayOf(d.oneOfType([
413
+ d.string,
414
+ d.number
415
+ ])),
416
+ previousNext: d.bool,
417
+ onPageChange: d.func,
418
+ messagesMap: d.func,
419
+ size: d.oneOf([null, "small", "medium", "large"]),
420
+ dir: d.string
421
+ };
422
+ Pe.defaultProps = {
423
+ buttonCount: 10,
424
+ info: !0,
425
+ type: "numeric",
426
+ size: "medium"
427
+ };
428
+ hn(Pe);
429
+ $(Pe);
430
+ const Te = (e) => class extends a.Component {
431
+ constructor() {
432
+ super(...arguments), this.filterChange = (n) => {
433
+ this.props.onFilterChange && this.props.onFilterChange(n);
434
+ }, this.inputChange = (n) => {
435
+ const o = n.target.value, { filter: s = [], field: i = "" } = this.props, l = this.findCellFilter(), c = l ? s.map((u) => u.field === i ? { ...l, value: o } : u) : [...s, { ...e.emptyFilter, value: o, field: i }];
436
+ this.filterChange({
437
+ filter: c,
438
+ field: i,
439
+ syntheticEvent: n.syntheticEvent
440
+ });
441
+ }, this.operatorChange = (n) => {
442
+ const { operator: o } = n.target.value, { filter: s = [], field: i = "" } = this.props, l = this.findCellFilter(), c = l ? s.map((u) => u.field === i ? { ...l, operator: o } : u) : [...s, { ...e.emptyFilter, field: i, operator: o }];
443
+ this.filterChange({
444
+ filter: c,
445
+ field: i,
446
+ syntheticEvent: n.syntheticEvent
447
+ });
448
+ }, this.clearButtonClick = (n) => {
449
+ const { filter: o = [], field: s = "" } = this.props;
450
+ this.filterChange({
451
+ filter: o.filter((i) => i.field !== s),
452
+ field: s,
453
+ syntheticEvent: n
454
+ });
455
+ }, this.findCellFilter = () => {
456
+ const { filter: n = [], field: o } = this.props;
457
+ return n.find((s) => s.field === o);
458
+ };
459
+ }
460
+ render() {
461
+ const { clearButtonTitle: n = "", operators: o = [] } = this.props, s = this.findCellFilter() || { ...e.emptyFilter, operator: "" }, { operator: i, value: l } = s, c = {
462
+ ariaLabel: "filter",
463
+ value: o.find((u) => u.operator === i) || null,
464
+ onChange: this.operatorChange,
465
+ className: "k-dropdown-operator",
466
+ iconClassName: "k-i-filter",
467
+ svgIcon: Xt,
468
+ data: o,
469
+ textField: "text",
470
+ popupSettings: { width: "" },
471
+ components: this.props.components
472
+ };
473
+ return /* @__PURE__ */ a.createElement("div", { className: "k-filtercell" }, /* @__PURE__ */ a.createElement("span", null, e.inputComponent({
474
+ value: l,
475
+ onChange: this.inputChange,
476
+ components: this.props.components,
477
+ ariaLabel: this.props.ariaLabel,
478
+ min: this.props.min,
479
+ max: this.props.max
480
+ }), /* @__PURE__ */ a.createElement("div", { className: "k-filtercell-operator" }, e.operatorComponent(c, this.props), " ", /* @__PURE__ */ a.createElement(
481
+ K,
482
+ {
483
+ className: _({
484
+ ["k-clear-button-visible"]: !(l === null || l === "") || i
485
+ }),
486
+ title: n,
487
+ type: "button",
488
+ onClick: this.clearButtonClick,
489
+ icon: "filter-clear",
490
+ svgIcon: mn,
491
+ disabled: !(!(l === null || l === "") || i)
492
+ }
493
+ ))));
494
+ }
495
+ }, Pt = "eq", Dn = {
496
+ emptyFilter: { operator: Pt, value: "" },
497
+ inputComponent: (e) => null,
498
+ operatorComponent: function(e, t) {
499
+ const { filter: r = [], field: n } = t, o = r.find((s) => s.field === n);
500
+ return /* @__PURE__ */ a.createElement(
501
+ G,
502
+ {
503
+ ...e,
504
+ value: e.data.find((s) => s.operator === (o ? o.value : "")),
505
+ onChange: (s) => {
506
+ if (!t.onFilterChange)
507
+ return;
508
+ const i = s.target.value.operator;
509
+ if (i === "") {
510
+ o && t.onFilterChange.call(void 0, {
511
+ filter: r.filter((c) => c.field !== o.field),
512
+ field: n,
513
+ syntheticEvent: s.syntheticEvent
514
+ });
515
+ return;
516
+ }
517
+ let l = o ? r.map((c) => c.field === n ? { ...o, value: i } : c) : [...r, { value: i, field: n, operator: Pt }];
518
+ t.onFilterChange.call(void 0, {
519
+ filter: l,
520
+ field: n,
521
+ syntheticEvent: s.syntheticEvent
522
+ });
523
+ }
524
+ }
525
+ );
526
+ }
527
+ };
528
+ class ts extends Te(Dn) {
529
+ }
530
+ const wn = {
531
+ inputComponent: (e) => /* @__PURE__ */ a.createElement(ft, { ...e }),
532
+ operatorComponent: (e) => /* @__PURE__ */ a.createElement(G, { ...e }),
533
+ emptyFilter: { operator: "eq", value: null }
534
+ };
535
+ class rs extends Te(wn) {
536
+ }
537
+ const On = {
538
+ inputComponent: (e) => /* @__PURE__ */ a.createElement(Me, { ...e }),
539
+ operatorComponent: (e) => /* @__PURE__ */ a.createElement(G, { ...e }),
540
+ emptyFilter: { operator: "eq", value: null }
541
+ };
542
+ class ns extends Te(On) {
543
+ }
544
+ const Nn = {
545
+ inputComponent: (e) => /* @__PURE__ */ a.createElement(Yt, { ...e }),
546
+ operatorComponent: (e) => /* @__PURE__ */ a.createElement(G, { ...e }),
547
+ emptyFilter: { operator: "contains", value: "" }
548
+ };
549
+ class os extends Te(Nn) {
550
+ }
551
+ const An = {
552
+ filterable: !0,
553
+ editable: !0,
554
+ sortable: !0,
555
+ resizable: !0,
556
+ reorderable: !0,
557
+ groupable: !0
558
+ }, X = "data-keyboardnavlevel", Tr = "data-keyboardnavscope", Br = "data-keyboardnavheader", Kr = "data-keyboardnavbody", Be = "data-keyboardnavid", ss = "data-keyboardnavzone", Pn = "_filter", qr = [
559
+ "input:not([disabled]):not([type=hidden])",
560
+ "select:not([disabled])",
561
+ "textarea:not([disabled])",
562
+ "button:not([disabled])",
563
+ "a[href]",
564
+ "area[href]",
565
+ "summary",
566
+ "iframe",
567
+ "object",
568
+ "embed",
569
+ "audio[controls]",
570
+ "video[controls]",
571
+ "[contenteditable]"
572
+ ], vt = [...qr, "[tabindex]"], Tn = [...qr, "[tabindex]"].map((e) => e + ':not([tabindex="-1"])'), as = {
573
+ [Tr]: !0
574
+ }, Bn = {
575
+ [Br]: !0
576
+ }, is = {
577
+ [Kr]: !0
578
+ }, zr = a.createContext(void 0);
579
+ zr.displayName = "KendoReactTableKeyboardNavigationContext";
580
+ const Kn = (e, t) => {
581
+ const r = a.useContext(zr);
582
+ return !r || !e || t === !1 ? {} : {
583
+ tabIndex: r && r.activeId && r.activeId === e ? 0 : -1,
584
+ [X]: r.level,
585
+ [Be]: e
586
+ };
587
+ }, Et = (e) => {
588
+ const {
589
+ ariaSort: t,
590
+ colSpan: r,
591
+ rowSpan: n,
592
+ className: o,
593
+ style: s,
594
+ columnId: i,
595
+ onKeyDown: l,
596
+ navigatable: c,
597
+ ariaColumnIndex: u,
598
+ ariaLabel: p,
599
+ role: f,
600
+ ariaSelected: m
601
+ } = e, h = Kn(i, c);
602
+ return /* @__PURE__ */ a.createElement(
603
+ "th",
604
+ {
605
+ "aria-sort": t,
606
+ "aria-label": p,
607
+ "aria-colindex": u,
608
+ "aria-selected": m,
609
+ colSpan: r,
610
+ rowSpan: n,
611
+ className: o,
612
+ style: s,
613
+ onKeyDown: l,
614
+ role: f,
615
+ ...h
616
+ },
617
+ e.children
618
+ );
619
+ };
620
+ Et.displayName = "KendoReactHeaderThElement";
621
+ const Gr = (e, t, r = "cell") => `${t}_${e}_${r}`, qn = (e) => {
622
+ if (e)
623
+ return parseInt(e.getAttribute(X) || "", 10);
624
+ }, Ct = (e) => {
625
+ if (!e)
626
+ return;
627
+ const t = e.getAttribute(Be);
628
+ return t || void 0;
629
+ }, lt = (e) => e ? !!e.getAttribute(Be) : !1, zn = (e, t = { level: 0 }) => e.querySelector(`[${X}='${t.level}']`), Gn = (e) => e.parentElement && e.parentElement.closest(`[${X}]`), _n = (e, t) => e.querySelector(`[${Be}='${t}']`), $n = (e) => e.parentElement && e.parentElement.closest(`[${Tr}]`), _r = (e) => e.querySelector(`[${Br}]`), $r = (e) => e.querySelector(`[${Kr}]`), Wn = (e, t = { focusable: !1 }) => {
630
+ let r = t.focusable ? vt : Tn;
631
+ return Array.from(e.querySelectorAll(r.join(",")));
632
+ }, Hn = (e, t = { level: 0 }) => {
633
+ if (!e)
634
+ return [];
635
+ let r = vt.map((n) => n + `[${X}='${t.level}']`).join(",");
636
+ return Array.from(e.querySelectorAll(r));
637
+ }, Vn = (e = { level: 0 }) => {
638
+ let t = vt.map(
639
+ (r) => r + `[${X}='${e.level}']`
640
+ ).join(",");
641
+ return (r) => r.matches(t);
642
+ }, Yn = (e) => {
643
+ const { elementForFocus: t, event: r, contextStateRef: n, prevElement: o } = e;
644
+ n.current && t && t.focus && (r.preventDefault(), t.focus(), lt(t) && (t.setAttribute("tabIndex", "0"), n.current.activeId = Ct(t)), o && lt(o) && o.setAttribute("tabIndex", "-1"));
645
+ }, Xn = (e) => e.current ? e.current.idPrefix : "", Wr = (e, t, r, n, o) => {
646
+ if (!r)
647
+ return [];
648
+ let s = e + (o ? -1 : 1);
649
+ for (; s >= 0 && s < n.length; ) {
650
+ const i = n[s][t];
651
+ if (i !== r)
652
+ return [i, [s, t]];
653
+ s = s + (o ? -1 : 1);
654
+ }
655
+ return [];
656
+ }, Hr = (e, t, r, n, o) => {
657
+ if (!r)
658
+ return [];
659
+ let s = t + (o ? -1 : 1);
660
+ for (; s >= 0 && s < n[e].length; ) {
661
+ const i = n[e][s];
662
+ if (i !== r)
663
+ return [i, [e, s]];
664
+ s = s + (o ? -1 : 1);
665
+ }
666
+ return [];
667
+ }, ct = (e, t) => {
668
+ if (t) {
669
+ for (let r = 0; r < e.length; r++)
670
+ for (let n = 0; n < e[r].length; n++)
671
+ if (e[r][n] === t)
672
+ return [r, n];
673
+ }
674
+ }, Un = (e) => e.current ? e.current.navigationMatrix.length : 0, Vr = (e) => e ? `${e}${Pn}` : "", M = {
675
+ generateNavigatableId: Gr,
676
+ getNavigatableId: Ct,
677
+ getNavigatableLevel: qn,
678
+ getNavigatableElement: zn,
679
+ getClosestNavigatableElement: Gn,
680
+ getActiveElement: _n,
681
+ getClosestScope: $n,
682
+ getHeaderElement: _r,
683
+ getBodyElement: $r,
684
+ getFocusableElements: Wn,
685
+ getNavigatableElements: Hn,
686
+ filterNavigatableElements: Vn,
687
+ focusElement: Yn,
688
+ getIdPrefix: Xn,
689
+ isNavigatable: lt,
690
+ findNextIdByRowIndex: Wr,
691
+ findNextIdByCellIndex: Hr,
692
+ findId: ct,
693
+ getNextNavigationIndex: Un,
694
+ getFilterColumnId: Vr
695
+ }, jn = "k-table-row k-filter-row", Zn = (e, t, r) => {
696
+ let n = `${r ? "k-grid-header-sticky" : ""}`;
697
+ return e.some((o) => o.field === t) && (n += " k-sorted"), n;
698
+ }, ls = function(e) {
699
+ const { columns: t, filter: r, filterChange: n, sort: o = [], ariaRowIndex: s } = e, i = Y();
700
+ return /* @__PURE__ */ a.createElement("tr", { className: jn, "aria-rowindex": s, role: "row" }, t.map((l, c) => {
701
+ const u = l.locked !== void 0 ? {
702
+ left: l.left,
703
+ right: l.right,
704
+ borderRightWidth: l.rightBorder ? "1px" : ""
705
+ } : {}, p = l.filterCell || l.filter;
706
+ return /* @__PURE__ */ a.createElement(
707
+ Et,
708
+ {
709
+ columnId: Vr(l.id),
710
+ navigatable: l.navigatable,
711
+ style: u,
712
+ key: c,
713
+ ariaColumnIndex: l.ariaColumnIndex,
714
+ ariaLabel: p ? i.toLanguageString(it, v[it]) : void 0,
715
+ className: _(
716
+ "k-table-th k-header",
717
+ Zn(o, l.field, l.locked)
718
+ )
719
+ },
720
+ p && /* @__PURE__ */ a.createElement(
721
+ p,
722
+ {
723
+ field: l.field,
724
+ filter: r,
725
+ onFilterChange: n
726
+ }
727
+ )
728
+ );
729
+ }));
730
+ };
731
+ function Jn(e, t) {
732
+ const r = e[t].depth;
733
+ let n = null;
734
+ for (let o = t + 1; o < e.length; o++)
735
+ if (e[o].depth === r) {
736
+ n = e[o];
737
+ break;
738
+ }
739
+ return n;
740
+ }
741
+ const xt = (e) => {
742
+ let t = e.width ? parseFloat(e.width.toString()) : 0;
743
+ return !t && e.children && e.children.length && (t = e.children.reduce((r, n) => xt(n) + r, 0)), t;
744
+ };
745
+ function cs(e) {
746
+ const t = [[]];
747
+ let r = 0;
748
+ for (let s = e.length - 1; s >= 0; s--)
749
+ r = Math.max(r, e[s].depth), e[s].colSpan = e[s].colSpan || 1, e[s].parentIndex !== -1 && (e[e[s].parentIndex].colSpan = (e[e[s].parentIndex].colSpan || 0) + e[s].colSpan);
750
+ const n = [];
751
+ let o = 1;
752
+ return e.forEach((s, i) => {
753
+ t[s.depth] = t[s.depth] || [];
754
+ let l = !1;
755
+ t[s.depth].length === 0 && (o <= 1 ? o = 1 + (s.children.length > 0 ? 0 : r - s.depth) : (o--, l = !0)), s.rowSpan = 1 + (s.children.length > 0 ? 0 : r - s.depth), s.kFirst = l, s.index = t[s.depth].length, t[s.depth].push(i), s.ariaColumnIndex = n[s.depth] ? n[s.depth] + 1 : 1;
756
+ for (let c = s.depth; c < s.depth + s.rowSpan; c++)
757
+ n[c] = (n[c] || 0) + s.colSpan;
758
+ }), Qn(t, e), eo(t, e), t;
759
+ }
760
+ function Qn(e, t, r) {
761
+ let n = new Array(e.length).fill(0), o = 0;
762
+ t.forEach((s) => {
763
+ if (s.locked && (!s.left || r))
764
+ if (s.left = n[s.depth], o = xt(s), s.children.length === 0)
765
+ for (let i = s.depth; i < n.length; i++)
766
+ n[i] += o;
767
+ else
768
+ n[s.depth] += o;
769
+ });
770
+ }
771
+ function eo(e, t, r) {
772
+ let n = 0, o = new Array(e.length).fill(0);
773
+ for (let s = t.length - 1; s >= 0; s--) {
774
+ const i = t[s];
775
+ if (i.locked && (!i.right || r)) {
776
+ if (i.right = o[i.depth], n = xt(i), i.children.length === 0)
777
+ for (let c = i.depth; c < o.length; c++)
778
+ o[c] += n;
779
+ else
780
+ o[i.depth] += n;
781
+ const l = Jn(t, s);
782
+ i.rightBorder = !(l && l.locked);
783
+ }
784
+ }
785
+ }
786
+ function to(e, t, r = 0) {
787
+ let n = [];
788
+ if (!e || !e.length)
789
+ return [];
790
+ e.forEach((s) => {
791
+ const i = to(s.children || [], t, r + 1);
792
+ n.push(
793
+ Object.assign(
794
+ {},
795
+ { depth: r },
796
+ An,
797
+ s,
798
+ {
799
+ id: s.id ? s.id : Gr(`${t.prevId++}`, t.idPrefix, "column"),
800
+ declarationIndex: n.length,
801
+ children: i,
802
+ rowSpan: 0,
803
+ colSpan: 0,
804
+ isAccessible: !0
805
+ }
806
+ )
807
+ );
808
+ });
809
+ const o = (s, i) => s.orderIndex === i.orderIndex ? s.declarationIndex - i.declarationIndex : (s.orderIndex || 0) - (i.orderIndex || 0);
810
+ if (n.sort(o), r === 0) {
811
+ let s = [];
812
+ const i = (l, c) => l.forEach((u) => {
813
+ u.parentIndex = c, i(u.children, s.push(u) - 1);
814
+ });
815
+ return i(n, -1), s;
816
+ }
817
+ return n;
818
+ }
819
+ function ro(e) {
820
+ return !!(e && getComputedStyle(e).direction === "rtl");
821
+ }
822
+ function Tt(e, t) {
823
+ if (!t || !e || !e.originalEvent)
824
+ return -1;
825
+ const r = { x: e.clientX, y: e.originalEvent.clientY };
826
+ let n = t.ownerDocument ? t.ownerDocument.elementFromPoint(r.x, r.y) : null;
827
+ for (; n && n.parentElement !== t; )
828
+ n = n.parentElement;
829
+ if (!n && t.matches("tr")) {
830
+ const s = (i) => {
831
+ const l = i.getBoundingClientRect();
832
+ return r.x > l.left && r.x < l.left + l.width && r.y > l.top && r.y < l.top + l.height;
833
+ };
834
+ n = Array.from(t.children).find(s) || null;
835
+ }
836
+ const o = t.children;
837
+ for (let s = 0; s < o.length; s++)
838
+ if (o[s] === n)
839
+ return s;
840
+ return -1;
841
+ }
842
+ class us extends a.Component {
843
+ constructor() {
844
+ super(...arguments), this.element = null;
845
+ }
846
+ componentDidMount() {
847
+ const { columnResize: t } = this.props;
848
+ t && t.resizable && t.setIsRtl(ro(this.element));
849
+ }
850
+ render() {
851
+ return /* @__PURE__ */ a.createElement(
852
+ "thead",
853
+ {
854
+ className: "k-table-thead k-grid-header",
855
+ role: "presentation",
856
+ ref: (t) => this.element = t,
857
+ ...Bn
858
+ },
859
+ this.props.headerRow,
860
+ this.props.filterRow
861
+ );
862
+ }
863
+ }
864
+ function no(e) {
865
+ const t = e.onClick ? {
866
+ onClick: e.onClick
867
+ } : {}, r = /* @__PURE__ */ a.createElement("span", { className: "k-link", ...t }, /* @__PURE__ */ a.createElement("span", { className: "k-column-title" }, e.title || e.field || " "), e.children);
868
+ return /* @__PURE__ */ a.createElement(a.Fragment, null, e.render ? e.render.call(void 0, r, e) : r);
869
+ }
870
+ const oo = (...e) => Object.assign({ allowUnsort: !0, mode: "single" }, ...e);
871
+ class so extends a.Component {
872
+ constructor() {
873
+ super(...arguments), this.draggable = null, this.isDragged = !1, this.onDrag = (t) => {
874
+ this.isDragged = !0;
875
+ const r = this.draggable && this.draggable.element;
876
+ r && this.props.resize(t.event, r, !1);
877
+ }, this.onRelease = (t) => {
878
+ if (!this.isDragged)
879
+ return;
880
+ const r = this.draggable && this.draggable.element;
881
+ r && this.props.resize(t.event, r, !0), this.isDragged = !1;
882
+ }, this.onDoubleClick = (t) => {
883
+ if (this.isDragged)
884
+ return;
885
+ const r = this.draggable && this.draggable.element;
886
+ r && this.props.autofit && this.props.autofit(t, r);
887
+ };
888
+ }
889
+ render() {
890
+ return /* @__PURE__ */ a.createElement(
891
+ ht,
892
+ {
893
+ onPress: (t) => {
894
+ t.event.originalEvent.stopPropagation();
895
+ },
896
+ onDrag: this.onDrag,
897
+ onRelease: this.onRelease,
898
+ ref: (t) => {
899
+ this.draggable = t;
900
+ }
901
+ },
902
+ /* @__PURE__ */ a.createElement(
903
+ "span",
904
+ {
905
+ className: "k-column-resizer",
906
+ style: { touchAction: "none" },
907
+ draggable: !1,
908
+ onDoubleClick: this.onDoubleClick
909
+ }
910
+ )
911
+ );
912
+ }
913
+ }
914
+ class ao extends a.PureComponent {
915
+ constructor() {
916
+ super(...arguments), this.draggable = null, this.onPress = (t) => {
917
+ const r = this.draggable && this.draggable.element;
918
+ r && this.props.pressHandler && this.props.pressHandler(t.event, r);
919
+ }, this.onDrag = (t) => {
920
+ const r = this.draggable && this.draggable.element;
921
+ r && this.props.dragHandler && this.props.dragHandler(t.event, r);
922
+ }, this.onRelease = (t) => {
923
+ this.draggable && this.draggable.element && this.props.releaseHandler && this.props.releaseHandler(t.event);
924
+ };
925
+ }
926
+ render() {
927
+ return /* @__PURE__ */ a.createElement(
928
+ ht,
929
+ {
930
+ onPress: this.onPress,
931
+ onDrag: this.onDrag,
932
+ onRelease: this.onRelease,
933
+ ref: (t) => {
934
+ this.draggable = t;
935
+ }
936
+ },
937
+ /* @__PURE__ */ a.createElement("tr", { className: "k-table-row", "aria-rowindex": this.props.ariaRowIndex, role: "row" }, this.props.children)
938
+ );
939
+ }
940
+ }
941
+ const io = {
942
+ true: { asc: "desc", desc: "", "": "asc" },
943
+ false: { asc: "desc", desc: "asc", "": "asc" }
944
+ }, lo = {
945
+ none: "none",
946
+ asc: "ascending",
947
+ desc: "descending"
948
+ };
949
+ class co extends a.Component {
950
+ constructor() {
951
+ super(...arguments), this.cellClick = (t, r) => {
952
+ if (t.preventDefault(), !this.props.sortChange)
953
+ return;
954
+ const { allowUnsort: n, mode: o } = oo(this.props.sortable || !1, r.sortable || !1), s = (this.props.sort || []).filter((c) => c.field === r.field)[0], i = io[n][s && s.dir || ""], l = o === "single" ? [] : (this.props.sort || []).filter((c) => c.field !== r.field);
955
+ i !== "" && r.field && l.push({ field: r.field, dir: i }), this.props.sortChange(t, l, r.field);
956
+ }, this.cellKeyDown = (t, r) => {
957
+ t.isDefaultPrevented() || t.keyCode === B.enter && this.cellClick(t, r);
958
+ }, this.cells = (t) => t.map((r, n) => {
959
+ const o = this.props.columns[r], { columnResize: s } = this.props, i = s && s.resizable && o.resizable, l = this.props.sortable && o.sortable, c = this.props.sort ? this.props.sort.findIndex((g) => g.field === o.field) : -1, u = c >= 0 && this.props.sort[c].dir || "none", p = {
960
+ sort: this.props.sort,
961
+ onSortChange: this.props.sortChange,
962
+ filter: this.props.columnMenuFilter,
963
+ onFilterChange: this.props.columnMenuFilterChange,
964
+ field: o.field
965
+ }, f = {
966
+ field: o.field,
967
+ onClick: l && ((g) => this.cellClick(g, o)) || void 0,
968
+ selectionChange: this.props.selectionChange,
969
+ title: o.title,
970
+ selectionValue: o.headerSelectionValue,
971
+ render: this.props.cellRender,
972
+ children: this.sortIcon(c),
973
+ sort: this.props.sort,
974
+ sortable: this.props.sortable,
975
+ sortChange: this.props.sortChange,
976
+ filterChange: this.props.filterChange,
977
+ columns: this.props.columns,
978
+ columnMenuWrapperProps: p
979
+ }, m = o.columnMenu || this.props.columnMenu, h = _(
980
+ "k-table-th",
981
+ {
982
+ "k-first": o.kFirst,
983
+ "k-filterable": !!m,
984
+ "k-header": !0,
985
+ "k-grid-header-sticky": o.locked,
986
+ "k-sorted": this.props.sort && this.props.sort.some((g) => g.field === o.field)
987
+ },
988
+ o.headerClassName
989
+ ), C = o.locked !== void 0 ? {
990
+ left: o.left,
991
+ right: o.right,
992
+ borderRightWidth: o.rightBorder ? "1px" : ""
993
+ } : {}, b = q(this).toLanguageString(at, v[at]);
994
+ let x = o.isAccessible ? {
995
+ ariaSort: l ? lo[u] : void 0,
996
+ role: "columnheader",
997
+ ariaColumnIndex: o.ariaColumnIndex,
998
+ ariaSelected: !1,
999
+ ariaDescription: l ? b : ""
1000
+ } : {
1001
+ role: "presentation"
1002
+ };
1003
+ return /* @__PURE__ */ a.createElement(
1004
+ Et,
1005
+ {
1006
+ key: n,
1007
+ colSpan: o.colSpan,
1008
+ rowSpan: o.rowSpan,
1009
+ className: h,
1010
+ style: C,
1011
+ columnId: o.id,
1012
+ navigatable: o.navigatable,
1013
+ onKeyDown: l && ((g) => this.cellKeyDown(g, o)) || void 0,
1014
+ ...x
1015
+ },
1016
+ o.headerCell && /* @__PURE__ */ a.createElement(o.headerCell, { ...f }),
1017
+ !o.headerCell && /* @__PURE__ */ a.createElement("span", { className: "k-cell-inner" }, /* @__PURE__ */ a.createElement(no, { ...f }), m && /* @__PURE__ */ a.createElement(m, { ...p })),
1018
+ s && i && /* @__PURE__ */ a.createElement(
1019
+ so,
1020
+ {
1021
+ key: "ColumnResizer",
1022
+ resize: (g, I, F) => s.dragHandler(g, o, I, F)
1023
+ }
1024
+ )
1025
+ );
1026
+ });
1027
+ }
1028
+ sortIcon(t) {
1029
+ if (!this.props.sort || t < 0)
1030
+ return null;
1031
+ const r = this.props.sort[t].dir;
1032
+ return r ? [
1033
+ /* @__PURE__ */ a.createElement(Re, { key: 1, name: `sort-${r}-small`, icon: r === "asc" ? Ut : jt }),
1034
+ this.props.sort.length > 1 && /* @__PURE__ */ a.createElement("span", { key: 2, className: "k-sort-order" }, t + 1)
1035
+ ] : null;
1036
+ }
1037
+ render() {
1038
+ return this.props.columnsMap.map((t, r) => this.props.pressHandler && /* @__PURE__ */ a.createElement(
1039
+ ao,
1040
+ {
1041
+ key: r,
1042
+ pressHandler: this.props.pressHandler,
1043
+ dragHandler: this.props.dragHandler,
1044
+ releaseHandler: this.props.releaseHandler,
1045
+ ariaRowIndex: r + 1
1046
+ },
1047
+ this.cells(t)
1048
+ ) || /* @__PURE__ */ a.createElement("tr", { className: "k-table-row", "aria-rowindex": r + 1, role: "row" }, this.cells(t)));
1049
+ }
1050
+ }
1051
+ $(co);
1052
+ function ps(e) {
1053
+ const t = [
1054
+ /* @__PURE__ */ a.createElement(
1055
+ "input",
1056
+ {
1057
+ key: 0,
1058
+ checked: e.selectionValue,
1059
+ id: e.inputId,
1060
+ type: "checkbox",
1061
+ className: "k-checkbox k-checkbox-md k-rounded-md",
1062
+ onChange: (r) => e.selectionChange({
1063
+ field: e.field,
1064
+ syntheticEvent: r
1065
+ })
1066
+ }
1067
+ ),
1068
+ /* @__PURE__ */ a.createElement("label", { key: 1, className: "k-checkbox-label", htmlFor: e.inputId })
1069
+ ];
1070
+ return /* @__PURE__ */ a.createElement(a.Fragment, null, e.render ? e.render.call(void 0, t, e) : t);
1071
+ }
1072
+ function ds(e) {
1073
+ const { enabled: t, columns: r = [], tableViewPortWidth: n, scrollLeft: o } = e, s = r.map(() => 1), i = r.map(() => !1);
1074
+ if (!t)
1075
+ return { colSpans: s, hiddenColumns: i };
1076
+ const l = r.map((g) => parseFloat((g.width || "").toString()) || 10);
1077
+ let c = 0;
1078
+ for (let g = 0; g < r.length; g++) {
1079
+ if (r[g].locked)
1080
+ continue;
1081
+ const I = g < l.length - 1 ? l[g + 1] : 0;
1082
+ if (c + l[g] + I < o)
1083
+ i[g] = !0, c += l[g];
1084
+ else
1085
+ break;
1086
+ }
1087
+ const u = l.reduce((g, I) => g + I, 0);
1088
+ c = 0;
1089
+ for (let g = r.length - 1; g >= 0; g--)
1090
+ if (!r[g].locked)
1091
+ if (c + 2 * l[g] < u - n - o)
1092
+ i[g] = !0, c += l[g];
1093
+ else
1094
+ break;
1095
+ const p = [...i], f = (g) => g;
1096
+ let m = p.lastIndexOf(!1), h = p.some(f), C = p.every(f), b, x;
1097
+ for (; h && p.length && (m !== -1 || C); ) {
1098
+ for (m < p.length - 1 && (b = C ? p.length : p.length - m - 1, x = p.length - b, x === 0 && (x = b - 1), i[x] = !1, s[x] = b, p.splice(m + 1, b)); p.length && !p[p.length - 1]; )
1099
+ p.pop();
1100
+ m = p.lastIndexOf(!1), h = p.some(f), C = p.every(f);
1101
+ }
1102
+ return { colSpans: s, hiddenColumns: i };
1103
+ }
1104
+ class hs {
1105
+ constructor(t) {
1106
+ this.columns = [], this.resizable = !1, this.isRtl = !1, this.setIsRtl = (r) => {
1107
+ this.isRtl = r;
1108
+ }, this.onResize = t, this.dragHandler = this.dragHandler.bind(this);
1109
+ }
1110
+ dragHandler(t, r, n, o) {
1111
+ const s = t.originalEvent;
1112
+ o || (s.preventDefault(), s.stopPropagation(), s.stopImmediatePropagation());
1113
+ const i = n.parentElement;
1114
+ if (!i || !i.parentElement)
1115
+ return;
1116
+ const l = i.clientWidth;
1117
+ let c;
1118
+ if (this.isRtl ? (c = n.getBoundingClientRect().right - n.offsetWidth / 2 - t.clientX, c += l) : c = l + t.clientX - n.getBoundingClientRect().left - n.offsetWidth / 2, !o && Math.abs(c - l) < 1)
1119
+ return;
1120
+ this.setWidths(r, Math.floor(c) / l);
1121
+ const u = this.columns.filter((p) => !p.children.length).indexOf(r);
1122
+ this.onResize(u, l, c, s, o);
1123
+ }
1124
+ setWidths(t, r) {
1125
+ const n = this.columns.indexOf(t), o = [];
1126
+ let s = t.children.length;
1127
+ for (let i = n + 1; s > 0 && i < this.columns.length; i++, s--) {
1128
+ const l = this.columns[i];
1129
+ l.children.length ? s += l.children.length : o.push(l);
1130
+ }
1131
+ o.length === 0 && o.push(t), o.forEach((i) => {
1132
+ let l = i.width ? parseFloat(i.width.toString()) * r : 0;
1133
+ const c = i.minResizableWidth === void 0 ? 10 : i.minResizableWidth;
1134
+ l < c && (l = c), i.width = Math.floor(l);
1135
+ }), this.updateColElements(o);
1136
+ }
1137
+ updateColElements(t) {
1138
+ const r = this.columns.filter((o) => !o.children.length);
1139
+ let n = 1e-10;
1140
+ for (let o = 0; o < t.length; o++) {
1141
+ const s = r.indexOf(t[o]), i = parseFloat((t[o].width || 0).toString());
1142
+ n += i - Math.floor(i);
1143
+ const l = Math.floor(i) + Math.floor(n);
1144
+ n -= Math.floor(n), this.setColWidth(this.colGroupMain && this.colGroupMain.children[s], l), this.setColWidth(this.colGroupHeader && this.colGroupHeader.children[s], l), this.setColWidth(this.colGroupFooter && this.colGroupFooter.children[s], l);
1145
+ }
1146
+ }
1147
+ setColWidth(t, r) {
1148
+ t && (t.style.width = r + "px");
1149
+ }
1150
+ }
1151
+ class gs {
1152
+ constructor(t, r, n) {
1153
+ this.columns = [], this.reorderable = !1, this.groupable = !1, this.startColumn = -1, this.startGroup = -1, this.currentColumn = -1, this.currentGroup = -1, this.dropElementClue = null, this.dragElementClue = null, this.groupPanelDivElement = null, this.refGroupPanelDiv = (o) => {
1154
+ this.groupPanelDivElement = o;
1155
+ }, this.refDropElementClue = (o) => {
1156
+ this.dropElementClue = o;
1157
+ }, this.refDragElementClue = (o) => {
1158
+ this.dragElementClue = o;
1159
+ }, this.pressHandler = (o, s) => {
1160
+ const i = this.getColumnIndex(o, s);
1161
+ if (this.startGroup = this.getGroupIndex(o), i >= 0) {
1162
+ const l = this.columns[i];
1163
+ (l.reorderable && this.reorderable || l.groupable && this.groupable) && (this.startColumn = i);
1164
+ }
1165
+ }, this.dragHandler = (o, s) => {
1166
+ if (o.isTouch || o.originalEvent.preventDefault(), o.originalEvent.stopPropagation(), this.startColumn === -1 && this.startGroup === -1)
1167
+ return;
1168
+ this.currentColumn = this.getColumnIndex(o, s), this.currentGroup = this.getGroupIndex(o), this.groupPanelDivElement && this.startGroup >= 0 && (this.currentGroup = Math.min(this.currentGroup, this.groupPanelDivElement.children.length - 2));
1169
+ const i = !this.isValid();
1170
+ i && (this.currentColumn = -1, this.currentGroup = -1);
1171
+ const l = this.currentColumn >= 0 ? s.children[this.columns[this.currentColumn].index] : this.groupPanelDivElement && this.groupPanelDivElement.children[this.currentGroup];
1172
+ this.updateDragElementClue(o, s, l, i), this.updateDropElementClue(o, s, l, i);
1173
+ }, this.releaseHandler = (o) => {
1174
+ const s = this.startColumn, i = this.currentColumn, l = this.startGroup, c = this.currentGroup;
1175
+ this.dropElementClue && this.dropElementClue.setState({ visible: !1 }), this.dragElementClue && this.dragElementClue.setState({ visible: !1 });
1176
+ const u = this.isValid();
1177
+ this.startColumn = this.startGroup = this.currentColumn = this.currentGroup = -1, u && (s >= 0 && i >= 0 ? this.columnReorder(s, i, o.originalEvent) : l >= 0 && c >= 0 ? this.groupReorder(l, c, o.originalEvent) : s >= 0 && c >= 0 && this.columnToGroup(s, c, o.originalEvent));
1178
+ }, this.columnReorder = t, this.groupReorder = r, this.columnToGroup = n;
1179
+ }
1180
+ getColumnIndex(t, r) {
1181
+ if (!r || r.parentElement === this.groupPanelDivElement)
1182
+ return -1;
1183
+ const n = Tt(t, r);
1184
+ if (n === -1)
1185
+ return -1;
1186
+ for (let o = 0; o < r.parentNode.children.length; o++)
1187
+ if (r.parentNode.children[o] === r)
1188
+ return this.columns.findIndex((s) => s.index === n && s.depth === o);
1189
+ return -1;
1190
+ }
1191
+ getGroupIndex(t) {
1192
+ return Tt(t, this.groupPanelDivElement);
1193
+ }
1194
+ isValid() {
1195
+ return this.startGroup >= 0 ? this.currentGroup >= 0 && this.currentGroup !== this.startGroup : this.startColumn === -1 ? !1 : this.currentGroup >= 0 ? this.columns[this.startColumn].groupable === !0 && this.groupable === !0 : this.reorderable === !0 && this.currentColumn >= 0 && this.currentColumn !== this.startColumn && this.columns[this.startColumn].reorderable === !0 && this.columns[this.currentColumn].parentIndex === this.columns[this.startColumn].parentIndex;
1196
+ }
1197
+ updateDragElementClue(t, r, n, o) {
1198
+ if (!this.dragElementClue)
1199
+ return;
1200
+ const s = this.startColumn >= 0 ? r.children[this.columns[this.startColumn].index].innerText : r.innerText;
1201
+ this.dragElementClue.setState({
1202
+ visible: !0,
1203
+ top: t.pageY + 10,
1204
+ left: t.pageX,
1205
+ innerText: s,
1206
+ status: o || !n ? "k-i-cancel" : "k-i-plus"
1207
+ });
1208
+ }
1209
+ updateDropElementClue(t, r, n, o) {
1210
+ if (!this.dropElementClue)
1211
+ return;
1212
+ if (o || !n) {
1213
+ this.dropElementClue.setState({ visible: !1 });
1214
+ return;
1215
+ }
1216
+ const s = n.getBoundingClientRect();
1217
+ let i = s.left + t.pageX - t.clientX - 6;
1218
+ (this.currentColumn > this.startColumn || this.currentGroup > this.startGroup && this.startGroup !== -1) && (i += s.width);
1219
+ const l = s.top + t.pageY - t.clientY;
1220
+ this.dropElementClue.setState({
1221
+ visible: !0,
1222
+ top: l,
1223
+ left: i,
1224
+ height: this.currentColumn >= 0 ? r.clientHeight : s.height
1225
+ });
1226
+ }
1227
+ }
1228
+ class fs extends a.PureComponent {
1229
+ constructor(t) {
1230
+ super(t), this.elementRef = a.createRef(), this.state = {
1231
+ visible: !1,
1232
+ top: 0,
1233
+ left: 0,
1234
+ innerText: "",
1235
+ status: "k-i-cancel"
1236
+ }, this.hiddenElementRef = a.createRef();
1237
+ }
1238
+ get element() {
1239
+ return this.elementRef.current;
1240
+ }
1241
+ render() {
1242
+ const t = this.hiddenElementRef.current, { status: r } = this.state, n = this.state.visible && $t && Jt(
1243
+ /* @__PURE__ */ a.createElement(
1244
+ "div",
1245
+ {
1246
+ ref: this.elementRef,
1247
+ className: "k-header k-drag-clue",
1248
+ style: {
1249
+ display: "block",
1250
+ position: "absolute",
1251
+ zIndex: 2e4,
1252
+ padding: "8px 12px",
1253
+ top: this.state.top + "px",
1254
+ left: this.state.left + "px"
1255
+ }
1256
+ },
1257
+ /* @__PURE__ */ a.createElement(Re, { className: "k-drag-status", name: r, icon: r === "k-i-cancel" ? vn : En }),
1258
+ this.state.innerText
1259
+ ),
1260
+ t && t.ownerDocument ? t.ownerDocument.body : document.body
1261
+ );
1262
+ return /* @__PURE__ */ a.createElement(a.Fragment, null, n, /* @__PURE__ */ a.createElement("div", { ref: this.hiddenElementRef, style: { display: "none" } }));
1263
+ }
1264
+ }
1265
+ class ms extends a.PureComponent {
1266
+ constructor(t) {
1267
+ super(t), this.state = {
1268
+ height: 0,
1269
+ visible: !1,
1270
+ left: 0,
1271
+ top: 0
1272
+ }, this.hiddenElementRef = a.createRef();
1273
+ }
1274
+ render() {
1275
+ const t = this.hiddenElementRef.current, r = this.state.visible && $t && Jt(
1276
+ /* @__PURE__ */ a.createElement(
1277
+ "div",
1278
+ {
1279
+ className: "k-grouping-dropclue",
1280
+ style: {
1281
+ zIndex: 1e4,
1282
+ display: "block",
1283
+ top: this.state.top + "px",
1284
+ left: this.state.left + "px",
1285
+ height: this.state.height + "px"
1286
+ }
1287
+ }
1288
+ ),
1289
+ t && t.ownerDocument ? t.ownerDocument.body : document.body
1290
+ );
1291
+ return /* @__PURE__ */ a.createElement(a.Fragment, null, r, /* @__PURE__ */ a.createElement("div", { ref: this.hiddenElementRef, style: { display: "none" } }));
1292
+ }
1293
+ }
1294
+ class Yr extends a.Component {
1295
+ constructor() {
1296
+ super(...arguments), this.onChange = (t) => {
1297
+ this.props.onFilterChange.call(void 0, {
1298
+ nextFilter: { ...this.props.filter, value: t.value }
1299
+ });
1300
+ };
1301
+ }
1302
+ /**
1303
+ * @hidden
1304
+ */
1305
+ render() {
1306
+ const t = q(this), { ariaLabel: r = t.toLanguageString(et, v[et]) } = this.props;
1307
+ return /* @__PURE__ */ a.createElement(
1308
+ gn,
1309
+ {
1310
+ value: this.props.filter.value || "",
1311
+ onChange: this.onChange,
1312
+ "aria-label": r
1313
+ }
1314
+ );
1315
+ }
1316
+ }
1317
+ Yr.propTypes = {
1318
+ filter: d.object.isRequired,
1319
+ onFilterChange: d.func.isRequired,
1320
+ ariaLabel: d.string
1321
+ };
1322
+ $(Yr);
1323
+ class Xr extends a.Component {
1324
+ constructor() {
1325
+ super(...arguments), this.onChange = (t) => {
1326
+ this.props.onFilterChange.call(void 0, {
1327
+ nextFilter: { ...this.props.filter, value: t.value }
1328
+ });
1329
+ };
1330
+ }
1331
+ /**
1332
+ * @hidden
1333
+ */
1334
+ render() {
1335
+ const t = q(this), {
1336
+ min: r,
1337
+ max: n,
1338
+ filter: o,
1339
+ ariaLabel: s = t.toLanguageString(Qe, v[Qe])
1340
+ } = this.props;
1341
+ return /* @__PURE__ */ a.createElement(
1342
+ Me,
1343
+ {
1344
+ value: typeof o.value == "number" ? o.value : null,
1345
+ onChange: this.onChange,
1346
+ ariaLabel: s,
1347
+ "aria-valuemin": r,
1348
+ "aria-valuemax": n,
1349
+ min: r,
1350
+ max: n
1351
+ }
1352
+ );
1353
+ }
1354
+ }
1355
+ Xr.propTypes = {
1356
+ filter: d.object.isRequired,
1357
+ onFilterChange: d.func.isRequired
1358
+ };
1359
+ $(Xr);
1360
+ class uo extends a.Component {
1361
+ constructor() {
1362
+ super(...arguments), this.onChange = (t) => {
1363
+ this.props.onFilterChange.call(void 0, {
1364
+ nextFilter: { ...this.props.filter, value: t.value }
1365
+ });
1366
+ };
1367
+ }
1368
+ /**
1369
+ * @hidden
1370
+ */
1371
+ render() {
1372
+ const t = this.props.filter;
1373
+ return /* @__PURE__ */ a.createElement(
1374
+ ft,
1375
+ {
1376
+ value: t.value || null,
1377
+ onChange: this.onChange,
1378
+ ariaLabel: this.props.ariaLabel
1379
+ }
1380
+ );
1381
+ }
1382
+ }
1383
+ uo.propTypes = {
1384
+ filter: d.object.isRequired,
1385
+ onFilterChange: d.func.isRequired,
1386
+ ariaLabel: d.string
1387
+ };
1388
+ class bt extends a.Component {
1389
+ constructor() {
1390
+ super(...arguments), this.onChange = (t) => {
1391
+ this.props.onFilterChange.call(void 0, {
1392
+ nextFilter: { ...this.props.filter, value: t.value.value }
1393
+ });
1394
+ };
1395
+ }
1396
+ /**
1397
+ * @hidden
1398
+ */
1399
+ render() {
1400
+ const t = q(this), {
1401
+ filter: r,
1402
+ data: n = [],
1403
+ defaultItem: o,
1404
+ ariaLabel: s = t.toLanguageString(Je, v[Je])
1405
+ } = this.props, i = n.map((l) => ({
1406
+ ...l,
1407
+ text: t.toLanguageString(l.text, v[l.text] || l.text)
1408
+ }));
1409
+ return /* @__PURE__ */ a.createElement(
1410
+ G,
1411
+ {
1412
+ value: i.find((l) => l.value === r.value) || null,
1413
+ onChange: this.onChange,
1414
+ defaultItem: o,
1415
+ data: i,
1416
+ textField: "text",
1417
+ ariaLabel: s
1418
+ }
1419
+ );
1420
+ }
1421
+ }
1422
+ bt.propTypes = {
1423
+ filter: d.object.isRequired,
1424
+ onFilterChange: d.func.isRequired,
1425
+ data: d.arrayOf(d.shape({ text: d.string, value: d.any })),
1426
+ defaultItem: d.any,
1427
+ ariaLabel: d.string
1428
+ };
1429
+ $(bt);
1430
+ class po extends a.Component {
1431
+ constructor() {
1432
+ super(...arguments), this.data = [{ text: pr, value: !0 }, { text: dr, value: !1 }];
1433
+ }
1434
+ /**
1435
+ * @hidden
1436
+ */
1437
+ render() {
1438
+ return /* @__PURE__ */ a.createElement(
1439
+ bt,
1440
+ {
1441
+ filter: this.props.filter,
1442
+ onFilterChange: this.props.onFilterChange,
1443
+ data: this.props.data || this.data,
1444
+ defaultItem: this.props.defaultItem,
1445
+ ariaLabel: this.props.ariaLabel
1446
+ }
1447
+ );
1448
+ }
1449
+ }
1450
+ po.propTypes = {
1451
+ filter: d.object.isRequired,
1452
+ onFilterChange: d.func.isRequired,
1453
+ data: d.arrayOf(d.shape({ text: d.string, value: d.any })),
1454
+ ariaLabel: d.string,
1455
+ defaultItem: d.any
1456
+ };
1457
+ const ho = [
1458
+ { text: or, operator: "contains" },
1459
+ { text: sr, operator: "doesnotcontain" },
1460
+ { text: ie, operator: "eq" },
1461
+ { text: le, operator: "neq" },
1462
+ { text: nr, operator: "startswith" },
1463
+ { text: ar, operator: "endswith" },
1464
+ { text: Le, operator: "isnull" },
1465
+ { text: De, operator: "isnotnull" },
1466
+ { text: tr, operator: "isempty" },
1467
+ { text: rr, operator: "isnotempty" }
1468
+ ], go = [
1469
+ { text: ie, operator: "eq" },
1470
+ { text: le, operator: "neq" },
1471
+ { text: ir, operator: "gte" },
1472
+ { text: lr, operator: "gt" },
1473
+ { text: cr, operator: "lte" },
1474
+ { text: ur, operator: "lt" },
1475
+ { text: Le, operator: "isnull" },
1476
+ { text: De, operator: "isnotnull" }
1477
+ ], fo = [
1478
+ { text: ie, operator: "eq" },
1479
+ { text: le, operator: "neq" },
1480
+ { text: hr, operator: "gte" },
1481
+ { text: gr, operator: "gt" },
1482
+ { text: fr, operator: "lt" },
1483
+ { text: mr, operator: "lte" },
1484
+ { text: Le, operator: "isnull" },
1485
+ { text: De, operator: "isnotnull" }
1486
+ ], mo = [
1487
+ { text: ie, operator: "eq" },
1488
+ { text: le, operator: "neq" }
1489
+ ];
1490
+ class vs {
1491
+ /**
1492
+ * An array containing the operators for the TextFilter component.
1493
+ *
1494
+ * The operators are:
1495
+ *
1496
+ * - { text: 'filter.containsOperator', operator: 'contains' }
1497
+ * - { text: 'filter.notContainsOperator', operator: 'doesnotcontain' }
1498
+ * - { text: 'filter.eqOperator', operator: 'eq' }
1499
+ * - { text: 'filter.notEqOperator', operator: 'neq' }
1500
+ * - { text: 'filter.startsWithOperator', operator: 'startswith' }
1501
+ * - { text: 'filter.endsWithOperator', operator: 'endswith' }
1502
+ * - { text: 'filter.isNullOperator', operator: 'isnull' }
1503
+ * - { text: 'filter.isNotNullOperator', operator: 'isnotnull' }
1504
+ * - { text: 'filter.isEmptyOperator', operator: 'isempty' }
1505
+ * - { text: 'filter.isNotEmptyOperator', operator: 'isnotempty' }
1506
+ */
1507
+ static get text() {
1508
+ return [...ho];
1509
+ }
1510
+ /**
1511
+ * An array containing the operators for the NumericFilter component.
1512
+ *
1513
+ * The operators are:
1514
+ *
1515
+ * - { text: 'filter.eqOperator', operator: 'eq' }
1516
+ * - { text: 'filter.notEqOperator', operator: 'neq' }
1517
+ * - { text: 'filter.gteOperator', operator: 'gte' }
1518
+ * - { text: 'filter.gtOperator', operator: 'gt' }
1519
+ * - { text: 'filter.lteOperator', operator: 'lte' }
1520
+ * - { text: 'filter.ltOperator', operator: 'lt' }
1521
+ * - { text: 'filter.isNullOperator', operator: 'isnull' }
1522
+ * - { text: 'filter.isNotNullOperator', operator: 'isnotnull' }
1523
+ */
1524
+ static get numeric() {
1525
+ return [...go];
1526
+ }
1527
+ /**
1528
+ * An array containing the operators for the DateFilter component.
1529
+ *
1530
+ * The operators are:
1531
+ *
1532
+ * - { text: 'filter.eqOperator', operator: 'eq' }
1533
+ * - { text: 'filter.notEqOperator', operator: 'neq' }
1534
+ * - { text: 'filter.afterOrEqualOperator', operator: 'gte' }
1535
+ * - { text: 'filter.afterOperator', operator: 'gt' }
1536
+ * - { text: 'filter.beforeOperator', operator: 'lt' }
1537
+ * - { text: 'filter.beforeOrEqualOperator', operator: 'lte' }
1538
+ * - { text: 'filter.isNullOperator', operator: 'isnull' }
1539
+ * - { text: 'filter.isNotNullOperator', operator: 'isnotnull' }
1540
+ */
1541
+ static get date() {
1542
+ return [...fo];
1543
+ }
1544
+ /**
1545
+ * An array containing the operators for the BooleanFilter component.
1546
+ *
1547
+ * The operators are:
1548
+ *
1549
+ * - { text: 'filter.eqOperator', operator: 'eq' }
1550
+ * - { text: 'filter.notEqOperator', operator: 'neq' }
1551
+ */
1552
+ static get boolean() {
1553
+ return [...mo];
1554
+ }
1555
+ }
1556
+ const Ur = (e) => e === "contains" || e === "doesnotcontain" || e === "startswith" || e === "endswith", ut = (e) => e === "isnull" || e === "isnotnull" || e === "isempty" || e === "isnotempty", Bt = (e) => {
1557
+ e.value === void 0 && !ut(e.operator) && (e.value = Ur(e.operator) ? "" : null);
1558
+ };
1559
+ class yt extends a.Component {
1560
+ constructor() {
1561
+ super(...arguments), this.onFieldChange = (t) => {
1562
+ const r = t.value.name, n = this.props.fields.find((l) => l.name === r), o = this.props.filter, s = n && !n.operators.some((l) => l.operator === o.operator) ? n.operators[0].operator : o.operator, i = {
1563
+ field: r,
1564
+ operator: s
1565
+ };
1566
+ Bt(i), this.triggerOnFilterChange(o, i, t);
1567
+ }, this.onOperatorChange = (t) => {
1568
+ const r = t.value.operator, n = this.props.filter;
1569
+ let o;
1570
+ if (ut(r)) {
1571
+ let { value: s, ...i } = n;
1572
+ o = { ...i, operator: r };
1573
+ } else
1574
+ o = { ...n, operator: r };
1575
+ Bt(o), this.triggerOnFilterChange(n, o, t);
1576
+ }, this.onInputChange = (t) => {
1577
+ const r = this.props.filter;
1578
+ let n = t.nextFilter;
1579
+ if (ut(n.operator)) {
1580
+ const o = this.props.fields.find((s) => s.name === n.field);
1581
+ n = { ...n, operator: o && o.operators[0].operator || n.operator };
1582
+ }
1583
+ this.triggerOnFilterChange(r, n, t);
1584
+ }, this.triggerOnFilterChange = (t, r, n) => {
1585
+ const o = {
1586
+ prevFilter: t,
1587
+ nextFilter: r,
1588
+ syntheticEvent: n.syntheticEvent,
1589
+ nativeEvent: n.nativeEvent,
1590
+ target: this
1591
+ };
1592
+ this.props.onChange.call(void 0, o);
1593
+ }, this.onFilterRemove = (t) => {
1594
+ const r = {
1595
+ filter: this.props.filter,
1596
+ syntheticEvent: t.syntheticEvent,
1597
+ nativeEvent: t.nativeEvent,
1598
+ target: this
1599
+ };
1600
+ this.props.onRemove.call(void 0, r);
1601
+ };
1602
+ }
1603
+ render() {
1604
+ const t = q(this), {
1605
+ fields: r,
1606
+ filter: n,
1607
+ ariaLabel: o = t.toLanguageString(Ue, v[Ue])
1608
+ } = this.props, s = r.find((l) => l.name === n.field), i = (s && s.operators || []).map((l) => ({ ...l, text: t.toLanguageString(l.text, v[l.text] || l.text) }));
1609
+ return /* @__PURE__ */ a.createElement("div", { className: "k-filter-toolbar" }, /* @__PURE__ */ a.createElement(Ht, { keyboardNavigation: !1, role: "toolbar", ariaLabel: o }, /* @__PURE__ */ a.createElement(We, { className: "k-filter-field" }, /* @__PURE__ */ a.createElement(
1610
+ G,
1611
+ {
1612
+ className: "k-filter-dropdown",
1613
+ data: r,
1614
+ textField: "label",
1615
+ value: r.find((l) => l.name === n.field),
1616
+ onChange: this.onFieldChange,
1617
+ ariaLabel: t.toLanguageString(je, v[je])
1618
+ }
1619
+ )), /* @__PURE__ */ a.createElement(We, { className: "k-filter-operator" }, /* @__PURE__ */ a.createElement(
1620
+ G,
1621
+ {
1622
+ data: i,
1623
+ textField: "text",
1624
+ value: i.find((l) => l.operator === n.operator),
1625
+ onChange: this.onOperatorChange,
1626
+ ariaLabel: t.toLanguageString(Ze, v[Ze])
1627
+ }
1628
+ )), /* @__PURE__ */ a.createElement(We, { className: "k-filter-value" }, s && /* @__PURE__ */ a.createElement(s.filter, { filter: n, onFilterChange: this.onInputChange, min: s.min, max: s.max })), /* @__PURE__ */ a.createElement(
1629
+ K,
1630
+ {
1631
+ className: "k-toolbar-button",
1632
+ title: t.toLanguageString(oe, v[oe]),
1633
+ icon: "x",
1634
+ svgIcon: Zt,
1635
+ fillMode: "flat",
1636
+ type: "button",
1637
+ onClick: this.onFilterRemove
1638
+ }
1639
+ )));
1640
+ }
1641
+ }
1642
+ yt.propTypes = {
1643
+ filter: d.object.isRequired,
1644
+ fields: d.array.isRequired,
1645
+ ariaLabel: d.string,
1646
+ onChange: d.func.isRequired,
1647
+ onRemove: d.func.isRequired
1648
+ };
1649
+ $(yt);
1650
+ const jr = class extends a.Component {
1651
+ constructor() {
1652
+ super(...arguments), this.onGroupRemove = (e) => {
1653
+ const t = {
1654
+ filter: this.props.filter,
1655
+ target: this,
1656
+ syntheticEvent: e,
1657
+ nativeEvent: e.nativeEvent
1658
+ };
1659
+ this.props.onRemove.call(void 0, t);
1660
+ }, this.onAddExpression = (e) => {
1661
+ const t = this.props.filter, r = this.props.fields[0], n = { field: r.name, operator: r.operators[0].operator };
1662
+ n.value = Ur(n.operator) ? "" : null;
1663
+ const o = {
1664
+ nextFilter: {
1665
+ ...t,
1666
+ filters: [...t.filters, n]
1667
+ },
1668
+ prevFilter: t,
1669
+ target: this,
1670
+ syntheticEvent: e,
1671
+ nativeEvent: e.nativeEvent
1672
+ };
1673
+ this.props.onChange.call(void 0, o);
1674
+ }, this.onAddGroup = (e) => {
1675
+ const t = this.props.filter, r = {
1676
+ nextFilter: { ...t, filters: [...t.filters, { ...this.props.defaultGroupFilter }] },
1677
+ prevFilter: t,
1678
+ target: this,
1679
+ syntheticEvent: e,
1680
+ nativeEvent: e.nativeEvent
1681
+ };
1682
+ this.props.onChange.call(void 0, r);
1683
+ }, this.onLogicAnd = (e) => this.changeLogic("and", e), this.onLogicOr = (e) => this.changeLogic("or", e), this.changeLogic = (e, t) => {
1684
+ const r = this.props.filter;
1685
+ if (r.logic !== e) {
1686
+ const n = {
1687
+ nextFilter: { ...r, logic: e },
1688
+ prevFilter: r,
1689
+ target: this,
1690
+ syntheticEvent: t,
1691
+ nativeEvent: t.nativeEvent
1692
+ };
1693
+ this.props.onChange.call(void 0, n);
1694
+ }
1695
+ }, this.replaceFilter = (e, t) => {
1696
+ const r = this.props.filter, n = r.filters.map((o) => o === e ? t : o);
1697
+ return { ...r, filters: n };
1698
+ }, this.onChange = (e) => {
1699
+ const r = {
1700
+ nextFilter: this.replaceFilter(e.prevFilter, e.nextFilter),
1701
+ prevFilter: this.props.filter,
1702
+ syntheticEvent: e.syntheticEvent,
1703
+ nativeEvent: e.nativeEvent,
1704
+ target: this
1705
+ };
1706
+ this.props.onChange.call(void 0, r);
1707
+ }, this.onRemove = (e) => {
1708
+ const t = this.props.filter, r = t.filters.filter((o) => o !== e.filter), n = {
1709
+ nextFilter: { ...t, filters: r },
1710
+ prevFilter: t,
1711
+ syntheticEvent: e.syntheticEvent,
1712
+ nativeEvent: e.nativeEvent,
1713
+ target: this
1714
+ };
1715
+ this.props.onChange.call(void 0, n);
1716
+ };
1717
+ }
1718
+ render() {
1719
+ const e = q(this), {
1720
+ fields: t,
1721
+ filter: r,
1722
+ ariaLabel: n = e.toLanguageString(Xe, v[Xe])
1723
+ } = this.props;
1724
+ return /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement("div", { className: "k-filter-toolbar" }, /* @__PURE__ */ a.createElement(Ht, { keyboardNavigation: !1, role: "toolbar", ariaLabel: n }, /* @__PURE__ */ a.createElement(dn, { className: "k-toolbar-button-group" }, /* @__PURE__ */ a.createElement(K, { className: "k-toolbar-button", togglable: !0, onClick: this.onLogicAnd, selected: r.logic === "and", type: "button" }, e.toLanguageString(Ve, v[Ve])), /* @__PURE__ */ a.createElement(K, { className: "k-toolbar-button", togglable: !0, onClick: this.onLogicOr, selected: r.logic === "or", type: "button" }, e.toLanguageString(Ye, v[Ye]))), /* @__PURE__ */ a.createElement(
1725
+ K,
1726
+ {
1727
+ className: "k-toolbar-button",
1728
+ title: e.toLanguageString(te, v[te]),
1729
+ icon: "filter-add-expression",
1730
+ svgIcon: Cn,
1731
+ type: "button",
1732
+ onClick: this.onAddExpression
1733
+ },
1734
+ e.toLanguageString(te, v[te])
1735
+ ), /* @__PURE__ */ a.createElement(
1736
+ K,
1737
+ {
1738
+ className: "k-toolbar-button",
1739
+ title: e.toLanguageString(re, v[re]),
1740
+ icon: "filter-add-group",
1741
+ svgIcon: xn,
1742
+ type: "button",
1743
+ onClick: this.onAddGroup
1744
+ },
1745
+ e.toLanguageString(re, v[re])
1746
+ ), /* @__PURE__ */ a.createElement(
1747
+ K,
1748
+ {
1749
+ className: "k-toolbar-button",
1750
+ title: e.toLanguageString(oe, v[oe]),
1751
+ icon: "x",
1752
+ svgIcon: Zt,
1753
+ fillMode: "flat",
1754
+ type: "button",
1755
+ onClick: this.onGroupRemove
1756
+ }
1757
+ ))), r.filters.length > 0 && /* @__PURE__ */ a.createElement("ul", { role: "group", className: "k-filter-lines" }, r.filters.map(
1758
+ (o, s) => /* @__PURE__ */ a.createElement("li", { role: "treeitem", key: s, className: "k-filter-item" }, Qt(o) ? /* @__PURE__ */ a.createElement(
1759
+ jr,
1760
+ {
1761
+ filter: o,
1762
+ fields: t,
1763
+ onChange: this.onChange,
1764
+ onRemove: this.onRemove,
1765
+ defaultGroupFilter: this.props.defaultGroupFilter,
1766
+ ariaLabel: this.props.ariaLabel,
1767
+ ariaLabelExpression: this.props.ariaLabelExpression
1768
+ }
1769
+ ) : /* @__PURE__ */ a.createElement(
1770
+ yt,
1771
+ {
1772
+ filter: o,
1773
+ fields: t,
1774
+ ariaLabel: this.props.ariaLabelExpression,
1775
+ onChange: this.onChange,
1776
+ onRemove: this.onRemove
1777
+ }
1778
+ ))
1779
+ )));
1780
+ }
1781
+ };
1782
+ let It = jr;
1783
+ It.propTypes = {
1784
+ filter: d.object.isRequired,
1785
+ fields: d.array.isRequired,
1786
+ ariaLabel: d.string,
1787
+ ariaLabelExpression: d.string,
1788
+ onChange: d.func.isRequired,
1789
+ onRemove: d.func.isRequired,
1790
+ defaultGroupFilter: d.object.isRequired
1791
+ };
1792
+ $(It);
1793
+ class vo extends a.Component {
1794
+ constructor(t) {
1795
+ super(t), this.onFilterChange = (r) => {
1796
+ const n = {
1797
+ filter: r.nextFilter,
1798
+ syntheticEvent: r.syntheticEvent,
1799
+ nativeEvent: r.nativeEvent,
1800
+ target: this
1801
+ };
1802
+ this.props.onChange.call(void 0, n);
1803
+ }, this.onGroupRemove = (r) => {
1804
+ const n = {
1805
+ filter: { ...this.props.value, filters: [] },
1806
+ syntheticEvent: r.syntheticEvent,
1807
+ nativeEvent: r.nativeEvent,
1808
+ target: this
1809
+ };
1810
+ this.props.onChange.call(void 0, n);
1811
+ }, dt(mt);
1812
+ }
1813
+ /**
1814
+ * @hidden
1815
+ */
1816
+ render() {
1817
+ return /* @__PURE__ */ a.createElement(
1818
+ "div",
1819
+ {
1820
+ className: _(
1821
+ "k-filter",
1822
+ this.props.className
1823
+ ),
1824
+ style: this.props.style
1825
+ },
1826
+ /* @__PURE__ */ a.createElement("ul", { role: "tree", className: "k-filter-container", "aria-label": this.props.ariaLabel }, /* @__PURE__ */ a.createElement("li", { role: "treeitem", className: "k-filter-group-main" }, /* @__PURE__ */ a.createElement(
1827
+ It,
1828
+ {
1829
+ filter: this.props.value,
1830
+ fields: this.props.fields,
1831
+ ariaLabel: this.props.ariaLabelGroup,
1832
+ ariaLabelExpression: this.props.ariaLabelExpression,
1833
+ onChange: this.onFilterChange,
1834
+ onRemove: this.onGroupRemove,
1835
+ defaultGroupFilter: this.props.defaultGroupFilter || { logic: "and", filters: [] }
1836
+ }
1837
+ )))
1838
+ );
1839
+ }
1840
+ }
1841
+ vo.propTypes = {
1842
+ className: d.string,
1843
+ style: d.object,
1844
+ fields: function(e, t) {
1845
+ const r = e[t];
1846
+ if (r === void 0)
1847
+ return new Error(`Property '${t}' is missing.`);
1848
+ if (Array.isArray(r)) {
1849
+ if (Object.keys(r.reduce((n, o) => ({ ...n, [o.name]: 1 }), {})).length !== r.length)
1850
+ return new Error(`Property '${t}' needs to contain objects with unique 'name' field.`);
1851
+ } else
1852
+ return new Error(`Property '${t}' needs to be Array<FieldSettings>.`);
1853
+ return null;
1854
+ },
1855
+ ariaLabelGroup: d.string,
1856
+ ariaLabelExpression: d.string,
1857
+ value: d.object.isRequired,
1858
+ onChange: d.func.isRequired
1859
+ };
1860
+ const He = (e) => /* @__PURE__ */ a.createElement(
1861
+ "div",
1862
+ {
1863
+ onClick: e.onClick,
1864
+ className: _(
1865
+ "k-columnmenu-item",
1866
+ { "k-selected": e.selected },
1867
+ { "k-disabled": e.disabled }
1868
+ )
1869
+ },
1870
+ (e.iconClass || e.svgIcon) && /* @__PURE__ */ a.createElement(Re, { name: e.iconClass ? sn(e.iconClass) : void 0, icon: e.svgIcon }),
1871
+ e.title
1872
+ ), Eo = [
1873
+ { text: xr, operator: "contains" },
1874
+ { text: br, operator: "doesnotcontain" },
1875
+ { text: we, operator: "eq" },
1876
+ { text: Oe, operator: "neq" },
1877
+ { text: Cr, operator: "startswith" },
1878
+ { text: yr, operator: "endswith" },
1879
+ { text: Ne, operator: "isnull" },
1880
+ { text: Ae, operator: "isnotnull" },
1881
+ { text: vr, operator: "isempty" },
1882
+ { text: Er, operator: "isnotempty" }
1883
+ ], Co = [
1884
+ { text: we, operator: "eq" },
1885
+ { text: Oe, operator: "neq" },
1886
+ { text: Ir, operator: "gte" },
1887
+ { text: kr, operator: "gt" },
1888
+ { text: Sr, operator: "lte" },
1889
+ { text: Fr, operator: "lt" },
1890
+ { text: Ne, operator: "isnull" },
1891
+ { text: Ae, operator: "isnotnull" }
1892
+ ], xo = [
1893
+ { text: we, operator: "eq" },
1894
+ { text: Oe, operator: "neq" },
1895
+ { text: Mr, operator: "gte" },
1896
+ { text: Lr, operator: "gt" },
1897
+ { text: Dr, operator: "lt" },
1898
+ { text: wr, operator: "lte" },
1899
+ { text: Ne, operator: "isnull" },
1900
+ { text: Ae, operator: "isnotnull" }
1901
+ ], bo = [
1902
+ { text: Rr, operator: "" }
1903
+ ];
1904
+ class Ke {
1905
+ /**
1906
+ * An array containing the operators for the ColumnMenuTextFilter component.
1907
+ *
1908
+ * The operators are:
1909
+ *
1910
+ * - { text: 'columnMenu.filterContainsOperator', operator: 'contains' }
1911
+ * - { text: 'columnMenu.filterNotContainsOperator', operator: 'doesnotcontain' }
1912
+ * - { text: 'columnMenu.filterEqOperator', operator: 'eq' }
1913
+ * - { text: 'columnMenu.filterNotEqOperator', operator: 'neq' }
1914
+ * - { text: 'columnMenu.filterStartsWithOperator', operator: 'startswith' }
1915
+ * - { text: 'columnMenu.filterEndsWithOperator', operator: 'endswith' }
1916
+ * - { text: 'columnMenu.filterIsNullOperator', operator: 'isnull' }
1917
+ * - { text: 'columnMenu.filterIsNotNullOperator', operator: 'isnotnull' }
1918
+ * - { text: 'columnMenu.filterIsEmptyOperator', operator: 'isempty' }
1919
+ * - { text: 'columnMenu.filterIsNotEmptyOperator', operator: 'isnotempty' }
1920
+ */
1921
+ static get text() {
1922
+ return [...Eo];
1923
+ }
1924
+ /**
1925
+ * An array containing the operators for the ColumnMenuNumericFilter component.
1926
+ *
1927
+ * The operators are:
1928
+ *
1929
+ * - { text: 'columnMenu.filterEqOperator', operator: 'eq' }
1930
+ * - { text: 'columnMenu.filterNotEqOperator', operator: 'neq' }
1931
+ * - { text: 'columnMenu.filterGteOperator', operator: 'gte' }
1932
+ * - { text: 'columnMenu.filterGtOperator', operator: 'gt' }
1933
+ * - { text: 'columnMenu.filterLteOperator', operator: 'lte' }
1934
+ * - { text: 'columnMenu.filterLtOperator', operator: 'lt' }
1935
+ * - { text: 'columnMenu.filterIsNullOperator', operator: 'isnull' }
1936
+ * - { text: 'columnMenu.filterIsNotNullOperator', operator: 'isnotnull' }
1937
+ */
1938
+ static get numeric() {
1939
+ return [...Co];
1940
+ }
1941
+ /**
1942
+ * An array containing the operators for the ColumnMenuDateFilter component.
1943
+ *
1944
+ * The operators are:
1945
+ *
1946
+ * - { text: 'columnMenu.filterEqOperator', operator: 'eq' }
1947
+ * - { text: 'columnMenu.filterNotEqOperator', operator: 'neq' }
1948
+ * - { text: 'columnMenu.filterAfterOrEqualOperator', operator: 'gte' }
1949
+ * - { text: 'columnMenu.filterAfterOperator', operator: 'gt' }
1950
+ * - { text: 'columnMenu.filterBeforeOperator', operator: 'lt' }
1951
+ * - { text: 'columnMenu.filterBeforeOrEqualOperator', operator: 'lte' }
1952
+ * - { text: 'columnMenu.filterIsNullOperator', operator: 'isnull' }
1953
+ * - { text: 'columnMenu.filterIsNotNullOperator', operator: 'isnotnull' }
1954
+ */
1955
+ static get date() {
1956
+ return [...xo];
1957
+ }
1958
+ /**
1959
+ * An array containing the operators for the ColumnMenuBooleanFilter component.
1960
+ *
1961
+ * The operators are:
1962
+ *
1963
+ * - { text: 'columnMenu.filterIsTrue', operator: '' }
1964
+ */
1965
+ static get boolean() {
1966
+ return [...bo];
1967
+ }
1968
+ }
1969
+ const kt = (e) => {
1970
+ const { filter: t, onFilterChange: r, operators: n, initialFilter: o } = e, s = a.useCallback(
1971
+ (u) => {
1972
+ const p = t, f = u.target.value.operator, m = p ? { ...p, operator: f } : { value: o.value, operator: f };
1973
+ r.call(void 0, u.syntheticEvent, m, p);
1974
+ },
1975
+ [t, r, o]
1976
+ ), i = a.useCallback(
1977
+ (u) => {
1978
+ const p = u.target.value, f = t, m = f ? { ...f, value: p } : { value: p, operator: n[0].operator };
1979
+ r.call(void 0, u, m, f);
1980
+ },
1981
+ [t, r, n]
1982
+ ), l = Y(), c = n.map((u) => ({ ...u, text: l.toLanguageString(u.text, v[u.text]) }));
1983
+ return /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(
1984
+ G,
1985
+ {
1986
+ value: c.find((u) => u.operator === t.operator) || null,
1987
+ onChange: s,
1988
+ data: c,
1989
+ textField: "text"
1990
+ }
1991
+ ), /* @__PURE__ */ a.createElement(
1992
+ e.input,
1993
+ {
1994
+ value: t.value,
1995
+ onChange: i
1996
+ }
1997
+ ));
1998
+ }, yo = (e) => {
1999
+ const { filter: t, onFilterChange: r } = e, n = a.useCallback(
2000
+ (s) => r.call(void 0, s.syntheticEvent, { ...t, value: s.value }, t),
2001
+ [t, r]
2002
+ ), o = Ke.boolean[0].text;
2003
+ return /* @__PURE__ */ a.createElement(
2004
+ fn,
2005
+ {
2006
+ onChange: n,
2007
+ checked: t.value,
2008
+ label: Y().toLanguageString(o, v[o]),
2009
+ labelPlacement: "after"
2010
+ }
2011
+ );
2012
+ }, Kt = (e) => {
2013
+ const t = a.useCallback((o) => /* @__PURE__ */ a.createElement(Yt, { ...o, value: o.value || "" }), []), r = a.useRef(Ke.text), n = a.useRef({ operator: "", value: "" });
2014
+ return /* @__PURE__ */ a.createElement(
2015
+ kt,
2016
+ {
2017
+ initialFilter: n.current,
2018
+ input: t,
2019
+ operators: e.operators || r.current,
2020
+ ...e
2021
+ }
2022
+ );
2023
+ }, qt = (e) => {
2024
+ const t = a.useCallback((o) => /* @__PURE__ */ a.createElement(Me, { ...o, value: o.value || null }), []), r = a.useRef(Ke.numeric), n = a.useRef({ operator: "", value: null });
2025
+ return /* @__PURE__ */ a.createElement(
2026
+ kt,
2027
+ {
2028
+ initialFilter: n.current,
2029
+ input: t,
2030
+ operators: e.operators || r.current,
2031
+ ...e
2032
+ }
2033
+ );
2034
+ }, zt = (e) => {
2035
+ const t = a.useCallback((o) => /* @__PURE__ */ a.createElement(ft, { ...o, value: o.value || null }), []), r = a.useRef(Ke.date), n = a.useRef({ operator: "", value: null });
2036
+ return /* @__PURE__ */ a.createElement(
2037
+ kt,
2038
+ {
2039
+ initialFilter: n.current,
2040
+ input: t,
2041
+ operators: e.operators || r.current,
2042
+ ...e
2043
+ }
2044
+ );
2045
+ }, Io = [{ text: Or, logic: "and" }, { text: Nr, logic: "or" }], St = (e) => {
2046
+ const t = Y(), r = (e.data || Io).map((n) => ({ ...n, text: t.toLanguageString(n.text, v[n.text]) }));
2047
+ return /* @__PURE__ */ a.createElement(
2048
+ G,
2049
+ {
2050
+ onChange: e.onChange,
2051
+ className: "k-filter-and",
2052
+ textField: "text",
2053
+ ...e,
2054
+ data: r,
2055
+ value: r.find((n) => n.logic === e.value)
2056
+ }
2057
+ );
2058
+ }, ko = (e) => /* @__PURE__ */ a.createElement("div", { className: "k-columnmenu-item-content" }, /* @__PURE__ */ a.createElement(Sn, { style: { position: "relative", display: "block" } }, e.show && /* @__PURE__ */ a.createElement("div", { className: "kendo-grid-filter-menu-container" }, /* @__PURE__ */ a.createElement(
2059
+ "form",
2060
+ {
2061
+ className: "k-filter-menu k-group k-reset k-state-border-up",
2062
+ onSubmit: e.onSubmit,
2063
+ onReset: e.onReset
2064
+ },
2065
+ /* @__PURE__ */ a.createElement("div", { className: "k-filter-menu-container" }, e.children, /* @__PURE__ */ a.createElement("div", { className: "k-actions k-hstack k-justify-content-stretch" }, e.actions))
2066
+ )))), So = (e) => {
2067
+ const t = Y();
2068
+ return /* @__PURE__ */ a.createElement(
2069
+ ko,
2070
+ {
2071
+ ...e,
2072
+ actions: /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(
2073
+ K,
2074
+ {
2075
+ type: "reset"
2076
+ },
2077
+ t.toLanguageString(tt, v[tt])
2078
+ ), /* @__PURE__ */ a.createElement(
2079
+ K,
2080
+ {
2081
+ themeColor: "primary"
2082
+ },
2083
+ t.toLanguageString(rt, v[rt])
2084
+ ))
2085
+ }
2086
+ );
2087
+ }, qe = (e) => {
2088
+ dt(mt);
2089
+ const t = a.useRef([]), {
2090
+ field: r,
2091
+ filter: n,
2092
+ sort: o = t.current,
2093
+ onSortChange: s,
2094
+ onFilterChange: i,
2095
+ initialFilter: l,
2096
+ sortAsc: c = !1,
2097
+ sortDesc: u = !1,
2098
+ filterContent: p = [],
2099
+ expandFilters: f = !1
2100
+ } = e, [m, h] = a.useState(!1), [C, b] = a.useState(f), [x, g] = a.useState(r && l ? l(r) : null), I = a.useRef(null), F = a.useRef(null), k = a.useRef(null), E = a.useRef(!1), y = a.useCallback(
2101
+ () => (n || []).find((R) => R.filters.every((D) => !Qt(D) && D.field === r)),
2102
+ [n, r]
2103
+ ), S = a.useCallback(
2104
+ () => {
2105
+ h(!1);
2106
+ },
2107
+ []
2108
+ ), w = a.useCallback(
2109
+ () => {
2110
+ if (E.current) {
2111
+ E.current = !1;
2112
+ return;
2113
+ }
2114
+ clearTimeout(k.current), k.current = window.setTimeout(() => {
2115
+ S();
2116
+ });
2117
+ },
2118
+ [S]
2119
+ ), P = a.useCallback(
2120
+ () => clearTimeout(k.current),
2121
+ []
2122
+ ), T = a.useCallback((R) => {
2123
+ E.current = m && R.currentTarget === I.current;
2124
+ }, [m]), z = a.useCallback(
2125
+ () => {
2126
+ h(!m), r && l && (b(m ? !1 : f), g(m ? x : y() || l(r)));
2127
+ },
2128
+ [y, r, m, x, l, f]
2129
+ );
2130
+ a.useEffect(
2131
+ () => {
2132
+ m && F.current && F.current.focus();
2133
+ },
2134
+ [m]
2135
+ );
2136
+ const L = a.useCallback(
2137
+ () => b(!C),
2138
+ [C]
2139
+ ), O = a.useCallback(
2140
+ (R, D) => {
2141
+ const N = [...o], A = N.findIndex((on) => on.field === r), ee = { field: r, dir: D };
2142
+ A >= 0 ? N[A].dir !== ee.dir ? N.splice(A, 1, ee) : N.splice(A, 1) : N.push(ee), S(), s && s.call(void 0, R, N, r);
2143
+ },
2144
+ [o, r, s, S]
2145
+ ), U = a.useCallback(
2146
+ (R, D, N) => {
2147
+ const A = { ...x, filters: [...x.filters] }, ee = A.filters.indexOf(N);
2148
+ A.filters.splice(ee, 1, D), g(A);
2149
+ },
2150
+ [x]
2151
+ ), ce = a.useCallback(
2152
+ (R) => {
2153
+ R.preventDefault();
2154
+ const D = (n || []).slice(), N = y(), A = N ? D.indexOf(N) : -1;
2155
+ A >= 0 ? D.splice(A, 1, x) : D.push(x), S(), i && i.call(void 0, R, D, r);
2156
+ },
2157
+ [n, x, r, i, S, y]
2158
+ ), ue = a.useCallback(
2159
+ (R) => {
2160
+ const D = (n || []).slice(), N = y(), A = N ? D.indexOf(N) : -1;
2161
+ A >= 0 && D.splice(A, 1), l && g(l(r)), S(), i && i.call(void 0, R, D, r);
2162
+ },
2163
+ [n, r, i, l, S, y]
2164
+ ), ze = a.useCallback((R) => O(R, "asc"), [O]), pe = a.useCallback((R) => O(R, "desc"), [O]), Ge = a.useCallback(
2165
+ (R) => x && g({ ...x, logic: R.value.logic }),
2166
+ [x]
2167
+ ), j = o.find((R) => R.field === r) || { dir: "" }, [
2168
+ Z,
2169
+ J,
2170
+ Q
2171
+ ] = p, _e = Y(), en = c || u ? /* @__PURE__ */ a.createElement("div", { className: "k-columnmenu-item-wrapper", key: "sorting" }, c && /* @__PURE__ */ a.createElement(
2172
+ He,
2173
+ {
2174
+ title: _e.toLanguageString(ot, v[ot]),
2175
+ iconClass: "k-i-sort-asc-small",
2176
+ svgIcon: Ut,
2177
+ selected: j.dir === "asc",
2178
+ onClick: ze
2179
+ }
2180
+ ), u && /* @__PURE__ */ a.createElement(
2181
+ He,
2182
+ {
2183
+ title: _e.toLanguageString(st, v[st]),
2184
+ iconClass: "k-i-sort-desc-small",
2185
+ svgIcon: jt,
2186
+ selected: j.dir === "desc",
2187
+ onClick: pe
2188
+ }
2189
+ )) : null, tn = x && p.length > 0 ? /* @__PURE__ */ a.createElement("div", { className: "k-columnmenu-item-wrapper", key: "filtering" }, /* @__PURE__ */ a.createElement(
2190
+ He,
2191
+ {
2192
+ iconClass: "k-i-filter",
2193
+ svgIcon: Xt,
2194
+ title: _e.toLanguageString(nt, v[nt]),
2195
+ onClick: L
2196
+ }
2197
+ ), /* @__PURE__ */ a.createElement(
2198
+ So,
2199
+ {
2200
+ show: C,
2201
+ onSubmit: ce,
2202
+ onReset: ue
2203
+ },
2204
+ Z && /* @__PURE__ */ a.createElement(Z, { filter: x.filters[0], onFilterChange: U }),
2205
+ J && /* @__PURE__ */ a.createElement(J, { value: x.logic, onChange: Ge }),
2206
+ Q && /* @__PURE__ */ a.createElement(Q, { filter: x.filters[1], onFilterChange: U })
2207
+ )) : null, Rt = [en, tn], rn = /* @__PURE__ */ a.createElement(
2208
+ "span",
2209
+ {
2210
+ ref: I,
2211
+ onClick: z,
2212
+ onMouseDown: T,
2213
+ className: "k-grid-header-menu k-grid-column-menu" + (y() ? " k-active" : ""),
2214
+ key: "button"
2215
+ },
2216
+ /* @__PURE__ */ a.createElement(Re, { name: "more-vertical", icon: bn })
2217
+ ), nn = /* @__PURE__ */ a.createElement(
2218
+ kn,
2219
+ {
2220
+ anchor: I.current,
2221
+ show: m,
2222
+ key: "popup"
2223
+ },
2224
+ /* @__PURE__ */ a.createElement(
2225
+ "div",
2226
+ {
2227
+ className: "k-grid-columnmenu-popup",
2228
+ ref: F,
2229
+ tabIndex: 0,
2230
+ onBlur: w,
2231
+ onFocus: P,
2232
+ style: { outline: "none" }
2233
+ },
2234
+ e.itemsRender ? e.itemsRender.call(void 0, Rt, { closeMenu: S, field: r }) : Rt
2235
+ )
2236
+ ), Mt = [rn, nn];
2237
+ return /* @__PURE__ */ a.createElement(a.Fragment, null, e.render ? e.render.call(void 0, Mt) : Mt);
2238
+ }, Es = (e) => {
2239
+ const { field: t, ...r } = e, n = a.useCallback(
2240
+ (i) => ({ logic: "and", filters: [{ operator: "contains", field: i, value: "" }, { operator: "contains", field: i, value: "" }] }),
2241
+ []
2242
+ ), o = !!e.field, s = o ? [
2243
+ Kt,
2244
+ St,
2245
+ Kt
2246
+ ] : [];
2247
+ return /* @__PURE__ */ a.createElement(
2248
+ qe,
2249
+ {
2250
+ sortAsc: o,
2251
+ sortDesc: o,
2252
+ filterContent: s,
2253
+ initialFilter: o ? n : void 0,
2254
+ field: t,
2255
+ ...r
2256
+ }
2257
+ );
2258
+ }, Cs = (e) => {
2259
+ const { field: t, ...r } = e, n = a.useCallback(
2260
+ (i) => ({ logic: "or", filters: [{ operator: "eq", field: i, value: null }, { operator: "eq", field: i, value: null }] }),
2261
+ []
2262
+ ), o = !!e.field, s = o ? [
2263
+ qt,
2264
+ St,
2265
+ qt
2266
+ ] : [];
2267
+ return /* @__PURE__ */ a.createElement(
2268
+ qe,
2269
+ {
2270
+ sortAsc: o,
2271
+ sortDesc: o,
2272
+ filterContent: s,
2273
+ initialFilter: o ? n : void 0,
2274
+ field: t,
2275
+ ...r
2276
+ }
2277
+ );
2278
+ }, xs = (e) => {
2279
+ const { field: t, ...r } = e, n = a.useCallback(
2280
+ (i) => ({ logic: "or", filters: [{ operator: "eq", field: i, value: null }, { operator: "eq", field: i, value: null }] }),
2281
+ []
2282
+ ), o = !!e.field, s = o ? [
2283
+ zt,
2284
+ St,
2285
+ zt
2286
+ ] : [];
2287
+ return /* @__PURE__ */ a.createElement(
2288
+ qe,
2289
+ {
2290
+ sortAsc: o,
2291
+ sortDesc: o,
2292
+ filterContent: s,
2293
+ initialFilter: o ? n : void 0,
2294
+ field: t,
2295
+ ...r
2296
+ }
2297
+ );
2298
+ }, bs = (e) => {
2299
+ const { field: t, ...r } = e, n = a.useCallback(
2300
+ (i) => ({ logic: "and", filters: [{ operator: "eq", field: i, value: !1 }] }),
2301
+ []
2302
+ ), o = !!e.field, s = o ? [
2303
+ yo
2304
+ ] : [];
2305
+ return /* @__PURE__ */ a.createElement(
2306
+ qe,
2307
+ {
2308
+ sortAsc: o,
2309
+ sortDesc: o,
2310
+ filterContent: s,
2311
+ initialFilter: o ? n : void 0,
2312
+ field: t,
2313
+ ...r
2314
+ }
2315
+ );
2316
+ };
2317
+ function ne(e, t, r) {
2318
+ return r ? { ...e, [t]: r.length ? [...r] : void 0 } : e && e[t] ? [...e[t]] : [];
2319
+ }
2320
+ function Zr(e, t, r) {
2321
+ if (e[r]) {
2322
+ let n = ne(e, r, er(ne(e, r), t)), o = ne(n, r).map((s) => Zr(s, t, r));
2323
+ return { ...n, [r]: o };
2324
+ }
2325
+ return e;
2326
+ }
2327
+ function ys(e, t, r) {
2328
+ let n = er(e, t);
2329
+ return n = n.map((o) => Zr(o, t, r)), n;
2330
+ }
2331
+ function Jr(e, t, r) {
2332
+ let n = ne(e, r);
2333
+ if (n && n.length) {
2334
+ n = n.map((l) => Jr(l, t, r));
2335
+ const i = In(n, {
2336
+ filters: [
2337
+ { filters: t, logic: "and" },
2338
+ { operator: (l) => !!(l[r] || []).length }
2339
+ ],
2340
+ logic: "or"
2341
+ });
2342
+ return ne(e, r, i);
2343
+ }
2344
+ return e;
2345
+ }
2346
+ function Is(e, t, r) {
2347
+ let n = { [r]: [...e] };
2348
+ return n = Jr(n, t, r), n[r] || [];
2349
+ }
2350
+ function ks(e, t, r) {
2351
+ let n = [];
2352
+ const o = [];
2353
+ for (let s = e.length - 1; s >= 0; s--) {
2354
+ const i = e[s];
2355
+ n.push({
2356
+ root: i,
2357
+ data: t(i),
2358
+ level: [s],
2359
+ levelCount: e.length
2360
+ });
2361
+ }
2362
+ for (; n.length > 0; ) {
2363
+ let s = n.pop();
2364
+ if (o.push({
2365
+ dataItem: s.root,
2366
+ level: [...s.level],
2367
+ ...r(s.root),
2368
+ levelCount: s.levelCount
2369
+ }), s.data.length)
2370
+ for (let i = s.data.length - 1; i >= 0; i--) {
2371
+ const l = s.data[i];
2372
+ n.push({
2373
+ root: l,
2374
+ data: t(l),
2375
+ level: [...s.level, i],
2376
+ levelCount: s.data.length
2377
+ });
2378
+ }
2379
+ }
2380
+ return o;
2381
+ }
2382
+ const Ss = (e, t, r) => {
2383
+ const n = (c) => !!$e(t, c), o = (c) => !!$e(r, c), s = (c) => {
2384
+ const u = [];
2385
+ return n(c) && o(c) && u.push(...$e(r, c)), u;
2386
+ }, i = (c, u, p) => {
2387
+ u.push({ ...c, level: p }), s(c).forEach((f) => i(f, u, p + 1));
2388
+ }, l = [];
2389
+ return e.forEach((c) => i(c, l, 0)), l;
2390
+ }, Fs = (e, t, r, n) => {
2391
+ let o = {}, s = [], i;
2392
+ return e.forEach((l) => o[t(l)] = { ...l }), e.forEach((l) => {
2393
+ i = o[r(l)], i ? (i[n] = i[n] || [], i[n].push(o[t(l)])) : s.push(o[t(l)]);
2394
+ }), s;
2395
+ }, Rs = (e, t, r) => gt(e, t, r), Ms = (e, t, r) => [...ae(
2396
+ [{ [t]: [...e] }],
2397
+ t,
2398
+ (o) => Fo(o, r, t)
2399
+ )[0][t]], Fo = (e, t, r) => {
2400
+ const n = e[r] || [], o = n.findIndex(t);
2401
+ if (o !== -1) {
2402
+ const s = [...n];
2403
+ return s.splice(o, 1), {
2404
+ ...e,
2405
+ [r]: s
2406
+ };
2407
+ }
2408
+ return e;
2409
+ }, Ls = (e, t, r, n) => ae(
2410
+ e,
2411
+ t,
2412
+ (o) => r(o) ? { ...o, [t]: n(o[t] || []) } : o
2413
+ ), Gt = (e, t, r) => an(e, t, r), Ds = (e, t, r, n) => {
2414
+ const o = [...e], s = Gt(o, t, n), i = s.pop(), l = s.pop(), c = t[t.length - 1];
2415
+ if (r) {
2416
+ const p = Gt(o, r, n).pop();
2417
+ (l ? l[n] : o).splice(c, 1), p[n] = p[n] || [], p[n].push(i);
2418
+ } else
2419
+ (l ? l[n] : o).splice(c, 1), o.push(i);
2420
+ return o;
2421
+ }, se = "groupId", pt = "items", Qr = (e, t, r) => {
2422
+ e.items && (e[se] = `${r}${r && "_"}${e.value}${e.field}`, t > 1 && e.items.forEach((n) => Qr(n, t - 1, e[se])));
2423
+ }, ws = (e) => {
2424
+ const { group: t } = e;
2425
+ if (t && t.length && e.data)
2426
+ return e.data.forEach((r) => Qr(r, t.length, ""));
2427
+ }, Os = (e) => {
2428
+ const t = [];
2429
+ return ae(e.data, pt, (r) => {
2430
+ r[se] && t.push(r[se]);
2431
+ }), t;
2432
+ }, Ns = (e) => ae(
2433
+ e.data,
2434
+ pt,
2435
+ (t) => gt(t, pt, {
2436
+ expanded: !e.collapsedIds.some((r) => r === t[se])
2437
+ })
2438
+ ), Ro = (e) => {
2439
+ const { navigatable: t, contextStateRef: r, navigationStateRef: n, idPrefix: o } = e;
2440
+ t && (r.current = {
2441
+ activeId: "",
2442
+ level: 0
2443
+ }, n.current = {
2444
+ activeElementIsFocused: !1,
2445
+ prevNavigationIndexes: void 0,
2446
+ idPrefix: o || ln(),
2447
+ navigationMatrix: [],
2448
+ lastHeaderIndex: -1
2449
+ });
2450
+ }, Mo = (e) => {
2451
+ const { scope: t, contextStateRef: r, navigationStateRef: n } = e;
2452
+ if (r.current && n.current && t) {
2453
+ Ft(e);
2454
+ const o = n.current.navigationMatrix[0][0], s = M.getActiveElement(t, o);
2455
+ o && s && (r.current.activeId = o, s.setAttribute("tabIndex", "0"));
2456
+ }
2457
+ }, Lo = (e) => {
2458
+ const { contextStateRef: t, navigationStateRef: r, document: n } = e;
2459
+ if (t.current && r.current && n) {
2460
+ const o = cn(n), s = M.getNavigatableId(o);
2461
+ s && s === t.current.activeId && (r.current.activeElementIsFocused = !0);
2462
+ }
2463
+ }, Do = (e) => {
2464
+ const { scope: t, contextStateRef: r, navigationStateRef: n } = e;
2465
+ if (Ft(e), r.current && n.current && t) {
2466
+ if (!M.getActiveElement(t, r.current.activeId)) {
2467
+ const s = n.current.navigationMatrix[0][0], i = M.getActiveElement(t, s);
2468
+ s && i && (r.current.activeId = s, i.setAttribute("tabIndex", "0"), n.current.activeElementIsFocused && i.focus());
2469
+ }
2470
+ n.current.activeElementIsFocused = !1;
2471
+ }
2472
+ }, wo = (e, t) => {
2473
+ const { contextStateRef: r } = t;
2474
+ if (e.isDefaultPrevented() || !r.current)
2475
+ return;
2476
+ const n = e.target, o = M.getNavigatableId(n);
2477
+ if (o && o !== r.current.activeId) {
2478
+ const s = M.getClosestScope(n);
2479
+ if (!s)
2480
+ return;
2481
+ const i = M.getActiveElement(s, r.current.activeId);
2482
+ i && i.setAttribute("tabIndex", "-1"), n.setAttribute("tabIndex", "0"), r.current.activeId = o;
2483
+ }
2484
+ }, Oo = (e, t) => {
2485
+ const {
2486
+ contextStateRef: r,
2487
+ navigationStateRef: n,
2488
+ onNavigationAction: o
2489
+ } = t;
2490
+ if (e.isDefaultPrevented() || !r.current || !n.current)
2491
+ return;
2492
+ if (e.keyCode === B.esc) {
2493
+ const p = M.getClosestNavigatableElement(e.target);
2494
+ M.focusElement({ elementForFocus: p, event: e, contextStateRef: r });
2495
+ return;
2496
+ }
2497
+ const s = e.target, i = M.getNavigatableId(s), l = M.getNavigatableLevel(s), c = M.getClosestScope(s), u = n.current.navigationMatrix;
2498
+ if (l !== void 0 && c) {
2499
+ if (e.keyCode === B.enter) {
2500
+ const p = M.getNavigatableElement(s, { level: l + 1 });
2501
+ if (p) {
2502
+ M.focusElement({
2503
+ elementForFocus: p,
2504
+ event: e,
2505
+ contextStateRef: r,
2506
+ prevElement: s
2507
+ });
2508
+ return;
2509
+ } else {
2510
+ const f = M.getFocusableElements(s)[0];
2511
+ M.focusElement({ elementForFocus: f, event: e, contextStateRef: r, prevElement: s });
2512
+ return;
2513
+ }
2514
+ }
2515
+ if (e.keyCode === B.up || e.keyCode === B.down || e.keyCode === B.left || e.keyCode === B.right) {
2516
+ const p = e.keyCode === B.up || e.keyCode === B.left, f = e.keyCode === B.up || e.keyCode === B.down;
2517
+ let m;
2518
+ if (n.current && n.current.prevNavigationIndexes) {
2519
+ const [h, C] = n.current.prevNavigationIndexes;
2520
+ u[h][C] === i ? m = n.current.prevNavigationIndexes : m = ct(u, i);
2521
+ } else
2522
+ m = ct(u, i);
2523
+ if (m) {
2524
+ const [h, C] = m, [b, x] = f ? Wr(h, C, i, u, p) : Hr(h, C, i, u, p);
2525
+ if (b) {
2526
+ const g = M.getActiveElement(c, b);
2527
+ M.focusElement({ elementForFocus: g, event: e, contextStateRef: r, prevElement: s }), n.current.prevNavigationIndexes = x, o && o({ focusElement: g, event: e });
2528
+ }
2529
+ }
2530
+ }
2531
+ }
2532
+ }, Ft = (e) => {
2533
+ const { navigationStateRef: t, scope: r } = e;
2534
+ if (!t.current || !r)
2535
+ return;
2536
+ const n = [], o = _r(r), s = $r(r);
2537
+ if (!o || !s)
2538
+ return;
2539
+ const i = Array.from(o.children), l = Array.from(s.children);
2540
+ [...i, ...l].forEach((c, u) => {
2541
+ Array.from(c.children).forEach((p) => {
2542
+ const f = Ct(p);
2543
+ if (!f)
2544
+ return;
2545
+ const m = p.rowSpan || 1, h = p.colSpan || 1;
2546
+ let C;
2547
+ for (let b = u, x = u + m; b < x; b++) {
2548
+ if (n[b] || (n[b] = []), C === void 0) {
2549
+ const g = n[b].findIndex((I) => !I);
2550
+ C = g > -1 ? g : n[b].length;
2551
+ }
2552
+ n[b][C] = f || "";
2553
+ }
2554
+ for (let b = C + 1, x = C + h; b < x; b++)
2555
+ n[u][b] = f || "";
2556
+ });
2557
+ }), t.current.navigationMatrix = n.filter((c) => !!c), t.current.lastHeaderIndex = i.length - 1;
2558
+ }, As = {
2559
+ onConstructor: Ro,
2560
+ onComponentDidMount: Mo,
2561
+ onGetSnapshotBeforeUpdate: Lo,
2562
+ onComponentDidUpdate: Do,
2563
+ onFocus: wo,
2564
+ onKeyDown: Oo,
2565
+ generateMatrix: Ft
2566
+ }, No = "data-grid-row-index", Ao = "data-grid-col-index", Po = "data-prevent-selection", To = "items", H = {}, Bo = (e, t) => !e || Array.isArray(e) && e.length === 0 ? [t] : e.findIndex((n) => n === t) > -1 ? e.filter((n) => n !== t) : [...e, t], W = (e, t) => {
2567
+ let r = e;
2568
+ for (; r; ) {
2569
+ if (r.tagName === t)
2570
+ return r;
2571
+ if (r.tagName === "TABLE")
2572
+ return null;
2573
+ r = r.parentElement;
2574
+ }
2575
+ return null;
2576
+ }, Se = (e) => {
2577
+ if (!e)
2578
+ return;
2579
+ const t = e.getAttribute(No);
2580
+ return t ? parseInt(t, 10) : void 0;
2581
+ }, Fe = (e) => {
2582
+ if (!e)
2583
+ return;
2584
+ const t = e.getAttribute(Ao);
2585
+ return t ? parseInt(t, 10) : void 0;
2586
+ }, Ps = (e) => {
2587
+ const t = e.subItemsField || To, r = Wt(e.dataItemKey);
2588
+ return ae(
2589
+ e.data,
2590
+ t,
2591
+ (n) => gt(n, t, {
2592
+ [e.selectedField]: e.selectedState[r(n)]
2593
+ })
2594
+ );
2595
+ }, Ts = (e) => {
2596
+ const { event: t, dataItemKey: r, selectedState: n } = e, { syntheticEvent: o, nativeEvent: s, dataItems: i, componentId: l, mode: c, cell: u, selectedField: p } = t, { target: f, ctrlKey: m, metaKey: h, altKey: C, shiftKey: b } = s;
2597
+ if (o.isDefaultPrevented() || s.keyCode !== B.enter)
2598
+ return n;
2599
+ const x = W(f, "TD"), g = W(f, "TR"), I = Fe(x), F = Se(g);
2600
+ let k = {};
2601
+ return x && g && F !== void 0 && I !== void 0 && (k = Ko({
2602
+ selectedState: n,
2603
+ dataItemKey: r,
2604
+ event: {
2605
+ ctrlKey: m,
2606
+ metaKey: h,
2607
+ altKey: C,
2608
+ shiftKey: b,
2609
+ dataItems: i,
2610
+ cell: u,
2611
+ mode: c,
2612
+ selectedField: p,
2613
+ componentId: l,
2614
+ startColIndex: I,
2615
+ endColIndex: I,
2616
+ startRowIndex: F,
2617
+ endRowIndex: F,
2618
+ isDrag: !1,
2619
+ syntheticEvent: o,
2620
+ nativeEvent: s,
2621
+ target: t.target,
2622
+ dataItem: null
2623
+ }
2624
+ })), k;
2625
+ }, Ko = (e) => {
2626
+ const { event: t, dataItemKey: r, selectedState: n } = e, {
2627
+ dataItems: o,
2628
+ startRowIndex: s,
2629
+ endRowIndex: i,
2630
+ startColIndex: l,
2631
+ endColIndex: c,
2632
+ cell: u,
2633
+ isDrag: p,
2634
+ ctrlKey: f,
2635
+ shiftKey: m,
2636
+ metaKey: h,
2637
+ componentId: C,
2638
+ mode: b,
2639
+ dataItem: x
2640
+ } = t, g = Wt(r);
2641
+ let I = {};
2642
+ const F = x !== null;
2643
+ if (b === "single") {
2644
+ const k = o.slice(s, s + 1)[0], E = g(k);
2645
+ H[C] = {
2646
+ rowIndex: s,
2647
+ colIndex: l
2648
+ }, I[E] = u ? [l] : !0;
2649
+ } else if (p || !m && !f && !h && !F) {
2650
+ p || (H[C] = {
2651
+ rowIndex: s,
2652
+ colIndex: l
2653
+ });
2654
+ const k = [];
2655
+ for (let y = l; y <= c; y++)
2656
+ k.push(y);
2657
+ o.slice(s, i + 1).forEach((y) => {
2658
+ const S = g(y);
2659
+ I[S] = u ? [...k] : !0;
2660
+ });
2661
+ } else if (f || h || F) {
2662
+ H[C] = {
2663
+ rowIndex: s,
2664
+ colIndex: l
2665
+ };
2666
+ const E = o.slice(s, i + 1)[0], y = g(E);
2667
+ I = { ...n }, I[y] = u && !F ? Bo(I[y], l) : !I[y];
2668
+ } else if (m) {
2669
+ const k = H[C] && H[C].rowIndex || 0, E = H[C] && H[C].colIndex || 0, y = Math.min(k, s, i), S = Math.max(k, s, i), w = Math.min(E, l, c), P = Math.max(E, l, c), T = [];
2670
+ for (let L = w; L <= P; L++)
2671
+ T.push(L);
2672
+ o.slice(y, S + 1).forEach((L) => {
2673
+ const O = g(L);
2674
+ I[O] = u ? [...T] : !0;
2675
+ });
2676
+ }
2677
+ return I;
2678
+ }, qo = un(), zo = (e) => {
2679
+ if (!e || !qo)
2680
+ return null;
2681
+ let t = e.parentElement;
2682
+ for (; t; ) {
2683
+ if (window.getComputedStyle(t).transform !== "none")
2684
+ return t;
2685
+ t = t.parentElement;
2686
+ }
2687
+ }, Go = (e) => {
2688
+ if (e && e.ownerDocument && e !== e.ownerDocument.body) {
2689
+ const t = e.getBoundingClientRect();
2690
+ return {
2691
+ left: t.left - e.scrollLeft,
2692
+ top: t.top - e.scrollTop
2693
+ };
2694
+ }
2695
+ return { left: 0, top: 0 };
2696
+ }, _o = (e) => {
2697
+ const t = e ? typeof e.enabled == "boolean" ? e.enabled : !0 : !1, r = e ? !!e.drag : !1, n = e && e.mode ? e.mode : "multiple", o = !!(e && e.cell);
2698
+ return { enabled: t, drag: r, mode: n, cell: o };
2699
+ }, Bs = (e) => {
2700
+ var F;
2701
+ const { onRelease: t, childRef: r } = e, {
2702
+ enabled: n,
2703
+ drag: o,
2704
+ mode: s,
2705
+ cell: i
2706
+ } = _o(e.selectable), l = a.useRef(null), c = a.useRef(null), u = a.useRef({ clientX: 0, clientY: 0 }), [p, f] = a.useState(null), m = a.useRef(), h = a.useRef(!1), C = a.useRef(!1), b = a.useCallback(
2707
+ (k) => {
2708
+ const { event: E } = k;
2709
+ C.current = E.originalEvent.target.hasAttribute(Po), !(C.current || !l.current) && (m.current = zo(l.current.element), u.current = {
2710
+ clientY: E.clientY,
2711
+ clientX: E.clientX
2712
+ });
2713
+ },
2714
+ []
2715
+ ), x = a.useCallback(
2716
+ (k) => {
2717
+ const { event: E } = k, { clientX: y, clientY: S } = u.current;
2718
+ if (!C.current && !(!o || s === "single") && ((Math.abs(S - E.clientY) > 5 || Math.abs(y - E.clientX) > 5) && (h.current = !0), h.current)) {
2719
+ const w = Go(m.current);
2720
+ f({
2721
+ top: Math.min(S, E.clientY) - w.top,
2722
+ left: Math.min(y, E.clientX) - w.left,
2723
+ width: Math.abs(E.clientX - y),
2724
+ height: Math.abs(E.clientY - S)
2725
+ });
2726
+ }
2727
+ },
2728
+ [f, o, s]
2729
+ ), g = a.useCallback(
2730
+ (k) => {
2731
+ const { event: E } = k, { clientX: y, clientY: S } = u.current;
2732
+ if (C.current || !l.current)
2733
+ return;
2734
+ const w = l.current.element && l.current.element.ownerDocument;
2735
+ if (w) {
2736
+ if (h.current) {
2737
+ const P = Math.min(S, E.clientY), T = Math.min(y, E.clientX), z = Math.max(S, E.clientY), L = Math.max(y, E.clientX), O = c.current;
2738
+ if (!O)
2739
+ return;
2740
+ O.style.visibility = "hidden";
2741
+ const U = w.elementFromPoint(T, P), ce = w.elementFromPoint(L, z);
2742
+ if (O.style.visibility = "", !U || !ce)
2743
+ return;
2744
+ const ue = W(U, "TD"), ze = W(ue, "TR"), pe = W(ce, "TD"), Ge = W(pe, "TR"), j = Fe(ue), Z = Se(ze), J = Fe(pe), Q = Se(Ge);
2745
+ j !== void 0 && Z !== void 0 && J !== void 0 && Q !== void 0 && t({
2746
+ nativeEvent: E.originalEvent,
2747
+ startRowIndex: Z,
2748
+ startColIndex: j,
2749
+ endRowIndex: Q,
2750
+ endColIndex: J,
2751
+ altKey: E.altKey,
2752
+ shiftKey: E.shiftKey,
2753
+ ctrlKey: E.ctrlKey,
2754
+ metaKey: E.metaKey,
2755
+ mode: s,
2756
+ cell: i,
2757
+ isDrag: !0
2758
+ });
2759
+ } else {
2760
+ const P = w.elementFromPoint(y, S);
2761
+ if (!P)
2762
+ return;
2763
+ const T = W(P, "TD"), z = W(P, "TR"), L = Fe(T), O = Se(z);
2764
+ T && z && O !== void 0 && L !== void 0 && t({
2765
+ nativeEvent: E.originalEvent,
2766
+ startRowIndex: O,
2767
+ startColIndex: L,
2768
+ endRowIndex: O,
2769
+ endColIndex: L,
2770
+ altKey: E.altKey,
2771
+ shiftKey: E.shiftKey,
2772
+ ctrlKey: E.ctrlKey,
2773
+ metaKey: E.metaKey,
2774
+ mode: s,
2775
+ cell: i,
2776
+ isDrag: !1
2777
+ });
2778
+ }
2779
+ f(null), h.current = !1, u.current = { clientX: 0, clientY: 0 };
2780
+ }
2781
+ },
2782
+ [f, s, i, t]
2783
+ ), I = pn(c);
2784
+ return n ? /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(
2785
+ ht,
2786
+ {
2787
+ onPress: b,
2788
+ onDrag: x,
2789
+ onRelease: g,
2790
+ ref: l,
2791
+ childRef: r
2792
+ },
2793
+ e.children
2794
+ ), p && yn.createPortal(
2795
+ /* @__PURE__ */ a.createElement(
2796
+ "div",
2797
+ {
2798
+ ref: c,
2799
+ style: { ...p, position: "fixed" },
2800
+ className: "k-marquee k-marquee-color"
2801
+ }
2802
+ ),
2803
+ (F = I()) == null ? void 0 : F.body
2804
+ )) : a.cloneElement(a.Children.only(e.children), { ref: r });
2805
+ };
2806
+ export {
2807
+ po as BooleanFilter,
2808
+ ts as BooleanFilterCell,
2809
+ An as ColumnDefaultProps,
2810
+ bs as ColumnMenuBooleanColumn,
2811
+ yo as ColumnMenuBooleanFilter,
2812
+ xs as ColumnMenuDateColumn,
2813
+ zt as ColumnMenuDateFilter,
2814
+ So as ColumnMenuFilterForm,
2815
+ St as ColumnMenuFilterLogic,
2816
+ ko as ColumnMenuForm,
2817
+ He as ColumnMenuItem,
2818
+ Cs as ColumnMenuNumericColumn,
2819
+ qt as ColumnMenuNumericFilter,
2820
+ Ke as ColumnMenuOperators,
2821
+ Es as ColumnMenuTextColumn,
2822
+ Kt as ColumnMenuTextFilter,
2823
+ hs as ColumnResize,
2824
+ so as ColumnResizer,
2825
+ gs as CommonDragLogic,
2826
+ uo as DateFilter,
2827
+ rs as DateFilterCell,
2828
+ fs as DragClue,
2829
+ ms as DropClue,
2830
+ bt as EnumFilter,
2831
+ yt as Expression,
2832
+ jn as FILTER_ROW_CLASS,
2833
+ vt as FOCUSABLE_ELEMENTS,
2834
+ vo as Filter,
2835
+ ls as FilterRow,
2836
+ It as Group,
2837
+ us as Header,
2838
+ no as HeaderCell,
2839
+ co as HeaderRow,
2840
+ ps as HeaderSelectionCell,
2841
+ Et as HeaderThElement,
2842
+ Kr as KEYBOARD_NAV_DATA_BODY,
2843
+ Br as KEYBOARD_NAV_DATA_HEADER,
2844
+ Be as KEYBOARD_NAV_DATA_ID,
2845
+ X as KEYBOARD_NAV_DATA_LEVEL,
2846
+ Tr as KEYBOARD_NAV_DATA_SCOPE,
2847
+ ss as KEYBOARD_NAV_DATA_ZONE,
2848
+ Pn as KEYBOARD_NAV_FILTER_COL_SUFFIX,
2849
+ Xr as NumericFilter,
2850
+ ns as NumericFilterCell,
2851
+ vs as Operators,
2852
+ Pe as Pager,
2853
+ Tn as TABBABLE_ELEMENTS,
2854
+ Ao as TABLE_COL_INDEX_ATTRIBUTE,
2855
+ Po as TABLE_PREVENT_SELECTION_ELEMENT,
2856
+ No as TABLE_ROW_INDEX_ATTRIBUTE,
2857
+ zr as TableKeyboardNavigationContext,
2858
+ Bs as TableSelection,
2859
+ Yr as TextFilter,
2860
+ os as TextFilterCell,
2861
+ W as closestTagName,
2862
+ Fs as createDataTree,
2863
+ Te as createFilterComponent,
2864
+ Rs as extendDataItem,
2865
+ Is as filterBy,
2866
+ ks as flatData,
2867
+ Fe as getColumnIndex,
2868
+ Os as getGroupIds,
2869
+ Tt as getIndex,
2870
+ Gt as getItemPath,
2871
+ Go as getOffset,
2872
+ Se as getRowIndex,
2873
+ Ko as getSelectedState,
2874
+ Ts as getSelectedStateFromKeyDown,
2875
+ _o as getSelectionOptions,
2876
+ ro as isRtl,
2877
+ cs as mapColumns,
2878
+ Ls as modifySubItems,
2879
+ Ds as moveTreeItem,
2880
+ Jn as nextColumn,
2881
+ oo as normalize,
2882
+ ys as orderBy,
2883
+ to as readColumns,
2884
+ zo as relativeContextElement,
2885
+ Ms as removeItems,
2886
+ Ns as setExpandedState,
2887
+ ws as setGroupIds,
2888
+ Ps as setSelectedState,
2889
+ Ur as stringOperator,
2890
+ ds as tableColumnsVirtualization,
2891
+ As as tableKeyboardNavigation,
2892
+ is as tableKeyboardNavigationBodyAttributes,
2893
+ Bn as tableKeyboardNavigationHeaderAttributes,
2894
+ as as tableKeyboardNavigationScopeAttributes,
2895
+ M as tableKeyboardNavigationTools,
2896
+ Ss as treeToFlat,
2897
+ ut as unaryOperator,
2898
+ Qn as updateLeft,
2899
+ eo as updateRight,
2900
+ Kn as useTableKeyboardNavigation
2901
+ };