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
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import PrimeReact, { FilterMatchMode, ariaLabel, localeOption, FilterOperator, FilterService } from 'primereact/api';
3
3
  import { ObjectUtils, classNames, DomHandler, ZIndexUtils, UniqueComponentId } from 'primereact/utils';
4
- import { useEventListener, useUpdateEffect, useUnmountEffect, usePrevious, useMountEffect, useOverlayListener } from 'primereact/hooks';
4
+ import { useEventListener, useUpdateEffect, useUnmountEffect, useOverlayListener, usePrevious, useMountEffect } from 'primereact/hooks';
5
5
  import { Paginator } from 'primereact/paginator';
6
6
  import { VirtualScroller } from 'primereact/virtualscroller';
7
7
  import { OverlayService } from 'primereact/overlayservice';
@@ -236,7 +236,6 @@ var DataTableBase = {
236
236
  defaultProps: {
237
237
  __TYPE: 'DataTable',
238
238
  alwaysShowPaginator: true,
239
- autoLayout: false,
240
239
  breakpoint: '960px',
241
240
  cellClassName: null,
242
241
  cellSelection: false,
@@ -328,7 +327,7 @@ var DataTableBase = {
328
327
  reorderableColumns: false,
329
328
  reorderableRows: false,
330
329
  resizableColumns: false,
331
- responsiveLayout: 'stack',
330
+ responsiveLayout: 'scroll',
332
331
  rowClassName: null,
333
332
  rowEditValidator: null,
334
333
  rowExpansionTemplate: null,
@@ -338,7 +337,6 @@ var DataTableBase = {
338
337
  rowHover: false,
339
338
  rows: null,
340
339
  rowsPerPageOptions: null,
341
- scrollDirection: 'vertical',
342
340
  scrollHeight: null,
343
341
  scrollable: false,
344
342
  selectAll: false,
@@ -1192,7 +1190,7 @@ var BodyRow = /*#__PURE__*/React.memo(function (props) {
1192
1190
  return props.compareSelectionBy === 'equals' ? data1 === data2 : ObjectUtils.equals(data1, data2, props.dataKey);
1193
1191
  };
1194
1192
  var getTabIndex = function getTabIndex() {
1195
- return isFocusable() && !props.allowCellSelection ? props.index === 0 ? props.tabIndex : -1 : null;
1193
+ return isFocusable() && !props.allowCellSelection ? props.rowIndex === 0 ? props.tabIndex : -1 : null;
1196
1194
  };
1197
1195
  var findIndex = function findIndex(collection, rowData) {
1198
1196
  return (collection || []).findIndex(function (data) {
@@ -1249,35 +1247,35 @@ var BodyRow = /*#__PURE__*/React.memo(function (props) {
1249
1247
  props.onRowClick({
1250
1248
  originalEvent: event,
1251
1249
  data: props.rowData,
1252
- index: props.index
1250
+ index: props.rowIndex
1253
1251
  });
1254
1252
  };
1255
1253
  var onDoubleClick = function onDoubleClick(event) {
1256
1254
  props.onRowDoubleClick({
1257
1255
  originalEvent: event,
1258
1256
  data: props.rowData,
1259
- index: props.index
1257
+ index: props.rowIndex
1260
1258
  });
1261
1259
  };
1262
1260
  var onRightClick = function onRightClick(event) {
1263
1261
  props.onRowRightClick({
1264
1262
  originalEvent: event,
1265
1263
  data: props.rowData,
1266
- index: props.index
1264
+ index: props.rowIndex
1267
1265
  });
1268
1266
  };
1269
1267
  var onMouseEnter = function onMouseEnter(event) {
1270
1268
  props.onRowMouseEnter({
1271
1269
  originalEvent: event,
1272
1270
  data: props.rowData,
1273
- index: props.index
1271
+ index: props.rowIndex
1274
1272
  });
1275
1273
  };
1276
1274
  var onMouseLeave = function onMouseLeave(event) {
1277
1275
  props.onRowMouseLeave({
1278
1276
  originalEvent: event,
1279
1277
  data: props.rowData,
1280
- index: props.index
1278
+ index: props.rowIndex
1281
1279
  });
1282
1280
  };
1283
1281
  var onTouchEnd = function onTouchEnd(event) {
@@ -1331,49 +1329,49 @@ var BodyRow = /*#__PURE__*/React.memo(function (props) {
1331
1329
  props.onRowMouseDown({
1332
1330
  originalEvent: event,
1333
1331
  data: props.rowData,
1334
- index: props.index
1332
+ index: props.rowIndex
1335
1333
  });
1336
1334
  };
1337
1335
  var onMouseUp = function onMouseUp(event) {
1338
1336
  props.onRowMouseUp({
1339
1337
  originalEvent: event,
1340
1338
  data: props.rowData,
1341
- index: props.index
1339
+ index: props.rowIndex
1342
1340
  });
1343
1341
  };
1344
1342
  var onDragStart = function onDragStart(event) {
1345
1343
  props.onRowDragStart({
1346
1344
  originalEvent: event,
1347
1345
  data: props.rowData,
1348
- index: props.index
1346
+ index: props.rowIndex
1349
1347
  });
1350
1348
  };
1351
1349
  var onDragOver = function onDragOver(event) {
1352
1350
  props.onRowDragOver({
1353
1351
  originalEvent: event,
1354
1352
  data: props.rowData,
1355
- index: props.index
1353
+ index: props.rowIndex
1356
1354
  });
1357
1355
  };
1358
1356
  var onDragLeave = function onDragLeave(event) {
1359
1357
  props.onRowDragLeave({
1360
1358
  originalEvent: event,
1361
1359
  data: props.rowData,
1362
- index: props.index
1360
+ index: props.rowIndex
1363
1361
  });
1364
1362
  };
1365
1363
  var onDragEnd = function onDragEnd(event) {
1366
1364
  props.onRowDragEnd({
1367
1365
  originalEvent: event,
1368
1366
  data: props.rowData,
1369
- index: props.index
1367
+ index: props.rowIndex
1370
1368
  });
1371
1369
  };
1372
1370
  var onDrop = function onDrop(event) {
1373
1371
  props.onRowDrop({
1374
1372
  originalEvent: event,
1375
1373
  data: props.rowData,
1376
- index: props.index
1374
+ index: props.rowIndex
1377
1375
  });
1378
1376
  };
1379
1377
  var onEditChange = function onEditChange(e, isEditing) {
@@ -1417,7 +1415,7 @@ var BodyRow = /*#__PURE__*/React.memo(function (props) {
1417
1415
  props.onRowEditInit({
1418
1416
  originalEvent: event,
1419
1417
  data: props.rowData,
1420
- index: props.index
1418
+ index: props.rowIndex
1421
1419
  });
1422
1420
  }
1423
1421
  onEditChange(e, true);
@@ -1433,7 +1431,7 @@ var BodyRow = /*#__PURE__*/React.memo(function (props) {
1433
1431
  props.onRowEditSave({
1434
1432
  originalEvent: event,
1435
1433
  data: props.rowData,
1436
- index: props.index,
1434
+ index: props.rowIndex,
1437
1435
  valid: valid
1438
1436
  });
1439
1437
  }
@@ -1451,7 +1449,7 @@ var BodyRow = /*#__PURE__*/React.memo(function (props) {
1451
1449
  props.onRowEditCancel({
1452
1450
  originalEvent: event,
1453
1451
  data: props.rowData,
1454
- index: props.index
1452
+ index: props.rowIndex
1455
1453
  });
1456
1454
  }
1457
1455
  onEditChange(e, false);
@@ -1469,7 +1467,7 @@ var BodyRow = /*#__PURE__*/React.memo(function (props) {
1469
1467
  tableSelector: props.tableSelector,
1470
1468
  column: col,
1471
1469
  rowData: props.rowData,
1472
- rowIndex: props.index,
1470
+ rowIndex: props.rowIndex,
1473
1471
  index: i,
1474
1472
  rowSpan: rowSpan,
1475
1473
  dataKey: props.dataKey,
@@ -1516,9 +1514,9 @@ var BodyRow = /*#__PURE__*/React.memo(function (props) {
1516
1514
  'p-highlight-contextmenu': props.contextMenuSelected,
1517
1515
  'p-selectable-row': props.allowRowSelection && props.isSelectable({
1518
1516
  data: props.rowData,
1519
- index: props.index
1517
+ index: props.rowIndex
1520
1518
  }),
1521
- 'p-row-odd': props.index % 2 !== 0
1519
+ 'p-row-odd': props.rowIndex % 2 !== 0
1522
1520
  });
1523
1521
  var style = {
1524
1522
  height: props.virtualScrollerOptions ? props.virtualScrollerOptions.itemSize : undefined
@@ -1593,7 +1591,6 @@ var TableBody = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function
1593
1591
  var rowDragging = React.useRef(false);
1594
1592
  var draggedRowIndex = React.useRef(null);
1595
1593
  var droppedRowIndex = React.useRef(null);
1596
- var prevVirtualScrollerOptions = usePrevious(props.virtualScrollerOptions);
1597
1594
  var isSubheaderGrouping = props.rowGroupMode && props.rowGroupMode === 'subheader';
1598
1595
  var isRadioSelectionMode = props.selectionMode === 'radiobutton';
1599
1596
  var isCheckboxSelectionMode = props.selectionMode === 'checkbox';
@@ -1743,10 +1740,6 @@ var TableBody = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function
1743
1740
  });
1744
1741
  }
1745
1742
  };
1746
- var updateVirtualScrollerPosition = function updateVirtualScrollerPosition() {
1747
- var tableHeaderHeight = DomHandler.getOuterHeight(elementRef.current.previousElementSibling);
1748
- elementRef.current.style.top = (elementRef.current.style.top || 0) + tableHeaderHeight + 'px';
1749
- };
1750
1743
  var onSingleSelection = function onSingleSelection(_ref) {
1751
1744
  var originalEvent = _ref.originalEvent,
1752
1745
  data = _ref.data,
@@ -2300,16 +2293,6 @@ var TableBody = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function
2300
2293
  updateFrozenRowGroupHeaderStickyPosition();
2301
2294
  }
2302
2295
  });
2303
- useMountEffect(function () {
2304
- if (!props.isVirtualScrollerDisabled && getVirtualScrollerOption('vertical')) {
2305
- updateVirtualScrollerPosition();
2306
- }
2307
- });
2308
- useUpdateEffect(function () {
2309
- if (!props.isVirtualScrollerDisabled && getVirtualScrollerOption('vertical') && getVirtualScrollerOption('itemSize', prevVirtualScrollerOptions) !== getVirtualScrollerOption('itemSize')) {
2310
- updateVirtualScrollerPosition();
2311
- }
2312
- }, [props.virtualScrollerOptions]);
2313
2296
  useUpdateEffect(function () {
2314
2297
  if (props.paginator && isMultipleSelection()) {
2315
2298
  anchorRowIndex.current = null;
@@ -2337,9 +2320,8 @@ var TableBody = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function
2337
2320
  }
2338
2321
  return null;
2339
2322
  };
2340
- var createGroupHeader = function createGroupHeader(rowData, index, expanded, colSpan) {
2341
- if (isSubheaderGrouping && shouldRenderRowGroupHeader(props.value, rowData, index - props.first)) {
2342
- var _options;
2323
+ var createGroupHeader = function createGroupHeader(rowData, rowIndex, expanded, colSpan) {
2324
+ if (isSubheaderGrouping && shouldRenderRowGroupHeader(props.value, rowData, rowIndex - props.first)) {
2343
2325
  var style = rowGroupHeaderStyle();
2344
2326
  var toggler = props.expandableRowGroups && /*#__PURE__*/React.createElement(RowTogglerButton, {
2345
2327
  onClick: onRowToggle,
@@ -2348,9 +2330,11 @@ var TableBody = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function
2348
2330
  expandedRowIcon: props.expandedRowIcon,
2349
2331
  collapsedRowIcon: props.collapsedRowIcon
2350
2332
  });
2351
- var options = (_options = {
2352
- index: index
2353
- }, _defineProperty(_options, "index", index), _defineProperty(_options, "props", props.tableProps), _defineProperty(_options, "customRendering", false), _options);
2333
+ var options = {
2334
+ index: rowIndex,
2335
+ props: props.tableProps,
2336
+ customRendering: false
2337
+ };
2354
2338
  var _content2 = ObjectUtils.getJSXElement(props.rowGroupHeaderTemplate, rowData, options);
2355
2339
 
2356
2340
  // check if the user wants complete control of the rendering
@@ -2369,7 +2353,7 @@ var TableBody = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function
2369
2353
  }
2370
2354
  return null;
2371
2355
  };
2372
- var createRow = function createRow(rowData, index, expanded) {
2356
+ var createRow = function createRow(rowData, rowIndex, index, expanded) {
2373
2357
  if (!props.expandableRowGroups || expanded) {
2374
2358
  var selected = isSelectionEnabled() ? isSelected(rowData) : false;
2375
2359
  var contextMenuSelected = isContextMenuSelected(rowData);
@@ -2382,6 +2366,7 @@ var TableBody = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function
2382
2366
  value: props.value,
2383
2367
  columns: props.columns,
2384
2368
  rowData: rowData,
2369
+ rowIndex: rowIndex,
2385
2370
  index: index,
2386
2371
  selected: selected,
2387
2372
  contextMenuSelected: contextMenuSelected,
@@ -2440,11 +2425,11 @@ var TableBody = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function
2440
2425
  });
2441
2426
  }
2442
2427
  };
2443
- var createExpansion = function createExpansion(rowData, index, expanded, colSpan) {
2428
+ var createExpansion = function createExpansion(rowData, rowIndex, expanded, colSpan) {
2444
2429
  if (expanded && !(isSubheaderGrouping && props.expandableRowGroups)) {
2445
- var id = "".concat(props.tableSelector, "_content_").concat(index, "_expanded");
2430
+ var id = "".concat(props.tableSelector, "_content_").concat(rowIndex, "_expanded");
2446
2431
  var options = {
2447
- index: index,
2432
+ index: rowIndex,
2448
2433
  customRendering: false
2449
2434
  };
2450
2435
  var _content3 = ObjectUtils.getJSXElement(props.rowExpansionTemplate, rowData, options);
@@ -2464,10 +2449,10 @@ var TableBody = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function
2464
2449
  }
2465
2450
  return null;
2466
2451
  };
2467
- var createGroupFooter = function createGroupFooter(rowData, index, expanded, colSpan) {
2468
- if (isSubheaderGrouping && shouldRenderRowGroupFooter(props.value, rowData, index - props.first, expanded)) {
2452
+ var createGroupFooter = function createGroupFooter(rowData, rowIndex, expanded, colSpan) {
2453
+ if (isSubheaderGrouping && shouldRenderRowGroupFooter(props.value, rowData, rowIndex - props.first, expanded)) {
2469
2454
  var _content4 = ObjectUtils.getJSXElement(props.rowGroupFooterTemplate, rowData, {
2470
- index: index,
2455
+ index: rowIndex,
2471
2456
  colSpan: colSpan,
2472
2457
  props: props.tableProps
2473
2458
  });
@@ -2479,25 +2464,25 @@ var TableBody = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function
2479
2464
  return null;
2480
2465
  };
2481
2466
  var createContent = function createContent() {
2482
- return props.value.map(function (rowData, i) {
2483
- var index = getVirtualScrollerOption('getItemOptions') ? getVirtualScrollerOption('getItemOptions')(i).index : props.first + i;
2484
- var key = getRowKey(rowData, index);
2467
+ return props.value && props.value.map(function (rowData, index) {
2468
+ var rowIndex = getVirtualScrollerOption('getItemOptions') ? getVirtualScrollerOption('getItemOptions')(index).index : props.first + index;
2469
+ var key = getRowKey(rowData, rowIndex);
2485
2470
  var expanded = isRowExpanded(rowData);
2486
2471
  var colSpan = getColumnsLength();
2487
- var groupHeader = createGroupHeader(rowData, index, expanded, colSpan);
2488
- var row = createRow(rowData, index, expanded);
2489
- var expansion = createExpansion(rowData, index, expanded, colSpan);
2490
- var groupFooter = createGroupFooter(rowData, index, expanded, colSpan);
2472
+ var groupHeader = createGroupHeader(rowData, rowIndex, expanded, colSpan);
2473
+ var row = createRow(rowData, rowIndex, index, expanded);
2474
+ var expansion = createExpansion(rowData, rowIndex, expanded, colSpan);
2475
+ var groupFooter = createGroupFooter(rowData, rowIndex, expanded, colSpan);
2491
2476
  return /*#__PURE__*/React.createElement(React.Fragment, {
2492
2477
  key: key
2493
2478
  }, groupHeader, row, expansion, groupFooter);
2494
2479
  });
2495
2480
  };
2496
- var className = classNames('p-datatable-tbody', props.className);
2497
2481
  var content = props.empty ? createEmptyContent() : createContent();
2498
2482
  return /*#__PURE__*/React.createElement("tbody", {
2499
2483
  ref: refCallback,
2500
- className: className
2484
+ style: props.style,
2485
+ className: props.className
2501
2486
  }, content);
2502
2487
  }));
2503
2488
  TableBody.displayName = 'TableBody';
@@ -4188,9 +4173,10 @@ var DataTable = /*#__PURE__*/React.forwardRef(function (inProps, ref) {
4188
4173
  if (ObjectUtils.isNotEmpty(widths)) {
4189
4174
  createStyleElement();
4190
4175
  var innerHTML = '';
4176
+ var selector = ".p-datatable[".concat(attributeSelectorState, "] > .p-datatable-wrapper > .p-datatable-table");
4191
4177
  widths.forEach(function (width, index) {
4192
- var style = props.scrollable ? "flex: 1 1 ".concat(width, "px !important") : "width: ".concat(width, "px !important");
4193
- 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 ");
4178
+ var style = "width: ".concat(width, "px !important; max-width: ").concat(width, "px !important");
4179
+ 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 ");
4194
4180
  });
4195
4181
  styleElement.current.innerHTML = innerHTML;
4196
4182
  }
@@ -4358,10 +4344,11 @@ var DataTable = /*#__PURE__*/React.forwardRef(function (inProps, ref) {
4358
4344
  destroyStyleElement();
4359
4345
  createStyleElement();
4360
4346
  var innerHTML = '';
4347
+ var selector = ".p-datatable[".concat(attributeSelectorState, "] > .p-datatable-wrapper > .p-datatable-table");
4361
4348
  widths.forEach(function (width, index) {
4362
4349
  var colWidth = index === colIndex ? newColumnWidth : nextColumnWidth && index === colIndex + 1 ? nextColumnWidth : width;
4363
- var style = props.scrollable ? "flex: 1 1 ".concat(colWidth, "px !important") : "width: ".concat(colWidth, "px !important");
4364
- 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 ");
4350
+ var style = "width: ".concat(colWidth, "px !important; max-width: ").concat(colWidth, "px !important");
4351
+ 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 ");
4365
4352
  });
4366
4353
  styleElement.current.innerHTML = innerHTML;
4367
4354
  };
@@ -4524,7 +4511,9 @@ var DataTable = /*#__PURE__*/React.forwardRef(function (inProps, ref) {
4524
4511
  var createResponsiveStyle = function createResponsiveStyle() {
4525
4512
  if (!responsiveStyleElement.current) {
4526
4513
  responsiveStyleElement.current = DomHandler.createInlineStyle(PrimeReact.nonce);
4527
- 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");
4514
+ var selector = ".p-datatable[".concat(attributeSelectorState, "] > .p-datatable-wrapper > .p-datatable-table");
4515
+ var gridLinesSelector = ".p-datatable[".concat(attributeSelectorState, "].p-datatable-gridlines > .p-datatable-wrapper > .p-datatable-table");
4516
+ 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");
4528
4517
  responsiveStyleElement.current.innerHTML = innerHTML;
4529
4518
  }
4530
4519
  };
@@ -5001,7 +4990,7 @@ var DataTable = /*#__PURE__*/React.forwardRef(function (inProps, ref) {
5001
4990
  return data;
5002
4991
  };
5003
4992
  useMountEffect(function () {
5004
- setAttributeSelectorState(UniqueComponentId());
4993
+ !attributeSelectorState && setAttributeSelectorState(UniqueComponentId());
5005
4994
  setFiltersState(cloneFilters(props.filters));
5006
4995
  setD_filtersState(cloneFilters(props.filters));
5007
4996
  if (isStateful()) {
@@ -5012,11 +5001,16 @@ var DataTable = /*#__PURE__*/React.forwardRef(function (inProps, ref) {
5012
5001
  }
5013
5002
  });
5014
5003
  useUpdateEffect(function () {
5015
- elementRef.current.setAttribute(attributeSelectorState, '');
5016
- if (props.responsiveLayout === 'stack' && !props.scrollable) {
5017
- createResponsiveStyle();
5004
+ if (attributeSelectorState) {
5005
+ elementRef.current.setAttribute(attributeSelectorState, '');
5006
+ if (props.responsiveLayout === 'stack' && !props.scrollable) {
5007
+ createResponsiveStyle();
5008
+ }
5018
5009
  }
5019
- }, [attributeSelectorState]);
5010
+ return function () {
5011
+ destroyResponsiveStyle();
5012
+ };
5013
+ }, [attributeSelectorState, props.breakpoint]);
5020
5014
  useUpdateEffect(function () {
5021
5015
  var filters = cloneFilters(props.filters);
5022
5016
  setFiltersState(filters);
@@ -5147,12 +5141,14 @@ var DataTable = /*#__PURE__*/React.forwardRef(function (inProps, ref) {
5147
5141
  var rows = options.rows,
5148
5142
  columns = options.columns,
5149
5143
  contentRef = options.contentRef,
5150
- className = options.className;
5151
- options.itemSize;
5144
+ style = options.style,
5145
+ className = options.className,
5146
+ spacerStyle = options.spacerStyle,
5147
+ itemSize = options.itemSize;
5152
5148
  var frozenBody = ObjectUtils.isNotEmpty(props.frozenValue) && /*#__PURE__*/React.createElement(TableBody, {
5153
5149
  ref: frozenBodyRef,
5154
5150
  value: props.frozenValue,
5155
- className: "p-datatable-frozen-tbody",
5151
+ className: "p-datatable-tbody p-datatable-frozen-tbody",
5156
5152
  frozenRow: true,
5157
5153
  tableProps: props,
5158
5154
  tableSelector: attributeSelectorState,
@@ -5223,7 +5219,8 @@ var DataTable = /*#__PURE__*/React.forwardRef(function (inProps, ref) {
5223
5219
  var body = /*#__PURE__*/React.createElement(TableBody, {
5224
5220
  ref: bodyRef,
5225
5221
  value: dataToRender(rows),
5226
- className: className,
5222
+ style: style,
5223
+ className: classNames('p-datatable-tbody', className),
5227
5224
  empty: empty,
5228
5225
  frozenRow: false,
5229
5226
  tableProps: props,
@@ -5293,7 +5290,13 @@ var DataTable = /*#__PURE__*/React.forwardRef(function (inProps, ref) {
5293
5290
  virtualScrollerOptions: options,
5294
5291
  isVirtualScrollerDisabled: isVirtualScrollerDisabled
5295
5292
  });
5296
- return /*#__PURE__*/React.createElement(React.Fragment, null, frozenBody, body);
5293
+ var spacerBody = ObjectUtils.isNotEmpty(spacerStyle) ? /*#__PURE__*/React.createElement(TableBody, {
5294
+ style: {
5295
+ height: "calc(".concat(spacerStyle.height, " - ").concat(rows.length * itemSize, "px)")
5296
+ },
5297
+ className: "p-datatable-virtualscroller-spacer"
5298
+ }) : null;
5299
+ return /*#__PURE__*/React.createElement(React.Fragment, null, frozenBody, body, spacerBody);
5297
5300
  };
5298
5301
  var createTableFooter = function createTableFooter(options) {
5299
5302
  var columns = options.columns;
@@ -5324,13 +5327,19 @@ var DataTable = /*#__PURE__*/React.forwardRef(function (inProps, ref) {
5324
5327
  scrollHeight: props.scrollHeight !== 'flex' ? undefined : '100%',
5325
5328
  disabled: _isVirtualScrollerDisabled,
5326
5329
  loaderDisabled: true,
5330
+ inline: true,
5331
+ autoSize: true,
5327
5332
  showSpacer: false,
5328
5333
  contentTemplate: function contentTemplate(options) {
5329
5334
  var ref = function ref(el) {
5330
5335
  tableRef.current = el;
5331
5336
  options.spacerRef && options.spacerRef(el);
5332
5337
  };
5333
- var tableClassName = classNames('p-datatable-table', props.tableClassName);
5338
+ var tableClassName = classNames('p-datatable-table', {
5339
+ 'p-datatable-scrollable-table': props.scrollable,
5340
+ 'p-datatable-resizable-table': props.resizableColumns,
5341
+ 'p-datatable-resizable-table-fit': props.resizableColumns && props.columnResizeMode === 'fit'
5342
+ }, props.tableClassName);
5334
5343
  var tableHeader = createTableHeader(options, empty);
5335
5344
  var tableBody = createTableBody(options, selectionModeInColumn, empty, _isVirtualScrollerDisabled);
5336
5345
  var tableFooter = createTableFooter(options);
@@ -5425,13 +5434,9 @@ var DataTable = /*#__PURE__*/React.forwardRef(function (inProps, ref) {
5425
5434
  'p-datatable-hoverable-rows': props.rowHover,
5426
5435
  'p-datatable-selectable': selectable && !props.cellSelection,
5427
5436
  'p-datatable-selectable-cell': selectable && props.cellSelection,
5428
- 'p-datatable-auto-layout': props.autoLayout,
5429
5437
  'p-datatable-resizable': props.resizableColumns,
5430
5438
  'p-datatable-resizable-fit': props.resizableColumns && props.columnResizeMode === 'fit',
5431
5439
  'p-datatable-scrollable': props.scrollable,
5432
- 'p-datatable-scrollable-vertical': props.scrollable && props.scrollDirection === 'vertical',
5433
- 'p-datatable-scrollable-horizontal': props.scrollable && props.scrollDirection === 'horizontal',
5434
- 'p-datatable-scrollable-both': props.scrollable && props.scrollDirection === 'both',
5435
5440
  'p-datatable-flex-scrollable': props.scrollable && props.scrollHeight === 'flex',
5436
5441
  'p-datatable-responsive-stack': props.responsiveLayout === 'stack',
5437
5442
  'p-datatable-responsive-scroll': props.responsiveLayout === 'scroll',