primereact 10.9.4 → 10.9.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) hide show
  1. package/api/api.cjs.js +9 -1
  2. package/api/api.cjs.min.js +1 -1
  3. package/api/api.d.ts +5 -3
  4. package/api/api.esm.js +9 -1
  5. package/api/api.esm.min.js +1 -1
  6. package/api/api.js +9 -1
  7. package/api/api.min.js +1 -1
  8. package/autocomplete/autocomplete.cjs.js +13 -1
  9. package/autocomplete/autocomplete.cjs.min.js +1 -1
  10. package/autocomplete/autocomplete.d.ts +5 -5
  11. package/autocomplete/autocomplete.esm.js +14 -2
  12. package/autocomplete/autocomplete.esm.min.js +1 -1
  13. package/autocomplete/autocomplete.js +13 -1
  14. package/autocomplete/autocomplete.min.js +1 -1
  15. package/breadcrumb/breadcrumb.cjs.js +2 -1
  16. package/breadcrumb/breadcrumb.cjs.min.js +1 -1
  17. package/breadcrumb/breadcrumb.esm.js +2 -1
  18. package/breadcrumb/breadcrumb.esm.min.js +1 -1
  19. package/breadcrumb/breadcrumb.js +2 -1
  20. package/breadcrumb/breadcrumb.min.js +1 -1
  21. package/calendar/calendar.cjs.js +37 -7
  22. package/calendar/calendar.cjs.min.js +1 -1
  23. package/calendar/calendar.esm.js +38 -8
  24. package/calendar/calendar.esm.min.js +1 -1
  25. package/calendar/calendar.js +37 -7
  26. package/calendar/calendar.min.js +1 -1
  27. package/cascadeselect/cascadeselect.cjs.js +62 -5
  28. package/cascadeselect/cascadeselect.cjs.min.js +1 -1
  29. package/cascadeselect/cascadeselect.d.ts +22 -0
  30. package/cascadeselect/cascadeselect.esm.js +63 -6
  31. package/cascadeselect/cascadeselect.esm.min.js +1 -1
  32. package/cascadeselect/cascadeselect.js +63 -7
  33. package/cascadeselect/cascadeselect.min.js +1 -1
  34. package/checkbox/checkbox.cjs.js +1 -1
  35. package/checkbox/checkbox.cjs.min.js +1 -1
  36. package/checkbox/checkbox.esm.js +1 -1
  37. package/checkbox/checkbox.esm.min.js +1 -1
  38. package/checkbox/checkbox.js +1 -1
  39. package/checkbox/checkbox.min.js +1 -1
  40. package/chip/chip.cjs.js +15 -2
  41. package/chip/chip.cjs.min.js +1 -1
  42. package/chip/chip.esm.js +17 -4
  43. package/chip/chip.esm.min.js +1 -1
  44. package/chip/chip.js +15 -2
  45. package/chip/chip.min.js +1 -1
  46. package/chips/chips.cjs.js +1 -1
  47. package/chips/chips.cjs.min.js +1 -1
  48. package/chips/chips.esm.js +1 -1
  49. package/chips/chips.esm.min.js +1 -1
  50. package/chips/chips.js +1 -1
  51. package/chips/chips.min.js +1 -1
  52. package/colorpicker/colorpicker.cjs.js +9 -2
  53. package/colorpicker/colorpicker.cjs.min.js +1 -1
  54. package/colorpicker/colorpicker.esm.js +9 -2
  55. package/colorpicker/colorpicker.esm.min.js +1 -1
  56. package/colorpicker/colorpicker.js +9 -2
  57. package/colorpicker/colorpicker.min.js +1 -1
  58. package/confirmpopup/confirmpopup.cjs.js +10 -2
  59. package/confirmpopup/confirmpopup.cjs.min.js +1 -1
  60. package/confirmpopup/confirmpopup.esm.js +10 -2
  61. package/confirmpopup/confirmpopup.esm.min.js +1 -1
  62. package/confirmpopup/confirmpopup.js +10 -2
  63. package/confirmpopup/confirmpopup.min.js +1 -1
  64. package/core/core.js +214 -38
  65. package/core/core.min.js +9 -9
  66. package/datatable/datatable.cjs.js +359 -291
  67. package/datatable/datatable.cjs.min.js +1 -1
  68. package/datatable/datatable.d.ts +79 -3
  69. package/datatable/datatable.esm.js +360 -292
  70. package/datatable/datatable.esm.min.js +1 -1
  71. package/datatable/datatable.js +359 -291
  72. package/datatable/datatable.min.js +1 -1
  73. package/dialog/dialog.cjs.js +3 -2
  74. package/dialog/dialog.cjs.min.js +1 -1
  75. package/dialog/dialog.d.ts +6 -1
  76. package/dialog/dialog.esm.js +3 -2
  77. package/dialog/dialog.esm.min.js +1 -1
  78. package/dialog/dialog.js +3 -2
  79. package/dialog/dialog.min.js +1 -1
  80. package/dropdown/dropdown.cjs.js +26 -5
  81. package/dropdown/dropdown.cjs.min.js +1 -1
  82. package/dropdown/dropdown.d.ts +4 -0
  83. package/dropdown/dropdown.esm.js +26 -5
  84. package/dropdown/dropdown.esm.min.js +1 -1
  85. package/dropdown/dropdown.js +26 -5
  86. package/dropdown/dropdown.min.js +1 -1
  87. package/fileupload/fileupload.cjs.js +4 -2
  88. package/fileupload/fileupload.cjs.min.js +1 -1
  89. package/fileupload/fileupload.esm.js +4 -2
  90. package/fileupload/fileupload.esm.min.js +1 -1
  91. package/fileupload/fileupload.js +4 -2
  92. package/fileupload/fileupload.min.js +1 -1
  93. package/galleria/galleria.cjs.js +1 -0
  94. package/galleria/galleria.cjs.min.js +1 -1
  95. package/galleria/galleria.esm.js +1 -0
  96. package/galleria/galleria.esm.min.js +1 -1
  97. package/galleria/galleria.js +1 -0
  98. package/galleria/galleria.min.js +1 -1
  99. package/hooks/hooks.cjs.js +16 -6
  100. package/hooks/hooks.cjs.min.js +1 -1
  101. package/hooks/hooks.esm.js +16 -6
  102. package/hooks/hooks.esm.min.js +1 -1
  103. package/hooks/hooks.js +16 -6
  104. package/hooks/hooks.min.js +1 -1
  105. package/inputmask/inputmask.cjs.js +1 -1
  106. package/inputmask/inputmask.cjs.min.js +1 -1
  107. package/inputmask/inputmask.esm.js +1 -1
  108. package/inputmask/inputmask.esm.min.js +1 -1
  109. package/inputmask/inputmask.js +1 -1
  110. package/inputmask/inputmask.min.js +1 -1
  111. package/inputnumber/inputnumber.cjs.js +11 -3
  112. package/inputnumber/inputnumber.cjs.min.js +1 -1
  113. package/inputnumber/inputnumber.esm.js +11 -3
  114. package/inputnumber/inputnumber.esm.min.js +1 -1
  115. package/inputnumber/inputnumber.js +11 -3
  116. package/inputnumber/inputnumber.min.js +1 -1
  117. package/inputotp/inputotp.cjs.js +1 -0
  118. package/inputotp/inputotp.cjs.min.js +1 -1
  119. package/inputotp/inputotp.esm.js +1 -0
  120. package/inputotp/inputotp.esm.min.js +1 -1
  121. package/inputotp/inputotp.js +1 -0
  122. package/inputotp/inputotp.min.js +1 -1
  123. package/listbox/listbox.d.ts +4 -4
  124. package/mention/mention.cjs.js +18 -9
  125. package/mention/mention.cjs.min.js +1 -1
  126. package/mention/mention.d.ts +5 -0
  127. package/mention/mention.esm.js +18 -9
  128. package/mention/mention.esm.min.js +1 -1
  129. package/mention/mention.js +18 -9
  130. package/mention/mention.min.js +1 -1
  131. package/menu/menu.cjs.js +14 -3
  132. package/menu/menu.cjs.min.js +1 -1
  133. package/menu/menu.esm.js +15 -4
  134. package/menu/menu.esm.min.js +1 -1
  135. package/menu/menu.js +14 -3
  136. package/menu/menu.min.js +1 -1
  137. package/menubar/menubar.cjs.js +6 -9
  138. package/menubar/menubar.cjs.min.js +1 -1
  139. package/menubar/menubar.esm.js +6 -9
  140. package/menubar/menubar.esm.min.js +1 -1
  141. package/menubar/menubar.js +6 -9
  142. package/menubar/menubar.min.js +1 -1
  143. package/multiselect/multiselect.cjs.js +68 -18
  144. package/multiselect/multiselect.cjs.min.js +1 -1
  145. package/multiselect/multiselect.esm.js +68 -18
  146. package/multiselect/multiselect.esm.min.js +1 -1
  147. package/multiselect/multiselect.js +68 -18
  148. package/multiselect/multiselect.min.js +1 -1
  149. package/multistatecheckbox/multistatecheckbox.cjs.js +17 -9
  150. package/multistatecheckbox/multistatecheckbox.cjs.min.js +1 -1
  151. package/multistatecheckbox/multistatecheckbox.esm.js +17 -9
  152. package/multistatecheckbox/multistatecheckbox.esm.min.js +1 -1
  153. package/multistatecheckbox/multistatecheckbox.js +17 -9
  154. package/multistatecheckbox/multistatecheckbox.min.js +1 -1
  155. package/orderlist/orderlist.cjs.js +34 -3
  156. package/orderlist/orderlist.cjs.min.js +1 -1
  157. package/orderlist/orderlist.esm.js +34 -3
  158. package/orderlist/orderlist.esm.min.js +1 -1
  159. package/orderlist/orderlist.js +34 -3
  160. package/orderlist/orderlist.min.js +1 -1
  161. package/overlaypanel/overlaypanel.cjs.js +9 -10
  162. package/overlaypanel/overlaypanel.cjs.min.js +1 -1
  163. package/overlaypanel/overlaypanel.esm.js +9 -10
  164. package/overlaypanel/overlaypanel.esm.min.js +1 -1
  165. package/overlaypanel/overlaypanel.js +9 -10
  166. package/overlaypanel/overlaypanel.min.js +1 -1
  167. package/package.json +1 -1
  168. package/paginator/paginator.cjs.js +9 -1
  169. package/paginator/paginator.cjs.min.js +1 -1
  170. package/paginator/paginator.esm.js +9 -1
  171. package/paginator/paginator.esm.min.js +1 -1
  172. package/paginator/paginator.js +9 -1
  173. package/paginator/paginator.min.js +1 -1
  174. package/password/password.cjs.js +9 -2
  175. package/password/password.cjs.min.js +1 -1
  176. package/password/password.esm.js +10 -3
  177. package/password/password.esm.min.js +1 -1
  178. package/password/password.js +9 -2
  179. package/password/password.min.js +1 -1
  180. package/picklist/picklist.cjs.js +9 -1
  181. package/picklist/picklist.cjs.min.js +1 -1
  182. package/picklist/picklist.esm.js +9 -1
  183. package/picklist/picklist.esm.min.js +1 -1
  184. package/picklist/picklist.js +9 -1
  185. package/picklist/picklist.min.js +1 -1
  186. package/primereact.all.cjs.js +931 -442
  187. package/primereact.all.cjs.min.js +1 -1
  188. package/primereact.all.esm.js +932 -443
  189. package/primereact.all.esm.min.js +1 -1
  190. package/primereact.all.js +931 -442
  191. package/primereact.all.min.js +1 -1
  192. package/radiobutton/radiobutton.cjs.js +2 -2
  193. package/radiobutton/radiobutton.cjs.min.js +1 -1
  194. package/radiobutton/radiobutton.d.ts +1 -1
  195. package/radiobutton/radiobutton.esm.js +2 -2
  196. package/radiobutton/radiobutton.esm.min.js +1 -1
  197. package/radiobutton/radiobutton.js +2 -2
  198. package/radiobutton/radiobutton.min.js +1 -1
  199. package/slidemenu/slidemenu.cjs.js +9 -2
  200. package/slidemenu/slidemenu.cjs.min.js +1 -1
  201. package/slidemenu/slidemenu.esm.js +10 -3
  202. package/slidemenu/slidemenu.esm.min.js +1 -1
  203. package/slidemenu/slidemenu.js +9 -2
  204. package/slidemenu/slidemenu.min.js +1 -1
  205. package/tree/tree.cjs.js +1 -1
  206. package/tree/tree.cjs.min.js +1 -1
  207. package/tree/tree.esm.js +1 -1
  208. package/tree/tree.esm.min.js +1 -1
  209. package/tree/tree.js +1 -1
  210. package/tree/tree.min.js +1 -1
  211. package/treeselect/treeselect.cjs.js +19 -8
  212. package/treeselect/treeselect.cjs.min.js +1 -1
  213. package/treeselect/treeselect.d.ts +33 -0
  214. package/treeselect/treeselect.esm.js +19 -8
  215. package/treeselect/treeselect.esm.min.js +1 -1
  216. package/treeselect/treeselect.js +19 -8
  217. package/treeselect/treeselect.min.js +1 -1
  218. package/treetable/treetable.cjs.js +1 -1
  219. package/treetable/treetable.cjs.min.js +1 -1
  220. package/treetable/treetable.esm.js +1 -1
  221. package/treetable/treetable.esm.min.js +1 -1
  222. package/treetable/treetable.js +1 -1
  223. package/treetable/treetable.min.js +1 -1
  224. package/tristatecheckbox/tristatecheckbox.cjs.js +7 -6
  225. package/tristatecheckbox/tristatecheckbox.cjs.min.js +1 -1
  226. package/tristatecheckbox/tristatecheckbox.esm.js +7 -6
  227. package/tristatecheckbox/tristatecheckbox.esm.min.js +1 -1
  228. package/tristatecheckbox/tristatecheckbox.js +7 -6
  229. package/tristatecheckbox/tristatecheckbox.min.js +1 -1
  230. package/utils/utils.cjs.js +138 -18
  231. package/utils/utils.cjs.min.js +1 -1
  232. package/utils/utils.d.ts +5 -1
  233. package/utils/utils.esm.js +138 -18
  234. package/utils/utils.esm.min.js +1 -1
  235. package/utils/utils.js +138 -18
  236. package/utils/utils.min.js +1 -1
  237. package/web-types.json +105 -11
package/core/core.js CHANGED
@@ -549,11 +549,18 @@ this.primereact.utils = (function (exports, React) {
549
549
  element.style.transformOrigin = 'top';
550
550
  }
551
551
  var targetOffsetPx = targetOffset.left;
552
- var alignOffset = align === 'left' ? 0 : elementOuterWidth - targetOuterWidth;
553
- if (targetOffsetPx + targetOuterWidth + elementOuterWidth > viewport.width) {
554
- left = Math.max(0, targetOffsetPx + windowScrollLeft + targetOuterWidth - elementOuterWidth);
552
+ if (align === 'left') {
553
+ if (targetOffsetPx + elementOuterWidth > viewport.width) {
554
+ left = Math.max(0, targetOffsetPx + windowScrollLeft + targetOuterWidth - elementOuterWidth);
555
+ } else {
556
+ left = targetOffsetPx + windowScrollLeft;
557
+ }
555
558
  } else {
556
- left = targetOffsetPx - alignOffset + windowScrollLeft;
559
+ if (targetOffsetPx + targetOuterWidth - elementOuterWidth < 0) {
560
+ left = windowScrollLeft;
561
+ } else {
562
+ left = targetOffsetPx + targetOuterWidth - elementOuterWidth + windowScrollLeft;
563
+ }
557
564
  }
558
565
  element.style.top = top + 'px';
559
566
  element.style.left = left + 'px';
@@ -762,13 +769,12 @@ this.primereact.utils = (function (exports, React) {
762
769
  /**
763
770
  * Gets all scrollable parent elements of a given element
764
771
  * @param {HTMLElement} element - The element to find scrollable parents for
765
- * @param {boolean} hideOverlaysOnDocumentScrolling - Whether to include window/document level scrolling
766
772
  * @returns {Array} Array of scrollable parent elements
767
773
  */
768
774
  }, {
769
775
  key: "getScrollableParents",
770
776
  value: function getScrollableParents(element) {
771
- var hideOverlaysOnDocumentScrolling = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
777
+ var _this3 = this;
772
778
  var scrollableParents = [];
773
779
  if (element) {
774
780
  // Get all parent elements
@@ -791,10 +797,8 @@ this.primereact.utils = (function (exports, React) {
791
797
  * @param {HTMLElement} node - Element to add
792
798
  */
793
799
  var addScrollableParent = function addScrollableParent(node) {
794
- if (hideOverlaysOnDocumentScrolling) {
795
- // For document/body/html elements, add window instead
796
- scrollableParents.push(node.nodeName === 'BODY' || node.nodeName === 'HTML' || node.nodeType === 9 ? window : node);
797
- }
800
+ // For document/body/html elements, add window instead
801
+ scrollableParents.push(node.nodeName === 'BODY' || node.nodeName === 'HTML' || _this3.isDocument(node) ? window : node);
798
802
  };
799
803
 
800
804
  // Iterate through all parent elements
@@ -838,13 +842,6 @@ this.primereact.utils = (function (exports, React) {
838
842
  _iterator.f();
839
843
  }
840
844
  }
841
-
842
- // Ensure window/body is always included as fallback
843
- if (!scrollableParents.some(function (node) {
844
- return node === document.body || node === window;
845
- })) {
846
- scrollableParents.push(hideOverlaysOnDocumentScrolling ? window : document.body);
847
- }
848
845
  return scrollableParents;
849
846
  }
850
847
  }, {
@@ -984,6 +981,11 @@ this.primereact.utils = (function (exports, React) {
984
981
  value: function isElement(obj) {
985
982
  return (typeof HTMLElement === "undefined" ? "undefined" : _typeof(HTMLElement)) === 'object' ? obj instanceof HTMLElement : obj && _typeof(obj) === 'object' && obj !== null && obj.nodeType === 1 && typeof obj.nodeName === 'string';
986
983
  }
984
+ }, {
985
+ key: "isDocument",
986
+ value: function isDocument(obj) {
987
+ return (typeof Document === "undefined" ? "undefined" : _typeof(Document)) === 'object' ? obj instanceof Document : obj && _typeof(obj) === 'object' && obj !== null && obj.nodeType === 9;
988
+ }
987
989
  }, {
988
990
  key: "scrollInView",
989
991
  value: function scrollInView(container, item) {
@@ -1321,7 +1323,7 @@ this.primereact.utils = (function (exports, React) {
1321
1323
  return !!(obj && obj.constructor && obj.call && obj.apply);
1322
1324
  };
1323
1325
  var element = isFunction(target) ? target() : target;
1324
- return element && element.nodeType === 9 || this.isExist(element) ? element : null;
1326
+ return this.isDocument(element) || this.isExist(element) ? element : null;
1325
1327
  }
1326
1328
 
1327
1329
  /**
@@ -2034,6 +2036,124 @@ this.primereact.utils = (function (exports, React) {
2034
2036
  obj = obj[fields[i]];
2035
2037
  }
2036
2038
  }
2039
+
2040
+ /**
2041
+ * This helper function takes an object and a dot-separated key path. It traverses the object based on the path,
2042
+ * returning the value at the specified depth. If any part of the path is missing or undefined, it returns undefined.
2043
+ *
2044
+ * Example:
2045
+ * const obj = { name: 'Alice', address: { city: 'Wonderland', zip: 12345 } };
2046
+ * const path = 'address.city';
2047
+ * const result = ObjectUtils.getNestedValue(obj, path);
2048
+ * console.log(result); // Output: "Wonderland"
2049
+ *
2050
+ * @param {object} obj - The object to traverse.
2051
+ * @param {string} path - The dot-separated key path.
2052
+ * @returns {*} The value at the specified depth, or undefined if any part of the path is missing or undefined.
2053
+ */
2054
+ }, {
2055
+ key: "getNestedValue",
2056
+ value: function getNestedValue(obj, path) {
2057
+ return path.split('.').reduce(function (acc, part) {
2058
+ return acc && acc[part] !== undefined ? acc[part] : undefined;
2059
+ }, obj);
2060
+ }
2061
+
2062
+ /**
2063
+ * This function takes an object and a dot-separated key path. It traverses the object based on the path,
2064
+ * returning the value at the specified depth. If any part of the path is missing or undefined, it returns undefined.
2065
+ *
2066
+ * Example:
2067
+ * const objA = { name: 'Alice', address: { city: 'Wonderland', zip: 12345 } };
2068
+ * const objB = { name: 'Alice', address: { city: 'Wonderland', zip: 12345 } };
2069
+ * const result = ObjectUtils.absoluteCompare(objA, objB);
2070
+ * console.log(result); // Output: true
2071
+ *
2072
+ * const objC = { name: 'Alice', address: { city: 'Wonderland', zip: 12346 } };
2073
+ * const result2 = ObjectUtils.absoluteCompare(objA, objC);
2074
+ * console.log(result2); // Output: false
2075
+ *
2076
+ * @param {object} objA - The first object to compare.
2077
+ * @param {object} objB - The second object to compare.
2078
+ * @param {number} [maxDepth=1] - The maximum depth to compare.
2079
+ * @param {number} [currentDepth=0] - The current depth (used internally for recursion).
2080
+ * @returns {boolean} True if the objects are equal within the specified depth, false otherwise.
2081
+ *
2082
+ */
2083
+ }, {
2084
+ key: "absoluteCompare",
2085
+ value: function absoluteCompare(objA, objB) {
2086
+ var maxDepth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
2087
+ var currentDepth = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
2088
+ if (!objA || !objB) return true;
2089
+ if (currentDepth > maxDepth) return true;
2090
+ if (_typeof(objA) !== _typeof(objB)) return false;
2091
+ var aKeys = Object.keys(objA);
2092
+ var bKeys = Object.keys(objB);
2093
+ if (aKeys.length !== bKeys.length) return false;
2094
+ for (var _i = 0, _aKeys = aKeys; _i < _aKeys.length; _i++) {
2095
+ var key = _aKeys[_i];
2096
+ var aValue = objA[key];
2097
+ var bValue = objB[key];
2098
+
2099
+ // Skip comparison if values are objects
2100
+ var isObject = ObjectUtils.isObject(aValue) && ObjectUtils.isObject(bValue);
2101
+ var isFunction = ObjectUtils.isFunction(aValue) && ObjectUtils.isFunction(bValue);
2102
+ if ((isObject || isFunction) && !this.absoluteCompare(aValue, bValue, maxDepth, currentDepth + 1)) return false;
2103
+ if (!isObject && aValue !== bValue) return false;
2104
+ }
2105
+ return true;
2106
+ }
2107
+
2108
+ /**
2109
+ * This helper function takes two objects and a list of keys to compare. It compares the values of the specified keys
2110
+ * in both objects. If any comparison fails, it returns false. If all specified properties are equal, it returns true.
2111
+ * It performs a shallow comparison using absoluteCompare if no keys are provided.
2112
+ *
2113
+ * Example:
2114
+ * const objA = { name: 'Alice', address: { city: 'Wonderland', zip: 12345 } };
2115
+ * const objB = { name: 'Alice', address: { city: 'Wonderland', zip: 12345 } };
2116
+ * const keysToCompare = ['name', 'address.city', 'address.zip'];
2117
+ * const result = ObjectUtils.selectiveCompare(objA, objB, keysToCompare);
2118
+ * console.log(result); // Output: true
2119
+ *
2120
+ * const objC = { name: 'Alice', address: { city: 'Wonderland', zip: 12346 } };
2121
+ * const result2 = ObjectUtils.selectiveCompare(objA, objC, keysToCompare);
2122
+ * console.log(result2); // Output: false
2123
+ *
2124
+ * @param {object} a - The first object to compare.
2125
+ * @param {object} b - The second object to compare.
2126
+ * @param {string[]} [keysToCompare] - The keys to compare. If not provided, performs a shallow comparison using absoluteCompare.
2127
+ * @param {number} [maxDepth=1] - The maximum depth to compare if the variables are objects.
2128
+ * @returns {boolean} True if all specified properties are equal, false otherwise.
2129
+ */
2130
+ }, {
2131
+ key: "selectiveCompare",
2132
+ value: function selectiveCompare(a, b, keysToCompare) {
2133
+ var maxDepth = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
2134
+ if (a === b) return true;
2135
+ if (!a || !b || _typeof(a) !== 'object' || _typeof(b) !== 'object') return false;
2136
+ if (!keysToCompare) return this.absoluteCompare(a, b, 1); // If no keys are provided, the comparison is limited to one depth level.
2137
+ var _iterator2 = _createForOfIteratorHelper(keysToCompare),
2138
+ _step2;
2139
+ try {
2140
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
2141
+ var key = _step2.value;
2142
+ var aValue = this.getNestedValue(a, key);
2143
+ var bValue = this.getNestedValue(b, key);
2144
+ var isObject = _typeof(aValue) === 'object' && aValue !== null && _typeof(bValue) === 'object' && bValue !== null;
2145
+
2146
+ // If the current key is an object, they are compared in one further level only.
2147
+ if (isObject && !this.absoluteCompare(aValue, bValue, maxDepth)) return false;
2148
+ if (!isObject && aValue !== bValue) return false;
2149
+ }
2150
+ } catch (err) {
2151
+ _iterator2.e(err);
2152
+ } finally {
2153
+ _iterator2.f();
2154
+ }
2155
+ return true;
2156
+ }
2037
2157
  }]);
2038
2158
  }();
2039
2159
 
@@ -2668,6 +2788,7 @@ this.primereact.api = (function (exports, utils, React) {
2668
2788
  EQUALS: 'equals',
2669
2789
  NOT_EQUALS: 'notEquals',
2670
2790
  IN: 'in',
2791
+ NOT_IN: 'notIn',
2671
2792
  LESS_THAN: 'lt',
2672
2793
  LESS_THAN_OR_EQUAL_TO: 'lte',
2673
2794
  GREATER_THAN: 'gt',
@@ -3052,6 +3173,7 @@ this.primereact.api = (function (exports, utils, React) {
3052
3173
  emptySelectionMessage: 'No selected item',
3053
3174
  endsWith: 'Ends with',
3054
3175
  equals: 'Equals',
3176
+ fileChosenMessage: '{0} files',
3055
3177
  fileSizeTypes: ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'],
3056
3178
  filter: 'Filter',
3057
3179
  firstDayOfWeek: 0,
@@ -3070,6 +3192,7 @@ this.primereact.api = (function (exports, utils, React) {
3070
3192
  nextMonth: 'Next Month',
3071
3193
  nextSecond: 'Next Second',
3072
3194
  nextYear: 'Next Year',
3195
+ noFileChosenMessage: 'No file chosen',
3073
3196
  noFilter: 'No Filter',
3074
3197
  notContains: 'Not contains',
3075
3198
  notEquals: 'Not equals',
@@ -3097,8 +3220,10 @@ this.primereact.api = (function (exports, utils, React) {
3097
3220
  aria: {
3098
3221
  cancelEdit: 'Cancel Edit',
3099
3222
  close: 'Close',
3223
+ collapseLabel: 'Collapse',
3100
3224
  collapseRow: 'Row Collapsed',
3101
3225
  editRow: 'Edit Row',
3226
+ expandLabel: 'Expand',
3102
3227
  expandRow: 'Row Expanded',
3103
3228
  falseLabel: 'False',
3104
3229
  filterConstraint: 'Filter Constraint',
@@ -3123,18 +3248,20 @@ this.primereact.api = (function (exports, utils, React) {
3123
3248
  next: 'Next',
3124
3249
  nextPageLabel: 'Next Page',
3125
3250
  nullLabel: 'Not Selected',
3126
- pageLabel: 'Page {page}',
3127
3251
  otpLabel: 'Please enter one time password character {0}',
3252
+ pageLabel: 'Page {page}',
3128
3253
  passwordHide: 'Hide Password',
3129
3254
  passwordShow: 'Show Password',
3130
3255
  previous: 'Previous',
3131
3256
  prevPageLabel: 'Previous Page',
3257
+ removeLabel: 'Remove',
3132
3258
  rotateLeft: 'Rotate Left',
3133
3259
  rotateRight: 'Rotate Right',
3134
3260
  rowsPerPageLabel: 'Rows per page',
3135
3261
  saveEdit: 'Save Edit',
3136
3262
  scrollTop: 'Scroll Top',
3137
3263
  selectAll: 'All items selected',
3264
+ selectLabel: 'Select',
3138
3265
  selectRow: 'Row Selected',
3139
3266
  showFilterMenu: 'Show Filter Menu',
3140
3267
  slide: 'Slide',
@@ -3143,6 +3270,7 @@ this.primereact.api = (function (exports, utils, React) {
3143
3270
  stars: '{star} stars',
3144
3271
  trueLabel: 'True',
3145
3272
  unselectAll: 'All items unselected',
3273
+ unselectLabel: 'Unselect',
3146
3274
  unselectRow: 'Row Unselected',
3147
3275
  zoomImage: 'Zoom Image',
3148
3276
  zoomIn: 'Zoom In',
@@ -5037,7 +5165,14 @@ this.primereact.hooks = (function (exports, React, utils, PrimeReact) {
5037
5165
  }
5038
5166
  if (!listenerRef.current && targetRef.current) {
5039
5167
  var hideOnScroll = context ? context.hideOverlaysOnDocumentScrolling : PrimeReact__default["default"].hideOverlaysOnDocumentScrolling;
5040
- var nodes = scrollableParentsRef.current = utils.DomHandler.getScrollableParents(targetRef.current, hideOnScroll);
5168
+ var nodes = scrollableParentsRef.current = utils.DomHandler.getScrollableParents(targetRef.current);
5169
+
5170
+ // Ensure window/body is always included as fallback
5171
+ if (!nodes.some(function (node) {
5172
+ return node === document.body || node === window;
5173
+ })) {
5174
+ nodes.push(hideOnScroll ? window : document.body);
5175
+ }
5041
5176
  listenerRef.current = function (event) {
5042
5177
  return listener && listener(event);
5043
5178
  };
@@ -5129,19 +5264,20 @@ this.primereact.hooks = (function (exports, React, utils, PrimeReact) {
5129
5264
  type: 'outside',
5130
5265
  valid: event.which !== 3 && isOutsideClicked(event)
5131
5266
  });
5132
- }
5267
+ },
5268
+ when: when
5133
5269
  }),
5134
5270
  _useEventListener2 = _slicedToArray(_useEventListener, 2),
5135
5271
  bindDocumentClickListener = _useEventListener2[0],
5136
5272
  unbindDocumentClickListener = _useEventListener2[1];
5137
5273
  var _useResizeListener = useResizeListener({
5138
- target: 'window',
5139
5274
  listener: function listener(event) {
5140
5275
  _listener && _listener(event, {
5141
5276
  type: 'resize',
5142
5277
  valid: !utils.DomHandler.isTouchDevice()
5143
5278
  });
5144
- }
5279
+ },
5280
+ when: when
5145
5281
  }),
5146
5282
  _useResizeListener2 = _slicedToArray(_useResizeListener, 2),
5147
5283
  bindWindowResizeListener = _useResizeListener2[0],
@@ -5154,7 +5290,8 @@ this.primereact.hooks = (function (exports, React, utils, PrimeReact) {
5154
5290
  type: 'orientationchange',
5155
5291
  valid: true
5156
5292
  });
5157
- }
5293
+ },
5294
+ when: when
5158
5295
  }),
5159
5296
  _useEventListener4 = _slicedToArray(_useEventListener3, 2),
5160
5297
  bindWindowOrientationChangeListener = _useEventListener4[0],
@@ -5166,7 +5303,8 @@ this.primereact.hooks = (function (exports, React, utils, PrimeReact) {
5166
5303
  type: 'scroll',
5167
5304
  valid: true
5168
5305
  });
5169
- }
5306
+ },
5307
+ when: when
5170
5308
  }),
5171
5309
  _useOverlayScrollList2 = _slicedToArray(_useOverlayScrollList, 2),
5172
5310
  bindOverlayScrollListener = _useOverlayScrollList2[0],
@@ -10878,7 +11016,7 @@ this.primereact.checkbox = (function (exports, React, api, componentbase, hooks,
10878
11016
  return props.checked === props.trueValue;
10879
11017
  };
10880
11018
  var _onChange = function onChange(event) {
10881
- if (props.disabled || props.readonly) {
11019
+ if (props.disabled || props.readOnly) {
10882
11020
  return;
10883
11021
  }
10884
11022
  if (props.onChange) {
@@ -11824,7 +11962,7 @@ this.primereact.inputnumber = (function (exports, React, PrimeReact, componentba
11824
11962
  var stacked = props.showButtons && props.buttonLayout === 'stacked';
11825
11963
  var horizontal = props.showButtons && props.buttonLayout === 'horizontal';
11826
11964
  var vertical = props.showButtons && props.buttonLayout === 'vertical';
11827
- var inputMode = props.inputMode || (props.mode === 'decimal' && !props.minFractionDigits ? 'numeric' : 'decimal');
11965
+ var inputMode = props.inputMode || (props.mode === 'decimal' && !props.minFractionDigits && !props.maxFractionDigits ? 'numeric' : 'decimal');
11828
11966
  var getOptions = function getOptions() {
11829
11967
  var _props$minFractionDig, _props$maxFractionDig;
11830
11968
  return {
@@ -12259,6 +12397,10 @@ this.primereact.inputnumber = (function (exports, React, PrimeReact, componentba
12259
12397
  event.preventDefault();
12260
12398
  var _char2 = event.key;
12261
12399
  if (_char2) {
12400
+ // get decimal separator in current locale
12401
+ if (_char2 === '.') {
12402
+ _char2 = _decimalSeparator.current;
12403
+ }
12262
12404
  var _isDecimalSign = isDecimalSign(_char2);
12263
12405
  var _isMinusSign = isMinusSign(_char2);
12264
12406
  if (Number(_char2) >= 0 && Number(_char2) <= 9 || _isMinusSign || _isDecimalSign) {
@@ -12373,6 +12515,7 @@ this.primereact.inputnumber = (function (exports, React, PrimeReact, componentba
12373
12515
  suffixCharIndex = _getCharIndexes2.suffixCharIndex,
12374
12516
  currencyCharIndex = _getCharIndexes2.currencyCharIndex;
12375
12517
  var maxFractionDigits = numberFormat.current.resolvedOptions().maximumFractionDigits;
12518
+ var hasBoundOrAffix = props.min || props.max || props.suffix || props.prefix; //only exception
12376
12519
  var newValueStr;
12377
12520
  if (sign.isMinusSign) {
12378
12521
  var isNewMinusSign = minusCharIndex === -1;
@@ -12392,8 +12535,11 @@ this.primereact.inputnumber = (function (exports, React, PrimeReact, componentba
12392
12535
  newValueStr = insertText(inputValue, text, selectionStart, selectionEnd);
12393
12536
  updateValue(event, newValueStr, text, 'insert');
12394
12537
  } else if (decimalCharIndex === -1 && (maxFractionDigits || props.maxFractionDigits)) {
12395
- newValueStr = insertText(inputValue, text, selectionStart, selectionEnd);
12396
- updateValue(event, newValueStr, text, 'insert');
12538
+ var allowedDecimal = inputMode !== 'numeric' || inputMode === 'numeric' && hasBoundOrAffix;
12539
+ if (allowedDecimal) {
12540
+ newValueStr = insertText(inputValue, text, selectionStart, selectionEnd);
12541
+ updateValue(event, newValueStr, text, 'insert');
12542
+ }
12397
12543
  }
12398
12544
  } else {
12399
12545
  var operation = selectionStart !== selectionEnd ? 'range-insert' : 'insert';
@@ -13832,6 +13978,7 @@ this.primereact.dropdown = (function (exports, React, PrimeReact, componentbase,
13832
13978
  name: null,
13833
13979
  onBlur: null,
13834
13980
  onChange: null,
13981
+ onClick: null,
13835
13982
  onContextMenu: null,
13836
13983
  onFilter: null,
13837
13984
  onFocus: null,
@@ -14322,7 +14469,15 @@ this.primereact.dropdown = (function (exports, React, PrimeReact, componentbase,
14322
14469
  var type = _ref.type,
14323
14470
  valid = _ref.valid;
14324
14471
  if (valid) {
14325
- type === 'outside' ? !isClearClicked(event) && hide() : hide();
14472
+ if (type === 'outside') {
14473
+ if (!isClearClicked(event)) {
14474
+ hide();
14475
+ }
14476
+ } else if (context.hideOverlaysOnDocumentScrolling) {
14477
+ hide();
14478
+ } else if (!utils.DomHandler.isDocument(event.target)) {
14479
+ alignOverlay();
14480
+ }
14326
14481
  }
14327
14482
  },
14328
14483
  when: overlayVisibleState
@@ -14521,12 +14676,14 @@ this.primereact.dropdown = (function (exports, React, PrimeReact, componentbase,
14521
14676
  case 'ArrowRight':
14522
14677
  onArrowLeftKey(event, true);
14523
14678
  break;
14524
- case 'Escape':
14525
14679
  case 'Enter':
14526
14680
  case 'NumpadEnter':
14527
14681
  onEnterKey(event);
14528
14682
  event.preventDefault();
14529
14683
  break;
14684
+ case 'Escape':
14685
+ onEscapeKey(event);
14686
+ break;
14530
14687
  }
14531
14688
  };
14532
14689
  var hasFocusableElements = function hasFocusableElements() {
@@ -14693,15 +14850,24 @@ this.primereact.dropdown = (function (exports, React, PrimeReact, componentbase,
14693
14850
  !pressedInInputText && onEnterKey(event);
14694
14851
  };
14695
14852
  var onEnterKey = function onEnterKey(event) {
14853
+ event.preventDefault();
14696
14854
  if (!overlayVisibleState) {
14697
14855
  setFocusedOptionIndex(-1);
14698
14856
  onArrowDownKey(event);
14699
14857
  } else {
14700
- if (focusedOptionIndex !== -1) {
14701
- onOptionSelect(event, visibleOptions[focusedOptionIndex]);
14858
+ if (focusedOptionIndex === -1) {
14859
+ return;
14860
+ }
14861
+ var focusedOption = visibleOptions[focusedOptionIndex];
14862
+ var optionValue = getOptionValue(focusedOption);
14863
+ if (optionValue == null || optionValue == undefined) {
14864
+ hide();
14865
+ resetFilter();
14866
+ updateEditableLabel(selectedOption);
14867
+ return;
14702
14868
  }
14869
+ onOptionSelect(event, focusedOption);
14703
14870
  }
14704
- event.preventDefault();
14705
14871
  };
14706
14872
  var onEscapeKey = function onEscapeKey(event) {
14707
14873
  overlayVisibleState && hide();
@@ -15268,6 +15434,7 @@ this.primereact.dropdown = (function (exports, React, PrimeReact, componentbase,
15268
15434
  "in": overlayVisibleState,
15269
15435
  isOptionDisabled: isOptionDisabled,
15270
15436
  isSelected: isSelected,
15437
+ onOverlayHide: hide,
15271
15438
  onClick: onPanelClick,
15272
15439
  onEnter: onOverlayEnter,
15273
15440
  onEntered: onOverlayEntered,
@@ -15682,6 +15849,7 @@ this.primereact.dialog = (function (exports, React, PrimeReact, componentbase, c
15682
15849
  resizable: true,
15683
15850
  rtl: false,
15684
15851
  showHeader: true,
15852
+ showCloseIcon: true,
15685
15853
  style: null,
15686
15854
  transitionOptions: null,
15687
15855
  visible: false,
@@ -15813,7 +15981,7 @@ this.primereact.dialog = (function (exports, React, PrimeReact, componentbase, c
15813
15981
  var focus = function focus() {
15814
15982
  var activeElement = document.activeElement;
15815
15983
  var isActiveElementInDialog = activeElement && dialogRef.current && dialogRef.current.contains(activeElement);
15816
- if (!isActiveElementInDialog && props.closable && props.showHeader && closeRef.current) {
15984
+ if (!isActiveElementInDialog && props.closable && props.showCloseIcon && props.showHeader && closeRef.current) {
15817
15985
  closeRef.current.focus();
15818
15986
  }
15819
15987
  };
@@ -16119,7 +16287,7 @@ this.primereact.dialog = (function (exports, React, PrimeReact, componentbase, c
16119
16287
  };
16120
16288
  });
16121
16289
  var createCloseIcon = function createCloseIcon() {
16122
- if (props.closable) {
16290
+ if (props.closable && props.showCloseIcon) {
16123
16291
  var labelAria = props.ariaCloseIconLabel || PrimeReact.ariaLabel('close');
16124
16292
  var closeButtonIconProps = mergeProps({
16125
16293
  className: cx('closeButtonIcon'),
@@ -16705,6 +16873,7 @@ this.primereact.paginator = (function (exports, React, api, componentbase, hooks
16705
16873
  EQUALS: 'equals',
16706
16874
  NOT_EQUALS: 'notEquals',
16707
16875
  IN: 'in',
16876
+ NOT_IN: 'notIn',
16708
16877
  LESS_THAN: 'lt',
16709
16878
  LESS_THAN_OR_EQUAL_TO: 'lte',
16710
16879
  GREATER_THAN: 'gt',
@@ -16793,6 +16962,7 @@ this.primereact.paginator = (function (exports, React, api, componentbase, hooks
16793
16962
  emptySelectionMessage: 'No selected item',
16794
16963
  endsWith: 'Ends with',
16795
16964
  equals: 'Equals',
16965
+ fileChosenMessage: '{0} files',
16796
16966
  fileSizeTypes: ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'],
16797
16967
  filter: 'Filter',
16798
16968
  firstDayOfWeek: 0,
@@ -16811,6 +16981,7 @@ this.primereact.paginator = (function (exports, React, api, componentbase, hooks
16811
16981
  nextMonth: 'Next Month',
16812
16982
  nextSecond: 'Next Second',
16813
16983
  nextYear: 'Next Year',
16984
+ noFileChosenMessage: 'No file chosen',
16814
16985
  noFilter: 'No Filter',
16815
16986
  notContains: 'Not contains',
16816
16987
  notEquals: 'Not equals',
@@ -16838,8 +17009,10 @@ this.primereact.paginator = (function (exports, React, api, componentbase, hooks
16838
17009
  aria: {
16839
17010
  cancelEdit: 'Cancel Edit',
16840
17011
  close: 'Close',
17012
+ collapseLabel: 'Collapse',
16841
17013
  collapseRow: 'Row Collapsed',
16842
17014
  editRow: 'Edit Row',
17015
+ expandLabel: 'Expand',
16843
17016
  expandRow: 'Row Expanded',
16844
17017
  falseLabel: 'False',
16845
17018
  filterConstraint: 'Filter Constraint',
@@ -16864,18 +17037,20 @@ this.primereact.paginator = (function (exports, React, api, componentbase, hooks
16864
17037
  next: 'Next',
16865
17038
  nextPageLabel: 'Next Page',
16866
17039
  nullLabel: 'Not Selected',
16867
- pageLabel: 'Page {page}',
16868
17040
  otpLabel: 'Please enter one time password character {0}',
17041
+ pageLabel: 'Page {page}',
16869
17042
  passwordHide: 'Hide Password',
16870
17043
  passwordShow: 'Show Password',
16871
17044
  previous: 'Previous',
16872
17045
  prevPageLabel: 'Previous Page',
17046
+ removeLabel: 'Remove',
16873
17047
  rotateLeft: 'Rotate Left',
16874
17048
  rotateRight: 'Rotate Right',
16875
17049
  rowsPerPageLabel: 'Rows per page',
16876
17050
  saveEdit: 'Save Edit',
16877
17051
  scrollTop: 'Scroll Top',
16878
17052
  selectAll: 'All items selected',
17053
+ selectLabel: 'Select',
16879
17054
  selectRow: 'Row Selected',
16880
17055
  showFilterMenu: 'Show Filter Menu',
16881
17056
  slide: 'Slide',
@@ -16884,6 +17059,7 @@ this.primereact.paginator = (function (exports, React, api, componentbase, hooks
16884
17059
  stars: '{star} stars',
16885
17060
  trueLabel: 'True',
16886
17061
  unselectAll: 'All items unselected',
17062
+ unselectLabel: 'Unselect',
16887
17063
  unselectRow: 'Row Unselected',
16888
17064
  zoomImage: 'Zoom Image',
16889
17065
  zoomIn: 'Zoom In',
@@ -17875,7 +18051,7 @@ this.primereact.tree = (function (exports, React, api, componentbase, hooks, sea
17875
18051
  return props.checked === props.trueValue;
17876
18052
  };
17877
18053
  var _onChange = function onChange(event) {
17878
- if (props.disabled || props.readonly) {
18054
+ if (props.disabled || props.readOnly) {
17879
18055
  return;
17880
18056
  }
17881
18057
  if (props.onChange) {