primereact 10.9.4 → 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 (237) 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.cjs.js +13 -1
  9. package/autocomplete/autocomplete.cjs.min.js +1 -1
  10. package/autocomplete/autocomplete.d.ts +5 -5
  11. package/autocomplete/autocomplete.esm.js +14 -2
  12. package/autocomplete/autocomplete.esm.min.js +1 -1
  13. package/autocomplete/autocomplete.js +13 -1
  14. package/autocomplete/autocomplete.min.js +1 -1
  15. package/breadcrumb/breadcrumb.cjs.js +2 -1
  16. package/breadcrumb/breadcrumb.cjs.min.js +1 -1
  17. package/breadcrumb/breadcrumb.esm.js +2 -1
  18. package/breadcrumb/breadcrumb.esm.min.js +1 -1
  19. package/breadcrumb/breadcrumb.js +2 -1
  20. package/breadcrumb/breadcrumb.min.js +1 -1
  21. package/calendar/calendar.cjs.js +37 -7
  22. package/calendar/calendar.cjs.min.js +1 -1
  23. package/calendar/calendar.esm.js +38 -8
  24. package/calendar/calendar.esm.min.js +1 -1
  25. package/calendar/calendar.js +37 -7
  26. package/calendar/calendar.min.js +1 -1
  27. package/cascadeselect/cascadeselect.cjs.js +62 -5
  28. package/cascadeselect/cascadeselect.cjs.min.js +1 -1
  29. package/cascadeselect/cascadeselect.d.ts +22 -0
  30. package/cascadeselect/cascadeselect.esm.js +63 -6
  31. package/cascadeselect/cascadeselect.esm.min.js +1 -1
  32. package/cascadeselect/cascadeselect.js +63 -7
  33. package/cascadeselect/cascadeselect.min.js +1 -1
  34. package/checkbox/checkbox.cjs.js +1 -1
  35. package/checkbox/checkbox.cjs.min.js +1 -1
  36. package/checkbox/checkbox.esm.js +1 -1
  37. package/checkbox/checkbox.esm.min.js +1 -1
  38. package/checkbox/checkbox.js +1 -1
  39. package/checkbox/checkbox.min.js +1 -1
  40. package/chip/chip.cjs.js +15 -2
  41. package/chip/chip.cjs.min.js +1 -1
  42. package/chip/chip.esm.js +17 -4
  43. package/chip/chip.esm.min.js +1 -1
  44. package/chip/chip.js +15 -2
  45. package/chip/chip.min.js +1 -1
  46. package/chips/chips.cjs.js +1 -1
  47. package/chips/chips.cjs.min.js +1 -1
  48. package/chips/chips.esm.js +1 -1
  49. package/chips/chips.esm.min.js +1 -1
  50. package/chips/chips.js +1 -1
  51. package/chips/chips.min.js +1 -1
  52. package/colorpicker/colorpicker.cjs.js +9 -2
  53. package/colorpicker/colorpicker.cjs.min.js +1 -1
  54. package/colorpicker/colorpicker.esm.js +9 -2
  55. package/colorpicker/colorpicker.esm.min.js +1 -1
  56. package/colorpicker/colorpicker.js +9 -2
  57. package/colorpicker/colorpicker.min.js +1 -1
  58. package/confirmpopup/confirmpopup.cjs.js +10 -2
  59. package/confirmpopup/confirmpopup.cjs.min.js +1 -1
  60. package/confirmpopup/confirmpopup.esm.js +10 -2
  61. package/confirmpopup/confirmpopup.esm.min.js +1 -1
  62. package/confirmpopup/confirmpopup.js +10 -2
  63. package/confirmpopup/confirmpopup.min.js +1 -1
  64. package/core/core.js +214 -38
  65. package/core/core.min.js +9 -9
  66. package/datatable/datatable.cjs.js +359 -291
  67. package/datatable/datatable.cjs.min.js +1 -1
  68. package/datatable/datatable.d.ts +79 -3
  69. package/datatable/datatable.esm.js +360 -292
  70. package/datatable/datatable.esm.min.js +1 -1
  71. package/datatable/datatable.js +359 -291
  72. package/datatable/datatable.min.js +1 -1
  73. package/dialog/dialog.cjs.js +3 -2
  74. package/dialog/dialog.cjs.min.js +1 -1
  75. package/dialog/dialog.d.ts +6 -1
  76. package/dialog/dialog.esm.js +3 -2
  77. package/dialog/dialog.esm.min.js +1 -1
  78. package/dialog/dialog.js +3 -2
  79. package/dialog/dialog.min.js +1 -1
  80. package/dropdown/dropdown.cjs.js +26 -5
  81. package/dropdown/dropdown.cjs.min.js +1 -1
  82. package/dropdown/dropdown.d.ts +4 -0
  83. package/dropdown/dropdown.esm.js +26 -5
  84. package/dropdown/dropdown.esm.min.js +1 -1
  85. package/dropdown/dropdown.js +26 -5
  86. package/dropdown/dropdown.min.js +1 -1
  87. package/fileupload/fileupload.cjs.js +4 -2
  88. package/fileupload/fileupload.cjs.min.js +1 -1
  89. package/fileupload/fileupload.esm.js +4 -2
  90. package/fileupload/fileupload.esm.min.js +1 -1
  91. package/fileupload/fileupload.js +4 -2
  92. package/fileupload/fileupload.min.js +1 -1
  93. package/galleria/galleria.cjs.js +1 -0
  94. package/galleria/galleria.cjs.min.js +1 -1
  95. package/galleria/galleria.esm.js +1 -0
  96. package/galleria/galleria.esm.min.js +1 -1
  97. package/galleria/galleria.js +1 -0
  98. package/galleria/galleria.min.js +1 -1
  99. package/hooks/hooks.cjs.js +16 -6
  100. package/hooks/hooks.cjs.min.js +1 -1
  101. package/hooks/hooks.esm.js +16 -6
  102. package/hooks/hooks.esm.min.js +1 -1
  103. package/hooks/hooks.js +16 -6
  104. package/hooks/hooks.min.js +1 -1
  105. package/inputmask/inputmask.cjs.js +1 -1
  106. package/inputmask/inputmask.cjs.min.js +1 -1
  107. package/inputmask/inputmask.esm.js +1 -1
  108. package/inputmask/inputmask.esm.min.js +1 -1
  109. package/inputmask/inputmask.js +1 -1
  110. package/inputmask/inputmask.min.js +1 -1
  111. package/inputnumber/inputnumber.cjs.js +11 -3
  112. package/inputnumber/inputnumber.cjs.min.js +1 -1
  113. package/inputnumber/inputnumber.esm.js +11 -3
  114. package/inputnumber/inputnumber.esm.min.js +1 -1
  115. package/inputnumber/inputnumber.js +11 -3
  116. package/inputnumber/inputnumber.min.js +1 -1
  117. package/inputotp/inputotp.cjs.js +1 -0
  118. package/inputotp/inputotp.cjs.min.js +1 -1
  119. package/inputotp/inputotp.esm.js +1 -0
  120. package/inputotp/inputotp.esm.min.js +1 -1
  121. package/inputotp/inputotp.js +1 -0
  122. package/inputotp/inputotp.min.js +1 -1
  123. package/listbox/listbox.d.ts +4 -4
  124. package/mention/mention.cjs.js +18 -9
  125. package/mention/mention.cjs.min.js +1 -1
  126. package/mention/mention.d.ts +5 -0
  127. package/mention/mention.esm.js +18 -9
  128. package/mention/mention.esm.min.js +1 -1
  129. package/mention/mention.js +18 -9
  130. package/mention/mention.min.js +1 -1
  131. package/menu/menu.cjs.js +14 -3
  132. package/menu/menu.cjs.min.js +1 -1
  133. package/menu/menu.esm.js +15 -4
  134. package/menu/menu.esm.min.js +1 -1
  135. package/menu/menu.js +14 -3
  136. package/menu/menu.min.js +1 -1
  137. package/menubar/menubar.cjs.js +6 -9
  138. package/menubar/menubar.cjs.min.js +1 -1
  139. package/menubar/menubar.esm.js +6 -9
  140. package/menubar/menubar.esm.min.js +1 -1
  141. package/menubar/menubar.js +6 -9
  142. package/menubar/menubar.min.js +1 -1
  143. package/multiselect/multiselect.cjs.js +68 -18
  144. package/multiselect/multiselect.cjs.min.js +1 -1
  145. package/multiselect/multiselect.esm.js +68 -18
  146. package/multiselect/multiselect.esm.min.js +1 -1
  147. package/multiselect/multiselect.js +68 -18
  148. package/multiselect/multiselect.min.js +1 -1
  149. package/multistatecheckbox/multistatecheckbox.cjs.js +17 -9
  150. package/multistatecheckbox/multistatecheckbox.cjs.min.js +1 -1
  151. package/multistatecheckbox/multistatecheckbox.esm.js +17 -9
  152. package/multistatecheckbox/multistatecheckbox.esm.min.js +1 -1
  153. package/multistatecheckbox/multistatecheckbox.js +17 -9
  154. package/multistatecheckbox/multistatecheckbox.min.js +1 -1
  155. package/orderlist/orderlist.cjs.js +34 -3
  156. package/orderlist/orderlist.cjs.min.js +1 -1
  157. package/orderlist/orderlist.esm.js +34 -3
  158. package/orderlist/orderlist.esm.min.js +1 -1
  159. package/orderlist/orderlist.js +34 -3
  160. package/orderlist/orderlist.min.js +1 -1
  161. package/overlaypanel/overlaypanel.cjs.js +9 -10
  162. package/overlaypanel/overlaypanel.cjs.min.js +1 -1
  163. package/overlaypanel/overlaypanel.esm.js +9 -10
  164. package/overlaypanel/overlaypanel.esm.min.js +1 -1
  165. package/overlaypanel/overlaypanel.js +9 -10
  166. package/overlaypanel/overlaypanel.min.js +1 -1
  167. package/package.json +1 -1
  168. package/paginator/paginator.cjs.js +9 -1
  169. package/paginator/paginator.cjs.min.js +1 -1
  170. package/paginator/paginator.esm.js +9 -1
  171. package/paginator/paginator.esm.min.js +1 -1
  172. package/paginator/paginator.js +9 -1
  173. package/paginator/paginator.min.js +1 -1
  174. package/password/password.cjs.js +9 -2
  175. package/password/password.cjs.min.js +1 -1
  176. package/password/password.esm.js +10 -3
  177. package/password/password.esm.min.js +1 -1
  178. package/password/password.js +9 -2
  179. package/password/password.min.js +1 -1
  180. package/picklist/picklist.cjs.js +9 -1
  181. package/picklist/picklist.cjs.min.js +1 -1
  182. package/picklist/picklist.esm.js +9 -1
  183. package/picklist/picklist.esm.min.js +1 -1
  184. package/picklist/picklist.js +9 -1
  185. package/picklist/picklist.min.js +1 -1
  186. package/primereact.all.cjs.js +931 -442
  187. package/primereact.all.cjs.min.js +1 -1
  188. package/primereact.all.esm.js +932 -443
  189. package/primereact.all.esm.min.js +1 -1
  190. package/primereact.all.js +931 -442
  191. package/primereact.all.min.js +1 -1
  192. package/radiobutton/radiobutton.cjs.js +2 -2
  193. package/radiobutton/radiobutton.cjs.min.js +1 -1
  194. package/radiobutton/radiobutton.d.ts +1 -1
  195. package/radiobutton/radiobutton.esm.js +2 -2
  196. package/radiobutton/radiobutton.esm.min.js +1 -1
  197. package/radiobutton/radiobutton.js +2 -2
  198. package/radiobutton/radiobutton.min.js +1 -1
  199. package/slidemenu/slidemenu.cjs.js +9 -2
  200. package/slidemenu/slidemenu.cjs.min.js +1 -1
  201. package/slidemenu/slidemenu.esm.js +10 -3
  202. package/slidemenu/slidemenu.esm.min.js +1 -1
  203. package/slidemenu/slidemenu.js +9 -2
  204. package/slidemenu/slidemenu.min.js +1 -1
  205. package/tree/tree.cjs.js +1 -1
  206. package/tree/tree.cjs.min.js +1 -1
  207. package/tree/tree.esm.js +1 -1
  208. package/tree/tree.esm.min.js +1 -1
  209. package/tree/tree.js +1 -1
  210. package/tree/tree.min.js +1 -1
  211. package/treeselect/treeselect.cjs.js +19 -8
  212. package/treeselect/treeselect.cjs.min.js +1 -1
  213. package/treeselect/treeselect.d.ts +33 -0
  214. package/treeselect/treeselect.esm.js +19 -8
  215. package/treeselect/treeselect.esm.min.js +1 -1
  216. package/treeselect/treeselect.js +19 -8
  217. package/treeselect/treeselect.min.js +1 -1
  218. package/treetable/treetable.cjs.js +1 -1
  219. package/treetable/treetable.cjs.min.js +1 -1
  220. package/treetable/treetable.esm.js +1 -1
  221. package/treetable/treetable.esm.min.js +1 -1
  222. package/treetable/treetable.js +1 -1
  223. package/treetable/treetable.min.js +1 -1
  224. package/tristatecheckbox/tristatecheckbox.cjs.js +7 -6
  225. package/tristatecheckbox/tristatecheckbox.cjs.min.js +1 -1
  226. package/tristatecheckbox/tristatecheckbox.esm.js +7 -6
  227. package/tristatecheckbox/tristatecheckbox.esm.min.js +1 -1
  228. package/tristatecheckbox/tristatecheckbox.js +7 -6
  229. package/tristatecheckbox/tristatecheckbox.min.js +1 -1
  230. package/utils/utils.cjs.js +138 -18
  231. package/utils/utils.cjs.min.js +1 -1
  232. package/utils/utils.d.ts +5 -1
  233. package/utils/utils.esm.js +138 -18
  234. package/utils/utils.esm.min.js +1 -1
  235. package/utils/utils.js +138 -18
  236. package/utils/utils.min.js +1 -1
  237. package/web-types.json +105 -11
package/primereact.all.js CHANGED
@@ -148,6 +148,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
148
148
  EQUALS: 'equals',
149
149
  NOT_EQUALS: 'notEquals',
150
150
  IN: 'in',
151
+ NOT_IN: 'notIn',
151
152
  LESS_THAN: 'lt',
152
153
  LESS_THAN_OR_EQUAL_TO: 'lte',
153
154
  GREATER_THAN: 'gt',
@@ -587,11 +588,18 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
587
588
  element.style.transformOrigin = 'top';
588
589
  }
589
590
  var targetOffsetPx = targetOffset.left;
590
- var alignOffset = align === 'left' ? 0 : elementOuterWidth - targetOuterWidth;
591
- if (targetOffsetPx + targetOuterWidth + elementOuterWidth > viewport.width) {
592
- left = Math.max(0, targetOffsetPx + windowScrollLeft + targetOuterWidth - elementOuterWidth);
591
+ if (align === 'left') {
592
+ if (targetOffsetPx + elementOuterWidth > viewport.width) {
593
+ left = Math.max(0, targetOffsetPx + windowScrollLeft + targetOuterWidth - elementOuterWidth);
594
+ } else {
595
+ left = targetOffsetPx + windowScrollLeft;
596
+ }
593
597
  } else {
594
- left = targetOffsetPx - alignOffset + windowScrollLeft;
598
+ if (targetOffsetPx + targetOuterWidth - elementOuterWidth < 0) {
599
+ left = windowScrollLeft;
600
+ } else {
601
+ left = targetOffsetPx + targetOuterWidth - elementOuterWidth + windowScrollLeft;
602
+ }
595
603
  }
596
604
  element.style.top = top + 'px';
597
605
  element.style.left = left + 'px';
@@ -800,13 +808,12 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
800
808
  /**
801
809
  * Gets all scrollable parent elements of a given element
802
810
  * @param {HTMLElement} element - The element to find scrollable parents for
803
- * @param {boolean} hideOverlaysOnDocumentScrolling - Whether to include window/document level scrolling
804
811
  * @returns {Array} Array of scrollable parent elements
805
812
  */
806
813
  }, {
807
814
  key: "getScrollableParents",
808
815
  value: function getScrollableParents(element) {
809
- var hideOverlaysOnDocumentScrolling = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
816
+ var _this3 = this;
810
817
  var scrollableParents = [];
811
818
  if (element) {
812
819
  // Get all parent elements
@@ -829,10 +836,8 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
829
836
  * @param {HTMLElement} node - Element to add
830
837
  */
831
838
  var addScrollableParent = function addScrollableParent(node) {
832
- if (hideOverlaysOnDocumentScrolling) {
833
- // For document/body/html elements, add window instead
834
- scrollableParents.push(node.nodeName === 'BODY' || node.nodeName === 'HTML' || node.nodeType === 9 ? window : node);
835
- }
839
+ // For document/body/html elements, add window instead
840
+ scrollableParents.push(node.nodeName === 'BODY' || node.nodeName === 'HTML' || _this3.isDocument(node) ? window : node);
836
841
  };
837
842
 
838
843
  // Iterate through all parent elements
@@ -876,13 +881,6 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
876
881
  _iterator.f();
877
882
  }
878
883
  }
879
-
880
- // Ensure window/body is always included as fallback
881
- if (!scrollableParents.some(function (node) {
882
- return node === document.body || node === window;
883
- })) {
884
- scrollableParents.push(hideOverlaysOnDocumentScrolling ? window : document.body);
885
- }
886
884
  return scrollableParents;
887
885
  }
888
886
  }, {
@@ -1022,6 +1020,11 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
1022
1020
  value: function isElement(obj) {
1023
1021
  return (typeof HTMLElement === "undefined" ? "undefined" : _typeof(HTMLElement)) === 'object' ? obj instanceof HTMLElement : obj && _typeof(obj) === 'object' && obj !== null && obj.nodeType === 1 && typeof obj.nodeName === 'string';
1024
1022
  }
1023
+ }, {
1024
+ key: "isDocument",
1025
+ value: function isDocument(obj) {
1026
+ return (typeof Document === "undefined" ? "undefined" : _typeof(Document)) === 'object' ? obj instanceof Document : obj && _typeof(obj) === 'object' && obj !== null && obj.nodeType === 9;
1027
+ }
1025
1028
  }, {
1026
1029
  key: "scrollInView",
1027
1030
  value: function scrollInView(container, item) {
@@ -1359,7 +1362,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
1359
1362
  return !!(obj && obj.constructor && obj.call && obj.apply);
1360
1363
  };
1361
1364
  var element = isFunction(target) ? target() : target;
1362
- return element && element.nodeType === 9 || this.isExist(element) ? element : null;
1365
+ return this.isDocument(element) || this.isExist(element) ? element : null;
1363
1366
  }
1364
1367
 
1365
1368
  /**
@@ -2062,6 +2065,124 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
2062
2065
  obj = obj[fields[i]];
2063
2066
  }
2064
2067
  }
2068
+
2069
+ /**
2070
+ * This helper function takes an object and a dot-separated key path. It traverses the object based on the path,
2071
+ * returning the value at the specified depth. If any part of the path is missing or undefined, it returns undefined.
2072
+ *
2073
+ * Example:
2074
+ * const obj = { name: 'Alice', address: { city: 'Wonderland', zip: 12345 } };
2075
+ * const path = 'address.city';
2076
+ * const result = ObjectUtils.getNestedValue(obj, path);
2077
+ * console.log(result); // Output: "Wonderland"
2078
+ *
2079
+ * @param {object} obj - The object to traverse.
2080
+ * @param {string} path - The dot-separated key path.
2081
+ * @returns {*} The value at the specified depth, or undefined if any part of the path is missing or undefined.
2082
+ */
2083
+ }, {
2084
+ key: "getNestedValue",
2085
+ value: function getNestedValue(obj, path) {
2086
+ return path.split('.').reduce(function (acc, part) {
2087
+ return acc && acc[part] !== undefined ? acc[part] : undefined;
2088
+ }, obj);
2089
+ }
2090
+
2091
+ /**
2092
+ * This function takes an object and a dot-separated key path. It traverses the object based on the path,
2093
+ * returning the value at the specified depth. If any part of the path is missing or undefined, it returns undefined.
2094
+ *
2095
+ * Example:
2096
+ * const objA = { name: 'Alice', address: { city: 'Wonderland', zip: 12345 } };
2097
+ * const objB = { name: 'Alice', address: { city: 'Wonderland', zip: 12345 } };
2098
+ * const result = ObjectUtils.absoluteCompare(objA, objB);
2099
+ * console.log(result); // Output: true
2100
+ *
2101
+ * const objC = { name: 'Alice', address: { city: 'Wonderland', zip: 12346 } };
2102
+ * const result2 = ObjectUtils.absoluteCompare(objA, objC);
2103
+ * console.log(result2); // Output: false
2104
+ *
2105
+ * @param {object} objA - The first object to compare.
2106
+ * @param {object} objB - The second object to compare.
2107
+ * @param {number} [maxDepth=1] - The maximum depth to compare.
2108
+ * @param {number} [currentDepth=0] - The current depth (used internally for recursion).
2109
+ * @returns {boolean} True if the objects are equal within the specified depth, false otherwise.
2110
+ *
2111
+ */
2112
+ }, {
2113
+ key: "absoluteCompare",
2114
+ value: function absoluteCompare(objA, objB) {
2115
+ var maxDepth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
2116
+ var currentDepth = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
2117
+ if (!objA || !objB) return true;
2118
+ if (currentDepth > maxDepth) return true;
2119
+ if (_typeof(objA) !== _typeof(objB)) return false;
2120
+ var aKeys = Object.keys(objA);
2121
+ var bKeys = Object.keys(objB);
2122
+ if (aKeys.length !== bKeys.length) return false;
2123
+ for (var _i = 0, _aKeys = aKeys; _i < _aKeys.length; _i++) {
2124
+ var key = _aKeys[_i];
2125
+ var aValue = objA[key];
2126
+ var bValue = objB[key];
2127
+
2128
+ // Skip comparison if values are objects
2129
+ var isObject = ObjectUtils.isObject(aValue) && ObjectUtils.isObject(bValue);
2130
+ var isFunction = ObjectUtils.isFunction(aValue) && ObjectUtils.isFunction(bValue);
2131
+ if ((isObject || isFunction) && !this.absoluteCompare(aValue, bValue, maxDepth, currentDepth + 1)) return false;
2132
+ if (!isObject && aValue !== bValue) return false;
2133
+ }
2134
+ return true;
2135
+ }
2136
+
2137
+ /**
2138
+ * This helper function takes two objects and a list of keys to compare. It compares the values of the specified keys
2139
+ * in both objects. If any comparison fails, it returns false. If all specified properties are equal, it returns true.
2140
+ * It performs a shallow comparison using absoluteCompare if no keys are provided.
2141
+ *
2142
+ * Example:
2143
+ * const objA = { name: 'Alice', address: { city: 'Wonderland', zip: 12345 } };
2144
+ * const objB = { name: 'Alice', address: { city: 'Wonderland', zip: 12345 } };
2145
+ * const keysToCompare = ['name', 'address.city', 'address.zip'];
2146
+ * const result = ObjectUtils.selectiveCompare(objA, objB, keysToCompare);
2147
+ * console.log(result); // Output: true
2148
+ *
2149
+ * const objC = { name: 'Alice', address: { city: 'Wonderland', zip: 12346 } };
2150
+ * const result2 = ObjectUtils.selectiveCompare(objA, objC, keysToCompare);
2151
+ * console.log(result2); // Output: false
2152
+ *
2153
+ * @param {object} a - The first object to compare.
2154
+ * @param {object} b - The second object to compare.
2155
+ * @param {string[]} [keysToCompare] - The keys to compare. If not provided, performs a shallow comparison using absoluteCompare.
2156
+ * @param {number} [maxDepth=1] - The maximum depth to compare if the variables are objects.
2157
+ * @returns {boolean} True if all specified properties are equal, false otherwise.
2158
+ */
2159
+ }, {
2160
+ key: "selectiveCompare",
2161
+ value: function selectiveCompare(a, b, keysToCompare) {
2162
+ var maxDepth = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
2163
+ if (a === b) return true;
2164
+ if (!a || !b || _typeof(a) !== 'object' || _typeof(b) !== 'object') return false;
2165
+ if (!keysToCompare) return this.absoluteCompare(a, b, 1); // If no keys are provided, the comparison is limited to one depth level.
2166
+ var _iterator2 = _createForOfIteratorHelper$g(keysToCompare),
2167
+ _step2;
2168
+ try {
2169
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
2170
+ var key = _step2.value;
2171
+ var aValue = this.getNestedValue(a, key);
2172
+ var bValue = this.getNestedValue(b, key);
2173
+ var isObject = _typeof(aValue) === 'object' && aValue !== null && _typeof(bValue) === 'object' && bValue !== null;
2174
+
2175
+ // If the current key is an object, they are compared in one further level only.
2176
+ if (isObject && !this.absoluteCompare(aValue, bValue, maxDepth)) return false;
2177
+ if (!isObject && aValue !== bValue) return false;
2178
+ }
2179
+ } catch (err) {
2180
+ _iterator2.e(err);
2181
+ } finally {
2182
+ _iterator2.f();
2183
+ }
2184
+ return true;
2185
+ }
2065
2186
  }]);
2066
2187
  }();
2067
2188
 
@@ -2980,6 +3101,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
2980
3101
  emptySelectionMessage: 'No selected item',
2981
3102
  endsWith: 'Ends with',
2982
3103
  equals: 'Equals',
3104
+ fileChosenMessage: '{0} files',
2983
3105
  fileSizeTypes: ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'],
2984
3106
  filter: 'Filter',
2985
3107
  firstDayOfWeek: 0,
@@ -2998,6 +3120,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
2998
3120
  nextMonth: 'Next Month',
2999
3121
  nextSecond: 'Next Second',
3000
3122
  nextYear: 'Next Year',
3123
+ noFileChosenMessage: 'No file chosen',
3001
3124
  noFilter: 'No Filter',
3002
3125
  notContains: 'Not contains',
3003
3126
  notEquals: 'Not equals',
@@ -3025,8 +3148,10 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
3025
3148
  aria: {
3026
3149
  cancelEdit: 'Cancel Edit',
3027
3150
  close: 'Close',
3151
+ collapseLabel: 'Collapse',
3028
3152
  collapseRow: 'Row Collapsed',
3029
3153
  editRow: 'Edit Row',
3154
+ expandLabel: 'Expand',
3030
3155
  expandRow: 'Row Expanded',
3031
3156
  falseLabel: 'False',
3032
3157
  filterConstraint: 'Filter Constraint',
@@ -3051,18 +3176,20 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
3051
3176
  next: 'Next',
3052
3177
  nextPageLabel: 'Next Page',
3053
3178
  nullLabel: 'Not Selected',
3054
- pageLabel: 'Page {page}',
3055
3179
  otpLabel: 'Please enter one time password character {0}',
3180
+ pageLabel: 'Page {page}',
3056
3181
  passwordHide: 'Hide Password',
3057
3182
  passwordShow: 'Show Password',
3058
3183
  previous: 'Previous',
3059
3184
  prevPageLabel: 'Previous Page',
3185
+ removeLabel: 'Remove',
3060
3186
  rotateLeft: 'Rotate Left',
3061
3187
  rotateRight: 'Rotate Right',
3062
3188
  rowsPerPageLabel: 'Rows per page',
3063
3189
  saveEdit: 'Save Edit',
3064
3190
  scrollTop: 'Scroll Top',
3065
3191
  selectAll: 'All items selected',
3192
+ selectLabel: 'Select',
3066
3193
  selectRow: 'Row Selected',
3067
3194
  showFilterMenu: 'Show Filter Menu',
3068
3195
  slide: 'Slide',
@@ -3071,6 +3198,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
3071
3198
  stars: '{star} stars',
3072
3199
  trueLabel: 'True',
3073
3200
  unselectAll: 'All items unselected',
3201
+ unselectLabel: 'Unselect',
3074
3202
  unselectRow: 'Row Unselected',
3075
3203
  zoomImage: 'Zoom Image',
3076
3204
  zoomIn: 'Zoom In',
@@ -4388,7 +4516,14 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
4388
4516
  }
4389
4517
  if (!listenerRef.current && targetRef.current) {
4390
4518
  var hideOnScroll = context ? context.hideOverlaysOnDocumentScrolling : PrimeReact.hideOverlaysOnDocumentScrolling;
4391
- var nodes = scrollableParentsRef.current = DomHandler.getScrollableParents(targetRef.current, hideOnScroll);
4519
+ var nodes = scrollableParentsRef.current = DomHandler.getScrollableParents(targetRef.current);
4520
+
4521
+ // Ensure window/body is always included as fallback
4522
+ if (!nodes.some(function (node) {
4523
+ return node === document.body || node === window;
4524
+ })) {
4525
+ nodes.push(hideOnScroll ? window : document.body);
4526
+ }
4392
4527
  listenerRef.current = function (event) {
4393
4528
  return listener && listener(event);
4394
4529
  };
@@ -4480,19 +4615,20 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
4480
4615
  type: 'outside',
4481
4616
  valid: event.which !== 3 && isOutsideClicked(event)
4482
4617
  });
4483
- }
4618
+ },
4619
+ when: when
4484
4620
  }),
4485
4621
  _useEventListener2 = _slicedToArray(_useEventListener, 2),
4486
4622
  bindDocumentClickListener = _useEventListener2[0],
4487
4623
  unbindDocumentClickListener = _useEventListener2[1];
4488
4624
  var _useResizeListener = useResizeListener({
4489
- target: 'window',
4490
4625
  listener: function listener(event) {
4491
4626
  _listener && _listener(event, {
4492
4627
  type: 'resize',
4493
4628
  valid: !DomHandler.isTouchDevice()
4494
4629
  });
4495
- }
4630
+ },
4631
+ when: when
4496
4632
  }),
4497
4633
  _useResizeListener2 = _slicedToArray(_useResizeListener, 2),
4498
4634
  bindWindowResizeListener = _useResizeListener2[0],
@@ -4505,7 +4641,8 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
4505
4641
  type: 'orientationchange',
4506
4642
  valid: true
4507
4643
  });
4508
- }
4644
+ },
4645
+ when: when
4509
4646
  }),
4510
4647
  _useEventListener4 = _slicedToArray(_useEventListener3, 2),
4511
4648
  bindWindowOrientationChangeListener = _useEventListener4[0],
@@ -4517,7 +4654,8 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
4517
4654
  type: 'scroll',
4518
4655
  valid: true
4519
4656
  });
4520
- }
4657
+ },
4658
+ when: when
4521
4659
  }),
4522
4660
  _useOverlayScrollList2 = _slicedToArray(_useOverlayScrollList, 2),
4523
4661
  bindOverlayScrollListener = _useOverlayScrollList2[0],
@@ -8132,7 +8270,15 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
8132
8270
  var type = _ref.type,
8133
8271
  valid = _ref.valid;
8134
8272
  if (valid) {
8135
- type === 'outside' ? !isInputClicked(event) && hide() : hide();
8273
+ if (type === 'outside') {
8274
+ if (!isInputClicked(event)) {
8275
+ hide();
8276
+ }
8277
+ } else if (context.hideOverlaysOnDocumentScrolling) {
8278
+ hide();
8279
+ } else if (!DomHandler.isDocument(event.target)) {
8280
+ alignOverlay();
8281
+ }
8136
8282
  }
8137
8283
  },
8138
8284
  when: overlayVisibleState
@@ -8308,6 +8454,9 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
8308
8454
  }
8309
8455
  };
8310
8456
  var removeItem = function removeItem(event, index) {
8457
+ if (props.disabled || props.readOnly) {
8458
+ return;
8459
+ }
8311
8460
  var removedValue = props.value[index];
8312
8461
  var newValue = props.value.filter(function (_, i) {
8313
8462
  return index !== i;
@@ -8750,6 +8899,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
8750
8899
  listId: listId,
8751
8900
  onItemClick: selectItem,
8752
8901
  selectedItem: selectedItem,
8902
+ onOverlayHide: hide,
8753
8903
  onClick: onPanelClick,
8754
8904
  getOptionGroupLabel: getOptionGroupLabel,
8755
8905
  getOptionGroupChildren: getOptionGroupChildren,
@@ -9271,7 +9421,8 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
9271
9421
  onClick: function onClick(event) {
9272
9422
  return itemClick(event, item);
9273
9423
  },
9274
- 'aria-disabled': item.disabled
9424
+ 'aria-disabled': item.disabled,
9425
+ tabIndex: item.disabled ? -1 : undefined
9275
9426
  }, ptm('action'));
9276
9427
  var content = /*#__PURE__*/React__namespace.createElement("a", actionProps, label);
9277
9428
  if (item.template) {
@@ -9676,7 +9827,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
9676
9827
  isUnstyled = _CalendarBase$setMeta.isUnstyled;
9677
9828
  useGlobalOnEscapeKey({
9678
9829
  callback: function callback() {
9679
- hide();
9830
+ hide(null, reFocusInputField);
9680
9831
  },
9681
9832
  when: overlayVisibleState && overlayDisplayOrder,
9682
9833
  priority: [ESC_KEY_HANDLING_PRIORITIES.OVERLAY_PANEL, overlayDisplayOrder]
@@ -9727,7 +9878,15 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
9727
9878
  var type = _ref.type,
9728
9879
  valid = _ref.valid;
9729
9880
  if (valid) {
9730
- type === 'outside' ? !isOverlayClicked.current && !isNavIconClicked(event.target) && hide('outside') : hide();
9881
+ if (type === 'outside') {
9882
+ if (!isOverlayClicked.current && !isNavIconClicked(event.target)) {
9883
+ hide('outside');
9884
+ }
9885
+ } else if (context.hideOverlaysOnDocumentScrolling) {
9886
+ hide();
9887
+ } else if (!DomHandler.isDocument(event.target)) {
9888
+ alignOverlay();
9889
+ }
9731
9890
  }
9732
9891
  isOverlayClicked.current = false;
9733
9892
  },
@@ -12019,13 +12178,32 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
12019
12178
  return props.parseDateTime(text);
12020
12179
  }
12021
12180
  var date;
12022
- var parts = text.split(' ');
12023
12181
  if (props.timeOnly) {
12024
12182
  date = new Date();
12025
- populateTime(date, parts[0], parts[1]);
12183
+ var match = text.match(/(\d{1,2}:\d{2}(?::\d{2})?(?:\.\d{1,3})?)\s?(AM|PM)?/i);
12184
+ if (match) {
12185
+ populateTime(date, match[1], match[2]);
12186
+ } else {
12187
+ return null;
12188
+ }
12026
12189
  } else if (props.showTime) {
12027
- date = parseDate(parts[0], getDateFormat());
12028
- populateTime(date, parts[1], parts[2]);
12190
+ var time12 = /(\d{1,2}:\d{2}(?::\d{2})?(?:\.\d{1,3})?)\s?(AM|PM)/i;
12191
+ var time24 = /(\d{1,2}:\d{2}(?::\d{2})?(?:\.\d{1,3})?)$/;
12192
+ var _match, datePart, timePart, ampm;
12193
+ if (props.hourFormat === '12' && (_match = text.match(time12))) {
12194
+ timePart = _match[1];
12195
+ ampm = _match[2];
12196
+ datePart = text.replace(time12, '').trim();
12197
+ } else if (props.hourFormat === '24' && (_match = text.match(time24))) {
12198
+ timePart = _match[1];
12199
+ datePart = text.replace(time24, '').trim();
12200
+ }
12201
+ if (datePart && timePart) {
12202
+ date = parseDate(datePart, getDateFormat());
12203
+ populateTime(date, timePart, ampm);
12204
+ } else {
12205
+ date = parseDate(text, getDateFormat());
12206
+ }
12029
12207
  } else {
12030
12208
  date = parseDate(text, getDateFormat());
12031
12209
  }
@@ -12414,7 +12592,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
12414
12592
  viewDate.setHours(0, 0, 0);
12415
12593
  isClearClicked.current = false;
12416
12594
  }
12417
- if (!prevPropValue && propValue || propValue && propValue instanceof Date && propValue.getTime() !== prevPropValue.getTime()) {
12595
+ if (!prevPropValue && propValue || propValue && propValue instanceof Date && prevPropValue instanceof Date && propValue.getTime() !== prevPropValue.getTime()) {
12418
12596
  validateDate(viewDate);
12419
12597
  }
12420
12598
  setViewDateState(viewDate);
@@ -12668,6 +12846,9 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
12668
12846
  }),
12669
12847
  'aria-selected': selected,
12670
12848
  'aria-disabled': !date.selectable,
12849
+ onMouseDown: function onMouseDown(e) {
12850
+ return e.preventDefault();
12851
+ },
12671
12852
  onClick: function onClick(e) {
12672
12853
  return onDateSelect(e, date);
12673
12854
  },
@@ -14186,6 +14367,22 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
14186
14367
  CarouselItem.displayName = 'CarouselItem';
14187
14368
  Carousel.displayName = 'Carousel';
14188
14369
 
14370
+ var TimesIcon = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__namespace.forwardRef(function (inProps, ref) {
14371
+ var pti = IconBase.getPTI(inProps);
14372
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends({
14373
+ ref: ref,
14374
+ width: "14",
14375
+ height: "14",
14376
+ viewBox: "0 0 14 14",
14377
+ fill: "none",
14378
+ xmlns: "http://www.w3.org/2000/svg"
14379
+ }, pti), /*#__PURE__*/React__namespace.createElement("path", {
14380
+ 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",
14381
+ fill: "currentColor"
14382
+ }));
14383
+ }));
14384
+ TimesIcon.displayName = 'TimesIcon';
14385
+
14189
14386
  var classes$14 = {
14190
14387
  root: function root(_ref) {
14191
14388
  var props = _ref.props,
@@ -14222,6 +14419,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
14222
14419
  });
14223
14420
  },
14224
14421
  dropdownIcon: 'p-cascadeselect-trigger-icon',
14422
+ clearIcon: 'p-cascadeselect-clear-icon p-clickable',
14225
14423
  loadingIcon: 'p-cascadeselect-trigger-icon',
14226
14424
  dropdownButton: 'p-cascadeselect-trigger',
14227
14425
  loadingButton: 'p-cascadeselect-trigger',
@@ -14232,7 +14430,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
14232
14430
  text: 'p-cascadeselect-item-text',
14233
14431
  transition: 'p-connected-overlay'
14234
14432
  };
14235
- 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";
14433
+ 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";
14236
14434
  var CascadeSelectBase = ComponentBase.extend({
14237
14435
  defaultProps: {
14238
14436
  __TYPE: 'CascadeSelect',
@@ -14265,6 +14463,8 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
14265
14463
  optionLabel: null,
14266
14464
  optionValue: null,
14267
14465
  options: null,
14466
+ panelClassName: null,
14467
+ panelStyle: null,
14268
14468
  placeholder: null,
14269
14469
  scrollHeight: '400px',
14270
14470
  style: null,
@@ -14577,12 +14777,20 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
14577
14777
  var styleElementRef = React__namespace.useRef(null);
14578
14778
  var dirty = React__namespace.useRef(false);
14579
14779
  var selectionPath = React__namespace.useRef(null);
14780
+ var selfChange = React__namespace.useRef(null);
14580
14781
  var _useOverlayListener = useOverlayListener({
14581
14782
  target: elementRef,
14582
14783
  overlay: overlayRef,
14583
14784
  listener: function listener(event, _ref) {
14584
- var valid = _ref.valid;
14585
- valid && hide();
14785
+ var valid = _ref.valid,
14786
+ type = _ref.type;
14787
+ if (valid) {
14788
+ if (context.hideOverlaysOnDocumentScrolling || type === 'outside') {
14789
+ hide();
14790
+ } else if (!DomHandler.isDocument(event.target)) {
14791
+ alignOverlay();
14792
+ }
14793
+ }
14586
14794
  },
14587
14795
  when: overlayVisibleState
14588
14796
  }),
@@ -14599,6 +14807,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
14599
14807
  });
14600
14808
  var onOptionSelect = function onOptionSelect(event) {
14601
14809
  if (props.onChange) {
14810
+ selfChange.current = true;
14602
14811
  props.onChange({
14603
14812
  originalEvent: event,
14604
14813
  value: event.value
@@ -14825,6 +15034,48 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
14825
15034
  }, ariaProps), ptm('input'));
14826
15035
  return /*#__PURE__*/React__namespace.createElement("div", hiddenSelectedMessageProps, /*#__PURE__*/React__namespace.createElement("input", inputProps));
14827
15036
  };
15037
+ var clear = function clear(event) {
15038
+ if (props.onChange) {
15039
+ selfChange.current = true;
15040
+ props.onChange({
15041
+ originalEvent: event,
15042
+ value: undefined,
15043
+ stopPropagation: function stopPropagation() {
15044
+ event === null || event === void 0 || event.stopPropagation();
15045
+ },
15046
+ preventDefault: function preventDefault() {
15047
+ event === null || event === void 0 || event.preventDefault();
15048
+ },
15049
+ target: {
15050
+ name: props.name,
15051
+ id: props.id,
15052
+ value: undefined
15053
+ }
15054
+ });
15055
+ }
15056
+ };
15057
+ var onClearIconKeyDown = function onClearIconKeyDown(event) {
15058
+ if (event.key === 'Enter' || event.code === 'Space') {
15059
+ clear(event);
15060
+ event.preventDefault();
15061
+ }
15062
+ };
15063
+ var createClearIcon = function createClearIcon() {
15064
+ if (props.value != null && props.showClear && !props.disabled) {
15065
+ var clearIconProps = mergeProps({
15066
+ className: cx('clearIcon'),
15067
+ onPointerUp: clear,
15068
+ tabIndex: props.tabIndex || '0',
15069
+ onKeyDown: onClearIconKeyDown,
15070
+ 'aria-label': localeOption('clear')
15071
+ }, ptm('clearIcon'));
15072
+ var icon = props.clearIcon || /*#__PURE__*/React__namespace.createElement(TimesIcon, clearIconProps);
15073
+ return IconUtils.getJSXIcon(icon, _objectSpread$1H({}, clearIconProps), {
15074
+ props: props
15075
+ });
15076
+ }
15077
+ return null;
15078
+ };
14828
15079
  var createLabel = function createLabel() {
14829
15080
  var label = props.value ? getOptionLabel(props.value) : props.placeholder || 'p-emptylabel';
14830
15081
  var labelProps = mergeProps({
@@ -14878,7 +15129,8 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
14878
15129
  }, ptm('wrapper'));
14879
15130
  var panelProps = mergeProps({
14880
15131
  ref: overlayRef,
14881
- className: cx('panel'),
15132
+ className: classNames(props.panelClassName, cx('panel')),
15133
+ style: props.panelStyle,
14882
15134
  onClick: function onClick(e) {
14883
15135
  return onPanelClick(e);
14884
15136
  }
@@ -14927,6 +15179,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
14927
15179
  var createElement = function createElement() {
14928
15180
  var keyboardHelper = createKeyboardHelper();
14929
15181
  var labelElement = createLabel();
15182
+ var clearIcon = createClearIcon();
14930
15183
  var dropdownIcon = props.loading ? createLoadingIcon() : createDropdownIcon();
14931
15184
  var overlay = createOverlay();
14932
15185
  var rootProps = mergeProps({
@@ -14942,7 +15195,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
14942
15195
  return _onClick(e);
14943
15196
  }
14944
15197
  }, otherProps, ptm('root'));
14945
- return /*#__PURE__*/React__namespace.createElement("div", rootProps, keyboardHelper, labelElement, dropdownIcon, overlay);
15198
+ return /*#__PURE__*/React__namespace.createElement("div", rootProps, keyboardHelper, labelElement, clearIcon, dropdownIcon, overlay);
14946
15199
  };
14947
15200
  var otherProps = CascadeSelectBase.getOtherProps(props);
14948
15201
  ObjectUtils.reduceKeys(otherProps, DomHandler.DATA_PROPS);
@@ -15193,7 +15446,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
15193
15446
  return props.checked === props.trueValue;
15194
15447
  };
15195
15448
  var _onChange = function onChange(event) {
15196
- if (props.disabled || props.readonly) {
15449
+ if (props.disabled || props.readOnly) {
15197
15450
  return;
15198
15451
  }
15199
15452
  if (props.onChange) {
@@ -15377,6 +15630,10 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
15377
15630
  _React$useState2 = _slicedToArray(_React$useState, 2),
15378
15631
  visibleState = _React$useState2[0],
15379
15632
  setVisibleState = _React$useState2[1];
15633
+ var _React$useState3 = React__namespace.useState(props.id),
15634
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
15635
+ idState = _React$useState4[0],
15636
+ setIdState = _React$useState4[1];
15380
15637
  var _ChipBase$setMetaData = ChipBase.setMetaData({
15381
15638
  props: props
15382
15639
  }),
@@ -15394,6 +15651,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
15394
15651
  var close = function close(event) {
15395
15652
  var result = true;
15396
15653
  if (props.onRemove) {
15654
+ event.stopPropagation();
15397
15655
  result = props.onRemove({
15398
15656
  originalEvent: event,
15399
15657
  value: props.label || props.image || props.icon
@@ -15413,7 +15671,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
15413
15671
  onKeyDown: onKeyDown
15414
15672
  }, ptm('removeIcon'));
15415
15673
  var icon = props.removeIcon || /*#__PURE__*/React__namespace.createElement(TimesCircleIcon, _extends({}, removeIconProps, {
15416
- key: UniqueComponentId('removeIcon')
15674
+ key: "".concat(idState, "-removeIcon")
15417
15675
  }));
15418
15676
  if (props.image) {
15419
15677
  var imageProps = mergeProps({
@@ -15423,7 +15681,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
15423
15681
  content.push(/*#__PURE__*/React__namespace.createElement("img", _extends({
15424
15682
  alt: props.imageAlt
15425
15683
  }, imageProps, {
15426
- key: UniqueComponentId('image')
15684
+ key: "".concat(idState, "-image")
15427
15685
  })));
15428
15686
  } else if (props.icon) {
15429
15687
  var chipIconProps = mergeProps({
@@ -15474,6 +15732,14 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
15474
15732
  }
15475
15733
  };
15476
15734
  });
15735
+ useMountEffect(function () {
15736
+ if (!idState) {
15737
+ setIdState(UniqueComponentId());
15738
+ }
15739
+ });
15740
+ if (!idState) {
15741
+ return null;
15742
+ }
15477
15743
  return visibleState && createElement();
15478
15744
  }));
15479
15745
  Chip.displayName = 'Chip';
@@ -15582,7 +15848,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
15582
15848
  var listRef = React__namespace.useRef(null);
15583
15849
  var inputRef = React__namespace.useRef(props.inputRef);
15584
15850
  var removeItem = function removeItem(event, index) {
15585
- if (props.disabled && props.readOnly) {
15851
+ if (props.disabled || props.readOnly) {
15586
15852
  return;
15587
15853
  }
15588
15854
  var values = _toConsumableArray(props.value);
@@ -16115,8 +16381,15 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
16115
16381
  target: elementRef,
16116
16382
  overlay: overlayRef,
16117
16383
  listener: function listener(event, _ref) {
16118
- var valid = _ref.valid;
16119
- valid && hide();
16384
+ var valid = _ref.valid,
16385
+ type = _ref.type;
16386
+ if (valid) {
16387
+ if (context.hideOverlaysOnDocumentScrolling || type === 'outside') {
16388
+ hide();
16389
+ } else if (!DomHandler.isDocument(event.target)) {
16390
+ alignOverlay();
16391
+ }
16392
+ }
16120
16393
  },
16121
16394
  when: overlayVisibleState
16122
16395
  }),
@@ -16771,22 +17044,6 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
16771
17044
  }));
16772
17045
  var FocusTrap$1 = FocusTrap;
16773
17046
 
16774
- var TimesIcon = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__namespace.forwardRef(function (inProps, ref) {
16775
- var pti = IconBase.getPTI(inProps);
16776
- return /*#__PURE__*/React__namespace.createElement("svg", _extends({
16777
- ref: ref,
16778
- width: "14",
16779
- height: "14",
16780
- viewBox: "0 0 14 14",
16781
- fill: "none",
16782
- xmlns: "http://www.w3.org/2000/svg"
16783
- }, pti), /*#__PURE__*/React__namespace.createElement("path", {
16784
- 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",
16785
- fill: "currentColor"
16786
- }));
16787
- }));
16788
- TimesIcon.displayName = 'TimesIcon';
16789
-
16790
17047
  var WindowMaximizeIcon = /*#__PURE__*/React__namespace.memo(/*#__PURE__*/React__namespace.forwardRef(function (inProps, ref) {
16791
17048
  var pti = IconBase.getPTI(inProps);
16792
17049
  return /*#__PURE__*/React__namespace.createElement("svg", _extends({
@@ -16940,6 +17197,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
16940
17197
  resizable: true,
16941
17198
  rtl: false,
16942
17199
  showHeader: true,
17200
+ showCloseIcon: true,
16943
17201
  style: null,
16944
17202
  transitionOptions: null,
16945
17203
  visible: false,
@@ -17071,7 +17329,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
17071
17329
  var focus = function focus() {
17072
17330
  var activeElement = document.activeElement;
17073
17331
  var isActiveElementInDialog = activeElement && dialogRef.current && dialogRef.current.contains(activeElement);
17074
- if (!isActiveElementInDialog && props.closable && props.showHeader && closeRef.current) {
17332
+ if (!isActiveElementInDialog && props.closable && props.showCloseIcon && props.showHeader && closeRef.current) {
17075
17333
  closeRef.current.focus();
17076
17334
  }
17077
17335
  };
@@ -17377,7 +17635,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
17377
17635
  };
17378
17636
  });
17379
17637
  var createCloseIcon = function createCloseIcon() {
17380
- if (props.closable) {
17638
+ if (props.closable && props.showCloseIcon) {
17381
17639
  var labelAria = props.ariaCloseIconLabel || ariaLabel('close');
17382
17640
  var closeButtonIconProps = mergeProps({
17383
17641
  className: cx('closeButtonIcon'),
@@ -17989,9 +18247,17 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
17989
18247
  var type = _ref.type,
17990
18248
  valid = _ref.valid;
17991
18249
  if (valid) {
17992
- type === 'outside' ? props.dismissable && !isPanelClicked.current && hide('hide') : hide('hide');
18250
+ if (type === 'outside') {
18251
+ if (props.dismissable && !isPanelClicked.current) {
18252
+ hide('hide');
18253
+ }
18254
+ isPanelClicked.current = false;
18255
+ } else if (context.hideOverlaysOnDocumentScrolling) {
18256
+ hide('hide');
18257
+ } else if (!DomHandler.isDocument(event.target)) {
18258
+ align();
18259
+ }
17993
18260
  }
17994
- isPanelClicked.current = false;
17995
18261
  },
17996
18262
  when: visibleState
17997
18263
  }),
@@ -20187,7 +20453,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
20187
20453
  var stacked = props.showButtons && props.buttonLayout === 'stacked';
20188
20454
  var horizontal = props.showButtons && props.buttonLayout === 'horizontal';
20189
20455
  var vertical = props.showButtons && props.buttonLayout === 'vertical';
20190
- var inputMode = props.inputMode || (props.mode === 'decimal' && !props.minFractionDigits ? 'numeric' : 'decimal');
20456
+ var inputMode = props.inputMode || (props.mode === 'decimal' && !props.minFractionDigits && !props.maxFractionDigits ? 'numeric' : 'decimal');
20191
20457
  var getOptions = function getOptions() {
20192
20458
  var _props$minFractionDig, _props$maxFractionDig;
20193
20459
  return {
@@ -20622,6 +20888,10 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
20622
20888
  event.preventDefault();
20623
20889
  var _char2 = event.key;
20624
20890
  if (_char2) {
20891
+ // get decimal separator in current locale
20892
+ if (_char2 === '.') {
20893
+ _char2 = _decimalSeparator.current;
20894
+ }
20625
20895
  var _isDecimalSign = isDecimalSign(_char2);
20626
20896
  var _isMinusSign = isMinusSign(_char2);
20627
20897
  if (Number(_char2) >= 0 && Number(_char2) <= 9 || _isMinusSign || _isDecimalSign) {
@@ -20736,6 +21006,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
20736
21006
  suffixCharIndex = _getCharIndexes2.suffixCharIndex,
20737
21007
  currencyCharIndex = _getCharIndexes2.currencyCharIndex;
20738
21008
  var maxFractionDigits = numberFormat.current.resolvedOptions().maximumFractionDigits;
21009
+ var hasBoundOrAffix = props.min || props.max || props.suffix || props.prefix; //only exception
20739
21010
  var newValueStr;
20740
21011
  if (sign.isMinusSign) {
20741
21012
  var isNewMinusSign = minusCharIndex === -1;
@@ -20755,8 +21026,11 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
20755
21026
  newValueStr = insertText(inputValue, text, selectionStart, selectionEnd);
20756
21027
  updateValue(event, newValueStr, text, 'insert');
20757
21028
  } else if (decimalCharIndex === -1 && (maxFractionDigits || props.maxFractionDigits)) {
20758
- newValueStr = insertText(inputValue, text, selectionStart, selectionEnd);
20759
- updateValue(event, newValueStr, text, 'insert');
21029
+ var allowedDecimal = inputMode !== 'numeric' || inputMode === 'numeric' && hasBoundOrAffix;
21030
+ if (allowedDecimal) {
21031
+ newValueStr = insertText(inputValue, text, selectionStart, selectionEnd);
21032
+ updateValue(event, newValueStr, text, 'insert');
21033
+ }
20760
21034
  }
20761
21035
  } else {
20762
21036
  var operation = selectionStart !== selectionEnd ? 'range-insert' : 'insert';
@@ -21719,6 +21993,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
21719
21993
  name: null,
21720
21994
  onBlur: null,
21721
21995
  onChange: null,
21996
+ onClick: null,
21722
21997
  onContextMenu: null,
21723
21998
  onFilter: null,
21724
21999
  onFocus: null,
@@ -22227,7 +22502,15 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
22227
22502
  var type = _ref.type,
22228
22503
  valid = _ref.valid;
22229
22504
  if (valid) {
22230
- type === 'outside' ? !isClearClicked(event) && hide() : hide();
22505
+ if (type === 'outside') {
22506
+ if (!isClearClicked(event)) {
22507
+ hide();
22508
+ }
22509
+ } else if (context.hideOverlaysOnDocumentScrolling) {
22510
+ hide();
22511
+ } else if (!DomHandler.isDocument(event.target)) {
22512
+ alignOverlay();
22513
+ }
22231
22514
  }
22232
22515
  },
22233
22516
  when: overlayVisibleState
@@ -22426,12 +22709,14 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
22426
22709
  case 'ArrowRight':
22427
22710
  onArrowLeftKey(event, true);
22428
22711
  break;
22429
- case 'Escape':
22430
22712
  case 'Enter':
22431
22713
  case 'NumpadEnter':
22432
22714
  onEnterKey(event);
22433
22715
  event.preventDefault();
22434
22716
  break;
22717
+ case 'Escape':
22718
+ onEscapeKey(event);
22719
+ break;
22435
22720
  }
22436
22721
  };
22437
22722
  var hasFocusableElements = function hasFocusableElements() {
@@ -22598,15 +22883,24 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
22598
22883
  !pressedInInputText && onEnterKey(event);
22599
22884
  };
22600
22885
  var onEnterKey = function onEnterKey(event) {
22886
+ event.preventDefault();
22601
22887
  if (!overlayVisibleState) {
22602
22888
  setFocusedOptionIndex(-1);
22603
22889
  onArrowDownKey(event);
22604
22890
  } else {
22605
- if (focusedOptionIndex !== -1) {
22606
- onOptionSelect(event, visibleOptions[focusedOptionIndex]);
22891
+ if (focusedOptionIndex === -1) {
22892
+ return;
22893
+ }
22894
+ var focusedOption = visibleOptions[focusedOptionIndex];
22895
+ var optionValue = getOptionValue(focusedOption);
22896
+ if (optionValue == null || optionValue == undefined) {
22897
+ hide();
22898
+ resetFilter();
22899
+ updateEditableLabel(selectedOption);
22900
+ return;
22607
22901
  }
22902
+ onOptionSelect(event, focusedOption);
22608
22903
  }
22609
- event.preventDefault();
22610
22904
  };
22611
22905
  var onEscapeKey = function onEscapeKey(event) {
22612
22906
  overlayVisibleState && hide();
@@ -23173,6 +23467,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
23173
23467
  "in": overlayVisibleState,
23174
23468
  isOptionDisabled: isOptionDisabled,
23175
23469
  isSelected: isSelected,
23470
+ onOverlayHide: hide,
23176
23471
  onClick: onPanelClick,
23177
23472
  onEnter: onOverlayEnter,
23178
23473
  onEntered: onOverlayEntered,
@@ -24052,7 +24347,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24052
24347
  onChange(event);
24053
24348
  };
24054
24349
  var onChange = function onChange(event) {
24055
- if (props.disabled || props.readonly) {
24350
+ if (props.disabled || props.readOnly) {
24056
24351
  return;
24057
24352
  }
24058
24353
  if (props.onChange) {
@@ -24155,7 +24450,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24155
24450
  onBlur: onBlur,
24156
24451
  onChange: onChange,
24157
24452
  disabled: props.disabled,
24158
- readOnly: props.readonly,
24453
+ readOnly: props.readOnly,
24159
24454
  required: props.required,
24160
24455
  tabIndex: props.tabIndex,
24161
24456
  className: cx('input')
@@ -24228,7 +24523,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24228
24523
 
24229
24524
  function ownKeys$1i(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
24230
24525
  function _objectSpread$1i(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1i(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1i(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
24231
- var BodyCell = /*#__PURE__*/React__namespace.memo(function (props) {
24526
+ var Cell = function Cell(props) {
24232
24527
  var mergeProps = useMergeProps();
24233
24528
  var _React$useState = React__namespace.useState(props.editing),
24234
24529
  _React$useState2 = _slicedToArray(_React$useState, 2),
@@ -24256,13 +24551,9 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24256
24551
  var getColumnProp = function getColumnProp(name) {
24257
24552
  return ColumnBase.getCProp(props.column, name);
24258
24553
  };
24259
- var getColumnProps = function getColumnProps() {
24260
- return ColumnBase.getCProps(props.column);
24261
- };
24262
24554
  var getColumnPTOptions = function getColumnPTOptions(key) {
24263
- var cProps = getColumnProps();
24264
24555
  var columnMetaData = {
24265
- props: cProps,
24556
+ props: props.cProps,
24266
24557
  parent: props.metaData,
24267
24558
  hostName: props.hostName,
24268
24559
  state: {
@@ -24278,10 +24569,8 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24278
24569
  };
24279
24570
  return mergeProps(ptm("column.".concat(key), {
24280
24571
  column: columnMetaData
24281
- }), ptm("column.".concat(key), columnMetaData), ptmo(cProps, key, columnMetaData));
24572
+ }), ptm("column.".concat(key), columnMetaData), ptmo(props.cProps, key, columnMetaData));
24282
24573
  };
24283
- var field = getColumnProp('field') || "field_".concat(props.index);
24284
- var editingKey = props.dataKey ? props.rowData && props.rowData[props.dataKey] || props.rowIndex : props.rowIndex;
24285
24574
  var isEditable = function isEditable() {
24286
24575
  return ObjectUtils.isNotEmpty(props.editMode) && getColumnProp('editor');
24287
24576
  };
@@ -24306,34 +24595,22 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24306
24595
  _useEventListener2 = _slicedToArray(_useEventListener, 2),
24307
24596
  bindDocumentClickListener = _useEventListener2[0],
24308
24597
  unbindDocumentClickListener = _useEventListener2[1];
24309
- var isSelected = function isSelected() {
24310
- return props.selection ? props.selection instanceof Array ? findIndex(props.selection) > -1 : equals(props.selection) : false;
24311
- };
24312
- var equalsData = function equalsData(data) {
24313
- return props.compareSelectionBy === 'equals' ? data === props.rowData : ObjectUtils.equals(data, props.rowData, props.dataKey);
24314
- };
24315
- var equals = function equals(selectedCell) {
24316
- return selectedCell && (selectedCell.rowIndex === props.rowIndex || equalsData(selectedCell.rowData)) && (selectedCell.field === field || selectedCell.cellIndex === props.index);
24317
- };
24318
24598
  var isOutsideClicked = function isOutsideClicked(target) {
24319
24599
  return elementRef.current && !(elementRef.current.isSameNode(target) || elementRef.current.contains(target));
24320
24600
  };
24321
- var getVirtualScrollerOption = function getVirtualScrollerOption(option) {
24322
- return props.virtualScrollerOptions ? props.virtualScrollerOptions[option] : null;
24323
- };
24324
24601
  var getStyle = function getStyle() {
24325
24602
  var bodyStyle = getColumnProp('bodyStyle');
24326
24603
  var columnStyle = getColumnProp('style');
24327
- return getColumnProp('frozen') ? Object.assign({}, columnStyle, bodyStyle, styleObjectState) : Object.assign({}, columnStyle, bodyStyle);
24604
+ return props.frozenCol ? Object.assign({}, columnStyle, bodyStyle, styleObjectState) : Object.assign({}, columnStyle, bodyStyle);
24328
24605
  };
24329
24606
  var getCellParams = function getCellParams() {
24330
24607
  return {
24331
- value: resolveFieldData(),
24332
- field: field,
24608
+ value: props.resolveFieldData(),
24609
+ field: props.field,
24333
24610
  rowData: props.rowData,
24334
24611
  rowIndex: props.rowIndex,
24335
24612
  cellIndex: props.index,
24336
- selected: isSelected(),
24613
+ selected: props.isCellSelected,
24337
24614
  column: props.column,
24338
24615
  props: props
24339
24616
  };
@@ -24344,20 +24621,6 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24344
24621
  originalEvent: event
24345
24622
  }, params);
24346
24623
  };
24347
- var resolveFieldData = function resolveFieldData(data) {
24348
- return ObjectUtils.resolveFieldData(data || props.rowData, field);
24349
- };
24350
- var getEditingRowData = function getEditingRowData() {
24351
- return props.editingMeta && props.editingMeta[editingKey] ? props.editingMeta[editingKey].data : props.rowData;
24352
- };
24353
- var getTabIndex = function getTabIndex(cellSelected) {
24354
- return props.allowCellSelection ? cellSelected ? 0 : props.rowIndex === 0 && props.index === 0 ? props.tabIndex : -1 : null;
24355
- };
24356
- var findIndex = function findIndex(collection) {
24357
- return (collection || []).findIndex(function (data) {
24358
- return equals(data);
24359
- });
24360
- };
24361
24624
  var closeCell = function closeCell(event) {
24362
24625
  var params = getCellCallbackParams(event);
24363
24626
  var onBeforeCellEditHide = getColumnProp('onBeforeCellEditHide');
@@ -24378,7 +24641,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24378
24641
  var switchCellToViewMode = function switchCellToViewMode(event, submit) {
24379
24642
  var callbackParams = getCellCallbackParams(event);
24380
24643
  var newRowData = _objectSpread$1i({}, editingRowDataStateRef.current);
24381
- var newValue = resolveFieldData(newRowData);
24644
+ var newValue = props.resolveFieldData(newRowData);
24382
24645
  var params = _objectSpread$1i(_objectSpread$1i({}, callbackParams), {}, {
24383
24646
  newRowData: newRowData,
24384
24647
  newValue: newValue
@@ -24403,128 +24666,20 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24403
24666
  }
24404
24667
  setEditingRowDataState(newRowData);
24405
24668
  };
24406
- var _findNextSelectableCell = function findNextSelectableCell(cell) {
24407
- var nextCell = cell.nextElementSibling;
24408
- return nextCell ? DomHandler.getAttribute(nextCell, 'data-p-selectable-cell') ? nextCell : _findNextSelectableCell(nextCell) : null;
24409
- };
24410
- var _findPrevSelectableCell = function findPrevSelectableCell(cell) {
24411
- var prevCell = cell.previousElementSibling;
24412
- return prevCell ? DomHandler.getAttribute(prevCell, 'data-p-selectable-cell') ? prevCell : _findPrevSelectableCell(prevCell) : null;
24413
- };
24414
- var _findDownSelectableCell = function findDownSelectableCell(cell) {
24415
- var downRow = cell.parentElement.nextElementSibling;
24416
- var downCell = downRow ? downRow.children[props.index] : null;
24417
- return downRow && downCell ? DomHandler.getAttribute(downRow, 'data-p-selectable-row') && DomHandler.getAttribute(downCell, 'data-p-selectable-cell') ? downCell : _findDownSelectableCell(downCell) : null;
24418
- };
24419
- var _findUpSelectableCell = function findUpSelectableCell(cell) {
24420
- var upRow = cell.parentElement.previousElementSibling;
24421
- var upCell = upRow ? upRow.children[props.index] : null;
24422
- return upRow && upCell ? DomHandler.getAttribute(upRow, 'data-p-selectable-row') && DomHandler.getAttribute(upCell, 'data-p-selectable-cell') ? upCell : _findUpSelectableCell(upCell) : null;
24423
- };
24424
- var changeTabIndex = function changeTabIndex(currentCell, nextCell) {
24425
- if (currentCell && nextCell) {
24426
- currentCell.tabIndex = -1;
24427
- nextCell.tabIndex = props.tabIndex;
24428
- }
24429
- };
24430
- var focusOnElement = function focusOnElement() {
24431
- clearTimeout(focusTimeout.current);
24432
- focusTimeout.current = setTimeout(function () {
24433
- if (editingState) {
24434
- var focusableEl = props.editMode === 'cell' ? DomHandler.getFirstFocusableElement(elementRef.current, ':not([data-pc-section="editorkeyhelperlabel"])') : DomHandler.findSingle(elementRef.current, '[data-p-row-editor-save="true"]');
24435
- focusableEl && focusableEl.focus();
24436
- }
24437
- keyHelperRef.current && (keyHelperRef.current.tabIndex = editingState ? -1 : 0);
24438
- }, 1);
24439
- };
24440
- var focusOnInit = function focusOnInit() {
24441
- clearTimeout(initFocusTimeout.current);
24442
- initFocusTimeout.current = setTimeout(function () {
24443
- var focusableEl = props.editMode === 'row' ? DomHandler.findSingle(elementRef.current, '[data-p-row-editor-init="true"]') : null;
24444
- focusableEl && focusableEl.focus();
24445
- }, 1);
24446
- };
24447
- var updateStickyPosition = function updateStickyPosition() {
24448
- if (getColumnProp('frozen')) {
24449
- var styleObject = _objectSpread$1i({}, styleObjectState);
24450
- var align = getColumnProp('alignFrozen');
24451
- if (align === 'right') {
24452
- var right = 0;
24453
- var next = elementRef.current && elementRef.current.nextElementSibling;
24454
- if (next && next.classList.contains('p-frozen-column')) {
24455
- right = DomHandler.getOuterWidth(next) + parseFloat(next.style.right || 0);
24456
- }
24457
- styleObject.right = right + 'px';
24458
- } else {
24459
- var left = 0;
24460
- var prev = elementRef.current && elementRef.current.previousElementSibling;
24461
- if (prev && prev.classList.contains('p-frozen-column')) {
24462
- left = DomHandler.getOuterWidth(prev) + parseFloat(prev.style.left || 0);
24463
- }
24464
- styleObject.left = left + 'px';
24465
- }
24466
- var isSameStyle = styleObjectState.left === styleObject.left && styleObjectState.right === styleObject.right;
24467
- !isSameStyle && setStyleObjectState(styleObject);
24468
- }
24469
- };
24470
24669
  var editorCallback = function editorCallback(val) {
24471
24670
  var editingRowData = _objectSpread$1i({}, editingRowDataState);
24472
- ObjectUtils.mutateFieldData(editingRowData, field, val);
24671
+ ObjectUtils.mutateFieldData(editingRowData, props.field, val);
24473
24672
  setEditingRowDataState(editingRowData);
24474
24673
 
24475
24674
  // update editing meta for complete methods on row mode
24476
- var currentData = getEditingRowData();
24675
+ var currentData = props.getEditingRowData();
24477
24676
  if (currentData) {
24478
- ObjectUtils.mutateFieldData(currentData, field, val);
24677
+ ObjectUtils.mutateFieldData(currentData, props.field, val);
24479
24678
  }
24480
24679
  editingRowDataStateRef.current = editingRowData;
24481
24680
  };
24482
24681
  var _onClick = function onClick(event) {
24483
- var params = getCellCallbackParams(event);
24484
- if (props.editMode !== 'row' && isEditable() && !editingState && (props.selectOnEdit || !props.selectOnEdit && props.selected)) {
24485
- selfClick.current = true;
24486
- var onBeforeCellEditShow = getColumnProp('onBeforeCellEditShow');
24487
- var onCellEditInit = getColumnProp('onCellEditInit');
24488
- var cellEditValidatorEvent = getColumnProp('cellEditValidatorEvent');
24489
- if (onBeforeCellEditShow) {
24490
- // if user returns false do not show the editor
24491
- if (onBeforeCellEditShow(params) === false) {
24492
- return;
24493
- }
24494
-
24495
- // if user prevents default stop the editor
24496
- if (event && event.defaultPrevented) {
24497
- return;
24498
- }
24499
- }
24500
-
24501
- // If the data is sorted using sort icon, it has been added to wait for the sort operation when any cell is wanted to be opened.
24502
- setTimeout(function () {
24503
- setEditingState(true);
24504
- if (onCellEditInit) {
24505
- if (onCellEditInit(params) === false) {
24506
- return;
24507
- }
24508
-
24509
- // if user prevents default stop the editor
24510
- if (event && event.defaultPrevented) {
24511
- return;
24512
- }
24513
- }
24514
- if (cellEditValidatorEvent === 'click') {
24515
- bindDocumentClickListener();
24516
- overlayEventListener.current = function (e) {
24517
- if (!isOutsideClicked(e.target)) {
24518
- selfClick.current = true;
24519
- }
24520
- };
24521
- OverlayService.on('overlay-click', overlayEventListener.current);
24522
- }
24523
- }, 1);
24524
- }
24525
- if (props.allowCellSelection && props.onClick) {
24526
- props.onClick(params);
24527
- }
24682
+ props.onClick(event, getCellCallbackParams(event), isEditable(), editingState, setEditingState, selfClick, props.column, bindDocumentClickListener, overlayEventListener, isOutsideClicked);
24528
24683
  };
24529
24684
  var _onMouseDown = function onMouseDown(event) {
24530
24685
  var params = getCellCallbackParams(event);
@@ -24548,7 +24703,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24548
24703
  cell = event.currentTarget;
24549
24704
  switch (event.code) {
24550
24705
  case 'ArrowLeft':
24551
- var prevCell = _findPrevSelectableCell(cell);
24706
+ var prevCell = props.findPrevSelectableCell(cell);
24552
24707
  if (prevCell) {
24553
24708
  changeTabIndex(cell, prevCell);
24554
24709
  prevCell.focus();
@@ -24556,7 +24711,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24556
24711
  event.preventDefault();
24557
24712
  break;
24558
24713
  case 'ArrowRight':
24559
- var nextCell = _findNextSelectableCell(cell);
24714
+ var nextCell = props.findNextSelectableCell(cell);
24560
24715
  if (nextCell) {
24561
24716
  changeTabIndex(cell, nextCell);
24562
24717
  nextCell.focus();
@@ -24564,7 +24719,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24564
24719
  event.preventDefault();
24565
24720
  break;
24566
24721
  case 'ArrowUp':
24567
- var upCell = _findUpSelectableCell(cell);
24722
+ var upCell = props.findUpSelectableCell(cell, index);
24568
24723
  if (upCell) {
24569
24724
  changeTabIndex(cell, upCell);
24570
24725
  upCell.focus();
@@ -24572,7 +24727,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24572
24727
  event.preventDefault();
24573
24728
  break;
24574
24729
  case 'ArrowDown':
24575
- var downCell = _findDownSelectableCell(cell);
24730
+ var downCell = props.findDownSelectableCell(cell, index);
24576
24731
  if (downCell) {
24577
24732
  changeTabIndex(cell, downCell);
24578
24733
  downCell.focus();
@@ -24611,13 +24766,6 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24611
24766
  index: props.rowIndex
24612
24767
  });
24613
24768
  };
24614
- var onCheckboxChange = function onCheckboxChange(event) {
24615
- props.onCheckboxChange({
24616
- originalEvent: event,
24617
- data: props.rowData,
24618
- index: props.rowIndex
24619
- });
24620
- };
24621
24769
  var onRowToggle = function onRowToggle(event) {
24622
24770
  props.onRowToggle({
24623
24771
  originalEvent: event,
@@ -24630,8 +24778,8 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24630
24778
  props.onRowEditInit({
24631
24779
  originalEvent: event,
24632
24780
  data: props.rowData,
24633
- newData: getEditingRowData(),
24634
- field: field,
24781
+ newData: props.getEditingRowData(),
24782
+ field: props.field,
24635
24783
  index: props.rowIndex
24636
24784
  });
24637
24785
  };
@@ -24639,32 +24787,26 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24639
24787
  props.onRowEditSave({
24640
24788
  originalEvent: event,
24641
24789
  data: props.rowData,
24642
- newData: getEditingRowData(),
24643
- field: field,
24790
+ newData: props.getEditingRowData(),
24791
+ field: props.field,
24644
24792
  index: props.rowIndex
24645
24793
  });
24646
- focusOnInit();
24794
+ props.focusOnInit(initFocusTimeout, elementRef);
24647
24795
  };
24648
24796
  var onRowEditCancel = function onRowEditCancel(event) {
24649
24797
  props.onRowEditCancel({
24650
24798
  originalEvent: event,
24651
24799
  data: props.rowData,
24652
- newData: getEditingRowData(),
24653
- field: field,
24800
+ newData: props.getEditingRowData(),
24801
+ field: props.field,
24654
24802
  index: props.rowIndex
24655
24803
  });
24656
- focusOnInit();
24804
+ props.focusOnInit(initFocusTimeout, elementRef);
24657
24805
  };
24658
24806
  React__namespace.useEffect(function () {
24659
- if (getColumnProp('frozen')) {
24660
- updateStickyPosition();
24661
- }
24662
- });
24663
- React__namespace.useEffect(function () {
24664
- if (props.editMode === 'cell' || props.editMode === 'row') {
24665
- focusOnElement();
24666
- }
24667
- }, [props.editMode, props.editing, editingState]); // eslint-disable-line react-hooks/exhaustive-deps
24807
+ if (props.frozenCol) props.updateStickyPosition(elementRef, props.frozenCol, props.alignFrozenCol, styleObjectState, setStyleObjectState);
24808
+ if (props.editMode === 'cell' || props.editMode === 'row') props.focusOnElement(focusTimeout, editingState, elementRef, keyHelperRef);
24809
+ }, [props.editMode, props.editing, editingState, props.frozenCol, props.alignFrozenCol]); // eslint-disable-line react-hooks/exhaustive-deps
24668
24810
 
24669
24811
  React__namespace.useEffect(function () {
24670
24812
  if (props.editMode === 'row' && props.editing !== editingState) {
@@ -24673,7 +24815,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24673
24815
  }, [props.editMode, props.editing, editingState]);
24674
24816
  useUpdateEffect(function () {
24675
24817
  if (props.editMode === 'cell' || props.editMode === 'row') {
24676
- var editingRowData = getEditingRowData();
24818
+ var editingRowData = props.getEditingRowData();
24677
24819
  setEditingRowDataState(editingRowData);
24678
24820
  editingRowDataStateRef.current = editingRowData;
24679
24821
  }
@@ -24683,7 +24825,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24683
24825
  var callbackParams = getCellCallbackParams();
24684
24826
  var params = _objectSpread$1i(_objectSpread$1i({}, callbackParams), {}, {
24685
24827
  editing: editingState,
24686
- editingKey: editingKey
24828
+ editingKey: props.editingKey
24687
24829
  });
24688
24830
  props.onEditingMetaChange(params);
24689
24831
  }
@@ -24696,16 +24838,16 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24696
24838
  }
24697
24839
  });
24698
24840
  var createLoading = function createLoading() {
24699
- var options = getVirtualScrollerOption('getLoaderOptions')(props.rowIndex, {
24841
+ var options = props.getVirtualScrollerOption('getLoaderOptions')(props.rowIndex, {
24700
24842
  cellIndex: props.index,
24701
24843
  cellFirst: props.index === 0,
24702
- cellLast: props.index === getVirtualScrollerOption('columns').length - 1,
24844
+ cellLast: props.index === props.getVirtualScrollerOption('columns').length - 1,
24703
24845
  cellEven: props.index % 2 === 0,
24704
24846
  cellOdd: props.index % 2 !== 0,
24705
24847
  column: props.column,
24706
- field: field
24848
+ field: props.field
24707
24849
  });
24708
- var content = ObjectUtils.getJSXElement(getVirtualScrollerOption('loadingTemplate'), options);
24850
+ var content = ObjectUtils.getJSXElement(props.getVirtualScrollerOption('loadingTemplate'), options);
24709
24851
  var bodyCellProps = mergeProps(getColumnPTOptions('bodyCell'), {
24710
24852
  role: 'cell'
24711
24853
  });
@@ -24714,20 +24856,20 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24714
24856
  var createElement = function createElement() {
24715
24857
  var content;
24716
24858
  var editorKeyHelper;
24717
- var cellSelected = props.allowCellSelection && isSelected();
24859
+ var cellSelected = props.allowCellSelection && props.isCellSelected;
24718
24860
  var isRowEditor = props.editMode === 'row';
24719
- var tabIndex = getTabIndex(cellSelected);
24861
+ var tabIndex = props.getTabIndex(cellSelected, props.index);
24720
24862
  var selectionMode = getColumnProp('selectionMode');
24721
24863
  var rowReorder = getColumnProp('rowReorder');
24722
24864
  var header = getColumnProp('header');
24723
24865
  var body = getColumnProp('body');
24724
24866
  var editor = getColumnProp('editor');
24725
- var frozen = getColumnProp('frozen');
24867
+ var frozen = props.frozenCol;
24726
24868
  var align = getColumnProp('align');
24727
- var value = resolveFieldData();
24869
+ var value = props.resolveFieldData();
24728
24870
  var columnBodyOptions = {
24729
24871
  column: props.column,
24730
- field: field,
24872
+ field: props.field,
24731
24873
  rowIndex: props.rowIndex,
24732
24874
  frozenRow: props.frozenRow,
24733
24875
  props: props.tableProps
@@ -24752,12 +24894,12 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24752
24894
  if (showSelection) {
24753
24895
  var ariaLabelField = props.selectionAriaLabel || props.tableProps.dataKey;
24754
24896
  var ariaLabelText = ObjectUtils.resolveFieldData(props.rowData, ariaLabelField);
24755
- label = "".concat(props.selected ? ariaLabel('unselectRow') : ariaLabel('selectRow'), " ").concat(ariaLabelText);
24897
+ label = "".concat(props.isRowSelected ? ariaLabel('unselectRow') : ariaLabel('selectRow'), " ").concat(ariaLabelText);
24756
24898
  }
24757
24899
  content = showSelection && /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, selectionMode === 'single' && /*#__PURE__*/React__namespace.createElement(RowRadioButton, {
24758
24900
  hostName: props.hostName,
24759
24901
  column: props.column,
24760
- checked: props.selected,
24902
+ checked: props.isRowSelected,
24761
24903
  disabled: !props.isSelectable({
24762
24904
  data: props.rowData,
24763
24905
  index: props.rowIndex
@@ -24772,12 +24914,12 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24772
24914
  }), selectionMode === 'multiple' && /*#__PURE__*/React__namespace.createElement(RowCheckbox, {
24773
24915
  hostName: props.hostName,
24774
24916
  column: props.column,
24775
- checked: props.selected,
24917
+ checked: props.isRowSelected,
24776
24918
  disabled: !props.isSelectable({
24777
24919
  data: props.rowData,
24778
24920
  index: props.rowIndex
24779
24921
  }),
24780
- onChange: onCheckboxChange,
24922
+ onChange: props.onCheckboxChange,
24781
24923
  tabIndex: props.tabIndex,
24782
24924
  ariaLabel: label,
24783
24925
  checkIcon: props.checkIcon,
@@ -24827,7 +24969,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24827
24969
  expanderProps.element = content;
24828
24970
  content = ObjectUtils.getJSXElement(body, props.rowData, {
24829
24971
  column: props.column,
24830
- field: field,
24972
+ field: props.field,
24831
24973
  rowIndex: props.rowIndex,
24832
24974
  frozenRow: props.frozenRow,
24833
24975
  props: props.tableProps,
@@ -24901,7 +25043,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24901
25043
  rowEditorProps.element = content;
24902
25044
  content = ObjectUtils.getJSXElement(body, props.rowData, {
24903
25045
  column: props.column,
24904
- field: field,
25046
+ field: props.field,
24905
25047
  rowIndex: props.rowIndex,
24906
25048
  frozenRow: props.frozenRow,
24907
25049
  props: props.tableProps,
@@ -24911,7 +25053,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24911
25053
  } else if (body && (!editingState || !editor)) {
24912
25054
  content = body ? ObjectUtils.getJSXElement(body, props.rowData, {
24913
25055
  column: props.column,
24914
- field: field,
25056
+ field: props.field,
24915
25057
  rowIndex: props.rowIndex,
24916
25058
  frozenRow: props.frozenRow,
24917
25059
  props: props.tableProps
@@ -24919,9 +25061,9 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24919
25061
  } else if (editor && editingState) {
24920
25062
  content = ObjectUtils.getJSXElement(editor, {
24921
25063
  rowData: editingRowDataState,
24922
- value: resolveFieldData(editingRowDataState),
25064
+ value: props.resolveFieldData(editingRowDataState),
24923
25065
  column: props.column,
24924
- field: field,
25066
+ field: props.field,
24925
25067
  rowIndex: props.rowIndex,
24926
25068
  frozenRow: props.frozenRow,
24927
25069
  props: props.tableProps,
@@ -24989,7 +25131,29 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24989
25131
  ref: elementRef
24990
25132
  }, bodyCellProps), editorKeyHelper, title, content);
24991
25133
  };
24992
- return getVirtualScrollerOption('loading') ? createLoading() : createElement();
25134
+ return props.getVirtualScrollerOption('loading') ? createLoading() : createElement();
25135
+ };
25136
+
25137
+ // RadioCheckCell is used for the Radio and Checkbox selection and has the isRowSelected dependency
25138
+ var RadioCheckCell = /*#__PURE__*/React__namespace.memo(function (props) {
25139
+ return /*#__PURE__*/React__namespace.createElement(Cell, props);
25140
+ }, function (prevProps, nextProps) {
25141
+ var keysToCompare = ['isRowSelected', 'field', 'allowCellSelection', 'isCellSelected', 'editMode', 'index', 'tabIndex', 'editing', 'expanded', 'editingMeta', 'rowData'];
25142
+ return ObjectUtils.selectiveCompare(prevProps, nextProps, keysToCompare);
25143
+ });
25144
+ RadioCheckCell.displayName = 'RadioCheckCell';
25145
+ var defaultKeysToCompare = ['rowData', 'field', 'allowCellSelection', 'isCellSelected', 'editMode', 'index', 'tabIndex', 'editing', 'expanded', 'editingMeta', 'frozenCol', 'alignFrozenCol'];
25146
+ var BodyCell = /*#__PURE__*/React__namespace.memo(function (props) {
25147
+ return /*#__PURE__*/React__namespace.createElement(Cell, props);
25148
+ }, function (prevProps, nextProps) {
25149
+ if (nextProps.cellMemo === false) return false;
25150
+ var memoProps = nextProps.cellMemoProps;
25151
+ var keysToCompare = Array.isArray(memoProps) && memoProps.every(function (prop) {
25152
+ return typeof prop === 'string';
25153
+ }) ? memoProps : defaultKeysToCompare;
25154
+ var memoPropsDepth = nextProps.cellMemoPropsDepth;
25155
+ var depth = typeof memoPropsDepth === 'number' && memoPropsDepth > 0 ? memoPropsDepth : 1;
25156
+ return ObjectUtils.selectiveCompare(prevProps, nextProps, keysToCompare, depth);
24993
25157
  });
24994
25158
  BodyCell.displayName = 'BodyCell';
24995
25159
 
@@ -25005,6 +25169,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
25005
25169
  var _props$ptCallbacks = props.ptCallbacks,
25006
25170
  ptm = _props$ptCallbacks.ptm,
25007
25171
  cx = _props$ptCallbacks.cx;
25172
+ var isRowSelected = !props.allowCellSelection && props.selected || props.contextMenuSelected;
25008
25173
  var getBodyRowPTOptions = function getBodyRowPTOptions(key) {
25009
25174
  return ptm(key, {
25010
25175
  parent: props.metaData,
@@ -25018,7 +25183,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
25018
25183
  data: props.rowData,
25019
25184
  index: props.rowIndex
25020
25185
  }),
25021
- selected: !props.allowCellSelection && props.selected || props.contextMenuSelected,
25186
+ selected: isRowSelected,
25022
25187
  stripedRows: props.metaData.props.stripedRows
25023
25188
  }
25024
25189
  });
@@ -25047,10 +25212,10 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
25047
25212
  return equals(rowData, data);
25048
25213
  });
25049
25214
  };
25050
- var changeTabIndex = function changeTabIndex(currentRow, nextRow) {
25051
- if (currentRow && nextRow) {
25052
- currentRow.tabIndex = -1;
25053
- nextRow.tabIndex = props.tabIndex;
25215
+ var changeTabIndex = function changeTabIndex(currentElement, nextElement) {
25216
+ if (currentElement && nextElement) {
25217
+ currentElement.tabIndex = -1;
25218
+ nextElement.tabIndex = props.tabIndex;
25054
25219
  }
25055
25220
  };
25056
25221
  var findFirstSelectableRow = function findFirstSelectableRow(row) {
@@ -25377,32 +25542,179 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
25377
25542
  onEditChange(e, false);
25378
25543
  event.preventDefault();
25379
25544
  };
25545
+ var equalsDataCell = function equalsDataCell(data) {
25546
+ return props.compareSelectionBy === 'equals' ? data === props.rowData : ObjectUtils.equals(data, props.rowData, props.dataKey);
25547
+ };
25548
+ var equalsCell = function equalsCell(selectedCell, field, colIndex) {
25549
+ return selectedCell && (selectedCell.rowIndex === props.rowIndex || equalsDataCell(selectedCell.rowData)) && (selectedCell.field === field || selectedCell.cellIndex === colIndex);
25550
+ };
25551
+ var findIndexCell = function findIndexCell(collection, field, colIndex) {
25552
+ return (collection || []).findIndex(function (data) {
25553
+ return equalsCell(data, field, colIndex);
25554
+ });
25555
+ };
25556
+ var isCellSelected = function isCellSelected(selection, field, colIndex) {
25557
+ return selection ? selection instanceof Array ? findIndexCell(selection, field, colIndex) > -1 : equalsCell(selection, field, colIndex) : false;
25558
+ };
25559
+ var onCheckboxChange = function onCheckboxChange(event) {
25560
+ props.onCheckboxChange({
25561
+ originalEvent: event,
25562
+ data: props.rowData,
25563
+ index: props.rowIndex
25564
+ });
25565
+ };
25566
+ var editingKey = props.dataKey ? props.rowData && props.rowData[props.dataKey] || props.rowIndex : props.rowIndex;
25567
+ var getVirtualScrollerOption = React__namespace.useCallback(function (option) {
25568
+ return props.virtualScrollerOptions ? props.virtualScrollerOptions[option] : null;
25569
+ }, [props.virtualScrollerOptions]);
25570
+ var getEditingRowData = function getEditingRowData() {
25571
+ return props.editingMeta && props.editingMeta[editingKey] ? props.editingMeta[editingKey].data : props.rowData;
25572
+ };
25573
+ var getTabIndexCell = React__namespace.useCallback(function (cellSelected, cellIndex) {
25574
+ return props.allowCellSelection ? cellSelected ? 0 : props.rowIndex === 0 && cellIndex === 0 ? props.tabIndex : -1 : null;
25575
+ }, [props.allowCellSelection, props.rowIndex, props.tabIndex]);
25576
+ var findNextSelectableCell = React__namespace.useCallback(function (cell) {
25577
+ var nextCell = cell.nextElementSibling;
25578
+ return nextCell ? DomHandler.getAttribute(nextCell, 'data-p-selectable-cell') ? nextCell : findNextSelectableCell(nextCell) : null;
25579
+ }, []);
25580
+ var findPrevSelectableCell = React__namespace.useCallback(function (cell) {
25581
+ var prevCell = cell.previousElementSibling;
25582
+ return prevCell ? DomHandler.getAttribute(prevCell, 'data-p-selectable-cell') ? prevCell : findPrevSelectableCell(prevCell) : null;
25583
+ }, []);
25584
+ var findDownSelectableCell = React__namespace.useCallback(function (cell, cellIndex) {
25585
+ var downRow = cell.parentElement.nextElementSibling;
25586
+ var downCell = downRow ? downRow.children[cellIndex] : null;
25587
+ return downRow && downCell ? DomHandler.getAttribute(downRow, 'data-p-selectable-row') && DomHandler.getAttribute(downCell, 'data-p-selectable-cell') ? downCell : findDownSelectableCell(downCell) : null;
25588
+ }, []);
25589
+ var findUpSelectableCell = React__namespace.useCallback(function (cell, cellIndex) {
25590
+ var upRow = cell.parentElement.previousElementSibling;
25591
+ var upCell = upRow ? upRow.children[cellIndex] : null;
25592
+ return upRow && upCell ? DomHandler.getAttribute(upRow, 'data-p-selectable-row') && DomHandler.getAttribute(upCell, 'data-p-selectable-cell') ? upCell : findUpSelectableCell(upCell) : null;
25593
+ }, []);
25594
+ var focusOnElement = React__namespace.useCallback(function (focusTimeoutRef, editingState, elementRef, keyHelperRef) {
25595
+ clearTimeout(focusTimeoutRef.current);
25596
+ focusTimeoutRef.current = setTimeout(function () {
25597
+ if (editingState) {
25598
+ var focusableEl = props.editMode === 'cell' ? DomHandler.getFirstFocusableElement(elementRef.current, ':not([data-pc-section="editorkeyhelperlabel"])') : DomHandler.findSingle(elementRef.current, '[data-p-row-editor-save="true"]');
25599
+ focusableEl && focusableEl.focus();
25600
+ }
25601
+ keyHelperRef.current && (keyHelperRef.current.tabIndex = editingState ? -1 : 0);
25602
+ }, 1);
25603
+ }, [props.editMode]);
25604
+ var focusOnInit = React__namespace.useCallback(function (initFocusTimeoutRef, elementRef) {
25605
+ clearTimeout(initFocusTimeoutRef.current);
25606
+ initFocusTimeoutRef.current = setTimeout(function () {
25607
+ var focusableEl = props.editMode === 'row' ? DomHandler.findSingle(elementRef.current, '[data-p-row-editor-init="true"]') : null;
25608
+ focusableEl && focusableEl.focus();
25609
+ }, 1);
25610
+ }, [props.editMode]);
25611
+ var updateStickyPosition = React__namespace.useCallback(function (elementRef, frozen, alignFrozen, styleObjectState, setStyleObjectState) {
25612
+ if (frozen) {
25613
+ var styleObject = _objectSpread$1h({}, styleObjectState);
25614
+ if (alignFrozen === 'right') {
25615
+ var right = 0;
25616
+ var next = elementRef.current && elementRef.current.nextElementSibling;
25617
+ if (next && next.classList.contains('p-frozen-column')) {
25618
+ right = DomHandler.getOuterWidth(next) + parseFloat(next.style.right || 0);
25619
+ }
25620
+ styleObject.right = right + 'px';
25621
+ } else {
25622
+ var left = 0;
25623
+ var prev = elementRef.current && elementRef.current.previousElementSibling;
25624
+ if (prev && prev.classList.contains('p-frozen-column')) {
25625
+ left = DomHandler.getOuterWidth(prev) + parseFloat(prev.style.left || 0);
25626
+ }
25627
+ styleObject.left = left + 'px';
25628
+ }
25629
+ var isSameStyle = styleObjectState.left === styleObject.left && styleObjectState.right === styleObject.right;
25630
+ !isSameStyle && setStyleObjectState(styleObject);
25631
+ }
25632
+ }, []);
25633
+ var onCellClick = function onCellClick(event, params, isEditable, editingState, setEditingState, selfClick, column, bindDocumentClickListener, overlayEventListener, isOutsideClicked) {
25634
+ if (props.editMode !== 'row' && isEditable && !editingState && (props.selectOnEdit || !props.selectOnEdit && props.isRowSelected)) {
25635
+ selfClick.current = true;
25636
+ var onBeforeCellEditShow = getColumnProp(column, 'onBeforeCellEditShow');
25637
+ var onCellEditInit = getColumnProp(column, 'onCellEditInit');
25638
+ var cellEditValidatorEvent = getColumnProp(column, 'cellEditValidatorEvent');
25639
+ if (onBeforeCellEditShow) {
25640
+ // if user returns false do not show the editor
25641
+ if (onBeforeCellEditShow(params) === false) {
25642
+ return;
25643
+ }
25644
+
25645
+ // if user prevents default stop the editor
25646
+ if (event && event.defaultPrevented) {
25647
+ return;
25648
+ }
25649
+ }
25650
+
25651
+ // If the data is sorted using sort icon, it has been added to wait for the sort operation when any cell is wanted to be opened.
25652
+ setTimeout(function () {
25653
+ setEditingState(true);
25654
+ if (onCellEditInit) {
25655
+ if (onCellEditInit(params) === false) {
25656
+ return;
25657
+ }
25658
+
25659
+ // if user prevents default stop the editor
25660
+ if (event && event.defaultPrevented) {
25661
+ return;
25662
+ }
25663
+ }
25664
+ if (cellEditValidatorEvent === 'click') {
25665
+ bindDocumentClickListener();
25666
+ overlayEventListener.current = function (e) {
25667
+ if (!isOutsideClicked(e.target)) {
25668
+ selfClick.current = true;
25669
+ }
25670
+ };
25671
+ OverlayService.on('overlay-click', overlayEventListener.current);
25672
+ }
25673
+ }, 1);
25674
+ }
25675
+ if (props.allowCellSelection && props.onCellClick) {
25676
+ props.onCellClick(params);
25677
+ }
25678
+ };
25380
25679
  var createContent = function createContent() {
25381
25680
  return props.columns.map(function (col, i) {
25382
25681
  if (shouldRenderBodyCell(props.value, col, props.index)) {
25383
25682
  var key = "".concat(props.rowIndex, "_").concat(getColumnProp(col, 'columnKey') || getColumnProp(col, 'field'), "_").concat(i);
25384
25683
  var rowSpan = props.rowGroupMode === 'rowspan' ? calculateRowGroupSize(props.value, col, props.index) : null;
25385
- return /*#__PURE__*/React__namespace.createElement(BodyCell, {
25684
+ var field = getColumnProp(col, 'field') || "field_".concat(i);
25685
+ var resolveFieldData = function resolveFieldData(data) {
25686
+ return ObjectUtils.resolveFieldData(data || props.rowData, field);
25687
+ };
25688
+ var selectionMode = getColumnProp(col, 'selectionMode');
25689
+ var cellProps = mergeProps({
25386
25690
  hostName: props.hostName,
25387
- key: key,
25388
25691
  allowCellSelection: props.allowCellSelection,
25692
+ cellMemo: props.cellMemo,
25693
+ cellMemoProps: props.cellMemoProps,
25694
+ cellMemoPropsDepth: props.cellMemoPropsDepth,
25389
25695
  cellClassName: props.cellClassName,
25390
25696
  checkIcon: props.checkIcon,
25391
25697
  collapsedRowIcon: props.collapsedRowIcon,
25698
+ field: field,
25699
+ resolveFieldData: resolveFieldData,
25392
25700
  column: col,
25393
- compareSelectionBy: props.compareSelectionBy,
25701
+ cProps: props.colsProps[i],
25394
25702
  dataKey: props.dataKey,
25395
25703
  editMode: props.editMode,
25396
25704
  editing: editing,
25397
25705
  editingMeta: props.editingMeta,
25706
+ onEditingMetaChange: props.onEditingMetaChange,
25707
+ editingKey: editingKey,
25708
+ getEditingRowData: getEditingRowData,
25398
25709
  expanded: props.expanded,
25399
25710
  expandedRowIcon: props.expandedRowIcon,
25400
25711
  frozenRow: props.frozenRow,
25712
+ frozenCol: getColumnProp(col, 'frozen'),
25713
+ alignFrozenCol: getColumnProp(col, 'alignFrozen'),
25401
25714
  index: i,
25402
25715
  isSelectable: props.isSelectable,
25403
- onCheckboxChange: props.onCheckboxChange,
25404
- onClick: props.onCellClick,
25405
- onEditingMetaChange: props.onEditingMetaChange,
25716
+ onCheckboxChange: onCheckboxChange,
25717
+ onClick: onCellClick,
25406
25718
  onMouseDown: props.onCellMouseDown,
25407
25719
  onMouseUp: props.onCellMouseUp,
25408
25720
  onRadioChange: props.onRadioChange,
@@ -25418,20 +25730,31 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
25418
25730
  rowIndex: props.rowIndex,
25419
25731
  rowSpan: rowSpan,
25420
25732
  selectOnEdit: props.selectOnEdit,
25421
- selected: props.selected,
25422
- selection: props.selection,
25733
+ isRowSelected: isRowSelected,
25734
+ isCellSelected: isCellSelected(props.selection, field, i),
25423
25735
  selectionAriaLabel: props.tableProps.selectionAriaLabel,
25424
25736
  showRowReorderElement: props.showRowReorderElement,
25425
25737
  showSelectionElement: props.showSelectionElement,
25426
25738
  tabIndex: props.tabIndex,
25739
+ getTabIndex: getTabIndexCell,
25427
25740
  tableProps: props.tableProps,
25428
25741
  tableSelector: props.tableSelector,
25429
25742
  value: props.value,
25430
- virtualScrollerOptions: props.virtualScrollerOptions,
25743
+ getVirtualScrollerOption: getVirtualScrollerOption,
25431
25744
  ptCallbacks: props.ptCallbacks,
25432
25745
  metaData: props.metaData,
25433
- unstyled: props.unstyled
25746
+ unstyled: props.unstyled,
25747
+ findNextSelectableCell: findNextSelectableCell,
25748
+ findPrevSelectableCell: findPrevSelectableCell,
25749
+ findDownSelectableCell: findDownSelectableCell,
25750
+ findUpSelectableCell: findUpSelectableCell,
25751
+ focusOnElement: focusOnElement,
25752
+ focusOnInit: focusOnInit,
25753
+ updateStickyPosition: updateStickyPosition
25434
25754
  });
25755
+ return /*#__PURE__*/React__namespace.createElement(React.Fragment, {
25756
+ key: key
25757
+ }, selectionMode ? /*#__PURE__*/React__namespace.createElement(RadioCheckCell, cellProps) : /*#__PURE__*/React__namespace.createElement(BodyCell, cellProps));
25435
25758
  }
25436
25759
  return null;
25437
25760
  });
@@ -25581,8 +25904,11 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
25581
25904
  var getColumnProps = function getColumnProps(column) {
25582
25905
  return ColumnBase.getCProps(column);
25583
25906
  };
25907
+ var cProps = getColumnProps(props.column);
25908
+ var colsProps = props.columns ? props.columns.map(function (col) {
25909
+ return getColumnProps(col);
25910
+ }) : [];
25584
25911
  var getColumnPTOptions = function getColumnPTOptions(key) {
25585
- var cProps = getColumnProps(props.column);
25586
25912
  var columnMetaData = {
25587
25913
  props: cProps,
25588
25914
  parent: props.metaData,
@@ -25707,8 +26033,12 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
25707
26033
  var allowSelection = function allowSelection(event) {
25708
26034
  return !DomHandler.isClickable(event.originalEvent.target);
25709
26035
  };
26036
+ var metaKeySelectionRef = React__namespace.useRef(props.metaKeySelection);
26037
+ React__namespace.useEffect(function () {
26038
+ metaKeySelectionRef.current = props.metaKeySelection;
26039
+ }, [props.metaKeySelection]);
25710
26040
  var allowMetaKeySelection = function allowMetaKeySelection(event) {
25711
- return !rowTouched.current && (!props.metaKeySelection || props.metaKeySelection && (event.originalEvent.metaKey || event.originalEvent.ctrlKey));
26041
+ return !rowTouched.current && (!metaKeySelectionRef.current || metaKeySelectionRef.current && (event.originalEvent.metaKey || event.originalEvent.ctrlKey));
25712
26042
  };
25713
26043
  var allowRangeSelection = function allowRangeSelection(event) {
25714
26044
  return isMultipleSelection() && event.originalEvent.shiftKey && anchorRowIndex.current !== null;
@@ -25729,9 +26059,6 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
25729
26059
  options = options || props.virtualScrollerOptions;
25730
26060
  return options ? options[option] : null;
25731
26061
  };
25732
- var getProcessedDataIndex = function getProcessedDataIndex(rowIndex) {
25733
- return props.lazy ? rowIndex - props.first : rowIndex;
25734
- };
25735
26062
  var findIndex = function findIndex(collection, rowData) {
25736
26063
  return (collection || []).findIndex(function (data) {
25737
26064
  return equals(rowData, data);
@@ -25781,6 +26108,10 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
25781
26108
  });
25782
26109
  }
25783
26110
  };
26111
+ var selectionRef = React__namespace.useRef(props.selection);
26112
+ React__namespace.useEffect(function () {
26113
+ selectionRef.current = props.selection;
26114
+ }, [props.selection]);
25784
26115
  var onSingleSelection = function onSingleSelection(_ref) {
25785
26116
  var originalEvent = _ref.originalEvent,
25786
26117
  data = _ref.data,
@@ -25794,10 +26125,11 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
25794
26125
  return;
25795
26126
  }
25796
26127
  var selected = isSelected(data);
25797
- var selection = props.selection;
26128
+ var currentSelection = selectionRef.current || [];
26129
+ var newSelection = currentSelection;
25798
26130
  if (selected) {
25799
26131
  if (toggleable) {
25800
- selection = null;
26132
+ newSelection = null;
25801
26133
  onUnselect({
25802
26134
  originalEvent: originalEvent,
25803
26135
  data: data,
@@ -25805,7 +26137,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
25805
26137
  });
25806
26138
  }
25807
26139
  } else {
25808
- selection = data;
26140
+ newSelection = data;
25809
26141
  onSelect({
25810
26142
  originalEvent: originalEvent,
25811
26143
  data: data,
@@ -25813,10 +26145,10 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
25813
26145
  });
25814
26146
  }
25815
26147
  focusOnElement(originalEvent, true);
25816
- if (props.onSelectionChange && selection !== props.selection) {
26148
+ if (props.onSelectionChange && newSelection !== currentSelection) {
25817
26149
  props.onSelectionChange({
25818
26150
  originalEvent: originalEvent,
25819
- value: selection,
26151
+ value: newSelection,
25820
26152
  type: type
25821
26153
  });
25822
26154
  }
@@ -25834,11 +26166,12 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
25834
26166
  return;
25835
26167
  }
25836
26168
  var selected = isSelected(data);
25837
- var selection = props.selection || [];
26169
+ var currentSelection = selectionRef.current || [];
26170
+ var newSelection = currentSelection;
25838
26171
  if (selected) {
25839
26172
  if (toggleable) {
25840
- var selectionIndex = findIndex(selection, data);
25841
- selection = props.selection.filter(function (val, i) {
26173
+ var selectionIndex = findIndex(currentSelection, data);
26174
+ newSelection = currentSelection.filter(function (val, i) {
25842
26175
  return i !== selectionIndex;
25843
26176
  });
25844
26177
  onUnselect({
@@ -25846,15 +26179,15 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
25846
26179
  data: data,
25847
26180
  type: type
25848
26181
  });
25849
- } else if (selection.length) {
25850
- props.selection.forEach(function (d) {
26182
+ } else if (currentSelection.length) {
26183
+ currentSelection.forEach(function (d) {
25851
26184
  return onUnselect({
25852
26185
  originalEvent: originalEvent,
25853
26186
  data: d,
25854
26187
  type: type
25855
26188
  });
25856
26189
  });
25857
- selection = [data];
26190
+ newSelection = [data];
25858
26191
  onSelect({
25859
26192
  originalEvent: originalEvent,
25860
26193
  data: data,
@@ -25862,18 +26195,18 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
25862
26195
  });
25863
26196
  }
25864
26197
  } else {
25865
- selection = ObjectUtils.isObject(selection) ? [selection] : selection;
25866
- selection = toggleable && isMultipleSelection() ? [].concat(_toConsumableArray(selection), [data]) : [data];
26198
+ newSelection = ObjectUtils.isObject(currentSelection) ? [currentSelection] : currentSelection;
26199
+ newSelection = toggleable && isMultipleSelection() ? [].concat(_toConsumableArray(newSelection), [data]) : [data];
25867
26200
  onSelect({
25868
26201
  originalEvent: originalEvent,
25869
26202
  data: data,
25870
26203
  type: type
25871
26204
  });
25872
26205
  }
25873
- if (props.onSelectionChange && selection !== props.selection) {
26206
+ if (props.onSelectionChange && newSelection !== currentSelection) {
25874
26207
  props.onSelectionChange({
25875
26208
  originalEvent: originalEvent,
25876
- value: selection,
26209
+ value: newSelection,
25877
26210
  type: type
25878
26211
  });
25879
26212
  }
@@ -25896,16 +26229,14 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
25896
26229
  var rangeStart;
25897
26230
  var rangeEnd;
25898
26231
  var isAllowCellSelection = allowCellSelection();
25899
- var rangeRowIndexInProcessedData = getProcessedDataIndex(rangeRowIndex.current);
25900
- var anchorRowIndexInProcessedData = getProcessedDataIndex(anchorRowIndex.current);
25901
- if (rangeRowIndexInProcessedData > anchorRowIndexInProcessedData) {
25902
- rangeStart = anchorRowIndexInProcessedData;
25903
- rangeEnd = rangeRowIndexInProcessedData;
25904
- } else if (rangeRowIndexInProcessedData < anchorRowIndexInProcessedData) {
25905
- rangeStart = rangeRowIndexInProcessedData;
25906
- rangeEnd = anchorRowIndexInProcessedData;
26232
+ if (rangeRowIndex.current > anchorRowIndex.current) {
26233
+ rangeStart = anchorRowIndex.current;
26234
+ rangeEnd = rangeRowIndex.current;
26235
+ } else if (rangeRowIndex.current < anchorRowIndex.current) {
26236
+ rangeStart = rangeRowIndex.current;
26237
+ rangeEnd = anchorRowIndex.current;
25907
26238
  } else {
25908
- rangeStart = rangeEnd = rangeRowIndexInProcessedData;
26239
+ rangeStart = rangeEnd = rangeRowIndex.current;
25909
26240
  }
25910
26241
  return isAllowCellSelection ? selectRangeOnCell(event, rangeStart, rangeEnd) : selectRangeOnRow(event, rangeStart, rangeEnd);
25911
26242
  };
@@ -25946,7 +26277,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
25946
26277
  for (var i = rowRangeStart; i <= rowRangeEnd; i++) {
25947
26278
  var rowData = value[i];
25948
26279
  var columns = props.columns;
25949
- var rowIndex = props.lazy ? i + props.first : i;
26280
+ var rowIndex = props.paginator ? i + props.first : i;
25950
26281
  for (var j = cellRangeStart; j <= cellRangeEnd; j++) {
25951
26282
  var field = getColumnProp(columns[j], 'field');
25952
26283
  var _value = ObjectUtils.resolveFieldData(rowData, field);
@@ -26145,13 +26476,17 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
26145
26476
  onRangeSelection(event, 'row');
26146
26477
  }
26147
26478
  };
26479
+ var expandedRowsRef = React__namespace.useRef(props.expandedRows);
26480
+ React__namespace.useEffect(function () {
26481
+ expandedRowsRef.current = props.expandedRows;
26482
+ }, [props.expandedRows]);
26148
26483
  var onRowToggle = function onRowToggle(event) {
26149
26484
  var expandedRows;
26150
26485
  var dataKey = props.dataKey;
26151
26486
  var hasDataKey = props.groupRowsBy ? dataKey === props.groupRowsBy : !!dataKey;
26152
26487
  if (hasDataKey) {
26153
26488
  var dataKeyValue = String(ObjectUtils.resolveFieldData(event.data, dataKey));
26154
- expandedRows = props.expandedRows ? _objectSpread$1f({}, props.expandedRows) : {};
26489
+ expandedRows = expandedRowsRef.current ? _objectSpread$1f({}, expandedRowsRef.current) : {};
26155
26490
  if (expandedRows[dataKeyValue] != null) {
26156
26491
  delete expandedRows[dataKeyValue];
26157
26492
  if (props.onRowCollapse) {
@@ -26170,8 +26505,8 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
26170
26505
  }
26171
26506
  }
26172
26507
  } else {
26173
- var expandedRowIndex = findIndex(props.expandedRows, event.data);
26174
- expandedRows = props.expandedRows ? _toConsumableArray(props.expandedRows) : [];
26508
+ var expandedRowIndex = findIndex(expandedRowsRef.current, event.data);
26509
+ expandedRows = expandedRowsRef.current ? _toConsumableArray(expandedRowsRef.current) : [];
26175
26510
  if (expandedRowIndex !== -1) {
26176
26511
  expandedRows = expandedRows.filter(function (_, i) {
26177
26512
  return i !== expandedRowIndex;
@@ -26421,7 +26756,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
26421
26756
  return null;
26422
26757
  };
26423
26758
  var createGroupHeader = function createGroupHeader(rowData, rowIndex, expanded, colSpan) {
26424
- if (isSubheaderGrouping && shouldRenderRowGroupHeader(props.value, rowData, getProcessedDataIndex(rowIndex))) {
26759
+ if (isSubheaderGrouping && shouldRenderRowGroupHeader(props.value, rowData, rowIndex - props.first)) {
26425
26760
  var style = rowGroupHeaderStyle();
26426
26761
  var toggler = props.expandableRowGroups && /*#__PURE__*/React__namespace.createElement(RowTogglerButton, {
26427
26762
  hostName: props.hostName,
@@ -26471,10 +26806,14 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
26471
26806
  hostName: props.hostName,
26472
26807
  allowCellSelection: _allowCellSelection,
26473
26808
  allowRowSelection: _allowRowSelection,
26809
+ cellMemo: props.cellMemo,
26810
+ cellMemoProps: props.cellMemoProps,
26811
+ cellMemoPropsDepth: props.cellMemoPropsDepth,
26474
26812
  cellClassName: props.cellClassName,
26475
26813
  checkIcon: props.checkIcon,
26476
26814
  collapsedRowIcon: props.collapsedRowIcon,
26477
26815
  columns: props.columns,
26816
+ colsProps: colsProps,
26478
26817
  compareSelectionBy: props.compareSelectionBy,
26479
26818
  contextMenuSelected: contextMenuSelected,
26480
26819
  dataKey: props.dataKey,
@@ -26954,9 +27293,17 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
26954
27293
  var type = _ref.type,
26955
27294
  valid = _ref.valid;
26956
27295
  if (valid) {
26957
- type === 'outside' ? !selfClick.current && !isTargetClicked(event.target) && hide() : hide();
27296
+ if (type === 'outside') {
27297
+ if (!selfClick.current && !isTargetClicked(event.target)) {
27298
+ hide();
27299
+ }
27300
+ selfClick.current = false;
27301
+ } else if (context.hideOverlaysOnDocumentScrolling) {
27302
+ hide();
27303
+ } else if (!DomHandler.isDocument(event.target)) {
27304
+ DomHandler.alignOverlay(overlayRef.current, iconRef.current, context && context.appendTo || PrimeReact.appendTo, false);
27305
+ }
26958
27306
  }
26959
- selfClick.current = false;
26960
27307
  },
26961
27308
  when: overlayVisibleState
26962
27309
  }),
@@ -29712,58 +30059,60 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
29712
30059
  var exportCSV = function exportCSV(options) {
29713
30060
  var data;
29714
30061
  var csv = "\uFEFF";
29715
- var columns = getColumns();
29716
30062
  if (options && options.selectionOnly) {
29717
30063
  data = props.selection || [];
29718
30064
  } else {
29719
30065
  data = [].concat(_toConsumableArray(props.frozenValue || []), _toConsumableArray(processedData() || []));
29720
30066
  }
29721
30067
 
29722
- //headers
29723
- columns.forEach(function (column, i) {
29724
- var _ref5 = [getColumnProp(column, 'field'), getColumnProp(column, 'header'), getColumnProp(column, 'exportHeader'), getColumnProp(column, 'exportable')],
30068
+ // First build collection of exportable columns
30069
+ var exportableColumns = getColumns().filter(function (column) {
30070
+ var exportable = getColumnProp(column, 'exportable');
30071
+ var field = getColumnProp(column, 'field');
30072
+
30073
+ // Column must be exportable (or undefined/not set) and have a field defined
30074
+ return exportable !== false && field;
30075
+ });
30076
+
30077
+ // headers
30078
+ exportableColumns.forEach(function (column, i) {
30079
+ var _ref5 = [getColumnProp(column, 'field'), getColumnProp(column, 'header'), getColumnProp(column, 'exportHeader')],
29725
30080
  field = _ref5[0],
29726
30081
  header = _ref5[1],
29727
- exportHeader = _ref5[2],
29728
- exportable = _ref5[3];
29729
- if (exportable && field) {
29730
- var columnHeader = String(exportHeader || header || field).replace(/"/g, '""').replace(/\n/g, "\u2028");
29731
- csv = csv + ('"' + columnHeader + '"');
29732
- if (i < columns.length - 1) {
29733
- csv = csv + props.csvSeparator;
29734
- }
30082
+ exportHeader = _ref5[2];
30083
+ var columnHeader = String(exportHeader || header || field).replace(/"/g, '""').replace(/\n/g, "\u2028");
30084
+ csv = csv + ('"' + columnHeader + '"');
30085
+ if (i < exportableColumns.length - 1) {
30086
+ csv = csv + props.csvSeparator;
29735
30087
  }
29736
30088
  });
29737
30089
 
29738
- //body
30090
+ // body
29739
30091
  data.forEach(function (record) {
29740
30092
  csv = csv + '\n';
29741
- columns.forEach(function (column, i) {
29742
- var _ref6 = [getColumnProp(column, 'field'), getColumnProp(column, 'exportField'), getColumnProp(column, 'exportable')],
30093
+ exportableColumns.forEach(function (column, i) {
30094
+ var _ref6 = [getColumnProp(column, 'field'), getColumnProp(column, 'exportField')],
29743
30095
  colField = _ref6[0],
29744
- exportField = _ref6[1],
29745
- exportable = _ref6[2];
30096
+ exportField = _ref6[1];
29746
30097
  var field = exportField || colField;
29747
- if (exportable && field) {
29748
- var cellData = ObjectUtils.resolveFieldData(record, field);
29749
- if (cellData != null) {
29750
- if (props.exportFunction) {
29751
- cellData = props.exportFunction({
29752
- data: cellData,
29753
- field: field,
29754
- rowData: record,
29755
- column: column
29756
- });
29757
- } else {
29758
- cellData = String(cellData).replace(/"/g, '""').replace(/\n/g, "\u2028");
29759
- }
30098
+ var cellData = ObjectUtils.resolveFieldData(record, field);
30099
+ if (cellData != null) {
30100
+ if (props.exportFunction) {
30101
+ cellData = props.exportFunction({
30102
+ data: cellData,
30103
+ field: field,
30104
+ rowData: record,
30105
+ column: column
30106
+ });
29760
30107
  } else {
29761
- cellData = '';
29762
- }
29763
- csv = csv + ('"' + cellData + '"');
29764
- if (i < columns.length - 1) {
29765
- csv = csv + props.csvSeparator;
30108
+ cellData = String(cellData).replace(/"/g, '""').replace(/\n/g, "\u2028");
29766
30109
  }
30110
+ } else {
30111
+ cellData = '';
30112
+ }
30113
+ csv = csv + ('"' + cellData + '"');
30114
+ if (i < exportableColumns.length - 1) {
30115
+ csv = csv + props.csvSeparator;
29767
30116
  }
29768
30117
  });
29769
30118
  });
@@ -30028,6 +30377,9 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
30028
30377
  var frozenBody = ObjectUtils.isNotEmpty(props.frozenValue) && /*#__PURE__*/React__namespace.createElement(TableBody, {
30029
30378
  hostName: "DataTable",
30030
30379
  ref: frozenBodyRef,
30380
+ cellMemo: props.cellMemo,
30381
+ cellMemoProps: props.cellMemoProps,
30382
+ cellMemoPropsDepth: props.cellMemoPropsDepth,
30031
30383
  cellClassName: props.cellClassName,
30032
30384
  cellSelection: props.cellSelection,
30033
30385
  checkIcon: props.checkIcon,
@@ -30112,6 +30464,9 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
30112
30464
  var body = /*#__PURE__*/React__namespace.createElement(TableBody, {
30113
30465
  hostName: "DataTable",
30114
30466
  ref: bodyRef,
30467
+ cellMemo: props.cellMemo,
30468
+ cellMemoProps: props.cellMemoProps,
30469
+ cellMemoPropsDepth: props.cellMemoPropsDepth,
30115
30470
  cellClassName: props.cellClassName,
30116
30471
  cellSelection: props.cellSelection,
30117
30472
  checkIcon: props.checkIcon,
@@ -32532,7 +32887,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
32532
32887
  var k = 1024;
32533
32888
  var dm = 3;
32534
32889
  var sizes = localeOption('fileSizeTypes');
32535
- if (bytes === 0) {
32890
+ if (bytes <= 0) {
32536
32891
  return "0 ".concat(sizes[0]);
32537
32892
  }
32538
32893
  var i = Math.floor(Math.log(bytes) / Math.log(k));
@@ -32554,7 +32909,8 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
32554
32909
  var selectedFiles = event.dataTransfer ? event.dataTransfer.files : event.target.files;
32555
32910
  for (var i = 0; i < selectedFiles.length; i++) {
32556
32911
  var file = selectedFiles[i];
32557
- if (!isFileSelected(file) && validate(file)) {
32912
+ var shouldAddFile = props.multiple ? !isFileSelected(file) && validate(file) : validate(file);
32913
+ if (shouldAddFile) {
32558
32914
  file.objectURL = window.URL.createObjectURL(file);
32559
32915
  currentFiles.push(file);
32560
32916
  }
@@ -32570,6 +32926,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
32570
32926
  });
32571
32927
  }
32572
32928
  clearInput();
32929
+ setFocusedState(false);
32573
32930
  if (props.mode === 'basic' && currentFiles.length > 0) {
32574
32931
  fileInputRef.current.style.display = 'none';
32575
32932
  }
@@ -34296,6 +34653,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
34296
34653
  },
34297
34654
  options: props.transitionOptions,
34298
34655
  unmountOnExit: true,
34656
+ appear: true,
34299
34657
  onEnter: onEnter,
34300
34658
  onEntering: onEntering,
34301
34659
  onEntered: onEntered,
@@ -35639,7 +35997,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
35639
35997
  var updateValue = function updateValue(allow) {
35640
35998
  var pos;
35641
35999
  if (elementRef.current) {
35642
- if (props.value == null) {
36000
+ if (ObjectUtils.isEmpty(props.value)) {
35643
36001
  elementRef.current.value = '';
35644
36002
  } else {
35645
36003
  elementRef.current.value = props.value;
@@ -38750,13 +39108,6 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
38750
39108
  inputRef: null,
38751
39109
  inputStyle: null,
38752
39110
  itemTemplate: null,
38753
- panelClassName: null,
38754
- panelStyle: null,
38755
- scrollHeight: '200px',
38756
- style: null,
38757
- suggestions: null,
38758
- transitionOptions: null,
38759
- trigger: '@',
38760
39111
  onBlur: null,
38761
39112
  onChange: null,
38762
39113
  onFocus: null,
@@ -38765,6 +39116,14 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
38765
39116
  onSearch: null,
38766
39117
  onSelect: null,
38767
39118
  onShow: null,
39119
+ panelClassName: null,
39120
+ panelStyle: null,
39121
+ scrollHeight: '200px',
39122
+ style: null,
39123
+ suggestions: null,
39124
+ transitionOptions: null,
39125
+ trigger: '@',
39126
+ variant: null,
38768
39127
  children: undefined
38769
39128
  },
38770
39129
  css: {
@@ -38833,8 +39192,15 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
38833
39192
  target: elementRef,
38834
39193
  overlay: overlayRef,
38835
39194
  listener: function listener(event, _ref) {
38836
- var valid = _ref.valid;
38837
- valid && hide();
39195
+ var valid = _ref.valid,
39196
+ type = _ref.type;
39197
+ if (valid) {
39198
+ if (context.hideOverlaysOnDocumentScrolling || type === 'outside') {
39199
+ hide();
39200
+ } else if (!DomHandler.isDocument(event.target)) {
39201
+ alignOverlay();
39202
+ }
39203
+ }
38838
39204
  },
38839
39205
  when: overlayVisibleState
38840
39206
  }),
@@ -39237,6 +39603,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
39237
39603
  style: props.inputStyle
39238
39604
  }, inputProps), {}, {
39239
39605
  unstyled: props.unstyled,
39606
+ variant: props.variant,
39240
39607
  autoResize: props.autoResize,
39241
39608
  onFocus: onFocus,
39242
39609
  onBlur: onBlur,
@@ -39404,10 +39771,15 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
39404
39771
  target: targetRef,
39405
39772
  overlay: menuRef,
39406
39773
  listener: function listener(event, _ref) {
39407
- var valid = _ref.valid;
39774
+ var valid = _ref.valid,
39775
+ type = _ref.type;
39408
39776
  if (valid) {
39409
- hide(event);
39410
- setFocusedOptionIndex(-1);
39777
+ if (context.hideOverlaysOnDocumentScrolling || type === 'outside') {
39778
+ hide(event);
39779
+ setFocusedOptionIndex(-1);
39780
+ } else if (!DomHandler.isDocument(event.target)) {
39781
+ DomHandler.absolutePosition(menuRef.current, targetRef.current, props.popupAlignment);
39782
+ }
39411
39783
  }
39412
39784
  },
39413
39785
  when: visibleState
@@ -39463,6 +39835,9 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
39463
39835
  props.onFocus && props.onFocus(event);
39464
39836
  };
39465
39837
  var onListBlur = function onListBlur(event) {
39838
+ var currentTarget = event.currentTarget,
39839
+ relatedTarget = event.relatedTarget;
39840
+ if (relatedTarget && currentTarget.contains(relatedTarget)) return;
39466
39841
  setFocused(false);
39467
39842
  setFocusedOptionIndex(-1);
39468
39843
  props.onBlur && props.onBlur(event);
@@ -39723,6 +40098,9 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
39723
40098
  className: classNames(item.className, cx('menuitem', {
39724
40099
  focused: focusedOptionIndex === key
39725
40100
  })),
40101
+ onClick: function onClick(event) {
40102
+ return onItemClick(event, item, key);
40103
+ },
39726
40104
  style: sx('menuitem', {
39727
40105
  item: item
39728
40106
  }),
@@ -40065,7 +40443,6 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
40065
40443
  'aria-disabled': disabled,
40066
40444
  'aria-expanded': group ? active : undefined,
40067
40445
  'aria-haspopup': group && !item.url ? 'menu' : undefined,
40068
- 'aria-level': props.level + 1,
40069
40446
  'aria-setsize': getAriaSetSize(),
40070
40447
  'aria-posinset': getAriaPosInset(index),
40071
40448
  'data-p-highlight': active,
@@ -40183,12 +40560,13 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
40183
40560
  var _useEventListener = useEventListener({
40184
40561
  type: 'click',
40185
40562
  listener: function listener(event) {
40186
- if (isOutsideClicked(event)) {
40187
- var isOutsideContainer = elementRef.current && !elementRef.current.contains(event.target);
40188
- if (isOutsideContainer) {
40189
- hide();
40190
- }
40563
+ var isOutsideButton = menuButtonRef.current && !menuButtonRef.current.contains(event.target);
40564
+ if (isOutsideButton) {
40565
+ hide();
40191
40566
  }
40567
+ },
40568
+ options: {
40569
+ capture: true
40192
40570
  }
40193
40571
  }),
40194
40572
  _useEventListener2 = _slicedToArray(_useEventListener, 2),
@@ -40243,9 +40621,6 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
40243
40621
  var menuButtonKeydown = function menuButtonKeydown(event) {
40244
40622
  (event.code === 'Enter' || event.code === 'NumpadEnter' || event.code === 'Space') && toggle(event);
40245
40623
  };
40246
- var isOutsideClicked = function isOutsideClicked(event) {
40247
- return rootMenuRef.current !== event.target && !rootMenuRef.current.contains(event.target) && menuButtonRef.current !== event.target && !menuButtonRef.current.contains(event.target);
40248
- };
40249
40624
  var getItemProp = function getItemProp(item, name) {
40250
40625
  return item ? ObjectUtils.getItemValue(item[name]) : undefined;
40251
40626
  };
@@ -41333,6 +41708,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
41333
41708
  role: "searchbox",
41334
41709
  value: props.filterValue,
41335
41710
  onChange: onFilter,
41711
+ onKeyDown: props.onFilterKeyDown,
41336
41712
  className: "p-multiselect-filter",
41337
41713
  placeholder: props.filterPlaceholder,
41338
41714
  pt: ptm('filterInput'),
@@ -41488,9 +41864,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
41488
41864
  'data-p-highlight': props.selected,
41489
41865
  'data-p-disabled': props.disabled
41490
41866
  }, getPTOptions('item'));
41491
- return /*#__PURE__*/React__namespace.createElement("li", _extends({}, itemProps, {
41492
- key: props.index + '_multiselectitem'
41493
- }), /*#__PURE__*/React__namespace.createElement("div", checkboxContainerProps, /*#__PURE__*/React__namespace.createElement(Checkbox, {
41867
+ return /*#__PURE__*/React__namespace.createElement("li", itemProps, /*#__PURE__*/React__namespace.createElement("div", checkboxContainerProps, /*#__PURE__*/React__namespace.createElement(Checkbox, {
41494
41868
  ref: checkboxRef,
41495
41869
  checked: props.selected,
41496
41870
  icon: checkboxIcon,
@@ -41558,6 +41932,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
41558
41932
  getOptionValue: props.getOptionValue,
41559
41933
  updateModel: props.updateModel,
41560
41934
  onFilter: onFilterInputChange,
41935
+ onFilterKeyDown: props.onFilterKeyDown,
41561
41936
  filterPlaceholder: props.filterPlaceholder,
41562
41937
  onClose: props.onCloseClick,
41563
41938
  showSelectAll: props.showSelectAll,
@@ -41850,9 +42225,13 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
41850
42225
  valid = _ref.valid;
41851
42226
  if (valid) {
41852
42227
  if (type === 'outside') {
41853
- !isClearClicked(event) && !isSelectAllClicked(event) && hide();
41854
- } else {
42228
+ if (!isClearClicked(event) && !isSelectAllClicked(event)) {
42229
+ hide();
42230
+ }
42231
+ } else if (context.hideOverlaysOnDocumentScrolling) {
41855
42232
  hide();
42233
+ } else if (!DomHandler.isDocument(event.target)) {
42234
+ alignOverlay();
41856
42235
  }
41857
42236
  }
41858
42237
  },
@@ -42121,6 +42500,52 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
42121
42500
  }
42122
42501
  setClicked(false);
42123
42502
  };
42503
+ var onFilterKeyDown = function onFilterKeyDown(event) {
42504
+ switch (event.code) {
42505
+ case 'ArrowUp':
42506
+ if (props.inline) {
42507
+ break;
42508
+ }
42509
+ onArrowUpKey(event);
42510
+ break;
42511
+ case 'ArrowDown':
42512
+ if (props.inline) {
42513
+ break;
42514
+ }
42515
+ onArrowDownKey(event);
42516
+ break;
42517
+ case 'NumpadEnter':
42518
+ case 'Enter':
42519
+ if (props.inline) {
42520
+ break;
42521
+ }
42522
+ onEnterKey(event);
42523
+ break;
42524
+ case 'Home':
42525
+ if (props.inline) {
42526
+ break;
42527
+ }
42528
+ onHomeKey(event);
42529
+ event.preventDefault();
42530
+ break;
42531
+ case 'End':
42532
+ if (props.inline) {
42533
+ break;
42534
+ }
42535
+ onEndKey(event);
42536
+ event.preventDefault();
42537
+ break;
42538
+ case 'Escape':
42539
+ if (props.inline) {
42540
+ break;
42541
+ }
42542
+ hide();
42543
+ break;
42544
+ case 'Tab':
42545
+ onTabKey(event);
42546
+ break;
42547
+ }
42548
+ };
42124
42549
  var onSelectAll = function onSelectAll(event) {
42125
42550
  if (props.onSelectAll) {
42126
42551
  props.onSelectAll(event);
@@ -42533,20 +42958,19 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
42533
42958
  return selectedItemsLabel;
42534
42959
  };
42535
42960
  var getLabel = function getLabel() {
42536
- var label;
42537
- if (!empty && !props.fixedPlaceholder) {
42538
- var _props$value;
42539
- if (ObjectUtils.isNotEmpty(props.maxSelectedLabels) && ((_props$value = props.value) === null || _props$value === void 0 ? void 0 : _props$value.length) > props.maxSelectedLabels) {
42540
- return getSelectedItemsLabel();
42541
- }
42542
- if (ObjectUtils.isArray(props.value)) {
42543
- return props.value.reduce(function (acc, value, index) {
42544
- return acc + (index !== 0 ? ', ' : '') + getLabelByValue(value);
42545
- }, '');
42546
- }
42961
+ var _props$value;
42962
+ if (empty || props.fixedPlaceholder) {
42547
42963
  return '';
42548
42964
  }
42549
- return label;
42965
+ if (ObjectUtils.isNotEmpty(props.maxSelectedLabels) && ((_props$value = props.value) === null || _props$value === void 0 ? void 0 : _props$value.length) > props.maxSelectedLabels) {
42966
+ return getSelectedItemsLabel();
42967
+ }
42968
+ if (ObjectUtils.isArray(props.value)) {
42969
+ return props.value.reduce(function (acc, value, index) {
42970
+ return acc + (index !== 0 ? ', ' : '') + getLabelByValue(value);
42971
+ }, '');
42972
+ }
42973
+ return '';
42550
42974
  };
42551
42975
  var getLabelContent = function getLabelContent() {
42552
42976
  var valueLength = props.value ? props.value.length : 0;
@@ -42819,6 +43243,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
42819
43243
  getOptionValue: getOptionValue,
42820
43244
  updateModel: updateModel,
42821
43245
  onFilterInputChange: onFilterInputChange,
43246
+ onFilterKeyDown: onFilterKeyDown,
42822
43247
  resetFilter: resetFilter,
42823
43248
  onCloseClick: onCloseClick,
42824
43249
  onSelectAll: onSelectAll,
@@ -42859,12 +43284,20 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
42859
43284
  },
42860
43285
  root: function root(_ref2) {
42861
43286
  var props = _ref2.props;
42862
- return classNames('p-multistatecheckbox p-checkbox p-component', props.classNames);
43287
+ return classNames('p-multistatecheckbox p-checkbox p-component', props.classNames, {
43288
+ 'p-variant-filled': props.variant === 'filled'
43289
+ });
43290
+ },
43291
+ checkbox: function checkbox(_ref3) {
43292
+ var props = _ref3.props;
43293
+ return classNames(props.className, {
43294
+ 'p-invalid': props.invalid
43295
+ });
42863
43296
  }
42864
43297
  };
42865
43298
  var inlineStyles$9 = {
42866
- checkbox: function checkbox(_ref3) {
42867
- var selectedOption = _ref3.selectedOption;
43299
+ checkbox: function checkbox(_ref4) {
43300
+ var selectedOption = _ref4.selectedOption;
42868
43301
  return selectedOption && selectedOption.style;
42869
43302
  }
42870
43303
  };
@@ -42889,7 +43322,9 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
42889
43322
  tooltip: null,
42890
43323
  tooltipOptions: null,
42891
43324
  value: null,
42892
- children: undefined
43325
+ children: undefined,
43326
+ invalid: false,
43327
+ variant: null
42893
43328
  },
42894
43329
  css: {
42895
43330
  classes: classes$v,
@@ -43038,7 +43473,6 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
43038
43473
  var ariaProps = ObjectUtils.reduceKeys(otherProps, DomHandler.ARIA_PROPS);
43039
43474
  var icon = createIcon();
43040
43475
  var ariaValueLabel = selectedOption ? getOptionAriaLabel(selectedOption) : ariaLabel('nullLabel');
43041
- var ariaChecked = selectedOption ? 'true' : 'false';
43042
43476
  var rootProps = mergeProps({
43043
43477
  ref: elementRef,
43044
43478
  id: props.id,
@@ -43047,7 +43481,8 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
43047
43481
  onClick: onClick
43048
43482
  }, MultiStateCheckboxBase.getOtherProps(props), ptm('root'));
43049
43483
  var checkboxProps = mergeProps(_objectSpread$I({
43050
- className: classNames(props.className),
43484
+ id: props.id + '_checkbox',
43485
+ className: cx('checkbox'),
43051
43486
  style: sx('checkbox', {
43052
43487
  selectedOption: selectedOption
43053
43488
  }),
@@ -43055,8 +43490,6 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
43055
43490
  onFocus: onFocus,
43056
43491
  onBlur: onBlur,
43057
43492
  onKeyDown: onKeyDown,
43058
- role: 'checkbox',
43059
- 'aria-checked': ariaChecked,
43060
43493
  onChange: onClick,
43061
43494
  checked: !!selectedOption,
43062
43495
  disabled: props === null || props === void 0 ? void 0 : props.disabled,
@@ -43598,6 +44031,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
43598
44031
  var styleElementRef = React__namespace.useRef(null);
43599
44032
  var reorderDirection = React__namespace.useRef(null);
43600
44033
  var listElementRef = React__namespace.useRef(null);
44034
+ var reorderedListElementRef = React__namespace.useRef(null);
43601
44035
  var metaData = {
43602
44036
  props: props,
43603
44037
  state: {
@@ -43823,9 +44257,9 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
43823
44257
  }
43824
44258
  var _focusedOptionIndex = items[order] ? items[order].getAttribute('id') : -1;
43825
44259
  setFocusedOptionIndex(_focusedOptionIndex);
43826
- scrollInView(_focusedOptionIndex);
44260
+ scrollInViewWithFocus(_focusedOptionIndex);
43827
44261
  };
43828
- var scrollInView = function scrollInView(id) {
44262
+ var scrollInViewWithFocus = function scrollInViewWithFocus(id) {
43829
44263
  var listElement = getListElement();
43830
44264
  var element = DomHandler.findSingle(listElement, "[data-pc-section=\"item\"][id=\"".concat(id, "\"]"));
43831
44265
  if (element) {
@@ -43835,6 +44269,33 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
43835
44269
  });
43836
44270
  }
43837
44271
  };
44272
+ var scrollInView = function scrollInView(listContainer) {
44273
+ var direction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
44274
+ var selectedItems = listContainer.getElementsByClassName('p-highlight');
44275
+ if (ObjectUtils.isNotEmpty(selectedItems)) {
44276
+ DomHandler.scrollInView(listContainer, direction === -1 ? selectedItems[0] : selectedItems[selectedItems.length - 1]);
44277
+ }
44278
+ };
44279
+ var handleScrollPosition = function handleScrollPosition(listElement, direction) {
44280
+ if (listElement) {
44281
+ switch (direction) {
44282
+ case 'up':
44283
+ scrollInView(listElement, -1);
44284
+ break;
44285
+ case 'top':
44286
+ listElement.scrollTop = 0;
44287
+ break;
44288
+ case 'down':
44289
+ scrollInView(listElement, 1);
44290
+ break;
44291
+ case 'bottom':
44292
+ setTimeout(function () {
44293
+ return listElement.scrollTop = listElement.scrollHeight;
44294
+ }, 100);
44295
+ break;
44296
+ }
44297
+ }
44298
+ };
43838
44299
  var onFilter = function onFilter(event) {
43839
44300
  var _filterValue = event.target.value;
43840
44301
  setFilterValueState(_filterValue);
@@ -43869,6 +44330,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
43869
44330
  });
43870
44331
  }
43871
44332
  reorderDirection.current = event.direction;
44333
+ reorderedListElementRef.current = getListElement();
43872
44334
  };
43873
44335
  var createStyle = function createStyle() {
43874
44336
  if (!styleElementRef.current) {
@@ -43905,7 +44367,9 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
43905
44367
  setFocusedOptionId(_focusedOptionId);
43906
44368
  }, [focusedOptionIndex]);
43907
44369
  useUpdateEffect(function () {
43908
- if (reorderDirection.current) {
44370
+ if (reorderedListElementRef.current) {
44371
+ handleScrollPosition(reorderedListElementRef.current, reorderDirection.current);
44372
+ reorderedListElementRef.current = null;
43909
44373
  reorderDirection.current = null;
43910
44374
  }
43911
44375
  });
@@ -44396,18 +44860,17 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
44396
44860
  var type = _ref.type,
44397
44861
  valid = _ref.valid;
44398
44862
  if (valid) {
44399
- switch (type) {
44400
- case 'outside':
44401
- props.dismissable && !isPanelClicked.current && hide();
44402
- break;
44403
- case 'resize':
44404
- case 'scroll':
44405
- case 'orientationchange':
44406
- align();
44407
- break;
44863
+ if (type === 'outside') {
44864
+ if (props.dismissable && !isPanelClicked.current) {
44865
+ hide();
44866
+ }
44867
+ isPanelClicked.current = false;
44868
+ } else if (context.hideOverlaysOnDocumentScrolling) {
44869
+ hide();
44870
+ } else if (!DomHandler.isDocument(event.target)) {
44871
+ align();
44408
44872
  }
44409
44873
  }
44410
- isPanelClicked.current = false;
44411
44874
  },
44412
44875
  when: visibleState
44413
44876
  }),
@@ -46164,8 +46627,15 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
46164
46627
  target: elementRef,
46165
46628
  overlay: overlayRef,
46166
46629
  listener: function listener(event, _ref) {
46167
- var valid = _ref.valid;
46168
- valid && hide();
46630
+ var valid = _ref.valid,
46631
+ type = _ref.type;
46632
+ if (valid) {
46633
+ if (type === 'outside' || context.hideOverlaysOnDocumentScrolling) {
46634
+ hide();
46635
+ } else if (!DomHandler.isDocument(event.target)) {
46636
+ alignOverlay();
46637
+ }
46638
+ }
46169
46639
  },
46170
46640
  when: overlayVisibleState
46171
46641
  }),
@@ -49730,8 +50200,15 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
49730
50200
  target: targetRef,
49731
50201
  overlay: menuRef,
49732
50202
  listener: function listener(event, _ref) {
49733
- var valid = _ref.valid;
49734
- valid && hide(event);
50203
+ var valid = _ref.valid,
50204
+ type = _ref.type;
50205
+ if (valid) {
50206
+ if (type === 'outside' || context.hideOverlaysOnDocumentScrolling) {
50207
+ hide(event);
50208
+ } else if (!DomHandler.isDocument(event.target)) {
50209
+ DomHandler.absolutePosition(menuRef.current, targetRef.current);
50210
+ }
50211
+ }
49735
50212
  },
49736
50213
  when: visibleState
49737
50214
  }),
@@ -57365,7 +57842,9 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
57365
57842
  onBlur: null,
57366
57843
  onFilterValueChange: null,
57367
57844
  onHide: null,
57845
+ onNodeClick: null,
57368
57846
  onNodeCollapse: null,
57847
+ onNodeDoubleClick: null,
57369
57848
  onNodeExpand: null,
57370
57849
  onNodeSelect: null,
57371
57850
  onNodeUnselect: null,
@@ -57479,9 +57958,9 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
57479
57958
  expandedKeysState = _React$useState6[0],
57480
57959
  setExpandedKeysState = _React$useState6[1];
57481
57960
  var _useDebounce = useDebounce('', props.filterDelay || 0),
57482
- _useDebounce2 = _slicedToArray(_useDebounce, 3);
57483
- _useDebounce2[0];
57484
- var filterValueState = _useDebounce2[1],
57961
+ _useDebounce2 = _slicedToArray(_useDebounce, 3),
57962
+ filterValue = _useDebounce2[0],
57963
+ filterValueState = _useDebounce2[1],
57485
57964
  setFilterValueState = _useDebounce2[2];
57486
57965
  var elementRef = React__namespace.useRef(null);
57487
57966
  var overlayRef = React__namespace.useRef(null);
@@ -57528,8 +58007,15 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
57528
58007
  target: elementRef,
57529
58008
  overlay: overlayRef,
57530
58009
  listener: function listener(event, _ref) {
57531
- var valid = _ref.valid;
57532
- valid && hide();
58010
+ var valid = _ref.valid,
58011
+ type = _ref.type;
58012
+ if (valid) {
58013
+ if (type === 'outside' || context.hideOverlaysOnDocumentScrolling) {
58014
+ hide();
58015
+ } else if (!DomHandler.isDocument(event.target)) {
58016
+ alignOverlay();
58017
+ }
58018
+ }
57533
58019
  },
57534
58020
  when: overlayVisibleState
57535
58021
  }),
@@ -58050,6 +58536,8 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
58050
58536
  onCollapse: props.onNodeCollapse,
58051
58537
  onExpand: props.onNodeExpand,
58052
58538
  onFilterValueChange: onFilterValueChange,
58539
+ onNodeClick: props.onNodeClick,
58540
+ onNodeDoubleClick: props.onNodeDoubleClick,
58053
58541
  onSelect: onNodeSelect,
58054
58542
  onSelectionChange: onSelectionChange,
58055
58543
  onToggle: onNodeToggle,
@@ -58067,15 +58555,15 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
58067
58555
  };
58068
58556
  var createFilterElement = function createFilterElement() {
58069
58557
  if (props.filter) {
58070
- var _filterValue = props.onFilterValueChange ? props.filterValue : filteredValue;
58071
- _filterValue = ObjectUtils.isNotEmpty(_filterValue) ? _filterValue : '';
58558
+ var newValue = props.onFilterValueChange ? props.filterValue : filterValue;
58559
+ newValue = ObjectUtils.isNotEmpty(newValue) ? newValue : '';
58072
58560
  var filterContainerProps = mergeProps({
58073
58561
  className: cx('filterContainer')
58074
58562
  }, ptm('filterContainer'));
58075
58563
  var filterProps = mergeProps({
58076
58564
  ref: filterInputRef,
58077
58565
  type: 'text',
58078
- value: _filterValue,
58566
+ value: newValue,
58079
58567
  autoComplete: 'off',
58080
58568
  className: cx('filter'),
58081
58569
  placeholder: props.filterPlaceholder,
@@ -61493,7 +61981,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
61493
61981
  tooltip: null,
61494
61982
  tooltipOptions: null,
61495
61983
  uncheckIcon: null,
61496
- value: '',
61984
+ value: null,
61497
61985
  children: undefined
61498
61986
  },
61499
61987
  css: {
@@ -61507,7 +61995,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
61507
61995
  var mergeProps = useMergeProps();
61508
61996
  var context = React__namespace.useContext(PrimeReactContext);
61509
61997
  var props = TriStateCheckboxBase.getProps(inProps, context);
61510
- var _useState = React.useState(''),
61998
+ var _useState = React.useState(null),
61511
61999
  _useState2 = _slicedToArray(_useState, 2),
61512
62000
  checkBoxValue = _useState2[0],
61513
62001
  setCheckBoxValue = _useState2[1];
@@ -61522,10 +62010,10 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
61522
62010
  name: 'tristatecheckbox'
61523
62011
  });
61524
62012
  React.useEffect(function () {
61525
- if ([true, false, ''].includes(props.value)) {
62013
+ if ([true, false, null].includes(props.value)) {
61526
62014
  setCheckBoxValue(props.value);
61527
62015
  } else {
61528
- setCheckBoxValue('');
62016
+ setCheckBoxValue(null);
61529
62017
  }
61530
62018
  }, [props.value]);
61531
62019
  var onChange = function onChange(event) {
@@ -61533,12 +62021,12 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
61533
62021
  return;
61534
62022
  }
61535
62023
  var newValue;
61536
- if (checkBoxValue === '') {
62024
+ if (checkBoxValue === null) {
61537
62025
  newValue = true;
61538
62026
  } else if (checkBoxValue === true) {
61539
62027
  newValue = false;
61540
62028
  } else if (checkBoxValue === false) {
61541
- newValue = '';
62029
+ newValue = null;
61542
62030
  }
61543
62031
  if (props.onChange) {
61544
62032
  props.onChange({
@@ -61609,6 +62097,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
61609
62097
  var ariaValueLabel = checkBoxValue ? ariaLabel('trueLabel') : checkBoxValue === false ? ariaLabel('falseLabel') : ariaLabel('nullLabel');
61610
62098
  var ariaChecked = checkBoxValue ? 'true' : 'false';
61611
62099
  var boxProps = mergeProps(_objectSpread({
62100
+ id: props.id + '_box',
61612
62101
  className: cx('box'),
61613
62102
  tabIndex: props.disabled ? '-1' : props.tabIndex,
61614
62103
  onFocus: onFocus,