primevue 3.28.0 → 3.29.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 (420) hide show
  1. package/README.md +3 -3
  2. package/autocomplete/AutoComplete.d.ts +153 -1
  3. package/autocomplete/AutoComplete.vue +46 -17
  4. package/autocomplete/autocomplete.cjs.js +80 -74
  5. package/autocomplete/autocomplete.cjs.min.js +1 -1
  6. package/autocomplete/autocomplete.esm.js +80 -75
  7. package/autocomplete/autocomplete.esm.min.js +1 -1
  8. package/autocomplete/autocomplete.js +81 -76
  9. package/autocomplete/autocomplete.min.js +1 -1
  10. package/basecomponent/BaseComponent.vue +19 -5
  11. package/basecomponent/basecomponent.cjs.js +19 -5
  12. package/basecomponent/basecomponent.cjs.min.js +1 -1
  13. package/basecomponent/basecomponent.esm.js +19 -5
  14. package/basecomponent/basecomponent.esm.min.js +1 -1
  15. package/basecomponent/basecomponent.js +20 -7
  16. package/basecomponent/basecomponent.min.js +1 -1
  17. package/calendar/Calendar.d.ts +269 -0
  18. package/calendar/Calendar.vue +75 -59
  19. package/calendar/calendar.cjs.js +223 -259
  20. package/calendar/calendar.cjs.min.js +1 -1
  21. package/calendar/calendar.esm.js +223 -260
  22. package/calendar/calendar.esm.min.js +1 -1
  23. package/calendar/calendar.js +224 -261
  24. package/calendar/calendar.min.js +1 -1
  25. package/carousel/Carousel.d.ts +154 -0
  26. package/carousel/Carousel.vue +27 -14
  27. package/carousel/carousel.cjs.js +64 -65
  28. package/carousel/carousel.cjs.min.js +1 -1
  29. package/carousel/carousel.esm.js +64 -66
  30. package/carousel/carousel.esm.min.js +1 -1
  31. package/carousel/carousel.js +65 -67
  32. package/carousel/carousel.min.js +1 -1
  33. package/cascadeselect/CascadeSelect.d.ts +133 -0
  34. package/cascadeselect/CascadeSelect.vue +15 -12
  35. package/cascadeselect/CascadeSelectSub.vue +7 -3
  36. package/cascadeselect/cascadeselect.cjs.js +63 -66
  37. package/cascadeselect/cascadeselect.cjs.min.js +1 -1
  38. package/cascadeselect/cascadeselect.esm.js +63 -67
  39. package/cascadeselect/cascadeselect.esm.min.js +1 -1
  40. package/cascadeselect/cascadeselect.js +64 -68
  41. package/cascadeselect/cascadeselect.min.js +1 -1
  42. package/checkbox/Checkbox.d.ts +60 -0
  43. package/checkbox/Checkbox.vue +7 -5
  44. package/checkbox/checkbox.cjs.js +17 -15
  45. package/checkbox/checkbox.cjs.min.js +1 -1
  46. package/checkbox/checkbox.esm.js +17 -16
  47. package/checkbox/checkbox.esm.min.js +1 -1
  48. package/checkbox/checkbox.js +18 -17
  49. package/checkbox/checkbox.min.js +1 -1
  50. package/chips/Chips.d.ts +80 -0
  51. package/chips/Chips.vue +9 -5
  52. package/chips/chips.cjs.js +23 -24
  53. package/chips/chips.cjs.min.js +1 -1
  54. package/chips/chips.esm.js +23 -25
  55. package/chips/chips.esm.min.js +1 -1
  56. package/chips/chips.js +24 -26
  57. package/chips/chips.min.js +1 -1
  58. package/colorpicker/ColorPicker.d.ts +76 -0
  59. package/colorpicker/ColorPicker.vue +11 -9
  60. package/colorpicker/colorpicker.cjs.js +28 -27
  61. package/colorpicker/colorpicker.cjs.min.js +1 -1
  62. package/colorpicker/colorpicker.esm.js +28 -28
  63. package/colorpicker/colorpicker.esm.min.js +1 -1
  64. package/colorpicker/colorpicker.js +29 -29
  65. package/colorpicker/colorpicker.min.js +1 -1
  66. package/column/Column.d.ts +303 -2
  67. package/column/Column.vue +3 -0
  68. package/column/column.cjs.js +7 -0
  69. package/column/column.cjs.min.js +1 -1
  70. package/column/column.esm.js +3 -0
  71. package/column/column.esm.min.js +1 -1
  72. package/column/column.js +7 -2
  73. package/column/column.min.js +1 -1
  74. package/columngroup/ColumnGroup.d.ts +34 -0
  75. package/columngroup/ColumnGroup.vue +3 -0
  76. package/columngroup/columngroup.cjs.js +7 -0
  77. package/columngroup/columngroup.cjs.min.js +1 -1
  78. package/columngroup/columngroup.esm.js +3 -0
  79. package/columngroup/columngroup.esm.min.js +1 -1
  80. package/columngroup/columngroup.js +7 -2
  81. package/columngroup/columngroup.min.js +1 -1
  82. package/config/PrimeVue.d.ts +163 -2
  83. package/confirmdialog/ConfirmDialog.d.ts +14 -7
  84. package/contextmenu/ContextMenu.d.ts +1 -1
  85. package/core/core.js +448 -331
  86. package/core/core.min.js +9 -9
  87. package/datatable/BodyCell.vue +29 -13
  88. package/datatable/ColumnFilter.vue +49 -20
  89. package/datatable/DataTable.d.ts +188 -1
  90. package/datatable/DataTable.vue +25 -14
  91. package/datatable/FooterCell.vue +15 -1
  92. package/datatable/HeaderCell.vue +31 -6
  93. package/datatable/HeaderCheckbox.vue +35 -5
  94. package/datatable/RowCheckbox.vue +36 -5
  95. package/datatable/RowRadioButton.vue +26 -6
  96. package/datatable/TableBody.vue +41 -11
  97. package/datatable/TableFooter.vue +31 -5
  98. package/datatable/TableHeader.vue +53 -6
  99. package/datatable/datatable.cjs.js +559 -376
  100. package/datatable/datatable.cjs.min.js +1 -1
  101. package/datatable/datatable.esm.js +559 -377
  102. package/datatable/datatable.esm.min.js +1 -1
  103. package/datatable/datatable.js +560 -378
  104. package/datatable/datatable.min.js +1 -1
  105. package/dataview/DataView.d.ts +72 -0
  106. package/dataview/DataView.vue +13 -8
  107. package/dataview/dataview.cjs.js +33 -37
  108. package/dataview/dataview.cjs.min.js +1 -1
  109. package/dataview/dataview.esm.js +33 -38
  110. package/dataview/dataview.esm.min.js +1 -1
  111. package/dataview/dataview.js +33 -38
  112. package/dataview/dataview.min.js +1 -1
  113. package/dataviewlayoutoptions/DataViewLayoutOptions.d.ts +65 -0
  114. package/dataviewlayoutoptions/DataViewLayoutOptions.vue +7 -5
  115. package/dataviewlayoutoptions/dataviewlayoutoptions.cjs.js +19 -17
  116. package/dataviewlayoutoptions/dataviewlayoutoptions.cjs.min.js +1 -1
  117. package/dataviewlayoutoptions/dataviewlayoutoptions.esm.js +19 -18
  118. package/dataviewlayoutoptions/dataviewlayoutoptions.esm.min.js +1 -1
  119. package/dataviewlayoutoptions/dataviewlayoutoptions.js +20 -19
  120. package/dataviewlayoutoptions/dataviewlayoutoptions.min.js +1 -1
  121. package/dialog/Dialog.d.ts +6 -4
  122. package/dialog/Dialog.vue +2 -3
  123. package/dialog/dialog.cjs.js +4 -5
  124. package/dialog/dialog.cjs.min.js +1 -1
  125. package/dialog/dialog.esm.js +4 -5
  126. package/dialog/dialog.esm.min.js +1 -1
  127. package/dialog/dialog.js +4 -5
  128. package/dialog/dialog.min.js +1 -1
  129. package/dropdown/Dropdown.d.ts +162 -1
  130. package/dropdown/Dropdown.vue +44 -25
  131. package/dropdown/dropdown.cjs.js +97 -93
  132. package/dropdown/dropdown.cjs.min.js +1 -1
  133. package/dropdown/dropdown.esm.js +97 -94
  134. package/dropdown/dropdown.esm.min.js +1 -1
  135. package/dropdown/dropdown.js +98 -95
  136. package/dropdown/dropdown.min.js +1 -1
  137. package/editor/Editor.d.ts +67 -0
  138. package/editor/Editor.vue +35 -33
  139. package/editor/editor.cjs.js +88 -73
  140. package/editor/editor.cjs.min.js +1 -1
  141. package/editor/editor.esm.js +85 -74
  142. package/editor/editor.esm.min.js +1 -1
  143. package/editor/editor.js +89 -75
  144. package/editor/editor.min.js +1 -1
  145. package/fileupload/FileUpload.d.ts +23 -23
  146. package/fileupload/FileUpload.vue +3 -3
  147. package/fileupload/fileupload.cjs.js +4 -4
  148. package/fileupload/fileupload.cjs.min.js +1 -1
  149. package/fileupload/fileupload.esm.js +4 -4
  150. package/fileupload/fileupload.esm.min.js +1 -1
  151. package/fileupload/fileupload.js +4 -4
  152. package/fileupload/fileupload.min.js +1 -1
  153. package/galleria/Galleria.d.ts +196 -0
  154. package/galleria/Galleria.vue +5 -3
  155. package/galleria/GalleriaContent.vue +10 -6
  156. package/galleria/GalleriaItem.vue +12 -9
  157. package/galleria/GalleriaThumbnails.vue +46 -9
  158. package/galleria/galleria.cjs.js +106 -104
  159. package/galleria/galleria.cjs.min.js +1 -1
  160. package/galleria/galleria.esm.js +106 -105
  161. package/galleria/galleria.esm.min.js +1 -1
  162. package/galleria/galleria.js +107 -106
  163. package/galleria/galleria.min.js +1 -1
  164. package/image/Image.d.ts +170 -0
  165. package/image/Image.vue +49 -21
  166. package/image/image.cjs.js +94 -59
  167. package/image/image.cjs.min.js +1 -1
  168. package/image/image.esm.js +94 -60
  169. package/image/image.esm.min.js +1 -1
  170. package/image/image.js +95 -61
  171. package/image/image.min.js +1 -1
  172. package/inputmask/InputMask.d.ts +25 -0
  173. package/inputmask/InputMask.vue +3 -1
  174. package/inputmask/inputmask.cjs.js +9 -3
  175. package/inputmask/inputmask.cjs.min.js +1 -1
  176. package/inputmask/inputmask.esm.js +6 -4
  177. package/inputmask/inputmask.esm.min.js +1 -1
  178. package/inputmask/inputmask.js +10 -5
  179. package/inputmask/inputmask.min.js +1 -1
  180. package/inputnumber/InputNumber.d.ts +69 -0
  181. package/inputnumber/InputNumber.vue +13 -11
  182. package/inputnumber/inputnumber.cjs.js +19 -28
  183. package/inputnumber/inputnumber.cjs.min.js +1 -1
  184. package/inputnumber/inputnumber.esm.js +19 -29
  185. package/inputnumber/inputnumber.esm.min.js +1 -1
  186. package/inputnumber/inputnumber.js +20 -30
  187. package/inputnumber/inputnumber.min.js +1 -1
  188. package/inputswitch/InputSwitch.d.ts +51 -0
  189. package/inputswitch/InputSwitch.vue +7 -4
  190. package/inputswitch/inputswitch.cjs.js +15 -11
  191. package/inputswitch/inputswitch.cjs.min.js +1 -1
  192. package/inputswitch/inputswitch.esm.js +12 -12
  193. package/inputswitch/inputswitch.esm.min.js +1 -1
  194. package/inputswitch/inputswitch.js +16 -13
  195. package/inputswitch/inputswitch.min.js +1 -1
  196. package/inputtext/InputText.d.ts +25 -0
  197. package/inputtext/InputText.vue +4 -1
  198. package/inputtext/inputtext.cjs.js +9 -3
  199. package/inputtext/inputtext.cjs.min.js +1 -1
  200. package/inputtext/inputtext.esm.js +6 -4
  201. package/inputtext/inputtext.esm.min.js +1 -1
  202. package/inputtext/inputtext.js +10 -5
  203. package/inputtext/inputtext.min.js +1 -1
  204. package/knob/Knob.d.ts +78 -0
  205. package/knob/Knob.vue +8 -4
  206. package/knob/knob.cjs.js +17 -13
  207. package/knob/knob.cjs.min.js +1 -1
  208. package/knob/knob.esm.js +14 -14
  209. package/knob/knob.esm.min.js +1 -1
  210. package/knob/knob.js +18 -15
  211. package/knob/knob.min.js +1 -1
  212. package/listbox/Listbox.d.ts +137 -1
  213. package/listbox/Listbox.vue +28 -15
  214. package/listbox/listbox.cjs.js +83 -78
  215. package/listbox/listbox.cjs.min.js +1 -1
  216. package/listbox/listbox.esm.js +83 -79
  217. package/listbox/listbox.esm.min.js +1 -1
  218. package/listbox/listbox.js +84 -80
  219. package/listbox/listbox.min.js +1 -1
  220. package/megamenu/MegaMenu.d.ts +5 -5
  221. package/menu/Menu.d.ts +4 -4
  222. package/menubar/Menubar.d.ts +1 -1
  223. package/multiselect/MultiSelect.d.ts +223 -1
  224. package/multiselect/MultiSelect.vue +72 -41
  225. package/multiselect/multiselect.cjs.js +156 -151
  226. package/multiselect/multiselect.cjs.min.js +1 -1
  227. package/multiselect/multiselect.esm.js +156 -152
  228. package/multiselect/multiselect.esm.min.js +1 -1
  229. package/multiselect/multiselect.js +157 -153
  230. package/multiselect/multiselect.min.js +1 -1
  231. package/orderlist/OrderList.d.ts +94 -0
  232. package/orderlist/OrderList.vue +38 -18
  233. package/orderlist/orderlist.cjs.js +50 -36
  234. package/orderlist/orderlist.cjs.min.js +1 -1
  235. package/orderlist/orderlist.esm.js +50 -37
  236. package/orderlist/orderlist.esm.min.js +1 -1
  237. package/orderlist/orderlist.js +51 -38
  238. package/orderlist/orderlist.min.js +1 -1
  239. package/organizationchart/OrganizationChart.d.ts +129 -0
  240. package/organizationchart/OrganizationChart.vue +14 -2
  241. package/organizationchart/OrganizationChartNode.vue +37 -16
  242. package/organizationchart/organizationchart.cjs.js +77 -61
  243. package/organizationchart/organizationchart.cjs.min.js +1 -1
  244. package/organizationchart/organizationchart.esm.js +77 -62
  245. package/organizationchart/organizationchart.esm.min.js +1 -1
  246. package/organizationchart/organizationchart.js +78 -63
  247. package/organizationchart/organizationchart.min.js +1 -1
  248. package/package.json +1 -1
  249. package/paginator/CurrentPageReport.vue +5 -1
  250. package/paginator/FirstPageLink.vue +13 -2
  251. package/paginator/JumpToPageDropdown.vue +3 -1
  252. package/paginator/JumpToPageInput.vue +3 -1
  253. package/paginator/LastPageLink.vue +13 -2
  254. package/paginator/NextPageLink.vue +13 -2
  255. package/paginator/PageLinks.vue +12 -2
  256. package/paginator/Paginator.d.ts +133 -0
  257. package/paginator/Paginator.vue +23 -12
  258. package/paginator/PrevPageLink.vue +13 -2
  259. package/paginator/RowsPerPageDropdown.vue +3 -1
  260. package/paginator/paginator.cjs.js +135 -76
  261. package/paginator/paginator.cjs.min.js +1 -1
  262. package/paginator/paginator.esm.js +135 -77
  263. package/paginator/paginator.esm.min.js +1 -1
  264. package/paginator/paginator.js +136 -78
  265. package/paginator/paginator.min.js +1 -1
  266. package/panelmenu/PanelMenu.d.ts +4 -8
  267. package/password/Password.d.ts +104 -0
  268. package/password/Password.vue +11 -9
  269. package/password/password.cjs.js +26 -28
  270. package/password/password.cjs.min.js +1 -1
  271. package/password/password.esm.js +26 -29
  272. package/password/password.esm.min.js +1 -1
  273. package/password/password.js +27 -30
  274. package/password/password.min.js +1 -1
  275. package/picklist/PickList.d.ts +160 -0
  276. package/picklist/PickList.vue +46 -34
  277. package/picklist/picklist.cjs.js +111 -85
  278. package/picklist/picklist.cjs.min.js +1 -1
  279. package/picklist/picklist.esm.js +111 -86
  280. package/picklist/picklist.esm.min.js +1 -1
  281. package/picklist/picklist.js +112 -87
  282. package/picklist/picklist.min.js +1 -1
  283. package/radiobutton/RadioButton.d.ts +55 -0
  284. package/radiobutton/RadioButton.vue +7 -5
  285. package/radiobutton/radiobutton.cjs.js +19 -16
  286. package/radiobutton/radiobutton.cjs.min.js +1 -1
  287. package/radiobutton/radiobutton.esm.js +16 -17
  288. package/radiobutton/radiobutton.esm.min.js +1 -1
  289. package/radiobutton/radiobutton.js +20 -18
  290. package/radiobutton/radiobutton.min.js +1 -1
  291. package/rating/Rating.d.ts +96 -0
  292. package/rating/Rating.vue +32 -9
  293. package/rating/rating.cjs.js +41 -34
  294. package/rating/rating.cjs.min.js +1 -1
  295. package/rating/rating.esm.js +41 -35
  296. package/rating/rating.esm.min.js +1 -1
  297. package/rating/rating.js +42 -36
  298. package/rating/rating.min.js +1 -1
  299. package/row/Row.d.ts +29 -0
  300. package/row/Row.vue +3 -0
  301. package/row/row.cjs.js +7 -0
  302. package/row/row.cjs.min.js +1 -1
  303. package/row/row.esm.js +3 -0
  304. package/row/row.esm.min.js +1 -1
  305. package/row/row.js +7 -2
  306. package/row/row.min.js +1 -1
  307. package/selectbutton/SelectButton.d.ts +68 -0
  308. package/selectbutton/SelectButton.vue +13 -2
  309. package/selectbutton/selectbutton.cjs.js +20 -10
  310. package/selectbutton/selectbutton.cjs.min.js +1 -1
  311. package/selectbutton/selectbutton.esm.js +20 -11
  312. package/selectbutton/selectbutton.esm.min.js +1 -1
  313. package/selectbutton/selectbutton.js +21 -12
  314. package/selectbutton/selectbutton.min.js +1 -1
  315. package/slider/Slider.d.ts +48 -0
  316. package/slider/Slider.vue +7 -2
  317. package/slider/slider.cjs.js +22 -16
  318. package/slider/slider.cjs.min.js +1 -1
  319. package/slider/slider.esm.js +19 -17
  320. package/slider/slider.esm.min.js +1 -1
  321. package/slider/slider.js +23 -18
  322. package/slider/slider.min.js +1 -1
  323. package/splitbutton/SplitButton.d.ts +0 -4
  324. package/splitbutton/SplitButton.vue +2 -2
  325. package/splitbutton/splitbutton.cjs.js +7 -6
  326. package/splitbutton/splitbutton.cjs.min.js +1 -1
  327. package/splitbutton/splitbutton.esm.js +7 -6
  328. package/splitbutton/splitbutton.esm.min.js +1 -1
  329. package/splitbutton/splitbutton.js +7 -6
  330. package/splitbutton/splitbutton.min.js +1 -1
  331. package/splitter/Splitter.d.ts +3 -3
  332. package/textarea/Textarea.d.ts +32 -0
  333. package/textarea/Textarea.vue +4 -1
  334. package/textarea/textarea.cjs.js +9 -3
  335. package/textarea/textarea.cjs.min.js +1 -1
  336. package/textarea/textarea.esm.js +6 -4
  337. package/textarea/textarea.esm.min.js +1 -1
  338. package/textarea/textarea.js +10 -5
  339. package/textarea/textarea.min.js +1 -1
  340. package/timeline/Timeline.d.ts +49 -0
  341. package/timeline/Timeline.vue +9 -7
  342. package/timeline/timeline.cjs.js +19 -21
  343. package/timeline/timeline.cjs.min.js +1 -1
  344. package/timeline/timeline.esm.js +16 -22
  345. package/timeline/timeline.esm.min.js +1 -1
  346. package/timeline/timeline.js +20 -23
  347. package/timeline/timeline.min.js +1 -1
  348. package/toast/Toast.d.ts +4 -0
  349. package/toast/Toast.vue +1 -1
  350. package/toast/toast.cjs.js +3 -3
  351. package/toast/toast.cjs.min.js +1 -1
  352. package/toast/toast.esm.js +3 -3
  353. package/toast/toast.esm.min.js +1 -1
  354. package/toast/toast.js +3 -3
  355. package/toast/toast.min.js +1 -1
  356. package/togglebutton/ToggleButton.d.ts +59 -0
  357. package/togglebutton/ToggleButton.vue +7 -5
  358. package/togglebutton/togglebutton.cjs.js +15 -14
  359. package/togglebutton/togglebutton.cjs.min.js +1 -1
  360. package/togglebutton/togglebutton.esm.js +15 -15
  361. package/togglebutton/togglebutton.esm.min.js +1 -1
  362. package/togglebutton/togglebutton.js +16 -16
  363. package/togglebutton/togglebutton.min.js +1 -1
  364. package/tooltip/Tooltip.d.ts +10 -0
  365. package/tooltip/tooltip.cjs.js +51 -9
  366. package/tooltip/tooltip.cjs.min.js +1 -1
  367. package/tooltip/tooltip.esm.js +52 -10
  368. package/tooltip/tooltip.esm.min.js +1 -1
  369. package/tooltip/tooltip.js +51 -9
  370. package/tooltip/tooltip.min.js +1 -1
  371. package/tree/Tree.d.ts +137 -0
  372. package/tree/Tree.vue +12 -9
  373. package/tree/TreeNode.vue +23 -10
  374. package/tree/tree.cjs.js +85 -79
  375. package/tree/tree.cjs.min.js +1 -1
  376. package/tree/tree.esm.js +85 -80
  377. package/tree/tree.esm.min.js +1 -1
  378. package/tree/tree.js +86 -81
  379. package/tree/tree.min.js +1 -1
  380. package/treeselect/TreeSelect.d.ts +103 -1
  381. package/treeselect/TreeSelect.vue +15 -12
  382. package/treeselect/treeselect.cjs.js +37 -39
  383. package/treeselect/treeselect.cjs.min.js +1 -1
  384. package/treeselect/treeselect.esm.js +37 -40
  385. package/treeselect/treeselect.esm.min.js +1 -1
  386. package/treeselect/treeselect.js +38 -41
  387. package/treeselect/treeselect.min.js +1 -1
  388. package/treetable/BodyCell.vue +38 -10
  389. package/treetable/FooterCell.vue +15 -1
  390. package/treetable/HeaderCell.vue +28 -5
  391. package/treetable/TreeTable.d.ts +162 -0
  392. package/treetable/TreeTable.vue +25 -19
  393. package/treetable/TreeTableRow.vue +5 -0
  394. package/treetable/treetable.cjs.js +205 -158
  395. package/treetable/treetable.cjs.min.js +1 -1
  396. package/treetable/treetable.esm.js +205 -159
  397. package/treetable/treetable.esm.min.js +1 -1
  398. package/treetable/treetable.js +206 -160
  399. package/treetable/treetable.min.js +1 -1
  400. package/tristatecheckbox/TriStateCheckbox.d.ts +93 -0
  401. package/tristatecheckbox/TriStateCheckbox.vue +19 -8
  402. package/tristatecheckbox/tristatecheckbox.cjs.js +31 -22
  403. package/tristatecheckbox/tristatecheckbox.cjs.min.js +1 -1
  404. package/tristatecheckbox/tristatecheckbox.esm.js +31 -23
  405. package/tristatecheckbox/tristatecheckbox.esm.min.js +1 -1
  406. package/tristatecheckbox/tristatecheckbox.js +32 -24
  407. package/tristatecheckbox/tristatecheckbox.min.js +1 -1
  408. package/ts-helpers.d.ts +3 -1
  409. package/vetur-attributes.json +180 -0
  410. package/vetur-tags.json +94 -39
  411. package/virtualscroller/VirtualScroller.d.ts +97 -0
  412. package/virtualscroller/VirtualScroller.vue +7 -5
  413. package/virtualscroller/virtualscroller.cjs.js +22 -19
  414. package/virtualscroller/virtualscroller.cjs.min.js +1 -1
  415. package/virtualscroller/virtualscroller.esm.js +22 -20
  416. package/virtualscroller/virtualscroller.esm.min.js +1 -1
  417. package/virtualscroller/virtualscroller.js +23 -21
  418. package/virtualscroller/virtualscroller.min.js +1 -1
  419. package/web-types.json +467 -3
  420. package/datatable/TableLoadingBody.vue +0 -25
@@ -1,5 +1,6 @@
1
1
  'use strict';
2
2
 
3
+ var BaseComponent = require('primevue/basecomponent');
3
4
  var FocusTrap = require('primevue/focustrap');
4
5
  var EyeIcon = require('primevue/icons/eye');
5
6
  var RefreshIcon = require('primevue/icons/refresh');
@@ -13,6 +14,7 @@ var vue = require('vue');
13
14
 
14
15
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
15
16
 
17
+ var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
16
18
  var FocusTrap__default = /*#__PURE__*/_interopDefaultLegacy(FocusTrap);
17
19
  var EyeIcon__default = /*#__PURE__*/_interopDefaultLegacy(EyeIcon);
18
20
  var RefreshIcon__default = /*#__PURE__*/_interopDefaultLegacy(RefreshIcon);
@@ -24,6 +26,7 @@ var Portal__default = /*#__PURE__*/_interopDefaultLegacy(Portal);
24
26
 
25
27
  var script = {
26
28
  name: 'Image',
29
+ extends: BaseComponent__default["default"],
27
30
  inheritAttrs: false,
28
31
  emits: ['show', 'hide', 'error'],
29
32
  props: {
@@ -54,6 +57,14 @@ var script = {
54
57
  indicatorIcon: {
55
58
  type: String,
56
59
  default: undefined
60
+ },
61
+ zoomInDisabled: {
62
+ type: Boolean,
63
+ default: false
64
+ },
65
+ zoomOutDisabled: {
66
+ type: Boolean,
67
+ default: false
57
68
  }
58
69
  },
59
70
  mask: null,
@@ -88,7 +99,13 @@ var script = {
88
99
  onPreviewImageClick() {
89
100
  this.previewClick = true;
90
101
  },
91
- onMaskClick() {
102
+ onMaskClick(event) {
103
+ const isActionbarTarget = [event.target.classList].includes('p-image-action') || event.target.closest('.p-image-action');
104
+
105
+ if (isActionbarTarget) {
106
+ return;
107
+ }
108
+
92
109
  if (!this.previewClick) {
93
110
  this.previewVisible = false;
94
111
  this.rotate = 0;
@@ -151,6 +168,11 @@ var script = {
151
168
  if (focusTarget) {
152
169
  focusTarget.focus();
153
170
  }
171
+ },
172
+ hidePreview() {
173
+ this.previewVisible = false;
174
+ this.rotate = 0;
175
+ this.scale = 1;
154
176
  }
155
177
  },
156
178
  computed: {
@@ -172,8 +194,11 @@ var script = {
172
194
  imagePreviewStyle() {
173
195
  return { transform: 'rotate(' + this.rotate + 'deg) scale(' + this.scale + ')' };
174
196
  },
175
- zoomDisabled() {
176
- return this.scale <= 0.5 || this.scale >= 1.5;
197
+ isZoomInDisabled() {
198
+ return this.zoomInDisabled || this.scale >= 1.5;
199
+ },
200
+ isZoomOutDisabled() {
201
+ return this.zoomOutDisabled || this.scale <= 0.5;
177
202
  },
178
203
  rightAriaLabel() {
179
204
  return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.rotateRight : undefined;
@@ -206,14 +231,12 @@ var script = {
206
231
  };
207
232
 
208
233
  const _hoisted_1 = ["aria-modal"];
209
- const _hoisted_2 = { class: "p-image-toolbar" };
234
+ const _hoisted_2 = ["aria-label"];
210
235
  const _hoisted_3 = ["aria-label"];
211
- const _hoisted_4 = ["aria-label"];
236
+ const _hoisted_4 = ["disabled", "aria-label"];
212
237
  const _hoisted_5 = ["disabled", "aria-label"];
213
- const _hoisted_6 = ["disabled", "aria-label"];
214
- const _hoisted_7 = ["aria-label"];
215
- const _hoisted_8 = { key: 0 };
216
- const _hoisted_9 = ["src"];
238
+ const _hoisted_6 = ["aria-label"];
239
+ const _hoisted_7 = ["src"];
217
240
 
218
241
  function render(_ctx, _cache, $props, $setup, $data, $options) {
219
242
  const _component_RefreshIcon = vue.resolveComponent("RefreshIcon");
@@ -224,94 +247,100 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
224
247
  const _component_Portal = vue.resolveComponent("Portal");
225
248
  const _directive_focustrap = vue.resolveDirective("focustrap");
226
249
 
227
- return (vue.openBlock(), vue.createElementBlock("span", {
228
- class: vue.normalizeClass($options.containerClass),
229
- style: vue.normalizeStyle($props.style)
230
- }, [
231
- vue.createElementVNode("img", vue.mergeProps(_ctx.$attrs, {
232
- style: $props.imageStyle,
233
- class: $props.imageClass,
234
- onError: _cache[0] || (_cache[0] = (...args) => ($options.onError && $options.onError(...args)))
235
- }), null, 16),
250
+ return (vue.openBlock(), vue.createElementBlock("span", vue.mergeProps({
251
+ class: $options.containerClass,
252
+ style: $props.style
253
+ }, _ctx.ptm('root')), [
254
+ vue.renderSlot(_ctx.$slots, "image", {
255
+ class: vue.normalizeClass($props.imageClass),
256
+ style: vue.normalizeStyle($props.imageStyle),
257
+ onError: $options.onError
258
+ }, () => [
259
+ vue.createElementVNode("img", vue.mergeProps({
260
+ style: $props.imageStyle,
261
+ class: $props.imageClass,
262
+ onError: _cache[0] || (_cache[0] = (...args) => ($options.onError && $options.onError(...args)))
263
+ }, { ..._ctx.$attrs, ..._ctx.ptm('image') }), null, 16)
264
+ ]),
236
265
  ($props.preview)
237
266
  ? (vue.openBlock(), vue.createElementBlock("button", vue.mergeProps({
238
267
  key: 0,
239
268
  ref: "previewButton",
240
269
  class: "p-image-preview-indicator",
241
270
  onClick: _cache[1] || (_cache[1] = (...args) => ($options.onImageClick && $options.onImageClick(...args)))
242
- }, $props.previewButtonProps), [
271
+ }, { ...$props.previewButtonProps, ..._ctx.ptm('button') }), [
243
272
  vue.renderSlot(_ctx.$slots, "indicatoricon", {}, () => [
244
- (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent($props.indicatorIcon ? 'i' : 'EyeIcon'), { class: "p-image-preview-icon" }))
273
+ (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent($props.indicatorIcon ? 'i' : 'EyeIcon'), vue.mergeProps({ class: "p-image-preview-icon" }, _ctx.ptm('icon')), null, 16))
245
274
  ])
246
275
  ], 16))
247
276
  : vue.createCommentVNode("", true),
248
277
  vue.createVNode(_component_Portal, null, {
249
278
  default: vue.withCtx(() => [
250
279
  ($data.maskVisible)
251
- ? vue.withDirectives((vue.openBlock(), vue.createElementBlock("div", {
280
+ ? vue.withDirectives((vue.openBlock(), vue.createElementBlock("div", vue.mergeProps({
252
281
  key: 0,
253
282
  ref: $options.maskRef,
254
283
  role: "dialog",
255
- class: vue.normalizeClass($options.maskClass),
284
+ class: $options.maskClass,
256
285
  "aria-modal": $data.maskVisible,
257
286
  onClick: _cache[8] || (_cache[8] = (...args) => ($options.onMaskClick && $options.onMaskClick(...args))),
258
287
  onKeydown: _cache[9] || (_cache[9] = (...args) => ($options.onMaskKeydown && $options.onMaskKeydown(...args)))
259
- }, [
260
- vue.createElementVNode("div", _hoisted_2, [
261
- vue.createElementVNode("button", {
288
+ }, _ctx.ptm('mask')), [
289
+ vue.createElementVNode("div", vue.mergeProps({ class: "p-image-toolbar" }, _ctx.ptm('toolbar')), [
290
+ vue.createElementVNode("button", vue.mergeProps({
262
291
  class: "p-image-action p-link",
263
292
  onClick: _cache[2] || (_cache[2] = (...args) => ($options.rotateRight && $options.rotateRight(...args))),
264
293
  type: "button",
265
294
  "aria-label": $options.rightAriaLabel
266
- }, [
295
+ }, _ctx.ptm('rotateRightButton')), [
267
296
  vue.renderSlot(_ctx.$slots, "refresh", {}, () => [
268
- vue.createVNode(_component_RefreshIcon)
297
+ vue.createVNode(_component_RefreshIcon, vue.normalizeProps(vue.guardReactiveProps(_ctx.ptm('rotateRightIcon'))), null, 16)
269
298
  ])
270
- ], 8, _hoisted_3),
271
- vue.createElementVNode("button", {
299
+ ], 16, _hoisted_2),
300
+ vue.createElementVNode("button", vue.mergeProps({
272
301
  class: "p-image-action p-link",
273
302
  onClick: _cache[3] || (_cache[3] = (...args) => ($options.rotateLeft && $options.rotateLeft(...args))),
274
303
  type: "button",
275
304
  "aria-label": $options.leftAriaLabel
276
- }, [
305
+ }, _ctx.ptm('rotateLeftButton')), [
277
306
  vue.renderSlot(_ctx.$slots, "undo", {}, () => [
278
- vue.createVNode(_component_UndoIcon)
307
+ vue.createVNode(_component_UndoIcon, vue.normalizeProps(vue.guardReactiveProps(_ctx.ptm('rotateLeftIcon'))), null, 16)
279
308
  ])
280
- ], 8, _hoisted_4),
281
- vue.createElementVNode("button", {
282
- class: "p-image-action p-link",
309
+ ], 16, _hoisted_3),
310
+ vue.createElementVNode("button", vue.mergeProps({
311
+ class: ['p-image-action p-link', { 'p-disabled': $options.isZoomOutDisabled }],
283
312
  onClick: _cache[4] || (_cache[4] = (...args) => ($options.zoomOut && $options.zoomOut(...args))),
284
313
  type: "button",
285
- disabled: $options.zoomDisabled,
314
+ disabled: $options.isZoomOutDisabled,
286
315
  "aria-label": $options.zoomOutAriaLabel
287
- }, [
316
+ }, _ctx.ptm('zoomOutButton')), [
288
317
  vue.renderSlot(_ctx.$slots, "zoomout", {}, () => [
289
- vue.createVNode(_component_SearchMinusIcon)
318
+ vue.createVNode(_component_SearchMinusIcon, vue.normalizeProps(vue.guardReactiveProps(_ctx.ptm('zoomOutIcon'))), null, 16)
290
319
  ])
291
- ], 8, _hoisted_5),
292
- vue.createElementVNode("button", {
293
- class: "p-image-action p-link",
320
+ ], 16, _hoisted_4),
321
+ vue.createElementVNode("button", vue.mergeProps({
322
+ class: ['p-image-action p-link', { 'p-disabled': $options.isZoomInDisabled }],
294
323
  onClick: _cache[5] || (_cache[5] = (...args) => ($options.zoomIn && $options.zoomIn(...args))),
295
324
  type: "button",
296
- disabled: $options.zoomDisabled,
325
+ disabled: $options.isZoomInDisabled,
297
326
  "aria-label": $options.zoomInAriaLabel
298
- }, [
327
+ }, _ctx.ptm('zoomInButton')), [
299
328
  vue.renderSlot(_ctx.$slots, "zoomin", {}, () => [
300
- vue.createVNode(_component_SearchPlusIcon)
329
+ vue.createVNode(_component_SearchPlusIcon, vue.normalizeProps(vue.guardReactiveProps(_ctx.ptm('zoomInIcon'))), null, 16)
301
330
  ])
302
- ], 8, _hoisted_6),
303
- vue.createElementVNode("button", {
331
+ ], 16, _hoisted_5),
332
+ vue.createElementVNode("button", vue.mergeProps({
304
333
  class: "p-image-action p-link",
305
334
  type: "button",
306
- onClick: _cache[6] || (_cache[6] = (...args) => (_ctx.hidePreview && _ctx.hidePreview(...args))),
335
+ onClick: _cache[6] || (_cache[6] = (...args) => ($options.hidePreview && $options.hidePreview(...args))),
307
336
  "aria-label": $options.closeAriaLabel,
308
337
  autofocus: ""
309
- }, [
338
+ }, _ctx.ptm('closeButton')), [
310
339
  vue.renderSlot(_ctx.$slots, "close", {}, () => [
311
- vue.createVNode(_component_TimesIcon)
340
+ vue.createVNode(_component_TimesIcon, vue.normalizeProps(vue.guardReactiveProps(_ctx.ptm('closeIcon'))), null, 16)
312
341
  ])
313
- ], 8, _hoisted_7)
314
- ]),
342
+ ], 16, _hoisted_6)
343
+ ], 16),
315
344
  vue.createVNode(vue.Transition, {
316
345
  name: "p-image-preview",
317
346
  onBeforeEnter: $options.onBeforeEnter,
@@ -322,26 +351,32 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
322
351
  }, {
323
352
  default: vue.withCtx(() => [
324
353
  ($data.previewVisible)
325
- ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_8, [
326
- vue.createElementVNode("img", {
327
- src: _ctx.$attrs.src,
354
+ ? (vue.openBlock(), vue.createElementBlock("div", vue.normalizeProps(vue.mergeProps({ key: 0 }, _ctx.ptm('previewContainer'))), [
355
+ vue.renderSlot(_ctx.$slots, "preview", {
328
356
  class: "p-image-preview",
329
357
  style: vue.normalizeStyle($options.imagePreviewStyle),
330
- onClick: _cache[7] || (_cache[7] = (...args) => ($options.onPreviewImageClick && $options.onPreviewImageClick(...args)))
331
- }, null, 12, _hoisted_9)
332
- ]))
358
+ onClick: $options.onPreviewImageClick
359
+ }, () => [
360
+ vue.createElementVNode("img", vue.mergeProps({
361
+ src: _ctx.$attrs.src,
362
+ class: "p-image-preview",
363
+ style: $options.imagePreviewStyle,
364
+ onClick: _cache[7] || (_cache[7] = (...args) => ($options.onPreviewImageClick && $options.onPreviewImageClick(...args)))
365
+ }, _ctx.ptm('preview')), null, 16, _hoisted_7)
366
+ ])
367
+ ], 16))
333
368
  : vue.createCommentVNode("", true)
334
369
  ]),
335
- _: 1
370
+ _: 3
336
371
  }, 8, ["onBeforeEnter", "onEnter", "onLeave", "onBeforeLeave", "onAfterLeave"])
337
- ], 42, _hoisted_1)), [
372
+ ], 16, _hoisted_1)), [
338
373
  [_directive_focustrap]
339
374
  ])
340
375
  : vue.createCommentVNode("", true)
341
376
  ]),
342
377
  _: 3
343
378
  })
344
- ], 6))
379
+ ], 16))
345
380
  }
346
381
 
347
382
  function styleInject(css, ref) {
@@ -1 +1 @@
1
- "use strict";var e=require("primevue/focustrap"),t=require("primevue/icons/eye"),i=require("primevue/icons/refresh"),o=require("primevue/icons/searchminus"),a=require("primevue/icons/searchplus"),n=require("primevue/icons/times"),r=require("primevue/icons/undo"),l=require("primevue/portal"),s=require("primevue/utils"),c=require("vue");function m(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var p=m(e),u=m(t),d=m(i),v=m(o),h=m(a),f=m(n),g=m(r),k={name:"Image",inheritAttrs:!1,emits:["show","hide","error"],props:{preview:{type:Boolean,default:!1},class:{type:null,default:null},style:{type:null,default:null},imageStyle:{type:null,default:null},imageClass:{type:null,default:null},previewButtonProps:{type:null,default:null},indicatorIcon:{type:String,default:void 0}},mask:null,data:()=>({maskVisible:!1,previewVisible:!1,rotate:0,scale:1}),beforeUnmount(){this.mask&&s.ZIndexUtils.clear(this.container)},methods:{maskRef(e){this.mask=e},toolbarRef(e){this.toolbarRef=e},onImageClick(){this.preview&&(this.maskVisible=!0,setTimeout((()=>{this.previewVisible=!0}),25))},onPreviewImageClick(){this.previewClick=!0},onMaskClick(){this.previewClick||(this.previewVisible=!1,this.rotate=0,this.scale=1),this.previewClick=!1},onMaskKeydown(e){if("Escape"===e.code)this.onMaskClick(),setTimeout((()=>{s.DomHandler.focus(this.$refs.previewButton)}),25),e.preventDefault()},onError(){this.$emit("error")},rotateRight(){this.rotate+=90,this.previewClick=!0},rotateLeft(){this.rotate-=90,this.previewClick=!0},zoomIn(){this.scale=this.scale+.1,this.previewClick=!0},zoomOut(){this.scale=this.scale-.1,this.previewClick=!0},onBeforeEnter(){s.ZIndexUtils.set("modal",this.mask,this.$primevue.config.zIndex.modal)},onEnter(){this.focus(),this.$emit("show")},onBeforeLeave(){s.DomHandler.addClass(this.mask,"p-component-overlay-leave")},onLeave(){this.$emit("hide")},onAfterLeave(e){s.ZIndexUtils.clear(e),this.maskVisible=!1},focus(){let e=this.mask.querySelector("[autofocus]");e&&e.focus()}},computed:{containerClass(){return["p-image p-component",this.class,{"p-image-preview-container":this.preview}]},maskClass:()=>["p-image-mask p-component-overlay p-component-overlay-enter"],rotateClass(){return"p-image-preview-rotate-"+this.rotate},imagePreviewStyle(){return{transform:"rotate("+this.rotate+"deg) scale("+this.scale+")"}},zoomDisabled(){return this.scale<=.5||this.scale>=1.5},rightAriaLabel(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.rotateRight:void 0},leftAriaLabel(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.rotateLeft:void 0},zoomInAriaLabel(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.zoomIn:void 0},zoomOutAriaLabel(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.zoomOut:void 0},closeAriaLabel(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.close:void 0}},components:{Portal:m(l).default,EyeIcon:u.default,RefreshIcon:d.default,UndoIcon:g.default,SearchMinusIcon:v.default,SearchPlusIcon:h.default,TimesIcon:f.default},directives:{focustrap:p.default}};const b=["aria-modal"],y={class:"p-image-toolbar"},w=["aria-label"],C=["aria-label"],I=["disabled","aria-label"],E=["disabled","aria-label"],V=["aria-label"],L={key:0},B=["src"];!function(e,t){void 0===t&&(t={});var i=t.insertAt;if(e&&"undefined"!=typeof document){var o=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css","top"===i&&o.firstChild?o.insertBefore(a,o.firstChild):o.appendChild(a),a.styleSheet?a.styleSheet.cssText=e:a.appendChild(document.createTextNode(e))}}("\n.p-image-mask {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.p-image-preview-container {\n position: relative;\n display: inline-block;\n}\n.p-image-preview-indicator {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0;\n transition: opacity 0.3s;\n}\n.p-image-preview-container:hover > .p-image-preview-indicator {\n opacity: 1;\n cursor: pointer;\n}\n.p-image-preview-container > img {\n cursor: pointer;\n}\n.p-image-toolbar {\n position: absolute;\n top: 0;\n right: 0;\n display: flex;\n}\n.p-image-action.p-link {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.p-image-preview {\n transition: transform 0.15s;\n max-width: 100vw;\n max-height: 100vh;\n}\n.p-image-preview-enter-active {\n transition: all 150ms cubic-bezier(0, 0, 0.2, 1);\n}\n.p-image-preview-leave-active {\n transition: all 150ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.p-image-preview-enter-from,\n.p-image-preview-leave-to {\n opacity: 0;\n transform: scale(0.7);\n}\n"),k.render=function(e,t,i,o,a,n){const r=c.resolveComponent("RefreshIcon"),l=c.resolveComponent("UndoIcon"),s=c.resolveComponent("SearchMinusIcon"),m=c.resolveComponent("SearchPlusIcon"),p=c.resolveComponent("TimesIcon"),u=c.resolveComponent("Portal"),d=c.resolveDirective("focustrap");return c.openBlock(),c.createElementBlock("span",{class:c.normalizeClass(n.containerClass),style:c.normalizeStyle(i.style)},[c.createElementVNode("img",c.mergeProps(e.$attrs,{style:i.imageStyle,class:i.imageClass,onError:t[0]||(t[0]=(...e)=>n.onError&&n.onError(...e))}),null,16),i.preview?(c.openBlock(),c.createElementBlock("button",c.mergeProps({key:0,ref:"previewButton",class:"p-image-preview-indicator",onClick:t[1]||(t[1]=(...e)=>n.onImageClick&&n.onImageClick(...e))},i.previewButtonProps),[c.renderSlot(e.$slots,"indicatoricon",{},(()=>[(c.openBlock(),c.createBlock(c.resolveDynamicComponent(i.indicatorIcon?"i":"EyeIcon"),{class:"p-image-preview-icon"}))]))],16)):c.createCommentVNode("",!0),c.createVNode(u,null,{default:c.withCtx((()=>[a.maskVisible?c.withDirectives((c.openBlock(),c.createElementBlock("div",{key:0,ref:n.maskRef,role:"dialog",class:c.normalizeClass(n.maskClass),"aria-modal":a.maskVisible,onClick:t[8]||(t[8]=(...e)=>n.onMaskClick&&n.onMaskClick(...e)),onKeydown:t[9]||(t[9]=(...e)=>n.onMaskKeydown&&n.onMaskKeydown(...e))},[c.createElementVNode("div",y,[c.createElementVNode("button",{class:"p-image-action p-link",onClick:t[2]||(t[2]=(...e)=>n.rotateRight&&n.rotateRight(...e)),type:"button","aria-label":n.rightAriaLabel},[c.renderSlot(e.$slots,"refresh",{},(()=>[c.createVNode(r)]))],8,w),c.createElementVNode("button",{class:"p-image-action p-link",onClick:t[3]||(t[3]=(...e)=>n.rotateLeft&&n.rotateLeft(...e)),type:"button","aria-label":n.leftAriaLabel},[c.renderSlot(e.$slots,"undo",{},(()=>[c.createVNode(l)]))],8,C),c.createElementVNode("button",{class:"p-image-action p-link",onClick:t[4]||(t[4]=(...e)=>n.zoomOut&&n.zoomOut(...e)),type:"button",disabled:n.zoomDisabled,"aria-label":n.zoomOutAriaLabel},[c.renderSlot(e.$slots,"zoomout",{},(()=>[c.createVNode(s)]))],8,I),c.createElementVNode("button",{class:"p-image-action p-link",onClick:t[5]||(t[5]=(...e)=>n.zoomIn&&n.zoomIn(...e)),type:"button",disabled:n.zoomDisabled,"aria-label":n.zoomInAriaLabel},[c.renderSlot(e.$slots,"zoomin",{},(()=>[c.createVNode(m)]))],8,E),c.createElementVNode("button",{class:"p-image-action p-link",type:"button",onClick:t[6]||(t[6]=(...t)=>e.hidePreview&&e.hidePreview(...t)),"aria-label":n.closeAriaLabel,autofocus:""},[c.renderSlot(e.$slots,"close",{},(()=>[c.createVNode(p)]))],8,V)]),c.createVNode(c.Transition,{name:"p-image-preview",onBeforeEnter:n.onBeforeEnter,onEnter:n.onEnter,onLeave:n.onLeave,onBeforeLeave:n.onBeforeLeave,onAfterLeave:n.onAfterLeave},{default:c.withCtx((()=>[a.previewVisible?(c.openBlock(),c.createElementBlock("div",L,[c.createElementVNode("img",{src:e.$attrs.src,class:"p-image-preview",style:c.normalizeStyle(n.imagePreviewStyle),onClick:t[7]||(t[7]=(...e)=>n.onPreviewImageClick&&n.onPreviewImageClick(...e))},null,12,B)])):c.createCommentVNode("",!0)])),_:1},8,["onBeforeEnter","onEnter","onLeave","onBeforeLeave","onAfterLeave"])],42,b)),[[d]]):c.createCommentVNode("",!0)])),_:3})],6)},module.exports=k;
1
+ "use strict";var e=require("primevue/basecomponent"),t=require("primevue/focustrap"),o=require("primevue/icons/eye"),i=require("primevue/icons/refresh"),r=require("primevue/icons/searchminus"),a=require("primevue/icons/searchplus"),n=require("primevue/icons/times"),l=require("primevue/icons/undo"),s=require("primevue/portal"),c=require("primevue/utils"),m=require("vue");function p(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var u=p(e),d=p(t),v=p(o),h=p(i),g=p(r),f=p(a),b=p(n),k=p(l),y=p(s),w={name:"Image",extends:u.default,inheritAttrs:!1,emits:["show","hide","error"],props:{preview:{type:Boolean,default:!1},class:{type:null,default:null},style:{type:null,default:null},imageStyle:{type:null,default:null},imageClass:{type:null,default:null},previewButtonProps:{type:null,default:null},indicatorIcon:{type:String,default:void 0},zoomInDisabled:{type:Boolean,default:!1},zoomOutDisabled:{type:Boolean,default:!1}},mask:null,data:()=>({maskVisible:!1,previewVisible:!1,rotate:0,scale:1}),beforeUnmount(){this.mask&&c.ZIndexUtils.clear(this.container)},methods:{maskRef(e){this.mask=e},toolbarRef(e){this.toolbarRef=e},onImageClick(){this.preview&&(this.maskVisible=!0,setTimeout((()=>{this.previewVisible=!0}),25))},onPreviewImageClick(){this.previewClick=!0},onMaskClick(e){[e.target.classList].includes("p-image-action")||e.target.closest(".p-image-action")||(this.previewClick||(this.previewVisible=!1,this.rotate=0,this.scale=1),this.previewClick=!1)},onMaskKeydown(e){if("Escape"===e.code)this.onMaskClick(),setTimeout((()=>{c.DomHandler.focus(this.$refs.previewButton)}),25),e.preventDefault()},onError(){this.$emit("error")},rotateRight(){this.rotate+=90,this.previewClick=!0},rotateLeft(){this.rotate-=90,this.previewClick=!0},zoomIn(){this.scale=this.scale+.1,this.previewClick=!0},zoomOut(){this.scale=this.scale-.1,this.previewClick=!0},onBeforeEnter(){c.ZIndexUtils.set("modal",this.mask,this.$primevue.config.zIndex.modal)},onEnter(){this.focus(),this.$emit("show")},onBeforeLeave(){c.DomHandler.addClass(this.mask,"p-component-overlay-leave")},onLeave(){this.$emit("hide")},onAfterLeave(e){c.ZIndexUtils.clear(e),this.maskVisible=!1},focus(){let e=this.mask.querySelector("[autofocus]");e&&e.focus()},hidePreview(){this.previewVisible=!1,this.rotate=0,this.scale=1}},computed:{containerClass(){return["p-image p-component",this.class,{"p-image-preview-container":this.preview}]},maskClass:()=>["p-image-mask p-component-overlay p-component-overlay-enter"],rotateClass(){return"p-image-preview-rotate-"+this.rotate},imagePreviewStyle(){return{transform:"rotate("+this.rotate+"deg) scale("+this.scale+")"}},isZoomInDisabled(){return this.zoomInDisabled||this.scale>=1.5},isZoomOutDisabled(){return this.zoomOutDisabled||this.scale<=.5},rightAriaLabel(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.rotateRight:void 0},leftAriaLabel(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.rotateLeft:void 0},zoomInAriaLabel(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.zoomIn:void 0},zoomOutAriaLabel(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.zoomOut:void 0},closeAriaLabel(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.close:void 0}},components:{Portal:y.default,EyeIcon:v.default,RefreshIcon:h.default,UndoIcon:k.default,SearchMinusIcon:g.default,SearchPlusIcon:f.default,TimesIcon:b.default},directives:{focustrap:d.default}};const C=["aria-modal"],I=["aria-label"],P=["aria-label"],z=["disabled","aria-label"],B=["disabled","aria-label"],E=["aria-label"],L=["src"];!function(e,t){void 0===t&&(t={});var o=t.insertAt;if(e&&"undefined"!=typeof document){var i=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css","top"===o&&i.firstChild?i.insertBefore(r,i.firstChild):i.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e))}}("\n.p-image-mask {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.p-image-preview-container {\n position: relative;\n display: inline-block;\n}\n.p-image-preview-indicator {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0;\n transition: opacity 0.3s;\n}\n.p-image-preview-container:hover > .p-image-preview-indicator {\n opacity: 1;\n cursor: pointer;\n}\n.p-image-preview-container > img {\n cursor: pointer;\n}\n.p-image-toolbar {\n position: absolute;\n top: 0;\n right: 0;\n display: flex;\n}\n.p-image-action.p-link {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.p-image-preview {\n transition: transform 0.15s;\n max-width: 100vw;\n max-height: 100vh;\n}\n.p-image-preview-enter-active {\n transition: all 150ms cubic-bezier(0, 0, 0.2, 1);\n}\n.p-image-preview-leave-active {\n transition: all 150ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.p-image-preview-enter-from,\n.p-image-preview-leave-to {\n opacity: 0;\n transform: scale(0.7);\n}\n"),w.render=function(e,t,o,i,r,a){const n=m.resolveComponent("RefreshIcon"),l=m.resolveComponent("UndoIcon"),s=m.resolveComponent("SearchMinusIcon"),c=m.resolveComponent("SearchPlusIcon"),p=m.resolveComponent("TimesIcon"),u=m.resolveComponent("Portal"),d=m.resolveDirective("focustrap");return m.openBlock(),m.createElementBlock("span",m.mergeProps({class:a.containerClass,style:o.style},e.ptm("root")),[m.renderSlot(e.$slots,"image",{class:m.normalizeClass(o.imageClass),style:m.normalizeStyle(o.imageStyle),onError:a.onError},(()=>[m.createElementVNode("img",m.mergeProps({style:o.imageStyle,class:o.imageClass,onError:t[0]||(t[0]=(...e)=>a.onError&&a.onError(...e))},{...e.$attrs,...e.ptm("image")}),null,16)])),o.preview?(m.openBlock(),m.createElementBlock("button",m.mergeProps({key:0,ref:"previewButton",class:"p-image-preview-indicator",onClick:t[1]||(t[1]=(...e)=>a.onImageClick&&a.onImageClick(...e))},{...o.previewButtonProps,...e.ptm("button")}),[m.renderSlot(e.$slots,"indicatoricon",{},(()=>[(m.openBlock(),m.createBlock(m.resolveDynamicComponent(o.indicatorIcon?"i":"EyeIcon"),m.mergeProps({class:"p-image-preview-icon"},e.ptm("icon")),null,16))]))],16)):m.createCommentVNode("",!0),m.createVNode(u,null,{default:m.withCtx((()=>[r.maskVisible?m.withDirectives((m.openBlock(),m.createElementBlock("div",m.mergeProps({key:0,ref:a.maskRef,role:"dialog",class:a.maskClass,"aria-modal":r.maskVisible,onClick:t[8]||(t[8]=(...e)=>a.onMaskClick&&a.onMaskClick(...e)),onKeydown:t[9]||(t[9]=(...e)=>a.onMaskKeydown&&a.onMaskKeydown(...e))},e.ptm("mask")),[m.createElementVNode("div",m.mergeProps({class:"p-image-toolbar"},e.ptm("toolbar")),[m.createElementVNode("button",m.mergeProps({class:"p-image-action p-link",onClick:t[2]||(t[2]=(...e)=>a.rotateRight&&a.rotateRight(...e)),type:"button","aria-label":a.rightAriaLabel},e.ptm("rotateRightButton")),[m.renderSlot(e.$slots,"refresh",{},(()=>[m.createVNode(n,m.normalizeProps(m.guardReactiveProps(e.ptm("rotateRightIcon"))),null,16)]))],16,I),m.createElementVNode("button",m.mergeProps({class:"p-image-action p-link",onClick:t[3]||(t[3]=(...e)=>a.rotateLeft&&a.rotateLeft(...e)),type:"button","aria-label":a.leftAriaLabel},e.ptm("rotateLeftButton")),[m.renderSlot(e.$slots,"undo",{},(()=>[m.createVNode(l,m.normalizeProps(m.guardReactiveProps(e.ptm("rotateLeftIcon"))),null,16)]))],16,P),m.createElementVNode("button",m.mergeProps({class:["p-image-action p-link",{"p-disabled":a.isZoomOutDisabled}],onClick:t[4]||(t[4]=(...e)=>a.zoomOut&&a.zoomOut(...e)),type:"button",disabled:a.isZoomOutDisabled,"aria-label":a.zoomOutAriaLabel},e.ptm("zoomOutButton")),[m.renderSlot(e.$slots,"zoomout",{},(()=>[m.createVNode(s,m.normalizeProps(m.guardReactiveProps(e.ptm("zoomOutIcon"))),null,16)]))],16,z),m.createElementVNode("button",m.mergeProps({class:["p-image-action p-link",{"p-disabled":a.isZoomInDisabled}],onClick:t[5]||(t[5]=(...e)=>a.zoomIn&&a.zoomIn(...e)),type:"button",disabled:a.isZoomInDisabled,"aria-label":a.zoomInAriaLabel},e.ptm("zoomInButton")),[m.renderSlot(e.$slots,"zoomin",{},(()=>[m.createVNode(c,m.normalizeProps(m.guardReactiveProps(e.ptm("zoomInIcon"))),null,16)]))],16,B),m.createElementVNode("button",m.mergeProps({class:"p-image-action p-link",type:"button",onClick:t[6]||(t[6]=(...e)=>a.hidePreview&&a.hidePreview(...e)),"aria-label":a.closeAriaLabel,autofocus:""},e.ptm("closeButton")),[m.renderSlot(e.$slots,"close",{},(()=>[m.createVNode(p,m.normalizeProps(m.guardReactiveProps(e.ptm("closeIcon"))),null,16)]))],16,E)],16),m.createVNode(m.Transition,{name:"p-image-preview",onBeforeEnter:a.onBeforeEnter,onEnter:a.onEnter,onLeave:a.onLeave,onBeforeLeave:a.onBeforeLeave,onAfterLeave:a.onAfterLeave},{default:m.withCtx((()=>[r.previewVisible?(m.openBlock(),m.createElementBlock("div",m.normalizeProps(m.mergeProps({key:0},e.ptm("previewContainer"))),[m.renderSlot(e.$slots,"preview",{class:"p-image-preview",style:m.normalizeStyle(a.imagePreviewStyle),onClick:a.onPreviewImageClick},(()=>[m.createElementVNode("img",m.mergeProps({src:e.$attrs.src,class:"p-image-preview",style:a.imagePreviewStyle,onClick:t[7]||(t[7]=(...e)=>a.onPreviewImageClick&&a.onPreviewImageClick(...e))},e.ptm("preview")),null,16,L)]))],16)):m.createCommentVNode("",!0)])),_:3},8,["onBeforeEnter","onEnter","onLeave","onBeforeLeave","onAfterLeave"])],16,C)),[[d]]):m.createCommentVNode("",!0)])),_:3})],16)},module.exports=w;
@@ -1,3 +1,4 @@
1
+ import BaseComponent from 'primevue/basecomponent';
1
2
  import FocusTrap from 'primevue/focustrap';
2
3
  import EyeIcon from 'primevue/icons/eye';
3
4
  import RefreshIcon from 'primevue/icons/refresh';
@@ -7,10 +8,11 @@ import TimesIcon from 'primevue/icons/times';
7
8
  import UndoIcon from 'primevue/icons/undo';
8
9
  import Portal from 'primevue/portal';
9
10
  import { ZIndexUtils, DomHandler } from 'primevue/utils';
10
- import { resolveComponent, resolveDirective, openBlock, createElementBlock, normalizeClass, normalizeStyle, createElementVNode, mergeProps, renderSlot, createBlock, resolveDynamicComponent, createCommentVNode, createVNode, withCtx, withDirectives, Transition } from 'vue';
11
+ import { resolveComponent, resolveDirective, openBlock, createElementBlock, mergeProps, renderSlot, normalizeClass, normalizeStyle, createElementVNode, createBlock, resolveDynamicComponent, createCommentVNode, createVNode, withCtx, withDirectives, normalizeProps, guardReactiveProps, Transition } from 'vue';
11
12
 
12
13
  var script = {
13
14
  name: 'Image',
15
+ extends: BaseComponent,
14
16
  inheritAttrs: false,
15
17
  emits: ['show', 'hide', 'error'],
16
18
  props: {
@@ -41,6 +43,14 @@ var script = {
41
43
  indicatorIcon: {
42
44
  type: String,
43
45
  default: undefined
46
+ },
47
+ zoomInDisabled: {
48
+ type: Boolean,
49
+ default: false
50
+ },
51
+ zoomOutDisabled: {
52
+ type: Boolean,
53
+ default: false
44
54
  }
45
55
  },
46
56
  mask: null,
@@ -75,7 +85,13 @@ var script = {
75
85
  onPreviewImageClick() {
76
86
  this.previewClick = true;
77
87
  },
78
- onMaskClick() {
88
+ onMaskClick(event) {
89
+ const isActionbarTarget = [event.target.classList].includes('p-image-action') || event.target.closest('.p-image-action');
90
+
91
+ if (isActionbarTarget) {
92
+ return;
93
+ }
94
+
79
95
  if (!this.previewClick) {
80
96
  this.previewVisible = false;
81
97
  this.rotate = 0;
@@ -138,6 +154,11 @@ var script = {
138
154
  if (focusTarget) {
139
155
  focusTarget.focus();
140
156
  }
157
+ },
158
+ hidePreview() {
159
+ this.previewVisible = false;
160
+ this.rotate = 0;
161
+ this.scale = 1;
141
162
  }
142
163
  },
143
164
  computed: {
@@ -159,8 +180,11 @@ var script = {
159
180
  imagePreviewStyle() {
160
181
  return { transform: 'rotate(' + this.rotate + 'deg) scale(' + this.scale + ')' };
161
182
  },
162
- zoomDisabled() {
163
- return this.scale <= 0.5 || this.scale >= 1.5;
183
+ isZoomInDisabled() {
184
+ return this.zoomInDisabled || this.scale >= 1.5;
185
+ },
186
+ isZoomOutDisabled() {
187
+ return this.zoomOutDisabled || this.scale <= 0.5;
164
188
  },
165
189
  rightAriaLabel() {
166
190
  return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.rotateRight : undefined;
@@ -193,14 +217,12 @@ var script = {
193
217
  };
194
218
 
195
219
  const _hoisted_1 = ["aria-modal"];
196
- const _hoisted_2 = { class: "p-image-toolbar" };
220
+ const _hoisted_2 = ["aria-label"];
197
221
  const _hoisted_3 = ["aria-label"];
198
- const _hoisted_4 = ["aria-label"];
222
+ const _hoisted_4 = ["disabled", "aria-label"];
199
223
  const _hoisted_5 = ["disabled", "aria-label"];
200
- const _hoisted_6 = ["disabled", "aria-label"];
201
- const _hoisted_7 = ["aria-label"];
202
- const _hoisted_8 = { key: 0 };
203
- const _hoisted_9 = ["src"];
224
+ const _hoisted_6 = ["aria-label"];
225
+ const _hoisted_7 = ["src"];
204
226
 
205
227
  function render(_ctx, _cache, $props, $setup, $data, $options) {
206
228
  const _component_RefreshIcon = resolveComponent("RefreshIcon");
@@ -211,94 +233,100 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
211
233
  const _component_Portal = resolveComponent("Portal");
212
234
  const _directive_focustrap = resolveDirective("focustrap");
213
235
 
214
- return (openBlock(), createElementBlock("span", {
215
- class: normalizeClass($options.containerClass),
216
- style: normalizeStyle($props.style)
217
- }, [
218
- createElementVNode("img", mergeProps(_ctx.$attrs, {
219
- style: $props.imageStyle,
220
- class: $props.imageClass,
221
- onError: _cache[0] || (_cache[0] = (...args) => ($options.onError && $options.onError(...args)))
222
- }), null, 16),
236
+ return (openBlock(), createElementBlock("span", mergeProps({
237
+ class: $options.containerClass,
238
+ style: $props.style
239
+ }, _ctx.ptm('root')), [
240
+ renderSlot(_ctx.$slots, "image", {
241
+ class: normalizeClass($props.imageClass),
242
+ style: normalizeStyle($props.imageStyle),
243
+ onError: $options.onError
244
+ }, () => [
245
+ createElementVNode("img", mergeProps({
246
+ style: $props.imageStyle,
247
+ class: $props.imageClass,
248
+ onError: _cache[0] || (_cache[0] = (...args) => ($options.onError && $options.onError(...args)))
249
+ }, { ..._ctx.$attrs, ..._ctx.ptm('image') }), null, 16)
250
+ ]),
223
251
  ($props.preview)
224
252
  ? (openBlock(), createElementBlock("button", mergeProps({
225
253
  key: 0,
226
254
  ref: "previewButton",
227
255
  class: "p-image-preview-indicator",
228
256
  onClick: _cache[1] || (_cache[1] = (...args) => ($options.onImageClick && $options.onImageClick(...args)))
229
- }, $props.previewButtonProps), [
257
+ }, { ...$props.previewButtonProps, ..._ctx.ptm('button') }), [
230
258
  renderSlot(_ctx.$slots, "indicatoricon", {}, () => [
231
- (openBlock(), createBlock(resolveDynamicComponent($props.indicatorIcon ? 'i' : 'EyeIcon'), { class: "p-image-preview-icon" }))
259
+ (openBlock(), createBlock(resolveDynamicComponent($props.indicatorIcon ? 'i' : 'EyeIcon'), mergeProps({ class: "p-image-preview-icon" }, _ctx.ptm('icon')), null, 16))
232
260
  ])
233
261
  ], 16))
234
262
  : createCommentVNode("", true),
235
263
  createVNode(_component_Portal, null, {
236
264
  default: withCtx(() => [
237
265
  ($data.maskVisible)
238
- ? withDirectives((openBlock(), createElementBlock("div", {
266
+ ? withDirectives((openBlock(), createElementBlock("div", mergeProps({
239
267
  key: 0,
240
268
  ref: $options.maskRef,
241
269
  role: "dialog",
242
- class: normalizeClass($options.maskClass),
270
+ class: $options.maskClass,
243
271
  "aria-modal": $data.maskVisible,
244
272
  onClick: _cache[8] || (_cache[8] = (...args) => ($options.onMaskClick && $options.onMaskClick(...args))),
245
273
  onKeydown: _cache[9] || (_cache[9] = (...args) => ($options.onMaskKeydown && $options.onMaskKeydown(...args)))
246
- }, [
247
- createElementVNode("div", _hoisted_2, [
248
- createElementVNode("button", {
274
+ }, _ctx.ptm('mask')), [
275
+ createElementVNode("div", mergeProps({ class: "p-image-toolbar" }, _ctx.ptm('toolbar')), [
276
+ createElementVNode("button", mergeProps({
249
277
  class: "p-image-action p-link",
250
278
  onClick: _cache[2] || (_cache[2] = (...args) => ($options.rotateRight && $options.rotateRight(...args))),
251
279
  type: "button",
252
280
  "aria-label": $options.rightAriaLabel
253
- }, [
281
+ }, _ctx.ptm('rotateRightButton')), [
254
282
  renderSlot(_ctx.$slots, "refresh", {}, () => [
255
- createVNode(_component_RefreshIcon)
283
+ createVNode(_component_RefreshIcon, normalizeProps(guardReactiveProps(_ctx.ptm('rotateRightIcon'))), null, 16)
256
284
  ])
257
- ], 8, _hoisted_3),
258
- createElementVNode("button", {
285
+ ], 16, _hoisted_2),
286
+ createElementVNode("button", mergeProps({
259
287
  class: "p-image-action p-link",
260
288
  onClick: _cache[3] || (_cache[3] = (...args) => ($options.rotateLeft && $options.rotateLeft(...args))),
261
289
  type: "button",
262
290
  "aria-label": $options.leftAriaLabel
263
- }, [
291
+ }, _ctx.ptm('rotateLeftButton')), [
264
292
  renderSlot(_ctx.$slots, "undo", {}, () => [
265
- createVNode(_component_UndoIcon)
293
+ createVNode(_component_UndoIcon, normalizeProps(guardReactiveProps(_ctx.ptm('rotateLeftIcon'))), null, 16)
266
294
  ])
267
- ], 8, _hoisted_4),
268
- createElementVNode("button", {
269
- class: "p-image-action p-link",
295
+ ], 16, _hoisted_3),
296
+ createElementVNode("button", mergeProps({
297
+ class: ['p-image-action p-link', { 'p-disabled': $options.isZoomOutDisabled }],
270
298
  onClick: _cache[4] || (_cache[4] = (...args) => ($options.zoomOut && $options.zoomOut(...args))),
271
299
  type: "button",
272
- disabled: $options.zoomDisabled,
300
+ disabled: $options.isZoomOutDisabled,
273
301
  "aria-label": $options.zoomOutAriaLabel
274
- }, [
302
+ }, _ctx.ptm('zoomOutButton')), [
275
303
  renderSlot(_ctx.$slots, "zoomout", {}, () => [
276
- createVNode(_component_SearchMinusIcon)
304
+ createVNode(_component_SearchMinusIcon, normalizeProps(guardReactiveProps(_ctx.ptm('zoomOutIcon'))), null, 16)
277
305
  ])
278
- ], 8, _hoisted_5),
279
- createElementVNode("button", {
280
- class: "p-image-action p-link",
306
+ ], 16, _hoisted_4),
307
+ createElementVNode("button", mergeProps({
308
+ class: ['p-image-action p-link', { 'p-disabled': $options.isZoomInDisabled }],
281
309
  onClick: _cache[5] || (_cache[5] = (...args) => ($options.zoomIn && $options.zoomIn(...args))),
282
310
  type: "button",
283
- disabled: $options.zoomDisabled,
311
+ disabled: $options.isZoomInDisabled,
284
312
  "aria-label": $options.zoomInAriaLabel
285
- }, [
313
+ }, _ctx.ptm('zoomInButton')), [
286
314
  renderSlot(_ctx.$slots, "zoomin", {}, () => [
287
- createVNode(_component_SearchPlusIcon)
315
+ createVNode(_component_SearchPlusIcon, normalizeProps(guardReactiveProps(_ctx.ptm('zoomInIcon'))), null, 16)
288
316
  ])
289
- ], 8, _hoisted_6),
290
- createElementVNode("button", {
317
+ ], 16, _hoisted_5),
318
+ createElementVNode("button", mergeProps({
291
319
  class: "p-image-action p-link",
292
320
  type: "button",
293
- onClick: _cache[6] || (_cache[6] = (...args) => (_ctx.hidePreview && _ctx.hidePreview(...args))),
321
+ onClick: _cache[6] || (_cache[6] = (...args) => ($options.hidePreview && $options.hidePreview(...args))),
294
322
  "aria-label": $options.closeAriaLabel,
295
323
  autofocus: ""
296
- }, [
324
+ }, _ctx.ptm('closeButton')), [
297
325
  renderSlot(_ctx.$slots, "close", {}, () => [
298
- createVNode(_component_TimesIcon)
326
+ createVNode(_component_TimesIcon, normalizeProps(guardReactiveProps(_ctx.ptm('closeIcon'))), null, 16)
299
327
  ])
300
- ], 8, _hoisted_7)
301
- ]),
328
+ ], 16, _hoisted_6)
329
+ ], 16),
302
330
  createVNode(Transition, {
303
331
  name: "p-image-preview",
304
332
  onBeforeEnter: $options.onBeforeEnter,
@@ -309,26 +337,32 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
309
337
  }, {
310
338
  default: withCtx(() => [
311
339
  ($data.previewVisible)
312
- ? (openBlock(), createElementBlock("div", _hoisted_8, [
313
- createElementVNode("img", {
314
- src: _ctx.$attrs.src,
340
+ ? (openBlock(), createElementBlock("div", normalizeProps(mergeProps({ key: 0 }, _ctx.ptm('previewContainer'))), [
341
+ renderSlot(_ctx.$slots, "preview", {
315
342
  class: "p-image-preview",
316
343
  style: normalizeStyle($options.imagePreviewStyle),
317
- onClick: _cache[7] || (_cache[7] = (...args) => ($options.onPreviewImageClick && $options.onPreviewImageClick(...args)))
318
- }, null, 12, _hoisted_9)
319
- ]))
344
+ onClick: $options.onPreviewImageClick
345
+ }, () => [
346
+ createElementVNode("img", mergeProps({
347
+ src: _ctx.$attrs.src,
348
+ class: "p-image-preview",
349
+ style: $options.imagePreviewStyle,
350
+ onClick: _cache[7] || (_cache[7] = (...args) => ($options.onPreviewImageClick && $options.onPreviewImageClick(...args)))
351
+ }, _ctx.ptm('preview')), null, 16, _hoisted_7)
352
+ ])
353
+ ], 16))
320
354
  : createCommentVNode("", true)
321
355
  ]),
322
- _: 1
356
+ _: 3
323
357
  }, 8, ["onBeforeEnter", "onEnter", "onLeave", "onBeforeLeave", "onAfterLeave"])
324
- ], 42, _hoisted_1)), [
358
+ ], 16, _hoisted_1)), [
325
359
  [_directive_focustrap]
326
360
  ])
327
361
  : createCommentVNode("", true)
328
362
  ]),
329
363
  _: 3
330
364
  })
331
- ], 6))
365
+ ], 16))
332
366
  }
333
367
 
334
368
  function styleInject(css, ref) {