primereact 10.9.5 → 10.9.6

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 (120) hide show
  1. package/api/api.cjs.js +9 -1
  2. package/api/api.cjs.min.js +1 -1
  3. package/api/api.d.ts +5 -3
  4. package/api/api.esm.js +9 -1
  5. package/api/api.esm.min.js +1 -1
  6. package/api/api.js +9 -1
  7. package/api/api.min.js +1 -1
  8. package/autocomplete/autocomplete.d.ts +5 -5
  9. package/calendar/calendar.cjs.js +27 -5
  10. package/calendar/calendar.cjs.min.js +1 -1
  11. package/calendar/calendar.esm.js +27 -5
  12. package/calendar/calendar.esm.min.js +1 -1
  13. package/calendar/calendar.js +27 -5
  14. package/calendar/calendar.min.js +1 -1
  15. package/cascadeselect/cascadeselect.cjs.js +53 -3
  16. package/cascadeselect/cascadeselect.cjs.min.js +1 -1
  17. package/cascadeselect/cascadeselect.d.ts +13 -0
  18. package/cascadeselect/cascadeselect.esm.js +54 -4
  19. package/cascadeselect/cascadeselect.esm.min.js +1 -1
  20. package/cascadeselect/cascadeselect.js +54 -5
  21. package/cascadeselect/cascadeselect.min.js +1 -1
  22. package/core/core.js +44 -10
  23. package/core/core.min.js +6 -6
  24. package/datatable/datatable.cjs.js +86 -58
  25. package/datatable/datatable.cjs.min.js +1 -1
  26. package/datatable/datatable.d.ts +79 -3
  27. package/datatable/datatable.esm.js +86 -58
  28. package/datatable/datatable.esm.min.js +1 -1
  29. package/datatable/datatable.js +86 -58
  30. package/datatable/datatable.min.js +1 -1
  31. package/dialog/dialog.cjs.js +3 -2
  32. package/dialog/dialog.cjs.min.js +1 -1
  33. package/dialog/dialog.d.ts +6 -1
  34. package/dialog/dialog.esm.js +3 -2
  35. package/dialog/dialog.esm.min.js +1 -1
  36. package/dialog/dialog.js +3 -2
  37. package/dialog/dialog.min.js +1 -1
  38. package/dropdown/dropdown.cjs.js +13 -3
  39. package/dropdown/dropdown.cjs.min.js +1 -1
  40. package/dropdown/dropdown.esm.js +13 -3
  41. package/dropdown/dropdown.esm.min.js +1 -1
  42. package/dropdown/dropdown.js +13 -3
  43. package/dropdown/dropdown.min.js +1 -1
  44. package/fileupload/fileupload.cjs.js +4 -2
  45. package/fileupload/fileupload.cjs.min.js +1 -1
  46. package/fileupload/fileupload.esm.js +4 -2
  47. package/fileupload/fileupload.esm.min.js +1 -1
  48. package/fileupload/fileupload.js +4 -2
  49. package/fileupload/fileupload.min.js +1 -1
  50. package/galleria/galleria.cjs.js +1 -0
  51. package/galleria/galleria.cjs.min.js +1 -1
  52. package/galleria/galleria.esm.js +1 -0
  53. package/galleria/galleria.esm.min.js +1 -1
  54. package/galleria/galleria.js +1 -0
  55. package/galleria/galleria.min.js +1 -1
  56. package/inputnumber/inputnumber.cjs.js +7 -2
  57. package/inputnumber/inputnumber.cjs.min.js +1 -1
  58. package/inputnumber/inputnumber.esm.js +7 -2
  59. package/inputnumber/inputnumber.esm.min.js +1 -1
  60. package/inputnumber/inputnumber.js +7 -2
  61. package/inputnumber/inputnumber.min.js +1 -1
  62. package/listbox/listbox.d.ts +4 -4
  63. package/menu/menu.cjs.js +3 -0
  64. package/menu/menu.cjs.min.js +1 -1
  65. package/menu/menu.esm.js +3 -0
  66. package/menu/menu.esm.min.js +1 -1
  67. package/menu/menu.js +3 -0
  68. package/menu/menu.min.js +1 -1
  69. package/multiselect/multiselect.cjs.js +61 -15
  70. package/multiselect/multiselect.cjs.min.js +1 -1
  71. package/multiselect/multiselect.esm.js +61 -15
  72. package/multiselect/multiselect.esm.min.js +1 -1
  73. package/multiselect/multiselect.js +61 -15
  74. package/multiselect/multiselect.min.js +1 -1
  75. package/multistatecheckbox/multistatecheckbox.cjs.js +16 -8
  76. package/multistatecheckbox/multistatecheckbox.cjs.min.js +1 -1
  77. package/multistatecheckbox/multistatecheckbox.esm.js +16 -8
  78. package/multistatecheckbox/multistatecheckbox.esm.min.js +1 -1
  79. package/multistatecheckbox/multistatecheckbox.js +16 -8
  80. package/multistatecheckbox/multistatecheckbox.min.js +1 -1
  81. package/package.json +1 -1
  82. package/paginator/paginator.cjs.js +9 -1
  83. package/paginator/paginator.cjs.min.js +1 -1
  84. package/paginator/paginator.esm.js +9 -1
  85. package/paginator/paginator.esm.min.js +1 -1
  86. package/paginator/paginator.js +9 -1
  87. package/paginator/paginator.min.js +1 -1
  88. package/picklist/picklist.cjs.js +9 -1
  89. package/picklist/picklist.cjs.min.js +1 -1
  90. package/picklist/picklist.esm.js +9 -1
  91. package/picklist/picklist.esm.min.js +1 -1
  92. package/picklist/picklist.js +9 -1
  93. package/picklist/picklist.min.js +1 -1
  94. package/primereact.all.cjs.js +297 -115
  95. package/primereact.all.cjs.min.js +1 -1
  96. package/primereact.all.esm.js +297 -115
  97. package/primereact.all.esm.min.js +1 -1
  98. package/primereact.all.js +297 -115
  99. package/primereact.all.min.js +1 -1
  100. package/treeselect/treeselect.cjs.js +4 -0
  101. package/treeselect/treeselect.cjs.min.js +1 -1
  102. package/treeselect/treeselect.d.ts +33 -0
  103. package/treeselect/treeselect.esm.js +4 -0
  104. package/treeselect/treeselect.esm.min.js +1 -1
  105. package/treeselect/treeselect.js +4 -0
  106. package/treeselect/treeselect.min.js +1 -1
  107. package/tristatecheckbox/tristatecheckbox.cjs.js +1 -0
  108. package/tristatecheckbox/tristatecheckbox.cjs.min.js +1 -1
  109. package/tristatecheckbox/tristatecheckbox.esm.js +1 -0
  110. package/tristatecheckbox/tristatecheckbox.esm.min.js +1 -1
  111. package/tristatecheckbox/tristatecheckbox.js +1 -0
  112. package/tristatecheckbox/tristatecheckbox.min.js +1 -1
  113. package/utils/utils.cjs.js +3 -1
  114. package/utils/utils.cjs.min.js +1 -1
  115. package/utils/utils.d.ts +1 -1
  116. package/utils/utils.esm.js +3 -1
  117. package/utils/utils.esm.min.js +1 -1
  118. package/utils/utils.js +3 -1
  119. package/utils/utils.min.js +1 -1
  120. package/web-types.json +77 -10
@@ -154,6 +154,7 @@ var FilterMatchMode = Object.freeze({
154
154
  EQUALS: 'equals',
155
155
  NOT_EQUALS: 'notEquals',
156
156
  IN: 'in',
157
+ NOT_IN: 'notIn',
157
158
  LESS_THAN: 'lt',
158
159
  LESS_THAN_OR_EQUAL_TO: 'lte',
159
160
  GREATER_THAN: 'gt',
@@ -2158,11 +2159,13 @@ var ObjectUtils = /*#__PURE__*/function () {
2158
2159
  * @param {object} a - The first object to compare.
2159
2160
  * @param {object} b - The second object to compare.
2160
2161
  * @param {string[]} [keysToCompare] - The keys to compare. If not provided, performs a shallow comparison using absoluteCompare.
2162
+ * @param {number} [maxDepth=1] - The maximum depth to compare if the variables are objects.
2161
2163
  * @returns {boolean} True if all specified properties are equal, false otherwise.
2162
2164
  */
2163
2165
  }, {
2164
2166
  key: "selectiveCompare",
2165
2167
  value: function selectiveCompare(a, b, keysToCompare) {
2168
+ var maxDepth = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
2166
2169
  if (a === b) return true;
2167
2170
  if (!a || !b || _typeof(a) !== 'object' || _typeof(b) !== 'object') return false;
2168
2171
  if (!keysToCompare) return this.absoluteCompare(a, b, 1); // If no keys are provided, the comparison is limited to one depth level.
@@ -2176,7 +2179,7 @@ var ObjectUtils = /*#__PURE__*/function () {
2176
2179
  var isObject = _typeof(aValue) === 'object' && aValue !== null && _typeof(bValue) === 'object' && bValue !== null;
2177
2180
 
2178
2181
  // If the current key is an object, they are compared in one further level only.
2179
- if (isObject && !this.absoluteCompare(aValue, bValue, 1)) return false;
2182
+ if (isObject && !this.absoluteCompare(aValue, bValue, maxDepth)) return false;
2180
2183
  if (!isObject && aValue !== bValue) return false;
2181
2184
  }
2182
2185
  } catch (err) {
@@ -3104,6 +3107,7 @@ var locales = {
3104
3107
  emptySelectionMessage: 'No selected item',
3105
3108
  endsWith: 'Ends with',
3106
3109
  equals: 'Equals',
3110
+ fileChosenMessage: '{0} files',
3107
3111
  fileSizeTypes: ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'],
3108
3112
  filter: 'Filter',
3109
3113
  firstDayOfWeek: 0,
@@ -3122,6 +3126,7 @@ var locales = {
3122
3126
  nextMonth: 'Next Month',
3123
3127
  nextSecond: 'Next Second',
3124
3128
  nextYear: 'Next Year',
3129
+ noFileChosenMessage: 'No file chosen',
3125
3130
  noFilter: 'No Filter',
3126
3131
  notContains: 'Not contains',
3127
3132
  notEquals: 'Not equals',
@@ -3149,8 +3154,10 @@ var locales = {
3149
3154
  aria: {
3150
3155
  cancelEdit: 'Cancel Edit',
3151
3156
  close: 'Close',
3157
+ collapseLabel: 'Collapse',
3152
3158
  collapseRow: 'Row Collapsed',
3153
3159
  editRow: 'Edit Row',
3160
+ expandLabel: 'Expand',
3154
3161
  expandRow: 'Row Expanded',
3155
3162
  falseLabel: 'False',
3156
3163
  filterConstraint: 'Filter Constraint',
@@ -3175,18 +3182,20 @@ var locales = {
3175
3182
  next: 'Next',
3176
3183
  nextPageLabel: 'Next Page',
3177
3184
  nullLabel: 'Not Selected',
3178
- pageLabel: 'Page {page}',
3179
3185
  otpLabel: 'Please enter one time password character {0}',
3186
+ pageLabel: 'Page {page}',
3180
3187
  passwordHide: 'Hide Password',
3181
3188
  passwordShow: 'Show Password',
3182
3189
  previous: 'Previous',
3183
3190
  prevPageLabel: 'Previous Page',
3191
+ removeLabel: 'Remove',
3184
3192
  rotateLeft: 'Rotate Left',
3185
3193
  rotateRight: 'Rotate Right',
3186
3194
  rowsPerPageLabel: 'Rows per page',
3187
3195
  saveEdit: 'Save Edit',
3188
3196
  scrollTop: 'Scroll Top',
3189
3197
  selectAll: 'All items selected',
3198
+ selectLabel: 'Select',
3190
3199
  selectRow: 'Row Selected',
3191
3200
  showFilterMenu: 'Show Filter Menu',
3192
3201
  slide: 'Slide',
@@ -3195,6 +3204,7 @@ var locales = {
3195
3204
  stars: '{star} stars',
3196
3205
  trueLabel: 'True',
3197
3206
  unselectAll: 'All items unselected',
3207
+ unselectLabel: 'Unselect',
3198
3208
  unselectRow: 'Row Unselected',
3199
3209
  zoomImage: 'Zoom Image',
3200
3210
  zoomIn: 'Zoom In',
@@ -12174,13 +12184,32 @@ var Calendar = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__namespace.
12174
12184
  return props.parseDateTime(text);
12175
12185
  }
12176
12186
  var date;
12177
- var parts = text.split(' ');
12178
12187
  if (props.timeOnly) {
12179
12188
  date = new Date();
12180
- populateTime(date, parts[0], parts[1]);
12189
+ var match = text.match(/(\d{1,2}:\d{2}(?::\d{2})?(?:\.\d{1,3})?)\s?(AM|PM)?/i);
12190
+ if (match) {
12191
+ populateTime(date, match[1], match[2]);
12192
+ } else {
12193
+ return null;
12194
+ }
12181
12195
  } else if (props.showTime) {
12182
- date = parseDate(parts[0], getDateFormat());
12183
- populateTime(date, parts[1], parts[2]);
12196
+ var time12 = /(\d{1,2}:\d{2}(?::\d{2})?(?:\.\d{1,3})?)\s?(AM|PM)/i;
12197
+ var time24 = /(\d{1,2}:\d{2}(?::\d{2})?(?:\.\d{1,3})?)$/;
12198
+ var _match, datePart, timePart, ampm;
12199
+ if (props.hourFormat === '12' && (_match = text.match(time12))) {
12200
+ timePart = _match[1];
12201
+ ampm = _match[2];
12202
+ datePart = text.replace(time12, '').trim();
12203
+ } else if (props.hourFormat === '24' && (_match = text.match(time24))) {
12204
+ timePart = _match[1];
12205
+ datePart = text.replace(time24, '').trim();
12206
+ }
12207
+ if (datePart && timePart) {
12208
+ date = parseDate(datePart, getDateFormat());
12209
+ populateTime(date, timePart, ampm);
12210
+ } else {
12211
+ date = parseDate(text, getDateFormat());
12212
+ }
12184
12213
  } else {
12185
12214
  date = parseDate(text, getDateFormat());
12186
12215
  }
@@ -12569,7 +12598,7 @@ var Calendar = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__namespace.
12569
12598
  viewDate.setHours(0, 0, 0);
12570
12599
  isClearClicked.current = false;
12571
12600
  }
12572
- if (!prevPropValue && propValue || propValue && propValue instanceof Date && propValue.getTime() !== prevPropValue.getTime()) {
12601
+ if (!prevPropValue && propValue || propValue && propValue instanceof Date && prevPropValue instanceof Date && propValue.getTime() !== prevPropValue.getTime()) {
12573
12602
  validateDate(viewDate);
12574
12603
  }
12575
12604
  setViewDateState(viewDate);
@@ -12823,6 +12852,9 @@ var Calendar = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__namespace.
12823
12852
  }),
12824
12853
  'aria-selected': selected,
12825
12854
  'aria-disabled': !date.selectable,
12855
+ onMouseDown: function onMouseDown(e) {
12856
+ return e.preventDefault();
12857
+ },
12826
12858
  onClick: function onClick(e) {
12827
12859
  return onDateSelect(e, date);
12828
12860
  },
@@ -14341,6 +14373,22 @@ var Carousel = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__namespace.
14341
14373
  CarouselItem.displayName = 'CarouselItem';
14342
14374
  Carousel.displayName = 'Carousel';
14343
14375
 
14376
+ var TimesIcon = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__namespace.forwardRef(function (inProps, ref) {
14377
+ var pti = IconBase.getPTI(inProps);
14378
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends({
14379
+ ref: ref,
14380
+ width: "14",
14381
+ height: "14",
14382
+ viewBox: "0 0 14 14",
14383
+ fill: "none",
14384
+ xmlns: "http://www.w3.org/2000/svg"
14385
+ }, pti), /*#__PURE__*/React__namespace.createElement("path", {
14386
+ d: "M8.01186 7.00933L12.27 2.75116C12.341 2.68501 12.398 2.60524 12.4375 2.51661C12.4769 2.42798 12.4982 2.3323 12.4999 2.23529C12.5016 2.13827 12.4838 2.0419 12.4474 1.95194C12.4111 1.86197 12.357 1.78024 12.2884 1.71163C12.2198 1.64302 12.138 1.58893 12.0481 1.55259C11.9581 1.51625 11.8617 1.4984 11.7647 1.50011C11.6677 1.50182 11.572 1.52306 11.4834 1.56255C11.3948 1.60204 11.315 1.65898 11.2488 1.72997L6.99067 5.98814L2.7325 1.72997C2.59553 1.60234 2.41437 1.53286 2.22718 1.53616C2.03999 1.53946 1.8614 1.61529 1.72901 1.74767C1.59663 1.88006 1.5208 2.05865 1.5175 2.24584C1.5142 2.43303 1.58368 2.61419 1.71131 2.75116L5.96948 7.00933L1.71131 11.2675C1.576 11.403 1.5 11.5866 1.5 11.7781C1.5 11.9696 1.576 12.1532 1.71131 12.2887C1.84679 12.424 2.03043 12.5 2.2219 12.5C2.41338 12.5 2.59702 12.424 2.7325 12.2887L6.99067 8.03052L11.2488 12.2887C11.3843 12.424 11.568 12.5 11.7594 12.5C11.9509 12.5 12.1346 12.424 12.27 12.2887C12.4053 12.1532 12.4813 11.9696 12.4813 11.7781C12.4813 11.5866 12.4053 11.403 12.27 11.2675L8.01186 7.00933Z",
14387
+ fill: "currentColor"
14388
+ }));
14389
+ }));
14390
+ TimesIcon.displayName = 'TimesIcon';
14391
+
14344
14392
  var classes$14 = {
14345
14393
  root: function root(_ref) {
14346
14394
  var props = _ref.props,
@@ -14377,6 +14425,7 @@ var classes$14 = {
14377
14425
  });
14378
14426
  },
14379
14427
  dropdownIcon: 'p-cascadeselect-trigger-icon',
14428
+ clearIcon: 'p-cascadeselect-clear-icon p-clickable',
14380
14429
  loadingIcon: 'p-cascadeselect-trigger-icon',
14381
14430
  dropdownButton: 'p-cascadeselect-trigger',
14382
14431
  loadingButton: 'p-cascadeselect-trigger',
@@ -14387,7 +14436,7 @@ var classes$14 = {
14387
14436
  text: 'p-cascadeselect-item-text',
14388
14437
  transition: 'p-connected-overlay'
14389
14438
  };
14390
- var styles$U = "\n@layer primereact {\n .p-cascadeselect {\n display: inline-flex;\n cursor: pointer;\n position: relative;\n user-select: none;\n }\n \n .p-cascadeselect-trigger {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n }\n \n .p-cascadeselect-label {\n display: block;\n white-space: nowrap;\n overflow: hidden;\n flex: 1 1 auto;\n width: 1%;\n text-overflow: ellipsis;\n cursor: pointer;\n }\n \n .p-cascadeselect-label-empty {\n overflow: hidden;\n visibility: hidden;\n }\n \n .p-cascadeselect .p-cascadeselect-panel {\n min-width: 100%;\n }\n \n .p-cascadeselect-item {\n cursor: pointer;\n font-weight: normal;\n white-space: nowrap;\n }\n \n .p-cascadeselect-item-content {\n display: flex;\n align-items: center;\n overflow: hidden;\n position: relative;\n }\n \n .p-cascadeselect-group-icon {\n margin-left: auto;\n }\n \n .p-cascadeselect-items {\n margin: 0;\n padding: 0;\n list-style-type: none;\n min-width: 100%;\n }\n \n .p-fluid .p-cascadeselect {\n display: flex;\n }\n \n .p-fluid .p-cascadeselect .p-cascadeselect-label {\n width: 1%;\n }\n \n .p-cascadeselect-sublist-wrapper {\n position: absolute;\n min-width: 100%;\n z-index: 1;\n display: none;\n }\n \n .p-cascadeselect-item-active {\n overflow: visible;\n }\n \n .p-cascadeselect-item-active > .p-cascadeselect-sublist-wrapper {\n display: block;\n left: 100%;\n top: 0;\n }\n}\n";
14439
+ var styles$U = "\n@layer primereact {\n .p-cascadeselect {\n display: inline-flex;\n cursor: pointer;\n position: relative;\n user-select: none;\n }\n \n .p-cascadeselect-trigger {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n }\n \n .p-cascadeselect-label {\n display: block;\n white-space: nowrap;\n overflow: hidden;\n flex: 1 1 auto;\n width: 1%;\n text-overflow: ellipsis;\n cursor: pointer;\n }\n \n .p-cascadeselect-label-empty {\n overflow: hidden;\n visibility: hidden;\n }\n \n .p-cascadeselect .p-cascadeselect-panel {\n min-width: 100%;\n }\n \n .p-cascadeselect-item {\n cursor: pointer;\n font-weight: normal;\n white-space: nowrap;\n }\n \n .p-cascadeselect-item-content {\n display: flex;\n align-items: center;\n overflow: hidden;\n position: relative;\n }\n \n .p-cascadeselect-group-icon {\n margin-left: auto;\n }\n \n .p-cascadeselect-items {\n margin: 0;\n padding: 0;\n list-style-type: none;\n min-width: 100%;\n }\n \n .p-fluid .p-cascadeselect {\n display: flex;\n }\n \n .p-fluid .p-cascadeselect .p-cascadeselect-label {\n width: 1%;\n }\n \n .p-cascadeselect-sublist-wrapper {\n position: absolute;\n min-width: 100%;\n z-index: 1;\n display: none;\n }\n \n .p-cascadeselect-item-active {\n overflow: visible;\n }\n \n .p-cascadeselect-item-active > .p-cascadeselect-sublist-wrapper {\n display: block;\n left: 100%;\n top: 0;\n }\n .p-cascadeselect-clear-icon {\n position: absolute;\n top: 50%;\n margin-top: -.5rem;\n right: 3rem;\n }\n}\n";
14391
14440
  var CascadeSelectBase = ComponentBase.extend({
14392
14441
  defaultProps: {
14393
14442
  __TYPE: 'CascadeSelect',
@@ -14420,6 +14469,8 @@ var CascadeSelectBase = ComponentBase.extend({
14420
14469
  optionLabel: null,
14421
14470
  optionValue: null,
14422
14471
  options: null,
14472
+ panelClassName: null,
14473
+ panelStyle: null,
14423
14474
  placeholder: null,
14424
14475
  scrollHeight: '400px',
14425
14476
  style: null,
@@ -14732,6 +14783,7 @@ var CascadeSelect = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__names
14732
14783
  var styleElementRef = React__namespace.useRef(null);
14733
14784
  var dirty = React__namespace.useRef(false);
14734
14785
  var selectionPath = React__namespace.useRef(null);
14786
+ var selfChange = React__namespace.useRef(null);
14735
14787
  var _useOverlayListener = useOverlayListener({
14736
14788
  target: elementRef,
14737
14789
  overlay: overlayRef,
@@ -14761,6 +14813,7 @@ var CascadeSelect = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__names
14761
14813
  });
14762
14814
  var onOptionSelect = function onOptionSelect(event) {
14763
14815
  if (props.onChange) {
14816
+ selfChange.current = true;
14764
14817
  props.onChange({
14765
14818
  originalEvent: event,
14766
14819
  value: event.value
@@ -14987,6 +15040,48 @@ var CascadeSelect = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__names
14987
15040
  }, ariaProps), ptm('input'));
14988
15041
  return /*#__PURE__*/React__namespace.createElement("div", hiddenSelectedMessageProps, /*#__PURE__*/React__namespace.createElement("input", inputProps));
14989
15042
  };
15043
+ var clear = function clear(event) {
15044
+ if (props.onChange) {
15045
+ selfChange.current = true;
15046
+ props.onChange({
15047
+ originalEvent: event,
15048
+ value: undefined,
15049
+ stopPropagation: function stopPropagation() {
15050
+ event === null || event === void 0 || event.stopPropagation();
15051
+ },
15052
+ preventDefault: function preventDefault() {
15053
+ event === null || event === void 0 || event.preventDefault();
15054
+ },
15055
+ target: {
15056
+ name: props.name,
15057
+ id: props.id,
15058
+ value: undefined
15059
+ }
15060
+ });
15061
+ }
15062
+ };
15063
+ var onClearIconKeyDown = function onClearIconKeyDown(event) {
15064
+ if (event.key === 'Enter' || event.code === 'Space') {
15065
+ clear(event);
15066
+ event.preventDefault();
15067
+ }
15068
+ };
15069
+ var createClearIcon = function createClearIcon() {
15070
+ if (props.value != null && props.showClear && !props.disabled) {
15071
+ var clearIconProps = mergeProps({
15072
+ className: cx('clearIcon'),
15073
+ onPointerUp: clear,
15074
+ tabIndex: props.tabIndex || '0',
15075
+ onKeyDown: onClearIconKeyDown,
15076
+ 'aria-label': localeOption('clear')
15077
+ }, ptm('clearIcon'));
15078
+ var icon = props.clearIcon || /*#__PURE__*/React__namespace.createElement(TimesIcon, clearIconProps);
15079
+ return IconUtils.getJSXIcon(icon, _objectSpread$1H({}, clearIconProps), {
15080
+ props: props
15081
+ });
15082
+ }
15083
+ return null;
15084
+ };
14990
15085
  var createLabel = function createLabel() {
14991
15086
  var label = props.value ? getOptionLabel(props.value) : props.placeholder || 'p-emptylabel';
14992
15087
  var labelProps = mergeProps({
@@ -15040,7 +15135,8 @@ var CascadeSelect = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__names
15040
15135
  }, ptm('wrapper'));
15041
15136
  var panelProps = mergeProps({
15042
15137
  ref: overlayRef,
15043
- className: cx('panel'),
15138
+ className: classNames(props.panelClassName, cx('panel')),
15139
+ style: props.panelStyle,
15044
15140
  onClick: function onClick(e) {
15045
15141
  return onPanelClick(e);
15046
15142
  }
@@ -15089,6 +15185,7 @@ var CascadeSelect = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__names
15089
15185
  var createElement = function createElement() {
15090
15186
  var keyboardHelper = createKeyboardHelper();
15091
15187
  var labelElement = createLabel();
15188
+ var clearIcon = createClearIcon();
15092
15189
  var dropdownIcon = props.loading ? createLoadingIcon() : createDropdownIcon();
15093
15190
  var overlay = createOverlay();
15094
15191
  var rootProps = mergeProps({
@@ -15104,7 +15201,7 @@ var CascadeSelect = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__names
15104
15201
  return _onClick(e);
15105
15202
  }
15106
15203
  }, otherProps, ptm('root'));
15107
- return /*#__PURE__*/React__namespace.createElement("div", rootProps, keyboardHelper, labelElement, dropdownIcon, overlay);
15204
+ return /*#__PURE__*/React__namespace.createElement("div", rootProps, keyboardHelper, labelElement, clearIcon, dropdownIcon, overlay);
15108
15205
  };
15109
15206
  var otherProps = CascadeSelectBase.getOtherProps(props);
15110
15207
  ObjectUtils.reduceKeys(otherProps, DomHandler.DATA_PROPS);
@@ -16953,22 +17050,6 @@ var FocusTrap = /*#__PURE__*/React__default["default"].memo(/*#__PURE__*/React__
16953
17050
  }));
16954
17051
  var FocusTrap$1 = FocusTrap;
16955
17052
 
16956
- var TimesIcon = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__namespace.forwardRef(function (inProps, ref) {
16957
- var pti = IconBase.getPTI(inProps);
16958
- return /*#__PURE__*/React__namespace.createElement("svg", _extends({
16959
- ref: ref,
16960
- width: "14",
16961
- height: "14",
16962
- viewBox: "0 0 14 14",
16963
- fill: "none",
16964
- xmlns: "http://www.w3.org/2000/svg"
16965
- }, pti), /*#__PURE__*/React__namespace.createElement("path", {
16966
- d: "M8.01186 7.00933L12.27 2.75116C12.341 2.68501 12.398 2.60524 12.4375 2.51661C12.4769 2.42798 12.4982 2.3323 12.4999 2.23529C12.5016 2.13827 12.4838 2.0419 12.4474 1.95194C12.4111 1.86197 12.357 1.78024 12.2884 1.71163C12.2198 1.64302 12.138 1.58893 12.0481 1.55259C11.9581 1.51625 11.8617 1.4984 11.7647 1.50011C11.6677 1.50182 11.572 1.52306 11.4834 1.56255C11.3948 1.60204 11.315 1.65898 11.2488 1.72997L6.99067 5.98814L2.7325 1.72997C2.59553 1.60234 2.41437 1.53286 2.22718 1.53616C2.03999 1.53946 1.8614 1.61529 1.72901 1.74767C1.59663 1.88006 1.5208 2.05865 1.5175 2.24584C1.5142 2.43303 1.58368 2.61419 1.71131 2.75116L5.96948 7.00933L1.71131 11.2675C1.576 11.403 1.5 11.5866 1.5 11.7781C1.5 11.9696 1.576 12.1532 1.71131 12.2887C1.84679 12.424 2.03043 12.5 2.2219 12.5C2.41338 12.5 2.59702 12.424 2.7325 12.2887L6.99067 8.03052L11.2488 12.2887C11.3843 12.424 11.568 12.5 11.7594 12.5C11.9509 12.5 12.1346 12.424 12.27 12.2887C12.4053 12.1532 12.4813 11.9696 12.4813 11.7781C12.4813 11.5866 12.4053 11.403 12.27 11.2675L8.01186 7.00933Z",
16967
- fill: "currentColor"
16968
- }));
16969
- }));
16970
- TimesIcon.displayName = 'TimesIcon';
16971
-
16972
17053
  var WindowMaximizeIcon = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__namespace.forwardRef(function (inProps, ref) {
16973
17054
  var pti = IconBase.getPTI(inProps);
16974
17055
  return /*#__PURE__*/React__namespace.createElement("svg", _extends({
@@ -17122,6 +17203,7 @@ var DialogBase = ComponentBase.extend({
17122
17203
  resizable: true,
17123
17204
  rtl: false,
17124
17205
  showHeader: true,
17206
+ showCloseIcon: true,
17125
17207
  style: null,
17126
17208
  transitionOptions: null,
17127
17209
  visible: false,
@@ -17253,7 +17335,7 @@ var Dialog = /*#__PURE__*/React__namespace.forwardRef(function (inProps, ref) {
17253
17335
  var focus = function focus() {
17254
17336
  var activeElement = document.activeElement;
17255
17337
  var isActiveElementInDialog = activeElement && dialogRef.current && dialogRef.current.contains(activeElement);
17256
- if (!isActiveElementInDialog && props.closable && props.showHeader && closeRef.current) {
17338
+ if (!isActiveElementInDialog && props.closable && props.showCloseIcon && props.showHeader && closeRef.current) {
17257
17339
  closeRef.current.focus();
17258
17340
  }
17259
17341
  };
@@ -17559,7 +17641,7 @@ var Dialog = /*#__PURE__*/React__namespace.forwardRef(function (inProps, ref) {
17559
17641
  };
17560
17642
  });
17561
17643
  var createCloseIcon = function createCloseIcon() {
17562
- if (props.closable) {
17644
+ if (props.closable && props.showCloseIcon) {
17563
17645
  var labelAria = props.ariaCloseIconLabel || ariaLabel('close');
17564
17646
  var closeButtonIconProps = mergeProps({
17565
17647
  className: cx('closeButtonIcon'),
@@ -20377,7 +20459,7 @@ var InputNumber = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__namespa
20377
20459
  var stacked = props.showButtons && props.buttonLayout === 'stacked';
20378
20460
  var horizontal = props.showButtons && props.buttonLayout === 'horizontal';
20379
20461
  var vertical = props.showButtons && props.buttonLayout === 'vertical';
20380
- var inputMode = props.inputMode || (props.mode === 'decimal' && !props.minFractionDigits ? 'numeric' : 'decimal');
20462
+ var inputMode = props.inputMode || (props.mode === 'decimal' && !props.minFractionDigits && !props.maxFractionDigits ? 'numeric' : 'decimal');
20381
20463
  var getOptions = function getOptions() {
20382
20464
  var _props$minFractionDig, _props$maxFractionDig;
20383
20465
  return {
@@ -20812,6 +20894,10 @@ var InputNumber = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__namespa
20812
20894
  event.preventDefault();
20813
20895
  var _char2 = event.key;
20814
20896
  if (_char2) {
20897
+ // get decimal separator in current locale
20898
+ if (_char2 === '.') {
20899
+ _char2 = _decimalSeparator.current;
20900
+ }
20815
20901
  var _isDecimalSign = isDecimalSign(_char2);
20816
20902
  var _isMinusSign = isMinusSign(_char2);
20817
20903
  if (Number(_char2) >= 0 && Number(_char2) <= 9 || _isMinusSign || _isDecimalSign) {
@@ -20926,6 +21012,7 @@ var InputNumber = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__namespa
20926
21012
  suffixCharIndex = _getCharIndexes2.suffixCharIndex,
20927
21013
  currencyCharIndex = _getCharIndexes2.currencyCharIndex;
20928
21014
  var maxFractionDigits = numberFormat.current.resolvedOptions().maximumFractionDigits;
21015
+ var hasBoundOrAffix = props.min || props.max || props.suffix || props.prefix; //only exception
20929
21016
  var newValueStr;
20930
21017
  if (sign.isMinusSign) {
20931
21018
  var isNewMinusSign = minusCharIndex === -1;
@@ -20945,7 +21032,7 @@ var InputNumber = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__namespa
20945
21032
  newValueStr = insertText(inputValue, text, selectionStart, selectionEnd);
20946
21033
  updateValue(event, newValueStr, text, 'insert');
20947
21034
  } else if (decimalCharIndex === -1 && (maxFractionDigits || props.maxFractionDigits)) {
20948
- var allowedDecimal = inputMode !== 'numeric' || inputMode === 'numeric' && (props.min || props.max);
21035
+ var allowedDecimal = inputMode !== 'numeric' || inputMode === 'numeric' && hasBoundOrAffix;
20949
21036
  if (allowedDecimal) {
20950
21037
  newValueStr = insertText(inputValue, text, selectionStart, selectionEnd);
20951
21038
  updateValue(event, newValueStr, text, 'insert');
@@ -21912,6 +21999,7 @@ var DropdownBase = ComponentBase.extend({
21912
21999
  name: null,
21913
22000
  onBlur: null,
21914
22001
  onChange: null,
22002
+ onClick: null,
21915
22003
  onContextMenu: null,
21916
22004
  onFilter: null,
21917
22005
  onFocus: null,
@@ -22801,15 +22889,24 @@ var Dropdown = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__namespace.
22801
22889
  !pressedInInputText && onEnterKey(event);
22802
22890
  };
22803
22891
  var onEnterKey = function onEnterKey(event) {
22892
+ event.preventDefault();
22804
22893
  if (!overlayVisibleState) {
22805
22894
  setFocusedOptionIndex(-1);
22806
22895
  onArrowDownKey(event);
22807
22896
  } else {
22808
- if (focusedOptionIndex !== -1) {
22809
- onOptionSelect(event, visibleOptions[focusedOptionIndex]);
22897
+ if (focusedOptionIndex === -1) {
22898
+ return;
22899
+ }
22900
+ var focusedOption = visibleOptions[focusedOptionIndex];
22901
+ var optionValue = getOptionValue(focusedOption);
22902
+ if (optionValue == null || optionValue == undefined) {
22903
+ hide();
22904
+ resetFilter();
22905
+ updateEditableLabel(selectedOption);
22906
+ return;
22810
22907
  }
22908
+ onOptionSelect(event, focusedOption);
22811
22909
  }
22812
- event.preventDefault();
22813
22910
  };
22814
22911
  var onEscapeKey = function onEscapeKey(event) {
22815
22912
  overlayVisibleState && hide();
@@ -24588,7 +24685,7 @@ var Cell = function Cell(props) {
24588
24685
  editingRowDataStateRef.current = editingRowData;
24589
24686
  };
24590
24687
  var _onClick = function onClick(event) {
24591
- props.onClick(event, getCellCallbackParams(event), isEditable(), editingState, setEditingState, selfClick, props.column, bindDocumentClickListener, overlayEventListener);
24688
+ props.onClick(event, getCellCallbackParams(event), isEditable(), editingState, setEditingState, selfClick, props.column, bindDocumentClickListener, overlayEventListener, isOutsideClicked);
24592
24689
  };
24593
24690
  var _onMouseDown = function onMouseDown(event) {
24594
24691
  var params = getCellCallbackParams(event);
@@ -24710,7 +24807,7 @@ var Cell = function Cell(props) {
24710
24807
  field: props.field,
24711
24808
  index: props.rowIndex
24712
24809
  });
24713
- props.focusOnInit();
24810
+ props.focusOnInit(initFocusTimeout, elementRef);
24714
24811
  };
24715
24812
  React__namespace.useEffect(function () {
24716
24813
  if (props.frozenCol) props.updateStickyPosition(elementRef, props.frozenCol, props.alignFrozenCol, styleObjectState, setStyleObjectState);
@@ -25051,11 +25148,18 @@ var RadioCheckCell = /*#__PURE__*/React__namespace.memo(function (props) {
25051
25148
  return ObjectUtils.selectiveCompare(prevProps, nextProps, keysToCompare);
25052
25149
  });
25053
25150
  RadioCheckCell.displayName = 'RadioCheckCell';
25151
+ var defaultKeysToCompare = ['rowData', 'field', 'allowCellSelection', 'isCellSelected', 'editMode', 'index', 'tabIndex', 'editing', 'expanded', 'editingMeta', 'frozenCol', 'alignFrozenCol'];
25054
25152
  var BodyCell = /*#__PURE__*/React__namespace.memo(function (props) {
25055
25153
  return /*#__PURE__*/React__namespace.createElement(Cell, props);
25056
25154
  }, function (prevProps, nextProps) {
25057
- var keysToCompare = ['field', 'allowCellSelection', 'isCellSelected', 'editMode', 'index', 'tabIndex', 'editing', 'expanded', 'editingMeta', 'rowData', 'frozenCol', 'alignFrozenCol'];
25058
- return ObjectUtils.selectiveCompare(prevProps, nextProps, keysToCompare);
25155
+ if (nextProps.cellMemo === false) return false;
25156
+ var memoProps = nextProps.cellMemoProps;
25157
+ var keysToCompare = Array.isArray(memoProps) && memoProps.every(function (prop) {
25158
+ return typeof prop === 'string';
25159
+ }) ? memoProps : defaultKeysToCompare;
25160
+ var memoPropsDepth = nextProps.cellMemoPropsDepth;
25161
+ var depth = typeof memoPropsDepth === 'number' && memoPropsDepth > 0 ? memoPropsDepth : 1;
25162
+ return ObjectUtils.selectiveCompare(prevProps, nextProps, keysToCompare, depth);
25059
25163
  });
25060
25164
  BodyCell.displayName = 'BodyCell';
25061
25165
 
@@ -25532,7 +25636,7 @@ var BodyRow = /*#__PURE__*/React__namespace.memo(function (props) {
25532
25636
  !isSameStyle && setStyleObjectState(styleObject);
25533
25637
  }
25534
25638
  }, []);
25535
- var onCellClick = function onCellClick(event, params, isEditable, editingState, setEditingState, selfClick, column, bindDocumentClickListener, overlayEventListener) {
25639
+ var onCellClick = function onCellClick(event, params, isEditable, editingState, setEditingState, selfClick, column, bindDocumentClickListener, overlayEventListener, isOutsideClicked) {
25536
25640
  if (props.editMode !== 'row' && isEditable && !editingState && (props.selectOnEdit || !props.selectOnEdit && props.isRowSelected)) {
25537
25641
  selfClick.current = true;
25538
25642
  var onBeforeCellEditShow = getColumnProp(column, 'onBeforeCellEditShow');
@@ -25591,6 +25695,9 @@ var BodyRow = /*#__PURE__*/React__namespace.memo(function (props) {
25591
25695
  var cellProps = mergeProps({
25592
25696
  hostName: props.hostName,
25593
25697
  allowCellSelection: props.allowCellSelection,
25698
+ cellMemo: props.cellMemo,
25699
+ cellMemoProps: props.cellMemoProps,
25700
+ cellMemoPropsDepth: props.cellMemoPropsDepth,
25594
25701
  cellClassName: props.cellClassName,
25595
25702
  checkIcon: props.checkIcon,
25596
25703
  collapsedRowIcon: props.collapsedRowIcon,
@@ -25958,9 +26065,6 @@ var TableBody = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__namespace
25958
26065
  options = options || props.virtualScrollerOptions;
25959
26066
  return options ? options[option] : null;
25960
26067
  };
25961
- var getProcessedDataIndex = function getProcessedDataIndex(rowIndex) {
25962
- return props.lazy ? rowIndex - props.first : rowIndex;
25963
- };
25964
26068
  var findIndex = function findIndex(collection, rowData) {
25965
26069
  return (collection || []).findIndex(function (data) {
25966
26070
  return equals(rowData, data);
@@ -26131,16 +26235,14 @@ var TableBody = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__namespace
26131
26235
  var rangeStart;
26132
26236
  var rangeEnd;
26133
26237
  var isAllowCellSelection = allowCellSelection();
26134
- var rangeRowIndexInProcessedData = getProcessedDataIndex(rangeRowIndex.current);
26135
- var anchorRowIndexInProcessedData = getProcessedDataIndex(anchorRowIndex.current);
26136
- if (rangeRowIndexInProcessedData > anchorRowIndexInProcessedData) {
26137
- rangeStart = anchorRowIndexInProcessedData;
26138
- rangeEnd = rangeRowIndexInProcessedData;
26139
- } else if (rangeRowIndexInProcessedData < anchorRowIndexInProcessedData) {
26140
- rangeStart = rangeRowIndexInProcessedData;
26141
- rangeEnd = anchorRowIndexInProcessedData;
26238
+ if (rangeRowIndex.current > anchorRowIndex.current) {
26239
+ rangeStart = anchorRowIndex.current;
26240
+ rangeEnd = rangeRowIndex.current;
26241
+ } else if (rangeRowIndex.current < anchorRowIndex.current) {
26242
+ rangeStart = rangeRowIndex.current;
26243
+ rangeEnd = anchorRowIndex.current;
26142
26244
  } else {
26143
- rangeStart = rangeEnd = rangeRowIndexInProcessedData;
26245
+ rangeStart = rangeEnd = rangeRowIndex.current;
26144
26246
  }
26145
26247
  return isAllowCellSelection ? selectRangeOnCell(event, rangeStart, rangeEnd) : selectRangeOnRow(event, rangeStart, rangeEnd);
26146
26248
  };
@@ -26181,7 +26283,7 @@ var TableBody = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__namespace
26181
26283
  for (var i = rowRangeStart; i <= rowRangeEnd; i++) {
26182
26284
  var rowData = value[i];
26183
26285
  var columns = props.columns;
26184
- var rowIndex = props.lazy ? i + props.first : i;
26286
+ var rowIndex = props.paginator ? i + props.first : i;
26185
26287
  for (var j = cellRangeStart; j <= cellRangeEnd; j++) {
26186
26288
  var field = getColumnProp(columns[j], 'field');
26187
26289
  var _value = ObjectUtils.resolveFieldData(rowData, field);
@@ -26380,13 +26482,17 @@ var TableBody = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__namespace
26380
26482
  onRangeSelection(event, 'row');
26381
26483
  }
26382
26484
  };
26485
+ var expandedRowsRef = React__namespace.useRef(props.expandedRows);
26486
+ React__namespace.useEffect(function () {
26487
+ expandedRowsRef.current = props.expandedRows;
26488
+ }, [props.expandedRows]);
26383
26489
  var onRowToggle = function onRowToggle(event) {
26384
26490
  var expandedRows;
26385
26491
  var dataKey = props.dataKey;
26386
26492
  var hasDataKey = props.groupRowsBy ? dataKey === props.groupRowsBy : !!dataKey;
26387
26493
  if (hasDataKey) {
26388
26494
  var dataKeyValue = String(ObjectUtils.resolveFieldData(event.data, dataKey));
26389
- expandedRows = props.expandedRows ? _objectSpread$1f({}, props.expandedRows) : {};
26495
+ expandedRows = expandedRowsRef.current ? _objectSpread$1f({}, expandedRowsRef.current) : {};
26390
26496
  if (expandedRows[dataKeyValue] != null) {
26391
26497
  delete expandedRows[dataKeyValue];
26392
26498
  if (props.onRowCollapse) {
@@ -26405,8 +26511,8 @@ var TableBody = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__namespace
26405
26511
  }
26406
26512
  }
26407
26513
  } else {
26408
- var expandedRowIndex = findIndex(props.expandedRows, event.data);
26409
- expandedRows = props.expandedRows ? _toConsumableArray(props.expandedRows) : [];
26514
+ var expandedRowIndex = findIndex(expandedRowsRef.current, event.data);
26515
+ expandedRows = expandedRowsRef.current ? _toConsumableArray(expandedRowsRef.current) : [];
26410
26516
  if (expandedRowIndex !== -1) {
26411
26517
  expandedRows = expandedRows.filter(function (_, i) {
26412
26518
  return i !== expandedRowIndex;
@@ -26656,7 +26762,7 @@ var TableBody = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__namespace
26656
26762
  return null;
26657
26763
  };
26658
26764
  var createGroupHeader = function createGroupHeader(rowData, rowIndex, expanded, colSpan) {
26659
- if (isSubheaderGrouping && shouldRenderRowGroupHeader(props.value, rowData, getProcessedDataIndex(rowIndex))) {
26765
+ if (isSubheaderGrouping && shouldRenderRowGroupHeader(props.value, rowData, rowIndex - props.first)) {
26660
26766
  var style = rowGroupHeaderStyle();
26661
26767
  var toggler = props.expandableRowGroups && /*#__PURE__*/React__namespace.createElement(RowTogglerButton, {
26662
26768
  hostName: props.hostName,
@@ -26706,6 +26812,9 @@ var TableBody = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__namespace
26706
26812
  hostName: props.hostName,
26707
26813
  allowCellSelection: _allowCellSelection,
26708
26814
  allowRowSelection: _allowRowSelection,
26815
+ cellMemo: props.cellMemo,
26816
+ cellMemoProps: props.cellMemoProps,
26817
+ cellMemoPropsDepth: props.cellMemoPropsDepth,
26709
26818
  cellClassName: props.cellClassName,
26710
26819
  checkIcon: props.checkIcon,
26711
26820
  collapsedRowIcon: props.collapsedRowIcon,
@@ -29956,58 +30065,60 @@ var DataTable = /*#__PURE__*/React__namespace.forwardRef(function (inProps, ref)
29956
30065
  var exportCSV = function exportCSV(options) {
29957
30066
  var data;
29958
30067
  var csv = "\uFEFF";
29959
- var columns = getColumns();
29960
30068
  if (options && options.selectionOnly) {
29961
30069
  data = props.selection || [];
29962
30070
  } else {
29963
30071
  data = [].concat(_toConsumableArray(props.frozenValue || []), _toConsumableArray(processedData() || []));
29964
30072
  }
29965
30073
 
29966
- //headers
29967
- columns.forEach(function (column, i) {
29968
- var _ref5 = [getColumnProp(column, 'field'), getColumnProp(column, 'header'), getColumnProp(column, 'exportHeader'), getColumnProp(column, 'exportable')],
30074
+ // First build collection of exportable columns
30075
+ var exportableColumns = getColumns().filter(function (column) {
30076
+ var exportable = getColumnProp(column, 'exportable');
30077
+ var field = getColumnProp(column, 'field');
30078
+
30079
+ // Column must be exportable (or undefined/not set) and have a field defined
30080
+ return exportable !== false && field;
30081
+ });
30082
+
30083
+ // headers
30084
+ exportableColumns.forEach(function (column, i) {
30085
+ var _ref5 = [getColumnProp(column, 'field'), getColumnProp(column, 'header'), getColumnProp(column, 'exportHeader')],
29969
30086
  field = _ref5[0],
29970
30087
  header = _ref5[1],
29971
- exportHeader = _ref5[2],
29972
- exportable = _ref5[3];
29973
- if (exportable && field) {
29974
- var columnHeader = String(exportHeader || header || field).replace(/"/g, '""').replace(/\n/g, "\u2028");
29975
- csv = csv + ('"' + columnHeader + '"');
29976
- if (i < columns.length - 1) {
29977
- csv = csv + props.csvSeparator;
29978
- }
30088
+ exportHeader = _ref5[2];
30089
+ var columnHeader = String(exportHeader || header || field).replace(/"/g, '""').replace(/\n/g, "\u2028");
30090
+ csv = csv + ('"' + columnHeader + '"');
30091
+ if (i < exportableColumns.length - 1) {
30092
+ csv = csv + props.csvSeparator;
29979
30093
  }
29980
30094
  });
29981
30095
 
29982
- //body
30096
+ // body
29983
30097
  data.forEach(function (record) {
29984
30098
  csv = csv + '\n';
29985
- columns.forEach(function (column, i) {
29986
- var _ref6 = [getColumnProp(column, 'field'), getColumnProp(column, 'exportField'), getColumnProp(column, 'exportable')],
30099
+ exportableColumns.forEach(function (column, i) {
30100
+ var _ref6 = [getColumnProp(column, 'field'), getColumnProp(column, 'exportField')],
29987
30101
  colField = _ref6[0],
29988
- exportField = _ref6[1],
29989
- exportable = _ref6[2];
30102
+ exportField = _ref6[1];
29990
30103
  var field = exportField || colField;
29991
- if (exportable && field) {
29992
- var cellData = ObjectUtils.resolveFieldData(record, field);
29993
- if (cellData != null) {
29994
- if (props.exportFunction) {
29995
- cellData = props.exportFunction({
29996
- data: cellData,
29997
- field: field,
29998
- rowData: record,
29999
- column: column
30000
- });
30001
- } else {
30002
- cellData = String(cellData).replace(/"/g, '""').replace(/\n/g, "\u2028");
30003
- }
30104
+ var cellData = ObjectUtils.resolveFieldData(record, field);
30105
+ if (cellData != null) {
30106
+ if (props.exportFunction) {
30107
+ cellData = props.exportFunction({
30108
+ data: cellData,
30109
+ field: field,
30110
+ rowData: record,
30111
+ column: column
30112
+ });
30004
30113
  } else {
30005
- cellData = '';
30006
- }
30007
- csv = csv + ('"' + cellData + '"');
30008
- if (i < columns.length - 1) {
30009
- csv = csv + props.csvSeparator;
30114
+ cellData = String(cellData).replace(/"/g, '""').replace(/\n/g, "\u2028");
30010
30115
  }
30116
+ } else {
30117
+ cellData = '';
30118
+ }
30119
+ csv = csv + ('"' + cellData + '"');
30120
+ if (i < exportableColumns.length - 1) {
30121
+ csv = csv + props.csvSeparator;
30011
30122
  }
30012
30123
  });
30013
30124
  });
@@ -30272,6 +30383,9 @@ var DataTable = /*#__PURE__*/React__namespace.forwardRef(function (inProps, ref)
30272
30383
  var frozenBody = ObjectUtils.isNotEmpty(props.frozenValue) && /*#__PURE__*/React__namespace.createElement(TableBody, {
30273
30384
  hostName: "DataTable",
30274
30385
  ref: frozenBodyRef,
30386
+ cellMemo: props.cellMemo,
30387
+ cellMemoProps: props.cellMemoProps,
30388
+ cellMemoPropsDepth: props.cellMemoPropsDepth,
30275
30389
  cellClassName: props.cellClassName,
30276
30390
  cellSelection: props.cellSelection,
30277
30391
  checkIcon: props.checkIcon,
@@ -30356,6 +30470,9 @@ var DataTable = /*#__PURE__*/React__namespace.forwardRef(function (inProps, ref)
30356
30470
  var body = /*#__PURE__*/React__namespace.createElement(TableBody, {
30357
30471
  hostName: "DataTable",
30358
30472
  ref: bodyRef,
30473
+ cellMemo: props.cellMemo,
30474
+ cellMemoProps: props.cellMemoProps,
30475
+ cellMemoPropsDepth: props.cellMemoPropsDepth,
30359
30476
  cellClassName: props.cellClassName,
30360
30477
  cellSelection: props.cellSelection,
30361
30478
  checkIcon: props.checkIcon,
@@ -32776,7 +32893,7 @@ var FileUpload = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__namespac
32776
32893
  var k = 1024;
32777
32894
  var dm = 3;
32778
32895
  var sizes = localeOption('fileSizeTypes');
32779
- if (bytes === 0) {
32896
+ if (bytes <= 0) {
32780
32897
  return "0 ".concat(sizes[0]);
32781
32898
  }
32782
32899
  var i = Math.floor(Math.log(bytes) / Math.log(k));
@@ -32798,7 +32915,8 @@ var FileUpload = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__namespac
32798
32915
  var selectedFiles = event.dataTransfer ? event.dataTransfer.files : event.target.files;
32799
32916
  for (var i = 0; i < selectedFiles.length; i++) {
32800
32917
  var file = selectedFiles[i];
32801
- if (!isFileSelected(file) && validate(file)) {
32918
+ var shouldAddFile = props.multiple ? !isFileSelected(file) && validate(file) : validate(file);
32919
+ if (shouldAddFile) {
32802
32920
  file.objectURL = window.URL.createObjectURL(file);
32803
32921
  currentFiles.push(file);
32804
32922
  }
@@ -32814,6 +32932,7 @@ var FileUpload = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__namespac
32814
32932
  });
32815
32933
  }
32816
32934
  clearInput();
32935
+ setFocusedState(false);
32817
32936
  if (props.mode === 'basic' && currentFiles.length > 0) {
32818
32937
  fileInputRef.current.style.display = 'none';
32819
32938
  }
@@ -34540,6 +34659,7 @@ var Galleria = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__namespace.
34540
34659
  },
34541
34660
  options: props.transitionOptions,
34542
34661
  unmountOnExit: true,
34662
+ appear: true,
34543
34663
  onEnter: onEnter,
34544
34664
  onEntering: onEntering,
34545
34665
  onEntered: onEntered,
@@ -39984,6 +40104,9 @@ var Menu = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__namespace.forw
39984
40104
  className: classNames(item.className, cx('menuitem', {
39985
40105
  focused: focusedOptionIndex === key
39986
40106
  })),
40107
+ onClick: function onClick(event) {
40108
+ return onItemClick(event, item, key);
40109
+ },
39987
40110
  style: sx('menuitem', {
39988
40111
  item: item
39989
40112
  }),
@@ -41591,6 +41714,7 @@ var MultiSelectHeader = /*#__PURE__*/React__namespace.memo(function (props) {
41591
41714
  role: "searchbox",
41592
41715
  value: props.filterValue,
41593
41716
  onChange: onFilter,
41717
+ onKeyDown: props.onFilterKeyDown,
41594
41718
  className: "p-multiselect-filter",
41595
41719
  placeholder: props.filterPlaceholder,
41596
41720
  pt: ptm('filterInput'),
@@ -41746,9 +41870,7 @@ var MultiSelectItem = /*#__PURE__*/React__namespace.memo(function (props) {
41746
41870
  'data-p-highlight': props.selected,
41747
41871
  'data-p-disabled': props.disabled
41748
41872
  }, getPTOptions('item'));
41749
- return /*#__PURE__*/React__namespace.createElement("li", _extends({}, itemProps, {
41750
- key: props.index + '_multiselectitem'
41751
- }), /*#__PURE__*/React__namespace.createElement("div", checkboxContainerProps, /*#__PURE__*/React__namespace.createElement(Checkbox, {
41873
+ return /*#__PURE__*/React__namespace.createElement("li", itemProps, /*#__PURE__*/React__namespace.createElement("div", checkboxContainerProps, /*#__PURE__*/React__namespace.createElement(Checkbox, {
41752
41874
  ref: checkboxRef,
41753
41875
  checked: props.selected,
41754
41876
  icon: checkboxIcon,
@@ -41816,6 +41938,7 @@ var MultiSelectPanel = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__na
41816
41938
  getOptionValue: props.getOptionValue,
41817
41939
  updateModel: props.updateModel,
41818
41940
  onFilter: onFilterInputChange,
41941
+ onFilterKeyDown: props.onFilterKeyDown,
41819
41942
  filterPlaceholder: props.filterPlaceholder,
41820
41943
  onClose: props.onCloseClick,
41821
41944
  showSelectAll: props.showSelectAll,
@@ -42383,6 +42506,52 @@ var MultiSelect = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__namespa
42383
42506
  }
42384
42507
  setClicked(false);
42385
42508
  };
42509
+ var onFilterKeyDown = function onFilterKeyDown(event) {
42510
+ switch (event.code) {
42511
+ case 'ArrowUp':
42512
+ if (props.inline) {
42513
+ break;
42514
+ }
42515
+ onArrowUpKey(event);
42516
+ break;
42517
+ case 'ArrowDown':
42518
+ if (props.inline) {
42519
+ break;
42520
+ }
42521
+ onArrowDownKey(event);
42522
+ break;
42523
+ case 'NumpadEnter':
42524
+ case 'Enter':
42525
+ if (props.inline) {
42526
+ break;
42527
+ }
42528
+ onEnterKey(event);
42529
+ break;
42530
+ case 'Home':
42531
+ if (props.inline) {
42532
+ break;
42533
+ }
42534
+ onHomeKey(event);
42535
+ event.preventDefault();
42536
+ break;
42537
+ case 'End':
42538
+ if (props.inline) {
42539
+ break;
42540
+ }
42541
+ onEndKey(event);
42542
+ event.preventDefault();
42543
+ break;
42544
+ case 'Escape':
42545
+ if (props.inline) {
42546
+ break;
42547
+ }
42548
+ hide();
42549
+ break;
42550
+ case 'Tab':
42551
+ onTabKey(event);
42552
+ break;
42553
+ }
42554
+ };
42386
42555
  var onSelectAll = function onSelectAll(event) {
42387
42556
  if (props.onSelectAll) {
42388
42557
  props.onSelectAll(event);
@@ -42795,20 +42964,19 @@ var MultiSelect = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__namespa
42795
42964
  return selectedItemsLabel;
42796
42965
  };
42797
42966
  var getLabel = function getLabel() {
42798
- var label;
42799
- if (!empty && !props.fixedPlaceholder) {
42800
- var _props$value;
42801
- if (ObjectUtils.isNotEmpty(props.maxSelectedLabels) && ((_props$value = props.value) === null || _props$value === void 0 ? void 0 : _props$value.length) > props.maxSelectedLabels) {
42802
- return getSelectedItemsLabel();
42803
- }
42804
- if (ObjectUtils.isArray(props.value)) {
42805
- return props.value.reduce(function (acc, value, index) {
42806
- return acc + (index !== 0 ? ', ' : '') + getLabelByValue(value);
42807
- }, '');
42808
- }
42967
+ var _props$value;
42968
+ if (empty || props.fixedPlaceholder) {
42809
42969
  return '';
42810
42970
  }
42811
- return label;
42971
+ if (ObjectUtils.isNotEmpty(props.maxSelectedLabels) && ((_props$value = props.value) === null || _props$value === void 0 ? void 0 : _props$value.length) > props.maxSelectedLabels) {
42972
+ return getSelectedItemsLabel();
42973
+ }
42974
+ if (ObjectUtils.isArray(props.value)) {
42975
+ return props.value.reduce(function (acc, value, index) {
42976
+ return acc + (index !== 0 ? ', ' : '') + getLabelByValue(value);
42977
+ }, '');
42978
+ }
42979
+ return '';
42812
42980
  };
42813
42981
  var getLabelContent = function getLabelContent() {
42814
42982
  var valueLength = props.value ? props.value.length : 0;
@@ -43081,6 +43249,7 @@ var MultiSelect = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__namespa
43081
43249
  getOptionValue: getOptionValue,
43082
43250
  updateModel: updateModel,
43083
43251
  onFilterInputChange: onFilterInputChange,
43252
+ onFilterKeyDown: onFilterKeyDown,
43084
43253
  resetFilter: resetFilter,
43085
43254
  onCloseClick: onCloseClick,
43086
43255
  onSelectAll: onSelectAll,
@@ -43121,12 +43290,20 @@ var classes$v = {
43121
43290
  },
43122
43291
  root: function root(_ref2) {
43123
43292
  var props = _ref2.props;
43124
- return classNames('p-multistatecheckbox p-checkbox p-component', props.classNames);
43293
+ return classNames('p-multistatecheckbox p-checkbox p-component', props.classNames, {
43294
+ 'p-variant-filled': props.variant === 'filled'
43295
+ });
43296
+ },
43297
+ checkbox: function checkbox(_ref3) {
43298
+ var props = _ref3.props;
43299
+ return classNames(props.className, {
43300
+ 'p-invalid': props.invalid
43301
+ });
43125
43302
  }
43126
43303
  };
43127
43304
  var inlineStyles$9 = {
43128
- checkbox: function checkbox(_ref3) {
43129
- var selectedOption = _ref3.selectedOption;
43305
+ checkbox: function checkbox(_ref4) {
43306
+ var selectedOption = _ref4.selectedOption;
43130
43307
  return selectedOption && selectedOption.style;
43131
43308
  }
43132
43309
  };
@@ -43151,7 +43328,9 @@ var MultiStateCheckboxBase = ComponentBase.extend({
43151
43328
  tooltip: null,
43152
43329
  tooltipOptions: null,
43153
43330
  value: null,
43154
- children: undefined
43331
+ children: undefined,
43332
+ invalid: false,
43333
+ variant: null
43155
43334
  },
43156
43335
  css: {
43157
43336
  classes: classes$v,
@@ -43300,7 +43479,6 @@ var MultiStateCheckbox = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__
43300
43479
  var ariaProps = ObjectUtils.reduceKeys(otherProps, DomHandler.ARIA_PROPS);
43301
43480
  var icon = createIcon();
43302
43481
  var ariaValueLabel = selectedOption ? getOptionAriaLabel(selectedOption) : ariaLabel('nullLabel');
43303
- var ariaChecked = selectedOption ? 'true' : 'false';
43304
43482
  var rootProps = mergeProps({
43305
43483
  ref: elementRef,
43306
43484
  id: props.id,
@@ -43309,7 +43487,8 @@ var MultiStateCheckbox = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__
43309
43487
  onClick: onClick
43310
43488
  }, MultiStateCheckboxBase.getOtherProps(props), ptm('root'));
43311
43489
  var checkboxProps = mergeProps(_objectSpread$I({
43312
- className: classNames(props.className),
43490
+ id: props.id + '_checkbox',
43491
+ className: cx('checkbox'),
43313
43492
  style: sx('checkbox', {
43314
43493
  selectedOption: selectedOption
43315
43494
  }),
@@ -43317,8 +43496,6 @@ var MultiStateCheckbox = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__
43317
43496
  onFocus: onFocus,
43318
43497
  onBlur: onBlur,
43319
43498
  onKeyDown: onKeyDown,
43320
- role: 'checkbox',
43321
- 'aria-checked': ariaChecked,
43322
43499
  onChange: onClick,
43323
43500
  checked: !!selectedOption,
43324
43501
  disabled: props === null || props === void 0 ? void 0 : props.disabled,
@@ -57671,7 +57848,9 @@ var TreeSelectBase = ComponentBase.extend({
57671
57848
  onBlur: null,
57672
57849
  onFilterValueChange: null,
57673
57850
  onHide: null,
57851
+ onNodeClick: null,
57674
57852
  onNodeCollapse: null,
57853
+ onNodeDoubleClick: null,
57675
57854
  onNodeExpand: null,
57676
57855
  onNodeSelect: null,
57677
57856
  onNodeUnselect: null,
@@ -58363,6 +58542,8 @@ var TreeSelect = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__namespac
58363
58542
  onCollapse: props.onNodeCollapse,
58364
58543
  onExpand: props.onNodeExpand,
58365
58544
  onFilterValueChange: onFilterValueChange,
58545
+ onNodeClick: props.onNodeClick,
58546
+ onNodeDoubleClick: props.onNodeDoubleClick,
58366
58547
  onSelect: onNodeSelect,
58367
58548
  onSelectionChange: onSelectionChange,
58368
58549
  onToggle: onNodeToggle,
@@ -61922,6 +62103,7 @@ var TriStateCheckbox = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__na
61922
62103
  var ariaValueLabel = checkBoxValue ? ariaLabel('trueLabel') : checkBoxValue === false ? ariaLabel('falseLabel') : ariaLabel('nullLabel');
61923
62104
  var ariaChecked = checkBoxValue ? 'true' : 'false';
61924
62105
  var boxProps = mergeProps(_objectSpread({
62106
+ id: props.id + '_box',
61925
62107
  className: cx('box'),
61926
62108
  tabIndex: props.disabled ? '-1' : props.tabIndex,
61927
62109
  onFocus: onFocus,