primevue 4.1.1 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (493) hide show
  1. package/accordion/index.mjs.map +1 -1
  2. package/accordion/style/index.mjs +1 -1
  3. package/accordion/style/index.mjs.map +1 -1
  4. package/accordioncontent/index.mjs.map +1 -1
  5. package/accordioncontent/style/index.mjs.map +1 -1
  6. package/accordionheader/index.mjs.map +1 -1
  7. package/accordionheader/style/index.mjs.map +1 -1
  8. package/accordionpanel/index.mjs.map +1 -1
  9. package/accordionpanel/style/index.mjs.map +1 -1
  10. package/accordiontab/index.mjs.map +1 -1
  11. package/accordiontab/style/index.mjs.map +1 -1
  12. package/animateonscroll/index.mjs.map +1 -1
  13. package/animateonscroll/style/index.mjs.map +1 -1
  14. package/autocomplete/AutoComplete.vue +36 -32
  15. package/autocomplete/BaseAutoComplete.vue +2 -19
  16. package/autocomplete/index.d.ts +21 -0
  17. package/autocomplete/index.mjs +40 -53
  18. package/autocomplete/index.mjs.map +1 -1
  19. package/autocomplete/style/index.mjs +7 -7
  20. package/autocomplete/style/index.mjs.map +1 -1
  21. package/avatar/index.mjs.map +1 -1
  22. package/avatar/style/index.mjs +1 -1
  23. package/avatar/style/index.mjs.map +1 -1
  24. package/avatargroup/index.mjs.map +1 -1
  25. package/avatargroup/style/index.mjs.map +1 -1
  26. package/badge/index.mjs.map +1 -1
  27. package/badge/style/index.mjs.map +1 -1
  28. package/badgedirective/index.d.ts +2 -2
  29. package/badgedirective/index.mjs.map +1 -1
  30. package/badgedirective/style/index.mjs.map +1 -1
  31. package/blockui/index.mjs.map +1 -1
  32. package/blockui/style/index.mjs.map +1 -1
  33. package/breadcrumb/Breadcrumb.vue +1 -1
  34. package/breadcrumb/index.mjs +2 -1
  35. package/breadcrumb/index.mjs.map +1 -1
  36. package/breadcrumb/style/index.d.ts +4 -0
  37. package/breadcrumb/style/index.mjs +2 -1
  38. package/breadcrumb/style/index.mjs.map +1 -1
  39. package/button/BaseButton.vue +4 -0
  40. package/button/index.d.ts +6 -0
  41. package/button/index.mjs +4 -0
  42. package/button/index.mjs.map +1 -1
  43. package/button/style/index.mjs +3 -3
  44. package/button/style/index.mjs.map +1 -1
  45. package/buttongroup/index.mjs.map +1 -1
  46. package/buttongroup/style/index.mjs +1 -1
  47. package/buttongroup/style/index.mjs.map +1 -1
  48. package/calendar/index.mjs.map +1 -1
  49. package/calendar/style/index.mjs.map +1 -1
  50. package/card/index.mjs.map +1 -1
  51. package/card/style/index.mjs.map +1 -1
  52. package/carousel/index.mjs.map +1 -1
  53. package/carousel/style/index.mjs +1 -1
  54. package/carousel/style/index.mjs.map +1 -1
  55. package/cascadeselect/BaseCascadeSelect.vue +8 -14
  56. package/cascadeselect/CascadeSelect.vue +34 -25
  57. package/cascadeselect/index.d.ts +45 -0
  58. package/cascadeselect/index.mjs +50 -38
  59. package/cascadeselect/index.mjs.map +1 -1
  60. package/cascadeselect/style/index.d.ts +4 -0
  61. package/cascadeselect/style/index.mjs +8 -5
  62. package/cascadeselect/style/index.mjs.map +1 -1
  63. package/chart/index.mjs.map +1 -1
  64. package/chart/style/index.mjs.map +1 -1
  65. package/checkbox/BaseCheckbox.vue +2 -19
  66. package/checkbox/Checkbox.vue +18 -6
  67. package/checkbox/index.d.ts +17 -0
  68. package/checkbox/index.mjs +20 -25
  69. package/checkbox/index.mjs.map +1 -1
  70. package/checkbox/style/index.mjs +5 -3
  71. package/checkbox/style/index.mjs.map +1 -1
  72. package/checkboxgroup/BaseCheckboxGroup.vue +16 -0
  73. package/checkboxgroup/CheckboxGroup.vue +29 -0
  74. package/checkboxgroup/index.d.ts +160 -0
  75. package/checkboxgroup/index.mjs +46 -0
  76. package/checkboxgroup/index.mjs.map +1 -0
  77. package/checkboxgroup/package.json +11 -0
  78. package/checkboxgroup/style/index.d.ts +19 -0
  79. package/checkboxgroup/style/index.mjs +17 -0
  80. package/checkboxgroup/style/index.mjs.map +1 -0
  81. package/checkboxgroup/style/package.json +6 -0
  82. package/chip/index.mjs.map +1 -1
  83. package/chip/style/index.mjs +1 -1
  84. package/chip/style/index.mjs.map +1 -1
  85. package/chips/index.mjs.map +1 -1
  86. package/chips/style/index.mjs.map +1 -1
  87. package/colorpicker/BaseColorPicker.vue +2 -10
  88. package/colorpicker/ColorPicker.vue +7 -4
  89. package/colorpicker/index.d.ts +22 -0
  90. package/colorpicker/index.mjs +21 -23
  91. package/colorpicker/index.mjs.map +1 -1
  92. package/colorpicker/style/index.mjs +5 -3
  93. package/colorpicker/style/index.mjs.map +1 -1
  94. package/column/index.mjs.map +1 -1
  95. package/column/style/index.mjs.map +1 -1
  96. package/columngroup/index.mjs.map +1 -1
  97. package/columngroup/style/index.mjs.map +1 -1
  98. package/config/index.d.ts +4 -0
  99. package/confirmationservice/index.mjs.map +1 -1
  100. package/confirmdialog/index.mjs.map +1 -1
  101. package/confirmdialog/style/index.mjs.map +1 -1
  102. package/confirmpopup/index.mjs.map +1 -1
  103. package/confirmpopup/style/index.mjs +1 -1
  104. package/confirmpopup/style/index.mjs.map +1 -1
  105. package/contextmenu/index.mjs.map +1 -1
  106. package/contextmenu/style/index.mjs +1 -1
  107. package/contextmenu/style/index.mjs.map +1 -1
  108. package/datatable/BodyCell.vue +15 -6
  109. package/datatable/DataTable.vue +56 -2
  110. package/datatable/FooterCell.vue +15 -6
  111. package/datatable/HeaderCell.vue +15 -6
  112. package/datatable/index.d.ts +12 -8
  113. package/datatable/index.mjs +163 -78
  114. package/datatable/index.mjs.map +1 -1
  115. package/datatable/style/index.mjs +1 -1
  116. package/datatable/style/index.mjs.map +1 -1
  117. package/dataview/DataView.vue +33 -1
  118. package/dataview/index.d.ts +4 -0
  119. package/dataview/index.mjs +42 -6
  120. package/dataview/index.mjs.map +1 -1
  121. package/dataview/style/index.mjs.map +1 -1
  122. package/datepicker/BaseDatePicker.vue +2 -23
  123. package/datepicker/DatePicker.vue +39 -40
  124. package/datepicker/index.d.ts +21 -4
  125. package/datepicker/index.mjs +45 -65
  126. package/datepicker/index.mjs.map +1 -1
  127. package/datepicker/style/index.mjs +4 -5
  128. package/datepicker/style/index.mjs.map +1 -1
  129. package/deferredcontent/index.mjs.map +1 -1
  130. package/deferredcontent/style/index.mjs.map +1 -1
  131. package/dialog/index.mjs.map +1 -1
  132. package/dialog/style/index.mjs +1 -1
  133. package/dialog/style/index.mjs.map +1 -1
  134. package/dialogservice/index.mjs.map +1 -1
  135. package/divider/index.mjs.map +1 -1
  136. package/divider/style/index.mjs +1 -1
  137. package/divider/style/index.mjs.map +1 -1
  138. package/dock/index.mjs.map +1 -1
  139. package/dock/style/index.mjs +1 -1
  140. package/dock/style/index.mjs.map +1 -1
  141. package/drawer/index.mjs.map +1 -1
  142. package/drawer/style/index.mjs +1 -1
  143. package/drawer/style/index.mjs.map +1 -1
  144. package/dropdown/index.mjs.map +1 -1
  145. package/dropdown/style/index.mjs.map +1 -1
  146. package/dynamicdialog/index.mjs.map +1 -1
  147. package/dynamicdialog/style/index.mjs.map +1 -1
  148. package/editor/BaseEditor.vue +2 -3
  149. package/editor/Editor.vue +3 -3
  150. package/editor/index.d.ts +22 -0
  151. package/editor/index.mjs +5 -6
  152. package/editor/index.mjs.map +1 -1
  153. package/editor/style/index.mjs +7 -2
  154. package/editor/style/index.mjs.map +1 -1
  155. package/fieldset/index.mjs.map +1 -1
  156. package/fieldset/style/index.mjs +1 -1
  157. package/fieldset/style/index.mjs.map +1 -1
  158. package/fileupload/index.mjs.map +1 -1
  159. package/fileupload/style/index.mjs +1 -1
  160. package/fileupload/style/index.mjs.map +1 -1
  161. package/floatlabel/index.mjs.map +1 -1
  162. package/floatlabel/style/index.mjs +1 -1
  163. package/floatlabel/style/index.mjs.map +1 -1
  164. package/fluid/index.mjs.map +1 -1
  165. package/fluid/style/index.mjs.map +1 -1
  166. package/focustrap/index.mjs.map +1 -1
  167. package/focustrap/style/index.mjs.map +1 -1
  168. package/galleria/index.mjs.map +1 -1
  169. package/galleria/style/index.mjs +1 -1
  170. package/galleria/style/index.mjs.map +1 -1
  171. package/iconfield/index.mjs.map +1 -1
  172. package/iconfield/style/index.mjs +1 -1
  173. package/iconfield/style/index.mjs.map +1 -1
  174. package/iftalabel/index.mjs.map +1 -1
  175. package/iftalabel/style/index.mjs +1 -1
  176. package/iftalabel/style/index.mjs.map +1 -1
  177. package/image/index.mjs.map +1 -1
  178. package/image/style/index.mjs +1 -1
  179. package/image/style/index.mjs.map +1 -1
  180. package/imagecompare/ImageCompare.vue +33 -1
  181. package/imagecompare/index.mjs +35 -1
  182. package/imagecompare/index.mjs.map +1 -1
  183. package/imagecompare/style/index.mjs +1 -1
  184. package/imagecompare/style/index.mjs.map +1 -1
  185. package/index.d.ts +811 -0
  186. package/index.mjs +531 -0
  187. package/index.mjs.map +1 -0
  188. package/inlinemessage/index.mjs.map +1 -1
  189. package/inlinemessage/style/index.mjs.map +1 -1
  190. package/inplace/index.d.ts +0 -4
  191. package/inplace/index.mjs.map +1 -1
  192. package/inplace/style/index.mjs.map +1 -1
  193. package/inputchips/index.mjs.map +1 -1
  194. package/inputchips/style/index.mjs.map +1 -1
  195. package/inputgroup/index.mjs.map +1 -1
  196. package/inputgroup/style/index.mjs +1 -1
  197. package/inputgroup/style/index.mjs.map +1 -1
  198. package/inputgroupaddon/index.mjs.map +1 -1
  199. package/inputgroupaddon/style/index.mjs.map +1 -1
  200. package/inputicon/index.mjs.map +1 -1
  201. package/inputicon/style/index.mjs.map +1 -1
  202. package/inputmask/BaseInputMask.vue +2 -23
  203. package/inputmask/InputMask.vue +9 -14
  204. package/inputmask/index.d.ts +13 -0
  205. package/inputmask/index.mjs +13 -38
  206. package/inputmask/index.mjs.map +1 -1
  207. package/inputmask/style/index.mjs +1 -1
  208. package/inputmask/style/index.mjs.map +1 -1
  209. package/inputnumber/BaseInputNumber.vue +2 -22
  210. package/inputnumber/InputNumber.vue +14 -16
  211. package/inputnumber/index.d.ts +26 -0
  212. package/inputnumber/index.mjs +22 -39
  213. package/inputnumber/index.mjs.map +1 -1
  214. package/inputnumber/style/index.mjs +3 -3
  215. package/inputnumber/style/index.mjs.map +1 -1
  216. package/inputotp/BaseInputOtp.vue +2 -18
  217. package/inputotp/InputOtp.vue +4 -2
  218. package/inputotp/index.d.ts +21 -0
  219. package/inputotp/index.mjs +7 -21
  220. package/inputotp/index.mjs.map +1 -1
  221. package/inputotp/style/index.mjs +2 -2
  222. package/inputotp/style/index.mjs.map +1 -1
  223. package/inputswitch/index.mjs.map +1 -1
  224. package/inputswitch/style/index.mjs.map +1 -1
  225. package/inputtext/BaseInputText.vue +2 -21
  226. package/inputtext/InputText.vue +13 -22
  227. package/inputtext/index.d.ts +17 -0
  228. package/inputtext/index.mjs +16 -48
  229. package/inputtext/index.mjs.map +1 -1
  230. package/inputtext/style/index.mjs +7 -7
  231. package/inputtext/style/index.mjs.map +1 -1
  232. package/keyfilter/index.mjs.map +1 -1
  233. package/keyfilter/style/index.mjs.map +1 -1
  234. package/knob/BaseKnob.vue +2 -10
  235. package/knob/Knob.vue +23 -19
  236. package/knob/index.d.ts +24 -2
  237. package/knob/index.mjs +31 -32
  238. package/knob/index.mjs.map +1 -1
  239. package/knob/style/index.mjs +4 -2
  240. package/knob/style/index.mjs.map +1 -1
  241. package/listbox/BaseListbox.vue +2 -11
  242. package/listbox/Listbox.vue +21 -20
  243. package/listbox/index.d.ts +17 -0
  244. package/listbox/index.mjs +23 -31
  245. package/listbox/index.mjs.map +1 -1
  246. package/listbox/style/index.mjs +4 -3
  247. package/listbox/style/index.mjs.map +1 -1
  248. package/megamenu/index.mjs.map +1 -1
  249. package/megamenu/style/index.mjs +1 -1
  250. package/megamenu/style/index.mjs.map +1 -1
  251. package/menu/index.mjs.map +1 -1
  252. package/menu/style/index.mjs +1 -1
  253. package/menu/style/index.mjs.map +1 -1
  254. package/menubar/index.mjs.map +1 -1
  255. package/menubar/style/index.mjs +1 -1
  256. package/menubar/style/index.mjs.map +1 -1
  257. package/message/BaseMessage.vue +8 -0
  258. package/message/index.d.ts +9 -0
  259. package/message/index.mjs +8 -0
  260. package/message/index.mjs.map +1 -1
  261. package/message/style/index.mjs +7 -2
  262. package/message/style/index.mjs.map +1 -1
  263. package/metergroup/index.mjs.map +1 -1
  264. package/metergroup/style/index.mjs +1 -1
  265. package/metergroup/style/index.mjs.map +1 -1
  266. package/multiselect/BaseMultiSelect.vue +14 -19
  267. package/multiselect/MultiSelect.vue +45 -31
  268. package/multiselect/index.d.ts +50 -0
  269. package/multiselect/index.mjs +71 -52
  270. package/multiselect/index.mjs.map +1 -1
  271. package/multiselect/style/index.d.ts +4 -0
  272. package/multiselect/style/index.mjs +8 -5
  273. package/multiselect/style/index.mjs.map +1 -1
  274. package/orderlist/index.mjs.map +1 -1
  275. package/orderlist/style/index.mjs.map +1 -1
  276. package/organizationchart/index.mjs.map +1 -1
  277. package/organizationchart/style/index.mjs +1 -1
  278. package/organizationchart/style/index.mjs.map +1 -1
  279. package/overlaybadge/index.mjs.map +1 -1
  280. package/overlaybadge/style/index.mjs +1 -1
  281. package/overlaybadge/style/index.mjs.map +1 -1
  282. package/overlaypanel/index.mjs.map +1 -1
  283. package/overlaypanel/style/index.mjs.map +1 -1
  284. package/package.json +15 -6
  285. package/paginator/Paginator.vue +104 -84
  286. package/paginator/index.d.ts +54 -0
  287. package/paginator/index.mjs +21 -3
  288. package/paginator/index.mjs.map +1 -1
  289. package/paginator/style/index.mjs +1 -1
  290. package/paginator/style/index.mjs.map +1 -1
  291. package/panel/index.mjs.map +1 -1
  292. package/panel/style/index.mjs.map +1 -1
  293. package/panelmenu/index.mjs.map +1 -1
  294. package/panelmenu/style/index.mjs +1 -1
  295. package/panelmenu/style/index.mjs.map +1 -1
  296. package/passthrough/index.mjs.map +1 -1
  297. package/password/BasePassword.vue +2 -15
  298. package/password/Password.vue +13 -18
  299. package/password/index.d.ts +21 -0
  300. package/password/index.mjs +14 -32
  301. package/password/index.mjs.map +1 -1
  302. package/password/style/index.mjs +3 -3
  303. package/password/style/index.mjs.map +1 -1
  304. package/picklist/index.mjs.map +1 -1
  305. package/picklist/style/index.mjs.map +1 -1
  306. package/popover/index.mjs.map +1 -1
  307. package/popover/style/index.mjs +1 -1
  308. package/popover/style/index.mjs.map +1 -1
  309. package/portal/index.mjs.map +1 -1
  310. package/portal/style/index.mjs.map +1 -1
  311. package/progressbar/index.mjs.map +1 -1
  312. package/progressbar/style/index.mjs +1 -1
  313. package/progressbar/style/index.mjs.map +1 -1
  314. package/progressspinner/index.mjs.map +1 -1
  315. package/progressspinner/style/index.mjs.map +1 -1
  316. package/radiobutton/BaseRadioButton.vue +2 -19
  317. package/radiobutton/RadioButton.vue +15 -4
  318. package/radiobutton/index.d.ts +17 -0
  319. package/radiobutton/index.mjs +17 -23
  320. package/radiobutton/index.mjs.map +1 -1
  321. package/radiobutton/style/index.mjs +5 -3
  322. package/radiobutton/style/index.mjs.map +1 -1
  323. package/radiobuttongroup/BaseRadioButtonGroup.vue +16 -0
  324. package/radiobuttongroup/RadioButtonGroup.vue +29 -0
  325. package/radiobuttongroup/index.d.ts +160 -0
  326. package/radiobuttongroup/index.mjs +46 -0
  327. package/radiobuttongroup/index.mjs.map +1 -0
  328. package/radiobuttongroup/package.json +11 -0
  329. package/radiobuttongroup/style/index.d.ts +19 -0
  330. package/radiobuttongroup/style/index.mjs +17 -0
  331. package/radiobuttongroup/style/index.mjs.map +1 -0
  332. package/radiobuttongroup/style/package.json +6 -0
  333. package/rating/BaseRating.vue +2 -10
  334. package/rating/Rating.vue +17 -16
  335. package/rating/index.d.ts +18 -0
  336. package/rating/index.mjs +17 -23
  337. package/rating/index.mjs.map +1 -1
  338. package/rating/style/index.mjs +14 -5
  339. package/rating/style/index.mjs.map +1 -1
  340. package/ripple/index.mjs.map +1 -1
  341. package/ripple/style/index.mjs.map +1 -1
  342. package/row/index.mjs.map +1 -1
  343. package/row/style/index.mjs.map +1 -1
  344. package/scrollpanel/ScrollPanel.vue +38 -5
  345. package/scrollpanel/index.mjs +58 -28
  346. package/scrollpanel/index.mjs.map +1 -1
  347. package/scrollpanel/style/index.mjs +1 -1
  348. package/scrollpanel/style/index.mjs.map +1 -1
  349. package/scrolltop/index.mjs.map +1 -1
  350. package/scrolltop/style/index.mjs +1 -1
  351. package/scrolltop/style/index.mjs.map +1 -1
  352. package/select/BaseSelect.vue +2 -19
  353. package/select/Select.vue +15 -19
  354. package/select/index.d.ts +21 -0
  355. package/select/index.mjs +18 -40
  356. package/select/index.mjs.map +1 -1
  357. package/select/style/index.mjs +7 -5
  358. package/select/style/index.mjs.map +1 -1
  359. package/selectbutton/BaseSelectButton.vue +6 -8
  360. package/selectbutton/SelectButton.vue +9 -8
  361. package/selectbutton/index.d.ts +21 -0
  362. package/selectbutton/index.mjs +15 -16
  363. package/selectbutton/index.mjs.map +1 -1
  364. package/selectbutton/style/index.mjs +3 -3
  365. package/selectbutton/style/index.mjs.map +1 -1
  366. package/sidebar/index.mjs.map +1 -1
  367. package/sidebar/style/index.mjs.map +1 -1
  368. package/skeleton/index.mjs.map +1 -1
  369. package/skeleton/style/index.mjs +1 -1
  370. package/skeleton/style/index.mjs.map +1 -1
  371. package/slider/BaseSlider.vue +2 -7
  372. package/slider/Slider.vue +94 -38
  373. package/slider/index.d.ts +22 -0
  374. package/slider/index.mjs +145 -72
  375. package/slider/index.mjs.map +1 -1
  376. package/slider/style/index.mjs +4 -2
  377. package/slider/style/index.mjs.map +1 -1
  378. package/speeddial/index.mjs.map +1 -1
  379. package/speeddial/style/index.mjs +1 -1
  380. package/speeddial/style/index.mjs.map +1 -1
  381. package/splitbutton/index.mjs.map +1 -1
  382. package/splitbutton/style/index.mjs +1 -1
  383. package/splitbutton/style/index.mjs.map +1 -1
  384. package/splitter/Splitter.vue +31 -3
  385. package/splitter/index.mjs +50 -20
  386. package/splitter/index.mjs.map +1 -1
  387. package/splitter/style/index.mjs.map +1 -1
  388. package/splitterpanel/index.mjs.map +1 -1
  389. package/splitterpanel/style/index.mjs.map +1 -1
  390. package/step/index.mjs.map +1 -1
  391. package/step/style/index.mjs.map +1 -1
  392. package/stepitem/index.mjs.map +1 -1
  393. package/stepitem/style/index.mjs.map +1 -1
  394. package/steplist/index.mjs.map +1 -1
  395. package/steplist/style/index.mjs.map +1 -1
  396. package/steppanel/index.mjs.map +1 -1
  397. package/steppanel/style/index.mjs.map +1 -1
  398. package/steppanels/index.mjs.map +1 -1
  399. package/steppanels/style/index.mjs.map +1 -1
  400. package/stepper/index.mjs.map +1 -1
  401. package/stepper/style/index.mjs +1 -1
  402. package/stepper/style/index.mjs.map +1 -1
  403. package/steps/index.mjs.map +1 -1
  404. package/steps/style/index.mjs +1 -1
  405. package/steps/style/index.mjs.map +1 -1
  406. package/styleclass/index.mjs.map +1 -1
  407. package/styleclass/style/index.mjs.map +1 -1
  408. package/tab/index.mjs.map +1 -1
  409. package/tab/style/index.mjs.map +1 -1
  410. package/tablist/TabList.vue +40 -5
  411. package/tablist/index.mjs +38 -5
  412. package/tablist/index.mjs.map +1 -1
  413. package/tablist/style/index.mjs.map +1 -1
  414. package/tabmenu/index.mjs.map +1 -1
  415. package/tabmenu/style/index.mjs.map +1 -1
  416. package/tabpanel/index.mjs.map +1 -1
  417. package/tabpanel/style/index.mjs.map +1 -1
  418. package/tabpanels/index.mjs.map +1 -1
  419. package/tabpanels/style/index.mjs.map +1 -1
  420. package/tabs/index.mjs.map +1 -1
  421. package/tabs/style/index.mjs +1 -1
  422. package/tabs/style/index.mjs.map +1 -1
  423. package/tabview/index.mjs.map +1 -1
  424. package/tabview/style/index.mjs.map +1 -1
  425. package/tag/index.mjs.map +1 -1
  426. package/tag/style/index.mjs.map +1 -1
  427. package/terminal/index.mjs.map +1 -1
  428. package/terminal/style/index.mjs +1 -1
  429. package/terminal/style/index.mjs.map +1 -1
  430. package/textarea/BaseTextarea.vue +3 -16
  431. package/textarea/Textarea.vue +13 -19
  432. package/textarea/index.d.ts +21 -0
  433. package/textarea/index.mjs +14 -38
  434. package/textarea/index.mjs.map +1 -1
  435. package/textarea/style/index.mjs +7 -5
  436. package/textarea/style/index.mjs.map +1 -1
  437. package/tieredmenu/index.mjs.map +1 -1
  438. package/tieredmenu/style/index.mjs +1 -1
  439. package/tieredmenu/style/index.mjs.map +1 -1
  440. package/timeline/index.mjs.map +1 -1
  441. package/timeline/style/index.mjs.map +1 -1
  442. package/toast/Toast.vue +0 -1
  443. package/toast/index.mjs.map +1 -1
  444. package/toast/style/index.mjs +1 -1
  445. package/toast/style/index.mjs.map +1 -1
  446. package/toastservice/index.mjs.map +1 -1
  447. package/togglebutton/BaseToggleButton.vue +6 -11
  448. package/togglebutton/ToggleButton.vue +11 -7
  449. package/togglebutton/index.d.ts +21 -0
  450. package/togglebutton/index.mjs +20 -18
  451. package/togglebutton/index.mjs.map +1 -1
  452. package/togglebutton/style/index.mjs +4 -2
  453. package/togglebutton/style/index.mjs.map +1 -1
  454. package/toggleswitch/BaseToggleSwitch.vue +2 -14
  455. package/toggleswitch/ToggleSwitch.vue +4 -3
  456. package/toggleswitch/index.d.ts +17 -0
  457. package/toggleswitch/index.mjs +7 -17
  458. package/toggleswitch/index.mjs.map +1 -1
  459. package/toggleswitch/style/index.mjs +2 -2
  460. package/toggleswitch/style/index.mjs.map +1 -1
  461. package/toolbar/index.mjs.map +1 -1
  462. package/toolbar/style/index.mjs.map +1 -1
  463. package/tooltip/index.mjs.map +1 -1
  464. package/tooltip/style/index.mjs.map +1 -1
  465. package/tree/TreeNode.vue +1 -1
  466. package/tree/index.mjs +2 -2
  467. package/tree/index.mjs.map +1 -1
  468. package/tree/style/index.mjs +1 -1
  469. package/tree/style/index.mjs.map +1 -1
  470. package/treeselect/BaseTreeSelect.vue +18 -19
  471. package/treeselect/TreeSelect.vue +61 -18
  472. package/treeselect/index.d.ts +80 -26
  473. package/treeselect/index.mjs +87 -38
  474. package/treeselect/index.mjs.map +1 -1
  475. package/treeselect/style/index.d.ts +4 -0
  476. package/treeselect/style/index.mjs +8 -5
  477. package/treeselect/style/index.mjs.map +1 -1
  478. package/treetable/BodyCell.vue +21 -12
  479. package/treetable/FooterCell.vue +15 -6
  480. package/treetable/HeaderCell.vue +15 -6
  481. package/treetable/TreeTable.vue +57 -2
  482. package/treetable/index.d.ts +12 -8
  483. package/treetable/index.mjs +146 -59
  484. package/treetable/index.mjs.map +1 -1
  485. package/treetable/style/index.mjs +1 -1
  486. package/treetable/style/index.mjs.map +1 -1
  487. package/umd/primevue.min.js +1 -1
  488. package/useconfirm/index.mjs.map +1 -1
  489. package/usedialog/index.mjs.map +1 -1
  490. package/usetoast/index.mjs.map +1 -1
  491. package/virtualscroller/index.mjs.map +1 -1
  492. package/virtualscroller/style/index.mjs.map +1 -1
  493. package/web-types.json +1 -1
package/tab/index.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/tab/BaseTab.vue","../../src/tab/Tab.vue","../../src/tab/Tab.vue?vue&type=template&id=bf1946e0&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TabStyle from 'primevue/tab/style';\n\nexport default {\n name: 'BaseTab',\n extends: BaseComponent,\n props: {\n value: {\n type: [String, Number],\n default: undefined\n },\n disabled: {\n type: Boolean,\n default: false\n },\n as: {\n type: [String, Object],\n default: 'BUTTON'\n },\n asChild: {\n type: Boolean,\n default: false\n }\n },\n style: TabStyle,\n provide() {\n return {\n $pcTab: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <component v-if=\"!asChild\" :is=\"as\" v-ripple :class=\"cx('root')\" @click=\"onClick\" v-bind=\"attrs\">\n <slot></slot>\n </component>\n <slot v-else :class=\"cx('root')\" :active=\"active\" :a11yAttrs=\"a11yAttrs\" :onClick=\"onClick\"></slot>\n</template>\n\n<script>\nimport { getAttribute, focus, findSingle } from '@primeuix/utils/dom';\nimport { equals } from '@primeuix/utils/object';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\nimport BaseTab from './BaseTab.vue';\n\nexport default {\n name: 'Tab',\n extends: BaseTab,\n inheritAttrs: false,\n inject: ['$pcTabs', '$pcTabList'],\n methods: {\n onFocus() {\n this.$pcTabs.selectOnFocus && this.changeActiveValue();\n },\n onClick() {\n this.changeActiveValue();\n },\n onKeydown(event) {\n switch (event.code) {\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'PageDown':\n this.onPageDownKey(event);\n break;\n\n case 'PageUp':\n this.onPageUpKey(event);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.onEnterKey(event);\n break;\n\n default:\n break;\n }\n },\n onArrowRightKey(event) {\n const nextTab = this.findNextTab(event.currentTarget);\n\n nextTab ? this.changeFocusedTab(event, nextTab) : this.onHomeKey(event);\n event.preventDefault();\n },\n onArrowLeftKey(event) {\n const prevTab = this.findPrevTab(event.currentTarget);\n\n prevTab ? this.changeFocusedTab(event, prevTab) : this.onEndKey(event);\n event.preventDefault();\n },\n onHomeKey(event) {\n const firstTab = this.findFirstTab();\n\n this.changeFocusedTab(event, firstTab);\n event.preventDefault();\n },\n onEndKey(event) {\n const lastTab = this.findLastTab();\n\n this.changeFocusedTab(event, lastTab);\n event.preventDefault();\n },\n onPageDownKey(event) {\n this.scrollInView(this.findLastTab());\n event.preventDefault();\n },\n onPageUpKey(event) {\n this.scrollInView(this.findFirstTab());\n event.preventDefault();\n },\n onEnterKey(event) {\n this.changeActiveValue();\n event.preventDefault();\n },\n findNextTab(tabElement, selfCheck = false) {\n const element = selfCheck ? tabElement : tabElement.nextElementSibling;\n\n return element ? (getAttribute(element, 'data-p-disabled') || getAttribute(element, 'data-pc-section') === 'inkbar' ? this.findNextTab(element) : findSingle(element, '[data-pc-name=\"tab\"]')) : null;\n },\n findPrevTab(tabElement, selfCheck = false) {\n const element = selfCheck ? tabElement : tabElement.previousElementSibling;\n\n return element ? (getAttribute(element, 'data-p-disabled') || getAttribute(element, 'data-pc-section') === 'inkbar' ? this.findPrevTab(element) : findSingle(element, '[data-pc-name=\"tab\"]')) : null;\n },\n findFirstTab() {\n return this.findNextTab(this.$pcTabList.$refs.content.firstElementChild, true);\n },\n findLastTab() {\n return this.findPrevTab(this.$pcTabList.$refs.content.lastElementChild, true);\n },\n changeActiveValue() {\n this.$pcTabs.updateValue(this.value);\n },\n changeFocusedTab(event, element) {\n focus(element);\n this.scrollInView(element);\n },\n scrollInView(element) {\n element?.scrollIntoView?.({ block: 'nearest' });\n }\n },\n computed: {\n active() {\n return equals(this.$pcTabs?.d_value, this.value);\n },\n id() {\n return `${this.$pcTabs?.id}_tab_${this.value}`;\n },\n ariaControls() {\n return `${this.$pcTabs?.id}_tabpanel_${this.value}`;\n },\n attrs() {\n return mergeProps(this.asAttrs, this.a11yAttrs, this.ptmi('root', this.ptParams));\n },\n asAttrs() {\n return this.as === 'BUTTON' ? { type: 'button', disabled: this.disabled } : undefined;\n },\n a11yAttrs() {\n return {\n id: this.id,\n tabindex: this.active ? this.$pcTabs.tabindex : -1,\n role: 'tab',\n 'aria-selected': this.active,\n 'aria-controls': this.ariaControls,\n 'data-pc-name': 'tab',\n 'data-p-disabled': this.disabled,\n 'data-p-active': this.active,\n onFocus: this.onFocus,\n onKeydown: this.onKeydown\n };\n },\n ptParams() {\n return {\n context: {\n active: this.active\n }\n };\n }\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <component v-if=\"!asChild\" :is=\"as\" v-ripple :class=\"cx('root')\" @click=\"onClick\" v-bind=\"attrs\">\n <slot></slot>\n </component>\n <slot v-else :class=\"cx('root')\" :active=\"active\" :a11yAttrs=\"a11yAttrs\" :onClick=\"onClick\"></slot>\n</template>\n\n<script>\nimport { getAttribute, focus, findSingle } from '@primeuix/utils/dom';\nimport { equals } from '@primeuix/utils/object';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\nimport BaseTab from './BaseTab.vue';\n\nexport default {\n name: 'Tab',\n extends: BaseTab,\n inheritAttrs: false,\n inject: ['$pcTabs', '$pcTabList'],\n methods: {\n onFocus() {\n this.$pcTabs.selectOnFocus && this.changeActiveValue();\n },\n onClick() {\n this.changeActiveValue();\n },\n onKeydown(event) {\n switch (event.code) {\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'PageDown':\n this.onPageDownKey(event);\n break;\n\n case 'PageUp':\n this.onPageUpKey(event);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.onEnterKey(event);\n break;\n\n default:\n break;\n }\n },\n onArrowRightKey(event) {\n const nextTab = this.findNextTab(event.currentTarget);\n\n nextTab ? this.changeFocusedTab(event, nextTab) : this.onHomeKey(event);\n event.preventDefault();\n },\n onArrowLeftKey(event) {\n const prevTab = this.findPrevTab(event.currentTarget);\n\n prevTab ? this.changeFocusedTab(event, prevTab) : this.onEndKey(event);\n event.preventDefault();\n },\n onHomeKey(event) {\n const firstTab = this.findFirstTab();\n\n this.changeFocusedTab(event, firstTab);\n event.preventDefault();\n },\n onEndKey(event) {\n const lastTab = this.findLastTab();\n\n this.changeFocusedTab(event, lastTab);\n event.preventDefault();\n },\n onPageDownKey(event) {\n this.scrollInView(this.findLastTab());\n event.preventDefault();\n },\n onPageUpKey(event) {\n this.scrollInView(this.findFirstTab());\n event.preventDefault();\n },\n onEnterKey(event) {\n this.changeActiveValue();\n event.preventDefault();\n },\n findNextTab(tabElement, selfCheck = false) {\n const element = selfCheck ? tabElement : tabElement.nextElementSibling;\n\n return element ? (getAttribute(element, 'data-p-disabled') || getAttribute(element, 'data-pc-section') === 'inkbar' ? this.findNextTab(element) : findSingle(element, '[data-pc-name=\"tab\"]')) : null;\n },\n findPrevTab(tabElement, selfCheck = false) {\n const element = selfCheck ? tabElement : tabElement.previousElementSibling;\n\n return element ? (getAttribute(element, 'data-p-disabled') || getAttribute(element, 'data-pc-section') === 'inkbar' ? this.findPrevTab(element) : findSingle(element, '[data-pc-name=\"tab\"]')) : null;\n },\n findFirstTab() {\n return this.findNextTab(this.$pcTabList.$refs.content.firstElementChild, true);\n },\n findLastTab() {\n return this.findPrevTab(this.$pcTabList.$refs.content.lastElementChild, true);\n },\n changeActiveValue() {\n this.$pcTabs.updateValue(this.value);\n },\n changeFocusedTab(event, element) {\n focus(element);\n this.scrollInView(element);\n },\n scrollInView(element) {\n element?.scrollIntoView?.({ block: 'nearest' });\n }\n },\n computed: {\n active() {\n return equals(this.$pcTabs?.d_value, this.value);\n },\n id() {\n return `${this.$pcTabs?.id}_tab_${this.value}`;\n },\n ariaControls() {\n return `${this.$pcTabs?.id}_tabpanel_${this.value}`;\n },\n attrs() {\n return mergeProps(this.asAttrs, this.a11yAttrs, this.ptmi('root', this.ptParams));\n },\n asAttrs() {\n return this.as === 'BUTTON' ? { type: 'button', disabled: this.disabled } : undefined;\n },\n a11yAttrs() {\n return {\n id: this.id,\n tabindex: this.active ? this.$pcTabs.tabindex : -1,\n role: 'tab',\n 'aria-selected': this.active,\n 'aria-controls': this.ariaControls,\n 'data-pc-name': 'tab',\n 'data-p-disabled': this.disabled,\n 'data-p-active': this.active,\n onFocus: this.onFocus,\n onKeydown: this.onKeydown\n };\n },\n ptParams() {\n return {\n context: {\n active: this.active\n }\n };\n }\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","value","type","String","Number","undefined","disabled","Boolean","as","Object","asChild","style","TabStyle","provide","$pcTab","$parentInstance","BaseTab","inheritAttrs","inject","methods","onFocus","$pcTabs","selectOnFocus","changeActiveValue","onClick","onKeydown","event","code","onArrowRightKey","onArrowLeftKey","onHomeKey","onEndKey","onPageDownKey","onPageUpKey","onEnterKey","nextTab","findNextTab","currentTarget","changeFocusedTab","preventDefault","prevTab","findPrevTab","firstTab","findFirstTab","lastTab","findLastTab","scrollInView","tabElement","selfCheck","element","nextElementSibling","getAttribute","findSingle","previousElementSibling","$pcTabList","$refs","content","firstElementChild","lastElementChild","updateValue","focus","_element$scrollIntoVi","scrollIntoView","call","block","computed","active","_this$$pcTabs","equals","d_value","id","_this$$pcTabs2","concat","ariaControls","_this$$pcTabs3","attrs","mergeProps","asAttrs","a11yAttrs","ptmi","ptParams","tabindex","role","context","directives","ripple","Ripple","_ctx","_createBlock","_resolveDynamicComponent","_mergeProps","cx","$options","_renderSlot","$slots"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/tab/BaseTab.vue","../../src/tab/Tab.vue","../../src/tab/Tab.vue?vue&type=template&id=bf1946e0&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TabStyle from 'primevue/tab/style';\n\nexport default {\n name: 'BaseTab',\n extends: BaseComponent,\n props: {\n value: {\n type: [String, Number],\n default: undefined\n },\n disabled: {\n type: Boolean,\n default: false\n },\n as: {\n type: [String, Object],\n default: 'BUTTON'\n },\n asChild: {\n type: Boolean,\n default: false\n }\n },\n style: TabStyle,\n provide() {\n return {\n $pcTab: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <component v-if=\"!asChild\" :is=\"as\" v-ripple :class=\"cx('root')\" @click=\"onClick\" v-bind=\"attrs\">\n <slot></slot>\n </component>\n <slot v-else :class=\"cx('root')\" :active=\"active\" :a11yAttrs=\"a11yAttrs\" :onClick=\"onClick\"></slot>\n</template>\n\n<script>\nimport { getAttribute, focus, findSingle } from '@primeuix/utils/dom';\nimport { equals } from '@primeuix/utils/object';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\nimport BaseTab from './BaseTab.vue';\n\nexport default {\n name: 'Tab',\n extends: BaseTab,\n inheritAttrs: false,\n inject: ['$pcTabs', '$pcTabList'],\n methods: {\n onFocus() {\n this.$pcTabs.selectOnFocus && this.changeActiveValue();\n },\n onClick() {\n this.changeActiveValue();\n },\n onKeydown(event) {\n switch (event.code) {\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'PageDown':\n this.onPageDownKey(event);\n break;\n\n case 'PageUp':\n this.onPageUpKey(event);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.onEnterKey(event);\n break;\n\n default:\n break;\n }\n },\n onArrowRightKey(event) {\n const nextTab = this.findNextTab(event.currentTarget);\n\n nextTab ? this.changeFocusedTab(event, nextTab) : this.onHomeKey(event);\n event.preventDefault();\n },\n onArrowLeftKey(event) {\n const prevTab = this.findPrevTab(event.currentTarget);\n\n prevTab ? this.changeFocusedTab(event, prevTab) : this.onEndKey(event);\n event.preventDefault();\n },\n onHomeKey(event) {\n const firstTab = this.findFirstTab();\n\n this.changeFocusedTab(event, firstTab);\n event.preventDefault();\n },\n onEndKey(event) {\n const lastTab = this.findLastTab();\n\n this.changeFocusedTab(event, lastTab);\n event.preventDefault();\n },\n onPageDownKey(event) {\n this.scrollInView(this.findLastTab());\n event.preventDefault();\n },\n onPageUpKey(event) {\n this.scrollInView(this.findFirstTab());\n event.preventDefault();\n },\n onEnterKey(event) {\n this.changeActiveValue();\n event.preventDefault();\n },\n findNextTab(tabElement, selfCheck = false) {\n const element = selfCheck ? tabElement : tabElement.nextElementSibling;\n\n return element ? (getAttribute(element, 'data-p-disabled') || getAttribute(element, 'data-pc-section') === 'inkbar' ? this.findNextTab(element) : findSingle(element, '[data-pc-name=\"tab\"]')) : null;\n },\n findPrevTab(tabElement, selfCheck = false) {\n const element = selfCheck ? tabElement : tabElement.previousElementSibling;\n\n return element ? (getAttribute(element, 'data-p-disabled') || getAttribute(element, 'data-pc-section') === 'inkbar' ? this.findPrevTab(element) : findSingle(element, '[data-pc-name=\"tab\"]')) : null;\n },\n findFirstTab() {\n return this.findNextTab(this.$pcTabList.$refs.content.firstElementChild, true);\n },\n findLastTab() {\n return this.findPrevTab(this.$pcTabList.$refs.content.lastElementChild, true);\n },\n changeActiveValue() {\n this.$pcTabs.updateValue(this.value);\n },\n changeFocusedTab(event, element) {\n focus(element);\n this.scrollInView(element);\n },\n scrollInView(element) {\n element?.scrollIntoView?.({ block: 'nearest' });\n }\n },\n computed: {\n active() {\n return equals(this.$pcTabs?.d_value, this.value);\n },\n id() {\n return `${this.$pcTabs?.id}_tab_${this.value}`;\n },\n ariaControls() {\n return `${this.$pcTabs?.id}_tabpanel_${this.value}`;\n },\n attrs() {\n return mergeProps(this.asAttrs, this.a11yAttrs, this.ptmi('root', this.ptParams));\n },\n asAttrs() {\n return this.as === 'BUTTON' ? { type: 'button', disabled: this.disabled } : undefined;\n },\n a11yAttrs() {\n return {\n id: this.id,\n tabindex: this.active ? this.$pcTabs.tabindex : -1,\n role: 'tab',\n 'aria-selected': this.active,\n 'aria-controls': this.ariaControls,\n 'data-pc-name': 'tab',\n 'data-p-disabled': this.disabled,\n 'data-p-active': this.active,\n onFocus: this.onFocus,\n onKeydown: this.onKeydown\n };\n },\n ptParams() {\n return {\n context: {\n active: this.active\n }\n };\n }\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <component v-if=\"!asChild\" :is=\"as\" v-ripple :class=\"cx('root')\" @click=\"onClick\" v-bind=\"attrs\">\n <slot></slot>\n </component>\n <slot v-else :class=\"cx('root')\" :active=\"active\" :a11yAttrs=\"a11yAttrs\" :onClick=\"onClick\"></slot>\n</template>\n\n<script>\nimport { getAttribute, focus, findSingle } from '@primeuix/utils/dom';\nimport { equals } from '@primeuix/utils/object';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\nimport BaseTab from './BaseTab.vue';\n\nexport default {\n name: 'Tab',\n extends: BaseTab,\n inheritAttrs: false,\n inject: ['$pcTabs', '$pcTabList'],\n methods: {\n onFocus() {\n this.$pcTabs.selectOnFocus && this.changeActiveValue();\n },\n onClick() {\n this.changeActiveValue();\n },\n onKeydown(event) {\n switch (event.code) {\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'PageDown':\n this.onPageDownKey(event);\n break;\n\n case 'PageUp':\n this.onPageUpKey(event);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.onEnterKey(event);\n break;\n\n default:\n break;\n }\n },\n onArrowRightKey(event) {\n const nextTab = this.findNextTab(event.currentTarget);\n\n nextTab ? this.changeFocusedTab(event, nextTab) : this.onHomeKey(event);\n event.preventDefault();\n },\n onArrowLeftKey(event) {\n const prevTab = this.findPrevTab(event.currentTarget);\n\n prevTab ? this.changeFocusedTab(event, prevTab) : this.onEndKey(event);\n event.preventDefault();\n },\n onHomeKey(event) {\n const firstTab = this.findFirstTab();\n\n this.changeFocusedTab(event, firstTab);\n event.preventDefault();\n },\n onEndKey(event) {\n const lastTab = this.findLastTab();\n\n this.changeFocusedTab(event, lastTab);\n event.preventDefault();\n },\n onPageDownKey(event) {\n this.scrollInView(this.findLastTab());\n event.preventDefault();\n },\n onPageUpKey(event) {\n this.scrollInView(this.findFirstTab());\n event.preventDefault();\n },\n onEnterKey(event) {\n this.changeActiveValue();\n event.preventDefault();\n },\n findNextTab(tabElement, selfCheck = false) {\n const element = selfCheck ? tabElement : tabElement.nextElementSibling;\n\n return element ? (getAttribute(element, 'data-p-disabled') || getAttribute(element, 'data-pc-section') === 'inkbar' ? this.findNextTab(element) : findSingle(element, '[data-pc-name=\"tab\"]')) : null;\n },\n findPrevTab(tabElement, selfCheck = false) {\n const element = selfCheck ? tabElement : tabElement.previousElementSibling;\n\n return element ? (getAttribute(element, 'data-p-disabled') || getAttribute(element, 'data-pc-section') === 'inkbar' ? this.findPrevTab(element) : findSingle(element, '[data-pc-name=\"tab\"]')) : null;\n },\n findFirstTab() {\n return this.findNextTab(this.$pcTabList.$refs.content.firstElementChild, true);\n },\n findLastTab() {\n return this.findPrevTab(this.$pcTabList.$refs.content.lastElementChild, true);\n },\n changeActiveValue() {\n this.$pcTabs.updateValue(this.value);\n },\n changeFocusedTab(event, element) {\n focus(element);\n this.scrollInView(element);\n },\n scrollInView(element) {\n element?.scrollIntoView?.({ block: 'nearest' });\n }\n },\n computed: {\n active() {\n return equals(this.$pcTabs?.d_value, this.value);\n },\n id() {\n return `${this.$pcTabs?.id}_tab_${this.value}`;\n },\n ariaControls() {\n return `${this.$pcTabs?.id}_tabpanel_${this.value}`;\n },\n attrs() {\n return mergeProps(this.asAttrs, this.a11yAttrs, this.ptmi('root', this.ptParams));\n },\n asAttrs() {\n return this.as === 'BUTTON' ? { type: 'button', disabled: this.disabled } : undefined;\n },\n a11yAttrs() {\n return {\n id: this.id,\n tabindex: this.active ? this.$pcTabs.tabindex : -1,\n role: 'tab',\n 'aria-selected': this.active,\n 'aria-controls': this.ariaControls,\n 'data-pc-name': 'tab',\n 'data-p-disabled': this.disabled,\n 'data-p-active': this.active,\n onFocus: this.onFocus,\n onKeydown: this.onKeydown\n };\n },\n ptParams() {\n return {\n context: {\n active: this.active\n }\n };\n }\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","value","type","String","Number","undefined","disabled","Boolean","as","Object","asChild","style","TabStyle","provide","$pcTab","$parentInstance","BaseTab","inheritAttrs","inject","methods","onFocus","$pcTabs","selectOnFocus","changeActiveValue","onClick","onKeydown","event","code","onArrowRightKey","onArrowLeftKey","onHomeKey","onEndKey","onPageDownKey","onPageUpKey","onEnterKey","nextTab","findNextTab","currentTarget","changeFocusedTab","preventDefault","prevTab","findPrevTab","firstTab","findFirstTab","lastTab","findLastTab","scrollInView","tabElement","selfCheck","element","nextElementSibling","getAttribute","findSingle","previousElementSibling","$pcTabList","$refs","content","firstElementChild","lastElementChild","updateValue","focus","_element$scrollIntoVi","scrollIntoView","call","block","computed","active","_this$$pcTabs","equals","d_value","id","_this$$pcTabs2","concat","ariaControls","_this$$pcTabs3","attrs","mergeProps","asAttrs","a11yAttrs","ptmi","ptParams","tabindex","role","context","directives","ripple","Ripple","_ctx","_createBlock","_resolveDynamicComponent","_mergeProps","cx","$options","_renderSlot","$slots"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../src/tab/style/TabStyle.js"],"sourcesContent":["import BaseStyle from '@primevue/core/base/style';\n\nconst classes = {\n root: ({ instance, props }) => [\n 'p-tab',\n {\n 'p-tab-active': instance.active,\n 'p-disabled': props.disabled\n }\n ]\n};\n\nexport default BaseStyle.extend({\n name: 'tab',\n classes\n});\n"],"names":["classes","root","_ref","instance","props","active","disabled","BaseStyle","extend","name"],"mappings":";;AAEA,IAAMA,OAAO,GAAG;AACZC,EAAAA,IAAI,EAAE,SAANA,IAAIA,CAAAC,IAAA,EAAA;AAAA,IAAA,IAAKC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;MAAEC,KAAK,GAAAF,IAAA,CAALE,KAAK,CAAA;IAAA,OAAO,CAC3B,OAAO,EACP;MACI,cAAc,EAAED,QAAQ,CAACE,MAAM;MAC/B,YAAY,EAAED,KAAK,CAACE,QAAAA;AACxB,KAAC,CACJ,CAAA;AAAA,GAAA;AACL,CAAC,CAAA;AAED,eAAeC,SAAS,CAACC,MAAM,CAAC;AAC5BC,EAAAA,IAAI,EAAE,KAAK;AACXT,EAAAA,OAAO,EAAPA,OAAAA;AACJ,CAAC,CAAC;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/tab/style/TabStyle.js"],"sourcesContent":["import BaseStyle from '@primevue/core/base/style';\n\nconst classes = {\n root: ({ instance, props }) => [\n 'p-tab',\n {\n 'p-tab-active': instance.active,\n 'p-disabled': props.disabled\n }\n ]\n};\n\nexport default BaseStyle.extend({\n name: 'tab',\n classes\n});\n"],"names":["classes","root","_ref","instance","props","active","disabled","BaseStyle","extend","name"],"mappings":";;AAEA,IAAMA,OAAO,GAAG;AACZC,EAAAA,IAAI,EAAE,SAANA,IAAIA,CAAAC,IAAA,EAAA;AAAA,IAAA,IAAKC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;MAAEC,KAAK,GAAAF,IAAA,CAALE,KAAK;IAAA,OAAO,CAC3B,OAAO,EACP;MACI,cAAc,EAAED,QAAQ,CAACE,MAAM;MAC/B,YAAY,EAAED,KAAK,CAACE;AACxB,KAAC,CACJ;AAAA;AACL,CAAC;AAED,eAAeC,SAAS,CAACC,MAAM,CAAC;AAC5BC,EAAAA,IAAI,EAAE,KAAK;AACXT,EAAAA,OAAO,EAAPA;AACJ,CAAC,CAAC;;;;"}
@@ -39,18 +39,20 @@
39
39
  import { findSingle, getHeight, getOffset, getOuterHeight, getOuterWidth, getWidth } from '@primeuix/utils/dom';
40
40
  import ChevronLeftIcon from '@primevue/icons/chevronleft';
41
41
  import ChevronRightIcon from '@primevue/icons/chevronright';
42
- import BaseTabList from './BaseTabList.vue';
43
42
  import Ripple from 'primevue/ripple';
43
+ import BaseTabList from './BaseTabList.vue';
44
44
 
45
45
  export default {
46
46
  name: 'TabList',
47
47
  extends: BaseTabList,
48
48
  inheritAttrs: false,
49
49
  inject: ['$pcTabs'],
50
+ mutationObserver: null,
50
51
  data() {
51
52
  return {
52
53
  isPrevButtonEnabled: false,
53
- isNextButtonEnabled: true
54
+ isNextButtonEnabled: true,
55
+ isRTL: false
54
56
  };
55
57
  },
56
58
  resizeObserver: undefined,
@@ -74,12 +76,19 @@ export default {
74
76
  this.updateButtonState();
75
77
  this.bindResizeObserver();
76
78
  }
79
+
80
+ this.updateDirection();
81
+ this.observeDirectionChanges();
77
82
  },
78
83
  updated() {
79
84
  this.showNavigators && this.updateButtonState();
80
85
  },
81
86
  beforeUnmount() {
82
87
  this.unbindResizeObserver();
88
+
89
+ if (this.mutationObserver) {
90
+ this.mutationObserver.disconnect();
91
+ }
83
92
  },
84
93
  methods: {
85
94
  onScroll(event) {
@@ -90,15 +99,28 @@ export default {
90
99
  onPrevButtonClick() {
91
100
  const content = this.$refs.content;
92
101
  const width = getWidth(content);
93
- const pos = content.scrollLeft - width;
102
+ let pos;
103
+
104
+ if (this.isRTL) {
105
+ pos = content.scrollLeft + width;
106
+ } else {
107
+ pos = content.scrollLeft - width;
108
+ }
94
109
 
95
110
  content.scrollLeft = pos <= 0 ? 0 : pos;
96
111
  },
97
112
  onNextButtonClick() {
98
113
  const content = this.$refs.content;
99
114
  const width = getWidth(content) - this.getVisibleButtonWidths();
100
- const pos = content.scrollLeft + width;
101
- const lastPos = content.scrollWidth - width;
115
+ let pos, lastPos;
116
+
117
+ if (this.isRTL) {
118
+ pos = content.scrollLeft - width;
119
+ lastPos = content.scrollWidth + width;
120
+ } else {
121
+ pos = content.scrollLeft + width;
122
+ lastPos = content.scrollWidth - width;
123
+ }
102
124
 
103
125
  content.scrollLeft = pos >= lastPos ? lastPos : pos;
104
126
  },
@@ -139,6 +161,19 @@ export default {
139
161
  const { prevBtn, nextBtn } = this.$refs;
140
162
 
141
163
  return [prevBtn, nextBtn].reduce((acc, el) => (el ? acc + getWidth(el) : acc), 0);
164
+ },
165
+ updateDirection() {
166
+ this.isRTL = !!this.$el.closest('[dir="rtl"]');
167
+ },
168
+ observeDirectionChanges() {
169
+ const targetNode = document.documentElement;
170
+ const config = { attributes: true, attributeFilter: ['dir'] };
171
+
172
+ this.mutationObserver = new MutationObserver(() => {
173
+ this.updateDirection();
174
+ });
175
+
176
+ this.mutationObserver.observe(targetNode, config);
142
177
  }
143
178
  },
144
179
  computed: {
package/tablist/index.mjs CHANGED
@@ -1,9 +1,9 @@
1
1
  import { getWidth, findSingle, getOuterHeight, getOffset, getOuterWidth, getHeight } from '@primeuix/utils/dom';
2
2
  import ChevronLeftIcon from '@primevue/icons/chevronleft';
3
3
  import ChevronRightIcon from '@primevue/icons/chevronright';
4
+ import Ripple from 'primevue/ripple';
4
5
  import BaseComponent from '@primevue/core/basecomponent';
5
6
  import TabListStyle from 'primevue/tablist/style';
6
- import Ripple from 'primevue/ripple';
7
7
  import { resolveDirective, openBlock, createElementBlock, mergeProps, withDirectives, createBlock, resolveDynamicComponent, createCommentVNode, createElementVNode, renderSlot } from 'vue';
8
8
 
9
9
  var script$1 = {
@@ -24,10 +24,12 @@ var script = {
24
24
  "extends": script$1,
25
25
  inheritAttrs: false,
26
26
  inject: ['$pcTabs'],
27
+ mutationObserver: null,
27
28
  data: function data() {
28
29
  return {
29
30
  isPrevButtonEnabled: false,
30
- isNextButtonEnabled: true
31
+ isNextButtonEnabled: true,
32
+ isRTL: false
31
33
  };
32
34
  },
33
35
  resizeObserver: undefined,
@@ -51,12 +53,17 @@ var script = {
51
53
  this.updateButtonState();
52
54
  this.bindResizeObserver();
53
55
  }
56
+ this.updateDirection();
57
+ this.observeDirectionChanges();
54
58
  },
55
59
  updated: function updated() {
56
60
  this.showNavigators && this.updateButtonState();
57
61
  },
58
62
  beforeUnmount: function beforeUnmount() {
59
63
  this.unbindResizeObserver();
64
+ if (this.mutationObserver) {
65
+ this.mutationObserver.disconnect();
66
+ }
60
67
  },
61
68
  methods: {
62
69
  onScroll: function onScroll(event) {
@@ -66,14 +73,25 @@ var script = {
66
73
  onPrevButtonClick: function onPrevButtonClick() {
67
74
  var content = this.$refs.content;
68
75
  var width = getWidth(content);
69
- var pos = content.scrollLeft - width;
76
+ var pos;
77
+ if (this.isRTL) {
78
+ pos = content.scrollLeft + width;
79
+ } else {
80
+ pos = content.scrollLeft - width;
81
+ }
70
82
  content.scrollLeft = pos <= 0 ? 0 : pos;
71
83
  },
72
84
  onNextButtonClick: function onNextButtonClick() {
73
85
  var content = this.$refs.content;
74
86
  var width = getWidth(content) - this.getVisibleButtonWidths();
75
- var pos = content.scrollLeft + width;
76
- var lastPos = content.scrollWidth - width;
87
+ var pos, lastPos;
88
+ if (this.isRTL) {
89
+ pos = content.scrollLeft - width;
90
+ lastPos = content.scrollWidth + width;
91
+ } else {
92
+ pos = content.scrollLeft + width;
93
+ lastPos = content.scrollWidth - width;
94
+ }
77
95
  content.scrollLeft = pos >= lastPos ? lastPos : pos;
78
96
  },
79
97
  bindResizeObserver: function bindResizeObserver() {
@@ -130,6 +148,21 @@ var script = {
130
148
  return [prevBtn, nextBtn].reduce(function (acc, el) {
131
149
  return el ? acc + getWidth(el) : acc;
132
150
  }, 0);
151
+ },
152
+ updateDirection: function updateDirection() {
153
+ this.isRTL = !!this.$el.closest('[dir="rtl"]');
154
+ },
155
+ observeDirectionChanges: function observeDirectionChanges() {
156
+ var _this3 = this;
157
+ var targetNode = document.documentElement;
158
+ var config = {
159
+ attributes: true,
160
+ attributeFilter: ['dir']
161
+ };
162
+ this.mutationObserver = new MutationObserver(function () {
163
+ _this3.updateDirection();
164
+ });
165
+ this.mutationObserver.observe(targetNode, config);
133
166
  }
134
167
  },
135
168
  computed: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/tablist/BaseTabList.vue","../../src/tablist/TabList.vue","../../src/tablist/TabList.vue?vue&type=template&id=1fe1e838&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TabListStyle from 'primevue/tablist/style';\n\nexport default {\n name: 'BaseTabList',\n extends: BaseComponent,\n props: {},\n style: TabListStyle,\n provide() {\n return {\n $pcTabList: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <div ref=\"list\" :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <button\n v-if=\"showNavigators && isPrevButtonEnabled\"\n ref=\"prevButton\"\n v-ripple\n :class=\"cx('prevButton')\"\n :aria-label=\"prevButtonAriaLabel\"\n :tabindex=\"$pcTabs.tabindex\"\n @click=\"onPrevButtonClick\"\n v-bind=\"ptm('prevButton')\"\n data-pc-group-section=\"navigator\"\n >\n <component :is=\"templates.previcon || 'ChevronLeftIcon'\" aria-hidden=\"true\" v-bind=\"ptm('prevIcon')\" />\n </button>\n <div ref=\"content\" :class=\"cx('content')\" @scroll=\"onScroll\" v-bind=\"ptm('content')\">\n <div ref=\"tabs\" :class=\"cx('tabList')\" role=\"tablist\" :aria-orientation=\"$pcTabs.orientation || 'horizontal'\" v-bind=\"ptm('tabList')\">\n <slot></slot>\n <span ref=\"inkbar\" :class=\"cx('activeBar')\" role=\"presentation\" aria-hidden=\"true\" v-bind=\"ptm('activeBar')\"></span>\n </div>\n </div>\n <button\n v-if=\"showNavigators && isNextButtonEnabled\"\n ref=\"nextButton\"\n v-ripple\n :class=\"cx('nextButton')\"\n :aria-label=\"nextButtonAriaLabel\"\n :tabindex=\"$pcTabs.tabindex\"\n @click=\"onNextButtonClick\"\n v-bind=\"ptm('nextButton')\"\n data-pc-group-section=\"navigator\"\n >\n <component :is=\"templates.nexticon || 'ChevronRightIcon'\" aria-hidden=\"true\" v-bind=\"ptm('nextIcon')\" />\n </button>\n </div>\n</template>\n\n<script>\nimport { findSingle, getHeight, getOffset, getOuterHeight, getOuterWidth, getWidth } from '@primeuix/utils/dom';\nimport ChevronLeftIcon from '@primevue/icons/chevronleft';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport BaseTabList from './BaseTabList.vue';\nimport Ripple from 'primevue/ripple';\n\nexport default {\n name: 'TabList',\n extends: BaseTabList,\n inheritAttrs: false,\n inject: ['$pcTabs'],\n data() {\n return {\n isPrevButtonEnabled: false,\n isNextButtonEnabled: true\n };\n },\n resizeObserver: undefined,\n watch: {\n showNavigators(newValue) {\n newValue ? this.bindResizeObserver() : this.unbindResizeObserver();\n },\n activeValue: {\n flush: 'post',\n handler() {\n this.updateInkBar();\n }\n }\n },\n mounted() {\n this.$nextTick(() => {\n this.updateInkBar();\n });\n\n if (this.showNavigators) {\n this.updateButtonState();\n this.bindResizeObserver();\n }\n },\n updated() {\n this.showNavigators && this.updateButtonState();\n },\n beforeUnmount() {\n this.unbindResizeObserver();\n },\n methods: {\n onScroll(event) {\n this.showNavigators && this.updateButtonState();\n\n event.preventDefault();\n },\n onPrevButtonClick() {\n const content = this.$refs.content;\n const width = getWidth(content);\n const pos = content.scrollLeft - width;\n\n content.scrollLeft = pos <= 0 ? 0 : pos;\n },\n onNextButtonClick() {\n const content = this.$refs.content;\n const width = getWidth(content) - this.getVisibleButtonWidths();\n const pos = content.scrollLeft + width;\n const lastPos = content.scrollWidth - width;\n\n content.scrollLeft = pos >= lastPos ? lastPos : pos;\n },\n bindResizeObserver() {\n this.resizeObserver = new ResizeObserver(() => this.updateButtonState());\n this.resizeObserver.observe(this.$refs.list);\n },\n unbindResizeObserver() {\n this.resizeObserver?.unobserve(this.$refs.list);\n this.resizeObserver = undefined;\n },\n updateInkBar() {\n const { content, inkbar, tabs } = this.$refs;\n const activeTab = findSingle(content, '[data-pc-name=\"tab\"][data-p-active=\"true\"]');\n\n if (this.$pcTabs.isVertical()) {\n inkbar.style.height = getOuterHeight(activeTab) + 'px';\n inkbar.style.top = getOffset(activeTab).top - getOffset(tabs).top + 'px';\n } else {\n inkbar.style.width = getOuterWidth(activeTab) + 'px';\n inkbar.style.left = getOffset(activeTab).left - getOffset(tabs).left + 'px';\n }\n },\n updateButtonState() {\n const { list, content } = this.$refs;\n const { scrollLeft, scrollTop, scrollWidth, scrollHeight, offsetWidth, offsetHeight } = content;\n const [width, height] = [getWidth(content), getHeight(content)];\n\n if (this.$pcTabs.isVertical()) {\n this.isPrevButtonEnabled = scrollTop !== 0;\n this.isNextButtonEnabled = list.offsetHeight >= offsetHeight && parseInt(scrollTop) !== scrollHeight - height;\n } else {\n this.isPrevButtonEnabled = scrollLeft !== 0;\n this.isNextButtonEnabled = list.offsetWidth >= offsetWidth && parseInt(scrollLeft) !== scrollWidth - width;\n }\n },\n getVisibleButtonWidths() {\n const { prevBtn, nextBtn } = this.$refs;\n\n return [prevBtn, nextBtn].reduce((acc, el) => (el ? acc + getWidth(el) : acc), 0);\n }\n },\n computed: {\n templates() {\n return this.$pcTabs.$slots;\n },\n activeValue() {\n return this.$pcTabs.d_value;\n },\n showNavigators() {\n return this.$pcTabs.scrollable && this.$pcTabs.showNavigators;\n },\n prevButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.previous : undefined;\n },\n nextButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.next : undefined;\n }\n },\n components: {\n ChevronLeftIcon,\n ChevronRightIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <div ref=\"list\" :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <button\n v-if=\"showNavigators && isPrevButtonEnabled\"\n ref=\"prevButton\"\n v-ripple\n :class=\"cx('prevButton')\"\n :aria-label=\"prevButtonAriaLabel\"\n :tabindex=\"$pcTabs.tabindex\"\n @click=\"onPrevButtonClick\"\n v-bind=\"ptm('prevButton')\"\n data-pc-group-section=\"navigator\"\n >\n <component :is=\"templates.previcon || 'ChevronLeftIcon'\" aria-hidden=\"true\" v-bind=\"ptm('prevIcon')\" />\n </button>\n <div ref=\"content\" :class=\"cx('content')\" @scroll=\"onScroll\" v-bind=\"ptm('content')\">\n <div ref=\"tabs\" :class=\"cx('tabList')\" role=\"tablist\" :aria-orientation=\"$pcTabs.orientation || 'horizontal'\" v-bind=\"ptm('tabList')\">\n <slot></slot>\n <span ref=\"inkbar\" :class=\"cx('activeBar')\" role=\"presentation\" aria-hidden=\"true\" v-bind=\"ptm('activeBar')\"></span>\n </div>\n </div>\n <button\n v-if=\"showNavigators && isNextButtonEnabled\"\n ref=\"nextButton\"\n v-ripple\n :class=\"cx('nextButton')\"\n :aria-label=\"nextButtonAriaLabel\"\n :tabindex=\"$pcTabs.tabindex\"\n @click=\"onNextButtonClick\"\n v-bind=\"ptm('nextButton')\"\n data-pc-group-section=\"navigator\"\n >\n <component :is=\"templates.nexticon || 'ChevronRightIcon'\" aria-hidden=\"true\" v-bind=\"ptm('nextIcon')\" />\n </button>\n </div>\n</template>\n\n<script>\nimport { findSingle, getHeight, getOffset, getOuterHeight, getOuterWidth, getWidth } from '@primeuix/utils/dom';\nimport ChevronLeftIcon from '@primevue/icons/chevronleft';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport BaseTabList from './BaseTabList.vue';\nimport Ripple from 'primevue/ripple';\n\nexport default {\n name: 'TabList',\n extends: BaseTabList,\n inheritAttrs: false,\n inject: ['$pcTabs'],\n data() {\n return {\n isPrevButtonEnabled: false,\n isNextButtonEnabled: true\n };\n },\n resizeObserver: undefined,\n watch: {\n showNavigators(newValue) {\n newValue ? this.bindResizeObserver() : this.unbindResizeObserver();\n },\n activeValue: {\n flush: 'post',\n handler() {\n this.updateInkBar();\n }\n }\n },\n mounted() {\n this.$nextTick(() => {\n this.updateInkBar();\n });\n\n if (this.showNavigators) {\n this.updateButtonState();\n this.bindResizeObserver();\n }\n },\n updated() {\n this.showNavigators && this.updateButtonState();\n },\n beforeUnmount() {\n this.unbindResizeObserver();\n },\n methods: {\n onScroll(event) {\n this.showNavigators && this.updateButtonState();\n\n event.preventDefault();\n },\n onPrevButtonClick() {\n const content = this.$refs.content;\n const width = getWidth(content);\n const pos = content.scrollLeft - width;\n\n content.scrollLeft = pos <= 0 ? 0 : pos;\n },\n onNextButtonClick() {\n const content = this.$refs.content;\n const width = getWidth(content) - this.getVisibleButtonWidths();\n const pos = content.scrollLeft + width;\n const lastPos = content.scrollWidth - width;\n\n content.scrollLeft = pos >= lastPos ? lastPos : pos;\n },\n bindResizeObserver() {\n this.resizeObserver = new ResizeObserver(() => this.updateButtonState());\n this.resizeObserver.observe(this.$refs.list);\n },\n unbindResizeObserver() {\n this.resizeObserver?.unobserve(this.$refs.list);\n this.resizeObserver = undefined;\n },\n updateInkBar() {\n const { content, inkbar, tabs } = this.$refs;\n const activeTab = findSingle(content, '[data-pc-name=\"tab\"][data-p-active=\"true\"]');\n\n if (this.$pcTabs.isVertical()) {\n inkbar.style.height = getOuterHeight(activeTab) + 'px';\n inkbar.style.top = getOffset(activeTab).top - getOffset(tabs).top + 'px';\n } else {\n inkbar.style.width = getOuterWidth(activeTab) + 'px';\n inkbar.style.left = getOffset(activeTab).left - getOffset(tabs).left + 'px';\n }\n },\n updateButtonState() {\n const { list, content } = this.$refs;\n const { scrollLeft, scrollTop, scrollWidth, scrollHeight, offsetWidth, offsetHeight } = content;\n const [width, height] = [getWidth(content), getHeight(content)];\n\n if (this.$pcTabs.isVertical()) {\n this.isPrevButtonEnabled = scrollTop !== 0;\n this.isNextButtonEnabled = list.offsetHeight >= offsetHeight && parseInt(scrollTop) !== scrollHeight - height;\n } else {\n this.isPrevButtonEnabled = scrollLeft !== 0;\n this.isNextButtonEnabled = list.offsetWidth >= offsetWidth && parseInt(scrollLeft) !== scrollWidth - width;\n }\n },\n getVisibleButtonWidths() {\n const { prevBtn, nextBtn } = this.$refs;\n\n return [prevBtn, nextBtn].reduce((acc, el) => (el ? acc + getWidth(el) : acc), 0);\n }\n },\n computed: {\n templates() {\n return this.$pcTabs.$slots;\n },\n activeValue() {\n return this.$pcTabs.d_value;\n },\n showNavigators() {\n return this.$pcTabs.scrollable && this.$pcTabs.showNavigators;\n },\n prevButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.previous : undefined;\n },\n nextButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.next : undefined;\n }\n },\n components: {\n ChevronLeftIcon,\n ChevronRightIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","style","TabListStyle","provide","$pcTabList","$parentInstance","BaseTabList","inheritAttrs","inject","data","isPrevButtonEnabled","isNextButtonEnabled","resizeObserver","undefined","watch","showNavigators","newValue","bindResizeObserver","unbindResizeObserver","activeValue","flush","handler","updateInkBar","mounted","_this","$nextTick","updateButtonState","updated","beforeUnmount","methods","onScroll","event","preventDefault","onPrevButtonClick","content","$refs","width","getWidth","pos","scrollLeft","onNextButtonClick","getVisibleButtonWidths","lastPos","scrollWidth","_this2","ResizeObserver","observe","list","_this$resizeObserver","unobserve","_this$$refs","inkbar","tabs","activeTab","findSingle","$pcTabs","isVertical","height","getOuterHeight","top","getOffset","getOuterWidth","left","_this$$refs2","scrollTop","scrollHeight","offsetWidth","offsetHeight","_ref","getHeight","parseInt","_this$$refs3","prevBtn","nextBtn","reduce","acc","el","computed","templates","$slots","d_value","scrollable","prevButtonAriaLabel","$primevue","config","locale","aria","previous","nextButtonAriaLabel","next","components","ChevronLeftIcon","ChevronRightIcon","directives","ripple","Ripple","_openBlock","_createElementBlock","_mergeProps","ref","_ctx","cx","ptmi","$options","$data","_withDirectives","tabindex","onClick","apply","arguments","ptm","_createBlock","_resolveDynamicComponent","previcon","_createElementVNode","role","orientation","_renderSlot","nexticon"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/tablist/BaseTabList.vue","../../src/tablist/TabList.vue","../../src/tablist/TabList.vue?vue&type=template&id=04812e3a&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TabListStyle from 'primevue/tablist/style';\n\nexport default {\n name: 'BaseTabList',\n extends: BaseComponent,\n props: {},\n style: TabListStyle,\n provide() {\n return {\n $pcTabList: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <div ref=\"list\" :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <button\n v-if=\"showNavigators && isPrevButtonEnabled\"\n ref=\"prevButton\"\n v-ripple\n :class=\"cx('prevButton')\"\n :aria-label=\"prevButtonAriaLabel\"\n :tabindex=\"$pcTabs.tabindex\"\n @click=\"onPrevButtonClick\"\n v-bind=\"ptm('prevButton')\"\n data-pc-group-section=\"navigator\"\n >\n <component :is=\"templates.previcon || 'ChevronLeftIcon'\" aria-hidden=\"true\" v-bind=\"ptm('prevIcon')\" />\n </button>\n <div ref=\"content\" :class=\"cx('content')\" @scroll=\"onScroll\" v-bind=\"ptm('content')\">\n <div ref=\"tabs\" :class=\"cx('tabList')\" role=\"tablist\" :aria-orientation=\"$pcTabs.orientation || 'horizontal'\" v-bind=\"ptm('tabList')\">\n <slot></slot>\n <span ref=\"inkbar\" :class=\"cx('activeBar')\" role=\"presentation\" aria-hidden=\"true\" v-bind=\"ptm('activeBar')\"></span>\n </div>\n </div>\n <button\n v-if=\"showNavigators && isNextButtonEnabled\"\n ref=\"nextButton\"\n v-ripple\n :class=\"cx('nextButton')\"\n :aria-label=\"nextButtonAriaLabel\"\n :tabindex=\"$pcTabs.tabindex\"\n @click=\"onNextButtonClick\"\n v-bind=\"ptm('nextButton')\"\n data-pc-group-section=\"navigator\"\n >\n <component :is=\"templates.nexticon || 'ChevronRightIcon'\" aria-hidden=\"true\" v-bind=\"ptm('nextIcon')\" />\n </button>\n </div>\n</template>\n\n<script>\nimport { findSingle, getHeight, getOffset, getOuterHeight, getOuterWidth, getWidth } from '@primeuix/utils/dom';\nimport ChevronLeftIcon from '@primevue/icons/chevronleft';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport Ripple from 'primevue/ripple';\nimport BaseTabList from './BaseTabList.vue';\n\nexport default {\n name: 'TabList',\n extends: BaseTabList,\n inheritAttrs: false,\n inject: ['$pcTabs'],\n mutationObserver: null,\n data() {\n return {\n isPrevButtonEnabled: false,\n isNextButtonEnabled: true,\n isRTL: false\n };\n },\n resizeObserver: undefined,\n watch: {\n showNavigators(newValue) {\n newValue ? this.bindResizeObserver() : this.unbindResizeObserver();\n },\n activeValue: {\n flush: 'post',\n handler() {\n this.updateInkBar();\n }\n }\n },\n mounted() {\n this.$nextTick(() => {\n this.updateInkBar();\n });\n\n if (this.showNavigators) {\n this.updateButtonState();\n this.bindResizeObserver();\n }\n\n this.updateDirection();\n this.observeDirectionChanges();\n },\n updated() {\n this.showNavigators && this.updateButtonState();\n },\n beforeUnmount() {\n this.unbindResizeObserver();\n\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n },\n methods: {\n onScroll(event) {\n this.showNavigators && this.updateButtonState();\n\n event.preventDefault();\n },\n onPrevButtonClick() {\n const content = this.$refs.content;\n const width = getWidth(content);\n let pos;\n\n if (this.isRTL) {\n pos = content.scrollLeft + width;\n } else {\n pos = content.scrollLeft - width;\n }\n\n content.scrollLeft = pos <= 0 ? 0 : pos;\n },\n onNextButtonClick() {\n const content = this.$refs.content;\n const width = getWidth(content) - this.getVisibleButtonWidths();\n let pos, lastPos;\n\n if (this.isRTL) {\n pos = content.scrollLeft - width;\n lastPos = content.scrollWidth + width;\n } else {\n pos = content.scrollLeft + width;\n lastPos = content.scrollWidth - width;\n }\n\n content.scrollLeft = pos >= lastPos ? lastPos : pos;\n },\n bindResizeObserver() {\n this.resizeObserver = new ResizeObserver(() => this.updateButtonState());\n this.resizeObserver.observe(this.$refs.list);\n },\n unbindResizeObserver() {\n this.resizeObserver?.unobserve(this.$refs.list);\n this.resizeObserver = undefined;\n },\n updateInkBar() {\n const { content, inkbar, tabs } = this.$refs;\n const activeTab = findSingle(content, '[data-pc-name=\"tab\"][data-p-active=\"true\"]');\n\n if (this.$pcTabs.isVertical()) {\n inkbar.style.height = getOuterHeight(activeTab) + 'px';\n inkbar.style.top = getOffset(activeTab).top - getOffset(tabs).top + 'px';\n } else {\n inkbar.style.width = getOuterWidth(activeTab) + 'px';\n inkbar.style.left = getOffset(activeTab).left - getOffset(tabs).left + 'px';\n }\n },\n updateButtonState() {\n const { list, content } = this.$refs;\n const { scrollLeft, scrollTop, scrollWidth, scrollHeight, offsetWidth, offsetHeight } = content;\n const [width, height] = [getWidth(content), getHeight(content)];\n\n if (this.$pcTabs.isVertical()) {\n this.isPrevButtonEnabled = scrollTop !== 0;\n this.isNextButtonEnabled = list.offsetHeight >= offsetHeight && parseInt(scrollTop) !== scrollHeight - height;\n } else {\n this.isPrevButtonEnabled = scrollLeft !== 0;\n this.isNextButtonEnabled = list.offsetWidth >= offsetWidth && parseInt(scrollLeft) !== scrollWidth - width;\n }\n },\n getVisibleButtonWidths() {\n const { prevBtn, nextBtn } = this.$refs;\n\n return [prevBtn, nextBtn].reduce((acc, el) => (el ? acc + getWidth(el) : acc), 0);\n },\n updateDirection() {\n this.isRTL = !!this.$el.closest('[dir=\"rtl\"]');\n },\n observeDirectionChanges() {\n const targetNode = document.documentElement;\n const config = { attributes: true, attributeFilter: ['dir'] };\n\n this.mutationObserver = new MutationObserver(() => {\n this.updateDirection();\n });\n\n this.mutationObserver.observe(targetNode, config);\n }\n },\n computed: {\n templates() {\n return this.$pcTabs.$slots;\n },\n activeValue() {\n return this.$pcTabs.d_value;\n },\n showNavigators() {\n return this.$pcTabs.scrollable && this.$pcTabs.showNavigators;\n },\n prevButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.previous : undefined;\n },\n nextButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.next : undefined;\n }\n },\n components: {\n ChevronLeftIcon,\n ChevronRightIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <div ref=\"list\" :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <button\n v-if=\"showNavigators && isPrevButtonEnabled\"\n ref=\"prevButton\"\n v-ripple\n :class=\"cx('prevButton')\"\n :aria-label=\"prevButtonAriaLabel\"\n :tabindex=\"$pcTabs.tabindex\"\n @click=\"onPrevButtonClick\"\n v-bind=\"ptm('prevButton')\"\n data-pc-group-section=\"navigator\"\n >\n <component :is=\"templates.previcon || 'ChevronLeftIcon'\" aria-hidden=\"true\" v-bind=\"ptm('prevIcon')\" />\n </button>\n <div ref=\"content\" :class=\"cx('content')\" @scroll=\"onScroll\" v-bind=\"ptm('content')\">\n <div ref=\"tabs\" :class=\"cx('tabList')\" role=\"tablist\" :aria-orientation=\"$pcTabs.orientation || 'horizontal'\" v-bind=\"ptm('tabList')\">\n <slot></slot>\n <span ref=\"inkbar\" :class=\"cx('activeBar')\" role=\"presentation\" aria-hidden=\"true\" v-bind=\"ptm('activeBar')\"></span>\n </div>\n </div>\n <button\n v-if=\"showNavigators && isNextButtonEnabled\"\n ref=\"nextButton\"\n v-ripple\n :class=\"cx('nextButton')\"\n :aria-label=\"nextButtonAriaLabel\"\n :tabindex=\"$pcTabs.tabindex\"\n @click=\"onNextButtonClick\"\n v-bind=\"ptm('nextButton')\"\n data-pc-group-section=\"navigator\"\n >\n <component :is=\"templates.nexticon || 'ChevronRightIcon'\" aria-hidden=\"true\" v-bind=\"ptm('nextIcon')\" />\n </button>\n </div>\n</template>\n\n<script>\nimport { findSingle, getHeight, getOffset, getOuterHeight, getOuterWidth, getWidth } from '@primeuix/utils/dom';\nimport ChevronLeftIcon from '@primevue/icons/chevronleft';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport Ripple from 'primevue/ripple';\nimport BaseTabList from './BaseTabList.vue';\n\nexport default {\n name: 'TabList',\n extends: BaseTabList,\n inheritAttrs: false,\n inject: ['$pcTabs'],\n mutationObserver: null,\n data() {\n return {\n isPrevButtonEnabled: false,\n isNextButtonEnabled: true,\n isRTL: false\n };\n },\n resizeObserver: undefined,\n watch: {\n showNavigators(newValue) {\n newValue ? this.bindResizeObserver() : this.unbindResizeObserver();\n },\n activeValue: {\n flush: 'post',\n handler() {\n this.updateInkBar();\n }\n }\n },\n mounted() {\n this.$nextTick(() => {\n this.updateInkBar();\n });\n\n if (this.showNavigators) {\n this.updateButtonState();\n this.bindResizeObserver();\n }\n\n this.updateDirection();\n this.observeDirectionChanges();\n },\n updated() {\n this.showNavigators && this.updateButtonState();\n },\n beforeUnmount() {\n this.unbindResizeObserver();\n\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n },\n methods: {\n onScroll(event) {\n this.showNavigators && this.updateButtonState();\n\n event.preventDefault();\n },\n onPrevButtonClick() {\n const content = this.$refs.content;\n const width = getWidth(content);\n let pos;\n\n if (this.isRTL) {\n pos = content.scrollLeft + width;\n } else {\n pos = content.scrollLeft - width;\n }\n\n content.scrollLeft = pos <= 0 ? 0 : pos;\n },\n onNextButtonClick() {\n const content = this.$refs.content;\n const width = getWidth(content) - this.getVisibleButtonWidths();\n let pos, lastPos;\n\n if (this.isRTL) {\n pos = content.scrollLeft - width;\n lastPos = content.scrollWidth + width;\n } else {\n pos = content.scrollLeft + width;\n lastPos = content.scrollWidth - width;\n }\n\n content.scrollLeft = pos >= lastPos ? lastPos : pos;\n },\n bindResizeObserver() {\n this.resizeObserver = new ResizeObserver(() => this.updateButtonState());\n this.resizeObserver.observe(this.$refs.list);\n },\n unbindResizeObserver() {\n this.resizeObserver?.unobserve(this.$refs.list);\n this.resizeObserver = undefined;\n },\n updateInkBar() {\n const { content, inkbar, tabs } = this.$refs;\n const activeTab = findSingle(content, '[data-pc-name=\"tab\"][data-p-active=\"true\"]');\n\n if (this.$pcTabs.isVertical()) {\n inkbar.style.height = getOuterHeight(activeTab) + 'px';\n inkbar.style.top = getOffset(activeTab).top - getOffset(tabs).top + 'px';\n } else {\n inkbar.style.width = getOuterWidth(activeTab) + 'px';\n inkbar.style.left = getOffset(activeTab).left - getOffset(tabs).left + 'px';\n }\n },\n updateButtonState() {\n const { list, content } = this.$refs;\n const { scrollLeft, scrollTop, scrollWidth, scrollHeight, offsetWidth, offsetHeight } = content;\n const [width, height] = [getWidth(content), getHeight(content)];\n\n if (this.$pcTabs.isVertical()) {\n this.isPrevButtonEnabled = scrollTop !== 0;\n this.isNextButtonEnabled = list.offsetHeight >= offsetHeight && parseInt(scrollTop) !== scrollHeight - height;\n } else {\n this.isPrevButtonEnabled = scrollLeft !== 0;\n this.isNextButtonEnabled = list.offsetWidth >= offsetWidth && parseInt(scrollLeft) !== scrollWidth - width;\n }\n },\n getVisibleButtonWidths() {\n const { prevBtn, nextBtn } = this.$refs;\n\n return [prevBtn, nextBtn].reduce((acc, el) => (el ? acc + getWidth(el) : acc), 0);\n },\n updateDirection() {\n this.isRTL = !!this.$el.closest('[dir=\"rtl\"]');\n },\n observeDirectionChanges() {\n const targetNode = document.documentElement;\n const config = { attributes: true, attributeFilter: ['dir'] };\n\n this.mutationObserver = new MutationObserver(() => {\n this.updateDirection();\n });\n\n this.mutationObserver.observe(targetNode, config);\n }\n },\n computed: {\n templates() {\n return this.$pcTabs.$slots;\n },\n activeValue() {\n return this.$pcTabs.d_value;\n },\n showNavigators() {\n return this.$pcTabs.scrollable && this.$pcTabs.showNavigators;\n },\n prevButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.previous : undefined;\n },\n nextButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.next : undefined;\n }\n },\n components: {\n ChevronLeftIcon,\n ChevronRightIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","style","TabListStyle","provide","$pcTabList","$parentInstance","BaseTabList","inheritAttrs","inject","mutationObserver","data","isPrevButtonEnabled","isNextButtonEnabled","isRTL","resizeObserver","undefined","watch","showNavigators","newValue","bindResizeObserver","unbindResizeObserver","activeValue","flush","handler","updateInkBar","mounted","_this","$nextTick","updateButtonState","updateDirection","observeDirectionChanges","updated","beforeUnmount","disconnect","methods","onScroll","event","preventDefault","onPrevButtonClick","content","$refs","width","getWidth","pos","scrollLeft","onNextButtonClick","getVisibleButtonWidths","lastPos","scrollWidth","_this2","ResizeObserver","observe","list","_this$resizeObserver","unobserve","_this$$refs","inkbar","tabs","activeTab","findSingle","$pcTabs","isVertical","height","getOuterHeight","top","getOffset","getOuterWidth","left","_this$$refs2","scrollTop","scrollHeight","offsetWidth","offsetHeight","_ref","getHeight","parseInt","_this$$refs3","prevBtn","nextBtn","reduce","acc","el","$el","closest","_this3","targetNode","document","documentElement","config","attributes","attributeFilter","MutationObserver","computed","templates","$slots","d_value","scrollable","prevButtonAriaLabel","$primevue","locale","aria","previous","nextButtonAriaLabel","next","components","ChevronLeftIcon","ChevronRightIcon","directives","ripple","Ripple","_openBlock","_createElementBlock","_mergeProps","ref","_ctx","cx","ptmi","$options","$data","_withDirectives","tabindex","onClick","apply","arguments","ptm","_createBlock","_resolveDynamicComponent","previcon","_createElementVNode","role","orientation","_renderSlot","nexticon"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../src/tablist/style/TabListStyle.js"],"sourcesContent":["import BaseStyle from '@primevue/core/base/style';\n\nconst classes = {\n root: 'p-tablist',\n content: ({ instance }) => [\n 'p-tablist-content',\n {\n 'p-tablist-viewport': instance.$pcTabs.scrollable\n }\n ],\n tabList: 'p-tablist-tab-list',\n activeBar: 'p-tablist-active-bar',\n prevButton: 'p-tablist-prev-button p-tablist-nav-button',\n nextButton: 'p-tablist-next-button p-tablist-nav-button'\n};\n\nexport default BaseStyle.extend({\n name: 'tablist',\n classes\n});\n"],"names":["classes","root","content","_ref","instance","$pcTabs","scrollable","tabList","activeBar","prevButton","nextButton","BaseStyle","extend","name"],"mappings":";;AAEA,IAAMA,OAAO,GAAG;AACZC,EAAAA,IAAI,EAAE,WAAW;AACjBC,EAAAA,OAAO,EAAE,SAATA,OAAOA,CAAAC,IAAA,EAAA;AAAA,IAAA,IAAKC,QAAQ,GAAAD,IAAA,CAARC,QAAQ,CAAA;IAAA,OAAO,CACvB,mBAAmB,EACnB;AACI,MAAA,oBAAoB,EAAEA,QAAQ,CAACC,OAAO,CAACC,UAAAA;AAC3C,KAAC,CACJ,CAAA;AAAA,GAAA;AACDC,EAAAA,OAAO,EAAE,oBAAoB;AAC7BC,EAAAA,SAAS,EAAE,sBAAsB;AACjCC,EAAAA,UAAU,EAAE,4CAA4C;AACxDC,EAAAA,UAAU,EAAE,4CAAA;AAChB,CAAC,CAAA;AAED,mBAAeC,SAAS,CAACC,MAAM,CAAC;AAC5BC,EAAAA,IAAI,EAAE,SAAS;AACfb,EAAAA,OAAO,EAAPA,OAAAA;AACJ,CAAC,CAAC;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/tablist/style/TabListStyle.js"],"sourcesContent":["import BaseStyle from '@primevue/core/base/style';\n\nconst classes = {\n root: 'p-tablist',\n content: ({ instance }) => [\n 'p-tablist-content',\n {\n 'p-tablist-viewport': instance.$pcTabs.scrollable\n }\n ],\n tabList: 'p-tablist-tab-list',\n activeBar: 'p-tablist-active-bar',\n prevButton: 'p-tablist-prev-button p-tablist-nav-button',\n nextButton: 'p-tablist-next-button p-tablist-nav-button'\n};\n\nexport default BaseStyle.extend({\n name: 'tablist',\n classes\n});\n"],"names":["classes","root","content","_ref","instance","$pcTabs","scrollable","tabList","activeBar","prevButton","nextButton","BaseStyle","extend","name"],"mappings":";;AAEA,IAAMA,OAAO,GAAG;AACZC,EAAAA,IAAI,EAAE,WAAW;AACjBC,EAAAA,OAAO,EAAE,SAATA,OAAOA,CAAAC,IAAA,EAAA;AAAA,IAAA,IAAKC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAAA,OAAO,CACvB,mBAAmB,EACnB;AACI,MAAA,oBAAoB,EAAEA,QAAQ,CAACC,OAAO,CAACC;AAC3C,KAAC,CACJ;AAAA,GAAA;AACDC,EAAAA,OAAO,EAAE,oBAAoB;AAC7BC,EAAAA,SAAS,EAAE,sBAAsB;AACjCC,EAAAA,UAAU,EAAE,4CAA4C;AACxDC,EAAAA,UAAU,EAAE;AAChB,CAAC;AAED,mBAAeC,SAAS,CAACC,MAAM,CAAC;AAC5BC,EAAAA,IAAI,EAAE,SAAS;AACfb,EAAAA,OAAO,EAAPA;AACJ,CAAC,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/tabmenu/BaseTabMenu.vue","../../src/tabmenu/TabMenu.vue","../../src/tabmenu/TabMenu.vue?vue&type=template&id=c9708f4e&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TabMenuStyle from 'primevue/tabmenu/style';\n\nexport default {\n name: 'BaseTabMenu',\n extends: BaseComponent,\n props: {\n model: {\n type: Array,\n default: null\n },\n activeIndex: {\n type: Number,\n default: 0\n },\n ariaLabelledby: {\n type: String,\n default: null\n },\n ariaLabel: {\n type: String,\n default: null\n }\n },\n style: TabMenuStyle,\n provide() {\n return {\n $pcTabMenu: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <ul ref=\"nav\" :class=\"cx('tablist')\" role=\"menubar\" :aria-labelledby=\"ariaLabelledby\" :aria-label=\"ariaLabel\" v-bind=\"ptm('tablist')\">\n <template v-for=\"(item, i) of model\" :key=\"label(item) + '_' + i.toString()\">\n <li\n v-if=\"visible(item)\"\n ref=\"tab\"\n :class=\"[cx('item', { item, index: i }), item.class]\"\n role=\"presentation\"\n @click=\"onItemClick($event, item, i)\"\n @keydown=\"onKeydownItem($event, item, i)\"\n v-bind=\"getPTOptions('item', item, i)\"\n :data-p-active=\"d_activeIndex === i\"\n :data-p-disabled=\"disabled(item)\"\n >\n <template v-if=\"!$slots.item\">\n <a ref=\"tabLink\" v-ripple role=\"menuitem\" :href=\"item.url\" :class=\"cx('itemLink')\" :target=\"item.target\" :aria-label=\"label(item)\" :aria-disabled=\"disabled(item)\" :tabindex=\"-1\" v-bind=\"getPTOptions('itemLink', item, i)\">\n <component v-if=\"$slots.itemicon\" :is=\"$slots.itemicon\" :item=\"item\" :class=\"cx('itemIcon')\" />\n <span v-else-if=\"item.icon\" :class=\"[cx('itemIcon'), item.icon]\" v-bind=\"getPTOptions('itemIcon', item, i)\" />\n <span :class=\"cx('itemLabel')\" v-bind=\"getPTOptions('itemLabel', item, i)\">{{ label(item) }}</span>\n </a>\n </template>\n <component v-else :is=\"$slots.item\" :item=\"item\" :index=\"i\" :active=\"i === d_activeIndex\" :label=\"label(item)\" :props=\"getMenuItemProps(item, i)\"></component>\n </li>\n </template>\n <li ref=\"inkbar\" role=\"none\" :class=\"cx('activeBar')\" v-bind=\"ptm('activeBar')\"></li>\n </ul>\n </div>\n</template>\n\n<script>\nimport { getAttribute, find, findSingle, getWidth, getOffset } from '@primeuix/utils/dom';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\nimport BaseTabMenu from './BaseTabMenu.vue';\n\nexport default {\n name: 'TabMenu',\n extends: BaseTabMenu,\n inheritAttrs: false,\n emits: ['update:activeIndex', 'tab-change'],\n data() {\n return {\n d_activeIndex: this.activeIndex\n };\n },\n watch: {\n activeIndex: {\n flush: 'post',\n handler(newValue) {\n this.d_activeIndex = newValue;\n this.updateInkBar();\n }\n }\n },\n mounted() {\n this.$nextTick(() => {\n this.updateInkBar();\n });\n\n const activeItem = this.findActiveItem();\n\n activeItem && (activeItem.tabIndex = '0');\n },\n updated() {\n this.updateInkBar();\n },\n methods: {\n getPTOptions(key, item, index) {\n return this.ptm(key, {\n context: {\n item,\n index\n }\n });\n },\n onItemClick(event, item, index) {\n if (this.disabled(item)) {\n event.preventDefault();\n\n return;\n }\n\n if (item.command) {\n item.command({\n originalEvent: event,\n item: item\n });\n }\n\n if (index !== this.d_activeIndex) {\n this.d_activeIndex = index;\n this.$emit('update:activeIndex', this.d_activeIndex);\n }\n\n this.$emit('tab-change', {\n originalEvent: event,\n index: index\n });\n },\n onKeydownItem(event, item, index) {\n switch (event.code) {\n case 'ArrowRight': {\n this.navigateToNextItem(event.target);\n event.preventDefault();\n break;\n }\n\n case 'ArrowLeft': {\n this.navigateToPrevItem(event.target);\n event.preventDefault();\n break;\n }\n\n case 'Home': {\n this.navigateToFirstItem(event.target);\n event.preventDefault();\n break;\n }\n\n case 'End': {\n this.navigateToLastItem(event.target);\n event.preventDefault();\n break;\n }\n\n case 'Space':\n case 'NumpadEnter':\n\n case 'Enter': {\n this.onItemClick(event, item, index);\n event.preventDefault();\n break;\n }\n\n case 'Tab': {\n this.onTabKey();\n break;\n }\n\n default:\n break;\n }\n },\n navigateToNextItem(target) {\n const nextItem = this.findNextItem(target);\n\n nextItem && this.setFocusToMenuitem(target, nextItem);\n },\n navigateToPrevItem(target) {\n const prevItem = this.findPrevItem(target);\n\n prevItem && this.setFocusToMenuitem(target, prevItem);\n },\n navigateToFirstItem(target) {\n const firstItem = this.findFirstItem(target);\n\n firstItem && this.setFocusToMenuitem(target, firstItem);\n },\n navigateToLastItem(target) {\n const lastItem = this.findLastItem(target);\n\n lastItem && this.setFocusToMenuitem(target, lastItem);\n },\n findNextItem(item) {\n const nextItem = item.parentElement.nextElementSibling;\n\n return nextItem ? (getAttribute(nextItem, 'data-p-disabled') === true ? this.findNextItem(nextItem.children[0]) : nextItem.children[0]) : null;\n },\n findPrevItem(item) {\n const prevItem = item.parentElement.previousElementSibling;\n\n return prevItem ? (getAttribute(prevItem, 'data-p-disabled') === true ? this.findPrevItem(prevItem.children[0]) : prevItem.children[0]) : null;\n },\n findFirstItem() {\n const firstSibling = findSingle(this.$refs.nav, '[data-pc-section=\"item\"][data-p-disabled=\"false\"]');\n\n return firstSibling ? firstSibling.children[0] : null;\n },\n findLastItem() {\n const siblings = find(this.$refs.nav, '[data-pc-section=\"item\"][data-p-disabled=\"false\"]');\n\n return siblings ? siblings[siblings.length - 1].children[0] : null;\n },\n findActiveItem() {\n const activeItem = findSingle(this.$refs.nav, '[data-pc-section=\"item\"][data-p-disabled=\"false\"][data-p-active=\"true\"]');\n\n return activeItem ? activeItem.children[0] : null;\n },\n setFocusToMenuitem(target, focusableItem) {\n target.tabIndex = '-1';\n focusableItem.tabIndex = '0';\n focusableItem.focus();\n },\n onTabKey() {\n const activeItem = findSingle(this.$refs.nav, '[data-pc-section=\"item\"][data-p-disabled=\"false\"][data-p-active=\"true\"]');\n const focusedItem = findSingle(this.$refs.nav, '[data-pc-section=\"itemlink\"][tabindex=\"0\"]');\n\n if (focusedItem !== activeItem.children[0]) {\n activeItem && (activeItem.children[0].tabIndex = '0');\n focusedItem.tabIndex = '-1';\n }\n },\n visible(item) {\n return typeof item.visible === 'function' ? item.visible() : item.visible !== false;\n },\n disabled(item) {\n return typeof item.disabled === 'function' ? item.disabled() : item.disabled === true;\n },\n label(item) {\n return typeof item.label === 'function' ? item.label() : item.label;\n },\n updateInkBar() {\n let tabs = this.$refs.nav.children;\n let inkHighlighted = false;\n\n for (let i = 0; i < tabs.length; i++) {\n let tab = tabs[i];\n\n if (getAttribute(tab, 'data-p-active')) {\n this.$refs.inkbar.style.width = getWidth(tab) + 'px';\n this.$refs.inkbar.style.left = getOffset(tab).left - getOffset(this.$refs.nav).left + 'px';\n inkHighlighted = true;\n }\n }\n\n if (!inkHighlighted) {\n this.$refs.inkbar.style.width = '0px';\n this.$refs.inkbar.style.left = '0px';\n }\n },\n getMenuItemProps(item, index) {\n return {\n action: mergeProps(\n {\n class: this.cx('itemLink'),\n tabindex: -1,\n onClick: ($event) => this.onItemClick($event, item, index),\n onKeyDown: ($event) => this.onKeydownItem($event, item, index)\n },\n this.getPTOptions('itemLink', item, index)\n ),\n icon: mergeProps(\n {\n class: [this.cx('itemIcon'), item.icon]\n },\n this.getPTOptions('itemIcon', item, index)\n ),\n label: mergeProps(\n {\n class: this.cx('itemLabel')\n },\n this.getPTOptions('itemLabel', item, index)\n )\n };\n }\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <ul ref=\"nav\" :class=\"cx('tablist')\" role=\"menubar\" :aria-labelledby=\"ariaLabelledby\" :aria-label=\"ariaLabel\" v-bind=\"ptm('tablist')\">\n <template v-for=\"(item, i) of model\" :key=\"label(item) + '_' + i.toString()\">\n <li\n v-if=\"visible(item)\"\n ref=\"tab\"\n :class=\"[cx('item', { item, index: i }), item.class]\"\n role=\"presentation\"\n @click=\"onItemClick($event, item, i)\"\n @keydown=\"onKeydownItem($event, item, i)\"\n v-bind=\"getPTOptions('item', item, i)\"\n :data-p-active=\"d_activeIndex === i\"\n :data-p-disabled=\"disabled(item)\"\n >\n <template v-if=\"!$slots.item\">\n <a ref=\"tabLink\" v-ripple role=\"menuitem\" :href=\"item.url\" :class=\"cx('itemLink')\" :target=\"item.target\" :aria-label=\"label(item)\" :aria-disabled=\"disabled(item)\" :tabindex=\"-1\" v-bind=\"getPTOptions('itemLink', item, i)\">\n <component v-if=\"$slots.itemicon\" :is=\"$slots.itemicon\" :item=\"item\" :class=\"cx('itemIcon')\" />\n <span v-else-if=\"item.icon\" :class=\"[cx('itemIcon'), item.icon]\" v-bind=\"getPTOptions('itemIcon', item, i)\" />\n <span :class=\"cx('itemLabel')\" v-bind=\"getPTOptions('itemLabel', item, i)\">{{ label(item) }}</span>\n </a>\n </template>\n <component v-else :is=\"$slots.item\" :item=\"item\" :index=\"i\" :active=\"i === d_activeIndex\" :label=\"label(item)\" :props=\"getMenuItemProps(item, i)\"></component>\n </li>\n </template>\n <li ref=\"inkbar\" role=\"none\" :class=\"cx('activeBar')\" v-bind=\"ptm('activeBar')\"></li>\n </ul>\n </div>\n</template>\n\n<script>\nimport { getAttribute, find, findSingle, getWidth, getOffset } from '@primeuix/utils/dom';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\nimport BaseTabMenu from './BaseTabMenu.vue';\n\nexport default {\n name: 'TabMenu',\n extends: BaseTabMenu,\n inheritAttrs: false,\n emits: ['update:activeIndex', 'tab-change'],\n data() {\n return {\n d_activeIndex: this.activeIndex\n };\n },\n watch: {\n activeIndex: {\n flush: 'post',\n handler(newValue) {\n this.d_activeIndex = newValue;\n this.updateInkBar();\n }\n }\n },\n mounted() {\n this.$nextTick(() => {\n this.updateInkBar();\n });\n\n const activeItem = this.findActiveItem();\n\n activeItem && (activeItem.tabIndex = '0');\n },\n updated() {\n this.updateInkBar();\n },\n methods: {\n getPTOptions(key, item, index) {\n return this.ptm(key, {\n context: {\n item,\n index\n }\n });\n },\n onItemClick(event, item, index) {\n if (this.disabled(item)) {\n event.preventDefault();\n\n return;\n }\n\n if (item.command) {\n item.command({\n originalEvent: event,\n item: item\n });\n }\n\n if (index !== this.d_activeIndex) {\n this.d_activeIndex = index;\n this.$emit('update:activeIndex', this.d_activeIndex);\n }\n\n this.$emit('tab-change', {\n originalEvent: event,\n index: index\n });\n },\n onKeydownItem(event, item, index) {\n switch (event.code) {\n case 'ArrowRight': {\n this.navigateToNextItem(event.target);\n event.preventDefault();\n break;\n }\n\n case 'ArrowLeft': {\n this.navigateToPrevItem(event.target);\n event.preventDefault();\n break;\n }\n\n case 'Home': {\n this.navigateToFirstItem(event.target);\n event.preventDefault();\n break;\n }\n\n case 'End': {\n this.navigateToLastItem(event.target);\n event.preventDefault();\n break;\n }\n\n case 'Space':\n case 'NumpadEnter':\n\n case 'Enter': {\n this.onItemClick(event, item, index);\n event.preventDefault();\n break;\n }\n\n case 'Tab': {\n this.onTabKey();\n break;\n }\n\n default:\n break;\n }\n },\n navigateToNextItem(target) {\n const nextItem = this.findNextItem(target);\n\n nextItem && this.setFocusToMenuitem(target, nextItem);\n },\n navigateToPrevItem(target) {\n const prevItem = this.findPrevItem(target);\n\n prevItem && this.setFocusToMenuitem(target, prevItem);\n },\n navigateToFirstItem(target) {\n const firstItem = this.findFirstItem(target);\n\n firstItem && this.setFocusToMenuitem(target, firstItem);\n },\n navigateToLastItem(target) {\n const lastItem = this.findLastItem(target);\n\n lastItem && this.setFocusToMenuitem(target, lastItem);\n },\n findNextItem(item) {\n const nextItem = item.parentElement.nextElementSibling;\n\n return nextItem ? (getAttribute(nextItem, 'data-p-disabled') === true ? this.findNextItem(nextItem.children[0]) : nextItem.children[0]) : null;\n },\n findPrevItem(item) {\n const prevItem = item.parentElement.previousElementSibling;\n\n return prevItem ? (getAttribute(prevItem, 'data-p-disabled') === true ? this.findPrevItem(prevItem.children[0]) : prevItem.children[0]) : null;\n },\n findFirstItem() {\n const firstSibling = findSingle(this.$refs.nav, '[data-pc-section=\"item\"][data-p-disabled=\"false\"]');\n\n return firstSibling ? firstSibling.children[0] : null;\n },\n findLastItem() {\n const siblings = find(this.$refs.nav, '[data-pc-section=\"item\"][data-p-disabled=\"false\"]');\n\n return siblings ? siblings[siblings.length - 1].children[0] : null;\n },\n findActiveItem() {\n const activeItem = findSingle(this.$refs.nav, '[data-pc-section=\"item\"][data-p-disabled=\"false\"][data-p-active=\"true\"]');\n\n return activeItem ? activeItem.children[0] : null;\n },\n setFocusToMenuitem(target, focusableItem) {\n target.tabIndex = '-1';\n focusableItem.tabIndex = '0';\n focusableItem.focus();\n },\n onTabKey() {\n const activeItem = findSingle(this.$refs.nav, '[data-pc-section=\"item\"][data-p-disabled=\"false\"][data-p-active=\"true\"]');\n const focusedItem = findSingle(this.$refs.nav, '[data-pc-section=\"itemlink\"][tabindex=\"0\"]');\n\n if (focusedItem !== activeItem.children[0]) {\n activeItem && (activeItem.children[0].tabIndex = '0');\n focusedItem.tabIndex = '-1';\n }\n },\n visible(item) {\n return typeof item.visible === 'function' ? item.visible() : item.visible !== false;\n },\n disabled(item) {\n return typeof item.disabled === 'function' ? item.disabled() : item.disabled === true;\n },\n label(item) {\n return typeof item.label === 'function' ? item.label() : item.label;\n },\n updateInkBar() {\n let tabs = this.$refs.nav.children;\n let inkHighlighted = false;\n\n for (let i = 0; i < tabs.length; i++) {\n let tab = tabs[i];\n\n if (getAttribute(tab, 'data-p-active')) {\n this.$refs.inkbar.style.width = getWidth(tab) + 'px';\n this.$refs.inkbar.style.left = getOffset(tab).left - getOffset(this.$refs.nav).left + 'px';\n inkHighlighted = true;\n }\n }\n\n if (!inkHighlighted) {\n this.$refs.inkbar.style.width = '0px';\n this.$refs.inkbar.style.left = '0px';\n }\n },\n getMenuItemProps(item, index) {\n return {\n action: mergeProps(\n {\n class: this.cx('itemLink'),\n tabindex: -1,\n onClick: ($event) => this.onItemClick($event, item, index),\n onKeyDown: ($event) => this.onKeydownItem($event, item, index)\n },\n this.getPTOptions('itemLink', item, index)\n ),\n icon: mergeProps(\n {\n class: [this.cx('itemIcon'), item.icon]\n },\n this.getPTOptions('itemIcon', item, index)\n ),\n label: mergeProps(\n {\n class: this.cx('itemLabel')\n },\n this.getPTOptions('itemLabel', item, index)\n )\n };\n }\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","model","type","Array","activeIndex","Number","ariaLabelledby","String","ariaLabel","style","TabMenuStyle","provide","$pcTabMenu","$parentInstance","BaseTabMenu","inheritAttrs","emits","data","d_activeIndex","watch","flush","handler","newValue","updateInkBar","mounted","_this","$nextTick","activeItem","findActiveItem","tabIndex","updated","methods","getPTOptions","key","item","index","ptm","context","onItemClick","event","disabled","preventDefault","command","originalEvent","$emit","onKeydownItem","code","navigateToNextItem","target","navigateToPrevItem","navigateToFirstItem","navigateToLastItem","onTabKey","nextItem","findNextItem","setFocusToMenuitem","prevItem","findPrevItem","firstItem","findFirstItem","lastItem","findLastItem","parentElement","nextElementSibling","getAttribute","children","previousElementSibling","firstSibling","findSingle","$refs","nav","siblings","find","length","focusableItem","focus","focusedItem","visible","label","tabs","inkHighlighted","i","tab","inkbar","width","getWidth","left","getOffset","getMenuItemProps","_this2","action","mergeProps","cx","tabindex","onClick","$event","onKeyDown","icon","directives","ripple","Ripple","_openBlock","_createElementBlock","_mergeProps","_ctx","ptmi","_createElementVNode","ref","role","_Fragment","_renderList","$options","toString","onKeydown","$data","$slots","_withDirectives","href","url","itemicon","_createBlock","_resolveDynamicComponent","_toDisplayString","active"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/tabmenu/BaseTabMenu.vue","../../src/tabmenu/TabMenu.vue","../../src/tabmenu/TabMenu.vue?vue&type=template&id=c9708f4e&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TabMenuStyle from 'primevue/tabmenu/style';\n\nexport default {\n name: 'BaseTabMenu',\n extends: BaseComponent,\n props: {\n model: {\n type: Array,\n default: null\n },\n activeIndex: {\n type: Number,\n default: 0\n },\n ariaLabelledby: {\n type: String,\n default: null\n },\n ariaLabel: {\n type: String,\n default: null\n }\n },\n style: TabMenuStyle,\n provide() {\n return {\n $pcTabMenu: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <ul ref=\"nav\" :class=\"cx('tablist')\" role=\"menubar\" :aria-labelledby=\"ariaLabelledby\" :aria-label=\"ariaLabel\" v-bind=\"ptm('tablist')\">\n <template v-for=\"(item, i) of model\" :key=\"label(item) + '_' + i.toString()\">\n <li\n v-if=\"visible(item)\"\n ref=\"tab\"\n :class=\"[cx('item', { item, index: i }), item.class]\"\n role=\"presentation\"\n @click=\"onItemClick($event, item, i)\"\n @keydown=\"onKeydownItem($event, item, i)\"\n v-bind=\"getPTOptions('item', item, i)\"\n :data-p-active=\"d_activeIndex === i\"\n :data-p-disabled=\"disabled(item)\"\n >\n <template v-if=\"!$slots.item\">\n <a ref=\"tabLink\" v-ripple role=\"menuitem\" :href=\"item.url\" :class=\"cx('itemLink')\" :target=\"item.target\" :aria-label=\"label(item)\" :aria-disabled=\"disabled(item)\" :tabindex=\"-1\" v-bind=\"getPTOptions('itemLink', item, i)\">\n <component v-if=\"$slots.itemicon\" :is=\"$slots.itemicon\" :item=\"item\" :class=\"cx('itemIcon')\" />\n <span v-else-if=\"item.icon\" :class=\"[cx('itemIcon'), item.icon]\" v-bind=\"getPTOptions('itemIcon', item, i)\" />\n <span :class=\"cx('itemLabel')\" v-bind=\"getPTOptions('itemLabel', item, i)\">{{ label(item) }}</span>\n </a>\n </template>\n <component v-else :is=\"$slots.item\" :item=\"item\" :index=\"i\" :active=\"i === d_activeIndex\" :label=\"label(item)\" :props=\"getMenuItemProps(item, i)\"></component>\n </li>\n </template>\n <li ref=\"inkbar\" role=\"none\" :class=\"cx('activeBar')\" v-bind=\"ptm('activeBar')\"></li>\n </ul>\n </div>\n</template>\n\n<script>\nimport { getAttribute, find, findSingle, getWidth, getOffset } from '@primeuix/utils/dom';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\nimport BaseTabMenu from './BaseTabMenu.vue';\n\nexport default {\n name: 'TabMenu',\n extends: BaseTabMenu,\n inheritAttrs: false,\n emits: ['update:activeIndex', 'tab-change'],\n data() {\n return {\n d_activeIndex: this.activeIndex\n };\n },\n watch: {\n activeIndex: {\n flush: 'post',\n handler(newValue) {\n this.d_activeIndex = newValue;\n this.updateInkBar();\n }\n }\n },\n mounted() {\n this.$nextTick(() => {\n this.updateInkBar();\n });\n\n const activeItem = this.findActiveItem();\n\n activeItem && (activeItem.tabIndex = '0');\n },\n updated() {\n this.updateInkBar();\n },\n methods: {\n getPTOptions(key, item, index) {\n return this.ptm(key, {\n context: {\n item,\n index\n }\n });\n },\n onItemClick(event, item, index) {\n if (this.disabled(item)) {\n event.preventDefault();\n\n return;\n }\n\n if (item.command) {\n item.command({\n originalEvent: event,\n item: item\n });\n }\n\n if (index !== this.d_activeIndex) {\n this.d_activeIndex = index;\n this.$emit('update:activeIndex', this.d_activeIndex);\n }\n\n this.$emit('tab-change', {\n originalEvent: event,\n index: index\n });\n },\n onKeydownItem(event, item, index) {\n switch (event.code) {\n case 'ArrowRight': {\n this.navigateToNextItem(event.target);\n event.preventDefault();\n break;\n }\n\n case 'ArrowLeft': {\n this.navigateToPrevItem(event.target);\n event.preventDefault();\n break;\n }\n\n case 'Home': {\n this.navigateToFirstItem(event.target);\n event.preventDefault();\n break;\n }\n\n case 'End': {\n this.navigateToLastItem(event.target);\n event.preventDefault();\n break;\n }\n\n case 'Space':\n case 'NumpadEnter':\n\n case 'Enter': {\n this.onItemClick(event, item, index);\n event.preventDefault();\n break;\n }\n\n case 'Tab': {\n this.onTabKey();\n break;\n }\n\n default:\n break;\n }\n },\n navigateToNextItem(target) {\n const nextItem = this.findNextItem(target);\n\n nextItem && this.setFocusToMenuitem(target, nextItem);\n },\n navigateToPrevItem(target) {\n const prevItem = this.findPrevItem(target);\n\n prevItem && this.setFocusToMenuitem(target, prevItem);\n },\n navigateToFirstItem(target) {\n const firstItem = this.findFirstItem(target);\n\n firstItem && this.setFocusToMenuitem(target, firstItem);\n },\n navigateToLastItem(target) {\n const lastItem = this.findLastItem(target);\n\n lastItem && this.setFocusToMenuitem(target, lastItem);\n },\n findNextItem(item) {\n const nextItem = item.parentElement.nextElementSibling;\n\n return nextItem ? (getAttribute(nextItem, 'data-p-disabled') === true ? this.findNextItem(nextItem.children[0]) : nextItem.children[0]) : null;\n },\n findPrevItem(item) {\n const prevItem = item.parentElement.previousElementSibling;\n\n return prevItem ? (getAttribute(prevItem, 'data-p-disabled') === true ? this.findPrevItem(prevItem.children[0]) : prevItem.children[0]) : null;\n },\n findFirstItem() {\n const firstSibling = findSingle(this.$refs.nav, '[data-pc-section=\"item\"][data-p-disabled=\"false\"]');\n\n return firstSibling ? firstSibling.children[0] : null;\n },\n findLastItem() {\n const siblings = find(this.$refs.nav, '[data-pc-section=\"item\"][data-p-disabled=\"false\"]');\n\n return siblings ? siblings[siblings.length - 1].children[0] : null;\n },\n findActiveItem() {\n const activeItem = findSingle(this.$refs.nav, '[data-pc-section=\"item\"][data-p-disabled=\"false\"][data-p-active=\"true\"]');\n\n return activeItem ? activeItem.children[0] : null;\n },\n setFocusToMenuitem(target, focusableItem) {\n target.tabIndex = '-1';\n focusableItem.tabIndex = '0';\n focusableItem.focus();\n },\n onTabKey() {\n const activeItem = findSingle(this.$refs.nav, '[data-pc-section=\"item\"][data-p-disabled=\"false\"][data-p-active=\"true\"]');\n const focusedItem = findSingle(this.$refs.nav, '[data-pc-section=\"itemlink\"][tabindex=\"0\"]');\n\n if (focusedItem !== activeItem.children[0]) {\n activeItem && (activeItem.children[0].tabIndex = '0');\n focusedItem.tabIndex = '-1';\n }\n },\n visible(item) {\n return typeof item.visible === 'function' ? item.visible() : item.visible !== false;\n },\n disabled(item) {\n return typeof item.disabled === 'function' ? item.disabled() : item.disabled === true;\n },\n label(item) {\n return typeof item.label === 'function' ? item.label() : item.label;\n },\n updateInkBar() {\n let tabs = this.$refs.nav.children;\n let inkHighlighted = false;\n\n for (let i = 0; i < tabs.length; i++) {\n let tab = tabs[i];\n\n if (getAttribute(tab, 'data-p-active')) {\n this.$refs.inkbar.style.width = getWidth(tab) + 'px';\n this.$refs.inkbar.style.left = getOffset(tab).left - getOffset(this.$refs.nav).left + 'px';\n inkHighlighted = true;\n }\n }\n\n if (!inkHighlighted) {\n this.$refs.inkbar.style.width = '0px';\n this.$refs.inkbar.style.left = '0px';\n }\n },\n getMenuItemProps(item, index) {\n return {\n action: mergeProps(\n {\n class: this.cx('itemLink'),\n tabindex: -1,\n onClick: ($event) => this.onItemClick($event, item, index),\n onKeyDown: ($event) => this.onKeydownItem($event, item, index)\n },\n this.getPTOptions('itemLink', item, index)\n ),\n icon: mergeProps(\n {\n class: [this.cx('itemIcon'), item.icon]\n },\n this.getPTOptions('itemIcon', item, index)\n ),\n label: mergeProps(\n {\n class: this.cx('itemLabel')\n },\n this.getPTOptions('itemLabel', item, index)\n )\n };\n }\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <ul ref=\"nav\" :class=\"cx('tablist')\" role=\"menubar\" :aria-labelledby=\"ariaLabelledby\" :aria-label=\"ariaLabel\" v-bind=\"ptm('tablist')\">\n <template v-for=\"(item, i) of model\" :key=\"label(item) + '_' + i.toString()\">\n <li\n v-if=\"visible(item)\"\n ref=\"tab\"\n :class=\"[cx('item', { item, index: i }), item.class]\"\n role=\"presentation\"\n @click=\"onItemClick($event, item, i)\"\n @keydown=\"onKeydownItem($event, item, i)\"\n v-bind=\"getPTOptions('item', item, i)\"\n :data-p-active=\"d_activeIndex === i\"\n :data-p-disabled=\"disabled(item)\"\n >\n <template v-if=\"!$slots.item\">\n <a ref=\"tabLink\" v-ripple role=\"menuitem\" :href=\"item.url\" :class=\"cx('itemLink')\" :target=\"item.target\" :aria-label=\"label(item)\" :aria-disabled=\"disabled(item)\" :tabindex=\"-1\" v-bind=\"getPTOptions('itemLink', item, i)\">\n <component v-if=\"$slots.itemicon\" :is=\"$slots.itemicon\" :item=\"item\" :class=\"cx('itemIcon')\" />\n <span v-else-if=\"item.icon\" :class=\"[cx('itemIcon'), item.icon]\" v-bind=\"getPTOptions('itemIcon', item, i)\" />\n <span :class=\"cx('itemLabel')\" v-bind=\"getPTOptions('itemLabel', item, i)\">{{ label(item) }}</span>\n </a>\n </template>\n <component v-else :is=\"$slots.item\" :item=\"item\" :index=\"i\" :active=\"i === d_activeIndex\" :label=\"label(item)\" :props=\"getMenuItemProps(item, i)\"></component>\n </li>\n </template>\n <li ref=\"inkbar\" role=\"none\" :class=\"cx('activeBar')\" v-bind=\"ptm('activeBar')\"></li>\n </ul>\n </div>\n</template>\n\n<script>\nimport { getAttribute, find, findSingle, getWidth, getOffset } from '@primeuix/utils/dom';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\nimport BaseTabMenu from './BaseTabMenu.vue';\n\nexport default {\n name: 'TabMenu',\n extends: BaseTabMenu,\n inheritAttrs: false,\n emits: ['update:activeIndex', 'tab-change'],\n data() {\n return {\n d_activeIndex: this.activeIndex\n };\n },\n watch: {\n activeIndex: {\n flush: 'post',\n handler(newValue) {\n this.d_activeIndex = newValue;\n this.updateInkBar();\n }\n }\n },\n mounted() {\n this.$nextTick(() => {\n this.updateInkBar();\n });\n\n const activeItem = this.findActiveItem();\n\n activeItem && (activeItem.tabIndex = '0');\n },\n updated() {\n this.updateInkBar();\n },\n methods: {\n getPTOptions(key, item, index) {\n return this.ptm(key, {\n context: {\n item,\n index\n }\n });\n },\n onItemClick(event, item, index) {\n if (this.disabled(item)) {\n event.preventDefault();\n\n return;\n }\n\n if (item.command) {\n item.command({\n originalEvent: event,\n item: item\n });\n }\n\n if (index !== this.d_activeIndex) {\n this.d_activeIndex = index;\n this.$emit('update:activeIndex', this.d_activeIndex);\n }\n\n this.$emit('tab-change', {\n originalEvent: event,\n index: index\n });\n },\n onKeydownItem(event, item, index) {\n switch (event.code) {\n case 'ArrowRight': {\n this.navigateToNextItem(event.target);\n event.preventDefault();\n break;\n }\n\n case 'ArrowLeft': {\n this.navigateToPrevItem(event.target);\n event.preventDefault();\n break;\n }\n\n case 'Home': {\n this.navigateToFirstItem(event.target);\n event.preventDefault();\n break;\n }\n\n case 'End': {\n this.navigateToLastItem(event.target);\n event.preventDefault();\n break;\n }\n\n case 'Space':\n case 'NumpadEnter':\n\n case 'Enter': {\n this.onItemClick(event, item, index);\n event.preventDefault();\n break;\n }\n\n case 'Tab': {\n this.onTabKey();\n break;\n }\n\n default:\n break;\n }\n },\n navigateToNextItem(target) {\n const nextItem = this.findNextItem(target);\n\n nextItem && this.setFocusToMenuitem(target, nextItem);\n },\n navigateToPrevItem(target) {\n const prevItem = this.findPrevItem(target);\n\n prevItem && this.setFocusToMenuitem(target, prevItem);\n },\n navigateToFirstItem(target) {\n const firstItem = this.findFirstItem(target);\n\n firstItem && this.setFocusToMenuitem(target, firstItem);\n },\n navigateToLastItem(target) {\n const lastItem = this.findLastItem(target);\n\n lastItem && this.setFocusToMenuitem(target, lastItem);\n },\n findNextItem(item) {\n const nextItem = item.parentElement.nextElementSibling;\n\n return nextItem ? (getAttribute(nextItem, 'data-p-disabled') === true ? this.findNextItem(nextItem.children[0]) : nextItem.children[0]) : null;\n },\n findPrevItem(item) {\n const prevItem = item.parentElement.previousElementSibling;\n\n return prevItem ? (getAttribute(prevItem, 'data-p-disabled') === true ? this.findPrevItem(prevItem.children[0]) : prevItem.children[0]) : null;\n },\n findFirstItem() {\n const firstSibling = findSingle(this.$refs.nav, '[data-pc-section=\"item\"][data-p-disabled=\"false\"]');\n\n return firstSibling ? firstSibling.children[0] : null;\n },\n findLastItem() {\n const siblings = find(this.$refs.nav, '[data-pc-section=\"item\"][data-p-disabled=\"false\"]');\n\n return siblings ? siblings[siblings.length - 1].children[0] : null;\n },\n findActiveItem() {\n const activeItem = findSingle(this.$refs.nav, '[data-pc-section=\"item\"][data-p-disabled=\"false\"][data-p-active=\"true\"]');\n\n return activeItem ? activeItem.children[0] : null;\n },\n setFocusToMenuitem(target, focusableItem) {\n target.tabIndex = '-1';\n focusableItem.tabIndex = '0';\n focusableItem.focus();\n },\n onTabKey() {\n const activeItem = findSingle(this.$refs.nav, '[data-pc-section=\"item\"][data-p-disabled=\"false\"][data-p-active=\"true\"]');\n const focusedItem = findSingle(this.$refs.nav, '[data-pc-section=\"itemlink\"][tabindex=\"0\"]');\n\n if (focusedItem !== activeItem.children[0]) {\n activeItem && (activeItem.children[0].tabIndex = '0');\n focusedItem.tabIndex = '-1';\n }\n },\n visible(item) {\n return typeof item.visible === 'function' ? item.visible() : item.visible !== false;\n },\n disabled(item) {\n return typeof item.disabled === 'function' ? item.disabled() : item.disabled === true;\n },\n label(item) {\n return typeof item.label === 'function' ? item.label() : item.label;\n },\n updateInkBar() {\n let tabs = this.$refs.nav.children;\n let inkHighlighted = false;\n\n for (let i = 0; i < tabs.length; i++) {\n let tab = tabs[i];\n\n if (getAttribute(tab, 'data-p-active')) {\n this.$refs.inkbar.style.width = getWidth(tab) + 'px';\n this.$refs.inkbar.style.left = getOffset(tab).left - getOffset(this.$refs.nav).left + 'px';\n inkHighlighted = true;\n }\n }\n\n if (!inkHighlighted) {\n this.$refs.inkbar.style.width = '0px';\n this.$refs.inkbar.style.left = '0px';\n }\n },\n getMenuItemProps(item, index) {\n return {\n action: mergeProps(\n {\n class: this.cx('itemLink'),\n tabindex: -1,\n onClick: ($event) => this.onItemClick($event, item, index),\n onKeyDown: ($event) => this.onKeydownItem($event, item, index)\n },\n this.getPTOptions('itemLink', item, index)\n ),\n icon: mergeProps(\n {\n class: [this.cx('itemIcon'), item.icon]\n },\n this.getPTOptions('itemIcon', item, index)\n ),\n label: mergeProps(\n {\n class: this.cx('itemLabel')\n },\n this.getPTOptions('itemLabel', item, index)\n )\n };\n }\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","model","type","Array","activeIndex","Number","ariaLabelledby","String","ariaLabel","style","TabMenuStyle","provide","$pcTabMenu","$parentInstance","BaseTabMenu","inheritAttrs","emits","data","d_activeIndex","watch","flush","handler","newValue","updateInkBar","mounted","_this","$nextTick","activeItem","findActiveItem","tabIndex","updated","methods","getPTOptions","key","item","index","ptm","context","onItemClick","event","disabled","preventDefault","command","originalEvent","$emit","onKeydownItem","code","navigateToNextItem","target","navigateToPrevItem","navigateToFirstItem","navigateToLastItem","onTabKey","nextItem","findNextItem","setFocusToMenuitem","prevItem","findPrevItem","firstItem","findFirstItem","lastItem","findLastItem","parentElement","nextElementSibling","getAttribute","children","previousElementSibling","firstSibling","findSingle","$refs","nav","siblings","find","length","focusableItem","focus","focusedItem","visible","label","tabs","inkHighlighted","i","tab","inkbar","width","getWidth","left","getOffset","getMenuItemProps","_this2","action","mergeProps","cx","tabindex","onClick","$event","onKeyDown","icon","directives","ripple","Ripple","_openBlock","_createElementBlock","_mergeProps","_ctx","ptmi","_createElementVNode","ref","role","_Fragment","_renderList","$options","toString","onKeydown","$data","$slots","_withDirectives","href","url","itemicon","_createBlock","_resolveDynamicComponent","_toDisplayString","active"],"mappings":"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"}