primereact 10.9.6 → 10.9.7

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 (145) hide show
  1. package/accordion/accordion.cjs.js +3 -2
  2. package/accordion/accordion.cjs.min.js +1 -1
  3. package/accordion/accordion.esm.js +3 -2
  4. package/accordion/accordion.esm.min.js +1 -1
  5. package/accordion/accordion.js +3 -2
  6. package/accordion/accordion.min.js +1 -1
  7. package/api/api.d.ts +4 -0
  8. package/autocomplete/autocomplete.cjs.js +2 -1
  9. package/autocomplete/autocomplete.cjs.min.js +1 -1
  10. package/autocomplete/autocomplete.esm.js +2 -1
  11. package/autocomplete/autocomplete.esm.min.js +1 -1
  12. package/autocomplete/autocomplete.js +2 -1
  13. package/autocomplete/autocomplete.min.js +1 -1
  14. package/calendar/calendar.cjs.js +9 -8
  15. package/calendar/calendar.cjs.min.js +1 -1
  16. package/calendar/calendar.esm.js +9 -8
  17. package/calendar/calendar.esm.min.js +1 -1
  18. package/calendar/calendar.js +9 -8
  19. package/calendar/calendar.min.js +1 -1
  20. package/carousel/carousel.cjs.js +9 -1
  21. package/carousel/carousel.cjs.min.js +1 -1
  22. package/carousel/carousel.esm.js +9 -1
  23. package/carousel/carousel.esm.min.js +1 -1
  24. package/carousel/carousel.js +9 -1
  25. package/carousel/carousel.min.js +1 -1
  26. package/cascadeselect/cascadeselect.cjs.js +2 -1
  27. package/cascadeselect/cascadeselect.cjs.min.js +1 -1
  28. package/cascadeselect/cascadeselect.esm.js +2 -1
  29. package/cascadeselect/cascadeselect.esm.min.js +1 -1
  30. package/cascadeselect/cascadeselect.js +2 -1
  31. package/cascadeselect/cascadeselect.min.js +1 -1
  32. package/colorpicker/colorpicker.cjs.js +2 -1
  33. package/colorpicker/colorpicker.cjs.min.js +1 -1
  34. package/colorpicker/colorpicker.esm.js +2 -1
  35. package/colorpicker/colorpicker.esm.min.js +1 -1
  36. package/colorpicker/colorpicker.js +2 -1
  37. package/colorpicker/colorpicker.min.js +1 -1
  38. package/componentbase/componentbase.cjs.js +1 -1
  39. package/componentbase/componentbase.cjs.min.js +1 -1
  40. package/componentbase/componentbase.esm.js +1 -1
  41. package/componentbase/componentbase.esm.min.js +1 -1
  42. package/componentbase/componentbase.js +1 -1
  43. package/componentbase/componentbase.min.js +1 -1
  44. package/contextmenu/contextmenu.cjs.js +8 -6
  45. package/contextmenu/contextmenu.cjs.min.js +1 -1
  46. package/contextmenu/contextmenu.esm.js +8 -6
  47. package/contextmenu/contextmenu.esm.min.js +1 -1
  48. package/contextmenu/contextmenu.js +8 -6
  49. package/contextmenu/contextmenu.min.js +1 -1
  50. package/core/core.js +35 -23
  51. package/core/core.min.js +5 -5
  52. package/datatable/datatable.cjs.js +65 -39
  53. package/datatable/datatable.cjs.min.js +1 -1
  54. package/datatable/datatable.d.ts +66 -7
  55. package/datatable/datatable.esm.js +65 -39
  56. package/datatable/datatable.esm.min.js +1 -1
  57. package/datatable/datatable.js +66 -40
  58. package/datatable/datatable.min.js +1 -1
  59. package/dialog/dialog.cjs.js +3 -3
  60. package/dialog/dialog.cjs.min.js +1 -1
  61. package/dialog/dialog.esm.js +3 -3
  62. package/dialog/dialog.esm.min.js +1 -1
  63. package/dialog/dialog.js +3 -3
  64. package/dialog/dialog.min.js +1 -1
  65. package/dropdown/dropdown.cjs.js +4 -2
  66. package/dropdown/dropdown.cjs.min.js +1 -1
  67. package/dropdown/dropdown.esm.js +4 -2
  68. package/dropdown/dropdown.esm.min.js +1 -1
  69. package/dropdown/dropdown.js +4 -2
  70. package/dropdown/dropdown.min.js +1 -1
  71. package/inputnumber/inputnumber.cjs.js +5 -1
  72. package/inputnumber/inputnumber.cjs.min.js +1 -1
  73. package/inputnumber/inputnumber.esm.js +5 -1
  74. package/inputnumber/inputnumber.esm.min.js +1 -1
  75. package/inputnumber/inputnumber.js +5 -1
  76. package/inputnumber/inputnumber.min.js +1 -1
  77. package/inputotp/inputotp.cjs.js +11 -7
  78. package/inputotp/inputotp.cjs.min.js +1 -1
  79. package/inputotp/inputotp.esm.js +11 -7
  80. package/inputotp/inputotp.esm.min.js +1 -1
  81. package/inputotp/inputotp.js +11 -7
  82. package/inputotp/inputotp.min.js +1 -1
  83. package/megamenu/megamenu.cjs.js +19 -12
  84. package/megamenu/megamenu.cjs.min.js +1 -1
  85. package/megamenu/megamenu.esm.js +19 -12
  86. package/megamenu/megamenu.esm.min.js +1 -1
  87. package/megamenu/megamenu.js +19 -12
  88. package/megamenu/megamenu.min.js +1 -1
  89. package/mention/mention.cjs.js +3 -2
  90. package/mention/mention.cjs.min.js +1 -1
  91. package/mention/mention.esm.js +3 -2
  92. package/mention/mention.esm.min.js +1 -1
  93. package/mention/mention.js +3 -2
  94. package/mention/mention.min.js +1 -1
  95. package/menubar/menubar.cjs.js +8 -3
  96. package/menubar/menubar.cjs.min.js +1 -1
  97. package/menubar/menubar.esm.js +8 -3
  98. package/menubar/menubar.esm.min.js +1 -1
  99. package/menubar/menubar.js +8 -3
  100. package/menubar/menubar.min.js +1 -1
  101. package/multiselect/multiselect.cjs.js +3 -1
  102. package/multiselect/multiselect.cjs.min.js +1 -1
  103. package/multiselect/multiselect.esm.js +3 -1
  104. package/multiselect/multiselect.esm.min.js +1 -1
  105. package/multiselect/multiselect.js +3 -1
  106. package/multiselect/multiselect.min.js +1 -1
  107. package/multistatecheckbox/multistatecheckbox.d.ts +10 -0
  108. package/package.json +1 -1
  109. package/primereact.all.cjs.js +187 -111
  110. package/primereact.all.cjs.min.js +1 -1
  111. package/primereact.all.esm.js +187 -111
  112. package/primereact.all.esm.min.js +1 -1
  113. package/primereact.all.js +187 -111
  114. package/primereact.all.min.js +1 -1
  115. package/slidemenu/slidemenu.cjs.js +6 -4
  116. package/slidemenu/slidemenu.cjs.min.js +1 -1
  117. package/slidemenu/slidemenu.esm.js +6 -4
  118. package/slidemenu/slidemenu.esm.min.js +1 -1
  119. package/slidemenu/slidemenu.js +6 -4
  120. package/slidemenu/slidemenu.min.js +1 -1
  121. package/splitbutton/splitbutton.cjs.js +11 -5
  122. package/splitbutton/splitbutton.cjs.min.js +1 -1
  123. package/splitbutton/splitbutton.esm.js +11 -5
  124. package/splitbutton/splitbutton.esm.min.js +1 -1
  125. package/splitbutton/splitbutton.js +11 -5
  126. package/splitbutton/splitbutton.min.js +1 -1
  127. package/tieredmenu/tieredmenu.cjs.js +9 -4
  128. package/tieredmenu/tieredmenu.cjs.min.js +1 -1
  129. package/tieredmenu/tieredmenu.esm.js +9 -4
  130. package/tieredmenu/tieredmenu.esm.min.js +1 -1
  131. package/tieredmenu/tieredmenu.js +9 -4
  132. package/tieredmenu/tieredmenu.min.js +1 -1
  133. package/togglebutton/togglebutton.cjs.js +3 -3
  134. package/togglebutton/togglebutton.cjs.min.js +1 -1
  135. package/togglebutton/togglebutton.esm.js +3 -3
  136. package/togglebutton/togglebutton.esm.min.js +1 -1
  137. package/togglebutton/togglebutton.js +3 -3
  138. package/togglebutton/togglebutton.min.js +1 -1
  139. package/tree/tree.cjs.js +22 -16
  140. package/tree/tree.cjs.min.js +1 -1
  141. package/tree/tree.esm.js +22 -16
  142. package/tree/tree.esm.min.js +1 -1
  143. package/tree/tree.js +22 -16
  144. package/tree/tree.min.js +1 -1
  145. package/web-types.json +19 -1
@@ -19,7 +19,6 @@ var chevrondown = require('primereact/icons/chevrondown');
19
19
  var chevronright = require('primereact/icons/chevronright');
20
20
  var pencil = require('primereact/icons/pencil');
21
21
  var times = require('primereact/icons/times');
22
- var overlayservice = require('primereact/overlayservice');
23
22
  var ripple = require('primereact/ripple');
24
23
  var tooltip = require('primereact/tooltip');
25
24
  var button = require('primereact/button');
@@ -30,6 +29,7 @@ var filterslash = require('primereact/icons/filterslash');
30
29
  var plus = require('primereact/icons/plus');
31
30
  var trash = require('primereact/icons/trash');
32
31
  var inputtext = require('primereact/inputtext');
32
+ var overlayservice = require('primereact/overlayservice');
33
33
  var portal = require('primereact/portal');
34
34
  var sortalt = require('primereact/icons/sortalt');
35
35
  var sortamountdown = require('primereact/icons/sortamountdown');
@@ -489,6 +489,9 @@ var DataTableBase = componentbase.ComponentBase.extend({
489
489
  alwaysShowPaginator: true,
490
490
  breakpoint: '960px',
491
491
  cellClassName: null,
492
+ cellMemo: true,
493
+ cellMemoProps: ['rowData', 'field', 'allowCellSelection', 'isCellSelected', 'editMode', 'index', 'tabIndex', 'editing', 'expanded', 'editingMeta', 'frozenCol', 'alignFrozenCol'],
494
+ cellMemoPropsDepth: 1,
492
495
  cellSelection: false,
493
496
  checkIcon: null,
494
497
  className: null,
@@ -1191,8 +1194,6 @@ var Cell = function Cell(props) {
1191
1194
  setStyleObjectState = _React$useState6[1];
1192
1195
  var elementRef = React__namespace.useRef(null);
1193
1196
  var keyHelperRef = React__namespace.useRef(null);
1194
- var overlayEventListener = React__namespace.useRef(null);
1195
- var selfClick = React__namespace.useRef(false);
1196
1197
  var focusTimeout = React__namespace.useRef(null);
1197
1198
  var initFocusTimeout = React__namespace.useRef(null);
1198
1199
  var editingRowDataStateRef = React__namespace.useRef(null);
@@ -1229,17 +1230,20 @@ var Cell = function Cell(props) {
1229
1230
  var cellEditValidateOnClose = function cellEditValidateOnClose() {
1230
1231
  return getColumnProp('cellEditValidateOnClose');
1231
1232
  };
1233
+ var isIgnoredElement = function isIgnoredElement(element) {
1234
+ var isOverlay = function isOverlay(el) {
1235
+ return el.getAttribute && el.getAttribute('data-pr-is-overlay');
1236
+ };
1237
+ return isOverlay(element) || utils.DomHandler.getParents(element).find(function (el) {
1238
+ return isOverlay(el);
1239
+ });
1240
+ };
1232
1241
  var _useEventListener = hooks.useEventListener({
1233
1242
  type: 'click',
1234
1243
  listener: function listener(e) {
1235
- setTimeout(function () {
1236
- if (!selfClick.current && isOutsideClicked(e.target)) {
1237
- // #2666 for overlay components and outside is clicked
1238
-
1239
- switchCellToViewMode(e, true);
1240
- }
1241
- }, 0);
1242
- selfClick.current = false;
1244
+ if (!isIgnoredElement(e.target) && isOutsideClicked(e.target)) {
1245
+ switchCellToViewMode(e, true);
1246
+ }
1243
1247
  },
1244
1248
  options: true,
1245
1249
  when: isEditable()
@@ -1284,10 +1288,6 @@ var Cell = function Cell(props) {
1284
1288
  setTimeout(function () {
1285
1289
  setEditingState(false);
1286
1290
  unbindDocumentClickListener();
1287
- overlayservice.OverlayService.off('overlay-click', overlayEventListener.current);
1288
- overlayEventListener.current = null;
1289
- editingRowDataStateRef.current = null;
1290
- selfClick.current = false;
1291
1291
  }, 1);
1292
1292
  };
1293
1293
  var switchCellToViewMode = function switchCellToViewMode(event, submit) {
@@ -1331,7 +1331,7 @@ var Cell = function Cell(props) {
1331
1331
  editingRowDataStateRef.current = editingRowData;
1332
1332
  };
1333
1333
  var _onClick = function onClick(event) {
1334
- props.onClick(event, getCellCallbackParams(event), isEditable(), editingState, setEditingState, selfClick, props.column, bindDocumentClickListener, overlayEventListener, isOutsideClicked);
1334
+ props.onClick(event, getCellCallbackParams(event), isEditable(), editingState, setEditingState, props.column, bindDocumentClickListener);
1335
1335
  };
1336
1336
  var _onMouseDown = function onMouseDown(event) {
1337
1337
  var params = getCellCallbackParams(event);
@@ -1403,7 +1403,6 @@ var Cell = function Cell(props) {
1403
1403
  }
1404
1404
  };
1405
1405
  var _onBlur = function onBlur(event) {
1406
- selfClick.current = false;
1407
1406
  if (props.editMode !== 'row' && editingState && getColumnProp('cellEditValidatorEvent') === 'blur') {
1408
1407
  switchCellToViewMode(event, true);
1409
1408
  }
@@ -1484,9 +1483,8 @@ var Cell = function Cell(props) {
1484
1483
  // eslint-disable-next-line react-hooks/exhaustive-deps
1485
1484
  }, [editingState]);
1486
1485
  hooks.useUnmountEffect(function () {
1487
- if (overlayEventListener.current) {
1488
- overlayservice.OverlayService.off('overlay-click', overlayEventListener.current);
1489
- overlayEventListener.current = null;
1486
+ if (editingRowDataStateRef.current) {
1487
+ editingRowDataStateRef.current = null;
1490
1488
  }
1491
1489
  });
1492
1490
  var createLoading = function createLoading() {
@@ -1790,6 +1788,7 @@ var Cell = function Cell(props) {
1790
1788
  var RadioCheckCell = /*#__PURE__*/React__namespace.memo(function (props) {
1791
1789
  return /*#__PURE__*/React__namespace.createElement(Cell, props);
1792
1790
  }, function (prevProps, nextProps) {
1791
+ if (nextProps.cellMemo === false) return false;
1793
1792
  var keysToCompare = ['isRowSelected', 'field', 'allowCellSelection', 'isCellSelected', 'editMode', 'index', 'tabIndex', 'editing', 'expanded', 'editingMeta', 'rowData'];
1794
1793
  return utils.ObjectUtils.selectiveCompare(prevProps, nextProps, keysToCompare);
1795
1794
  });
@@ -2273,8 +2272,13 @@ var BodyRow = /*#__PURE__*/React__namespace.memo(function (props) {
2273
2272
  } else {
2274
2273
  var left = 0;
2275
2274
  var prev = elementRef.current && elementRef.current.previousElementSibling;
2276
- if (prev && prev.classList.contains('p-frozen-column')) {
2277
- left = utils.DomHandler.getOuterWidth(prev) + parseFloat(prev.style.left || 0);
2275
+ while (prev) {
2276
+ if (prev.classList.contains('p-frozen-column')) {
2277
+ left = utils.DomHandler.getOuterWidth(prev) + parseFloat(prev.style.left || 0);
2278
+ elementRef.current.style.left = left + 'px';
2279
+ break;
2280
+ }
2281
+ prev = prev.previousElementSibling;
2278
2282
  }
2279
2283
  styleObject.left = left + 'px';
2280
2284
  }
@@ -2282,9 +2286,8 @@ var BodyRow = /*#__PURE__*/React__namespace.memo(function (props) {
2282
2286
  !isSameStyle && setStyleObjectState(styleObject);
2283
2287
  }
2284
2288
  }, []);
2285
- var onCellClick = function onCellClick(event, params, isEditable, editingState, setEditingState, selfClick, column, bindDocumentClickListener, overlayEventListener, isOutsideClicked) {
2289
+ var onCellClick = function onCellClick(event, params, isEditable, editingState, setEditingState, column, bindDocumentClickListener) {
2286
2290
  if (props.editMode !== 'row' && isEditable && !editingState && (props.selectOnEdit || !props.selectOnEdit && props.isRowSelected)) {
2287
- selfClick.current = true;
2288
2291
  var onBeforeCellEditShow = getColumnProp(column, 'onBeforeCellEditShow');
2289
2292
  var onCellEditInit = getColumnProp(column, 'onCellEditInit');
2290
2293
  var cellEditValidatorEvent = getColumnProp(column, 'cellEditValidatorEvent');
@@ -2315,12 +2318,6 @@ var BodyRow = /*#__PURE__*/React__namespace.memo(function (props) {
2315
2318
  }
2316
2319
  if (cellEditValidatorEvent === 'click') {
2317
2320
  bindDocumentClickListener();
2318
- overlayEventListener.current = function (e) {
2319
- if (!isOutsideClicked(e.target)) {
2320
- selfClick.current = true;
2321
- }
2322
- };
2323
- overlayservice.OverlayService.on('overlay-click', overlayEventListener.current);
2324
2321
  }
2325
2322
  }, 1);
2326
2323
  }
@@ -3680,16 +3677,21 @@ var FooterCell = /*#__PURE__*/React__namespace.memo(function (props) {
3680
3677
  var _align = getColumnProp('alignFrozen');
3681
3678
  if (_align === 'right') {
3682
3679
  var right = 0;
3683
- var next = elementRef.current.nextElementSibling;
3680
+ var next = elementRef.current && elementRef.current.nextElementSibling;
3684
3681
  if (next && next.classList.contains('p-frozen-column')) {
3685
3682
  right = utils.DomHandler.getOuterWidth(next) + parseFloat(next.style.right || 0);
3686
3683
  }
3687
3684
  styleObject.right = right + 'px';
3688
3685
  } else {
3689
3686
  var left = 0;
3690
- var prev = elementRef.current.previousElementSibling;
3691
- if (prev && prev.classList.contains('p-frozen-column')) {
3692
- left = utils.DomHandler.getOuterWidth(prev) + parseFloat(prev.style.left || 0);
3687
+ var prev = elementRef.current && elementRef.current.previousElementSibling;
3688
+ while (prev) {
3689
+ if (prev && prev.classList.contains('p-frozen-column')) {
3690
+ left = utils.DomHandler.getOuterWidth(prev) + parseFloat(prev.style.left || 0);
3691
+ elementRef.current.style.left = left + 'px';
3692
+ break;
3693
+ }
3694
+ prev = prev.previousElementSibling;
3693
3695
  }
3694
3696
  styleObject.left = left + 'px';
3695
3697
  }
@@ -4372,7 +4374,7 @@ var ColumnFilter = /*#__PURE__*/React__namespace.memo(function (props) {
4372
4374
  };
4373
4375
  } else {
4374
4376
  filters[field].value = null;
4375
- filters[field].matchMode = defaultConstraint.matchMode;
4377
+ filters[field].matchMode = defaultConstraint ? defaultConstraint.matchMode : filters[field].matchMode;
4376
4378
  }
4377
4379
  filterClearCallback && filterClearCallback();
4378
4380
  props.onFilterChange(filters);
@@ -4439,6 +4441,7 @@ var ColumnFilter = /*#__PURE__*/React__namespace.memo(function (props) {
4439
4441
  }
4440
4442
  };
4441
4443
  var onRowMatchModeChange = function onRowMatchModeChange(matchMode) {
4444
+ var _iconRef$current;
4442
4445
  var filterMatchModeChangeCallback = getColumnProp('onFilterMatchModeChange');
4443
4446
  var filters = _objectSpread$4({}, props.filters);
4444
4447
  filters[field].matchMode = matchMode;
@@ -4449,6 +4452,7 @@ var ColumnFilter = /*#__PURE__*/React__namespace.memo(function (props) {
4449
4452
  props.onFilterChange(filters);
4450
4453
  props.onFilterApply();
4451
4454
  hide();
4455
+ (_iconRef$current = iconRef.current) === null || _iconRef$current === void 0 || _iconRef$current.focus();
4452
4456
  };
4453
4457
  var onRowMatchModeKeyDown = function onRowMatchModeKeyDown(event, matchMode, clear) {
4454
4458
  var item = event.target;
@@ -5208,16 +5212,21 @@ var HeaderCell = /*#__PURE__*/React__namespace.memo(function (props) {
5208
5212
  var align = getColumnProp('alignFrozen');
5209
5213
  if (align === 'right') {
5210
5214
  var right = 0;
5211
- var next = elementRef.current.nextElementSibling;
5215
+ var next = elementRef.current && elementRef.current.nextElementSibling;
5212
5216
  if (next && next.classList.contains('p-frozen-column')) {
5213
5217
  right = utils.DomHandler.getOuterWidth(next) + parseFloat(next.style.right || 0);
5214
5218
  }
5215
5219
  styleObject.right = right + 'px';
5216
5220
  } else {
5217
5221
  var left = 0;
5218
- var prev = elementRef.current.previousElementSibling;
5219
- if (prev && prev.classList.contains('p-frozen-column')) {
5220
- left = utils.DomHandler.getOuterWidth(prev) + parseFloat(prev.style.left || 0);
5222
+ var prev = elementRef.current && elementRef.current.previousElementSibling;
5223
+ while (prev) {
5224
+ if (prev && prev.classList.contains('p-frozen-column')) {
5225
+ left = utils.DomHandler.getOuterWidth(prev) + parseFloat(prev.style.left || 0);
5226
+ elementRef.current.style.left = left + 'px';
5227
+ break;
5228
+ }
5229
+ prev = prev.previousElementSibling;
5221
5230
  }
5222
5231
  styleObject.left = left + 'px';
5223
5232
  }
@@ -6068,6 +6077,20 @@ var DataTable = /*#__PURE__*/React__namespace.forwardRef(function (inProps, ref)
6068
6077
  multiSortMeta: restoredState.multiSortMeta
6069
6078
  }));
6070
6079
  } else {
6080
+ var lastMeta = restoredState.multiSortMeta[restoredState.multiSortMeta.length - 1];
6081
+ var field = lastMeta && lastMeta.field ? lastMeta.field : null;
6082
+ if (field) {
6083
+ var sortColumn = findColumnByKey(getColumns(), field);
6084
+ if (sortColumn) {
6085
+ var sortFunction = getColumnProp(sortColumn, 'sortFunction');
6086
+ var sortable = getColumnProp(sortColumn, 'sortable');
6087
+ if (sortFunction && sortable) {
6088
+ columnSortFunction.current = sortFunction;
6089
+ columnSortable.current = sortable;
6090
+ columnField.current = field;
6091
+ }
6092
+ }
6093
+ }
6071
6094
  setMultiSortMetaState(restoredState.multiSortMeta);
6072
6095
  }
6073
6096
  }
@@ -7183,6 +7206,9 @@ var DataTable = /*#__PURE__*/React__namespace.forwardRef(function (inProps, ref)
7183
7206
  },
7184
7207
  getVirtualScroller: function getVirtualScroller() {
7185
7208
  return virtualScrollerRef.current;
7209
+ },
7210
+ getProcessedData: function getProcessedData() {
7211
+ return processedData();
7186
7212
  }
7187
7213
  };
7188
7214
  });