primereact 8.7.1 → 8.7.2

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 (94) hide show
  1. package/autocomplete/autocomplete.cjs.js +6 -2
  2. package/autocomplete/autocomplete.cjs.min.js +1 -1
  3. package/autocomplete/autocomplete.d.ts +1 -0
  4. package/autocomplete/autocomplete.esm.js +6 -2
  5. package/autocomplete/autocomplete.esm.min.js +1 -1
  6. package/autocomplete/autocomplete.js +6 -2
  7. package/autocomplete/autocomplete.min.js +1 -1
  8. package/calendar/calendar.cjs.js +21 -5
  9. package/calendar/calendar.cjs.min.js +1 -1
  10. package/calendar/calendar.esm.js +21 -5
  11. package/calendar/calendar.esm.min.js +1 -1
  12. package/calendar/calendar.js +21 -5
  13. package/calendar/calendar.min.js +1 -1
  14. package/column/column.d.ts +1 -0
  15. package/core/core.js +23 -11
  16. package/core/core.min.js +6 -6
  17. package/inputnumber/inputnumber.cjs.js +12 -1
  18. package/inputnumber/inputnumber.cjs.min.js +1 -1
  19. package/inputnumber/inputnumber.d.ts +1 -0
  20. package/inputnumber/inputnumber.esm.js +12 -1
  21. package/inputnumber/inputnumber.esm.min.js +1 -1
  22. package/inputnumber/inputnumber.js +12 -1
  23. package/inputnumber/inputnumber.min.js +1 -1
  24. package/inputtext/inputtext.cjs.js +4 -4
  25. package/inputtext/inputtext.cjs.min.js +1 -1
  26. package/inputtext/inputtext.d.ts +5 -3
  27. package/inputtext/inputtext.esm.js +4 -4
  28. package/inputtext/inputtext.esm.min.js +1 -1
  29. package/inputtext/inputtext.js +4 -4
  30. package/inputtext/inputtext.min.js +1 -1
  31. package/inputtextarea/inputtextarea.cjs.js +28 -2
  32. package/inputtextarea/inputtextarea.cjs.min.js +1 -1
  33. package/inputtextarea/inputtextarea.d.ts +6 -2
  34. package/inputtextarea/inputtextarea.esm.js +28 -2
  35. package/inputtextarea/inputtextarea.esm.min.js +1 -1
  36. package/inputtextarea/inputtextarea.js +29 -4
  37. package/inputtextarea/inputtextarea.min.js +1 -1
  38. package/keyfilter/keyfilter.cjs.js +2 -1
  39. package/keyfilter/keyfilter.cjs.min.js +1 -1
  40. package/keyfilter/keyfilter.esm.js +2 -1
  41. package/keyfilter/keyfilter.esm.min.js +1 -1
  42. package/keyfilter/keyfilter.js +2 -1
  43. package/keyfilter/keyfilter.min.js +1 -1
  44. package/mention/mention.cjs.js +28 -2
  45. package/mention/mention.cjs.min.js +1 -1
  46. package/mention/mention.esm.js +28 -2
  47. package/mention/mention.esm.min.js +1 -1
  48. package/mention/mention.js +29 -4
  49. package/mention/mention.min.js +1 -1
  50. package/package.json +1 -1
  51. package/primereact.all.cjs.js +92 -30
  52. package/primereact.all.cjs.min.js +1 -1
  53. package/primereact.all.esm.js +92 -30
  54. package/primereact.all.esm.min.js +1 -1
  55. package/primereact.all.js +92 -30
  56. package/primereact.all.min.js +1 -1
  57. package/ripple/ripple.cjs.js +0 -1
  58. package/ripple/ripple.cjs.min.js +1 -1
  59. package/ripple/ripple.esm.js +0 -1
  60. package/ripple/ripple.esm.min.js +1 -1
  61. package/ripple/ripple.js +0 -1
  62. package/ripple/ripple.min.js +1 -1
  63. package/splitter/splitter.cjs.js +1 -1
  64. package/splitter/splitter.cjs.min.js +1 -1
  65. package/splitter/splitter.esm.js +1 -1
  66. package/splitter/splitter.esm.min.js +1 -1
  67. package/splitter/splitter.js +1 -1
  68. package/splitter/splitter.min.js +1 -1
  69. package/tieredmenu/tieredmenu.cjs.js +11 -7
  70. package/tieredmenu/tieredmenu.cjs.min.js +1 -1
  71. package/tieredmenu/tieredmenu.esm.js +11 -7
  72. package/tieredmenu/tieredmenu.esm.min.js +1 -1
  73. package/tieredmenu/tieredmenu.js +11 -7
  74. package/tieredmenu/tieredmenu.min.js +1 -1
  75. package/tooltip/tooltip.cjs.js +3 -4
  76. package/tooltip/tooltip.cjs.min.js +1 -1
  77. package/tooltip/tooltip.esm.js +3 -4
  78. package/tooltip/tooltip.esm.min.js +1 -1
  79. package/tooltip/tooltip.js +3 -4
  80. package/tooltip/tooltip.min.js +1 -1
  81. package/treetable/treetable.cjs.js +3 -2
  82. package/treetable/treetable.cjs.min.js +1 -1
  83. package/treetable/treetable.esm.js +3 -2
  84. package/treetable/treetable.esm.min.js +1 -1
  85. package/treetable/treetable.js +3 -2
  86. package/treetable/treetable.min.js +1 -1
  87. package/utils/utils.cjs.js +2 -0
  88. package/utils/utils.cjs.min.js +1 -1
  89. package/utils/utils.d.ts +1 -1
  90. package/utils/utils.esm.js +2 -0
  91. package/utils/utils.esm.min.js +1 -1
  92. package/utils/utils.js +2 -0
  93. package/utils/utils.min.js +1 -1
  94. package/web-types.json +15 -3
@@ -1970,6 +1970,8 @@ var ObjectUtils = /*#__PURE__*/function () {
1970
1970
  if (data && Object.keys(data).length && field) {
1971
1971
  if (this.isFunction(field)) {
1972
1972
  return field(data);
1973
+ } else if (ObjectUtils.isNotEmpty(data[field])) {
1974
+ return data[field];
1973
1975
  } else if (field.indexOf('.') === -1) {
1974
1976
  return data[field];
1975
1977
  } else {
@@ -3648,7 +3650,6 @@ var Ripple = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function ()
3648
3650
  };
3649
3651
 
3650
3652
  var onTouchStart = function onTouchStart(event) {
3651
- isTouching.current = true;
3652
3653
  var offset = DomHandler.getOffset(targetRef.current);
3653
3654
  var offsetX = event.targetTouches[0].pageX - offset.left + document.body.scrollTop - DomHandler.getWidth(inkRef.current) / 2;
3654
3655
  var offsetY = event.targetTouches[0].pageY - offset.top + document.body.scrollLeft - DomHandler.getHeight(inkRef.current) / 2;
@@ -4193,14 +4194,13 @@ var Tooltip = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (p
4193
4194
  }
4194
4195
  };
4195
4196
 
4196
- React.useEffect(function () {
4197
+ useMountEffect(function () {
4198
+ loadTargetEvents();
4199
+
4197
4200
  if (visibleState && currentTargetRef.current && isDisabled(currentTargetRef.current)) {
4198
4201
  hide();
4199
4202
  }
4200
4203
  });
4201
- useMountEffect(function () {
4202
- loadTargetEvents();
4203
- });
4204
4204
  useUpdateEffect(function () {
4205
4205
  loadTargetEvents();
4206
4206
  return function () {
@@ -4471,8 +4471,9 @@ var KeyFilter = {
4471
4471
  validate: function validate(e, keyfilter) {
4472
4472
  var value = e.target.value,
4473
4473
  validatePattern = true;
4474
+ var regex = this.getRegex(keyfilter);
4474
4475
 
4475
- if (value && !keyfilter.test(value)) {
4476
+ if (value && !regex.test(value)) {
4476
4477
  validatePattern = false;
4477
4478
  }
4478
4479
 
@@ -4483,8 +4484,8 @@ var KeyFilter = {
4483
4484
  var InputText = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (props, ref) {
4484
4485
  var elementRef = React.useRef(ref);
4485
4486
 
4486
- var onKeyPress = function onKeyPress(event) {
4487
- props.onKeyPress && props.onKeyPress(event);
4487
+ var onKeyDown = function onKeyDown(event) {
4488
+ props.onKeyDown && props.onKeyDown(event);
4488
4489
 
4489
4490
  if (props.keyfilter) {
4490
4491
  KeyFilter.onKeyPress(event, props.keyfilter, props.validateOnly);
@@ -4532,7 +4533,7 @@ var InputText = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function
4532
4533
  }, otherProps, {
4533
4534
  className: className,
4534
4535
  onInput: onInput,
4535
- onKeyPress: onKeyPress,
4536
+ onKeyDown: onKeyDown,
4536
4537
  onPaste: onPaste
4537
4538
  })), hasTooltip && /*#__PURE__*/React.createElement(Tooltip, _extends({
4538
4539
  target: elementRef,
@@ -4547,7 +4548,7 @@ InputText.defaultProps = {
4547
4548
  tooltip: null,
4548
4549
  tooltipOptions: null,
4549
4550
  onInput: null,
4550
- onKeyPress: null,
4551
+ onKeyDown: null,
4551
4552
  onPaste: null
4552
4553
  };
4553
4554
 
@@ -5656,8 +5657,11 @@ var AutoComplete = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(functi
5656
5657
  inputRef.current.value = '';
5657
5658
 
5658
5659
  if (!isSelected(option)) {
5659
- var newValue = props.value ? [].concat(_toConsumableArray(props.value), [option]) : [option];
5660
- updateModel(event, newValue);
5660
+ // allows empty value/selectionlimit and within sectionlimit
5661
+ if (!props.value || !props.selectionLimit || props.value.length < props.selectionLimit) {
5662
+ var newValue = props.value ? [].concat(_toConsumableArray(props.value), [option]) : [option];
5663
+ updateModel(event, newValue);
5664
+ }
5661
5665
  }
5662
5666
  } else {
5663
5667
  updateInputField(option);
@@ -6259,6 +6263,7 @@ AutoComplete.defaultProps = {
6259
6263
  removeIcon: 'pi pi-times-circle',
6260
6264
  scrollHeight: '200px',
6261
6265
  selectedItemTemplate: null,
6266
+ selectionLimit: null,
6262
6267
  showEmptyMessage: false,
6263
6268
  size: null,
6264
6269
  style: null,
@@ -8648,7 +8653,7 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
8648
8653
  if (value) {
8649
8654
  try {
8650
8655
  if (isSingleSelection()) {
8651
- formattedValue = isValidDate(value) ? formatDateTime(value) : '';
8656
+ formattedValue = isValidDate(value) ? formatDateTime(value) : props.keepInvalid ? value : '';
8652
8657
  } else if (isMultipleSelection()) {
8653
8658
  for (var i = 0; i < value.length; i++) {
8654
8659
  var selectedValue = value[i];
@@ -9209,10 +9214,26 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
9209
9214
  updateInputfield(newDate); // #3516 view date not updated when value set programatically
9210
9215
 
9211
9216
  if (!visible && newDate) {
9212
- validateDate(newDate);
9213
- setViewDateState(newDate);
9214
- setCurrentMonth(newDate.getMonth());
9215
- setCurrentYear(newDate.getFullYear());
9217
+ var viewDate = newDate;
9218
+
9219
+ if (isMultipleSelection()) {
9220
+ if (newDate.length) {
9221
+ viewDate = newDate[newDate.length - 1];
9222
+ }
9223
+ } else if (isRangeSelection()) {
9224
+ if (newDate.length) {
9225
+ var startDate = newDate[0];
9226
+ var endDate = newDate[1];
9227
+ viewDate = endDate || startDate;
9228
+ }
9229
+ }
9230
+
9231
+ if (viewDate instanceof Date) {
9232
+ validateDate(viewDate);
9233
+ setViewDateState(viewDate);
9234
+ setCurrentMonth(viewDate.getMonth());
9235
+ setCurrentYear(viewDate.getFullYear());
9236
+ }
9216
9237
  }
9217
9238
  }
9218
9239
  }, [props.value, visible]);
@@ -15021,7 +15042,12 @@ var InputNumber = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(functio
15021
15042
  if (inputRef.current) {
15022
15043
  var step = props.step * dir;
15023
15044
  var currentValue = parseValue(inputRef.current.value) || 0;
15024
- var newValue = validateValue(currentValue + step); // touch devices trigger the keyboard to display because of setSelectionRange
15045
+ var newValue = validateValue(currentValue + step);
15046
+
15047
+ if (props.maxLength && props.maxLength < formatValue(newValue).length) {
15048
+ return;
15049
+ } // touch devices trigger the keyboard to display because of setSelectionRange
15050
+
15025
15051
 
15026
15052
  !DomHandler.isTouchDevice() && updateInput(newValue, null, 'spin');
15027
15053
  updateModel(event, newValue);
@@ -15626,6 +15652,11 @@ var InputNumber = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(functio
15626
15652
  } else {
15627
15653
  var selectionStart = inputEl.selectionStart;
15628
15654
  var _selectionEnd = inputEl.selectionEnd;
15655
+
15656
+ if (props.maxLength && props.maxLength < newValue.length) {
15657
+ return;
15658
+ }
15659
+
15629
15660
  inputEl.value = newValue;
15630
15661
  var newLength = newValue.length;
15631
15662
 
@@ -15943,6 +15974,7 @@ InputNumber.defaultProps = {
15943
15974
  localeMatcher: undefined,
15944
15975
  max: null,
15945
15976
  maxFractionDigits: undefined,
15977
+ maxLength: null,
15946
15978
  min: null,
15947
15979
  minFractionDigits: undefined,
15948
15980
  mode: 'decimal',
@@ -27749,6 +27781,22 @@ var InputTextarea = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(funct
27749
27781
  props.onKeyUp && props.onKeyUp(event);
27750
27782
  };
27751
27783
 
27784
+ var onKeyDown = function onKeyDown(event) {
27785
+ props.onKeyDown && props.onKeyDown(event);
27786
+
27787
+ if (props.keyfilter) {
27788
+ KeyFilter.onKeyPress(event, props.keyfilter, props.validateOnly);
27789
+ }
27790
+ };
27791
+
27792
+ var onPaste = function onPaste(event) {
27793
+ props.onPaste && props.onPaste(event);
27794
+
27795
+ if (props.keyfilter) {
27796
+ KeyFilter.onPaste(event, props.keyfilter, props.validateOnly);
27797
+ }
27798
+ };
27799
+
27752
27800
  var onInput = function onInput(event) {
27753
27801
  if (props.autoResize) {
27754
27802
  resize();
@@ -27810,7 +27858,9 @@ var InputTextarea = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(funct
27810
27858
  onFocus: onFocus,
27811
27859
  onBlur: onBlur,
27812
27860
  onKeyUp: onKeyUp,
27813
- onInput: onInput
27861
+ onKeyDown: onKeyDown,
27862
+ onInput: onInput,
27863
+ onPaste: onPaste
27814
27864
  })), hasTooltip && /*#__PURE__*/React.createElement(Tooltip, _extends({
27815
27865
  target: elementRef,
27816
27866
  content: props.tooltip
@@ -27820,9 +27870,16 @@ InputTextarea.displayName = 'InputTextarea';
27820
27870
  InputTextarea.defaultProps = {
27821
27871
  __TYPE: 'InputTextarea',
27822
27872
  autoResize: false,
27873
+ keyfilter: null,
27874
+ onBlur: null,
27875
+ onFocus: null,
27876
+ onInput: null,
27877
+ onKeyDown: null,
27878
+ onKeyUp: null,
27879
+ onPaste: null,
27823
27880
  tooltip: null,
27824
27881
  tooltipOptions: null,
27825
- onInput: null
27882
+ validateOnly: false
27826
27883
  };
27827
27884
 
27828
27885
  var radius = 40;
@@ -37096,7 +37153,7 @@ var Splitter = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
37096
37153
  var childrenLength = props.children && props.children.length;
37097
37154
 
37098
37155
  var panelSize = function panelSize(sizes, index) {
37099
- return index in sizes ? sizes[index] : props.children[index].props.size || 100 / childrenLength;
37156
+ return index in sizes ? sizes[index] : (props.children[index] && props.children[index].props.size || 100) / childrenLength;
37100
37157
  };
37101
37158
 
37102
37159
  var _useEventListener = useEventListener({
@@ -38612,7 +38669,7 @@ var TieredMenuSub = /*#__PURE__*/React.memo(function (props) {
38612
38669
  }
38613
38670
 
38614
38671
  if (!item.items) {
38615
- onLeafClick();
38672
+ onLeafClick(event);
38616
38673
  }
38617
38674
  };
38618
38675
 
@@ -38668,9 +38725,10 @@ var TieredMenuSub = /*#__PURE__*/React.memo(function (props) {
38668
38725
  return prevItem ? DomHandler.hasClass(prevItem, 'p-disabled') || !DomHandler.hasClass(prevItem, 'p-menuitem') ? findPrevItem(prevItem) : prevItem : null;
38669
38726
  };
38670
38727
 
38671
- var onLeafClick = function onLeafClick() {
38728
+ var onLeafClick = function onLeafClick(event) {
38672
38729
  setActiveItemState(null);
38673
- props.onLeafClick && props.onLeafClick();
38730
+ props.onLeafClick && props.onLeafClick(event);
38731
+ props.onHide && props.onHide(event);
38674
38732
  };
38675
38733
 
38676
38734
  useMountEffect(function () {
@@ -38861,9 +38919,11 @@ var TieredMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function
38861
38919
  };
38862
38920
 
38863
38921
  var hide = function hide(event) {
38864
- targetRef.current = event.currentTarget;
38865
- setVisibleState(false);
38866
- props.onHide && props.onHide(event);
38922
+ if (props.popup) {
38923
+ targetRef.current = event.currentTarget;
38924
+ setVisibleState(false);
38925
+ props.onHide && props.onHide(event);
38926
+ }
38867
38927
  };
38868
38928
 
38869
38929
  var onEnter = function onEnter() {
@@ -38932,7 +38992,8 @@ var TieredMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function
38932
38992
  menuProps: props,
38933
38993
  model: props.model,
38934
38994
  root: true,
38935
- popup: props.popup
38995
+ popup: props.popup,
38996
+ onHide: hide
38936
38997
  })));
38937
38998
  };
38938
38999
 
@@ -42542,9 +42603,10 @@ var TreeTableHeader = /*#__PURE__*/React.memo(function (props) {
42542
42603
  var headerTooltip = column.props.headerTooltip;
42543
42604
  var hasTooltip = ObjectUtils.isNotEmpty(headerTooltip);
42544
42605
  var resizer = createResizer(column);
42545
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("th", {
42606
+ return /*#__PURE__*/React.createElement(React.Fragment, {
42607
+ key: column.columnKey || column.field || options.index
42608
+ }, /*#__PURE__*/React.createElement("th", {
42546
42609
  ref: headerCellRef,
42547
- key: column.columnKey || column.field || options.index,
42548
42610
  className: className,
42549
42611
  style: column.props.headerStyle || column.props.style,
42550
42612
  tabIndex: column.props.sortable ? props.tabIndex : null,