primereact 8.1.1 → 8.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (335) hide show
  1. package/autocomplete/autocomplete.cjs.js +19 -10
  2. package/autocomplete/autocomplete.cjs.min.js +1 -1
  3. package/autocomplete/autocomplete.esm.js +20 -11
  4. package/autocomplete/autocomplete.esm.min.js +1 -1
  5. package/autocomplete/autocomplete.js +19 -10
  6. package/autocomplete/autocomplete.min.js +1 -1
  7. package/avatar/avatar.cjs.js +7 -7
  8. package/avatar/avatar.cjs.min.js +1 -1
  9. package/avatar/avatar.d.ts +1 -3
  10. package/avatar/avatar.esm.js +7 -7
  11. package/avatar/avatar.esm.min.js +1 -1
  12. package/avatar/avatar.js +7 -7
  13. package/avatar/avatar.min.js +1 -1
  14. package/badge/badge.cjs.js +2 -2
  15. package/badge/badge.cjs.min.js +1 -1
  16. package/badge/badge.d.ts +2 -4
  17. package/badge/badge.esm.js +2 -2
  18. package/badge/badge.esm.min.js +1 -1
  19. package/badge/badge.js +2 -2
  20. package/badge/badge.min.js +1 -1
  21. package/calendar/calendar.cjs.js +77 -4
  22. package/calendar/calendar.cjs.min.js +1 -1
  23. package/calendar/calendar.d.ts +1 -0
  24. package/calendar/calendar.esm.js +77 -4
  25. package/calendar/calendar.esm.min.js +1 -1
  26. package/calendar/calendar.js +77 -4
  27. package/calendar/calendar.min.js +1 -1
  28. package/card/card.d.ts +1 -4
  29. package/cascadeselect/cascadeselect.cjs.js +3 -3
  30. package/cascadeselect/cascadeselect.cjs.min.js +1 -1
  31. package/cascadeselect/cascadeselect.d.ts +1 -1
  32. package/cascadeselect/cascadeselect.esm.js +3 -3
  33. package/cascadeselect/cascadeselect.esm.min.js +1 -1
  34. package/cascadeselect/cascadeselect.js +3 -3
  35. package/cascadeselect/cascadeselect.min.js +1 -1
  36. package/chart/chart.cjs.js +13 -7
  37. package/chart/chart.cjs.min.js +1 -1
  38. package/chart/chart.esm.js +13 -7
  39. package/chart/chart.esm.min.js +1 -1
  40. package/chart/chart.js +13 -7
  41. package/chart/chart.min.js +1 -1
  42. package/checkbox/checkbox.cjs.js +1 -1
  43. package/checkbox/checkbox.cjs.min.js +1 -1
  44. package/checkbox/checkbox.esm.js +2 -2
  45. package/checkbox/checkbox.esm.min.js +1 -1
  46. package/checkbox/checkbox.js +1 -1
  47. package/checkbox/checkbox.min.js +1 -1
  48. package/chip/chip.d.ts +1 -3
  49. package/chips/chips.cjs.js +18 -2
  50. package/chips/chips.cjs.min.js +1 -1
  51. package/chips/chips.d.ts +3 -0
  52. package/chips/chips.esm.js +19 -3
  53. package/chips/chips.esm.min.js +1 -1
  54. package/chips/chips.js +19 -4
  55. package/chips/chips.min.js +1 -1
  56. package/column/column.d.ts +1 -0
  57. package/confirmdialog/confirmdialog.d.ts +1 -6
  58. package/contextmenu/contextmenu.cjs.js +1 -0
  59. package/contextmenu/contextmenu.cjs.min.js +1 -1
  60. package/contextmenu/contextmenu.esm.js +1 -0
  61. package/contextmenu/contextmenu.esm.min.js +1 -1
  62. package/contextmenu/contextmenu.js +1 -0
  63. package/contextmenu/contextmenu.min.js +1 -1
  64. package/core/core.js +249 -117
  65. package/core/core.min.js +9 -9
  66. package/datatable/datatable.cjs.js +63 -25
  67. package/datatable/datatable.cjs.min.js +1 -1
  68. package/datatable/datatable.esm.js +64 -26
  69. package/datatable/datatable.esm.min.js +1 -1
  70. package/datatable/datatable.js +63 -25
  71. package/datatable/datatable.min.js +1 -1
  72. package/dialog/dialog.cjs.js +2 -2
  73. package/dialog/dialog.cjs.min.js +1 -1
  74. package/dialog/dialog.esm.js +2 -2
  75. package/dialog/dialog.esm.min.js +1 -1
  76. package/dialog/dialog.js +2 -2
  77. package/dialog/dialog.min.js +1 -1
  78. package/dropdown/dropdown.cjs.js +29 -17
  79. package/dropdown/dropdown.cjs.min.js +1 -1
  80. package/dropdown/dropdown.d.ts +1 -1
  81. package/dropdown/dropdown.esm.js +29 -17
  82. package/dropdown/dropdown.esm.min.js +1 -1
  83. package/dropdown/dropdown.js +29 -17
  84. package/dropdown/dropdown.min.js +1 -1
  85. package/editor/editor.cjs.js +11 -3
  86. package/editor/editor.cjs.min.js +1 -1
  87. package/editor/editor.esm.js +11 -3
  88. package/editor/editor.esm.min.js +1 -1
  89. package/editor/editor.js +11 -3
  90. package/editor/editor.min.js +1 -1
  91. package/image/image.cjs.js +5 -5
  92. package/image/image.cjs.min.js +1 -1
  93. package/image/image.d.ts +1 -3
  94. package/image/image.esm.js +5 -5
  95. package/image/image.esm.min.js +1 -1
  96. package/image/image.js +5 -5
  97. package/image/image.min.css +1 -1
  98. package/image/image.min.js +1 -1
  99. package/inplace/inplace.cjs.js +1 -1
  100. package/inplace/inplace.cjs.min.js +1 -1
  101. package/inplace/inplace.esm.js +1 -1
  102. package/inplace/inplace.esm.min.js +1 -1
  103. package/inplace/inplace.js +1 -1
  104. package/inplace/inplace.min.js +1 -1
  105. package/inputmask/inputmask.cjs.js +7 -5
  106. package/inputmask/inputmask.cjs.min.js +1 -1
  107. package/inputmask/inputmask.d.ts +0 -1
  108. package/inputmask/inputmask.esm.js +7 -5
  109. package/inputmask/inputmask.esm.min.js +1 -1
  110. package/inputmask/inputmask.js +7 -5
  111. package/inputmask/inputmask.min.js +1 -1
  112. package/inputnumber/inputnumber.cjs.js +2 -2
  113. package/inputnumber/inputnumber.cjs.min.js +1 -1
  114. package/inputnumber/inputnumber.esm.js +2 -2
  115. package/inputnumber/inputnumber.esm.min.js +1 -1
  116. package/inputnumber/inputnumber.js +2 -2
  117. package/inputnumber/inputnumber.min.js +1 -1
  118. package/inputswitch/inputswitch.cjs.js +1 -1
  119. package/inputswitch/inputswitch.cjs.min.js +1 -1
  120. package/inputswitch/inputswitch.esm.js +2 -2
  121. package/inputswitch/inputswitch.esm.min.js +1 -1
  122. package/inputswitch/inputswitch.js +1 -1
  123. package/inputswitch/inputswitch.min.css +1 -1
  124. package/inputswitch/inputswitch.min.js +1 -1
  125. package/inputtext/inputtext.min.css +1 -1
  126. package/listbox/listbox.cjs.js +66 -6
  127. package/listbox/listbox.cjs.min.js +1 -1
  128. package/listbox/listbox.d.ts +1 -1
  129. package/listbox/listbox.esm.js +66 -6
  130. package/listbox/listbox.esm.min.js +1 -1
  131. package/listbox/listbox.js +67 -8
  132. package/listbox/listbox.min.js +1 -1
  133. package/megamenu/megamenu.cjs.js +32 -12
  134. package/megamenu/megamenu.cjs.min.js +1 -1
  135. package/megamenu/megamenu.d.ts +7 -0
  136. package/megamenu/megamenu.esm.js +32 -12
  137. package/megamenu/megamenu.esm.min.js +1 -1
  138. package/megamenu/megamenu.js +32 -12
  139. package/megamenu/megamenu.min.css +1 -1
  140. package/megamenu/megamenu.min.js +1 -1
  141. package/mention/mention.cjs.js +1 -1
  142. package/mention/mention.cjs.min.js +1 -1
  143. package/mention/mention.esm.js +1 -1
  144. package/mention/mention.esm.min.js +1 -1
  145. package/mention/mention.js +1 -1
  146. package/mention/mention.min.js +1 -1
  147. package/menubar/menubar.cjs.js +1 -0
  148. package/menubar/menubar.cjs.min.js +1 -1
  149. package/menubar/menubar.esm.js +1 -0
  150. package/menubar/menubar.esm.min.js +1 -1
  151. package/menubar/menubar.js +1 -0
  152. package/menubar/menubar.min.js +1 -1
  153. package/menuitem/menuitem.d.ts +2 -0
  154. package/message/message.d.ts +1 -1
  155. package/messages/messages.cjs.js +3 -2
  156. package/messages/messages.cjs.min.js +1 -1
  157. package/messages/messages.d.ts +1 -1
  158. package/messages/messages.esm.js +3 -2
  159. package/messages/messages.esm.min.js +1 -1
  160. package/messages/messages.js +3 -2
  161. package/messages/messages.min.js +1 -1
  162. package/multiselect/multiselect.cjs.js +20 -10
  163. package/multiselect/multiselect.cjs.min.js +1 -1
  164. package/multiselect/multiselect.d.ts +1 -1
  165. package/multiselect/multiselect.esm.js +20 -10
  166. package/multiselect/multiselect.esm.min.js +1 -1
  167. package/multiselect/multiselect.js +20 -10
  168. package/multiselect/multiselect.min.js +1 -1
  169. package/overlaypanel/overlaypanel.cjs.js +1 -1
  170. package/overlaypanel/overlaypanel.cjs.min.js +1 -1
  171. package/overlaypanel/overlaypanel.esm.js +1 -1
  172. package/overlaypanel/overlaypanel.esm.min.js +1 -1
  173. package/overlaypanel/overlaypanel.js +1 -1
  174. package/overlaypanel/overlaypanel.min.js +1 -1
  175. package/package.json +1 -1
  176. package/panelmenu/panelmenu.cjs.js +1 -0
  177. package/panelmenu/panelmenu.cjs.min.js +1 -1
  178. package/panelmenu/panelmenu.esm.js +1 -0
  179. package/panelmenu/panelmenu.esm.min.js +1 -1
  180. package/panelmenu/panelmenu.js +1 -0
  181. package/panelmenu/panelmenu.min.js +1 -1
  182. package/picklist/picklist.cjs.js +169 -14
  183. package/picklist/picklist.cjs.min.js +1 -1
  184. package/picklist/picklist.d.ts +29 -0
  185. package/picklist/picklist.esm.js +169 -14
  186. package/picklist/picklist.esm.min.js +1 -1
  187. package/picklist/picklist.js +170 -16
  188. package/picklist/picklist.min.css +1 -1
  189. package/picklist/picklist.min.js +1 -1
  190. package/primereact.all.cjs.js +924 -387
  191. package/primereact.all.cjs.min.js +1 -1
  192. package/primereact.all.esm.js +924 -387
  193. package/primereact.all.esm.min.js +1 -1
  194. package/primereact.all.js +924 -387
  195. package/primereact.all.min.js +1 -1
  196. package/radiobutton/radiobutton.cjs.js +1 -1
  197. package/radiobutton/radiobutton.cjs.min.js +1 -1
  198. package/radiobutton/radiobutton.esm.js +2 -2
  199. package/radiobutton/radiobutton.esm.min.js +1 -1
  200. package/radiobutton/radiobutton.js +1 -1
  201. package/radiobutton/radiobutton.min.js +1 -1
  202. package/resources/primereact.css +248 -194
  203. package/resources/primereact.min.css +1 -1
  204. package/resources/themes/arya-blue/theme.css +20 -6
  205. package/resources/themes/arya-green/theme.css +20 -6
  206. package/resources/themes/arya-orange/theme.css +20 -6
  207. package/resources/themes/arya-purple/theme.css +20 -6
  208. package/resources/themes/bootstrap4-dark-blue/theme.css +20 -6
  209. package/resources/themes/bootstrap4-dark-purple/theme.css +20 -6
  210. package/resources/themes/bootstrap4-light-blue/theme.css +19 -5
  211. package/resources/themes/bootstrap4-light-purple/theme.css +19 -5
  212. package/resources/themes/fluent-light/theme.css +20 -6
  213. package/resources/themes/lara-dark-blue/theme.css +20 -6
  214. package/resources/themes/lara-dark-indigo/theme.css +20 -6
  215. package/resources/themes/lara-dark-purple/theme.css +20 -6
  216. package/resources/themes/lara-dark-teal/theme.css +20 -6
  217. package/resources/themes/lara-light-blue/theme.css +20 -6
  218. package/resources/themes/lara-light-indigo/theme.css +20 -6
  219. package/resources/themes/lara-light-purple/theme.css +20 -6
  220. package/resources/themes/lara-light-teal/theme.css +20 -6
  221. package/resources/themes/luna-amber/theme.css +20 -6
  222. package/resources/themes/luna-blue/theme.css +20 -6
  223. package/resources/themes/luna-green/theme.css +20 -6
  224. package/resources/themes/luna-pink/theme.css +20 -6
  225. package/resources/themes/md-dark-deeppurple/theme.css +20 -6
  226. package/resources/themes/md-dark-indigo/theme.css +20 -6
  227. package/resources/themes/md-light-deeppurple/theme.css +20 -6
  228. package/resources/themes/md-light-indigo/theme.css +20 -6
  229. package/resources/themes/mdc-dark-deeppurple/theme.css +20 -6
  230. package/resources/themes/mdc-dark-indigo/theme.css +20 -6
  231. package/resources/themes/mdc-light-deeppurple/theme.css +20 -6
  232. package/resources/themes/mdc-light-indigo/theme.css +20 -6
  233. package/resources/themes/nova/theme.css +20 -6
  234. package/resources/themes/nova-accent/theme.css +20 -6
  235. package/resources/themes/nova-alt/theme.css +20 -6
  236. package/resources/themes/rhea/theme.css +20 -6
  237. package/resources/themes/saga-blue/theme.css +20 -6
  238. package/resources/themes/saga-green/theme.css +20 -6
  239. package/resources/themes/saga-orange/theme.css +20 -6
  240. package/resources/themes/saga-purple/theme.css +20 -6
  241. package/resources/themes/tailwind-light/theme.css +20 -6
  242. package/resources/themes/vela-blue/theme.css +20 -6
  243. package/resources/themes/vela-green/theme.css +20 -6
  244. package/resources/themes/vela-orange/theme.css +20 -6
  245. package/resources/themes/vela-purple/theme.css +20 -6
  246. package/selectbutton/selectbutton.d.ts +1 -1
  247. package/slidemenu/slidemenu.cjs.js +1 -0
  248. package/slidemenu/slidemenu.cjs.min.js +1 -1
  249. package/slidemenu/slidemenu.esm.js +1 -0
  250. package/slidemenu/slidemenu.esm.min.js +1 -1
  251. package/slidemenu/slidemenu.js +1 -0
  252. package/slidemenu/slidemenu.min.js +1 -1
  253. package/slider/slider.d.ts +1 -1
  254. package/splitbutton/splitbutton.cjs.js +4 -0
  255. package/splitbutton/splitbutton.cjs.min.js +1 -1
  256. package/splitbutton/splitbutton.d.ts +2 -0
  257. package/splitbutton/splitbutton.esm.js +4 -0
  258. package/splitbutton/splitbutton.esm.min.js +1 -1
  259. package/splitbutton/splitbutton.js +4 -0
  260. package/splitbutton/splitbutton.min.js +1 -1
  261. package/splitter/splitter.cjs.js +9 -5
  262. package/splitter/splitter.cjs.min.js +1 -1
  263. package/splitter/splitter.esm.js +10 -6
  264. package/splitter/splitter.esm.min.js +1 -1
  265. package/splitter/splitter.js +9 -5
  266. package/splitter/splitter.min.js +1 -1
  267. package/steps/steps.cjs.js +1 -0
  268. package/steps/steps.cjs.min.js +1 -1
  269. package/steps/steps.esm.js +1 -0
  270. package/steps/steps.esm.min.js +1 -1
  271. package/steps/steps.js +1 -0
  272. package/steps/steps.min.js +1 -1
  273. package/styleclass/styleclass.d.ts +1 -1
  274. package/tag/tag.d.ts +1 -1
  275. package/terminal/terminal.cjs.js +1 -1
  276. package/terminal/terminal.cjs.min.js +1 -1
  277. package/terminal/terminal.esm.js +2 -2
  278. package/terminal/terminal.esm.min.js +1 -1
  279. package/terminal/terminal.js +1 -1
  280. package/terminal/terminal.min.js +1 -1
  281. package/tieredmenu/tieredmenu.cjs.js +3 -1
  282. package/tieredmenu/tieredmenu.cjs.min.js +1 -1
  283. package/tieredmenu/tieredmenu.esm.js +3 -1
  284. package/tieredmenu/tieredmenu.esm.min.js +1 -1
  285. package/tieredmenu/tieredmenu.js +3 -1
  286. package/tieredmenu/tieredmenu.min.js +1 -1
  287. package/toast/toast.cjs.js +30 -35
  288. package/toast/toast.cjs.min.js +1 -1
  289. package/toast/toast.d.ts +2 -1
  290. package/toast/toast.esm.js +30 -35
  291. package/toast/toast.esm.min.js +1 -1
  292. package/toast/toast.js +30 -35
  293. package/toast/toast.min.css +1 -1
  294. package/toast/toast.min.js +1 -1
  295. package/tooltip/tooltip.cjs.js +28 -22
  296. package/tooltip/tooltip.cjs.min.js +1 -1
  297. package/tooltip/tooltip.esm.js +28 -22
  298. package/tooltip/tooltip.esm.min.js +1 -1
  299. package/tooltip/tooltip.js +28 -22
  300. package/tooltip/tooltip.min.js +1 -1
  301. package/tree/tree.cjs.js +9 -1
  302. package/tree/tree.cjs.min.js +1 -1
  303. package/tree/tree.esm.js +9 -1
  304. package/tree/tree.esm.min.js +1 -1
  305. package/tree/tree.js +9 -1
  306. package/tree/tree.min.js +1 -1
  307. package/treeselect/treeselect.cjs.js +2 -2
  308. package/treeselect/treeselect.cjs.min.js +1 -1
  309. package/treeselect/treeselect.esm.js +2 -2
  310. package/treeselect/treeselect.esm.min.js +1 -1
  311. package/treeselect/treeselect.js +2 -2
  312. package/treeselect/treeselect.min.js +1 -1
  313. package/treetable/treetable.cjs.js +1 -0
  314. package/treetable/treetable.cjs.min.js +1 -1
  315. package/treetable/treetable.d.ts +2 -2
  316. package/treetable/treetable.esm.js +1 -0
  317. package/treetable/treetable.esm.min.js +1 -1
  318. package/treetable/treetable.js +1 -0
  319. package/treetable/treetable.min.js +1 -1
  320. package/utils/utils.cjs.js +21 -5
  321. package/utils/utils.cjs.min.js +1 -1
  322. package/utils/utils.d.ts +1 -0
  323. package/utils/utils.esm.js +21 -5
  324. package/utils/utils.esm.min.js +1 -1
  325. package/utils/utils.js +21 -5
  326. package/utils/utils.min.js +1 -1
  327. package/virtualscroller/virtualscroller.cjs.js +154 -65
  328. package/virtualscroller/virtualscroller.cjs.min.js +1 -1
  329. package/virtualscroller/virtualscroller.d.ts +12 -0
  330. package/virtualscroller/virtualscroller.esm.js +156 -67
  331. package/virtualscroller/virtualscroller.esm.min.js +1 -1
  332. package/virtualscroller/virtualscroller.js +154 -65
  333. package/virtualscroller/virtualscroller.min.css +1 -1
  334. package/virtualscroller/virtualscroller.min.js +1 -1
  335. package/web-types.json +167 -4
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import PrimeReact, { localeOption, FilterMatchMode, FilterOperator, FilterService } from 'primereact/api';
3
3
  import { useEventListener, useUpdateEffect, useUnmountEffect, usePrevious, useMountEffect, useOverlayListener } from 'primereact/hooks';
4
4
  import { Paginator } from 'primereact/paginator';
5
- import { classNames, ObjectUtils, DomHandler, ZIndexUtils, UniqueComponentId } from 'primereact/utils';
5
+ import { classNames, DomHandler, ObjectUtils, ZIndexUtils, UniqueComponentId } from 'primereact/utils';
6
6
  import { VirtualScroller } from 'primereact/virtualscroller';
7
7
  import { OverlayService } from 'primereact/overlayservice';
8
8
  import { Ripple } from 'primereact/ripple';
@@ -232,7 +232,7 @@ var RowRadioButton = /*#__PURE__*/React.memo(function (props) {
232
232
  var onClick = function onClick(event) {
233
233
  if (!props.disabled) {
234
234
  props.onChange(event);
235
- inputRef.current.focus();
235
+ DomHandler.focus(inputRef.current);
236
236
  }
237
237
  };
238
238
 
@@ -1392,12 +1392,16 @@ var BodyRow = /*#__PURE__*/React.memo(function (props) {
1392
1392
  }),
1393
1393
  'p-row-odd': props.index % 2 !== 0
1394
1394
  });
1395
+ var style = {
1396
+ height: props.virtualScrollerOptions ? props.virtualScrollerOptions.itemSize : undefined
1397
+ };
1395
1398
  var content = createContent();
1396
1399
  var tabIndex = getTabIndex();
1397
1400
  return /*#__PURE__*/React.createElement("tr", {
1398
1401
  role: "row",
1399
1402
  tabIndex: tabIndex,
1400
1403
  className: className,
1404
+ style: style,
1401
1405
  onMouseDown: onMouseDown,
1402
1406
  onMouseUp: onMouseUp,
1403
1407
  onClick: onClick,
@@ -1439,14 +1443,14 @@ var _excluded = ["originalEvent"];
1439
1443
  function ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1440
1444
 
1441
1445
  function _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$5(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1442
- var TableBody = /*#__PURE__*/React.memo(function (props) {
1446
+ var TableBody = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (props, ref) {
1443
1447
  var _React$useState = React.useState({}),
1444
1448
  _React$useState2 = _slicedToArray(_React$useState, 2),
1445
1449
  rowGroupHeaderStyleObjectState = _React$useState2[0],
1446
1450
  setRowGroupHeaderStyleObjectState = _React$useState2[1];
1447
1451
 
1448
1452
  var elementRef = React.useRef(null);
1449
- var ref = React.useCallback(function (el) {
1453
+ var refCallback = React.useCallback(function (el) {
1450
1454
  elementRef.current = el;
1451
1455
  props.virtualScrollerContentRef && props.virtualScrollerContentRef(el);
1452
1456
  }, [props]);
@@ -2100,9 +2104,12 @@ var TableBody = /*#__PURE__*/React.memo(function (props) {
2100
2104
  var onRowDragStart = function onRowDragStart(e) {
2101
2105
  var event = e.originalEvent,
2102
2106
  index = e.index;
2103
- rowDragging.current = true;
2104
- draggedRowIndex.current = index;
2105
- event.dataTransfer.setData('text', 'b'); // For firefox
2107
+
2108
+ if (allowRowDrag(event)) {
2109
+ rowDragging.current = true;
2110
+ draggedRowIndex.current = index;
2111
+ event.dataTransfer.setData('text', 'b'); // For firefox
2112
+ }
2106
2113
  };
2107
2114
 
2108
2115
  var onRowDragOver = function onRowDragOver(e) {
@@ -2498,10 +2505,10 @@ var TableBody = /*#__PURE__*/React.memo(function (props) {
2498
2505
  var className = classNames('p-datatable-tbody', props.className);
2499
2506
  var content = props.empty ? createEmptyContent() : createContent();
2500
2507
  return /*#__PURE__*/React.createElement("tbody", {
2501
- ref: ref,
2508
+ ref: refCallback,
2502
2509
  className: className
2503
2510
  }, content);
2504
- });
2511
+ }));
2505
2512
  TableBody.displayName = 'TableBody';
2506
2513
 
2507
2514
  function ownKeys$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
@@ -2551,7 +2558,8 @@ var FooterCell = /*#__PURE__*/React.memo(function (props) {
2551
2558
  styleObject['left'] = left + 'px';
2552
2559
  }
2553
2560
 
2554
- setStyleObjectState(styleObject);
2561
+ var isSameStyle = styleObjectState['left'] === styleObject['left'] && styleObjectState['right'] === styleObject['right'];
2562
+ !isSameStyle && setStyleObjectState(styleObject);
2555
2563
  }
2556
2564
  };
2557
2565
 
@@ -3788,14 +3796,15 @@ var HeaderCell = /*#__PURE__*/React.memo(function (props) {
3788
3796
  var sortMeta = getSortMeta();
3789
3797
  var style = getStyle();
3790
3798
  var align = getColumnProp('alignHeader') || getColumnProp('align');
3799
+ var frozen = getColumnProp('frozen');
3791
3800
  var className = classNames(getColumnProp('headerClassName'), getColumnProp('className'), _defineProperty({
3792
3801
  'p-sortable-column': getColumnProp('sortable'),
3793
3802
  'p-resizable-column': props.resizableColumns && getColumnProp('resizeable'),
3794
3803
  'p-highlight': sortMeta.sorted,
3795
- 'p-frozen-column': getColumnProp('frozen'),
3804
+ 'p-frozen-column': frozen,
3796
3805
  'p-selection-column': getColumnProp('selectionMode'),
3797
3806
  'p-sortable-disabled': getColumnProp('sortable') && _isSortableDisabled,
3798
- 'p-reorderable-column': props.reorderableColumns && getColumnProp('reorderable')
3807
+ 'p-reorderable-column': props.reorderableColumns && getColumnProp('reorderable') && !frozen
3799
3808
  }, "p-align-".concat(align), !!align));
3800
3809
  var tabIndex = getColumnProp('sortable') && !_isSortableDisabled ? props.tabIndex : null;
3801
3810
  var colSpan = getColumnProp('colSpan');
@@ -4084,6 +4093,9 @@ var DataTable = /*#__PURE__*/React.forwardRef(function (props, ref) {
4084
4093
  var elementRef = React.useRef(null);
4085
4094
  var tableRef = React.useRef(null);
4086
4095
  var wrapperRef = React.useRef(null);
4096
+ var bodyRef = React.useRef(null);
4097
+ var frozenBodyRef = React.useRef(null);
4098
+ var virtualScrollerRef = React.useRef(null);
4087
4099
  var reorderIndicatorUpRef = React.useRef(null);
4088
4100
  var reorderIndicatorDownRef = React.useRef(null);
4089
4101
  var colReorderIconWidth = React.useRef(null);
@@ -4579,8 +4591,22 @@ var DataTable = /*#__PURE__*/React.forwardRef(function (props, ref) {
4579
4591
  }
4580
4592
  } else if (props.columnResizeMode === 'expand') {
4581
4593
  var tableWidth = tableRef.current.offsetWidth + delta + 'px';
4582
- tableRef.current.style.width = tableWidth;
4583
- tableRef.current.style.minWidth = tableWidth;
4594
+
4595
+ var updateTableWidth = function updateTableWidth(el) {
4596
+ !!el && (el.style.width = el.style.minWidth = tableWidth);
4597
+ };
4598
+
4599
+ updateTableWidth(tableRef.current);
4600
+
4601
+ if (!isVirtualScrollerDisabled()) {
4602
+ updateTableWidth(bodyRef.current);
4603
+ updateTableWidth(frozenBodyRef.current);
4604
+
4605
+ if (wrapperRef.current) {
4606
+ updateTableWidth(DomHandler.findSingle(wrapperRef.current, '.p-virtualscroller-content'));
4607
+ }
4608
+ }
4609
+
4584
4610
  resizeTableCells(newColumnWidth);
4585
4611
  }
4586
4612
 
@@ -4637,7 +4663,7 @@ var DataTable = /*#__PURE__*/React.forwardRef(function (props, ref) {
4637
4663
  var event = e.originalEvent,
4638
4664
  column = e.column;
4639
4665
 
4640
- if (props.reorderableColumns && getColumnProp(column, 'reorderable') !== false) {
4666
+ if (props.reorderableColumns && getColumnProp(column, 'reorderable') !== false && !getColumnProp(column, 'frozen')) {
4641
4667
  if (event.target.nodeName === 'INPUT' || event.target.nodeName === 'TEXTAREA' || DomHandler.hasClass(event.target, 'p-column-resizer')) event.currentTarget.draggable = false;else event.currentTarget.draggable = true;
4642
4668
  }
4643
4669
  };
@@ -4700,10 +4726,11 @@ var DataTable = /*#__PURE__*/React.forwardRef(function (props, ref) {
4700
4726
  };
4701
4727
 
4702
4728
  var onColumnHeaderDragOver = function onColumnHeaderDragOver(e) {
4703
- var event = e.originalEvent;
4729
+ var event = e.originalEvent,
4730
+ column = e.column;
4704
4731
  var dropHeader = findParentHeader(event.currentTarget);
4705
4732
 
4706
- if (props.reorderableColumns && draggedColumnElement.current && dropHeader) {
4733
+ if (props.reorderableColumns && draggedColumnElement.current && dropHeader && !getColumnProp(column, 'frozen')) {
4707
4734
  event.preventDefault();
4708
4735
 
4709
4736
  if (draggedColumnElement.current !== dropHeader) {
@@ -4914,8 +4941,8 @@ var DataTable = /*#__PURE__*/React.forwardRef(function (props, ref) {
4914
4941
  return props.removableSort ? props.defaultSortOrder === currentOrder ? currentOrder * -1 : 0 : currentOrder * -1;
4915
4942
  };
4916
4943
 
4917
- var compareValuesOnSort = function compareValuesOnSort(value1, value2) {
4918
- return ObjectUtils.sort(value1, value2, 1, PrimeReact.locale);
4944
+ var compareValuesOnSort = function compareValuesOnSort(value1, value2, order) {
4945
+ return ObjectUtils.sort(value1, value2, order, PrimeReact.locale);
4919
4946
  };
4920
4947
 
4921
4948
  var addSortMeta = function addSortMeta(meta, multiSortMeta) {
@@ -4954,6 +4981,7 @@ var DataTable = /*#__PURE__*/React.forwardRef(function (props, ref) {
4954
4981
 
4955
4982
  if (columnSortable.current && columnSortFunction.current) {
4956
4983
  value = columnSortFunction.current({
4984
+ rowData: value,
4957
4985
  field: field,
4958
4986
  order: order
4959
4987
  });
@@ -4961,8 +4989,7 @@ var DataTable = /*#__PURE__*/React.forwardRef(function (props, ref) {
4961
4989
  value.sort(function (data1, data2) {
4962
4990
  var value1 = ObjectUtils.resolveFieldData(data1, field);
4963
4991
  var value2 = ObjectUtils.resolveFieldData(data2, field);
4964
- var result = compareValuesOnSort(value1, value2);
4965
- return order * result;
4992
+ return compareValuesOnSort(value1, value2, order);
4966
4993
  });
4967
4994
  }
4968
4995
 
@@ -4995,6 +5022,7 @@ var DataTable = /*#__PURE__*/React.forwardRef(function (props, ref) {
4995
5022
  var field = columnField.current;
4996
5023
  var order = meta ? meta.order : defaultSortOrder;
4997
5024
  value = columnSortFunction.current({
5025
+ rowData: value,
4998
5026
  field: field,
4999
5027
  order: order
5000
5028
  });
@@ -5015,8 +5043,7 @@ var DataTable = /*#__PURE__*/React.forwardRef(function (props, ref) {
5015
5043
  return multiSortMeta.length - 1 > index ? multisortField(data1, data2, multiSortMeta, index + 1) : 0;
5016
5044
  }
5017
5045
 
5018
- var result = compareValuesOnSort(value1, value2);
5019
- return multiSortMeta[index].order * result;
5046
+ return compareValuesOnSort(value1, value2, multiSortMeta[index].order);
5020
5047
  };
5021
5048
 
5022
5049
  var onFilterChange = function onFilterChange(filters) {
@@ -5395,7 +5422,9 @@ var DataTable = /*#__PURE__*/React.forwardRef(function (props, ref) {
5395
5422
  }
5396
5423
  }, [props.responsiveLayout]);
5397
5424
  useUpdateEffect(function () {
5398
- filter(props.globalFilter, 'global', 'contains');
5425
+ if (props.globalFilter) {
5426
+ filter(props.globalFilter, 'global', 'contains');
5427
+ }
5399
5428
  }, [props.globalFilter]);
5400
5429
  useUnmountEffect(function () {
5401
5430
  unbindColumnResizeEvents();
@@ -5495,7 +5524,9 @@ var DataTable = /*#__PURE__*/React.forwardRef(function (props, ref) {
5495
5524
  columns = options.columns,
5496
5525
  contentRef = options.contentRef,
5497
5526
  className = options.className;
5527
+ options.itemSize;
5498
5528
  var frozenBody = props.frozenValue && /*#__PURE__*/React.createElement(TableBody, {
5529
+ ref: frozenBodyRef,
5499
5530
  value: props.frozenValue,
5500
5531
  className: "p-datatable-frozen-tbody",
5501
5532
  frozenRow: true,
@@ -5559,9 +5590,11 @@ var DataTable = /*#__PURE__*/React.forwardRef(function (props, ref) {
5559
5590
  expandedRowIcon: props.expandedRowIcon,
5560
5591
  collapsedRowIcon: props.collapsedRowIcon,
5561
5592
  rowClassName: props.rowClassName,
5593
+ virtualScrollerOptions: options,
5562
5594
  isVirtualScrollerDisabled: true
5563
5595
  });
5564
5596
  var body = /*#__PURE__*/React.createElement(TableBody, {
5597
+ ref: bodyRef,
5565
5598
  value: dataToRender(rows),
5566
5599
  className: className,
5567
5600
  empty: empty,
@@ -5654,10 +5687,15 @@ var DataTable = /*#__PURE__*/React.forwardRef(function (props, ref) {
5654
5687
  style: {
5655
5688
  maxHeight: _isVirtualScrollerDisabled ? props.scrollHeight : null
5656
5689
  }
5657
- }, /*#__PURE__*/React.createElement(VirtualScroller, _extends({}, virtualScrollerOptions, {
5690
+ }, /*#__PURE__*/React.createElement(VirtualScroller, _extends({
5691
+ ref: virtualScrollerRef
5692
+ }, virtualScrollerOptions, {
5658
5693
  items: processedData,
5659
5694
  columns: columns,
5660
- scrollHeight: props.scrollHeight,
5695
+ style: _objectSpread(_objectSpread({}, virtualScrollerOptions.style), {
5696
+ height: props.scrollHeight !== 'flex' ? props.scrollHeight : undefined
5697
+ }),
5698
+ scrollHeight: props.scrollHeight !== 'flex' ? undefined : '100%',
5661
5699
  disabled: _isVirtualScrollerDisabled,
5662
5700
  loaderDisabled: true,
5663
5701
  showSpacer: false,