primeng 20.1.1 → 20.2.0

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 (322) hide show
  1. package/accordion/index.d.ts +2 -2
  2. package/animateonscroll/index.d.ts +2 -2
  3. package/api/index.d.ts +4 -3
  4. package/autocomplete/index.d.ts +59 -13
  5. package/avatargroup/index.d.ts +2 -2
  6. package/badge/index.d.ts +5 -5
  7. package/base/index.d.ts +6 -6
  8. package/basecomponent/index.d.ts +1 -1
  9. package/baseeditableholder/index.d.ts +4 -4
  10. package/baseinput/index.d.ts +12 -12
  11. package/breadcrumb/index.d.ts +1 -2
  12. package/button/index.d.ts +10 -10
  13. package/card/index.d.ts +1 -1
  14. package/carousel/index.d.ts +6 -6
  15. package/cascadeselect/index.d.ts +9 -9
  16. package/checkbox/index.d.ts +3 -3
  17. package/chip/index.d.ts +14 -4
  18. package/classnames/index.d.ts +38 -0
  19. package/config/index.d.ts +2 -2
  20. package/confirmdialog/index.d.ts +3 -3
  21. package/contextmenu/index.d.ts +4 -4
  22. package/dataview/index.d.ts +1 -1
  23. package/datepicker/index.d.ts +1 -1
  24. package/dialog/index.d.ts +4 -3
  25. package/divider/index.d.ts +2 -2
  26. package/dock/index.d.ts +2 -2
  27. package/dom/index.d.ts +4 -4
  28. package/dynamicdialog/index.d.ts +14 -14
  29. package/editor/index.d.ts +92 -13
  30. package/fesm2022/primeng-accordion.mjs +33 -21
  31. package/fesm2022/primeng-accordion.mjs.map +1 -1
  32. package/fesm2022/primeng-animateonscroll.mjs +8 -8
  33. package/fesm2022/primeng-animateonscroll.mjs.map +1 -1
  34. package/fesm2022/primeng-api.mjs +31 -31
  35. package/fesm2022/primeng-autocomplete.mjs +180 -50
  36. package/fesm2022/primeng-autocomplete.mjs.map +1 -1
  37. package/fesm2022/primeng-autofocus.mjs +7 -7
  38. package/fesm2022/primeng-avatar.mjs +10 -10
  39. package/fesm2022/primeng-avatargroup.mjs +10 -10
  40. package/fesm2022/primeng-badge.mjs +15 -15
  41. package/fesm2022/primeng-badge.mjs.map +1 -1
  42. package/fesm2022/primeng-base.mjs +3 -3
  43. package/fesm2022/primeng-base.mjs.map +1 -1
  44. package/fesm2022/primeng-basecomponent.mjs +6 -6
  45. package/fesm2022/primeng-basecomponent.mjs.map +1 -1
  46. package/fesm2022/primeng-baseeditableholder.mjs +3 -3
  47. package/fesm2022/primeng-baseinput.mjs +3 -3
  48. package/fesm2022/primeng-baseinput.mjs.map +1 -1
  49. package/fesm2022/primeng-basemodelholder.mjs +3 -3
  50. package/fesm2022/primeng-blockui.mjs +10 -10
  51. package/fesm2022/primeng-breadcrumb.mjs +21 -21
  52. package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
  53. package/fesm2022/primeng-button.mjs +24 -23
  54. package/fesm2022/primeng-button.mjs.map +1 -1
  55. package/fesm2022/primeng-buttongroup.mjs +10 -10
  56. package/fesm2022/primeng-card.mjs +10 -10
  57. package/fesm2022/primeng-carousel.mjs +23 -23
  58. package/fesm2022/primeng-carousel.mjs.map +1 -1
  59. package/fesm2022/primeng-cascadeselect.mjs +31 -25
  60. package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
  61. package/fesm2022/primeng-chart.mjs +10 -10
  62. package/fesm2022/primeng-checkbox.mjs +15 -14
  63. package/fesm2022/primeng-checkbox.mjs.map +1 -1
  64. package/fesm2022/primeng-chip.mjs +48 -17
  65. package/fesm2022/primeng-chip.mjs.map +1 -1
  66. package/fesm2022/primeng-classnames.mjs +73 -0
  67. package/fesm2022/primeng-classnames.mjs.map +1 -0
  68. package/fesm2022/primeng-colorpicker.mjs +11 -11
  69. package/fesm2022/primeng-colorpicker.mjs.map +1 -1
  70. package/fesm2022/primeng-config.mjs +8 -7
  71. package/fesm2022/primeng-config.mjs.map +1 -1
  72. package/fesm2022/primeng-confirmdialog.mjs +16 -10
  73. package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
  74. package/fesm2022/primeng-confirmpopup.mjs +24 -22
  75. package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
  76. package/fesm2022/primeng-contextmenu.mjs +24 -22
  77. package/fesm2022/primeng-contextmenu.mjs.map +1 -1
  78. package/fesm2022/primeng-dataview.mjs +11 -11
  79. package/fesm2022/primeng-dataview.mjs.map +1 -1
  80. package/fesm2022/primeng-datepicker.mjs +23 -23
  81. package/fesm2022/primeng-datepicker.mjs.map +1 -1
  82. package/fesm2022/primeng-dialog.mjs +35 -16
  83. package/fesm2022/primeng-dialog.mjs.map +1 -1
  84. package/fesm2022/primeng-divider.mjs +10 -10
  85. package/fesm2022/primeng-dock.mjs +27 -25
  86. package/fesm2022/primeng-dock.mjs.map +1 -1
  87. package/fesm2022/primeng-dom.mjs +13 -10
  88. package/fesm2022/primeng-dom.mjs.map +1 -1
  89. package/fesm2022/primeng-dragdrop.mjs +10 -10
  90. package/fesm2022/primeng-drawer.mjs +28 -19
  91. package/fesm2022/primeng-drawer.mjs.map +1 -1
  92. package/fesm2022/primeng-dynamicdialog.mjs +48 -39
  93. package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
  94. package/fesm2022/primeng-editor.mjs +69 -11
  95. package/fesm2022/primeng-editor.mjs.map +1 -1
  96. package/fesm2022/primeng-fieldset.mjs +12 -11
  97. package/fesm2022/primeng-fieldset.mjs.map +1 -1
  98. package/fesm2022/primeng-fileupload.mjs +15 -15
  99. package/fesm2022/primeng-fileupload.mjs.map +1 -1
  100. package/fesm2022/primeng-floatlabel.mjs +10 -10
  101. package/fesm2022/primeng-fluid.mjs +10 -12
  102. package/fesm2022/primeng-fluid.mjs.map +1 -1
  103. package/fesm2022/primeng-focustrap.mjs +7 -7
  104. package/fesm2022/primeng-focustrap.mjs.map +1 -1
  105. package/fesm2022/primeng-galleria.mjs +42 -38
  106. package/fesm2022/primeng-galleria.mjs.map +1 -1
  107. package/fesm2022/primeng-iconfield.mjs +10 -10
  108. package/fesm2022/primeng-icons-angledoubledown.mjs +3 -3
  109. package/fesm2022/primeng-icons-angledoubleleft.mjs +3 -3
  110. package/fesm2022/primeng-icons-angledoubleright.mjs +3 -3
  111. package/fesm2022/primeng-icons-angledoubleup.mjs +3 -3
  112. package/fesm2022/primeng-icons-angledown.mjs +3 -3
  113. package/fesm2022/primeng-icons-angleleft.mjs +3 -3
  114. package/fesm2022/primeng-icons-angleright.mjs +3 -3
  115. package/fesm2022/primeng-icons-angleup.mjs +3 -3
  116. package/fesm2022/primeng-icons-arrowdown.mjs +3 -3
  117. package/fesm2022/primeng-icons-arrowdownleft.mjs +3 -3
  118. package/fesm2022/primeng-icons-arrowdownright.mjs +3 -3
  119. package/fesm2022/primeng-icons-arrowleft.mjs +3 -3
  120. package/fesm2022/primeng-icons-arrowright.mjs +3 -3
  121. package/fesm2022/primeng-icons-arrowup.mjs +3 -3
  122. package/fesm2022/primeng-icons-ban.mjs +3 -3
  123. package/fesm2022/primeng-icons-bars.mjs +3 -3
  124. package/fesm2022/primeng-icons-baseicon.mjs +6 -6
  125. package/fesm2022/primeng-icons-blank.mjs +3 -3
  126. package/fesm2022/primeng-icons-calendar.mjs +3 -3
  127. package/fesm2022/primeng-icons-caretleft.mjs +3 -3
  128. package/fesm2022/primeng-icons-caretright.mjs +3 -3
  129. package/fesm2022/primeng-icons-check.mjs +3 -3
  130. package/fesm2022/primeng-icons-chevrondown.mjs +3 -3
  131. package/fesm2022/primeng-icons-chevronleft.mjs +3 -3
  132. package/fesm2022/primeng-icons-chevronright.mjs +3 -3
  133. package/fesm2022/primeng-icons-chevronup.mjs +3 -3
  134. package/fesm2022/primeng-icons-exclamationtriangle.mjs +3 -3
  135. package/fesm2022/primeng-icons-eye.mjs +3 -3
  136. package/fesm2022/primeng-icons-eyeslash.mjs +3 -3
  137. package/fesm2022/primeng-icons-filter.mjs +3 -3
  138. package/fesm2022/primeng-icons-filterfill.mjs +3 -3
  139. package/fesm2022/primeng-icons-filterslash.mjs +3 -3
  140. package/fesm2022/primeng-icons-home.mjs +3 -3
  141. package/fesm2022/primeng-icons-infocircle.mjs +3 -3
  142. package/fesm2022/primeng-icons-minus.mjs +3 -3
  143. package/fesm2022/primeng-icons-pencil.mjs +3 -3
  144. package/fesm2022/primeng-icons-plus.mjs +3 -3
  145. package/fesm2022/primeng-icons-refresh.mjs +3 -3
  146. package/fesm2022/primeng-icons-search.mjs +3 -3
  147. package/fesm2022/primeng-icons-searchminus.mjs +3 -3
  148. package/fesm2022/primeng-icons-searchplus.mjs +3 -3
  149. package/fesm2022/primeng-icons-sortalt.mjs +3 -3
  150. package/fesm2022/primeng-icons-sortamountdown.mjs +3 -3
  151. package/fesm2022/primeng-icons-sortamountupalt.mjs +3 -3
  152. package/fesm2022/primeng-icons-spinner.mjs +3 -3
  153. package/fesm2022/primeng-icons-star.mjs +3 -3
  154. package/fesm2022/primeng-icons-starfill.mjs +3 -3
  155. package/fesm2022/primeng-icons-thlarge.mjs +3 -3
  156. package/fesm2022/primeng-icons-times.mjs +3 -3
  157. package/fesm2022/primeng-icons-timescircle.mjs +3 -3
  158. package/fesm2022/primeng-icons-trash.mjs +3 -3
  159. package/fesm2022/primeng-icons-undo.mjs +3 -3
  160. package/fesm2022/primeng-icons-upload.mjs +3 -3
  161. package/fesm2022/primeng-icons-windowmaximize.mjs +3 -3
  162. package/fesm2022/primeng-icons-windowminimize.mjs +3 -3
  163. package/fesm2022/primeng-iftalabel.mjs +10 -10
  164. package/fesm2022/primeng-image.mjs +19 -16
  165. package/fesm2022/primeng-image.mjs.map +1 -1
  166. package/fesm2022/primeng-imagecompare.mjs +10 -10
  167. package/fesm2022/primeng-inplace.mjs +16 -16
  168. package/fesm2022/primeng-inputgroup.mjs +10 -10
  169. package/fesm2022/primeng-inputgroupaddon.mjs +10 -10
  170. package/fesm2022/primeng-inputicon.mjs +10 -10
  171. package/fesm2022/primeng-inputmask.mjs +22 -13
  172. package/fesm2022/primeng-inputmask.mjs.map +1 -1
  173. package/fesm2022/primeng-inputnumber.mjs +52 -31
  174. package/fesm2022/primeng-inputnumber.mjs.map +1 -1
  175. package/fesm2022/primeng-inputotp.mjs +11 -11
  176. package/fesm2022/primeng-inputotp.mjs.map +1 -1
  177. package/fesm2022/primeng-inputtext.mjs +10 -10
  178. package/fesm2022/primeng-inputtext.mjs.map +1 -1
  179. package/fesm2022/primeng-keyfilter.mjs +19 -10
  180. package/fesm2022/primeng-keyfilter.mjs.map +1 -1
  181. package/fesm2022/primeng-knob.mjs +10 -10
  182. package/fesm2022/primeng-listbox.mjs +124 -43
  183. package/fesm2022/primeng-listbox.mjs.map +1 -1
  184. package/fesm2022/primeng-megamenu.mjs +22 -20
  185. package/fesm2022/primeng-megamenu.mjs.map +1 -1
  186. package/fesm2022/primeng-menu.mjs +35 -44
  187. package/fesm2022/primeng-menu.mjs.map +1 -1
  188. package/fesm2022/primeng-menubar.mjs +28 -27
  189. package/fesm2022/primeng-menubar.mjs.map +1 -1
  190. package/fesm2022/primeng-message.mjs +33 -30
  191. package/fesm2022/primeng-message.mjs.map +1 -1
  192. package/fesm2022/primeng-metergroup.mjs +27 -18
  193. package/fesm2022/primeng-metergroup.mjs.map +1 -1
  194. package/fesm2022/primeng-multiselect.mjs +58 -48
  195. package/fesm2022/primeng-multiselect.mjs.map +1 -1
  196. package/fesm2022/primeng-orderlist.mjs +149 -43
  197. package/fesm2022/primeng-orderlist.mjs.map +1 -1
  198. package/fesm2022/primeng-organizationchart.mjs +13 -13
  199. package/fesm2022/primeng-overlay.mjs +15 -11
  200. package/fesm2022/primeng-overlay.mjs.map +1 -1
  201. package/fesm2022/primeng-overlaybadge.mjs +10 -10
  202. package/fesm2022/primeng-paginator.mjs +11 -11
  203. package/fesm2022/primeng-paginator.mjs.map +1 -1
  204. package/fesm2022/primeng-panel.mjs +11 -11
  205. package/fesm2022/primeng-panel.mjs.map +1 -1
  206. package/fesm2022/primeng-panelmenu.mjs +27 -26
  207. package/fesm2022/primeng-panelmenu.mjs.map +1 -1
  208. package/fesm2022/primeng-password.mjs +25 -21
  209. package/fesm2022/primeng-password.mjs.map +1 -1
  210. package/fesm2022/primeng-picklist.mjs +129 -48
  211. package/fesm2022/primeng-picklist.mjs.map +1 -1
  212. package/fesm2022/primeng-popover.mjs +11 -11
  213. package/fesm2022/primeng-popover.mjs.map +1 -1
  214. package/fesm2022/primeng-progressbar.mjs +10 -10
  215. package/fesm2022/primeng-progressspinner.mjs +10 -10
  216. package/fesm2022/primeng-radiobutton.mjs +15 -15
  217. package/fesm2022/primeng-radiobutton.mjs.map +1 -1
  218. package/fesm2022/primeng-rating.mjs +11 -11
  219. package/fesm2022/primeng-rating.mjs.map +1 -1
  220. package/fesm2022/primeng-ripple.mjs +10 -10
  221. package/fesm2022/primeng-scroller.mjs +48 -24
  222. package/fesm2022/primeng-scroller.mjs.map +1 -1
  223. package/fesm2022/primeng-scrollpanel.mjs +19 -19
  224. package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
  225. package/fesm2022/primeng-scrolltop.mjs +10 -10
  226. package/fesm2022/primeng-select.mjs +56 -38
  227. package/fesm2022/primeng-select.mjs.map +1 -1
  228. package/fesm2022/primeng-selectbutton.mjs +12 -12
  229. package/fesm2022/primeng-selectbutton.mjs.map +1 -1
  230. package/fesm2022/primeng-skeleton.mjs +10 -10
  231. package/fesm2022/primeng-slider.mjs +14 -14
  232. package/fesm2022/primeng-slider.mjs.map +1 -1
  233. package/fesm2022/primeng-speeddial.mjs +32 -24
  234. package/fesm2022/primeng-speeddial.mjs.map +1 -1
  235. package/fesm2022/primeng-splitbutton.mjs +15 -15
  236. package/fesm2022/primeng-splitbutton.mjs.map +1 -1
  237. package/fesm2022/primeng-splitter.mjs +21 -21
  238. package/fesm2022/primeng-splitter.mjs.map +1 -1
  239. package/fesm2022/primeng-stepper.mjs +43 -43
  240. package/fesm2022/primeng-stepper.mjs.map +1 -1
  241. package/fesm2022/primeng-steps.mjs +15 -15
  242. package/fesm2022/primeng-steps.mjs.map +1 -1
  243. package/fesm2022/primeng-styleclass.mjs +8 -8
  244. package/fesm2022/primeng-styleclass.mjs.map +1 -1
  245. package/fesm2022/primeng-table.mjs +178 -158
  246. package/fesm2022/primeng-table.mjs.map +1 -1
  247. package/fesm2022/primeng-tabs.mjs +99 -55
  248. package/fesm2022/primeng-tabs.mjs.map +1 -1
  249. package/fesm2022/primeng-tag.mjs +10 -10
  250. package/fesm2022/primeng-tag.mjs.map +1 -1
  251. package/fesm2022/primeng-terminal.mjs +13 -13
  252. package/fesm2022/primeng-textarea.mjs +11 -11
  253. package/fesm2022/primeng-textarea.mjs.map +1 -1
  254. package/fesm2022/primeng-tieredmenu.mjs +26 -25
  255. package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
  256. package/fesm2022/primeng-timeline.mjs +10 -10
  257. package/fesm2022/primeng-toast.mjs +14 -13
  258. package/fesm2022/primeng-toast.mjs.map +1 -1
  259. package/fesm2022/primeng-togglebutton.mjs +20 -13
  260. package/fesm2022/primeng-togglebutton.mjs.map +1 -1
  261. package/fesm2022/primeng-toggleswitch.mjs +10 -10
  262. package/fesm2022/primeng-toolbar.mjs +10 -10
  263. package/fesm2022/primeng-tooltip.mjs +16 -15
  264. package/fesm2022/primeng-tooltip.mjs.map +1 -1
  265. package/fesm2022/primeng-tree.mjs +170 -221
  266. package/fesm2022/primeng-tree.mjs.map +1 -1
  267. package/fesm2022/primeng-treeselect.mjs +17 -17
  268. package/fesm2022/primeng-treeselect.mjs.map +1 -1
  269. package/fesm2022/primeng-treetable.mjs +84 -77
  270. package/fesm2022/primeng-treetable.mjs.map +1 -1
  271. package/fesm2022/primeng-usestyle.mjs +20 -18
  272. package/fesm2022/primeng-usestyle.mjs.map +1 -1
  273. package/fesm2022/primeng-utils.mjs.map +1 -1
  274. package/fieldset/index.d.ts +3 -2
  275. package/fileupload/index.d.ts +6 -6
  276. package/fluid/index.d.ts +0 -2
  277. package/galleria/index.d.ts +10 -10
  278. package/icons/baseicon/index.d.ts +1 -1
  279. package/image/index.d.ts +7 -7
  280. package/inputnumber/index.d.ts +7 -7
  281. package/inputotp/index.d.ts +3 -3
  282. package/inputtext/index.d.ts +6 -6
  283. package/keyfilter/index.d.ts +2 -2
  284. package/listbox/index.d.ts +31 -19
  285. package/megamenu/index.d.ts +1 -1
  286. package/menu/index.d.ts +1 -2
  287. package/message/index.d.ts +3 -2
  288. package/metergroup/index.d.ts +6 -6
  289. package/multiselect/index.d.ts +18 -17
  290. package/orderlist/index.d.ts +13 -7
  291. package/organizationchart/index.d.ts +2 -2
  292. package/overlay/index.d.ts +5 -5
  293. package/package.json +224 -220
  294. package/paginator/index.d.ts +1 -1
  295. package/panel/index.d.ts +2 -2
  296. package/panelmenu/index.d.ts +8 -8
  297. package/password/index.d.ts +6 -6
  298. package/picklist/index.d.ts +17 -12
  299. package/radiobutton/index.d.ts +3 -3
  300. package/rating/index.d.ts +1 -1
  301. package/scroller/index.d.ts +7 -3
  302. package/select/index.d.ts +11 -11
  303. package/selectbutton/index.d.ts +3 -3
  304. package/slider/index.d.ts +2 -2
  305. package/speeddial/index.d.ts +9 -9
  306. package/splitter/index.d.ts +3 -3
  307. package/stepper/index.d.ts +4 -4
  308. package/steps/index.d.ts +3 -3
  309. package/table/index.d.ts +39 -31
  310. package/tabs/index.d.ts +23 -8
  311. package/tag/index.d.ts +1 -1
  312. package/textarea/index.d.ts +6 -6
  313. package/tieredmenu/index.d.ts +1 -1
  314. package/toast/index.d.ts +5 -5
  315. package/togglebutton/index.d.ts +4 -3
  316. package/toggleswitch/index.d.ts +1 -1
  317. package/tooltip/index.d.ts +11 -11
  318. package/tree/index.d.ts +31 -46
  319. package/treeselect/index.d.ts +6 -6
  320. package/treetable/index.d.ts +10 -10
  321. package/usestyle/index.d.ts +2 -2
  322. package/utils/index.d.ts +2 -2
@@ -67,10 +67,10 @@ class InputNumberStyle extends BaseStyle {
67
67
  name = 'inputnumber';
68
68
  theme = theme;
69
69
  classes = classes;
70
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: InputNumberStyle, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
71
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: InputNumberStyle });
70
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: InputNumberStyle, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
71
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: InputNumberStyle });
72
72
  }
73
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: InputNumberStyle, decorators: [{
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: InputNumberStyle, decorators: [{
74
74
  type: Injectable
75
75
  }] });
76
76
  /**
@@ -348,7 +348,7 @@ class InputNumber extends BaseInput {
348
348
  _numeral;
349
349
  numberFormat;
350
350
  _decimal;
351
- _decimalChar;
351
+ _decimalChar = '';
352
352
  _group;
353
353
  _minusSign;
354
354
  _currency;
@@ -390,18 +390,33 @@ class InputNumber extends BaseInput {
390
390
  });
391
391
  }
392
392
  getOptions() {
393
+ // Validate fraction digits according to Intl.NumberFormat specifications
394
+ // Handle potential NaN, Infinity, or invalid values
395
+ const validateFractionDigits = (value, min, max) => {
396
+ if (value == null || isNaN(value) || !isFinite(value)) {
397
+ return undefined;
398
+ }
399
+ return Math.max(min, Math.min(max, Math.floor(value)));
400
+ };
401
+ const minFractionDigits = validateFractionDigits(this.minFractionDigits, 0, 20);
402
+ const maxFractionDigits = validateFractionDigits(this.maxFractionDigits, 0, 100);
403
+ // Ensure minFractionDigits <= maxFractionDigits
404
+ const validatedMinFractionDigits = minFractionDigits != null && maxFractionDigits != null && minFractionDigits > maxFractionDigits ? maxFractionDigits : minFractionDigits;
393
405
  return {
394
406
  localeMatcher: this.localeMatcher,
395
407
  style: this.mode,
396
408
  currency: this.currency,
397
409
  currencyDisplay: this.currencyDisplay,
398
410
  useGrouping: this.useGrouping,
399
- minimumFractionDigits: this.minFractionDigits ?? undefined,
400
- maximumFractionDigits: this.maxFractionDigits ?? undefined
411
+ minimumFractionDigits: validatedMinFractionDigits,
412
+ maximumFractionDigits: maxFractionDigits
401
413
  };
402
414
  }
403
415
  constructParser() {
404
- this.numberFormat = new Intl.NumberFormat(this.locale, this.getOptions());
416
+ const options = this.getOptions();
417
+ // Remove any properties with undefined or invalid values to let Intl.NumberFormat use defaults
418
+ const cleanOptions = Object.fromEntries(Object.entries(options).filter(([_key, value]) => value !== undefined));
419
+ this.numberFormat = new Intl.NumberFormat(this.locale, cleanOptions);
405
420
  const numerals = [...new Intl.NumberFormat(this.locale, { useGrouping: false }).format(9876543210)].reverse();
406
421
  const index = new Map(numerals.map((d, i) => [d, i]));
407
422
  this._numeral = new RegExp(`[${numerals.join('')}]`, 'g');
@@ -508,9 +523,9 @@ class InputNumber extends BaseInput {
508
523
  return '';
509
524
  }
510
525
  parseValue(text) {
511
- const suffixRegex = new RegExp(this._suffix, '');
512
- const prefixRegex = new RegExp(this._prefix, '');
513
- const currencyRegex = new RegExp(this._currency, '');
526
+ const suffixRegex = this._suffix ? new RegExp(this._suffix, '') : /(?:)/;
527
+ const prefixRegex = this._prefix ? new RegExp(this._prefix, '') : /(?:)/;
528
+ const currencyRegex = this._currency ? new RegExp(this._currency, '') : /(?:)/;
514
529
  let filteredText = text
515
530
  .replace(suffixRegex, '')
516
531
  .replace(prefixRegex, '')
@@ -545,7 +560,8 @@ class InputNumber extends BaseInput {
545
560
  let step = (this.step() ?? 1) * dir;
546
561
  let currentValue = this.parseValue(this.input?.nativeElement.value) || 0;
547
562
  let newValue = this.validateValue(currentValue + step);
548
- if (this.maxlength() && this.maxlength() < this.formatValue(newValue).length) {
563
+ const max = this.maxlength();
564
+ if (max && max < this.formatValue(newValue).length) {
549
565
  return;
550
566
  }
551
567
  this.updateInput(newValue, null, 'spin', null);
@@ -712,7 +728,7 @@ class InputNumber extends BaseInput {
712
728
  newValueStr = inputValue.slice(0, selectionStart - 1) + inputValue.slice(selectionStart);
713
729
  }
714
730
  }
715
- else if (this.mode === 'currency' && deleteChar.search(this._currency) != -1) {
731
+ else if (this.mode === 'currency' && this._currency && deleteChar.search(this._currency) != -1) {
716
732
  newValueStr = inputValue.slice(1);
717
733
  }
718
734
  this.updateValue(event, newValueStr, null, 'delete-single');
@@ -808,7 +824,8 @@ class InputNumber extends BaseInput {
808
824
  this.insert(event, char, { isDecimalSign, isMinusSign });
809
825
  return;
810
826
  }
811
- if (this.maxlength() && newValueStr.length > this.maxlength()) {
827
+ const max = this.maxlength();
828
+ if (max && newValueStr.length > max) {
812
829
  return;
813
830
  }
814
831
  if ((48 <= code && code <= 57) || isMinusSign || isDecimalSign) {
@@ -834,7 +851,8 @@ class InputNumber extends BaseInput {
834
851
  }
835
852
  }
836
853
  allowMinusSign() {
837
- return this.min() == null || this.min() < 0;
854
+ const min = this.min();
855
+ return min == null || min < 0;
838
856
  }
839
857
  isMinusSign(char) {
840
858
  if (this._minusSign.test(char) || char === '-') {
@@ -1059,11 +1077,13 @@ class InputNumber extends BaseInput {
1059
1077
  if (value === '-' || value == null) {
1060
1078
  return null;
1061
1079
  }
1062
- if (this.min() != null && value < this.min()) {
1080
+ const min = this.min();
1081
+ const max = this.max();
1082
+ if (min != null && value < min) {
1063
1083
  return this.min();
1064
1084
  }
1065
- if (this.max() != null && value > this.max()) {
1066
- return this.max();
1085
+ if (max != null && value > max) {
1086
+ return max;
1067
1087
  }
1068
1088
  return value;
1069
1089
  }
@@ -1085,12 +1105,13 @@ class InputNumber extends BaseInput {
1085
1105
  else {
1086
1106
  let selectionStart = this.input.nativeElement.selectionStart;
1087
1107
  let selectionEnd = this.input.nativeElement.selectionEnd;
1088
- if (this.maxlength() && newValue.length > this.maxlength()) {
1089
- newValue = newValue.slice(0, this.maxlength());
1090
- selectionStart = Math.min(selectionStart, this.maxlength());
1091
- selectionEnd = Math.min(selectionEnd, this.maxlength());
1108
+ const maxlength = this.maxlength();
1109
+ if (maxlength && newValue.length > maxlength) {
1110
+ newValue = newValue.slice(0, maxlength);
1111
+ selectionStart = Math.min(selectionStart, maxlength);
1112
+ selectionEnd = Math.min(selectionEnd, maxlength);
1092
1113
  }
1093
- if (this.maxlength() && this.maxlength() < newValue.length) {
1114
+ if (maxlength && maxlength < newValue.length) {
1094
1115
  return;
1095
1116
  }
1096
1117
  this.input.nativeElement.value = newValue;
@@ -1214,8 +1235,8 @@ class InputNumber extends BaseInput {
1214
1235
  clearInterval(this.timer);
1215
1236
  }
1216
1237
  }
1217
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: InputNumber, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
1218
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "20.2.1", type: InputNumber, isStandalone: true, selector: "p-inputNumber, p-inputnumber, p-input-number", inputs: { showButtons: ["showButtons", "showButtons", booleanAttribute], format: ["format", "format", booleanAttribute], buttonLayout: "buttonLayout", inputId: "inputId", styleClass: "styleClass", placeholder: "placeholder", tabindex: ["tabindex", "tabindex", numberAttribute], title: "title", ariaLabelledBy: "ariaLabelledBy", ariaDescribedBy: "ariaDescribedBy", ariaLabel: "ariaLabel", ariaRequired: ["ariaRequired", "ariaRequired", booleanAttribute], autocomplete: "autocomplete", incrementButtonClass: "incrementButtonClass", decrementButtonClass: "decrementButtonClass", incrementButtonIcon: "incrementButtonIcon", decrementButtonIcon: "decrementButtonIcon", readonly: ["readonly", "readonly", booleanAttribute], allowEmpty: ["allowEmpty", "allowEmpty", booleanAttribute], locale: "locale", localeMatcher: "localeMatcher", mode: "mode", currency: "currency", currencyDisplay: "currencyDisplay", useGrouping: ["useGrouping", "useGrouping", booleanAttribute], minFractionDigits: ["minFractionDigits", "minFractionDigits", (value) => numberAttribute(value, null)], maxFractionDigits: ["maxFractionDigits", "maxFractionDigits", (value) => numberAttribute(value, null)], prefix: "prefix", suffix: "suffix", inputStyle: "inputStyle", inputStyleClass: "inputStyleClass", showClear: ["showClear", "showClear", booleanAttribute], autofocus: ["autofocus", "autofocus", booleanAttribute] }, outputs: { onInput: "onInput", onFocus: "onFocus", onBlur: "onBlur", onKeyDown: "onKeyDown", onClear: "onClear" }, host: { properties: { "attr.data-pc-name": "'inputnumber'", "attr.data-pc-section": "'root'", "class": "cn(cx('root'), styleClass)" } }, providers: [INPUTNUMBER_VALUE_ACCESSOR, InputNumberStyle], queries: [{ propertyName: "clearIconTemplate", first: true, predicate: ["clearicon"] }, { propertyName: "incrementButtonIconTemplate", first: true, predicate: ["incrementbuttonicon"] }, { propertyName: "decrementButtonIconTemplate", first: true, predicate: ["decrementbuttonicon"] }, { propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
1238
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: InputNumber, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
1239
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "20.3.2", type: InputNumber, isStandalone: true, selector: "p-inputNumber, p-inputnumber, p-input-number", inputs: { showButtons: ["showButtons", "showButtons", booleanAttribute], format: ["format", "format", booleanAttribute], buttonLayout: "buttonLayout", inputId: "inputId", styleClass: "styleClass", placeholder: "placeholder", tabindex: ["tabindex", "tabindex", numberAttribute], title: "title", ariaLabelledBy: "ariaLabelledBy", ariaDescribedBy: "ariaDescribedBy", ariaLabel: "ariaLabel", ariaRequired: ["ariaRequired", "ariaRequired", booleanAttribute], autocomplete: "autocomplete", incrementButtonClass: "incrementButtonClass", decrementButtonClass: "decrementButtonClass", incrementButtonIcon: "incrementButtonIcon", decrementButtonIcon: "decrementButtonIcon", readonly: ["readonly", "readonly", booleanAttribute], allowEmpty: ["allowEmpty", "allowEmpty", booleanAttribute], locale: "locale", localeMatcher: "localeMatcher", mode: "mode", currency: "currency", currencyDisplay: "currencyDisplay", useGrouping: ["useGrouping", "useGrouping", booleanAttribute], minFractionDigits: ["minFractionDigits", "minFractionDigits", (value) => numberAttribute(value, undefined)], maxFractionDigits: ["maxFractionDigits", "maxFractionDigits", (value) => numberAttribute(value, undefined)], prefix: "prefix", suffix: "suffix", inputStyle: "inputStyle", inputStyleClass: "inputStyleClass", showClear: ["showClear", "showClear", booleanAttribute], autofocus: ["autofocus", "autofocus", booleanAttribute] }, outputs: { onInput: "onInput", onFocus: "onFocus", onBlur: "onBlur", onKeyDown: "onKeyDown", onClear: "onClear" }, host: { properties: { "attr.data-pc-name": "'inputnumber'", "attr.data-pc-section": "'root'", "class": "cn(cx('root'), styleClass)" } }, providers: [INPUTNUMBER_VALUE_ACCESSOR, InputNumberStyle], queries: [{ propertyName: "clearIconTemplate", first: true, predicate: ["clearicon"] }, { propertyName: "incrementButtonIconTemplate", first: true, predicate: ["incrementbuttonicon"] }, { propertyName: "decrementButtonIconTemplate", first: true, predicate: ["decrementbuttonicon"] }, { propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
1219
1240
  <input
1220
1241
  pInputText
1221
1242
  #input
@@ -1349,7 +1370,7 @@ class InputNumber extends BaseInput {
1349
1370
  </button>
1350
1371
  `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: InputText, selector: "[pInputText]", inputs: ["pSize", "variant", "fluid", "invalid"] }, { kind: "directive", type: AutoFocus, selector: "[pAutoFocus]", inputs: ["pAutoFocus"] }, { kind: "component", type: TimesIcon, selector: "[data-p-icon=\"times\"]" }, { kind: "component", type: AngleUpIcon, selector: "[data-p-icon=\"angle-up\"]" }, { kind: "component", type: AngleDownIcon, selector: "[data-p-icon=\"angle-down\"]" }, { kind: "ngmodule", type: SharedModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1351
1372
  }
1352
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: InputNumber, decorators: [{
1373
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: InputNumber, decorators: [{
1353
1374
  type: Component,
1354
1375
  args: [{
1355
1376
  selector: 'p-inputNumber, p-inputnumber, p-input-number',
@@ -1556,10 +1577,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
1556
1577
  args: [{ transform: booleanAttribute }]
1557
1578
  }], minFractionDigits: [{
1558
1579
  type: Input,
1559
- args: [{ transform: (value) => numberAttribute(value, null) }]
1580
+ args: [{ transform: (value) => numberAttribute(value, undefined) }]
1560
1581
  }], maxFractionDigits: [{
1561
1582
  type: Input,
1562
- args: [{ transform: (value) => numberAttribute(value, null) }]
1583
+ args: [{ transform: (value) => numberAttribute(value, undefined) }]
1563
1584
  }], prefix: [{
1564
1585
  type: Input
1565
1586
  }], suffix: [{
@@ -1601,11 +1622,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
1601
1622
  args: ['input']
1602
1623
  }] } });
1603
1624
  class InputNumberModule {
1604
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: InputNumberModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1605
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.2.1", ngImport: i0, type: InputNumberModule, imports: [InputNumber, SharedModule], exports: [InputNumber, SharedModule] });
1606
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: InputNumberModule, imports: [InputNumber, SharedModule, SharedModule] });
1625
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: InputNumberModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1626
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.2", ngImport: i0, type: InputNumberModule, imports: [InputNumber, SharedModule], exports: [InputNumber, SharedModule] });
1627
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: InputNumberModule, imports: [InputNumber, SharedModule, SharedModule] });
1607
1628
  }
1608
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: InputNumberModule, decorators: [{
1629
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: InputNumberModule, decorators: [{
1609
1630
  type: NgModule,
1610
1631
  args: [{
1611
1632
  imports: [InputNumber, SharedModule],