primereact 9.3.1 → 9.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (502) hide show
  1. package/README.md +18 -31
  2. package/accordion/accordion.cjs.js +88 -90
  3. package/accordion/accordion.cjs.min.js +1 -1
  4. package/accordion/accordion.d.ts +90 -1
  5. package/accordion/accordion.esm.js +89 -91
  6. package/accordion/accordion.esm.min.js +1 -1
  7. package/accordion/accordion.js +89 -92
  8. package/accordion/accordion.min.js +1 -1
  9. package/autocomplete/autocomplete.cjs.js +9 -5
  10. package/autocomplete/autocomplete.cjs.min.js +1 -1
  11. package/autocomplete/autocomplete.esm.js +9 -5
  12. package/autocomplete/autocomplete.esm.min.js +1 -1
  13. package/autocomplete/autocomplete.js +8 -4
  14. package/autocomplete/autocomplete.min.js +1 -1
  15. package/avatar/avatar.cjs.js +71 -22
  16. package/avatar/avatar.cjs.min.js +1 -1
  17. package/avatar/avatar.d.ts +37 -1
  18. package/avatar/avatar.esm.js +72 -23
  19. package/avatar/avatar.esm.min.js +1 -1
  20. package/avatar/avatar.js +72 -24
  21. package/avatar/avatar.min.js +1 -1
  22. package/avatargroup/avatargroup.cjs.js +26 -42
  23. package/avatargroup/avatargroup.cjs.min.js +1 -1
  24. package/avatargroup/avatargroup.d.ts +24 -0
  25. package/avatargroup/avatargroup.esm.js +13 -29
  26. package/avatargroup/avatargroup.esm.min.js +1 -1
  27. package/avatargroup/avatargroup.js +52 -69
  28. package/avatargroup/avatargroup.min.js +1 -1
  29. package/badge/badge.cjs.js +12 -28
  30. package/badge/badge.cjs.min.js +1 -1
  31. package/badge/badge.d.ts +26 -0
  32. package/badge/badge.esm.js +13 -29
  33. package/badge/badge.esm.min.js +1 -1
  34. package/badge/badge.js +13 -30
  35. package/badge/badge.min.js +1 -1
  36. package/blockui/blockui.cjs.js +12 -28
  37. package/blockui/blockui.cjs.min.js +1 -1
  38. package/blockui/blockui.d.ts +38 -0
  39. package/blockui/blockui.esm.js +13 -29
  40. package/blockui/blockui.esm.min.js +1 -1
  41. package/blockui/blockui.js +13 -30
  42. package/blockui/blockui.min.js +1 -1
  43. package/button/button.cjs.js +49 -42
  44. package/button/button.cjs.min.js +1 -1
  45. package/button/button.d.ts +42 -1
  46. package/button/button.esm.js +50 -43
  47. package/button/button.esm.min.js +1 -1
  48. package/button/button.js +49 -43
  49. package/button/button.min.js +1 -1
  50. package/calendar/calendar.cjs.js +29 -22
  51. package/calendar/calendar.cjs.min.js +1 -1
  52. package/calendar/calendar.esm.js +29 -22
  53. package/calendar/calendar.esm.min.js +1 -1
  54. package/calendar/calendar.js +26 -19
  55. package/calendar/calendar.min.js +1 -1
  56. package/card/card.cjs.js +52 -63
  57. package/card/card.cjs.min.js +1 -1
  58. package/card/card.d.ts +56 -0
  59. package/card/card.esm.js +39 -50
  60. package/card/card.esm.min.js +1 -1
  61. package/card/card.js +86 -98
  62. package/card/card.min.js +1 -1
  63. package/carousel/carousel.cjs.js +16 -28
  64. package/carousel/carousel.cjs.min.js +1 -1
  65. package/carousel/carousel.esm.js +16 -28
  66. package/carousel/carousel.esm.min.js +1 -1
  67. package/carousel/carousel.js +14 -26
  68. package/carousel/carousel.min.js +1 -1
  69. package/chart/chart.cjs.js +5 -1
  70. package/chart/chart.cjs.min.js +1 -1
  71. package/chart/chart.d.ts +5 -0
  72. package/chart/chart.esm.js +5 -1
  73. package/chart/chart.esm.min.js +1 -1
  74. package/chart/chart.js +5 -1
  75. package/chart/chart.min.js +1 -1
  76. package/checkbox/checkbox.cjs.js +22 -7
  77. package/checkbox/checkbox.cjs.min.js +1 -1
  78. package/checkbox/checkbox.d.ts +14 -1
  79. package/checkbox/checkbox.esm.js +22 -7
  80. package/checkbox/checkbox.esm.min.js +1 -1
  81. package/checkbox/checkbox.js +23 -8
  82. package/checkbox/checkbox.min.js +1 -1
  83. package/chip/chip.cjs.js +45 -42
  84. package/chip/chip.cjs.min.js +1 -1
  85. package/chip/chip.d.ts +53 -1
  86. package/chip/chip.esm.js +46 -43
  87. package/chip/chip.esm.min.js +1 -1
  88. package/chip/chip.js +46 -44
  89. package/chip/chip.min.js +1 -1
  90. package/chips/chips.cjs.js +13 -5
  91. package/chips/chips.cjs.min.js +1 -1
  92. package/chips/chips.esm.js +13 -5
  93. package/chips/chips.esm.min.js +1 -1
  94. package/chips/chips.js +14 -6
  95. package/chips/chips.min.js +1 -1
  96. package/colorpicker/colorpicker.cjs.js +7 -4
  97. package/colorpicker/colorpicker.cjs.min.js +1 -1
  98. package/colorpicker/colorpicker.d.ts +8 -0
  99. package/colorpicker/colorpicker.esm.js +7 -4
  100. package/colorpicker/colorpicker.esm.min.js +1 -1
  101. package/colorpicker/colorpicker.js +7 -4
  102. package/colorpicker/colorpicker.min.js +1 -1
  103. package/column/column.d.ts +6 -2
  104. package/componentbase/componentbase.cjs.js +105 -0
  105. package/componentbase/componentbase.cjs.min.js +1 -0
  106. package/componentbase/componentbase.esm.js +101 -0
  107. package/componentbase/componentbase.esm.min.js +1 -0
  108. package/componentbase/componentbase.js +109 -0
  109. package/componentbase/componentbase.min.js +1 -0
  110. package/componentbase/package.json +6 -0
  111. package/confirmdialog/confirmdialog.cjs.js +44 -27
  112. package/confirmdialog/confirmdialog.cjs.min.js +1 -1
  113. package/confirmdialog/confirmdialog.d.ts +90 -2
  114. package/confirmdialog/confirmdialog.esm.js +45 -28
  115. package/confirmdialog/confirmdialog.esm.min.js +1 -1
  116. package/confirmdialog/confirmdialog.js +45 -29
  117. package/confirmdialog/confirmdialog.min.js +1 -1
  118. package/confirmpopup/confirmpopup.cjs.js +53 -50
  119. package/confirmpopup/confirmpopup.cjs.min.js +1 -1
  120. package/confirmpopup/confirmpopup.d.ts +70 -1
  121. package/confirmpopup/confirmpopup.esm.js +54 -51
  122. package/confirmpopup/confirmpopup.esm.min.js +1 -1
  123. package/confirmpopup/confirmpopup.js +54 -52
  124. package/confirmpopup/confirmpopup.min.js +1 -1
  125. package/core/core.js +1159 -966
  126. package/core/core.min.js +13 -11
  127. package/datatable/datatable.cjs.js +72 -35
  128. package/datatable/datatable.cjs.min.js +1 -1
  129. package/datatable/datatable.d.ts +20 -7
  130. package/datatable/datatable.esm.js +72 -35
  131. package/datatable/datatable.esm.min.js +1 -1
  132. package/datatable/datatable.js +65 -28
  133. package/datatable/datatable.min.js +1 -1
  134. package/deferredcontent/deferredcontent.cjs.js +13 -26
  135. package/deferredcontent/deferredcontent.cjs.min.js +1 -1
  136. package/deferredcontent/deferredcontent.d.ts +38 -0
  137. package/deferredcontent/deferredcontent.esm.js +14 -27
  138. package/deferredcontent/deferredcontent.esm.min.js +1 -1
  139. package/deferredcontent/deferredcontent.js +14 -28
  140. package/deferredcontent/deferredcontent.min.js +1 -1
  141. package/dialog/dialog.cjs.js +83 -83
  142. package/dialog/dialog.cjs.min.js +1 -1
  143. package/dialog/dialog.d.ts +85 -3
  144. package/dialog/dialog.esm.js +83 -83
  145. package/dialog/dialog.esm.min.js +1 -1
  146. package/dialog/dialog.js +81 -82
  147. package/dialog/dialog.min.js +1 -1
  148. package/divider/divider.cjs.js +35 -51
  149. package/divider/divider.cjs.min.js +1 -1
  150. package/divider/divider.d.ts +30 -0
  151. package/divider/divider.esm.js +22 -38
  152. package/divider/divider.esm.min.js +1 -1
  153. package/divider/divider.js +66 -83
  154. package/divider/divider.min.js +1 -1
  155. package/dropdown/dropdown.cjs.js +45 -19
  156. package/dropdown/dropdown.cjs.min.js +1 -1
  157. package/dropdown/dropdown.d.ts +6 -1
  158. package/dropdown/dropdown.esm.js +45 -19
  159. package/dropdown/dropdown.esm.min.js +1 -1
  160. package/dropdown/dropdown.js +45 -19
  161. package/dropdown/dropdown.min.js +1 -1
  162. package/fieldset/fieldset.cjs.js +55 -54
  163. package/fieldset/fieldset.cjs.min.js +1 -1
  164. package/fieldset/fieldset.d.ts +77 -1
  165. package/fieldset/fieldset.esm.js +56 -55
  166. package/fieldset/fieldset.esm.min.js +1 -1
  167. package/fieldset/fieldset.js +56 -56
  168. package/fieldset/fieldset.min.js +1 -1
  169. package/fileupload/fileupload.cjs.js +13 -14
  170. package/fileupload/fileupload.cjs.min.js +1 -1
  171. package/fileupload/fileupload.esm.js +14 -15
  172. package/fileupload/fileupload.esm.min.js +1 -1
  173. package/fileupload/fileupload.js +14 -16
  174. package/fileupload/fileupload.min.js +1 -1
  175. package/galleria/galleria.cjs.js +5 -0
  176. package/galleria/galleria.cjs.min.js +1 -1
  177. package/galleria/galleria.esm.js +5 -0
  178. package/galleria/galleria.esm.min.js +1 -1
  179. package/galleria/galleria.js +5 -0
  180. package/galleria/galleria.min.js +1 -1
  181. package/hooks/hooks.cjs.js +15 -2
  182. package/hooks/hooks.cjs.min.js +1 -1
  183. package/hooks/hooks.esm.js +15 -2
  184. package/hooks/hooks.esm.min.js +1 -1
  185. package/hooks/hooks.js +15 -2
  186. package/hooks/hooks.min.js +1 -1
  187. package/image/image.cjs.js +41 -32
  188. package/image/image.cjs.min.js +1 -1
  189. package/image/image.esm.js +41 -32
  190. package/image/image.esm.min.js +1 -1
  191. package/image/image.js +39 -30
  192. package/image/image.min.js +1 -1
  193. package/inplace/inplace.cjs.js +33 -51
  194. package/inplace/inplace.cjs.min.js +1 -1
  195. package/inplace/inplace.d.ts +51 -1
  196. package/inplace/inplace.esm.js +33 -51
  197. package/inplace/inplace.esm.min.js +1 -1
  198. package/inplace/inplace.js +33 -52
  199. package/inplace/inplace.min.js +1 -1
  200. package/inputmask/inputmask.cjs.js +6 -2
  201. package/inputmask/inputmask.cjs.min.js +1 -1
  202. package/inputmask/inputmask.esm.js +6 -2
  203. package/inputmask/inputmask.esm.min.js +1 -1
  204. package/inputmask/inputmask.js +6 -2
  205. package/inputmask/inputmask.min.js +1 -1
  206. package/inputnumber/inputnumber.cjs.js +8 -4
  207. package/inputnumber/inputnumber.cjs.min.js +1 -1
  208. package/inputnumber/inputnumber.esm.js +8 -4
  209. package/inputnumber/inputnumber.esm.min.js +1 -1
  210. package/inputnumber/inputnumber.js +8 -4
  211. package/inputnumber/inputnumber.min.js +1 -1
  212. package/inputswitch/inputswitch.cjs.js +6 -2
  213. package/inputswitch/inputswitch.cjs.min.js +1 -1
  214. package/inputswitch/inputswitch.esm.js +6 -2
  215. package/inputswitch/inputswitch.esm.min.js +1 -1
  216. package/inputswitch/inputswitch.js +6 -2
  217. package/inputswitch/inputswitch.min.js +1 -1
  218. package/inputtext/inputtext.cjs.js +7 -8
  219. package/inputtext/inputtext.cjs.min.js +1 -1
  220. package/inputtext/inputtext.esm.js +7 -8
  221. package/inputtext/inputtext.esm.min.js +1 -1
  222. package/inputtext/inputtext.js +7 -8
  223. package/inputtext/inputtext.min.js +1 -1
  224. package/inputtextarea/inputtextarea.cjs.js +3 -4
  225. package/inputtextarea/inputtextarea.cjs.min.js +1 -1
  226. package/inputtextarea/inputtextarea.esm.js +3 -4
  227. package/inputtextarea/inputtextarea.esm.min.js +1 -1
  228. package/inputtextarea/inputtextarea.js +3 -4
  229. package/inputtextarea/inputtextarea.min.js +1 -1
  230. package/listbox/listbox.cjs.js +12 -4
  231. package/listbox/listbox.cjs.min.js +1 -1
  232. package/listbox/listbox.esm.js +12 -4
  233. package/listbox/listbox.esm.min.js +1 -1
  234. package/listbox/listbox.js +12 -4
  235. package/listbox/listbox.min.js +1 -1
  236. package/mention/mention.cjs.js +3 -4
  237. package/mention/mention.cjs.min.js +1 -1
  238. package/mention/mention.esm.js +3 -4
  239. package/mention/mention.esm.min.js +1 -1
  240. package/mention/mention.js +3 -4
  241. package/mention/mention.min.js +1 -1
  242. package/menuitem/menuitem.d.ts +0 -2
  243. package/messages/messages.cjs.js +15 -12
  244. package/messages/messages.cjs.min.js +1 -1
  245. package/messages/messages.esm.js +15 -12
  246. package/messages/messages.esm.min.js +1 -1
  247. package/messages/messages.js +15 -12
  248. package/messages/messages.min.js +1 -1
  249. package/multiselect/multiselect.cjs.js +46 -22
  250. package/multiselect/multiselect.cjs.min.js +1 -1
  251. package/multiselect/multiselect.d.ts +4 -0
  252. package/multiselect/multiselect.esm.js +46 -22
  253. package/multiselect/multiselect.esm.min.js +1 -1
  254. package/multiselect/multiselect.js +45 -21
  255. package/multiselect/multiselect.min.js +1 -1
  256. package/multistatecheckbox/multistatecheckbox.cjs.js +6 -2
  257. package/multistatecheckbox/multistatecheckbox.cjs.min.js +1 -1
  258. package/multistatecheckbox/multistatecheckbox.esm.js +6 -2
  259. package/multistatecheckbox/multistatecheckbox.esm.min.js +1 -1
  260. package/multistatecheckbox/multistatecheckbox.js +6 -2
  261. package/multistatecheckbox/multistatecheckbox.min.js +1 -1
  262. package/organizationchart/organizationchart.d.ts +18 -2
  263. package/overlaypanel/overlaypanel.cjs.js +40 -46
  264. package/overlaypanel/overlaypanel.cjs.min.js +1 -1
  265. package/overlaypanel/overlaypanel.d.ts +45 -1
  266. package/overlaypanel/overlaypanel.esm.js +41 -47
  267. package/overlaypanel/overlaypanel.esm.min.js +1 -1
  268. package/overlaypanel/overlaypanel.js +41 -48
  269. package/overlaypanel/overlaypanel.min.js +1 -1
  270. package/package.json +1 -1
  271. package/panel/panel.cjs.js +78 -63
  272. package/panel/panel.cjs.min.js +1 -1
  273. package/panel/panel.d.ts +100 -1
  274. package/panel/panel.esm.js +79 -64
  275. package/panel/panel.esm.min.js +1 -1
  276. package/panel/panel.js +79 -65
  277. package/panel/panel.min.js +1 -1
  278. package/primereact.all.cjs.js +2222 -1712
  279. package/primereact.all.cjs.min.js +1 -1
  280. package/primereact.all.esm.js +2222 -1713
  281. package/primereact.all.esm.min.js +1 -1
  282. package/primereact.all.js +2222 -1712
  283. package/primereact.all.min.js +1 -1
  284. package/progressbar/progressbar.cjs.js +45 -57
  285. package/progressbar/progressbar.cjs.min.js +1 -1
  286. package/progressbar/progressbar.d.ts +38 -0
  287. package/progressbar/progressbar.esm.js +32 -44
  288. package/progressbar/progressbar.esm.min.js +1 -1
  289. package/progressbar/progressbar.js +105 -118
  290. package/progressbar/progressbar.min.js +1 -1
  291. package/progressspinner/progressspinner.cjs.js +37 -51
  292. package/progressspinner/progressspinner.cjs.min.js +1 -1
  293. package/progressspinner/progressspinner.d.ts +34 -0
  294. package/progressspinner/progressspinner.esm.js +24 -38
  295. package/progressspinner/progressspinner.esm.min.js +1 -1
  296. package/progressspinner/progressspinner.js +75 -90
  297. package/progressspinner/progressspinner.min.js +1 -1
  298. package/radiobutton/radiobutton.cjs.js +29 -14
  299. package/radiobutton/radiobutton.cjs.min.js +1 -1
  300. package/radiobutton/radiobutton.d.ts +14 -1
  301. package/radiobutton/radiobutton.esm.js +29 -14
  302. package/radiobutton/radiobutton.esm.min.js +1 -1
  303. package/radiobutton/radiobutton.js +29 -14
  304. package/radiobutton/radiobutton.min.js +1 -1
  305. package/rating/rating.cjs.js +15 -7
  306. package/rating/rating.cjs.min.js +1 -1
  307. package/rating/rating.esm.js +15 -7
  308. package/rating/rating.esm.min.js +1 -1
  309. package/rating/rating.js +14 -6
  310. package/rating/rating.min.js +1 -1
  311. package/resources/primereact.css +72 -72
  312. package/resources/primereact.min.css +1 -1
  313. package/resources/themes/arya-blue/theme.css +3 -0
  314. package/resources/themes/arya-green/theme.css +3 -0
  315. package/resources/themes/arya-orange/theme.css +3 -0
  316. package/resources/themes/arya-purple/theme.css +3 -0
  317. package/resources/themes/bootstrap4-dark-blue/theme.css +3 -0
  318. package/resources/themes/bootstrap4-dark-purple/theme.css +3 -0
  319. package/resources/themes/bootstrap4-light-blue/theme.css +3 -0
  320. package/resources/themes/bootstrap4-light-purple/theme.css +3 -0
  321. package/resources/themes/fluent-light/theme.css +3 -0
  322. package/resources/themes/lara-dark-blue/theme.css +3 -0
  323. package/resources/themes/lara-dark-indigo/theme.css +3 -0
  324. package/resources/themes/lara-dark-purple/theme.css +3 -0
  325. package/resources/themes/lara-dark-teal/theme.css +3 -0
  326. package/resources/themes/lara-light-blue/theme.css +3 -0
  327. package/resources/themes/lara-light-indigo/theme.css +3 -0
  328. package/resources/themes/lara-light-purple/theme.css +3 -0
  329. package/resources/themes/lara-light-teal/theme.css +3 -0
  330. package/resources/themes/luna-amber/theme.css +3 -0
  331. package/resources/themes/luna-blue/theme.css +3 -0
  332. package/resources/themes/luna-green/theme.css +3 -0
  333. package/resources/themes/luna-pink/theme.css +3 -0
  334. package/resources/themes/md-dark-deeppurple/theme.css +3 -0
  335. package/resources/themes/md-dark-indigo/theme.css +3 -0
  336. package/resources/themes/md-light-deeppurple/theme.css +3 -0
  337. package/resources/themes/md-light-indigo/theme.css +3 -0
  338. package/resources/themes/mdc-dark-deeppurple/theme.css +3 -0
  339. package/resources/themes/mdc-dark-indigo/theme.css +3 -0
  340. package/resources/themes/mdc-light-deeppurple/theme.css +3 -0
  341. package/resources/themes/mdc-light-indigo/theme.css +3 -0
  342. package/resources/themes/mira/theme.css +3 -0
  343. package/resources/themes/nano/theme.css +3 -0
  344. package/resources/themes/nova/theme.css +3 -0
  345. package/resources/themes/nova-accent/theme.css +3 -0
  346. package/resources/themes/nova-alt/theme.css +3 -0
  347. package/resources/themes/rhea/theme.css +3 -0
  348. package/resources/themes/saga-blue/theme.css +3 -0
  349. package/resources/themes/saga-green/theme.css +3 -0
  350. package/resources/themes/saga-orange/theme.css +3 -0
  351. package/resources/themes/saga-purple/theme.css +3 -0
  352. package/resources/themes/soho-dark/theme.css +3 -0
  353. package/resources/themes/soho-light/theme.css +3 -0
  354. package/resources/themes/tailwind-light/theme.css +3 -0
  355. package/resources/themes/vela-blue/theme.css +3 -0
  356. package/resources/themes/vela-green/theme.css +3 -0
  357. package/resources/themes/vela-orange/theme.css +3 -0
  358. package/resources/themes/vela-purple/theme.css +3 -0
  359. package/resources/themes/viva-dark/theme.css +3 -0
  360. package/resources/themes/viva-light/theme.css +3 -0
  361. package/scrollpanel/scrollpanel.cjs.js +39 -52
  362. package/scrollpanel/scrollpanel.cjs.min.js +1 -1
  363. package/scrollpanel/scrollpanel.d.ts +42 -0
  364. package/scrollpanel/scrollpanel.esm.js +26 -39
  365. package/scrollpanel/scrollpanel.esm.min.js +1 -1
  366. package/scrollpanel/scrollpanel.js +193 -207
  367. package/scrollpanel/scrollpanel.min.js +1 -1
  368. package/scrolltop/scrolltop.cjs.js +64 -36
  369. package/scrolltop/scrolltop.cjs.min.js +1 -1
  370. package/scrolltop/scrolltop.d.ts +42 -1
  371. package/scrolltop/scrolltop.esm.js +65 -37
  372. package/scrolltop/scrolltop.esm.min.js +1 -1
  373. package/scrolltop/scrolltop.js +65 -38
  374. package/scrolltop/scrolltop.min.js +1 -1
  375. package/selectbutton/selectbutton.cjs.js +6 -2
  376. package/selectbutton/selectbutton.cjs.min.js +1 -1
  377. package/selectbutton/selectbutton.esm.js +6 -2
  378. package/selectbutton/selectbutton.esm.min.js +1 -1
  379. package/selectbutton/selectbutton.js +6 -2
  380. package/selectbutton/selectbutton.min.js +1 -1
  381. package/sidebar/sidebar.cjs.js +88 -52
  382. package/sidebar/sidebar.cjs.min.js +1 -1
  383. package/sidebar/sidebar.d.ts +58 -1
  384. package/sidebar/sidebar.esm.js +89 -53
  385. package/sidebar/sidebar.esm.min.js +1 -1
  386. package/sidebar/sidebar.js +89 -54
  387. package/sidebar/sidebar.min.js +1 -1
  388. package/skeleton/skeleton.cjs.js +26 -42
  389. package/skeleton/skeleton.cjs.min.js +1 -1
  390. package/skeleton/skeleton.d.ts +26 -0
  391. package/skeleton/skeleton.esm.js +13 -29
  392. package/skeleton/skeleton.esm.min.js +1 -1
  393. package/skeleton/skeleton.js +70 -87
  394. package/skeleton/skeleton.min.js +1 -1
  395. package/speeddial/speeddial.cjs.js +63 -56
  396. package/speeddial/speeddial.cjs.min.js +1 -1
  397. package/speeddial/speeddial.d.ts +64 -1
  398. package/speeddial/speeddial.esm.js +64 -57
  399. package/speeddial/speeddial.esm.min.js +1 -1
  400. package/speeddial/speeddial.js +62 -56
  401. package/speeddial/speeddial.min.js +1 -1
  402. package/splitbutton/splitbutton.cjs.js +50 -40
  403. package/splitbutton/splitbutton.cjs.min.js +1 -1
  404. package/splitbutton/splitbutton.d.ts +59 -1
  405. package/splitbutton/splitbutton.esm.js +51 -41
  406. package/splitbutton/splitbutton.esm.min.js +1 -1
  407. package/splitbutton/splitbutton.js +50 -41
  408. package/splitbutton/splitbutton.min.js +1 -1
  409. package/splitter/splitter.cjs.js +68 -70
  410. package/splitter/splitter.cjs.min.js +1 -1
  411. package/splitter/splitter.d.ts +60 -0
  412. package/splitter/splitter.esm.js +69 -71
  413. package/splitter/splitter.esm.min.js +1 -1
  414. package/splitter/splitter.js +69 -72
  415. package/splitter/splitter.min.js +1 -1
  416. package/styleclass/styleclass.cjs.js +9 -7
  417. package/styleclass/styleclass.cjs.min.js +1 -1
  418. package/styleclass/styleclass.esm.js +9 -7
  419. package/styleclass/styleclass.esm.min.js +1 -1
  420. package/styleclass/styleclass.js +9 -7
  421. package/styleclass/styleclass.min.js +1 -1
  422. package/tabview/tabview.cjs.js +142 -122
  423. package/tabview/tabview.cjs.min.js +1 -1
  424. package/tabview/tabview.d.ts +132 -1
  425. package/tabview/tabview.esm.js +143 -123
  426. package/tabview/tabview.esm.min.js +1 -1
  427. package/tabview/tabview.js +143 -124
  428. package/tabview/tabview.min.js +1 -1
  429. package/tag/tag.cjs.js +18 -30
  430. package/tag/tag.cjs.min.js +1 -1
  431. package/tag/tag.d.ts +34 -1
  432. package/tag/tag.esm.js +19 -31
  433. package/tag/tag.esm.min.js +1 -1
  434. package/tag/tag.js +19 -32
  435. package/tag/tag.min.js +1 -1
  436. package/terminal/terminal.cjs.js +49 -52
  437. package/terminal/terminal.cjs.min.js +1 -1
  438. package/terminal/terminal.d.ts +73 -0
  439. package/terminal/terminal.esm.js +50 -53
  440. package/terminal/terminal.esm.min.js +1 -1
  441. package/terminal/terminal.js +50 -54
  442. package/terminal/terminal.min.js +1 -1
  443. package/terminalservice/terminalservice.d.ts +1 -1
  444. package/timeline/timeline.d.ts +1 -1
  445. package/toast/toast.cjs.js +13 -10
  446. package/toast/toast.cjs.min.js +1 -1
  447. package/toast/toast.d.ts +4 -0
  448. package/toast/toast.esm.js +13 -10
  449. package/toast/toast.esm.min.js +1 -1
  450. package/toast/toast.js +13 -10
  451. package/toast/toast.min.js +1 -1
  452. package/togglebutton/togglebutton.cjs.js +6 -2
  453. package/togglebutton/togglebutton.cjs.min.js +1 -1
  454. package/togglebutton/togglebutton.esm.js +6 -2
  455. package/togglebutton/togglebutton.esm.min.js +1 -1
  456. package/togglebutton/togglebutton.js +6 -2
  457. package/togglebutton/togglebutton.min.js +1 -1
  458. package/toolbar/toolbar.cjs.js +35 -49
  459. package/toolbar/toolbar.cjs.min.js +1 -1
  460. package/toolbar/toolbar.d.ts +44 -0
  461. package/toolbar/toolbar.esm.js +22 -36
  462. package/toolbar/toolbar.esm.min.js +1 -1
  463. package/toolbar/toolbar.js +72 -87
  464. package/toolbar/toolbar.min.js +1 -1
  465. package/tooltip/tooltip.cjs.js +31 -37
  466. package/tooltip/tooltip.cjs.min.js +1 -1
  467. package/tooltip/tooltip.d.ts +55 -0
  468. package/tooltip/tooltip.esm.js +32 -38
  469. package/tooltip/tooltip.esm.min.js +1 -1
  470. package/tooltip/tooltip.js +32 -39
  471. package/tooltip/tooltip.min.js +1 -1
  472. package/tooltip/tooltipoptions.d.ts +5 -0
  473. package/tree/tree.d.ts +1 -1
  474. package/treenode/treenode.d.ts +5 -1
  475. package/treeselect/treeselect.cjs.js +9 -5
  476. package/treeselect/treeselect.cjs.min.js +1 -1
  477. package/treeselect/treeselect.d.ts +1 -1
  478. package/treeselect/treeselect.esm.js +9 -5
  479. package/treeselect/treeselect.esm.min.js +1 -1
  480. package/treeselect/treeselect.js +8 -4
  481. package/treeselect/treeselect.min.js +1 -1
  482. package/treetable/treetable.cjs.js +10 -3
  483. package/treetable/treetable.cjs.min.js +1 -1
  484. package/treetable/treetable.d.ts +1 -1
  485. package/treetable/treetable.esm.js +10 -3
  486. package/treetable/treetable.esm.min.js +1 -1
  487. package/treetable/treetable.js +10 -3
  488. package/treetable/treetable.min.js +1 -1
  489. package/tristatecheckbox/tristatecheckbox.cjs.js +8 -4
  490. package/tristatecheckbox/tristatecheckbox.cjs.min.js +1 -1
  491. package/tristatecheckbox/tristatecheckbox.esm.js +8 -4
  492. package/tristatecheckbox/tristatecheckbox.esm.min.js +1 -1
  493. package/tristatecheckbox/tristatecheckbox.js +8 -4
  494. package/tristatecheckbox/tristatecheckbox.min.js +1 -1
  495. package/utils/utils.cjs.js +710 -672
  496. package/utils/utils.cjs.min.js +1 -1
  497. package/utils/utils.d.ts +4 -0
  498. package/utils/utils.esm.js +710 -673
  499. package/utils/utils.esm.min.js +1 -1
  500. package/utils/utils.js +710 -672
  501. package/utils/utils.min.js +1 -1
  502. package/web-types.json +13 -1
@@ -9,6 +9,7 @@ var minus = require('primereact/icons/minus');
9
9
  var plus = require('primereact/icons/plus');
10
10
  var ripple = require('primereact/ripple');
11
11
  var utils = require('primereact/utils');
12
+ var componentbase = require('primereact/componentbase');
12
13
 
13
14
  function _interopNamespace(e) {
14
15
  if (e && e.__esModule) return e;
@@ -30,21 +31,6 @@ function _interopNamespace(e) {
30
31
 
31
32
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
32
33
 
33
- function _extends() {
34
- _extends = Object.assign ? Object.assign.bind() : function (target) {
35
- for (var i = 1; i < arguments.length; i++) {
36
- var source = arguments[i];
37
- for (var key in source) {
38
- if (Object.prototype.hasOwnProperty.call(source, key)) {
39
- target[key] = source[key];
40
- }
41
- }
42
- }
43
- return target;
44
- };
45
- return _extends.apply(this, arguments);
46
- }
47
-
48
34
  function _arrayWithHoles(arr) {
49
35
  if (Array.isArray(arr)) return arr;
50
36
  }
@@ -100,12 +86,14 @@ function _slicedToArray(arr, i) {
100
86
  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
101
87
  }
102
88
 
103
- var PanelBase = {
89
+ var PanelBase = componentbase.ComponentBase.extend({
104
90
  defaultProps: {
105
91
  __TYPE: 'Panel',
106
92
  id: null,
107
93
  header: null,
108
94
  headerTemplate: null,
95
+ footer: null,
96
+ footerTemplate: null,
109
97
  toggleable: null,
110
98
  style: null,
111
99
  className: null,
@@ -118,14 +106,8 @@ var PanelBase = {
118
106
  onCollapse: null,
119
107
  onToggle: null,
120
108
  children: undefined
121
- },
122
- getProps: function getProps(props) {
123
- return utils.ObjectUtils.getMergedProps(props, PanelBase.defaultProps);
124
- },
125
- getOtherProps: function getOtherProps(props) {
126
- return utils.ObjectUtils.getDiffProps(props, PanelBase.defaultProps);
127
109
  }
128
- };
110
+ });
129
111
 
130
112
  var Panel = /*#__PURE__*/React__namespace.forwardRef(function (inProps, ref) {
131
113
  var props = PanelBase.getProps(inProps);
@@ -142,6 +124,14 @@ var Panel = /*#__PURE__*/React__namespace.forwardRef(function (inProps, ref) {
142
124
  var collapsed = props.toggleable ? props.onToggle ? props.collapsed : collapsedState : false;
143
125
  var headerId = idState + '_header';
144
126
  var contentId = idState + '_content';
127
+ var _PanelBase$setMetaDat = PanelBase.setMetaData({
128
+ props: props,
129
+ state: {
130
+ id: idState,
131
+ collapsed: collapsed
132
+ }
133
+ }),
134
+ ptm = _PanelBase$setMetaDat.ptm;
145
135
  var toggle = function toggle(event) {
146
136
  if (props.toggleable) {
147
137
  collapsed ? expand(event) : collapse(event);
@@ -188,19 +178,21 @@ var Panel = /*#__PURE__*/React__namespace.forwardRef(function (inProps, ref) {
188
178
  var createToggleIcon = function createToggleIcon() {
189
179
  if (props.toggleable) {
190
180
  var buttonId = idState + '_label';
191
- var icon = collapsed ? props.expandIcon || /*#__PURE__*/React__namespace.createElement(plus.PlusIcon, null) : props.collapseIcon || /*#__PURE__*/React__namespace.createElement(minus.MinusIcon, null);
192
- var toggleIcon = utils.IconUtils.getJSXIcon(icon, undefined, {
181
+ var togglerProps = utils.mergeProps({
182
+ className: 'p-panel-header-icon p-panel-toggler p-link',
183
+ onClick: toggle,
184
+ id: buttonId,
185
+ 'aria-controls': contentId,
186
+ 'aria-expanded': !collapsed,
187
+ role: 'tab'
188
+ }, ptm('toggler'));
189
+ var togglerIconProps = utils.mergeProps(ptm('togglericon'));
190
+ var icon = collapsed ? props.expandIcon || /*#__PURE__*/React__namespace.createElement(plus.PlusIcon, togglerIconProps) : props.collapseIcon || /*#__PURE__*/React__namespace.createElement(minus.MinusIcon, togglerIconProps);
191
+ var toggleIcon = utils.IconUtils.getJSXIcon(icon, togglerIconProps, {
193
192
  props: props,
194
193
  collapsed: collapsed
195
194
  });
196
- return /*#__PURE__*/React__namespace.createElement("button", {
197
- className: "p-panel-header-icon p-panel-toggler p-link",
198
- onClick: toggle,
199
- id: buttonId,
200
- "aria-controls": contentId,
201
- "aria-expanded": !collapsed,
202
- role: "tab"
203
- }, toggleIcon, /*#__PURE__*/React__namespace.createElement(ripple.Ripple, null));
195
+ return /*#__PURE__*/React__namespace.createElement("button", togglerProps, toggleIcon, /*#__PURE__*/React__namespace.createElement(ripple.Ripple, null));
204
196
  }
205
197
  return null;
206
198
  };
@@ -208,16 +200,19 @@ var Panel = /*#__PURE__*/React__namespace.forwardRef(function (inProps, ref) {
208
200
  var header = utils.ObjectUtils.getJSXElement(props.header, props);
209
201
  var icons = utils.ObjectUtils.getJSXElement(props.icons, props);
210
202
  var togglerElement = createToggleIcon();
211
- var titleElement = /*#__PURE__*/React__namespace.createElement("span", {
212
- className: "p-panel-title",
213
- id: headerId
214
- }, header);
215
- var iconsElement = /*#__PURE__*/React__namespace.createElement("div", {
216
- className: "p-panel-icons"
217
- }, icons, togglerElement);
218
- var content = /*#__PURE__*/React__namespace.createElement("div", {
219
- className: "p-panel-header"
220
- }, titleElement, iconsElement);
203
+ var titleProps = utils.mergeProps({
204
+ id: headerId,
205
+ className: 'p-panel-title'
206
+ }, ptm('title'));
207
+ var titleElement = /*#__PURE__*/React__namespace.createElement("span", titleProps, header);
208
+ var iconsProps = utils.mergeProps({
209
+ className: 'p-panel-icons'
210
+ }, ptm('icons'));
211
+ var iconsElement = /*#__PURE__*/React__namespace.createElement("div", iconsProps, icons, togglerElement);
212
+ var headerProps = utils.mergeProps({
213
+ className: 'p-panel-header'
214
+ }, ptm('header'));
215
+ var content = /*#__PURE__*/React__namespace.createElement("div", headerProps, titleElement, iconsElement);
221
216
  if (props.headerTemplate) {
222
217
  var defaultContentOptions = {
223
218
  className: 'p-panel-header',
@@ -239,6 +234,17 @@ var Panel = /*#__PURE__*/React__namespace.forwardRef(function (inProps, ref) {
239
234
  return null;
240
235
  };
241
236
  var createContent = function createContent() {
237
+ var toggleableContentProps = utils.mergeProps({
238
+ ref: contentRef,
239
+ className: 'p-toggleable-content',
240
+ 'aria-hidden': collapsed,
241
+ role: 'region',
242
+ id: contentId,
243
+ 'aria-labelledby': headerId
244
+ }, ptm('toggleablecontent'));
245
+ var contentProps = utils.mergeProps({
246
+ className: 'p-panel-content'
247
+ }, ptm('content'));
242
248
  return /*#__PURE__*/React__namespace.createElement(csstransition.CSSTransition, {
243
249
  nodeRef: contentRef,
244
250
  classNames: "p-toggleable-content",
@@ -249,29 +255,38 @@ var Panel = /*#__PURE__*/React__namespace.forwardRef(function (inProps, ref) {
249
255
  "in": !collapsed,
250
256
  unmountOnExit: true,
251
257
  options: props.transitionOptions
252
- }, /*#__PURE__*/React__namespace.createElement("div", {
253
- ref: contentRef,
254
- className: "p-toggleable-content",
255
- "aria-hidden": collapsed,
256
- role: "region",
257
- id: contentId,
258
- "aria-labelledby": headerId
259
- }, /*#__PURE__*/React__namespace.createElement("div", {
260
- className: "p-panel-content"
261
- }, props.children)));
258
+ }, /*#__PURE__*/React__namespace.createElement("div", toggleableContentProps, /*#__PURE__*/React__namespace.createElement("div", contentProps, props.children)));
262
259
  };
263
- var otherProps = PanelBase.getOtherProps(props);
264
- var className = utils.classNames('p-panel p-component', {
265
- 'p-panel-toggleable': props.toggleable
266
- }, props.className);
260
+ var createFooter = function createFooter() {
261
+ var footer = utils.ObjectUtils.getJSXElement(props.footer, props);
262
+ var footerProps = utils.mergeProps({
263
+ className: 'p-panel-footer'
264
+ }, ptm('footer'));
265
+ var content = /*#__PURE__*/React__namespace.createElement("div", footerProps, footer);
266
+ if (props.footerTemplate) {
267
+ var defaultContentOptions = {
268
+ className: 'p-panel-footer',
269
+ element: content,
270
+ props: props
271
+ };
272
+ return utils.ObjectUtils.getJSXElement(props.footerTemplate, defaultContentOptions);
273
+ } else if (props.footer) {
274
+ return content;
275
+ }
276
+ return null;
277
+ };
278
+ var rootProps = utils.mergeProps({
279
+ id: idState,
280
+ ref: elementRef,
281
+ style: props.style,
282
+ className: utils.classNames('p-panel p-component', {
283
+ 'p-panel-toggleable': props.toggleable
284
+ }, props.className)
285
+ }, PanelBase.getOtherProps(props), ptm('root'));
267
286
  var header = createHeader();
268
287
  var content = createContent();
269
- return /*#__PURE__*/React__namespace.createElement("div", _extends({
270
- id: props.id,
271
- ref: elementRef,
272
- className: className,
273
- style: props.style
274
- }, otherProps), header, content);
288
+ var footer = createFooter();
289
+ return /*#__PURE__*/React__namespace.createElement("div", rootProps, header, content, footer);
275
290
  });
276
291
  Panel.displayName = 'Panel';
277
292
 
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("primereact/csstransition"),n=require("primereact/hooks"),l=require("primereact/icons/minus"),r=require("primereact/icons/plus"),a=require("primereact/ripple"),o=require("primereact/utils");function i(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var l=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,l.get?l:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var c=i(e);function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var l in n)Object.prototype.hasOwnProperty.call(n,l)&&(e[l]=n[l])}return e},s.apply(this,arguments)}function u(e){if(Array.isArray(e))return e}function p(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var l,r,a,o,i=[],c=!0,s=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(l=a.call(n)).done)&&(i.push(l.value),i.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw r}}return i}}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,l=new Array(t);n<t;n++)l[n]=e[n];return l}function d(e,t){if(e){if("string"==typeof e)return f(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?f(e,t):void 0}}function g(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function m(e,t){return u(e)||p(e,t)||d(e,t)||g()}var b={defaultProps:{__TYPE:"Panel",id:null,header:null,headerTemplate:null,toggleable:null,style:null,className:null,collapsed:null,expandIcon:null,collapseIcon:null,icons:null,transitionOptions:null,onExpand:null,onCollapse:null,onToggle:null,children:void 0},getProps:function(e){return o.ObjectUtils.getMergedProps(e,b.defaultProps)},getOtherProps:function(e){return o.ObjectUtils.getDiffProps(e,b.defaultProps)}},v=c.forwardRef((function(e,i){var u=b.getProps(e),p=m(c.useState(u.id),2),f=p[0],d=p[1],g=m(c.useState(u.collapsed),2),v=g[0],h=g[1],y=c.useRef(i),E=c.useRef(null),O=!!u.toggleable&&(u.onToggle?u.collapsed:v),j=f+"_header",P=f+"_content",N=function(e){u.toggleable&&(O?I(e):S(e),u.onToggle&&u.onToggle({originalEvent:e,value:!O})),e.preventDefault()},I=function(e){u.onToggle||h(!1),u.onExpand&&u.onExpand(e)},S=function(e){u.onToggle||h(!0),u.onCollapse&&u.onCollapse(e)};c.useImperativeHandle(i,(function(){return{props:u,getElement:function(){return y.current},getContent:function(){return E.current}}})),c.useEffect((function(){o.ObjectUtils.combinedRefs(y,i)}),[y,i]),n.useMountEffect((function(){f||d(o.UniqueComponentId())}));var T=function(){if(u.toggleable){var e=f+"_label",t=o.IconUtils.getJSXIcon(O?u.expandIcon||c.createElement(r.PlusIcon,null):u.collapseIcon||c.createElement(l.MinusIcon,null),void 0,{props:u,collapsed:O});return c.createElement("button",{className:"p-panel-header-icon p-panel-toggler p-link",onClick:N,id:e,"aria-controls":P,"aria-expanded":!O,role:"tab"},t,c.createElement(a.Ripple,null))}return null},C=b.getOtherProps(u),x=o.classNames("p-panel p-component",{"p-panel-toggleable":u.toggleable},u.className),U=function(){var e=o.ObjectUtils.getJSXElement(u.header,u),t=o.ObjectUtils.getJSXElement(u.icons,u),n=T(),l=c.createElement("span",{className:"p-panel-title",id:j},e),r=c.createElement("div",{className:"p-panel-icons"},t,n),a=c.createElement("div",{className:"p-panel-header"},l,r);return u.headerTemplate?o.ObjectUtils.getJSXElement(u.headerTemplate,{className:"p-panel-header",titleClassName:"p-panel-title",iconsClassName:"p-panel-icons",togglerClassName:"p-panel-header-icon p-panel-toggler p-link",onTogglerClick:N,titleElement:l,iconsElement:r,togglerElement:n,element:a,props:u,collapsed:O}):u.header||u.toggleable?a:null}(),_=c.createElement(t.CSSTransition,{nodeRef:E,classNames:"p-toggleable-content",timeout:{enter:1e3,exit:450},in:!O,unmountOnExit:!0,options:u.transitionOptions},c.createElement("div",{ref:E,className:"p-toggleable-content","aria-hidden":O,role:"region",id:P,"aria-labelledby":j},c.createElement("div",{className:"p-panel-content"},u.children)));return c.createElement("div",s({id:u.id,ref:y,className:x,style:u.style},C),U,_)}));v.displayName="Panel",exports.Panel=v;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("primereact/csstransition"),n=require("primereact/hooks"),l=require("primereact/icons/minus"),r=require("primereact/icons/plus"),o=require("primereact/ripple"),a=require("primereact/utils"),i=require("primereact/componentbase");function c(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var l=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,l.get?l:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var s=c(e);function p(e){if(Array.isArray(e))return e}function u(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var l,r,o,a,i=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(l=o.call(n)).done)&&(i.push(l.value),i.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(s)throw r}}return i}}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,l=new Array(t);n<t;n++)l[n]=e[n];return l}function g(e,t){if(e){if("string"==typeof e)return m(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?m(e,t):void 0}}function f(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function d(e,t){return p(e)||u(e,t)||g(e,t)||f()}var b=i.ComponentBase.extend({defaultProps:{__TYPE:"Panel",id:null,header:null,headerTemplate:null,footer:null,footerTemplate:null,toggleable:null,style:null,className:null,collapsed:null,expandIcon:null,collapseIcon:null,icons:null,transitionOptions:null,onExpand:null,onCollapse:null,onToggle:null,children:void 0}}),E=s.forwardRef((function(e,i){var c=b.getProps(e),p=d(s.useState(c.id),2),u=p[0],m=p[1],g=d(s.useState(c.collapsed),2),f=g[0],E=g[1],v=s.useRef(i),h=s.useRef(null),y=!!c.toggleable&&(c.onToggle?c.collapsed:f),O=u+"_header",P=u+"_content",N=b.setMetaData({props:c,state:{id:u,collapsed:y}}).ptm,j=function(e){c.toggleable&&(y?T(e):S(e),c.onToggle&&c.onToggle({originalEvent:e,value:!y})),e.preventDefault()},T=function(e){c.onToggle||E(!1),c.onExpand&&c.onExpand(e)},S=function(e){c.onToggle||E(!0),c.onCollapse&&c.onCollapse(e)};s.useImperativeHandle(i,(function(){return{props:c,getElement:function(){return v.current},getContent:function(){return h.current}}})),s.useEffect((function(){a.ObjectUtils.combinedRefs(v,i)}),[v,i]),n.useMountEffect((function(){u||m(a.UniqueComponentId())}));var C,I,x=function(){if(c.toggleable){var e=a.mergeProps({className:"p-panel-header-icon p-panel-toggler p-link",onClick:j,id:u+"_label","aria-controls":P,"aria-expanded":!y,role:"tab"},N("toggler")),t=a.mergeProps(N("togglericon")),n=a.IconUtils.getJSXIcon(y?c.expandIcon||s.createElement(r.PlusIcon,t):c.collapseIcon||s.createElement(l.MinusIcon,t),t,{props:c,collapsed:y});return s.createElement("button",e,n,s.createElement(o.Ripple,null))}return null},q=a.mergeProps({id:u,ref:v,style:c.style,className:a.classNames("p-panel p-component",{"p-panel-toggleable":c.toggleable},c.className)},b.getOtherProps(c),N("root")),U=function(){var e=a.ObjectUtils.getJSXElement(c.header,c),t=a.ObjectUtils.getJSXElement(c.icons,c),n=x(),l=a.mergeProps({id:O,className:"p-panel-title"},N("title")),r=s.createElement("span",l,e),o=a.mergeProps({className:"p-panel-icons"},N("icons")),i=s.createElement("div",o,t,n),p=a.mergeProps({className:"p-panel-header"},N("header")),u=s.createElement("div",p,r,i);return c.headerTemplate?a.ObjectUtils.getJSXElement(c.headerTemplate,{className:"p-panel-header",titleClassName:"p-panel-title",iconsClassName:"p-panel-icons",togglerClassName:"p-panel-header-icon p-panel-toggler p-link",onTogglerClick:j,titleElement:r,iconsElement:i,togglerElement:n,element:u,props:c,collapsed:y}):c.header||c.toggleable?u:null}(),_=(C=a.mergeProps({ref:h,className:"p-toggleable-content","aria-hidden":y,role:"region",id:P,"aria-labelledby":O},N("toggleablecontent")),I=a.mergeProps({className:"p-panel-content"},N("content")),s.createElement(t.CSSTransition,{nodeRef:h,classNames:"p-toggleable-content",timeout:{enter:1e3,exit:450},in:!y,unmountOnExit:!0,options:c.transitionOptions},s.createElement("div",C,s.createElement("div",I,c.children)))),k=function(){var e=a.ObjectUtils.getJSXElement(c.footer,c),t=a.mergeProps({className:"p-panel-footer"},N("footer")),n=s.createElement("div",t,e);return c.footerTemplate?a.ObjectUtils.getJSXElement(c.footerTemplate,{className:"p-panel-footer",element:n,props:c}):c.footer?n:null}();return s.createElement("div",q,U,_,k)}));E.displayName="Panel",exports.Panel=E;
package/panel/panel.d.ts CHANGED
@@ -9,7 +9,9 @@
9
9
  */
10
10
  import * as React from 'react';
11
11
  import { CSSTransitionProps } from '../csstransition';
12
- import { IconType } from '../utils';
12
+ import { IconType, PassThroughType } from '../utils';
13
+
14
+ export declare type PanelPassThroughType<T> = PassThroughType<T, PanelPassThroughMethodOptions>;
13
15
 
14
16
  /**
15
17
  * Custom panel header template options.
@@ -65,6 +67,23 @@ interface PanelHeaderTemplateOptions {
65
67
  */
66
68
  collapsed: boolean;
67
69
  }
70
+ /**
71
+ * Custom panel footer template options.
72
+ */
73
+ interface PanelFooterTemplateOptions {
74
+ /**
75
+ * Style class of the panel.
76
+ */
77
+ className: string;
78
+ /**
79
+ * The JSX element that represents the panel.
80
+ */
81
+ element: JSX.Element;
82
+ /**
83
+ * The props of the Panel component.
84
+ */
85
+ props: PanelProps;
86
+ }
68
87
 
69
88
  /**
70
89
  * Custom toggle event.
@@ -82,6 +101,72 @@ interface PanelToggleEvent {
82
101
  value: boolean;
83
102
  }
84
103
 
104
+ /**
105
+ * Custom passthrough(pt) option method.
106
+ */
107
+ export interface PanelPassThroughMethodOptions {
108
+ props: PanelProps;
109
+ state: PanelState;
110
+ }
111
+
112
+ /**
113
+ * Custom passthrough(pt) options.
114
+ * @see {@link PanelProps.pt}
115
+ */
116
+ export interface PanelPassThroughOptions {
117
+ /**
118
+ * Uses to pass attributes to the root's DOM element.
119
+ */
120
+ root?: PanelPassThroughType<React.HTMLAttributes<HTMLDivElement>>;
121
+ /**
122
+ * Uses to pass attributes to the header's DOM element.
123
+ */
124
+ header?: PanelPassThroughType<React.HTMLAttributes<HTMLDivElement>>;
125
+ /**
126
+ * Uses to pass attributes to the title's DOM element.
127
+ */
128
+ title?: PanelPassThroughType<React.HTMLAttributes<HTMLSpanElement>>;
129
+ /**
130
+ * Uses to pass attributes to the icons' DOM element.
131
+ */
132
+ icons?: PanelPassThroughType<React.HTMLAttributes<HTMLDivElement>>;
133
+ /**
134
+ * Uses to pass attributes to the toggler's DOM element.
135
+ */
136
+ toggler?: PanelPassThroughType<React.HTMLAttributes<HTMLButtonElement>>;
137
+ /**
138
+ * Uses to pass attributes to the togglericon's DOM element.
139
+ */
140
+ togglerIcon?: PanelPassThroughType<React.SVGProps<SVGSVGElement> | React.HTMLAttributes<HTMLSpanElement>>;
141
+ /**
142
+ * Uses to pass attributes to the toggleablecontent's DOM element.
143
+ */
144
+ toggleableContent?: PanelPassThroughType<React.HTMLAttributes<HTMLDivElement>>;
145
+ /**
146
+ * Uses to pass attributes to the content's DOM element.
147
+ */
148
+ content?: PanelPassThroughType<React.HTMLAttributes<HTMLDivElement>>;
149
+ /**
150
+ * Uses to pass attributes to the footer's DOM element.
151
+ */
152
+ footer?: PanelPassThroughType<React.HTMLAttributes<HTMLDivElement>>;
153
+ }
154
+
155
+ /**
156
+ * Defines current inline state in Panel component.
157
+ */
158
+ export interface PanelState {
159
+ /**
160
+ * Current id state.
161
+ */
162
+ id: string;
163
+ /**
164
+ * Current collapsed state as a boolean.
165
+ * @defaultValue false
166
+ */
167
+ collapsed: boolean;
168
+ }
169
+
85
170
  /**
86
171
  * Defines valid properties in Panel component. In addition to these, all properties of HTMLDivElement can be used in this component.
87
172
  * @group Properties
@@ -91,11 +176,20 @@ export interface PanelProps extends Omit<React.DetailedHTMLProps<React.HTMLAttri
91
176
  * Custom header template of the panel.
92
177
  */
93
178
  header?: React.ReactNode | undefined;
179
+ /**
180
+ * Custom footer template of the panel.
181
+ */
182
+ footer?: React.ReactNode | undefined;
94
183
  /**
95
184
  * Header template of the panel to customize more.
96
185
  * @param {PanelHeaderTemplateOptions} options - Options to customize the header template.
97
186
  */
98
187
  headerTemplate?: React.ReactNode | ((options: PanelHeaderTemplateOptions) => React.ReactNode);
188
+ /**
189
+ * Footer template of the panel to customize more.
190
+ * @param {PanelFooterTemplateOptions} options - Options to customize the footer template.
191
+ */
192
+ footerTemplate?: React.ReactNode | ((options: PanelFooterTemplateOptions) => React.ReactNode);
99
193
  /**
100
194
  * Defines if content of panel can be expanded and collapsed.
101
195
  * @defaultValue false
@@ -143,6 +237,11 @@ export interface PanelProps extends Omit<React.DetailedHTMLProps<React.HTMLAttri
143
237
  * @readonly
144
238
  */
145
239
  children?: React.ReactNode | undefined;
240
+ /**
241
+ * Uses to pass attributes to DOM elements inside the component.
242
+ * @type {PanelPassThroughOptions}
243
+ */
244
+ pt?: PanelPassThroughOptions;
146
245
  }
147
246
 
148
247
  /**
@@ -4,22 +4,8 @@ import { useMountEffect } from 'primereact/hooks';
4
4
  import { MinusIcon } from 'primereact/icons/minus';
5
5
  import { PlusIcon } from 'primereact/icons/plus';
6
6
  import { Ripple } from 'primereact/ripple';
7
- import { ObjectUtils, UniqueComponentId, classNames, IconUtils } from 'primereact/utils';
8
-
9
- function _extends() {
10
- _extends = Object.assign ? Object.assign.bind() : function (target) {
11
- for (var i = 1; i < arguments.length; i++) {
12
- var source = arguments[i];
13
- for (var key in source) {
14
- if (Object.prototype.hasOwnProperty.call(source, key)) {
15
- target[key] = source[key];
16
- }
17
- }
18
- }
19
- return target;
20
- };
21
- return _extends.apply(this, arguments);
22
- }
7
+ import { ObjectUtils, UniqueComponentId, mergeProps, classNames, IconUtils } from 'primereact/utils';
8
+ import { ComponentBase } from 'primereact/componentbase';
23
9
 
24
10
  function _arrayWithHoles(arr) {
25
11
  if (Array.isArray(arr)) return arr;
@@ -76,12 +62,14 @@ function _slicedToArray(arr, i) {
76
62
  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
77
63
  }
78
64
 
79
- var PanelBase = {
65
+ var PanelBase = ComponentBase.extend({
80
66
  defaultProps: {
81
67
  __TYPE: 'Panel',
82
68
  id: null,
83
69
  header: null,
84
70
  headerTemplate: null,
71
+ footer: null,
72
+ footerTemplate: null,
85
73
  toggleable: null,
86
74
  style: null,
87
75
  className: null,
@@ -94,14 +82,8 @@ var PanelBase = {
94
82
  onCollapse: null,
95
83
  onToggle: null,
96
84
  children: undefined
97
- },
98
- getProps: function getProps(props) {
99
- return ObjectUtils.getMergedProps(props, PanelBase.defaultProps);
100
- },
101
- getOtherProps: function getOtherProps(props) {
102
- return ObjectUtils.getDiffProps(props, PanelBase.defaultProps);
103
85
  }
104
- };
86
+ });
105
87
 
106
88
  var Panel = /*#__PURE__*/React.forwardRef(function (inProps, ref) {
107
89
  var props = PanelBase.getProps(inProps);
@@ -118,6 +100,14 @@ var Panel = /*#__PURE__*/React.forwardRef(function (inProps, ref) {
118
100
  var collapsed = props.toggleable ? props.onToggle ? props.collapsed : collapsedState : false;
119
101
  var headerId = idState + '_header';
120
102
  var contentId = idState + '_content';
103
+ var _PanelBase$setMetaDat = PanelBase.setMetaData({
104
+ props: props,
105
+ state: {
106
+ id: idState,
107
+ collapsed: collapsed
108
+ }
109
+ }),
110
+ ptm = _PanelBase$setMetaDat.ptm;
121
111
  var toggle = function toggle(event) {
122
112
  if (props.toggleable) {
123
113
  collapsed ? expand(event) : collapse(event);
@@ -164,19 +154,21 @@ var Panel = /*#__PURE__*/React.forwardRef(function (inProps, ref) {
164
154
  var createToggleIcon = function createToggleIcon() {
165
155
  if (props.toggleable) {
166
156
  var buttonId = idState + '_label';
167
- var icon = collapsed ? props.expandIcon || /*#__PURE__*/React.createElement(PlusIcon, null) : props.collapseIcon || /*#__PURE__*/React.createElement(MinusIcon, null);
168
- var toggleIcon = IconUtils.getJSXIcon(icon, undefined, {
157
+ var togglerProps = mergeProps({
158
+ className: 'p-panel-header-icon p-panel-toggler p-link',
159
+ onClick: toggle,
160
+ id: buttonId,
161
+ 'aria-controls': contentId,
162
+ 'aria-expanded': !collapsed,
163
+ role: 'tab'
164
+ }, ptm('toggler'));
165
+ var togglerIconProps = mergeProps(ptm('togglericon'));
166
+ var icon = collapsed ? props.expandIcon || /*#__PURE__*/React.createElement(PlusIcon, togglerIconProps) : props.collapseIcon || /*#__PURE__*/React.createElement(MinusIcon, togglerIconProps);
167
+ var toggleIcon = IconUtils.getJSXIcon(icon, togglerIconProps, {
169
168
  props: props,
170
169
  collapsed: collapsed
171
170
  });
172
- return /*#__PURE__*/React.createElement("button", {
173
- className: "p-panel-header-icon p-panel-toggler p-link",
174
- onClick: toggle,
175
- id: buttonId,
176
- "aria-controls": contentId,
177
- "aria-expanded": !collapsed,
178
- role: "tab"
179
- }, toggleIcon, /*#__PURE__*/React.createElement(Ripple, null));
171
+ return /*#__PURE__*/React.createElement("button", togglerProps, toggleIcon, /*#__PURE__*/React.createElement(Ripple, null));
180
172
  }
181
173
  return null;
182
174
  };
@@ -184,16 +176,19 @@ var Panel = /*#__PURE__*/React.forwardRef(function (inProps, ref) {
184
176
  var header = ObjectUtils.getJSXElement(props.header, props);
185
177
  var icons = ObjectUtils.getJSXElement(props.icons, props);
186
178
  var togglerElement = createToggleIcon();
187
- var titleElement = /*#__PURE__*/React.createElement("span", {
188
- className: "p-panel-title",
189
- id: headerId
190
- }, header);
191
- var iconsElement = /*#__PURE__*/React.createElement("div", {
192
- className: "p-panel-icons"
193
- }, icons, togglerElement);
194
- var content = /*#__PURE__*/React.createElement("div", {
195
- className: "p-panel-header"
196
- }, titleElement, iconsElement);
179
+ var titleProps = mergeProps({
180
+ id: headerId,
181
+ className: 'p-panel-title'
182
+ }, ptm('title'));
183
+ var titleElement = /*#__PURE__*/React.createElement("span", titleProps, header);
184
+ var iconsProps = mergeProps({
185
+ className: 'p-panel-icons'
186
+ }, ptm('icons'));
187
+ var iconsElement = /*#__PURE__*/React.createElement("div", iconsProps, icons, togglerElement);
188
+ var headerProps = mergeProps({
189
+ className: 'p-panel-header'
190
+ }, ptm('header'));
191
+ var content = /*#__PURE__*/React.createElement("div", headerProps, titleElement, iconsElement);
197
192
  if (props.headerTemplate) {
198
193
  var defaultContentOptions = {
199
194
  className: 'p-panel-header',
@@ -215,6 +210,17 @@ var Panel = /*#__PURE__*/React.forwardRef(function (inProps, ref) {
215
210
  return null;
216
211
  };
217
212
  var createContent = function createContent() {
213
+ var toggleableContentProps = mergeProps({
214
+ ref: contentRef,
215
+ className: 'p-toggleable-content',
216
+ 'aria-hidden': collapsed,
217
+ role: 'region',
218
+ id: contentId,
219
+ 'aria-labelledby': headerId
220
+ }, ptm('toggleablecontent'));
221
+ var contentProps = mergeProps({
222
+ className: 'p-panel-content'
223
+ }, ptm('content'));
218
224
  return /*#__PURE__*/React.createElement(CSSTransition, {
219
225
  nodeRef: contentRef,
220
226
  classNames: "p-toggleable-content",
@@ -225,29 +231,38 @@ var Panel = /*#__PURE__*/React.forwardRef(function (inProps, ref) {
225
231
  "in": !collapsed,
226
232
  unmountOnExit: true,
227
233
  options: props.transitionOptions
228
- }, /*#__PURE__*/React.createElement("div", {
229
- ref: contentRef,
230
- className: "p-toggleable-content",
231
- "aria-hidden": collapsed,
232
- role: "region",
233
- id: contentId,
234
- "aria-labelledby": headerId
235
- }, /*#__PURE__*/React.createElement("div", {
236
- className: "p-panel-content"
237
- }, props.children)));
234
+ }, /*#__PURE__*/React.createElement("div", toggleableContentProps, /*#__PURE__*/React.createElement("div", contentProps, props.children)));
238
235
  };
239
- var otherProps = PanelBase.getOtherProps(props);
240
- var className = classNames('p-panel p-component', {
241
- 'p-panel-toggleable': props.toggleable
242
- }, props.className);
236
+ var createFooter = function createFooter() {
237
+ var footer = ObjectUtils.getJSXElement(props.footer, props);
238
+ var footerProps = mergeProps({
239
+ className: 'p-panel-footer'
240
+ }, ptm('footer'));
241
+ var content = /*#__PURE__*/React.createElement("div", footerProps, footer);
242
+ if (props.footerTemplate) {
243
+ var defaultContentOptions = {
244
+ className: 'p-panel-footer',
245
+ element: content,
246
+ props: props
247
+ };
248
+ return ObjectUtils.getJSXElement(props.footerTemplate, defaultContentOptions);
249
+ } else if (props.footer) {
250
+ return content;
251
+ }
252
+ return null;
253
+ };
254
+ var rootProps = mergeProps({
255
+ id: idState,
256
+ ref: elementRef,
257
+ style: props.style,
258
+ className: classNames('p-panel p-component', {
259
+ 'p-panel-toggleable': props.toggleable
260
+ }, props.className)
261
+ }, PanelBase.getOtherProps(props), ptm('root'));
243
262
  var header = createHeader();
244
263
  var content = createContent();
245
- return /*#__PURE__*/React.createElement("div", _extends({
246
- id: props.id,
247
- ref: elementRef,
248
- className: className,
249
- style: props.style
250
- }, otherProps), header, content);
264
+ var footer = createFooter();
265
+ return /*#__PURE__*/React.createElement("div", rootProps, header, content, footer);
251
266
  });
252
267
  Panel.displayName = 'Panel';
253
268
 
@@ -1 +1 @@
1
- import*as e from"react";import{CSSTransition as n}from"primereact/csstransition";import{useMountEffect as t}from"primereact/hooks";import{MinusIcon as l}from"primereact/icons/minus";import{PlusIcon as r}from"primereact/icons/plus";import{Ripple as a}from"primereact/ripple";import{ObjectUtils as o,UniqueComponentId as i,classNames as c,IconUtils as p}from"primereact/utils";function s(){return s=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var l in t)Object.prototype.hasOwnProperty.call(t,l)&&(e[l]=t[l])}return e},s.apply(this,arguments)}function u(e){if(Array.isArray(e))return e}function m(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var l,r,a,o,i=[],c=!0,p=!1;try{if(a=(t=t.call(e)).next,0===n){if(Object(t)!==t)return;c=!1}else for(;!(c=(l=a.call(t)).done)&&(i.push(l.value),i.length!==n);c=!0);}catch(e){p=!0,r=e}finally{try{if(!c&&null!=t.return&&(o=t.return(),Object(o)!==o))return}finally{if(p)throw r}}return i}}function g(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,l=new Array(n);t<n;t++)l[t]=e[t];return l}function f(e,n){if(e){if("string"==typeof e)return g(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?g(e,n):void 0}}function d(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function b(e,n){return u(e)||m(e,n)||f(e,n)||d()}var h={defaultProps:{__TYPE:"Panel",id:null,header:null,headerTemplate:null,toggleable:null,style:null,className:null,collapsed:null,expandIcon:null,collapseIcon:null,icons:null,transitionOptions:null,onExpand:null,onCollapse:null,onToggle:null,children:void 0},getProps:function(e){return o.getMergedProps(e,h.defaultProps)},getOtherProps:function(e){return o.getDiffProps(e,h.defaultProps)}},v=e.forwardRef((function(u,m){var g=h.getProps(u),f=b(e.useState(g.id),2),d=f[0],v=f[1],E=b(e.useState(g.collapsed),2),y=E[0],N=E[1],O=e.useRef(m),P=e.useRef(null),T=!!g.toggleable&&(g.onToggle?g.collapsed:y),S=d+"_header",x=d+"_content",C=function(e){g.toggleable&&(T?I(e):j(e),g.onToggle&&g.onToggle({originalEvent:e,value:!T})),e.preventDefault()},I=function(e){g.onToggle||N(!1),g.onExpand&&g.onExpand(e)},j=function(e){g.onToggle||N(!0),g.onCollapse&&g.onCollapse(e)};e.useImperativeHandle(m,(function(){return{props:g,getElement:function(){return O.current},getContent:function(){return P.current}}})),e.useEffect((function(){o.combinedRefs(O,m)}),[O,m]),t((function(){d||v(i())}));var w=function(){if(g.toggleable){var n=d+"_label",t=p.getJSXIcon(T?g.expandIcon||e.createElement(r,null):g.collapseIcon||e.createElement(l,null),void 0,{props:g,collapsed:T});return e.createElement("button",{className:"p-panel-header-icon p-panel-toggler p-link",onClick:C,id:n,"aria-controls":x,"aria-expanded":!T,role:"tab"},t,e.createElement(a,null))}return null},A=h.getOtherProps(g),k=c("p-panel p-component",{"p-panel-toggleable":g.toggleable},g.className),R=function(){var n=o.getJSXElement(g.header,g),t=o.getJSXElement(g.icons,g),l=w(),r=e.createElement("span",{className:"p-panel-title",id:S},n),a=e.createElement("div",{className:"p-panel-icons"},t,l),i=e.createElement("div",{className:"p-panel-header"},r,a);return g.headerTemplate?o.getJSXElement(g.headerTemplate,{className:"p-panel-header",titleClassName:"p-panel-title",iconsClassName:"p-panel-icons",togglerClassName:"p-panel-header-icon p-panel-toggler p-link",onTogglerClick:C,titleElement:r,iconsElement:a,togglerElement:l,element:i,props:g,collapsed:T}):g.header||g.toggleable?i:null}(),_=e.createElement(n,{nodeRef:P,classNames:"p-toggleable-content",timeout:{enter:1e3,exit:450},in:!T,unmountOnExit:!0,options:g.transitionOptions},e.createElement("div",{ref:P,className:"p-toggleable-content","aria-hidden":T,role:"region",id:x,"aria-labelledby":S},e.createElement("div",{className:"p-panel-content"},g.children)));return e.createElement("div",s({id:g.id,ref:O,className:k,style:g.style},A),R,_)}));v.displayName="Panel";export{v as Panel};
1
+ import*as e from"react";import{CSSTransition as t}from"primereact/csstransition";import{useMountEffect as n}from"primereact/hooks";import{MinusIcon as l}from"primereact/icons/minus";import{PlusIcon as r}from"primereact/icons/plus";import{Ripple as o}from"primereact/ripple";import{ObjectUtils as a,UniqueComponentId as i,mergeProps as c,classNames as p,IconUtils as s}from"primereact/utils";import{ComponentBase as u}from"primereact/componentbase";function m(e){if(Array.isArray(e))return e}function f(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var l,r,o,a,i=[],c=!0,p=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(l=o.call(n)).done)&&(i.push(l.value),i.length!==t);c=!0);}catch(e){p=!0,r=e}finally{try{if(!c&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(p)throw r}}return i}}function g(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,l=new Array(t);n<t;n++)l[n]=e[n];return l}function d(e,t){if(e){if("string"==typeof e)return g(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?g(e,t):void 0}}function E(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function b(e,t){return m(e)||f(e,t)||d(e,t)||E()}var h=u.extend({defaultProps:{__TYPE:"Panel",id:null,header:null,headerTemplate:null,footer:null,footerTemplate:null,toggleable:null,style:null,className:null,collapsed:null,expandIcon:null,collapseIcon:null,icons:null,transitionOptions:null,onExpand:null,onCollapse:null,onToggle:null,children:void 0}}),v=e.forwardRef((function(u,m){var f=h.getProps(u),g=b(e.useState(f.id),2),d=g[0],E=g[1],v=b(e.useState(f.collapsed),2),y=v[0],N=v[1],T=e.useRef(m),S=e.useRef(null),x=!!f.toggleable&&(f.onToggle?f.collapsed:y),C=d+"_header",I=d+"_content",O=h.setMetaData({props:f,state:{id:d,collapsed:x}}).ptm,A=function(e){f.toggleable&&(x?J(e):P(e),f.onToggle&&f.onToggle({originalEvent:e,value:!x})),e.preventDefault()},J=function(e){f.onToggle||N(!1),f.onExpand&&f.onExpand(e)},P=function(e){f.onToggle||N(!0),f.onCollapse&&f.onCollapse(e)};e.useImperativeHandle(m,(function(){return{props:f,getElement:function(){return T.current},getContent:function(){return S.current}}})),e.useEffect((function(){a.combinedRefs(T,m)}),[T,m]),n((function(){d||E(i())}));var X,j,k=function(){if(f.toggleable){var t=c({className:"p-panel-header-icon p-panel-toggler p-link",onClick:A,id:d+"_label","aria-controls":I,"aria-expanded":!x,role:"tab"},O("toggler")),n=c(O("togglericon")),a=s.getJSXIcon(x?f.expandIcon||e.createElement(r,n):f.collapseIcon||e.createElement(l,n),n,{props:f,collapsed:x});return e.createElement("button",t,a,e.createElement(o,null))}return null},w=c({id:d,ref:T,style:f.style,className:p("p-panel p-component",{"p-panel-toggleable":f.toggleable},f.className)},h.getOtherProps(f),O("root")),R=function(){var t=a.getJSXElement(f.header,f),n=a.getJSXElement(f.icons,f),l=k(),r=c({id:C,className:"p-panel-title"},O("title")),o=e.createElement("span",r,t),i=c({className:"p-panel-icons"},O("icons")),p=e.createElement("div",i,n,l),s=c({className:"p-panel-header"},O("header")),u=e.createElement("div",s,o,p);return f.headerTemplate?a.getJSXElement(f.headerTemplate,{className:"p-panel-header",titleClassName:"p-panel-title",iconsClassName:"p-panel-icons",togglerClassName:"p-panel-header-icon p-panel-toggler p-link",onTogglerClick:A,titleElement:o,iconsElement:p,togglerElement:l,element:u,props:f,collapsed:x}):f.header||f.toggleable?u:null}(),_=(X=c({ref:S,className:"p-toggleable-content","aria-hidden":x,role:"region",id:I,"aria-labelledby":C},O("toggleablecontent")),j=c({className:"p-panel-content"},O("content")),e.createElement(t,{nodeRef:S,classNames:"p-toggleable-content",timeout:{enter:1e3,exit:450},in:!x,unmountOnExit:!0,options:f.transitionOptions},e.createElement("div",X,e.createElement("div",j,f.children)))),D=function(){var t=a.getJSXElement(f.footer,f),n=c({className:"p-panel-footer"},O("footer")),l=e.createElement("div",n,t);return f.footerTemplate?a.getJSXElement(f.footerTemplate,{className:"p-panel-footer",element:l,props:f}):f.footer?l:null}();return e.createElement("div",w,R,_,D)}));v.displayName="Panel";export{v as Panel};