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
@@ -263,7 +263,6 @@ var DataTableBase = {
263
263
  defaultProps: {
264
264
  __TYPE: 'DataTable',
265
265
  alwaysShowPaginator: true,
266
- autoLayout: false,
267
266
  breakpoint: '960px',
268
267
  cellClassName: null,
269
268
  cellSelection: false,
@@ -355,7 +354,7 @@ var DataTableBase = {
355
354
  reorderableColumns: false,
356
355
  reorderableRows: false,
357
356
  resizableColumns: false,
358
- responsiveLayout: 'stack',
357
+ responsiveLayout: 'scroll',
359
358
  rowClassName: null,
360
359
  rowEditValidator: null,
361
360
  rowExpansionTemplate: null,
@@ -365,7 +364,6 @@ var DataTableBase = {
365
364
  rowHover: false,
366
365
  rows: null,
367
366
  rowsPerPageOptions: null,
368
- scrollDirection: 'vertical',
369
367
  scrollHeight: null,
370
368
  scrollable: false,
371
369
  selectAll: false,
@@ -1219,7 +1217,7 @@ var BodyRow = /*#__PURE__*/React__namespace.memo(function (props) {
1219
1217
  return props.compareSelectionBy === 'equals' ? data1 === data2 : utils.ObjectUtils.equals(data1, data2, props.dataKey);
1220
1218
  };
1221
1219
  var getTabIndex = function getTabIndex() {
1222
- return isFocusable() && !props.allowCellSelection ? props.index === 0 ? props.tabIndex : -1 : null;
1220
+ return isFocusable() && !props.allowCellSelection ? props.rowIndex === 0 ? props.tabIndex : -1 : null;
1223
1221
  };
1224
1222
  var findIndex = function findIndex(collection, rowData) {
1225
1223
  return (collection || []).findIndex(function (data) {
@@ -1276,35 +1274,35 @@ var BodyRow = /*#__PURE__*/React__namespace.memo(function (props) {
1276
1274
  props.onRowClick({
1277
1275
  originalEvent: event,
1278
1276
  data: props.rowData,
1279
- index: props.index
1277
+ index: props.rowIndex
1280
1278
  });
1281
1279
  };
1282
1280
  var onDoubleClick = function onDoubleClick(event) {
1283
1281
  props.onRowDoubleClick({
1284
1282
  originalEvent: event,
1285
1283
  data: props.rowData,
1286
- index: props.index
1284
+ index: props.rowIndex
1287
1285
  });
1288
1286
  };
1289
1287
  var onRightClick = function onRightClick(event) {
1290
1288
  props.onRowRightClick({
1291
1289
  originalEvent: event,
1292
1290
  data: props.rowData,
1293
- index: props.index
1291
+ index: props.rowIndex
1294
1292
  });
1295
1293
  };
1296
1294
  var onMouseEnter = function onMouseEnter(event) {
1297
1295
  props.onRowMouseEnter({
1298
1296
  originalEvent: event,
1299
1297
  data: props.rowData,
1300
- index: props.index
1298
+ index: props.rowIndex
1301
1299
  });
1302
1300
  };
1303
1301
  var onMouseLeave = function onMouseLeave(event) {
1304
1302
  props.onRowMouseLeave({
1305
1303
  originalEvent: event,
1306
1304
  data: props.rowData,
1307
- index: props.index
1305
+ index: props.rowIndex
1308
1306
  });
1309
1307
  };
1310
1308
  var onTouchEnd = function onTouchEnd(event) {
@@ -1358,49 +1356,49 @@ var BodyRow = /*#__PURE__*/React__namespace.memo(function (props) {
1358
1356
  props.onRowMouseDown({
1359
1357
  originalEvent: event,
1360
1358
  data: props.rowData,
1361
- index: props.index
1359
+ index: props.rowIndex
1362
1360
  });
1363
1361
  };
1364
1362
  var onMouseUp = function onMouseUp(event) {
1365
1363
  props.onRowMouseUp({
1366
1364
  originalEvent: event,
1367
1365
  data: props.rowData,
1368
- index: props.index
1366
+ index: props.rowIndex
1369
1367
  });
1370
1368
  };
1371
1369
  var onDragStart = function onDragStart(event) {
1372
1370
  props.onRowDragStart({
1373
1371
  originalEvent: event,
1374
1372
  data: props.rowData,
1375
- index: props.index
1373
+ index: props.rowIndex
1376
1374
  });
1377
1375
  };
1378
1376
  var onDragOver = function onDragOver(event) {
1379
1377
  props.onRowDragOver({
1380
1378
  originalEvent: event,
1381
1379
  data: props.rowData,
1382
- index: props.index
1380
+ index: props.rowIndex
1383
1381
  });
1384
1382
  };
1385
1383
  var onDragLeave = function onDragLeave(event) {
1386
1384
  props.onRowDragLeave({
1387
1385
  originalEvent: event,
1388
1386
  data: props.rowData,
1389
- index: props.index
1387
+ index: props.rowIndex
1390
1388
  });
1391
1389
  };
1392
1390
  var onDragEnd = function onDragEnd(event) {
1393
1391
  props.onRowDragEnd({
1394
1392
  originalEvent: event,
1395
1393
  data: props.rowData,
1396
- index: props.index
1394
+ index: props.rowIndex
1397
1395
  });
1398
1396
  };
1399
1397
  var onDrop = function onDrop(event) {
1400
1398
  props.onRowDrop({
1401
1399
  originalEvent: event,
1402
1400
  data: props.rowData,
1403
- index: props.index
1401
+ index: props.rowIndex
1404
1402
  });
1405
1403
  };
1406
1404
  var onEditChange = function onEditChange(e, isEditing) {
@@ -1444,7 +1442,7 @@ var BodyRow = /*#__PURE__*/React__namespace.memo(function (props) {
1444
1442
  props.onRowEditInit({
1445
1443
  originalEvent: event,
1446
1444
  data: props.rowData,
1447
- index: props.index
1445
+ index: props.rowIndex
1448
1446
  });
1449
1447
  }
1450
1448
  onEditChange(e, true);
@@ -1460,7 +1458,7 @@ var BodyRow = /*#__PURE__*/React__namespace.memo(function (props) {
1460
1458
  props.onRowEditSave({
1461
1459
  originalEvent: event,
1462
1460
  data: props.rowData,
1463
- index: props.index,
1461
+ index: props.rowIndex,
1464
1462
  valid: valid
1465
1463
  });
1466
1464
  }
@@ -1478,7 +1476,7 @@ var BodyRow = /*#__PURE__*/React__namespace.memo(function (props) {
1478
1476
  props.onRowEditCancel({
1479
1477
  originalEvent: event,
1480
1478
  data: props.rowData,
1481
- index: props.index
1479
+ index: props.rowIndex
1482
1480
  });
1483
1481
  }
1484
1482
  onEditChange(e, false);
@@ -1496,7 +1494,7 @@ var BodyRow = /*#__PURE__*/React__namespace.memo(function (props) {
1496
1494
  tableSelector: props.tableSelector,
1497
1495
  column: col,
1498
1496
  rowData: props.rowData,
1499
- rowIndex: props.index,
1497
+ rowIndex: props.rowIndex,
1500
1498
  index: i,
1501
1499
  rowSpan: rowSpan,
1502
1500
  dataKey: props.dataKey,
@@ -1543,9 +1541,9 @@ var BodyRow = /*#__PURE__*/React__namespace.memo(function (props) {
1543
1541
  'p-highlight-contextmenu': props.contextMenuSelected,
1544
1542
  'p-selectable-row': props.allowRowSelection && props.isSelectable({
1545
1543
  data: props.rowData,
1546
- index: props.index
1544
+ index: props.rowIndex
1547
1545
  }),
1548
- 'p-row-odd': props.index % 2 !== 0
1546
+ 'p-row-odd': props.rowIndex % 2 !== 0
1549
1547
  });
1550
1548
  var style = {
1551
1549
  height: props.virtualScrollerOptions ? props.virtualScrollerOptions.itemSize : undefined
@@ -1620,7 +1618,6 @@ var TableBody = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespac
1620
1618
  var rowDragging = React__namespace.useRef(false);
1621
1619
  var draggedRowIndex = React__namespace.useRef(null);
1622
1620
  var droppedRowIndex = React__namespace.useRef(null);
1623
- var prevVirtualScrollerOptions = hooks.usePrevious(props.virtualScrollerOptions);
1624
1621
  var isSubheaderGrouping = props.rowGroupMode && props.rowGroupMode === 'subheader';
1625
1622
  var isRadioSelectionMode = props.selectionMode === 'radiobutton';
1626
1623
  var isCheckboxSelectionMode = props.selectionMode === 'checkbox';
@@ -1770,10 +1767,6 @@ var TableBody = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespac
1770
1767
  });
1771
1768
  }
1772
1769
  };
1773
- var updateVirtualScrollerPosition = function updateVirtualScrollerPosition() {
1774
- var tableHeaderHeight = utils.DomHandler.getOuterHeight(elementRef.current.previousElementSibling);
1775
- elementRef.current.style.top = (elementRef.current.style.top || 0) + tableHeaderHeight + 'px';
1776
- };
1777
1770
  var onSingleSelection = function onSingleSelection(_ref) {
1778
1771
  var originalEvent = _ref.originalEvent,
1779
1772
  data = _ref.data,
@@ -2327,16 +2320,6 @@ var TableBody = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespac
2327
2320
  updateFrozenRowGroupHeaderStickyPosition();
2328
2321
  }
2329
2322
  });
2330
- hooks.useMountEffect(function () {
2331
- if (!props.isVirtualScrollerDisabled && getVirtualScrollerOption('vertical')) {
2332
- updateVirtualScrollerPosition();
2333
- }
2334
- });
2335
- hooks.useUpdateEffect(function () {
2336
- if (!props.isVirtualScrollerDisabled && getVirtualScrollerOption('vertical') && getVirtualScrollerOption('itemSize', prevVirtualScrollerOptions) !== getVirtualScrollerOption('itemSize')) {
2337
- updateVirtualScrollerPosition();
2338
- }
2339
- }, [props.virtualScrollerOptions]);
2340
2323
  hooks.useUpdateEffect(function () {
2341
2324
  if (props.paginator && isMultipleSelection()) {
2342
2325
  anchorRowIndex.current = null;
@@ -2364,9 +2347,8 @@ var TableBody = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespac
2364
2347
  }
2365
2348
  return null;
2366
2349
  };
2367
- var createGroupHeader = function createGroupHeader(rowData, index, expanded, colSpan) {
2368
- if (isSubheaderGrouping && shouldRenderRowGroupHeader(props.value, rowData, index - props.first)) {
2369
- var _options;
2350
+ var createGroupHeader = function createGroupHeader(rowData, rowIndex, expanded, colSpan) {
2351
+ if (isSubheaderGrouping && shouldRenderRowGroupHeader(props.value, rowData, rowIndex - props.first)) {
2370
2352
  var style = rowGroupHeaderStyle();
2371
2353
  var toggler = props.expandableRowGroups && /*#__PURE__*/React__namespace.createElement(RowTogglerButton, {
2372
2354
  onClick: onRowToggle,
@@ -2375,9 +2357,11 @@ var TableBody = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespac
2375
2357
  expandedRowIcon: props.expandedRowIcon,
2376
2358
  collapsedRowIcon: props.collapsedRowIcon
2377
2359
  });
2378
- var options = (_options = {
2379
- index: index
2380
- }, _defineProperty(_options, "index", index), _defineProperty(_options, "props", props.tableProps), _defineProperty(_options, "customRendering", false), _options);
2360
+ var options = {
2361
+ index: rowIndex,
2362
+ props: props.tableProps,
2363
+ customRendering: false
2364
+ };
2381
2365
  var _content2 = utils.ObjectUtils.getJSXElement(props.rowGroupHeaderTemplate, rowData, options);
2382
2366
 
2383
2367
  // check if the user wants complete control of the rendering
@@ -2396,7 +2380,7 @@ var TableBody = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespac
2396
2380
  }
2397
2381
  return null;
2398
2382
  };
2399
- var createRow = function createRow(rowData, index, expanded) {
2383
+ var createRow = function createRow(rowData, rowIndex, index, expanded) {
2400
2384
  if (!props.expandableRowGroups || expanded) {
2401
2385
  var selected = isSelectionEnabled() ? isSelected(rowData) : false;
2402
2386
  var contextMenuSelected = isContextMenuSelected(rowData);
@@ -2409,6 +2393,7 @@ var TableBody = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespac
2409
2393
  value: props.value,
2410
2394
  columns: props.columns,
2411
2395
  rowData: rowData,
2396
+ rowIndex: rowIndex,
2412
2397
  index: index,
2413
2398
  selected: selected,
2414
2399
  contextMenuSelected: contextMenuSelected,
@@ -2467,11 +2452,11 @@ var TableBody = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespac
2467
2452
  });
2468
2453
  }
2469
2454
  };
2470
- var createExpansion = function createExpansion(rowData, index, expanded, colSpan) {
2455
+ var createExpansion = function createExpansion(rowData, rowIndex, expanded, colSpan) {
2471
2456
  if (expanded && !(isSubheaderGrouping && props.expandableRowGroups)) {
2472
- var id = "".concat(props.tableSelector, "_content_").concat(index, "_expanded");
2457
+ var id = "".concat(props.tableSelector, "_content_").concat(rowIndex, "_expanded");
2473
2458
  var options = {
2474
- index: index,
2459
+ index: rowIndex,
2475
2460
  customRendering: false
2476
2461
  };
2477
2462
  var _content3 = utils.ObjectUtils.getJSXElement(props.rowExpansionTemplate, rowData, options);
@@ -2491,10 +2476,10 @@ var TableBody = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespac
2491
2476
  }
2492
2477
  return null;
2493
2478
  };
2494
- var createGroupFooter = function createGroupFooter(rowData, index, expanded, colSpan) {
2495
- if (isSubheaderGrouping && shouldRenderRowGroupFooter(props.value, rowData, index - props.first, expanded)) {
2479
+ var createGroupFooter = function createGroupFooter(rowData, rowIndex, expanded, colSpan) {
2480
+ if (isSubheaderGrouping && shouldRenderRowGroupFooter(props.value, rowData, rowIndex - props.first, expanded)) {
2496
2481
  var _content4 = utils.ObjectUtils.getJSXElement(props.rowGroupFooterTemplate, rowData, {
2497
- index: index,
2482
+ index: rowIndex,
2498
2483
  colSpan: colSpan,
2499
2484
  props: props.tableProps
2500
2485
  });
@@ -2506,25 +2491,25 @@ var TableBody = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespac
2506
2491
  return null;
2507
2492
  };
2508
2493
  var createContent = function createContent() {
2509
- return props.value.map(function (rowData, i) {
2510
- var index = getVirtualScrollerOption('getItemOptions') ? getVirtualScrollerOption('getItemOptions')(i).index : props.first + i;
2511
- var key = getRowKey(rowData, index);
2494
+ return props.value && props.value.map(function (rowData, index) {
2495
+ var rowIndex = getVirtualScrollerOption('getItemOptions') ? getVirtualScrollerOption('getItemOptions')(index).index : props.first + index;
2496
+ var key = getRowKey(rowData, rowIndex);
2512
2497
  var expanded = isRowExpanded(rowData);
2513
2498
  var colSpan = getColumnsLength();
2514
- var groupHeader = createGroupHeader(rowData, index, expanded, colSpan);
2515
- var row = createRow(rowData, index, expanded);
2516
- var expansion = createExpansion(rowData, index, expanded, colSpan);
2517
- var groupFooter = createGroupFooter(rowData, index, expanded, colSpan);
2499
+ var groupHeader = createGroupHeader(rowData, rowIndex, expanded, colSpan);
2500
+ var row = createRow(rowData, rowIndex, index, expanded);
2501
+ var expansion = createExpansion(rowData, rowIndex, expanded, colSpan);
2502
+ var groupFooter = createGroupFooter(rowData, rowIndex, expanded, colSpan);
2518
2503
  return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, {
2519
2504
  key: key
2520
2505
  }, groupHeader, row, expansion, groupFooter);
2521
2506
  });
2522
2507
  };
2523
- var className = utils.classNames('p-datatable-tbody', props.className);
2524
2508
  var content = props.empty ? createEmptyContent() : createContent();
2525
2509
  return /*#__PURE__*/React__namespace.createElement("tbody", {
2526
2510
  ref: refCallback,
2527
- className: className
2511
+ style: props.style,
2512
+ className: props.className
2528
2513
  }, content);
2529
2514
  }));
2530
2515
  TableBody.displayName = 'TableBody';
@@ -4215,9 +4200,10 @@ var DataTable = /*#__PURE__*/React__namespace.forwardRef(function (inProps, ref)
4215
4200
  if (utils.ObjectUtils.isNotEmpty(widths)) {
4216
4201
  createStyleElement();
4217
4202
  var innerHTML = '';
4203
+ var selector = ".p-datatable[".concat(attributeSelectorState, "] > .p-datatable-wrapper ").concat(isVirtualScrollerDisabled() ? '' : '> .p-virtualscroller', " > .p-datatable-table");
4218
4204
  widths.forEach(function (width, index) {
4219
- var style = props.scrollable ? "flex: 1 1 ".concat(width, "px !important") : "width: ".concat(width, "px !important");
4220
- innerHTML += "\n .p-datatable[".concat(attributeSelectorState, "] .p-datatable-thead > tr > th:nth-child(").concat(index + 1, "),\n .p-datatable[").concat(attributeSelectorState, "] .p-datatable-tbody > tr > td:nth-child(").concat(index + 1, "),\n .p-datatable[").concat(attributeSelectorState, "] .p-datatable-tfoot > tr > td:nth-child(").concat(index + 1, ") {\n ").concat(style, "\n }\n ");
4205
+ var style = "width: ".concat(width, "px !important; max-width: ").concat(width, "px !important");
4206
+ innerHTML += "\n ".concat(selector, " > .p-datatable-thead > tr > th:nth-child(").concat(index + 1, "),\n ").concat(selector, " > .p-datatable-tbody > tr > td:nth-child(").concat(index + 1, "),\n ").concat(selector, " > .p-datatable-tfoot > tr > td:nth-child(").concat(index + 1, ") {\n ").concat(style, "\n }\n ");
4221
4207
  });
4222
4208
  styleElement.current.innerHTML = innerHTML;
4223
4209
  }
@@ -4385,10 +4371,11 @@ var DataTable = /*#__PURE__*/React__namespace.forwardRef(function (inProps, ref)
4385
4371
  destroyStyleElement();
4386
4372
  createStyleElement();
4387
4373
  var innerHTML = '';
4374
+ var selector = ".p-datatable[".concat(attributeSelectorState, "] > .p-datatable-wrapper ").concat(isVirtualScrollerDisabled() ? '' : '> .p-virtualscroller', " > .p-datatable-table");
4388
4375
  widths.forEach(function (width, index) {
4389
4376
  var colWidth = index === colIndex ? newColumnWidth : nextColumnWidth && index === colIndex + 1 ? nextColumnWidth : width;
4390
- var style = props.scrollable ? "flex: 1 1 ".concat(colWidth, "px !important") : "width: ".concat(colWidth, "px !important");
4391
- innerHTML += "\n .p-datatable[".concat(attributeSelectorState, "] .p-datatable-thead > tr > th:nth-child(").concat(index + 1, "),\n .p-datatable[").concat(attributeSelectorState, "] .p-datatable-tbody > tr > td:nth-child(").concat(index + 1, "),\n .p-datatable[").concat(attributeSelectorState, "] .p-datatable-tfoot > tr > td:nth-child(").concat(index + 1, ") {\n ").concat(style, "\n }\n ");
4377
+ var style = "width: ".concat(colWidth, "px !important; max-width: ").concat(colWidth, "px !important");
4378
+ innerHTML += "\n ".concat(selector, " > .p-datatable-thead > tr > th:nth-child(").concat(index + 1, "),\n ").concat(selector, " > .p-datatable-tbody > tr > td:nth-child(").concat(index + 1, "),\n ").concat(selector, " > .p-datatable-tfoot > tr > td:nth-child(").concat(index + 1, ") {\n ").concat(style, "\n }\n ");
4392
4379
  });
4393
4380
  styleElement.current.innerHTML = innerHTML;
4394
4381
  };
@@ -4551,7 +4538,10 @@ var DataTable = /*#__PURE__*/React__namespace.forwardRef(function (inProps, ref)
4551
4538
  var createResponsiveStyle = function createResponsiveStyle() {
4552
4539
  if (!responsiveStyleElement.current) {
4553
4540
  responsiveStyleElement.current = utils.DomHandler.createInlineStyle(PrimeReact__default["default"].nonce);
4554
- var innerHTML = "\n@media screen and (max-width: ".concat(props.breakpoint, ") {\n .p-datatable[").concat(attributeSelectorState, "] .p-datatable-thead > tr > th,\n .p-datatable[").concat(attributeSelectorState, "] .p-datatable-tfoot > tr > td {\n display: none !important;\n }\n\n .p-datatable[").concat(attributeSelectorState, "] .p-datatable-tbody > tr > td {\n display: flex;\n width: 100% !important;\n align-items: center;\n justify-content: space-between;\n }\n\n .p-datatable[").concat(attributeSelectorState, "] .p-datatable-tbody > tr > td:not(:last-child) {\n border: 0 none;\n }\n\n .p-datatable[").concat(attributeSelectorState, "].p-datatable-gridlines .p-datatable-tbody > tr > td:last-child {\n border-top: 0;\n border-right: 0;\n border-left: 0;\n }\n\n .p-datatable[").concat(attributeSelectorState, "] .p-datatable-tbody > tr > td > .p-column-title {\n display: block;\n }\n}\n");
4541
+ var tableSelector = ".p-datatable-wrapper ".concat(isVirtualScrollerDisabled() ? '' : '> .p-virtualscroller', " > .p-datatable-table");
4542
+ var selector = ".p-datatable[".concat(attributeSelectorState, "] > ").concat(tableSelector);
4543
+ var gridLinesSelector = ".p-datatable[".concat(attributeSelectorState, "].p-datatable-gridlines > ").concat(tableSelector);
4544
+ var innerHTML = "\n@media screen and (max-width: ".concat(props.breakpoint, ") {\n ").concat(selector, " > .p-datatable-thead > tr > th,\n ").concat(selector, " > .p-datatable-tfoot > tr > td {\n display: none !important;\n }\n\n ").concat(selector, " > .p-datatable-tbody > tr > td {\n display: flex;\n width: 100% !important;\n align-items: center;\n justify-content: space-between;\n }\n\n ").concat(selector, " > .p-datatable-tbody > tr > td:not(:last-child) {\n border: 0 none;\n }\n\n ").concat(gridLinesSelector, " > .p-datatable-tbody > tr > td:last-child {\n border-top: 0;\n border-right: 0;\n border-left: 0;\n }\n\n ").concat(selector, " > .p-datatable-tbody > tr > td > .p-column-title {\n display: block;\n }\n}\n");
4555
4545
  responsiveStyleElement.current.innerHTML = innerHTML;
4556
4546
  }
4557
4547
  };
@@ -5028,7 +5018,7 @@ var DataTable = /*#__PURE__*/React__namespace.forwardRef(function (inProps, ref)
5028
5018
  return data;
5029
5019
  };
5030
5020
  hooks.useMountEffect(function () {
5031
- setAttributeSelectorState(utils.UniqueComponentId());
5021
+ !attributeSelectorState && setAttributeSelectorState(utils.UniqueComponentId());
5032
5022
  setFiltersState(cloneFilters(props.filters));
5033
5023
  setD_filtersState(cloneFilters(props.filters));
5034
5024
  if (isStateful()) {
@@ -5039,11 +5029,16 @@ var DataTable = /*#__PURE__*/React__namespace.forwardRef(function (inProps, ref)
5039
5029
  }
5040
5030
  });
5041
5031
  hooks.useUpdateEffect(function () {
5042
- elementRef.current.setAttribute(attributeSelectorState, '');
5043
- if (props.responsiveLayout === 'stack' && !props.scrollable) {
5044
- createResponsiveStyle();
5032
+ if (attributeSelectorState) {
5033
+ elementRef.current.setAttribute(attributeSelectorState, '');
5034
+ if (props.responsiveLayout === 'stack' && !props.scrollable) {
5035
+ createResponsiveStyle();
5036
+ }
5045
5037
  }
5046
- }, [attributeSelectorState]);
5038
+ return function () {
5039
+ destroyResponsiveStyle();
5040
+ };
5041
+ }, [attributeSelectorState, props.breakpoint]);
5047
5042
  hooks.useUpdateEffect(function () {
5048
5043
  var filters = cloneFilters(props.filters);
5049
5044
  setFiltersState(filters);
@@ -5125,7 +5120,7 @@ var DataTable = /*#__PURE__*/React__namespace.forwardRef(function (inProps, ref)
5125
5120
  }
5126
5121
  return null;
5127
5122
  };
5128
- var createTableHeader = function createTableHeader(options, empty) {
5123
+ var createTableHeader = function createTableHeader(options, empty, _isVirtualScrollerDisabled) {
5129
5124
  var sortField = getSortField();
5130
5125
  var sortOrder = getSortOrder();
5131
5126
  var multiSortMeta = _toConsumableArray(getMultiSortMeta());
@@ -5133,9 +5128,11 @@ var DataTable = /*#__PURE__*/React__namespace.forwardRef(function (inProps, ref)
5133
5128
  var filters = d_filtersState;
5134
5129
  var filtersStore = !props.onFilter && props.filters || getFilters();
5135
5130
  var processedData = options.items,
5131
+ virtualScrollerProps = options.props,
5136
5132
  columns = options.columns;
5133
+ var data = _isVirtualScrollerDisabled || virtualScrollerProps.lazy ? processedData : virtualScrollerProps.items;
5137
5134
  return /*#__PURE__*/React__namespace.createElement(TableHeader, {
5138
- value: processedData,
5135
+ value: data,
5139
5136
  tableProps: props,
5140
5137
  columns: columns,
5141
5138
  tabIndex: props.tabIndex,
@@ -5174,12 +5171,14 @@ var DataTable = /*#__PURE__*/React__namespace.forwardRef(function (inProps, ref)
5174
5171
  var rows = options.rows,
5175
5172
  columns = options.columns,
5176
5173
  contentRef = options.contentRef,
5177
- className = options.className;
5178
- options.itemSize;
5174
+ style = options.style,
5175
+ className = options.className,
5176
+ spacerStyle = options.spacerStyle,
5177
+ itemSize = options.itemSize;
5179
5178
  var frozenBody = utils.ObjectUtils.isNotEmpty(props.frozenValue) && /*#__PURE__*/React__namespace.createElement(TableBody, {
5180
5179
  ref: frozenBodyRef,
5181
5180
  value: props.frozenValue,
5182
- className: "p-datatable-frozen-tbody",
5181
+ className: "p-datatable-tbody p-datatable-frozen-tbody",
5183
5182
  frozenRow: true,
5184
5183
  tableProps: props,
5185
5184
  tableSelector: attributeSelectorState,
@@ -5250,7 +5249,8 @@ var DataTable = /*#__PURE__*/React__namespace.forwardRef(function (inProps, ref)
5250
5249
  var body = /*#__PURE__*/React__namespace.createElement(TableBody, {
5251
5250
  ref: bodyRef,
5252
5251
  value: dataToRender(rows),
5253
- className: className,
5252
+ style: style,
5253
+ className: utils.classNames('p-datatable-tbody', className),
5254
5254
  empty: empty,
5255
5255
  frozenRow: false,
5256
5256
  tableProps: props,
@@ -5320,7 +5320,13 @@ var DataTable = /*#__PURE__*/React__namespace.forwardRef(function (inProps, ref)
5320
5320
  virtualScrollerOptions: options,
5321
5321
  isVirtualScrollerDisabled: isVirtualScrollerDisabled
5322
5322
  });
5323
- return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, frozenBody, body);
5323
+ var spacerBody = utils.ObjectUtils.isNotEmpty(spacerStyle) ? /*#__PURE__*/React__namespace.createElement(TableBody, {
5324
+ style: {
5325
+ height: "calc(".concat(spacerStyle.height, " - ").concat(rows.length * itemSize, "px)")
5326
+ },
5327
+ className: "p-datatable-virtualscroller-spacer"
5328
+ }) : null;
5329
+ return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, frozenBody, body, spacerBody);
5324
5330
  };
5325
5331
  var createTableFooter = function createTableFooter(options) {
5326
5332
  var columns = options.columns;
@@ -5351,14 +5357,20 @@ var DataTable = /*#__PURE__*/React__namespace.forwardRef(function (inProps, ref)
5351
5357
  scrollHeight: props.scrollHeight !== 'flex' ? undefined : '100%',
5352
5358
  disabled: _isVirtualScrollerDisabled,
5353
5359
  loaderDisabled: true,
5360
+ inline: true,
5361
+ autoSize: true,
5354
5362
  showSpacer: false,
5355
5363
  contentTemplate: function contentTemplate(options) {
5356
5364
  var ref = function ref(el) {
5357
5365
  tableRef.current = el;
5358
5366
  options.spacerRef && options.spacerRef(el);
5359
5367
  };
5360
- var tableClassName = utils.classNames('p-datatable-table', props.tableClassName);
5361
- var tableHeader = createTableHeader(options, empty);
5368
+ var tableClassName = utils.classNames('p-datatable-table', {
5369
+ 'p-datatable-scrollable-table': props.scrollable,
5370
+ 'p-datatable-resizable-table': props.resizableColumns,
5371
+ 'p-datatable-resizable-table-fit': props.resizableColumns && props.columnResizeMode === 'fit'
5372
+ }, props.tableClassName);
5373
+ var tableHeader = createTableHeader(options, empty, _isVirtualScrollerDisabled);
5362
5374
  var tableBody = createTableBody(options, selectionModeInColumn, empty, _isVirtualScrollerDisabled);
5363
5375
  var tableFooter = createTableFooter(options);
5364
5376
  return /*#__PURE__*/React__namespace.createElement("table", {
@@ -5452,13 +5464,9 @@ var DataTable = /*#__PURE__*/React__namespace.forwardRef(function (inProps, ref)
5452
5464
  'p-datatable-hoverable-rows': props.rowHover,
5453
5465
  'p-datatable-selectable': selectable && !props.cellSelection,
5454
5466
  'p-datatable-selectable-cell': selectable && props.cellSelection,
5455
- 'p-datatable-auto-layout': props.autoLayout,
5456
5467
  'p-datatable-resizable': props.resizableColumns,
5457
5468
  'p-datatable-resizable-fit': props.resizableColumns && props.columnResizeMode === 'fit',
5458
5469
  'p-datatable-scrollable': props.scrollable,
5459
- 'p-datatable-scrollable-vertical': props.scrollable && props.scrollDirection === 'vertical',
5460
- 'p-datatable-scrollable-horizontal': props.scrollable && props.scrollDirection === 'horizontal',
5461
- 'p-datatable-scrollable-both': props.scrollable && props.scrollDirection === 'both',
5462
5470
  'p-datatable-flex-scrollable': props.scrollable && props.scrollHeight === 'flex',
5463
5471
  'p-datatable-responsive-stack': props.responsiveLayout === 'stack',
5464
5472
  'p-datatable-responsive-scroll': props.responsiveLayout === 'scroll',