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
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/megamenu/BaseMegaMenu.vue","../../src/megamenu/MegaMenuSub.vue","../../src/megamenu/MegaMenuSub.vue?vue&type=template&id=e6a5700e&lang.js","../../src/megamenu/MegaMenu.vue","../../src/megamenu/MegaMenu.vue?vue&type=template&id=81a194b0&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport MegaMenuStyle from 'primevue/megamenu/style';\n\nexport default {\n name: 'BaseMegaMenu',\n extends: BaseComponent,\n props: {\n model: {\n type: Array,\n default: null\n },\n orientation: {\n type: String,\n default: 'horizontal'\n },\n breakpoint: {\n type: String,\n default: '960px'\n },\n disabled: {\n type: Boolean,\n default: false\n },\n tabindex: {\n type: Number,\n default: 0\n },\n scrollHeight: {\n type: String,\n default: '20rem'\n },\n ariaLabelledby: {\n type: String,\n default: null\n },\n ariaLabel: {\n type: String,\n default: null\n }\n },\n style: MegaMenuStyle,\n provide() {\n return {\n $pcMegaMenu: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <ul :class=\"level === 0 ? cx('rootList') : cx('submenu')\" :tabindex=\"tabindex\" v-bind=\"level === 0 ? ptm('rootList') : ptm('submenu')\">\n <li v-if=\"submenu\" :class=\"[cx('submenuLabel', { submenu }), getItemProp(submenu, 'class')]\" :style=\"getItemProp(submenu, 'style')\" role=\"presentation\" v-bind=\"ptm('submenuLabel')\">{{ getItemLabel(submenu) }}</li>\n <template v-for=\"(processedItem, index) of items\" :key=\"getItemKey(processedItem)\">\n <li\n v-if=\"isItemVisible(processedItem) && !getItemProp(processedItem, 'separator')\"\n :id=\"getItemId(processedItem)\"\n :style=\"getItemProp(processedItem, 'style')\"\n :class=\"[cx('item', { processedItem }), getItemProp(processedItem, 'class')]\"\n role=\"menuitem\"\n :aria-label=\"getItemLabel(processedItem)\"\n :aria-disabled=\"isItemDisabled(processedItem) || undefined\"\n :aria-expanded=\"isItemGroup(processedItem) ? isItemActive(processedItem) : undefined\"\n :aria-haspopup=\"isItemGroup(processedItem) && !getItemProp(processedItem, 'to') ? 'menu' : undefined\"\n :aria-level=\"level + 1\"\n :aria-setsize=\"getAriaSetSize()\"\n :aria-posinset=\"getAriaPosInset(index)\"\n v-bind=\"getPTOptions(processedItem, index, 'item')\"\n :data-p-active=\"isItemActive(processedItem)\"\n :data-p-focused=\"isItemFocused(processedItem)\"\n :data-p-disabled=\"isItemDisabled(processedItem)\"\n >\n <div :class=\"cx('itemContent')\" @click=\"onItemClick($event, processedItem)\" @mouseenter=\"onItemMouseEnter($event, processedItem)\" v-bind=\"getPTOptions(processedItem, index, 'itemContent')\">\n <template v-if=\"!templates.item\">\n <a v-ripple :href=\"getItemProp(processedItem, 'url')\" :class=\"cx('itemLink')\" :target=\"getItemProp(processedItem, 'target')\" tabindex=\"-1\" v-bind=\"getPTOptions(processedItem, index, 'itemLink')\">\n <component v-if=\"templates.itemicon\" :is=\"templates.itemicon\" :item=\"processedItem.item\" :class=\"cx('itemIcon')\" />\n <span v-else-if=\"getItemProp(processedItem, 'icon')\" :class=\"[cx('itemIcon'), getItemProp(processedItem, 'icon')]\" v-bind=\"getPTOptions(processedItem, index, 'itemIcon')\" />\n <span :class=\"cx('itemLabel')\" v-bind=\"getPTOptions(processedItem, index, 'itemLabel')\">\n {{ getItemLabel(processedItem) }}\n </span>\n <template v-if=\"isItemGroup(processedItem)\">\n <component v-if=\"templates.submenuicon\" :is=\"templates.submenuicon\" :active=\"isItemActive(processedItem)\" :class=\"cx('submenuIcon')\" v-bind=\"getPTOptions(processedItem, index, 'submenuIcon')\" />\n <component v-else :is=\"horizontal || mobileActive ? 'AngleDownIcon' : 'AngleRightIcon'\" :class=\"cx('submenuIcon')\" v-bind=\"getPTOptions(processedItem, index, 'submenuIcon')\" />\n </template>\n </a>\n </template>\n <component v-else :is=\"templates.item\" :item=\"processedItem.item\" :hasSubmenu=\"isItemGroup(processedItem)\" :label=\"getItemLabel(processedItem)\" :props=\"getMenuItemProps(processedItem, index)\"></component>\n </div>\n <div v-if=\"isItemVisible(processedItem) && isItemGroup(processedItem)\" :class=\"cx('overlay')\" v-bind=\"ptm('overlay')\">\n <div :class=\"cx('grid')\" v-bind=\"ptm('grid')\">\n <div v-for=\"col of processedItem.items\" :key=\"getItemKey(col)\" :class=\"cx('column', { processedItem })\" v-bind=\"ptm('column')\">\n <MegaMenuSub\n v-for=\"submenu of col\"\n :key=\"getSubListKey(submenu)\"\n :id=\"getSubListId(submenu)\"\n :style=\"sx('submenu', true, { processedItem })\"\n role=\"menu\"\n :menuId=\"menuId\"\n :focusedItemId=\"focusedItemId\"\n :submenu=\"submenu\"\n :items=\"submenu.items\"\n :templates=\"templates\"\n :level=\"level + 1\"\n :mobileActive=\"mobileActive\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n @item-click=\"$emit('item-click', $event)\"\n @item-mouseenter=\"$emit('item-mouseenter', $event)\"\n />\n </div>\n </div>\n </div>\n </li>\n <li\n v-if=\"isItemVisible(processedItem) && getItemProp(processedItem, 'separator')\"\n :id=\"getItemId(processedItem)\"\n :class=\"[cx('separator'), getItemProp(processedItem, 'class')]\"\n :style=\"getItemProp(processedItem, 'style')\"\n role=\"separator\"\n v-bind=\"ptm('separator')\"\n ></li>\n </template>\n </ul>\n</template>\n\n<script>\nimport { isNotEmpty, resolve } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport AngleDownIcon from '@primevue/icons/angledown';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'MegaMenuSub',\n hostName: 'MegaMenu',\n extends: BaseComponent,\n emits: ['item-click', 'item-mouseenter'],\n props: {\n menuId: {\n type: String,\n default: null\n },\n focusedItemId: {\n type: String,\n default: null\n },\n horizontal: {\n type: Boolean,\n default: false\n },\n submenu: {\n type: Object,\n default: null\n },\n mobileActive: {\n type: Boolean,\n default: false\n },\n items: {\n type: Array,\n default: null\n },\n level: {\n type: Number,\n default: 0\n },\n templates: {\n type: Object,\n default: null\n },\n activeItem: {\n type: Object,\n default: null\n },\n tabindex: {\n type: Number,\n default: 0\n }\n },\n methods: {\n getSubListId(processedItem) {\n return `${this.getItemId(processedItem)}_list`;\n },\n getSubListKey(processedItem) {\n return this.getSubListId(processedItem);\n },\n getItemId(processedItem) {\n return `${this.menuId}_${processedItem.key}`;\n },\n getItemKey(processedItem) {\n return this.getItemId(processedItem);\n },\n getItemProp(processedItem, name, params) {\n return processedItem && processedItem.item ? resolve(processedItem.item[name], params) : undefined;\n },\n getItemLabel(processedItem) {\n return this.getItemProp(processedItem, 'label');\n },\n getPTOptions(processedItem, index, key) {\n return this.ptm(key, {\n context: {\n item: processedItem.item,\n index,\n active: this.isItemActive(processedItem),\n focused: this.isItemFocused(processedItem),\n disabled: this.isItemDisabled(processedItem)\n }\n });\n },\n isItemActive(processedItem) {\n return isNotEmpty(this.activeItem) ? this.activeItem.key === processedItem.key : false;\n },\n isItemVisible(processedItem) {\n return this.getItemProp(processedItem, 'visible') !== false;\n },\n isItemDisabled(processedItem) {\n return this.getItemProp(processedItem, 'disabled');\n },\n isItemFocused(processedItem) {\n return this.focusedItemId === this.getItemId(processedItem);\n },\n isItemGroup(processedItem) {\n return isNotEmpty(processedItem.items);\n },\n onItemClick(event, processedItem) {\n this.getItemProp(processedItem, 'command', { originalEvent: event, item: processedItem.item });\n this.$emit('item-click', { originalEvent: event, processedItem, isFocus: true });\n },\n onItemMouseEnter(event, processedItem) {\n this.$emit('item-mouseenter', { originalEvent: event, processedItem });\n },\n getAriaSetSize() {\n return this.items.filter((processedItem) => this.isItemVisible(processedItem) && !this.getItemProp(processedItem, 'separator')).length;\n },\n getAriaPosInset(index) {\n return index - this.items.slice(0, index).filter((processedItem) => this.isItemVisible(processedItem) && this.getItemProp(processedItem, 'separator')).length + 1;\n },\n getMenuItemProps(processedItem, index) {\n return {\n action: mergeProps(\n {\n class: this.cx('itemLink'),\n tabindex: -1,\n 'aria-hidden': true\n },\n this.getPTOptions(processedItem, index, 'itemLink')\n ),\n icon: mergeProps(\n {\n class: [this.cx('itemIcon'), this.getItemProp(processedItem, 'icon')]\n },\n this.getPTOptions(processedItem, index, 'itemIcon')\n ),\n label: mergeProps(\n {\n class: this.cx('label')\n },\n this.getPTOptions(processedItem, index, 'label')\n ),\n submenuicon: mergeProps(\n {\n class: this.cx('submenuIcon')\n },\n this.getPTOptions(processedItem, index, 'submenuIcon')\n )\n };\n }\n },\n components: {\n AngleRightIcon: AngleRightIcon,\n AngleDownIcon: AngleDownIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <ul :class=\"level === 0 ? cx('rootList') : cx('submenu')\" :tabindex=\"tabindex\" v-bind=\"level === 0 ? ptm('rootList') : ptm('submenu')\">\n <li v-if=\"submenu\" :class=\"[cx('submenuLabel', { submenu }), getItemProp(submenu, 'class')]\" :style=\"getItemProp(submenu, 'style')\" role=\"presentation\" v-bind=\"ptm('submenuLabel')\">{{ getItemLabel(submenu) }}</li>\n <template v-for=\"(processedItem, index) of items\" :key=\"getItemKey(processedItem)\">\n <li\n v-if=\"isItemVisible(processedItem) && !getItemProp(processedItem, 'separator')\"\n :id=\"getItemId(processedItem)\"\n :style=\"getItemProp(processedItem, 'style')\"\n :class=\"[cx('item', { processedItem }), getItemProp(processedItem, 'class')]\"\n role=\"menuitem\"\n :aria-label=\"getItemLabel(processedItem)\"\n :aria-disabled=\"isItemDisabled(processedItem) || undefined\"\n :aria-expanded=\"isItemGroup(processedItem) ? isItemActive(processedItem) : undefined\"\n :aria-haspopup=\"isItemGroup(processedItem) && !getItemProp(processedItem, 'to') ? 'menu' : undefined\"\n :aria-level=\"level + 1\"\n :aria-setsize=\"getAriaSetSize()\"\n :aria-posinset=\"getAriaPosInset(index)\"\n v-bind=\"getPTOptions(processedItem, index, 'item')\"\n :data-p-active=\"isItemActive(processedItem)\"\n :data-p-focused=\"isItemFocused(processedItem)\"\n :data-p-disabled=\"isItemDisabled(processedItem)\"\n >\n <div :class=\"cx('itemContent')\" @click=\"onItemClick($event, processedItem)\" @mouseenter=\"onItemMouseEnter($event, processedItem)\" v-bind=\"getPTOptions(processedItem, index, 'itemContent')\">\n <template v-if=\"!templates.item\">\n <a v-ripple :href=\"getItemProp(processedItem, 'url')\" :class=\"cx('itemLink')\" :target=\"getItemProp(processedItem, 'target')\" tabindex=\"-1\" v-bind=\"getPTOptions(processedItem, index, 'itemLink')\">\n <component v-if=\"templates.itemicon\" :is=\"templates.itemicon\" :item=\"processedItem.item\" :class=\"cx('itemIcon')\" />\n <span v-else-if=\"getItemProp(processedItem, 'icon')\" :class=\"[cx('itemIcon'), getItemProp(processedItem, 'icon')]\" v-bind=\"getPTOptions(processedItem, index, 'itemIcon')\" />\n <span :class=\"cx('itemLabel')\" v-bind=\"getPTOptions(processedItem, index, 'itemLabel')\">\n {{ getItemLabel(processedItem) }}\n </span>\n <template v-if=\"isItemGroup(processedItem)\">\n <component v-if=\"templates.submenuicon\" :is=\"templates.submenuicon\" :active=\"isItemActive(processedItem)\" :class=\"cx('submenuIcon')\" v-bind=\"getPTOptions(processedItem, index, 'submenuIcon')\" />\n <component v-else :is=\"horizontal || mobileActive ? 'AngleDownIcon' : 'AngleRightIcon'\" :class=\"cx('submenuIcon')\" v-bind=\"getPTOptions(processedItem, index, 'submenuIcon')\" />\n </template>\n </a>\n </template>\n <component v-else :is=\"templates.item\" :item=\"processedItem.item\" :hasSubmenu=\"isItemGroup(processedItem)\" :label=\"getItemLabel(processedItem)\" :props=\"getMenuItemProps(processedItem, index)\"></component>\n </div>\n <div v-if=\"isItemVisible(processedItem) && isItemGroup(processedItem)\" :class=\"cx('overlay')\" v-bind=\"ptm('overlay')\">\n <div :class=\"cx('grid')\" v-bind=\"ptm('grid')\">\n <div v-for=\"col of processedItem.items\" :key=\"getItemKey(col)\" :class=\"cx('column', { processedItem })\" v-bind=\"ptm('column')\">\n <MegaMenuSub\n v-for=\"submenu of col\"\n :key=\"getSubListKey(submenu)\"\n :id=\"getSubListId(submenu)\"\n :style=\"sx('submenu', true, { processedItem })\"\n role=\"menu\"\n :menuId=\"menuId\"\n :focusedItemId=\"focusedItemId\"\n :submenu=\"submenu\"\n :items=\"submenu.items\"\n :templates=\"templates\"\n :level=\"level + 1\"\n :mobileActive=\"mobileActive\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n @item-click=\"$emit('item-click', $event)\"\n @item-mouseenter=\"$emit('item-mouseenter', $event)\"\n />\n </div>\n </div>\n </div>\n </li>\n <li\n v-if=\"isItemVisible(processedItem) && getItemProp(processedItem, 'separator')\"\n :id=\"getItemId(processedItem)\"\n :class=\"[cx('separator'), getItemProp(processedItem, 'class')]\"\n :style=\"getItemProp(processedItem, 'style')\"\n role=\"separator\"\n v-bind=\"ptm('separator')\"\n ></li>\n </template>\n </ul>\n</template>\n\n<script>\nimport { isNotEmpty, resolve } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport AngleDownIcon from '@primevue/icons/angledown';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'MegaMenuSub',\n hostName: 'MegaMenu',\n extends: BaseComponent,\n emits: ['item-click', 'item-mouseenter'],\n props: {\n menuId: {\n type: String,\n default: null\n },\n focusedItemId: {\n type: String,\n default: null\n },\n horizontal: {\n type: Boolean,\n default: false\n },\n submenu: {\n type: Object,\n default: null\n },\n mobileActive: {\n type: Boolean,\n default: false\n },\n items: {\n type: Array,\n default: null\n },\n level: {\n type: Number,\n default: 0\n },\n templates: {\n type: Object,\n default: null\n },\n activeItem: {\n type: Object,\n default: null\n },\n tabindex: {\n type: Number,\n default: 0\n }\n },\n methods: {\n getSubListId(processedItem) {\n return `${this.getItemId(processedItem)}_list`;\n },\n getSubListKey(processedItem) {\n return this.getSubListId(processedItem);\n },\n getItemId(processedItem) {\n return `${this.menuId}_${processedItem.key}`;\n },\n getItemKey(processedItem) {\n return this.getItemId(processedItem);\n },\n getItemProp(processedItem, name, params) {\n return processedItem && processedItem.item ? resolve(processedItem.item[name], params) : undefined;\n },\n getItemLabel(processedItem) {\n return this.getItemProp(processedItem, 'label');\n },\n getPTOptions(processedItem, index, key) {\n return this.ptm(key, {\n context: {\n item: processedItem.item,\n index,\n active: this.isItemActive(processedItem),\n focused: this.isItemFocused(processedItem),\n disabled: this.isItemDisabled(processedItem)\n }\n });\n },\n isItemActive(processedItem) {\n return isNotEmpty(this.activeItem) ? this.activeItem.key === processedItem.key : false;\n },\n isItemVisible(processedItem) {\n return this.getItemProp(processedItem, 'visible') !== false;\n },\n isItemDisabled(processedItem) {\n return this.getItemProp(processedItem, 'disabled');\n },\n isItemFocused(processedItem) {\n return this.focusedItemId === this.getItemId(processedItem);\n },\n isItemGroup(processedItem) {\n return isNotEmpty(processedItem.items);\n },\n onItemClick(event, processedItem) {\n this.getItemProp(processedItem, 'command', { originalEvent: event, item: processedItem.item });\n this.$emit('item-click', { originalEvent: event, processedItem, isFocus: true });\n },\n onItemMouseEnter(event, processedItem) {\n this.$emit('item-mouseenter', { originalEvent: event, processedItem });\n },\n getAriaSetSize() {\n return this.items.filter((processedItem) => this.isItemVisible(processedItem) && !this.getItemProp(processedItem, 'separator')).length;\n },\n getAriaPosInset(index) {\n return index - this.items.slice(0, index).filter((processedItem) => this.isItemVisible(processedItem) && this.getItemProp(processedItem, 'separator')).length + 1;\n },\n getMenuItemProps(processedItem, index) {\n return {\n action: mergeProps(\n {\n class: this.cx('itemLink'),\n tabindex: -1,\n 'aria-hidden': true\n },\n this.getPTOptions(processedItem, index, 'itemLink')\n ),\n icon: mergeProps(\n {\n class: [this.cx('itemIcon'), this.getItemProp(processedItem, 'icon')]\n },\n this.getPTOptions(processedItem, index, 'itemIcon')\n ),\n label: mergeProps(\n {\n class: this.cx('label')\n },\n this.getPTOptions(processedItem, index, 'label')\n ),\n submenuicon: mergeProps(\n {\n class: this.cx('submenuIcon')\n },\n this.getPTOptions(processedItem, index, 'submenuIcon')\n )\n };\n }\n },\n components: {\n AngleRightIcon: AngleRightIcon,\n AngleDownIcon: AngleDownIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <div :ref=\"containerRef\" :id=\"id\" :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <div v-if=\"$slots.start\" :class=\"cx('start')\" v-bind=\"ptm('start')\">\n <slot name=\"start\"></slot>\n </div>\n <!--TODO: menubutton deprecated since v4.0. Use button-->\n <slot :id=\"id\" :name=\"$slots.button ? 'button' : 'menubutton'\" :class=\"cx('button')\" :toggleCallback=\"(event) => menuButtonClick(event)\">\n <a\n v-if=\"model && model.length > 0\"\n ref=\"menubutton\"\n role=\"button\"\n tabindex=\"0\"\n :class=\"cx('button')\"\n :aria-haspopup=\"model.length && model.length > 0 ? true : false\"\n :aria-expanded=\"mobileActive\"\n :aria-controls=\"id\"\n :aria-label=\"$primevue.config.locale.aria?.navigation\"\n @click=\"menuButtonClick($event)\"\n @keydown=\"menuButtonKeydown($event)\"\n v-bind=\"ptm('button')\"\n >\n <!--TODO: menubuttonicon deprecated since v4.0. Use buttonicon-->\n <slot :name=\"$slots.buttonicon ? 'buttonicon' : 'menubuttonicon'\">\n <BarsIcon v-bind=\"ptm('buttonIcon')\" />\n </slot>\n </a>\n </slot>\n <MegaMenuSub\n :ref=\"menubarRef\"\n :id=\"id + '_list'\"\n :tabindex=\"!disabled ? tabindex : -1\"\n role=\"menubar\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n :aria-disabled=\"disabled || undefined\"\n :aria-orientation=\"orientation\"\n :aria-activedescendant=\"focused ? focusedItemId : undefined\"\n :menuId=\"id\"\n :focusedItemId=\"focused ? focusedItemId : undefined\"\n :items=\"processedItems\"\n :horizontal=\"horizontal\"\n :templates=\"$slots\"\n :activeItem=\"activeItem\"\n :mobileActive=\"mobileActive\"\n :level=\"0\"\n :style=\"sx('rootList')\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n @item-click=\"onItemClick\"\n @item-mouseenter=\"onItemMouseEnter\"\n />\n <div v-if=\"$slots.end\" :class=\"cx('end')\" v-bind=\"ptm('end')\">\n <slot name=\"end\"></slot>\n </div>\n </div>\n</template>\n\n<script>\nimport { findSingle, focus, isTouchDevice } from '@primeuix/utils/dom';\nimport { findLastIndex, isEmpty, isNotEmpty, isPrintableCharacter, resolve } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { UniqueComponentId } from '@primevue/core/utils';\nimport BarsIcon from '@primevue/icons/bars';\nimport BaseMegaMenu from './BaseMegaMenu.vue';\nimport MegaMenuSub from './MegaMenuSub.vue';\n\nexport default {\n name: 'MegaMenu',\n extends: BaseMegaMenu,\n inheritAttrs: false,\n emits: ['focus', 'blur'],\n outsideClickListener: null,\n resizeListener: null,\n matchMediaListener: null,\n container: null,\n menubar: null,\n searchTimeout: null,\n searchValue: null,\n data() {\n return {\n id: this.$attrs.id,\n mobileActive: false,\n focused: false,\n focusedItemInfo: { index: -1, key: '', parentKey: '' },\n activeItem: null,\n dirty: false,\n query: null,\n queryMatches: false\n };\n },\n watch: {\n '$attrs.id': function (newValue) {\n this.id = newValue || UniqueComponentId();\n },\n activeItem(newItem) {\n if (isNotEmpty(newItem)) {\n this.bindOutsideClickListener();\n this.bindResizeListener();\n } else {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n }\n }\n },\n mounted() {\n this.id = this.id || UniqueComponentId();\n this.bindMatchMediaListener();\n },\n beforeUnmount() {\n this.mobileActive = false;\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindMatchMediaListener();\n },\n methods: {\n getItemProp(item, name) {\n return item ? resolve(item[name]) : undefined;\n },\n getItemLabel(item) {\n return this.getItemProp(item, 'label');\n },\n isItemDisabled(item) {\n return this.getItemProp(item, 'disabled');\n },\n isItemVisible(item) {\n return this.getItemProp(item, 'visible') !== false;\n },\n isItemGroup(item) {\n return isNotEmpty(this.getItemProp(item, 'items'));\n },\n isItemSeparator(item) {\n return this.getItemProp(item, 'separator');\n },\n getProccessedItemLabel(processedItem) {\n return processedItem ? this.getItemLabel(processedItem.item) : undefined;\n },\n isProccessedItemGroup(processedItem) {\n return processedItem && isNotEmpty(processedItem.items);\n },\n toggle(event) {\n if (this.mobileActive) {\n this.mobileActive = false;\n ZIndex.clear(this.menubar);\n this.hide();\n } else {\n this.mobileActive = true;\n ZIndex.set('menu', this.menubar, this.$primevue.config.zIndex.menu);\n setTimeout(() => {\n this.show();\n }, 1);\n }\n\n this.bindOutsideClickListener();\n event.preventDefault();\n },\n show() {\n this.focusedItemInfo = { index: this.findFirstFocusedItemIndex(), level: 0, parentKey: '' };\n\n focus(this.menubar);\n },\n hide(event, isFocus) {\n if (this.mobileActive) {\n this.mobileActive = false;\n setTimeout(() => {\n focus(this.$refs.menubutton, { preventScroll: true });\n }, 1);\n }\n\n this.activeItem = null;\n this.focusedItemInfo = { index: -1, key: '', parentKey: '' };\n\n isFocus && focus(this.menubar);\n this.dirty = false;\n },\n onFocus(event) {\n this.focused = true;\n\n if (this.focusedItemInfo.index === -1) {\n const index = this.findFirstFocusedItemIndex();\n const processedItem = this.findVisibleItem(index);\n\n this.focusedItemInfo = { index, key: processedItem.key, parentKey: processedItem.parentKey };\n }\n\n this.$emit('focus', event);\n },\n onBlur(event) {\n this.focused = false;\n this.focusedItemInfo = { index: -1, key: '', parentKey: '' };\n this.searchValue = '';\n this.dirty = false;\n this.$emit('blur', event);\n },\n onKeyDown(event) {\n if (this.disabled) {\n event.preventDefault();\n\n return;\n }\n\n const metaKey = event.metaKey || event.ctrlKey;\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n\n case 'ArrowRight':\n this.onArrowRightKey(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 'Space':\n this.onSpaceKey(event);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n case 'Tab':\n this.onTabKey(event);\n break;\n\n case 'PageDown':\n case 'PageUp':\n case 'Backspace':\n case 'ShiftLeft':\n case 'ShiftRight':\n //NOOP\n break;\n\n default:\n if (!metaKey && isPrintableCharacter(event.key)) {\n this.searchItems(event, event.key);\n }\n\n break;\n }\n },\n onItemChange(event) {\n const { processedItem, isFocus } = event;\n\n if (isEmpty(processedItem)) return;\n\n const { index, key, parentKey, items } = processedItem;\n const grouped = isNotEmpty(items);\n\n grouped && (this.activeItem = processedItem);\n this.focusedItemInfo = { index, key, parentKey };\n\n grouped && (this.dirty = true);\n isFocus && focus(this.menubar);\n },\n onItemClick(event) {\n const { originalEvent, processedItem } = event;\n const grouped = this.isProccessedItemGroup(processedItem);\n const root = isEmpty(processedItem.parent);\n const selected = this.isSelected(processedItem);\n\n if (selected) {\n const { index, key, parentKey } = processedItem;\n\n this.activeItem = null;\n this.focusedItemInfo = { index, key, parentKey };\n\n this.dirty = !root;\n\n if (!this.mobileActive) {\n focus(this.menubar, { preventScroll: true });\n }\n } else {\n if (grouped) {\n this.onItemChange(event);\n } else {\n this.hide(originalEvent);\n }\n }\n },\n onItemMouseEnter(event) {\n if (!this.mobileActive && this.dirty) {\n this.onItemChange(event);\n }\n },\n menuButtonClick(event) {\n this.toggle(event);\n },\n menuButtonKeydown(event) {\n (event.code === 'Enter' || event.code === 'NumpadEnter' || event.code === 'Space') && this.menuButtonClick(event);\n },\n onArrowDownKey(event) {\n if (this.horizontal) {\n if (isNotEmpty(this.activeItem) && this.activeItem.key === this.focusedItemInfo.key) {\n this.focusedItemInfo = { index: -1, key: '', parentKey: this.activeItem.key };\n } else {\n const processedItem = this.findVisibleItem(this.focusedItemInfo.index);\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (grouped) {\n this.onItemChange({ originalEvent: event, processedItem });\n this.focusedItemInfo = { index: -1, key: processedItem.key, parentKey: processedItem.parentKey };\n this.searchValue = '';\n }\n }\n }\n\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex();\n\n this.changeFocusedItemInfo(event, itemIndex);\n event.preventDefault();\n },\n onArrowUpKey(event) {\n if (event.altKey && this.horizontal) {\n if (this.focusedItemInfo.index !== -1) {\n const processedItem = this.findVisibleItem(this.focusedItemInfo.index);\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (!grouped && isNotEmpty(this.activeItem)) {\n if (this.focusedItemInfo.index === 0) {\n this.focusedItemInfo = { index: this.activeItem.index, key: this.activeItem.key, parentKey: this.activeItem.parentKey };\n this.activeItem = null;\n } else {\n this.changeFocusedItemInfo(event, this.findFirstItemIndex());\n }\n }\n }\n\n event.preventDefault();\n } else {\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo.index) : this.findLastFocusedItemIndex();\n\n this.changeFocusedItemInfo(event, itemIndex);\n event.preventDefault();\n }\n },\n onArrowLeftKey(event) {\n const processedItem = this.findVisibleItem(this.focusedItemInfo.index);\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (grouped) {\n if (this.horizontal) {\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo.index) : this.findLastFocusedItemIndex();\n\n this.changeFocusedItemInfo(event, itemIndex);\n }\n } else {\n if (this.vertical && isNotEmpty(this.activeItem)) {\n if (processedItem.columnIndex === 0) {\n this.focusedItemInfo = { index: this.activeItem.index, key: this.activeItem.key, parentKey: this.activeItem.parentKey };\n this.activeItem = null;\n }\n }\n\n const columnIndex = processedItem.columnIndex - 1;\n const itemIndex = this.visibleItems.findIndex((item) => item.columnIndex === columnIndex);\n\n itemIndex !== -1 && this.changeFocusedItemInfo(event, itemIndex);\n }\n\n event.preventDefault();\n },\n onArrowRightKey(event) {\n const processedItem = this.findVisibleItem(this.focusedItemInfo.index);\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (grouped) {\n if (this.vertical) {\n if (isNotEmpty(this.activeItem) && this.activeItem.key === processedItem.key) {\n this.focusedItemInfo = { index: -1, key: '', parentKey: this.activeItem.key };\n } else {\n const processedItem = this.findVisibleItem(this.focusedItemInfo.index);\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (grouped) {\n this.onItemChange({ originalEvent: event, processedItem });\n this.focusedItemInfo = { index: -1, key: processedItem.key, parentKey: processedItem.parentKey };\n this.searchValue = '';\n }\n }\n }\n\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex();\n\n this.changeFocusedItemInfo(event, itemIndex);\n } else {\n const columnIndex = processedItem.columnIndex + 1;\n const itemIndex = this.visibleItems.findIndex((item) => item.columnIndex === columnIndex);\n\n itemIndex !== -1 && this.changeFocusedItemInfo(event, itemIndex);\n }\n\n event.preventDefault();\n },\n onHomeKey(event) {\n this.changeFocusedItemInfo(event, this.findFirstItemIndex());\n event.preventDefault();\n },\n onEndKey(event) {\n this.changeFocusedItemInfo(event, this.findLastItemIndex());\n event.preventDefault();\n },\n onEnterKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n const element = findSingle(this.menubar, `li[id=\"${`${this.focusedItemId}`}\"]`);\n const anchorElement = element && findSingle(element, 'a[data-pc-section=\"itemlink\"]');\n\n anchorElement ? anchorElement.click() : element && element.click();\n\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const grouped = this.isProccessedItemGroup(processedItem);\n\n !grouped && this.changeFocusedItemInfo(event, this.findFirstFocusedItemIndex());\n }\n\n event.preventDefault();\n },\n onSpaceKey(event) {\n this.onEnterKey(event);\n },\n onEscapeKey(event) {\n if (isNotEmpty(this.activeItem)) {\n this.focusedItemInfo = { index: this.activeItem.index, key: this.activeItem.key };\n this.activeItem = null;\n }\n\n event.preventDefault();\n },\n onTabKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n const processedItem = this.findVisibleItem(this.focusedItemInfo.index);\n const grouped = this.isProccessedItemGroup(processedItem);\n\n !grouped && this.onItemChange({ originalEvent: event, processedItem });\n }\n\n this.hide();\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n const isOutsideContainer = this.container && !this.container.contains(event.target);\n const isOutsideTarget = !(this.target && (this.target === event.target || this.target.contains(event.target)));\n\n if (isOutsideContainer && isOutsideTarget) {\n this.hide();\n }\n };\n\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = (event) => {\n if (!isTouchDevice()) {\n this.hide(event, true);\n }\n\n this.mobileActive = false;\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n bindMatchMediaListener() {\n if (!this.matchMediaListener) {\n const query = matchMedia(`(max-width: ${this.breakpoint})`);\n\n this.query = query;\n this.queryMatches = query.matches;\n\n this.matchMediaListener = () => {\n this.queryMatches = query.matches;\n this.mobileActive = false;\n };\n\n this.query.addEventListener('change', this.matchMediaListener);\n }\n },\n unbindMatchMediaListener() {\n if (this.matchMediaListener) {\n this.query.removeEventListener('change', this.matchMediaListener);\n this.matchMediaListener = null;\n }\n },\n isItemMatched(processedItem) {\n return this.isValidItem(processedItem) && this.getProccessedItemLabel(processedItem)?.toLocaleLowerCase().startsWith(this.searchValue.toLocaleLowerCase());\n },\n isValidItem(processedItem) {\n return !!processedItem && !this.isItemDisabled(processedItem.item) && !this.isItemSeparator(processedItem.item) && this.isItemVisible(processedItem.item);\n },\n isValidSelectedItem(processedItem) {\n return this.isValidItem(processedItem) && this.isSelected(processedItem);\n },\n isSelected(processedItem) {\n return isNotEmpty(this.activeItem) ? this.activeItem.key === processedItem.key : false;\n },\n findFirstItemIndex() {\n return this.visibleItems.findIndex((processedItem) => this.isValidItem(processedItem));\n },\n findLastItemIndex() {\n return findLastIndex(this.visibleItems, (processedItem) => this.isValidItem(processedItem));\n },\n findNextItemIndex(index) {\n const matchedItemIndex = index < this.visibleItems.length - 1 ? this.visibleItems.slice(index + 1).findIndex((processedItem) => this.isValidItem(processedItem)) : -1;\n\n return matchedItemIndex > -1 ? matchedItemIndex + index + 1 : index;\n },\n findPrevItemIndex(index) {\n const matchedItemIndex = index > 0 ? findLastIndex(this.visibleItems.slice(0, index), (processedItem) => this.isValidItem(processedItem)) : -1;\n\n return matchedItemIndex > -1 ? matchedItemIndex : index;\n },\n findSelectedItemIndex() {\n return this.visibleItems.findIndex((processedItem) => this.isValidSelectedItem(processedItem));\n },\n findFirstFocusedItemIndex() {\n const selectedIndex = this.findSelectedItemIndex();\n\n return selectedIndex < 0 ? this.findFirstItemIndex() : selectedIndex;\n },\n findLastFocusedItemIndex() {\n const selectedIndex = this.findSelectedItemIndex();\n\n return selectedIndex < 0 ? this.findLastItemIndex() : selectedIndex;\n },\n findVisibleItem(index) {\n return isNotEmpty(this.visibleItems) ? this.visibleItems[index] : null;\n },\n searchItems(event, char) {\n this.searchValue = (this.searchValue || '') + char;\n\n let itemIndex = -1;\n let matched = false;\n\n if (this.focusedItemInfo.index !== -1) {\n itemIndex = this.visibleItems.slice(this.focusedItemInfo.index).findIndex((processedItem) => this.isItemMatched(processedItem));\n itemIndex = itemIndex === -1 ? this.visibleItems.slice(0, this.focusedItemInfo.index).findIndex((processedItem) => this.isItemMatched(processedItem)) : itemIndex + this.focusedItemInfo.index;\n } else {\n itemIndex = this.visibleItems.findIndex((processedItem) => this.isItemMatched(processedItem));\n }\n\n if (itemIndex !== -1) {\n matched = true;\n }\n\n if (itemIndex === -1 && this.focusedItemInfo.index === -1) {\n itemIndex = this.findFirstFocusedItemIndex();\n }\n\n if (itemIndex !== -1) {\n this.changeFocusedItemInfo(event, itemIndex);\n }\n\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n this.searchTimeout = setTimeout(() => {\n this.searchValue = '';\n this.searchTimeout = null;\n }, 500);\n\n return matched;\n },\n changeFocusedItemInfo(event, index) {\n const processedItem = this.findVisibleItem(index);\n\n this.focusedItemInfo.index = index;\n this.focusedItemInfo.key = isNotEmpty(processedItem) ? processedItem.key : '';\n this.scrollInView();\n },\n scrollInView(index = -1) {\n const id = index !== -1 ? `${this.id}_${index}` : this.focusedItemId;\n let element;\n\n if (id === null && this.queryMatches) {\n element = this.$refs.menubutton;\n } else {\n element = findSingle(this.menubar, `li[id=\"${id}\"]`);\n }\n\n if (element) {\n element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'nearest', behavior: 'smooth' });\n }\n },\n createProcessedItems(items, level = 0, parent = {}, parentKey = '', columnIndex) {\n const processedItems = [];\n\n items &&\n items.forEach((item, index) => {\n const key = (parentKey !== '' ? parentKey + '_' : '') + (columnIndex !== undefined ? columnIndex + '_' : '') + index;\n const newItem = {\n item,\n index,\n level,\n key,\n parent,\n parentKey,\n columnIndex: columnIndex !== undefined ? columnIndex : parent.columnIndex !== undefined ? parent.columnIndex : index\n };\n\n newItem['items'] =\n level === 0 && item.items && item.items.length > 0 ? item.items.map((_items, _index) => this.createProcessedItems(_items, level + 1, newItem, key, _index)) : this.createProcessedItems(item.items, level + 1, newItem, key);\n processedItems.push(newItem);\n });\n\n return processedItems;\n },\n containerRef(el) {\n this.container = el;\n },\n menubarRef(el) {\n this.menubar = el ? el.$el : undefined;\n }\n },\n computed: {\n processedItems() {\n return this.createProcessedItems(this.model || []);\n },\n visibleItems() {\n const processedItem = isNotEmpty(this.activeItem) ? this.activeItem : null;\n\n return processedItem && processedItem.key === this.focusedItemInfo.parentKey\n ? processedItem.items.reduce((items, col) => {\n col.forEach((submenu) => {\n submenu.items.forEach((a) => {\n items.push(a);\n });\n });\n\n return items;\n }, [])\n : this.processedItems;\n },\n horizontal() {\n return this.orientation === 'horizontal';\n },\n vertical() {\n return this.orientation === 'vertical';\n },\n focusedItemId() {\n return isNotEmpty(this.focusedItemInfo.key) ? `${this.id}_${this.focusedItemInfo.key}` : null;\n }\n },\n components: {\n MegaMenuSub: MegaMenuSub,\n BarsIcon: BarsIcon\n }\n};\n</script>\n","<template>\n <div :ref=\"containerRef\" :id=\"id\" :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <div v-if=\"$slots.start\" :class=\"cx('start')\" v-bind=\"ptm('start')\">\n <slot name=\"start\"></slot>\n </div>\n <!--TODO: menubutton deprecated since v4.0. Use button-->\n <slot :id=\"id\" :name=\"$slots.button ? 'button' : 'menubutton'\" :class=\"cx('button')\" :toggleCallback=\"(event) => menuButtonClick(event)\">\n <a\n v-if=\"model && model.length > 0\"\n ref=\"menubutton\"\n role=\"button\"\n tabindex=\"0\"\n :class=\"cx('button')\"\n :aria-haspopup=\"model.length && model.length > 0 ? true : false\"\n :aria-expanded=\"mobileActive\"\n :aria-controls=\"id\"\n :aria-label=\"$primevue.config.locale.aria?.navigation\"\n @click=\"menuButtonClick($event)\"\n @keydown=\"menuButtonKeydown($event)\"\n v-bind=\"ptm('button')\"\n >\n <!--TODO: menubuttonicon deprecated since v4.0. Use buttonicon-->\n <slot :name=\"$slots.buttonicon ? 'buttonicon' : 'menubuttonicon'\">\n <BarsIcon v-bind=\"ptm('buttonIcon')\" />\n </slot>\n </a>\n </slot>\n <MegaMenuSub\n :ref=\"menubarRef\"\n :id=\"id + '_list'\"\n :tabindex=\"!disabled ? tabindex : -1\"\n role=\"menubar\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n :aria-disabled=\"disabled || undefined\"\n :aria-orientation=\"orientation\"\n :aria-activedescendant=\"focused ? focusedItemId : undefined\"\n :menuId=\"id\"\n :focusedItemId=\"focused ? focusedItemId : undefined\"\n :items=\"processedItems\"\n :horizontal=\"horizontal\"\n :templates=\"$slots\"\n :activeItem=\"activeItem\"\n :mobileActive=\"mobileActive\"\n :level=\"0\"\n :style=\"sx('rootList')\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n @item-click=\"onItemClick\"\n @item-mouseenter=\"onItemMouseEnter\"\n />\n <div v-if=\"$slots.end\" :class=\"cx('end')\" v-bind=\"ptm('end')\">\n <slot name=\"end\"></slot>\n </div>\n </div>\n</template>\n\n<script>\nimport { findSingle, focus, isTouchDevice } from '@primeuix/utils/dom';\nimport { findLastIndex, isEmpty, isNotEmpty, isPrintableCharacter, resolve } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { UniqueComponentId } from '@primevue/core/utils';\nimport BarsIcon from '@primevue/icons/bars';\nimport BaseMegaMenu from './BaseMegaMenu.vue';\nimport MegaMenuSub from './MegaMenuSub.vue';\n\nexport default {\n name: 'MegaMenu',\n extends: BaseMegaMenu,\n inheritAttrs: false,\n emits: ['focus', 'blur'],\n outsideClickListener: null,\n resizeListener: null,\n matchMediaListener: null,\n container: null,\n menubar: null,\n searchTimeout: null,\n searchValue: null,\n data() {\n return {\n id: this.$attrs.id,\n mobileActive: false,\n focused: false,\n focusedItemInfo: { index: -1, key: '', parentKey: '' },\n activeItem: null,\n dirty: false,\n query: null,\n queryMatches: false\n };\n },\n watch: {\n '$attrs.id': function (newValue) {\n this.id = newValue || UniqueComponentId();\n },\n activeItem(newItem) {\n if (isNotEmpty(newItem)) {\n this.bindOutsideClickListener();\n this.bindResizeListener();\n } else {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n }\n }\n },\n mounted() {\n this.id = this.id || UniqueComponentId();\n this.bindMatchMediaListener();\n },\n beforeUnmount() {\n this.mobileActive = false;\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindMatchMediaListener();\n },\n methods: {\n getItemProp(item, name) {\n return item ? resolve(item[name]) : undefined;\n },\n getItemLabel(item) {\n return this.getItemProp(item, 'label');\n },\n isItemDisabled(item) {\n return this.getItemProp(item, 'disabled');\n },\n isItemVisible(item) {\n return this.getItemProp(item, 'visible') !== false;\n },\n isItemGroup(item) {\n return isNotEmpty(this.getItemProp(item, 'items'));\n },\n isItemSeparator(item) {\n return this.getItemProp(item, 'separator');\n },\n getProccessedItemLabel(processedItem) {\n return processedItem ? this.getItemLabel(processedItem.item) : undefined;\n },\n isProccessedItemGroup(processedItem) {\n return processedItem && isNotEmpty(processedItem.items);\n },\n toggle(event) {\n if (this.mobileActive) {\n this.mobileActive = false;\n ZIndex.clear(this.menubar);\n this.hide();\n } else {\n this.mobileActive = true;\n ZIndex.set('menu', this.menubar, this.$primevue.config.zIndex.menu);\n setTimeout(() => {\n this.show();\n }, 1);\n }\n\n this.bindOutsideClickListener();\n event.preventDefault();\n },\n show() {\n this.focusedItemInfo = { index: this.findFirstFocusedItemIndex(), level: 0, parentKey: '' };\n\n focus(this.menubar);\n },\n hide(event, isFocus) {\n if (this.mobileActive) {\n this.mobileActive = false;\n setTimeout(() => {\n focus(this.$refs.menubutton, { preventScroll: true });\n }, 1);\n }\n\n this.activeItem = null;\n this.focusedItemInfo = { index: -1, key: '', parentKey: '' };\n\n isFocus && focus(this.menubar);\n this.dirty = false;\n },\n onFocus(event) {\n this.focused = true;\n\n if (this.focusedItemInfo.index === -1) {\n const index = this.findFirstFocusedItemIndex();\n const processedItem = this.findVisibleItem(index);\n\n this.focusedItemInfo = { index, key: processedItem.key, parentKey: processedItem.parentKey };\n }\n\n this.$emit('focus', event);\n },\n onBlur(event) {\n this.focused = false;\n this.focusedItemInfo = { index: -1, key: '', parentKey: '' };\n this.searchValue = '';\n this.dirty = false;\n this.$emit('blur', event);\n },\n onKeyDown(event) {\n if (this.disabled) {\n event.preventDefault();\n\n return;\n }\n\n const metaKey = event.metaKey || event.ctrlKey;\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n\n case 'ArrowRight':\n this.onArrowRightKey(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 'Space':\n this.onSpaceKey(event);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n case 'Tab':\n this.onTabKey(event);\n break;\n\n case 'PageDown':\n case 'PageUp':\n case 'Backspace':\n case 'ShiftLeft':\n case 'ShiftRight':\n //NOOP\n break;\n\n default:\n if (!metaKey && isPrintableCharacter(event.key)) {\n this.searchItems(event, event.key);\n }\n\n break;\n }\n },\n onItemChange(event) {\n const { processedItem, isFocus } = event;\n\n if (isEmpty(processedItem)) return;\n\n const { index, key, parentKey, items } = processedItem;\n const grouped = isNotEmpty(items);\n\n grouped && (this.activeItem = processedItem);\n this.focusedItemInfo = { index, key, parentKey };\n\n grouped && (this.dirty = true);\n isFocus && focus(this.menubar);\n },\n onItemClick(event) {\n const { originalEvent, processedItem } = event;\n const grouped = this.isProccessedItemGroup(processedItem);\n const root = isEmpty(processedItem.parent);\n const selected = this.isSelected(processedItem);\n\n if (selected) {\n const { index, key, parentKey } = processedItem;\n\n this.activeItem = null;\n this.focusedItemInfo = { index, key, parentKey };\n\n this.dirty = !root;\n\n if (!this.mobileActive) {\n focus(this.menubar, { preventScroll: true });\n }\n } else {\n if (grouped) {\n this.onItemChange(event);\n } else {\n this.hide(originalEvent);\n }\n }\n },\n onItemMouseEnter(event) {\n if (!this.mobileActive && this.dirty) {\n this.onItemChange(event);\n }\n },\n menuButtonClick(event) {\n this.toggle(event);\n },\n menuButtonKeydown(event) {\n (event.code === 'Enter' || event.code === 'NumpadEnter' || event.code === 'Space') && this.menuButtonClick(event);\n },\n onArrowDownKey(event) {\n if (this.horizontal) {\n if (isNotEmpty(this.activeItem) && this.activeItem.key === this.focusedItemInfo.key) {\n this.focusedItemInfo = { index: -1, key: '', parentKey: this.activeItem.key };\n } else {\n const processedItem = this.findVisibleItem(this.focusedItemInfo.index);\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (grouped) {\n this.onItemChange({ originalEvent: event, processedItem });\n this.focusedItemInfo = { index: -1, key: processedItem.key, parentKey: processedItem.parentKey };\n this.searchValue = '';\n }\n }\n }\n\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex();\n\n this.changeFocusedItemInfo(event, itemIndex);\n event.preventDefault();\n },\n onArrowUpKey(event) {\n if (event.altKey && this.horizontal) {\n if (this.focusedItemInfo.index !== -1) {\n const processedItem = this.findVisibleItem(this.focusedItemInfo.index);\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (!grouped && isNotEmpty(this.activeItem)) {\n if (this.focusedItemInfo.index === 0) {\n this.focusedItemInfo = { index: this.activeItem.index, key: this.activeItem.key, parentKey: this.activeItem.parentKey };\n this.activeItem = null;\n } else {\n this.changeFocusedItemInfo(event, this.findFirstItemIndex());\n }\n }\n }\n\n event.preventDefault();\n } else {\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo.index) : this.findLastFocusedItemIndex();\n\n this.changeFocusedItemInfo(event, itemIndex);\n event.preventDefault();\n }\n },\n onArrowLeftKey(event) {\n const processedItem = this.findVisibleItem(this.focusedItemInfo.index);\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (grouped) {\n if (this.horizontal) {\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo.index) : this.findLastFocusedItemIndex();\n\n this.changeFocusedItemInfo(event, itemIndex);\n }\n } else {\n if (this.vertical && isNotEmpty(this.activeItem)) {\n if (processedItem.columnIndex === 0) {\n this.focusedItemInfo = { index: this.activeItem.index, key: this.activeItem.key, parentKey: this.activeItem.parentKey };\n this.activeItem = null;\n }\n }\n\n const columnIndex = processedItem.columnIndex - 1;\n const itemIndex = this.visibleItems.findIndex((item) => item.columnIndex === columnIndex);\n\n itemIndex !== -1 && this.changeFocusedItemInfo(event, itemIndex);\n }\n\n event.preventDefault();\n },\n onArrowRightKey(event) {\n const processedItem = this.findVisibleItem(this.focusedItemInfo.index);\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (grouped) {\n if (this.vertical) {\n if (isNotEmpty(this.activeItem) && this.activeItem.key === processedItem.key) {\n this.focusedItemInfo = { index: -1, key: '', parentKey: this.activeItem.key };\n } else {\n const processedItem = this.findVisibleItem(this.focusedItemInfo.index);\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (grouped) {\n this.onItemChange({ originalEvent: event, processedItem });\n this.focusedItemInfo = { index: -1, key: processedItem.key, parentKey: processedItem.parentKey };\n this.searchValue = '';\n }\n }\n }\n\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex();\n\n this.changeFocusedItemInfo(event, itemIndex);\n } else {\n const columnIndex = processedItem.columnIndex + 1;\n const itemIndex = this.visibleItems.findIndex((item) => item.columnIndex === columnIndex);\n\n itemIndex !== -1 && this.changeFocusedItemInfo(event, itemIndex);\n }\n\n event.preventDefault();\n },\n onHomeKey(event) {\n this.changeFocusedItemInfo(event, this.findFirstItemIndex());\n event.preventDefault();\n },\n onEndKey(event) {\n this.changeFocusedItemInfo(event, this.findLastItemIndex());\n event.preventDefault();\n },\n onEnterKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n const element = findSingle(this.menubar, `li[id=\"${`${this.focusedItemId}`}\"]`);\n const anchorElement = element && findSingle(element, 'a[data-pc-section=\"itemlink\"]');\n\n anchorElement ? anchorElement.click() : element && element.click();\n\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const grouped = this.isProccessedItemGroup(processedItem);\n\n !grouped && this.changeFocusedItemInfo(event, this.findFirstFocusedItemIndex());\n }\n\n event.preventDefault();\n },\n onSpaceKey(event) {\n this.onEnterKey(event);\n },\n onEscapeKey(event) {\n if (isNotEmpty(this.activeItem)) {\n this.focusedItemInfo = { index: this.activeItem.index, key: this.activeItem.key };\n this.activeItem = null;\n }\n\n event.preventDefault();\n },\n onTabKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n const processedItem = this.findVisibleItem(this.focusedItemInfo.index);\n const grouped = this.isProccessedItemGroup(processedItem);\n\n !grouped && this.onItemChange({ originalEvent: event, processedItem });\n }\n\n this.hide();\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n const isOutsideContainer = this.container && !this.container.contains(event.target);\n const isOutsideTarget = !(this.target && (this.target === event.target || this.target.contains(event.target)));\n\n if (isOutsideContainer && isOutsideTarget) {\n this.hide();\n }\n };\n\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = (event) => {\n if (!isTouchDevice()) {\n this.hide(event, true);\n }\n\n this.mobileActive = false;\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n bindMatchMediaListener() {\n if (!this.matchMediaListener) {\n const query = matchMedia(`(max-width: ${this.breakpoint})`);\n\n this.query = query;\n this.queryMatches = query.matches;\n\n this.matchMediaListener = () => {\n this.queryMatches = query.matches;\n this.mobileActive = false;\n };\n\n this.query.addEventListener('change', this.matchMediaListener);\n }\n },\n unbindMatchMediaListener() {\n if (this.matchMediaListener) {\n this.query.removeEventListener('change', this.matchMediaListener);\n this.matchMediaListener = null;\n }\n },\n isItemMatched(processedItem) {\n return this.isValidItem(processedItem) && this.getProccessedItemLabel(processedItem)?.toLocaleLowerCase().startsWith(this.searchValue.toLocaleLowerCase());\n },\n isValidItem(processedItem) {\n return !!processedItem && !this.isItemDisabled(processedItem.item) && !this.isItemSeparator(processedItem.item) && this.isItemVisible(processedItem.item);\n },\n isValidSelectedItem(processedItem) {\n return this.isValidItem(processedItem) && this.isSelected(processedItem);\n },\n isSelected(processedItem) {\n return isNotEmpty(this.activeItem) ? this.activeItem.key === processedItem.key : false;\n },\n findFirstItemIndex() {\n return this.visibleItems.findIndex((processedItem) => this.isValidItem(processedItem));\n },\n findLastItemIndex() {\n return findLastIndex(this.visibleItems, (processedItem) => this.isValidItem(processedItem));\n },\n findNextItemIndex(index) {\n const matchedItemIndex = index < this.visibleItems.length - 1 ? this.visibleItems.slice(index + 1).findIndex((processedItem) => this.isValidItem(processedItem)) : -1;\n\n return matchedItemIndex > -1 ? matchedItemIndex + index + 1 : index;\n },\n findPrevItemIndex(index) {\n const matchedItemIndex = index > 0 ? findLastIndex(this.visibleItems.slice(0, index), (processedItem) => this.isValidItem(processedItem)) : -1;\n\n return matchedItemIndex > -1 ? matchedItemIndex : index;\n },\n findSelectedItemIndex() {\n return this.visibleItems.findIndex((processedItem) => this.isValidSelectedItem(processedItem));\n },\n findFirstFocusedItemIndex() {\n const selectedIndex = this.findSelectedItemIndex();\n\n return selectedIndex < 0 ? this.findFirstItemIndex() : selectedIndex;\n },\n findLastFocusedItemIndex() {\n const selectedIndex = this.findSelectedItemIndex();\n\n return selectedIndex < 0 ? this.findLastItemIndex() : selectedIndex;\n },\n findVisibleItem(index) {\n return isNotEmpty(this.visibleItems) ? this.visibleItems[index] : null;\n },\n searchItems(event, char) {\n this.searchValue = (this.searchValue || '') + char;\n\n let itemIndex = -1;\n let matched = false;\n\n if (this.focusedItemInfo.index !== -1) {\n itemIndex = this.visibleItems.slice(this.focusedItemInfo.index).findIndex((processedItem) => this.isItemMatched(processedItem));\n itemIndex = itemIndex === -1 ? this.visibleItems.slice(0, this.focusedItemInfo.index).findIndex((processedItem) => this.isItemMatched(processedItem)) : itemIndex + this.focusedItemInfo.index;\n } else {\n itemIndex = this.visibleItems.findIndex((processedItem) => this.isItemMatched(processedItem));\n }\n\n if (itemIndex !== -1) {\n matched = true;\n }\n\n if (itemIndex === -1 && this.focusedItemInfo.index === -1) {\n itemIndex = this.findFirstFocusedItemIndex();\n }\n\n if (itemIndex !== -1) {\n this.changeFocusedItemInfo(event, itemIndex);\n }\n\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n this.searchTimeout = setTimeout(() => {\n this.searchValue = '';\n this.searchTimeout = null;\n }, 500);\n\n return matched;\n },\n changeFocusedItemInfo(event, index) {\n const processedItem = this.findVisibleItem(index);\n\n this.focusedItemInfo.index = index;\n this.focusedItemInfo.key = isNotEmpty(processedItem) ? processedItem.key : '';\n this.scrollInView();\n },\n scrollInView(index = -1) {\n const id = index !== -1 ? `${this.id}_${index}` : this.focusedItemId;\n let element;\n\n if (id === null && this.queryMatches) {\n element = this.$refs.menubutton;\n } else {\n element = findSingle(this.menubar, `li[id=\"${id}\"]`);\n }\n\n if (element) {\n element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'nearest', behavior: 'smooth' });\n }\n },\n createProcessedItems(items, level = 0, parent = {}, parentKey = '', columnIndex) {\n const processedItems = [];\n\n items &&\n items.forEach((item, index) => {\n const key = (parentKey !== '' ? parentKey + '_' : '') + (columnIndex !== undefined ? columnIndex + '_' : '') + index;\n const newItem = {\n item,\n index,\n level,\n key,\n parent,\n parentKey,\n columnIndex: columnIndex !== undefined ? columnIndex : parent.columnIndex !== undefined ? parent.columnIndex : index\n };\n\n newItem['items'] =\n level === 0 && item.items && item.items.length > 0 ? item.items.map((_items, _index) => this.createProcessedItems(_items, level + 1, newItem, key, _index)) : this.createProcessedItems(item.items, level + 1, newItem, key);\n processedItems.push(newItem);\n });\n\n return processedItems;\n },\n containerRef(el) {\n this.container = el;\n },\n menubarRef(el) {\n this.menubar = el ? el.$el : undefined;\n }\n },\n computed: {\n processedItems() {\n return this.createProcessedItems(this.model || []);\n },\n visibleItems() {\n const processedItem = isNotEmpty(this.activeItem) ? this.activeItem : null;\n\n return processedItem && processedItem.key === this.focusedItemInfo.parentKey\n ? processedItem.items.reduce((items, col) => {\n col.forEach((submenu) => {\n submenu.items.forEach((a) => {\n items.push(a);\n });\n });\n\n return items;\n }, [])\n : this.processedItems;\n },\n horizontal() {\n return this.orientation === 'horizontal';\n },\n vertical() {\n return this.orientation === 'vertical';\n },\n focusedItemId() {\n return isNotEmpty(this.focusedItemInfo.key) ? `${this.id}_${this.focusedItemInfo.key}` : null;\n }\n },\n components: {\n MegaMenuSub: MegaMenuSub,\n BarsIcon: BarsIcon\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","model","type","Array","orientation","String","breakpoint","disabled","Boolean","tabindex","Number","scrollHeight","ariaLabelledby","ariaLabel","style","MegaMenuStyle","provide","$pcMegaMenu","$parentInstance","hostName","emits","menuId","focusedItemId","horizontal","submenu","Object","mobileActive","items","level","templates","activeItem","methods","getSubListId","processedItem","concat","getItemId","getSubListKey","key","getItemKey","getItemProp","params","item","resolve","undefined","getItemLabel","getPTOptions","index","ptm","context","active","isItemActive","focused","isItemFocused","isItemDisabled","isNotEmpty","isItemVisible","isItemGroup","onItemClick","event","originalEvent","$emit","isFocus","onItemMouseEnter","getAriaSetSize","_this","filter","length","getAriaPosInset","_this2","slice","getMenuItemProps","action","mergeProps","cx","icon","label","submenuicon","components","AngleRightIcon","AngleDownIcon","directives","ripple","Ripple","_openBlock","_createElementBlock","_mergeProps","$props","_ctx","$options","role","_toDisplayString","_Fragment","_renderList","id","_createElementVNode","onClick","$event","onMouseenter","_withDirectives","href","target","itemicon","_createBlock","_resolveDynamicComponent","hasSubmenu","col","_component_MegaMenuSub","_normalizeStyle","sx","pt","unstyled","_cache","onItemMouseenter","_hoisted_5","BaseMegaMenu","inheritAttrs","outsideClickListener","resizeListener","matchMediaListener","container","menubar","searchTimeout","searchValue","data","$attrs","focusedItemInfo","parentKey","dirty","query","queryMatches","watch","$attrsId","newValue","UniqueComponentId","newItem","bindOutsideClickListener","bindResizeListener","unbindOutsideClickListener","unbindResizeListener","mounted","bindMatchMediaListener","beforeUnmount","unbindMatchMediaListener","isItemSeparator","getProccessedItemLabel","isProccessedItemGroup","toggle","ZIndex","clear","hide","set","$primevue","config","zIndex","menu","setTimeout","show","preventDefault","findFirstFocusedItemIndex","focus","$refs","menubutton","preventScroll","onFocus","findVisibleItem","onBlur","onKeyDown","metaKey","ctrlKey","code","onArrowDownKey","onArrowUpKey","onArrowLeftKey","onArrowRightKey","onHomeKey","onEndKey","onSpaceKey","onEnterKey","onEscapeKey","onTabKey","isPrintableCharacter","searchItems","onItemChange","isEmpty","grouped","root","parent","selected","isSelected","menuButtonClick","menuButtonKeydown","itemIndex","findNextItemIndex","changeFocusedItemInfo","altKey","findFirstItemIndex","findPrevItemIndex","findLastFocusedItemIndex","vertical","columnIndex","visibleItems","findIndex","findLastItemIndex","element","findSingle","anchorElement","click","_this3","isOutsideContainer","contains","isOutsideTarget","document","addEventListener","removeEventListener","_this4","isTouchDevice","window","_this5","matchMedia","matches","isItemMatched","_this$getProccessedIt","isValidItem","toLocaleLowerCase","startsWith","isValidSelectedItem","_this6","_this7","findLastIndex","_this8","matchedItemIndex","_this9","findSelectedItemIndex","_this10","selectedIndex","char","_this11","matched","clearTimeout","scrollInView","scrollIntoView","block","inline","behavior","createProcessedItems","_this12","arguments","processedItems","forEach","map","_items","_index","push","containerRef","el","menubarRef","$el","computed","reduce","a","MegaMenuSub","BarsIcon","ref","$data","ptmi","$slots","start","_renderSlot","button","toggleCallback","_ctx$$primevue$config","locale","aria","navigation","onKeydown","buttonicon","_createVNode","_component_BarsIcon","end"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/megamenu/BaseMegaMenu.vue","../../src/megamenu/MegaMenuSub.vue","../../src/megamenu/MegaMenuSub.vue?vue&type=template&id=e6a5700e&lang.js","../../src/megamenu/MegaMenu.vue","../../src/megamenu/MegaMenu.vue?vue&type=template&id=81a194b0&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport MegaMenuStyle from 'primevue/megamenu/style';\n\nexport default {\n name: 'BaseMegaMenu',\n extends: BaseComponent,\n props: {\n model: {\n type: Array,\n default: null\n },\n orientation: {\n type: String,\n default: 'horizontal'\n },\n breakpoint: {\n type: String,\n default: '960px'\n },\n disabled: {\n type: Boolean,\n default: false\n },\n tabindex: {\n type: Number,\n default: 0\n },\n scrollHeight: {\n type: String,\n default: '20rem'\n },\n ariaLabelledby: {\n type: String,\n default: null\n },\n ariaLabel: {\n type: String,\n default: null\n }\n },\n style: MegaMenuStyle,\n provide() {\n return {\n $pcMegaMenu: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <ul :class=\"level === 0 ? cx('rootList') : cx('submenu')\" :tabindex=\"tabindex\" v-bind=\"level === 0 ? ptm('rootList') : ptm('submenu')\">\n <li v-if=\"submenu\" :class=\"[cx('submenuLabel', { submenu }), getItemProp(submenu, 'class')]\" :style=\"getItemProp(submenu, 'style')\" role=\"presentation\" v-bind=\"ptm('submenuLabel')\">{{ getItemLabel(submenu) }}</li>\n <template v-for=\"(processedItem, index) of items\" :key=\"getItemKey(processedItem)\">\n <li\n v-if=\"isItemVisible(processedItem) && !getItemProp(processedItem, 'separator')\"\n :id=\"getItemId(processedItem)\"\n :style=\"getItemProp(processedItem, 'style')\"\n :class=\"[cx('item', { processedItem }), getItemProp(processedItem, 'class')]\"\n role=\"menuitem\"\n :aria-label=\"getItemLabel(processedItem)\"\n :aria-disabled=\"isItemDisabled(processedItem) || undefined\"\n :aria-expanded=\"isItemGroup(processedItem) ? isItemActive(processedItem) : undefined\"\n :aria-haspopup=\"isItemGroup(processedItem) && !getItemProp(processedItem, 'to') ? 'menu' : undefined\"\n :aria-level=\"level + 1\"\n :aria-setsize=\"getAriaSetSize()\"\n :aria-posinset=\"getAriaPosInset(index)\"\n v-bind=\"getPTOptions(processedItem, index, 'item')\"\n :data-p-active=\"isItemActive(processedItem)\"\n :data-p-focused=\"isItemFocused(processedItem)\"\n :data-p-disabled=\"isItemDisabled(processedItem)\"\n >\n <div :class=\"cx('itemContent')\" @click=\"onItemClick($event, processedItem)\" @mouseenter=\"onItemMouseEnter($event, processedItem)\" v-bind=\"getPTOptions(processedItem, index, 'itemContent')\">\n <template v-if=\"!templates.item\">\n <a v-ripple :href=\"getItemProp(processedItem, 'url')\" :class=\"cx('itemLink')\" :target=\"getItemProp(processedItem, 'target')\" tabindex=\"-1\" v-bind=\"getPTOptions(processedItem, index, 'itemLink')\">\n <component v-if=\"templates.itemicon\" :is=\"templates.itemicon\" :item=\"processedItem.item\" :class=\"cx('itemIcon')\" />\n <span v-else-if=\"getItemProp(processedItem, 'icon')\" :class=\"[cx('itemIcon'), getItemProp(processedItem, 'icon')]\" v-bind=\"getPTOptions(processedItem, index, 'itemIcon')\" />\n <span :class=\"cx('itemLabel')\" v-bind=\"getPTOptions(processedItem, index, 'itemLabel')\">\n {{ getItemLabel(processedItem) }}\n </span>\n <template v-if=\"isItemGroup(processedItem)\">\n <component v-if=\"templates.submenuicon\" :is=\"templates.submenuicon\" :active=\"isItemActive(processedItem)\" :class=\"cx('submenuIcon')\" v-bind=\"getPTOptions(processedItem, index, 'submenuIcon')\" />\n <component v-else :is=\"horizontal || mobileActive ? 'AngleDownIcon' : 'AngleRightIcon'\" :class=\"cx('submenuIcon')\" v-bind=\"getPTOptions(processedItem, index, 'submenuIcon')\" />\n </template>\n </a>\n </template>\n <component v-else :is=\"templates.item\" :item=\"processedItem.item\" :hasSubmenu=\"isItemGroup(processedItem)\" :label=\"getItemLabel(processedItem)\" :props=\"getMenuItemProps(processedItem, index)\"></component>\n </div>\n <div v-if=\"isItemVisible(processedItem) && isItemGroup(processedItem)\" :class=\"cx('overlay')\" v-bind=\"ptm('overlay')\">\n <div :class=\"cx('grid')\" v-bind=\"ptm('grid')\">\n <div v-for=\"col of processedItem.items\" :key=\"getItemKey(col)\" :class=\"cx('column', { processedItem })\" v-bind=\"ptm('column')\">\n <MegaMenuSub\n v-for=\"submenu of col\"\n :key=\"getSubListKey(submenu)\"\n :id=\"getSubListId(submenu)\"\n :style=\"sx('submenu', true, { processedItem })\"\n role=\"menu\"\n :menuId=\"menuId\"\n :focusedItemId=\"focusedItemId\"\n :submenu=\"submenu\"\n :items=\"submenu.items\"\n :templates=\"templates\"\n :level=\"level + 1\"\n :mobileActive=\"mobileActive\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n @item-click=\"$emit('item-click', $event)\"\n @item-mouseenter=\"$emit('item-mouseenter', $event)\"\n />\n </div>\n </div>\n </div>\n </li>\n <li\n v-if=\"isItemVisible(processedItem) && getItemProp(processedItem, 'separator')\"\n :id=\"getItemId(processedItem)\"\n :class=\"[cx('separator'), getItemProp(processedItem, 'class')]\"\n :style=\"getItemProp(processedItem, 'style')\"\n role=\"separator\"\n v-bind=\"ptm('separator')\"\n ></li>\n </template>\n </ul>\n</template>\n\n<script>\nimport { isNotEmpty, resolve } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport AngleDownIcon from '@primevue/icons/angledown';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'MegaMenuSub',\n hostName: 'MegaMenu',\n extends: BaseComponent,\n emits: ['item-click', 'item-mouseenter'],\n props: {\n menuId: {\n type: String,\n default: null\n },\n focusedItemId: {\n type: String,\n default: null\n },\n horizontal: {\n type: Boolean,\n default: false\n },\n submenu: {\n type: Object,\n default: null\n },\n mobileActive: {\n type: Boolean,\n default: false\n },\n items: {\n type: Array,\n default: null\n },\n level: {\n type: Number,\n default: 0\n },\n templates: {\n type: Object,\n default: null\n },\n activeItem: {\n type: Object,\n default: null\n },\n tabindex: {\n type: Number,\n default: 0\n }\n },\n methods: {\n getSubListId(processedItem) {\n return `${this.getItemId(processedItem)}_list`;\n },\n getSubListKey(processedItem) {\n return this.getSubListId(processedItem);\n },\n getItemId(processedItem) {\n return `${this.menuId}_${processedItem.key}`;\n },\n getItemKey(processedItem) {\n return this.getItemId(processedItem);\n },\n getItemProp(processedItem, name, params) {\n return processedItem && processedItem.item ? resolve(processedItem.item[name], params) : undefined;\n },\n getItemLabel(processedItem) {\n return this.getItemProp(processedItem, 'label');\n },\n getPTOptions(processedItem, index, key) {\n return this.ptm(key, {\n context: {\n item: processedItem.item,\n index,\n active: this.isItemActive(processedItem),\n focused: this.isItemFocused(processedItem),\n disabled: this.isItemDisabled(processedItem)\n }\n });\n },\n isItemActive(processedItem) {\n return isNotEmpty(this.activeItem) ? this.activeItem.key === processedItem.key : false;\n },\n isItemVisible(processedItem) {\n return this.getItemProp(processedItem, 'visible') !== false;\n },\n isItemDisabled(processedItem) {\n return this.getItemProp(processedItem, 'disabled');\n },\n isItemFocused(processedItem) {\n return this.focusedItemId === this.getItemId(processedItem);\n },\n isItemGroup(processedItem) {\n return isNotEmpty(processedItem.items);\n },\n onItemClick(event, processedItem) {\n this.getItemProp(processedItem, 'command', { originalEvent: event, item: processedItem.item });\n this.$emit('item-click', { originalEvent: event, processedItem, isFocus: true });\n },\n onItemMouseEnter(event, processedItem) {\n this.$emit('item-mouseenter', { originalEvent: event, processedItem });\n },\n getAriaSetSize() {\n return this.items.filter((processedItem) => this.isItemVisible(processedItem) && !this.getItemProp(processedItem, 'separator')).length;\n },\n getAriaPosInset(index) {\n return index - this.items.slice(0, index).filter((processedItem) => this.isItemVisible(processedItem) && this.getItemProp(processedItem, 'separator')).length + 1;\n },\n getMenuItemProps(processedItem, index) {\n return {\n action: mergeProps(\n {\n class: this.cx('itemLink'),\n tabindex: -1,\n 'aria-hidden': true\n },\n this.getPTOptions(processedItem, index, 'itemLink')\n ),\n icon: mergeProps(\n {\n class: [this.cx('itemIcon'), this.getItemProp(processedItem, 'icon')]\n },\n this.getPTOptions(processedItem, index, 'itemIcon')\n ),\n label: mergeProps(\n {\n class: this.cx('label')\n },\n this.getPTOptions(processedItem, index, 'label')\n ),\n submenuicon: mergeProps(\n {\n class: this.cx('submenuIcon')\n },\n this.getPTOptions(processedItem, index, 'submenuIcon')\n )\n };\n }\n },\n components: {\n AngleRightIcon: AngleRightIcon,\n AngleDownIcon: AngleDownIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <ul :class=\"level === 0 ? cx('rootList') : cx('submenu')\" :tabindex=\"tabindex\" v-bind=\"level === 0 ? ptm('rootList') : ptm('submenu')\">\n <li v-if=\"submenu\" :class=\"[cx('submenuLabel', { submenu }), getItemProp(submenu, 'class')]\" :style=\"getItemProp(submenu, 'style')\" role=\"presentation\" v-bind=\"ptm('submenuLabel')\">{{ getItemLabel(submenu) }}</li>\n <template v-for=\"(processedItem, index) of items\" :key=\"getItemKey(processedItem)\">\n <li\n v-if=\"isItemVisible(processedItem) && !getItemProp(processedItem, 'separator')\"\n :id=\"getItemId(processedItem)\"\n :style=\"getItemProp(processedItem, 'style')\"\n :class=\"[cx('item', { processedItem }), getItemProp(processedItem, 'class')]\"\n role=\"menuitem\"\n :aria-label=\"getItemLabel(processedItem)\"\n :aria-disabled=\"isItemDisabled(processedItem) || undefined\"\n :aria-expanded=\"isItemGroup(processedItem) ? isItemActive(processedItem) : undefined\"\n :aria-haspopup=\"isItemGroup(processedItem) && !getItemProp(processedItem, 'to') ? 'menu' : undefined\"\n :aria-level=\"level + 1\"\n :aria-setsize=\"getAriaSetSize()\"\n :aria-posinset=\"getAriaPosInset(index)\"\n v-bind=\"getPTOptions(processedItem, index, 'item')\"\n :data-p-active=\"isItemActive(processedItem)\"\n :data-p-focused=\"isItemFocused(processedItem)\"\n :data-p-disabled=\"isItemDisabled(processedItem)\"\n >\n <div :class=\"cx('itemContent')\" @click=\"onItemClick($event, processedItem)\" @mouseenter=\"onItemMouseEnter($event, processedItem)\" v-bind=\"getPTOptions(processedItem, index, 'itemContent')\">\n <template v-if=\"!templates.item\">\n <a v-ripple :href=\"getItemProp(processedItem, 'url')\" :class=\"cx('itemLink')\" :target=\"getItemProp(processedItem, 'target')\" tabindex=\"-1\" v-bind=\"getPTOptions(processedItem, index, 'itemLink')\">\n <component v-if=\"templates.itemicon\" :is=\"templates.itemicon\" :item=\"processedItem.item\" :class=\"cx('itemIcon')\" />\n <span v-else-if=\"getItemProp(processedItem, 'icon')\" :class=\"[cx('itemIcon'), getItemProp(processedItem, 'icon')]\" v-bind=\"getPTOptions(processedItem, index, 'itemIcon')\" />\n <span :class=\"cx('itemLabel')\" v-bind=\"getPTOptions(processedItem, index, 'itemLabel')\">\n {{ getItemLabel(processedItem) }}\n </span>\n <template v-if=\"isItemGroup(processedItem)\">\n <component v-if=\"templates.submenuicon\" :is=\"templates.submenuicon\" :active=\"isItemActive(processedItem)\" :class=\"cx('submenuIcon')\" v-bind=\"getPTOptions(processedItem, index, 'submenuIcon')\" />\n <component v-else :is=\"horizontal || mobileActive ? 'AngleDownIcon' : 'AngleRightIcon'\" :class=\"cx('submenuIcon')\" v-bind=\"getPTOptions(processedItem, index, 'submenuIcon')\" />\n </template>\n </a>\n </template>\n <component v-else :is=\"templates.item\" :item=\"processedItem.item\" :hasSubmenu=\"isItemGroup(processedItem)\" :label=\"getItemLabel(processedItem)\" :props=\"getMenuItemProps(processedItem, index)\"></component>\n </div>\n <div v-if=\"isItemVisible(processedItem) && isItemGroup(processedItem)\" :class=\"cx('overlay')\" v-bind=\"ptm('overlay')\">\n <div :class=\"cx('grid')\" v-bind=\"ptm('grid')\">\n <div v-for=\"col of processedItem.items\" :key=\"getItemKey(col)\" :class=\"cx('column', { processedItem })\" v-bind=\"ptm('column')\">\n <MegaMenuSub\n v-for=\"submenu of col\"\n :key=\"getSubListKey(submenu)\"\n :id=\"getSubListId(submenu)\"\n :style=\"sx('submenu', true, { processedItem })\"\n role=\"menu\"\n :menuId=\"menuId\"\n :focusedItemId=\"focusedItemId\"\n :submenu=\"submenu\"\n :items=\"submenu.items\"\n :templates=\"templates\"\n :level=\"level + 1\"\n :mobileActive=\"mobileActive\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n @item-click=\"$emit('item-click', $event)\"\n @item-mouseenter=\"$emit('item-mouseenter', $event)\"\n />\n </div>\n </div>\n </div>\n </li>\n <li\n v-if=\"isItemVisible(processedItem) && getItemProp(processedItem, 'separator')\"\n :id=\"getItemId(processedItem)\"\n :class=\"[cx('separator'), getItemProp(processedItem, 'class')]\"\n :style=\"getItemProp(processedItem, 'style')\"\n role=\"separator\"\n v-bind=\"ptm('separator')\"\n ></li>\n </template>\n </ul>\n</template>\n\n<script>\nimport { isNotEmpty, resolve } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport AngleDownIcon from '@primevue/icons/angledown';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'MegaMenuSub',\n hostName: 'MegaMenu',\n extends: BaseComponent,\n emits: ['item-click', 'item-mouseenter'],\n props: {\n menuId: {\n type: String,\n default: null\n },\n focusedItemId: {\n type: String,\n default: null\n },\n horizontal: {\n type: Boolean,\n default: false\n },\n submenu: {\n type: Object,\n default: null\n },\n mobileActive: {\n type: Boolean,\n default: false\n },\n items: {\n type: Array,\n default: null\n },\n level: {\n type: Number,\n default: 0\n },\n templates: {\n type: Object,\n default: null\n },\n activeItem: {\n type: Object,\n default: null\n },\n tabindex: {\n type: Number,\n default: 0\n }\n },\n methods: {\n getSubListId(processedItem) {\n return `${this.getItemId(processedItem)}_list`;\n },\n getSubListKey(processedItem) {\n return this.getSubListId(processedItem);\n },\n getItemId(processedItem) {\n return `${this.menuId}_${processedItem.key}`;\n },\n getItemKey(processedItem) {\n return this.getItemId(processedItem);\n },\n getItemProp(processedItem, name, params) {\n return processedItem && processedItem.item ? resolve(processedItem.item[name], params) : undefined;\n },\n getItemLabel(processedItem) {\n return this.getItemProp(processedItem, 'label');\n },\n getPTOptions(processedItem, index, key) {\n return this.ptm(key, {\n context: {\n item: processedItem.item,\n index,\n active: this.isItemActive(processedItem),\n focused: this.isItemFocused(processedItem),\n disabled: this.isItemDisabled(processedItem)\n }\n });\n },\n isItemActive(processedItem) {\n return isNotEmpty(this.activeItem) ? this.activeItem.key === processedItem.key : false;\n },\n isItemVisible(processedItem) {\n return this.getItemProp(processedItem, 'visible') !== false;\n },\n isItemDisabled(processedItem) {\n return this.getItemProp(processedItem, 'disabled');\n },\n isItemFocused(processedItem) {\n return this.focusedItemId === this.getItemId(processedItem);\n },\n isItemGroup(processedItem) {\n return isNotEmpty(processedItem.items);\n },\n onItemClick(event, processedItem) {\n this.getItemProp(processedItem, 'command', { originalEvent: event, item: processedItem.item });\n this.$emit('item-click', { originalEvent: event, processedItem, isFocus: true });\n },\n onItemMouseEnter(event, processedItem) {\n this.$emit('item-mouseenter', { originalEvent: event, processedItem });\n },\n getAriaSetSize() {\n return this.items.filter((processedItem) => this.isItemVisible(processedItem) && !this.getItemProp(processedItem, 'separator')).length;\n },\n getAriaPosInset(index) {\n return index - this.items.slice(0, index).filter((processedItem) => this.isItemVisible(processedItem) && this.getItemProp(processedItem, 'separator')).length + 1;\n },\n getMenuItemProps(processedItem, index) {\n return {\n action: mergeProps(\n {\n class: this.cx('itemLink'),\n tabindex: -1,\n 'aria-hidden': true\n },\n this.getPTOptions(processedItem, index, 'itemLink')\n ),\n icon: mergeProps(\n {\n class: [this.cx('itemIcon'), this.getItemProp(processedItem, 'icon')]\n },\n this.getPTOptions(processedItem, index, 'itemIcon')\n ),\n label: mergeProps(\n {\n class: this.cx('label')\n },\n this.getPTOptions(processedItem, index, 'label')\n ),\n submenuicon: mergeProps(\n {\n class: this.cx('submenuIcon')\n },\n this.getPTOptions(processedItem, index, 'submenuIcon')\n )\n };\n }\n },\n components: {\n AngleRightIcon: AngleRightIcon,\n AngleDownIcon: AngleDownIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <div :ref=\"containerRef\" :id=\"id\" :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <div v-if=\"$slots.start\" :class=\"cx('start')\" v-bind=\"ptm('start')\">\n <slot name=\"start\"></slot>\n </div>\n <!--TODO: menubutton deprecated since v4.0. Use button-->\n <slot :id=\"id\" :name=\"$slots.button ? 'button' : 'menubutton'\" :class=\"cx('button')\" :toggleCallback=\"(event) => menuButtonClick(event)\">\n <a\n v-if=\"model && model.length > 0\"\n ref=\"menubutton\"\n role=\"button\"\n tabindex=\"0\"\n :class=\"cx('button')\"\n :aria-haspopup=\"model.length && model.length > 0 ? true : false\"\n :aria-expanded=\"mobileActive\"\n :aria-controls=\"id\"\n :aria-label=\"$primevue.config.locale.aria?.navigation\"\n @click=\"menuButtonClick($event)\"\n @keydown=\"menuButtonKeydown($event)\"\n v-bind=\"ptm('button')\"\n >\n <!--TODO: menubuttonicon deprecated since v4.0. Use buttonicon-->\n <slot :name=\"$slots.buttonicon ? 'buttonicon' : 'menubuttonicon'\">\n <BarsIcon v-bind=\"ptm('buttonIcon')\" />\n </slot>\n </a>\n </slot>\n <MegaMenuSub\n :ref=\"menubarRef\"\n :id=\"id + '_list'\"\n :tabindex=\"!disabled ? tabindex : -1\"\n role=\"menubar\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n :aria-disabled=\"disabled || undefined\"\n :aria-orientation=\"orientation\"\n :aria-activedescendant=\"focused ? focusedItemId : undefined\"\n :menuId=\"id\"\n :focusedItemId=\"focused ? focusedItemId : undefined\"\n :items=\"processedItems\"\n :horizontal=\"horizontal\"\n :templates=\"$slots\"\n :activeItem=\"activeItem\"\n :mobileActive=\"mobileActive\"\n :level=\"0\"\n :style=\"sx('rootList')\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n @item-click=\"onItemClick\"\n @item-mouseenter=\"onItemMouseEnter\"\n />\n <div v-if=\"$slots.end\" :class=\"cx('end')\" v-bind=\"ptm('end')\">\n <slot name=\"end\"></slot>\n </div>\n </div>\n</template>\n\n<script>\nimport { findSingle, focus, isTouchDevice } from '@primeuix/utils/dom';\nimport { findLastIndex, isEmpty, isNotEmpty, isPrintableCharacter, resolve } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { UniqueComponentId } from '@primevue/core/utils';\nimport BarsIcon from '@primevue/icons/bars';\nimport BaseMegaMenu from './BaseMegaMenu.vue';\nimport MegaMenuSub from './MegaMenuSub.vue';\n\nexport default {\n name: 'MegaMenu',\n extends: BaseMegaMenu,\n inheritAttrs: false,\n emits: ['focus', 'blur'],\n outsideClickListener: null,\n resizeListener: null,\n matchMediaListener: null,\n container: null,\n menubar: null,\n searchTimeout: null,\n searchValue: null,\n data() {\n return {\n id: this.$attrs.id,\n mobileActive: false,\n focused: false,\n focusedItemInfo: { index: -1, key: '', parentKey: '' },\n activeItem: null,\n dirty: false,\n query: null,\n queryMatches: false\n };\n },\n watch: {\n '$attrs.id': function (newValue) {\n this.id = newValue || UniqueComponentId();\n },\n activeItem(newItem) {\n if (isNotEmpty(newItem)) {\n this.bindOutsideClickListener();\n this.bindResizeListener();\n } else {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n }\n }\n },\n mounted() {\n this.id = this.id || UniqueComponentId();\n this.bindMatchMediaListener();\n },\n beforeUnmount() {\n this.mobileActive = false;\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindMatchMediaListener();\n },\n methods: {\n getItemProp(item, name) {\n return item ? resolve(item[name]) : undefined;\n },\n getItemLabel(item) {\n return this.getItemProp(item, 'label');\n },\n isItemDisabled(item) {\n return this.getItemProp(item, 'disabled');\n },\n isItemVisible(item) {\n return this.getItemProp(item, 'visible') !== false;\n },\n isItemGroup(item) {\n return isNotEmpty(this.getItemProp(item, 'items'));\n },\n isItemSeparator(item) {\n return this.getItemProp(item, 'separator');\n },\n getProccessedItemLabel(processedItem) {\n return processedItem ? this.getItemLabel(processedItem.item) : undefined;\n },\n isProccessedItemGroup(processedItem) {\n return processedItem && isNotEmpty(processedItem.items);\n },\n toggle(event) {\n if (this.mobileActive) {\n this.mobileActive = false;\n ZIndex.clear(this.menubar);\n this.hide();\n } else {\n this.mobileActive = true;\n ZIndex.set('menu', this.menubar, this.$primevue.config.zIndex.menu);\n setTimeout(() => {\n this.show();\n }, 1);\n }\n\n this.bindOutsideClickListener();\n event.preventDefault();\n },\n show() {\n this.focusedItemInfo = { index: this.findFirstFocusedItemIndex(), level: 0, parentKey: '' };\n\n focus(this.menubar);\n },\n hide(event, isFocus) {\n if (this.mobileActive) {\n this.mobileActive = false;\n setTimeout(() => {\n focus(this.$refs.menubutton, { preventScroll: true });\n }, 1);\n }\n\n this.activeItem = null;\n this.focusedItemInfo = { index: -1, key: '', parentKey: '' };\n\n isFocus && focus(this.menubar);\n this.dirty = false;\n },\n onFocus(event) {\n this.focused = true;\n\n if (this.focusedItemInfo.index === -1) {\n const index = this.findFirstFocusedItemIndex();\n const processedItem = this.findVisibleItem(index);\n\n this.focusedItemInfo = { index, key: processedItem.key, parentKey: processedItem.parentKey };\n }\n\n this.$emit('focus', event);\n },\n onBlur(event) {\n this.focused = false;\n this.focusedItemInfo = { index: -1, key: '', parentKey: '' };\n this.searchValue = '';\n this.dirty = false;\n this.$emit('blur', event);\n },\n onKeyDown(event) {\n if (this.disabled) {\n event.preventDefault();\n\n return;\n }\n\n const metaKey = event.metaKey || event.ctrlKey;\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n\n case 'ArrowRight':\n this.onArrowRightKey(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 'Space':\n this.onSpaceKey(event);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n case 'Tab':\n this.onTabKey(event);\n break;\n\n case 'PageDown':\n case 'PageUp':\n case 'Backspace':\n case 'ShiftLeft':\n case 'ShiftRight':\n //NOOP\n break;\n\n default:\n if (!metaKey && isPrintableCharacter(event.key)) {\n this.searchItems(event, event.key);\n }\n\n break;\n }\n },\n onItemChange(event) {\n const { processedItem, isFocus } = event;\n\n if (isEmpty(processedItem)) return;\n\n const { index, key, parentKey, items } = processedItem;\n const grouped = isNotEmpty(items);\n\n grouped && (this.activeItem = processedItem);\n this.focusedItemInfo = { index, key, parentKey };\n\n grouped && (this.dirty = true);\n isFocus && focus(this.menubar);\n },\n onItemClick(event) {\n const { originalEvent, processedItem } = event;\n const grouped = this.isProccessedItemGroup(processedItem);\n const root = isEmpty(processedItem.parent);\n const selected = this.isSelected(processedItem);\n\n if (selected) {\n const { index, key, parentKey } = processedItem;\n\n this.activeItem = null;\n this.focusedItemInfo = { index, key, parentKey };\n\n this.dirty = !root;\n\n if (!this.mobileActive) {\n focus(this.menubar, { preventScroll: true });\n }\n } else {\n if (grouped) {\n this.onItemChange(event);\n } else {\n this.hide(originalEvent);\n }\n }\n },\n onItemMouseEnter(event) {\n if (!this.mobileActive && this.dirty) {\n this.onItemChange(event);\n }\n },\n menuButtonClick(event) {\n this.toggle(event);\n },\n menuButtonKeydown(event) {\n (event.code === 'Enter' || event.code === 'NumpadEnter' || event.code === 'Space') && this.menuButtonClick(event);\n },\n onArrowDownKey(event) {\n if (this.horizontal) {\n if (isNotEmpty(this.activeItem) && this.activeItem.key === this.focusedItemInfo.key) {\n this.focusedItemInfo = { index: -1, key: '', parentKey: this.activeItem.key };\n } else {\n const processedItem = this.findVisibleItem(this.focusedItemInfo.index);\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (grouped) {\n this.onItemChange({ originalEvent: event, processedItem });\n this.focusedItemInfo = { index: -1, key: processedItem.key, parentKey: processedItem.parentKey };\n this.searchValue = '';\n }\n }\n }\n\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex();\n\n this.changeFocusedItemInfo(event, itemIndex);\n event.preventDefault();\n },\n onArrowUpKey(event) {\n if (event.altKey && this.horizontal) {\n if (this.focusedItemInfo.index !== -1) {\n const processedItem = this.findVisibleItem(this.focusedItemInfo.index);\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (!grouped && isNotEmpty(this.activeItem)) {\n if (this.focusedItemInfo.index === 0) {\n this.focusedItemInfo = { index: this.activeItem.index, key: this.activeItem.key, parentKey: this.activeItem.parentKey };\n this.activeItem = null;\n } else {\n this.changeFocusedItemInfo(event, this.findFirstItemIndex());\n }\n }\n }\n\n event.preventDefault();\n } else {\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo.index) : this.findLastFocusedItemIndex();\n\n this.changeFocusedItemInfo(event, itemIndex);\n event.preventDefault();\n }\n },\n onArrowLeftKey(event) {\n const processedItem = this.findVisibleItem(this.focusedItemInfo.index);\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (grouped) {\n if (this.horizontal) {\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo.index) : this.findLastFocusedItemIndex();\n\n this.changeFocusedItemInfo(event, itemIndex);\n }\n } else {\n if (this.vertical && isNotEmpty(this.activeItem)) {\n if (processedItem.columnIndex === 0) {\n this.focusedItemInfo = { index: this.activeItem.index, key: this.activeItem.key, parentKey: this.activeItem.parentKey };\n this.activeItem = null;\n }\n }\n\n const columnIndex = processedItem.columnIndex - 1;\n const itemIndex = this.visibleItems.findIndex((item) => item.columnIndex === columnIndex);\n\n itemIndex !== -1 && this.changeFocusedItemInfo(event, itemIndex);\n }\n\n event.preventDefault();\n },\n onArrowRightKey(event) {\n const processedItem = this.findVisibleItem(this.focusedItemInfo.index);\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (grouped) {\n if (this.vertical) {\n if (isNotEmpty(this.activeItem) && this.activeItem.key === processedItem.key) {\n this.focusedItemInfo = { index: -1, key: '', parentKey: this.activeItem.key };\n } else {\n const processedItem = this.findVisibleItem(this.focusedItemInfo.index);\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (grouped) {\n this.onItemChange({ originalEvent: event, processedItem });\n this.focusedItemInfo = { index: -1, key: processedItem.key, parentKey: processedItem.parentKey };\n this.searchValue = '';\n }\n }\n }\n\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex();\n\n this.changeFocusedItemInfo(event, itemIndex);\n } else {\n const columnIndex = processedItem.columnIndex + 1;\n const itemIndex = this.visibleItems.findIndex((item) => item.columnIndex === columnIndex);\n\n itemIndex !== -1 && this.changeFocusedItemInfo(event, itemIndex);\n }\n\n event.preventDefault();\n },\n onHomeKey(event) {\n this.changeFocusedItemInfo(event, this.findFirstItemIndex());\n event.preventDefault();\n },\n onEndKey(event) {\n this.changeFocusedItemInfo(event, this.findLastItemIndex());\n event.preventDefault();\n },\n onEnterKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n const element = findSingle(this.menubar, `li[id=\"${`${this.focusedItemId}`}\"]`);\n const anchorElement = element && findSingle(element, 'a[data-pc-section=\"itemlink\"]');\n\n anchorElement ? anchorElement.click() : element && element.click();\n\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const grouped = this.isProccessedItemGroup(processedItem);\n\n !grouped && this.changeFocusedItemInfo(event, this.findFirstFocusedItemIndex());\n }\n\n event.preventDefault();\n },\n onSpaceKey(event) {\n this.onEnterKey(event);\n },\n onEscapeKey(event) {\n if (isNotEmpty(this.activeItem)) {\n this.focusedItemInfo = { index: this.activeItem.index, key: this.activeItem.key };\n this.activeItem = null;\n }\n\n event.preventDefault();\n },\n onTabKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n const processedItem = this.findVisibleItem(this.focusedItemInfo.index);\n const grouped = this.isProccessedItemGroup(processedItem);\n\n !grouped && this.onItemChange({ originalEvent: event, processedItem });\n }\n\n this.hide();\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n const isOutsideContainer = this.container && !this.container.contains(event.target);\n const isOutsideTarget = !(this.target && (this.target === event.target || this.target.contains(event.target)));\n\n if (isOutsideContainer && isOutsideTarget) {\n this.hide();\n }\n };\n\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = (event) => {\n if (!isTouchDevice()) {\n this.hide(event, true);\n }\n\n this.mobileActive = false;\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n bindMatchMediaListener() {\n if (!this.matchMediaListener) {\n const query = matchMedia(`(max-width: ${this.breakpoint})`);\n\n this.query = query;\n this.queryMatches = query.matches;\n\n this.matchMediaListener = () => {\n this.queryMatches = query.matches;\n this.mobileActive = false;\n };\n\n this.query.addEventListener('change', this.matchMediaListener);\n }\n },\n unbindMatchMediaListener() {\n if (this.matchMediaListener) {\n this.query.removeEventListener('change', this.matchMediaListener);\n this.matchMediaListener = null;\n }\n },\n isItemMatched(processedItem) {\n return this.isValidItem(processedItem) && this.getProccessedItemLabel(processedItem)?.toLocaleLowerCase().startsWith(this.searchValue.toLocaleLowerCase());\n },\n isValidItem(processedItem) {\n return !!processedItem && !this.isItemDisabled(processedItem.item) && !this.isItemSeparator(processedItem.item) && this.isItemVisible(processedItem.item);\n },\n isValidSelectedItem(processedItem) {\n return this.isValidItem(processedItem) && this.isSelected(processedItem);\n },\n isSelected(processedItem) {\n return isNotEmpty(this.activeItem) ? this.activeItem.key === processedItem.key : false;\n },\n findFirstItemIndex() {\n return this.visibleItems.findIndex((processedItem) => this.isValidItem(processedItem));\n },\n findLastItemIndex() {\n return findLastIndex(this.visibleItems, (processedItem) => this.isValidItem(processedItem));\n },\n findNextItemIndex(index) {\n const matchedItemIndex = index < this.visibleItems.length - 1 ? this.visibleItems.slice(index + 1).findIndex((processedItem) => this.isValidItem(processedItem)) : -1;\n\n return matchedItemIndex > -1 ? matchedItemIndex + index + 1 : index;\n },\n findPrevItemIndex(index) {\n const matchedItemIndex = index > 0 ? findLastIndex(this.visibleItems.slice(0, index), (processedItem) => this.isValidItem(processedItem)) : -1;\n\n return matchedItemIndex > -1 ? matchedItemIndex : index;\n },\n findSelectedItemIndex() {\n return this.visibleItems.findIndex((processedItem) => this.isValidSelectedItem(processedItem));\n },\n findFirstFocusedItemIndex() {\n const selectedIndex = this.findSelectedItemIndex();\n\n return selectedIndex < 0 ? this.findFirstItemIndex() : selectedIndex;\n },\n findLastFocusedItemIndex() {\n const selectedIndex = this.findSelectedItemIndex();\n\n return selectedIndex < 0 ? this.findLastItemIndex() : selectedIndex;\n },\n findVisibleItem(index) {\n return isNotEmpty(this.visibleItems) ? this.visibleItems[index] : null;\n },\n searchItems(event, char) {\n this.searchValue = (this.searchValue || '') + char;\n\n let itemIndex = -1;\n let matched = false;\n\n if (this.focusedItemInfo.index !== -1) {\n itemIndex = this.visibleItems.slice(this.focusedItemInfo.index).findIndex((processedItem) => this.isItemMatched(processedItem));\n itemIndex = itemIndex === -1 ? this.visibleItems.slice(0, this.focusedItemInfo.index).findIndex((processedItem) => this.isItemMatched(processedItem)) : itemIndex + this.focusedItemInfo.index;\n } else {\n itemIndex = this.visibleItems.findIndex((processedItem) => this.isItemMatched(processedItem));\n }\n\n if (itemIndex !== -1) {\n matched = true;\n }\n\n if (itemIndex === -1 && this.focusedItemInfo.index === -1) {\n itemIndex = this.findFirstFocusedItemIndex();\n }\n\n if (itemIndex !== -1) {\n this.changeFocusedItemInfo(event, itemIndex);\n }\n\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n this.searchTimeout = setTimeout(() => {\n this.searchValue = '';\n this.searchTimeout = null;\n }, 500);\n\n return matched;\n },\n changeFocusedItemInfo(event, index) {\n const processedItem = this.findVisibleItem(index);\n\n this.focusedItemInfo.index = index;\n this.focusedItemInfo.key = isNotEmpty(processedItem) ? processedItem.key : '';\n this.scrollInView();\n },\n scrollInView(index = -1) {\n const id = index !== -1 ? `${this.id}_${index}` : this.focusedItemId;\n let element;\n\n if (id === null && this.queryMatches) {\n element = this.$refs.menubutton;\n } else {\n element = findSingle(this.menubar, `li[id=\"${id}\"]`);\n }\n\n if (element) {\n element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'nearest', behavior: 'smooth' });\n }\n },\n createProcessedItems(items, level = 0, parent = {}, parentKey = '', columnIndex) {\n const processedItems = [];\n\n items &&\n items.forEach((item, index) => {\n const key = (parentKey !== '' ? parentKey + '_' : '') + (columnIndex !== undefined ? columnIndex + '_' : '') + index;\n const newItem = {\n item,\n index,\n level,\n key,\n parent,\n parentKey,\n columnIndex: columnIndex !== undefined ? columnIndex : parent.columnIndex !== undefined ? parent.columnIndex : index\n };\n\n newItem['items'] =\n level === 0 && item.items && item.items.length > 0 ? item.items.map((_items, _index) => this.createProcessedItems(_items, level + 1, newItem, key, _index)) : this.createProcessedItems(item.items, level + 1, newItem, key);\n processedItems.push(newItem);\n });\n\n return processedItems;\n },\n containerRef(el) {\n this.container = el;\n },\n menubarRef(el) {\n this.menubar = el ? el.$el : undefined;\n }\n },\n computed: {\n processedItems() {\n return this.createProcessedItems(this.model || []);\n },\n visibleItems() {\n const processedItem = isNotEmpty(this.activeItem) ? this.activeItem : null;\n\n return processedItem && processedItem.key === this.focusedItemInfo.parentKey\n ? processedItem.items.reduce((items, col) => {\n col.forEach((submenu) => {\n submenu.items.forEach((a) => {\n items.push(a);\n });\n });\n\n return items;\n }, [])\n : this.processedItems;\n },\n horizontal() {\n return this.orientation === 'horizontal';\n },\n vertical() {\n return this.orientation === 'vertical';\n },\n focusedItemId() {\n return isNotEmpty(this.focusedItemInfo.key) ? `${this.id}_${this.focusedItemInfo.key}` : null;\n }\n },\n components: {\n MegaMenuSub: MegaMenuSub,\n BarsIcon: BarsIcon\n }\n};\n</script>\n","<template>\n <div :ref=\"containerRef\" :id=\"id\" :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <div v-if=\"$slots.start\" :class=\"cx('start')\" v-bind=\"ptm('start')\">\n <slot name=\"start\"></slot>\n </div>\n <!--TODO: menubutton deprecated since v4.0. Use button-->\n <slot :id=\"id\" :name=\"$slots.button ? 'button' : 'menubutton'\" :class=\"cx('button')\" :toggleCallback=\"(event) => menuButtonClick(event)\">\n <a\n v-if=\"model && model.length > 0\"\n ref=\"menubutton\"\n role=\"button\"\n tabindex=\"0\"\n :class=\"cx('button')\"\n :aria-haspopup=\"model.length && model.length > 0 ? true : false\"\n :aria-expanded=\"mobileActive\"\n :aria-controls=\"id\"\n :aria-label=\"$primevue.config.locale.aria?.navigation\"\n @click=\"menuButtonClick($event)\"\n @keydown=\"menuButtonKeydown($event)\"\n v-bind=\"ptm('button')\"\n >\n <!--TODO: menubuttonicon deprecated since v4.0. Use buttonicon-->\n <slot :name=\"$slots.buttonicon ? 'buttonicon' : 'menubuttonicon'\">\n <BarsIcon v-bind=\"ptm('buttonIcon')\" />\n </slot>\n </a>\n </slot>\n <MegaMenuSub\n :ref=\"menubarRef\"\n :id=\"id + '_list'\"\n :tabindex=\"!disabled ? tabindex : -1\"\n role=\"menubar\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n :aria-disabled=\"disabled || undefined\"\n :aria-orientation=\"orientation\"\n :aria-activedescendant=\"focused ? focusedItemId : undefined\"\n :menuId=\"id\"\n :focusedItemId=\"focused ? focusedItemId : undefined\"\n :items=\"processedItems\"\n :horizontal=\"horizontal\"\n :templates=\"$slots\"\n :activeItem=\"activeItem\"\n :mobileActive=\"mobileActive\"\n :level=\"0\"\n :style=\"sx('rootList')\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n @item-click=\"onItemClick\"\n @item-mouseenter=\"onItemMouseEnter\"\n />\n <div v-if=\"$slots.end\" :class=\"cx('end')\" v-bind=\"ptm('end')\">\n <slot name=\"end\"></slot>\n </div>\n </div>\n</template>\n\n<script>\nimport { findSingle, focus, isTouchDevice } from '@primeuix/utils/dom';\nimport { findLastIndex, isEmpty, isNotEmpty, isPrintableCharacter, resolve } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { UniqueComponentId } from '@primevue/core/utils';\nimport BarsIcon from '@primevue/icons/bars';\nimport BaseMegaMenu from './BaseMegaMenu.vue';\nimport MegaMenuSub from './MegaMenuSub.vue';\n\nexport default {\n name: 'MegaMenu',\n extends: BaseMegaMenu,\n inheritAttrs: false,\n emits: ['focus', 'blur'],\n outsideClickListener: null,\n resizeListener: null,\n matchMediaListener: null,\n container: null,\n menubar: null,\n searchTimeout: null,\n searchValue: null,\n data() {\n return {\n id: this.$attrs.id,\n mobileActive: false,\n focused: false,\n focusedItemInfo: { index: -1, key: '', parentKey: '' },\n activeItem: null,\n dirty: false,\n query: null,\n queryMatches: false\n };\n },\n watch: {\n '$attrs.id': function (newValue) {\n this.id = newValue || UniqueComponentId();\n },\n activeItem(newItem) {\n if (isNotEmpty(newItem)) {\n this.bindOutsideClickListener();\n this.bindResizeListener();\n } else {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n }\n }\n },\n mounted() {\n this.id = this.id || UniqueComponentId();\n this.bindMatchMediaListener();\n },\n beforeUnmount() {\n this.mobileActive = false;\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindMatchMediaListener();\n },\n methods: {\n getItemProp(item, name) {\n return item ? resolve(item[name]) : undefined;\n },\n getItemLabel(item) {\n return this.getItemProp(item, 'label');\n },\n isItemDisabled(item) {\n return this.getItemProp(item, 'disabled');\n },\n isItemVisible(item) {\n return this.getItemProp(item, 'visible') !== false;\n },\n isItemGroup(item) {\n return isNotEmpty(this.getItemProp(item, 'items'));\n },\n isItemSeparator(item) {\n return this.getItemProp(item, 'separator');\n },\n getProccessedItemLabel(processedItem) {\n return processedItem ? this.getItemLabel(processedItem.item) : undefined;\n },\n isProccessedItemGroup(processedItem) {\n return processedItem && isNotEmpty(processedItem.items);\n },\n toggle(event) {\n if (this.mobileActive) {\n this.mobileActive = false;\n ZIndex.clear(this.menubar);\n this.hide();\n } else {\n this.mobileActive = true;\n ZIndex.set('menu', this.menubar, this.$primevue.config.zIndex.menu);\n setTimeout(() => {\n this.show();\n }, 1);\n }\n\n this.bindOutsideClickListener();\n event.preventDefault();\n },\n show() {\n this.focusedItemInfo = { index: this.findFirstFocusedItemIndex(), level: 0, parentKey: '' };\n\n focus(this.menubar);\n },\n hide(event, isFocus) {\n if (this.mobileActive) {\n this.mobileActive = false;\n setTimeout(() => {\n focus(this.$refs.menubutton, { preventScroll: true });\n }, 1);\n }\n\n this.activeItem = null;\n this.focusedItemInfo = { index: -1, key: '', parentKey: '' };\n\n isFocus && focus(this.menubar);\n this.dirty = false;\n },\n onFocus(event) {\n this.focused = true;\n\n if (this.focusedItemInfo.index === -1) {\n const index = this.findFirstFocusedItemIndex();\n const processedItem = this.findVisibleItem(index);\n\n this.focusedItemInfo = { index, key: processedItem.key, parentKey: processedItem.parentKey };\n }\n\n this.$emit('focus', event);\n },\n onBlur(event) {\n this.focused = false;\n this.focusedItemInfo = { index: -1, key: '', parentKey: '' };\n this.searchValue = '';\n this.dirty = false;\n this.$emit('blur', event);\n },\n onKeyDown(event) {\n if (this.disabled) {\n event.preventDefault();\n\n return;\n }\n\n const metaKey = event.metaKey || event.ctrlKey;\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n\n case 'ArrowRight':\n this.onArrowRightKey(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 'Space':\n this.onSpaceKey(event);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n case 'Tab':\n this.onTabKey(event);\n break;\n\n case 'PageDown':\n case 'PageUp':\n case 'Backspace':\n case 'ShiftLeft':\n case 'ShiftRight':\n //NOOP\n break;\n\n default:\n if (!metaKey && isPrintableCharacter(event.key)) {\n this.searchItems(event, event.key);\n }\n\n break;\n }\n },\n onItemChange(event) {\n const { processedItem, isFocus } = event;\n\n if (isEmpty(processedItem)) return;\n\n const { index, key, parentKey, items } = processedItem;\n const grouped = isNotEmpty(items);\n\n grouped && (this.activeItem = processedItem);\n this.focusedItemInfo = { index, key, parentKey };\n\n grouped && (this.dirty = true);\n isFocus && focus(this.menubar);\n },\n onItemClick(event) {\n const { originalEvent, processedItem } = event;\n const grouped = this.isProccessedItemGroup(processedItem);\n const root = isEmpty(processedItem.parent);\n const selected = this.isSelected(processedItem);\n\n if (selected) {\n const { index, key, parentKey } = processedItem;\n\n this.activeItem = null;\n this.focusedItemInfo = { index, key, parentKey };\n\n this.dirty = !root;\n\n if (!this.mobileActive) {\n focus(this.menubar, { preventScroll: true });\n }\n } else {\n if (grouped) {\n this.onItemChange(event);\n } else {\n this.hide(originalEvent);\n }\n }\n },\n onItemMouseEnter(event) {\n if (!this.mobileActive && this.dirty) {\n this.onItemChange(event);\n }\n },\n menuButtonClick(event) {\n this.toggle(event);\n },\n menuButtonKeydown(event) {\n (event.code === 'Enter' || event.code === 'NumpadEnter' || event.code === 'Space') && this.menuButtonClick(event);\n },\n onArrowDownKey(event) {\n if (this.horizontal) {\n if (isNotEmpty(this.activeItem) && this.activeItem.key === this.focusedItemInfo.key) {\n this.focusedItemInfo = { index: -1, key: '', parentKey: this.activeItem.key };\n } else {\n const processedItem = this.findVisibleItem(this.focusedItemInfo.index);\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (grouped) {\n this.onItemChange({ originalEvent: event, processedItem });\n this.focusedItemInfo = { index: -1, key: processedItem.key, parentKey: processedItem.parentKey };\n this.searchValue = '';\n }\n }\n }\n\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex();\n\n this.changeFocusedItemInfo(event, itemIndex);\n event.preventDefault();\n },\n onArrowUpKey(event) {\n if (event.altKey && this.horizontal) {\n if (this.focusedItemInfo.index !== -1) {\n const processedItem = this.findVisibleItem(this.focusedItemInfo.index);\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (!grouped && isNotEmpty(this.activeItem)) {\n if (this.focusedItemInfo.index === 0) {\n this.focusedItemInfo = { index: this.activeItem.index, key: this.activeItem.key, parentKey: this.activeItem.parentKey };\n this.activeItem = null;\n } else {\n this.changeFocusedItemInfo(event, this.findFirstItemIndex());\n }\n }\n }\n\n event.preventDefault();\n } else {\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo.index) : this.findLastFocusedItemIndex();\n\n this.changeFocusedItemInfo(event, itemIndex);\n event.preventDefault();\n }\n },\n onArrowLeftKey(event) {\n const processedItem = this.findVisibleItem(this.focusedItemInfo.index);\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (grouped) {\n if (this.horizontal) {\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo.index) : this.findLastFocusedItemIndex();\n\n this.changeFocusedItemInfo(event, itemIndex);\n }\n } else {\n if (this.vertical && isNotEmpty(this.activeItem)) {\n if (processedItem.columnIndex === 0) {\n this.focusedItemInfo = { index: this.activeItem.index, key: this.activeItem.key, parentKey: this.activeItem.parentKey };\n this.activeItem = null;\n }\n }\n\n const columnIndex = processedItem.columnIndex - 1;\n const itemIndex = this.visibleItems.findIndex((item) => item.columnIndex === columnIndex);\n\n itemIndex !== -1 && this.changeFocusedItemInfo(event, itemIndex);\n }\n\n event.preventDefault();\n },\n onArrowRightKey(event) {\n const processedItem = this.findVisibleItem(this.focusedItemInfo.index);\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (grouped) {\n if (this.vertical) {\n if (isNotEmpty(this.activeItem) && this.activeItem.key === processedItem.key) {\n this.focusedItemInfo = { index: -1, key: '', parentKey: this.activeItem.key };\n } else {\n const processedItem = this.findVisibleItem(this.focusedItemInfo.index);\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (grouped) {\n this.onItemChange({ originalEvent: event, processedItem });\n this.focusedItemInfo = { index: -1, key: processedItem.key, parentKey: processedItem.parentKey };\n this.searchValue = '';\n }\n }\n }\n\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex();\n\n this.changeFocusedItemInfo(event, itemIndex);\n } else {\n const columnIndex = processedItem.columnIndex + 1;\n const itemIndex = this.visibleItems.findIndex((item) => item.columnIndex === columnIndex);\n\n itemIndex !== -1 && this.changeFocusedItemInfo(event, itemIndex);\n }\n\n event.preventDefault();\n },\n onHomeKey(event) {\n this.changeFocusedItemInfo(event, this.findFirstItemIndex());\n event.preventDefault();\n },\n onEndKey(event) {\n this.changeFocusedItemInfo(event, this.findLastItemIndex());\n event.preventDefault();\n },\n onEnterKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n const element = findSingle(this.menubar, `li[id=\"${`${this.focusedItemId}`}\"]`);\n const anchorElement = element && findSingle(element, 'a[data-pc-section=\"itemlink\"]');\n\n anchorElement ? anchorElement.click() : element && element.click();\n\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const grouped = this.isProccessedItemGroup(processedItem);\n\n !grouped && this.changeFocusedItemInfo(event, this.findFirstFocusedItemIndex());\n }\n\n event.preventDefault();\n },\n onSpaceKey(event) {\n this.onEnterKey(event);\n },\n onEscapeKey(event) {\n if (isNotEmpty(this.activeItem)) {\n this.focusedItemInfo = { index: this.activeItem.index, key: this.activeItem.key };\n this.activeItem = null;\n }\n\n event.preventDefault();\n },\n onTabKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n const processedItem = this.findVisibleItem(this.focusedItemInfo.index);\n const grouped = this.isProccessedItemGroup(processedItem);\n\n !grouped && this.onItemChange({ originalEvent: event, processedItem });\n }\n\n this.hide();\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n const isOutsideContainer = this.container && !this.container.contains(event.target);\n const isOutsideTarget = !(this.target && (this.target === event.target || this.target.contains(event.target)));\n\n if (isOutsideContainer && isOutsideTarget) {\n this.hide();\n }\n };\n\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = (event) => {\n if (!isTouchDevice()) {\n this.hide(event, true);\n }\n\n this.mobileActive = false;\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n bindMatchMediaListener() {\n if (!this.matchMediaListener) {\n const query = matchMedia(`(max-width: ${this.breakpoint})`);\n\n this.query = query;\n this.queryMatches = query.matches;\n\n this.matchMediaListener = () => {\n this.queryMatches = query.matches;\n this.mobileActive = false;\n };\n\n this.query.addEventListener('change', this.matchMediaListener);\n }\n },\n unbindMatchMediaListener() {\n if (this.matchMediaListener) {\n this.query.removeEventListener('change', this.matchMediaListener);\n this.matchMediaListener = null;\n }\n },\n isItemMatched(processedItem) {\n return this.isValidItem(processedItem) && this.getProccessedItemLabel(processedItem)?.toLocaleLowerCase().startsWith(this.searchValue.toLocaleLowerCase());\n },\n isValidItem(processedItem) {\n return !!processedItem && !this.isItemDisabled(processedItem.item) && !this.isItemSeparator(processedItem.item) && this.isItemVisible(processedItem.item);\n },\n isValidSelectedItem(processedItem) {\n return this.isValidItem(processedItem) && this.isSelected(processedItem);\n },\n isSelected(processedItem) {\n return isNotEmpty(this.activeItem) ? this.activeItem.key === processedItem.key : false;\n },\n findFirstItemIndex() {\n return this.visibleItems.findIndex((processedItem) => this.isValidItem(processedItem));\n },\n findLastItemIndex() {\n return findLastIndex(this.visibleItems, (processedItem) => this.isValidItem(processedItem));\n },\n findNextItemIndex(index) {\n const matchedItemIndex = index < this.visibleItems.length - 1 ? this.visibleItems.slice(index + 1).findIndex((processedItem) => this.isValidItem(processedItem)) : -1;\n\n return matchedItemIndex > -1 ? matchedItemIndex + index + 1 : index;\n },\n findPrevItemIndex(index) {\n const matchedItemIndex = index > 0 ? findLastIndex(this.visibleItems.slice(0, index), (processedItem) => this.isValidItem(processedItem)) : -1;\n\n return matchedItemIndex > -1 ? matchedItemIndex : index;\n },\n findSelectedItemIndex() {\n return this.visibleItems.findIndex((processedItem) => this.isValidSelectedItem(processedItem));\n },\n findFirstFocusedItemIndex() {\n const selectedIndex = this.findSelectedItemIndex();\n\n return selectedIndex < 0 ? this.findFirstItemIndex() : selectedIndex;\n },\n findLastFocusedItemIndex() {\n const selectedIndex = this.findSelectedItemIndex();\n\n return selectedIndex < 0 ? this.findLastItemIndex() : selectedIndex;\n },\n findVisibleItem(index) {\n return isNotEmpty(this.visibleItems) ? this.visibleItems[index] : null;\n },\n searchItems(event, char) {\n this.searchValue = (this.searchValue || '') + char;\n\n let itemIndex = -1;\n let matched = false;\n\n if (this.focusedItemInfo.index !== -1) {\n itemIndex = this.visibleItems.slice(this.focusedItemInfo.index).findIndex((processedItem) => this.isItemMatched(processedItem));\n itemIndex = itemIndex === -1 ? this.visibleItems.slice(0, this.focusedItemInfo.index).findIndex((processedItem) => this.isItemMatched(processedItem)) : itemIndex + this.focusedItemInfo.index;\n } else {\n itemIndex = this.visibleItems.findIndex((processedItem) => this.isItemMatched(processedItem));\n }\n\n if (itemIndex !== -1) {\n matched = true;\n }\n\n if (itemIndex === -1 && this.focusedItemInfo.index === -1) {\n itemIndex = this.findFirstFocusedItemIndex();\n }\n\n if (itemIndex !== -1) {\n this.changeFocusedItemInfo(event, itemIndex);\n }\n\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n this.searchTimeout = setTimeout(() => {\n this.searchValue = '';\n this.searchTimeout = null;\n }, 500);\n\n return matched;\n },\n changeFocusedItemInfo(event, index) {\n const processedItem = this.findVisibleItem(index);\n\n this.focusedItemInfo.index = index;\n this.focusedItemInfo.key = isNotEmpty(processedItem) ? processedItem.key : '';\n this.scrollInView();\n },\n scrollInView(index = -1) {\n const id = index !== -1 ? `${this.id}_${index}` : this.focusedItemId;\n let element;\n\n if (id === null && this.queryMatches) {\n element = this.$refs.menubutton;\n } else {\n element = findSingle(this.menubar, `li[id=\"${id}\"]`);\n }\n\n if (element) {\n element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'nearest', behavior: 'smooth' });\n }\n },\n createProcessedItems(items, level = 0, parent = {}, parentKey = '', columnIndex) {\n const processedItems = [];\n\n items &&\n items.forEach((item, index) => {\n const key = (parentKey !== '' ? parentKey + '_' : '') + (columnIndex !== undefined ? columnIndex + '_' : '') + index;\n const newItem = {\n item,\n index,\n level,\n key,\n parent,\n parentKey,\n columnIndex: columnIndex !== undefined ? columnIndex : parent.columnIndex !== undefined ? parent.columnIndex : index\n };\n\n newItem['items'] =\n level === 0 && item.items && item.items.length > 0 ? item.items.map((_items, _index) => this.createProcessedItems(_items, level + 1, newItem, key, _index)) : this.createProcessedItems(item.items, level + 1, newItem, key);\n processedItems.push(newItem);\n });\n\n return processedItems;\n },\n containerRef(el) {\n this.container = el;\n },\n menubarRef(el) {\n this.menubar = el ? el.$el : undefined;\n }\n },\n computed: {\n processedItems() {\n return this.createProcessedItems(this.model || []);\n },\n visibleItems() {\n const processedItem = isNotEmpty(this.activeItem) ? this.activeItem : null;\n\n return processedItem && processedItem.key === this.focusedItemInfo.parentKey\n ? processedItem.items.reduce((items, col) => {\n col.forEach((submenu) => {\n submenu.items.forEach((a) => {\n items.push(a);\n });\n });\n\n return items;\n }, [])\n : this.processedItems;\n },\n horizontal() {\n return this.orientation === 'horizontal';\n },\n vertical() {\n return this.orientation === 'vertical';\n },\n focusedItemId() {\n return isNotEmpty(this.focusedItemInfo.key) ? `${this.id}_${this.focusedItemInfo.key}` : null;\n }\n },\n components: {\n MegaMenuSub: MegaMenuSub,\n BarsIcon: BarsIcon\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","model","type","Array","orientation","String","breakpoint","disabled","Boolean","tabindex","Number","scrollHeight","ariaLabelledby","ariaLabel","style","MegaMenuStyle","provide","$pcMegaMenu","$parentInstance","hostName","emits","menuId","focusedItemId","horizontal","submenu","Object","mobileActive","items","level","templates","activeItem","methods","getSubListId","processedItem","concat","getItemId","getSubListKey","key","getItemKey","getItemProp","params","item","resolve","undefined","getItemLabel","getPTOptions","index","ptm","context","active","isItemActive","focused","isItemFocused","isItemDisabled","isNotEmpty","isItemVisible","isItemGroup","onItemClick","event","originalEvent","$emit","isFocus","onItemMouseEnter","getAriaSetSize","_this","filter","length","getAriaPosInset","_this2","slice","getMenuItemProps","action","mergeProps","cx","icon","label","submenuicon","components","AngleRightIcon","AngleDownIcon","directives","ripple","Ripple","_openBlock","_createElementBlock","_mergeProps","$props","_ctx","$options","role","_toDisplayString","_Fragment","_renderList","id","_createElementVNode","onClick","$event","onMouseenter","_withDirectives","href","target","itemicon","_createBlock","_resolveDynamicComponent","hasSubmenu","col","_component_MegaMenuSub","_normalizeStyle","sx","pt","unstyled","_cache","onItemMouseenter","_hoisted_5","BaseMegaMenu","inheritAttrs","outsideClickListener","resizeListener","matchMediaListener","container","menubar","searchTimeout","searchValue","data","$attrs","focusedItemInfo","parentKey","dirty","query","queryMatches","watch","$attrsId","newValue","UniqueComponentId","newItem","bindOutsideClickListener","bindResizeListener","unbindOutsideClickListener","unbindResizeListener","mounted","bindMatchMediaListener","beforeUnmount","unbindMatchMediaListener","isItemSeparator","getProccessedItemLabel","isProccessedItemGroup","toggle","ZIndex","clear","hide","set","$primevue","config","zIndex","menu","setTimeout","show","preventDefault","findFirstFocusedItemIndex","focus","$refs","menubutton","preventScroll","onFocus","findVisibleItem","onBlur","onKeyDown","metaKey","ctrlKey","code","onArrowDownKey","onArrowUpKey","onArrowLeftKey","onArrowRightKey","onHomeKey","onEndKey","onSpaceKey","onEnterKey","onEscapeKey","onTabKey","isPrintableCharacter","searchItems","onItemChange","isEmpty","grouped","root","parent","selected","isSelected","menuButtonClick","menuButtonKeydown","itemIndex","findNextItemIndex","changeFocusedItemInfo","altKey","findFirstItemIndex","findPrevItemIndex","findLastFocusedItemIndex","vertical","columnIndex","visibleItems","findIndex","findLastItemIndex","element","findSingle","anchorElement","click","_this3","isOutsideContainer","contains","isOutsideTarget","document","addEventListener","removeEventListener","_this4","isTouchDevice","window","_this5","matchMedia","matches","isItemMatched","_this$getProccessedIt","isValidItem","toLocaleLowerCase","startsWith","isValidSelectedItem","_this6","_this7","findLastIndex","_this8","matchedItemIndex","_this9","findSelectedItemIndex","_this10","selectedIndex","char","_this11","matched","clearTimeout","scrollInView","scrollIntoView","block","inline","behavior","createProcessedItems","_this12","arguments","processedItems","forEach","map","_items","_index","push","containerRef","el","menubarRef","$el","computed","reduce","a","MegaMenuSub","BarsIcon","ref","$data","ptmi","$slots","start","_renderSlot","button","toggleCallback","_ctx$$primevue$config","locale","aria","navigation","onKeydown","buttonicon","_createVNode","_component_BarsIcon","end"],"mappings":"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"}