primereact 9.1.0 → 9.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 (261) hide show
  1. package/accordion/package.json +7 -0
  2. package/api/api.d.ts +2 -2
  3. package/api/package.json +7 -0
  4. package/autocomplete/autocomplete.cjs.js +1 -0
  5. package/autocomplete/autocomplete.cjs.min.js +1 -1
  6. package/autocomplete/autocomplete.esm.js +1 -0
  7. package/autocomplete/autocomplete.esm.min.js +1 -1
  8. package/autocomplete/autocomplete.js +1 -0
  9. package/autocomplete/autocomplete.min.js +1 -1
  10. package/autocomplete/package.json +7 -0
  11. package/avatar/avatar.cjs.js +2 -2
  12. package/avatar/avatar.cjs.min.js +1 -1
  13. package/avatar/avatar.esm.js +2 -2
  14. package/avatar/avatar.esm.min.js +1 -1
  15. package/avatar/avatar.js +2 -2
  16. package/avatar/avatar.min.js +1 -1
  17. package/avatar/package.json +7 -0
  18. package/avatargroup/package.json +7 -0
  19. package/badge/package.json +7 -0
  20. package/blockui/package.json +7 -0
  21. package/breadcrumb/package.json +7 -0
  22. package/button/package.json +7 -0
  23. package/calendar/calendar.cjs.js +2 -2
  24. package/calendar/calendar.cjs.min.js +1 -1
  25. package/calendar/calendar.esm.js +2 -2
  26. package/calendar/calendar.esm.min.js +1 -1
  27. package/calendar/calendar.js +2 -2
  28. package/calendar/calendar.min.js +1 -1
  29. package/calendar/package.json +7 -0
  30. package/card/package.json +7 -0
  31. package/carousel/package.json +7 -0
  32. package/cascadeselect/package.json +7 -0
  33. package/chart/package.json +7 -0
  34. package/checkbox/package.json +7 -0
  35. package/chip/package.json +7 -0
  36. package/chips/package.json +7 -0
  37. package/colorpicker/package.json +7 -0
  38. package/column/package.json +7 -0
  39. package/columngroup/package.json +7 -0
  40. package/confirmdialog/package.json +7 -0
  41. package/confirmpopup/package.json +7 -0
  42. package/contextmenu/contextmenu.cjs.js +61 -18
  43. package/contextmenu/contextmenu.cjs.min.js +1 -1
  44. package/contextmenu/contextmenu.d.ts +9 -0
  45. package/contextmenu/contextmenu.esm.js +63 -20
  46. package/contextmenu/contextmenu.esm.min.js +1 -1
  47. package/contextmenu/contextmenu.js +61 -18
  48. package/contextmenu/contextmenu.min.js +1 -1
  49. package/contextmenu/package.json +7 -0
  50. package/core/core.js +226 -115
  51. package/core/core.min.js +4 -4
  52. package/csstransition/package.json +7 -0
  53. package/datascroller/package.json +7 -0
  54. package/datatable/datatable.cjs.js +84 -79
  55. package/datatable/datatable.cjs.min.js +1 -1
  56. package/datatable/datatable.d.ts +2 -11
  57. package/datatable/datatable.esm.js +85 -80
  58. package/datatable/datatable.esm.min.js +1 -1
  59. package/datatable/datatable.js +84 -79
  60. package/datatable/datatable.min.css +1 -1
  61. package/datatable/datatable.min.js +1 -1
  62. package/datatable/package.json +7 -0
  63. package/dataview/package.json +7 -0
  64. package/deferredcontent/package.json +7 -0
  65. package/dialog/package.json +7 -0
  66. package/divider/package.json +7 -0
  67. package/dock/package.json +7 -0
  68. package/dropdown/dropdown.cjs.js +1 -0
  69. package/dropdown/dropdown.cjs.min.js +1 -1
  70. package/dropdown/dropdown.esm.js +1 -0
  71. package/dropdown/dropdown.esm.min.js +1 -1
  72. package/dropdown/dropdown.js +1 -0
  73. package/dropdown/dropdown.min.js +1 -1
  74. package/dropdown/package.json +7 -0
  75. package/editor/package.json +7 -0
  76. package/fieldset/package.json +7 -0
  77. package/fileupload/package.json +7 -0
  78. package/galleria/package.json +7 -0
  79. package/hooks/hooks.cjs.js +34 -2
  80. package/hooks/hooks.cjs.min.js +1 -1
  81. package/hooks/hooks.d.ts +13 -0
  82. package/hooks/hooks.esm.js +34 -3
  83. package/hooks/hooks.esm.min.js +1 -1
  84. package/hooks/hooks.js +34 -2
  85. package/hooks/hooks.min.js +1 -1
  86. package/hooks/package.json +7 -0
  87. package/image/package.json +7 -0
  88. package/inplace/package.json +7 -0
  89. package/inputmask/package.json +7 -0
  90. package/inputnumber/package.json +7 -0
  91. package/inputswitch/package.json +7 -0
  92. package/inputtext/inputtext.min.css +1 -1
  93. package/inputtext/package.json +7 -0
  94. package/inputtextarea/package.json +7 -0
  95. package/keyfilter/package.json +7 -0
  96. package/knob/package.json +7 -0
  97. package/listbox/listbox.cjs.js +5 -4
  98. package/listbox/listbox.cjs.min.js +1 -1
  99. package/listbox/listbox.esm.js +5 -4
  100. package/listbox/listbox.esm.min.js +1 -1
  101. package/listbox/listbox.js +5 -4
  102. package/listbox/listbox.min.js +1 -1
  103. package/listbox/package.json +7 -0
  104. package/megamenu/megamenu.cjs.js +91 -6
  105. package/megamenu/megamenu.cjs.min.js +1 -1
  106. package/megamenu/megamenu.d.ts +9 -0
  107. package/megamenu/megamenu.esm.js +93 -8
  108. package/megamenu/megamenu.esm.min.js +1 -1
  109. package/megamenu/megamenu.js +91 -6
  110. package/megamenu/megamenu.min.css +1 -1
  111. package/megamenu/megamenu.min.js +1 -1
  112. package/megamenu/package.json +7 -0
  113. package/mention/package.json +7 -0
  114. package/menu/package.json +7 -0
  115. package/menubar/package.json +7 -0
  116. package/menuitem/package.json +4 -0
  117. package/message/package.json +7 -0
  118. package/messages/package.json +7 -0
  119. package/multiselect/multiselect.cjs.js +1 -0
  120. package/multiselect/multiselect.cjs.min.js +1 -1
  121. package/multiselect/multiselect.esm.js +1 -0
  122. package/multiselect/multiselect.esm.min.js +1 -1
  123. package/multiselect/multiselect.js +1 -0
  124. package/multiselect/multiselect.min.js +1 -1
  125. package/multiselect/package.json +7 -0
  126. package/multistatecheckbox/package.json +7 -0
  127. package/orderlist/package.json +7 -0
  128. package/organizationchart/package.json +7 -0
  129. package/overlaypanel/package.json +7 -0
  130. package/overlayservice/package.json +7 -0
  131. package/package.json +1 -1
  132. package/paginator/package.json +7 -0
  133. package/panel/package.json +7 -0
  134. package/panelmenu/package.json +7 -0
  135. package/password/package.json +7 -0
  136. package/picklist/package.json +7 -0
  137. package/portal/package.json +6 -0
  138. package/primereact.all.cjs.js +554 -244
  139. package/primereact.all.cjs.min.js +1 -1
  140. package/primereact.all.esm.js +554 -245
  141. package/primereact.all.esm.min.js +1 -1
  142. package/primereact.all.js +554 -244
  143. package/primereact.all.min.js +1 -1
  144. package/progressbar/package.json +7 -0
  145. package/progressspinner/package.json +7 -0
  146. package/radiobutton/package.json +7 -0
  147. package/rating/package.json +7 -0
  148. package/resources/primereact.css +781 -832
  149. package/resources/primereact.min.css +1 -1
  150. package/resources/themes/arya-blue/theme.css +130 -2
  151. package/resources/themes/arya-green/theme.css +130 -2
  152. package/resources/themes/arya-orange/theme.css +130 -2
  153. package/resources/themes/arya-purple/theme.css +130 -2
  154. package/resources/themes/bootstrap4-dark-blue/theme.css +131 -2
  155. package/resources/themes/bootstrap4-dark-purple/theme.css +131 -2
  156. package/resources/themes/bootstrap4-light-blue/theme.css +131 -2
  157. package/resources/themes/bootstrap4-light-purple/theme.css +131 -2
  158. package/resources/themes/fluent-light/theme.css +131 -2
  159. package/resources/themes/lara-dark-blue/theme.css +131 -2
  160. package/resources/themes/lara-dark-indigo/theme.css +131 -2
  161. package/resources/themes/lara-dark-purple/theme.css +131 -2
  162. package/resources/themes/lara-dark-teal/theme.css +131 -2
  163. package/resources/themes/lara-light-blue/theme.css +131 -2
  164. package/resources/themes/lara-light-indigo/theme.css +131 -2
  165. package/resources/themes/lara-light-purple/theme.css +131 -2
  166. package/resources/themes/lara-light-teal/theme.css +131 -2
  167. package/resources/themes/luna-amber/theme.css +131 -2
  168. package/resources/themes/luna-blue/theme.css +131 -2
  169. package/resources/themes/luna-green/theme.css +131 -2
  170. package/resources/themes/luna-pink/theme.css +131 -2
  171. package/resources/themes/md-dark-deeppurple/theme.css +131 -2
  172. package/resources/themes/md-dark-indigo/theme.css +131 -2
  173. package/resources/themes/md-light-deeppurple/theme.css +131 -2
  174. package/resources/themes/md-light-indigo/theme.css +131 -2
  175. package/resources/themes/mdc-dark-deeppurple/theme.css +131 -2
  176. package/resources/themes/mdc-dark-indigo/theme.css +131 -2
  177. package/resources/themes/mdc-light-deeppurple/theme.css +131 -2
  178. package/resources/themes/mdc-light-indigo/theme.css +131 -2
  179. package/resources/themes/mira/theme.css +131 -2
  180. package/resources/themes/nano/theme.css +131 -2
  181. package/resources/themes/nova/theme.css +131 -2
  182. package/resources/themes/nova-accent/theme.css +131 -2
  183. package/resources/themes/nova-alt/theme.css +131 -2
  184. package/resources/themes/rhea/theme.css +131 -2
  185. package/resources/themes/saga-blue/theme.css +131 -2
  186. package/resources/themes/saga-green/theme.css +131 -2
  187. package/resources/themes/saga-orange/theme.css +131 -2
  188. package/resources/themes/saga-purple/theme.css +131 -2
  189. package/resources/themes/soho-dark/theme.css +131 -2
  190. package/resources/themes/soho-light/theme.css +131 -2
  191. package/resources/themes/tailwind-light/theme.css +131 -2
  192. package/resources/themes/vela-blue/theme.css +131 -2
  193. package/resources/themes/vela-green/theme.css +131 -2
  194. package/resources/themes/vela-orange/theme.css +131 -2
  195. package/resources/themes/vela-purple/theme.css +131 -2
  196. package/resources/themes/viva-dark/theme.css +131 -2
  197. package/resources/themes/viva-light/theme.css +131 -2
  198. package/ripple/package.json +7 -0
  199. package/row/package.json +7 -0
  200. package/scrollpanel/package.json +7 -0
  201. package/scrolltop/package.json +7 -0
  202. package/selectbutton/package.json +7 -0
  203. package/selectitem/package.json +4 -0
  204. package/sidebar/package.json +7 -0
  205. package/skeleton/package.json +7 -0
  206. package/slidemenu/package.json +7 -0
  207. package/slider/package.json +7 -0
  208. package/speeddial/package.json +7 -0
  209. package/splitbutton/package.json +7 -0
  210. package/splitter/package.json +7 -0
  211. package/steps/package.json +7 -0
  212. package/styleclass/package.json +7 -0
  213. package/tabmenu/package.json +7 -0
  214. package/tabview/package.json +7 -0
  215. package/tag/package.json +7 -0
  216. package/terminal/package.json +7 -0
  217. package/terminalservice/package.json +7 -0
  218. package/tieredmenu/package.json +7 -0
  219. package/tieredmenu/tieredmenu.cjs.js +69 -9
  220. package/tieredmenu/tieredmenu.cjs.min.js +1 -1
  221. package/tieredmenu/tieredmenu.d.ts +9 -0
  222. package/tieredmenu/tieredmenu.esm.js +71 -11
  223. package/tieredmenu/tieredmenu.esm.min.js +1 -1
  224. package/tieredmenu/tieredmenu.js +69 -9
  225. package/tieredmenu/tieredmenu.min.js +1 -1
  226. package/timeline/package.json +7 -0
  227. package/toast/package.json +7 -0
  228. package/toast/toast.min.css +1 -1
  229. package/togglebutton/package.json +7 -0
  230. package/toolbar/package.json +7 -0
  231. package/tooltip/package.json +7 -0
  232. package/tree/package.json +7 -0
  233. package/treenode/package.json +4 -0
  234. package/treeselect/package.json +7 -0
  235. package/treetable/package.json +7 -0
  236. package/treetable/treetable.cjs.js +12 -9
  237. package/treetable/treetable.cjs.min.js +1 -1
  238. package/treetable/treetable.d.ts +0 -5
  239. package/treetable/treetable.esm.js +12 -9
  240. package/treetable/treetable.esm.min.js +1 -1
  241. package/treetable/treetable.js +12 -9
  242. package/treetable/treetable.min.css +1 -1
  243. package/treetable/treetable.min.js +1 -1
  244. package/tristatecheckbox/package.json +7 -0
  245. package/utils/package.json +7 -0
  246. package/utils/utils.cjs.js +14 -9
  247. package/utils/utils.cjs.min.js +1 -1
  248. package/utils/utils.esm.js +14 -9
  249. package/utils/utils.esm.min.js +1 -1
  250. package/utils/utils.js +14 -9
  251. package/utils/utils.min.js +1 -1
  252. package/virtualscroller/package.json +7 -0
  253. package/virtualscroller/virtualscroller.cjs.js +177 -104
  254. package/virtualscroller/virtualscroller.cjs.min.js +1 -1
  255. package/virtualscroller/virtualscroller.d.ts +20 -0
  256. package/virtualscroller/virtualscroller.esm.js +177 -104
  257. package/virtualscroller/virtualscroller.esm.min.js +1 -1
  258. package/virtualscroller/virtualscroller.js +177 -104
  259. package/virtualscroller/virtualscroller.min.css +1 -1
  260. package/virtualscroller/virtualscroller.min.js +1 -1
  261. package/web-types.json +1 -1
@@ -143,14 +143,18 @@ var VirtualScrollerBase = {
143
143
  id: null,
144
144
  style: null,
145
145
  className: null,
146
+ tabIndex: 0,
146
147
  items: null,
147
148
  itemSize: 0,
148
149
  scrollHeight: null,
149
150
  scrollWidth: null,
150
151
  orientation: 'vertical',
152
+ step: 0,
151
153
  numToleratedItems: null,
152
154
  delay: 0,
153
155
  resizeDelay: 10,
156
+ appendOnly: false,
157
+ inline: false,
154
158
  lazy: false,
155
159
  disabled: false,
156
160
  loaderDisabled: false,
@@ -180,6 +184,7 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
180
184
  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; }
181
185
  var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace.forwardRef(function (inProps, ref) {
182
186
  var props = VirtualScrollerBase.getProps(inProps);
187
+ var prevProps = hooks.usePrevious(inProps) || {};
183
188
  var vertical = props.orientation === 'vertical';
184
189
  var horizontal = props.orientation === 'horizontal';
185
190
  var both = props.orientation === 'both';
@@ -197,25 +202,29 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
197
202
  _React$useState4 = _slicedToArray(_React$useState3, 2),
198
203
  lastState = _React$useState4[0],
199
204
  setLastState = _React$useState4[1];
200
- var _React$useState5 = React__namespace.useState(both ? {
205
+ var _React$useState5 = React__namespace.useState(0),
206
+ _React$useState6 = _slicedToArray(_React$useState5, 2),
207
+ pageState = _React$useState6[0],
208
+ setPageState = _React$useState6[1];
209
+ var _React$useState7 = React__namespace.useState(both ? {
201
210
  rows: 0,
202
211
  cols: 0
203
212
  } : 0),
204
- _React$useState6 = _slicedToArray(_React$useState5, 2),
205
- numItemsInViewportState = _React$useState6[0],
206
- setNumItemsInViewportState = _React$useState6[1];
207
- var _React$useState7 = React__namespace.useState(props.numToleratedItems),
208
213
  _React$useState8 = _slicedToArray(_React$useState7, 2),
209
- numToleratedItemsState = _React$useState8[0],
210
- setNumToleratedItemsState = _React$useState8[1];
211
- var _React$useState9 = React__namespace.useState(props.loading || false),
214
+ numItemsInViewportState = _React$useState8[0],
215
+ setNumItemsInViewportState = _React$useState8[1];
216
+ var _React$useState9 = React__namespace.useState(props.numToleratedItems),
212
217
  _React$useState10 = _slicedToArray(_React$useState9, 2),
213
- loadingState = _React$useState10[0],
214
- setLoadingState = _React$useState10[1];
215
- var _React$useState11 = React__namespace.useState([]),
218
+ numToleratedItemsState = _React$useState10[0],
219
+ setNumToleratedItemsState = _React$useState10[1];
220
+ var _React$useState11 = React__namespace.useState(props.loading || false),
216
221
  _React$useState12 = _slicedToArray(_React$useState11, 2),
217
- loaderArrState = _React$useState12[0],
218
- setLoaderArrState = _React$useState12[1];
222
+ loadingState = _React$useState12[0],
223
+ setLoadingState = _React$useState12[1];
224
+ var _React$useState13 = React__namespace.useState([]),
225
+ _React$useState14 = _slicedToArray(_React$useState13, 2),
226
+ loaderArrState = _React$useState14[0],
227
+ setLoaderArrState = _React$useState14[1];
219
228
  var elementRef = React__namespace.useRef(null);
220
229
  var _contentRef = React__namespace.useRef(null);
221
230
  var _spacerRef = React__namespace.useRef(null);
@@ -226,14 +235,19 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
226
235
  } : 0);
227
236
  var scrollTimeout = React__namespace.useRef(null);
228
237
  var resizeTimeout = React__namespace.useRef(null);
238
+ var contentStyle = React__namespace.useRef({});
239
+ var spacerStyle = React__namespace.useRef({});
229
240
  var defaultWidth = React__namespace.useRef(null);
230
241
  var defaultHeight = React__namespace.useRef(null);
231
- var prevItems = hooks.usePrevious(props.items);
232
- var prevLoading = hooks.usePrevious(props.loading);
242
+ var defaultContentWidth = React__namespace.useRef(null);
243
+ var defaultContentHeight = React__namespace.useRef(null);
244
+ var isItemRangeChanged = React__namespace.useRef(false);
245
+ var lazyLoadState = React__namespace.useRef(null);
233
246
  var _useResizeListener = hooks.useResizeListener({
234
247
  listener: function listener(event) {
235
248
  return onResize();
236
- }
249
+ },
250
+ when: !props.disabled
237
251
  }),
238
252
  _useResizeListener2 = _slicedToArray(_useResizeListener, 1),
239
253
  bindWindowResizeListener = _useResizeListener2[0];
@@ -242,13 +256,23 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
242
256
  type: 'orientationchange',
243
257
  listener: function listener(event) {
244
258
  return onResize();
245
- }
259
+ },
260
+ when: !props.disabled
246
261
  }),
247
262
  _useEventListener2 = _slicedToArray(_useEventListener, 1),
248
263
  bindOrientationChangeListener = _useEventListener2[0];
249
264
  var getElementRef = function getElementRef() {
250
265
  return elementRef;
251
266
  };
267
+ var getPageByFirst = function getPageByFirst(first) {
268
+ return Math.floor((first + numToleratedItemsState * 4) / (props.step || 1));
269
+ };
270
+ var setContentElement = function setContentElement(element) {
271
+ _contentRef.current = element || _contentRef.current || utils.DomHandler.findSingle(elementRef.current, '.p-virtualscroller-content');
272
+ };
273
+ var isPageChanged = function isPageChanged(first) {
274
+ return props.step ? pageState !== getPageByFirst(first) : true;
275
+ };
252
276
  var scrollTo = function scrollTo(options) {
253
277
  lastScrollPos.current = both ? {
254
278
  top: 0,
@@ -260,13 +284,14 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
260
284
  var behavior = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'auto';
261
285
  var _calculateNumItems = calculateNumItems(),
262
286
  numToleratedItems = _calculateNumItems.numToleratedItems;
287
+ var contentPos = getContentPosition();
263
288
  var calculateFirst = function calculateFirst() {
264
289
  var _index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
265
290
  var _numT = arguments.length > 1 ? arguments[1] : undefined;
266
291
  return _index <= _numT ? 0 : _index;
267
292
  };
268
- var calculateCoord = function calculateCoord(_first, _size) {
269
- return _first * _size;
293
+ var calculateCoord = function calculateCoord(_first, _size, _cpos) {
294
+ return _first * _size + _cpos;
270
295
  };
271
296
  var scrollToItem = function scrollToItem() {
272
297
  var left = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
@@ -277,20 +302,25 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
277
302
  behavior: behavior
278
303
  });
279
304
  };
305
+ var newFirst = both ? {
306
+ rows: 0,
307
+ cols: 0
308
+ } : 0;
309
+ var isRangeChanged = false;
280
310
  if (both) {
281
- var newFirst = {
311
+ newFirst = {
282
312
  rows: calculateFirst(index[0], numToleratedItems[0]),
283
313
  cols: calculateFirst(index[1], numToleratedItems[1])
284
314
  };
285
- if (newFirst.rows !== firstState.rows || newFirst.cols !== firstState.cols) {
286
- scrollToItem(calculateCoord(newFirst.cols, props.itemSize[1]), calculateCoord(newFirst.rows, props.itemSize[0]));
287
- }
315
+ scrollToItem(calculateCoord(newFirst.cols, props.itemSize[1], contentPos.left), calculateCoord(newFirst.rows, props.itemSize[0], contentPos.top));
316
+ isRangeChanged = firstState.rows !== newFirst.rows || firstState.cols !== newFirst.cols;
288
317
  } else {
289
- var _newFirst = calculateFirst(index, numToleratedItems);
290
- if (_newFirst !== firstState) {
291
- horizontal ? scrollToItem(calculateCoord(_newFirst, props.itemSize), 0) : scrollToItem(0, calculateCoord(_newFirst, props.itemSize));
292
- }
318
+ newFirst = calculateFirst(index, numToleratedItems);
319
+ horizontal ? scrollToItem(calculateCoord(newFirst, props.itemSize, contentPos.left), 0) : scrollToItem(0, calculateCoord(newFirst, props.itemSize, contentPos.top));
320
+ isRangeChanged = firstState !== newFirst;
293
321
  }
322
+ isItemRangeChanged.current = isRangeChanged;
323
+ setFirstState(newFirst);
294
324
  };
295
325
  var scrollInView = function scrollInView(index, to) {
296
326
  var behavior = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'auto';
@@ -407,7 +437,8 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
407
437
  var _calculateNumItems2 = calculateNumItems(),
408
438
  numItemsInViewport = _calculateNumItems2.numItemsInViewport,
409
439
  numToleratedItems = _calculateNumItems2.numToleratedItems;
410
- var calculateLast = function calculateLast(_first, _num, _numT, _isCols) {
440
+ var calculateLast = function calculateLast(_first, _num, _numT) {
441
+ var _isCols = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
411
442
  return getLast(_first + _num + (_first < _numT ? 2 : 3) * _numT, _isCols);
412
443
  };
413
444
  var last = both ? {
@@ -429,9 +460,15 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
429
460
  }));
430
461
  }
431
462
  if (props.lazy) {
432
- props.onLazyLoad && props.onLazyLoad({
433
- first: firstState,
434
- last: last
463
+ Promise.resolve().then(function () {
464
+ lazyLoadState.current = {
465
+ first: props.step ? both ? {
466
+ rows: 0,
467
+ cols: firstState.cols
468
+ } : 0 : firstState,
469
+ last: Math.min(props.step ? props.step : last, props.items.length)
470
+ };
471
+ props.onLazyLoad && props.onLazyLoad(lazyLoadState.current);
435
472
  });
436
473
  }
437
474
  };
@@ -440,12 +477,21 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
440
477
  Promise.resolve().then(function () {
441
478
  if (_contentRef.current) {
442
479
  _contentRef.current.style.minHeight = _contentRef.current.style.minWidth = 'auto';
443
- var _contentRef$current = _contentRef.current,
444
- offsetWidth = _contentRef$current.offsetWidth,
445
- offsetHeight = _contentRef$current.offsetHeight;
446
- (both || horizontal) && (elementRef.current.style.width = (offsetWidth < defaultWidth.current ? offsetWidth : defaultWidth.current) + 'px');
447
- (both || vertical) && (elementRef.current.style.height = (offsetHeight < defaultHeight.current ? offsetHeight : defaultHeight.current) + 'px');
480
+ _contentRef.current.style.position = 'relative';
481
+ elementRef.current.style.contain = 'none';
482
+
483
+ /*const [contentWidth, contentHeight] = [DomHandler.getWidth(contentRef.current), DomHandler.getHeight(contentRef.current)];
484
+ contentWidth !== defaultContentWidth.current && (elementRef.current.style.width = '');
485
+ contentHeight !== defaultContentHeight.current && (elementRef.current.style.height = '');*/
486
+
487
+ var _ref = [utils.DomHandler.getWidth(elementRef.current), utils.DomHandler.getHeight(elementRef.current)],
488
+ width = _ref[0],
489
+ height = _ref[1];
490
+ (both || horizontal) && (elementRef.current.style.width = (width < defaultWidth.current ? width : props.scrollWidth || defaultWidth.current) + 'px');
491
+ (both || vertical) && (elementRef.current.style.height = (height < defaultHeight.current ? height : props.scrollHeight || defaultHeight.current) + 'px');
448
492
  _contentRef.current.style.minHeight = _contentRef.current.style.minWidth = '';
493
+ _contentRef.current.style.position = '';
494
+ elementRef.current.style.contain = '';
449
495
  }
450
496
  });
451
497
  }
@@ -458,10 +504,10 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
458
504
  var getContentPosition = function getContentPosition() {
459
505
  if (_contentRef.current) {
460
506
  var style = getComputedStyle(_contentRef.current);
461
- var left = parseInt(style.paddingLeft, 10) + Math.max(parseInt(style.left, 10), 0);
462
- var right = parseInt(style.paddingRight, 10) + Math.max(parseInt(style.right, 10), 0);
463
- var top = parseInt(style.paddingTop, 10) + Math.max(parseInt(style.top, 10), 0);
464
- var bottom = parseInt(style.paddingBottom, 10) + Math.max(parseInt(style.bottom, 10), 0);
507
+ var left = parseFloat(style.paddingLeft) + Math.max(parseFloat(style.left) || 0, 0);
508
+ var right = parseFloat(style.paddingRight) + Math.max(parseFloat(style.right) || 0, 0);
509
+ var top = parseFloat(style.paddingTop) + Math.max(parseFloat(style.top) || 0, 0);
510
+ var bottom = parseFloat(style.paddingBottom) + Math.max(parseFloat(style.bottom) || 0, 0);
465
511
  return {
466
512
  left: left,
467
513
  right: right,
@@ -498,11 +544,11 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
498
544
  };
499
545
  var setSpacerSize = function setSpacerSize() {
500
546
  var items = props.items;
501
- if (_spacerRef.current && items) {
547
+ if (items) {
502
548
  var contentPos = getContentPosition();
503
549
  var setProp = function setProp(_name, _value, _size) {
504
550
  var _cpos = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
505
- return _spacerRef.current.style[_name] = (_value || []).length * _size + _cpos + 'px';
551
+ return spacerStyle.current = _objectSpread(_objectSpread({}, spacerStyle.current), _defineProperty({}, "".concat(_name), (_value || []).length * _size + _cpos + 'px'));
506
552
  };
507
553
  if (both) {
508
554
  setProp('height', items, props.itemSize[0], contentPos.y);
@@ -513,7 +559,7 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
513
559
  }
514
560
  };
515
561
  var setContentPosition = function setContentPosition(pos) {
516
- if (_contentRef.current) {
562
+ if (_contentRef.current && !props.appendOnly) {
517
563
  var first = pos ? pos.first : firstState;
518
564
  var calculateTranslateVal = function calculateTranslateVal(_first, _size) {
519
565
  return _first * _size;
@@ -522,7 +568,9 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
522
568
  var _x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
523
569
  var _y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
524
570
  _stickyRef.current && (_stickyRef.current.style.top = "-".concat(_y, "px"));
525
- _contentRef.current.style.transform = "translate3d(".concat(_x, "px, ").concat(_y, "px, 0)");
571
+ contentStyle.current = _objectSpread(_objectSpread({}, contentStyle.current), {
572
+ transform: "translate3d(".concat(_x, "px, ").concat(_y, "px, 0)")
573
+ });
526
574
  };
527
575
  if (both) {
528
576
  setTransform(calculateTranslateVal(first.cols, props.itemSize[1]), calculateTranslateVal(first.rows, props.itemSize[0]));
@@ -566,36 +614,40 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
566
614
  if (both) {
567
615
  var isScrollDown = lastScrollPos.current.top <= scrollTop;
568
616
  var isScrollRight = lastScrollPos.current.left <= scrollLeft;
569
- var currentIndex = {
570
- rows: calculateCurrentIndex(scrollTop, props.itemSize[0]),
571
- cols: calculateCurrentIndex(scrollLeft, props.itemSize[1])
572
- };
573
- var triggerIndex = {
574
- rows: calculateTriggerIndex(currentIndex.rows, firstState.rows, lastState.rows, numItemsInViewportState.rows, numToleratedItemsState[0], isScrollDown),
575
- cols: calculateTriggerIndex(currentIndex.cols, firstState.cols, lastState.cols, numItemsInViewportState.cols, numToleratedItemsState[1], isScrollRight)
576
- };
577
- newFirst = {
578
- rows: calculateFirst(currentIndex.rows, triggerIndex.rows, firstState.rows, lastState.rows, numItemsInViewportState.rows, numToleratedItemsState[0], isScrollDown),
579
- cols: calculateFirst(currentIndex.cols, triggerIndex.cols, firstState.cols, lastState.cols, numItemsInViewportState.cols, numToleratedItemsState[1], isScrollRight)
580
- };
581
- newLast = {
582
- rows: calculateLast(currentIndex.rows, newFirst.rows, lastState.rows, numItemsInViewportState.rows, numToleratedItemsState[0]),
583
- cols: calculateLast(currentIndex.cols, newFirst.cols, lastState.cols, numItemsInViewportState.cols, numToleratedItemsState[1], true)
584
- };
585
- isRangeChanged = newFirst.rows !== firstState.rows || newLast.rows !== lastState.rows || newFirst.cols !== firstState.cols || newLast.cols !== lastState.cols;
586
- newScrollPos = {
587
- top: scrollTop,
588
- left: scrollLeft
589
- };
617
+ if (!props.appendOnly || props.appendOnly && (isScrollDown || isScrollRight)) {
618
+ var currentIndex = {
619
+ rows: calculateCurrentIndex(scrollTop, props.itemSize[0]),
620
+ cols: calculateCurrentIndex(scrollLeft, props.itemSize[1])
621
+ };
622
+ var triggerIndex = {
623
+ rows: calculateTriggerIndex(currentIndex.rows, firstState.rows, lastState.rows, numItemsInViewportState.rows, numToleratedItemsState[0], isScrollDown),
624
+ cols: calculateTriggerIndex(currentIndex.cols, firstState.cols, lastState.cols, numItemsInViewportState.cols, numToleratedItemsState[1], isScrollRight)
625
+ };
626
+ newFirst = {
627
+ rows: calculateFirst(currentIndex.rows, triggerIndex.rows, firstState.rows, lastState.rows, numItemsInViewportState.rows, numToleratedItemsState[0], isScrollDown),
628
+ cols: calculateFirst(currentIndex.cols, triggerIndex.cols, firstState.cols, lastState.cols, numItemsInViewportState.cols, numToleratedItemsState[1], isScrollRight)
629
+ };
630
+ newLast = {
631
+ rows: calculateLast(currentIndex.rows, newFirst.rows, lastState.rows, numItemsInViewportState.rows, numToleratedItemsState[0]),
632
+ cols: calculateLast(currentIndex.cols, newFirst.cols, lastState.cols, numItemsInViewportState.cols, numToleratedItemsState[1], true)
633
+ };
634
+ isRangeChanged = newFirst.rows !== firstState.rows || newLast.rows !== lastState.rows || newFirst.cols !== firstState.cols || newLast.cols !== lastState.cols || isItemRangeChanged.current;
635
+ newScrollPos = {
636
+ top: scrollTop,
637
+ left: scrollLeft
638
+ };
639
+ }
590
640
  } else {
591
641
  var scrollPos = horizontal ? scrollLeft : scrollTop;
592
642
  var isScrollDownOrRight = lastScrollPos.current <= scrollPos;
593
- var _currentIndex2 = calculateCurrentIndex(scrollPos, props.itemSize);
594
- var _triggerIndex2 = calculateTriggerIndex(_currentIndex2, firstState, lastState, numItemsInViewportState, numToleratedItemsState, isScrollDownOrRight);
595
- newFirst = calculateFirst(_currentIndex2, _triggerIndex2, firstState, lastState, numItemsInViewportState, numToleratedItemsState, isScrollDownOrRight);
596
- newLast = calculateLast(_currentIndex2, newFirst, lastState, numItemsInViewportState, numToleratedItemsState);
597
- isRangeChanged = newFirst !== firstState || newLast !== lastState;
598
- newScrollPos = scrollPos;
643
+ if (!props.appendOnly || props.appendOnly && isScrollDownOrRight) {
644
+ var _currentIndex2 = calculateCurrentIndex(scrollPos, props.itemSize);
645
+ var _triggerIndex2 = calculateTriggerIndex(_currentIndex2, firstState, lastState, numItemsInViewportState, numToleratedItemsState, isScrollDownOrRight);
646
+ newFirst = calculateFirst(_currentIndex2, _triggerIndex2, firstState, lastState, numItemsInViewportState, numToleratedItemsState, isScrollDownOrRight);
647
+ newLast = calculateLast(_currentIndex2, newFirst, lastState, numItemsInViewportState, numToleratedItemsState);
648
+ isRangeChanged = newFirst !== firstState || newLast !== lastState || isItemRangeChanged.current;
649
+ newScrollPos = scrollPos;
650
+ }
599
651
  }
600
652
  return {
601
653
  first: newFirst,
@@ -620,8 +672,14 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
620
672
  setLastState(last);
621
673
  lastScrollPos.current = scrollPos;
622
674
  props.onScrollIndexChange && props.onScrollIndexChange(newState);
623
- if (props.lazy) {
624
- props.onLazyLoad && props.onLazyLoad(newState);
675
+ if (props.lazy && isPageChanged(first)) {
676
+ var newLazyLoadState = {
677
+ first: props.step ? Math.min(getPageByFirst(first) * props.step, props.items.length - props.step) : first,
678
+ last: Math.min(props.step ? (getPageByFirst(first) + 1) * props.step : last, props.items.length)
679
+ };
680
+ var isLazyStateChanged = !lazyLoadState.current || lazyLoadState.current.first !== newLazyLoadState.first || lazyLoadState.current.last !== newLazyLoadState.last;
681
+ isLazyStateChanged && props.onLazyLoad && props.onLazyLoad(newLazyLoadState);
682
+ lazyLoadState.current = newLazyLoadState;
625
683
  }
626
684
  }
627
685
  };
@@ -631,17 +689,21 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
631
689
  if (scrollTimeout.current) {
632
690
  clearTimeout(scrollTimeout.current);
633
691
  }
634
- if (!loadingState && props.showLoader) {
635
- var _onScrollPositionChan2 = onScrollPositionChange(event),
636
- changed = _onScrollPositionChan2.isRangeChanged;
637
- changed && setLoadingState(true);
638
- }
639
- scrollTimeout.current = setTimeout(function () {
640
- onScrollChange(event);
641
- if (loadingState && props.showLoader && (!props.lazy || props.loading === undefined)) {
642
- setLoadingState(false);
692
+ if (isPageChanged(firstState)) {
693
+ if (!loadingState && props.showLoader) {
694
+ var _onScrollPositionChan2 = onScrollPositionChange(event),
695
+ isRangeChanged = _onScrollPositionChan2.isRangeChanged;
696
+ var changed = isRangeChanged || (props.step ? isPageChanged(firstState) : false);
697
+ changed && setLoadingState(true);
643
698
  }
644
- }, props.delay);
699
+ scrollTimeout.current = setTimeout(function () {
700
+ onScrollChange(event);
701
+ if (loadingState && props.showLoader && (!props.lazy || props.loading === undefined)) {
702
+ setLoadingState(false);
703
+ setPageState(getPageByFirst(firstState));
704
+ }
705
+ }, props.delay);
706
+ }
645
707
  } else {
646
708
  onScrollChange(event);
647
709
  }
@@ -652,9 +714,9 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
652
714
  }
653
715
  resizeTimeout.current = setTimeout(function () {
654
716
  if (elementRef.current) {
655
- var _ref = [utils.DomHandler.getWidth(elementRef.current), utils.DomHandler.getHeight(elementRef.current)],
656
- width = _ref[0],
657
- height = _ref[1];
717
+ var _ref2 = [utils.DomHandler.getWidth(elementRef.current), utils.DomHandler.getHeight(elementRef.current)],
718
+ width = _ref2[0],
719
+ height = _ref2[1];
658
720
  var isDiffWidth = width !== defaultWidth.current,
659
721
  isDiffHeight = height !== defaultHeight.current;
660
722
  var reinit = both ? isDiffWidth || isDiffHeight : horizontal ? isDiffWidth : vertical ? isDiffHeight : false;
@@ -662,6 +724,8 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
662
724
  setNumToleratedItemsState(props.numToleratedItems);
663
725
  defaultWidth.current = width;
664
726
  defaultHeight.current = height;
727
+ defaultContentWidth.current = utils.DomHandler.getWidth(_contentRef.current);
728
+ defaultContentHeight.current = utils.DomHandler.getHeight(_contentRef.current);
665
729
  }
666
730
  }
667
731
  }, props.resizeDelay);
@@ -694,12 +758,24 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
694
758
  var loadedItems = function loadedItems() {
695
759
  var items = props.items;
696
760
  if (items && !loadingState) {
697
- if (both) return items.slice(firstState.rows, lastState.rows).map(function (item) {
698
- return props.columns ? item : item.slice(firstState.cols, lastState.cols);
699
- });else if (horizontal && props.columns) return items;else return items.slice(firstState, lastState);
761
+ if (both) return items.slice(props.appendOnly ? 0 : firstState.rows, lastState.rows).map(function (item) {
762
+ return props.columns ? item : item.slice(props.appendOnly ? 0 : firstState.cols, lastState.cols);
763
+ });else if (horizontal && props.columns) return items;else return items.slice(props.appendOnly ? 0 : firstState, lastState);
700
764
  }
701
765
  return [];
702
766
  };
767
+ var viewInit = function viewInit() {
768
+ if (elementRef.current && utils.DomHandler.isVisible(elementRef.current)) {
769
+ setContentElement(_contentRef.current);
770
+ init();
771
+ bindWindowResizeListener();
772
+ bindOrientationChangeListener();
773
+ defaultWidth.current = utils.DomHandler.getWidth(elementRef.current);
774
+ defaultHeight.current = utils.DomHandler.getHeight(elementRef.current);
775
+ defaultContentWidth.current = utils.DomHandler.getWidth(_contentRef.current);
776
+ defaultContentHeight.current = utils.DomHandler.getHeight(_contentRef.current);
777
+ }
778
+ };
703
779
  var init = function init() {
704
780
  if (!props.disabled) {
705
781
  setSize();
@@ -708,17 +784,11 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
708
784
  }
709
785
  };
710
786
  hooks.useMountEffect(function () {
711
- if (!props.disabled) {
712
- init();
713
- bindWindowResizeListener();
714
- bindOrientationChangeListener();
715
- defaultWidth.current = utils.DomHandler.getWidth(elementRef.current);
716
- defaultHeight.current = utils.DomHandler.getHeight(elementRef.current);
717
- }
787
+ viewInit();
718
788
  });
719
789
  hooks.useUpdateEffect(function () {
720
790
  init();
721
- }, [props.itemSize, props.scrollHeight]);
791
+ }, [props.itemSize, props.scrollHeight, props.scrollWidth]);
722
792
  hooks.useUpdateEffect(function () {
723
793
  if (props.numToleratedItems !== numToleratedItemsState) {
724
794
  setNumToleratedItemsState(props.numToleratedItems);
@@ -730,11 +800,11 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
730
800
  }
731
801
  }, [numToleratedItemsState]);
732
802
  hooks.useUpdateEffect(function () {
733
- if (!prevItems || prevItems.length !== (props.items || []).length) {
803
+ if (!prevProps.items || prevProps.items.length !== (props.items || []).length) {
734
804
  init();
735
805
  }
736
806
  var loading = loadingState;
737
- if (props.lazy && prevLoading !== props.loading && props.loading !== loadingState) {
807
+ if (props.lazy && prevProps.loading !== props.loading && props.loading !== loadingState) {
738
808
  setLoadingState(props.loading);
739
809
  loading = props.loading;
740
810
  }
@@ -796,6 +866,7 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
796
866
  if (props.showSpacer) {
797
867
  return /*#__PURE__*/React__namespace.createElement("div", {
798
868
  ref: _spacerRef,
869
+ style: spacerStyle.current,
799
870
  className: "p-virtualscroller-spacer"
800
871
  });
801
872
  }
@@ -819,11 +890,14 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
819
890
  });
820
891
  var content = /*#__PURE__*/React__namespace.createElement("div", {
821
892
  ref: _contentRef,
893
+ style: contentStyle.current,
822
894
  className: className
823
895
  }, items);
824
896
  if (props.contentTemplate) {
825
897
  var defaultOptions = {
898
+ style: contentStyle.current,
826
899
  className: className,
900
+ spacerStyle: spacerStyle.current,
827
901
  contentRef: function contentRef(el) {
828
902
  return _contentRef.current = utils.ObjectUtils.getRefElement(el);
829
903
  },
@@ -866,10 +940,9 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
866
940
  } else {
867
941
  var otherProps = VirtualScrollerBase.getOtherProps(props);
868
942
  var className = utils.classNames('p-virtualscroller', {
869
- 'p-both-scroll': both,
870
- 'p-virtualscroller-both': both,
871
- 'p-virtualscroller-horizontal': horizontal,
872
- 'p-horizontal-scroll': horizontal
943
+ 'p-virtualscroller-inline': props.inline,
944
+ 'p-virtualscroller-both p-both-scroll': both,
945
+ 'p-virtualscroller-horizontal p-horizontal-scroll': horizontal
873
946
  }, props.className);
874
947
  var loader = createLoader();
875
948
  var _content = createContent();
@@ -877,7 +950,7 @@ var VirtualScroller = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__na
877
950
  return /*#__PURE__*/React__namespace.createElement("div", _extends({
878
951
  ref: elementRef,
879
952
  className: className,
880
- tabIndex: 0,
953
+ tabIndex: props.tabIndex,
881
954
  style: props.style
882
955
  }, otherProps, {
883
956
  onScroll: onScroll
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("primereact/hooks"),r=require("primereact/utils");function n(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var o=n(e);function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},l.apply(this,arguments)}function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}function s(e,t){if("object"!==i(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==i(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function c(e){var t=s(e,"string");return"symbol"===i(t)?t:String(t)}function a(e,t,r){return(t=c(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function u(e){if(Array.isArray(e))return e}function f(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,l,i,s=[],c=!0,a=!1;try{if(l=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=l.call(r)).done)&&(s.push(n.value),s.length!==t);c=!0);}catch(e){a=!0,o=e}finally{try{if(!c&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(a)throw o}}return s}}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function d(e,t){if(e){if("string"==typeof e)return m(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?m(e,t):void 0}}function p(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function g(e,t){return u(e)||f(e,t)||d(e,t)||p()}var h={defaultProps:{__TYPE:"VirtualScroller",id:null,style:null,className:null,items:null,itemSize:0,scrollHeight:null,scrollWidth:null,orientation:"vertical",numToleratedItems:null,delay:0,resizeDelay:10,lazy:!1,disabled:!1,loaderDisabled:!1,columns:null,loading:void 0,autoSize:!1,showSpacer:!0,showLoader:!1,loadingTemplate:null,loaderIconTemplate:null,itemTemplate:null,contentTemplate:null,onScroll:null,onScrollIndexChange:null,onLazyLoad:null,children:void 0},getProps:function(e){return r.ObjectUtils.getMergedProps(e,h.defaultProps)},getOtherProps:function(e){return r.ObjectUtils.getDiffProps(e,h.defaultProps)}};function v(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function y(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?v(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):v(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var w=o.memo(o.forwardRef((function(e,n){var i=h.getProps(e),s="vertical"===i.orientation,c="horizontal"===i.orientation,a="both"===i.orientation,u=g(o.useState(a?{rows:0,cols:0}:0),2),f=u[0],m=u[1],d=g(o.useState(a?{rows:0,cols:0}:0),2),p=d[0],v=d[1],w=g(o.useState(a?{rows:0,cols:0}:0),2),b=w[0],S=w[1],z=g(o.useState(i.numToleratedItems),2),O=z[0],j=z[1],T=g(o.useState(i.loading||!1),2),I=T[0],E=T[1],P=g(o.useState([]),2),x=P[0],R=P[1],L=o.useRef(null),D=o.useRef(null),H=o.useRef(null),U=o.useRef(null),M=o.useRef(a?{top:0,left:0}:0),N=o.useRef(null),W=o.useRef(null),A=o.useRef(null),C=o.useRef(null),k=t.usePrevious(i.items),V=t.usePrevious(i.loading),_=g(t.useResizeListener({listener:function(e){return oe()}}),1)[0],J=g(t.useEventListener({target:"window",type:"orientationchange",listener:function(e){return oe()}}),1)[0],X=function(){return L},q=function(e){M.current=a?{top:0,left:0}:0,L.current&&L.current.scrollTo(e)},F=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"auto",r=$(),n=r.numToleratedItems,o=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0;return e<=t?0:e},l=function(e,t){return e*t},s=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return q({left:e,top:r,behavior:t})};if(a){var u={rows:o(e[0],n[0]),cols:o(e[1],n[1])};u.rows===f.rows&&u.cols===f.cols||s(l(u.cols,i.itemSize[1]),l(u.rows,i.itemSize[0]))}else{var m=o(e,n);m!==f&&(c?s(l(m,i.itemSize),0):s(0,l(m,i.itemSize)))}},B=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"auto";if(t){var n=Y(),o=n.first,l=n.viewport,s=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return q({left:e,top:t,behavior:r})},u="to-start"===t,f="to-end"===t;if(u){if(a)l.first.rows-o.rows>e[0]?s(l.first.cols*i.itemSize[1],(l.first.rows-1)*i.itemSize[0]):l.first.cols-o.cols>e[1]&&s((l.first.cols-1)*i.itemSize[1],l.first.rows*i.itemSize[0]);else if(l.first-o>e){var m=(l.first-1)*i.itemSize;c?s(m,0):s(0,m)}}else if(f)if(a)l.last.rows-o.rows<=e[0]+1?s(l.first.cols*i.itemSize[1],(l.first.rows+1)*i.itemSize[0]):l.last.cols-o.cols<=e[1]+1&&s((l.first.cols+1)*i.itemSize[1],l.first.rows*i.itemSize[0]);else if(l.last-o<=e+1){var d=(l.first+1)*i.itemSize;c?s(d,0):s(0,d)}}else F(e,r)},Y=function(){var e=function(e,t){return Math.floor(e/(t||e))},t=f,r=0;if(L.current){var n=L.current,o=n.scrollTop,l=n.scrollLeft;if(a)r={rows:(t={rows:e(o,i.itemSize[0]),cols:e(l,i.itemSize[1])}).rows+b.rows,cols:t.cols+b.cols};else r=(t=e(c?l:o,i.itemSize))+b}return{first:f,last:p,viewport:{first:t,last:r}}},$=function(){var e=Q(),t=L.current?L.current.offsetWidth-e.left:0,r=L.current?L.current.offsetHeight-e.top:0,n=function(e,t){return Math.ceil(e/(t||e))},o=function(e){return Math.ceil(e/2)},l=a?{rows:n(r,i.itemSize[0]),cols:n(t,i.itemSize[1])}:n(c?t:r,i.itemSize);return{numItemsInViewport:l,numToleratedItems:O||(a?[o(l.rows),o(l.cols)]:o(l))}},G=function(e){i.autoSize&&!e&&Promise.resolve().then((function(){if(D.current){D.current.style.minHeight=D.current.style.minWidth="auto";var e=D.current,t=e.offsetWidth,r=e.offsetHeight;(a||c)&&(L.current.style.width=(t<A.current?t:A.current)+"px"),(a||s)&&(L.current.style.height=(r<C.current?r:C.current)+"px"),D.current.style.minHeight=D.current.style.minWidth=""}}))},K=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0;return i.items?Math.min(t?(i.columns||i.items[0]).length:i.items.length,e):0},Q=function(){if(D.current){var e=getComputedStyle(D.current),t=parseInt(e.paddingLeft,10)+Math.max(parseInt(e.left,10),0),r=parseInt(e.paddingRight,10)+Math.max(parseInt(e.right,10),0),n=parseInt(e.paddingTop,10)+Math.max(parseInt(e.top,10),0),o=parseInt(e.paddingBottom,10)+Math.max(parseInt(e.bottom,10),0);return{left:t,right:r,top:n,bottom:o,x:t+r,y:n+o}}return{left:0,right:0,top:0,bottom:0,x:0,y:0}},Z=function(){if(L.current){var e=L.current.parentElement,t=i.scrollWidth||"".concat(L.current.offsetWidth||e.offsetWidth,"px"),r=i.scrollHeight||"".concat(L.current.offsetHeight||e.offsetHeight,"px"),n=function(e,t){return L.current.style[e]=t};a||c?(n("height",r),n("width",t)):n("height",r)}},ee=function(){var e=i.items;if(H.current&&e){var t=Q(),r=function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;return H.current.style[e]=(t||[]).length*r+n+"px"};a?(r("height",e,i.itemSize[0],t.y),r("width",i.columns||e[1],i.itemSize[1],t.x)):c?r("width",i.columns||e,i.itemSize,t.x):r("height",e,i.itemSize,t.y)}},te=function(e){if(D.current){var t=e?e.first:f,r=function(e,t){return e*t},n=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;U.current&&(U.current.style.top="-".concat(t,"px")),D.current.style.transform="translate3d(".concat(e,"px, ").concat(t,"px, 0)")};if(a)n(r(t.cols,i.itemSize[1]),r(t.rows,i.itemSize[0]));else{var o=r(t,i.itemSize);c?n(o,0):n(0,o)}}},re=function(e){var t=e.target,r=Q(),n=function(e,t){return e?e>t?e-t:e:0},o=function(e,t){return Math.floor(e/(t||e))},l=function(e,t,r,n,o,l){return e<=o?o:l?r-n-o:t+o-1},s=function(e,t,r,n,o,l,i){return e<=l?0:Math.max(0,i?e<t?r:e-l:e>t?r:e-2*l)},u=function(e,t,r,n,o,l){var i=t+n+2*o;return e>=o&&(i+=o+1),K(i,l)},m=n(t.scrollTop,r.top),d=n(t.scrollLeft,r.left),g=a?{rows:0,cols:0}:0,h=p,v=!1,y=M.current;if(a){var w=M.current.top<=m,S=M.current.left<=d,z={rows:o(m,i.itemSize[0]),cols:o(d,i.itemSize[1])},j={rows:l(z.rows,f.rows,p.rows,b.rows,O[0],w),cols:l(z.cols,f.cols,p.cols,b.cols,O[1],S)};g={rows:s(z.rows,j.rows,f.rows,0,0,O[0],w),cols:s(z.cols,j.cols,f.cols,0,0,O[1],S)},h={rows:u(z.rows,g.rows,0,b.rows,O[0]),cols:u(z.cols,g.cols,0,b.cols,O[1],!0)},v=g.rows!==f.rows||h.rows!==p.rows||g.cols!==f.cols||h.cols!==p.cols,y={top:m,left:d}}else{var T=c?d:m,I=M.current<=T,E=o(T,i.itemSize);h=u(E,g=s(E,l(E,f,p,b,O,I),f,0,0,O,I),0,b,O),v=g!==f||h!==p,y=T}return{first:g,last:h,isRangeChanged:v,scrollPos:y}},ne=function(e){var t=re(e),r=t.first,n=t.last,o=t.scrollPos;if(t.isRangeChanged){var l={first:r,last:n};te(l),m(r),v(n),M.current=o,i.onScrollIndexChange&&i.onScrollIndexChange(l),i.lazy&&i.onLazyLoad&&i.onLazyLoad(l)}},oe=function(){W.current&&clearTimeout(W.current),W.current=setTimeout((function(){if(L.current){var e=[r.DomHandler.getWidth(L.current),r.DomHandler.getHeight(L.current)],t=e[0],n=e[1],o=t!==A.current,l=n!==C.current;(a?o||l:c?o:!!s&&l)&&(j(i.numToleratedItems),A.current=t,C.current=n)}}),i.resizeDelay)},le=function(e){var t=(i.items||[]).length,r=a?f.rows+e:f+e;return{index:r,count:t,first:0===r,last:r===t-1,even:r%2==0,odd:r%2!=0,props:i}},ie=function(e,t){var r=x.length;return y({index:e,count:r,first:0===e,last:e===r-1,even:e%2==0,odd:e%2!=0,props:i},t)},se=function(){var e=i.items;return e&&!I?a?e.slice(f.rows,p.rows).map((function(e){return i.columns?e:e.slice(f.cols,p.cols)})):c&&i.columns?e:e.slice(f,p):[]},ce=function(){var e,t,r,n,o;i.disabled||(Z(),e=$(),t=e.numItemsInViewport,r=e.numToleratedItems,n=function(e,t,r,n){return K(e+t+(e<r?2:3)*r,n)},o=a?{rows:n(f.rows,t.rows,r[0]),cols:n(f.cols,t.cols,r[1],!0)}:n(f,t,r),S(t),j(r),v(o),i.showLoader&&R(a?Array.from({length:t.rows}).map((function(){return Array.from({length:t.cols})})):Array.from({length:t})),i.lazy&&i.onLazyLoad&&i.onLazyLoad({first:f,last:o}),ee())};t.useMountEffect((function(){i.disabled||(ce(),_(),J(),A.current=r.DomHandler.getWidth(L.current),C.current=r.DomHandler.getHeight(L.current))})),t.useUpdateEffect((function(){ce()}),[i.itemSize,i.scrollHeight]),t.useUpdateEffect((function(){i.numToleratedItems!==O&&j(i.numToleratedItems)}),[i.numToleratedItems]),t.useUpdateEffect((function(){i.numToleratedItems===O&&ce()}),[O]),t.useUpdateEffect((function(){k&&k.length===(i.items||[]).length||ce();var e=I;i.lazy&&V!==i.loading&&i.loading!==I&&(E(i.loading),e=i.loading),G(e)})),t.useUpdateEffect((function(){M.current=a?{top:0,left:0}:0}),[i.orientation]),o.useImperativeHandle(n,(function(){return{props:i,getElementRef:X,scrollTo:q,scrollToIndex:F,scrollInView:B,getRenderedRange:Y}}));var ae=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=ie(e,t),l=r.ObjectUtils.getJSXElement(i.loadingTemplate,n);return o.createElement(o.Fragment,{key:e},l)},ue=function(e,t){var n=le(t),l=r.ObjectUtils.getJSXElement(i.itemTemplate,e,n);return o.createElement(o.Fragment,{key:n.index},l)};if(i.disabled){var fe=r.ObjectUtils.getJSXElement(i.contentTemplate,{items:i.items,rows:i.items,columns:i.columns});return o.createElement(o.Fragment,null,i.children,fe)}var me=h.getOtherProps(i),de=r.classNames("p-virtualscroller",{"p-both-scroll":a,"p-virtualscroller-both":a,"p-virtualscroller-horizontal":c,"p-horizontal-scroll":c},i.className),pe=function(){if(!i.loaderDisabled&&i.showLoader&&I){var e=r.classNames("p-virtualscroller-loader",{"p-component-overlay":!i.loadingTemplate}),t=o.createElement("i",{className:"p-virtualscroller-loading-icon pi pi-spinner pi-spin"});return i.loadingTemplate?t=x.map((function(e,t){return ae(t,a&&{numCols:b.cols})})):i.loaderIconTemplate&&(t=r.ObjectUtils.getJSXElement(i.loaderIconTemplate,{className:"p-virtualscroller-loading-icon",element:t,props:i})),o.createElement("div",{className:e},t)}return null}(),ge=function(){var e=se().map(ue),t=r.classNames("p-virtualscroller-content",{"p-virtualscroller-loading":I}),n=o.createElement("div",{ref:D,className:t},e);if(i.contentTemplate){var l={className:t,contentRef:function(e){return D.current=r.ObjectUtils.getRefElement(e)},spacerRef:function(e){return H.current=r.ObjectUtils.getRefElement(e)},stickyRef:function(e){return U.current=r.ObjectUtils.getRefElement(e)},items:se(),getItemOptions:function(e){return le(e)},children:e,element:n,props:i,loading:I,getLoaderOptions:function(e,t){return ie(e,t)},loadingTemplate:i.loadingTemplate,itemSize:i.itemSize,rows:I?i.loaderDisabled?x:[]:se(),columns:i.columns&&a||c?I&&i.loaderDisabled?a?x[0]:x:i.columns.slice(a?f.cols:f,a?p.cols:p):i.columns,vertical:s,horizontal:c,both:a};return r.ObjectUtils.getJSXElement(i.contentTemplate,l)}return n}(),he=i.showSpacer?o.createElement("div",{ref:H,className:"p-virtualscroller-spacer"}):null;return o.createElement("div",l({ref:L,className:de,tabIndex:0,style:i.style},me,{onScroll:function(e){i.onScroll&&i.onScroll(e),i.delay?(N.current&&clearTimeout(N.current),!I&&i.showLoader&&re(e).isRangeChanged&&E(!0),N.current=setTimeout((function(){ne(e),!I||!i.showLoader||i.lazy&&void 0!==i.loading||E(!1)}),i.delay)):ne(e)}}),ge,he,pe)})));w.displayName="VirtualScroller",exports.VirtualScroller=w;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("primereact/hooks"),r=require("primereact/utils");function n(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var o=n(e);function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},l.apply(this,arguments)}function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}function s(e,t){if("object"!==i(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==i(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function c(e){var t=s(e,"string");return"symbol"===i(t)?t:String(t)}function u(e,t,r){return(t=c(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e){if(Array.isArray(e))return e}function f(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,l,i,s=[],c=!0,u=!1;try{if(l=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=l.call(r)).done)&&(s.push(n.value),s.length!==t);c=!0);}catch(e){u=!0,o=e}finally{try{if(!c&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(u)throw o}}return s}}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function p(e,t){if(e){if("string"==typeof e)return m(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?m(e,t):void 0}}function d(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function g(e,t){return a(e)||f(e,t)||p(e,t)||d()}var h={defaultProps:{__TYPE:"VirtualScroller",id:null,style:null,className:null,tabIndex:0,items:null,itemSize:0,scrollHeight:null,scrollWidth:null,orientation:"vertical",step:0,numToleratedItems:null,delay:0,resizeDelay:10,appendOnly:!1,inline:!1,lazy:!1,disabled:!1,loaderDisabled:!1,columns:null,loading:void 0,autoSize:!1,showSpacer:!0,showLoader:!1,loadingTemplate:null,loaderIconTemplate:null,itemTemplate:null,contentTemplate:null,onScroll:null,onScrollIndexChange:null,onLazyLoad:null,children:void 0},getProps:function(e){return r.ObjectUtils.getMergedProps(e,h.defaultProps)},getOtherProps:function(e){return r.ObjectUtils.getDiffProps(e,h.defaultProps)}};function v(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function y(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?v(Object(r),!0).forEach((function(t){u(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):v(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var w=o.memo(o.forwardRef((function(e,n){var i=h.getProps(e),s=t.usePrevious(e)||{},c="vertical"===i.orientation,a="horizontal"===i.orientation,f="both"===i.orientation,m=g(o.useState(f?{rows:0,cols:0}:0),2),p=m[0],d=m[1],v=g(o.useState(f?{rows:0,cols:0}:0),2),w=v[0],b=v[1],S=g(o.useState(0),2),O=S[0],z=S[1],j=g(o.useState(f?{rows:0,cols:0}:0),2),T=j[0],E=j[1],x=g(o.useState(i.numToleratedItems),2),I=x[0],P=x[1],R=g(o.useState(i.loading||!1),2),H=R[0],D=R[1],L=g(o.useState([]),2),M=L[0],U=L[1],N=o.useRef(null),W=o.useRef(null),F=o.useRef(null),A=o.useRef(null),C=o.useRef(f?{top:0,left:0}:0),V=o.useRef(null),k=o.useRef(null),_=o.useRef({}),J=o.useRef({}),X=o.useRef(null),q=o.useRef(null),B=o.useRef(null),Y=o.useRef(null),$=o.useRef(!1),G=o.useRef(null),K=g(t.useResizeListener({listener:function(e){return ge()},when:!i.disabled}),1)[0],Q=g(t.useEventListener({target:"window",type:"orientationchange",listener:function(e){return ge()},when:!i.disabled}),1)[0],Z=function(){return N},ee=function(e){return Math.floor((e+4*I)/(i.step||1))},te=function(e){return!i.step||O!==ee(e)},re=function(e){C.current=f?{top:0,left:0}:0,N.current&&N.current.scrollTo(e)},ne=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"auto",r=ie(),n=r.numToleratedItems,o=ue(),l=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0;return e<=t?0:e},s=function(e,t,r){return e*t+r},c=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return re({left:e,top:r,behavior:t})},u=f?{rows:0,cols:0}:0,m=!1;f?(c(s((u={rows:l(e[0],n[0]),cols:l(e[1],n[1])}).cols,i.itemSize[1],o.left),s(u.rows,i.itemSize[0],o.top)),m=p.rows!==u.rows||p.cols!==u.cols):(u=l(e,n),a?c(s(u,i.itemSize,o.left),0):c(0,s(u,i.itemSize,o.top)),m=p!==u),$.current=m,d(u)},oe=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"auto";if(t){var n=le(),o=n.first,l=n.viewport,s=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return re({left:e,top:t,behavior:r})},c="to-start"===t,u="to-end"===t;if(c){if(f)l.first.rows-o.rows>e[0]?s(l.first.cols*i.itemSize[1],(l.first.rows-1)*i.itemSize[0]):l.first.cols-o.cols>e[1]&&s((l.first.cols-1)*i.itemSize[1],l.first.rows*i.itemSize[0]);else if(l.first-o>e){var m=(l.first-1)*i.itemSize;a?s(m,0):s(0,m)}}else if(u)if(f)l.last.rows-o.rows<=e[0]+1?s(l.first.cols*i.itemSize[1],(l.first.rows+1)*i.itemSize[0]):l.last.cols-o.cols<=e[1]+1&&s((l.first.cols+1)*i.itemSize[1],l.first.rows*i.itemSize[0]);else if(l.last-o<=e+1){var p=(l.first+1)*i.itemSize;a?s(p,0):s(0,p)}}else ne(e,r)},le=function(){var e=function(e,t){return Math.floor(e/(t||e))},t=p,r=0;if(N.current){var n=N.current,o=n.scrollTop,l=n.scrollLeft;if(f)r={rows:(t={rows:e(o,i.itemSize[0]),cols:e(l,i.itemSize[1])}).rows+T.rows,cols:t.cols+T.cols};else r=(t=e(a?l:o,i.itemSize))+T}return{first:p,last:w,viewport:{first:t,last:r}}},ie=function(){var e=ue(),t=N.current?N.current.offsetWidth-e.left:0,r=N.current?N.current.offsetHeight-e.top:0,n=function(e,t){return Math.ceil(e/(t||e))},o=function(e){return Math.ceil(e/2)},l=f?{rows:n(r,i.itemSize[0]),cols:n(t,i.itemSize[1])}:n(a?t:r,i.itemSize);return{numItemsInViewport:l,numToleratedItems:I||(f?[o(l.rows),o(l.cols)]:o(l))}},se=function(e){i.autoSize&&!e&&Promise.resolve().then((function(){if(W.current){W.current.style.minHeight=W.current.style.minWidth="auto",W.current.style.position="relative",N.current.style.contain="none";var e=[r.DomHandler.getWidth(N.current),r.DomHandler.getHeight(N.current)],t=e[0],n=e[1];(f||a)&&(N.current.style.width=(t<X.current?t:i.scrollWidth||X.current)+"px"),(f||c)&&(N.current.style.height=(n<q.current?n:i.scrollHeight||q.current)+"px"),W.current.style.minHeight=W.current.style.minWidth="",W.current.style.position="",N.current.style.contain=""}}))},ce=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0;return i.items?Math.min(t?(i.columns||i.items[0]).length:i.items.length,e):0},ue=function(){if(W.current){var e=getComputedStyle(W.current),t=parseFloat(e.paddingLeft)+Math.max(parseFloat(e.left)||0,0),r=parseFloat(e.paddingRight)+Math.max(parseFloat(e.right)||0,0),n=parseFloat(e.paddingTop)+Math.max(parseFloat(e.top)||0,0),o=parseFloat(e.paddingBottom)+Math.max(parseFloat(e.bottom)||0,0);return{left:t,right:r,top:n,bottom:o,x:t+r,y:n+o}}return{left:0,right:0,top:0,bottom:0,x:0,y:0}},ae=function(){if(N.current){var e=N.current.parentElement,t=i.scrollWidth||"".concat(N.current.offsetWidth||e.offsetWidth,"px"),r=i.scrollHeight||"".concat(N.current.offsetHeight||e.offsetHeight,"px"),n=function(e,t){return N.current.style[e]=t};f||a?(n("height",r),n("width",t)):n("height",r)}},fe=function(){var e=i.items;if(e){var t=ue(),r=function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;return J.current=y(y({},J.current),u({},"".concat(e),(t||[]).length*r+n+"px"))};f?(r("height",e,i.itemSize[0],t.y),r("width",i.columns||e[1],i.itemSize[1],t.x)):a?r("width",i.columns||e,i.itemSize,t.x):r("height",e,i.itemSize,t.y)}},me=function(e){if(W.current&&!i.appendOnly){var t=e?e.first:p,r=function(e,t){return e*t},n=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;A.current&&(A.current.style.top="-".concat(t,"px")),_.current=y(y({},_.current),{transform:"translate3d(".concat(e,"px, ").concat(t,"px, 0)")})};if(f)n(r(t.cols,i.itemSize[1]),r(t.rows,i.itemSize[0]));else{var o=r(t,i.itemSize);a?n(o,0):n(0,o)}}},pe=function(e){var t=e.target,r=ue(),n=function(e,t){return e?e>t?e-t:e:0},o=function(e,t){return Math.floor(e/(t||e))},l=function(e,t,r,n,o,l){return e<=o?o:l?r-n-o:t+o-1},s=function(e,t,r,n,o,l,i){return e<=l?0:Math.max(0,i?e<t?r:e-l:e>t?r:e-2*l)},c=function(e,t,r,n,o,l){var i=t+n+2*o;return e>=o&&(i+=o+1),ce(i,l)},u=n(t.scrollTop,r.top),m=n(t.scrollLeft,r.left),d=f?{rows:0,cols:0}:0,g=w,h=!1,v=C.current;if(f){var y=C.current.top<=u,b=C.current.left<=m;if(!i.appendOnly||i.appendOnly&&(y||b)){var S={rows:o(u,i.itemSize[0]),cols:o(m,i.itemSize[1])},O={rows:l(S.rows,p.rows,w.rows,T.rows,I[0],y),cols:l(S.cols,p.cols,w.cols,T.cols,I[1],b)};d={rows:s(S.rows,O.rows,p.rows,0,0,I[0],y),cols:s(S.cols,O.cols,p.cols,0,0,I[1],b)},g={rows:c(S.rows,d.rows,0,T.rows,I[0]),cols:c(S.cols,d.cols,0,T.cols,I[1],!0)},h=d.rows!==p.rows||g.rows!==w.rows||d.cols!==p.cols||g.cols!==w.cols||$.current,v={top:u,left:m}}}else{var z=a?m:u,j=C.current<=z;if(!i.appendOnly||i.appendOnly&&j){var E=o(z,i.itemSize);g=c(E,d=s(E,l(E,p,w,T,I,j),p,0,0,I,j),0,T,I),h=d!==p||g!==w||$.current,v=z}}return{first:d,last:g,isRangeChanged:h,scrollPos:v}},de=function(e){var t=pe(e),r=t.first,n=t.last,o=t.scrollPos;if(t.isRangeChanged){var l={first:r,last:n};if(me(l),d(r),b(n),C.current=o,i.onScrollIndexChange&&i.onScrollIndexChange(l),i.lazy&&te(r)){var s={first:i.step?Math.min(ee(r)*i.step,i.items.length-i.step):r,last:Math.min(i.step?(ee(r)+1)*i.step:n,i.items.length)};(!G.current||G.current.first!==s.first||G.current.last!==s.last)&&i.onLazyLoad&&i.onLazyLoad(s),G.current=s}}},ge=function(){k.current&&clearTimeout(k.current),k.current=setTimeout((function(){if(N.current){var e=[r.DomHandler.getWidth(N.current),r.DomHandler.getHeight(N.current)],t=e[0],n=e[1],o=t!==X.current,l=n!==q.current;(f?o||l:a?o:!!c&&l)&&(P(i.numToleratedItems),X.current=t,q.current=n,B.current=r.DomHandler.getWidth(W.current),Y.current=r.DomHandler.getHeight(W.current))}}),i.resizeDelay)},he=function(e){var t=(i.items||[]).length,r=f?p.rows+e:p+e;return{index:r,count:t,first:0===r,last:r===t-1,even:r%2==0,odd:r%2!=0,props:i}},ve=function(e,t){var r=M.length;return y({index:e,count:r,first:0===e,last:e===r-1,even:e%2==0,odd:e%2!=0,props:i},t)},ye=function(){var e=i.items;return e&&!H?f?e.slice(i.appendOnly?0:p.rows,w.rows).map((function(e){return i.columns?e:e.slice(i.appendOnly?0:p.cols,w.cols)})):a&&i.columns?e:e.slice(i.appendOnly?0:p,w):[]},we=function(){var e,t,r,n,o;i.disabled||(ae(),e=ie(),t=e.numItemsInViewport,r=e.numToleratedItems,n=function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return ce(e+t+(e<r?2:3)*r,n)},o=f?{rows:n(p.rows,t.rows,r[0]),cols:n(p.cols,t.cols,r[1],!0)}:n(p,t,r),E(t),P(r),b(o),i.showLoader&&U(f?Array.from({length:t.rows}).map((function(){return Array.from({length:t.cols})})):Array.from({length:t})),i.lazy&&Promise.resolve().then((function(){G.current={first:i.step?f?{rows:0,cols:p.cols}:0:p,last:Math.min(i.step?i.step:o,i.items.length)},i.onLazyLoad&&i.onLazyLoad(G.current)})),fe())};t.useMountEffect((function(){N.current&&r.DomHandler.isVisible(N.current)&&(W.current=W.current||W.current||r.DomHandler.findSingle(N.current,".p-virtualscroller-content"),we(),K(),Q(),X.current=r.DomHandler.getWidth(N.current),q.current=r.DomHandler.getHeight(N.current),B.current=r.DomHandler.getWidth(W.current),Y.current=r.DomHandler.getHeight(W.current))})),t.useUpdateEffect((function(){we()}),[i.itemSize,i.scrollHeight,i.scrollWidth]),t.useUpdateEffect((function(){i.numToleratedItems!==I&&P(i.numToleratedItems)}),[i.numToleratedItems]),t.useUpdateEffect((function(){i.numToleratedItems===I&&we()}),[I]),t.useUpdateEffect((function(){s.items&&s.items.length===(i.items||[]).length||we();var e=H;i.lazy&&s.loading!==i.loading&&i.loading!==H&&(D(i.loading),e=i.loading),se(e)})),t.useUpdateEffect((function(){C.current=f?{top:0,left:0}:0}),[i.orientation]),o.useImperativeHandle(n,(function(){return{props:i,getElementRef:Z,scrollTo:re,scrollToIndex:ne,scrollInView:oe,getRenderedRange:le}}));var be=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=ve(e,t),l=r.ObjectUtils.getJSXElement(i.loadingTemplate,n);return o.createElement(o.Fragment,{key:e},l)},Se=function(e,t){var n=he(t),l=r.ObjectUtils.getJSXElement(i.itemTemplate,e,n);return o.createElement(o.Fragment,{key:n.index},l)};if(i.disabled){var Oe=r.ObjectUtils.getJSXElement(i.contentTemplate,{items:i.items,rows:i.items,columns:i.columns});return o.createElement(o.Fragment,null,i.children,Oe)}var ze=h.getOtherProps(i),je=r.classNames("p-virtualscroller",{"p-virtualscroller-inline":i.inline,"p-virtualscroller-both p-both-scroll":f,"p-virtualscroller-horizontal p-horizontal-scroll":a},i.className),Te=function(){if(!i.loaderDisabled&&i.showLoader&&H){var e=r.classNames("p-virtualscroller-loader",{"p-component-overlay":!i.loadingTemplate}),t=o.createElement("i",{className:"p-virtualscroller-loading-icon pi pi-spinner pi-spin"});return i.loadingTemplate?t=M.map((function(e,t){return be(t,f&&{numCols:T.cols})})):i.loaderIconTemplate&&(t=r.ObjectUtils.getJSXElement(i.loaderIconTemplate,{className:"p-virtualscroller-loading-icon",element:t,props:i})),o.createElement("div",{className:e},t)}return null}(),Ee=function(){var e=ye().map(Se),t=r.classNames("p-virtualscroller-content",{"p-virtualscroller-loading":H}),n=o.createElement("div",{ref:W,style:_.current,className:t},e);if(i.contentTemplate){var l={style:_.current,className:t,spacerStyle:J.current,contentRef:function(e){return W.current=r.ObjectUtils.getRefElement(e)},spacerRef:function(e){return F.current=r.ObjectUtils.getRefElement(e)},stickyRef:function(e){return A.current=r.ObjectUtils.getRefElement(e)},items:ye(),getItemOptions:function(e){return he(e)},children:e,element:n,props:i,loading:H,getLoaderOptions:function(e,t){return ve(e,t)},loadingTemplate:i.loadingTemplate,itemSize:i.itemSize,rows:H?i.loaderDisabled?M:[]:ye(),columns:i.columns&&f||a?H&&i.loaderDisabled?f?M[0]:M:i.columns.slice(f?p.cols:p,f?w.cols:w):i.columns,vertical:c,horizontal:a,both:f};return r.ObjectUtils.getJSXElement(i.contentTemplate,l)}return n}(),xe=i.showSpacer?o.createElement("div",{ref:F,style:J.current,className:"p-virtualscroller-spacer"}):null;return o.createElement("div",l({ref:N,className:je,tabIndex:i.tabIndex,style:i.style},ze,{onScroll:function(e){i.onScroll&&i.onScroll(e),i.delay?(V.current&&clearTimeout(V.current),te(p)&&(!H&&i.showLoader&&(pe(e).isRangeChanged||i.step&&te(p))&&D(!0),V.current=setTimeout((function(){de(e),!H||!i.showLoader||i.lazy&&void 0!==i.loading||(D(!1),z(ee(p)))}),i.delay))):de(e)}}),Ee,xe,Te)})));w.displayName="VirtualScroller",exports.VirtualScroller=w;
@@ -263,6 +263,11 @@ export interface VirtualScrollerProps {
263
263
  * Style class of the component.
264
264
  */
265
265
  className?: string | undefined;
266
+ /**
267
+ * Index of the element in tabbing order.
268
+ * @defaultValue 0
269
+ */
270
+ tabIndex?: number | undefined;
266
271
  /**
267
272
  * An array of objects to display.
268
273
  */
@@ -284,6 +289,11 @@ export interface VirtualScrollerProps {
284
289
  * @defaultValue 'vertical'
285
290
  */
286
291
  orientation?: 'vertical' | 'horizontal' | 'both' | undefined;
292
+ /**
293
+ * Used to specify how many items to load in each load method in lazy mode.
294
+ * @defaultValue 0
295
+ */
296
+ step?: number | undefined;
287
297
  /**
288
298
  * Determines how many additional elements to add to the DOM outside of the view. According to the scrolls made up and down, extra items are added in a certain algorithm in the form of multiples of this number. Default value is half the number of items shown in the view.
289
299
  */
@@ -298,6 +308,16 @@ export interface VirtualScrollerProps {
298
308
  * @defaultValue 10
299
309
  */
300
310
  resizeDelay?: number | undefined;
311
+ /**
312
+ * Used to append each loaded item to top without removing any items from the DOM. Using very large data may cause the browser to crash.
313
+ * @defaultValue false
314
+ */
315
+ appendOnly?: boolean | undefined;
316
+ /**
317
+ * When enabled, positions the content as inline.
318
+ * @defaultValue false
319
+ */
320
+ inline?: boolean | undefined;
301
321
  /**
302
322
  * Defines if data is loaded and interacted with in lazy manner.
303
323
  * @defaultValue false