primereact 10.9.4 → 10.9.5

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 (195) hide show
  1. package/autocomplete/autocomplete.cjs.js +13 -1
  2. package/autocomplete/autocomplete.cjs.min.js +1 -1
  3. package/autocomplete/autocomplete.esm.js +14 -2
  4. package/autocomplete/autocomplete.esm.min.js +1 -1
  5. package/autocomplete/autocomplete.js +13 -1
  6. package/autocomplete/autocomplete.min.js +1 -1
  7. package/breadcrumb/breadcrumb.cjs.js +2 -1
  8. package/breadcrumb/breadcrumb.cjs.min.js +1 -1
  9. package/breadcrumb/breadcrumb.esm.js +2 -1
  10. package/breadcrumb/breadcrumb.esm.min.js +1 -1
  11. package/breadcrumb/breadcrumb.js +2 -1
  12. package/breadcrumb/breadcrumb.min.js +1 -1
  13. package/calendar/calendar.cjs.js +10 -2
  14. package/calendar/calendar.cjs.min.js +1 -1
  15. package/calendar/calendar.esm.js +11 -3
  16. package/calendar/calendar.esm.min.js +1 -1
  17. package/calendar/calendar.js +10 -2
  18. package/calendar/calendar.min.js +1 -1
  19. package/cascadeselect/cascadeselect.cjs.js +9 -2
  20. package/cascadeselect/cascadeselect.cjs.min.js +1 -1
  21. package/cascadeselect/cascadeselect.d.ts +9 -0
  22. package/cascadeselect/cascadeselect.esm.js +9 -2
  23. package/cascadeselect/cascadeselect.esm.min.js +1 -1
  24. package/cascadeselect/cascadeselect.js +9 -2
  25. package/cascadeselect/cascadeselect.min.js +1 -1
  26. package/checkbox/checkbox.cjs.js +1 -1
  27. package/checkbox/checkbox.cjs.min.js +1 -1
  28. package/checkbox/checkbox.esm.js +1 -1
  29. package/checkbox/checkbox.esm.min.js +1 -1
  30. package/checkbox/checkbox.js +1 -1
  31. package/checkbox/checkbox.min.js +1 -1
  32. package/chip/chip.cjs.js +15 -2
  33. package/chip/chip.cjs.min.js +1 -1
  34. package/chip/chip.esm.js +17 -4
  35. package/chip/chip.esm.min.js +1 -1
  36. package/chip/chip.js +15 -2
  37. package/chip/chip.min.js +1 -1
  38. package/chips/chips.cjs.js +1 -1
  39. package/chips/chips.cjs.min.js +1 -1
  40. package/chips/chips.esm.js +1 -1
  41. package/chips/chips.esm.min.js +1 -1
  42. package/chips/chips.js +1 -1
  43. package/chips/chips.min.js +1 -1
  44. package/colorpicker/colorpicker.cjs.js +9 -2
  45. package/colorpicker/colorpicker.cjs.min.js +1 -1
  46. package/colorpicker/colorpicker.esm.js +9 -2
  47. package/colorpicker/colorpicker.esm.min.js +1 -1
  48. package/colorpicker/colorpicker.js +9 -2
  49. package/colorpicker/colorpicker.min.js +1 -1
  50. package/confirmpopup/confirmpopup.cjs.js +10 -2
  51. package/confirmpopup/confirmpopup.cjs.min.js +1 -1
  52. package/confirmpopup/confirmpopup.esm.js +10 -2
  53. package/confirmpopup/confirmpopup.esm.min.js +1 -1
  54. package/confirmpopup/confirmpopup.js +10 -2
  55. package/confirmpopup/confirmpopup.min.js +1 -1
  56. package/core/core.js +172 -30
  57. package/core/core.min.js +6 -6
  58. package/datatable/datatable.cjs.js +278 -238
  59. package/datatable/datatable.cjs.min.js +1 -1
  60. package/datatable/datatable.esm.js +279 -239
  61. package/datatable/datatable.esm.min.js +1 -1
  62. package/datatable/datatable.js +278 -238
  63. package/datatable/datatable.min.js +1 -1
  64. package/dropdown/dropdown.cjs.js +13 -2
  65. package/dropdown/dropdown.cjs.min.js +1 -1
  66. package/dropdown/dropdown.d.ts +4 -0
  67. package/dropdown/dropdown.esm.js +13 -2
  68. package/dropdown/dropdown.esm.min.js +1 -1
  69. package/dropdown/dropdown.js +13 -2
  70. package/dropdown/dropdown.min.js +1 -1
  71. package/hooks/hooks.cjs.js +16 -6
  72. package/hooks/hooks.cjs.min.js +1 -1
  73. package/hooks/hooks.esm.js +16 -6
  74. package/hooks/hooks.esm.min.js +1 -1
  75. package/hooks/hooks.js +16 -6
  76. package/hooks/hooks.min.js +1 -1
  77. package/inputmask/inputmask.cjs.js +1 -1
  78. package/inputmask/inputmask.cjs.min.js +1 -1
  79. package/inputmask/inputmask.esm.js +1 -1
  80. package/inputmask/inputmask.esm.min.js +1 -1
  81. package/inputmask/inputmask.js +1 -1
  82. package/inputmask/inputmask.min.js +1 -1
  83. package/inputnumber/inputnumber.cjs.js +5 -2
  84. package/inputnumber/inputnumber.cjs.min.js +1 -1
  85. package/inputnumber/inputnumber.esm.js +5 -2
  86. package/inputnumber/inputnumber.esm.min.js +1 -1
  87. package/inputnumber/inputnumber.js +5 -2
  88. package/inputnumber/inputnumber.min.js +1 -1
  89. package/inputotp/inputotp.cjs.js +1 -0
  90. package/inputotp/inputotp.cjs.min.js +1 -1
  91. package/inputotp/inputotp.esm.js +1 -0
  92. package/inputotp/inputotp.esm.min.js +1 -1
  93. package/inputotp/inputotp.js +1 -0
  94. package/inputotp/inputotp.min.js +1 -1
  95. package/mention/mention.cjs.js +18 -9
  96. package/mention/mention.cjs.min.js +1 -1
  97. package/mention/mention.d.ts +5 -0
  98. package/mention/mention.esm.js +18 -9
  99. package/mention/mention.esm.min.js +1 -1
  100. package/mention/mention.js +18 -9
  101. package/mention/mention.min.js +1 -1
  102. package/menu/menu.cjs.js +11 -3
  103. package/menu/menu.cjs.min.js +1 -1
  104. package/menu/menu.esm.js +12 -4
  105. package/menu/menu.esm.min.js +1 -1
  106. package/menu/menu.js +11 -3
  107. package/menu/menu.min.js +1 -1
  108. package/menubar/menubar.cjs.js +6 -9
  109. package/menubar/menubar.cjs.min.js +1 -1
  110. package/menubar/menubar.esm.js +6 -9
  111. package/menubar/menubar.esm.min.js +1 -1
  112. package/menubar/menubar.js +6 -9
  113. package/menubar/menubar.min.js +1 -1
  114. package/multiselect/multiselect.cjs.js +7 -3
  115. package/multiselect/multiselect.cjs.min.js +1 -1
  116. package/multiselect/multiselect.esm.js +7 -3
  117. package/multiselect/multiselect.esm.min.js +1 -1
  118. package/multiselect/multiselect.js +7 -3
  119. package/multiselect/multiselect.min.js +1 -1
  120. package/multistatecheckbox/multistatecheckbox.cjs.js +1 -1
  121. package/multistatecheckbox/multistatecheckbox.cjs.min.js +1 -1
  122. package/multistatecheckbox/multistatecheckbox.esm.js +1 -1
  123. package/multistatecheckbox/multistatecheckbox.esm.min.js +1 -1
  124. package/multistatecheckbox/multistatecheckbox.js +1 -1
  125. package/multistatecheckbox/multistatecheckbox.min.js +1 -1
  126. package/orderlist/orderlist.cjs.js +34 -3
  127. package/orderlist/orderlist.cjs.min.js +1 -1
  128. package/orderlist/orderlist.esm.js +34 -3
  129. package/orderlist/orderlist.esm.min.js +1 -1
  130. package/orderlist/orderlist.js +34 -3
  131. package/orderlist/orderlist.min.js +1 -1
  132. package/overlaypanel/overlaypanel.cjs.js +9 -10
  133. package/overlaypanel/overlaypanel.cjs.min.js +1 -1
  134. package/overlaypanel/overlaypanel.esm.js +9 -10
  135. package/overlaypanel/overlaypanel.esm.min.js +1 -1
  136. package/overlaypanel/overlaypanel.js +9 -10
  137. package/overlaypanel/overlaypanel.min.js +1 -1
  138. package/package.json +1 -1
  139. package/password/password.cjs.js +9 -2
  140. package/password/password.cjs.min.js +1 -1
  141. package/password/password.esm.js +10 -3
  142. package/password/password.esm.min.js +1 -1
  143. package/password/password.js +9 -2
  144. package/password/password.min.js +1 -1
  145. package/primereact.all.cjs.js +641 -334
  146. package/primereact.all.cjs.min.js +1 -1
  147. package/primereact.all.esm.js +642 -335
  148. package/primereact.all.esm.min.js +1 -1
  149. package/primereact.all.js +641 -334
  150. package/primereact.all.min.js +1 -1
  151. package/radiobutton/radiobutton.cjs.js +2 -2
  152. package/radiobutton/radiobutton.cjs.min.js +1 -1
  153. package/radiobutton/radiobutton.d.ts +1 -1
  154. package/radiobutton/radiobutton.esm.js +2 -2
  155. package/radiobutton/radiobutton.esm.min.js +1 -1
  156. package/radiobutton/radiobutton.js +2 -2
  157. package/radiobutton/radiobutton.min.js +1 -1
  158. package/slidemenu/slidemenu.cjs.js +9 -2
  159. package/slidemenu/slidemenu.cjs.min.js +1 -1
  160. package/slidemenu/slidemenu.esm.js +10 -3
  161. package/slidemenu/slidemenu.esm.min.js +1 -1
  162. package/slidemenu/slidemenu.js +9 -2
  163. package/slidemenu/slidemenu.min.js +1 -1
  164. package/tree/tree.cjs.js +1 -1
  165. package/tree/tree.cjs.min.js +1 -1
  166. package/tree/tree.esm.js +1 -1
  167. package/tree/tree.esm.min.js +1 -1
  168. package/tree/tree.js +1 -1
  169. package/tree/tree.min.js +1 -1
  170. package/treeselect/treeselect.cjs.js +15 -8
  171. package/treeselect/treeselect.cjs.min.js +1 -1
  172. package/treeselect/treeselect.esm.js +15 -8
  173. package/treeselect/treeselect.esm.min.js +1 -1
  174. package/treeselect/treeselect.js +15 -8
  175. package/treeselect/treeselect.min.js +1 -1
  176. package/treetable/treetable.cjs.js +1 -1
  177. package/treetable/treetable.cjs.min.js +1 -1
  178. package/treetable/treetable.esm.js +1 -1
  179. package/treetable/treetable.esm.min.js +1 -1
  180. package/treetable/treetable.js +1 -1
  181. package/treetable/treetable.min.js +1 -1
  182. package/tristatecheckbox/tristatecheckbox.cjs.js +6 -6
  183. package/tristatecheckbox/tristatecheckbox.cjs.min.js +1 -1
  184. package/tristatecheckbox/tristatecheckbox.esm.js +6 -6
  185. package/tristatecheckbox/tristatecheckbox.esm.min.js +1 -1
  186. package/tristatecheckbox/tristatecheckbox.js +6 -6
  187. package/tristatecheckbox/tristatecheckbox.min.js +1 -1
  188. package/utils/utils.cjs.js +136 -18
  189. package/utils/utils.cjs.min.js +1 -1
  190. package/utils/utils.d.ts +5 -1
  191. package/utils/utils.esm.js +136 -18
  192. package/utils/utils.esm.min.js +1 -1
  193. package/utils/utils.js +136 -18
  194. package/utils/utils.min.js +1 -1
  195. package/web-types.json +29 -2
package/primereact.all.js CHANGED
@@ -587,11 +587,18 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
587
587
  element.style.transformOrigin = 'top';
588
588
  }
589
589
  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);
590
+ if (align === 'left') {
591
+ if (targetOffsetPx + elementOuterWidth > viewport.width) {
592
+ left = Math.max(0, targetOffsetPx + windowScrollLeft + targetOuterWidth - elementOuterWidth);
593
+ } else {
594
+ left = targetOffsetPx + windowScrollLeft;
595
+ }
593
596
  } else {
594
- left = targetOffsetPx - alignOffset + windowScrollLeft;
597
+ if (targetOffsetPx + targetOuterWidth - elementOuterWidth < 0) {
598
+ left = windowScrollLeft;
599
+ } else {
600
+ left = targetOffsetPx + targetOuterWidth - elementOuterWidth + windowScrollLeft;
601
+ }
595
602
  }
596
603
  element.style.top = top + 'px';
597
604
  element.style.left = left + 'px';
@@ -800,13 +807,12 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
800
807
  /**
801
808
  * Gets all scrollable parent elements of a given element
802
809
  * @param {HTMLElement} element - The element to find scrollable parents for
803
- * @param {boolean} hideOverlaysOnDocumentScrolling - Whether to include window/document level scrolling
804
810
  * @returns {Array} Array of scrollable parent elements
805
811
  */
806
812
  }, {
807
813
  key: "getScrollableParents",
808
814
  value: function getScrollableParents(element) {
809
- var hideOverlaysOnDocumentScrolling = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
815
+ var _this3 = this;
810
816
  var scrollableParents = [];
811
817
  if (element) {
812
818
  // Get all parent elements
@@ -829,10 +835,8 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
829
835
  * @param {HTMLElement} node - Element to add
830
836
  */
831
837
  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
- }
838
+ // For document/body/html elements, add window instead
839
+ scrollableParents.push(node.nodeName === 'BODY' || node.nodeName === 'HTML' || _this3.isDocument(node) ? window : node);
836
840
  };
837
841
 
838
842
  // Iterate through all parent elements
@@ -876,13 +880,6 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
876
880
  _iterator.f();
877
881
  }
878
882
  }
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
883
  return scrollableParents;
887
884
  }
888
885
  }, {
@@ -1022,6 +1019,11 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
1022
1019
  value: function isElement(obj) {
1023
1020
  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
1021
  }
1022
+ }, {
1023
+ key: "isDocument",
1024
+ value: function isDocument(obj) {
1025
+ return (typeof Document === "undefined" ? "undefined" : _typeof(Document)) === 'object' ? obj instanceof Document : obj && _typeof(obj) === 'object' && obj !== null && obj.nodeType === 9;
1026
+ }
1025
1027
  }, {
1026
1028
  key: "scrollInView",
1027
1029
  value: function scrollInView(container, item) {
@@ -1359,7 +1361,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
1359
1361
  return !!(obj && obj.constructor && obj.call && obj.apply);
1360
1362
  };
1361
1363
  var element = isFunction(target) ? target() : target;
1362
- return element && element.nodeType === 9 || this.isExist(element) ? element : null;
1364
+ return this.isDocument(element) || this.isExist(element) ? element : null;
1363
1365
  }
1364
1366
 
1365
1367
  /**
@@ -2062,6 +2064,122 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
2062
2064
  obj = obj[fields[i]];
2063
2065
  }
2064
2066
  }
2067
+
2068
+ /**
2069
+ * This helper function takes an object and a dot-separated key path. It traverses the object based on the path,
2070
+ * returning the value at the specified depth. If any part of the path is missing or undefined, it returns undefined.
2071
+ *
2072
+ * Example:
2073
+ * const obj = { name: 'Alice', address: { city: 'Wonderland', zip: 12345 } };
2074
+ * const path = 'address.city';
2075
+ * const result = ObjectUtils.getNestedValue(obj, path);
2076
+ * console.log(result); // Output: "Wonderland"
2077
+ *
2078
+ * @param {object} obj - The object to traverse.
2079
+ * @param {string} path - The dot-separated key path.
2080
+ * @returns {*} The value at the specified depth, or undefined if any part of the path is missing or undefined.
2081
+ */
2082
+ }, {
2083
+ key: "getNestedValue",
2084
+ value: function getNestedValue(obj, path) {
2085
+ return path.split('.').reduce(function (acc, part) {
2086
+ return acc && acc[part] !== undefined ? acc[part] : undefined;
2087
+ }, obj);
2088
+ }
2089
+
2090
+ /**
2091
+ * This function takes an object and a dot-separated key path. It traverses the object based on the path,
2092
+ * returning the value at the specified depth. If any part of the path is missing or undefined, it returns undefined.
2093
+ *
2094
+ * Example:
2095
+ * const objA = { name: 'Alice', address: { city: 'Wonderland', zip: 12345 } };
2096
+ * const objB = { name: 'Alice', address: { city: 'Wonderland', zip: 12345 } };
2097
+ * const result = ObjectUtils.absoluteCompare(objA, objB);
2098
+ * console.log(result); // Output: true
2099
+ *
2100
+ * const objC = { name: 'Alice', address: { city: 'Wonderland', zip: 12346 } };
2101
+ * const result2 = ObjectUtils.absoluteCompare(objA, objC);
2102
+ * console.log(result2); // Output: false
2103
+ *
2104
+ * @param {object} objA - The first object to compare.
2105
+ * @param {object} objB - The second object to compare.
2106
+ * @param {number} [maxDepth=1] - The maximum depth to compare.
2107
+ * @param {number} [currentDepth=0] - The current depth (used internally for recursion).
2108
+ * @returns {boolean} True if the objects are equal within the specified depth, false otherwise.
2109
+ *
2110
+ */
2111
+ }, {
2112
+ key: "absoluteCompare",
2113
+ value: function absoluteCompare(objA, objB) {
2114
+ var maxDepth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
2115
+ var currentDepth = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
2116
+ if (!objA || !objB) return true;
2117
+ if (currentDepth > maxDepth) return true;
2118
+ if (_typeof(objA) !== _typeof(objB)) return false;
2119
+ var aKeys = Object.keys(objA);
2120
+ var bKeys = Object.keys(objB);
2121
+ if (aKeys.length !== bKeys.length) return false;
2122
+ for (var _i = 0, _aKeys = aKeys; _i < _aKeys.length; _i++) {
2123
+ var key = _aKeys[_i];
2124
+ var aValue = objA[key];
2125
+ var bValue = objB[key];
2126
+
2127
+ // Skip comparison if values are objects
2128
+ var isObject = ObjectUtils.isObject(aValue) && ObjectUtils.isObject(bValue);
2129
+ var isFunction = ObjectUtils.isFunction(aValue) && ObjectUtils.isFunction(bValue);
2130
+ if ((isObject || isFunction) && !this.absoluteCompare(aValue, bValue, maxDepth, currentDepth + 1)) return false;
2131
+ if (!isObject && aValue !== bValue) return false;
2132
+ }
2133
+ return true;
2134
+ }
2135
+
2136
+ /**
2137
+ * This helper function takes two objects and a list of keys to compare. It compares the values of the specified keys
2138
+ * in both objects. If any comparison fails, it returns false. If all specified properties are equal, it returns true.
2139
+ * It performs a shallow comparison using absoluteCompare if no keys are provided.
2140
+ *
2141
+ * Example:
2142
+ * const objA = { name: 'Alice', address: { city: 'Wonderland', zip: 12345 } };
2143
+ * const objB = { name: 'Alice', address: { city: 'Wonderland', zip: 12345 } };
2144
+ * const keysToCompare = ['name', 'address.city', 'address.zip'];
2145
+ * const result = ObjectUtils.selectiveCompare(objA, objB, keysToCompare);
2146
+ * console.log(result); // Output: true
2147
+ *
2148
+ * const objC = { name: 'Alice', address: { city: 'Wonderland', zip: 12346 } };
2149
+ * const result2 = ObjectUtils.selectiveCompare(objA, objC, keysToCompare);
2150
+ * console.log(result2); // Output: false
2151
+ *
2152
+ * @param {object} a - The first object to compare.
2153
+ * @param {object} b - The second object to compare.
2154
+ * @param {string[]} [keysToCompare] - The keys to compare. If not provided, performs a shallow comparison using absoluteCompare.
2155
+ * @returns {boolean} True if all specified properties are equal, false otherwise.
2156
+ */
2157
+ }, {
2158
+ key: "selectiveCompare",
2159
+ value: function selectiveCompare(a, b, keysToCompare) {
2160
+ if (a === b) return true;
2161
+ if (!a || !b || _typeof(a) !== 'object' || _typeof(b) !== 'object') return false;
2162
+ if (!keysToCompare) return this.absoluteCompare(a, b, 1); // If no keys are provided, the comparison is limited to one depth level.
2163
+ var _iterator2 = _createForOfIteratorHelper$g(keysToCompare),
2164
+ _step2;
2165
+ try {
2166
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
2167
+ var key = _step2.value;
2168
+ var aValue = this.getNestedValue(a, key);
2169
+ var bValue = this.getNestedValue(b, key);
2170
+ var isObject = _typeof(aValue) === 'object' && aValue !== null && _typeof(bValue) === 'object' && bValue !== null;
2171
+
2172
+ // If the current key is an object, they are compared in one further level only.
2173
+ if (isObject && !this.absoluteCompare(aValue, bValue, 1)) return false;
2174
+ if (!isObject && aValue !== bValue) return false;
2175
+ }
2176
+ } catch (err) {
2177
+ _iterator2.e(err);
2178
+ } finally {
2179
+ _iterator2.f();
2180
+ }
2181
+ return true;
2182
+ }
2065
2183
  }]);
2066
2184
  }();
2067
2185
 
@@ -4388,7 +4506,14 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
4388
4506
  }
4389
4507
  if (!listenerRef.current && targetRef.current) {
4390
4508
  var hideOnScroll = context ? context.hideOverlaysOnDocumentScrolling : PrimeReact.hideOverlaysOnDocumentScrolling;
4391
- var nodes = scrollableParentsRef.current = DomHandler.getScrollableParents(targetRef.current, hideOnScroll);
4509
+ var nodes = scrollableParentsRef.current = DomHandler.getScrollableParents(targetRef.current);
4510
+
4511
+ // Ensure window/body is always included as fallback
4512
+ if (!nodes.some(function (node) {
4513
+ return node === document.body || node === window;
4514
+ })) {
4515
+ nodes.push(hideOnScroll ? window : document.body);
4516
+ }
4392
4517
  listenerRef.current = function (event) {
4393
4518
  return listener && listener(event);
4394
4519
  };
@@ -4480,19 +4605,20 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
4480
4605
  type: 'outside',
4481
4606
  valid: event.which !== 3 && isOutsideClicked(event)
4482
4607
  });
4483
- }
4608
+ },
4609
+ when: when
4484
4610
  }),
4485
4611
  _useEventListener2 = _slicedToArray(_useEventListener, 2),
4486
4612
  bindDocumentClickListener = _useEventListener2[0],
4487
4613
  unbindDocumentClickListener = _useEventListener2[1];
4488
4614
  var _useResizeListener = useResizeListener({
4489
- target: 'window',
4490
4615
  listener: function listener(event) {
4491
4616
  _listener && _listener(event, {
4492
4617
  type: 'resize',
4493
4618
  valid: !DomHandler.isTouchDevice()
4494
4619
  });
4495
- }
4620
+ },
4621
+ when: when
4496
4622
  }),
4497
4623
  _useResizeListener2 = _slicedToArray(_useResizeListener, 2),
4498
4624
  bindWindowResizeListener = _useResizeListener2[0],
@@ -4505,7 +4631,8 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
4505
4631
  type: 'orientationchange',
4506
4632
  valid: true
4507
4633
  });
4508
- }
4634
+ },
4635
+ when: when
4509
4636
  }),
4510
4637
  _useEventListener4 = _slicedToArray(_useEventListener3, 2),
4511
4638
  bindWindowOrientationChangeListener = _useEventListener4[0],
@@ -4517,7 +4644,8 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
4517
4644
  type: 'scroll',
4518
4645
  valid: true
4519
4646
  });
4520
- }
4647
+ },
4648
+ when: when
4521
4649
  }),
4522
4650
  _useOverlayScrollList2 = _slicedToArray(_useOverlayScrollList, 2),
4523
4651
  bindOverlayScrollListener = _useOverlayScrollList2[0],
@@ -8132,7 +8260,15 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
8132
8260
  var type = _ref.type,
8133
8261
  valid = _ref.valid;
8134
8262
  if (valid) {
8135
- type === 'outside' ? !isInputClicked(event) && hide() : hide();
8263
+ if (type === 'outside') {
8264
+ if (!isInputClicked(event)) {
8265
+ hide();
8266
+ }
8267
+ } else if (context.hideOverlaysOnDocumentScrolling) {
8268
+ hide();
8269
+ } else if (!DomHandler.isDocument(event.target)) {
8270
+ alignOverlay();
8271
+ }
8136
8272
  }
8137
8273
  },
8138
8274
  when: overlayVisibleState
@@ -8308,6 +8444,9 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
8308
8444
  }
8309
8445
  };
8310
8446
  var removeItem = function removeItem(event, index) {
8447
+ if (props.disabled || props.readOnly) {
8448
+ return;
8449
+ }
8311
8450
  var removedValue = props.value[index];
8312
8451
  var newValue = props.value.filter(function (_, i) {
8313
8452
  return index !== i;
@@ -8750,6 +8889,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
8750
8889
  listId: listId,
8751
8890
  onItemClick: selectItem,
8752
8891
  selectedItem: selectedItem,
8892
+ onOverlayHide: hide,
8753
8893
  onClick: onPanelClick,
8754
8894
  getOptionGroupLabel: getOptionGroupLabel,
8755
8895
  getOptionGroupChildren: getOptionGroupChildren,
@@ -9271,7 +9411,8 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
9271
9411
  onClick: function onClick(event) {
9272
9412
  return itemClick(event, item);
9273
9413
  },
9274
- 'aria-disabled': item.disabled
9414
+ 'aria-disabled': item.disabled,
9415
+ tabIndex: item.disabled ? -1 : undefined
9275
9416
  }, ptm('action'));
9276
9417
  var content = /*#__PURE__*/React__namespace.createElement("a", actionProps, label);
9277
9418
  if (item.template) {
@@ -9676,7 +9817,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
9676
9817
  isUnstyled = _CalendarBase$setMeta.isUnstyled;
9677
9818
  useGlobalOnEscapeKey({
9678
9819
  callback: function callback() {
9679
- hide();
9820
+ hide(null, reFocusInputField);
9680
9821
  },
9681
9822
  when: overlayVisibleState && overlayDisplayOrder,
9682
9823
  priority: [ESC_KEY_HANDLING_PRIORITIES.OVERLAY_PANEL, overlayDisplayOrder]
@@ -9727,7 +9868,15 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
9727
9868
  var type = _ref.type,
9728
9869
  valid = _ref.valid;
9729
9870
  if (valid) {
9730
- type === 'outside' ? !isOverlayClicked.current && !isNavIconClicked(event.target) && hide('outside') : hide();
9871
+ if (type === 'outside') {
9872
+ if (!isOverlayClicked.current && !isNavIconClicked(event.target)) {
9873
+ hide('outside');
9874
+ }
9875
+ } else if (context.hideOverlaysOnDocumentScrolling) {
9876
+ hide();
9877
+ } else if (!DomHandler.isDocument(event.target)) {
9878
+ alignOverlay();
9879
+ }
9731
9880
  }
9732
9881
  isOverlayClicked.current = false;
9733
9882
  },
@@ -14581,8 +14730,15 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
14581
14730
  target: elementRef,
14582
14731
  overlay: overlayRef,
14583
14732
  listener: function listener(event, _ref) {
14584
- var valid = _ref.valid;
14585
- valid && hide();
14733
+ var valid = _ref.valid,
14734
+ type = _ref.type;
14735
+ if (valid) {
14736
+ if (context.hideOverlaysOnDocumentScrolling || type === 'outside') {
14737
+ hide();
14738
+ } else if (!DomHandler.isDocument(event.target)) {
14739
+ alignOverlay();
14740
+ }
14741
+ }
14586
14742
  },
14587
14743
  when: overlayVisibleState
14588
14744
  }),
@@ -15193,7 +15349,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
15193
15349
  return props.checked === props.trueValue;
15194
15350
  };
15195
15351
  var _onChange = function onChange(event) {
15196
- if (props.disabled || props.readonly) {
15352
+ if (props.disabled || props.readOnly) {
15197
15353
  return;
15198
15354
  }
15199
15355
  if (props.onChange) {
@@ -15377,6 +15533,10 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
15377
15533
  _React$useState2 = _slicedToArray(_React$useState, 2),
15378
15534
  visibleState = _React$useState2[0],
15379
15535
  setVisibleState = _React$useState2[1];
15536
+ var _React$useState3 = React__namespace.useState(props.id),
15537
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
15538
+ idState = _React$useState4[0],
15539
+ setIdState = _React$useState4[1];
15380
15540
  var _ChipBase$setMetaData = ChipBase.setMetaData({
15381
15541
  props: props
15382
15542
  }),
@@ -15394,6 +15554,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
15394
15554
  var close = function close(event) {
15395
15555
  var result = true;
15396
15556
  if (props.onRemove) {
15557
+ event.stopPropagation();
15397
15558
  result = props.onRemove({
15398
15559
  originalEvent: event,
15399
15560
  value: props.label || props.image || props.icon
@@ -15413,7 +15574,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
15413
15574
  onKeyDown: onKeyDown
15414
15575
  }, ptm('removeIcon'));
15415
15576
  var icon = props.removeIcon || /*#__PURE__*/React__namespace.createElement(TimesCircleIcon, _extends({}, removeIconProps, {
15416
- key: UniqueComponentId('removeIcon')
15577
+ key: "".concat(idState, "-removeIcon")
15417
15578
  }));
15418
15579
  if (props.image) {
15419
15580
  var imageProps = mergeProps({
@@ -15423,7 +15584,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
15423
15584
  content.push(/*#__PURE__*/React__namespace.createElement("img", _extends({
15424
15585
  alt: props.imageAlt
15425
15586
  }, imageProps, {
15426
- key: UniqueComponentId('image')
15587
+ key: "".concat(idState, "-image")
15427
15588
  })));
15428
15589
  } else if (props.icon) {
15429
15590
  var chipIconProps = mergeProps({
@@ -15474,6 +15635,14 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
15474
15635
  }
15475
15636
  };
15476
15637
  });
15638
+ useMountEffect(function () {
15639
+ if (!idState) {
15640
+ setIdState(UniqueComponentId());
15641
+ }
15642
+ });
15643
+ if (!idState) {
15644
+ return null;
15645
+ }
15477
15646
  return visibleState && createElement();
15478
15647
  }));
15479
15648
  Chip.displayName = 'Chip';
@@ -15582,7 +15751,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
15582
15751
  var listRef = React__namespace.useRef(null);
15583
15752
  var inputRef = React__namespace.useRef(props.inputRef);
15584
15753
  var removeItem = function removeItem(event, index) {
15585
- if (props.disabled && props.readOnly) {
15754
+ if (props.disabled || props.readOnly) {
15586
15755
  return;
15587
15756
  }
15588
15757
  var values = _toConsumableArray(props.value);
@@ -16115,8 +16284,15 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
16115
16284
  target: elementRef,
16116
16285
  overlay: overlayRef,
16117
16286
  listener: function listener(event, _ref) {
16118
- var valid = _ref.valid;
16119
- valid && hide();
16287
+ var valid = _ref.valid,
16288
+ type = _ref.type;
16289
+ if (valid) {
16290
+ if (context.hideOverlaysOnDocumentScrolling || type === 'outside') {
16291
+ hide();
16292
+ } else if (!DomHandler.isDocument(event.target)) {
16293
+ alignOverlay();
16294
+ }
16295
+ }
16120
16296
  },
16121
16297
  when: overlayVisibleState
16122
16298
  }),
@@ -17989,9 +18165,17 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
17989
18165
  var type = _ref.type,
17990
18166
  valid = _ref.valid;
17991
18167
  if (valid) {
17992
- type === 'outside' ? props.dismissable && !isPanelClicked.current && hide('hide') : hide('hide');
18168
+ if (type === 'outside') {
18169
+ if (props.dismissable && !isPanelClicked.current) {
18170
+ hide('hide');
18171
+ }
18172
+ isPanelClicked.current = false;
18173
+ } else if (context.hideOverlaysOnDocumentScrolling) {
18174
+ hide('hide');
18175
+ } else if (!DomHandler.isDocument(event.target)) {
18176
+ align();
18177
+ }
17993
18178
  }
17994
- isPanelClicked.current = false;
17995
18179
  },
17996
18180
  when: visibleState
17997
18181
  }),
@@ -20755,8 +20939,11 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
20755
20939
  newValueStr = insertText(inputValue, text, selectionStart, selectionEnd);
20756
20940
  updateValue(event, newValueStr, text, 'insert');
20757
20941
  } else if (decimalCharIndex === -1 && (maxFractionDigits || props.maxFractionDigits)) {
20758
- newValueStr = insertText(inputValue, text, selectionStart, selectionEnd);
20759
- updateValue(event, newValueStr, text, 'insert');
20942
+ var allowedDecimal = inputMode !== 'numeric' || inputMode === 'numeric' && (props.min || props.max);
20943
+ if (allowedDecimal) {
20944
+ newValueStr = insertText(inputValue, text, selectionStart, selectionEnd);
20945
+ updateValue(event, newValueStr, text, 'insert');
20946
+ }
20760
20947
  }
20761
20948
  } else {
20762
20949
  var operation = selectionStart !== selectionEnd ? 'range-insert' : 'insert';
@@ -22227,7 +22414,15 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
22227
22414
  var type = _ref.type,
22228
22415
  valid = _ref.valid;
22229
22416
  if (valid) {
22230
- type === 'outside' ? !isClearClicked(event) && hide() : hide();
22417
+ if (type === 'outside') {
22418
+ if (!isClearClicked(event)) {
22419
+ hide();
22420
+ }
22421
+ } else if (context.hideOverlaysOnDocumentScrolling) {
22422
+ hide();
22423
+ } else if (!DomHandler.isDocument(event.target)) {
22424
+ alignOverlay();
22425
+ }
22231
22426
  }
22232
22427
  },
22233
22428
  when: overlayVisibleState
@@ -22426,12 +22621,14 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
22426
22621
  case 'ArrowRight':
22427
22622
  onArrowLeftKey(event, true);
22428
22623
  break;
22429
- case 'Escape':
22430
22624
  case 'Enter':
22431
22625
  case 'NumpadEnter':
22432
22626
  onEnterKey(event);
22433
22627
  event.preventDefault();
22434
22628
  break;
22629
+ case 'Escape':
22630
+ onEscapeKey(event);
22631
+ break;
22435
22632
  }
22436
22633
  };
22437
22634
  var hasFocusableElements = function hasFocusableElements() {
@@ -23173,6 +23370,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
23173
23370
  "in": overlayVisibleState,
23174
23371
  isOptionDisabled: isOptionDisabled,
23175
23372
  isSelected: isSelected,
23373
+ onOverlayHide: hide,
23176
23374
  onClick: onPanelClick,
23177
23375
  onEnter: onOverlayEnter,
23178
23376
  onEntered: onOverlayEntered,
@@ -24052,7 +24250,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24052
24250
  onChange(event);
24053
24251
  };
24054
24252
  var onChange = function onChange(event) {
24055
- if (props.disabled || props.readonly) {
24253
+ if (props.disabled || props.readOnly) {
24056
24254
  return;
24057
24255
  }
24058
24256
  if (props.onChange) {
@@ -24155,7 +24353,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24155
24353
  onBlur: onBlur,
24156
24354
  onChange: onChange,
24157
24355
  disabled: props.disabled,
24158
- readOnly: props.readonly,
24356
+ readOnly: props.readOnly,
24159
24357
  required: props.required,
24160
24358
  tabIndex: props.tabIndex,
24161
24359
  className: cx('input')
@@ -24228,7 +24426,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24228
24426
 
24229
24427
  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
24428
  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) {
24429
+ var Cell = function Cell(props) {
24232
24430
  var mergeProps = useMergeProps();
24233
24431
  var _React$useState = React__namespace.useState(props.editing),
24234
24432
  _React$useState2 = _slicedToArray(_React$useState, 2),
@@ -24256,13 +24454,9 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24256
24454
  var getColumnProp = function getColumnProp(name) {
24257
24455
  return ColumnBase.getCProp(props.column, name);
24258
24456
  };
24259
- var getColumnProps = function getColumnProps() {
24260
- return ColumnBase.getCProps(props.column);
24261
- };
24262
24457
  var getColumnPTOptions = function getColumnPTOptions(key) {
24263
- var cProps = getColumnProps();
24264
24458
  var columnMetaData = {
24265
- props: cProps,
24459
+ props: props.cProps,
24266
24460
  parent: props.metaData,
24267
24461
  hostName: props.hostName,
24268
24462
  state: {
@@ -24278,10 +24472,8 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24278
24472
  };
24279
24473
  return mergeProps(ptm("column.".concat(key), {
24280
24474
  column: columnMetaData
24281
- }), ptm("column.".concat(key), columnMetaData), ptmo(cProps, key, columnMetaData));
24475
+ }), ptm("column.".concat(key), columnMetaData), ptmo(props.cProps, key, columnMetaData));
24282
24476
  };
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
24477
  var isEditable = function isEditable() {
24286
24478
  return ObjectUtils.isNotEmpty(props.editMode) && getColumnProp('editor');
24287
24479
  };
@@ -24306,34 +24498,22 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24306
24498
  _useEventListener2 = _slicedToArray(_useEventListener, 2),
24307
24499
  bindDocumentClickListener = _useEventListener2[0],
24308
24500
  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
24501
  var isOutsideClicked = function isOutsideClicked(target) {
24319
24502
  return elementRef.current && !(elementRef.current.isSameNode(target) || elementRef.current.contains(target));
24320
24503
  };
24321
- var getVirtualScrollerOption = function getVirtualScrollerOption(option) {
24322
- return props.virtualScrollerOptions ? props.virtualScrollerOptions[option] : null;
24323
- };
24324
24504
  var getStyle = function getStyle() {
24325
24505
  var bodyStyle = getColumnProp('bodyStyle');
24326
24506
  var columnStyle = getColumnProp('style');
24327
- return getColumnProp('frozen') ? Object.assign({}, columnStyle, bodyStyle, styleObjectState) : Object.assign({}, columnStyle, bodyStyle);
24507
+ return props.frozenCol ? Object.assign({}, columnStyle, bodyStyle, styleObjectState) : Object.assign({}, columnStyle, bodyStyle);
24328
24508
  };
24329
24509
  var getCellParams = function getCellParams() {
24330
24510
  return {
24331
- value: resolveFieldData(),
24332
- field: field,
24511
+ value: props.resolveFieldData(),
24512
+ field: props.field,
24333
24513
  rowData: props.rowData,
24334
24514
  rowIndex: props.rowIndex,
24335
24515
  cellIndex: props.index,
24336
- selected: isSelected(),
24516
+ selected: props.isCellSelected,
24337
24517
  column: props.column,
24338
24518
  props: props
24339
24519
  };
@@ -24344,20 +24524,6 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24344
24524
  originalEvent: event
24345
24525
  }, params);
24346
24526
  };
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
24527
  var closeCell = function closeCell(event) {
24362
24528
  var params = getCellCallbackParams(event);
24363
24529
  var onBeforeCellEditHide = getColumnProp('onBeforeCellEditHide');
@@ -24378,7 +24544,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24378
24544
  var switchCellToViewMode = function switchCellToViewMode(event, submit) {
24379
24545
  var callbackParams = getCellCallbackParams(event);
24380
24546
  var newRowData = _objectSpread$1i({}, editingRowDataStateRef.current);
24381
- var newValue = resolveFieldData(newRowData);
24547
+ var newValue = props.resolveFieldData(newRowData);
24382
24548
  var params = _objectSpread$1i(_objectSpread$1i({}, callbackParams), {}, {
24383
24549
  newRowData: newRowData,
24384
24550
  newValue: newValue
@@ -24403,128 +24569,20 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24403
24569
  }
24404
24570
  setEditingRowDataState(newRowData);
24405
24571
  };
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
24572
  var editorCallback = function editorCallback(val) {
24471
24573
  var editingRowData = _objectSpread$1i({}, editingRowDataState);
24472
- ObjectUtils.mutateFieldData(editingRowData, field, val);
24574
+ ObjectUtils.mutateFieldData(editingRowData, props.field, val);
24473
24575
  setEditingRowDataState(editingRowData);
24474
24576
 
24475
24577
  // update editing meta for complete methods on row mode
24476
- var currentData = getEditingRowData();
24578
+ var currentData = props.getEditingRowData();
24477
24579
  if (currentData) {
24478
- ObjectUtils.mutateFieldData(currentData, field, val);
24580
+ ObjectUtils.mutateFieldData(currentData, props.field, val);
24479
24581
  }
24480
24582
  editingRowDataStateRef.current = editingRowData;
24481
24583
  };
24482
24584
  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
- }
24585
+ props.onClick(event, getCellCallbackParams(event), isEditable(), editingState, setEditingState, selfClick, props.column, bindDocumentClickListener, overlayEventListener);
24528
24586
  };
24529
24587
  var _onMouseDown = function onMouseDown(event) {
24530
24588
  var params = getCellCallbackParams(event);
@@ -24548,7 +24606,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24548
24606
  cell = event.currentTarget;
24549
24607
  switch (event.code) {
24550
24608
  case 'ArrowLeft':
24551
- var prevCell = _findPrevSelectableCell(cell);
24609
+ var prevCell = props.findPrevSelectableCell(cell);
24552
24610
  if (prevCell) {
24553
24611
  changeTabIndex(cell, prevCell);
24554
24612
  prevCell.focus();
@@ -24556,7 +24614,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24556
24614
  event.preventDefault();
24557
24615
  break;
24558
24616
  case 'ArrowRight':
24559
- var nextCell = _findNextSelectableCell(cell);
24617
+ var nextCell = props.findNextSelectableCell(cell);
24560
24618
  if (nextCell) {
24561
24619
  changeTabIndex(cell, nextCell);
24562
24620
  nextCell.focus();
@@ -24564,7 +24622,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24564
24622
  event.preventDefault();
24565
24623
  break;
24566
24624
  case 'ArrowUp':
24567
- var upCell = _findUpSelectableCell(cell);
24625
+ var upCell = props.findUpSelectableCell(cell, index);
24568
24626
  if (upCell) {
24569
24627
  changeTabIndex(cell, upCell);
24570
24628
  upCell.focus();
@@ -24572,7 +24630,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24572
24630
  event.preventDefault();
24573
24631
  break;
24574
24632
  case 'ArrowDown':
24575
- var downCell = _findDownSelectableCell(cell);
24633
+ var downCell = props.findDownSelectableCell(cell, index);
24576
24634
  if (downCell) {
24577
24635
  changeTabIndex(cell, downCell);
24578
24636
  downCell.focus();
@@ -24611,13 +24669,6 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24611
24669
  index: props.rowIndex
24612
24670
  });
24613
24671
  };
24614
- var onCheckboxChange = function onCheckboxChange(event) {
24615
- props.onCheckboxChange({
24616
- originalEvent: event,
24617
- data: props.rowData,
24618
- index: props.rowIndex
24619
- });
24620
- };
24621
24672
  var onRowToggle = function onRowToggle(event) {
24622
24673
  props.onRowToggle({
24623
24674
  originalEvent: event,
@@ -24630,8 +24681,8 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24630
24681
  props.onRowEditInit({
24631
24682
  originalEvent: event,
24632
24683
  data: props.rowData,
24633
- newData: getEditingRowData(),
24634
- field: field,
24684
+ newData: props.getEditingRowData(),
24685
+ field: props.field,
24635
24686
  index: props.rowIndex
24636
24687
  });
24637
24688
  };
@@ -24639,32 +24690,26 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24639
24690
  props.onRowEditSave({
24640
24691
  originalEvent: event,
24641
24692
  data: props.rowData,
24642
- newData: getEditingRowData(),
24643
- field: field,
24693
+ newData: props.getEditingRowData(),
24694
+ field: props.field,
24644
24695
  index: props.rowIndex
24645
24696
  });
24646
- focusOnInit();
24697
+ props.focusOnInit(initFocusTimeout, elementRef);
24647
24698
  };
24648
24699
  var onRowEditCancel = function onRowEditCancel(event) {
24649
24700
  props.onRowEditCancel({
24650
24701
  originalEvent: event,
24651
24702
  data: props.rowData,
24652
- newData: getEditingRowData(),
24653
- field: field,
24703
+ newData: props.getEditingRowData(),
24704
+ field: props.field,
24654
24705
  index: props.rowIndex
24655
24706
  });
24656
- focusOnInit();
24707
+ props.focusOnInit();
24657
24708
  };
24658
24709
  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
24710
+ if (props.frozenCol) props.updateStickyPosition(elementRef, props.frozenCol, props.alignFrozenCol, styleObjectState, setStyleObjectState);
24711
+ if (props.editMode === 'cell' || props.editMode === 'row') props.focusOnElement(focusTimeout, editingState, elementRef, keyHelperRef);
24712
+ }, [props.editMode, props.editing, editingState, props.frozenCol, props.alignFrozenCol]); // eslint-disable-line react-hooks/exhaustive-deps
24668
24713
 
24669
24714
  React__namespace.useEffect(function () {
24670
24715
  if (props.editMode === 'row' && props.editing !== editingState) {
@@ -24673,7 +24718,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24673
24718
  }, [props.editMode, props.editing, editingState]);
24674
24719
  useUpdateEffect(function () {
24675
24720
  if (props.editMode === 'cell' || props.editMode === 'row') {
24676
- var editingRowData = getEditingRowData();
24721
+ var editingRowData = props.getEditingRowData();
24677
24722
  setEditingRowDataState(editingRowData);
24678
24723
  editingRowDataStateRef.current = editingRowData;
24679
24724
  }
@@ -24683,7 +24728,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24683
24728
  var callbackParams = getCellCallbackParams();
24684
24729
  var params = _objectSpread$1i(_objectSpread$1i({}, callbackParams), {}, {
24685
24730
  editing: editingState,
24686
- editingKey: editingKey
24731
+ editingKey: props.editingKey
24687
24732
  });
24688
24733
  props.onEditingMetaChange(params);
24689
24734
  }
@@ -24696,16 +24741,16 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24696
24741
  }
24697
24742
  });
24698
24743
  var createLoading = function createLoading() {
24699
- var options = getVirtualScrollerOption('getLoaderOptions')(props.rowIndex, {
24744
+ var options = props.getVirtualScrollerOption('getLoaderOptions')(props.rowIndex, {
24700
24745
  cellIndex: props.index,
24701
24746
  cellFirst: props.index === 0,
24702
- cellLast: props.index === getVirtualScrollerOption('columns').length - 1,
24747
+ cellLast: props.index === props.getVirtualScrollerOption('columns').length - 1,
24703
24748
  cellEven: props.index % 2 === 0,
24704
24749
  cellOdd: props.index % 2 !== 0,
24705
24750
  column: props.column,
24706
- field: field
24751
+ field: props.field
24707
24752
  });
24708
- var content = ObjectUtils.getJSXElement(getVirtualScrollerOption('loadingTemplate'), options);
24753
+ var content = ObjectUtils.getJSXElement(props.getVirtualScrollerOption('loadingTemplate'), options);
24709
24754
  var bodyCellProps = mergeProps(getColumnPTOptions('bodyCell'), {
24710
24755
  role: 'cell'
24711
24756
  });
@@ -24714,20 +24759,20 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24714
24759
  var createElement = function createElement() {
24715
24760
  var content;
24716
24761
  var editorKeyHelper;
24717
- var cellSelected = props.allowCellSelection && isSelected();
24762
+ var cellSelected = props.allowCellSelection && props.isCellSelected;
24718
24763
  var isRowEditor = props.editMode === 'row';
24719
- var tabIndex = getTabIndex(cellSelected);
24764
+ var tabIndex = props.getTabIndex(cellSelected, props.index);
24720
24765
  var selectionMode = getColumnProp('selectionMode');
24721
24766
  var rowReorder = getColumnProp('rowReorder');
24722
24767
  var header = getColumnProp('header');
24723
24768
  var body = getColumnProp('body');
24724
24769
  var editor = getColumnProp('editor');
24725
- var frozen = getColumnProp('frozen');
24770
+ var frozen = props.frozenCol;
24726
24771
  var align = getColumnProp('align');
24727
- var value = resolveFieldData();
24772
+ var value = props.resolveFieldData();
24728
24773
  var columnBodyOptions = {
24729
24774
  column: props.column,
24730
- field: field,
24775
+ field: props.field,
24731
24776
  rowIndex: props.rowIndex,
24732
24777
  frozenRow: props.frozenRow,
24733
24778
  props: props.tableProps
@@ -24752,12 +24797,12 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24752
24797
  if (showSelection) {
24753
24798
  var ariaLabelField = props.selectionAriaLabel || props.tableProps.dataKey;
24754
24799
  var ariaLabelText = ObjectUtils.resolveFieldData(props.rowData, ariaLabelField);
24755
- label = "".concat(props.selected ? ariaLabel('unselectRow') : ariaLabel('selectRow'), " ").concat(ariaLabelText);
24800
+ label = "".concat(props.isRowSelected ? ariaLabel('unselectRow') : ariaLabel('selectRow'), " ").concat(ariaLabelText);
24756
24801
  }
24757
24802
  content = showSelection && /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, selectionMode === 'single' && /*#__PURE__*/React__namespace.createElement(RowRadioButton, {
24758
24803
  hostName: props.hostName,
24759
24804
  column: props.column,
24760
- checked: props.selected,
24805
+ checked: props.isRowSelected,
24761
24806
  disabled: !props.isSelectable({
24762
24807
  data: props.rowData,
24763
24808
  index: props.rowIndex
@@ -24772,12 +24817,12 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24772
24817
  }), selectionMode === 'multiple' && /*#__PURE__*/React__namespace.createElement(RowCheckbox, {
24773
24818
  hostName: props.hostName,
24774
24819
  column: props.column,
24775
- checked: props.selected,
24820
+ checked: props.isRowSelected,
24776
24821
  disabled: !props.isSelectable({
24777
24822
  data: props.rowData,
24778
24823
  index: props.rowIndex
24779
24824
  }),
24780
- onChange: onCheckboxChange,
24825
+ onChange: props.onCheckboxChange,
24781
24826
  tabIndex: props.tabIndex,
24782
24827
  ariaLabel: label,
24783
24828
  checkIcon: props.checkIcon,
@@ -24827,7 +24872,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24827
24872
  expanderProps.element = content;
24828
24873
  content = ObjectUtils.getJSXElement(body, props.rowData, {
24829
24874
  column: props.column,
24830
- field: field,
24875
+ field: props.field,
24831
24876
  rowIndex: props.rowIndex,
24832
24877
  frozenRow: props.frozenRow,
24833
24878
  props: props.tableProps,
@@ -24901,7 +24946,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24901
24946
  rowEditorProps.element = content;
24902
24947
  content = ObjectUtils.getJSXElement(body, props.rowData, {
24903
24948
  column: props.column,
24904
- field: field,
24949
+ field: props.field,
24905
24950
  rowIndex: props.rowIndex,
24906
24951
  frozenRow: props.frozenRow,
24907
24952
  props: props.tableProps,
@@ -24911,7 +24956,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24911
24956
  } else if (body && (!editingState || !editor)) {
24912
24957
  content = body ? ObjectUtils.getJSXElement(body, props.rowData, {
24913
24958
  column: props.column,
24914
- field: field,
24959
+ field: props.field,
24915
24960
  rowIndex: props.rowIndex,
24916
24961
  frozenRow: props.frozenRow,
24917
24962
  props: props.tableProps
@@ -24919,9 +24964,9 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24919
24964
  } else if (editor && editingState) {
24920
24965
  content = ObjectUtils.getJSXElement(editor, {
24921
24966
  rowData: editingRowDataState,
24922
- value: resolveFieldData(editingRowDataState),
24967
+ value: props.resolveFieldData(editingRowDataState),
24923
24968
  column: props.column,
24924
- field: field,
24969
+ field: props.field,
24925
24970
  rowIndex: props.rowIndex,
24926
24971
  frozenRow: props.frozenRow,
24927
24972
  props: props.tableProps,
@@ -24989,7 +25034,22 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
24989
25034
  ref: elementRef
24990
25035
  }, bodyCellProps), editorKeyHelper, title, content);
24991
25036
  };
24992
- return getVirtualScrollerOption('loading') ? createLoading() : createElement();
25037
+ return props.getVirtualScrollerOption('loading') ? createLoading() : createElement();
25038
+ };
25039
+
25040
+ // RadioCheckCell is used for the Radio and Checkbox selection and has the isRowSelected dependency
25041
+ var RadioCheckCell = /*#__PURE__*/React__namespace.memo(function (props) {
25042
+ return /*#__PURE__*/React__namespace.createElement(Cell, props);
25043
+ }, function (prevProps, nextProps) {
25044
+ var keysToCompare = ['isRowSelected', 'field', 'allowCellSelection', 'isCellSelected', 'editMode', 'index', 'tabIndex', 'editing', 'expanded', 'editingMeta', 'rowData'];
25045
+ return ObjectUtils.selectiveCompare(prevProps, nextProps, keysToCompare);
25046
+ });
25047
+ RadioCheckCell.displayName = 'RadioCheckCell';
25048
+ var BodyCell = /*#__PURE__*/React__namespace.memo(function (props) {
25049
+ return /*#__PURE__*/React__namespace.createElement(Cell, props);
25050
+ }, function (prevProps, nextProps) {
25051
+ var keysToCompare = ['field', 'allowCellSelection', 'isCellSelected', 'editMode', 'index', 'tabIndex', 'editing', 'expanded', 'editingMeta', 'rowData', 'frozenCol', 'alignFrozenCol'];
25052
+ return ObjectUtils.selectiveCompare(prevProps, nextProps, keysToCompare);
24993
25053
  });
24994
25054
  BodyCell.displayName = 'BodyCell';
24995
25055
 
@@ -25005,6 +25065,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
25005
25065
  var _props$ptCallbacks = props.ptCallbacks,
25006
25066
  ptm = _props$ptCallbacks.ptm,
25007
25067
  cx = _props$ptCallbacks.cx;
25068
+ var isRowSelected = !props.allowCellSelection && props.selected || props.contextMenuSelected;
25008
25069
  var getBodyRowPTOptions = function getBodyRowPTOptions(key) {
25009
25070
  return ptm(key, {
25010
25071
  parent: props.metaData,
@@ -25018,7 +25079,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
25018
25079
  data: props.rowData,
25019
25080
  index: props.rowIndex
25020
25081
  }),
25021
- selected: !props.allowCellSelection && props.selected || props.contextMenuSelected,
25082
+ selected: isRowSelected,
25022
25083
  stripedRows: props.metaData.props.stripedRows
25023
25084
  }
25024
25085
  });
@@ -25047,10 +25108,10 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
25047
25108
  return equals(rowData, data);
25048
25109
  });
25049
25110
  };
25050
- var changeTabIndex = function changeTabIndex(currentRow, nextRow) {
25051
- if (currentRow && nextRow) {
25052
- currentRow.tabIndex = -1;
25053
- nextRow.tabIndex = props.tabIndex;
25111
+ var changeTabIndex = function changeTabIndex(currentElement, nextElement) {
25112
+ if (currentElement && nextElement) {
25113
+ currentElement.tabIndex = -1;
25114
+ nextElement.tabIndex = props.tabIndex;
25054
25115
  }
25055
25116
  };
25056
25117
  var findFirstSelectableRow = function findFirstSelectableRow(row) {
@@ -25377,32 +25438,176 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
25377
25438
  onEditChange(e, false);
25378
25439
  event.preventDefault();
25379
25440
  };
25441
+ var equalsDataCell = function equalsDataCell(data) {
25442
+ return props.compareSelectionBy === 'equals' ? data === props.rowData : ObjectUtils.equals(data, props.rowData, props.dataKey);
25443
+ };
25444
+ var equalsCell = function equalsCell(selectedCell, field, colIndex) {
25445
+ return selectedCell && (selectedCell.rowIndex === props.rowIndex || equalsDataCell(selectedCell.rowData)) && (selectedCell.field === field || selectedCell.cellIndex === colIndex);
25446
+ };
25447
+ var findIndexCell = function findIndexCell(collection, field, colIndex) {
25448
+ return (collection || []).findIndex(function (data) {
25449
+ return equalsCell(data, field, colIndex);
25450
+ });
25451
+ };
25452
+ var isCellSelected = function isCellSelected(selection, field, colIndex) {
25453
+ return selection ? selection instanceof Array ? findIndexCell(selection, field, colIndex) > -1 : equalsCell(selection, field, colIndex) : false;
25454
+ };
25455
+ var onCheckboxChange = function onCheckboxChange(event) {
25456
+ props.onCheckboxChange({
25457
+ originalEvent: event,
25458
+ data: props.rowData,
25459
+ index: props.rowIndex
25460
+ });
25461
+ };
25462
+ var editingKey = props.dataKey ? props.rowData && props.rowData[props.dataKey] || props.rowIndex : props.rowIndex;
25463
+ var getVirtualScrollerOption = React__namespace.useCallback(function (option) {
25464
+ return props.virtualScrollerOptions ? props.virtualScrollerOptions[option] : null;
25465
+ }, [props.virtualScrollerOptions]);
25466
+ var getEditingRowData = function getEditingRowData() {
25467
+ return props.editingMeta && props.editingMeta[editingKey] ? props.editingMeta[editingKey].data : props.rowData;
25468
+ };
25469
+ var getTabIndexCell = React__namespace.useCallback(function (cellSelected, cellIndex) {
25470
+ return props.allowCellSelection ? cellSelected ? 0 : props.rowIndex === 0 && cellIndex === 0 ? props.tabIndex : -1 : null;
25471
+ }, [props.allowCellSelection, props.rowIndex, props.tabIndex]);
25472
+ var findNextSelectableCell = React__namespace.useCallback(function (cell) {
25473
+ var nextCell = cell.nextElementSibling;
25474
+ return nextCell ? DomHandler.getAttribute(nextCell, 'data-p-selectable-cell') ? nextCell : findNextSelectableCell(nextCell) : null;
25475
+ }, []);
25476
+ var findPrevSelectableCell = React__namespace.useCallback(function (cell) {
25477
+ var prevCell = cell.previousElementSibling;
25478
+ return prevCell ? DomHandler.getAttribute(prevCell, 'data-p-selectable-cell') ? prevCell : findPrevSelectableCell(prevCell) : null;
25479
+ }, []);
25480
+ var findDownSelectableCell = React__namespace.useCallback(function (cell, cellIndex) {
25481
+ var downRow = cell.parentElement.nextElementSibling;
25482
+ var downCell = downRow ? downRow.children[cellIndex] : null;
25483
+ return downRow && downCell ? DomHandler.getAttribute(downRow, 'data-p-selectable-row') && DomHandler.getAttribute(downCell, 'data-p-selectable-cell') ? downCell : findDownSelectableCell(downCell) : null;
25484
+ }, []);
25485
+ var findUpSelectableCell = React__namespace.useCallback(function (cell, cellIndex) {
25486
+ var upRow = cell.parentElement.previousElementSibling;
25487
+ var upCell = upRow ? upRow.children[cellIndex] : null;
25488
+ return upRow && upCell ? DomHandler.getAttribute(upRow, 'data-p-selectable-row') && DomHandler.getAttribute(upCell, 'data-p-selectable-cell') ? upCell : findUpSelectableCell(upCell) : null;
25489
+ }, []);
25490
+ var focusOnElement = React__namespace.useCallback(function (focusTimeoutRef, editingState, elementRef, keyHelperRef) {
25491
+ clearTimeout(focusTimeoutRef.current);
25492
+ focusTimeoutRef.current = setTimeout(function () {
25493
+ if (editingState) {
25494
+ var focusableEl = props.editMode === 'cell' ? DomHandler.getFirstFocusableElement(elementRef.current, ':not([data-pc-section="editorkeyhelperlabel"])') : DomHandler.findSingle(elementRef.current, '[data-p-row-editor-save="true"]');
25495
+ focusableEl && focusableEl.focus();
25496
+ }
25497
+ keyHelperRef.current && (keyHelperRef.current.tabIndex = editingState ? -1 : 0);
25498
+ }, 1);
25499
+ }, [props.editMode]);
25500
+ var focusOnInit = React__namespace.useCallback(function (initFocusTimeoutRef, elementRef) {
25501
+ clearTimeout(initFocusTimeoutRef.current);
25502
+ initFocusTimeoutRef.current = setTimeout(function () {
25503
+ var focusableEl = props.editMode === 'row' ? DomHandler.findSingle(elementRef.current, '[data-p-row-editor-init="true"]') : null;
25504
+ focusableEl && focusableEl.focus();
25505
+ }, 1);
25506
+ }, [props.editMode]);
25507
+ var updateStickyPosition = React__namespace.useCallback(function (elementRef, frozen, alignFrozen, styleObjectState, setStyleObjectState) {
25508
+ if (frozen) {
25509
+ var styleObject = _objectSpread$1h({}, styleObjectState);
25510
+ if (alignFrozen === 'right') {
25511
+ var right = 0;
25512
+ var next = elementRef.current && elementRef.current.nextElementSibling;
25513
+ if (next && next.classList.contains('p-frozen-column')) {
25514
+ right = DomHandler.getOuterWidth(next) + parseFloat(next.style.right || 0);
25515
+ }
25516
+ styleObject.right = right + 'px';
25517
+ } else {
25518
+ var left = 0;
25519
+ var prev = elementRef.current && elementRef.current.previousElementSibling;
25520
+ if (prev && prev.classList.contains('p-frozen-column')) {
25521
+ left = DomHandler.getOuterWidth(prev) + parseFloat(prev.style.left || 0);
25522
+ }
25523
+ styleObject.left = left + 'px';
25524
+ }
25525
+ var isSameStyle = styleObjectState.left === styleObject.left && styleObjectState.right === styleObject.right;
25526
+ !isSameStyle && setStyleObjectState(styleObject);
25527
+ }
25528
+ }, []);
25529
+ var onCellClick = function onCellClick(event, params, isEditable, editingState, setEditingState, selfClick, column, bindDocumentClickListener, overlayEventListener) {
25530
+ if (props.editMode !== 'row' && isEditable && !editingState && (props.selectOnEdit || !props.selectOnEdit && props.isRowSelected)) {
25531
+ selfClick.current = true;
25532
+ var onBeforeCellEditShow = getColumnProp(column, 'onBeforeCellEditShow');
25533
+ var onCellEditInit = getColumnProp(column, 'onCellEditInit');
25534
+ var cellEditValidatorEvent = getColumnProp(column, 'cellEditValidatorEvent');
25535
+ if (onBeforeCellEditShow) {
25536
+ // if user returns false do not show the editor
25537
+ if (onBeforeCellEditShow(params) === false) {
25538
+ return;
25539
+ }
25540
+
25541
+ // if user prevents default stop the editor
25542
+ if (event && event.defaultPrevented) {
25543
+ return;
25544
+ }
25545
+ }
25546
+
25547
+ // 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.
25548
+ setTimeout(function () {
25549
+ setEditingState(true);
25550
+ if (onCellEditInit) {
25551
+ if (onCellEditInit(params) === false) {
25552
+ return;
25553
+ }
25554
+
25555
+ // if user prevents default stop the editor
25556
+ if (event && event.defaultPrevented) {
25557
+ return;
25558
+ }
25559
+ }
25560
+ if (cellEditValidatorEvent === 'click') {
25561
+ bindDocumentClickListener();
25562
+ overlayEventListener.current = function (e) {
25563
+ if (!isOutsideClicked(e.target)) {
25564
+ selfClick.current = true;
25565
+ }
25566
+ };
25567
+ OverlayService.on('overlay-click', overlayEventListener.current);
25568
+ }
25569
+ }, 1);
25570
+ }
25571
+ if (props.allowCellSelection && props.onCellClick) {
25572
+ props.onCellClick(params);
25573
+ }
25574
+ };
25380
25575
  var createContent = function createContent() {
25381
25576
  return props.columns.map(function (col, i) {
25382
25577
  if (shouldRenderBodyCell(props.value, col, props.index)) {
25383
25578
  var key = "".concat(props.rowIndex, "_").concat(getColumnProp(col, 'columnKey') || getColumnProp(col, 'field'), "_").concat(i);
25384
25579
  var rowSpan = props.rowGroupMode === 'rowspan' ? calculateRowGroupSize(props.value, col, props.index) : null;
25385
- return /*#__PURE__*/React__namespace.createElement(BodyCell, {
25580
+ var field = getColumnProp(col, 'field') || "field_".concat(i);
25581
+ var resolveFieldData = function resolveFieldData(data) {
25582
+ return ObjectUtils.resolveFieldData(data || props.rowData, field);
25583
+ };
25584
+ var selectionMode = getColumnProp(col, 'selectionMode');
25585
+ var cellProps = mergeProps({
25386
25586
  hostName: props.hostName,
25387
- key: key,
25388
25587
  allowCellSelection: props.allowCellSelection,
25389
25588
  cellClassName: props.cellClassName,
25390
25589
  checkIcon: props.checkIcon,
25391
25590
  collapsedRowIcon: props.collapsedRowIcon,
25591
+ field: field,
25592
+ resolveFieldData: resolveFieldData,
25392
25593
  column: col,
25393
- compareSelectionBy: props.compareSelectionBy,
25594
+ cProps: props.colsProps[i],
25394
25595
  dataKey: props.dataKey,
25395
25596
  editMode: props.editMode,
25396
25597
  editing: editing,
25397
25598
  editingMeta: props.editingMeta,
25599
+ onEditingMetaChange: props.onEditingMetaChange,
25600
+ editingKey: editingKey,
25601
+ getEditingRowData: getEditingRowData,
25398
25602
  expanded: props.expanded,
25399
25603
  expandedRowIcon: props.expandedRowIcon,
25400
25604
  frozenRow: props.frozenRow,
25605
+ frozenCol: getColumnProp(col, 'frozen'),
25606
+ alignFrozenCol: getColumnProp(col, 'alignFrozen'),
25401
25607
  index: i,
25402
25608
  isSelectable: props.isSelectable,
25403
- onCheckboxChange: props.onCheckboxChange,
25404
- onClick: props.onCellClick,
25405
- onEditingMetaChange: props.onEditingMetaChange,
25609
+ onCheckboxChange: onCheckboxChange,
25610
+ onClick: onCellClick,
25406
25611
  onMouseDown: props.onCellMouseDown,
25407
25612
  onMouseUp: props.onCellMouseUp,
25408
25613
  onRadioChange: props.onRadioChange,
@@ -25418,20 +25623,31 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
25418
25623
  rowIndex: props.rowIndex,
25419
25624
  rowSpan: rowSpan,
25420
25625
  selectOnEdit: props.selectOnEdit,
25421
- selected: props.selected,
25422
- selection: props.selection,
25626
+ isRowSelected: isRowSelected,
25627
+ isCellSelected: isCellSelected(props.selection, field, i),
25423
25628
  selectionAriaLabel: props.tableProps.selectionAriaLabel,
25424
25629
  showRowReorderElement: props.showRowReorderElement,
25425
25630
  showSelectionElement: props.showSelectionElement,
25426
25631
  tabIndex: props.tabIndex,
25632
+ getTabIndex: getTabIndexCell,
25427
25633
  tableProps: props.tableProps,
25428
25634
  tableSelector: props.tableSelector,
25429
25635
  value: props.value,
25430
- virtualScrollerOptions: props.virtualScrollerOptions,
25636
+ getVirtualScrollerOption: getVirtualScrollerOption,
25431
25637
  ptCallbacks: props.ptCallbacks,
25432
25638
  metaData: props.metaData,
25433
- unstyled: props.unstyled
25639
+ unstyled: props.unstyled,
25640
+ findNextSelectableCell: findNextSelectableCell,
25641
+ findPrevSelectableCell: findPrevSelectableCell,
25642
+ findDownSelectableCell: findDownSelectableCell,
25643
+ findUpSelectableCell: findUpSelectableCell,
25644
+ focusOnElement: focusOnElement,
25645
+ focusOnInit: focusOnInit,
25646
+ updateStickyPosition: updateStickyPosition
25434
25647
  });
25648
+ return /*#__PURE__*/React__namespace.createElement(React.Fragment, {
25649
+ key: key
25650
+ }, selectionMode ? /*#__PURE__*/React__namespace.createElement(RadioCheckCell, cellProps) : /*#__PURE__*/React__namespace.createElement(BodyCell, cellProps));
25435
25651
  }
25436
25652
  return null;
25437
25653
  });
@@ -25581,8 +25797,11 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
25581
25797
  var getColumnProps = function getColumnProps(column) {
25582
25798
  return ColumnBase.getCProps(column);
25583
25799
  };
25800
+ var cProps = getColumnProps(props.column);
25801
+ var colsProps = props.columns ? props.columns.map(function (col) {
25802
+ return getColumnProps(col);
25803
+ }) : [];
25584
25804
  var getColumnPTOptions = function getColumnPTOptions(key) {
25585
- var cProps = getColumnProps(props.column);
25586
25805
  var columnMetaData = {
25587
25806
  props: cProps,
25588
25807
  parent: props.metaData,
@@ -25707,8 +25926,12 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
25707
25926
  var allowSelection = function allowSelection(event) {
25708
25927
  return !DomHandler.isClickable(event.originalEvent.target);
25709
25928
  };
25929
+ var metaKeySelectionRef = React__namespace.useRef(props.metaKeySelection);
25930
+ React__namespace.useEffect(function () {
25931
+ metaKeySelectionRef.current = props.metaKeySelection;
25932
+ }, [props.metaKeySelection]);
25710
25933
  var allowMetaKeySelection = function allowMetaKeySelection(event) {
25711
- return !rowTouched.current && (!props.metaKeySelection || props.metaKeySelection && (event.originalEvent.metaKey || event.originalEvent.ctrlKey));
25934
+ return !rowTouched.current && (!metaKeySelectionRef.current || metaKeySelectionRef.current && (event.originalEvent.metaKey || event.originalEvent.ctrlKey));
25712
25935
  };
25713
25936
  var allowRangeSelection = function allowRangeSelection(event) {
25714
25937
  return isMultipleSelection() && event.originalEvent.shiftKey && anchorRowIndex.current !== null;
@@ -25781,6 +26004,10 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
25781
26004
  });
25782
26005
  }
25783
26006
  };
26007
+ var selectionRef = React__namespace.useRef(props.selection);
26008
+ React__namespace.useEffect(function () {
26009
+ selectionRef.current = props.selection;
26010
+ }, [props.selection]);
25784
26011
  var onSingleSelection = function onSingleSelection(_ref) {
25785
26012
  var originalEvent = _ref.originalEvent,
25786
26013
  data = _ref.data,
@@ -25794,10 +26021,11 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
25794
26021
  return;
25795
26022
  }
25796
26023
  var selected = isSelected(data);
25797
- var selection = props.selection;
26024
+ var currentSelection = selectionRef.current || [];
26025
+ var newSelection = currentSelection;
25798
26026
  if (selected) {
25799
26027
  if (toggleable) {
25800
- selection = null;
26028
+ newSelection = null;
25801
26029
  onUnselect({
25802
26030
  originalEvent: originalEvent,
25803
26031
  data: data,
@@ -25805,7 +26033,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
25805
26033
  });
25806
26034
  }
25807
26035
  } else {
25808
- selection = data;
26036
+ newSelection = data;
25809
26037
  onSelect({
25810
26038
  originalEvent: originalEvent,
25811
26039
  data: data,
@@ -25813,10 +26041,10 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
25813
26041
  });
25814
26042
  }
25815
26043
  focusOnElement(originalEvent, true);
25816
- if (props.onSelectionChange && selection !== props.selection) {
26044
+ if (props.onSelectionChange && newSelection !== currentSelection) {
25817
26045
  props.onSelectionChange({
25818
26046
  originalEvent: originalEvent,
25819
- value: selection,
26047
+ value: newSelection,
25820
26048
  type: type
25821
26049
  });
25822
26050
  }
@@ -25834,11 +26062,12 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
25834
26062
  return;
25835
26063
  }
25836
26064
  var selected = isSelected(data);
25837
- var selection = props.selection || [];
26065
+ var currentSelection = selectionRef.current || [];
26066
+ var newSelection = currentSelection;
25838
26067
  if (selected) {
25839
26068
  if (toggleable) {
25840
- var selectionIndex = findIndex(selection, data);
25841
- selection = props.selection.filter(function (val, i) {
26069
+ var selectionIndex = findIndex(currentSelection, data);
26070
+ newSelection = currentSelection.filter(function (val, i) {
25842
26071
  return i !== selectionIndex;
25843
26072
  });
25844
26073
  onUnselect({
@@ -25846,15 +26075,15 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
25846
26075
  data: data,
25847
26076
  type: type
25848
26077
  });
25849
- } else if (selection.length) {
25850
- props.selection.forEach(function (d) {
26078
+ } else if (currentSelection.length) {
26079
+ currentSelection.forEach(function (d) {
25851
26080
  return onUnselect({
25852
26081
  originalEvent: originalEvent,
25853
26082
  data: d,
25854
26083
  type: type
25855
26084
  });
25856
26085
  });
25857
- selection = [data];
26086
+ newSelection = [data];
25858
26087
  onSelect({
25859
26088
  originalEvent: originalEvent,
25860
26089
  data: data,
@@ -25862,18 +26091,18 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
25862
26091
  });
25863
26092
  }
25864
26093
  } else {
25865
- selection = ObjectUtils.isObject(selection) ? [selection] : selection;
25866
- selection = toggleable && isMultipleSelection() ? [].concat(_toConsumableArray(selection), [data]) : [data];
26094
+ newSelection = ObjectUtils.isObject(currentSelection) ? [currentSelection] : currentSelection;
26095
+ newSelection = toggleable && isMultipleSelection() ? [].concat(_toConsumableArray(newSelection), [data]) : [data];
25867
26096
  onSelect({
25868
26097
  originalEvent: originalEvent,
25869
26098
  data: data,
25870
26099
  type: type
25871
26100
  });
25872
26101
  }
25873
- if (props.onSelectionChange && selection !== props.selection) {
26102
+ if (props.onSelectionChange && newSelection !== currentSelection) {
25874
26103
  props.onSelectionChange({
25875
26104
  originalEvent: originalEvent,
25876
- value: selection,
26105
+ value: newSelection,
25877
26106
  type: type
25878
26107
  });
25879
26108
  }
@@ -26475,6 +26704,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
26475
26704
  checkIcon: props.checkIcon,
26476
26705
  collapsedRowIcon: props.collapsedRowIcon,
26477
26706
  columns: props.columns,
26707
+ colsProps: colsProps,
26478
26708
  compareSelectionBy: props.compareSelectionBy,
26479
26709
  contextMenuSelected: contextMenuSelected,
26480
26710
  dataKey: props.dataKey,
@@ -26954,9 +27184,17 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
26954
27184
  var type = _ref.type,
26955
27185
  valid = _ref.valid;
26956
27186
  if (valid) {
26957
- type === 'outside' ? !selfClick.current && !isTargetClicked(event.target) && hide() : hide();
27187
+ if (type === 'outside') {
27188
+ if (!selfClick.current && !isTargetClicked(event.target)) {
27189
+ hide();
27190
+ }
27191
+ selfClick.current = false;
27192
+ } else if (context.hideOverlaysOnDocumentScrolling) {
27193
+ hide();
27194
+ } else if (!DomHandler.isDocument(event.target)) {
27195
+ DomHandler.alignOverlay(overlayRef.current, iconRef.current, context && context.appendTo || PrimeReact.appendTo, false);
27196
+ }
26958
27197
  }
26959
- selfClick.current = false;
26960
27198
  },
26961
27199
  when: overlayVisibleState
26962
27200
  }),
@@ -35639,7 +35877,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
35639
35877
  var updateValue = function updateValue(allow) {
35640
35878
  var pos;
35641
35879
  if (elementRef.current) {
35642
- if (props.value == null) {
35880
+ if (ObjectUtils.isEmpty(props.value)) {
35643
35881
  elementRef.current.value = '';
35644
35882
  } else {
35645
35883
  elementRef.current.value = props.value;
@@ -38750,13 +38988,6 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
38750
38988
  inputRef: null,
38751
38989
  inputStyle: null,
38752
38990
  itemTemplate: null,
38753
- panelClassName: null,
38754
- panelStyle: null,
38755
- scrollHeight: '200px',
38756
- style: null,
38757
- suggestions: null,
38758
- transitionOptions: null,
38759
- trigger: '@',
38760
38991
  onBlur: null,
38761
38992
  onChange: null,
38762
38993
  onFocus: null,
@@ -38765,6 +38996,14 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
38765
38996
  onSearch: null,
38766
38997
  onSelect: null,
38767
38998
  onShow: null,
38999
+ panelClassName: null,
39000
+ panelStyle: null,
39001
+ scrollHeight: '200px',
39002
+ style: null,
39003
+ suggestions: null,
39004
+ transitionOptions: null,
39005
+ trigger: '@',
39006
+ variant: null,
38768
39007
  children: undefined
38769
39008
  },
38770
39009
  css: {
@@ -38833,8 +39072,15 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
38833
39072
  target: elementRef,
38834
39073
  overlay: overlayRef,
38835
39074
  listener: function listener(event, _ref) {
38836
- var valid = _ref.valid;
38837
- valid && hide();
39075
+ var valid = _ref.valid,
39076
+ type = _ref.type;
39077
+ if (valid) {
39078
+ if (context.hideOverlaysOnDocumentScrolling || type === 'outside') {
39079
+ hide();
39080
+ } else if (!DomHandler.isDocument(event.target)) {
39081
+ alignOverlay();
39082
+ }
39083
+ }
38838
39084
  },
38839
39085
  when: overlayVisibleState
38840
39086
  }),
@@ -39237,6 +39483,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
39237
39483
  style: props.inputStyle
39238
39484
  }, inputProps), {}, {
39239
39485
  unstyled: props.unstyled,
39486
+ variant: props.variant,
39240
39487
  autoResize: props.autoResize,
39241
39488
  onFocus: onFocus,
39242
39489
  onBlur: onBlur,
@@ -39404,10 +39651,15 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
39404
39651
  target: targetRef,
39405
39652
  overlay: menuRef,
39406
39653
  listener: function listener(event, _ref) {
39407
- var valid = _ref.valid;
39654
+ var valid = _ref.valid,
39655
+ type = _ref.type;
39408
39656
  if (valid) {
39409
- hide(event);
39410
- setFocusedOptionIndex(-1);
39657
+ if (context.hideOverlaysOnDocumentScrolling || type === 'outside') {
39658
+ hide(event);
39659
+ setFocusedOptionIndex(-1);
39660
+ } else if (!DomHandler.isDocument(event.target)) {
39661
+ DomHandler.absolutePosition(menuRef.current, targetRef.current, props.popupAlignment);
39662
+ }
39411
39663
  }
39412
39664
  },
39413
39665
  when: visibleState
@@ -39463,6 +39715,9 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
39463
39715
  props.onFocus && props.onFocus(event);
39464
39716
  };
39465
39717
  var onListBlur = function onListBlur(event) {
39718
+ var currentTarget = event.currentTarget,
39719
+ relatedTarget = event.relatedTarget;
39720
+ if (relatedTarget && currentTarget.contains(relatedTarget)) return;
39466
39721
  setFocused(false);
39467
39722
  setFocusedOptionIndex(-1);
39468
39723
  props.onBlur && props.onBlur(event);
@@ -40065,7 +40320,6 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
40065
40320
  'aria-disabled': disabled,
40066
40321
  'aria-expanded': group ? active : undefined,
40067
40322
  'aria-haspopup': group && !item.url ? 'menu' : undefined,
40068
- 'aria-level': props.level + 1,
40069
40323
  'aria-setsize': getAriaSetSize(),
40070
40324
  'aria-posinset': getAriaPosInset(index),
40071
40325
  'data-p-highlight': active,
@@ -40183,12 +40437,13 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
40183
40437
  var _useEventListener = useEventListener({
40184
40438
  type: 'click',
40185
40439
  listener: function listener(event) {
40186
- if (isOutsideClicked(event)) {
40187
- var isOutsideContainer = elementRef.current && !elementRef.current.contains(event.target);
40188
- if (isOutsideContainer) {
40189
- hide();
40190
- }
40440
+ var isOutsideButton = menuButtonRef.current && !menuButtonRef.current.contains(event.target);
40441
+ if (isOutsideButton) {
40442
+ hide();
40191
40443
  }
40444
+ },
40445
+ options: {
40446
+ capture: true
40192
40447
  }
40193
40448
  }),
40194
40449
  _useEventListener2 = _slicedToArray(_useEventListener, 2),
@@ -40243,9 +40498,6 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
40243
40498
  var menuButtonKeydown = function menuButtonKeydown(event) {
40244
40499
  (event.code === 'Enter' || event.code === 'NumpadEnter' || event.code === 'Space') && toggle(event);
40245
40500
  };
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
40501
  var getItemProp = function getItemProp(item, name) {
40250
40502
  return item ? ObjectUtils.getItemValue(item[name]) : undefined;
40251
40503
  };
@@ -41850,9 +42102,13 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
41850
42102
  valid = _ref.valid;
41851
42103
  if (valid) {
41852
42104
  if (type === 'outside') {
41853
- !isClearClicked(event) && !isSelectAllClicked(event) && hide();
41854
- } else {
42105
+ if (!isClearClicked(event) && !isSelectAllClicked(event)) {
42106
+ hide();
42107
+ }
42108
+ } else if (context.hideOverlaysOnDocumentScrolling) {
41855
42109
  hide();
42110
+ } else if (!DomHandler.isDocument(event.target)) {
42111
+ alignOverlay();
41856
42112
  }
41857
42113
  }
41858
42114
  },
@@ -43598,6 +43854,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
43598
43854
  var styleElementRef = React__namespace.useRef(null);
43599
43855
  var reorderDirection = React__namespace.useRef(null);
43600
43856
  var listElementRef = React__namespace.useRef(null);
43857
+ var reorderedListElementRef = React__namespace.useRef(null);
43601
43858
  var metaData = {
43602
43859
  props: props,
43603
43860
  state: {
@@ -43823,9 +44080,9 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
43823
44080
  }
43824
44081
  var _focusedOptionIndex = items[order] ? items[order].getAttribute('id') : -1;
43825
44082
  setFocusedOptionIndex(_focusedOptionIndex);
43826
- scrollInView(_focusedOptionIndex);
44083
+ scrollInViewWithFocus(_focusedOptionIndex);
43827
44084
  };
43828
- var scrollInView = function scrollInView(id) {
44085
+ var scrollInViewWithFocus = function scrollInViewWithFocus(id) {
43829
44086
  var listElement = getListElement();
43830
44087
  var element = DomHandler.findSingle(listElement, "[data-pc-section=\"item\"][id=\"".concat(id, "\"]"));
43831
44088
  if (element) {
@@ -43835,6 +44092,33 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
43835
44092
  });
43836
44093
  }
43837
44094
  };
44095
+ var scrollInView = function scrollInView(listContainer) {
44096
+ var direction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
44097
+ var selectedItems = listContainer.getElementsByClassName('p-highlight');
44098
+ if (ObjectUtils.isNotEmpty(selectedItems)) {
44099
+ DomHandler.scrollInView(listContainer, direction === -1 ? selectedItems[0] : selectedItems[selectedItems.length - 1]);
44100
+ }
44101
+ };
44102
+ var handleScrollPosition = function handleScrollPosition(listElement, direction) {
44103
+ if (listElement) {
44104
+ switch (direction) {
44105
+ case 'up':
44106
+ scrollInView(listElement, -1);
44107
+ break;
44108
+ case 'top':
44109
+ listElement.scrollTop = 0;
44110
+ break;
44111
+ case 'down':
44112
+ scrollInView(listElement, 1);
44113
+ break;
44114
+ case 'bottom':
44115
+ setTimeout(function () {
44116
+ return listElement.scrollTop = listElement.scrollHeight;
44117
+ }, 100);
44118
+ break;
44119
+ }
44120
+ }
44121
+ };
43838
44122
  var onFilter = function onFilter(event) {
43839
44123
  var _filterValue = event.target.value;
43840
44124
  setFilterValueState(_filterValue);
@@ -43869,6 +44153,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
43869
44153
  });
43870
44154
  }
43871
44155
  reorderDirection.current = event.direction;
44156
+ reorderedListElementRef.current = getListElement();
43872
44157
  };
43873
44158
  var createStyle = function createStyle() {
43874
44159
  if (!styleElementRef.current) {
@@ -43905,7 +44190,9 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
43905
44190
  setFocusedOptionId(_focusedOptionId);
43906
44191
  }, [focusedOptionIndex]);
43907
44192
  useUpdateEffect(function () {
43908
- if (reorderDirection.current) {
44193
+ if (reorderedListElementRef.current) {
44194
+ handleScrollPosition(reorderedListElementRef.current, reorderDirection.current);
44195
+ reorderedListElementRef.current = null;
43909
44196
  reorderDirection.current = null;
43910
44197
  }
43911
44198
  });
@@ -44396,18 +44683,17 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
44396
44683
  var type = _ref.type,
44397
44684
  valid = _ref.valid;
44398
44685
  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;
44686
+ if (type === 'outside') {
44687
+ if (props.dismissable && !isPanelClicked.current) {
44688
+ hide();
44689
+ }
44690
+ isPanelClicked.current = false;
44691
+ } else if (context.hideOverlaysOnDocumentScrolling) {
44692
+ hide();
44693
+ } else if (!DomHandler.isDocument(event.target)) {
44694
+ align();
44408
44695
  }
44409
44696
  }
44410
- isPanelClicked.current = false;
44411
44697
  },
44412
44698
  when: visibleState
44413
44699
  }),
@@ -46164,8 +46450,15 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
46164
46450
  target: elementRef,
46165
46451
  overlay: overlayRef,
46166
46452
  listener: function listener(event, _ref) {
46167
- var valid = _ref.valid;
46168
- valid && hide();
46453
+ var valid = _ref.valid,
46454
+ type = _ref.type;
46455
+ if (valid) {
46456
+ if (type === 'outside' || context.hideOverlaysOnDocumentScrolling) {
46457
+ hide();
46458
+ } else if (!DomHandler.isDocument(event.target)) {
46459
+ alignOverlay();
46460
+ }
46461
+ }
46169
46462
  },
46170
46463
  when: overlayVisibleState
46171
46464
  }),
@@ -49730,8 +50023,15 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
49730
50023
  target: targetRef,
49731
50024
  overlay: menuRef,
49732
50025
  listener: function listener(event, _ref) {
49733
- var valid = _ref.valid;
49734
- valid && hide(event);
50026
+ var valid = _ref.valid,
50027
+ type = _ref.type;
50028
+ if (valid) {
50029
+ if (type === 'outside' || context.hideOverlaysOnDocumentScrolling) {
50030
+ hide(event);
50031
+ } else if (!DomHandler.isDocument(event.target)) {
50032
+ DomHandler.absolutePosition(menuRef.current, targetRef.current);
50033
+ }
50034
+ }
49735
50035
  },
49736
50036
  when: visibleState
49737
50037
  }),
@@ -57479,9 +57779,9 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
57479
57779
  expandedKeysState = _React$useState6[0],
57480
57780
  setExpandedKeysState = _React$useState6[1];
57481
57781
  var _useDebounce = useDebounce('', props.filterDelay || 0),
57482
- _useDebounce2 = _slicedToArray(_useDebounce, 3);
57483
- _useDebounce2[0];
57484
- var filterValueState = _useDebounce2[1],
57782
+ _useDebounce2 = _slicedToArray(_useDebounce, 3),
57783
+ filterValue = _useDebounce2[0],
57784
+ filterValueState = _useDebounce2[1],
57485
57785
  setFilterValueState = _useDebounce2[2];
57486
57786
  var elementRef = React__namespace.useRef(null);
57487
57787
  var overlayRef = React__namespace.useRef(null);
@@ -57528,8 +57828,15 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
57528
57828
  target: elementRef,
57529
57829
  overlay: overlayRef,
57530
57830
  listener: function listener(event, _ref) {
57531
- var valid = _ref.valid;
57532
- valid && hide();
57831
+ var valid = _ref.valid,
57832
+ type = _ref.type;
57833
+ if (valid) {
57834
+ if (type === 'outside' || context.hideOverlaysOnDocumentScrolling) {
57835
+ hide();
57836
+ } else if (!DomHandler.isDocument(event.target)) {
57837
+ alignOverlay();
57838
+ }
57839
+ }
57533
57840
  },
57534
57841
  when: overlayVisibleState
57535
57842
  }),
@@ -58067,15 +58374,15 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
58067
58374
  };
58068
58375
  var createFilterElement = function createFilterElement() {
58069
58376
  if (props.filter) {
58070
- var _filterValue = props.onFilterValueChange ? props.filterValue : filteredValue;
58071
- _filterValue = ObjectUtils.isNotEmpty(_filterValue) ? _filterValue : '';
58377
+ var newValue = props.onFilterValueChange ? props.filterValue : filterValue;
58378
+ newValue = ObjectUtils.isNotEmpty(newValue) ? newValue : '';
58072
58379
  var filterContainerProps = mergeProps({
58073
58380
  className: cx('filterContainer')
58074
58381
  }, ptm('filterContainer'));
58075
58382
  var filterProps = mergeProps({
58076
58383
  ref: filterInputRef,
58077
58384
  type: 'text',
58078
- value: _filterValue,
58385
+ value: newValue,
58079
58386
  autoComplete: 'off',
58080
58387
  className: cx('filter'),
58081
58388
  placeholder: props.filterPlaceholder,
@@ -61493,7 +61800,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
61493
61800
  tooltip: null,
61494
61801
  tooltipOptions: null,
61495
61802
  uncheckIcon: null,
61496
- value: '',
61803
+ value: null,
61497
61804
  children: undefined
61498
61805
  },
61499
61806
  css: {
@@ -61507,7 +61814,7 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
61507
61814
  var mergeProps = useMergeProps();
61508
61815
  var context = React__namespace.useContext(PrimeReactContext);
61509
61816
  var props = TriStateCheckboxBase.getProps(inProps, context);
61510
- var _useState = React.useState(''),
61817
+ var _useState = React.useState(null),
61511
61818
  _useState2 = _slicedToArray(_useState, 2),
61512
61819
  checkBoxValue = _useState2[0],
61513
61820
  setCheckBoxValue = _useState2[1];
@@ -61522,10 +61829,10 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
61522
61829
  name: 'tristatecheckbox'
61523
61830
  });
61524
61831
  React.useEffect(function () {
61525
- if ([true, false, ''].includes(props.value)) {
61832
+ if ([true, false, null].includes(props.value)) {
61526
61833
  setCheckBoxValue(props.value);
61527
61834
  } else {
61528
- setCheckBoxValue('');
61835
+ setCheckBoxValue(null);
61529
61836
  }
61530
61837
  }, [props.value]);
61531
61838
  var onChange = function onChange(event) {
@@ -61533,12 +61840,12 @@ var primereact = (function (exports, React, reactTransitionGroup, ReactDOM) {
61533
61840
  return;
61534
61841
  }
61535
61842
  var newValue;
61536
- if (checkBoxValue === '') {
61843
+ if (checkBoxValue === null) {
61537
61844
  newValue = true;
61538
61845
  } else if (checkBoxValue === true) {
61539
61846
  newValue = false;
61540
61847
  } else if (checkBoxValue === false) {
61541
- newValue = '';
61848
+ newValue = null;
61542
61849
  }
61543
61850
  if (props.onChange) {
61544
61851
  props.onChange({