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
@@ -127,6 +127,7 @@ var FilterMatchMode = Object.freeze({
127
127
  EQUALS: 'equals',
128
128
  NOT_EQUALS: 'notEquals',
129
129
  IN: 'in',
130
+ NOT_IN: 'notIn',
130
131
  LESS_THAN: 'lt',
131
132
  LESS_THAN_OR_EQUAL_TO: 'lte',
132
133
  GREATER_THAN: 'gt',
@@ -2131,11 +2132,13 @@ var ObjectUtils = /*#__PURE__*/function () {
2131
2132
  * @param {object} a - The first object to compare.
2132
2133
  * @param {object} b - The second object to compare.
2133
2134
  * @param {string[]} [keysToCompare] - The keys to compare. If not provided, performs a shallow comparison using absoluteCompare.
2135
+ * @param {number} [maxDepth=1] - The maximum depth to compare if the variables are objects.
2134
2136
  * @returns {boolean} True if all specified properties are equal, false otherwise.
2135
2137
  */
2136
2138
  }, {
2137
2139
  key: "selectiveCompare",
2138
2140
  value: function selectiveCompare(a, b, keysToCompare) {
2141
+ var maxDepth = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
2139
2142
  if (a === b) return true;
2140
2143
  if (!a || !b || _typeof(a) !== 'object' || _typeof(b) !== 'object') return false;
2141
2144
  if (!keysToCompare) return this.absoluteCompare(a, b, 1); // If no keys are provided, the comparison is limited to one depth level.
@@ -2149,7 +2152,7 @@ var ObjectUtils = /*#__PURE__*/function () {
2149
2152
  var isObject = _typeof(aValue) === 'object' && aValue !== null && _typeof(bValue) === 'object' && bValue !== null;
2150
2153
 
2151
2154
  // If the current key is an object, they are compared in one further level only.
2152
- if (isObject && !this.absoluteCompare(aValue, bValue, 1)) return false;
2155
+ if (isObject && !this.absoluteCompare(aValue, bValue, maxDepth)) return false;
2153
2156
  if (!isObject && aValue !== bValue) return false;
2154
2157
  }
2155
2158
  } catch (err) {
@@ -3077,6 +3080,7 @@ var locales = {
3077
3080
  emptySelectionMessage: 'No selected item',
3078
3081
  endsWith: 'Ends with',
3079
3082
  equals: 'Equals',
3083
+ fileChosenMessage: '{0} files',
3080
3084
  fileSizeTypes: ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'],
3081
3085
  filter: 'Filter',
3082
3086
  firstDayOfWeek: 0,
@@ -3095,6 +3099,7 @@ var locales = {
3095
3099
  nextMonth: 'Next Month',
3096
3100
  nextSecond: 'Next Second',
3097
3101
  nextYear: 'Next Year',
3102
+ noFileChosenMessage: 'No file chosen',
3098
3103
  noFilter: 'No Filter',
3099
3104
  notContains: 'Not contains',
3100
3105
  notEquals: 'Not equals',
@@ -3122,8 +3127,10 @@ var locales = {
3122
3127
  aria: {
3123
3128
  cancelEdit: 'Cancel Edit',
3124
3129
  close: 'Close',
3130
+ collapseLabel: 'Collapse',
3125
3131
  collapseRow: 'Row Collapsed',
3126
3132
  editRow: 'Edit Row',
3133
+ expandLabel: 'Expand',
3127
3134
  expandRow: 'Row Expanded',
3128
3135
  falseLabel: 'False',
3129
3136
  filterConstraint: 'Filter Constraint',
@@ -3148,18 +3155,20 @@ var locales = {
3148
3155
  next: 'Next',
3149
3156
  nextPageLabel: 'Next Page',
3150
3157
  nullLabel: 'Not Selected',
3151
- pageLabel: 'Page {page}',
3152
3158
  otpLabel: 'Please enter one time password character {0}',
3159
+ pageLabel: 'Page {page}',
3153
3160
  passwordHide: 'Hide Password',
3154
3161
  passwordShow: 'Show Password',
3155
3162
  previous: 'Previous',
3156
3163
  prevPageLabel: 'Previous Page',
3164
+ removeLabel: 'Remove',
3157
3165
  rotateLeft: 'Rotate Left',
3158
3166
  rotateRight: 'Rotate Right',
3159
3167
  rowsPerPageLabel: 'Rows per page',
3160
3168
  saveEdit: 'Save Edit',
3161
3169
  scrollTop: 'Scroll Top',
3162
3170
  selectAll: 'All items selected',
3171
+ selectLabel: 'Select',
3163
3172
  selectRow: 'Row Selected',
3164
3173
  showFilterMenu: 'Show Filter Menu',
3165
3174
  slide: 'Slide',
@@ -3168,6 +3177,7 @@ var locales = {
3168
3177
  stars: '{star} stars',
3169
3178
  trueLabel: 'True',
3170
3179
  unselectAll: 'All items unselected',
3180
+ unselectLabel: 'Unselect',
3171
3181
  unselectRow: 'Row Unselected',
3172
3182
  zoomImage: 'Zoom Image',
3173
3183
  zoomIn: 'Zoom In',
@@ -12147,13 +12157,32 @@ var Calendar = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (i
12147
12157
  return props.parseDateTime(text);
12148
12158
  }
12149
12159
  var date;
12150
- var parts = text.split(' ');
12151
12160
  if (props.timeOnly) {
12152
12161
  date = new Date();
12153
- populateTime(date, parts[0], parts[1]);
12162
+ var match = text.match(/(\d{1,2}:\d{2}(?::\d{2})?(?:\.\d{1,3})?)\s?(AM|PM)?/i);
12163
+ if (match) {
12164
+ populateTime(date, match[1], match[2]);
12165
+ } else {
12166
+ return null;
12167
+ }
12154
12168
  } else if (props.showTime) {
12155
- date = parseDate(parts[0], getDateFormat());
12156
- populateTime(date, parts[1], parts[2]);
12169
+ var time12 = /(\d{1,2}:\d{2}(?::\d{2})?(?:\.\d{1,3})?)\s?(AM|PM)/i;
12170
+ var time24 = /(\d{1,2}:\d{2}(?::\d{2})?(?:\.\d{1,3})?)$/;
12171
+ var _match, datePart, timePart, ampm;
12172
+ if (props.hourFormat === '12' && (_match = text.match(time12))) {
12173
+ timePart = _match[1];
12174
+ ampm = _match[2];
12175
+ datePart = text.replace(time12, '').trim();
12176
+ } else if (props.hourFormat === '24' && (_match = text.match(time24))) {
12177
+ timePart = _match[1];
12178
+ datePart = text.replace(time24, '').trim();
12179
+ }
12180
+ if (datePart && timePart) {
12181
+ date = parseDate(datePart, getDateFormat());
12182
+ populateTime(date, timePart, ampm);
12183
+ } else {
12184
+ date = parseDate(text, getDateFormat());
12185
+ }
12157
12186
  } else {
12158
12187
  date = parseDate(text, getDateFormat());
12159
12188
  }
@@ -12542,7 +12571,7 @@ var Calendar = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (i
12542
12571
  viewDate.setHours(0, 0, 0);
12543
12572
  isClearClicked.current = false;
12544
12573
  }
12545
- if (!prevPropValue && propValue || propValue && propValue instanceof Date && propValue.getTime() !== prevPropValue.getTime()) {
12574
+ if (!prevPropValue && propValue || propValue && propValue instanceof Date && prevPropValue instanceof Date && propValue.getTime() !== prevPropValue.getTime()) {
12546
12575
  validateDate(viewDate);
12547
12576
  }
12548
12577
  setViewDateState(viewDate);
@@ -12796,6 +12825,9 @@ var Calendar = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (i
12796
12825
  }),
12797
12826
  'aria-selected': selected,
12798
12827
  'aria-disabled': !date.selectable,
12828
+ onMouseDown: function onMouseDown(e) {
12829
+ return e.preventDefault();
12830
+ },
12799
12831
  onClick: function onClick(e) {
12800
12832
  return onDateSelect(e, date);
12801
12833
  },
@@ -14314,6 +14346,22 @@ var Carousel = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (i
14314
14346
  CarouselItem.displayName = 'CarouselItem';
14315
14347
  Carousel.displayName = 'Carousel';
14316
14348
 
14349
+ var TimesIcon = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (inProps, ref) {
14350
+ var pti = IconBase.getPTI(inProps);
14351
+ return /*#__PURE__*/React.createElement("svg", _extends({
14352
+ ref: ref,
14353
+ width: "14",
14354
+ height: "14",
14355
+ viewBox: "0 0 14 14",
14356
+ fill: "none",
14357
+ xmlns: "http://www.w3.org/2000/svg"
14358
+ }, pti), /*#__PURE__*/React.createElement("path", {
14359
+ 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",
14360
+ fill: "currentColor"
14361
+ }));
14362
+ }));
14363
+ TimesIcon.displayName = 'TimesIcon';
14364
+
14317
14365
  var classes$14 = {
14318
14366
  root: function root(_ref) {
14319
14367
  var props = _ref.props,
@@ -14350,6 +14398,7 @@ var classes$14 = {
14350
14398
  });
14351
14399
  },
14352
14400
  dropdownIcon: 'p-cascadeselect-trigger-icon',
14401
+ clearIcon: 'p-cascadeselect-clear-icon p-clickable',
14353
14402
  loadingIcon: 'p-cascadeselect-trigger-icon',
14354
14403
  dropdownButton: 'p-cascadeselect-trigger',
14355
14404
  loadingButton: 'p-cascadeselect-trigger',
@@ -14360,7 +14409,7 @@ var classes$14 = {
14360
14409
  text: 'p-cascadeselect-item-text',
14361
14410
  transition: 'p-connected-overlay'
14362
14411
  };
14363
- 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";
14412
+ 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";
14364
14413
  var CascadeSelectBase = ComponentBase.extend({
14365
14414
  defaultProps: {
14366
14415
  __TYPE: 'CascadeSelect',
@@ -14393,6 +14442,8 @@ var CascadeSelectBase = ComponentBase.extend({
14393
14442
  optionLabel: null,
14394
14443
  optionValue: null,
14395
14444
  options: null,
14445
+ panelClassName: null,
14446
+ panelStyle: null,
14396
14447
  placeholder: null,
14397
14448
  scrollHeight: '400px',
14398
14449
  style: null,
@@ -14705,6 +14756,7 @@ var CascadeSelect = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(functi
14705
14756
  var styleElementRef = React.useRef(null);
14706
14757
  var dirty = React.useRef(false);
14707
14758
  var selectionPath = React.useRef(null);
14759
+ var selfChange = React.useRef(null);
14708
14760
  var _useOverlayListener = useOverlayListener({
14709
14761
  target: elementRef,
14710
14762
  overlay: overlayRef,
@@ -14734,6 +14786,7 @@ var CascadeSelect = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(functi
14734
14786
  });
14735
14787
  var onOptionSelect = function onOptionSelect(event) {
14736
14788
  if (props.onChange) {
14789
+ selfChange.current = true;
14737
14790
  props.onChange({
14738
14791
  originalEvent: event,
14739
14792
  value: event.value
@@ -14960,6 +15013,48 @@ var CascadeSelect = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(functi
14960
15013
  }, ariaProps), ptm('input'));
14961
15014
  return /*#__PURE__*/React.createElement("div", hiddenSelectedMessageProps, /*#__PURE__*/React.createElement("input", inputProps));
14962
15015
  };
15016
+ var clear = function clear(event) {
15017
+ if (props.onChange) {
15018
+ selfChange.current = true;
15019
+ props.onChange({
15020
+ originalEvent: event,
15021
+ value: undefined,
15022
+ stopPropagation: function stopPropagation() {
15023
+ event === null || event === void 0 || event.stopPropagation();
15024
+ },
15025
+ preventDefault: function preventDefault() {
15026
+ event === null || event === void 0 || event.preventDefault();
15027
+ },
15028
+ target: {
15029
+ name: props.name,
15030
+ id: props.id,
15031
+ value: undefined
15032
+ }
15033
+ });
15034
+ }
15035
+ };
15036
+ var onClearIconKeyDown = function onClearIconKeyDown(event) {
15037
+ if (event.key === 'Enter' || event.code === 'Space') {
15038
+ clear(event);
15039
+ event.preventDefault();
15040
+ }
15041
+ };
15042
+ var createClearIcon = function createClearIcon() {
15043
+ if (props.value != null && props.showClear && !props.disabled) {
15044
+ var clearIconProps = mergeProps({
15045
+ className: cx('clearIcon'),
15046
+ onPointerUp: clear,
15047
+ tabIndex: props.tabIndex || '0',
15048
+ onKeyDown: onClearIconKeyDown,
15049
+ 'aria-label': localeOption('clear')
15050
+ }, ptm('clearIcon'));
15051
+ var icon = props.clearIcon || /*#__PURE__*/React.createElement(TimesIcon, clearIconProps);
15052
+ return IconUtils.getJSXIcon(icon, _objectSpread$1H({}, clearIconProps), {
15053
+ props: props
15054
+ });
15055
+ }
15056
+ return null;
15057
+ };
14963
15058
  var createLabel = function createLabel() {
14964
15059
  var label = props.value ? getOptionLabel(props.value) : props.placeholder || 'p-emptylabel';
14965
15060
  var labelProps = mergeProps({
@@ -15013,7 +15108,8 @@ var CascadeSelect = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(functi
15013
15108
  }, ptm('wrapper'));
15014
15109
  var panelProps = mergeProps({
15015
15110
  ref: overlayRef,
15016
- className: cx('panel'),
15111
+ className: classNames(props.panelClassName, cx('panel')),
15112
+ style: props.panelStyle,
15017
15113
  onClick: function onClick(e) {
15018
15114
  return onPanelClick(e);
15019
15115
  }
@@ -15062,6 +15158,7 @@ var CascadeSelect = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(functi
15062
15158
  var createElement = function createElement() {
15063
15159
  var keyboardHelper = createKeyboardHelper();
15064
15160
  var labelElement = createLabel();
15161
+ var clearIcon = createClearIcon();
15065
15162
  var dropdownIcon = props.loading ? createLoadingIcon() : createDropdownIcon();
15066
15163
  var overlay = createOverlay();
15067
15164
  var rootProps = mergeProps({
@@ -15077,7 +15174,7 @@ var CascadeSelect = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(functi
15077
15174
  return _onClick(e);
15078
15175
  }
15079
15176
  }, otherProps, ptm('root'));
15080
- return /*#__PURE__*/React.createElement("div", rootProps, keyboardHelper, labelElement, dropdownIcon, overlay);
15177
+ return /*#__PURE__*/React.createElement("div", rootProps, keyboardHelper, labelElement, clearIcon, dropdownIcon, overlay);
15081
15178
  };
15082
15179
  var otherProps = CascadeSelectBase.getOtherProps(props);
15083
15180
  ObjectUtils.reduceKeys(otherProps, DomHandler.DATA_PROPS);
@@ -16926,22 +17023,6 @@ var FocusTrap = /*#__PURE__*/React__default.memo(/*#__PURE__*/React__default.for
16926
17023
  }));
16927
17024
  var FocusTrap$1 = FocusTrap;
16928
17025
 
16929
- var TimesIcon = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (inProps, ref) {
16930
- var pti = IconBase.getPTI(inProps);
16931
- return /*#__PURE__*/React.createElement("svg", _extends({
16932
- ref: ref,
16933
- width: "14",
16934
- height: "14",
16935
- viewBox: "0 0 14 14",
16936
- fill: "none",
16937
- xmlns: "http://www.w3.org/2000/svg"
16938
- }, pti), /*#__PURE__*/React.createElement("path", {
16939
- 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",
16940
- fill: "currentColor"
16941
- }));
16942
- }));
16943
- TimesIcon.displayName = 'TimesIcon';
16944
-
16945
17026
  var WindowMaximizeIcon = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (inProps, ref) {
16946
17027
  var pti = IconBase.getPTI(inProps);
16947
17028
  return /*#__PURE__*/React.createElement("svg", _extends({
@@ -17095,6 +17176,7 @@ var DialogBase = ComponentBase.extend({
17095
17176
  resizable: true,
17096
17177
  rtl: false,
17097
17178
  showHeader: true,
17179
+ showCloseIcon: true,
17098
17180
  style: null,
17099
17181
  transitionOptions: null,
17100
17182
  visible: false,
@@ -17226,7 +17308,7 @@ var Dialog = /*#__PURE__*/React.forwardRef(function (inProps, ref) {
17226
17308
  var focus = function focus() {
17227
17309
  var activeElement = document.activeElement;
17228
17310
  var isActiveElementInDialog = activeElement && dialogRef.current && dialogRef.current.contains(activeElement);
17229
- if (!isActiveElementInDialog && props.closable && props.showHeader && closeRef.current) {
17311
+ if (!isActiveElementInDialog && props.closable && props.showCloseIcon && props.showHeader && closeRef.current) {
17230
17312
  closeRef.current.focus();
17231
17313
  }
17232
17314
  };
@@ -17532,7 +17614,7 @@ var Dialog = /*#__PURE__*/React.forwardRef(function (inProps, ref) {
17532
17614
  };
17533
17615
  });
17534
17616
  var createCloseIcon = function createCloseIcon() {
17535
- if (props.closable) {
17617
+ if (props.closable && props.showCloseIcon) {
17536
17618
  var labelAria = props.ariaCloseIconLabel || ariaLabel('close');
17537
17619
  var closeButtonIconProps = mergeProps({
17538
17620
  className: cx('closeButtonIcon'),
@@ -20350,7 +20432,7 @@ var InputNumber = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function
20350
20432
  var stacked = props.showButtons && props.buttonLayout === 'stacked';
20351
20433
  var horizontal = props.showButtons && props.buttonLayout === 'horizontal';
20352
20434
  var vertical = props.showButtons && props.buttonLayout === 'vertical';
20353
- var inputMode = props.inputMode || (props.mode === 'decimal' && !props.minFractionDigits ? 'numeric' : 'decimal');
20435
+ var inputMode = props.inputMode || (props.mode === 'decimal' && !props.minFractionDigits && !props.maxFractionDigits ? 'numeric' : 'decimal');
20354
20436
  var getOptions = function getOptions() {
20355
20437
  var _props$minFractionDig, _props$maxFractionDig;
20356
20438
  return {
@@ -20785,6 +20867,10 @@ var InputNumber = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function
20785
20867
  event.preventDefault();
20786
20868
  var _char2 = event.key;
20787
20869
  if (_char2) {
20870
+ // get decimal separator in current locale
20871
+ if (_char2 === '.') {
20872
+ _char2 = _decimalSeparator.current;
20873
+ }
20788
20874
  var _isDecimalSign = isDecimalSign(_char2);
20789
20875
  var _isMinusSign = isMinusSign(_char2);
20790
20876
  if (Number(_char2) >= 0 && Number(_char2) <= 9 || _isMinusSign || _isDecimalSign) {
@@ -20899,6 +20985,7 @@ var InputNumber = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function
20899
20985
  suffixCharIndex = _getCharIndexes2.suffixCharIndex,
20900
20986
  currencyCharIndex = _getCharIndexes2.currencyCharIndex;
20901
20987
  var maxFractionDigits = numberFormat.current.resolvedOptions().maximumFractionDigits;
20988
+ var hasBoundOrAffix = props.min || props.max || props.suffix || props.prefix; //only exception
20902
20989
  var newValueStr;
20903
20990
  if (sign.isMinusSign) {
20904
20991
  var isNewMinusSign = minusCharIndex === -1;
@@ -20918,7 +21005,7 @@ var InputNumber = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function
20918
21005
  newValueStr = insertText(inputValue, text, selectionStart, selectionEnd);
20919
21006
  updateValue(event, newValueStr, text, 'insert');
20920
21007
  } else if (decimalCharIndex === -1 && (maxFractionDigits || props.maxFractionDigits)) {
20921
- var allowedDecimal = inputMode !== 'numeric' || inputMode === 'numeric' && (props.min || props.max);
21008
+ var allowedDecimal = inputMode !== 'numeric' || inputMode === 'numeric' && hasBoundOrAffix;
20922
21009
  if (allowedDecimal) {
20923
21010
  newValueStr = insertText(inputValue, text, selectionStart, selectionEnd);
20924
21011
  updateValue(event, newValueStr, text, 'insert');
@@ -21885,6 +21972,7 @@ var DropdownBase = ComponentBase.extend({
21885
21972
  name: null,
21886
21973
  onBlur: null,
21887
21974
  onChange: null,
21975
+ onClick: null,
21888
21976
  onContextMenu: null,
21889
21977
  onFilter: null,
21890
21978
  onFocus: null,
@@ -22774,15 +22862,24 @@ var Dropdown = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (i
22774
22862
  !pressedInInputText && onEnterKey(event);
22775
22863
  };
22776
22864
  var onEnterKey = function onEnterKey(event) {
22865
+ event.preventDefault();
22777
22866
  if (!overlayVisibleState) {
22778
22867
  setFocusedOptionIndex(-1);
22779
22868
  onArrowDownKey(event);
22780
22869
  } else {
22781
- if (focusedOptionIndex !== -1) {
22782
- onOptionSelect(event, visibleOptions[focusedOptionIndex]);
22870
+ if (focusedOptionIndex === -1) {
22871
+ return;
22872
+ }
22873
+ var focusedOption = visibleOptions[focusedOptionIndex];
22874
+ var optionValue = getOptionValue(focusedOption);
22875
+ if (optionValue == null || optionValue == undefined) {
22876
+ hide();
22877
+ resetFilter();
22878
+ updateEditableLabel(selectedOption);
22879
+ return;
22783
22880
  }
22881
+ onOptionSelect(event, focusedOption);
22784
22882
  }
22785
- event.preventDefault();
22786
22883
  };
22787
22884
  var onEscapeKey = function onEscapeKey(event) {
22788
22885
  overlayVisibleState && hide();
@@ -24561,7 +24658,7 @@ var Cell = function Cell(props) {
24561
24658
  editingRowDataStateRef.current = editingRowData;
24562
24659
  };
24563
24660
  var _onClick = function onClick(event) {
24564
- props.onClick(event, getCellCallbackParams(event), isEditable(), editingState, setEditingState, selfClick, props.column, bindDocumentClickListener, overlayEventListener);
24661
+ props.onClick(event, getCellCallbackParams(event), isEditable(), editingState, setEditingState, selfClick, props.column, bindDocumentClickListener, overlayEventListener, isOutsideClicked);
24565
24662
  };
24566
24663
  var _onMouseDown = function onMouseDown(event) {
24567
24664
  var params = getCellCallbackParams(event);
@@ -24683,7 +24780,7 @@ var Cell = function Cell(props) {
24683
24780
  field: props.field,
24684
24781
  index: props.rowIndex
24685
24782
  });
24686
- props.focusOnInit();
24783
+ props.focusOnInit(initFocusTimeout, elementRef);
24687
24784
  };
24688
24785
  React.useEffect(function () {
24689
24786
  if (props.frozenCol) props.updateStickyPosition(elementRef, props.frozenCol, props.alignFrozenCol, styleObjectState, setStyleObjectState);
@@ -25024,11 +25121,18 @@ var RadioCheckCell = /*#__PURE__*/React.memo(function (props) {
25024
25121
  return ObjectUtils.selectiveCompare(prevProps, nextProps, keysToCompare);
25025
25122
  });
25026
25123
  RadioCheckCell.displayName = 'RadioCheckCell';
25124
+ var defaultKeysToCompare = ['rowData', 'field', 'allowCellSelection', 'isCellSelected', 'editMode', 'index', 'tabIndex', 'editing', 'expanded', 'editingMeta', 'frozenCol', 'alignFrozenCol'];
25027
25125
  var BodyCell = /*#__PURE__*/React.memo(function (props) {
25028
25126
  return /*#__PURE__*/React.createElement(Cell, props);
25029
25127
  }, function (prevProps, nextProps) {
25030
- var keysToCompare = ['field', 'allowCellSelection', 'isCellSelected', 'editMode', 'index', 'tabIndex', 'editing', 'expanded', 'editingMeta', 'rowData', 'frozenCol', 'alignFrozenCol'];
25031
- return ObjectUtils.selectiveCompare(prevProps, nextProps, keysToCompare);
25128
+ if (nextProps.cellMemo === false) return false;
25129
+ var memoProps = nextProps.cellMemoProps;
25130
+ var keysToCompare = Array.isArray(memoProps) && memoProps.every(function (prop) {
25131
+ return typeof prop === 'string';
25132
+ }) ? memoProps : defaultKeysToCompare;
25133
+ var memoPropsDepth = nextProps.cellMemoPropsDepth;
25134
+ var depth = typeof memoPropsDepth === 'number' && memoPropsDepth > 0 ? memoPropsDepth : 1;
25135
+ return ObjectUtils.selectiveCompare(prevProps, nextProps, keysToCompare, depth);
25032
25136
  });
25033
25137
  BodyCell.displayName = 'BodyCell';
25034
25138
 
@@ -25505,7 +25609,7 @@ var BodyRow = /*#__PURE__*/React.memo(function (props) {
25505
25609
  !isSameStyle && setStyleObjectState(styleObject);
25506
25610
  }
25507
25611
  }, []);
25508
- var onCellClick = function onCellClick(event, params, isEditable, editingState, setEditingState, selfClick, column, bindDocumentClickListener, overlayEventListener) {
25612
+ var onCellClick = function onCellClick(event, params, isEditable, editingState, setEditingState, selfClick, column, bindDocumentClickListener, overlayEventListener, isOutsideClicked) {
25509
25613
  if (props.editMode !== 'row' && isEditable && !editingState && (props.selectOnEdit || !props.selectOnEdit && props.isRowSelected)) {
25510
25614
  selfClick.current = true;
25511
25615
  var onBeforeCellEditShow = getColumnProp(column, 'onBeforeCellEditShow');
@@ -25564,6 +25668,9 @@ var BodyRow = /*#__PURE__*/React.memo(function (props) {
25564
25668
  var cellProps = mergeProps({
25565
25669
  hostName: props.hostName,
25566
25670
  allowCellSelection: props.allowCellSelection,
25671
+ cellMemo: props.cellMemo,
25672
+ cellMemoProps: props.cellMemoProps,
25673
+ cellMemoPropsDepth: props.cellMemoPropsDepth,
25567
25674
  cellClassName: props.cellClassName,
25568
25675
  checkIcon: props.checkIcon,
25569
25676
  collapsedRowIcon: props.collapsedRowIcon,
@@ -25931,9 +26038,6 @@ var TableBody = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (
25931
26038
  options = options || props.virtualScrollerOptions;
25932
26039
  return options ? options[option] : null;
25933
26040
  };
25934
- var getProcessedDataIndex = function getProcessedDataIndex(rowIndex) {
25935
- return props.lazy ? rowIndex - props.first : rowIndex;
25936
- };
25937
26041
  var findIndex = function findIndex(collection, rowData) {
25938
26042
  return (collection || []).findIndex(function (data) {
25939
26043
  return equals(rowData, data);
@@ -26104,16 +26208,14 @@ var TableBody = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (
26104
26208
  var rangeStart;
26105
26209
  var rangeEnd;
26106
26210
  var isAllowCellSelection = allowCellSelection();
26107
- var rangeRowIndexInProcessedData = getProcessedDataIndex(rangeRowIndex.current);
26108
- var anchorRowIndexInProcessedData = getProcessedDataIndex(anchorRowIndex.current);
26109
- if (rangeRowIndexInProcessedData > anchorRowIndexInProcessedData) {
26110
- rangeStart = anchorRowIndexInProcessedData;
26111
- rangeEnd = rangeRowIndexInProcessedData;
26112
- } else if (rangeRowIndexInProcessedData < anchorRowIndexInProcessedData) {
26113
- rangeStart = rangeRowIndexInProcessedData;
26114
- rangeEnd = anchorRowIndexInProcessedData;
26211
+ if (rangeRowIndex.current > anchorRowIndex.current) {
26212
+ rangeStart = anchorRowIndex.current;
26213
+ rangeEnd = rangeRowIndex.current;
26214
+ } else if (rangeRowIndex.current < anchorRowIndex.current) {
26215
+ rangeStart = rangeRowIndex.current;
26216
+ rangeEnd = anchorRowIndex.current;
26115
26217
  } else {
26116
- rangeStart = rangeEnd = rangeRowIndexInProcessedData;
26218
+ rangeStart = rangeEnd = rangeRowIndex.current;
26117
26219
  }
26118
26220
  return isAllowCellSelection ? selectRangeOnCell(event, rangeStart, rangeEnd) : selectRangeOnRow(event, rangeStart, rangeEnd);
26119
26221
  };
@@ -26154,7 +26256,7 @@ var TableBody = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (
26154
26256
  for (var i = rowRangeStart; i <= rowRangeEnd; i++) {
26155
26257
  var rowData = value[i];
26156
26258
  var columns = props.columns;
26157
- var rowIndex = props.lazy ? i + props.first : i;
26259
+ var rowIndex = props.paginator ? i + props.first : i;
26158
26260
  for (var j = cellRangeStart; j <= cellRangeEnd; j++) {
26159
26261
  var field = getColumnProp(columns[j], 'field');
26160
26262
  var _value = ObjectUtils.resolveFieldData(rowData, field);
@@ -26353,13 +26455,17 @@ var TableBody = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (
26353
26455
  onRangeSelection(event, 'row');
26354
26456
  }
26355
26457
  };
26458
+ var expandedRowsRef = React.useRef(props.expandedRows);
26459
+ React.useEffect(function () {
26460
+ expandedRowsRef.current = props.expandedRows;
26461
+ }, [props.expandedRows]);
26356
26462
  var onRowToggle = function onRowToggle(event) {
26357
26463
  var expandedRows;
26358
26464
  var dataKey = props.dataKey;
26359
26465
  var hasDataKey = props.groupRowsBy ? dataKey === props.groupRowsBy : !!dataKey;
26360
26466
  if (hasDataKey) {
26361
26467
  var dataKeyValue = String(ObjectUtils.resolveFieldData(event.data, dataKey));
26362
- expandedRows = props.expandedRows ? _objectSpread$1f({}, props.expandedRows) : {};
26468
+ expandedRows = expandedRowsRef.current ? _objectSpread$1f({}, expandedRowsRef.current) : {};
26363
26469
  if (expandedRows[dataKeyValue] != null) {
26364
26470
  delete expandedRows[dataKeyValue];
26365
26471
  if (props.onRowCollapse) {
@@ -26378,8 +26484,8 @@ var TableBody = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (
26378
26484
  }
26379
26485
  }
26380
26486
  } else {
26381
- var expandedRowIndex = findIndex(props.expandedRows, event.data);
26382
- expandedRows = props.expandedRows ? _toConsumableArray(props.expandedRows) : [];
26487
+ var expandedRowIndex = findIndex(expandedRowsRef.current, event.data);
26488
+ expandedRows = expandedRowsRef.current ? _toConsumableArray(expandedRowsRef.current) : [];
26383
26489
  if (expandedRowIndex !== -1) {
26384
26490
  expandedRows = expandedRows.filter(function (_, i) {
26385
26491
  return i !== expandedRowIndex;
@@ -26629,7 +26735,7 @@ var TableBody = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (
26629
26735
  return null;
26630
26736
  };
26631
26737
  var createGroupHeader = function createGroupHeader(rowData, rowIndex, expanded, colSpan) {
26632
- if (isSubheaderGrouping && shouldRenderRowGroupHeader(props.value, rowData, getProcessedDataIndex(rowIndex))) {
26738
+ if (isSubheaderGrouping && shouldRenderRowGroupHeader(props.value, rowData, rowIndex - props.first)) {
26633
26739
  var style = rowGroupHeaderStyle();
26634
26740
  var toggler = props.expandableRowGroups && /*#__PURE__*/React.createElement(RowTogglerButton, {
26635
26741
  hostName: props.hostName,
@@ -26679,6 +26785,9 @@ var TableBody = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (
26679
26785
  hostName: props.hostName,
26680
26786
  allowCellSelection: _allowCellSelection,
26681
26787
  allowRowSelection: _allowRowSelection,
26788
+ cellMemo: props.cellMemo,
26789
+ cellMemoProps: props.cellMemoProps,
26790
+ cellMemoPropsDepth: props.cellMemoPropsDepth,
26682
26791
  cellClassName: props.cellClassName,
26683
26792
  checkIcon: props.checkIcon,
26684
26793
  collapsedRowIcon: props.collapsedRowIcon,
@@ -29929,58 +30038,60 @@ var DataTable = /*#__PURE__*/React.forwardRef(function (inProps, ref) {
29929
30038
  var exportCSV = function exportCSV(options) {
29930
30039
  var data;
29931
30040
  var csv = "\uFEFF";
29932
- var columns = getColumns();
29933
30041
  if (options && options.selectionOnly) {
29934
30042
  data = props.selection || [];
29935
30043
  } else {
29936
30044
  data = [].concat(_toConsumableArray(props.frozenValue || []), _toConsumableArray(processedData() || []));
29937
30045
  }
29938
30046
 
29939
- //headers
29940
- columns.forEach(function (column, i) {
29941
- var _ref5 = [getColumnProp(column, 'field'), getColumnProp(column, 'header'), getColumnProp(column, 'exportHeader'), getColumnProp(column, 'exportable')],
30047
+ // First build collection of exportable columns
30048
+ var exportableColumns = getColumns().filter(function (column) {
30049
+ var exportable = getColumnProp(column, 'exportable');
30050
+ var field = getColumnProp(column, 'field');
30051
+
30052
+ // Column must be exportable (or undefined/not set) and have a field defined
30053
+ return exportable !== false && field;
30054
+ });
30055
+
30056
+ // headers
30057
+ exportableColumns.forEach(function (column, i) {
30058
+ var _ref5 = [getColumnProp(column, 'field'), getColumnProp(column, 'header'), getColumnProp(column, 'exportHeader')],
29942
30059
  field = _ref5[0],
29943
30060
  header = _ref5[1],
29944
- exportHeader = _ref5[2],
29945
- exportable = _ref5[3];
29946
- if (exportable && field) {
29947
- var columnHeader = String(exportHeader || header || field).replace(/"/g, '""').replace(/\n/g, "\u2028");
29948
- csv = csv + ('"' + columnHeader + '"');
29949
- if (i < columns.length - 1) {
29950
- csv = csv + props.csvSeparator;
29951
- }
30061
+ exportHeader = _ref5[2];
30062
+ var columnHeader = String(exportHeader || header || field).replace(/"/g, '""').replace(/\n/g, "\u2028");
30063
+ csv = csv + ('"' + columnHeader + '"');
30064
+ if (i < exportableColumns.length - 1) {
30065
+ csv = csv + props.csvSeparator;
29952
30066
  }
29953
30067
  });
29954
30068
 
29955
- //body
30069
+ // body
29956
30070
  data.forEach(function (record) {
29957
30071
  csv = csv + '\n';
29958
- columns.forEach(function (column, i) {
29959
- var _ref6 = [getColumnProp(column, 'field'), getColumnProp(column, 'exportField'), getColumnProp(column, 'exportable')],
30072
+ exportableColumns.forEach(function (column, i) {
30073
+ var _ref6 = [getColumnProp(column, 'field'), getColumnProp(column, 'exportField')],
29960
30074
  colField = _ref6[0],
29961
- exportField = _ref6[1],
29962
- exportable = _ref6[2];
30075
+ exportField = _ref6[1];
29963
30076
  var field = exportField || colField;
29964
- if (exportable && field) {
29965
- var cellData = ObjectUtils.resolveFieldData(record, field);
29966
- if (cellData != null) {
29967
- if (props.exportFunction) {
29968
- cellData = props.exportFunction({
29969
- data: cellData,
29970
- field: field,
29971
- rowData: record,
29972
- column: column
29973
- });
29974
- } else {
29975
- cellData = String(cellData).replace(/"/g, '""').replace(/\n/g, "\u2028");
29976
- }
30077
+ var cellData = ObjectUtils.resolveFieldData(record, field);
30078
+ if (cellData != null) {
30079
+ if (props.exportFunction) {
30080
+ cellData = props.exportFunction({
30081
+ data: cellData,
30082
+ field: field,
30083
+ rowData: record,
30084
+ column: column
30085
+ });
29977
30086
  } else {
29978
- cellData = '';
29979
- }
29980
- csv = csv + ('"' + cellData + '"');
29981
- if (i < columns.length - 1) {
29982
- csv = csv + props.csvSeparator;
30087
+ cellData = String(cellData).replace(/"/g, '""').replace(/\n/g, "\u2028");
29983
30088
  }
30089
+ } else {
30090
+ cellData = '';
30091
+ }
30092
+ csv = csv + ('"' + cellData + '"');
30093
+ if (i < exportableColumns.length - 1) {
30094
+ csv = csv + props.csvSeparator;
29984
30095
  }
29985
30096
  });
29986
30097
  });
@@ -30245,6 +30356,9 @@ var DataTable = /*#__PURE__*/React.forwardRef(function (inProps, ref) {
30245
30356
  var frozenBody = ObjectUtils.isNotEmpty(props.frozenValue) && /*#__PURE__*/React.createElement(TableBody, {
30246
30357
  hostName: "DataTable",
30247
30358
  ref: frozenBodyRef,
30359
+ cellMemo: props.cellMemo,
30360
+ cellMemoProps: props.cellMemoProps,
30361
+ cellMemoPropsDepth: props.cellMemoPropsDepth,
30248
30362
  cellClassName: props.cellClassName,
30249
30363
  cellSelection: props.cellSelection,
30250
30364
  checkIcon: props.checkIcon,
@@ -30329,6 +30443,9 @@ var DataTable = /*#__PURE__*/React.forwardRef(function (inProps, ref) {
30329
30443
  var body = /*#__PURE__*/React.createElement(TableBody, {
30330
30444
  hostName: "DataTable",
30331
30445
  ref: bodyRef,
30446
+ cellMemo: props.cellMemo,
30447
+ cellMemoProps: props.cellMemoProps,
30448
+ cellMemoPropsDepth: props.cellMemoPropsDepth,
30332
30449
  cellClassName: props.cellClassName,
30333
30450
  cellSelection: props.cellSelection,
30334
30451
  checkIcon: props.checkIcon,
@@ -32749,7 +32866,7 @@ var FileUpload = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function
32749
32866
  var k = 1024;
32750
32867
  var dm = 3;
32751
32868
  var sizes = localeOption('fileSizeTypes');
32752
- if (bytes === 0) {
32869
+ if (bytes <= 0) {
32753
32870
  return "0 ".concat(sizes[0]);
32754
32871
  }
32755
32872
  var i = Math.floor(Math.log(bytes) / Math.log(k));
@@ -32771,7 +32888,8 @@ var FileUpload = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function
32771
32888
  var selectedFiles = event.dataTransfer ? event.dataTransfer.files : event.target.files;
32772
32889
  for (var i = 0; i < selectedFiles.length; i++) {
32773
32890
  var file = selectedFiles[i];
32774
- if (!isFileSelected(file) && validate(file)) {
32891
+ var shouldAddFile = props.multiple ? !isFileSelected(file) && validate(file) : validate(file);
32892
+ if (shouldAddFile) {
32775
32893
  file.objectURL = window.URL.createObjectURL(file);
32776
32894
  currentFiles.push(file);
32777
32895
  }
@@ -32787,6 +32905,7 @@ var FileUpload = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function
32787
32905
  });
32788
32906
  }
32789
32907
  clearInput();
32908
+ setFocusedState(false);
32790
32909
  if (props.mode === 'basic' && currentFiles.length > 0) {
32791
32910
  fileInputRef.current.style.display = 'none';
32792
32911
  }
@@ -34513,6 +34632,7 @@ var Galleria = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (i
34513
34632
  },
34514
34633
  options: props.transitionOptions,
34515
34634
  unmountOnExit: true,
34635
+ appear: true,
34516
34636
  onEnter: onEnter,
34517
34637
  onEntering: onEntering,
34518
34638
  onEntered: onEntered,
@@ -39957,6 +40077,9 @@ var Menu = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (inPro
39957
40077
  className: classNames(item.className, cx('menuitem', {
39958
40078
  focused: focusedOptionIndex === key
39959
40079
  })),
40080
+ onClick: function onClick(event) {
40081
+ return onItemClick(event, item, key);
40082
+ },
39960
40083
  style: sx('menuitem', {
39961
40084
  item: item
39962
40085
  }),
@@ -41564,6 +41687,7 @@ var MultiSelectHeader = /*#__PURE__*/React.memo(function (props) {
41564
41687
  role: "searchbox",
41565
41688
  value: props.filterValue,
41566
41689
  onChange: onFilter,
41690
+ onKeyDown: props.onFilterKeyDown,
41567
41691
  className: "p-multiselect-filter",
41568
41692
  placeholder: props.filterPlaceholder,
41569
41693
  pt: ptm('filterInput'),
@@ -41719,9 +41843,7 @@ var MultiSelectItem = /*#__PURE__*/React.memo(function (props) {
41719
41843
  'data-p-highlight': props.selected,
41720
41844
  'data-p-disabled': props.disabled
41721
41845
  }, getPTOptions('item'));
41722
- return /*#__PURE__*/React.createElement("li", _extends({}, itemProps, {
41723
- key: props.index + '_multiselectitem'
41724
- }), /*#__PURE__*/React.createElement("div", checkboxContainerProps, /*#__PURE__*/React.createElement(Checkbox, {
41846
+ return /*#__PURE__*/React.createElement("li", itemProps, /*#__PURE__*/React.createElement("div", checkboxContainerProps, /*#__PURE__*/React.createElement(Checkbox, {
41725
41847
  ref: checkboxRef,
41726
41848
  checked: props.selected,
41727
41849
  icon: checkboxIcon,
@@ -41789,6 +41911,7 @@ var MultiSelectPanel = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(fun
41789
41911
  getOptionValue: props.getOptionValue,
41790
41912
  updateModel: props.updateModel,
41791
41913
  onFilter: onFilterInputChange,
41914
+ onFilterKeyDown: props.onFilterKeyDown,
41792
41915
  filterPlaceholder: props.filterPlaceholder,
41793
41916
  onClose: props.onCloseClick,
41794
41917
  showSelectAll: props.showSelectAll,
@@ -42356,6 +42479,52 @@ var MultiSelect = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function
42356
42479
  }
42357
42480
  setClicked(false);
42358
42481
  };
42482
+ var onFilterKeyDown = function onFilterKeyDown(event) {
42483
+ switch (event.code) {
42484
+ case 'ArrowUp':
42485
+ if (props.inline) {
42486
+ break;
42487
+ }
42488
+ onArrowUpKey(event);
42489
+ break;
42490
+ case 'ArrowDown':
42491
+ if (props.inline) {
42492
+ break;
42493
+ }
42494
+ onArrowDownKey(event);
42495
+ break;
42496
+ case 'NumpadEnter':
42497
+ case 'Enter':
42498
+ if (props.inline) {
42499
+ break;
42500
+ }
42501
+ onEnterKey(event);
42502
+ break;
42503
+ case 'Home':
42504
+ if (props.inline) {
42505
+ break;
42506
+ }
42507
+ onHomeKey(event);
42508
+ event.preventDefault();
42509
+ break;
42510
+ case 'End':
42511
+ if (props.inline) {
42512
+ break;
42513
+ }
42514
+ onEndKey(event);
42515
+ event.preventDefault();
42516
+ break;
42517
+ case 'Escape':
42518
+ if (props.inline) {
42519
+ break;
42520
+ }
42521
+ hide();
42522
+ break;
42523
+ case 'Tab':
42524
+ onTabKey(event);
42525
+ break;
42526
+ }
42527
+ };
42359
42528
  var onSelectAll = function onSelectAll(event) {
42360
42529
  if (props.onSelectAll) {
42361
42530
  props.onSelectAll(event);
@@ -42768,20 +42937,19 @@ var MultiSelect = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function
42768
42937
  return selectedItemsLabel;
42769
42938
  };
42770
42939
  var getLabel = function getLabel() {
42771
- var label;
42772
- if (!empty && !props.fixedPlaceholder) {
42773
- var _props$value;
42774
- if (ObjectUtils.isNotEmpty(props.maxSelectedLabels) && ((_props$value = props.value) === null || _props$value === void 0 ? void 0 : _props$value.length) > props.maxSelectedLabels) {
42775
- return getSelectedItemsLabel();
42776
- }
42777
- if (ObjectUtils.isArray(props.value)) {
42778
- return props.value.reduce(function (acc, value, index) {
42779
- return acc + (index !== 0 ? ', ' : '') + getLabelByValue(value);
42780
- }, '');
42781
- }
42940
+ var _props$value;
42941
+ if (empty || props.fixedPlaceholder) {
42782
42942
  return '';
42783
42943
  }
42784
- return label;
42944
+ if (ObjectUtils.isNotEmpty(props.maxSelectedLabels) && ((_props$value = props.value) === null || _props$value === void 0 ? void 0 : _props$value.length) > props.maxSelectedLabels) {
42945
+ return getSelectedItemsLabel();
42946
+ }
42947
+ if (ObjectUtils.isArray(props.value)) {
42948
+ return props.value.reduce(function (acc, value, index) {
42949
+ return acc + (index !== 0 ? ', ' : '') + getLabelByValue(value);
42950
+ }, '');
42951
+ }
42952
+ return '';
42785
42953
  };
42786
42954
  var getLabelContent = function getLabelContent() {
42787
42955
  var valueLength = props.value ? props.value.length : 0;
@@ -43054,6 +43222,7 @@ var MultiSelect = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function
43054
43222
  getOptionValue: getOptionValue,
43055
43223
  updateModel: updateModel,
43056
43224
  onFilterInputChange: onFilterInputChange,
43225
+ onFilterKeyDown: onFilterKeyDown,
43057
43226
  resetFilter: resetFilter,
43058
43227
  onCloseClick: onCloseClick,
43059
43228
  onSelectAll: onSelectAll,
@@ -43094,12 +43263,20 @@ var classes$v = {
43094
43263
  },
43095
43264
  root: function root(_ref2) {
43096
43265
  var props = _ref2.props;
43097
- return classNames('p-multistatecheckbox p-checkbox p-component', props.classNames);
43266
+ return classNames('p-multistatecheckbox p-checkbox p-component', props.classNames, {
43267
+ 'p-variant-filled': props.variant === 'filled'
43268
+ });
43269
+ },
43270
+ checkbox: function checkbox(_ref3) {
43271
+ var props = _ref3.props;
43272
+ return classNames(props.className, {
43273
+ 'p-invalid': props.invalid
43274
+ });
43098
43275
  }
43099
43276
  };
43100
43277
  var inlineStyles$9 = {
43101
- checkbox: function checkbox(_ref3) {
43102
- var selectedOption = _ref3.selectedOption;
43278
+ checkbox: function checkbox(_ref4) {
43279
+ var selectedOption = _ref4.selectedOption;
43103
43280
  return selectedOption && selectedOption.style;
43104
43281
  }
43105
43282
  };
@@ -43124,7 +43301,9 @@ var MultiStateCheckboxBase = ComponentBase.extend({
43124
43301
  tooltip: null,
43125
43302
  tooltipOptions: null,
43126
43303
  value: null,
43127
- children: undefined
43304
+ children: undefined,
43305
+ invalid: false,
43306
+ variant: null
43128
43307
  },
43129
43308
  css: {
43130
43309
  classes: classes$v,
@@ -43273,7 +43452,6 @@ var MultiStateCheckbox = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(f
43273
43452
  var ariaProps = ObjectUtils.reduceKeys(otherProps, DomHandler.ARIA_PROPS);
43274
43453
  var icon = createIcon();
43275
43454
  var ariaValueLabel = selectedOption ? getOptionAriaLabel(selectedOption) : ariaLabel('nullLabel');
43276
- var ariaChecked = selectedOption ? 'true' : 'false';
43277
43455
  var rootProps = mergeProps({
43278
43456
  ref: elementRef,
43279
43457
  id: props.id,
@@ -43282,7 +43460,8 @@ var MultiStateCheckbox = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(f
43282
43460
  onClick: onClick
43283
43461
  }, MultiStateCheckboxBase.getOtherProps(props), ptm('root'));
43284
43462
  var checkboxProps = mergeProps(_objectSpread$I({
43285
- className: classNames(props.className),
43463
+ id: props.id + '_checkbox',
43464
+ className: cx('checkbox'),
43286
43465
  style: sx('checkbox', {
43287
43466
  selectedOption: selectedOption
43288
43467
  }),
@@ -43290,8 +43469,6 @@ var MultiStateCheckbox = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(f
43290
43469
  onFocus: onFocus,
43291
43470
  onBlur: onBlur,
43292
43471
  onKeyDown: onKeyDown,
43293
- role: 'checkbox',
43294
- 'aria-checked': ariaChecked,
43295
43472
  onChange: onClick,
43296
43473
  checked: !!selectedOption,
43297
43474
  disabled: props === null || props === void 0 ? void 0 : props.disabled,
@@ -57644,7 +57821,9 @@ var TreeSelectBase = ComponentBase.extend({
57644
57821
  onBlur: null,
57645
57822
  onFilterValueChange: null,
57646
57823
  onHide: null,
57824
+ onNodeClick: null,
57647
57825
  onNodeCollapse: null,
57826
+ onNodeDoubleClick: null,
57648
57827
  onNodeExpand: null,
57649
57828
  onNodeSelect: null,
57650
57829
  onNodeUnselect: null,
@@ -58336,6 +58515,8 @@ var TreeSelect = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function
58336
58515
  onCollapse: props.onNodeCollapse,
58337
58516
  onExpand: props.onNodeExpand,
58338
58517
  onFilterValueChange: onFilterValueChange,
58518
+ onNodeClick: props.onNodeClick,
58519
+ onNodeDoubleClick: props.onNodeDoubleClick,
58339
58520
  onSelect: onNodeSelect,
58340
58521
  onSelectionChange: onSelectionChange,
58341
58522
  onToggle: onNodeToggle,
@@ -61895,6 +62076,7 @@ var TriStateCheckbox = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(fun
61895
62076
  var ariaValueLabel = checkBoxValue ? ariaLabel('trueLabel') : checkBoxValue === false ? ariaLabel('falseLabel') : ariaLabel('nullLabel');
61896
62077
  var ariaChecked = checkBoxValue ? 'true' : 'false';
61897
62078
  var boxProps = mergeProps(_objectSpread({
62079
+ id: props.id + '_box',
61898
62080
  className: cx('box'),
61899
62081
  tabIndex: props.disabled ? '-1' : props.tabIndex,
61900
62082
  onFocus: onFocus,