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
package/core/core.js CHANGED
@@ -997,6 +997,21 @@ this.primereact.utils = (function (exports, React) {
997
997
  var focusableElements = DomHandler.getFocusableElements(element, selector);
998
998
  return focusableElements.length > 0 ? focusableElements[focusableElements.length - 1] : null;
999
999
  }
1000
+ /**
1001
+ * Focus an input element if it does not already have focus.
1002
+ *
1003
+ * @param {HTMLElement} el a HTML element
1004
+ * @param {boolean} scrollTo flag to control whether to scroll to the element, false by default
1005
+ */
1006
+
1007
+ }, {
1008
+ key: "focus",
1009
+ value: function focus(el, scrollTo) {
1010
+ var preventScroll = scrollTo === undefined ? true : !scrollTo;
1011
+ el && document.activeElement !== el && el.focus({
1012
+ preventScroll: preventScroll
1013
+ });
1014
+ }
1000
1015
  }, {
1001
1016
  key: "getCursorOffset",
1002
1017
  value: function getCursorOffset(el, prevText, nextText, currentText) {
@@ -1407,12 +1422,9 @@ this.primereact.utils = (function (exports, React) {
1407
1422
 
1408
1423
  var onBlur = function onBlur(e) {
1409
1424
  checkVal();
1425
+ options.onBlur && options.onBlur(e);
1410
1426
  updateModel(e);
1411
1427
 
1412
- if (options.onBlur) {
1413
- options.onBlur(e);
1414
- }
1415
-
1416
1428
  if (el.value !== focusText) {
1417
1429
  var event = document.createEvent('HTMLEvents');
1418
1430
  event.initEvent('change', true, false);
@@ -1948,7 +1960,11 @@ this.primereact.utils = (function (exports, React) {
1948
1960
  var order = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
1949
1961
  var locale = arguments.length > 3 ? arguments[3] : undefined;
1950
1962
  var result = null;
1951
- if (value1 == null && value2 != null) result = -1;else if (value1 != null && value2 == null) result = 1;else if (value1 == null && value2 == null) result = 0;else if (typeof value1 === 'string' && typeof value2 === 'string') result = value1.localeCompare(value2, locale, {
1963
+ var emptyValue1 = this.isEmpty(value1);
1964
+ var emptyValue2 = this.isEmpty(value2);
1965
+ if (emptyValue1 && emptyValue2) result = 0;else if (emptyValue1) result = order; // sort nulls at bottom like Excel
1966
+ else if (emptyValue2) result = -order; // sort nulls at bottom like Excel
1967
+ else if (typeof value1 === 'string' && typeof value2 === 'string') result = value1.localeCompare(value2, locale, {
1952
1968
  numeric: true
1953
1969
  });else result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;
1954
1970
  return order * result;
@@ -4036,6 +4052,11 @@ this.primereact.tooltip = (function (exports, React, PrimeReact, hooks, portal,
4036
4052
  positionState = _React$useState4[0],
4037
4053
  setPositionState = _React$useState4[1];
4038
4054
 
4055
+ var _React$useState5 = React__namespace.useState(''),
4056
+ _React$useState6 = _slicedToArray(_React$useState5, 2),
4057
+ classNameState = _React$useState6[0],
4058
+ setClassNameState = _React$useState6[1];
4059
+
4039
4060
  var elementRef = React__namespace.useRef(null);
4040
4061
  var textRef = React__namespace.useRef(null);
4041
4062
  var currentTargetRef = React__namespace.useRef(null);
@@ -4154,7 +4175,7 @@ this.primereact.tooltip = (function (exports, React, PrimeReact, hooks, portal,
4154
4175
  return;
4155
4176
  }
4156
4177
 
4157
- var updateTooltipState = function updateTooltipState() {
4178
+ var updateTooltipState = function updateTooltipState(position) {
4158
4179
  updateText(currentTargetRef.current, function () {
4159
4180
  if (props.autoZIndex && !utils.ZIndexUtils.get(elementRef.current)) {
4160
4181
  utils.ZIndexUtils.set('tooltip', elementRef.current, PrimeReact__default["default"].autoZIndex, props.baseZIndex || PrimeReact__default["default"].zIndex['tooltip']);
@@ -4177,7 +4198,7 @@ this.primereact.tooltip = (function (exports, React, PrimeReact, hooks, portal,
4177
4198
  align(currentTargetRef.current, {
4178
4199
  x: e.pageX,
4179
4200
  y: e.pageY
4180
- });
4201
+ }, position);
4181
4202
  });
4182
4203
  };
4183
4204
 
@@ -4192,16 +4213,16 @@ this.primereact.tooltip = (function (exports, React, PrimeReact, hooks, portal,
4192
4213
 
4193
4214
  if (success) {
4194
4215
  applyDelay('showDelay', function () {
4216
+ var position = getPosition(currentTargetRef.current);
4217
+ var classname = getTargetOption(currentTargetRef.current, 'classname');
4195
4218
  setVisibleState(true);
4196
- setPositionState(getPosition(currentTargetRef.current));
4197
- setTimeout(function () {
4198
- return updateTooltipState();
4199
- }, 0);
4219
+ setPositionState(position);
4220
+ setClassNameState(classname);
4221
+ updateTooltipState(position);
4200
4222
  sendCallback(props.onShow, {
4201
4223
  originalEvent: e,
4202
4224
  target: currentTargetRef.current
4203
4225
  });
4204
- utils.DomHandler.addClass(currentTargetRef.current, getTargetOption(currentTargetRef.current, 'classname'));
4205
4226
  });
4206
4227
  }
4207
4228
  }
@@ -4211,7 +4232,6 @@ this.primereact.tooltip = (function (exports, React, PrimeReact, hooks, portal,
4211
4232
  clearTimeouts();
4212
4233
 
4213
4234
  if (visibleState) {
4214
- utils.DomHandler.removeClass(currentTargetRef.current, getTargetOption(currentTargetRef.current, 'classname'));
4215
4235
  var success = sendCallback(props.onBeforeHide, {
4216
4236
  originalEvent: e,
4217
4237
  target: currentTargetRef.current
@@ -4227,6 +4247,7 @@ this.primereact.tooltip = (function (exports, React, PrimeReact, hooks, portal,
4227
4247
  utils.DomHandler.removeClass(elementRef.current, 'p-tooltip-active');
4228
4248
  setVisibleState(false);
4229
4249
  setPositionState(props.position);
4250
+ setClassNameState('');
4230
4251
  currentTargetRef.current = null;
4231
4252
  containerSize.current = null;
4232
4253
  allowHide.current = true;
@@ -4239,9 +4260,10 @@ this.primereact.tooltip = (function (exports, React, PrimeReact, hooks, portal,
4239
4260
  }
4240
4261
  };
4241
4262
 
4242
- var align = function align(target, coordinate) {
4263
+ var align = function align(target, coordinate, position) {
4243
4264
  var left = 0,
4244
- top = 0;
4265
+ top = 0,
4266
+ currentPosition = position || positionState;
4245
4267
 
4246
4268
  if (isMouseTrack(target) && coordinate) {
4247
4269
  var _containerSize = {
@@ -4255,7 +4277,7 @@ this.primereact.tooltip = (function (exports, React, PrimeReact, hooks, portal,
4255
4277
  mouseTrackTop = _getMouseTrackPositio.top,
4256
4278
  mouseTrackLeft = _getMouseTrackPositio.left;
4257
4279
 
4258
- switch (positionState) {
4280
+ switch (currentPosition) {
4259
4281
  case 'left':
4260
4282
  left -= _containerSize.width + mouseTrackLeft;
4261
4283
  top -= _containerSize.height / 2 - mouseTrackTop;
@@ -4288,28 +4310,28 @@ this.primereact.tooltip = (function (exports, React, PrimeReact, hooks, portal,
4288
4310
  elementRef.current.style.top = top + 'px';
4289
4311
  utils.DomHandler.addClass(elementRef.current, 'p-tooltip-active');
4290
4312
  } else {
4291
- var pos = utils.DomHandler.findCollisionPosition(positionState);
4313
+ var pos = utils.DomHandler.findCollisionPosition(currentPosition);
4292
4314
  var my = getTargetOption(target, 'my') || props.my || pos.my;
4293
4315
  var at = getTargetOption(target, 'at') || props.at || pos.at;
4294
4316
  elementRef.current.style.padding = '0px';
4295
- utils.DomHandler.flipfitCollision(elementRef.current, target, my, at, function (currentPosition) {
4296
- var _currentPosition$at = currentPosition.at,
4297
- atX = _currentPosition$at.x,
4298
- atY = _currentPosition$at.y;
4299
- var myX = currentPosition.my.x;
4300
- var newPosition = props.at ? atX !== 'center' && atX !== myX ? atX : atY : currentPosition.at["".concat(pos.axis)];
4317
+ utils.DomHandler.flipfitCollision(elementRef.current, target, my, at, function (calculatedPosition) {
4318
+ var _calculatedPosition$a = calculatedPosition.at,
4319
+ atX = _calculatedPosition$a.x,
4320
+ atY = _calculatedPosition$a.y;
4321
+ var myX = calculatedPosition.my.x;
4322
+ var newPosition = props.at ? atX !== 'center' && atX !== myX ? atX : atY : calculatedPosition.at["".concat(pos.axis)];
4301
4323
  elementRef.current.style.padding = '';
4302
4324
  setPositionState(newPosition);
4303
- updateContainerPosition();
4325
+ updateContainerPosition(newPosition);
4304
4326
  utils.DomHandler.addClass(elementRef.current, 'p-tooltip-active');
4305
4327
  });
4306
4328
  }
4307
4329
  };
4308
4330
 
4309
- var updateContainerPosition = function updateContainerPosition() {
4331
+ var updateContainerPosition = function updateContainerPosition(position) {
4310
4332
  if (elementRef.current) {
4311
4333
  var style = getComputedStyle(elementRef.current);
4312
- if (positionState === 'left') elementRef.current.style.left = parseFloat(style.left) - parseFloat(style.paddingLeft) * 2 + 'px';else if (positionState === 'top') elementRef.current.style.top = parseFloat(style.top) - parseFloat(style.paddingTop) * 2 + 'px';
4334
+ if (position === 'left') elementRef.current.style.left = parseFloat(style.left) - parseFloat(style.paddingLeft) * 2 + 'px';else if (position === 'top') elementRef.current.style.top = parseFloat(style.top) - parseFloat(style.paddingTop) * 2 + 'px';
4313
4335
  }
4314
4336
  };
4315
4337
 
@@ -4495,7 +4517,7 @@ this.primereact.tooltip = (function (exports, React, PrimeReact, hooks, portal,
4495
4517
 
4496
4518
  var createElement = function createElement() {
4497
4519
  var otherProps = utils.ObjectUtils.findDiffKeys(props, Tooltip.defaultProps);
4498
- var tooltipClassName = utils.classNames('p-tooltip p-component', _defineProperty({}, "p-tooltip-".concat(positionState), true), props.className);
4520
+ var tooltipClassName = utils.classNames('p-tooltip p-component', _defineProperty({}, "p-tooltip-".concat(positionState), true), props.className, classNameState);
4499
4521
  var empty = isTargetContentEmpty(currentTargetRef.current);
4500
4522
  return /*#__PURE__*/React__namespace.createElement("div", _extends({
4501
4523
  id: props.id,
@@ -4721,7 +4743,7 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
4721
4743
  numToleratedItemsState = _React$useState8[0],
4722
4744
  setNumToleratedItemsState = _React$useState8[1];
4723
4745
 
4724
- var _React$useState9 = React__namespace.useState(props.loading),
4746
+ var _React$useState9 = React__namespace.useState(props.loading || false),
4725
4747
  _React$useState10 = _slicedToArray(_React$useState9, 2),
4726
4748
  loadingState = _React$useState10[0],
4727
4749
  setLoadingState = _React$useState10[1];
@@ -4744,10 +4766,39 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
4744
4766
  left: 0
4745
4767
  } : 0);
4746
4768
  var scrollTimeout = React__namespace.useRef(null);
4769
+ var resizeTimeout = React__namespace.useRef(null);
4770
+ var defaultWidth = React__namespace.useRef(null);
4771
+ var defaultHeight = React__namespace.useRef(null);
4747
4772
  var prevItems = hooks.usePrevious(props.items);
4748
4773
  var prevLoading = hooks.usePrevious(props.loading);
4749
4774
 
4775
+ var _useResizeListener = hooks.useResizeListener({
4776
+ listener: function listener(event) {
4777
+ return onResize(event);
4778
+ }
4779
+ }),
4780
+ _useResizeListener2 = _slicedToArray(_useResizeListener, 1),
4781
+ bindWindowResizeListener = _useResizeListener2[0];
4782
+
4783
+ var _useEventListener = hooks.useEventListener({
4784
+ target: 'window',
4785
+ type: 'orientationchange',
4786
+ listener: function listener(event) {
4787
+ return onResize(event);
4788
+ }
4789
+ }),
4790
+ _useEventListener2 = _slicedToArray(_useEventListener, 1),
4791
+ bindOrientationChangeListener = _useEventListener2[0];
4792
+
4793
+ var getElementRef = function getElementRef() {
4794
+ return elementRef;
4795
+ };
4796
+
4750
4797
  var scrollTo = function scrollTo(options) {
4798
+ lastScrollPos.current = both ? {
4799
+ top: 0,
4800
+ left: 0
4801
+ } : 0;
4751
4802
  elementRef.current && elementRef.current.scrollTo(options);
4752
4803
  };
4753
4804
 
@@ -4757,9 +4808,6 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
4757
4808
  var _calculateNumItems = calculateNumItems(),
4758
4809
  numToleratedItems = _calculateNumItems.numToleratedItems;
4759
4810
 
4760
- var itemSize = props.itemSize;
4761
- var contentPos = getContentPosition();
4762
-
4763
4811
  var calculateFirst = function calculateFirst() {
4764
4812
  var _index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
4765
4813
 
@@ -4768,8 +4816,8 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
4768
4816
  return _index <= _numT ? 0 : _index;
4769
4817
  };
4770
4818
 
4771
- var calculateCoord = function calculateCoord(_first, _size, _cpos) {
4772
- return _first * _size + _cpos;
4819
+ var calculateCoord = function calculateCoord(_first, _size) {
4820
+ return _first * _size;
4773
4821
  };
4774
4822
 
4775
4823
  var scrollToItem = function scrollToItem() {
@@ -4789,15 +4837,13 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
4789
4837
  };
4790
4838
 
4791
4839
  if (newFirst.rows !== firstState.rows || newFirst.cols !== firstState.cols) {
4792
- scrollToItem(calculateCoord(newFirst.cols, itemSize[1], contentPos.left), calculateCoord(newFirst.rows, itemSize[0], contentPos.top));
4793
- setFirstState(newFirst);
4840
+ scrollToItem(calculateCoord(newFirst.cols, props.itemSize[1]), calculateCoord(newFirst.rows, props.itemSize[0]));
4794
4841
  }
4795
4842
  } else {
4796
4843
  var _newFirst = calculateFirst(index, numToleratedItems);
4797
4844
 
4798
4845
  if (_newFirst !== firstState) {
4799
- horizontal ? scrollToItem(calculateCoord(_newFirst, itemSize, contentPos.left), 0) : scrollToItem(0, calculateCoord(_newFirst, itemSize, contentPos.top));
4800
- setFirstState(_newFirst);
4846
+ horizontal ? scrollToItem(calculateCoord(_newFirst, props.itemSize), 0) : scrollToItem(0, calculateCoord(_newFirst, props.itemSize));
4801
4847
  }
4802
4848
  }
4803
4849
  };
@@ -4810,8 +4856,6 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
4810
4856
  first = _getRenderedRange.first,
4811
4857
  viewport = _getRenderedRange.viewport;
4812
4858
 
4813
- var itemSize = props.itemSize;
4814
-
4815
4859
  var scrollToItem = function scrollToItem() {
4816
4860
  var left = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
4817
4861
  var top = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
@@ -4828,26 +4872,26 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
4828
4872
  if (isToStart) {
4829
4873
  if (both) {
4830
4874
  if (viewport.first.rows - first.rows > index[0]) {
4831
- scrollToItem(viewport.first.cols * itemSize, (viewport.first.rows - 1) * itemSize);
4875
+ scrollToItem(viewport.first.cols * props.itemSize[1], (viewport.first.rows - 1) * props.itemSize[0]);
4832
4876
  } else if (viewport.first.cols - first.cols > index[1]) {
4833
- scrollToItem((viewport.first.cols - 1) * itemSize, viewport.first.rows * itemSize);
4877
+ scrollToItem((viewport.first.cols - 1) * props.itemSize[1], viewport.first.rows * props.itemSize[0]);
4834
4878
  }
4835
4879
  } else {
4836
4880
  if (viewport.first - first > index) {
4837
- var pos = (viewport.first - 1) * itemSize;
4881
+ var pos = (viewport.first - 1) * props.itemSize;
4838
4882
  horizontal ? scrollToItem(pos, 0) : scrollToItem(0, pos);
4839
4883
  }
4840
4884
  }
4841
4885
  } else if (isToEnd) {
4842
4886
  if (both) {
4843
4887
  if (viewport.last.rows - first.rows <= index[0] + 1) {
4844
- scrollToItem(viewport.first.cols * itemSize, (viewport.first.rows + 1) * itemSize);
4888
+ scrollToItem(viewport.first.cols * props.itemSize[1], (viewport.first.rows + 1) * props.itemSize[0]);
4845
4889
  } else if (viewport.last.cols - first.cols <= index[1] + 1) {
4846
- scrollToItem((viewport.first.cols + 1) * itemSize, viewport.first.rows * itemSize);
4890
+ scrollToItem((viewport.first.cols + 1) * props.itemSize[1], viewport.first.rows * props.itemSize[0]);
4847
4891
  }
4848
4892
  } else {
4849
4893
  if (viewport.last - first <= index + 1) {
4850
- var _pos2 = (viewport.first + 1) * itemSize;
4894
+ var _pos2 = (viewport.first + 1) * props.itemSize;
4851
4895
 
4852
4896
  horizontal ? scrollToItem(_pos2, 0) : scrollToItem(0, _pos2);
4853
4897
  }
@@ -4863,18 +4907,14 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
4863
4907
  };
4864
4908
 
4865
4909
  var getColumns = function getColumns() {
4866
- if (props.columns) {
4867
- if (both || horizontal) {
4868
- return loadingState && props.loaderDisabled ? both ? loaderArrState[0] : loaderArrState : props.columns.slice(both ? firstState.cols : firstState, both ? lastState.cols : lastState);
4869
- }
4910
+ if (props.columns && both || horizontal) {
4911
+ return loadingState && props.loaderDisabled ? both ? loaderArrState[0] : loaderArrState : props.columns.slice(both ? firstState.cols : firstState, both ? lastState.cols : lastState);
4870
4912
  }
4871
4913
 
4872
4914
  return props.columns;
4873
4915
  };
4874
4916
 
4875
4917
  var getRenderedRange = function getRenderedRange() {
4876
- var itemSize = props.itemSize;
4877
-
4878
4918
  var calculateFirstInViewport = function calculateFirstInViewport(_pos, _size) {
4879
4919
  return Math.floor(_pos / (_size || _pos));
4880
4920
  };
@@ -4883,13 +4923,14 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
4883
4923
  var lastInViewport = 0;
4884
4924
 
4885
4925
  if (elementRef.current) {
4886
- var scrollTop = elementRef.current.scrollTop;
4887
- var scrollLeft = elementRef.current.scrollLeft;
4926
+ var _elementRef$current = elementRef.current,
4927
+ scrollTop = _elementRef$current.scrollTop,
4928
+ scrollLeft = _elementRef$current.scrollLeft;
4888
4929
 
4889
4930
  if (both) {
4890
4931
  firstInViewport = {
4891
- rows: calculateFirstInViewport(scrollTop, itemSize[0]),
4892
- cols: calculateFirstInViewport(scrollLeft, itemSize[1])
4932
+ rows: calculateFirstInViewport(scrollTop, props.itemSize[0]),
4933
+ cols: calculateFirstInViewport(scrollLeft, props.itemSize[1])
4893
4934
  };
4894
4935
  lastInViewport = {
4895
4936
  rows: firstInViewport.rows + numItemsInViewportState.rows,
@@ -4897,7 +4938,7 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
4897
4938
  };
4898
4939
  } else {
4899
4940
  var scrollPos = horizontal ? scrollLeft : scrollTop;
4900
- firstInViewport = calculateFirstInViewport(scrollPos, itemSize);
4941
+ firstInViewport = calculateFirstInViewport(scrollPos, props.itemSize);
4901
4942
  lastInViewport = firstInViewport + numItemsInViewportState;
4902
4943
  }
4903
4944
  }
@@ -4913,7 +4954,6 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
4913
4954
  };
4914
4955
 
4915
4956
  var calculateNumItems = function calculateNumItems() {
4916
- var itemSize = props.itemSize;
4917
4957
  var contentPos = getContentPosition();
4918
4958
  var contentWidth = elementRef.current ? elementRef.current.offsetWidth - contentPos.left : 0;
4919
4959
  var contentHeight = elementRef.current ? elementRef.current.offsetHeight - contentPos.top : 0;
@@ -4927,9 +4967,9 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
4927
4967
  };
4928
4968
 
4929
4969
  var numItemsInViewport = both ? {
4930
- rows: calculateNumItemsInViewport(contentHeight, itemSize[0]),
4931
- cols: calculateNumItemsInViewport(contentWidth, itemSize[1])
4932
- } : calculateNumItemsInViewport(horizontal ? contentWidth : contentHeight, itemSize);
4970
+ rows: calculateNumItemsInViewport(contentHeight, props.itemSize[0]),
4971
+ cols: calculateNumItemsInViewport(contentWidth, props.itemSize[1])
4972
+ } : calculateNumItemsInViewport(horizontal ? contentWidth : contentHeight, props.itemSize);
4933
4973
  var numToleratedItems = numToleratedItemsState || (both ? [calculateNumToleratedItems(numItemsInViewport.rows), calculateNumToleratedItems(numItemsInViewport.cols)] : calculateNumToleratedItems(numItemsInViewport));
4934
4974
  return {
4935
4975
  numItemsInViewport: numItemsInViewport,
@@ -4974,15 +5014,26 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
4974
5014
  }
4975
5015
  };
4976
5016
 
5017
+ var calculateAutoSize = function calculateAutoSize(loading) {
5018
+ if (props.autoSize && !loading) {
5019
+ Promise.resolve().then(function () {
5020
+ if (_contentRef.current) {
5021
+ _contentRef.current.style.minHeight = _contentRef.current.style.minWidth = 'auto';
5022
+ var _contentRef$current = _contentRef.current,
5023
+ offsetWidth = _contentRef$current.offsetWidth,
5024
+ offsetHeight = _contentRef$current.offsetHeight;
5025
+ (both || horizontal) && (elementRef.current.style.width = (offsetWidth < defaultWidth.current ? offsetWidth : defaultWidth.current) + 'px');
5026
+ (both || vertical) && (elementRef.current.style.height = (offsetHeight < defaultHeight.current ? offsetHeight : defaultHeight.current) + 'px');
5027
+ _contentRef.current.style.minHeight = _contentRef.current.style.minWidth = '';
5028
+ }
5029
+ });
5030
+ }
5031
+ };
5032
+
4977
5033
  var getLast = function getLast() {
4978
5034
  var last = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
4979
5035
  var isCols = arguments.length > 1 ? arguments[1] : undefined;
4980
-
4981
- if (props.items) {
4982
- return Math.min(isCols ? (props.columns || props.items[0]).length : props.items.length, last);
4983
- }
4984
-
4985
- return 0;
5036
+ return props.items ? Math.min(isCols ? (props.columns || props.items[0]).length : props.items.length, last) : 0;
4986
5037
  };
4987
5038
 
4988
5039
  var getContentPosition = function getContentPosition() {
@@ -5035,7 +5086,6 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5035
5086
  var items = props.items;
5036
5087
 
5037
5088
  if (_spacerRef.current && items) {
5038
- var itemSize = props.itemSize;
5039
5089
  var contentPos = getContentPosition();
5040
5090
 
5041
5091
  var setProp = function setProp(_name, _value, _size) {
@@ -5045,10 +5095,10 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5045
5095
  };
5046
5096
 
5047
5097
  if (both) {
5048
- setProp('height', items, itemSize[0], contentPos.y);
5049
- setProp('width', props.columns || items[1], itemSize[1], contentPos.x);
5098
+ setProp('height', items, props.itemSize[0], contentPos.y);
5099
+ setProp('width', props.columns || items[1], props.itemSize[1], contentPos.x);
5050
5100
  } else {
5051
- horizontal ? setProp('width', props.columns || items, itemSize, contentPos.x) : setProp('height', items, itemSize, contentPos.y);
5101
+ horizontal ? setProp('width', props.columns || items, props.itemSize, contentPos.x) : setProp('height', items, props.itemSize, contentPos.y);
5052
5102
  }
5053
5103
  }
5054
5104
  };
@@ -5056,7 +5106,6 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5056
5106
  var setContentPosition = function setContentPosition(pos) {
5057
5107
  if (_contentRef.current) {
5058
5108
  var first = pos ? pos.first : firstState;
5059
- var itemSize = props.itemSize;
5060
5109
 
5061
5110
  var calculateTranslateVal = function calculateTranslateVal(_first, _size) {
5062
5111
  return _first * _size;
@@ -5072,9 +5121,9 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5072
5121
  };
5073
5122
 
5074
5123
  if (both) {
5075
- setTransform(calculateTranslateVal(first.cols, itemSize[1]), calculateTranslateVal(first.rows, itemSize[0]));
5124
+ setTransform(calculateTranslateVal(first.cols, props.itemSize[1]), calculateTranslateVal(first.rows, props.itemSize[0]));
5076
5125
  } else {
5077
- var translateVal = calculateTranslateVal(first, itemSize);
5126
+ var translateVal = calculateTranslateVal(first, props.itemSize);
5078
5127
  horizontal ? setTransform(translateVal, 0) : setTransform(0, translateVal);
5079
5128
  }
5080
5129
  }
@@ -5082,7 +5131,6 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5082
5131
 
5083
5132
  var onScrollPositionChange = function onScrollPositionChange(event) {
5084
5133
  var target = event.target;
5085
- var itemSize = props.itemSize;
5086
5134
  var contentPos = getContentPosition();
5087
5135
 
5088
5136
  var calculateScrollPos = function calculateScrollPos(_pos, _cpos) {
@@ -5113,16 +5161,20 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5113
5161
 
5114
5162
  var scrollTop = calculateScrollPos(target.scrollTop, contentPos.top);
5115
5163
  var scrollLeft = calculateScrollPos(target.scrollLeft, contentPos.left);
5116
- var newFirst = 0;
5164
+ var newFirst = both ? {
5165
+ rows: 0,
5166
+ cols: 0
5167
+ } : 0;
5117
5168
  var newLast = lastState;
5118
5169
  var isRangeChanged = false;
5170
+ var newScrollPos = lastScrollPos.current;
5119
5171
 
5120
5172
  if (both) {
5121
5173
  var isScrollDown = lastScrollPos.current.top <= scrollTop;
5122
5174
  var isScrollRight = lastScrollPos.current.left <= scrollLeft;
5123
5175
  var currentIndex = {
5124
- rows: calculateCurrentIndex(scrollTop, itemSize[0]),
5125
- cols: calculateCurrentIndex(scrollLeft, itemSize[1])
5176
+ rows: calculateCurrentIndex(scrollTop, props.itemSize[0]),
5177
+ cols: calculateCurrentIndex(scrollLeft, props.itemSize[1])
5126
5178
  };
5127
5179
  var triggerIndex = {
5128
5180
  rows: calculateTriggerIndex(currentIndex.rows, firstState.rows, lastState.rows, numItemsInViewportState.rows, numToleratedItemsState[0], isScrollDown),
@@ -5136,8 +5188,8 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5136
5188
  rows: calculateLast(currentIndex.rows, newFirst.rows, lastState.rows, numItemsInViewportState.rows, numToleratedItemsState[0]),
5137
5189
  cols: calculateLast(currentIndex.cols, newFirst.cols, lastState.cols, numItemsInViewportState.cols, numToleratedItemsState[1], true)
5138
5190
  };
5139
- isRangeChanged = newFirst.rows !== firstState.rows && newLast.rows !== lastState.rows || newFirst.cols !== firstState.cols && newLast.cols !== lastState.cols;
5140
- lastScrollPos.current = {
5191
+ isRangeChanged = newFirst.rows !== firstState.rows || newLast.rows !== lastState.rows || newFirst.cols !== firstState.cols || newLast.cols !== lastState.cols;
5192
+ newScrollPos = {
5141
5193
  top: scrollTop,
5142
5194
  left: scrollLeft
5143
5195
  };
@@ -5145,20 +5197,21 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5145
5197
  var scrollPos = horizontal ? scrollLeft : scrollTop;
5146
5198
  var isScrollDownOrRight = lastScrollPos.current <= scrollPos;
5147
5199
 
5148
- var _currentIndex2 = calculateCurrentIndex(scrollPos, itemSize);
5200
+ var _currentIndex2 = calculateCurrentIndex(scrollPos, props.itemSize);
5149
5201
 
5150
5202
  var _triggerIndex2 = calculateTriggerIndex(_currentIndex2, firstState, lastState, numItemsInViewportState, numToleratedItemsState, isScrollDownOrRight);
5151
5203
 
5152
5204
  newFirst = calculateFirst(_currentIndex2, _triggerIndex2, firstState, lastState, numItemsInViewportState, numToleratedItemsState, isScrollDownOrRight);
5153
5205
  newLast = calculateLast(_currentIndex2, newFirst, lastState, numItemsInViewportState, numToleratedItemsState);
5154
- isRangeChanged = newFirst !== firstState && newLast !== lastState;
5155
- lastScrollPos.current = scrollPos;
5206
+ isRangeChanged = newFirst !== firstState || newLast !== lastState;
5207
+ newScrollPos = scrollPos;
5156
5208
  }
5157
5209
 
5158
5210
  return {
5159
5211
  first: newFirst,
5160
5212
  last: newLast,
5161
- isRangeChanged: isRangeChanged
5213
+ isRangeChanged: isRangeChanged,
5214
+ scrollPos: newScrollPos
5162
5215
  };
5163
5216
  };
5164
5217
 
@@ -5166,7 +5219,8 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5166
5219
  var _onScrollPositionChan = onScrollPositionChange(event),
5167
5220
  first = _onScrollPositionChan.first,
5168
5221
  last = _onScrollPositionChan.last,
5169
- isRangeChanged = _onScrollPositionChan.isRangeChanged;
5222
+ isRangeChanged = _onScrollPositionChan.isRangeChanged,
5223
+ scrollPos = _onScrollPositionChan.scrollPos;
5170
5224
 
5171
5225
  if (isRangeChanged) {
5172
5226
  var newState = {
@@ -5176,6 +5230,7 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5176
5230
  setContentPosition(newState);
5177
5231
  setFirstState(first);
5178
5232
  setLastState(last);
5233
+ lastScrollPos.current = scrollPos;
5179
5234
  props.onScrollIndexChange && props.onScrollIndexChange(newState);
5180
5235
 
5181
5236
  if (props.lazy) {
@@ -5202,7 +5257,7 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5202
5257
  scrollTimeout.current = setTimeout(function () {
5203
5258
  onScrollChange(event);
5204
5259
 
5205
- if (loadingState && props.showLoader && !props.lazy) {
5260
+ if (loadingState && props.showLoader && (!props.lazy || props.loading === undefined)) {
5206
5261
  setLoadingState(false);
5207
5262
  }
5208
5263
  }, props.delay);
@@ -5211,10 +5266,32 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5211
5266
  }
5212
5267
  };
5213
5268
 
5269
+ var onResize = function onResize() {
5270
+ if (resizeTimeout.current) {
5271
+ clearTimeout(resizeTimeout.current);
5272
+ }
5273
+
5274
+ resizeTimeout.current = setTimeout(function () {
5275
+ if (elementRef.current) {
5276
+ var _ref = [utils.DomHandler.getWidth(elementRef.current), utils.DomHandler.getHeight(elementRef.current)],
5277
+ width = _ref[0],
5278
+ height = _ref[1];
5279
+ var isDiffWidth = width !== defaultWidth.current,
5280
+ isDiffHeight = height !== defaultHeight.current;
5281
+ var reinit = both ? isDiffWidth || isDiffHeight : horizontal ? isDiffWidth : vertical ? isDiffHeight : false;
5282
+
5283
+ if (reinit) {
5284
+ setNumToleratedItemsState(props.numToleratedItems);
5285
+ defaultWidth.current = width;
5286
+ defaultHeight.current = height;
5287
+ }
5288
+ }
5289
+ }, props.resizeDelay);
5290
+ };
5291
+
5214
5292
  var getOptions = function getOptions(renderedIndex) {
5215
- var first = firstState;
5216
5293
  var count = (props.items || []).length;
5217
- var index = both ? first.rows + renderedIndex : first + renderedIndex;
5294
+ var index = both ? firstState.rows + renderedIndex : firstState + renderedIndex;
5218
5295
  return {
5219
5296
  index: index,
5220
5297
  count: count,
@@ -5252,25 +5329,48 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5252
5329
  };
5253
5330
 
5254
5331
  var init = function init() {
5255
- setSize();
5256
- calculateOptions();
5257
- setSpacerSize();
5332
+ if (!props.disabled) {
5333
+ setSize();
5334
+ calculateOptions();
5335
+ setSpacerSize();
5336
+ }
5258
5337
  };
5259
5338
 
5260
5339
  hooks.useMountEffect(function () {
5261
- init();
5340
+ if (!props.disabled) {
5341
+ init();
5342
+ bindWindowResizeListener();
5343
+ bindOrientationChangeListener();
5344
+ defaultWidth.current = utils.DomHandler.getWidth(elementRef.current);
5345
+ defaultHeight.current = utils.DomHandler.getHeight(elementRef.current);
5346
+ }
5262
5347
  });
5263
5348
  hooks.useUpdateEffect(function () {
5264
5349
  init();
5265
5350
  }, [props.itemSize, props.scrollHeight]);
5351
+ hooks.useUpdateEffect(function () {
5352
+ if (props.numToleratedItems !== numToleratedItemsState) {
5353
+ setNumToleratedItemsState(props.numToleratedItems);
5354
+ }
5355
+ }, [props.numToleratedItems]);
5356
+ hooks.useUpdateEffect(function () {
5357
+ if (props.numToleratedItems === numToleratedItemsState) {
5358
+ init(); // reinit after resizing
5359
+ }
5360
+ }, [numToleratedItemsState]);
5266
5361
  hooks.useUpdateEffect(function () {
5267
5362
  if (!prevItems || prevItems.length !== (props.items || []).length) {
5268
5363
  init();
5269
5364
  }
5270
5365
 
5366
+ var loading = loadingState;
5367
+
5271
5368
  if (props.lazy && prevLoading !== props.loading && props.loading !== loadingState) {
5272
5369
  setLoadingState(props.loading);
5370
+ loading = props.loading;
5273
5371
  }
5372
+
5373
+ calculateAutoSize(loading);
5274
5374
  });
5275
5375
  hooks.useUpdateEffect(function () {
5276
5376
  lastScrollPos.current = both ? {
@@ -5280,6 +5380,7 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5280
5380
  }, [props.orientation]);
5281
5381
  React__namespace.useImperativeHandle(ref, function () {
5282
5382
  return {
5383
+ getElementRef: getElementRef,
5283
5384
  scrollTo: scrollTo,
5284
5385
  scrollToIndex: scrollToIndex,
5285
5386
  scrollInView: scrollInView,
@@ -5311,6 +5412,13 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5311
5412
  numCols: numItemsInViewportState.cols
5312
5413
  });
5313
5414
  });
5415
+ } else if (props.loaderIconTemplate) {
5416
+ var defaultContentOptions = {
5417
+ className: 'p-virtualscroller-loading-icon',
5418
+ element: content,
5419
+ props: props
5420
+ };
5421
+ content = utils.ObjectUtils.getJSXElement(props.loaderIconTemplate, defaultContentOptions);
5314
5422
  }
5315
5423
 
5316
5424
  return /*#__PURE__*/React__namespace.createElement("div", {
@@ -5433,14 +5541,17 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5433
5541
  orientation: 'vertical',
5434
5542
  numToleratedItems: null,
5435
5543
  delay: 0,
5544
+ resizeDelay: 10,
5436
5545
  lazy: false,
5437
5546
  disabled: false,
5438
5547
  loaderDisabled: false,
5439
5548
  columns: null,
5440
- loading: false,
5549
+ loading: undefined,
5550
+ autoSize: false,
5441
5551
  showSpacer: true,
5442
5552
  showLoader: false,
5443
5553
  loadingTemplate: null,
5554
+ loaderIconTemplate: null,
5444
5555
  itemTemplate: null,
5445
5556
  contentTemplate: null,
5446
5557
  onScroll: null,
@@ -5616,7 +5727,7 @@ this.primereact.checkbox = (function (exports, React, hooks, tooltip, utils) {
5616
5727
  }
5617
5728
  });
5618
5729
  inputRef.current.checked = !_checked;
5619
- inputRef.current.focus();
5730
+ utils.DomHandler.focus(inputRef.current);
5620
5731
  }
5621
5732
  };
5622
5733
 
@@ -6347,7 +6458,7 @@ this.primereact.inputnumber = (function (exports, React, hooks, inputtext, rippl
6347
6458
 
6348
6459
  var onUpButtonMouseDown = function onUpButtonMouseDown(event) {
6349
6460
  if (!props.disabled && !props.readOnly) {
6350
- props.autoFocus && inputRef.current.focus();
6461
+ props.autoFocus && utils.DomHandler.focus(inputRef.current, props.autoFocus);
6351
6462
  repeat(event, null, 1);
6352
6463
  event.preventDefault();
6353
6464
  }
@@ -6400,7 +6511,7 @@ this.primereact.inputnumber = (function (exports, React, hooks, inputtext, rippl
6400
6511
 
6401
6512
  var onDownButtonMouseDown = function onDownButtonMouseDown(event) {
6402
6513
  if (!props.disabled && !props.readOnly) {
6403
- props.autoFocus && inputRef.current.focus();
6514
+ props.autoFocus && utils.DomHandler.focus(inputRef.current, props.autoFocus);
6404
6515
  repeat(event, null, -1);
6405
6516
  event.preventDefault();
6406
6517
  }
@@ -7475,7 +7586,7 @@ this.primereact.messages = (function (exports, React, reactTransitionGroup, csst
7475
7586
 
7476
7587
  var show = function show(value) {
7477
7588
  if (value) {
7478
- var messages = [];
7589
+ var messages;
7479
7590
 
7480
7591
  if (Array.isArray(value)) {
7481
7592
  for (var i = 0; i < value.length; i++) {
@@ -7496,7 +7607,8 @@ this.primereact.messages = (function (exports, React, reactTransitionGroup, csst
7496
7607
  };
7497
7608
 
7498
7609
  var replace = function replace(value) {
7499
- setMessagesState(value);
7610
+ var replaced = Array.isArray(value) ? value : [value];
7611
+ setMessagesState(replaced);
7500
7612
  };
7501
7613
 
7502
7614
  var onClose = function onClose(message) {
@@ -7814,6 +7926,7 @@ this.primereact.dropdown = (function (exports, React, PrimeReact, hooks, overlay
7814
7926
  var content = props.template ? utils.ObjectUtils.getJSXElement(props.template, props.option) : props.label;
7815
7927
  return /*#__PURE__*/React__namespace.createElement("li", {
7816
7928
  className: className,
7929
+ style: props.style,
7817
7930
  onClick: onClick,
7818
7931
  "aria-label": props.label,
7819
7932
  key: props.label,
@@ -7848,7 +7961,7 @@ this.primereact.dropdown = (function (exports, React, PrimeReact, hooks, overlay
7848
7961
  var onEntered = function onEntered() {
7849
7962
  props.onEntered(function () {
7850
7963
  if (props.filter && props.filterInputAutoFocus) {
7851
- filterInputRef.current.focus();
7964
+ utils.DomHandler.focus(filterInputRef.current, false);
7852
7965
  }
7853
7966
  });
7854
7967
  };
@@ -7858,7 +7971,7 @@ this.primereact.dropdown = (function (exports, React, PrimeReact, hooks, overlay
7858
7971
  props.onFilterInputChange && props.onFilterInputChange(event);
7859
7972
  };
7860
7973
 
7861
- var createGroupChildren = function createGroupChildren(optionGroup) {
7974
+ var createGroupChildren = function createGroupChildren(optionGroup, style) {
7862
7975
  var groupChildren = props.getOptionGroupChildren(optionGroup);
7863
7976
  return groupChildren.map(function (option, j) {
7864
7977
  var optionLabel = props.getOptionLabel(option);
@@ -7868,6 +7981,7 @@ this.primereact.dropdown = (function (exports, React, PrimeReact, hooks, overlay
7868
7981
  key: optionKey,
7869
7982
  label: optionLabel,
7870
7983
  option: option,
7984
+ style: style,
7871
7985
  template: props.itemTemplate,
7872
7986
  selected: props.isSelected(option),
7873
7987
  disabled: disabled,
@@ -7884,14 +7998,20 @@ this.primereact.dropdown = (function (exports, React, PrimeReact, hooks, overlay
7884
7998
  };
7885
7999
 
7886
8000
  var createItem = function createItem(option, index) {
8001
+ var scrollerOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
8002
+ var style = {
8003
+ height: scrollerOptions.props ? scrollerOptions.props.itemSize : undefined
8004
+ };
8005
+
7887
8006
  if (props.optionGroupLabel) {
7888
8007
  var groupContent = props.optionGroupTemplate ? utils.ObjectUtils.getJSXElement(props.optionGroupTemplate, option, index) : props.getOptionGroupLabel(option);
7889
- var groupChildrenContent = createGroupChildren(option);
8008
+ var groupChildrenContent = createGroupChildren(option, style);
7890
8009
  var key = index + '_' + props.getOptionGroupRenderKey(option);
7891
8010
  return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, {
7892
8011
  key: key
7893
8012
  }, /*#__PURE__*/React__namespace.createElement("li", {
7894
- className: "p-dropdown-item-group"
8013
+ className: "p-dropdown-item-group",
8014
+ style: style
7895
8015
  }, groupContent), groupChildrenContent);
7896
8016
  } else {
7897
8017
  var optionLabel = props.getOptionLabel(option);
@@ -7901,6 +8021,7 @@ this.primereact.dropdown = (function (exports, React, PrimeReact, hooks, overlay
7901
8021
  key: optionKey,
7902
8022
  label: optionLabel,
7903
8023
  option: option,
8024
+ style: style,
7904
8025
  template: props.itemTemplate,
7905
8026
  selected: props.isSelected(option),
7906
8027
  disabled: disabled,
@@ -7925,7 +8046,7 @@ this.primereact.dropdown = (function (exports, React, PrimeReact, hooks, overlay
7925
8046
  className: "p-dropdown-filter-clear-icon pi pi-times",
7926
8047
  onClick: function onClick() {
7927
8048
  return props.onFilterClearIconClick(function () {
7928
- return filterInputRef.current.focus();
8049
+ return utils.DomHandler.focus(filterInputRef.current);
7929
8050
  });
7930
8051
  }
7931
8052
  });
@@ -7969,13 +8090,14 @@ this.primereact.dropdown = (function (exports, React, PrimeReact, hooks, overlay
7969
8090
  }),
7970
8091
  className: utils.classNames('p-dropdown-items-wrapper', props.virtualScrollerOptions.className),
7971
8092
  items: props.visibleOptions,
8093
+ autoSize: true,
7972
8094
  onLazyLoad: function onLazyLoad(event) {
7973
8095
  return props.virtualScrollerOptions.onLazyLoad(_objectSpread$1(_objectSpread$1({}, event), {
7974
8096
  filter: props.filterValue
7975
8097
  }));
7976
8098
  },
7977
8099
  itemTemplate: function itemTemplate(item, options) {
7978
- return item && createItem(item, options.index);
8100
+ return item && createItem(item, options.index, options);
7979
8101
  },
7980
8102
  contentTemplate: function contentTemplate(options) {
7981
8103
  var className = utils.classNames('p-dropdown-items', options.className);
@@ -8142,7 +8264,7 @@ this.primereact.dropdown = (function (exports, React, PrimeReact, hooks, overlay
8142
8264
  if (utils.DomHandler.hasClass(event.target, 'p-dropdown-clear-icon') || event.target.tagName === 'INPUT') {
8143
8265
  return;
8144
8266
  } else if (!overlayRef.current || !(overlayRef.current && overlayRef.current.contains(event.target))) {
8145
- focusInputRef.current.focus();
8267
+ utils.DomHandler.focus(focusInputRef.current);
8146
8268
  overlayVisibleState ? hide() : show();
8147
8269
  }
8148
8270
  };
@@ -8415,7 +8537,7 @@ this.primereact.dropdown = (function (exports, React, PrimeReact, hooks, overlay
8415
8537
 
8416
8538
  if (!option.disabled) {
8417
8539
  selectItem(event);
8418
- focusInputRef.current.focus();
8540
+ utils.DomHandler.focus(focusInputRef.current);
8419
8541
  }
8420
8542
 
8421
8543
  hide();
@@ -8484,11 +8606,13 @@ this.primereact.dropdown = (function (exports, React, PrimeReact, hooks, overlay
8484
8606
  }
8485
8607
  };
8486
8608
 
8487
- var getSelectedOptionIndex = function getSelectedOptionIndex() {
8488
- if (props.value != null && visibleOptions) {
8609
+ var getSelectedOptionIndex = function getSelectedOptionIndex(options) {
8610
+ options = options || visibleOptions;
8611
+
8612
+ if (props.value != null && options) {
8489
8613
  if (props.optionGroupLabel) {
8490
- for (var i = 0; i < visibleOptions.length; i++) {
8491
- var selectedOptionIndex = findOptionIndexInList(props.value, getOptionGroupChildren(visibleOptions[i]));
8614
+ for (var i = 0; i < options.length; i++) {
8615
+ var selectedOptionIndex = findOptionIndexInList(props.value, getOptionGroupChildren(options[i]));
8492
8616
 
8493
8617
  if (selectedOptionIndex !== -1) {
8494
8618
  return {
@@ -8498,7 +8622,7 @@ this.primereact.dropdown = (function (exports, React, PrimeReact, hooks, overlay
8498
8622
  }
8499
8623
  }
8500
8624
  } else {
8501
- return findOptionIndexInList(props.value, visibleOptions);
8625
+ return findOptionIndexInList(props.value, options);
8502
8626
  }
8503
8627
  }
8504
8628
 
@@ -8615,16 +8739,16 @@ this.primereact.dropdown = (function (exports, React, PrimeReact, hooks, overlay
8615
8739
  };
8616
8740
 
8617
8741
  var getSelectedOption = function getSelectedOption() {
8618
- var index = getSelectedOptionIndex();
8619
- return index !== -1 ? props.optionGroupLabel ? getOptionGroupChildren(visibleOptions[index.group])[index.option] : visibleOptions[index] : null;
8742
+ var index = getSelectedOptionIndex(props.options);
8743
+ return index !== -1 ? props.optionGroupLabel ? getOptionGroupChildren(props.options[index.group])[index.option] : props.options[index] : null;
8620
8744
  };
8621
8745
 
8622
8746
  React__namespace.useEffect(function () {
8623
8747
  utils.ObjectUtils.combinedRefs(inputRef, props.inputRef);
8624
8748
  }, [inputRef, props.inputRef]);
8625
8749
  hooks.useMountEffect(function () {
8626
- if (props.autoFocus && focusInputRef.current) {
8627
- focusInputRef.current.focus();
8750
+ if (props.autoFocus) {
8751
+ utils.DomHandler.focus(focusInputRef.current, props.autoFocus);
8628
8752
  }
8629
8753
  });
8630
8754
  hooks.useUpdateEffect(function () {
@@ -9338,7 +9462,7 @@ this.primereact.dialog = (function (exports, React, PrimeReact, csstransition, h
9338
9462
  return param.hasBlockScroll;
9339
9463
  });
9340
9464
 
9341
- if (!hasBlockScroll) {
9465
+ if (hasBlockScroll) {
9342
9466
  utils.DomHandler.removeClass(document.body, 'p-overflow-hidden');
9343
9467
  }
9344
9468
  } else if (props.blockScroll || props.maximizable && maximized) {
@@ -9522,7 +9646,7 @@ this.primereact.dialog = (function (exports, React, PrimeReact, csstransition, h
9522
9646
 
9523
9647
  var createResizer = function createResizer() {
9524
9648
  if (props.resizable) {
9525
- return /*#__PURE__*/React__namespace.createElement("div", {
9649
+ return /*#__PURE__*/React__namespace.createElement("span", {
9526
9650
  className: "p-resizable-handle",
9527
9651
  style: {
9528
9652
  zIndex: 90
@@ -10619,6 +10743,14 @@ this.primereact.tree = (function (exports, React, utils, ripple) {
10619
10743
  } else {
10620
10744
  var nextNodeElement = nodeElement.nextElementSibling;
10621
10745
 
10746
+ while (nextNodeElement) {
10747
+ if (!utils.DomHandler.hasClass(nextNodeElement, 'p-treenode-droppoint')) {
10748
+ break;
10749
+ }
10750
+
10751
+ nextNodeElement = nextNodeElement.nextElementSibling;
10752
+ }
10753
+
10622
10754
  if (nextNodeElement) {
10623
10755
  focusNode(nextNodeElement);
10624
10756
  } else {
@@ -10690,7 +10822,7 @@ this.primereact.tree = (function (exports, React, utils, ripple) {
10690
10822
  };
10691
10823
 
10692
10824
  var focusNode = function focusNode(element) {
10693
- element.children[0].focus();
10825
+ element && element.children[0] && element.children[0].focus();
10694
10826
  };
10695
10827
 
10696
10828
  var onClick = function onClick(event) {