@primereact/headless 11.0.0-alpha.9 → 11.0.0-rc.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 (617) hide show
  1. package/LICENSE.md +45 -0
  2. package/README.md +35 -0
  3. package/accordion/index.d.ts +3 -0
  4. package/accordion/index.mjs +1 -2
  5. package/accordion/useAccordion.d.ts +7 -6
  6. package/accordion/useAccordion.props.d.ts +2 -2
  7. package/accordion/useAccordionPanel.d.ts +46 -0
  8. package/accordion/useAccordionPanel.props.d.ts +2 -0
  9. package/animateonscroll/index.d.ts +1 -0
  10. package/animateonscroll/index.mjs +1 -2
  11. package/animateonscroll/useAnimateOnScroll.d.ts +6 -1
  12. package/animateonscroll/useAnimateOnScroll.props.d.ts +2 -2
  13. package/autocomplete/index.d.ts +3 -0
  14. package/autocomplete/index.mjs +1 -0
  15. package/autocomplete/useAutoComplete.d.ts +198 -0
  16. package/autocomplete/useAutoComplete.props.d.ts +2 -0
  17. package/avatar/index.d.ts +1 -0
  18. package/avatar/index.mjs +1 -2
  19. package/avatar/useAvatar.d.ts +5 -1
  20. package/avatar/useAvatar.props.d.ts +2 -2
  21. package/avatargroup/index.d.ts +3 -0
  22. package/avatargroup/index.mjs +1 -0
  23. package/avatargroup/useAvatarGroup.d.ts +6 -0
  24. package/avatargroup/useAvatarGroup.props.d.ts +2 -0
  25. package/badge/index.d.ts +1 -0
  26. package/badge/index.mjs +1 -2
  27. package/badge/useBadge.d.ts +7 -1
  28. package/badge/useBadge.props.d.ts +2 -2
  29. package/breadcrumb/index.d.ts +1 -0
  30. package/breadcrumb/index.mjs +1 -2
  31. package/breadcrumb/useBreadcrumb.d.ts +18 -2
  32. package/breadcrumb/useBreadcrumb.props.d.ts +2 -2
  33. package/button/index.d.ts +1 -0
  34. package/button/index.mjs +1 -2
  35. package/button/useButton.d.ts +6 -1
  36. package/button/useButton.props.d.ts +2 -2
  37. package/card/index.d.ts +1 -0
  38. package/card/index.mjs +1 -2
  39. package/card/useCard.d.ts +6 -1
  40. package/card/useCard.props.d.ts +2 -2
  41. package/carousel/index.d.ts +1 -0
  42. package/carousel/index.mjs +1 -2
  43. package/carousel/useCarousel.d.ts +117 -8
  44. package/carousel/useCarousel.props.d.ts +2 -2
  45. package/checkbox/index.d.ts +1 -0
  46. package/checkbox/index.mjs +1 -2
  47. package/checkbox/useCheckbox.d.ts +44 -3
  48. package/checkbox/useCheckbox.props.d.ts +2 -2
  49. package/checkboxgroup/index.d.ts +3 -0
  50. package/checkboxgroup/index.mjs +1 -0
  51. package/checkboxgroup/useCheckboxGroup.d.ts +11 -0
  52. package/checkboxgroup/useCheckboxGroup.props.d.ts +2 -0
  53. package/chip/index.d.ts +1 -0
  54. package/chip/index.mjs +1 -2
  55. package/chip/useChip.d.ts +9 -3
  56. package/chip/useChip.props.d.ts +2 -2
  57. package/collapsible/index.d.ts +3 -0
  58. package/collapsible/index.mjs +1 -0
  59. package/collapsible/useCollapsible.d.ts +33 -0
  60. package/collapsible/useCollapsible.props.d.ts +2 -0
  61. package/compare/index.d.ts +3 -0
  62. package/compare/index.mjs +1 -0
  63. package/compare/useCompare.d.ts +2 -0
  64. package/compare/useCompare.props.d.ts +2 -0
  65. package/contextmenu/index.d.ts +1 -0
  66. package/contextmenu/index.mjs +1 -2
  67. package/contextmenu/submenu/index.d.ts +2 -0
  68. package/contextmenu/submenu/index.mjs +1 -0
  69. package/contextmenu/submenu/useContextMenuSubmenu.d.ts +121 -0
  70. package/contextmenu/submenu/useContextMenuSubmenu.props.d.ts +2 -0
  71. package/contextmenu/useContextMenu.d.ts +413 -1
  72. package/contextmenu/useContextMenu.props.d.ts +2 -2
  73. package/datatable/features/index.d.ts +28 -0
  74. package/datatable/features/index.mjs +10 -0
  75. package/datatable/features/useDataTableColumnReorder.d.ts +52 -0
  76. package/datatable/features/useDataTableColumnResize.d.ts +20 -0
  77. package/datatable/features/useDataTableEditing.d.ts +69 -0
  78. package/datatable/features/useDataTableExpansion.d.ts +32 -0
  79. package/datatable/features/useDataTableExport.d.ts +43 -0
  80. package/datatable/features/useDataTableFilter.d.ts +95 -0
  81. package/datatable/features/useDataTableGrouping.d.ts +11 -0
  82. package/datatable/features/useDataTableKeyboard.d.ts +23 -0
  83. package/datatable/features/useDataTablePagination.d.ts +32 -0
  84. package/datatable/features/useDataTableRowReorder.d.ts +42 -0
  85. package/datatable/features/useDataTableSelection.d.ts +28 -0
  86. package/datatable/features/useDataTableSort.d.ts +51 -0
  87. package/datatable/features/useDataTableTree.d.ts +31 -0
  88. package/datatable/index.d.ts +7 -0
  89. package/datatable/index.mjs +10 -0
  90. package/datatable/useDataTable.d.ts +237 -0
  91. package/datatable/useDataTable.props.d.ts +2 -0
  92. package/datatable/useDataTableRow.d.ts +30 -0
  93. package/datatable/useDataTableRow.props.d.ts +2 -0
  94. package/datatable/utils/compareValues.d.ts +20 -0
  95. package/datatable/utils/index.d.ts +1 -0
  96. package/datatable/utils/index.mjs +1 -0
  97. package/dataview/index.d.ts +1 -0
  98. package/dataview/index.mjs +1 -2
  99. package/dataview/useDataView.d.ts +25 -1
  100. package/dataview/useDataView.props.d.ts +2 -2
  101. package/datepicker/index.d.ts +1 -0
  102. package/datepicker/index.mjs +1 -2
  103. package/datepicker/useDatePicker.d.ts +2 -114
  104. package/datepicker/useDatePicker.props.d.ts +2 -2
  105. package/dialog/index.d.ts +1 -0
  106. package/dialog/index.mjs +1 -2
  107. package/dialog/useDialog.d.ts +274 -24
  108. package/dialog/useDialog.props.d.ts +2 -2
  109. package/divider/index.d.ts +1 -0
  110. package/divider/index.mjs +1 -2
  111. package/divider/useDivider.d.ts +14 -1
  112. package/divider/useDivider.props.d.ts +2 -2
  113. package/dnd/index.d.ts +11 -0
  114. package/dnd/index.mjs +1 -0
  115. package/dnd/useDnd.d.ts +45 -0
  116. package/dnd/useDnd.props.d.ts +2 -0
  117. package/dnd/useDraggable.d.ts +14 -0
  118. package/dnd/useDraggable.props.d.ts +2 -0
  119. package/dnd/useDroppable.d.ts +11 -0
  120. package/dnd/useDroppable.props.d.ts +2 -0
  121. package/dnd/useSortable.d.ts +11 -0
  122. package/dnd/useSortable.props.d.ts +2 -0
  123. package/dnd/useSortableContainer.d.ts +24 -0
  124. package/dnd/useSortableContainer.props.d.ts +2 -0
  125. package/drawer/index.d.ts +1 -0
  126. package/drawer/index.mjs +1 -2
  127. package/drawer/useDrawer.d.ts +78 -16
  128. package/drawer/useDrawer.props.d.ts +2 -2
  129. package/fieldset/index.d.ts +1 -0
  130. package/fieldset/index.mjs +1 -2
  131. package/fieldset/useFieldset.d.ts +80 -1
  132. package/fieldset/useFieldset.props.d.ts +2 -2
  133. package/fileupload/index.d.ts +1 -0
  134. package/fileupload/index.mjs +1 -2
  135. package/fileupload/useFileUpload.d.ts +76 -4
  136. package/fileupload/useFileUpload.props.d.ts +2 -2
  137. package/floatlabel/index.d.ts +3 -0
  138. package/floatlabel/index.mjs +1 -0
  139. package/floatlabel/useFloatLabel.d.ts +6 -0
  140. package/floatlabel/useFloatLabel.props.d.ts +2 -0
  141. package/fluid/index.d.ts +1 -0
  142. package/fluid/index.mjs +1 -2
  143. package/fluid/useFluid.d.ts +6 -1
  144. package/fluid/useFluid.props.d.ts +2 -2
  145. package/focustrap/index.d.ts +1 -0
  146. package/focustrap/index.mjs +1 -2
  147. package/focustrap/useFocusTrap.d.ts +16 -3
  148. package/focustrap/useFocusTrap.props.d.ts +2 -2
  149. package/gallery/index.d.ts +1 -0
  150. package/gallery/index.mjs +1 -2
  151. package/gallery/item/index.mjs +1 -2
  152. package/gallery/item/useGalleryItem.d.ts +17 -7
  153. package/gallery/item/useGalleryItem.props.d.ts +2 -2
  154. package/gallery/useGallery.d.ts +159 -10
  155. package/gallery/useGallery.props.d.ts +2 -2
  156. package/iconfield/index.d.ts +1 -0
  157. package/iconfield/index.mjs +1 -2
  158. package/iconfield/useIconField.d.ts +6 -1
  159. package/iconfield/useIconField.props.d.ts +2 -2
  160. package/iftalabel/index.d.ts +3 -0
  161. package/iftalabel/index.mjs +1 -0
  162. package/iftalabel/useIftaLabel.d.ts +6 -0
  163. package/iftalabel/useIftaLabel.props.d.ts +2 -0
  164. package/inplace/index.d.ts +1 -0
  165. package/inplace/index.mjs +1 -2
  166. package/inplace/useInplace.d.ts +36 -5
  167. package/inplace/useInplace.props.d.ts +2 -2
  168. package/{colorpicker → inputcolor}/colorManager.d.ts +4 -3
  169. package/inputcolor/index.d.ts +4 -0
  170. package/inputcolor/index.mjs +1 -0
  171. package/inputcolor/useInputColor.d.ts +119 -0
  172. package/inputcolor/useInputColor.props.d.ts +2 -0
  173. package/inputgroup/index.d.ts +1 -0
  174. package/inputgroup/index.mjs +1 -2
  175. package/inputgroup/useInputGroup.d.ts +6 -1
  176. package/inputgroup/useInputGroup.props.d.ts +2 -2
  177. package/inputnumber/index.d.ts +1 -0
  178. package/inputnumber/index.mjs +1 -2
  179. package/inputnumber/useInputNumber.d.ts +55 -17
  180. package/inputnumber/useInputNumber.props.d.ts +2 -2
  181. package/inputotp/index.d.ts +1 -0
  182. package/inputotp/index.mjs +1 -2
  183. package/inputotp/useInputOtp.d.ts +25 -6
  184. package/inputotp/useInputOtp.props.d.ts +2 -2
  185. package/inputpassword/index.d.ts +3 -0
  186. package/inputpassword/index.mjs +1 -0
  187. package/inputpassword/useInputPassword.d.ts +15 -0
  188. package/inputpassword/useInputPassword.props.d.ts +2 -0
  189. package/inputtags/index.d.ts +1 -0
  190. package/inputtags/index.mjs +1 -2
  191. package/inputtags/useInputTags.d.ts +42 -12
  192. package/inputtags/useInputTags.props.d.ts +2 -2
  193. package/inputtext/index.d.ts +1 -0
  194. package/inputtext/index.mjs +1 -2
  195. package/inputtext/useInputText.d.ts +8 -1
  196. package/inputtext/useInputText.props.d.ts +2 -2
  197. package/knob/index.d.ts +1 -0
  198. package/knob/index.mjs +1 -2
  199. package/knob/useKnob.d.ts +51 -10
  200. package/knob/useKnob.props.d.ts +2 -2
  201. package/label/index.d.ts +1 -0
  202. package/label/index.mjs +1 -2
  203. package/label/useLabel.d.ts +6 -1
  204. package/label/useLabel.props.d.ts +2 -2
  205. package/listbox/index.d.ts +3 -0
  206. package/listbox/index.mjs +1 -2
  207. package/listbox/useListbox.d.ts +56 -18
  208. package/listbox/useListbox.props.d.ts +2 -2
  209. package/listbox/useListboxOption.d.ts +21 -0
  210. package/listbox/useListboxOption.props.d.ts +2 -0
  211. package/menu/checkboxitem/index.d.ts +2 -0
  212. package/menu/checkboxitem/index.mjs +1 -0
  213. package/menu/checkboxitem/useMenuCheckboxItem.d.ts +112 -0
  214. package/menu/checkboxitem/useMenuCheckboxItem.props.d.ts +2 -0
  215. package/menu/index.d.ts +1 -0
  216. package/menu/index.mjs +1 -2
  217. package/menu/radioitem/index.d.ts +2 -0
  218. package/menu/radioitem/index.mjs +1 -0
  219. package/menu/radioitem/useMenuRadioItem.d.ts +106 -0
  220. package/menu/radioitem/useMenuRadioItem.props.d.ts +2 -0
  221. package/menu/submenu/index.d.ts +2 -0
  222. package/menu/submenu/index.mjs +1 -0
  223. package/menu/submenu/useMenuSubmenu.d.ts +97 -0
  224. package/menu/submenu/useMenuSubmenu.props.d.ts +2 -0
  225. package/menu/useMenu.d.ts +215 -22
  226. package/menu/useMenu.props.d.ts +2 -2
  227. package/message/index.d.ts +1 -0
  228. package/message/index.mjs +1 -2
  229. package/message/useMessage.d.ts +13 -1
  230. package/message/useMessage.props.d.ts +2 -2
  231. package/metergroup/index.d.ts +1 -0
  232. package/metergroup/index.mjs +1 -2
  233. package/metergroup/useMeterGroup.d.ts +36 -5
  234. package/metergroup/useMeterGroup.props.d.ts +2 -2
  235. package/navigationmenu/index.d.ts +3 -0
  236. package/navigationmenu/index.mjs +1 -0
  237. package/navigationmenu/useNavigationMenu.d.ts +30 -0
  238. package/navigationmenu/useNavigationMenu.props.d.ts +2 -0
  239. package/orderlist/index.d.ts +3 -0
  240. package/orderlist/index.mjs +1 -0
  241. package/orderlist/useOrderList.d.ts +74 -0
  242. package/orderlist/useOrderList.props.d.ts +2 -0
  243. package/organizationchart/index.d.ts +3 -0
  244. package/organizationchart/index.mjs +1 -0
  245. package/organizationchart/useOrganizationChart.d.ts +69 -0
  246. package/organizationchart/useOrganizationChart.props.d.ts +2 -0
  247. package/overlaybadge/index.d.ts +3 -0
  248. package/overlaybadge/index.mjs +1 -0
  249. package/overlaybadge/useOverlayBadge.d.ts +1 -0
  250. package/overlaybadge/useOverlayBadge.props.d.ts +2 -0
  251. package/package.json +14 -15
  252. package/paginator/index.d.ts +1 -0
  253. package/paginator/index.mjs +1 -2
  254. package/paginator/usePaginator.d.ts +47 -1
  255. package/paginator/usePaginator.props.d.ts +2 -2
  256. package/panel/index.d.ts +1 -0
  257. package/panel/index.mjs +1 -2
  258. package/panel/usePanel.d.ts +76 -8
  259. package/panel/usePanel.props.d.ts +2 -2
  260. package/picklist/index.d.ts +3 -0
  261. package/picklist/index.mjs +1 -0
  262. package/picklist/usePickList.d.ts +153 -0
  263. package/picklist/usePickList.props.d.ts +2 -0
  264. package/popover/index.d.ts +1 -0
  265. package/popover/index.mjs +1 -8
  266. package/popover/usePopover.d.ts +65 -12
  267. package/popover/usePopover.props.d.ts +2 -2
  268. package/portal/index.d.ts +1 -0
  269. package/portal/index.mjs +1 -2
  270. package/portal/usePortal.d.ts +4 -2
  271. package/portal/usePortal.props.d.ts +2 -2
  272. package/positioner/index.d.ts +3 -0
  273. package/positioner/index.mjs +1 -0
  274. package/positioner/usePositioner.anchor.d.ts +7 -0
  275. package/positioner/usePositioner.d.ts +11 -0
  276. package/positioner/usePositioner.fallback.d.ts +13 -0
  277. package/positioner/usePositioner.props.d.ts +2 -0
  278. package/positioner/usePositioner.utils.d.ts +21 -0
  279. package/progressbar/index.d.ts +1 -0
  280. package/progressbar/index.mjs +1 -2
  281. package/progressbar/useProgressBar.d.ts +13 -1
  282. package/progressbar/useProgressBar.props.d.ts +2 -2
  283. package/progressspinner/index.d.ts +1 -0
  284. package/progressspinner/index.mjs +1 -2
  285. package/progressspinner/useProgressSpinner.d.ts +50 -1
  286. package/progressspinner/useProgressSpinner.props.d.ts +2 -2
  287. package/radiobutton/index.d.ts +1 -0
  288. package/radiobutton/index.mjs +1 -2
  289. package/radiobutton/useRadioButton.d.ts +41 -3
  290. package/radiobutton/useRadioButton.props.d.ts +2 -2
  291. package/radiobuttongroup/index.d.ts +3 -0
  292. package/radiobuttongroup/index.mjs +1 -0
  293. package/radiobuttongroup/useRadioButtonGroup.d.ts +11 -0
  294. package/radiobuttongroup/useRadioButtonGroup.props.d.ts +2 -0
  295. package/rating/index.d.ts +3 -0
  296. package/rating/index.mjs +1 -2
  297. package/rating/useRating.d.ts +46 -12
  298. package/rating/useRating.props.d.ts +2 -2
  299. package/rating/useRatingOption.d.ts +69 -0
  300. package/rating/useRatingOption.props.d.ts +2 -0
  301. package/scrollarea/index.d.ts +1 -0
  302. package/scrollarea/index.mjs +1 -2
  303. package/scrollarea/useScrollArea.d.ts +120 -15
  304. package/scrollarea/useScrollArea.props.d.ts +2 -2
  305. package/select/index.d.ts +3 -0
  306. package/select/index.mjs +1 -0
  307. package/select/useSelect.d.ts +190 -0
  308. package/select/useSelect.props.d.ts +2 -0
  309. package/sidebar/index.d.ts +7 -0
  310. package/sidebar/index.mjs +1 -0
  311. package/sidebar/useSidebar.d.ts +143 -0
  312. package/sidebar/useSidebar.props.d.ts +2 -0
  313. package/sidebar/useSidebarLayout.d.ts +24 -0
  314. package/sidebar/useSidebarLayout.props.d.ts +2 -0
  315. package/sidebar/useSidebarMenuItem.d.ts +10 -0
  316. package/sidebar/useSidebarMenuItem.props.d.ts +2 -0
  317. package/skeleton/index.d.ts +1 -0
  318. package/skeleton/index.mjs +1 -2
  319. package/skeleton/useSkeleton.d.ts +7 -1
  320. package/skeleton/useSkeleton.props.d.ts +2 -2
  321. package/slider/index.d.ts +1 -0
  322. package/slider/index.mjs +1 -2
  323. package/slider/useSlider.d.ts +81 -48
  324. package/slider/useSlider.props.d.ts +2 -2
  325. package/speeddial/index.d.ts +1 -0
  326. package/speeddial/index.mjs +1 -2
  327. package/speeddial/useSpeedDial.d.ts +89 -32
  328. package/speeddial/useSpeedDial.props.d.ts +2 -2
  329. package/splitter/index.d.ts +1 -0
  330. package/splitter/index.mjs +1 -2
  331. package/splitter/useSplitter.d.ts +57 -14
  332. package/splitter/useSplitter.props.d.ts +2 -2
  333. package/stepper/index.d.ts +1 -0
  334. package/stepper/index.mjs +1 -2
  335. package/stepper/useStepper.d.ts +47 -2
  336. package/stepper/useStepper.props.d.ts +2 -2
  337. package/styleclass/index.d.ts +1 -0
  338. package/styleclass/index.mjs +1 -2
  339. package/styleclass/useStyleClass.d.ts +5 -1
  340. package/styleclass/useStyleClass.props.d.ts +2 -2
  341. package/tabs/index.d.ts +1 -0
  342. package/tabs/index.mjs +1 -2
  343. package/tabs/useTabs.d.ts +42 -3
  344. package/tabs/useTabs.props.d.ts +2 -2
  345. package/tag/index.d.ts +1 -0
  346. package/tag/index.mjs +1 -2
  347. package/tag/useTag.d.ts +6 -1
  348. package/tag/useTag.props.d.ts +2 -2
  349. package/terminal/index.d.ts +1 -0
  350. package/terminal/index.mjs +1 -2
  351. package/terminal/useTerminal.d.ts +23 -2
  352. package/terminal/useTerminal.props.d.ts +2 -2
  353. package/textarea/index.d.ts +1 -0
  354. package/textarea/index.mjs +1 -2
  355. package/textarea/useTextarea.d.ts +9 -2
  356. package/textarea/useTextarea.props.d.ts +2 -2
  357. package/timeline/index.d.ts +1 -0
  358. package/timeline/index.mjs +1 -2
  359. package/timeline/useTimeline.d.ts +41 -1
  360. package/timeline/useTimeline.props.d.ts +2 -2
  361. package/toast/index.d.ts +1 -1
  362. package/toast/index.mjs +1 -2
  363. package/toast/useToast.d.ts +85 -23
  364. package/toast/useToast.props.d.ts +2 -2
  365. package/toaster/ToastManager.d.ts +14 -0
  366. package/toaster/index.d.ts +4 -0
  367. package/toaster/index.mjs +1 -0
  368. package/toaster/useToaster.d.ts +50 -0
  369. package/toaster/useToaster.props.d.ts +2 -0
  370. package/togglebutton/index.d.ts +1 -0
  371. package/togglebutton/index.mjs +1 -2
  372. package/togglebutton/useToggleButton.d.ts +5 -3
  373. package/togglebutton/useToggleButton.props.d.ts +2 -2
  374. package/togglebuttongroup/index.d.ts +3 -0
  375. package/togglebuttongroup/index.mjs +1 -0
  376. package/togglebuttongroup/useToggleButtonGroup.d.ts +17 -0
  377. package/togglebuttongroup/useToggleButtonGroup.props.d.ts +2 -0
  378. package/toggleswitch/index.d.ts +3 -0
  379. package/toggleswitch/index.mjs +1 -0
  380. package/toggleswitch/useToggleSwitch.d.ts +48 -0
  381. package/toggleswitch/useToggleSwitch.props.d.ts +2 -0
  382. package/toolbar/index.d.ts +1 -0
  383. package/toolbar/index.mjs +1 -2
  384. package/toolbar/useToolbar.d.ts +7 -1
  385. package/toolbar/useToolbar.props.d.ts +2 -2
  386. package/tooltip/index.d.ts +1 -0
  387. package/tooltip/index.mjs +1 -2
  388. package/tooltip/useTooltip.d.ts +43 -24
  389. package/tooltip/useTooltip.props.d.ts +2 -2
  390. package/tooltipmanager/index.d.ts +2 -0
  391. package/tooltipmanager/index.mjs +1 -0
  392. package/tooltipmanager/useTooltipManager.d.ts +12 -0
  393. package/tooltipmanager/useTooltipManager.props.d.ts +2 -0
  394. package/tree/TreeDragDropService.d.ts +13 -5
  395. package/tree/index.d.ts +7 -0
  396. package/tree/index.mjs +1 -2
  397. package/tree/useTree.d.ts +97 -17
  398. package/tree/useTree.props.d.ts +2 -2
  399. package/tree/useTreeDragDrop.d.ts +24 -0
  400. package/tree/useTreeFlatten.d.ts +13 -0
  401. package/tree/useTreeKeyboard.d.ts +18 -0
  402. package/tree/useTreeNode.d.ts +45 -0
  403. package/tree/useTreeNode.props.d.ts +2 -0
  404. package/tree/useTreeSelection.d.ts +31 -0
  405. package/utils/itemKey.d.ts +10 -0
  406. package/LICENSE +0 -21
  407. package/accordion/index.mjs.map +0 -1
  408. package/accordion/useAccordion.test.d.ts +0 -0
  409. package/animateonscroll/index.mjs.map +0 -1
  410. package/animateonscroll/useAnimateOnScroll.test.d.ts +0 -0
  411. package/avatar/index.mjs.map +0 -1
  412. package/avatar/useAvatar.test.d.ts +0 -0
  413. package/badge/index.mjs.map +0 -1
  414. package/badge/useBadge.test.d.ts +0 -0
  415. package/breadcrumb/index.mjs.map +0 -1
  416. package/breadcrumb/useBreadcrumb.test.d.ts +0 -0
  417. package/button/index.mjs.map +0 -1
  418. package/button/useButton.test.d.ts +0 -0
  419. package/card/index.mjs.map +0 -1
  420. package/card/useCard.test.d.ts +0 -0
  421. package/carousel/index.mjs.map +0 -1
  422. package/carousel/useCarousel.test.d.ts +0 -0
  423. package/checkbox/index.mjs.map +0 -1
  424. package/checkbox/useCheckbox.test.d.ts +0 -0
  425. package/chip/index.mjs.map +0 -1
  426. package/chip/useChip.test.d.ts +0 -0
  427. package/colorpicker/index.d.ts +0 -3
  428. package/colorpicker/index.mjs +0 -2
  429. package/colorpicker/index.mjs.map +0 -1
  430. package/colorpicker/input/index.d.ts +0 -2
  431. package/colorpicker/input/index.mjs +0 -2
  432. package/colorpicker/input/index.mjs.map +0 -1
  433. package/colorpicker/input/useColorPickerInput.d.ts +0 -11
  434. package/colorpicker/input/useColorPickerInput.props.d.ts +0 -2
  435. package/colorpicker/input/useColorPickerInput.test.d.ts +0 -0
  436. package/colorpicker/slider/index.d.ts +0 -2
  437. package/colorpicker/slider/index.mjs +0 -2
  438. package/colorpicker/slider/index.mjs.map +0 -1
  439. package/colorpicker/slider/useColorPickerSlider.d.ts +0 -13
  440. package/colorpicker/slider/useColorPickerSlider.props.d.ts +0 -2
  441. package/colorpicker/slider/useColorPickerSlider.test.d.ts +0 -0
  442. package/colorpicker/useColorPicker.d.ts +0 -26
  443. package/colorpicker/useColorPicker.props.d.ts +0 -2
  444. package/colorpicker/useColorPicker.test.d.ts +0 -0
  445. package/commandmenu/index.d.ts +0 -2
  446. package/commandmenu/index.mjs +0 -2
  447. package/commandmenu/index.mjs.map +0 -1
  448. package/commandmenu/useCommandMenu.d.ts +0 -11
  449. package/commandmenu/useCommandMenu.props.d.ts +0 -2
  450. package/commandmenu/useCommandMenu.test.d.ts +0 -0
  451. package/confirmdialog/index.d.ts +0 -2
  452. package/confirmdialog/index.mjs +0 -2
  453. package/confirmdialog/index.mjs.map +0 -1
  454. package/confirmdialog/useConfirmDialog.d.ts +0 -1
  455. package/confirmdialog/useConfirmDialog.props.d.ts +0 -2
  456. package/confirmdialog/useConfirmDialog.test.d.ts +0 -0
  457. package/confirmpopup/index.d.ts +0 -2
  458. package/confirmpopup/index.mjs +0 -2
  459. package/confirmpopup/index.mjs.map +0 -1
  460. package/confirmpopup/useConfirmPopup.d.ts +0 -25
  461. package/confirmpopup/useConfirmPopup.props.d.ts +0 -2
  462. package/confirmpopup/useConfirmPopup.test.d.ts +0 -0
  463. package/contextmenu/index.mjs.map +0 -1
  464. package/contextmenu/useContextMenu.test.d.ts +0 -0
  465. package/dataview/index.mjs.map +0 -1
  466. package/dataview/useDataView.test.d.ts +0 -0
  467. package/datepicker/index.mjs.map +0 -1
  468. package/datepicker/useDatePicker.test.d.ts +0 -0
  469. package/dialog/index.mjs.map +0 -1
  470. package/dialog/useDialog.test.d.ts +0 -0
  471. package/divider/index.mjs.map +0 -1
  472. package/divider/useDivider.test.d.ts +0 -0
  473. package/drawer/index.mjs.map +0 -1
  474. package/drawer/useDrawer.test.d.ts +0 -0
  475. package/fieldset/index.mjs.map +0 -1
  476. package/fieldset/useFieldset.test.d.ts +0 -0
  477. package/fileupload/index.mjs.map +0 -1
  478. package/fileupload/useFileUpload.test.d.ts +0 -0
  479. package/fluid/index.mjs.map +0 -1
  480. package/fluid/useFluid.test.d.ts +0 -0
  481. package/focustrap/index.mjs.map +0 -1
  482. package/focustrap/useFocusTrap.test.d.ts +0 -0
  483. package/gallery/index.mjs.map +0 -1
  484. package/gallery/item/index.mjs.map +0 -1
  485. package/gallery/useGallery.test.d.ts +0 -0
  486. package/iconfield/index.mjs.map +0 -1
  487. package/iconfield/useIconField.test.d.ts +0 -0
  488. package/imagecompare/index.d.ts +0 -2
  489. package/imagecompare/index.mjs +0 -2
  490. package/imagecompare/index.mjs.map +0 -1
  491. package/imagecompare/useImageCompare.d.ts +0 -8
  492. package/imagecompare/useImageCompare.props.d.ts +0 -2
  493. package/imagecompare/useImageCompare.test.d.ts +0 -0
  494. package/inplace/index.mjs.map +0 -1
  495. package/inplace/useInplace.test.d.ts +0 -0
  496. package/inputgroup/index.mjs.map +0 -1
  497. package/inputgroup/useInputGroup.test.d.ts +0 -0
  498. package/inputnumber/index.mjs.map +0 -1
  499. package/inputnumber/useInputNumber.test.d.ts +0 -0
  500. package/inputotp/index.mjs.map +0 -1
  501. package/inputotp/useInputOtp.test.d.ts +0 -0
  502. package/inputtags/index.mjs.map +0 -1
  503. package/inputtags/useInputTags.test.d.ts +0 -0
  504. package/inputtext/index.mjs.map +0 -1
  505. package/inputtext/useInputText.test.d.ts +0 -0
  506. package/knob/index.mjs.map +0 -1
  507. package/knob/useKnob.test.d.ts +0 -0
  508. package/label/index.mjs.map +0 -1
  509. package/label/useLabel.test.d.ts +0 -0
  510. package/listbox/index.mjs.map +0 -1
  511. package/listbox/useListbox.test.d.ts +0 -0
  512. package/menu/index.mjs.map +0 -1
  513. package/menu/sub/index.d.ts +0 -2
  514. package/menu/sub/index.mjs +0 -2
  515. package/menu/sub/index.mjs.map +0 -1
  516. package/menu/sub/useMenuSub.d.ts +0 -19
  517. package/menu/sub/useMenuSub.props.d.ts +0 -2
  518. package/menu/useMenu.test.d.ts +0 -0
  519. package/message/index.mjs.map +0 -1
  520. package/message/useMessage.test.d.ts +0 -0
  521. package/metergroup/index.mjs.map +0 -1
  522. package/metergroup/useMeterGroup.test.d.ts +0 -0
  523. package/orgchart/index.d.ts +0 -2
  524. package/orgchart/index.mjs +0 -2
  525. package/orgchart/index.mjs.map +0 -1
  526. package/orgchart/useOrgChart.d.ts +0 -20
  527. package/orgchart/useOrgChart.props.d.ts +0 -2
  528. package/orgchart/useOrgChart.test.d.ts +0 -0
  529. package/overlay/index.d.ts +0 -2
  530. package/overlay/index.mjs +0 -2
  531. package/overlay/index.mjs.map +0 -1
  532. package/overlay/useOverlay.d.ts +0 -16
  533. package/overlay/useOverlay.props.d.ts +0 -2
  534. package/overlay/useOverlay.test.d.ts +0 -0
  535. package/paginator/index.mjs.map +0 -1
  536. package/paginator/usePaginator.test.d.ts +0 -0
  537. package/panel/index.mjs.map +0 -1
  538. package/panel/usePanel.test.d.ts +0 -0
  539. package/password/index.d.ts +0 -2
  540. package/password/index.mjs +0 -2
  541. package/password/index.mjs.map +0 -1
  542. package/password/usePassword.d.ts +0 -35
  543. package/password/usePassword.props.d.ts +0 -2
  544. package/password/usePassword.test.d.ts +0 -0
  545. package/placer/index.d.ts +0 -2
  546. package/placer/index.mjs +0 -2
  547. package/placer/index.mjs.map +0 -1
  548. package/placer/usePlacer.d.ts +0 -12
  549. package/placer/usePlacer.props.d.ts +0 -2
  550. package/placer/usePlacer.test.d.ts +0 -0
  551. package/popover/index.mjs.map +0 -1
  552. package/popover/usePopover.test.d.ts +0 -0
  553. package/portal/index.mjs.map +0 -1
  554. package/portal/usePortal.test.d.ts +0 -0
  555. package/progressbar/index.mjs.map +0 -1
  556. package/progressbar/useProgressBar.test.d.ts +0 -0
  557. package/progressspinner/index.mjs.map +0 -1
  558. package/progressspinner/useProgressSpinner.test.d.ts +0 -0
  559. package/radiobutton/index.mjs.map +0 -1
  560. package/radiobutton/useRadioButton.test.d.ts +0 -0
  561. package/rating/index.mjs.map +0 -1
  562. package/rating/useRating.test.d.ts +0 -0
  563. package/scrollarea/index.mjs.map +0 -1
  564. package/scrollarea/useScrollArea.test.d.ts +0 -0
  565. package/skeleton/index.mjs.map +0 -1
  566. package/skeleton/useSkeleton.test.d.ts +0 -0
  567. package/slider/index.mjs.map +0 -1
  568. package/slider/useSlider.test.d.ts +0 -0
  569. package/speeddial/index.mjs.map +0 -1
  570. package/speeddial/useSpeedDial.test.d.ts +0 -0
  571. package/splitter/index.mjs.map +0 -1
  572. package/splitter/useSplitter.test.d.ts +0 -0
  573. package/stepper/index.mjs.map +0 -1
  574. package/stepper/useStepper.test.d.ts +0 -0
  575. package/styleclass/index.mjs.map +0 -1
  576. package/styleclass/useStyleClass.test.d.ts +0 -0
  577. package/switch/index.d.ts +0 -2
  578. package/switch/index.mjs +0 -2
  579. package/switch/index.mjs.map +0 -1
  580. package/switch/useSwitch.d.ts +0 -7
  581. package/switch/useSwitch.props.d.ts +0 -2
  582. package/switch/useSwitch.test.d.ts +0 -0
  583. package/tabs/index.mjs.map +0 -1
  584. package/tabs/useTabs.test.d.ts +0 -0
  585. package/tag/index.mjs.map +0 -1
  586. package/tag/useTag.test.d.ts +0 -0
  587. package/terminal/index.mjs.map +0 -1
  588. package/terminal/useTerminal.test.d.ts +0 -0
  589. package/textarea/index.mjs.map +0 -1
  590. package/textarea/useTextarea.test.d.ts +0 -0
  591. package/timeline/index.mjs.map +0 -1
  592. package/timeline/useTimeline.test.d.ts +0 -0
  593. package/toast/index.mjs.map +0 -1
  594. package/toast/item/index.css +0 -2
  595. package/toast/item/index.css.map +0 -1
  596. package/toast/item/index.d.ts +0 -2
  597. package/toast/item/index.mjs +0 -2
  598. package/toast/item/index.mjs.map +0 -1
  599. package/toast/item/useToastItem.d.ts +0 -25
  600. package/toast/item/useToastItem.props.d.ts +0 -2
  601. package/toast/item/useToastItem.test.d.ts +0 -0
  602. package/toast/toastStore.d.ts +0 -40
  603. package/toast/useToast.test.d.ts +0 -0
  604. package/togglebutton/index.mjs.map +0 -1
  605. package/togglebutton/useToggle.test.d.ts +0 -0
  606. package/toolbar/index.mjs.map +0 -1
  607. package/toolbar/useToolbar.test.d.ts +0 -0
  608. package/tooltip/group/index.d.ts +0 -2
  609. package/tooltip/group/index.mjs +0 -2
  610. package/tooltip/group/index.mjs.map +0 -1
  611. package/tooltip/group/useTooltipGroup.d.ts +0 -9
  612. package/tooltip/group/useTooltipGroup.props.d.ts +0 -2
  613. package/tooltip/group/useTooltipGroup.test.d.ts +0 -0
  614. package/tooltip/index.mjs.map +0 -1
  615. package/tooltip/useTooltip.test.d.ts +0 -0
  616. package/tree/index.mjs.map +0 -1
  617. package/tree/useTree.test.d.ts +0 -0
File without changes
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/fileupload/useFileUpload.ts","../../src/fileupload/useFileUpload.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { addClass, isNotEmpty, removeClass } from '@primeuix/utils';\nimport * as React from 'react';\nimport { defaultProps } from './useFileUpload.props';\n\nexport const useFileUpload = withHeadless({\n name: 'useFileUpload',\n defaultProps,\n setup({ props, $primereact }) {\n const inputRef = React.useRef<HTMLInputElement | null>(null);\n const contentRef = React.useRef<HTMLDivElement | null>(null);\n const uploadedFileCount = React.useRef(0);\n\n const [filesState, setFilesState] = React.useState<File[]>([]);\n const [uploadedFilesState, setUploadedFilesState] = React.useState<File[]>([]);\n const [messagesState, setMessagesState] = React.useState<string[]>([]);\n const [progressState, setProgressState] = React.useState(0);\n\n const hasFiles = React.useMemo(() => isNotEmpty(filesState), [filesState]);\n const hasUploadedFiles = React.useMemo(() => isNotEmpty(uploadedFilesState), [uploadedFilesState]);\n\n const state = {\n files: filesState,\n messages: messagesState,\n progress: progressState,\n uploadedFiles: uploadedFilesState\n };\n\n const upload = () => {\n if (hasFiles) {\n uploader(filesState);\n }\n };\n\n const onFileSelect = (event: React.ChangeEvent<HTMLInputElement> | DragEvent) => {\n const isDragEvent = (e: React.ChangeEvent<HTMLInputElement> | DragEvent): e is DragEvent => 'dataTransfer' in e && !!(e as DragEvent).dataTransfer;\n\n if (hasFiles) {\n setFilesState([]);\n }\n\n let currentFiles: File[] = [];\n\n if (props.multiple) {\n currentFiles = filesState ? [...filesState] : [];\n }\n\n const filesList = isDragEvent(event) ? event.dataTransfer?.files : (event.target as HTMLInputElement | null)?.files;\n\n if (!filesList) {\n return;\n }\n\n for (const file of Array.from(filesList)) {\n if (!isFileSelected(file) && !isFileLimitExceeded()) {\n if (validate(file)) {\n if (isImage(file)) {\n const fileWithUrl = file as File & { objectURL?: string };\n\n fileWithUrl.objectURL = window.URL.createObjectURL(file);\n }\n\n currentFiles.push(file);\n }\n }\n }\n\n setFilesState(currentFiles);\n\n if (props.fileLimit) {\n checkFileLimit();\n }\n\n if (props.auto && isNotEmpty(currentFiles) && !isFileLimitExceeded()) {\n uploader(currentFiles);\n }\n\n if (props.onSelect) {\n props.onSelect({ originalEvent: event, files: currentFiles });\n }\n\n clearInput();\n };\n\n const choose = () => {\n if (inputRef.current) {\n inputRef.current.click();\n }\n };\n\n const uploader = (uploadFiles = filesState) => {\n const filesToUpload = uploadFiles ?? filesState ?? [];\n\n if (props.customUpload) {\n if (props.fileLimit) {\n uploadedFileCount.current += filesToUpload.length;\n }\n\n if (props.uploadHandler) {\n props.uploadHandler({\n files: filesToUpload,\n options: {\n clear,\n props\n }\n });\n }\n } else {\n const xhr = new XMLHttpRequest();\n const formData = new FormData();\n\n if (props.onBeforeUpload) {\n props.onBeforeUpload({\n xhr,\n files: filesToUpload\n });\n }\n\n for (const file of filesToUpload) {\n formData.append(props.name as string, file, file.name);\n }\n\n xhr.upload.addEventListener('progress', (event) => {\n if (event.lengthComputable) {\n const progress = Math.round((event.loaded * 100) / event.total);\n\n setProgressState(progress);\n }\n\n if (props.onProgress) {\n props.onProgress({\n originalEvent: event,\n progress: progressState\n });\n }\n });\n\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n setProgressState(0);\n\n if (xhr.status >= 200 && xhr.status < 300) {\n if (props.fileLimit) {\n uploadedFileCount.current += filesToUpload.length;\n }\n\n if (props.onUpload) {\n props.onUpload({\n xhr,\n files: filesToUpload\n });\n }\n\n setUploadedFilesState((prevUploadedFiles) => [...prevUploadedFiles, ...filesToUpload]);\n } else {\n if (props.onError) {\n props.onError({\n xhr,\n files: filesToUpload\n });\n }\n }\n\n clear();\n }\n };\n\n if (props.url) {\n xhr.open('POST', props.url, true);\n\n if (props.onBeforeSend) {\n props.onBeforeSend({\n xhr,\n formData\n });\n }\n\n xhr.withCredentials = !!props.withCredentials;\n\n xhr.send(formData);\n }\n }\n };\n\n const clear = () => {\n setFilesState([]);\n setMessagesState([]);\n\n if (props.onClear) {\n props.onClear();\n }\n\n clearInput();\n };\n\n const isFileSelected = (file: File) => {\n if (filesState && filesState.length) {\n for (const sFile of filesState) {\n if (sFile.name + sFile.type + sFile.size === file.name + file.type + file.size) return true;\n }\n }\n\n return false;\n };\n\n const validate = (file: File) => {\n if (props.accept && !isFileTypeValid(file)) {\n setMessagesState((prevMessages) => [...prevMessages, (props.invalidFileTypeMessage as string).replace('{0}', file.name).replace('{1}', props.accept as string)]);\n\n return false;\n }\n\n if (props.maxFileSize && file.size > props.maxFileSize) {\n setMessagesState((prevMessages) => [...prevMessages, (props.invalidFileSizeMessage as string).replace('{0}', file.name).replace('{1}', formatSize(props.maxFileSize as number))]);\n\n return false;\n }\n\n return true;\n };\n\n const isFileTypeValid = (file: File) => {\n const acceptableTypes = (props.accept as string).split(',').map((type) => type.trim());\n\n for (const type of acceptableTypes) {\n const acceptable = isWildcard(type) ? getTypeClass(file.type) === getTypeClass(type) : file.type == type || getFileExtension(file).toLowerCase() === type.toLowerCase();\n\n if (acceptable) {\n return true;\n }\n }\n\n return false;\n };\n\n const getTypeClass = (fileType: string) => {\n return fileType.substring(0, fileType.indexOf('/'));\n };\n\n const isWildcard = (fileType: string) => {\n return fileType.indexOf('*') !== -1;\n };\n\n const getFileExtension = (file: File) => {\n return '.' + file.name.split('.').pop();\n };\n\n const isImage = (file: File) => {\n return /^image\\//.test(file.type);\n };\n\n const onDragEnter = (event: DragEvent) => {\n if (!props.disabled && (!hasFiles || props.multiple)) {\n event.stopPropagation();\n event.preventDefault();\n }\n };\n\n const onDragOver = (event: DragEvent) => {\n if (!props.disabled && (!hasFiles || props.multiple)) {\n // !isUnstyled &&\n addClass(contentRef.current as HTMLDivElement, 'p-fileupload-highlight');\n (contentRef.current as HTMLDivElement).setAttribute('data-p-highlight', 'true');\n event.stopPropagation();\n event.preventDefault();\n }\n };\n\n const onDragLeave = () => {\n if (!props.disabled) {\n // !isUnstyled &&\n removeClass(contentRef.current as HTMLDivElement, 'p-fileupload-highlight');\n (contentRef.current as HTMLDivElement).setAttribute('data-p-highlight', 'false');\n }\n };\n\n const onDrop = (event: DragEvent) => {\n if (!props.disabled) {\n // !isUnstyled &&\n removeClass(contentRef.current as HTMLDivElement, 'p-fileupload-highlight');\n (contentRef.current as HTMLDivElement).setAttribute('data-p-highlight', 'false');\n event.stopPropagation();\n event.preventDefault();\n\n const files = event.dataTransfer?.files;\n const allowDrop = props.multiple || (files && files.length === 1);\n\n if (allowDrop) {\n onFileSelect(event);\n }\n }\n };\n\n const remove = (index: number) => {\n clearInput();\n const currentFiles = [...filesState];\n const removedFile = filesState[index];\n\n currentFiles.splice(index, 1);\n setFilesState(currentFiles);\n\n if (props.onRemove) {\n props.onRemove({\n file: removedFile\n });\n }\n };\n\n const removeUploadedFile = (index: number) => {\n const currentUploadedFiles = [...uploadedFilesState];\n\n currentUploadedFiles.splice(index, 1);\n setUploadedFilesState(currentUploadedFiles);\n\n if (props.onRemove) {\n props.onRemove({\n file: filesState[index]\n });\n }\n };\n\n const clearInput = () => {\n if (inputRef.current) {\n inputRef.current.value = '';\n }\n };\n\n const formatSize = (bytes: number) => {\n const k = 1024;\n const dm = 3;\n // @ts-expect-error TODO:\n const sizes = $primereact?.config?.locale?.fileSizeTypes || ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n if (bytes === 0) {\n return `0 ${sizes[0]}`;\n }\n\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n const formattedSize = parseFloat((bytes / Math.pow(k, i)).toFixed(dm));\n\n return `${formattedSize} ${sizes[i]}`;\n };\n\n const isFileLimitExceeded = () => {\n return props.fileLimit && props.fileLimit < filesState.length + uploadedFileCount.current;\n };\n\n const checkFileLimit = () => {\n if (isFileLimitExceeded()) {\n setMessagesState((prevMessages) => [...prevMessages, (props.invalidFileLimitMessage as string).replace('{0}', (props.fileLimit as number).toString())]);\n }\n };\n\n return {\n state,\n uploadedFileCount,\n hasFiles,\n hasUploadedFiles,\n // refs\n inputRef,\n contentRef,\n // methods\n upload,\n onFileSelect,\n choose,\n uploader,\n clear,\n remove,\n removeUploadedFile,\n formatSize,\n onDragEnter,\n onDragOver,\n onDragLeave,\n onDrop\n };\n }\n});\n","import type { useFileUploadProps } from '@primereact/types/shared/fileupload';\n\nexport const defaultProps: useFileUploadProps = {\n name: undefined,\n url: undefined,\n multiple: false,\n accept: undefined,\n disabled: false,\n auto: false,\n maxFileSize: undefined,\n fileLimit: undefined,\n withCredentials: false,\n customUpload: false,\n invalidFileLimitMessage: 'Maximum number of files exceeded, limit is {0} at most.',\n invalidFileSizeMessage: '{0}: Invalid file size, file size should be smaller than {1}.',\n invalidFileTypeMessage: '{0}: Invalid file type, allowed file types: {1}.',\n uploadHandler: undefined,\n onSelect: undefined,\n onBeforeUpload: undefined,\n onUpload: undefined,\n onError: undefined,\n onProgress: undefined,\n onBeforeSend: undefined,\n onClear: undefined,\n onRemove: undefined\n};\n"],"mappings":"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","names":["withHeadless","addClass","isNotEmpty","removeClass","React","defaultProps","useFileUpload","withHeadless","defaultProps","props","$primereact","inputRef","contentRef","uploadedFileCount","filesState","setFilesState","uploadedFilesState","setUploadedFilesState","messagesState","setMessagesState","progressState","setProgressState","hasFiles","isNotEmpty","hasUploadedFiles","state","upload","uploader","onFileSelect","event","_a","_b","isDragEvent","e","currentFiles","filesList","file","isFileSelected","isFileLimitExceeded","validate","isImage","fileWithUrl","checkFileLimit","clearInput","choose","uploadFiles","filesToUpload","clear","xhr","formData","progress","prevUploadedFiles","sFile","isFileTypeValid","prevMessages","formatSize","acceptableTypes","type","isWildcard","getTypeClass","getFileExtension","fileType","onDragEnter","onDragOver","addClass","onDragLeave","removeClass","onDrop","files","remove","index","removedFile","removeUploadedFile","currentUploadedFiles","bytes","sizes","i"]}
File without changes
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/fluid/useFluid.ts","../../src/fluid/useFluid.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { defaultProps } from './useFluid.props';\n\nexport const useFluid = withHeadless({\n name: 'useFluid',\n defaultProps\n});\n","import type { useFluidProps } from '@primereact/types/shared/fluid';\n\nexport const defaultProps: useFluidProps = {};\n"],"mappings":"AAAA,OAAS,gBAAAA,MAAoB,4BCEtB,IAAMC,EAA8B,CAAC,EDCrC,IAAMC,EAAWC,EAAa,CACjC,KAAM,WACN,aAAAC,CACJ,CAAC","names":["withHeadless","defaultProps","useFluid","withHeadless","defaultProps"]}
File without changes
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/focustrap/useFocusTrap.tsx","../../src/focustrap/useFocusTrap.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { useUnmountEffect } from '@primereact/hooks/use-unmount-effect';\nimport { mergeProps } from '@primeuix/utils';\nimport { focus, getFirstFocusableElement, getLastFocusableElement, isFocusableElement } from '@primeuix/utils/dom';\nimport { isNotEmpty } from '@primeuix/utils/object';\nimport * as React from 'react';\nimport { defaultProps } from './useFocusTrap.props';\n\nexport const useFocusTrap = withHeadless({\n name: 'useFocusTrap',\n defaultProps,\n setup: ({ props, elementRef }) => {\n const { disabled, autoFocus, container } = props;\n const firstHiddenElementRef = React.useRef<HTMLSpanElement>(null);\n const lastHiddenElementRef = React.useRef<HTMLSpanElement>(null);\n const observerRef = React.useRef<MutationObserver | null>(null);\n const containerRef = React.useRef<HTMLElement | null>(null);\n const state = {};\n\n React.useEffect(() => {\n containerRef.current = container || elementRef.current;\n }, [container, elementRef]);\n\n // methods\n const getComputedSelector = (selector?: string) => `:not(.p-hidden-focusable):not([data-p-hidden-focusable=\"true\"])${selector ?? ''}`;\n\n const handleFirstHiddenFocus = (event: React.FocusEvent<HTMLSpanElement>) => {\n const containerElement = containerRef.current;\n\n const relatedTarget = event.relatedTarget as HTMLElement | null;\n const lastHiddenElement = lastHiddenElementRef.current;\n\n if (!containerElement || !lastHiddenElement) return;\n\n const fallback = relatedTarget === lastHiddenElement || !containerElement?.contains(relatedTarget) ? getFirstFocusableElement(containerElement, getComputedSelector()) : lastHiddenElement;\n\n if (fallback) {\n focus(fallback as HTMLElement);\n }\n };\n\n const handleLastHiddenFocus = (event: React.FocusEvent<HTMLSpanElement>) => {\n const containerElement = containerRef.current;\n\n const relatedTarget = event.relatedTarget as HTMLElement | null;\n const firstHiddenElement = firstHiddenElementRef.current;\n\n if (!containerElement || !firstHiddenElement) return;\n\n const fallback = relatedTarget === firstHiddenElement || !containerElement?.contains(relatedTarget) ? getLastFocusableElement(containerElement, getComputedSelector()) : firstHiddenElement;\n\n if (fallback) {\n focus(fallback as HTMLElement);\n }\n };\n\n const autoElementFocus = React.useCallback(() => {\n if (!autoFocus) return;\n\n const containerElement = containerRef.current;\n\n if (!containerElement) return;\n\n let focusableElement = getFirstFocusableElement(containerElement, `[autofocus]${getComputedSelector()}`);\n\n if (!focusableElement) {\n focusableElement = getFirstFocusableElement(containerElement, getComputedSelector());\n }\n\n if (focusableElement) {\n focus(focusableElement as HTMLElement);\n }\n }, [autoFocus, containerRef]);\n\n const bind = React.useCallback(() => {\n const containerElement = containerRef.current;\n\n if (!containerElement || disabled || !(containerElement instanceof Element)) return;\n\n containerElement.setAttribute('data-p-focus-trap', 'true');\n observerRef.current = new MutationObserver((mutationList) => {\n for (const mutation of mutationList) {\n if (mutation.type === 'childList' && !containerElement.contains(document.activeElement)) {\n const findNextFocusableElement = (_el: Node | null): HTMLElement | null => {\n if (!_el || !('nodeType' in _el)) return null;\n\n const focusableElement = isFocusableElement(_el as HTMLElement)\n ? isFocusableElement(_el as HTMLElement, getComputedSelector(''))\n ? (_el as HTMLElement)\n : getFirstFocusableElement(containerElement, getComputedSelector(''))\n : getFirstFocusableElement(_el as HTMLElement);\n\n return isNotEmpty(focusableElement) ? (focusableElement as HTMLElement) : _el.nextSibling ? findNextFocusableElement(_el.nextSibling) : null;\n };\n\n const nextElement = findNextFocusableElement(mutation.nextSibling);\n\n if (nextElement) {\n focus(nextElement);\n }\n }\n }\n });\n\n observerRef.current.observe(containerElement, { childList: true });\n }, [disabled, containerRef]);\n\n const unbind = () => {\n const containerElement = containerRef.current;\n\n if (!containerElement) return;\n\n containerElement.removeAttribute('data-p-focus-trap');\n\n if (observerRef.current) {\n observerRef.current.disconnect();\n observerRef.current = null;\n }\n };\n\n const createHiddenElements = (): [React.ReactElement | null, React.ReactElement | null] => {\n const hiddenElementProps = {\n className: 'p-hidden-accessible p-hidden-focusable',\n tabIndex: 0,\n role: 'presentation',\n 'aria-hidden': true,\n 'data-p-hidden-accessible': true,\n 'data-p-hidden-focusable': true\n };\n\n const hiddenElements: [React.ReactElement | null, React.ReactElement | null] = [\n <span\n {...mergeProps({\n ref: firstHiddenElementRef,\n onFocus: handleFirstHiddenFocus,\n ...hiddenElementProps\n })}\n />,\n <span\n {...mergeProps({\n ref: lastHiddenElementRef,\n onFocus: handleLastHiddenFocus,\n ...hiddenElementProps\n })}\n />\n ];\n\n return hiddenElements;\n };\n // effects\n\n React.useEffect(() => {\n const containerElement = containerRef.current;\n\n if (!containerElement) return;\n\n if (!disabled) {\n bind();\n autoElementFocus();\n }\n }, [disabled, bind, autoElementFocus, containerRef]);\n\n useUnmountEffect(() => {\n unbind();\n });\n\n return {\n state,\n hiddenElements: !disabled ? createHiddenElements() : ([null, null] as [null, null])\n };\n }\n});\n","import type { useFocusTrapProps } from '@primereact/types/shared/focustrap';\n\nexport const defaultProps: useFocusTrapProps = {\n disabled: false,\n autoFocus: true,\n container: null\n};\n"],"mappings":"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","names":["withHeadless","useUnmountEffect","mergeProps","focus","getFirstFocusableElement","getLastFocusableElement","isFocusableElement","isNotEmpty","React","defaultProps","useFocusTrap","withHeadless","defaultProps","props","elementRef","disabled","autoFocus","container","firstHiddenElementRef","lastHiddenElementRef","observerRef","containerRef","state","getComputedSelector","selector","handleFirstHiddenFocus","event","containerElement","relatedTarget","lastHiddenElement","fallback","getFirstFocusableElement","focus","handleLastHiddenFocus","firstHiddenElement","getLastFocusableElement","autoElementFocus","focusableElement","bind","mutationList","mutation","findNextFocusableElement","_el","isFocusableElement","isNotEmpty","nextElement","unbind","createHiddenElements","hiddenElementProps","__spreadValues","mergeProps","useUnmountEffect"]}
File without changes
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/gallery/useGallery.tsx","../../src/gallery/useGallery.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport type { CarouselInstance } from '@primereact/types/shared/carousel';\nimport * as React from 'react';\nimport { defaultProps } from './useGallery.props';\n\nexport const useGallery = withHeadless({\n name: 'useGallery',\n defaultProps,\n setup: ({ props, elementRef }) => {\n const { activeIndex: activeIndexProp = 0, onActiveIndexChange = undefined } = props;\n const contentRef = React.useRef<HTMLDivElement>(null);\n const itemsRef = React.useRef<React.RefObject<HTMLDivElement>[]>([]);\n const toolbarRef = React.useRef<HTMLDivElement>(null);\n const thumbnailRef = React.useRef<CarouselInstance | null>(null);\n const prevRef = React.useRef<HTMLButtonElement>(null);\n const nextRef = React.useRef<HTMLButtonElement>(null);\n const [, forceUpdate] = React.useState(0);\n const [activeIndex, setActiveIndex] = React.useState(activeIndexProp);\n\n const [isFullscreen, setIsFullscreen] = React.useState(false);\n\n React.useEffect(() => {\n setActiveIndex(activeIndexProp);\n }, [activeIndexProp]);\n\n const registerItem = (ref: HTMLDivElement | null): number => {\n if (!ref) return -1;\n\n const existingIndex = itemsRef.current.findIndex((item) => item.current === ref);\n\n if (existingIndex === -1) {\n itemsRef.current.push({ current: ref });\n forceUpdate((x) => x + 1);\n\n return itemsRef.current.length - 1;\n }\n\n return existingIndex;\n };\n\n const handleNext = () => {\n const newIndex = (activeIndex + 1) % itemsRef.current.length;\n\n setActiveIndex(newIndex);\n onActiveIndexChange?.({ originalEvent: undefined as unknown as React.SyntheticEvent, value: newIndex });\n };\n\n const handlePrev = () => {\n const newIndex = (activeIndex - 1 + itemsRef.current.length) % itemsRef.current.length;\n\n setActiveIndex(newIndex);\n onActiveIndexChange?.({ originalEvent: undefined as unknown as React.SyntheticEvent, value: newIndex });\n };\n\n const createCustomEvent = (action: string) => () => {\n const activeItem = itemsRef.current[activeIndex]?.current;\n\n if (activeItem) {\n const event = new CustomEvent('gallery-' + action, {\n detail: { action: action }\n });\n\n activeItem.dispatchEvent(event);\n }\n };\n\n const toggleFullScreen = () => {\n if (!elementRef.current) return;\n\n if (!isFullscreen) {\n Object.assign(elementRef.current.style, {\n position: 'fixed',\n top: '0',\n left: '0',\n width: '100dvw',\n height: '100dvh',\n zIndex: '9999'\n });\n\n document.body.style.overflow = 'hidden';\n\n setIsFullscreen(true);\n } else {\n Object.assign(elementRef.current.style, {\n position: 'relative',\n top: '',\n left: '',\n width: '',\n height: '',\n zIndex: ''\n });\n\n document.body.style.overflow = 'auto';\n\n setIsFullscreen(false);\n }\n\n setTimeout(() => {\n window.dispatchEvent(new Event('resize'));\n }, 100);\n };\n\n const actions = {\n zoomIn: createCustomEvent('zoom-in'),\n zoomOut: createCustomEvent('zoom-out'),\n rotateLeft: createCustomEvent('rotate-left'),\n rotateRight: createCustomEvent('rotate-right'),\n flipX: createCustomEvent('flip-x'),\n flipY: createCustomEvent('flip-y'),\n download: createCustomEvent('download'),\n next: handleNext,\n prev: handlePrev,\n toggleFullScreen: toggleFullScreen\n };\n\n const handleClickAction = React.useCallback(\n (action?: string) => {\n if (action && actions[action as keyof typeof actions]) {\n actions[action as keyof typeof actions]();\n }\n },\n [actions]\n );\n\n const state = {\n isFullscreen,\n activeIndex\n };\n\n return {\n state,\n registerItem,\n handleNext,\n handlePrev,\n createCustomEvent,\n toggleFullScreen,\n handleClickAction,\n actions,\n contentRef,\n toolbarRef,\n thumbnailRef,\n prevRef,\n nextRef\n };\n }\n});\n","import type { useGalleryProps } from '@primereact/types/shared/gallery';\n\nexport const defaultProps: useGalleryProps = {\n activeIndex: 0,\n onActiveIndexChange: undefined\n};\n"],"mappings":"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","names":["withHeadless","React","defaultProps","useGallery","withHeadless","defaultProps","props","elementRef","activeIndexProp","onActiveIndexChange","contentRef","itemsRef","toolbarRef","thumbnailRef","prevRef","nextRef","forceUpdate","activeIndex","setActiveIndex","isFullscreen","setIsFullscreen","registerItem","ref","existingIndex","item","x","handleNext","newIndex","handlePrev","createCustomEvent","action","_a","activeItem","event","toggleFullScreen","actions","handleClickAction"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/gallery/item/useGalleryItem.tsx","../../../../primereact/src/gallery/Gallery.tsx","../../../../primereact/src/base/index.ts","../../../../primereact/src/gallery/Gallery.context.ts","../../../../primereact/src/gallery/Gallery.props.ts","../../../../primereact/src/gallery/backdrop/GalleryBackdrop.tsx","../../../../primereact/src/gallery/backdrop/GalleryBackdrop.props.ts","../../../../primereact/src/gallery/content/GalleryContent.tsx","../../../../primereact/src/gallery/content/GalleryContent.props.ts","../../../../primereact/src/gallery/item/GalleryItem.tsx","../../../../primereact/src/gallery/item/GalleryItem.context.ts","../../../../primereact/src/gallery/item/GalleryItem.props.ts","../../../../primereact/src/gallery/next/GalleryNext.tsx","../../../../primereact/src/gallery/next/GalleryNext.props.ts","../../../../primereact/src/gallery/prev/GalleryPrev.tsx","../../../../primereact/src/gallery/prev/GalleryPrev.props.ts","../../../../primereact/src/gallery/thumbnail/GalleryThumbnail.tsx","../../../../primereact/src/carousel/Carousel.tsx","../../../../primereact/src/carousel/Carousel.context.ts","../../../../primereact/src/carousel/Carousel.props.ts","../../../../primereact/src/carousel/content/CarouselContent.tsx","../../../../primereact/src/carousel/content/CarouselContent.props.ts","../../../../primereact/src/carousel/indicator/CarouselIndicator.tsx","../../../../primereact/src/carousel/indicator/CarouselIndicator.props.ts","../../../../primereact/src/carousel/indicators/CarouselIndicators.tsx","../../../../primereact/src/carousel/indicators/CarouselIndicators.props.ts","../../../../primereact/src/carousel/item/CarouselItem.tsx","../../../../primereact/src/carousel/item/CarouselItem.props.ts","../../../../primereact/src/carousel/next/CarouselNext.tsx","../../../../primereact/src/carousel/next/CarouselNext.props.ts","../../../../primereact/src/carousel/prev/CarouselPrev.tsx","../../../../primereact/src/carousel/prev/CarouselPrev.props.ts","../../../../primereact/src/gallery/thumbnail/GalleryThumbnail.props.ts","../../../../primereact/src/gallery/thumbnailcontent/GalleryThumbnailContent.tsx","../../../../primereact/src/gallery/thumbnailcontent/GalleryThumbnailContent.props.ts","../../../../primereact/src/gallery/thumbnailitem/GalleryThumbnailItem.tsx","../../../../primereact/src/gallery/thumbnailitem/GalleryThumbnailItem.props.ts","../../../../primereact/src/gallery/toolbar/GalleryToolbar.tsx","../../../../primereact/src/gallery/toolbar/GalleryToolbar.props.ts","../../../../primereact/src/gallery/toolbaritem/GalleryToolbarItem.tsx","../../../../primereact/src/gallery/toolbaritem/GalleryToolbarItem.props.ts","../../../src/gallery/item/useGalleryItem.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { useGalleryContext } from 'primereact/gallery';\nimport * as React from 'react';\nimport { defaultItemProps } from './useGalleryItem.props';\n\nexport const useGalleryItem = withHeadless({\n name: 'useGalleryItem',\n defaultProps: defaultItemProps,\n setup: ({ props, elementRef }) => {\n const { normalScale = 1, zoomedScale = 3 } = props;\n\n const gallery = useGalleryContext();\n const [index, setIndex] = React.useState(-1);\n const [isActive, setIsActive] = React.useState(false);\n const [position, setPosition] = React.useState({ x: 0, y: 0 });\n const [scale, setScale] = React.useState(1);\n const [rotation, setRotation] = React.useState(0);\n const [flip, setFlip] = React.useState({ x: 1, y: 1 });\n\n const [isDragging, setIsDragging] = React.useState(false);\n const [dragStart, setDragStart] = React.useState({ x: 0, y: 0 });\n const [hasDragged, setHasDragged] = React.useState(false);\n\n const pointerDataRef = React.useRef<Map<number, { x: number; y: number }>>(new Map());\n const lastDistanceRef = React.useRef(0);\n\n const calculateItemSize = React.useCallback(() => {\n if (!gallery?.contentRef.current || !elementRef.current) return;\n\n const contentRect = gallery?.contentRef.current.getBoundingClientRect();\n\n const imageElement = elementRef.current.firstElementChild as HTMLImageElement;\n\n if (!imageElement) return;\n\n let naturalWidth = imageElement.naturalWidth || imageElement.offsetWidth;\n let naturalHeight = imageElement.naturalHeight || imageElement.offsetHeight;\n\n if (naturalWidth === 0 || naturalHeight === 0) return;\n\n const isRotated = Math.abs(rotation) % 180 === 90;\n\n if (isRotated) {\n [naturalWidth, naturalHeight] = [naturalHeight, naturalWidth];\n }\n\n const naturalAspectRatio = naturalWidth / naturalHeight;\n const contentAspectRatio = contentRect.width / contentRect.height;\n\n let targetWidth, targetHeight;\n\n if (naturalAspectRatio > contentAspectRatio) {\n targetWidth = Math.min(contentRect.width * 0.99, naturalWidth);\n targetHeight = targetWidth / naturalAspectRatio;\n } else {\n targetHeight = Math.min(contentRect.height * 0.99, naturalHeight);\n targetWidth = targetHeight * naturalAspectRatio;\n }\n\n if (isRotated) {\n imageElement.style.width = `${targetHeight}px`;\n imageElement.style.height = `${targetWidth}px`;\n elementRef.current.style.width = `${targetHeight > 0 ? targetHeight : 'auto'}px`;\n elementRef.current.style.height = `${targetWidth > 0 ? targetWidth : 'auto'}px`;\n } else {\n imageElement.style.width = `${targetWidth}px`;\n imageElement.style.height = `${targetHeight}px`;\n elementRef.current.style.width = `${targetWidth > 0 ? targetWidth : 'auto'}px`;\n elementRef.current.style.height = `${targetHeight > 0 ? targetHeight : 'auto'}px`;\n }\n\n elementRef.current.style.aspectRatio = `${naturalWidth / naturalHeight}`;\n }, [gallery?.contentRef, rotation]);\n\n const calculateConstraints = React.useCallback(\n (targetScale?: number) => {\n if (!gallery?.contentRef.current || !elementRef.current) return { minX: 0, maxX: 0, minY: 0, maxY: 0 };\n\n const contentRect = gallery?.contentRef.current.getBoundingClientRect();\n const scaleToUse = targetScale !== undefined ? targetScale : scale;\n\n const itemElement = elementRef.current.firstElementChild as HTMLElement;\n\n if (!itemElement) return { minX: 0, maxX: 0, minY: 0, maxY: 0 };\n\n let originalWidth = itemElement.offsetWidth;\n let originalHeight = itemElement.offsetHeight;\n\n const isRotated = Math.abs(rotation) % 180 === 90;\n\n if (isRotated) {\n [originalWidth, originalHeight] = [originalHeight, originalWidth];\n }\n\n const scaledWidth = originalWidth * scaleToUse;\n const scaledHeight = originalHeight * scaleToUse;\n\n const contentCenterX = contentRect.width / 2;\n const contentCenterY = contentRect.height / 2;\n\n const halfScaledWidth = scaledWidth / 2;\n const halfScaledHeight = scaledHeight / 2;\n\n const maxX = halfScaledWidth > contentCenterX ? halfScaledWidth - contentCenterX : 0;\n const minX = halfScaledWidth > contentCenterX ? -(halfScaledWidth - contentCenterX) : 0;\n\n const maxY = halfScaledHeight > contentCenterY ? halfScaledHeight - contentCenterY : 0;\n const minY = halfScaledHeight > contentCenterY ? -(halfScaledHeight - contentCenterY) : 0;\n\n return { minX, maxX, minY, maxY };\n },\n [gallery?.contentRef, scale, rotation]\n );\n\n const zoomIn = React.useCallback(() => {\n setScale(zoomedScale);\n\n const hiddenStyles = {\n visibility: 'hidden',\n opacity: 0,\n pointerEvents: 'none',\n userSelect: 'none',\n touchAction: 'none'\n };\n\n if (gallery?.toolbarRef.current) {\n Object.assign(gallery?.toolbarRef.current.style, hiddenStyles);\n }\n\n if (gallery?.thumbnailRef.current) {\n // @ts-expect-error - thumbnailRef may not have elementRef property\n Object.assign(gallery?.thumbnailRef.current.elementRef.current.style, hiddenStyles);\n }\n\n if (gallery?.prevRef.current) {\n Object.assign(gallery.prevRef.current.style, hiddenStyles);\n }\n\n if (gallery?.nextRef.current) {\n Object.assign(gallery.nextRef.current.style, hiddenStyles);\n }\n\n if (elementRef.current) {\n elementRef.current.style.cursor = 'zoom-out';\n elementRef.current.style.pointerEvents = 'auto';\n }\n }, [zoomedScale, gallery?.toolbarRef, gallery?.thumbnailRef, gallery?.prevRef, gallery?.nextRef]);\n\n const zoomOut = React.useCallback(() => {\n setScale(normalScale);\n setPosition({ x: 0, y: 0 });\n\n const resetStyles = {\n visibility: '',\n opacity: '',\n pointerEvents: '',\n userSelect: '',\n touchAction: ''\n };\n\n if (gallery?.toolbarRef.current) {\n Object.assign(gallery.toolbarRef.current.style, resetStyles);\n }\n\n if (gallery?.thumbnailRef.current) {\n // @ts-expect-error - thumbnailRef may not have elementRef property\n Object.assign(gallery.thumbnailRef.current.elementRef.current.style, resetStyles);\n }\n\n if (gallery?.prevRef.current) {\n Object.assign(gallery.prevRef.current.style, resetStyles);\n }\n\n if (gallery?.nextRef.current) {\n Object.assign(gallery.nextRef.current.style, resetStyles);\n }\n\n if (elementRef.current) {\n elementRef.current.style.cursor = 'zoom-in';\n elementRef.current.style.pointerEvents = 'auto';\n }\n }, [normalScale, gallery?.toolbarRef, gallery?.thumbnailRef, gallery?.prevRef, gallery?.nextRef]);\n\n const rotateLeft = () => {\n if (!elementRef.current) return;\n\n elementRef.current.style.transition = 'none';\n setRotation((prev) => prev - 90);\n setTimeout(() => {\n if (elementRef.current) {\n elementRef.current.style.transition = '';\n }\n }, 0);\n };\n\n const rotateRight = () => {\n if (!elementRef.current) return;\n\n elementRef.current.style.transition = 'none';\n setRotation((prev) => prev + 90);\n setTimeout(() => {\n if (elementRef.current) {\n elementRef.current.style.transition = '';\n }\n }, 0);\n };\n\n const flipX = () => {\n setFlip((prev) => ({ ...prev, x: Math.sign(prev.x) * -1 }));\n };\n\n const flipY = () => {\n setFlip((prev) => ({ ...prev, y: Math.sign(prev.y) * -1 }));\n };\n\n const download = () => {\n if (!elementRef.current) return;\n\n const imageElement = elementRef.current.querySelector('img') as HTMLImageElement;\n\n if (!imageElement || !imageElement.src) return;\n\n const link = document.createElement('a');\n\n link.href = imageElement.src;\n\n const urlParts = imageElement.src.split('/');\n const filename = urlParts[urlParts.length - 1] || 'image.jpg';\n\n link.download = filename;\n link.target = '_blank';\n\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n };\n\n const handleClick = React.useCallback(\n (e: React.MouseEvent) => {\n if (hasDragged) {\n setHasDragged(false);\n\n return;\n }\n\n if (scale === normalScale) {\n if (elementRef.current) {\n const itemRect = elementRef.current.getBoundingClientRect();\n\n const itemCenterX = itemRect.width / 2;\n const itemCenterY = itemRect.height / 2;\n\n const clickX = e.clientX - itemRect.left;\n const clickY = e.clientY - itemRect.top;\n\n const offsetX = itemCenterX - clickX;\n const offsetY = itemCenterY - clickY;\n\n const zoomOffsetX = offsetX * (zoomedScale - 1);\n const zoomOffsetY = offsetY * (zoomedScale - 1);\n\n const constraints = calculateConstraints(zoomedScale);\n const constrainedX = Math.max(constraints.minX, Math.min(constraints.maxX, zoomOffsetX));\n const constrainedY = Math.max(constraints.minY, Math.min(constraints.maxY, zoomOffsetY));\n\n setPosition({ x: constrainedX, y: constrainedY });\n }\n\n zoomIn();\n } else {\n zoomOut();\n }\n },\n [hasDragged, normalScale, zoomedScale, calculateConstraints, scale, zoomIn, zoomOut]\n );\n const handleDragStart = React.useCallback((e: React.DragEvent<HTMLDivElement>) => {\n e.preventDefault();\n }, []);\n\n const handlePointerDown = React.useCallback(\n (e: React.PointerEvent) => {\n e.currentTarget.setPointerCapture(e.pointerId);\n pointerDataRef.current.set(e.pointerId, { x: e.clientX, y: e.clientY });\n\n if (scale > 1) {\n if (e.pointerType === 'mouse') {\n setIsDragging(true);\n setDragStart({ x: e.clientX - position.x, y: e.clientY - position.y });\n setHasDragged(false);\n } else if (e.pointerType === 'touch' && pointerDataRef.current.size === 1) {\n setIsDragging(true);\n setDragStart({ x: e.clientX - position.x, y: e.clientY - position.y });\n setHasDragged(false);\n lastDistanceRef.current = 0;\n }\n }\n\n if (e.pointerType === 'touch' && pointerDataRef.current.size === 1) {\n lastDistanceRef.current = 0;\n }\n },\n [scale, position]\n );\n\n const handlePointerMove = React.useCallback(\n (e: React.PointerEvent) => {\n if (!pointerDataRef.current.has(e.pointerId) || !elementRef.current) return;\n\n elementRef.current.style.transition = 'none';\n\n // Preserve cursor during move\n const currentCursor = elementRef.current.style.cursor;\n\n if (!currentCursor) {\n elementRef.current.style.cursor = scale > normalScale ? 'zoom-out' : 'zoom-in';\n }\n\n pointerDataRef.current.set(e.pointerId, { x: e.clientX, y: e.clientY });\n\n const pointers = Array.from(pointerDataRef.current.values());\n\n if (pointers.length === 2) {\n const [p1, p2] = pointers;\n const distance = Math.hypot(p2.x - p1.x, p2.y - p1.y);\n\n if (lastDistanceRef.current > 0) {\n const delta = (distance - lastDistanceRef.current) * 0.01;\n\n if (Math.abs(delta) > 0.01) {\n const newScale = scale === normalScale ? zoomedScale : normalScale;\n\n const constraints = calculateConstraints(newScale);\n const constrainedX = Math.max(constraints.minX, Math.min(constraints.maxX, position.x));\n const constrainedY = Math.max(constraints.minY, Math.min(constraints.maxY, position.y));\n\n setPosition({ x: constrainedX, y: constrainedY });\n\n setScale(newScale);\n }\n }\n\n lastDistanceRef.current = distance;\n } else if (pointers.length === 1 && isDragging) {\n const pointer = pointers[0];\n const newX = pointer.x - dragStart.x;\n const newY = pointer.y - dragStart.y;\n const constraints = calculateConstraints();\n\n const computedX = Math.max(constraints.minX, Math.min(constraints.maxX, newX));\n const computedY = Math.max(constraints.minY, Math.min(constraints.maxY, newY));\n\n setPosition({\n x: computedX,\n y: computedY\n });\n setHasDragged(true);\n }\n },\n [isDragging, dragStart, scale, normalScale, zoomedScale, position, calculateConstraints]\n );\n\n const handlePointerUp = React.useCallback((e: React.PointerEvent) => {\n if (!elementRef.current) return;\n\n elementRef.current.style.transition = '';\n // Restore proper cursor after interaction\n elementRef.current.style.cursor = scale > normalScale ? 'zoom-out' : 'zoom-in';\n e.currentTarget.releasePointerCapture(e.pointerId);\n pointerDataRef.current.delete(e.pointerId);\n\n if (pointerDataRef.current.size < 2) lastDistanceRef.current = 0;\n\n if (pointerDataRef.current.size === 0) {\n setIsDragging(false);\n }\n }, []);\n\n React.useEffect(() => {\n if (scale <= 1) {\n setPosition({ x: 0, y: 0 });\n }\n }, [scale]);\n\n React.useEffect(() => {\n if (gallery?.state.activeIndex === index && document.readyState === 'complete') {\n calculateItemSize();\n }\n }, [gallery?.state.activeIndex, index, calculateItemSize]);\n\n React.useEffect(() => {\n if (gallery?.state.activeIndex === index) {\n calculateItemSize();\n }\n }, [rotation, calculateItemSize, gallery?.state.activeIndex, index]);\n\n React.useEffect(() => {\n if (gallery?.state.activeIndex === index && gallery?.state.isFullscreen !== undefined) {\n calculateItemSize();\n }\n }, [gallery?.state.isFullscreen, calculateItemSize, gallery?.state.activeIndex, index]);\n\n React.useEffect(() => {\n const handleResize = () => {\n if (gallery?.state.activeIndex === index) {\n calculateItemSize();\n }\n };\n\n window.addEventListener('resize', handleResize);\n\n return () => window.removeEventListener('resize', handleResize);\n }, [gallery?.state.activeIndex, index, calculateItemSize]);\n\n React.useEffect(() => {\n if (gallery && elementRef.current) {\n const index = gallery.registerItem(elementRef.current as HTMLDivElement);\n\n setIndex(index);\n }\n }, [gallery]);\n\n React.useEffect(() => {\n const handleCustomEvent = (e: CustomEvent) => {\n if (e.detail?.action === 'zoom-in') {\n zoomIn();\n } else if (e.detail?.action === 'zoom-out') {\n zoomOut();\n } else if (e.detail?.action === 'rotate-left') {\n rotateLeft();\n } else if (e.detail?.action === 'rotate-right') {\n rotateRight();\n } else if (e.detail?.action === 'flip-x') {\n flipX();\n } else if (e.detail?.action === 'flip-y') {\n flipY();\n } else if (e.detail?.action === 'download') {\n download();\n }\n };\n\n const itemElement = elementRef.current;\n\n if (itemElement) {\n itemElement.addEventListener('gallery-zoom-in', handleCustomEvent as EventListener);\n itemElement.addEventListener('gallery-zoom-out', handleCustomEvent as EventListener);\n itemElement.addEventListener('gallery-rotate-left', handleCustomEvent as EventListener);\n itemElement.addEventListener('gallery-rotate-right', handleCustomEvent as EventListener);\n itemElement.addEventListener('gallery-flip-x', handleCustomEvent as EventListener);\n itemElement.addEventListener('gallery-flip-y', handleCustomEvent as EventListener);\n itemElement.addEventListener('gallery-download', handleCustomEvent as EventListener);\n }\n\n return () => {\n if (itemElement) {\n itemElement.removeEventListener('gallery-zoom-in', handleCustomEvent as EventListener);\n itemElement.removeEventListener('gallery-zoom-out', handleCustomEvent as EventListener);\n itemElement.removeEventListener('gallery-rotate-left', handleCustomEvent as EventListener);\n itemElement.removeEventListener('gallery-rotate-right', handleCustomEvent as EventListener);\n itemElement.removeEventListener('gallery-flip-x', handleCustomEvent as EventListener);\n itemElement.removeEventListener('gallery-flip-y', handleCustomEvent as EventListener);\n itemElement.removeEventListener('gallery-download', handleCustomEvent as EventListener);\n }\n };\n }, [normalScale, zoomedScale]);\n\n React.useEffect(() => {\n if (gallery?.state.activeIndex === index) {\n setIsActive(true);\n } else {\n setIsActive(false);\n }\n }, [gallery?.state.activeIndex, index]);\n\n const attributes = React.useMemo(() => {\n return {\n 'data-active': isActive\n };\n }, [isActive]);\n\n const CSSVariables = React.useMemo(() => {\n return {\n '--position-x': `${position.x}px`,\n '--position-y': `${position.y}px`,\n '--scale': `${scale}`,\n '--rotation': `${rotation}deg`,\n '--flip-x': flip.x,\n '--flip-y': flip.y\n } as React.CSSProperties;\n }, [position, scale, rotation, flip]);\n\n const state = {\n index,\n position,\n scale,\n rotation,\n flip,\n isActive,\n dragStart,\n hasDragged\n };\n\n return {\n state,\n attributes,\n CSSVariables,\n handlePointerUp,\n handlePointerMove,\n handlePointerDown,\n handleClick,\n handleDragStart,\n zoomIn,\n zoomOut,\n rotateLeft,\n rotateRight,\n flipX,\n flipY,\n download,\n calculateConstraints,\n calculateItemSize\n };\n }\n});\n","'use client';\nimport { Component } from '@primereact/core/component';\nimport { useGallery } from '@primereact/headless/gallery';\nimport { styles } from '@primereact/styles/gallery';\nimport { mergeProps } from '@primeuix/utils';\nimport { withComponent } from 'primereact/base';\nimport * as React from 'react';\nimport { GalleryProvider } from './Gallery.context';\nimport { defaultProps } from './Gallery.props';\nimport { GalleryBackdrop } from './backdrop/GalleryBackdrop';\nimport { GalleryContent } from './content/GalleryContent';\nimport { GalleryItem } from './item/GalleryItem';\nimport { GalleryNext } from './next/GalleryNext';\nimport { GalleryPrev } from './prev/GalleryPrev';\nimport { GalleryThumbnail } from './thumbnail/GalleryThumbnail';\nimport { GalleryThumbnailContent } from './thumbnailcontent/GalleryThumbnailContent';\nimport { GalleryThumbnailItem } from './thumbnailitem/GalleryThumbnailItem';\nimport { GalleryToolbar } from './toolbar/GalleryToolbar';\nimport { GalleryToolbarItem } from './toolbaritem/GalleryToolbarItem';\n\nexport const Gallery = withComponent({\n name: 'Gallery',\n defaultProps,\n styles,\n setup(instance) {\n const gallery = useGallery(instance.inProps);\n\n return gallery;\n },\n render(instance) {\n const { id, props, ptmi, cx } = instance;\n\n const rootProps = mergeProps(\n {\n id,\n className: cx('root')\n },\n ptmi('root')\n );\n\n return (\n <GalleryProvider value={instance}>\n <Component instance={instance} attrs={rootProps} children={props.children} />\n </GalleryProvider>\n );\n },\n components: {\n Backdrop: GalleryBackdrop,\n Content: GalleryContent,\n Item: GalleryItem,\n Next: GalleryNext,\n Prev: GalleryPrev,\n Toolbar: GalleryToolbar,\n ToolbarItem: GalleryToolbarItem,\n Thumbnail: GalleryThumbnail,\n ThumbnailContent: GalleryThumbnailContent,\n ThumbnailItem: GalleryThumbnailItem\n }\n});\n","import { withComponent as withComponentInCore } from '@primereact/core/component';\nimport { styles as baseStyles } from '@primereact/styles/base';\nimport type { withComponentOptions } from '@primereact/types/core';\nimport type { StylesOptions } from '@primereact/types/styles';\n\nexport const withComponent = <IProps, DProps, Exposes extends Record<PropertyKey, unknown> = Record<PropertyKey, unknown>, Styles = StylesOptions, CData = Record<string, unknown>>({\n name = 'UnknownComponent',\n defaultProps,\n styles = {\n ...baseStyles,\n name: 'global'\n } as Styles,\n components,\n setup,\n render\n}: withComponentOptions<IProps, DProps, Exposes, Styles, CData>) => {\n return withComponentInCore<IProps, DProps, Exposes, Styles, CData>({\n name,\n defaultProps,\n styles,\n components,\n setup,\n render\n });\n};\n","import { createOptionalContext } from '@primereact/core/utils';\nimport type { GalleryInstance } from '@primereact/types/shared/gallery';\n\nexport const [GalleryProvider, useGalleryContext] = createOptionalContext<GalleryInstance>();\n","import * as HeadlessGallery from '@primereact/headless/gallery';\nimport type { GalleryProps } from '@primereact/types/shared/gallery';\n\nexport const defaultProps: GalleryProps = {\n ...HeadlessGallery.defaultProps,\n as: 'div'\n};\n","'use client';\nimport { Component } from '@primereact/core/component';\nimport { mergeProps } from '@primeuix/utils';\nimport { withComponent } from 'primereact/base';\nimport * as React from 'react';\nimport { useGalleryContext } from '../Gallery.context';\nimport { defaultCloseProps } from './GalleryBackdrop.props';\n\nexport const GalleryBackdrop = withComponent({\n name: 'GalleryBackdrop',\n defaultProps: defaultCloseProps,\n setup() {\n const gallery = useGalleryContext();\n\n return { gallery };\n },\n render(instance) {\n const { props, ptmi, gallery } = instance;\n\n const rootProps = mergeProps(\n {\n className: gallery?.cx('backdrop')\n },\n ptmi('root')\n );\n\n return <Component instance={instance} attrs={rootProps} children={props.children} />;\n }\n});\n","import { GalleryBackdropProps } from '@primereact/types/shared/gallery';\n\nexport const defaultCloseProps: GalleryBackdropProps = {\n as: 'div'\n};\n","'use client';\nimport { Component } from '@primereact/core/component';\nimport { mergeProps } from '@primeuix/utils';\nimport { withComponent } from 'primereact/base';\nimport * as React from 'react';\nimport { useGalleryContext } from '../Gallery.context';\nimport { defaultContentProps } from './GalleryContent.props';\n\nexport const GalleryContent = withComponent({\n name: 'GalleryContent',\n defaultProps: defaultContentProps,\n setup() {\n const gallery = useGalleryContext();\n\n return { gallery };\n },\n render(instance) {\n const { props, ptmi, gallery } = instance;\n\n const rootProps = mergeProps(\n {\n className: gallery?.cx('content')\n },\n ptmi('root')\n );\n\n return <Component instance={instance} attrs={rootProps} children={props.children} ref={gallery?.contentRef} />;\n }\n});\n","import { GalleryContentProps } from '@primereact/types/shared/gallery';\n\nexport const defaultContentProps: GalleryContentProps = {\n as: 'div'\n};\n","'use client';\nimport { Component } from '@primereact/core/component';\nimport { useGalleryItem } from '@primereact/headless/gallery/item';\nimport { mergeProps } from '@primeuix/utils';\nimport { withComponent } from 'primereact/base';\nimport * as React from 'react';\nimport { useGalleryContext } from '../Gallery.context';\nimport { GalleryItemProvider } from './GalleryItem.context';\nimport { defaultProps } from './GalleryItem.props';\n\nexport const GalleryItem = withComponent({\n name: 'GalleryItem',\n defaultProps,\n setup(instance) {\n const gallery = useGalleryContext();\n const galleryItem = useGalleryItem(instance.inProps);\n\n return { ...galleryItem, gallery };\n },\n render(instance) {\n const { id, props, ptmi, gallery, handleClick, handlePointerDown, handlePointerMove, handlePointerUp, handleDragStart, CSSVariables, attributes } = instance;\n\n const rootProps = mergeProps(\n {\n id,\n className: gallery?.cx('item'),\n onClick: handleClick,\n onPointerDown: handlePointerDown,\n onPointerMove: handlePointerMove,\n onPointerUp: handlePointerUp,\n onDragStart: handleDragStart,\n style: CSSVariables,\n ...attributes\n },\n ptmi('root'),\n gallery?.ptm('item')\n );\n\n return (\n <GalleryItemProvider value={instance}>\n <Component instance={instance} attrs={rootProps} children={props.children} />\n </GalleryItemProvider>\n );\n }\n});\n","import { createOptionalContext } from '@primereact/core/utils';\nimport type { GalleryItemInstance } from '@primereact/types/shared/gallery';\n\nexport const [GalleryItemProvider, useGalleryItemContext] = createOptionalContext<GalleryItemInstance>();\n","import * as HeadlessGallery from '@primereact/headless/gallery';\nimport type { GalleryItemProps } from '@primereact/types/shared/gallery';\n\nexport const defaultProps: GalleryItemProps = {\n ...HeadlessGallery.defaultProps,\n as: 'div'\n};\n","'use client';\nimport { Component } from '@primereact/core/component';\nimport { mergeProps } from '@primeuix/utils';\nimport { withComponent } from 'primereact/base';\nimport * as React from 'react';\nimport { useGalleryContext } from '../Gallery.context';\nimport { defaultNextProps } from './GalleryNext.props';\n\nexport const GalleryNext = withComponent({\n name: 'GalleryNext',\n defaultProps: defaultNextProps,\n setup() {\n const gallery = useGalleryContext();\n\n return { gallery };\n },\n render(instance) {\n const { props, ptmi, gallery } = instance;\n\n const rootProps = mergeProps(\n {\n className: gallery?.cx('next'),\n onClick: gallery?.actions?.next\n },\n ptmi('root')\n );\n\n return <Component instance={instance} attrs={rootProps} children={props.children} ref={gallery?.nextRef} />;\n }\n});\n","import { GalleryNextProps } from '@primereact/types/shared/gallery';\n\nexport const defaultNextProps: GalleryNextProps = {\n as: 'button'\n};\n","'use client';\nimport { Component } from '@primereact/core/component';\nimport { mergeProps } from '@primeuix/utils';\nimport { withComponent } from 'primereact/base';\nimport * as React from 'react';\nimport { useGalleryContext } from '../Gallery.context';\nimport { defaultPrevProps } from './GalleryPrev.props';\n\nexport const GalleryPrev = withComponent({\n name: 'GalleryPrev',\n defaultProps: defaultPrevProps,\n setup() {\n const gallery = useGalleryContext();\n\n return { gallery };\n },\n render(instance) {\n const { props, ptmi, gallery } = instance;\n\n const rootProps = mergeProps(\n {\n className: gallery?.cx('prev'),\n onClick: gallery?.actions?.prev\n },\n ptmi('root')\n );\n\n return <Component instance={instance} attrs={rootProps} children={props.children} ref={gallery?.prevRef} />;\n }\n});\n","import { GalleryPrevProps } from '@primereact/types/shared/gallery';\n\nexport const defaultPrevProps: GalleryPrevProps = {\n as: 'button'\n};\n","'use client';\nimport { Component } from '@primereact/core/component';\nimport { mergeProps } from '@primeuix/utils';\nimport { withComponent } from 'primereact/base';\nimport { Carousel } from 'primereact/carousel';\nimport * as React from 'react';\nimport { useGalleryContext } from '../Gallery.context';\nimport { defaultThumbnailProps } from './GalleryThumbnail.props';\n\nexport const GalleryThumbnail = withComponent({\n name: 'GalleryThumbnail',\n defaultProps: defaultThumbnailProps,\n setup() {\n const gallery = useGalleryContext();\n\n return { gallery };\n },\n render(instance) {\n const { props, ptmi, gallery } = instance;\n\n const rootProps = mergeProps(\n {\n className: gallery?.cx('thumbnail')\n },\n ptmi('root')\n );\n\n return <Component as={Carousel} instance={instance} attrs={rootProps} children={props.children} ref={gallery?.thumbnailRef} />;\n }\n});\n","'use client';\nimport { Component } from '@primereact/core/component';\nimport { useCarousel } from '@primereact/headless/carousel';\nimport { styles } from '@primereact/styles/carousel';\nimport { mergeProps } from '@primeuix/utils';\nimport { withComponent } from 'primereact/base';\nimport * as React from 'react';\nimport { CarouselProvider } from './Carousel.context';\nimport { defaultProps } from './Carousel.props';\nimport { CarouselContent } from './content';\nimport { CarouselIndicator } from './indicator';\nimport { CarouselIndicators } from './indicators';\nimport { CarouselItem } from './item';\nimport { CarouselNext } from './next';\nimport { CarouselPrev } from './prev';\n\nexport const Carousel = withComponent({\n name: 'Carousel',\n defaultProps,\n styles,\n setup(instance) {\n const carousel = useCarousel(instance.inProps);\n\n return carousel;\n },\n render(instance) {\n const { id, props, state, ptmi, cx } = instance;\n\n const rootProps = mergeProps(\n {\n id,\n className: cx('root'),\n 'data-swiping': state.swiping\n },\n ptmi('root')\n );\n\n return (\n <CarouselProvider value={instance}>\n <Component instance={instance} attrs={rootProps} children={props.children} />\n </CarouselProvider>\n );\n },\n components: {\n Content: CarouselContent,\n Item: CarouselItem,\n Next: CarouselNext,\n Prev: CarouselPrev,\n Indicators: CarouselIndicators,\n Indicator: CarouselIndicator\n }\n});\n","import { createOptionalContext } from '@primereact/core/utils';\nimport type { CarouselInstance } from '@primereact/types/shared/carousel';\n\nexport const [CarouselProvider, useCarouselContext] = createOptionalContext<CarouselInstance>();\n","import * as HeadlessCarousel from '@primereact/headless/carousel';\nimport type { CarouselProps } from '@primereact/types/shared/carousel';\n\nexport const defaultProps: CarouselProps = {\n ...HeadlessCarousel.defaultProps,\n as: 'div'\n};\n","'use client';\nimport { Component } from '@primereact/core/component';\nimport { mergeProps } from '@primeuix/utils';\nimport { withComponent } from 'primereact/base';\nimport * as React from 'react';\nimport { useCarouselContext } from '../Carousel.context';\nimport { defaultContentProps } from './CarouselContent.props';\n\nexport const CarouselContent = withComponent({\n name: 'CarouselContent',\n defaultProps: defaultContentProps,\n setup() {\n const carousel = useCarouselContext();\n\n return { carousel };\n },\n render(instance) {\n const { props, ptmi, carousel } = instance;\n\n const contentProps = mergeProps(\n {\n className: carousel?.cx('content'),\n style: { ...carousel?.contentStyles, ...carousel?.sx('content') },\n onPointerDown: carousel?.onContentPointerDown,\n onPointerMove: carousel?.onContentPointerMove,\n onPointerUp: carousel?.onContentPointerUp,\n onWheel: carousel?.onContentWheel\n },\n carousel?.ptm('content'),\n ptmi('root')\n );\n\n return <Component instance={instance} attrs={contentProps} children={props.children} ref={carousel?.contentRef} />;\n }\n});\n","import type { CarouselContentProps } from '@primereact/types/shared/carousel';\n\nexport const defaultContentProps: CarouselContentProps = {\n as: 'div'\n};\n","'use client';\nimport { Component } from '@primereact/core/component';\nimport { mergeProps } from '@primeuix/utils';\nimport { withComponent } from 'primereact/base';\nimport * as React from 'react';\nimport { useCarouselContext } from '../Carousel.context';\nimport { defaultIndicatorProps } from './CarouselIndicator.props';\n\nexport const CarouselIndicator = withComponent({\n name: 'CarouselIndicator',\n defaultProps: defaultIndicatorProps,\n setup() {\n const carousel = useCarouselContext();\n\n return { carousel };\n },\n render(instance) {\n const { props, ptmi, carousel } = instance;\n\n const isActive = carousel?.state.page === props.page;\n\n const contentProps = mergeProps(\n {\n className: carousel?.cx('indicator', { active: isActive }),\n onClick: () => carousel?.scrollToPage(props.page),\n 'data-active': isActive\n },\n carousel?.ptm('indicator'),\n ptmi('root')\n );\n\n return <Component instance={instance} attrs={contentProps} children={props.children} />;\n }\n});\n","import type { CarouselIndicatorProps } from '@primereact/types/shared/carousel';\n\nexport const defaultIndicatorProps: CarouselIndicatorProps = {\n as: 'button',\n page: undefined\n};\n","'use client';\nimport { Component } from '@primereact/core/component';\nimport { mergeProps } from '@primeuix/utils';\nimport { withComponent } from 'primereact/base';\nimport * as React from 'react';\nimport { useCarouselContext } from '../Carousel.context';\nimport { CarouselIndicator } from '../indicator/CarouselIndicator';\nimport { defaultIndicatorsProps } from './CarouselIndicators.props';\n\nexport const CarouselIndicators = withComponent({\n name: 'CarouselIndicators',\n defaultProps: defaultIndicatorsProps,\n setup() {\n const carousel = useCarouselContext();\n\n return { carousel };\n },\n render(instance) {\n const { props, ptmi, carousel } = instance;\n\n const contentProps = mergeProps(\n {\n className: carousel?.cx('indicators')\n },\n carousel?.ptm('indicators'),\n ptmi('root')\n );\n\n return (\n <Component\n instance={instance}\n attrs={contentProps}\n children={\n props.children ?? (\n <>\n {Array.from(carousel?.state.snapPoints ?? []).map((_, i) => (\n <CarouselIndicator key={i} page={i} />\n ))}\n </>\n )\n }\n />\n );\n }\n});\n","import type { CarouselIndicatorsProps } from '@primereact/types/shared/carousel';\n\nexport const defaultIndicatorsProps: CarouselIndicatorsProps = {\n as: 'div'\n};\n","'use client';\nimport { Component } from '@primereact/core/component';\nimport { mergeProps } from '@primeuix/utils';\nimport { withComponent } from 'primereact/base';\nimport * as React from 'react';\nimport { useCarouselContext } from '../Carousel.context';\nimport { defaultItemProps } from './CarouselItem.props';\n\nexport const CarouselItem = withComponent({\n name: 'CarouselItem',\n defaultProps: defaultItemProps,\n setup() {\n const carousel = useCarouselContext();\n\n return { carousel };\n },\n render(instance) {\n const { id, props, ptmi, carousel } = instance;\n\n const rootProps = mergeProps(\n {\n id,\n className: carousel?.cx('item'),\n style: {\n ...(carousel?.itemStyles || {}),\n ...(carousel?.sx('item') || {})\n },\n 'data-value': props.value,\n 'data-item': '',\n 'data-inview': 'false'\n },\n carousel?.ptm('item'),\n ptmi('root')\n );\n\n return <Component instance={instance} attrs={rootProps} children={props.children} />;\n }\n});\n","import type { CarouselItemProps } from '@primereact/types/shared/carousel';\n\nexport const defaultItemProps: CarouselItemProps = {\n as: 'div',\n value: undefined\n};\n","'use client';\nimport { Component } from '@primereact/core/component';\nimport { mergeProps } from '@primeuix/utils';\nimport { withComponent } from 'primereact/base';\nimport * as React from 'react';\nimport { useCarouselContext } from '../Carousel.context';\nimport { defaultNextProps } from './CarouselNext.props';\n\nexport const CarouselNext = withComponent({\n name: 'CarouselNext',\n defaultProps: defaultNextProps,\n setup() {\n const carousel = useCarouselContext();\n\n return { carousel };\n },\n render(instance) {\n const { props, ptmi, carousel } = instance;\n\n const disabled = carousel?.state.isNextDisabled || props.disabled;\n const rootProps = mergeProps(\n {\n className: carousel?.cx('next', { disabled }),\n onClick: carousel?.next,\n disabled\n },\n carousel?.ptm('prev'),\n ptmi('root')\n );\n\n return <Component instance={instance} attrs={rootProps} children={props.children} />;\n }\n});\n","import type { CarouselNextProps } from '@primereact/types/shared/carousel';\n\nexport const defaultNextProps: CarouselNextProps = {\n as: 'button'\n};\n","'use client';\nimport { Component } from '@primereact/core/component';\nimport { mergeProps } from '@primeuix/utils';\nimport { withComponent } from 'primereact/base';\nimport * as React from 'react';\nimport { useCarouselContext } from '../Carousel.context';\nimport { defaultPrevProps } from './CarouselPrev.props';\n\nexport const CarouselPrev = withComponent({\n name: 'CarouselPrev',\n defaultProps: defaultPrevProps,\n setup() {\n const carousel = useCarouselContext();\n\n return { carousel };\n },\n render(instance) {\n const { props, ptmi, carousel } = instance;\n\n const disabled = carousel?.state.isPrevDisabled || props.disabled;\n const rootProps = mergeProps(\n {\n className: carousel?.cx('prev', { disabled }),\n onClick: carousel?.prev,\n disabled\n },\n carousel?.ptm('prev'),\n ptmi('root')\n );\n\n return <Component instance={instance} attrs={rootProps} children={props.children} />;\n }\n});\n","import type { CarouselPrevProps } from '@primereact/types/shared/carousel';\n\nexport const defaultPrevProps: CarouselPrevProps = {\n as: 'button'\n};\n","import { GalleryThumbnailProps } from '@primereact/types/shared/gallery';\n\nexport const defaultThumbnailProps: GalleryThumbnailProps = {\n as: 'div'\n};\n","'use client';\nimport { Component } from '@primereact/core/component';\nimport { mergeProps } from '@primeuix/utils';\nimport { withComponent } from 'primereact/base';\nimport { Carousel } from 'primereact/carousel';\nimport * as React from 'react';\nimport { useGalleryContext } from '../Gallery.context';\nimport { defaultThumbnailContentProps } from './GalleryThumbnailContent.props';\n\nexport const GalleryThumbnailContent = withComponent({\n name: 'GalleryThumbnailContent',\n defaultProps: defaultThumbnailContentProps,\n setup() {\n const gallery = useGalleryContext();\n\n return { gallery };\n },\n render(instance) {\n const { props, ptmi, gallery } = instance;\n\n const rootProps = mergeProps(\n {\n className: gallery?.cx('thumbnailContent')\n },\n ptmi('root')\n );\n\n return <Component as={Carousel.Content} instance={instance} attrs={rootProps} children={props.children} />;\n }\n});\n","import { GalleryThumbnailContentProps } from '@primereact/types/shared/gallery';\n\nexport const defaultThumbnailContentProps: GalleryThumbnailContentProps = {};\n","'use client';\nimport { Component } from '@primereact/core/component';\nimport { mergeProps } from '@primeuix/utils';\nimport { withComponent } from 'primereact/base';\nimport { Carousel } from 'primereact/carousel';\nimport * as React from 'react';\nimport { useGalleryContext } from '../Gallery.context';\nimport { defaultThumbnailItemProps } from './GalleryThumbnailItem.props';\n\nexport const GalleryThumbnailItem = withComponent({\n name: 'GalleryThumbnailItem',\n defaultProps: defaultThumbnailItemProps,\n setup() {\n const gallery = useGalleryContext();\n\n return { gallery };\n },\n render(instance) {\n const { props, ptmi, gallery } = instance;\n\n const rootProps = mergeProps(\n {\n className: gallery?.cx('thumbnailItem')\n },\n ptmi('root')\n );\n\n return <Component as={Carousel.Item} instance={instance} attrs={rootProps} children={props.children} />;\n }\n});\n","import { GalleryThumbnailItemProps } from '@primereact/types/shared/gallery';\n\nexport const defaultThumbnailItemProps: GalleryThumbnailItemProps = {};\n","'use client';\nimport { Component } from '@primereact/core/component';\nimport { mergeProps } from '@primeuix/utils';\nimport { withComponent } from 'primereact/base';\nimport * as React from 'react';\nimport { useGalleryContext } from '../Gallery.context';\nimport { defaultToolbarProps } from './GalleryToolbar.props';\n\nexport const GalleryToolbar = withComponent({\n name: 'GalleryToolbar',\n defaultProps: defaultToolbarProps,\n setup() {\n const gallery = useGalleryContext();\n\n return { gallery };\n },\n render(instance) {\n const { props, ptmi, gallery } = instance;\n\n const rootProps = mergeProps(\n {\n className: gallery?.cx('toolbar')\n },\n ptmi('root')\n );\n\n return <Component instance={instance} attrs={rootProps} children={props.children} ref={gallery?.toolbarRef} />;\n }\n});\n","import { GalleryToolbarProps } from '@primereact/types/shared/gallery';\n\nexport const defaultToolbarProps: GalleryToolbarProps = {\n as: 'div'\n};\n","'use client';\nimport { Component } from '@primereact/core/component';\nimport { mergeProps } from '@primeuix/utils';\nimport { withComponent } from 'primereact/base';\nimport * as React from 'react';\nimport { useGalleryContext } from '../Gallery.context';\nimport { defaultToolbarItemProps } from './GalleryToolbarItem.props';\n\nexport const GalleryToolbarItem = withComponent({\n name: 'GalleryToolbarItem',\n defaultProps: defaultToolbarItemProps,\n setup() {\n const gallery = useGalleryContext();\n\n return { gallery };\n },\n render(instance) {\n const { props, ptmi, gallery } = instance;\n\n const rootProps = mergeProps(\n {\n className: gallery?.cx('toolbarItem'),\n onClick: () => {\n gallery?.handleClickAction(props?.action);\n props?.onClick?.();\n }\n },\n ptmi('root')\n );\n\n return <Component instance={instance} attrs={rootProps} children={props.children} />;\n }\n});\n","import { GalleryToolbarItemProps } from '@primereact/types/shared/gallery';\n\nexport const defaultToolbarItemProps: GalleryToolbarItemProps = {\n as: 'div',\n action: undefined,\n onClick: undefined\n};\n","import type { useGalleryItemProps } from '@primereact/types/shared/gallery';\n\nexport const defaultItemProps: useGalleryItemProps = {\n normalScale: 1,\n zoomedScale: 3\n};\n"],"mappings":"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","names":["withHeadless","Component","useGallery","styles","mergeProps","withComponentInCore","baseStyles","withComponent","name","defaultProps","styles","__spreadProps","__spreadValues","baseStyles","components","setup","render","withComponentInCore","React","createOptionalContext","GalleryProvider","useGalleryContext","HeadlessGallery","defaultProps","__spreadProps","__spreadValues","Component","mergeProps","React","defaultCloseProps","GalleryBackdrop","withComponent","defaultCloseProps","useGalleryContext","instance","props","ptmi","gallery","rootProps","mergeProps","Component","Component","mergeProps","React","defaultContentProps","GalleryContent","withComponent","defaultContentProps","useGalleryContext","instance","props","ptmi","gallery","rootProps","mergeProps","Component","Component","useGalleryItem","mergeProps","React","createOptionalContext","GalleryItemProvider","useGalleryItemContext","HeadlessGallery","defaultProps","__spreadProps","__spreadValues","GalleryItem","withComponent","defaultProps","instance","gallery","useGalleryContext","galleryItem","useGalleryItem","__spreadProps","__spreadValues","id","props","ptmi","handleClick","handlePointerDown","handlePointerMove","handlePointerUp","handleDragStart","CSSVariables","attributes","rootProps","mergeProps","GalleryItemProvider","Component","Component","mergeProps","React","defaultNextProps","GalleryNext","withComponent","defaultNextProps","useGalleryContext","instance","_a","props","ptmi","gallery","rootProps","mergeProps","Component","Component","mergeProps","React","defaultPrevProps","GalleryPrev","withComponent","defaultPrevProps","useGalleryContext","instance","_a","props","ptmi","gallery","rootProps","mergeProps","Component","Component","mergeProps","Component","useCarousel","styles","mergeProps","React","createOptionalContext","CarouselProvider","useCarouselContext","HeadlessCarousel","defaultProps","__spreadProps","__spreadValues","Component","mergeProps","React","defaultContentProps","CarouselContent","withComponent","defaultContentProps","useCarouselContext","instance","props","ptmi","carousel","contentProps","mergeProps","__spreadValues","Component","Component","mergeProps","React","defaultIndicatorProps","CarouselIndicator","withComponent","defaultIndicatorProps","useCarouselContext","instance","props","ptmi","carousel","isActive","contentProps","mergeProps","Component","Component","mergeProps","React","defaultIndicatorsProps","CarouselIndicators","withComponent","defaultIndicatorsProps","useCarouselContext","instance","_a","_b","props","ptmi","carousel","contentProps","mergeProps","Component","_","i","CarouselIndicator","Component","mergeProps","React","defaultItemProps","CarouselItem","withComponent","defaultItemProps","useCarouselContext","instance","id","props","ptmi","carousel","rootProps","mergeProps","__spreadValues","Component","Component","mergeProps","React","defaultNextProps","CarouselNext","withComponent","defaultNextProps","useCarouselContext","instance","props","ptmi","carousel","disabled","rootProps","mergeProps","Component","Component","mergeProps","React","defaultPrevProps","CarouselPrev","withComponent","defaultPrevProps","useCarouselContext","instance","props","ptmi","carousel","disabled","rootProps","mergeProps","Component","Carousel","withComponent","defaultProps","styles","instance","useCarousel","id","props","state","ptmi","cx","rootProps","mergeProps","CarouselProvider","Component","CarouselContent","CarouselItem","CarouselNext","CarouselPrev","CarouselIndicators","CarouselIndicator","React","defaultThumbnailProps","GalleryThumbnail","withComponent","defaultThumbnailProps","useGalleryContext","instance","props","ptmi","gallery","rootProps","mergeProps","Component","Carousel","Component","mergeProps","React","defaultThumbnailContentProps","GalleryThumbnailContent","withComponent","defaultThumbnailContentProps","useGalleryContext","instance","props","ptmi","gallery","rootProps","mergeProps","Component","Carousel","Component","mergeProps","React","defaultThumbnailItemProps","GalleryThumbnailItem","withComponent","defaultThumbnailItemProps","useGalleryContext","instance","props","ptmi","gallery","rootProps","mergeProps","Component","Carousel","Component","mergeProps","React","defaultToolbarProps","GalleryToolbar","withComponent","defaultToolbarProps","useGalleryContext","instance","props","ptmi","gallery","rootProps","mergeProps","Component","Component","mergeProps","React","defaultToolbarItemProps","GalleryToolbarItem","withComponent","defaultToolbarItemProps","useGalleryContext","instance","props","ptmi","gallery","rootProps","mergeProps","_a","Component","Gallery","withComponent","defaultProps","styles","instance","useGallery","id","props","ptmi","cx","rootProps","mergeProps","GalleryProvider","Component","GalleryBackdrop","GalleryContent","GalleryItem","GalleryNext","GalleryPrev","GalleryToolbar","GalleryToolbarItem","GalleryThumbnail","GalleryThumbnailContent","GalleryThumbnailItem","React","defaultItemProps","useGalleryItem","withHeadless","defaultItemProps","props","elementRef","normalScale","zoomedScale","gallery","useGalleryContext","index","setIndex","isActive","setIsActive","position","setPosition","scale","setScale","rotation","setRotation","flip","setFlip","isDragging","setIsDragging","dragStart","setDragStart","hasDragged","setHasDragged","pointerDataRef","lastDistanceRef","calculateItemSize","contentRect","imageElement","naturalWidth","naturalHeight","isRotated","naturalAspectRatio","contentAspectRatio","targetWidth","targetHeight","calculateConstraints","targetScale","scaleToUse","itemElement","originalWidth","originalHeight","scaledWidth","scaledHeight","contentCenterX","contentCenterY","halfScaledWidth","halfScaledHeight","maxX","minX","maxY","minY","zoomIn","hiddenStyles","zoomOut","resetStyles","rotateLeft","prev","rotateRight","flipX","__spreadProps","__spreadValues","flipY","download","link","urlParts","filename","handleClick","e","itemRect","itemCenterX","itemCenterY","clickX","clickY","offsetX","offsetY","zoomOffsetX","zoomOffsetY","constraints","constrainedX","constrainedY","handleDragStart","handlePointerDown","handlePointerMove","pointers","p1","p2","distance","delta","newScale","pointer","newX","newY","computedX","computedY","handlePointerUp","handleResize","handleCustomEvent","_a","_b","_c","_d","_e","_f","_g","attributes","CSSVariables"]}
File without changes
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/iconfield/useIconField.ts","../../src/iconfield/useIconField.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { defaultProps } from './useIconField.props';\n\nexport const useIconField = withHeadless({\n name: 'useIconField',\n defaultProps\n});\n","import type { useIconFieldProps } from '@primereact/types/shared/iconfield';\n\nexport const defaultProps: useIconFieldProps = {};\n"],"mappings":"AAAA,OAAS,gBAAAA,MAAoB,4BCEtB,IAAMC,EAAkC,CAAC,EDCzC,IAAMC,EAAeC,EAAa,CACrC,KAAM,eACN,aAAAC,CACJ,CAAC","names":["withHeadless","defaultProps","useIconField","withHeadless","defaultProps"]}
File without changes
@@ -1,2 +0,0 @@
1
- export * from './useImageCompare';
2
- export * from './useImageCompare.props';
@@ -1,2 +0,0 @@
1
- import{withHeadless as n}from"@primereact/core/headless";import{$dt as p}from"@primeuix/styled";import{setCSSProperty as i}from"@primeuix/utils";import*as e from"react";var o={};var C=n({name:"useImageCompare",defaultProps:o,setup:()=>{let[m,s]=e.useState("50"),t=e.useRef(null);return{state:{slideValue:m},onSlideChange:r=>{if(!t.current)return;let a=r.target.value;s(a),i(t.current,p("imagecompare.scope.x").name,`${a}%`)},registerRightImage:r=>{t.current=r}}}});export{o as defaultProps,C as useImageCompare};
2
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/imagecompare/useImageCompare.ts","../../src/imagecompare/useImageCompare.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { $dt } from '@primeuix/styled';\nimport { setCSSProperty } from '@primeuix/utils';\nimport * as React from 'react';\nimport { defaultProps } from './useImageCompare.props';\n\nexport const useImageCompare = withHeadless({\n name: 'useImageCompare',\n defaultProps,\n setup: () => {\n const [slideValueState, setSlideValueState] = React.useState<string | undefined>('50');\n const rightImageRef = React.useRef<HTMLImageElement>(null);\n\n const state = {\n slideValue: slideValueState\n };\n\n // methods\n const onSlideChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (!rightImageRef.current) return;\n\n const value = event.target.value;\n\n setSlideValueState(value);\n setCSSProperty(rightImageRef.current, $dt('imagecompare.scope.x').name, `${value}%`);\n };\n\n const registerRightImage = (element: HTMLImageElement) => {\n rightImageRef.current = element;\n };\n\n return {\n state,\n onSlideChange,\n registerRightImage\n };\n }\n});\n","import type { useImageCompareProps } from '@primereact/types/shared/imagecompare';\n\nexport const defaultProps: useImageCompareProps = {};\n"],"mappings":"AAAA,OAAS,gBAAAA,MAAoB,4BAC7B,OAAS,OAAAC,MAAW,mBACpB,OAAS,kBAAAC,MAAsB,kBAC/B,UAAYC,MAAW,QCDhB,IAAMC,EAAqC,CAAC,EDI5C,IAAMC,EAAkBC,EAAa,CACxC,KAAM,kBACN,aAAAC,EACA,MAAO,IAAM,CACT,GAAM,CAACC,EAAiBC,CAAkB,EAAU,WAA6B,IAAI,EAC/EC,EAAsB,SAAyB,IAAI,EAoBzD,MAAO,CACH,MAnBU,CACV,WAAYF,CAChB,EAkBI,cAfmBG,GAA+C,CAClE,GAAI,CAACD,EAAc,QAAS,OAE5B,IAAME,EAAQD,EAAM,OAAO,MAE3BF,EAAmBG,CAAK,EACxBC,EAAeH,EAAc,QAASI,EAAI,sBAAsB,EAAE,KAAM,GAAGF,CAAK,GAAG,CACvF,EASI,mBAPwBG,GAA8B,CACtDL,EAAc,QAAUK,CAC5B,CAMA,CACJ,CACJ,CAAC","names":["withHeadless","$dt","setCSSProperty","React","defaultProps","useImageCompare","withHeadless","defaultProps","slideValueState","setSlideValueState","rightImageRef","event","value","setCSSProperty","$dt","element"]}
@@ -1,8 +0,0 @@
1
- import * as React from 'react';
2
- export declare const useImageCompare: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/imagecompare").useImageCompareProps, unknown, {
3
- state: {
4
- slideValue: string | undefined;
5
- };
6
- onSlideChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
7
- registerRightImage: (element: HTMLImageElement) => void;
8
- }>;
@@ -1,2 +0,0 @@
1
- import type { useImageCompareProps } from '@primereact/types/shared/imagecompare';
2
- export declare const defaultProps: useImageCompareProps;
File without changes
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/inplace/useInplace.ts","../../src/inplace/useInplace.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport * as React from 'react';\nimport { defaultProps } from './useInplace.props';\n\nexport const useInplace = withHeadless({\n name: 'useInplace',\n defaultProps,\n setup: ({ props }) => {\n const [activeState, setActiveState] = React.useState<boolean | undefined>(props.active);\n\n const state = {\n active: activeState\n };\n\n // methods\n const open = () => setActiveState(true);\n const close = () => setActiveState(false);\n\n const onActiveChange = () => {\n props?.onActiveChange?.(state.active);\n };\n\n return {\n state,\n open,\n close,\n onActiveChange\n };\n }\n});\n","import type { useInplaceProps } from '@primereact/types/shared/inplace';\n\nexport const defaultProps: useInplaceProps = {\n active: false,\n onActiveChange: undefined\n};\n"],"mappings":"AAAA,OAAS,gBAAAA,MAAoB,4BAC7B,UAAYC,MAAW,QCChB,IAAMC,EAAgC,CACzC,OAAQ,GACR,eAAgB,MACpB,EDDO,IAAMC,EAAaC,EAAa,CACnC,KAAM,aACN,aAAAC,EACA,MAAO,CAAC,CAAE,MAAAC,CAAM,IAAM,CAClB,GAAM,CAACC,EAAaC,CAAc,EAAU,WAA8BF,EAAM,MAAM,EAEhFG,EAAQ,CACV,OAAQF,CACZ,EAUA,MAAO,CACH,MAAAE,EACA,KATS,IAAMD,EAAe,EAAI,EAUlC,MATU,IAAMA,EAAe,EAAK,EAUpC,eARmB,IAAM,CAlBrC,IAAAE,GAmBYA,EAAAJ,GAAA,YAAAA,EAAO,iBAAP,MAAAI,EAAA,KAAAJ,EAAwBG,EAAM,OAClC,CAOA,CACJ,CACJ,CAAC","names":["withHeadless","React","defaultProps","useInplace","withHeadless","defaultProps","props","activeState","setActiveState","state","_a"]}
File without changes
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/inputgroup/useInputGroup.ts","../../src/inputgroup/useInputGroup.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { defaultProps } from './useInputGroup.props';\n\nexport const useInputGroup = withHeadless({\n name: 'useInputGroup',\n defaultProps\n});\n","import type { useInputGroupProps } from '@primereact/types/shared/inputgroup';\n\nexport const defaultProps: useInputGroupProps = {};\n"],"mappings":"AAAA,OAAS,gBAAAA,MAAoB,4BCEtB,IAAMC,EAAmC,CAAC,EDC1C,IAAMC,EAAgBC,EAAa,CACtC,KAAM,gBACN,aAAAC,CACJ,CAAC","names":["withHeadless","defaultProps","useInputGroup","withHeadless","defaultProps"]}
File without changes
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/inputnumber/useInputNumber.ts","../../src/inputnumber/useInputNumber.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { useMountEffect, useUnmountEffect, useUpdateEffect } from '@primereact/hooks';\nimport { useInputNumberProps } from '@primereact/types/shared/inputnumber';\nimport { clearSelection, getSelection, isEmpty, isNotEmpty } from '@primeuix/utils';\nimport * as React from 'react';\nimport { defaultProps } from './useInputNumber.props';\n\nexport const useInputNumber = withHeadless({\n name: 'useInputNumber',\n defaultProps,\n setup({ props }) {\n const [focused, setFocused] = React.useState<boolean>(false);\n const inputRef = React.useRef<{ elementRef: React.RefObject<HTMLInputElement> } | null>(null);\n const timer = React.useRef<NodeJS.Timeout | null>(null);\n const lastValue = React.useRef<string | null>(null);\n const numberFormat = React.useRef<Intl.NumberFormat | null>(null);\n const groupChar = React.useRef<string | null>(null);\n const prefixChar = React.useRef<string | null>(null);\n const suffixChar = React.useRef<string | null>(null);\n const isSpecialChar = React.useRef<boolean | null>(null);\n const _numeral = React.useRef<RegExp | null>(null);\n const _group = React.useRef<RegExp | null>(null);\n const _minusSign = React.useRef<RegExp | null>(null);\n const _currency = React.useRef<RegExp | null>(null);\n const _decimal = React.useRef<RegExp | null>(null);\n const _suffix = React.useRef<RegExp | null>(null);\n const _prefix = React.useRef<RegExp | null>(null);\n const _index = React.useRef<((d: string) => number | undefined) | null>(null);\n\n const state = {\n focused\n };\n\n const getOptions = () => {\n return {\n localeMatcher: props.localeMatcher,\n style: props.mode,\n currency: props.currency,\n currencyDisplay: props.currencyDisplay,\n useGrouping: props.useGrouping,\n minimumFractionDigits: props.minFractionDigits ?? undefined,\n maximumFractionDigits: props.maxFractionDigits ?? undefined,\n roundingMode: props.roundingMode\n };\n };\n\n const constructParser = () => {\n numberFormat.current = new Intl.NumberFormat(props.locale, getOptions());\n const numerals = [...new Intl.NumberFormat(props.locale, { useGrouping: false }).format(9876543210)].reverse();\n const index = new Map(numerals.map((d, i) => [d, i]));\n\n _numeral.current = new RegExp(`[${numerals.join('')}]`, 'g');\n _group.current = getGroupingExpression();\n _minusSign.current = getMinusSignExpression();\n _currency.current = getCurrencyExpression();\n _decimal.current = getDecimalExpression();\n _suffix.current = getSuffixExpression();\n _prefix.current = getPrefixExpression();\n _index.current = (d) => index.get(d);\n };\n\n const escapeRegExp = (text: string) => {\n return text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n };\n\n const getDecimalExpression = () => {\n const formatter = new Intl.NumberFormat(props.locale, { ...getOptions(), useGrouping: false });\n\n return new RegExp(\n `[${formatter\n .format(1.1)\n .replace(_currency.current ?? '', '')\n .trim()\n .replace(_numeral.current ?? '', '')}]`,\n 'g'\n );\n };\n\n const getGroupingExpression = () => {\n const formatter = new Intl.NumberFormat(props.locale, { useGrouping: true });\n\n groupChar.current = formatter\n .format(1000000)\n .trim()\n .replace(_numeral.current ?? '', '')\n .charAt(0);\n\n return new RegExp(`[${groupChar.current}]`, 'g');\n };\n\n const getMinusSignExpression = () => {\n const formatter = new Intl.NumberFormat(props.locale, { useGrouping: false });\n\n return new RegExp(\n `[${formatter\n .format(-1)\n .trim()\n .replace(_numeral.current ?? '', '')}]`,\n 'g'\n );\n };\n\n const getCurrencyExpression = () => {\n if (props.currency) {\n const formatter = new Intl.NumberFormat(props.locale, { style: 'currency', currency: props.currency, currencyDisplay: props.currencyDisplay, minimumFractionDigits: 0, maximumFractionDigits: 0, roundingMode: props.roundingMode });\n\n return new RegExp(\n `[${formatter\n .format(1)\n .replace(/\\s/g, '')\n .replace(_numeral.current ?? '', '')\n .replace(_group.current ?? '', '')}]`,\n 'g'\n );\n }\n\n return new RegExp(`[]`, 'g');\n };\n\n const getPrefixExpression = () => {\n if (props.prefix) {\n _prefix.current = new RegExp(escapeRegExp(props.prefix), 'g');\n } else {\n const formatter = new Intl.NumberFormat(props.locale, { style: props.mode, currency: props.currency, currencyDisplay: props.currencyDisplay });\n\n const prefixStr = formatter.format(1).split('1')[0];\n\n _prefix.current = new RegExp(escapeRegExp(prefixStr), 'g');\n }\n\n return _prefix.current;\n };\n\n const getSuffixExpression = () => {\n if (props.suffix) {\n _suffix.current = new RegExp(escapeRegExp(props.suffix), 'g');\n } else {\n const formatter = new Intl.NumberFormat(props.locale, { style: props.mode, currency: props.currency, currencyDisplay: props.currencyDisplay, minimumFractionDigits: 0, maximumFractionDigits: 0, roundingMode: props.roundingMode });\n\n const suffixStr = formatter.format(1).split('1')[1];\n\n _suffix.current = new RegExp(escapeRegExp(suffixStr), 'g');\n }\n\n return _suffix.current;\n };\n\n const formatValue = (value: number | string | null | undefined) => {\n if (value != null) {\n if (typeof value === 'string' && value === '-') {\n // Minus sign\n return value;\n }\n\n if (props.format) {\n const formatter = new Intl.NumberFormat(props.locale, getOptions());\n const numericValue = typeof value === 'string' ? Number(value) : value;\n let formattedValue = formatter.format(numericValue);\n\n if (props.prefix) {\n formattedValue = props.prefix + formattedValue;\n }\n\n if (props.suffix) {\n formattedValue = formattedValue + props.suffix;\n }\n\n return formattedValue;\n }\n\n return value.toString();\n }\n\n return '';\n };\n\n const parseValue = (text: string) => {\n let cleanText = text\n .replace(_suffix.current || '', '')\n .replace(_prefix.current || '', '')\n .trim()\n .replace(/\\s/g, '')\n .replace(_currency.current || '', '');\n\n if (_decimal.current && _minusSign.current && _numeral.current) {\n const validChars = new RegExp(\n `[${[...new Intl.NumberFormat(props.locale, { useGrouping: false }).format(9876543210)].reverse().join('')}${new Intl.NumberFormat(props.locale).format(1.1).replace(/[0-9]/g, '')}${new Intl.NumberFormat(props.locale)\n .format(-1)\n .replace(/[0-9]/g, '')}]`,\n 'g'\n );\n\n cleanText = cleanText.match(validChars)?.join('') || '';\n }\n\n if (_group.current) {\n cleanText = cleanText.replace(_group.current, '');\n }\n\n if (_minusSign.current) {\n cleanText = cleanText.replace(_minusSign.current, '-');\n }\n\n if (_decimal.current) {\n cleanText = cleanText.replace(_decimal.current, '.');\n }\n\n if (_numeral.current && _index.current) {\n cleanText = cleanText.replace(_numeral.current, (d) => {\n const res = _index.current ? _index.current(d) : undefined;\n\n return res !== undefined ? res.toString() : '';\n });\n }\n\n if (cleanText) {\n if (cleanText === '-') return cleanText;\n\n const parsedValue = +cleanText;\n\n return isNaN(parsedValue) ? null : parsedValue;\n }\n\n return null;\n };\n\n const getInputElement = (): HTMLInputElement | null => {\n const extractHTMLInput = (ref: HTMLInputElement | { elementRef?: React.RefObject<HTMLInputElement>; inputRef?: React.RefObject<{ elementRef: React.RefObject<HTMLInputElement> }> } | null): HTMLInputElement | null => {\n if (!ref) return null;\n\n if ('tagName' in ref && ref.tagName === 'INPUT') {\n return ref;\n } else {\n if ('inputRef' in ref && ref.inputRef?.current?.elementRef?.current) {\n return ref.inputRef.current.elementRef.current;\n }\n\n if ('elementRef' in ref && ref.elementRef?.current) {\n return ref.elementRef.current;\n }\n }\n\n return null;\n };\n\n let targetRef = null;\n\n if (props.target) {\n targetRef = 'current' in props.target ? props.target.current : props.target;\n }\n\n const refToUse = targetRef || inputRef.current;\n\n return extractHTMLInput(refToUse);\n };\n\n const addWithPrecision = (base: number, increment: number) => {\n const baseStr = base.toString();\n const stepStr = increment.toString();\n\n const baseDecimalPlaces = baseStr.includes('.') ? baseStr.split('.')[1].length : 0;\n const stepDecimalPlaces = stepStr.includes('.') ? stepStr.split('.')[1].length : 0;\n\n const maxDecimalPlaces = Math.max(baseDecimalPlaces, stepDecimalPlaces);\n const precision = Math.pow(10, maxDecimalPlaces);\n\n return Math.round((base + increment) * precision) / precision;\n };\n\n const repeat = (event: React.KeyboardEvent<HTMLInputElement> | React.MouseEvent<HTMLInputElement> | React.PointerEvent<HTMLButtonElement> | null, interval: number | undefined, dir: number) => {\n if (props.readOnly) {\n return;\n }\n\n const i = interval || 500;\n\n clearTimer();\n timer.current = setTimeout(() => {\n repeat(event, 40, dir);\n }, i);\n\n spin(event, dir);\n };\n\n const spin = (event: React.KeyboardEvent<HTMLInputElement> | React.MouseEvent<HTMLInputElement> | React.PointerEvent<HTMLButtonElement> | null, dir: number) => {\n const inputEl = getInputElement();\n\n if (inputEl) {\n const step = (props.step ?? 1) * dir;\n const currentValue = parseValue(inputEl.value) || 0;\n const newValue = validateValue(addWithPrecision(currentValue as number, step));\n\n updateInput(newValue as number, null, 'spin', String(currentValue));\n updateModel(event, newValue as useInputNumberProps['value']);\n handleOnInput(event, String(currentValue), newValue as number);\n }\n };\n\n const increment = (event: React.KeyboardEvent<HTMLInputElement> | React.MouseEvent<HTMLInputElement> | React.PointerEvent<HTMLButtonElement>, dir: number) => {\n if (!props.disabled) {\n const inputEl = getInputElement();\n\n if (inputEl) {\n inputEl.focus();\n }\n\n repeat(event, undefined, dir ?? props.step ?? 1);\n event.preventDefault();\n }\n };\n\n const decrement = (event: React.KeyboardEvent<HTMLInputElement> | React.MouseEvent<HTMLInputElement> | React.PointerEvent<HTMLButtonElement>, dir: number) => {\n if (!props.disabled) {\n const inputEl = getInputElement();\n\n if (inputEl) {\n inputEl.focus();\n }\n\n repeat(event, undefined, dir ?? (props.step ?? 1) * -1);\n event.preventDefault();\n }\n };\n\n const stopSpin = () => {\n if (!props.disabled) {\n clearTimer();\n }\n };\n\n const onInput = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (props.disabled || props.readOnly) {\n return;\n }\n\n if (isSpecialChar.current) {\n (event.target as HTMLInputElement).value = lastValue.current ?? '';\n }\n\n isSpecialChar.current = false;\n };\n\n const onInputKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (props.readOnly) {\n return;\n }\n\n const inputElement = event.target as HTMLInputElement;\n\n if (event.altKey || event.ctrlKey || event.metaKey) {\n isSpecialChar.current = true;\n lastValue.current = inputElement.value;\n\n return;\n }\n\n lastValue.current = inputElement.value;\n\n let selectionStart = inputElement.selectionStart ?? 0;\n const selectionEnd = inputElement.selectionEnd ?? 0;\n const selectionRange = selectionEnd - selectionStart;\n const inputValue = inputElement.value;\n let newValueStr = null;\n const code = event.code || event.key;\n\n switch (code) {\n case 'ArrowUp':\n spin(event, 1);\n event.preventDefault();\n break;\n\n case 'ArrowDown':\n spin(event, -1);\n event.preventDefault();\n break;\n\n case 'ArrowLeft':\n if (selectionRange > 1) {\n const cursorPosition = isNumeralChar(inputValue.charAt(selectionStart)) ? selectionStart + 1 : selectionStart + 2;\n\n (event.target as HTMLInputElement).setSelectionRange(cursorPosition, cursorPosition);\n } else if (!isNumeralChar(inputValue.charAt(selectionStart - 1))) {\n event.preventDefault();\n }\n\n break;\n\n case 'ArrowRight':\n if (selectionRange > 1) {\n const cursorPosition = selectionEnd - 1;\n\n (event.target as HTMLInputElement).setSelectionRange(cursorPosition, cursorPosition);\n } else if (!isNumeralChar(inputValue.charAt(selectionStart))) {\n event.preventDefault();\n }\n\n break;\n\n case 'Tab':\n case 'Enter':\n case 'NumpadEnter':\n newValueStr = validateValue(parseValue(inputValue)) as useInputNumberProps['value'];\n (event.target as HTMLInputElement).value = formatValue(newValueStr);\n (event.target as HTMLInputElement).setAttribute('aria-valuenow', newValueStr != null ? String(newValueStr) : '');\n updateModel(event, newValueStr);\n break;\n\n case 'Backspace': {\n event.preventDefault();\n\n if (selectionStart === selectionEnd) {\n if (selectionStart >= inputValue.length && suffixChar.current !== null) {\n selectionStart = inputValue.length - suffixChar.current.length;\n (event.target as HTMLInputElement).setSelectionRange(selectionStart, selectionStart);\n }\n\n const deleteChar = inputValue.charAt(selectionStart - 1);\n const { decimalCharIndex, decimalCharIndexWithoutPrefix } = getDecimalCharIndexes(inputValue);\n\n if (isNumeralChar(deleteChar)) {\n const decimalLength = getDecimalLength(inputValue);\n\n if (_group.current && _group.current.test(deleteChar)) {\n _group.current.lastIndex = 0;\n\n newValueStr = inputValue.slice(0, selectionStart - 2) + inputValue.slice(selectionStart - 1);\n } else if (_decimal.current && _decimal.current.test(deleteChar)) {\n if (_decimal.current) {\n _decimal.current.lastIndex = 0;\n }\n\n if (decimalLength) {\n (event.target as HTMLInputElement).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 = isDecimalMode() && (props.minFractionDigits || 0) < decimalLength ? '' : '0';\n\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 const parsed = parseValue(newValueStr);\n\n newValueStr = typeof parsed === 'number' && parsed > 0 ? newValueStr : '';\n } else {\n newValueStr = inputValue.slice(0, selectionStart - 1) + inputValue.slice(selectionStart);\n }\n }\n\n updateValue(event, newValueStr as string, null, 'delete-single');\n } else {\n newValueStr = deleteRange(inputValue, selectionStart, selectionEnd);\n updateValue(event, newValueStr, null, 'delete-range');\n }\n\n break;\n }\n\n case 'Delete':\n event.preventDefault();\n\n if (selectionStart === selectionEnd) {\n const deleteChar = inputValue.charAt(selectionStart);\n const { decimalCharIndex, decimalCharIndexWithoutPrefix } = getDecimalCharIndexes(inputValue);\n\n if (isNumeralChar(deleteChar)) {\n const decimalLength = getDecimalLength(inputValue);\n\n if (_group.current && _group.current.test(deleteChar)) {\n _group.current.lastIndex = 0;\n newValueStr = inputValue.slice(0, selectionStart) + inputValue.slice(selectionStart + 2);\n } else if (_decimal.current && _decimal.current.test(deleteChar)) {\n _decimal.current.lastIndex = 0;\n\n if (decimalLength) {\n (event.target as HTMLInputElement).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 = isDecimalMode() && (props.minFractionDigits || 0) < decimalLength ? '' : '0';\n\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 const parsed = parseValue(newValueStr);\n\n newValueStr = typeof parsed === 'number' && parsed > 0 ? newValueStr : '';\n } else {\n newValueStr = inputValue.slice(0, selectionStart) + inputValue.slice(selectionStart + 1);\n }\n }\n\n updateValue(event, newValueStr as string, null, 'delete-back-single');\n } else {\n newValueStr = deleteRange(inputValue, selectionStart, selectionEnd);\n updateValue(event, newValueStr, null, 'delete-range');\n }\n\n break;\n\n case 'Home':\n event.preventDefault();\n\n if (isNotEmpty(props.min)) {\n updateModel(event, props.min ?? 0);\n }\n\n break;\n\n case 'End':\n event.preventDefault();\n\n if (isNotEmpty(props.max)) {\n updateModel(event, props.max ?? 100);\n }\n\n break;\n\n default:\n break;\n }\n };\n\n const onInputKeyPress = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (props.readOnly) {\n return;\n }\n\n const char = event.key;\n const isDecimalSign = isDecimalSignFn(char);\n const isMinusSign = isMinusSignFn(char);\n\n if (event.code !== 'Enter') {\n event.preventDefault();\n }\n\n if ((Number(char) >= 0 && Number(char) <= 9) || isMinusSign || isDecimalSign) {\n insert(event, char, { isDecimalSign, isMinusSign });\n }\n };\n\n const onPaste = (event: React.ClipboardEvent<HTMLInputElement>) => {\n if (props.readOnly) {\n return;\n }\n\n event.preventDefault();\n const data = (event.clipboardData || (window as Window & { clipboardData?: DataTransfer }).clipboardData)?.getData('Text');\n\n if (data) {\n const filteredData = parseValue(data);\n\n if (filteredData != null) {\n insert(event, filteredData.toString());\n }\n }\n };\n\n const allowMinusSign = () => {\n return props.min === undefined || props.min === null || props.min < 0;\n };\n\n const isMinusSignFn = (char: string) => {\n if ((_minusSign.current && _minusSign.current.test(char)) || char === '-') {\n if (_minusSign.current) {\n _minusSign.current.lastIndex = 0;\n }\n\n return true;\n }\n\n return false;\n };\n\n const isDecimalSignFn = (char: string) => {\n if ((props.locale?.includes('fr') && ['.', ','].includes(char)) || (_decimal.current && _decimal.current.test(char))) {\n if (_decimal.current) {\n _decimal.current.lastIndex = 0;\n }\n\n return true;\n }\n\n return false;\n };\n\n const isDecimalMode = () => {\n return props.mode === 'decimal';\n };\n\n const getDecimalCharIndexes = (val: string) => {\n const decimalCharIndex = _decimal.current ? val.search(_decimal.current) : -1;\n\n if (_decimal.current) {\n _decimal.current.lastIndex = 0;\n }\n\n const filteredVal = val\n .replace(_prefix.current || '', '')\n .trim()\n .replace(/\\s/g, '')\n .replace(_currency.current || '', '');\n const decimalCharIndexWithoutPrefix = _decimal.current ? filteredVal.search(_decimal.current) : -1;\n\n if (_decimal.current) {\n _decimal.current.lastIndex = 0;\n }\n\n return { decimalCharIndex, decimalCharIndexWithoutPrefix };\n };\n\n const getCharIndexes = (val: string) => {\n const resetRegexLastIndex = (regex: RegExp | null) => {\n if (regex) {\n regex.lastIndex = 0;\n }\n };\n\n const decimalCharIndex = _decimal.current ? val.search(_decimal.current) : -1;\n\n resetRegexLastIndex(_decimal.current);\n\n const minusCharIndex = _minusSign.current ? val.search(_minusSign.current) : -1;\n\n resetRegexLastIndex(_minusSign.current);\n\n const suffixCharIndex = _suffix.current ? val.search(_suffix.current) : -1;\n\n resetRegexLastIndex(_suffix.current);\n\n const currencyCharIndex = _currency.current ? val.search(_currency.current) : -1;\n\n resetRegexLastIndex(_currency.current);\n\n return { decimalCharIndex, minusCharIndex, suffixCharIndex, currencyCharIndex };\n };\n\n const insert = (event: React.KeyboardEvent<HTMLInputElement> | React.ClipboardEvent<HTMLInputElement>, text: string, sign = { isDecimalSign: false, isMinusSign: false }) => {\n const minusCharIndexOnText = _minusSign.current ? text.search(_minusSign.current) : -1;\n\n if (_minusSign.current) {\n _minusSign.current.lastIndex = 0;\n }\n\n if (!allowMinusSign() && minusCharIndexOnText !== -1) {\n return;\n }\n\n const selectionStart = (event.target as HTMLInputElement).selectionStart ?? 0;\n const selectionEnd = (event.target as HTMLInputElement).selectionEnd ?? 0;\n const inputValue = (event.target as HTMLInputElement).value.trim();\n const { decimalCharIndex, minusCharIndex, suffixCharIndex, currencyCharIndex } = getCharIndexes(inputValue);\n let newValueStr;\n\n if (sign.isMinusSign) {\n const isNewMinusSign = minusCharIndex === -1;\n\n if (selectionStart === 0 || selectionStart === currencyCharIndex + 1) {\n newValueStr = inputValue;\n\n if (isNewMinusSign || selectionEnd !== 0) {\n newValueStr = insertText(inputValue, text, 0, selectionEnd);\n }\n\n updateValue(event, newValueStr, text, 'insert');\n }\n } else if (sign.isDecimalSign) {\n if (decimalCharIndex > 0 && selectionStart === decimalCharIndex) {\n updateValue(event, inputValue, text, 'insert');\n } else if (decimalCharIndex > selectionStart && decimalCharIndex < selectionEnd) {\n newValueStr = insertText(inputValue, text, selectionStart, selectionEnd);\n updateValue(event, newValueStr, text, 'insert');\n } else if (decimalCharIndex === -1 && props.maxFractionDigits) {\n newValueStr = insertText(inputValue, text, selectionStart, selectionEnd);\n updateValue(event, newValueStr, text, 'insert');\n }\n } else {\n const maxFractionDigits = numberFormat.current?.resolvedOptions().maximumFractionDigits ?? 0;\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 = currencyCharIndex >= selectionStart ? currencyCharIndex - 1 : suffixCharIndex >= selectionStart ? suffixCharIndex : inputValue.length;\n\n newValueStr = inputValue.slice(0, selectionStart) + text + inputValue.slice(selectionStart + text.length, charIndex) + inputValue.slice(charIndex);\n updateValue(event, newValueStr, text, operation);\n }\n } else {\n newValueStr = insertText(inputValue, text, selectionStart, selectionEnd);\n updateValue(event, newValueStr, text, operation);\n }\n }\n };\n\n const insertText = (value: string, text: string, start: number, end: number) => {\n const textSplit = text === '.' ? text : text.split('.');\n\n if (textSplit.length === 2) {\n const decimalCharIndex = value.slice(start, end).search(_decimal.current ?? '');\n\n if (_decimal.current) {\n _decimal.current.lastIndex = 0;\n }\n\n return decimalCharIndex > 0 ? value.slice(0, start) + formatValue(text) + value.slice(end) : formatValue(text) || value;\n } else if (end - start === value.length) {\n return 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 const 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 const initCursor = () => {\n const inputEl = getInputElement();\n\n if (!inputEl) return 0;\n\n let inputValue = inputEl.value;\n let selectionStart = inputEl.selectionStart ?? 0;\n const valueLength = inputValue.length;\n let index = null;\n\n // remove prefix\n const prefixLength = (prefixChar.current || '').length;\n\n inputValue = inputValue.replace(prefixChar.current || '', '');\n selectionStart = selectionStart - prefixLength;\n\n let char = inputValue.charAt(selectionStart);\n\n if (isNumeralChar(char)) {\n return selectionStart + prefixLength;\n }\n\n //left\n let i = selectionStart - 1;\n\n while (i >= 0) {\n char = inputValue.charAt(i);\n\n if (isNumeralChar(char)) {\n index = i + prefixLength;\n break;\n } else {\n i--;\n }\n }\n\n if (index !== null) {\n if (inputEl.setSelectionRange) inputEl.setSelectionRange(index + 1, index + 1);\n } else {\n i = selectionStart;\n\n while (i < valueLength) {\n char = inputValue.charAt(i);\n\n if (isNumeralChar(char)) {\n index = i + prefixLength;\n break;\n } else {\n i++;\n }\n }\n\n if (index !== null) {\n if (inputEl.setSelectionRange) inputEl.setSelectionRange(index, index);\n }\n }\n\n return index || 0;\n };\n\n const onInputClick = () => {\n const inputEl = getInputElement();\n\n if (!inputEl) return;\n\n const currentValue = inputEl.value;\n\n if (!props.readOnly && currentValue !== getSelection()) {\n initCursor();\n }\n };\n\n const isNumeralChar = (char: string) => {\n if (char.length === 1 && ((_numeral.current && _numeral.current.test(char)) || (_decimal.current && _decimal.current.test(char)) || (_group.current && _group.current.test(char)) || (_minusSign.current && _minusSign.current.test(char)))) {\n resetRegex();\n\n return true;\n }\n\n return false;\n };\n\n const resetRegex = () => {\n if (_numeral.current) _numeral.current.lastIndex = 0;\n\n if (_decimal.current) _decimal.current.lastIndex = 0;\n\n if (_group.current) _group.current.lastIndex = 0;\n\n if (_minusSign.current) _minusSign.current.lastIndex = 0;\n };\n\n const changeValue = () => {\n const _value = props.value ?? props.defaultValue ?? null;\n const val = validateValueByLimit(_value);\n\n updateInputValue(val);\n\n const newValue = validateValue(_value);\n\n if (_value !== null && _value !== newValue) {\n updateModel(null, newValue as useInputNumberProps['value']);\n }\n };\n\n const updateValue = (event: React.ChangeEvent<HTMLInputElement> | React.KeyboardEvent<HTMLInputElement> | React.ClipboardEvent<HTMLInputElement>, valueStr: string, insertedValueStr: string | null, operation: string) => {\n const currentValue = (event.target as HTMLInputElement).value;\n let newValue = null;\n\n if (valueStr != null) {\n newValue = parseValue(valueStr);\n newValue = !newValue && !props.allowEmpty ? 0 : newValue;\n\n updateInput(newValue, insertedValueStr, operation, valueStr);\n handleOnInput(event, currentValue, newValue);\n }\n };\n\n const isValueChanged = (currentValue: string | number | null, newValue: number | string | null) => {\n if (newValue === null && currentValue !== null) {\n return true;\n }\n\n if (newValue != null) {\n const parsedCurrentValue = typeof currentValue === 'string' ? parseValue(currentValue) : currentValue;\n\n return newValue !== parsedCurrentValue;\n }\n\n return false;\n };\n\n const handleOnInput = (\n event: React.ChangeEvent<HTMLInputElement> | React.KeyboardEvent<HTMLInputElement> | React.MouseEvent<HTMLInputElement> | React.ClipboardEvent<HTMLInputElement> | React.PointerEvent<HTMLButtonElement> | null,\n currentValue: string,\n newValue: number | string | null\n ) => {\n if (props.onChange && isValueChanged(currentValue, newValue)) {\n props.onChange({\n originalEvent: event,\n value: newValue as number\n });\n }\n };\n\n const validateValue = (value: number | string | null) => {\n if (value === '-' || value == null) {\n return null;\n }\n\n if (props.min != null && typeof props.min === 'number' && typeof value === 'number' && value < props.min) {\n return props.min;\n }\n\n if (props.max != null && typeof props.max === 'number' && typeof value === 'number' && value > props.max) {\n return props.max;\n }\n\n return value;\n };\n\n const validateValueByLimit = (value: number | null) => {\n if (isEmpty(value)) {\n return null;\n }\n\n if (props.min !== undefined && props.min !== null && value !== null && value < props.min) {\n return props.min;\n }\n\n if (props.max !== undefined && props.max !== null && value !== null && value > props.max) {\n return props.max;\n }\n\n return value;\n };\n\n const updateInput = (value: number | string | null, insertedValueStr: string | null, operation: string, valueStr: string) => {\n insertedValueStr = insertedValueStr || '';\n const inputEl = getInputElement();\n\n if (!inputEl) return;\n\n const inputValue = inputEl.value;\n\n let newValue = formatValue(value);\n const currentLength = inputValue.length;\n\n if (newValue !== valueStr) {\n newValue = concatValues(newValue, valueStr);\n }\n\n if (currentLength === 0) {\n inputEl.value = newValue;\n if (inputEl.setSelectionRange) inputEl.setSelectionRange(0, 0);\n\n const index = initCursor();\n const selectionEnd = index + insertedValueStr.length;\n\n if (inputEl.setSelectionRange) inputEl.setSelectionRange(selectionEnd, selectionEnd);\n } else {\n const selectionStart = inputEl.selectionStart ?? 0;\n let selectionEnd = inputEl.selectionEnd ?? 0;\n\n inputEl.value = newValue;\n const newLength = newValue.length;\n\n if (operation === 'range-insert') {\n const startValue = parseValue((inputValue || '').slice(0, selectionStart));\n const startValueStr = startValue !== null ? startValue.toString() : '';\n const startExpr = startValueStr.split('').join(`(${groupChar.current})?`);\n const sRegex = new RegExp(startExpr, 'g');\n\n sRegex.test(newValue);\n\n const tExpr = insertedValueStr.split('').join(`(${groupChar.current})?`);\n const tRegex = new RegExp(tExpr, 'g');\n\n tRegex.test(newValue.slice(sRegex.lastIndex));\n\n selectionEnd = sRegex.lastIndex + tRegex.lastIndex;\n if (inputEl.setSelectionRange) inputEl.setSelectionRange(selectionEnd, selectionEnd);\n } else if (newLength === currentLength) {\n if (operation === 'insert' || operation === 'delete-back-single') {\n if (inputEl.setSelectionRange) inputEl.setSelectionRange(selectionEnd + 1, selectionEnd + 1);\n } else if (operation === 'delete-single') {\n if (inputEl.setSelectionRange) inputEl.setSelectionRange(selectionEnd - 1, selectionEnd - 1);\n } else if (operation === 'delete-range' || operation === 'spin') {\n if (inputEl.setSelectionRange) inputEl.setSelectionRange(selectionEnd, selectionEnd);\n }\n } else if (operation === 'delete-back-single') {\n const prevChar = inputValue.charAt(selectionEnd - 1);\n const nextChar = inputValue.charAt(selectionEnd);\n const diff = currentLength - newLength;\n const isGroupChar = _group.current ? _group.current.test(nextChar) : false;\n\n if (isGroupChar && diff === 1) {\n selectionEnd += 1;\n } else if (!isGroupChar && isNumeralChar(prevChar)) {\n selectionEnd += -1 * diff + 1;\n }\n\n if (_group.current) {\n _group.current.lastIndex = 0;\n }\n\n if (inputEl.setSelectionRange) inputEl.setSelectionRange(selectionEnd, selectionEnd);\n } else if (inputValue === '-' && operation === 'insert') {\n if (inputEl.setSelectionRange) inputEl.setSelectionRange(0, 0);\n\n const index = initCursor();\n const selectionEnd = index + insertedValueStr.length + 1;\n\n if (inputEl.setSelectionRange) inputEl.setSelectionRange(selectionEnd, selectionEnd);\n } else {\n selectionEnd = selectionEnd + (newLength - currentLength);\n if (inputEl.setSelectionRange) inputEl.setSelectionRange(selectionEnd, selectionEnd);\n }\n }\n\n inputEl.setAttribute('aria-valuenow', String(value));\n };\n\n const evaluateEmpty = (newValue: useInputNumberProps['value']) => {\n return !newValue && !props.allowEmpty ? (props.min ?? 0) : newValue;\n };\n\n const updateInputValue = (newValue: useInputNumberProps['value']) => {\n newValue = evaluateEmpty(newValue);\n\n const inputEl = getInputElement();\n\n if (!inputEl) return;\n\n const value = inputEl.value;\n const _formattedValue = formatValue(newValue);\n\n if (value !== _formattedValue) {\n inputEl.value = _formattedValue;\n inputEl.setAttribute('aria-valuenow', String(newValue));\n }\n };\n\n const concatValues = (val1: string, val2: string) => {\n if (val1 && val2) {\n const decimalRegex = _decimal.current;\n const decimalCharIndex = decimalRegex ? val2.search(decimalRegex) : -1;\n\n if (decimalRegex) {\n decimalRegex.lastIndex = 0;\n }\n\n if (suffixChar.current) {\n return decimalCharIndex !== -1 ? val1.replace(suffixChar.current, '').split(decimalRegex ?? '')[0] + val2.replace(suffixChar.current, '').slice(decimalCharIndex) + suffixChar.current : val1;\n } else if (prefixChar.current) {\n return decimalCharIndex !== -1 ? val1.split(decimalRegex ?? '')[0] + val2.slice(decimalCharIndex) : val1;\n }\n }\n\n return val1;\n };\n\n const getDecimalLength = (value: string) => {\n if (value) {\n const valueSplit = value.split(_decimal.current ?? '');\n\n if (valueSplit.length === 2) {\n return valueSplit[1]\n .replace(_suffix.current ?? '', '')\n .trim()\n .replace(/\\s/g, '')\n .replace(_currency.current ?? '', '').length;\n }\n }\n\n return 0;\n };\n\n const updateModel = (\n event: React.ChangeEvent<HTMLInputElement> | React.KeyboardEvent<HTMLInputElement> | React.MouseEvent<HTMLInputElement> | React.PointerEvent<HTMLButtonElement> | React.PointerEvent<HTMLButtonElement> | null,\n value: useInputNumberProps['value']\n ) => {\n if (props.onValueChange) {\n let originalEvent;\n\n if (event) {\n originalEvent = event;\n } else {\n // Create a dummy synthetic event if event is null\n const inputEl = getInputElement();\n\n originalEvent = {\n ...({} as React.FormEvent<HTMLInputElement>),\n target: inputEl as EventTarget & HTMLInputElement\n };\n }\n\n props.onValueChange({\n originalEvent,\n value: value as number\n });\n }\n };\n\n const onInputFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n setFocused(true);\n\n const inputEl = getInputElement();\n\n if (!props.disabled && !props.readOnly && inputEl?.value !== getSelection() && props.highlightOnFocus) {\n event.target.select();\n }\n };\n\n const onInputBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n setFocused(false);\n\n const input = event.target as HTMLInputElement;\n const newValue = validateValue(parseValue(input.value)) as useInputNumberProps['value'];\n\n input.value = formatValue(newValue);\n input.setAttribute('aria-valuenow', String(newValue));\n updateModel(event, newValue);\n\n if (!props.disabled && !props.readOnly && props.highlightOnFocus) {\n clearSelection();\n }\n };\n\n const clearTimer = () => {\n if (timer.current) {\n clearInterval(timer.current);\n }\n };\n\n const maxBoundry = () => {\n return props.max !== undefined && (props.value ?? props.defaultValue ?? 0) >= props.max;\n };\n\n const minBoundry = () => {\n return props.min !== undefined && (props.value ?? props.defaultValue ?? 0) <= props.min;\n };\n\n useUnmountEffect(() => {\n clearTimer();\n });\n\n useMountEffect(() => {\n constructParser();\n\n const initialValue = props.value ?? props.defaultValue ?? null;\n const newValue = validateValue(initialValue as number | null);\n const valueForInput = typeof newValue === 'number' ? newValue : null;\n\n updateInputValue(valueForInput);\n\n if (initialValue !== null && initialValue !== newValue) {\n updateModel(null, newValue as number);\n }\n });\n\n useUpdateEffect(() => {\n constructParser();\n changeValue();\n }, [props.locale, props.localeMatcher, props.mode, props.currency, props.currencyDisplay, props.useGrouping, props.minFractionDigits, props.maxFractionDigits, props.suffix, props.prefix]);\n\n useUpdateEffect(() => {\n changeValue();\n }, [props.value, props.defaultValue]);\n\n useUpdateEffect(() => {\n if (props.disabled) {\n clearTimer();\n }\n }, [props.disabled]);\n\n return {\n state,\n inputRef,\n // methods\n onChange: onInput,\n onInput,\n onInputKeyDown,\n onInputKeyPress,\n onInputClick,\n onPaste,\n onInputFocus,\n onInputBlur,\n onValueChange: props.onValueChange,\n maxBoundry,\n minBoundry,\n increment,\n decrement,\n stopSpin\n };\n }\n});\n","import type { useInputNumberProps } from '@primereact/types/shared/inputnumber';\n\nexport const defaultProps: useInputNumberProps = {\n value: undefined,\n defaultValue: undefined,\n format: true,\n locale: undefined,\n mode: 'decimal',\n prefix: undefined,\n suffix: undefined,\n currency: undefined,\n currencyDisplay: undefined,\n useGrouping: true,\n minFractionDigits: undefined,\n maxFractionDigits: undefined,\n roundingMode: undefined,\n min: undefined,\n max: undefined,\n step: 1,\n allowEmpty: true,\n highlightOnFocus: false,\n target: undefined,\n onValueChange: undefined,\n onChange: undefined\n};\n"],"mappings":"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","names":["withHeadless","useMountEffect","useUnmountEffect","useUpdateEffect","clearSelection","getSelection","isEmpty","isNotEmpty","React","defaultProps","useInputNumber","withHeadless","defaultProps","props","focused","setFocused","inputRef","timer","lastValue","numberFormat","groupChar","prefixChar","suffixChar","isSpecialChar","_numeral","_group","_minusSign","_currency","_decimal","_suffix","_prefix","_index","state","getOptions","_a","_b","constructParser","numerals","index","d","i","getGroupingExpression","getMinusSignExpression","getCurrencyExpression","getDecimalExpression","getSuffixExpression","getPrefixExpression","escapeRegExp","text","formatter","__spreadProps","__spreadValues","prefixStr","suffixStr","formatValue","value","numericValue","formattedValue","parseValue","cleanText","validChars","res","parsedValue","getInputElement","extractHTMLInput","ref","_c","_d","targetRef","refToUse","addWithPrecision","base","increment","baseStr","stepStr","baseDecimalPlaces","stepDecimalPlaces","maxDecimalPlaces","precision","repeat","event","interval","dir","clearTimer","spin","inputEl","step","currentValue","newValue","validateValue","updateInput","updateModel","handleOnInput","decrement","stopSpin","onInput","onInputKeyDown","inputElement","selectionStart","selectionEnd","selectionRange","inputValue","newValueStr","cursorPosition","isNumeralChar","deleteChar","decimalCharIndex","decimalCharIndexWithoutPrefix","getDecimalCharIndexes","decimalLength","getDecimalLength","insertedText","isDecimalMode","parsed","updateValue","deleteRange","isNotEmpty","onInputKeyPress","char","isDecimalSign","isDecimalSignFn","isMinusSign","isMinusSignFn","insert","onPaste","data","filteredData","allowMinusSign","val","filteredVal","getCharIndexes","resetRegexLastIndex","regex","minusCharIndex","suffixCharIndex","currencyCharIndex","sign","minusCharIndexOnText","isNewMinusSign","insertText","maxFractionDigits","operation","charIndex","start","end","initCursor","valueLength","prefixLength","onInputClick","getSelection","resetRegex","changeValue","_value","validateValueByLimit","updateInputValue","valueStr","insertedValueStr","isValueChanged","parsedCurrentValue","isEmpty","currentLength","concatValues","newLength","startValue","startExpr","sRegex","tExpr","tRegex","prevChar","nextChar","diff","isGroupChar","evaluateEmpty","_formattedValue","val1","val2","decimalRegex","valueSplit","originalEvent","onInputFocus","onInputBlur","input","clearSelection","maxBoundry","minBoundry","useUnmountEffect","useMountEffect","initialValue","useUpdateEffect"]}
File without changes