primereact 9.1.1 → 9.2.1

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 (210) hide show
  1. package/api/api.cjs.js +16 -0
  2. package/api/api.cjs.min.js +1 -1
  3. package/api/api.d.ts +2 -2
  4. package/api/api.esm.js +16 -0
  5. package/api/api.esm.min.js +1 -1
  6. package/api/api.js +16 -0
  7. package/api/api.min.js +1 -1
  8. package/autocomplete/autocomplete.cjs.js +1 -0
  9. package/autocomplete/autocomplete.cjs.min.js +1 -1
  10. package/autocomplete/autocomplete.esm.js +1 -0
  11. package/autocomplete/autocomplete.esm.min.js +1 -1
  12. package/autocomplete/autocomplete.js +1 -0
  13. package/autocomplete/autocomplete.min.js +1 -1
  14. package/avatar/avatar.cjs.js +2 -2
  15. package/avatar/avatar.cjs.min.js +1 -1
  16. package/avatar/avatar.esm.js +2 -2
  17. package/avatar/avatar.esm.min.js +1 -1
  18. package/avatar/avatar.js +2 -2
  19. package/avatar/avatar.min.js +1 -1
  20. package/button/button.cjs.js +6 -1
  21. package/button/button.cjs.min.js +1 -1
  22. package/button/button.d.ts +2 -2
  23. package/button/button.esm.js +6 -1
  24. package/button/button.esm.min.js +1 -1
  25. package/button/button.js +6 -1
  26. package/button/button.min.js +1 -1
  27. package/calendar/calendar.cjs.js +2 -2
  28. package/calendar/calendar.cjs.min.js +1 -1
  29. package/calendar/calendar.esm.js +2 -2
  30. package/calendar/calendar.esm.min.js +1 -1
  31. package/calendar/calendar.js +2 -2
  32. package/calendar/calendar.min.js +1 -1
  33. package/confirmdialog/confirmdialog.cjs.min.js +1 -1
  34. package/confirmdialog/confirmdialog.esm.min.js +1 -1
  35. package/confirmdialog/confirmdialog.min.js +1 -1
  36. package/confirmpopup/confirmpopup.cjs.min.js +1 -1
  37. package/confirmpopup/confirmpopup.esm.min.js +1 -1
  38. package/confirmpopup/confirmpopup.min.js +1 -1
  39. package/contextmenu/contextmenu.cjs.js +61 -18
  40. package/contextmenu/contextmenu.cjs.min.js +1 -1
  41. package/contextmenu/contextmenu.d.ts +9 -0
  42. package/contextmenu/contextmenu.esm.js +63 -20
  43. package/contextmenu/contextmenu.esm.min.js +1 -1
  44. package/contextmenu/contextmenu.js +61 -18
  45. package/contextmenu/contextmenu.min.js +1 -1
  46. package/core/core.js +254 -129
  47. package/core/core.min.js +9 -9
  48. package/datatable/datatable.cjs.js +90 -82
  49. package/datatable/datatable.cjs.min.js +1 -1
  50. package/datatable/datatable.d.ts +2 -11
  51. package/datatable/datatable.esm.js +91 -83
  52. package/datatable/datatable.esm.min.js +1 -1
  53. package/datatable/datatable.js +90 -82
  54. package/datatable/datatable.min.css +1 -1
  55. package/datatable/datatable.min.js +1 -1
  56. package/dataview/dataview.d.ts +1 -1
  57. package/dropdown/dropdown.cjs.js +1 -0
  58. package/dropdown/dropdown.cjs.min.js +1 -1
  59. package/dropdown/dropdown.esm.js +1 -0
  60. package/dropdown/dropdown.esm.min.js +1 -1
  61. package/dropdown/dropdown.js +1 -0
  62. package/dropdown/dropdown.min.js +1 -1
  63. package/hooks/hooks.cjs.js +34 -2
  64. package/hooks/hooks.cjs.min.js +1 -1
  65. package/hooks/hooks.d.ts +17 -3
  66. package/hooks/hooks.esm.js +34 -3
  67. package/hooks/hooks.esm.min.js +1 -1
  68. package/hooks/hooks.js +34 -2
  69. package/hooks/hooks.min.js +1 -1
  70. package/inputnumber/inputnumber.cjs.min.js +1 -1
  71. package/inputnumber/inputnumber.esm.min.js +1 -1
  72. package/inputnumber/inputnumber.min.js +1 -1
  73. package/inputtext/inputtext.min.css +1 -1
  74. package/listbox/listbox.cjs.js +5 -4
  75. package/listbox/listbox.cjs.min.js +1 -1
  76. package/listbox/listbox.esm.js +5 -4
  77. package/listbox/listbox.esm.min.js +1 -1
  78. package/listbox/listbox.js +5 -4
  79. package/listbox/listbox.min.js +1 -1
  80. package/megamenu/megamenu.cjs.js +94 -6
  81. package/megamenu/megamenu.cjs.min.js +1 -1
  82. package/megamenu/megamenu.d.ts +9 -0
  83. package/megamenu/megamenu.esm.js +96 -8
  84. package/megamenu/megamenu.esm.min.js +1 -1
  85. package/megamenu/megamenu.js +94 -6
  86. package/megamenu/megamenu.min.css +1 -1
  87. package/megamenu/megamenu.min.js +1 -1
  88. package/multiselect/multiselect.cjs.js +3 -1
  89. package/multiselect/multiselect.cjs.min.js +1 -1
  90. package/multiselect/multiselect.d.ts +27 -1
  91. package/multiselect/multiselect.esm.js +3 -1
  92. package/multiselect/multiselect.esm.min.js +1 -1
  93. package/multiselect/multiselect.js +3 -1
  94. package/multiselect/multiselect.min.js +1 -1
  95. package/package.json +1 -1
  96. package/paginator/paginator.cjs.js +0 -8
  97. package/paginator/paginator.cjs.min.js +1 -1
  98. package/paginator/paginator.esm.js +0 -8
  99. package/paginator/paginator.esm.min.js +1 -1
  100. package/paginator/paginator.js +0 -8
  101. package/paginator/paginator.min.js +1 -1
  102. package/picklist/picklist.cjs.min.js +1 -1
  103. package/picklist/picklist.esm.min.js +1 -1
  104. package/picklist/picklist.min.js +1 -1
  105. package/primereact.all.cjs.js +609 -265
  106. package/primereact.all.cjs.min.js +1 -1
  107. package/primereact.all.esm.js +609 -266
  108. package/primereact.all.esm.min.js +1 -1
  109. package/primereact.all.js +609 -265
  110. package/primereact.all.min.js +1 -1
  111. package/resources/primereact.css +638 -688
  112. package/resources/primereact.min.css +1 -1
  113. package/resources/themes/arya-blue/theme.css +134 -6
  114. package/resources/themes/arya-green/theme.css +134 -6
  115. package/resources/themes/arya-orange/theme.css +134 -6
  116. package/resources/themes/arya-purple/theme.css +134 -6
  117. package/resources/themes/bootstrap4-dark-blue/theme.css +137 -8
  118. package/resources/themes/bootstrap4-dark-purple/theme.css +137 -8
  119. package/resources/themes/bootstrap4-light-blue/theme.css +137 -8
  120. package/resources/themes/bootstrap4-light-purple/theme.css +137 -8
  121. package/resources/themes/fluent-light/theme.css +133 -4
  122. package/resources/themes/lara-dark-blue/theme.css +135 -6
  123. package/resources/themes/lara-dark-indigo/theme.css +135 -6
  124. package/resources/themes/lara-dark-purple/theme.css +135 -6
  125. package/resources/themes/lara-dark-teal/theme.css +135 -6
  126. package/resources/themes/lara-light-blue/theme.css +137 -8
  127. package/resources/themes/lara-light-indigo/theme.css +137 -8
  128. package/resources/themes/lara-light-purple/theme.css +137 -8
  129. package/resources/themes/lara-light-teal/theme.css +137 -8
  130. package/resources/themes/luna-amber/theme.css +137 -8
  131. package/resources/themes/luna-blue/theme.css +137 -8
  132. package/resources/themes/luna-green/theme.css +137 -8
  133. package/resources/themes/luna-pink/theme.css +137 -8
  134. package/resources/themes/md-dark-deeppurple/theme.css +137 -8
  135. package/resources/themes/md-dark-indigo/theme.css +137 -8
  136. package/resources/themes/md-light-deeppurple/theme.css +137 -8
  137. package/resources/themes/md-light-indigo/theme.css +137 -8
  138. package/resources/themes/mdc-dark-deeppurple/theme.css +137 -8
  139. package/resources/themes/mdc-dark-indigo/theme.css +137 -8
  140. package/resources/themes/mdc-light-deeppurple/theme.css +137 -8
  141. package/resources/themes/mdc-light-indigo/theme.css +137 -8
  142. package/resources/themes/mira/theme.css +137 -8
  143. package/resources/themes/nano/theme.css +137 -8
  144. package/resources/themes/nova/theme.css +137 -8
  145. package/resources/themes/nova-accent/theme.css +137 -8
  146. package/resources/themes/nova-alt/theme.css +137 -8
  147. package/resources/themes/rhea/theme.css +137 -8
  148. package/resources/themes/saga-blue/theme.css +135 -6
  149. package/resources/themes/saga-green/theme.css +135 -6
  150. package/resources/themes/saga-orange/theme.css +135 -6
  151. package/resources/themes/saga-purple/theme.css +135 -6
  152. package/resources/themes/soho-dark/theme.css +137 -8
  153. package/resources/themes/soho-light/theme.css +137 -8
  154. package/resources/themes/tailwind-light/theme.css +137 -8
  155. package/resources/themes/vela-blue/theme.css +135 -6
  156. package/resources/themes/vela-green/theme.css +135 -6
  157. package/resources/themes/vela-orange/theme.css +135 -6
  158. package/resources/themes/vela-purple/theme.css +135 -6
  159. package/resources/themes/viva-dark/theme.css +137 -8
  160. package/resources/themes/viva-light/theme.css +137 -8
  161. package/splitbutton/splitbutton.cjs.js +57 -3
  162. package/splitbutton/splitbutton.cjs.min.js +1 -1
  163. package/splitbutton/splitbutton.d.ts +28 -0
  164. package/splitbutton/splitbutton.esm.js +57 -3
  165. package/splitbutton/splitbutton.esm.min.js +1 -1
  166. package/splitbutton/splitbutton.js +57 -3
  167. package/splitbutton/splitbutton.min.js +1 -1
  168. package/tieredmenu/tieredmenu.cjs.js +69 -9
  169. package/tieredmenu/tieredmenu.cjs.min.js +1 -1
  170. package/tieredmenu/tieredmenu.d.ts +9 -0
  171. package/tieredmenu/tieredmenu.esm.js +71 -11
  172. package/tieredmenu/tieredmenu.esm.min.js +1 -1
  173. package/tieredmenu/tieredmenu.js +69 -9
  174. package/tieredmenu/tieredmenu.min.js +1 -1
  175. package/toast/toast.cjs.js +16 -0
  176. package/toast/toast.cjs.min.js +1 -1
  177. package/toast/toast.esm.js +16 -0
  178. package/toast/toast.esm.min.js +1 -1
  179. package/toast/toast.js +16 -0
  180. package/toast/toast.min.css +1 -1
  181. package/toast/toast.min.js +1 -1
  182. package/tooltip/tooltip.cjs.js +5 -4
  183. package/tooltip/tooltip.cjs.min.js +1 -1
  184. package/tooltip/tooltip.esm.js +5 -4
  185. package/tooltip/tooltip.esm.min.js +1 -1
  186. package/tooltip/tooltip.js +5 -4
  187. package/tooltip/tooltip.min.js +1 -1
  188. package/treetable/treetable.cjs.js +12 -9
  189. package/treetable/treetable.cjs.min.js +1 -1
  190. package/treetable/treetable.d.ts +0 -5
  191. package/treetable/treetable.esm.js +12 -9
  192. package/treetable/treetable.esm.min.js +1 -1
  193. package/treetable/treetable.js +12 -9
  194. package/treetable/treetable.min.css +1 -1
  195. package/treetable/treetable.min.js +1 -1
  196. package/utils/utils.cjs.js +15 -10
  197. package/utils/utils.cjs.min.js +1 -1
  198. package/utils/utils.esm.js +15 -10
  199. package/utils/utils.esm.min.js +1 -1
  200. package/utils/utils.js +15 -10
  201. package/utils/utils.min.js +1 -1
  202. package/virtualscroller/virtualscroller.cjs.js +177 -104
  203. package/virtualscroller/virtualscroller.cjs.min.js +1 -1
  204. package/virtualscroller/virtualscroller.d.ts +20 -0
  205. package/virtualscroller/virtualscroller.esm.js +177 -104
  206. package/virtualscroller/virtualscroller.esm.min.js +1 -1
  207. package/virtualscroller/virtualscroller.js +177 -104
  208. package/virtualscroller/virtualscroller.min.css +1 -1
  209. package/virtualscroller/virtualscroller.min.js +1 -1
  210. package/web-types.json +2 -2
package/core/core.js CHANGED
@@ -230,7 +230,7 @@ this.primereact.utils = (function (exports, React) {
230
230
  key: "getOuterWidth",
231
231
  value: function getOuterWidth(el, margin) {
232
232
  if (el) {
233
- var width = el.offsetWidth || el.getBoundingClientRect().width;
233
+ var width = el.getBoundingClientRect().width || el.offsetWidth;
234
234
  if (margin) {
235
235
  var style = getComputedStyle(el);
236
236
  width += parseFloat(style.marginLeft) + parseFloat(style.marginRight);
@@ -243,7 +243,7 @@ this.primereact.utils = (function (exports, React) {
243
243
  key: "getOuterHeight",
244
244
  value: function getOuterHeight(el, margin) {
245
245
  if (el) {
246
- var height = el.offsetHeight || el.getBoundingClientRect().height;
246
+ var height = el.getBoundingClientRect().height || el.offsetHeight;
247
247
  if (margin) {
248
248
  var style = getComputedStyle(el);
249
249
  height += parseFloat(style.marginTop) + parseFloat(style.marginBottom);
@@ -427,7 +427,7 @@ this.primereact.utils = (function (exports, React) {
427
427
  }, {
428
428
  key: "absolutePosition",
429
429
  value: function absolutePosition(element, target) {
430
- if (element) {
430
+ if (element && target) {
431
431
  var elementDimensions = element.offsetParent ? {
432
432
  width: element.offsetWidth,
433
433
  height: element.offsetHeight
@@ -459,7 +459,7 @@ this.primereact.utils = (function (exports, React) {
459
459
  }, {
460
460
  key: "relativePosition",
461
461
  value: function relativePosition(element, target) {
462
- if (element) {
462
+ if (element && target) {
463
463
  var elementDimensions = element.offsetParent ? {
464
464
  width: element.offsetWidth,
465
465
  height: element.offsetHeight
@@ -689,7 +689,7 @@ this.primereact.utils = (function (exports, React) {
689
689
  _iterator2.f();
690
690
  }
691
691
  }
692
- if (parent.nodeType !== 9 && overflowCheck(parent)) {
692
+ if (parent.nodeType === 1 && overflowCheck(parent)) {
693
693
  scrollableParents.push(parent);
694
694
  }
695
695
  }
@@ -1910,12 +1910,17 @@ this.primereact.utils = (function (exports, React) {
1910
1910
  key: "isValidChild",
1911
1911
  value: function isValidChild(child, type, validTypes) {
1912
1912
  /* eslint-disable */
1913
- try {
1914
- if ("production" !== 'production' && this.getProp(child, '__TYPE') !== type && child.type.displayName !== type) ;
1915
- } catch (error) {
1916
- // NOOP
1913
+ if (child) {
1914
+ var childType = this.getComponentProp(child, '__TYPE') || (child.type ? child.type.displayName : undefined);
1915
+ var isValid = childType === type;
1916
+ try {
1917
+ var messageTypes; if ("production" !== 'production' && !isValid) ;
1918
+ } catch (error) {
1919
+ // NOOP
1920
+ }
1921
+ return isValid;
1917
1922
  }
1918
- return true;
1923
+ return false;
1919
1924
  /* eslint-enable */
1920
1925
  }
1921
1926
  }, {
@@ -2431,6 +2436,22 @@ this.primereact.api = (function (exports, utils) {
2431
2436
  numeric: [FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.LESS_THAN, FilterMatchMode.LESS_THAN_OR_EQUAL_TO, FilterMatchMode.GREATER_THAN, FilterMatchMode.GREATER_THAN_OR_EQUAL_TO],
2432
2437
  date: [FilterMatchMode.DATE_IS, FilterMatchMode.DATE_IS_NOT, FilterMatchMode.DATE_BEFORE, FilterMatchMode.DATE_AFTER]
2433
2438
  });
2439
+ _defineProperty(PrimeReact$1, "changeTheme", function (currentTheme, newTheme, linkElementId, callback) {
2440
+ var _linkElement$parentNo;
2441
+ var linkElement = document.getElementById(linkElementId);
2442
+ var cloneLinkElement = linkElement.cloneNode(true);
2443
+ var newThemeUrl = linkElement.getAttribute('href').replace(currentTheme, newTheme);
2444
+ cloneLinkElement.setAttribute('id', linkElementId + '-clone');
2445
+ cloneLinkElement.setAttribute('href', newThemeUrl);
2446
+ cloneLinkElement.addEventListener('load', function () {
2447
+ linkElement.remove();
2448
+ cloneLinkElement.setAttribute('id', linkElementId);
2449
+ if (callback) {
2450
+ callback();
2451
+ }
2452
+ });
2453
+ (_linkElement$parentNo = linkElement.parentNode) === null || _linkElement$parentNo === void 0 ? void 0 : _linkElement$parentNo.insertBefore(cloneLinkElement, linkElement.nextSibling);
2454
+ });
2434
2455
 
2435
2456
  function ownKeys(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; }
2436
2457
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
@@ -3143,6 +3164,34 @@ this.primereact.hooks = (function (exports, React, utils) {
3143
3164
  };
3144
3165
  /* eslint-enable */
3145
3166
 
3167
+ var useMatchMedia = function useMatchMedia(query) {
3168
+ var when = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
3169
+ var _React$useState = React__namespace.useState(false),
3170
+ _React$useState2 = _slicedToArray(_React$useState, 2),
3171
+ matches = _React$useState2[0],
3172
+ setMatches = _React$useState2[1];
3173
+ var matchMedia = React__namespace.useRef(null);
3174
+ var handleChange = function handleChange(e) {
3175
+ return setMatches(e.matches);
3176
+ };
3177
+ var bind = function bind() {
3178
+ return matchMedia.current && matchMedia.current.addEventListener('change', handleChange);
3179
+ };
3180
+ var unbind = function unbind() {
3181
+ return matchMedia.current && matchMedia.current.removeEventListener('change', handleChange) && (matchMedia.current = null);
3182
+ };
3183
+ React__namespace.useEffect(function () {
3184
+ if (when) {
3185
+ matchMedia.current = window.matchMedia(query);
3186
+ setMatches(matchMedia.current.matches);
3187
+ bind();
3188
+ }
3189
+ return unbind;
3190
+ }, [query, when]);
3191
+ return matches;
3192
+ };
3193
+ /* eslint-enable */
3194
+
3146
3195
  /* eslint-disable */
3147
3196
  var useMountEffect = function useMountEffect(fn) {
3148
3197
  return React__namespace.useEffect(fn, []);
@@ -3509,11 +3558,14 @@ this.primereact.hooks = (function (exports, React, utils) {
3509
3558
  /* eslint-enable */
3510
3559
 
3511
3560
  var useResizeListener = function useResizeListener(_ref) {
3512
- var listener = _ref.listener;
3561
+ var listener = _ref.listener,
3562
+ _ref$when = _ref.when,
3563
+ when = _ref$when === void 0 ? true : _ref$when;
3513
3564
  return useEventListener({
3514
3565
  target: 'window',
3515
3566
  type: 'resize',
3516
- listener: listener
3567
+ listener: listener,
3568
+ when: when
3517
3569
  });
3518
3570
  };
3519
3571
 
@@ -3723,6 +3775,7 @@ this.primereact.hooks = (function (exports, React, utils) {
3723
3775
  exports.useIntersectionObserver = useIntersectionObserver;
3724
3776
  exports.useInterval = useInterval;
3725
3777
  exports.useLocalStorage = useLocalStorage;
3778
+ exports.useMatchMedia = useMatchMedia;
3726
3779
  exports.useMountEffect = useMountEffect;
3727
3780
  exports.useMouse = useMouse;
3728
3781
  exports.useMove = useMove;
@@ -4718,10 +4771,10 @@ this.primereact.tooltip = (function (exports, React, PrimeReact, hooks, portal,
4718
4771
  hideEvents = _getEvents.hideEvents;
4719
4772
  var currentTarget = getTarget(target);
4720
4773
  showEvents.forEach(function (event) {
4721
- return currentTarget.addEventListener(event, show);
4774
+ return currentTarget === null || currentTarget === void 0 ? void 0 : currentTarget.addEventListener(event, show);
4722
4775
  });
4723
4776
  hideEvents.forEach(function (event) {
4724
- return currentTarget.addEventListener(event, hide);
4777
+ return currentTarget === null || currentTarget === void 0 ? void 0 : currentTarget.addEventListener(event, hide);
4725
4778
  });
4726
4779
  }
4727
4780
  };
@@ -4732,10 +4785,10 @@ this.primereact.tooltip = (function (exports, React, PrimeReact, hooks, portal,
4732
4785
  hideEvents = _getEvents2.hideEvents;
4733
4786
  var currentTarget = getTarget(target);
4734
4787
  showEvents.forEach(function (event) {
4735
- return currentTarget.removeEventListener(event, show);
4788
+ return currentTarget === null || currentTarget === void 0 ? void 0 : currentTarget.removeEventListener(event, show);
4736
4789
  });
4737
4790
  hideEvents.forEach(function (event) {
4738
- return currentTarget.removeEventListener(event, hide);
4791
+ return currentTarget === null || currentTarget === void 0 ? void 0 : currentTarget.removeEventListener(event, hide);
4739
4792
  });
4740
4793
  }
4741
4794
  };
@@ -4769,6 +4822,7 @@ this.primereact.tooltip = (function (exports, React, PrimeReact, hooks, portal,
4769
4822
  if (isShowOnDisabled(target)) {
4770
4823
  if (!target.hasWrapper) {
4771
4824
  var wrapper = document.createElement('span');
4825
+ utils.DomHandler.addClass(wrapper, 'p-tooltip-target-wrapper');
4772
4826
  target.parentNode.insertBefore(wrapper, target);
4773
4827
  wrapper.appendChild(target);
4774
4828
  target.hasWrapper = true;
@@ -5062,14 +5116,18 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5062
5116
  id: null,
5063
5117
  style: null,
5064
5118
  className: null,
5119
+ tabIndex: 0,
5065
5120
  items: null,
5066
5121
  itemSize: 0,
5067
5122
  scrollHeight: null,
5068
5123
  scrollWidth: null,
5069
5124
  orientation: 'vertical',
5125
+ step: 0,
5070
5126
  numToleratedItems: null,
5071
5127
  delay: 0,
5072
5128
  resizeDelay: 10,
5129
+ appendOnly: false,
5130
+ inline: false,
5073
5131
  lazy: false,
5074
5132
  disabled: false,
5075
5133
  loaderDisabled: false,
@@ -5099,6 +5157,7 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5099
5157
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
5100
5158
  var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace.forwardRef(function (inProps, ref) {
5101
5159
  var props = VirtualScrollerBase.getProps(inProps);
5160
+ var prevProps = hooks.usePrevious(inProps) || {};
5102
5161
  var vertical = props.orientation === 'vertical';
5103
5162
  var horizontal = props.orientation === 'horizontal';
5104
5163
  var both = props.orientation === 'both';
@@ -5116,25 +5175,29 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5116
5175
  _React$useState4 = _slicedToArray(_React$useState3, 2),
5117
5176
  lastState = _React$useState4[0],
5118
5177
  setLastState = _React$useState4[1];
5119
- var _React$useState5 = React__namespace.useState(both ? {
5178
+ var _React$useState5 = React__namespace.useState(0),
5179
+ _React$useState6 = _slicedToArray(_React$useState5, 2),
5180
+ pageState = _React$useState6[0],
5181
+ setPageState = _React$useState6[1];
5182
+ var _React$useState7 = React__namespace.useState(both ? {
5120
5183
  rows: 0,
5121
5184
  cols: 0
5122
5185
  } : 0),
5123
- _React$useState6 = _slicedToArray(_React$useState5, 2),
5124
- numItemsInViewportState = _React$useState6[0],
5125
- setNumItemsInViewportState = _React$useState6[1];
5126
- var _React$useState7 = React__namespace.useState(props.numToleratedItems),
5127
5186
  _React$useState8 = _slicedToArray(_React$useState7, 2),
5128
- numToleratedItemsState = _React$useState8[0],
5129
- setNumToleratedItemsState = _React$useState8[1];
5130
- var _React$useState9 = React__namespace.useState(props.loading || false),
5187
+ numItemsInViewportState = _React$useState8[0],
5188
+ setNumItemsInViewportState = _React$useState8[1];
5189
+ var _React$useState9 = React__namespace.useState(props.numToleratedItems),
5131
5190
  _React$useState10 = _slicedToArray(_React$useState9, 2),
5132
- loadingState = _React$useState10[0],
5133
- setLoadingState = _React$useState10[1];
5134
- var _React$useState11 = React__namespace.useState([]),
5191
+ numToleratedItemsState = _React$useState10[0],
5192
+ setNumToleratedItemsState = _React$useState10[1];
5193
+ var _React$useState11 = React__namespace.useState(props.loading || false),
5135
5194
  _React$useState12 = _slicedToArray(_React$useState11, 2),
5136
- loaderArrState = _React$useState12[0],
5137
- setLoaderArrState = _React$useState12[1];
5195
+ loadingState = _React$useState12[0],
5196
+ setLoadingState = _React$useState12[1];
5197
+ var _React$useState13 = React__namespace.useState([]),
5198
+ _React$useState14 = _slicedToArray(_React$useState13, 2),
5199
+ loaderArrState = _React$useState14[0],
5200
+ setLoaderArrState = _React$useState14[1];
5138
5201
  var elementRef = React__namespace.useRef(null);
5139
5202
  var _contentRef = React__namespace.useRef(null);
5140
5203
  var _spacerRef = React__namespace.useRef(null);
@@ -5145,14 +5208,19 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5145
5208
  } : 0);
5146
5209
  var scrollTimeout = React__namespace.useRef(null);
5147
5210
  var resizeTimeout = React__namespace.useRef(null);
5211
+ var contentStyle = React__namespace.useRef({});
5212
+ var spacerStyle = React__namespace.useRef({});
5148
5213
  var defaultWidth = React__namespace.useRef(null);
5149
5214
  var defaultHeight = React__namespace.useRef(null);
5150
- var prevItems = hooks.usePrevious(props.items);
5151
- var prevLoading = hooks.usePrevious(props.loading);
5215
+ var defaultContentWidth = React__namespace.useRef(null);
5216
+ var defaultContentHeight = React__namespace.useRef(null);
5217
+ var isItemRangeChanged = React__namespace.useRef(false);
5218
+ var lazyLoadState = React__namespace.useRef(null);
5152
5219
  var _useResizeListener = hooks.useResizeListener({
5153
5220
  listener: function listener(event) {
5154
5221
  return onResize();
5155
- }
5222
+ },
5223
+ when: !props.disabled
5156
5224
  }),
5157
5225
  _useResizeListener2 = _slicedToArray(_useResizeListener, 1),
5158
5226
  bindWindowResizeListener = _useResizeListener2[0];
@@ -5161,13 +5229,23 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5161
5229
  type: 'orientationchange',
5162
5230
  listener: function listener(event) {
5163
5231
  return onResize();
5164
- }
5232
+ },
5233
+ when: !props.disabled
5165
5234
  }),
5166
5235
  _useEventListener2 = _slicedToArray(_useEventListener, 1),
5167
5236
  bindOrientationChangeListener = _useEventListener2[0];
5168
5237
  var getElementRef = function getElementRef() {
5169
5238
  return elementRef;
5170
5239
  };
5240
+ var getPageByFirst = function getPageByFirst(first) {
5241
+ return Math.floor((first + numToleratedItemsState * 4) / (props.step || 1));
5242
+ };
5243
+ var setContentElement = function setContentElement(element) {
5244
+ _contentRef.current = element || _contentRef.current || utils.DomHandler.findSingle(elementRef.current, '.p-virtualscroller-content');
5245
+ };
5246
+ var isPageChanged = function isPageChanged(first) {
5247
+ return props.step ? pageState !== getPageByFirst(first) : true;
5248
+ };
5171
5249
  var scrollTo = function scrollTo(options) {
5172
5250
  lastScrollPos.current = both ? {
5173
5251
  top: 0,
@@ -5179,13 +5257,14 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5179
5257
  var behavior = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'auto';
5180
5258
  var _calculateNumItems = calculateNumItems(),
5181
5259
  numToleratedItems = _calculateNumItems.numToleratedItems;
5260
+ var contentPos = getContentPosition();
5182
5261
  var calculateFirst = function calculateFirst() {
5183
5262
  var _index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
5184
5263
  var _numT = arguments.length > 1 ? arguments[1] : undefined;
5185
5264
  return _index <= _numT ? 0 : _index;
5186
5265
  };
5187
- var calculateCoord = function calculateCoord(_first, _size) {
5188
- return _first * _size;
5266
+ var calculateCoord = function calculateCoord(_first, _size, _cpos) {
5267
+ return _first * _size + _cpos;
5189
5268
  };
5190
5269
  var scrollToItem = function scrollToItem() {
5191
5270
  var left = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
@@ -5196,20 +5275,25 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5196
5275
  behavior: behavior
5197
5276
  });
5198
5277
  };
5278
+ var newFirst = both ? {
5279
+ rows: 0,
5280
+ cols: 0
5281
+ } : 0;
5282
+ var isRangeChanged = false;
5199
5283
  if (both) {
5200
- var newFirst = {
5284
+ newFirst = {
5201
5285
  rows: calculateFirst(index[0], numToleratedItems[0]),
5202
5286
  cols: calculateFirst(index[1], numToleratedItems[1])
5203
5287
  };
5204
- if (newFirst.rows !== firstState.rows || newFirst.cols !== firstState.cols) {
5205
- scrollToItem(calculateCoord(newFirst.cols, props.itemSize[1]), calculateCoord(newFirst.rows, props.itemSize[0]));
5206
- }
5288
+ scrollToItem(calculateCoord(newFirst.cols, props.itemSize[1], contentPos.left), calculateCoord(newFirst.rows, props.itemSize[0], contentPos.top));
5289
+ isRangeChanged = firstState.rows !== newFirst.rows || firstState.cols !== newFirst.cols;
5207
5290
  } else {
5208
- var _newFirst = calculateFirst(index, numToleratedItems);
5209
- if (_newFirst !== firstState) {
5210
- horizontal ? scrollToItem(calculateCoord(_newFirst, props.itemSize), 0) : scrollToItem(0, calculateCoord(_newFirst, props.itemSize));
5211
- }
5291
+ newFirst = calculateFirst(index, numToleratedItems);
5292
+ horizontal ? scrollToItem(calculateCoord(newFirst, props.itemSize, contentPos.left), 0) : scrollToItem(0, calculateCoord(newFirst, props.itemSize, contentPos.top));
5293
+ isRangeChanged = firstState !== newFirst;
5212
5294
  }
5295
+ isItemRangeChanged.current = isRangeChanged;
5296
+ setFirstState(newFirst);
5213
5297
  };
5214
5298
  var scrollInView = function scrollInView(index, to) {
5215
5299
  var behavior = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'auto';
@@ -5326,7 +5410,8 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5326
5410
  var _calculateNumItems2 = calculateNumItems(),
5327
5411
  numItemsInViewport = _calculateNumItems2.numItemsInViewport,
5328
5412
  numToleratedItems = _calculateNumItems2.numToleratedItems;
5329
- var calculateLast = function calculateLast(_first, _num, _numT, _isCols) {
5413
+ var calculateLast = function calculateLast(_first, _num, _numT) {
5414
+ var _isCols = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
5330
5415
  return getLast(_first + _num + (_first < _numT ? 2 : 3) * _numT, _isCols);
5331
5416
  };
5332
5417
  var last = both ? {
@@ -5348,9 +5433,15 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5348
5433
  }));
5349
5434
  }
5350
5435
  if (props.lazy) {
5351
- props.onLazyLoad && props.onLazyLoad({
5352
- first: firstState,
5353
- last: last
5436
+ Promise.resolve().then(function () {
5437
+ lazyLoadState.current = {
5438
+ first: props.step ? both ? {
5439
+ rows: 0,
5440
+ cols: firstState.cols
5441
+ } : 0 : firstState,
5442
+ last: Math.min(props.step ? props.step : last, props.items.length)
5443
+ };
5444
+ props.onLazyLoad && props.onLazyLoad(lazyLoadState.current);
5354
5445
  });
5355
5446
  }
5356
5447
  };
@@ -5359,12 +5450,21 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5359
5450
  Promise.resolve().then(function () {
5360
5451
  if (_contentRef.current) {
5361
5452
  _contentRef.current.style.minHeight = _contentRef.current.style.minWidth = 'auto';
5362
- var _contentRef$current = _contentRef.current,
5363
- offsetWidth = _contentRef$current.offsetWidth,
5364
- offsetHeight = _contentRef$current.offsetHeight;
5365
- (both || horizontal) && (elementRef.current.style.width = (offsetWidth < defaultWidth.current ? offsetWidth : defaultWidth.current) + 'px');
5366
- (both || vertical) && (elementRef.current.style.height = (offsetHeight < defaultHeight.current ? offsetHeight : defaultHeight.current) + 'px');
5453
+ _contentRef.current.style.position = 'relative';
5454
+ elementRef.current.style.contain = 'none';
5455
+
5456
+ /*const [contentWidth, contentHeight] = [DomHandler.getWidth(contentRef.current), DomHandler.getHeight(contentRef.current)];
5457
+ contentWidth !== defaultContentWidth.current && (elementRef.current.style.width = '');
5458
+ contentHeight !== defaultContentHeight.current && (elementRef.current.style.height = '');*/
5459
+
5460
+ var _ref = [utils.DomHandler.getWidth(elementRef.current), utils.DomHandler.getHeight(elementRef.current)],
5461
+ width = _ref[0],
5462
+ height = _ref[1];
5463
+ (both || horizontal) && (elementRef.current.style.width = (width < defaultWidth.current ? width : props.scrollWidth || defaultWidth.current) + 'px');
5464
+ (both || vertical) && (elementRef.current.style.height = (height < defaultHeight.current ? height : props.scrollHeight || defaultHeight.current) + 'px');
5367
5465
  _contentRef.current.style.minHeight = _contentRef.current.style.minWidth = '';
5466
+ _contentRef.current.style.position = '';
5467
+ elementRef.current.style.contain = '';
5368
5468
  }
5369
5469
  });
5370
5470
  }
@@ -5377,10 +5477,10 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5377
5477
  var getContentPosition = function getContentPosition() {
5378
5478
  if (_contentRef.current) {
5379
5479
  var style = getComputedStyle(_contentRef.current);
5380
- var left = parseInt(style.paddingLeft, 10) + Math.max(parseInt(style.left, 10), 0);
5381
- var right = parseInt(style.paddingRight, 10) + Math.max(parseInt(style.right, 10), 0);
5382
- var top = parseInt(style.paddingTop, 10) + Math.max(parseInt(style.top, 10), 0);
5383
- var bottom = parseInt(style.paddingBottom, 10) + Math.max(parseInt(style.bottom, 10), 0);
5480
+ var left = parseFloat(style.paddingLeft) + Math.max(parseFloat(style.left) || 0, 0);
5481
+ var right = parseFloat(style.paddingRight) + Math.max(parseFloat(style.right) || 0, 0);
5482
+ var top = parseFloat(style.paddingTop) + Math.max(parseFloat(style.top) || 0, 0);
5483
+ var bottom = parseFloat(style.paddingBottom) + Math.max(parseFloat(style.bottom) || 0, 0);
5384
5484
  return {
5385
5485
  left: left,
5386
5486
  right: right,
@@ -5417,11 +5517,11 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5417
5517
  };
5418
5518
  var setSpacerSize = function setSpacerSize() {
5419
5519
  var items = props.items;
5420
- if (_spacerRef.current && items) {
5520
+ if (items) {
5421
5521
  var contentPos = getContentPosition();
5422
5522
  var setProp = function setProp(_name, _value, _size) {
5423
5523
  var _cpos = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
5424
- return _spacerRef.current.style[_name] = (_value || []).length * _size + _cpos + 'px';
5524
+ return spacerStyle.current = _objectSpread(_objectSpread({}, spacerStyle.current), _defineProperty({}, "".concat(_name), (_value || []).length * _size + _cpos + 'px'));
5425
5525
  };
5426
5526
  if (both) {
5427
5527
  setProp('height', items, props.itemSize[0], contentPos.y);
@@ -5432,7 +5532,7 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5432
5532
  }
5433
5533
  };
5434
5534
  var setContentPosition = function setContentPosition(pos) {
5435
- if (_contentRef.current) {
5535
+ if (_contentRef.current && !props.appendOnly) {
5436
5536
  var first = pos ? pos.first : firstState;
5437
5537
  var calculateTranslateVal = function calculateTranslateVal(_first, _size) {
5438
5538
  return _first * _size;
@@ -5441,7 +5541,9 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5441
5541
  var _x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
5442
5542
  var _y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
5443
5543
  _stickyRef.current && (_stickyRef.current.style.top = "-".concat(_y, "px"));
5444
- _contentRef.current.style.transform = "translate3d(".concat(_x, "px, ").concat(_y, "px, 0)");
5544
+ contentStyle.current = _objectSpread(_objectSpread({}, contentStyle.current), {
5545
+ transform: "translate3d(".concat(_x, "px, ").concat(_y, "px, 0)")
5546
+ });
5445
5547
  };
5446
5548
  if (both) {
5447
5549
  setTransform(calculateTranslateVal(first.cols, props.itemSize[1]), calculateTranslateVal(first.rows, props.itemSize[0]));
@@ -5485,36 +5587,40 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5485
5587
  if (both) {
5486
5588
  var isScrollDown = lastScrollPos.current.top <= scrollTop;
5487
5589
  var isScrollRight = lastScrollPos.current.left <= scrollLeft;
5488
- var currentIndex = {
5489
- rows: calculateCurrentIndex(scrollTop, props.itemSize[0]),
5490
- cols: calculateCurrentIndex(scrollLeft, props.itemSize[1])
5491
- };
5492
- var triggerIndex = {
5493
- rows: calculateTriggerIndex(currentIndex.rows, firstState.rows, lastState.rows, numItemsInViewportState.rows, numToleratedItemsState[0], isScrollDown),
5494
- cols: calculateTriggerIndex(currentIndex.cols, firstState.cols, lastState.cols, numItemsInViewportState.cols, numToleratedItemsState[1], isScrollRight)
5495
- };
5496
- newFirst = {
5497
- rows: calculateFirst(currentIndex.rows, triggerIndex.rows, firstState.rows, lastState.rows, numItemsInViewportState.rows, numToleratedItemsState[0], isScrollDown),
5498
- cols: calculateFirst(currentIndex.cols, triggerIndex.cols, firstState.cols, lastState.cols, numItemsInViewportState.cols, numToleratedItemsState[1], isScrollRight)
5499
- };
5500
- newLast = {
5501
- rows: calculateLast(currentIndex.rows, newFirst.rows, lastState.rows, numItemsInViewportState.rows, numToleratedItemsState[0]),
5502
- cols: calculateLast(currentIndex.cols, newFirst.cols, lastState.cols, numItemsInViewportState.cols, numToleratedItemsState[1], true)
5503
- };
5504
- isRangeChanged = newFirst.rows !== firstState.rows || newLast.rows !== lastState.rows || newFirst.cols !== firstState.cols || newLast.cols !== lastState.cols;
5505
- newScrollPos = {
5506
- top: scrollTop,
5507
- left: scrollLeft
5508
- };
5590
+ if (!props.appendOnly || props.appendOnly && (isScrollDown || isScrollRight)) {
5591
+ var currentIndex = {
5592
+ rows: calculateCurrentIndex(scrollTop, props.itemSize[0]),
5593
+ cols: calculateCurrentIndex(scrollLeft, props.itemSize[1])
5594
+ };
5595
+ var triggerIndex = {
5596
+ rows: calculateTriggerIndex(currentIndex.rows, firstState.rows, lastState.rows, numItemsInViewportState.rows, numToleratedItemsState[0], isScrollDown),
5597
+ cols: calculateTriggerIndex(currentIndex.cols, firstState.cols, lastState.cols, numItemsInViewportState.cols, numToleratedItemsState[1], isScrollRight)
5598
+ };
5599
+ newFirst = {
5600
+ rows: calculateFirst(currentIndex.rows, triggerIndex.rows, firstState.rows, lastState.rows, numItemsInViewportState.rows, numToleratedItemsState[0], isScrollDown),
5601
+ cols: calculateFirst(currentIndex.cols, triggerIndex.cols, firstState.cols, lastState.cols, numItemsInViewportState.cols, numToleratedItemsState[1], isScrollRight)
5602
+ };
5603
+ newLast = {
5604
+ rows: calculateLast(currentIndex.rows, newFirst.rows, lastState.rows, numItemsInViewportState.rows, numToleratedItemsState[0]),
5605
+ cols: calculateLast(currentIndex.cols, newFirst.cols, lastState.cols, numItemsInViewportState.cols, numToleratedItemsState[1], true)
5606
+ };
5607
+ isRangeChanged = newFirst.rows !== firstState.rows || newLast.rows !== lastState.rows || newFirst.cols !== firstState.cols || newLast.cols !== lastState.cols || isItemRangeChanged.current;
5608
+ newScrollPos = {
5609
+ top: scrollTop,
5610
+ left: scrollLeft
5611
+ };
5612
+ }
5509
5613
  } else {
5510
5614
  var scrollPos = horizontal ? scrollLeft : scrollTop;
5511
5615
  var isScrollDownOrRight = lastScrollPos.current <= scrollPos;
5512
- var _currentIndex2 = calculateCurrentIndex(scrollPos, props.itemSize);
5513
- var _triggerIndex2 = calculateTriggerIndex(_currentIndex2, firstState, lastState, numItemsInViewportState, numToleratedItemsState, isScrollDownOrRight);
5514
- newFirst = calculateFirst(_currentIndex2, _triggerIndex2, firstState, lastState, numItemsInViewportState, numToleratedItemsState, isScrollDownOrRight);
5515
- newLast = calculateLast(_currentIndex2, newFirst, lastState, numItemsInViewportState, numToleratedItemsState);
5516
- isRangeChanged = newFirst !== firstState || newLast !== lastState;
5517
- newScrollPos = scrollPos;
5616
+ if (!props.appendOnly || props.appendOnly && isScrollDownOrRight) {
5617
+ var _currentIndex2 = calculateCurrentIndex(scrollPos, props.itemSize);
5618
+ var _triggerIndex2 = calculateTriggerIndex(_currentIndex2, firstState, lastState, numItemsInViewportState, numToleratedItemsState, isScrollDownOrRight);
5619
+ newFirst = calculateFirst(_currentIndex2, _triggerIndex2, firstState, lastState, numItemsInViewportState, numToleratedItemsState, isScrollDownOrRight);
5620
+ newLast = calculateLast(_currentIndex2, newFirst, lastState, numItemsInViewportState, numToleratedItemsState);
5621
+ isRangeChanged = newFirst !== firstState || newLast !== lastState || isItemRangeChanged.current;
5622
+ newScrollPos = scrollPos;
5623
+ }
5518
5624
  }
5519
5625
  return {
5520
5626
  first: newFirst,
@@ -5539,8 +5645,14 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5539
5645
  setLastState(last);
5540
5646
  lastScrollPos.current = scrollPos;
5541
5647
  props.onScrollIndexChange && props.onScrollIndexChange(newState);
5542
- if (props.lazy) {
5543
- props.onLazyLoad && props.onLazyLoad(newState);
5648
+ if (props.lazy && isPageChanged(first)) {
5649
+ var newLazyLoadState = {
5650
+ first: props.step ? Math.min(getPageByFirst(first) * props.step, props.items.length - props.step) : first,
5651
+ last: Math.min(props.step ? (getPageByFirst(first) + 1) * props.step : last, props.items.length)
5652
+ };
5653
+ var isLazyStateChanged = !lazyLoadState.current || lazyLoadState.current.first !== newLazyLoadState.first || lazyLoadState.current.last !== newLazyLoadState.last;
5654
+ isLazyStateChanged && props.onLazyLoad && props.onLazyLoad(newLazyLoadState);
5655
+ lazyLoadState.current = newLazyLoadState;
5544
5656
  }
5545
5657
  }
5546
5658
  };
@@ -5550,17 +5662,21 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5550
5662
  if (scrollTimeout.current) {
5551
5663
  clearTimeout(scrollTimeout.current);
5552
5664
  }
5553
- if (!loadingState && props.showLoader) {
5554
- var _onScrollPositionChan2 = onScrollPositionChange(event),
5555
- changed = _onScrollPositionChan2.isRangeChanged;
5556
- changed && setLoadingState(true);
5665
+ if (isPageChanged(firstState)) {
5666
+ if (!loadingState && props.showLoader) {
5667
+ var _onScrollPositionChan2 = onScrollPositionChange(event),
5668
+ isRangeChanged = _onScrollPositionChan2.isRangeChanged;
5669
+ var changed = isRangeChanged || (props.step ? isPageChanged(firstState) : false);
5670
+ changed && setLoadingState(true);
5671
+ }
5672
+ scrollTimeout.current = setTimeout(function () {
5673
+ onScrollChange(event);
5674
+ if (loadingState && props.showLoader && (!props.lazy || props.loading === undefined)) {
5675
+ setLoadingState(false);
5676
+ setPageState(getPageByFirst(firstState));
5677
+ }
5678
+ }, props.delay);
5557
5679
  }
5558
- scrollTimeout.current = setTimeout(function () {
5559
- onScrollChange(event);
5560
- if (loadingState && props.showLoader && (!props.lazy || props.loading === undefined)) {
5561
- setLoadingState(false);
5562
- }
5563
- }, props.delay);
5564
5680
  } else {
5565
5681
  onScrollChange(event);
5566
5682
  }
@@ -5571,9 +5687,9 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5571
5687
  }
5572
5688
  resizeTimeout.current = setTimeout(function () {
5573
5689
  if (elementRef.current) {
5574
- var _ref = [utils.DomHandler.getWidth(elementRef.current), utils.DomHandler.getHeight(elementRef.current)],
5575
- width = _ref[0],
5576
- height = _ref[1];
5690
+ var _ref2 = [utils.DomHandler.getWidth(elementRef.current), utils.DomHandler.getHeight(elementRef.current)],
5691
+ width = _ref2[0],
5692
+ height = _ref2[1];
5577
5693
  var isDiffWidth = width !== defaultWidth.current,
5578
5694
  isDiffHeight = height !== defaultHeight.current;
5579
5695
  var reinit = both ? isDiffWidth || isDiffHeight : horizontal ? isDiffWidth : vertical ? isDiffHeight : false;
@@ -5581,6 +5697,8 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5581
5697
  setNumToleratedItemsState(props.numToleratedItems);
5582
5698
  defaultWidth.current = width;
5583
5699
  defaultHeight.current = height;
5700
+ defaultContentWidth.current = utils.DomHandler.getWidth(_contentRef.current);
5701
+ defaultContentHeight.current = utils.DomHandler.getHeight(_contentRef.current);
5584
5702
  }
5585
5703
  }
5586
5704
  }, props.resizeDelay);
@@ -5613,12 +5731,24 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5613
5731
  var loadedItems = function loadedItems() {
5614
5732
  var items = props.items;
5615
5733
  if (items && !loadingState) {
5616
- if (both) return items.slice(firstState.rows, lastState.rows).map(function (item) {
5617
- return props.columns ? item : item.slice(firstState.cols, lastState.cols);
5618
- });else if (horizontal && props.columns) return items;else return items.slice(firstState, lastState);
5734
+ if (both) return items.slice(props.appendOnly ? 0 : firstState.rows, lastState.rows).map(function (item) {
5735
+ return props.columns ? item : item.slice(props.appendOnly ? 0 : firstState.cols, lastState.cols);
5736
+ });else if (horizontal && props.columns) return items;else return items.slice(props.appendOnly ? 0 : firstState, lastState);
5619
5737
  }
5620
5738
  return [];
5621
5739
  };
5740
+ var viewInit = function viewInit() {
5741
+ if (elementRef.current && utils.DomHandler.isVisible(elementRef.current)) {
5742
+ setContentElement(_contentRef.current);
5743
+ init();
5744
+ bindWindowResizeListener();
5745
+ bindOrientationChangeListener();
5746
+ defaultWidth.current = utils.DomHandler.getWidth(elementRef.current);
5747
+ defaultHeight.current = utils.DomHandler.getHeight(elementRef.current);
5748
+ defaultContentWidth.current = utils.DomHandler.getWidth(_contentRef.current);
5749
+ defaultContentHeight.current = utils.DomHandler.getHeight(_contentRef.current);
5750
+ }
5751
+ };
5622
5752
  var init = function init() {
5623
5753
  if (!props.disabled) {
5624
5754
  setSize();
@@ -5627,17 +5757,11 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5627
5757
  }
5628
5758
  };
5629
5759
  hooks.useMountEffect(function () {
5630
- if (!props.disabled) {
5631
- init();
5632
- bindWindowResizeListener();
5633
- bindOrientationChangeListener();
5634
- defaultWidth.current = utils.DomHandler.getWidth(elementRef.current);
5635
- defaultHeight.current = utils.DomHandler.getHeight(elementRef.current);
5636
- }
5760
+ viewInit();
5637
5761
  });
5638
5762
  hooks.useUpdateEffect(function () {
5639
5763
  init();
5640
- }, [props.itemSize, props.scrollHeight]);
5764
+ }, [props.itemSize, props.scrollHeight, props.scrollWidth]);
5641
5765
  hooks.useUpdateEffect(function () {
5642
5766
  if (props.numToleratedItems !== numToleratedItemsState) {
5643
5767
  setNumToleratedItemsState(props.numToleratedItems);
@@ -5649,11 +5773,11 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5649
5773
  }
5650
5774
  }, [numToleratedItemsState]);
5651
5775
  hooks.useUpdateEffect(function () {
5652
- if (!prevItems || prevItems.length !== (props.items || []).length) {
5776
+ if (!prevProps.items || prevProps.items.length !== (props.items || []).length) {
5653
5777
  init();
5654
5778
  }
5655
5779
  var loading = loadingState;
5656
- if (props.lazy && prevLoading !== props.loading && props.loading !== loadingState) {
5780
+ if (props.lazy && prevProps.loading !== props.loading && props.loading !== loadingState) {
5657
5781
  setLoadingState(props.loading);
5658
5782
  loading = props.loading;
5659
5783
  }
@@ -5715,6 +5839,7 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5715
5839
  if (props.showSpacer) {
5716
5840
  return /*#__PURE__*/React__namespace.createElement("div", {
5717
5841
  ref: _spacerRef,
5842
+ style: spacerStyle.current,
5718
5843
  className: "p-virtualscroller-spacer"
5719
5844
  });
5720
5845
  }
@@ -5738,11 +5863,14 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5738
5863
  });
5739
5864
  var content = /*#__PURE__*/React__namespace.createElement("div", {
5740
5865
  ref: _contentRef,
5866
+ style: contentStyle.current,
5741
5867
  className: className
5742
5868
  }, items);
5743
5869
  if (props.contentTemplate) {
5744
5870
  var defaultOptions = {
5871
+ style: contentStyle.current,
5745
5872
  className: className,
5873
+ spacerStyle: spacerStyle.current,
5746
5874
  contentRef: function contentRef(el) {
5747
5875
  return _contentRef.current = utils.ObjectUtils.getRefElement(el);
5748
5876
  },
@@ -5785,10 +5913,9 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5785
5913
  } else {
5786
5914
  var otherProps = VirtualScrollerBase.getOtherProps(props);
5787
5915
  var className = utils.classNames('p-virtualscroller', {
5788
- 'p-both-scroll': both,
5789
- 'p-virtualscroller-both': both,
5790
- 'p-virtualscroller-horizontal': horizontal,
5791
- 'p-horizontal-scroll': horizontal
5916
+ 'p-virtualscroller-inline': props.inline,
5917
+ 'p-virtualscroller-both p-both-scroll': both,
5918
+ 'p-virtualscroller-horizontal p-horizontal-scroll': horizontal
5792
5919
  }, props.className);
5793
5920
  var loader = createLoader();
5794
5921
  var _content = createContent();
@@ -5796,7 +5923,7 @@ this.primereact.virtualscroller = (function (exports, React, hooks, utils) {
5796
5923
  return /*#__PURE__*/React__namespace.createElement("div", _extends({
5797
5924
  ref: elementRef,
5798
5925
  className: className,
5799
- tabIndex: 0,
5926
+ tabIndex: props.tabIndex,
5800
5927
  style: props.style
5801
5928
  }, otherProps, {
5802
5929
  onScroll: onScroll
@@ -6257,6 +6384,11 @@ this.primereact.button = (function (exports, React, ripple, tooltip, utils) {
6257
6384
  var showTooltip = !disabled || props.tooltipOptions && props.tooltipOptions.showOnDisabled;
6258
6385
  var hasTooltip = utils.ObjectUtils.isNotEmpty(props.tooltip) && showTooltip;
6259
6386
  var otherProps = ButtonBase.getOtherProps(props);
6387
+ var sizeMapping = {
6388
+ large: 'lg',
6389
+ small: 'sm'
6390
+ };
6391
+ var size = sizeMapping[props.size];
6260
6392
  var className = utils.classNames('p-button p-component', props.className, (_classNames2 = {
6261
6393
  'p-button-icon-only': (props.icon || props.loading && props.loadingIcon) && !props.label && !props.children,
6262
6394
  'p-button-vertical': (props.iconPos === 'top' || props.iconPos === 'bottom') && props.label,
@@ -6268,7 +6400,7 @@ this.primereact.button = (function (exports, React, ripple, tooltip, utils) {
6268
6400
  'p-button-text': props.text,
6269
6401
  'p-button-rounded': props.rounded,
6270
6402
  'p-button-loading-label-only': props.loading && !props.icon && props.label
6271
- }, _defineProperty(_classNames2, "p-button-loading-".concat(props.iconPos), props.loading && props.loadingIcon && props.label), _defineProperty(_classNames2, "p-button-".concat(props.size), props.size), _defineProperty(_classNames2, "p-button-".concat(props.severity), props.severity), _classNames2));
6403
+ }, _defineProperty(_classNames2, "p-button-loading-".concat(props.iconPos), props.loading && props.loadingIcon && props.label), _defineProperty(_classNames2, "p-button-".concat(size), size), _defineProperty(_classNames2, "p-button-".concat(props.severity), props.severity), _classNames2));
6272
6404
  var icon = createIcon();
6273
6405
  var label = createLabel();
6274
6406
  var badge = createBadge();
@@ -8407,6 +8539,7 @@ this.primereact.dropdown = (function (exports, React, PrimeReact, hooks, overlay
8407
8539
  var content = isEmptyFilter ? createEmptyMessage() : options.children;
8408
8540
  return /*#__PURE__*/React__namespace.createElement("ul", {
8409
8541
  ref: options.contentRef,
8542
+ style: options.style,
8410
8543
  className: className,
8411
8544
  role: "listbox"
8412
8545
  }, content);
@@ -10497,7 +10630,6 @@ this.primereact.paginator = (function (exports, React, hooks, utils, api, ripple
10497
10630
  var Paginator = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace.forwardRef(function (inProps, ref) {
10498
10631
  var props = PaginatorBase.getProps(inProps);
10499
10632
  var elementRef = React__namespace.useRef(null);
10500
- var rppChanged = React__namespace.useRef(false);
10501
10633
  var page = Math.floor(props.first / props.rows);
10502
10634
  var pageCount = Math.ceil(props.totalRecords / props.rows);
10503
10635
  var isFirstPage = page === 0;
@@ -10562,7 +10694,6 @@ this.primereact.paginator = (function (exports, React, hooks, utils, api, ripple
10562
10694
  };
10563
10695
  var onRowsChange = function onRowsChange(event) {
10564
10696
  var rows = event.value;
10565
- rppChanged.current = rows !== props.rows;
10566
10697
  changePage(0, rows);
10567
10698
  };
10568
10699
  React__namespace.useImperativeHandle(ref, function () {
@@ -10573,12 +10704,6 @@ this.primereact.paginator = (function (exports, React, hooks, utils, api, ripple
10573
10704
  }
10574
10705
  };
10575
10706
  });
10576
- hooks.useUpdateEffect(function () {
10577
- if (!rppChanged.current) {
10578
- changePage(props.first, props.rows);
10579
- }
10580
- rppChanged.current = false;
10581
- }, [props.rows]);
10582
10707
  hooks.useUpdateEffect(function () {
10583
10708
  if (page > 0 && props.first >= props.totalRecords) {
10584
10709
  changePage((pageCount - 1) * props.rows, props.rows);