primeng 18.0.0-beta.1 → 18.0.0-beta.2

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 (470) hide show
  1. package/README.md +1 -1
  2. package/accordion/accordion.d.ts +1 -1
  3. package/accordion/style/accordionstyle.d.ts +37 -0
  4. package/api/translation.d.ts +2 -0
  5. package/autocomplete/autocomplete.d.ts +2 -3
  6. package/autocomplete/style/autocompletestyle.d.ts +69 -0
  7. package/avatar/style/avatarstyle.d.ts +25 -0
  8. package/avatargroup/style/avatargroupstyle.d.ts +14 -0
  9. package/badge/style/badgestyle.d.ts +17 -0
  10. package/base/style/basestyle.d.ts +4 -0
  11. package/blockui/blockui.d.ts +1 -1
  12. package/blockui/style/blockuistyle.d.ts +17 -0
  13. package/breadcrumb/style/breadcrumbstyle.d.ts +45 -0
  14. package/button/style/buttonstyle.d.ts +29 -0
  15. package/buttongroup/style/buttongroupstyle.d.ts +17 -0
  16. package/card/style/cardstyle.d.ts +45 -0
  17. package/carousel/style/carouselstyle.d.ts +69 -0
  18. package/cascadeselect/cascadeselect.d.ts +2 -2
  19. package/cascadeselect/style/cascadeselectstyle.d.ts +65 -0
  20. package/checkbox/style/checkboxstyle.d.ts +29 -0
  21. package/chip/style/chipstyle.d.ts +33 -0
  22. package/colorpicker/colorpicker.d.ts +1 -1
  23. package/colorpicker/style/colorpickerstyle.d.ts +45 -0
  24. package/confirmdialog/confirmdialog.d.ts +1 -1
  25. package/confirmdialog/style/confirmdialogstyle.d.ts +33 -0
  26. package/confirmpopup/confirmpopup.d.ts +3 -3
  27. package/confirmpopup/style/confirmpopupstyle.d.ts +41 -0
  28. package/contextmenu/contextmenu.d.ts +2 -2
  29. package/contextmenu/style/contextmenustyle.d.ts +54 -0
  30. package/dataview/dataview.d.ts +1 -1
  31. package/dataview/style/dataviewstyle.d.ts +37 -0
  32. package/datepicker/datepicker.d.ts +1 -1
  33. package/datepicker/style/datepickerstyle.d.ts +165 -0
  34. package/dialog/style/dialogstyle.d.ts +49 -0
  35. package/divider/style/dividerstyle.d.ts +21 -0
  36. package/dock/style/dockstyle.d.ts +41 -0
  37. package/drawer/style/drawerstyle.d.ts +37 -0
  38. package/dropdown/style/dropdownstyle.d.ts +14 -0
  39. package/dynamicdialog/style/dynamicdialogstyle.d.ts +49 -0
  40. package/editor/style/editorstyle.d.ts +25 -0
  41. package/esm2022/accordion/accordion.mjs +3 -3
  42. package/esm2022/accordion/style/accordionstyle.mjs +37 -1
  43. package/esm2022/api/primengconfig.mjs +3 -1
  44. package/esm2022/api/translation.mjs +1 -1
  45. package/esm2022/autocomplete/autocomplete.mjs +4 -4
  46. package/esm2022/autocomplete/style/autocompletestyle.mjs +69 -1
  47. package/esm2022/avatar/style/avatarstyle.mjs +25 -1
  48. package/esm2022/avatargroup/style/avatargroupstyle.mjs +14 -1
  49. package/esm2022/badge/style/badgestyle.mjs +17 -1
  50. package/esm2022/basecomponent/basecomponent.mjs +3 -4
  51. package/esm2022/blockui/blockui.mjs +3 -3
  52. package/esm2022/blockui/style/blockuistyle.mjs +17 -1
  53. package/esm2022/breadcrumb/style/breadcrumbstyle.mjs +45 -1
  54. package/esm2022/button/style/buttonstyle.mjs +29 -1
  55. package/esm2022/buttongroup/style/buttongroupstyle.mjs +17 -1
  56. package/esm2022/card/style/cardstyle.mjs +45 -1
  57. package/esm2022/carousel/style/carouselstyle.mjs +69 -1
  58. package/esm2022/cascadeselect/cascadeselect.mjs +15 -19
  59. package/esm2022/cascadeselect/style/cascadeselectstyle.mjs +65 -1
  60. package/esm2022/checkbox/checkbox.mjs +1 -1
  61. package/esm2022/checkbox/style/checkboxstyle.mjs +29 -1
  62. package/esm2022/chip/style/chipstyle.mjs +33 -1
  63. package/esm2022/colorpicker/colorpicker.mjs +3 -3
  64. package/esm2022/colorpicker/style/colorpickerstyle.mjs +45 -1
  65. package/esm2022/confirmdialog/confirmdialog.mjs +3 -3
  66. package/esm2022/confirmdialog/style/confirmdialogstyle.mjs +33 -1
  67. package/esm2022/confirmpopup/confirmpopup.mjs +11 -11
  68. package/esm2022/confirmpopup/style/confirmpopupstyle.mjs +41 -1
  69. package/esm2022/contextmenu/contextmenu.mjs +15 -15
  70. package/esm2022/contextmenu/style/contextmenustyle.mjs +54 -1
  71. package/esm2022/dataview/dataview.mjs +3 -3
  72. package/esm2022/dataview/style/dataviewstyle.mjs +37 -1
  73. package/esm2022/datepicker/datepicker.mjs +3 -3
  74. package/esm2022/datepicker/style/datepickerstyle.mjs +165 -1
  75. package/esm2022/dialog/style/dialogstyle.mjs +49 -1
  76. package/esm2022/divider/style/dividerstyle.mjs +21 -1
  77. package/esm2022/dock/style/dockstyle.mjs +41 -1
  78. package/esm2022/drawer/drawer.mjs +3 -3
  79. package/esm2022/drawer/style/drawerstyle.mjs +37 -1
  80. package/esm2022/dropdown/dropdown.mjs +9 -9
  81. package/esm2022/dropdown/style/dropdownstyle.mjs +4 -1
  82. package/esm2022/dynamicdialog/style/dynamicdialogstyle.mjs +49 -1
  83. package/esm2022/editor/style/editorstyle.mjs +25 -1
  84. package/esm2022/fieldset/style/fieldsetstyle.mjs +37 -1
  85. package/esm2022/fileupload/fileupload.interface.mjs +1 -1
  86. package/esm2022/fileupload/fileupload.mjs +46 -13
  87. package/esm2022/fileupload/style/fileuploadstyle.mjs +73 -1
  88. package/esm2022/floatlabel/style/floatlabelstyle.mjs +17 -1
  89. package/esm2022/fluid/style/fluidstyle.mjs +17 -1
  90. package/esm2022/galleria/style/galleriastyle.mjs +125 -1
  91. package/esm2022/iconfield/style/iconfieldstyle.mjs +23 -4
  92. package/esm2022/image/style/imagestyle.mjs +57 -1
  93. package/esm2022/inplace/style/inplacestyle.mjs +25 -1
  94. package/esm2022/inputgroup/style/inputgroupstyle.mjs +24 -8
  95. package/esm2022/inputmask/inputmask.mjs +1 -1
  96. package/esm2022/inputmask/style/inputmaskstyle.mjs +17 -1
  97. package/esm2022/inputnumber/inputnumber.mjs +3 -3
  98. package/esm2022/inputnumber/style/inputnumberstyle.mjs +33 -1
  99. package/esm2022/inputotp/inputotp.mjs +3 -3
  100. package/esm2022/inputotp/style/inputotpstyle.mjs +21 -1
  101. package/esm2022/inputtext/style/inputtextstyle.mjs +17 -1
  102. package/esm2022/inputtextarea/style/textareastyle.mjs +17 -1
  103. package/esm2022/knob/style/knobstyle.mjs +29 -1
  104. package/esm2022/listbox/listbox.mjs +9 -9
  105. package/esm2022/listbox/style/listboxstyle.mjs +53 -1
  106. package/esm2022/megamenu/megamenu.mjs +15 -15
  107. package/esm2022/megamenu/style/megamenustyle.mjs +81 -1
  108. package/esm2022/menu/style/menustyle.mjs +57 -1
  109. package/esm2022/menubar/style/menubarstyle.mjs +65 -1
  110. package/esm2022/message/style/messagestyle.mjs +38 -2
  111. package/esm2022/metergroup/metergroup.mjs +10 -10
  112. package/esm2022/metergroup/style/metergroupstyle.mjs +45 -1
  113. package/esm2022/multiselect/multiselect.mjs +53 -53
  114. package/esm2022/multiselect/style/multiselectstyle.mjs +85 -1
  115. package/esm2022/orderlist/orderlist.mjs +3 -3
  116. package/esm2022/orderlist/style/orderliststyle.mjs +21 -1
  117. package/esm2022/organizationchart/organizationchart.mjs +3 -3
  118. package/esm2022/organizationchart/style/organizationchartstyle.mjs +53 -1
  119. package/esm2022/overlay/overlay.mjs +1 -1
  120. package/esm2022/overlaypanel/style/popoverstyle.mjs +21 -1
  121. package/esm2022/paginator/paginator.mjs +6 -6
  122. package/esm2022/paginator/style/paginatorstyle.mjs +81 -1
  123. package/esm2022/panel/style/panelstyle.mjs +45 -1
  124. package/esm2022/panelmenu/panelmenu.mjs +22 -22
  125. package/esm2022/panelmenu/style/panelmenustyle.mjs +83 -2
  126. package/esm2022/password/style/passwordstyle.mjs +45 -1
  127. package/esm2022/picklist/picklist.mjs +3 -3
  128. package/esm2022/picklist/style/pickliststyle.mjs +37 -1
  129. package/esm2022/progressbar/progressbar.mjs +3 -3
  130. package/esm2022/progressbar/style/progressbarstyle.mjs +25 -1
  131. package/esm2022/progressspinner/progressspinner.mjs +3 -3
  132. package/esm2022/progressspinner/style/progressspinnerstyle.mjs +25 -1
  133. package/esm2022/radiobutton/radiobutton.mjs +4 -4
  134. package/esm2022/radiobutton/style/radiobuttonstyle.mjs +29 -1
  135. package/esm2022/rating/rating.mjs +1 -1
  136. package/esm2022/rating/style/ratingstyle.mjs +29 -1
  137. package/esm2022/ripple/ripple.mjs +17 -12
  138. package/esm2022/ripple/style/ripplestyle.mjs +17 -1
  139. package/esm2022/scroller/scroller.mjs +5 -5
  140. package/esm2022/scroller/style/scrollerstyle.mjs +104 -0
  141. package/esm2022/scrollpanel/scrollpanel.mjs +3 -3
  142. package/esm2022/scrollpanel/style/scrollpanelstyle.mjs +33 -1
  143. package/esm2022/scrolltop/scrolltop.mjs +3 -3
  144. package/esm2022/scrolltop/style/scrolltopstyle.mjs +21 -1
  145. package/esm2022/select/public_api.mjs +2 -1
  146. package/esm2022/select/select.mjs +10 -10
  147. package/esm2022/select/style/selectstyle.mjs +85 -1
  148. package/esm2022/selectbutton/selectbutton.mjs +8 -8
  149. package/esm2022/selectbutton/style/selectbuttonstyle.mjs +17 -1
  150. package/esm2022/skeleton/style/skeletonstyle.mjs +17 -1
  151. package/esm2022/slider/style/sliderstyle.mjs +25 -1
  152. package/esm2022/speeddial/speeddial.mjs +3 -3
  153. package/esm2022/speeddial/style/speeddialstyle.mjs +41 -1
  154. package/esm2022/splitbutton/splitbutton.mjs +8 -8
  155. package/esm2022/splitbutton/style/splitbuttonstyle.mjs +25 -1
  156. package/esm2022/splitter/style/splitterstyle.mjs +25 -1
  157. package/esm2022/stepper/stepper.mjs +26 -26
  158. package/esm2022/stepper/style/stepperstyle.mjs +21 -1
  159. package/esm2022/steps/style/stepsstyle.mjs +37 -1
  160. package/esm2022/table/style/tablestyle.mjs +899 -0
  161. package/esm2022/table/table.mjs +24 -24
  162. package/esm2022/tabmenu/style/tabmenustyle.mjs +42 -2
  163. package/esm2022/tabmenu/tabmenu.mjs +3 -3
  164. package/esm2022/tabs/style/tabsstyle.mjs +49 -1
  165. package/esm2022/tabview/style/tabsstyle.mjs +49 -1
  166. package/esm2022/tag/style/tagstyle.mjs +25 -1
  167. package/esm2022/terminal/style/terminalstyle.mjs +49 -1
  168. package/esm2022/textarea/style/textareastyle.mjs +17 -1
  169. package/esm2022/textarea/textarea.mjs +1 -2
  170. package/esm2022/tieredmenu/style/tieredmenustyle.mjs +61 -1
  171. package/esm2022/tieredmenu/tieredmenu.mjs +15 -15
  172. package/esm2022/timeline/style/timelinestyle.mjs +41 -1
  173. package/esm2022/toast/style/toaststyle.mjs +49 -1
  174. package/esm2022/togglebutton/style/togglebuttonstyle.mjs +25 -1
  175. package/esm2022/togglebutton/togglebutton.mjs +3 -3
  176. package/esm2022/toggleswitch/style/toggleswitchstyle.mjs +25 -1
  177. package/esm2022/toggleswitch/toggleswitch.mjs +1 -1
  178. package/esm2022/toolbar/style/toolbarstyle.mjs +29 -1
  179. package/esm2022/tooltip/style/tooltipstyle.mjs +25 -1
  180. package/esm2022/tree/style/treestyle.mjs +69 -1
  181. package/esm2022/tree/tree.mjs +9 -9
  182. package/esm2022/treeselect/style/treeselectstyle.mjs +53 -1
  183. package/esm2022/treeselect/treeselect.mjs +3 -3
  184. package/esm2022/treetable/style/treetablestyle.mjs +97 -1
  185. package/esm2022/treetable/treetable.mjs +3 -3
  186. package/fesm2022/primeng-accordion.mjs +38 -2
  187. package/fesm2022/primeng-accordion.mjs.map +1 -1
  188. package/fesm2022/primeng-api.mjs +2 -0
  189. package/fesm2022/primeng-api.mjs.map +1 -1
  190. package/fesm2022/primeng-autocomplete.mjs +71 -3
  191. package/fesm2022/primeng-autocomplete.mjs.map +1 -1
  192. package/fesm2022/primeng-avatar.mjs +24 -0
  193. package/fesm2022/primeng-avatar.mjs.map +1 -1
  194. package/fesm2022/primeng-avatargroup.mjs +13 -0
  195. package/fesm2022/primeng-avatargroup.mjs.map +1 -1
  196. package/fesm2022/primeng-badge.mjs +16 -0
  197. package/fesm2022/primeng-badge.mjs.map +1 -1
  198. package/fesm2022/primeng-basecomponent.mjs +2 -3
  199. package/fesm2022/primeng-basecomponent.mjs.map +1 -1
  200. package/fesm2022/primeng-blockui.mjs +18 -2
  201. package/fesm2022/primeng-blockui.mjs.map +1 -1
  202. package/fesm2022/primeng-breadcrumb.mjs +44 -0
  203. package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
  204. package/fesm2022/primeng-button.mjs +28 -0
  205. package/fesm2022/primeng-button.mjs.map +1 -1
  206. package/fesm2022/primeng-buttongroup.mjs +16 -0
  207. package/fesm2022/primeng-buttongroup.mjs.map +1 -1
  208. package/fesm2022/primeng-card.mjs +44 -0
  209. package/fesm2022/primeng-card.mjs.map +1 -1
  210. package/fesm2022/primeng-carousel.mjs +68 -0
  211. package/fesm2022/primeng-carousel.mjs.map +1 -1
  212. package/fesm2022/primeng-cascadeselect.mjs +78 -18
  213. package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
  214. package/fesm2022/primeng-checkbox.mjs +28 -0
  215. package/fesm2022/primeng-checkbox.mjs.map +1 -1
  216. package/fesm2022/primeng-chip.mjs +32 -0
  217. package/fesm2022/primeng-chip.mjs.map +1 -1
  218. package/fesm2022/primeng-colorpicker.mjs +46 -2
  219. package/fesm2022/primeng-colorpicker.mjs.map +1 -1
  220. package/fesm2022/primeng-confirmdialog.mjs +34 -2
  221. package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
  222. package/fesm2022/primeng-confirmpopup.mjs +49 -9
  223. package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
  224. package/fesm2022/primeng-contextmenu.mjs +67 -14
  225. package/fesm2022/primeng-contextmenu.mjs.map +1 -1
  226. package/fesm2022/primeng-dataview.mjs +38 -2
  227. package/fesm2022/primeng-dataview.mjs.map +1 -1
  228. package/fesm2022/primeng-datepicker.mjs +166 -2
  229. package/fesm2022/primeng-datepicker.mjs.map +1 -1
  230. package/fesm2022/primeng-dialog.mjs +49 -1
  231. package/fesm2022/primeng-dialog.mjs.map +1 -1
  232. package/fesm2022/primeng-divider.mjs +21 -1
  233. package/fesm2022/primeng-divider.mjs.map +1 -1
  234. package/fesm2022/primeng-dock.mjs +40 -0
  235. package/fesm2022/primeng-dock.mjs.map +1 -1
  236. package/fesm2022/primeng-drawer.mjs +38 -2
  237. package/fesm2022/primeng-drawer.mjs.map +1 -1
  238. package/fesm2022/primeng-dropdown.mjs +11 -8
  239. package/fesm2022/primeng-dropdown.mjs.map +1 -1
  240. package/fesm2022/primeng-dynamicdialog.mjs +48 -0
  241. package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
  242. package/fesm2022/primeng-editor.mjs +24 -0
  243. package/fesm2022/primeng-editor.mjs.map +1 -1
  244. package/fesm2022/primeng-fieldset.mjs +36 -0
  245. package/fesm2022/primeng-fieldset.mjs.map +1 -1
  246. package/fesm2022/primeng-fileupload.mjs +117 -12
  247. package/fesm2022/primeng-fileupload.mjs.map +1 -1
  248. package/fesm2022/primeng-floatlabel.mjs +16 -0
  249. package/fesm2022/primeng-floatlabel.mjs.map +1 -1
  250. package/fesm2022/primeng-fluid.mjs +16 -0
  251. package/fesm2022/primeng-fluid.mjs.map +1 -1
  252. package/fesm2022/primeng-galleria.mjs +124 -0
  253. package/fesm2022/primeng-galleria.mjs.map +1 -1
  254. package/fesm2022/primeng-iconfield.mjs +22 -3
  255. package/fesm2022/primeng-iconfield.mjs.map +1 -1
  256. package/fesm2022/primeng-image.mjs +56 -0
  257. package/fesm2022/primeng-image.mjs.map +1 -1
  258. package/fesm2022/primeng-inplace.mjs +24 -0
  259. package/fesm2022/primeng-inplace.mjs.map +1 -1
  260. package/fesm2022/primeng-inputgroup.mjs +23 -7
  261. package/fesm2022/primeng-inputgroup.mjs.map +1 -1
  262. package/fesm2022/primeng-inputmask.mjs +16 -0
  263. package/fesm2022/primeng-inputmask.mjs.map +1 -1
  264. package/fesm2022/primeng-inputnumber.mjs +34 -2
  265. package/fesm2022/primeng-inputnumber.mjs.map +1 -1
  266. package/fesm2022/primeng-inputotp.mjs +22 -2
  267. package/fesm2022/primeng-inputotp.mjs.map +1 -1
  268. package/fesm2022/primeng-inputtext.mjs +16 -0
  269. package/fesm2022/primeng-inputtext.mjs.map +1 -1
  270. package/fesm2022/primeng-inputtextarea.mjs +16 -0
  271. package/fesm2022/primeng-inputtextarea.mjs.map +1 -1
  272. package/fesm2022/primeng-knob.mjs +28 -0
  273. package/fesm2022/primeng-knob.mjs.map +1 -1
  274. package/fesm2022/primeng-listbox.mjs +60 -8
  275. package/fesm2022/primeng-listbox.mjs.map +1 -1
  276. package/fesm2022/primeng-megamenu.mjs +94 -14
  277. package/fesm2022/primeng-megamenu.mjs.map +1 -1
  278. package/fesm2022/primeng-menu.mjs +56 -0
  279. package/fesm2022/primeng-menu.mjs.map +1 -1
  280. package/fesm2022/primeng-menubar.mjs +64 -0
  281. package/fesm2022/primeng-menubar.mjs.map +1 -1
  282. package/fesm2022/primeng-message.mjs +38 -2
  283. package/fesm2022/primeng-message.mjs.map +1 -1
  284. package/fesm2022/primeng-metergroup.mjs +53 -9
  285. package/fesm2022/primeng-metergroup.mjs.map +1 -1
  286. package/fesm2022/primeng-multiselect.mjs +136 -52
  287. package/fesm2022/primeng-multiselect.mjs.map +1 -1
  288. package/fesm2022/primeng-orderlist.mjs +22 -2
  289. package/fesm2022/primeng-orderlist.mjs.map +1 -1
  290. package/fesm2022/primeng-organizationchart.mjs +54 -2
  291. package/fesm2022/primeng-organizationchart.mjs.map +1 -1
  292. package/fesm2022/primeng-overlay.mjs.map +1 -1
  293. package/fesm2022/primeng-overlaypanel.mjs +20 -0
  294. package/fesm2022/primeng-overlaypanel.mjs.map +1 -1
  295. package/fesm2022/primeng-paginator.mjs +85 -5
  296. package/fesm2022/primeng-paginator.mjs.map +1 -1
  297. package/fesm2022/primeng-panel.mjs +45 -1
  298. package/fesm2022/primeng-panel.mjs.map +1 -1
  299. package/fesm2022/primeng-panelmenu.mjs +103 -22
  300. package/fesm2022/primeng-panelmenu.mjs.map +1 -1
  301. package/fesm2022/primeng-password.mjs +44 -0
  302. package/fesm2022/primeng-password.mjs.map +1 -1
  303. package/fesm2022/primeng-picklist.mjs +38 -2
  304. package/fesm2022/primeng-picklist.mjs.map +1 -1
  305. package/fesm2022/primeng-progressbar.mjs +26 -2
  306. package/fesm2022/primeng-progressbar.mjs.map +1 -1
  307. package/fesm2022/primeng-progressspinner.mjs +26 -2
  308. package/fesm2022/primeng-progressspinner.mjs.map +1 -1
  309. package/fesm2022/primeng-radiobutton.mjs +31 -3
  310. package/fesm2022/primeng-radiobutton.mjs.map +1 -1
  311. package/fesm2022/primeng-rating.mjs +28 -0
  312. package/fesm2022/primeng-rating.mjs.map +1 -1
  313. package/fesm2022/primeng-ripple.mjs +32 -11
  314. package/fesm2022/primeng-ripple.mjs.map +1 -1
  315. package/fesm2022/primeng-scroller.mjs +39 -7
  316. package/fesm2022/primeng-scroller.mjs.map +1 -1
  317. package/fesm2022/primeng-scrollpanel.mjs +34 -2
  318. package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
  319. package/fesm2022/primeng-scrolltop.mjs +22 -2
  320. package/fesm2022/primeng-scrolltop.mjs.map +1 -1
  321. package/fesm2022/primeng-select.mjs +94 -10
  322. package/fesm2022/primeng-select.mjs.map +1 -1
  323. package/fesm2022/primeng-selectbutton.mjs +23 -7
  324. package/fesm2022/primeng-selectbutton.mjs.map +1 -1
  325. package/fesm2022/primeng-skeleton.mjs +16 -0
  326. package/fesm2022/primeng-skeleton.mjs.map +1 -1
  327. package/fesm2022/primeng-slider.mjs +24 -0
  328. package/fesm2022/primeng-slider.mjs.map +1 -1
  329. package/fesm2022/primeng-speeddial.mjs +42 -2
  330. package/fesm2022/primeng-speeddial.mjs.map +1 -1
  331. package/fesm2022/primeng-splitbutton.mjs +31 -7
  332. package/fesm2022/primeng-splitbutton.mjs.map +1 -1
  333. package/fesm2022/primeng-splitter.mjs +24 -0
  334. package/fesm2022/primeng-splitter.mjs.map +1 -1
  335. package/fesm2022/primeng-stepper.mjs +45 -25
  336. package/fesm2022/primeng-stepper.mjs.map +1 -1
  337. package/fesm2022/primeng-steps.mjs +36 -0
  338. package/fesm2022/primeng-steps.mjs.map +1 -1
  339. package/fesm2022/primeng-table.mjs +230 -56
  340. package/fesm2022/primeng-table.mjs.map +1 -1
  341. package/fesm2022/primeng-tabmenu.mjs +43 -3
  342. package/fesm2022/primeng-tabmenu.mjs.map +1 -1
  343. package/fesm2022/primeng-tabs.mjs +48 -0
  344. package/fesm2022/primeng-tabs.mjs.map +1 -1
  345. package/fesm2022/primeng-tabview.mjs +48 -0
  346. package/fesm2022/primeng-tabview.mjs.map +1 -1
  347. package/fesm2022/primeng-tag.mjs +24 -0
  348. package/fesm2022/primeng-tag.mjs.map +1 -1
  349. package/fesm2022/primeng-terminal.mjs +48 -0
  350. package/fesm2022/primeng-terminal.mjs.map +1 -1
  351. package/fesm2022/primeng-textarea.mjs +16 -1
  352. package/fesm2022/primeng-textarea.mjs.map +1 -1
  353. package/fesm2022/primeng-tieredmenu.mjs +74 -14
  354. package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
  355. package/fesm2022/primeng-timeline.mjs +40 -0
  356. package/fesm2022/primeng-timeline.mjs.map +1 -1
  357. package/fesm2022/primeng-toast.mjs +48 -0
  358. package/fesm2022/primeng-toast.mjs.map +1 -1
  359. package/fesm2022/primeng-togglebutton.mjs +26 -2
  360. package/fesm2022/primeng-togglebutton.mjs.map +1 -1
  361. package/fesm2022/primeng-toggleswitch.mjs +24 -0
  362. package/fesm2022/primeng-toggleswitch.mjs.map +1 -1
  363. package/fesm2022/primeng-toolbar.mjs +28 -0
  364. package/fesm2022/primeng-toolbar.mjs.map +1 -1
  365. package/fesm2022/primeng-tooltip.mjs +24 -0
  366. package/fesm2022/primeng-tooltip.mjs.map +1 -1
  367. package/fesm2022/primeng-tree.mjs +76 -8
  368. package/fesm2022/primeng-tree.mjs.map +1 -1
  369. package/fesm2022/primeng-treeselect.mjs +54 -2
  370. package/fesm2022/primeng-treeselect.mjs.map +1 -1
  371. package/fesm2022/primeng-treetable.mjs +98 -2
  372. package/fesm2022/primeng-treetable.mjs.map +1 -1
  373. package/fieldset/style/fieldsetstyle.d.ts +37 -0
  374. package/fileupload/fileupload.d.ts +4 -1
  375. package/fileupload/fileupload.interface.d.ts +9 -0
  376. package/fileupload/style/fileuploadstyle.d.ts +73 -0
  377. package/floatlabel/style/floatlabelstyle.d.ts +17 -0
  378. package/fluid/style/fluidstyle.d.ts +17 -0
  379. package/galleria/style/galleriastyle.d.ts +125 -0
  380. package/iconfield/style/iconfieldstyle.d.ts +17 -0
  381. package/image/style/imagestyle.d.ts +57 -0
  382. package/inplace/style/inplacestyle.d.ts +25 -0
  383. package/inputgroup/style/inputgroupstyle.d.ts +17 -0
  384. package/inputmask/style/inputmaskstyle.d.ts +17 -0
  385. package/inputnumber/inputnumber.d.ts +1 -1
  386. package/inputnumber/style/inputnumberstyle.d.ts +33 -0
  387. package/inputotp/inputotp.d.ts +1 -1
  388. package/inputotp/style/inputotpstyle.d.ts +21 -0
  389. package/inputtext/style/inputtextstyle.d.ts +17 -0
  390. package/inputtextarea/style/textareastyle.d.ts +17 -0
  391. package/knob/style/knobstyle.d.ts +29 -0
  392. package/listbox/style/listboxstyle.d.ts +53 -0
  393. package/megamenu/megamenu.d.ts +2 -2
  394. package/megamenu/style/megamenustyle.d.ts +81 -0
  395. package/menu/style/menustyle.d.ts +57 -0
  396. package/menubar/style/menubarstyle.d.ts +65 -0
  397. package/message/style/messagestyle.d.ts +37 -0
  398. package/metergroup/metergroup.d.ts +2 -2
  399. package/metergroup/style/metergroupstyle.d.ts +45 -0
  400. package/multiselect/multiselect.d.ts +4 -5
  401. package/multiselect/style/multiselectstyle.d.ts +85 -0
  402. package/orderlist/orderlist.d.ts +1 -1
  403. package/orderlist/style/orderliststyle.d.ts +21 -0
  404. package/organizationchart/organizationchart.d.ts +1 -1
  405. package/organizationchart/style/organizationchartstyle.d.ts +53 -0
  406. package/overlaypanel/style/popoverstyle.d.ts +21 -0
  407. package/package.json +226 -226
  408. package/paginator/style/paginatorstyle.d.ts +81 -0
  409. package/panel/style/panelstyle.d.ts +43 -0
  410. package/panelmenu/panelmenu.d.ts +3 -3
  411. package/panelmenu/style/panelmenustyle.d.ts +82 -0
  412. package/password/style/passwordstyle.d.ts +45 -0
  413. package/picklist/picklist.d.ts +1 -1
  414. package/picklist/style/pickliststyle.d.ts +37 -0
  415. package/progressbar/progressbar.d.ts +1 -1
  416. package/progressbar/style/progressbarstyle.d.ts +25 -0
  417. package/progressspinner/progressspinner.d.ts +1 -1
  418. package/progressspinner/style/progressspinnerstyle.d.ts +25 -0
  419. package/radiobutton/radiobutton.d.ts +1 -1
  420. package/radiobutton/style/radiobuttonstyle.d.ts +29 -0
  421. package/rating/style/ratingstyle.d.ts +29 -0
  422. package/ripple/ripple.d.ts +1 -0
  423. package/ripple/style/ripplestyle.d.ts +17 -0
  424. package/scroller/scroller.d.ts +2 -2
  425. package/scroller/style/scrollerstyle.d.ts +43 -0
  426. package/scrollpanel/scrollpanel.d.ts +1 -1
  427. package/scrollpanel/style/scrollpanelstyle.d.ts +33 -0
  428. package/scrolltop/scrolltop.d.ts +1 -1
  429. package/scrolltop/style/scrolltopstyle.d.ts +21 -0
  430. package/select/public_api.d.ts +1 -0
  431. package/select/style/selectstyle.d.ts +85 -0
  432. package/selectbutton/selectbutton.d.ts +1 -1
  433. package/selectbutton/style/selectbuttonstyle.d.ts +17 -0
  434. package/skeleton/style/skeletonstyle.d.ts +17 -0
  435. package/slider/style/sliderstyle.d.ts +25 -0
  436. package/speeddial/speeddial.d.ts +1 -1
  437. package/speeddial/style/speeddialstyle.d.ts +41 -0
  438. package/splitbutton/splitbutton.d.ts +1 -1
  439. package/splitbutton/style/splitbuttonstyle.d.ts +25 -0
  440. package/splitter/style/splitterstyle.d.ts +25 -0
  441. package/stepper/stepper.d.ts +4 -4
  442. package/stepper/style/stepperstyle.d.ts +21 -0
  443. package/steps/style/stepsstyle.d.ts +37 -0
  444. package/table/style/tablestyle.d.ts +327 -0
  445. package/table/table.d.ts +5 -5
  446. package/tabmenu/style/tabmenustyle.d.ts +41 -0
  447. package/tabmenu/tabmenu.d.ts +1 -1
  448. package/tabs/style/tabsstyle.d.ts +49 -0
  449. package/tabview/style/tabsstyle.d.ts +49 -0
  450. package/tag/style/tagstyle.d.ts +25 -0
  451. package/terminal/style/terminalstyle.d.ts +49 -0
  452. package/textarea/style/textareastyle.d.ts +17 -0
  453. package/tieredmenu/style/tieredmenustyle.d.ts +61 -0
  454. package/tieredmenu/tieredmenu.d.ts +2 -2
  455. package/timeline/style/timelinestyle.d.ts +41 -0
  456. package/toast/style/toaststyle.d.ts +49 -0
  457. package/togglebutton/style/togglebuttonstyle.d.ts +25 -0
  458. package/togglebutton/togglebutton.d.ts +1 -1
  459. package/toggleswitch/style/toggleswitchstyle.d.ts +25 -0
  460. package/toolbar/style/toolbarstyle.d.ts +29 -0
  461. package/tooltip/style/tooltipstyle.d.ts +25 -0
  462. package/tree/style/treestyle.d.ts +69 -0
  463. package/treeselect/style/treeselectstyle.d.ts +53 -0
  464. package/treeselect/treeselect.d.ts +1 -1
  465. package/treetable/style/treetablestyle.d.ts +97 -0
  466. package/treetable/treetable.d.ts +1 -1
  467. package/esm2022/scroller/style/virtualscrollerstyle.mjs +0 -72
  468. package/esm2022/table/style/datatablestyle.mjs +0 -725
  469. package/scroller/style/virtualscrollerstyle.d.ts +0 -10
  470. package/table/style/datatablestyle.d.ts +0 -124
@@ -1 +1 @@
1
- {"version":3,"file":"primeng-inputnumber.mjs","sources":["../../src/app/components/inputnumber/style/inputnumberstyle.ts","../../src/app/components/inputnumber/inputnumber.ts","../../src/app/components/inputnumber/primeng-inputnumber.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-inputnumber {\n display: inline-flex;\n position: relative;\n}\n\n.p-inputnumber-button {\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 0 0 auto;\n cursor: pointer;\n background: ${dt('inputnumber.button.background')};\n color: ${dt('inputnumber.button.color')};\n width: ${dt('inputnumber.button.width')};\n transition: background ${dt('inputnumber.transition.duration')}, color ${dt('inputnumber.transition.duration')}, border-color ${dt('inputnumber.transition.duration')}, outline-color ${dt('inputnumber.transition.duration')};\n}\n\n.p-inputnumber-button:hover {\n background: ${dt('inputnumber.button.hover.background')};\n color: ${dt('inputnumber.button.hover.color')};\n}\n\n.p-inputnumber-button:active {\n background: ${dt('inputnumber.button.active.background')};\n color: ${dt('inputnumber.button.active.color')};\n}\n\n.p-inputnumber-stacked .p-inputnumber-button {\n position: relative;\n border: 0 none;\n}\n\n.p-inputnumber-stacked .p-inputnumber-button-group {\n display: flex;\n flex-direction: column;\n position: absolute;\n top: 1px;\n right: 1px;\n height: calc(100% - 2px);\n}\n\n.p-inputnumber-stacked .p-inputnumber-increment-button {\n padding: 0;\n border-top-right-radius: calc(${dt('inputnumber.button.border.radius')} - 1px);\n}\n\n.p-inputnumber-stacked .p-inputnumber-decrement-button {\n padding: 0;\n border-bottom-right-radius: calc(${dt('inputnumber.button.border.radius')} - 1px);\n}\n\n.p-inputnumber-stacked .p-inputnumber-button {\n flex: 1 1 auto;\n border: 0 none;\n}\n\n.p-inputnumber-horizontal .p-inputnumber-button {\n border: 1px solid ${dt('inputnumber.button.border.color')};\n}\n\n.p-inputnumber-horizontal .p-inputnumber-button:hover {\n border-color: ${dt('inputnumber.button.hover.border.color')};\n}\n\n.p-inputnumber-horizontal .p-inputnumber-button:active {\n border-color: ${dt('inputnumber.button.active.border.color')};\n}\n\n.p-inputnumber-horizontal .p-inputnumber-increment-button {\n order: 3;\n border-top-right-radius: ${dt('inputnumber.button.border.radius')};\n border-bottom-right-radius: ${dt('inputnumber.button.border.radius')};\n border-left: 0 none;\n}\n\n.p-inputnumber-horizontal .p-inputnumber-input {\n order: 2;\n border-radius: 0;\n}\n\n.p-inputnumber-horizontal .p-inputnumber-decrement-button {\n order: 1;\n border-top-left-radius: ${dt('inputnumber.button.border.radius')};\n border-bottom-left-radius: ${dt('inputnumber.button.border.radius')};\n border-right: 0 none;\n}\n\n.p-inputnumber-vertical {\n flex-direction: column;\n}\n\n.p-inputnumber-vertical .p-inputnumber-button {\n border: 1px solid ${dt('inputnumber.button.border.color')};\n padding: ${dt('inputnumber.button.vertical.padding')}; 0;\n}\n\n.p-inputnumber-vertical .p-inputnumber-button:hover {\n border-color: ${dt('inputnumber.button.hover.border.color')};\n}\n\n.p-inputnumber-vertical .p-inputnumber-button:active {\n border-color: ${dt('inputnumber.button.active.border.color')};\n}\n\n.p-inputnumber-vertical .p-inputnumber-increment-button {\n order: 1;\n border-top-left-radius: ${dt('inputnumber.button.border.radius')};\n border-top-right-radius: ${dt('inputnumber.button.border.radius')};\n width: 100%;\n border-bottom: 0 none;\n}\n\n.p-inputnumber-vertical .p-inputnumber-input {\n order: 2;\n border-radius: 0;\n text-align: center;\n}\n\n.p-inputnumber-vertical .p-inputnumber-decrement-button {\n order: 3;\n border-bottom-left-radius: ${dt('inputnumber.button.border.radius')};\n border-bottom-right-radius: ${dt('inputnumber.button.border.radius')};\n width: 100%;\n border-top: 0 none;\n}\n\n.p-inputnumber-input {\n flex: 1 1 auto;\n}\n\n.p-inputnumber-fluid {\n width: 100%;\n}\n\n.p-inputnumber-fluid .p-inputnumber-input {\n width: 1%;\n}\n\n.p-inputnumber-fluid.p-inputnumber-vertical .p-inputnumber-input {\n width: 100%;\n}\n\n/* For PrimeNG */\np-inputnumber.ng-invalid.ng-dirty > .p-inputwrapper.p-component > .p-inputtext {\n border-color: ${dt('inputtext.invalid.border.color')};\n};\n`;\n\nconst classes = {\n root: ({ instance }) => ({\n 'p-inputnumber p-component p-inputwrapper': true,\n 'p-inputwrapper-filled': instance.filled || instance.allowEmpty === false,\n 'p-inputwrapper-focus': instance.focused,\n 'p-inputnumber-stacked': instance.showButtons && instance.buttonLayout === 'stacked',\n 'p-inputnumber-horizontal': instance.showButtons && instance.buttonLayout === 'horizontal',\n 'p-inputnumber-vertical': instance.showButtons && instance.buttonLayout === 'vertical',\n 'p-inputnumber-fluid': instance.hasFluid,\n }),\n pcInput: 'p-inputnumber-input',\n buttonGroup: 'p-inputnumber-button-group',\n incrementButton: ({ instance }) => ({\n 'p-inputnumber-button p-inputnumber-increment-button': true,\n 'p-disabled': instance.showButtons && instance.max !== null && instance.maxlength,\n }),\n decrementButton: ({ instance }) => ({\n 'p-inputnumber-button p-inputnumber-decrement-button': true,\n 'p-disabled': instance.showButtons && instance.min !== null && instance.minlength,\n }),\n};\n\n@Injectable()\nexport class InputNumberStyle extends BaseStyle {\n name = 'inputnumber';\n\n theme = theme;\n\n classes = classes;\n}\n","import { CommonModule } from '@angular/common';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n NgModule,\n OnChanges,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute,\n forwardRef,\n inject,\n numberAttribute,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';\nimport { PrimeTemplate, SharedModule } from 'primeng/api';\nimport { AutoFocusModule } from 'primeng/autofocus';\nimport { ButtonModule } from 'primeng/button';\nimport { DomHandler } from 'primeng/dom';\nimport { AngleDownIcon } from 'primeng/icons/angledown';\nimport { AngleUpIcon } from 'primeng/icons/angleup';\nimport { TimesIcon } from 'primeng/icons/times';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { Nullable } from 'primeng/ts-helpers';\nimport { InputNumberInputEvent } from './inputnumber.interface';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { InputNumberStyle } from './style/inputnumberstyle';\n\nexport const INPUTNUMBER_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InputNumber),\n multi: true,\n};\n/**\n * InputNumber is an input component to provide numerical input.\n * @group Components\n */\n@Component({\n selector: 'p-inputNumber',\n template: `\n <span\n [ngClass]=\"_rootClass\"\n [ngStyle]=\"style\"\n [class]=\"styleClass\"\n [attr.data-pc-name]=\"'inputnumber'\"\n [attr.data-pc-section]=\"'root'\"\n >\n <input\n pInputText\n #input\n [attr.id]=\"inputId\"\n role=\"spinbutton\"\n [ngClass]=\"'p-inputnumber-input'\"\n [ngStyle]=\"inputStyle\"\n [class]=\"inputStyleClass\"\n [value]=\"formattedValue()\"\n [attr.variant]=\"variant\"\n [attr.aria-valuemin]=\"min\"\n [attr.aria-valuemax]=\"max\"\n [attr.aria-valuenow]=\"value\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.title]=\"title\"\n [attr.size]=\"size\"\n [attr.name]=\"name\"\n [attr.autocomplete]=\"autocomplete\"\n [attr.maxlength]=\"maxlength\"\n [attr.tabindex]=\"tabindex\"\n [attr.aria-required]=\"ariaRequired\"\n [attr.required]=\"required\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n inputmode=\"decimal\"\n (input)=\"onUserInput($event)\"\n (keydown)=\"onInputKeyDown($event)\"\n (keypress)=\"onInputKeyPress($event)\"\n (paste)=\"onPaste($event)\"\n (click)=\"onInputClick()\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\"\n [attr.data-pc-section]=\"'input'\"\n pAutoFocus\n [autofocus]=\"autofocus\"\n [fluid]=\"hasFluid\"\n />\n <ng-container *ngIf=\"buttonLayout != 'vertical' && showClear && value\">\n <TimesIcon\n *ngIf=\"!clearIconTemplate\"\n [ngClass]=\"'p-inputnumber-clear-icon'\"\n (click)=\"clear()\"\n [attr.data-pc-section]=\"'clearIcon'\"\n />\n <span *ngIf=\"clearIconTemplate\" (click)=\"clear()\" class=\"p-inputnumber-clear-icon\" [attr.data-pc-section]=\"'clearIcon'\">\n <ng-template *ngTemplateOutlet=\"clearIconTemplate\"></ng-template>\n </span>\n </ng-container>\n <span\n class=\"p-inputnumber-button-group\"\n *ngIf=\"showButtons && buttonLayout === 'stacked'\"\n [attr.data-pc-section]=\"'buttonGroup'\"\n >\n <button\n type=\"button\"\n [ngClass]=\"_incrementButtonClass\"\n [class]=\"incrementButtonClass\"\n [disabled]=\"disabled\"\n tabindex=\"-1\"\n (mousedown)=\"onUpButtonMouseDown($event)\"\n (mouseup)=\"onUpButtonMouseUp()\"\n (mouseleave)=\"onUpButtonMouseLeave()\"\n (keydown)=\"onUpButtonKeyDown($event)\"\n (keyup)=\"onUpButtonKeyUp()\"\n [attr.aria-hidden]=\"true\"\n [attr.data-pc-section]=\"'incrementbutton'\"\n >\n <span *ngIf=\"incrementButtonIcon\" [ngClass]=\"incrementButtonIcon\" [attr.data-pc-section]=\"'incrementbuttonicon'\"></span>\n <ng-container *ngIf=\"!incrementButtonIcon\">\n <AngleUpIcon *ngIf=\"!incrementButtonIconTemplate\" [attr.data-pc-section]=\"'incrementbuttonicon'\" />\n <ng-template *ngTemplateOutlet=\"incrementButtonIconTemplate\"></ng-template>\n </ng-container>\n </button>\n\n <button\n type=\"button\"\n [ngClass]=\"_decrementButtonClass\"\n [class]=\"decrementButtonClass\"\n [disabled]=\"disabled\"\n tabindex=\"-1\"\n [attr.aria-hidden]=\"true\"\n (mousedown)=\"onDownButtonMouseDown($event)\"\n (mouseup)=\"onDownButtonMouseUp()\"\n (mouseleave)=\"onDownButtonMouseLeave()\"\n (keydown)=\"onDownButtonKeyDown($event)\"\n (keyup)=\"onDownButtonKeyUp()\"\n [attr.data-pc-section]=\"decrementbutton\"\n >\n <span *ngIf=\"decrementButtonIcon\" [ngClass]=\"decrementButtonIcon\" [attr.data-pc-section]=\"'decrementbuttonicon'\"></span>\n <ng-container *ngIf=\"!decrementButtonIcon\">\n <AngleDownIcon *ngIf=\"!decrementButtonIconTemplate\" [attr.data-pc-section]=\"'decrementbuttonicon'\" />\n <ng-template *ngTemplateOutlet=\"decrementButtonIconTemplate\"></ng-template>\n </ng-container>\n </button>\n </span>\n <button\n *ngIf=\"showButtons && buttonLayout !== 'stacked'\"\n type=\"button\"\n [ngClass]=\"_incrementButtonClass\"\n [class]=\"incrementButtonClass\"\n [disabled]=\"disabled\"\n tabindex=\"-1\"\n [attr.aria-hidden]=\"true\"\n (mousedown)=\"onUpButtonMouseDown($event)\"\n (mouseup)=\"onUpButtonMouseUp()\"\n (mouseleave)=\"onUpButtonMouseLeave()\"\n (keydown)=\"onUpButtonKeyDown($event)\"\n (keyup)=\"onUpButtonKeyUp()\"\n [attr.data-pc-section]=\"'incrementbutton'\"\n >\n <span *ngIf=\"incrementButtonIcon\" [ngClass]=\"incrementButtonIcon\" [attr.data-pc-section]=\"'incrementbuttonicon'\"></span>\n <ng-container *ngIf=\"!incrementButtonIcon\">\n <AngleUpIcon *ngIf=\"!incrementButtonIconTemplate\" [attr.data-pc-section]=\"'incrementbuttonicon'\" />\n <ng-template *ngTemplateOutlet=\"incrementButtonIconTemplate\"></ng-template>\n </ng-container>\n </button>\n <button\n *ngIf=\"showButtons && buttonLayout !== 'stacked'\"\n type=\"button\"\n [ngClass]=\"_decrementButtonClass\"\n [class]=\"decrementButtonClass\"\n [disabled]=\"disabled\"\n tabindex=\"-1\"\n [attr.aria-hidden]=\"true\"\n (mousedown)=\"onDownButtonMouseDown($event)\"\n (mouseup)=\"onDownButtonMouseUp()\"\n (mouseleave)=\"onDownButtonMouseLeave()\"\n (keydown)=\"onDownButtonKeyDown($event)\"\n (keyup)=\"onDownButtonKeyUp()\"\n [attr.data-pc-section]=\"'decrementbutton'\"\n >\n <span *ngIf=\"decrementButtonIcon\" [ngClass]=\"decrementButtonIcon\" [attr.data-pc-section]=\"'decrementbuttonicon'\"></span>\n <ng-container *ngIf=\"!decrementButtonIcon\">\n <AngleDownIcon *ngIf=\"!decrementButtonIconTemplate\" [attr.data-pc-section]=\"'decrementbuttonicon'\" />\n <ng-template *ngTemplateOutlet=\"decrementButtonIconTemplate\"></ng-template>\n </ng-container>\n </button>\n </span>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [INPUTNUMBER_VALUE_ACCESSOR, InputNumberStyle],\n encapsulation: ViewEncapsulation.None,\n})\nexport class InputNumber extends BaseComponent implements OnInit, AfterContentInit, OnChanges, ControlValueAccessor {\n /**\n * Displays spinner buttons.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showButtons: boolean = false;\n /**\n * Whether to format the value.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) format: boolean = true;\n /**\n * Layout of the buttons, valid values are \"stacked\" (default), \"horizontal\" and \"vertical\".\n * @group Props\n */\n @Input() buttonLayout: string = 'stacked';\n /**\n * Identifier of the focus input to match a label defined for the component.\n * @group Props\n */\n @Input() inputId: string | undefined;\n /**\n * Style class of the component.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Inline style of the component.\n * @group Props\n */\n @Input() style: { [klass: string]: any } | null | undefined;\n /**\n * Advisory information to display on input.\n * @group Props\n */\n @Input() placeholder: string | undefined;\n /**\n * Size of the input field.\n * @group Props\n */\n @Input({ transform: numberAttribute }) size: number | undefined;\n /**\n * Maximum number of character allows in the input field.\n * @group Props\n */\n @Input({ transform: numberAttribute }) maxlength: number | undefined;\n /**\n * Specifies tab order of the element.\n * @group Props\n */\n @Input({ transform: numberAttribute }) tabindex: number | undefined;\n /**\n * Title text of the input text.\n * @group Props\n */\n @Input() title: string | undefined;\n /**\n * Specifies one or more IDs in the DOM that labels the input field.\n * @group Props\n */\n @Input() ariaLabelledBy: string | undefined;\n /**\n * Used to define a string that labels the input element.\n * @group Props\n */\n @Input() ariaLabel: string | undefined;\n /**\n * Used to indicate that user input is required on an element before a form can be submitted.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) ariaRequired: boolean | undefined;\n /**\n * Name of the input field.\n * @group Props\n */\n @Input() name: string | undefined;\n /**\n * Indicates that whether the input field is required.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) required: boolean | undefined;\n /**\n * Used to define a string that autocomplete attribute the current element.\n * @group Props\n */\n @Input() autocomplete: string | undefined;\n /**\n * Mininum boundary value.\n * @group Props\n */\n @Input({ transform: numberAttribute }) min: number | undefined;\n /**\n * Maximum boundary value.\n * @group Props\n */\n @Input({ transform: numberAttribute }) max: number | undefined;\n /**\n * Style class of the increment button.\n * @group Props\n */\n @Input() incrementButtonClass: string | undefined;\n /**\n * Style class of the decrement button.\n * @group Props\n */\n @Input() decrementButtonClass: string | undefined;\n /**\n * Style class of the increment button.\n * @group Props\n */\n @Input() incrementButtonIcon: string | undefined;\n /**\n * Style class of the decrement button.\n * @group Props\n */\n @Input() decrementButtonIcon: string | undefined;\n /**\n * When present, it specifies that an input field is read-only.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) readonly: boolean = false;\n /**\n * Step factor to increment/decrement the value.\n * @group Props\n */\n @Input({ transform: numberAttribute }) step: number = 1;\n /**\n * Determines whether the input field is empty.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) allowEmpty: boolean = true;\n /**\n * Locale to be used in formatting.\n * @group Props\n */\n @Input() locale: string | undefined;\n /**\n * The locale matching algorithm to use. Possible values are \"lookup\" and \"best fit\"; the default is \"best fit\". See Locale Negotiation for details.\n * @group Props\n */\n @Input() localeMatcher: any;\n /**\n * Defines the behavior of the component, valid values are \"decimal\" and \"currency\".\n * @group Props\n */\n @Input() mode: string | any = 'decimal';\n /**\n * The currency to use in currency formatting. Possible values are the ISO 4217 currency codes, such as \"USD\" for the US dollar, \"EUR\" for the euro, or \"CNY\" for the Chinese RMB. There is no default value; if the style is \"currency\", the currency property must be provided.\n * @group Props\n */\n @Input() currency: string | undefined;\n /**\n * How to display the currency in currency formatting. Possible values are \"symbol\" to use a localized currency symbol such as €, ü\"code\" to use the ISO currency code, \"name\" to use a localized currency name such as \"dollar\"; the default is \"symbol\".\n * @group Props\n */\n @Input() currencyDisplay: string | undefined | any;\n /**\n * Whether to use grouping separators, such as thousands separators or thousand/lakh/crore separators.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) useGrouping: boolean = true;\n /**\n * Specifies the input variant of the component.\n * @group Props\n */\n @Input() variant: 'filled' | 'outlined' = 'outlined';\n /**\n * The minimum number of fraction digits to use. Possible values are from 0 to 20; the default for plain number and percent formatting is 0; the default for currency formatting is the number of minor unit digits provided by the ISO 4217 currency code list (2 if the list doesn't provide that information).\n * @group Props\n */\n @Input({ transform: (value: unknown) => numberAttribute(value, null) }) minFractionDigits: number | undefined;\n /**\n * The maximum number of fraction digits to use. Possible values are from 0 to 20; the default for plain number formatting is the larger of minimumFractionDigits and 3; the default for currency formatting is the larger of minimumFractionDigits and the number of minor unit digits provided by the ISO 4217 currency code list (2 if the list doesn't provide that information).\n * @group Props\n */\n @Input({ transform: (value: unknown) => numberAttribute(value, null) }) maxFractionDigits: number | undefined;\n /**\n * Text to display before the value.\n * @group Props\n */\n @Input() prefix: string | undefined;\n /**\n * Text to display after the value.\n * @group Props\n */\n @Input() suffix: string | undefined;\n /**\n * Inline style of the input field.\n * @group Props\n */\n @Input() inputStyle: any;\n /**\n * Style class of the input field.\n * @group Props\n */\n @Input() inputStyleClass: string | undefined;\n /**\n * When enabled, a clear icon is displayed to clear the value.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showClear: boolean = false;\n /**\n * When present, it specifies that the component should automatically get focus on load.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) autofocus: boolean | undefined;\n /**\n * When present, it specifies that the element should be disabled.\n * @group Props\n */\n @Input() get disabled(): boolean | undefined {\n return this._disabled;\n }\n set disabled(disabled: boolean | undefined) {\n if (disabled) this.focused = false;\n\n this._disabled = disabled;\n\n if (this.timer) this.clearTimer();\n }\n /**\n * Spans 100% width of the container when enabled.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) fluid: boolean = false;\n /**\n * Callback to invoke on input.\n * @param {InputNumberInputEvent} event - Custom input event.\n * @group Emits\n */\n @Output() onInput: EventEmitter<InputNumberInputEvent> = new EventEmitter<InputNumberInputEvent>();\n /**\n * Callback to invoke when the component receives focus.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n @Output() onFocus: EventEmitter<Event> = new EventEmitter<Event>();\n /**\n * Callback to invoke when the component loses focus.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n @Output() onBlur: EventEmitter<Event> = new EventEmitter<Event>();\n /**\n * Callback to invoke on input key press.\n * @param {KeyboardEvent} event - Keyboard event.\n * @group Emits\n */\n @Output() onKeyDown: EventEmitter<KeyboardEvent> = new EventEmitter<KeyboardEvent>();\n /**\n * Callback to invoke when clear token is clicked.\n * @group Emits\n */\n @Output() onClear: EventEmitter<void> = new EventEmitter<void>();\n\n @ViewChild('input') input!: ElementRef<HTMLInputElement>;\n\n @ContentChildren(PrimeTemplate) templates!: QueryList<PrimeTemplate>;\n\n clearIconTemplate: Nullable<TemplateRef<any>>;\n\n incrementButtonIconTemplate: Nullable<TemplateRef<any>>;\n\n decrementButtonIconTemplate: Nullable<TemplateRef<any>>;\n\n value: Nullable<number>;\n\n onModelChange: Function = () => {};\n\n onModelTouched: Function = () => {};\n\n focused: Nullable<boolean>;\n\n initialized: Nullable<boolean>;\n\n groupChar: string = '';\n\n prefixChar: string = '';\n\n suffixChar: string = '';\n\n isSpecialChar: Nullable<boolean>;\n\n timer: any;\n\n lastValue: Nullable<string>;\n\n _numeral: any;\n\n numberFormat: any;\n\n _decimal: any;\n\n _decimalChar: string;\n\n _group: any;\n\n _minusSign: any;\n\n _currency: Nullable<RegExp | string>;\n\n _prefix: Nullable<RegExp>;\n\n _suffix: Nullable<RegExp>;\n\n _index: number | any;\n\n _disabled: boolean | undefined;\n\n _componentStyle = inject(InputNumberStyle);\n\n private ngControl: NgControl | null = null;\n\n get _rootClass() {\n return this._componentStyle.classes.root({ instance: this });\n }\n\n get hasFluid() {\n const nativeElement = this.el.nativeElement;\n const fluidComponent = nativeElement.closest('p-fluid');\n return this.fluid || !!fluidComponent;\n }\n\n get _incrementButtonClass() {\n return this._componentStyle.classes.incrementButton({ instance: this });\n }\n\n get _decrementButtonClass() {\n return this._componentStyle.classes.decrementButton({ instance: this });\n }\n\n constructor(public readonly injector: Injector) {\n super();\n }\n\n ngOnChanges(simpleChange: SimpleChanges) {\n super.ngOnChanges(simpleChange);\n const props = [\n 'locale',\n 'localeMatcher',\n 'mode',\n 'currency',\n 'currencyDisplay',\n 'useGrouping',\n 'minFractionDigits',\n 'maxFractionDigits',\n 'prefix',\n 'suffix',\n ];\n if (props.some((p) => !!simpleChange[p])) {\n this.updateConstructParser();\n }\n }\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch (item.getType()) {\n case 'clearicon':\n this.clearIconTemplate = item.template;\n break;\n\n case 'incrementbuttonicon':\n this.incrementButtonIconTemplate = item.template;\n break;\n\n case 'decrementbuttonicon':\n this.decrementButtonIconTemplate = item.template;\n break;\n }\n });\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.ngControl = this.injector.get(NgControl, null, { optional: true });\n\n this.constructParser();\n\n this.initialized = true;\n }\n\n getOptions() {\n return {\n localeMatcher: this.localeMatcher,\n style: this.mode,\n currency: this.currency,\n currencyDisplay: this.currencyDisplay,\n useGrouping: this.useGrouping,\n minimumFractionDigits: this.minFractionDigits,\n maximumFractionDigits: this.maxFractionDigits,\n };\n }\n\n constructParser() {\n this.numberFormat = new Intl.NumberFormat(this.locale, this.getOptions());\n const numerals = [...new Intl.NumberFormat(this.locale, { useGrouping: false }).format(9876543210)].reverse();\n const index = new Map(numerals.map((d, i) => [d, i]));\n this._numeral = new RegExp(`[${numerals.join('')}]`, 'g');\n this._group = this.getGroupingExpression();\n this._minusSign = this.getMinusSignExpression();\n this._currency = this.getCurrencyExpression();\n this._decimal = this.getDecimalExpression();\n this._decimalChar = this.getDecimalChar();\n this._suffix = this.getSuffixExpression();\n this._prefix = this.getPrefixExpression();\n this._index = (d: any) => index.get(d);\n }\n\n updateConstructParser() {\n if (this.initialized) {\n this.constructParser();\n }\n }\n\n escapeRegExp(text: string): string {\n return text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n }\n\n getDecimalExpression(): RegExp {\n const decimalChar = this.getDecimalChar();\n return new RegExp(`[${decimalChar}]`, 'g');\n }\n getDecimalChar(): string {\n const formatter = new Intl.NumberFormat(this.locale, { ...this.getOptions(), useGrouping: false });\n return formatter\n .format(1.1)\n .replace(this._currency as RegExp | string, '')\n .trim()\n .replace(this._numeral, '');\n }\n\n getGroupingExpression(): RegExp {\n const formatter = new Intl.NumberFormat(this.locale, { useGrouping: true });\n this.groupChar = formatter.format(1000000).trim().replace(this._numeral, '').charAt(0);\n return new RegExp(`[${this.groupChar}]`, 'g');\n }\n\n getMinusSignExpression(): RegExp {\n const formatter = new Intl.NumberFormat(this.locale, { useGrouping: false });\n return new RegExp(`[${formatter.format(-1).trim().replace(this._numeral, '')}]`, 'g');\n }\n\n getCurrencyExpression(): RegExp {\n if (this.currency) {\n const formatter = new Intl.NumberFormat(this.locale, {\n style: 'currency',\n currency: this.currency,\n currencyDisplay: this.currencyDisplay,\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n });\n return new RegExp(`[${formatter.format(1).replace(/\\s/g, '').replace(this._numeral, '').replace(this._group, '')}]`, 'g');\n }\n\n return new RegExp(`[]`, 'g');\n }\n\n getPrefixExpression(): RegExp {\n if (this.prefix) {\n this.prefixChar = this.prefix;\n } else {\n const formatter = new Intl.NumberFormat(this.locale, {\n style: this.mode,\n currency: this.currency,\n currencyDisplay: this.currencyDisplay,\n });\n this.prefixChar = formatter.format(1).split('1')[0];\n }\n\n return new RegExp(`${this.escapeRegExp(this.prefixChar || '')}`, 'g');\n }\n\n getSuffixExpression(): RegExp {\n if (this.suffix) {\n this.suffixChar = this.suffix;\n } else {\n const formatter = new Intl.NumberFormat(this.locale, {\n style: this.mode,\n currency: this.currency,\n currencyDisplay: this.currencyDisplay,\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n });\n this.suffixChar = formatter.format(1).split('1')[1];\n }\n\n return new RegExp(`${this.escapeRegExp(this.suffixChar || '')}`, 'g');\n }\n\n formatValue(value: any) {\n if (value != null) {\n if (value === '-') {\n // Minus sign\n return value;\n }\n\n if (this.format) {\n let formatter = new Intl.NumberFormat(this.locale, this.getOptions());\n let formattedValue = formatter.format(value);\n\n if (this.prefix && value != this.prefix) {\n formattedValue = this.prefix + formattedValue;\n }\n\n if (this.suffix && value != this.suffix) {\n formattedValue = formattedValue + this.suffix;\n }\n\n return formattedValue;\n }\n\n return value.toString();\n }\n\n return '';\n }\n\n parseValue(text: any) {\n const suffixRegex = new RegExp(this._suffix, '');\n const prefixRegex = new RegExp(this._prefix, '');\n const currencyRegex = new RegExp(this._currency, '');\n\n let filteredText = text\n .replace(suffixRegex, '')\n .replace(prefixRegex, '')\n .trim()\n .replace(/\\s/g, '')\n .replace(currencyRegex, '')\n .replace(this._group, '')\n .replace(this._minusSign, '-')\n .replace(this._decimal, '.')\n .replace(this._numeral, this._index);\n\n if (filteredText) {\n if (filteredText === '-')\n // Minus sign\n return filteredText;\n\n let parsedValue = +filteredText;\n return isNaN(parsedValue) ? null : parsedValue;\n }\n\n return null;\n }\n\n repeat(event: Event, interval: number | null, dir: number) {\n if (this.readonly) {\n return;\n }\n\n let i = interval || 500;\n\n this.clearTimer();\n this.timer = setTimeout(() => {\n this.repeat(event, 40, dir);\n }, i);\n\n this.spin(event, dir);\n }\n\n spin(event: Event, dir: number) {\n let step = this.step * dir;\n let currentValue = this.parseValue(this.input?.nativeElement.value) || 0;\n let newValue = this.validateValue((currentValue as number) + step);\n if (this.maxlength && this.maxlength < this.formatValue(newValue).length) {\n return;\n }\n this.updateInput(newValue, null, 'spin', null);\n this.updateModel(event, newValue);\n\n this.handleOnInput(event, currentValue, newValue);\n }\n\n clear() {\n this.value = null;\n this.onModelChange(this.value);\n this.onClear.emit();\n }\n\n onUpButtonMouseDown(event: MouseEvent) {\n if (event.button === 2) {\n this.clearTimer();\n return;\n }\n\n if (!this.disabled) {\n this.input?.nativeElement.focus();\n this.repeat(event, null, 1);\n event.preventDefault();\n }\n }\n\n onUpButtonMouseUp() {\n if (!this.disabled) {\n this.clearTimer();\n }\n }\n\n onUpButtonMouseLeave() {\n if (!this.disabled) {\n this.clearTimer();\n }\n }\n\n onUpButtonKeyDown(event: KeyboardEvent) {\n if (event.keyCode === 32 || event.keyCode === 13) {\n this.repeat(event, null, 1);\n }\n }\n\n onUpButtonKeyUp() {\n if (!this.disabled) {\n this.clearTimer();\n }\n }\n\n onDownButtonMouseDown(event: MouseEvent) {\n if (event.button === 2) {\n this.clearTimer();\n return;\n }\n if (!this.disabled) {\n this.input?.nativeElement.focus();\n this.repeat(event, null, -1);\n event.preventDefault();\n }\n }\n\n onDownButtonMouseUp() {\n if (!this.disabled) {\n this.clearTimer();\n }\n }\n\n onDownButtonMouseLeave() {\n if (!this.disabled) {\n this.clearTimer();\n }\n }\n\n onDownButtonKeyUp() {\n if (!this.disabled) {\n this.clearTimer();\n }\n }\n\n onDownButtonKeyDown(event: KeyboardEvent) {\n if (event.keyCode === 32 || event.keyCode === 13) {\n this.repeat(event, null, -1);\n }\n }\n\n onUserInput(event: Event) {\n if (this.readonly) {\n return;\n }\n\n if (this.isSpecialChar) {\n (event.target as HTMLInputElement).value = this.lastValue as string;\n }\n this.isSpecialChar = false;\n }\n\n onInputKeyDown(event: KeyboardEvent) {\n if (this.readonly) {\n return;\n }\n\n this.lastValue = (event.target as HTMLInputElement).value;\n if ((event as KeyboardEvent).shiftKey || (event as KeyboardEvent).altKey) {\n this.isSpecialChar = true;\n return;\n }\n\n let selectionStart = (event.target as HTMLInputElement).selectionStart as number;\n let selectionEnd = (event.target as HTMLInputElement).selectionEnd as number;\n let inputValue = (event.target as HTMLInputElement).value as string;\n let newValueStr = null;\n\n if (event.altKey) {\n event.preventDefault();\n }\n\n switch (event.key) {\n case 'ArrowUp':\n this.spin(event, 1);\n event.preventDefault();\n break;\n\n case 'ArrowDown':\n this.spin(event, -1);\n event.preventDefault();\n break;\n\n case 'ArrowLeft':\n for (let index = selectionStart; index <= inputValue.length; index++) {\n const previousCharIndex = index === 0 ? 0 : index - 1;\n if (this.isNumeralChar(inputValue.charAt(previousCharIndex))) {\n this.input.nativeElement.setSelectionRange(index, index);\n break;\n }\n }\n break;\n\n case 'ArrowRight':\n for (let index = selectionEnd; index >= 0; index--) {\n if (this.isNumeralChar(inputValue.charAt(index))) {\n this.input.nativeElement.setSelectionRange(index, index);\n break;\n }\n }\n break;\n\n case 'Tab':\n case 'Enter':\n newValueStr = this.validateValue(this.parseValue(this.input.nativeElement.value));\n this.input.nativeElement.value = this.formatValue(newValueStr);\n this.input.nativeElement.setAttribute('aria-valuenow', newValueStr);\n this.updateModel(event, newValueStr);\n break;\n\n case 'Backspace': {\n event.preventDefault();\n\n if (selectionStart === selectionEnd) {\n if ((selectionStart == 1 && this.prefix) || (selectionStart == inputValue.length && this.suffix)) {\n break;\n }\n\n const deleteChar = inputValue.charAt(selectionStart - 1);\n const { decimalCharIndex, decimalCharIndexWithoutPrefix } = this.getDecimalCharIndexes(inputValue);\n\n if (this.isNumeralChar(deleteChar)) {\n const decimalLength = this.getDecimalLength(inputValue);\n\n if (this._group.test(deleteChar)) {\n this._group.lastIndex = 0;\n newValueStr = inputValue.slice(0, selectionStart - 2) + inputValue.slice(selectionStart - 1);\n } else if (this._decimal.test(deleteChar)) {\n this._decimal.lastIndex = 0;\n\n if (decimalLength) {\n this.input?.nativeElement.setSelectionRange(selectionStart - 1, selectionStart - 1);\n } else {\n newValueStr = inputValue.slice(0, selectionStart - 1) + inputValue.slice(selectionStart);\n }\n } else if (decimalCharIndex > 0 && selectionStart > decimalCharIndex) {\n const insertedText = this.isDecimalMode() && (this.minFractionDigits || 0) < decimalLength ? '' : '0';\n newValueStr = inputValue.slice(0, selectionStart - 1) + insertedText + inputValue.slice(selectionStart);\n } else if (decimalCharIndexWithoutPrefix === 1) {\n newValueStr = inputValue.slice(0, selectionStart - 1) + '0' + inputValue.slice(selectionStart);\n newValueStr = (this.parseValue(newValueStr) as number) > 0 ? newValueStr : '';\n } else {\n newValueStr = inputValue.slice(0, selectionStart - 1) + inputValue.slice(selectionStart);\n }\n } else if (this.mode === 'currency' && deleteChar.search(this._currency) != -1) {\n newValueStr = inputValue.slice(1);\n }\n\n this.updateValue(event, newValueStr, null, 'delete-single');\n } else {\n newValueStr = this.deleteRange(inputValue, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, null, 'delete-range');\n }\n\n break;\n }\n\n case 'Delete':\n event.preventDefault();\n\n if (selectionStart === selectionEnd) {\n if ((selectionStart == 0 && this.prefix) || (selectionStart == inputValue.length - 1 && this.suffix)) {\n break;\n }\n const deleteChar = inputValue.charAt(selectionStart);\n const { decimalCharIndex, decimalCharIndexWithoutPrefix } = this.getDecimalCharIndexes(inputValue);\n\n if (this.isNumeralChar(deleteChar)) {\n const decimalLength = this.getDecimalLength(inputValue);\n\n if (this._group.test(deleteChar)) {\n this._group.lastIndex = 0;\n newValueStr = inputValue.slice(0, selectionStart) + inputValue.slice(selectionStart + 2);\n } else if (this._decimal.test(deleteChar)) {\n this._decimal.lastIndex = 0;\n\n if (decimalLength) {\n this.input?.nativeElement.setSelectionRange(selectionStart + 1, selectionStart + 1);\n } else {\n newValueStr = inputValue.slice(0, selectionStart) + inputValue.slice(selectionStart + 1);\n }\n } else if (decimalCharIndex > 0 && selectionStart > decimalCharIndex) {\n const insertedText = this.isDecimalMode() && (this.minFractionDigits || 0) < decimalLength ? '' : '0';\n newValueStr = inputValue.slice(0, selectionStart) + insertedText + inputValue.slice(selectionStart + 1);\n } else if (decimalCharIndexWithoutPrefix === 1) {\n newValueStr = inputValue.slice(0, selectionStart) + '0' + inputValue.slice(selectionStart + 1);\n newValueStr = (this.parseValue(newValueStr) as number) > 0 ? newValueStr : '';\n } else {\n newValueStr = inputValue.slice(0, selectionStart) + inputValue.slice(selectionStart + 1);\n }\n }\n\n this.updateValue(event, newValueStr as string, null, 'delete-back-single');\n } else {\n newValueStr = this.deleteRange(inputValue, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, null, 'delete-range');\n }\n break;\n\n case 'Home':\n if (this.min) {\n this.updateModel(event, this.min);\n event.preventDefault();\n }\n break;\n\n case 'End':\n if (this.max) {\n this.updateModel(event, this.max);\n event.preventDefault();\n }\n break;\n\n default:\n break;\n }\n\n this.onKeyDown.emit(event);\n }\n\n onInputKeyPress(event: KeyboardEvent) {\n if (this.readonly) {\n return;\n }\n\n let code = event.which || event.keyCode;\n let char = String.fromCharCode(code);\n let isDecimalSign = this.isDecimalSign(char);\n const isMinusSign = this.isMinusSign(char);\n\n if (code != 13) {\n event.preventDefault();\n }\n if (!isDecimalSign && event.code === 'NumpadDecimal') {\n isDecimalSign = true;\n char = this._decimalChar;\n code = char.charCodeAt(0);\n }\n const newValue = this.parseValue(this.input.nativeElement.value + char);\n const newValueStr = newValue != null ? newValue.toString() : '';\n\n if (this.maxlength && this.getSelectedText()?.length == this.maxlength) {\n this.insert(event, char, { isDecimalSign, isMinusSign });\n return;\n }\n\n if (this.maxlength && newValueStr.length > this.maxlength) {\n return;\n }\n\n if ((48 <= code && code <= 57) || isMinusSign || isDecimalSign) {\n this.insert(event, char, { isDecimalSign, isMinusSign });\n }\n }\n\n private getSelectedText() {\n return (\n window\n ?.getSelection()\n ?.toString()\n .replaceAll(/[^0-9']/g, '') || ''\n );\n }\n\n onPaste(event: ClipboardEvent) {\n if (!this.disabled && !this.readonly) {\n event.preventDefault();\n let data = (event.clipboardData || (this.document as any).defaultView['clipboardData']).getData('Text');\n if (data) {\n if (this.maxlength) {\n data = data.toString().substring(0, this.maxlength);\n }\n\n let filteredData = this.parseValue(data);\n if (filteredData != null) {\n this.insert(event, filteredData.toString());\n }\n }\n }\n }\n\n allowMinusSign() {\n return this.min == null || this.min < 0;\n }\n\n isMinusSign(char: string) {\n if (this._minusSign.test(char) || char === '-') {\n this._minusSign.lastIndex = 0;\n return true;\n }\n\n return false;\n }\n\n isDecimalSign(char: string) {\n if (this._decimal.test(char)) {\n this._decimal.lastIndex = 0;\n return true;\n }\n\n return false;\n }\n\n isDecimalMode() {\n return this.mode === 'decimal';\n }\n\n getDecimalCharIndexes(val: string) {\n let decimalCharIndex = val.search(this._decimal);\n this._decimal.lastIndex = 0;\n\n const filteredVal = val\n .replace(this._prefix as RegExp, '')\n .trim()\n .replace(/\\s/g, '')\n .replace(this._currency as RegExp, '');\n const decimalCharIndexWithoutPrefix = filteredVal.search(this._decimal);\n this._decimal.lastIndex = 0;\n\n return { decimalCharIndex, decimalCharIndexWithoutPrefix };\n }\n\n getCharIndexes(val: string) {\n const decimalCharIndex = val.search(this._decimal);\n this._decimal.lastIndex = 0;\n const minusCharIndex = val.search(this._minusSign);\n this._minusSign.lastIndex = 0;\n const suffixCharIndex = val.search(this._suffix as RegExp);\n (this._suffix as RegExp).lastIndex = 0;\n const currencyCharIndex = val.search(this._currency as RegExp);\n (this._currency as RegExp).lastIndex = 0;\n\n return { decimalCharIndex, minusCharIndex, suffixCharIndex, currencyCharIndex };\n }\n\n insert(event: Event, text: string, sign = { isDecimalSign: false, isMinusSign: false }) {\n const minusCharIndexOnText = text.search(this._minusSign);\n this._minusSign.lastIndex = 0;\n if (!this.allowMinusSign() && minusCharIndexOnText !== -1) {\n return;\n }\n\n let selectionStart = this.input?.nativeElement.selectionStart;\n let selectionEnd = this.input?.nativeElement.selectionEnd;\n let inputValue = this.input?.nativeElement.value.trim();\n const { decimalCharIndex, minusCharIndex, suffixCharIndex, currencyCharIndex } = this.getCharIndexes(inputValue);\n let newValueStr;\n\n if (sign.isMinusSign) {\n if (selectionStart === 0) {\n newValueStr = inputValue;\n if (minusCharIndex === -1 || selectionEnd !== 0) {\n newValueStr = this.insertText(inputValue, text, 0, selectionEnd);\n }\n\n this.updateValue(event, newValueStr, text, 'insert');\n }\n } else if (sign.isDecimalSign) {\n if (decimalCharIndex > 0 && selectionStart === decimalCharIndex) {\n this.updateValue(event, inputValue, text, 'insert');\n } else if (decimalCharIndex > selectionStart && decimalCharIndex < selectionEnd) {\n newValueStr = this.insertText(inputValue, text, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, text, 'insert');\n } else if (decimalCharIndex === -1 && this.maxFractionDigits) {\n newValueStr = this.insertText(inputValue, text, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, text, 'insert');\n }\n } else {\n const maxFractionDigits = this.numberFormat.resolvedOptions().maximumFractionDigits;\n const operation = selectionStart !== selectionEnd ? 'range-insert' : 'insert';\n\n if (decimalCharIndex > 0 && selectionStart > decimalCharIndex) {\n if (selectionStart + text.length - (decimalCharIndex + 1) <= maxFractionDigits) {\n const charIndex =\n currencyCharIndex >= selectionStart\n ? currencyCharIndex - 1\n : suffixCharIndex >= selectionStart\n ? suffixCharIndex\n : inputValue.length;\n\n newValueStr =\n inputValue.slice(0, selectionStart) +\n text +\n inputValue.slice(selectionStart + text.length, charIndex) +\n inputValue.slice(charIndex);\n this.updateValue(event, newValueStr, text, operation);\n }\n } else {\n newValueStr = this.insertText(inputValue, text, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, text, operation);\n }\n }\n }\n\n insertText(value: string, text: string, start: number, end: number) {\n let textSplit = text === '.' ? text : text.split('.');\n\n if (textSplit.length === 2) {\n const decimalCharIndex = value.slice(start, end).search(this._decimal);\n this._decimal.lastIndex = 0;\n return decimalCharIndex > 0\n ? value.slice(0, start) + this.formatValue(text) + value.slice(end)\n : value || this.formatValue(text);\n } else if (end - start === value.length) {\n return this.formatValue(text);\n } else if (start === 0) {\n return text + value.slice(end);\n } else if (end === value.length) {\n return value.slice(0, start) + text;\n } else {\n return value.slice(0, start) + text + value.slice(end);\n }\n }\n\n deleteRange(value: string, start: number, end: number) {\n let newValueStr;\n\n if (end - start === value.length) newValueStr = '';\n else if (start === 0) newValueStr = value.slice(end);\n else if (end === value.length) newValueStr = value.slice(0, start);\n else newValueStr = value.slice(0, start) + value.slice(end);\n\n return newValueStr;\n }\n\n initCursor() {\n let selectionStart = this.input?.nativeElement.selectionStart;\n let selectionEnd = this.input?.nativeElement.selectionEnd;\n let inputValue = this.input?.nativeElement.value;\n let valueLength = inputValue.length;\n let index = null;\n\n // remove prefix\n let prefixLength = (this.prefixChar || '').length;\n inputValue = inputValue.replace(this._prefix, '');\n\n // Will allow selecting whole prefix. But not a part of it.\n // Negative values will trigger clauses after this to fix the cursor position.\n if (selectionStart === selectionEnd || selectionStart !== 0 || selectionEnd < prefixLength) {\n selectionStart -= prefixLength;\n }\n\n let char = inputValue.charAt(selectionStart);\n if (this.isNumeralChar(char)) {\n return selectionStart + prefixLength;\n }\n\n //left\n let i = selectionStart - 1;\n while (i >= 0) {\n char = inputValue.charAt(i);\n if (this.isNumeralChar(char)) {\n index = i + prefixLength;\n break;\n } else {\n i--;\n }\n }\n\n if (index !== null) {\n this.input?.nativeElement.setSelectionRange(index + 1, index + 1);\n } else {\n i = selectionStart;\n while (i < valueLength) {\n char = inputValue.charAt(i);\n if (this.isNumeralChar(char)) {\n index = i + prefixLength;\n break;\n } else {\n i++;\n }\n }\n\n if (index !== null) {\n this.input?.nativeElement.setSelectionRange(index, index);\n }\n }\n\n return index || 0;\n }\n\n onInputClick() {\n const currentValue = this.input?.nativeElement.value;\n\n if (!this.readonly && currentValue !== DomHandler.getSelection()) {\n this.initCursor();\n }\n }\n\n isNumeralChar(char: string) {\n if (\n char.length === 1 &&\n (this._numeral.test(char) || this._decimal.test(char) || this._group.test(char) || this._minusSign.test(char))\n ) {\n this.resetRegex();\n return true;\n }\n\n return false;\n }\n\n resetRegex() {\n this._numeral.lastIndex = 0;\n this._decimal.lastIndex = 0;\n this._group.lastIndex = 0;\n this._minusSign.lastIndex = 0;\n }\n\n updateValue(event: Event, valueStr: Nullable<string>, insertedValueStr: Nullable<string>, operation: Nullable<string>) {\n let currentValue = this.input?.nativeElement.value;\n let newValue = null;\n\n if (valueStr != null) {\n newValue = this.parseValue(valueStr);\n newValue = !newValue && !this.allowEmpty ? 0 : newValue;\n this.updateInput(newValue, insertedValueStr, operation, valueStr);\n\n this.handleOnInput(event, currentValue, newValue);\n }\n }\n\n handleOnInput(event: Event, currentValue: string, newValue: any) {\n if (this.isValueChanged(currentValue, newValue)) {\n (this.input as ElementRef).nativeElement.value = this.formatValue(newValue);\n this.input?.nativeElement.setAttribute('aria-valuenow', newValue);\n this.updateModel(event, newValue);\n this.onInput.emit({ originalEvent: event, value: newValue, formattedValue: currentValue });\n }\n }\n\n isValueChanged(currentValue: string, newValue: string) {\n if (newValue === null && currentValue !== null) {\n return true;\n }\n\n if (newValue != null) {\n let parsedCurrentValue = typeof currentValue === 'string' ? this.parseValue(currentValue) : currentValue;\n return newValue !== parsedCurrentValue;\n }\n\n return false;\n }\n\n validateValue(value: number | string) {\n if (value === '-' || value == null) {\n return null;\n }\n\n if (this.min != null && (value as number) < this.min) {\n return this.min;\n }\n\n if (this.max != null && (value as number) > this.max) {\n return this.max;\n }\n\n return value;\n }\n\n updateInput(value: any, insertedValueStr: Nullable<string>, operation: Nullable<string>, valueStr: Nullable<string>) {\n insertedValueStr = insertedValueStr || '';\n\n let inputValue = this.input?.nativeElement.value;\n let newValue = this.formatValue(value);\n let currentLength = inputValue.length;\n\n if (newValue !== valueStr) {\n newValue = this.concatValues(newValue, valueStr as string);\n }\n\n if (currentLength === 0) {\n this.input.nativeElement.value = newValue;\n this.input.nativeElement.setSelectionRange(0, 0);\n const index = this.initCursor();\n const selectionEnd = index + insertedValueStr.length;\n this.input.nativeElement.setSelectionRange(selectionEnd, selectionEnd);\n } else {\n let selectionStart = this.input.nativeElement.selectionStart;\n let selectionEnd = this.input.nativeElement.selectionEnd;\n\n if (this.maxlength && newValue.length > this.maxlength) {\n newValue = newValue.slice(0, this.maxlength);\n selectionStart = Math.min(selectionStart, this.maxlength);\n selectionEnd = Math.min(selectionEnd, this.maxlength);\n }\n\n if (this.maxlength && this.maxlength < newValue.length) {\n return;\n }\n\n this.input.nativeElement.value = newValue;\n let newLength = newValue.length;\n\n if (operation === 'range-insert') {\n const startValue = this.parseValue((inputValue || '').slice(0, selectionStart));\n const startValueStr = startValue !== null ? startValue.toString() : '';\n const startExpr = startValueStr.split('').join(`(${this.groupChar})?`);\n const sRegex = new RegExp(startExpr, 'g');\n sRegex.test(newValue);\n\n const tExpr = insertedValueStr.split('').join(`(${this.groupChar})?`);\n const tRegex = new RegExp(tExpr, 'g');\n tRegex.test(newValue.slice(sRegex.lastIndex));\n\n selectionEnd = sRegex.lastIndex + tRegex.lastIndex;\n this.input.nativeElement.setSelectionRange(selectionEnd, selectionEnd);\n } else if (newLength === currentLength) {\n if (operation === 'insert' || operation === 'delete-back-single')\n this.input.nativeElement.setSelectionRange(selectionEnd + 1, selectionEnd + 1);\n else if (operation === 'delete-single') this.input.nativeElement.setSelectionRange(selectionEnd - 1, selectionEnd - 1);\n else if (operation === 'delete-range' || operation === 'spin')\n this.input.nativeElement.setSelectionRange(selectionEnd, selectionEnd);\n } else if (operation === 'delete-back-single') {\n let prevChar = inputValue.charAt(selectionEnd - 1);\n let nextChar = inputValue.charAt(selectionEnd);\n let diff = currentLength - newLength;\n let isGroupChar = this._group.test(nextChar);\n\n if (isGroupChar && diff === 1) {\n selectionEnd += 1;\n } else if (!isGroupChar && this.isNumeralChar(prevChar)) {\n selectionEnd += -1 * diff + 1;\n }\n\n this._group.lastIndex = 0;\n this.input.nativeElement.setSelectionRange(selectionEnd, selectionEnd);\n } else if (inputValue === '-' && operation === 'insert') {\n this.input.nativeElement.setSelectionRange(0, 0);\n const index = this.initCursor();\n const selectionEnd = index + insertedValueStr.length + 1;\n this.input.nativeElement.setSelectionRange(selectionEnd, selectionEnd);\n } else {\n selectionEnd = selectionEnd + (newLength - currentLength);\n this.input.nativeElement.setSelectionRange(selectionEnd, selectionEnd);\n }\n }\n\n this.input.nativeElement.setAttribute('aria-valuenow', value);\n }\n\n concatValues(val1: string, val2: string) {\n if (val1 && val2) {\n let decimalCharIndex = val2.search(this._decimal);\n this._decimal.lastIndex = 0;\n\n if (this.suffixChar) {\n return decimalCharIndex !== -1\n ? val1\n : val1.replace(this.suffixChar, '').split(this._decimal)[0] +\n val2.replace(this.suffixChar, '').slice(decimalCharIndex) +\n this.suffixChar;\n } else {\n return decimalCharIndex !== -1 ? val1.split(this._decimal)[0] + val2.slice(decimalCharIndex) : val1;\n }\n }\n return val1;\n }\n\n getDecimalLength(value: string) {\n if (value) {\n const valueSplit = value.split(this._decimal);\n\n if (valueSplit.length === 2) {\n return valueSplit[1]\n .replace(this._suffix as RegExp, '')\n .trim()\n .replace(/\\s/g, '')\n .replace(this._currency as RegExp, '').length;\n }\n }\n\n return 0;\n }\n\n onInputFocus(event: Event) {\n this.focused = true;\n this.onFocus.emit(event);\n }\n\n onInputBlur(event: Event) {\n this.focused = false;\n\n const newValueNumber = this.validateValue(this.parseValue(this.input.nativeElement.value));\n const newValueString = newValueNumber?.toString();\n this.input.nativeElement.value = this.formatValue(newValueString);\n this.input.nativeElement.setAttribute('aria-valuenow', newValueString);\n this.updateModel(event, newValueNumber);\n this.onBlur.emit(event);\n }\n\n formattedValue() {\n const val = !this.value && !this.allowEmpty ? 0 : this.value;\n return this.formatValue(val);\n }\n\n updateModel(event: Event, value: any) {\n const isBlurUpdateOnMode = this.ngControl?.control?.updateOn === 'blur';\n\n if (this.value !== value) {\n this.value = value;\n\n if (!(isBlurUpdateOnMode && this.focused)) {\n this.onModelChange(value);\n }\n } else if (isBlurUpdateOnMode) {\n this.onModelChange(value);\n }\n this.onModelTouched();\n }\n\n writeValue(value: any): void {\n this.value = value;\n this.cd.markForCheck();\n }\n\n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n\n setDisabledState(val: boolean): void {\n this.disabled = val;\n this.cd.markForCheck();\n }\n\n get filled() {\n return this.value != null && this.value.toString().length > 0;\n }\n\n clearTimer() {\n if (this.timer) {\n clearInterval(this.timer);\n }\n }\n}\n\n@NgModule({\n imports: [CommonModule, InputTextModule, ButtonModule, AutoFocusModule, TimesIcon, AngleUpIcon, AngleDownIcon],\n exports: [InputNumber, SharedModule],\n declarations: [InputNumber],\n})\nexport class InputNumberModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"primeng-inputnumber.mjs","sources":["../../src/app/components/inputnumber/style/inputnumberstyle.ts","../../src/app/components/inputnumber/inputnumber.ts","../../src/app/components/inputnumber/primeng-inputnumber.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-inputnumber {\n display: inline-flex;\n position: relative;\n}\n\n.p-inputnumber-button {\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 0 0 auto;\n cursor: pointer;\n background: ${dt('inputnumber.button.background')};\n color: ${dt('inputnumber.button.color')};\n width: ${dt('inputnumber.button.width')};\n transition: background ${dt('inputnumber.transition.duration')}, color ${dt('inputnumber.transition.duration')}, border-color ${dt('inputnumber.transition.duration')}, outline-color ${dt('inputnumber.transition.duration')};\n}\n\n.p-inputnumber-button:hover {\n background: ${dt('inputnumber.button.hover.background')};\n color: ${dt('inputnumber.button.hover.color')};\n}\n\n.p-inputnumber-button:active {\n background: ${dt('inputnumber.button.active.background')};\n color: ${dt('inputnumber.button.active.color')};\n}\n\n.p-inputnumber-stacked .p-inputnumber-button {\n position: relative;\n border: 0 none;\n}\n\n.p-inputnumber-stacked .p-inputnumber-button-group {\n display: flex;\n flex-direction: column;\n position: absolute;\n top: 1px;\n right: 1px;\n height: calc(100% - 2px);\n}\n\n.p-inputnumber-stacked .p-inputnumber-increment-button {\n padding: 0;\n border-top-right-radius: calc(${dt('inputnumber.button.border.radius')} - 1px);\n}\n\n.p-inputnumber-stacked .p-inputnumber-decrement-button {\n padding: 0;\n border-bottom-right-radius: calc(${dt('inputnumber.button.border.radius')} - 1px);\n}\n\n.p-inputnumber-stacked .p-inputnumber-button {\n flex: 1 1 auto;\n border: 0 none;\n}\n\n.p-inputnumber-horizontal .p-inputnumber-button {\n border: 1px solid ${dt('inputnumber.button.border.color')};\n}\n\n.p-inputnumber-horizontal .p-inputnumber-button:hover {\n border-color: ${dt('inputnumber.button.hover.border.color')};\n}\n\n.p-inputnumber-horizontal .p-inputnumber-button:active {\n border-color: ${dt('inputnumber.button.active.border.color')};\n}\n\n.p-inputnumber-horizontal .p-inputnumber-increment-button {\n order: 3;\n border-top-right-radius: ${dt('inputnumber.button.border.radius')};\n border-bottom-right-radius: ${dt('inputnumber.button.border.radius')};\n border-left: 0 none;\n}\n\n.p-inputnumber-horizontal .p-inputnumber-input {\n order: 2;\n border-radius: 0;\n}\n\n.p-inputnumber-horizontal .p-inputnumber-decrement-button {\n order: 1;\n border-top-left-radius: ${dt('inputnumber.button.border.radius')};\n border-bottom-left-radius: ${dt('inputnumber.button.border.radius')};\n border-right: 0 none;\n}\n\n.p-inputnumber-vertical {\n flex-direction: column;\n}\n\n.p-inputnumber-vertical .p-inputnumber-button {\n border: 1px solid ${dt('inputnumber.button.border.color')};\n padding: ${dt('inputnumber.button.vertical.padding')}; 0;\n}\n\n.p-inputnumber-vertical .p-inputnumber-button:hover {\n border-color: ${dt('inputnumber.button.hover.border.color')};\n}\n\n.p-inputnumber-vertical .p-inputnumber-button:active {\n border-color: ${dt('inputnumber.button.active.border.color')};\n}\n\n.p-inputnumber-vertical .p-inputnumber-increment-button {\n order: 1;\n border-top-left-radius: ${dt('inputnumber.button.border.radius')};\n border-top-right-radius: ${dt('inputnumber.button.border.radius')};\n width: 100%;\n border-bottom: 0 none;\n}\n\n.p-inputnumber-vertical .p-inputnumber-input {\n order: 2;\n border-radius: 0;\n text-align: center;\n}\n\n.p-inputnumber-vertical .p-inputnumber-decrement-button {\n order: 3;\n border-bottom-left-radius: ${dt('inputnumber.button.border.radius')};\n border-bottom-right-radius: ${dt('inputnumber.button.border.radius')};\n width: 100%;\n border-top: 0 none;\n}\n\n.p-inputnumber-input {\n flex: 1 1 auto;\n}\n\n.p-inputnumber-fluid {\n width: 100%;\n}\n\n.p-inputnumber-fluid .p-inputnumber-input {\n width: 1%;\n}\n\n.p-inputnumber-fluid.p-inputnumber-vertical .p-inputnumber-input {\n width: 100%;\n}\n\n/* For PrimeNG */\np-inputnumber.ng-invalid.ng-dirty > .p-inputwrapper.p-component > .p-inputtext {\n border-color: ${dt('inputtext.invalid.border.color')};\n};\n`;\n\nconst classes = {\n root: ({ instance }) => ({\n 'p-inputnumber p-component p-inputwrapper': true,\n 'p-inputwrapper-filled': instance.filled || instance.allowEmpty === false,\n 'p-inputwrapper-focus': instance.focused,\n 'p-inputnumber-stacked': instance.showButtons && instance.buttonLayout === 'stacked',\n 'p-inputnumber-horizontal': instance.showButtons && instance.buttonLayout === 'horizontal',\n 'p-inputnumber-vertical': instance.showButtons && instance.buttonLayout === 'vertical',\n 'p-inputnumber-fluid': instance.hasFluid,\n }),\n pcInput: 'p-inputnumber-input',\n buttonGroup: 'p-inputnumber-button-group',\n incrementButton: ({ instance }) => ({\n 'p-inputnumber-button p-inputnumber-increment-button': true,\n 'p-disabled': instance.showButtons && instance.max !== null && instance.maxlength,\n }),\n decrementButton: ({ instance }) => ({\n 'p-inputnumber-button p-inputnumber-decrement-button': true,\n 'p-disabled': instance.showButtons && instance.min !== null && instance.minlength,\n }),\n};\n\n@Injectable()\nexport class InputNumberStyle extends BaseStyle {\n name = 'inputnumber';\n\n theme = theme;\n\n classes = classes;\n}\n\n/**\n *\n * InputNumber is an input component to provide numerical input.\n *\n * [Live Demo](https://www.primeng.org/inputnumber/)\n *\n * @module inputnumberstyle\n *\n */\n\nexport enum InputNumberClasses {\n /**\n * Class name of the root element\n */\n root = 'p-inputnumber',\n /**\n * Class name of the input element\n */\n pcInput = 'p-inputnumber-input',\n /**\n * Class name of the button group element\n */\n buttonGroup = 'p-inputnumber-button-group',\n /**\n * Class name of the increment button element\n */\n incrementButton = 'p-inputnumber-increment-button',\n /**\n * Class name of the decrement button element\n */\n decrementButton = 'p-inputnumber-decrement-button',\n}\n\nexport interface InputNumberStyle extends BaseStyle {}\n","import { CommonModule } from '@angular/common';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n NgModule,\n OnChanges,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute,\n forwardRef,\n inject,\n numberAttribute,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';\nimport { PrimeTemplate, SharedModule } from 'primeng/api';\nimport { AutoFocusModule } from 'primeng/autofocus';\nimport { ButtonModule } from 'primeng/button';\nimport { DomHandler } from 'primeng/dom';\nimport { AngleDownIcon } from 'primeng/icons/angledown';\nimport { AngleUpIcon } from 'primeng/icons/angleup';\nimport { TimesIcon } from 'primeng/icons/times';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { Nullable } from 'primeng/ts-helpers';\nimport { InputNumberInputEvent } from './inputnumber.interface';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { InputNumberStyle } from './style/inputnumberstyle';\n\nexport const INPUTNUMBER_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InputNumber),\n multi: true,\n};\n/**\n * InputNumber is an input component to provide numerical input.\n * @group Components\n */\n@Component({\n selector: 'p-inputNumber, p-inputnumber',\n template: `\n <span\n [ngClass]=\"_rootClass\"\n [ngStyle]=\"style\"\n [class]=\"styleClass\"\n [attr.data-pc-name]=\"'inputnumber'\"\n [attr.data-pc-section]=\"'root'\"\n >\n <input\n pInputText\n #input\n [attr.id]=\"inputId\"\n role=\"spinbutton\"\n [ngClass]=\"'p-inputnumber-input'\"\n [ngStyle]=\"inputStyle\"\n [class]=\"inputStyleClass\"\n [value]=\"formattedValue()\"\n [attr.variant]=\"variant\"\n [attr.aria-valuemin]=\"min\"\n [attr.aria-valuemax]=\"max\"\n [attr.aria-valuenow]=\"value\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.title]=\"title\"\n [attr.size]=\"size\"\n [attr.name]=\"name\"\n [attr.autocomplete]=\"autocomplete\"\n [attr.maxlength]=\"maxlength\"\n [attr.tabindex]=\"tabindex\"\n [attr.aria-required]=\"ariaRequired\"\n [attr.required]=\"required\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n inputmode=\"decimal\"\n (input)=\"onUserInput($event)\"\n (keydown)=\"onInputKeyDown($event)\"\n (keypress)=\"onInputKeyPress($event)\"\n (paste)=\"onPaste($event)\"\n (click)=\"onInputClick()\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\"\n [attr.data-pc-section]=\"'input'\"\n pAutoFocus\n [autofocus]=\"autofocus\"\n [fluid]=\"hasFluid\"\n />\n <ng-container *ngIf=\"buttonLayout != 'vertical' && showClear && value\">\n <TimesIcon\n *ngIf=\"!clearIconTemplate\"\n [ngClass]=\"'p-inputnumber-clear-icon'\"\n (click)=\"clear()\"\n [attr.data-pc-section]=\"'clearIcon'\"\n />\n <span *ngIf=\"clearIconTemplate\" (click)=\"clear()\" class=\"p-inputnumber-clear-icon\" [attr.data-pc-section]=\"'clearIcon'\">\n <ng-template *ngTemplateOutlet=\"clearIconTemplate\"></ng-template>\n </span>\n </ng-container>\n <span\n class=\"p-inputnumber-button-group\"\n *ngIf=\"showButtons && buttonLayout === 'stacked'\"\n [attr.data-pc-section]=\"'buttonGroup'\"\n >\n <button\n type=\"button\"\n [ngClass]=\"_incrementButtonClass\"\n [class]=\"incrementButtonClass\"\n [disabled]=\"disabled\"\n tabindex=\"-1\"\n (mousedown)=\"onUpButtonMouseDown($event)\"\n (mouseup)=\"onUpButtonMouseUp()\"\n (mouseleave)=\"onUpButtonMouseLeave()\"\n (keydown)=\"onUpButtonKeyDown($event)\"\n (keyup)=\"onUpButtonKeyUp()\"\n [attr.aria-hidden]=\"true\"\n [attr.data-pc-section]=\"'incrementbutton'\"\n >\n <span *ngIf=\"incrementButtonIcon\" [ngClass]=\"incrementButtonIcon\" [attr.data-pc-section]=\"'incrementbuttonicon'\"></span>\n <ng-container *ngIf=\"!incrementButtonIcon\">\n <AngleUpIcon *ngIf=\"!incrementButtonIconTemplate\" [attr.data-pc-section]=\"'incrementbuttonicon'\" />\n <ng-template *ngTemplateOutlet=\"incrementButtonIconTemplate\"></ng-template>\n </ng-container>\n </button>\n\n <button\n type=\"button\"\n [ngClass]=\"_decrementButtonClass\"\n [class]=\"decrementButtonClass\"\n [disabled]=\"disabled\"\n tabindex=\"-1\"\n [attr.aria-hidden]=\"true\"\n (mousedown)=\"onDownButtonMouseDown($event)\"\n (mouseup)=\"onDownButtonMouseUp()\"\n (mouseleave)=\"onDownButtonMouseLeave()\"\n (keydown)=\"onDownButtonKeyDown($event)\"\n (keyup)=\"onDownButtonKeyUp()\"\n [attr.data-pc-section]=\"decrementbutton\"\n >\n <span *ngIf=\"decrementButtonIcon\" [ngClass]=\"decrementButtonIcon\" [attr.data-pc-section]=\"'decrementbuttonicon'\"></span>\n <ng-container *ngIf=\"!decrementButtonIcon\">\n <AngleDownIcon *ngIf=\"!decrementButtonIconTemplate\" [attr.data-pc-section]=\"'decrementbuttonicon'\" />\n <ng-template *ngTemplateOutlet=\"decrementButtonIconTemplate\"></ng-template>\n </ng-container>\n </button>\n </span>\n <button\n *ngIf=\"showButtons && buttonLayout !== 'stacked'\"\n type=\"button\"\n [ngClass]=\"_incrementButtonClass\"\n [class]=\"incrementButtonClass\"\n [disabled]=\"disabled\"\n tabindex=\"-1\"\n [attr.aria-hidden]=\"true\"\n (mousedown)=\"onUpButtonMouseDown($event)\"\n (mouseup)=\"onUpButtonMouseUp()\"\n (mouseleave)=\"onUpButtonMouseLeave()\"\n (keydown)=\"onUpButtonKeyDown($event)\"\n (keyup)=\"onUpButtonKeyUp()\"\n [attr.data-pc-section]=\"'incrementbutton'\"\n >\n <span *ngIf=\"incrementButtonIcon\" [ngClass]=\"incrementButtonIcon\" [attr.data-pc-section]=\"'incrementbuttonicon'\"></span>\n <ng-container *ngIf=\"!incrementButtonIcon\">\n <AngleUpIcon *ngIf=\"!incrementButtonIconTemplate\" [attr.data-pc-section]=\"'incrementbuttonicon'\" />\n <ng-template *ngTemplateOutlet=\"incrementButtonIconTemplate\"></ng-template>\n </ng-container>\n </button>\n <button\n *ngIf=\"showButtons && buttonLayout !== 'stacked'\"\n type=\"button\"\n [ngClass]=\"_decrementButtonClass\"\n [class]=\"decrementButtonClass\"\n [disabled]=\"disabled\"\n tabindex=\"-1\"\n [attr.aria-hidden]=\"true\"\n (mousedown)=\"onDownButtonMouseDown($event)\"\n (mouseup)=\"onDownButtonMouseUp()\"\n (mouseleave)=\"onDownButtonMouseLeave()\"\n (keydown)=\"onDownButtonKeyDown($event)\"\n (keyup)=\"onDownButtonKeyUp()\"\n [attr.data-pc-section]=\"'decrementbutton'\"\n >\n <span *ngIf=\"decrementButtonIcon\" [ngClass]=\"decrementButtonIcon\" [attr.data-pc-section]=\"'decrementbuttonicon'\"></span>\n <ng-container *ngIf=\"!decrementButtonIcon\">\n <AngleDownIcon *ngIf=\"!decrementButtonIconTemplate\" [attr.data-pc-section]=\"'decrementbuttonicon'\" />\n <ng-template *ngTemplateOutlet=\"decrementButtonIconTemplate\"></ng-template>\n </ng-container>\n </button>\n </span>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [INPUTNUMBER_VALUE_ACCESSOR, InputNumberStyle],\n encapsulation: ViewEncapsulation.None,\n})\nexport class InputNumber extends BaseComponent implements OnInit, AfterContentInit, OnChanges, ControlValueAccessor {\n /**\n * Displays spinner buttons.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showButtons: boolean = false;\n /**\n * Whether to format the value.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) format: boolean = true;\n /**\n * Layout of the buttons, valid values are \"stacked\" (default), \"horizontal\" and \"vertical\".\n * @group Props\n */\n @Input() buttonLayout: string = 'stacked';\n /**\n * Identifier of the focus input to match a label defined for the component.\n * @group Props\n */\n @Input() inputId: string | undefined;\n /**\n * Style class of the component.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Inline style of the component.\n * @group Props\n */\n @Input() style: { [klass: string]: any } | null | undefined;\n /**\n * Advisory information to display on input.\n * @group Props\n */\n @Input() placeholder: string | undefined;\n /**\n * Size of the input field.\n * @group Props\n */\n @Input({ transform: numberAttribute }) size: number | undefined;\n /**\n * Maximum number of character allows in the input field.\n * @group Props\n */\n @Input({ transform: numberAttribute }) maxlength: number | undefined;\n /**\n * Specifies tab order of the element.\n * @group Props\n */\n @Input({ transform: numberAttribute }) tabindex: number | undefined;\n /**\n * Title text of the input text.\n * @group Props\n */\n @Input() title: string | undefined;\n /**\n * Specifies one or more IDs in the DOM that labels the input field.\n * @group Props\n */\n @Input() ariaLabelledBy: string | undefined;\n /**\n * Used to define a string that labels the input element.\n * @group Props\n */\n @Input() ariaLabel: string | undefined;\n /**\n * Used to indicate that user input is required on an element before a form can be submitted.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) ariaRequired: boolean | undefined;\n /**\n * Name of the input field.\n * @group Props\n */\n @Input() name: string | undefined;\n /**\n * Indicates that whether the input field is required.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) required: boolean | undefined;\n /**\n * Used to define a string that autocomplete attribute the current element.\n * @group Props\n */\n @Input() autocomplete: string | undefined;\n /**\n * Mininum boundary value.\n * @group Props\n */\n @Input({ transform: numberAttribute }) min: number | undefined;\n /**\n * Maximum boundary value.\n * @group Props\n */\n @Input({ transform: numberAttribute }) max: number | undefined;\n /**\n * Style class of the increment button.\n * @group Props\n */\n @Input() incrementButtonClass: string | undefined;\n /**\n * Style class of the decrement button.\n * @group Props\n */\n @Input() decrementButtonClass: string | undefined;\n /**\n * Style class of the increment button.\n * @group Props\n */\n @Input() incrementButtonIcon: string | undefined;\n /**\n * Style class of the decrement button.\n * @group Props\n */\n @Input() decrementButtonIcon: string | undefined;\n /**\n * When present, it specifies that an input field is read-only.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) readonly: boolean = false;\n /**\n * Step factor to increment/decrement the value.\n * @group Props\n */\n @Input({ transform: numberAttribute }) step: number = 1;\n /**\n * Determines whether the input field is empty.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) allowEmpty: boolean = true;\n /**\n * Locale to be used in formatting.\n * @group Props\n */\n @Input() locale: string | undefined;\n /**\n * The locale matching algorithm to use. Possible values are \"lookup\" and \"best fit\"; the default is \"best fit\". See Locale Negotiation for details.\n * @group Props\n */\n @Input() localeMatcher: any;\n /**\n * Defines the behavior of the component, valid values are \"decimal\" and \"currency\".\n * @group Props\n */\n @Input() mode: string | any = 'decimal';\n /**\n * The currency to use in currency formatting. Possible values are the ISO 4217 currency codes, such as \"USD\" for the US dollar, \"EUR\" for the euro, or \"CNY\" for the Chinese RMB. There is no default value; if the style is \"currency\", the currency property must be provided.\n * @group Props\n */\n @Input() currency: string | undefined;\n /**\n * How to display the currency in currency formatting. Possible values are \"symbol\" to use a localized currency symbol such as €, ü\"code\" to use the ISO currency code, \"name\" to use a localized currency name such as \"dollar\"; the default is \"symbol\".\n * @group Props\n */\n @Input() currencyDisplay: string | undefined | any;\n /**\n * Whether to use grouping separators, such as thousands separators or thousand/lakh/crore separators.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) useGrouping: boolean = true;\n /**\n * Specifies the input variant of the component.\n * @group Props\n */\n @Input() variant: 'filled' | 'outlined' = 'outlined';\n /**\n * The minimum number of fraction digits to use. Possible values are from 0 to 20; the default for plain number and percent formatting is 0; the default for currency formatting is the number of minor unit digits provided by the ISO 4217 currency code list (2 if the list doesn't provide that information).\n * @group Props\n */\n @Input({ transform: (value: unknown) => numberAttribute(value, null) }) minFractionDigits: number | undefined;\n /**\n * The maximum number of fraction digits to use. Possible values are from 0 to 20; the default for plain number formatting is the larger of minimumFractionDigits and 3; the default for currency formatting is the larger of minimumFractionDigits and the number of minor unit digits provided by the ISO 4217 currency code list (2 if the list doesn't provide that information).\n * @group Props\n */\n @Input({ transform: (value: unknown) => numberAttribute(value, null) }) maxFractionDigits: number | undefined;\n /**\n * Text to display before the value.\n * @group Props\n */\n @Input() prefix: string | undefined;\n /**\n * Text to display after the value.\n * @group Props\n */\n @Input() suffix: string | undefined;\n /**\n * Inline style of the input field.\n * @group Props\n */\n @Input() inputStyle: any;\n /**\n * Style class of the input field.\n * @group Props\n */\n @Input() inputStyleClass: string | undefined;\n /**\n * When enabled, a clear icon is displayed to clear the value.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showClear: boolean = false;\n /**\n * When present, it specifies that the component should automatically get focus on load.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) autofocus: boolean | undefined;\n /**\n * When present, it specifies that the element should be disabled.\n * @group Props\n */\n @Input() get disabled(): boolean | undefined {\n return this._disabled;\n }\n set disabled(disabled: boolean | undefined) {\n if (disabled) this.focused = false;\n\n this._disabled = disabled;\n\n if (this.timer) this.clearTimer();\n }\n /**\n * Spans 100% width of the container when enabled.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) fluid: boolean = false;\n /**\n * Callback to invoke on input.\n * @param {InputNumberInputEvent} event - Custom input event.\n * @group Emits\n */\n @Output() onInput: EventEmitter<InputNumberInputEvent> = new EventEmitter<InputNumberInputEvent>();\n /**\n * Callback to invoke when the component receives focus.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n @Output() onFocus: EventEmitter<Event> = new EventEmitter<Event>();\n /**\n * Callback to invoke when the component loses focus.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n @Output() onBlur: EventEmitter<Event> = new EventEmitter<Event>();\n /**\n * Callback to invoke on input key press.\n * @param {KeyboardEvent} event - Keyboard event.\n * @group Emits\n */\n @Output() onKeyDown: EventEmitter<KeyboardEvent> = new EventEmitter<KeyboardEvent>();\n /**\n * Callback to invoke when clear token is clicked.\n * @group Emits\n */\n @Output() onClear: EventEmitter<void> = new EventEmitter<void>();\n\n @ViewChild('input') input!: ElementRef<HTMLInputElement>;\n\n @ContentChildren(PrimeTemplate) templates!: QueryList<PrimeTemplate>;\n\n clearIconTemplate: Nullable<TemplateRef<any>>;\n\n incrementButtonIconTemplate: Nullable<TemplateRef<any>>;\n\n decrementButtonIconTemplate: Nullable<TemplateRef<any>>;\n\n value: Nullable<number>;\n\n onModelChange: Function = () => {};\n\n onModelTouched: Function = () => {};\n\n focused: Nullable<boolean>;\n\n initialized: Nullable<boolean>;\n\n groupChar: string = '';\n\n prefixChar: string = '';\n\n suffixChar: string = '';\n\n isSpecialChar: Nullable<boolean>;\n\n timer: any;\n\n lastValue: Nullable<string>;\n\n _numeral: any;\n\n numberFormat: any;\n\n _decimal: any;\n\n _decimalChar: string;\n\n _group: any;\n\n _minusSign: any;\n\n _currency: Nullable<RegExp | string>;\n\n _prefix: Nullable<RegExp>;\n\n _suffix: Nullable<RegExp>;\n\n _index: number | any;\n\n _disabled: boolean | undefined;\n\n _componentStyle = inject(InputNumberStyle);\n\n private ngControl: NgControl | null = null;\n\n get _rootClass() {\n return this._componentStyle.classes.root({ instance: this });\n }\n\n get hasFluid() {\n const nativeElement = this.el.nativeElement;\n const fluidComponent = nativeElement.closest('p-fluid');\n return this.fluid || !!fluidComponent;\n }\n\n get _incrementButtonClass() {\n return this._componentStyle.classes.incrementButton({ instance: this });\n }\n\n get _decrementButtonClass() {\n return this._componentStyle.classes.decrementButton({ instance: this });\n }\n\n constructor(public readonly injector: Injector) {\n super();\n }\n\n ngOnChanges(simpleChange: SimpleChanges) {\n super.ngOnChanges(simpleChange);\n const props = [\n 'locale',\n 'localeMatcher',\n 'mode',\n 'currency',\n 'currencyDisplay',\n 'useGrouping',\n 'minFractionDigits',\n 'maxFractionDigits',\n 'prefix',\n 'suffix',\n ];\n if (props.some((p) => !!simpleChange[p])) {\n this.updateConstructParser();\n }\n }\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch (item.getType()) {\n case 'clearicon':\n this.clearIconTemplate = item.template;\n break;\n\n case 'incrementbuttonicon':\n this.incrementButtonIconTemplate = item.template;\n break;\n\n case 'decrementbuttonicon':\n this.decrementButtonIconTemplate = item.template;\n break;\n }\n });\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.ngControl = this.injector.get(NgControl, null, { optional: true });\n\n this.constructParser();\n\n this.initialized = true;\n }\n\n getOptions() {\n return {\n localeMatcher: this.localeMatcher,\n style: this.mode,\n currency: this.currency,\n currencyDisplay: this.currencyDisplay,\n useGrouping: this.useGrouping,\n minimumFractionDigits: this.minFractionDigits,\n maximumFractionDigits: this.maxFractionDigits,\n };\n }\n\n constructParser() {\n this.numberFormat = new Intl.NumberFormat(this.locale, this.getOptions());\n const numerals = [...new Intl.NumberFormat(this.locale, { useGrouping: false }).format(9876543210)].reverse();\n const index = new Map(numerals.map((d, i) => [d, i]));\n this._numeral = new RegExp(`[${numerals.join('')}]`, 'g');\n this._group = this.getGroupingExpression();\n this._minusSign = this.getMinusSignExpression();\n this._currency = this.getCurrencyExpression();\n this._decimal = this.getDecimalExpression();\n this._decimalChar = this.getDecimalChar();\n this._suffix = this.getSuffixExpression();\n this._prefix = this.getPrefixExpression();\n this._index = (d: any) => index.get(d);\n }\n\n updateConstructParser() {\n if (this.initialized) {\n this.constructParser();\n }\n }\n\n escapeRegExp(text: string): string {\n return text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n }\n\n getDecimalExpression(): RegExp {\n const decimalChar = this.getDecimalChar();\n return new RegExp(`[${decimalChar}]`, 'g');\n }\n getDecimalChar(): string {\n const formatter = new Intl.NumberFormat(this.locale, { ...this.getOptions(), useGrouping: false });\n return formatter\n .format(1.1)\n .replace(this._currency as RegExp | string, '')\n .trim()\n .replace(this._numeral, '');\n }\n\n getGroupingExpression(): RegExp {\n const formatter = new Intl.NumberFormat(this.locale, { useGrouping: true });\n this.groupChar = formatter.format(1000000).trim().replace(this._numeral, '').charAt(0);\n return new RegExp(`[${this.groupChar}]`, 'g');\n }\n\n getMinusSignExpression(): RegExp {\n const formatter = new Intl.NumberFormat(this.locale, { useGrouping: false });\n return new RegExp(`[${formatter.format(-1).trim().replace(this._numeral, '')}]`, 'g');\n }\n\n getCurrencyExpression(): RegExp {\n if (this.currency) {\n const formatter = new Intl.NumberFormat(this.locale, {\n style: 'currency',\n currency: this.currency,\n currencyDisplay: this.currencyDisplay,\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n });\n return new RegExp(`[${formatter.format(1).replace(/\\s/g, '').replace(this._numeral, '').replace(this._group, '')}]`, 'g');\n }\n\n return new RegExp(`[]`, 'g');\n }\n\n getPrefixExpression(): RegExp {\n if (this.prefix) {\n this.prefixChar = this.prefix;\n } else {\n const formatter = new Intl.NumberFormat(this.locale, {\n style: this.mode,\n currency: this.currency,\n currencyDisplay: this.currencyDisplay,\n });\n this.prefixChar = formatter.format(1).split('1')[0];\n }\n\n return new RegExp(`${this.escapeRegExp(this.prefixChar || '')}`, 'g');\n }\n\n getSuffixExpression(): RegExp {\n if (this.suffix) {\n this.suffixChar = this.suffix;\n } else {\n const formatter = new Intl.NumberFormat(this.locale, {\n style: this.mode,\n currency: this.currency,\n currencyDisplay: this.currencyDisplay,\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n });\n this.suffixChar = formatter.format(1).split('1')[1];\n }\n\n return new RegExp(`${this.escapeRegExp(this.suffixChar || '')}`, 'g');\n }\n\n formatValue(value: any) {\n if (value != null) {\n if (value === '-') {\n // Minus sign\n return value;\n }\n\n if (this.format) {\n let formatter = new Intl.NumberFormat(this.locale, this.getOptions());\n let formattedValue = formatter.format(value);\n\n if (this.prefix && value != this.prefix) {\n formattedValue = this.prefix + formattedValue;\n }\n\n if (this.suffix && value != this.suffix) {\n formattedValue = formattedValue + this.suffix;\n }\n\n return formattedValue;\n }\n\n return value.toString();\n }\n\n return '';\n }\n\n parseValue(text: any) {\n const suffixRegex = new RegExp(this._suffix, '');\n const prefixRegex = new RegExp(this._prefix, '');\n const currencyRegex = new RegExp(this._currency, '');\n\n let filteredText = text\n .replace(suffixRegex, '')\n .replace(prefixRegex, '')\n .trim()\n .replace(/\\s/g, '')\n .replace(currencyRegex, '')\n .replace(this._group, '')\n .replace(this._minusSign, '-')\n .replace(this._decimal, '.')\n .replace(this._numeral, this._index);\n\n if (filteredText) {\n if (filteredText === '-')\n // Minus sign\n return filteredText;\n\n let parsedValue = +filteredText;\n return isNaN(parsedValue) ? null : parsedValue;\n }\n\n return null;\n }\n\n repeat(event: Event, interval: number | null, dir: number) {\n if (this.readonly) {\n return;\n }\n\n let i = interval || 500;\n\n this.clearTimer();\n this.timer = setTimeout(() => {\n this.repeat(event, 40, dir);\n }, i);\n\n this.spin(event, dir);\n }\n\n spin(event: Event, dir: number) {\n let step = this.step * dir;\n let currentValue = this.parseValue(this.input?.nativeElement.value) || 0;\n let newValue = this.validateValue((currentValue as number) + step);\n if (this.maxlength && this.maxlength < this.formatValue(newValue).length) {\n return;\n }\n this.updateInput(newValue, null, 'spin', null);\n this.updateModel(event, newValue);\n\n this.handleOnInput(event, currentValue, newValue);\n }\n\n clear() {\n this.value = null;\n this.onModelChange(this.value);\n this.onClear.emit();\n }\n\n onUpButtonMouseDown(event: MouseEvent) {\n if (event.button === 2) {\n this.clearTimer();\n return;\n }\n\n if (!this.disabled) {\n this.input?.nativeElement.focus();\n this.repeat(event, null, 1);\n event.preventDefault();\n }\n }\n\n onUpButtonMouseUp() {\n if (!this.disabled) {\n this.clearTimer();\n }\n }\n\n onUpButtonMouseLeave() {\n if (!this.disabled) {\n this.clearTimer();\n }\n }\n\n onUpButtonKeyDown(event: KeyboardEvent) {\n if (event.keyCode === 32 || event.keyCode === 13) {\n this.repeat(event, null, 1);\n }\n }\n\n onUpButtonKeyUp() {\n if (!this.disabled) {\n this.clearTimer();\n }\n }\n\n onDownButtonMouseDown(event: MouseEvent) {\n if (event.button === 2) {\n this.clearTimer();\n return;\n }\n if (!this.disabled) {\n this.input?.nativeElement.focus();\n this.repeat(event, null, -1);\n event.preventDefault();\n }\n }\n\n onDownButtonMouseUp() {\n if (!this.disabled) {\n this.clearTimer();\n }\n }\n\n onDownButtonMouseLeave() {\n if (!this.disabled) {\n this.clearTimer();\n }\n }\n\n onDownButtonKeyUp() {\n if (!this.disabled) {\n this.clearTimer();\n }\n }\n\n onDownButtonKeyDown(event: KeyboardEvent) {\n if (event.keyCode === 32 || event.keyCode === 13) {\n this.repeat(event, null, -1);\n }\n }\n\n onUserInput(event: Event) {\n if (this.readonly) {\n return;\n }\n\n if (this.isSpecialChar) {\n (event.target as HTMLInputElement).value = this.lastValue as string;\n }\n this.isSpecialChar = false;\n }\n\n onInputKeyDown(event: KeyboardEvent) {\n if (this.readonly) {\n return;\n }\n\n this.lastValue = (event.target as HTMLInputElement).value;\n if ((event as KeyboardEvent).shiftKey || (event as KeyboardEvent).altKey) {\n this.isSpecialChar = true;\n return;\n }\n\n let selectionStart = (event.target as HTMLInputElement).selectionStart as number;\n let selectionEnd = (event.target as HTMLInputElement).selectionEnd as number;\n let inputValue = (event.target as HTMLInputElement).value as string;\n let newValueStr = null;\n\n if (event.altKey) {\n event.preventDefault();\n }\n\n switch (event.key) {\n case 'ArrowUp':\n this.spin(event, 1);\n event.preventDefault();\n break;\n\n case 'ArrowDown':\n this.spin(event, -1);\n event.preventDefault();\n break;\n\n case 'ArrowLeft':\n for (let index = selectionStart; index <= inputValue.length; index++) {\n const previousCharIndex = index === 0 ? 0 : index - 1;\n if (this.isNumeralChar(inputValue.charAt(previousCharIndex))) {\n this.input.nativeElement.setSelectionRange(index, index);\n break;\n }\n }\n break;\n\n case 'ArrowRight':\n for (let index = selectionEnd; index >= 0; index--) {\n if (this.isNumeralChar(inputValue.charAt(index))) {\n this.input.nativeElement.setSelectionRange(index, index);\n break;\n }\n }\n break;\n\n case 'Tab':\n case 'Enter':\n newValueStr = this.validateValue(this.parseValue(this.input.nativeElement.value));\n this.input.nativeElement.value = this.formatValue(newValueStr);\n this.input.nativeElement.setAttribute('aria-valuenow', newValueStr);\n this.updateModel(event, newValueStr);\n break;\n\n case 'Backspace': {\n event.preventDefault();\n\n if (selectionStart === selectionEnd) {\n if ((selectionStart == 1 && this.prefix) || (selectionStart == inputValue.length && this.suffix)) {\n break;\n }\n\n const deleteChar = inputValue.charAt(selectionStart - 1);\n const { decimalCharIndex, decimalCharIndexWithoutPrefix } = this.getDecimalCharIndexes(inputValue);\n\n if (this.isNumeralChar(deleteChar)) {\n const decimalLength = this.getDecimalLength(inputValue);\n\n if (this._group.test(deleteChar)) {\n this._group.lastIndex = 0;\n newValueStr = inputValue.slice(0, selectionStart - 2) + inputValue.slice(selectionStart - 1);\n } else if (this._decimal.test(deleteChar)) {\n this._decimal.lastIndex = 0;\n\n if (decimalLength) {\n this.input?.nativeElement.setSelectionRange(selectionStart - 1, selectionStart - 1);\n } else {\n newValueStr = inputValue.slice(0, selectionStart - 1) + inputValue.slice(selectionStart);\n }\n } else if (decimalCharIndex > 0 && selectionStart > decimalCharIndex) {\n const insertedText = this.isDecimalMode() && (this.minFractionDigits || 0) < decimalLength ? '' : '0';\n newValueStr = inputValue.slice(0, selectionStart - 1) + insertedText + inputValue.slice(selectionStart);\n } else if (decimalCharIndexWithoutPrefix === 1) {\n newValueStr = inputValue.slice(0, selectionStart - 1) + '0' + inputValue.slice(selectionStart);\n newValueStr = (this.parseValue(newValueStr) as number) > 0 ? newValueStr : '';\n } else {\n newValueStr = inputValue.slice(0, selectionStart - 1) + inputValue.slice(selectionStart);\n }\n } else if (this.mode === 'currency' && deleteChar.search(this._currency) != -1) {\n newValueStr = inputValue.slice(1);\n }\n\n this.updateValue(event, newValueStr, null, 'delete-single');\n } else {\n newValueStr = this.deleteRange(inputValue, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, null, 'delete-range');\n }\n\n break;\n }\n\n case 'Delete':\n event.preventDefault();\n\n if (selectionStart === selectionEnd) {\n if ((selectionStart == 0 && this.prefix) || (selectionStart == inputValue.length - 1 && this.suffix)) {\n break;\n }\n const deleteChar = inputValue.charAt(selectionStart);\n const { decimalCharIndex, decimalCharIndexWithoutPrefix } = this.getDecimalCharIndexes(inputValue);\n\n if (this.isNumeralChar(deleteChar)) {\n const decimalLength = this.getDecimalLength(inputValue);\n\n if (this._group.test(deleteChar)) {\n this._group.lastIndex = 0;\n newValueStr = inputValue.slice(0, selectionStart) + inputValue.slice(selectionStart + 2);\n } else if (this._decimal.test(deleteChar)) {\n this._decimal.lastIndex = 0;\n\n if (decimalLength) {\n this.input?.nativeElement.setSelectionRange(selectionStart + 1, selectionStart + 1);\n } else {\n newValueStr = inputValue.slice(0, selectionStart) + inputValue.slice(selectionStart + 1);\n }\n } else if (decimalCharIndex > 0 && selectionStart > decimalCharIndex) {\n const insertedText = this.isDecimalMode() && (this.minFractionDigits || 0) < decimalLength ? '' : '0';\n newValueStr = inputValue.slice(0, selectionStart) + insertedText + inputValue.slice(selectionStart + 1);\n } else if (decimalCharIndexWithoutPrefix === 1) {\n newValueStr = inputValue.slice(0, selectionStart) + '0' + inputValue.slice(selectionStart + 1);\n newValueStr = (this.parseValue(newValueStr) as number) > 0 ? newValueStr : '';\n } else {\n newValueStr = inputValue.slice(0, selectionStart) + inputValue.slice(selectionStart + 1);\n }\n }\n\n this.updateValue(event, newValueStr as string, null, 'delete-back-single');\n } else {\n newValueStr = this.deleteRange(inputValue, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, null, 'delete-range');\n }\n break;\n\n case 'Home':\n if (this.min) {\n this.updateModel(event, this.min);\n event.preventDefault();\n }\n break;\n\n case 'End':\n if (this.max) {\n this.updateModel(event, this.max);\n event.preventDefault();\n }\n break;\n\n default:\n break;\n }\n\n this.onKeyDown.emit(event);\n }\n\n onInputKeyPress(event: KeyboardEvent) {\n if (this.readonly) {\n return;\n }\n\n let code = event.which || event.keyCode;\n let char = String.fromCharCode(code);\n let isDecimalSign = this.isDecimalSign(char);\n const isMinusSign = this.isMinusSign(char);\n\n if (code != 13) {\n event.preventDefault();\n }\n if (!isDecimalSign && event.code === 'NumpadDecimal') {\n isDecimalSign = true;\n char = this._decimalChar;\n code = char.charCodeAt(0);\n }\n const newValue = this.parseValue(this.input.nativeElement.value + char);\n const newValueStr = newValue != null ? newValue.toString() : '';\n\n if (this.maxlength && this.getSelectedText()?.length == this.maxlength) {\n this.insert(event, char, { isDecimalSign, isMinusSign });\n return;\n }\n\n if (this.maxlength && newValueStr.length > this.maxlength) {\n return;\n }\n\n if ((48 <= code && code <= 57) || isMinusSign || isDecimalSign) {\n this.insert(event, char, { isDecimalSign, isMinusSign });\n }\n }\n\n private getSelectedText() {\n return (\n window\n ?.getSelection()\n ?.toString()\n .replaceAll(/[^0-9']/g, '') || ''\n );\n }\n\n onPaste(event: ClipboardEvent) {\n if (!this.disabled && !this.readonly) {\n event.preventDefault();\n let data = (event.clipboardData || (this.document as any).defaultView['clipboardData']).getData('Text');\n if (data) {\n if (this.maxlength) {\n data = data.toString().substring(0, this.maxlength);\n }\n\n let filteredData = this.parseValue(data);\n if (filteredData != null) {\n this.insert(event, filteredData.toString());\n }\n }\n }\n }\n\n allowMinusSign() {\n return this.min == null || this.min < 0;\n }\n\n isMinusSign(char: string) {\n if (this._minusSign.test(char) || char === '-') {\n this._minusSign.lastIndex = 0;\n return true;\n }\n\n return false;\n }\n\n isDecimalSign(char: string) {\n if (this._decimal.test(char)) {\n this._decimal.lastIndex = 0;\n return true;\n }\n\n return false;\n }\n\n isDecimalMode() {\n return this.mode === 'decimal';\n }\n\n getDecimalCharIndexes(val: string) {\n let decimalCharIndex = val.search(this._decimal);\n this._decimal.lastIndex = 0;\n\n const filteredVal = val\n .replace(this._prefix as RegExp, '')\n .trim()\n .replace(/\\s/g, '')\n .replace(this._currency as RegExp, '');\n const decimalCharIndexWithoutPrefix = filteredVal.search(this._decimal);\n this._decimal.lastIndex = 0;\n\n return { decimalCharIndex, decimalCharIndexWithoutPrefix };\n }\n\n getCharIndexes(val: string) {\n const decimalCharIndex = val.search(this._decimal);\n this._decimal.lastIndex = 0;\n const minusCharIndex = val.search(this._minusSign);\n this._minusSign.lastIndex = 0;\n const suffixCharIndex = val.search(this._suffix as RegExp);\n (this._suffix as RegExp).lastIndex = 0;\n const currencyCharIndex = val.search(this._currency as RegExp);\n (this._currency as RegExp).lastIndex = 0;\n\n return { decimalCharIndex, minusCharIndex, suffixCharIndex, currencyCharIndex };\n }\n\n insert(event: Event, text: string, sign = { isDecimalSign: false, isMinusSign: false }) {\n const minusCharIndexOnText = text.search(this._minusSign);\n this._minusSign.lastIndex = 0;\n if (!this.allowMinusSign() && minusCharIndexOnText !== -1) {\n return;\n }\n\n let selectionStart = this.input?.nativeElement.selectionStart;\n let selectionEnd = this.input?.nativeElement.selectionEnd;\n let inputValue = this.input?.nativeElement.value.trim();\n const { decimalCharIndex, minusCharIndex, suffixCharIndex, currencyCharIndex } = this.getCharIndexes(inputValue);\n let newValueStr;\n\n if (sign.isMinusSign) {\n if (selectionStart === 0) {\n newValueStr = inputValue;\n if (minusCharIndex === -1 || selectionEnd !== 0) {\n newValueStr = this.insertText(inputValue, text, 0, selectionEnd);\n }\n\n this.updateValue(event, newValueStr, text, 'insert');\n }\n } else if (sign.isDecimalSign) {\n if (decimalCharIndex > 0 && selectionStart === decimalCharIndex) {\n this.updateValue(event, inputValue, text, 'insert');\n } else if (decimalCharIndex > selectionStart && decimalCharIndex < selectionEnd) {\n newValueStr = this.insertText(inputValue, text, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, text, 'insert');\n } else if (decimalCharIndex === -1 && this.maxFractionDigits) {\n newValueStr = this.insertText(inputValue, text, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, text, 'insert');\n }\n } else {\n const maxFractionDigits = this.numberFormat.resolvedOptions().maximumFractionDigits;\n const operation = selectionStart !== selectionEnd ? 'range-insert' : 'insert';\n\n if (decimalCharIndex > 0 && selectionStart > decimalCharIndex) {\n if (selectionStart + text.length - (decimalCharIndex + 1) <= maxFractionDigits) {\n const charIndex =\n currencyCharIndex >= selectionStart\n ? currencyCharIndex - 1\n : suffixCharIndex >= selectionStart\n ? suffixCharIndex\n : inputValue.length;\n\n newValueStr =\n inputValue.slice(0, selectionStart) +\n text +\n inputValue.slice(selectionStart + text.length, charIndex) +\n inputValue.slice(charIndex);\n this.updateValue(event, newValueStr, text, operation);\n }\n } else {\n newValueStr = this.insertText(inputValue, text, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, text, operation);\n }\n }\n }\n\n insertText(value: string, text: string, start: number, end: number) {\n let textSplit = text === '.' ? text : text.split('.');\n\n if (textSplit.length === 2) {\n const decimalCharIndex = value.slice(start, end).search(this._decimal);\n this._decimal.lastIndex = 0;\n return decimalCharIndex > 0\n ? value.slice(0, start) + this.formatValue(text) + value.slice(end)\n : value || this.formatValue(text);\n } else if (end - start === value.length) {\n return this.formatValue(text);\n } else if (start === 0) {\n return text + value.slice(end);\n } else if (end === value.length) {\n return value.slice(0, start) + text;\n } else {\n return value.slice(0, start) + text + value.slice(end);\n }\n }\n\n deleteRange(value: string, start: number, end: number) {\n let newValueStr;\n\n if (end - start === value.length) newValueStr = '';\n else if (start === 0) newValueStr = value.slice(end);\n else if (end === value.length) newValueStr = value.slice(0, start);\n else newValueStr = value.slice(0, start) + value.slice(end);\n\n return newValueStr;\n }\n\n initCursor() {\n let selectionStart = this.input?.nativeElement.selectionStart;\n let selectionEnd = this.input?.nativeElement.selectionEnd;\n let inputValue = this.input?.nativeElement.value;\n let valueLength = inputValue.length;\n let index = null;\n\n // remove prefix\n let prefixLength = (this.prefixChar || '').length;\n inputValue = inputValue.replace(this._prefix, '');\n\n // Will allow selecting whole prefix. But not a part of it.\n // Negative values will trigger clauses after this to fix the cursor position.\n if (selectionStart === selectionEnd || selectionStart !== 0 || selectionEnd < prefixLength) {\n selectionStart -= prefixLength;\n }\n\n let char = inputValue.charAt(selectionStart);\n if (this.isNumeralChar(char)) {\n return selectionStart + prefixLength;\n }\n\n //left\n let i = selectionStart - 1;\n while (i >= 0) {\n char = inputValue.charAt(i);\n if (this.isNumeralChar(char)) {\n index = i + prefixLength;\n break;\n } else {\n i--;\n }\n }\n\n if (index !== null) {\n this.input?.nativeElement.setSelectionRange(index + 1, index + 1);\n } else {\n i = selectionStart;\n while (i < valueLength) {\n char = inputValue.charAt(i);\n if (this.isNumeralChar(char)) {\n index = i + prefixLength;\n break;\n } else {\n i++;\n }\n }\n\n if (index !== null) {\n this.input?.nativeElement.setSelectionRange(index, index);\n }\n }\n\n return index || 0;\n }\n\n onInputClick() {\n const currentValue = this.input?.nativeElement.value;\n\n if (!this.readonly && currentValue !== DomHandler.getSelection()) {\n this.initCursor();\n }\n }\n\n isNumeralChar(char: string) {\n if (\n char.length === 1 &&\n (this._numeral.test(char) || this._decimal.test(char) || this._group.test(char) || this._minusSign.test(char))\n ) {\n this.resetRegex();\n return true;\n }\n\n return false;\n }\n\n resetRegex() {\n this._numeral.lastIndex = 0;\n this._decimal.lastIndex = 0;\n this._group.lastIndex = 0;\n this._minusSign.lastIndex = 0;\n }\n\n updateValue(event: Event, valueStr: Nullable<string>, insertedValueStr: Nullable<string>, operation: Nullable<string>) {\n let currentValue = this.input?.nativeElement.value;\n let newValue = null;\n\n if (valueStr != null) {\n newValue = this.parseValue(valueStr);\n newValue = !newValue && !this.allowEmpty ? 0 : newValue;\n this.updateInput(newValue, insertedValueStr, operation, valueStr);\n\n this.handleOnInput(event, currentValue, newValue);\n }\n }\n\n handleOnInput(event: Event, currentValue: string, newValue: any) {\n if (this.isValueChanged(currentValue, newValue)) {\n (this.input as ElementRef).nativeElement.value = this.formatValue(newValue);\n this.input?.nativeElement.setAttribute('aria-valuenow', newValue);\n this.updateModel(event, newValue);\n this.onInput.emit({ originalEvent: event, value: newValue, formattedValue: currentValue });\n }\n }\n\n isValueChanged(currentValue: string, newValue: string) {\n if (newValue === null && currentValue !== null) {\n return true;\n }\n\n if (newValue != null) {\n let parsedCurrentValue = typeof currentValue === 'string' ? this.parseValue(currentValue) : currentValue;\n return newValue !== parsedCurrentValue;\n }\n\n return false;\n }\n\n validateValue(value: number | string) {\n if (value === '-' || value == null) {\n return null;\n }\n\n if (this.min != null && (value as number) < this.min) {\n return this.min;\n }\n\n if (this.max != null && (value as number) > this.max) {\n return this.max;\n }\n\n return value;\n }\n\n updateInput(value: any, insertedValueStr: Nullable<string>, operation: Nullable<string>, valueStr: Nullable<string>) {\n insertedValueStr = insertedValueStr || '';\n\n let inputValue = this.input?.nativeElement.value;\n let newValue = this.formatValue(value);\n let currentLength = inputValue.length;\n\n if (newValue !== valueStr) {\n newValue = this.concatValues(newValue, valueStr as string);\n }\n\n if (currentLength === 0) {\n this.input.nativeElement.value = newValue;\n this.input.nativeElement.setSelectionRange(0, 0);\n const index = this.initCursor();\n const selectionEnd = index + insertedValueStr.length;\n this.input.nativeElement.setSelectionRange(selectionEnd, selectionEnd);\n } else {\n let selectionStart = this.input.nativeElement.selectionStart;\n let selectionEnd = this.input.nativeElement.selectionEnd;\n\n if (this.maxlength && newValue.length > this.maxlength) {\n newValue = newValue.slice(0, this.maxlength);\n selectionStart = Math.min(selectionStart, this.maxlength);\n selectionEnd = Math.min(selectionEnd, this.maxlength);\n }\n\n if (this.maxlength && this.maxlength < newValue.length) {\n return;\n }\n\n this.input.nativeElement.value = newValue;\n let newLength = newValue.length;\n\n if (operation === 'range-insert') {\n const startValue = this.parseValue((inputValue || '').slice(0, selectionStart));\n const startValueStr = startValue !== null ? startValue.toString() : '';\n const startExpr = startValueStr.split('').join(`(${this.groupChar})?`);\n const sRegex = new RegExp(startExpr, 'g');\n sRegex.test(newValue);\n\n const tExpr = insertedValueStr.split('').join(`(${this.groupChar})?`);\n const tRegex = new RegExp(tExpr, 'g');\n tRegex.test(newValue.slice(sRegex.lastIndex));\n\n selectionEnd = sRegex.lastIndex + tRegex.lastIndex;\n this.input.nativeElement.setSelectionRange(selectionEnd, selectionEnd);\n } else if (newLength === currentLength) {\n if (operation === 'insert' || operation === 'delete-back-single')\n this.input.nativeElement.setSelectionRange(selectionEnd + 1, selectionEnd + 1);\n else if (operation === 'delete-single') this.input.nativeElement.setSelectionRange(selectionEnd - 1, selectionEnd - 1);\n else if (operation === 'delete-range' || operation === 'spin')\n this.input.nativeElement.setSelectionRange(selectionEnd, selectionEnd);\n } else if (operation === 'delete-back-single') {\n let prevChar = inputValue.charAt(selectionEnd - 1);\n let nextChar = inputValue.charAt(selectionEnd);\n let diff = currentLength - newLength;\n let isGroupChar = this._group.test(nextChar);\n\n if (isGroupChar && diff === 1) {\n selectionEnd += 1;\n } else if (!isGroupChar && this.isNumeralChar(prevChar)) {\n selectionEnd += -1 * diff + 1;\n }\n\n this._group.lastIndex = 0;\n this.input.nativeElement.setSelectionRange(selectionEnd, selectionEnd);\n } else if (inputValue === '-' && operation === 'insert') {\n this.input.nativeElement.setSelectionRange(0, 0);\n const index = this.initCursor();\n const selectionEnd = index + insertedValueStr.length + 1;\n this.input.nativeElement.setSelectionRange(selectionEnd, selectionEnd);\n } else {\n selectionEnd = selectionEnd + (newLength - currentLength);\n this.input.nativeElement.setSelectionRange(selectionEnd, selectionEnd);\n }\n }\n\n this.input.nativeElement.setAttribute('aria-valuenow', value);\n }\n\n concatValues(val1: string, val2: string) {\n if (val1 && val2) {\n let decimalCharIndex = val2.search(this._decimal);\n this._decimal.lastIndex = 0;\n\n if (this.suffixChar) {\n return decimalCharIndex !== -1\n ? val1\n : val1.replace(this.suffixChar, '').split(this._decimal)[0] +\n val2.replace(this.suffixChar, '').slice(decimalCharIndex) +\n this.suffixChar;\n } else {\n return decimalCharIndex !== -1 ? val1.split(this._decimal)[0] + val2.slice(decimalCharIndex) : val1;\n }\n }\n return val1;\n }\n\n getDecimalLength(value: string) {\n if (value) {\n const valueSplit = value.split(this._decimal);\n\n if (valueSplit.length === 2) {\n return valueSplit[1]\n .replace(this._suffix as RegExp, '')\n .trim()\n .replace(/\\s/g, '')\n .replace(this._currency as RegExp, '').length;\n }\n }\n\n return 0;\n }\n\n onInputFocus(event: Event) {\n this.focused = true;\n this.onFocus.emit(event);\n }\n\n onInputBlur(event: Event) {\n this.focused = false;\n\n const newValueNumber = this.validateValue(this.parseValue(this.input.nativeElement.value));\n const newValueString = newValueNumber?.toString();\n this.input.nativeElement.value = this.formatValue(newValueString);\n this.input.nativeElement.setAttribute('aria-valuenow', newValueString);\n this.updateModel(event, newValueNumber);\n this.onBlur.emit(event);\n }\n\n formattedValue() {\n const val = !this.value && !this.allowEmpty ? 0 : this.value;\n return this.formatValue(val);\n }\n\n updateModel(event: Event, value: any) {\n const isBlurUpdateOnMode = this.ngControl?.control?.updateOn === 'blur';\n\n if (this.value !== value) {\n this.value = value;\n\n if (!(isBlurUpdateOnMode && this.focused)) {\n this.onModelChange(value);\n }\n } else if (isBlurUpdateOnMode) {\n this.onModelChange(value);\n }\n this.onModelTouched();\n }\n\n writeValue(value: any): void {\n this.value = value;\n this.cd.markForCheck();\n }\n\n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n\n setDisabledState(val: boolean): void {\n this.disabled = val;\n this.cd.markForCheck();\n }\n\n get filled() {\n return this.value != null && this.value.toString().length > 0;\n }\n\n clearTimer() {\n if (this.timer) {\n clearInterval(this.timer);\n }\n }\n}\n\n@NgModule({\n imports: [CommonModule, InputTextModule, ButtonModule, AutoFocusModule, TimesIcon, AngleUpIcon, AngleDownIcon],\n exports: [InputNumber, SharedModule],\n declarations: [InputNumber],\n})\nexport class InputNumberModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -37,6 +37,26 @@ class InputOtpStyle extends BaseStyle {
37
37
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: InputOtpStyle, decorators: [{
38
38
  type: Injectable
39
39
  }] });
40
+ /**
41
+ *
42
+ * InputOtp is used to enter one time passwords.
43
+ *
44
+ * [Live Demo](https://www.primeng.org/inputotp/)
45
+ *
46
+ * @module inputotpstyle
47
+ *
48
+ */
49
+ var InputOtpClasses;
50
+ (function (InputOtpClasses) {
51
+ /**
52
+ * Class name of the root element
53
+ */
54
+ InputOtpClasses["root"] = "p-inputotp";
55
+ /**
56
+ * Class name of the input element
57
+ */
58
+ InputOtpClasses["pcInput"] = "p-inputotp-input";
59
+ })(InputOtpClasses || (InputOtpClasses = {}));
40
60
 
41
61
  const INPUT_OTP_VALUE_ACCESSOR = {
42
62
  provide: NG_VALUE_ACCESSOR,
@@ -300,7 +320,7 @@ class InputOtp extends BaseComponent {
300
320
  return index;
301
321
  }
302
322
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: InputOtp, deps: null, target: i0.ɵɵFactoryTarget.Component });
303
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.2", type: InputOtp, selector: "p-inputOtp", inputs: { invalid: "invalid", disabled: "disabled", readonly: "readonly", variant: "variant", tabindex: "tabindex", length: "length", styleClass: "styleClass", mask: "mask", integerOnly: "integerOnly", autofocus: ["autofocus", "autofocus", booleanAttribute] }, outputs: { onChange: "onChange", onFocus: "onFocus", onBlur: "onBlur" }, host: { classAttribute: "p-inputotp p-component" }, providers: [INPUT_OTP_VALUE_ACCESSOR, InputOtpStyle], queries: [{ propertyName: "templates", predicate: PrimeTemplate }], usesInheritance: true, ngImport: i0, template: `
323
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.2", type: InputOtp, selector: "p-inputOtp, p-inputotp", inputs: { invalid: "invalid", disabled: "disabled", readonly: "readonly", variant: "variant", tabindex: "tabindex", length: "length", styleClass: "styleClass", mask: "mask", integerOnly: "integerOnly", autofocus: ["autofocus", "autofocus", booleanAttribute] }, outputs: { onChange: "onChange", onFocus: "onFocus", onBlur: "onBlur" }, host: { classAttribute: "p-inputotp p-component" }, providers: [INPUT_OTP_VALUE_ACCESSOR, InputOtpStyle], queries: [{ propertyName: "templates", predicate: PrimeTemplate }], usesInheritance: true, ngImport: i0, template: `
304
324
  <ng-container *ngFor="let i of getRange(length); trackBy: trackByFn">
305
325
  <ng-container *ngIf="!inputTemplate">
306
326
  <input
@@ -339,7 +359,7 @@ class InputOtp extends BaseComponent {
339
359
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: InputOtp, decorators: [{
340
360
  type: Component,
341
361
  args: [{
342
- selector: 'p-inputOtp',
362
+ selector: 'p-inputOtp, p-inputotp',
343
363
  template: `
344
364
  <ng-container *ngFor="let i of getRange(length); trackBy: trackByFn">
345
365
  <ng-container *ngIf="!inputTemplate">