primevue 3.22.2 → 3.22.4

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 (201) hide show
  1. package/README.md +1 -1
  2. package/accordion/Accordion.vue +7 -3
  3. package/accordion/accordion.cjs.js +7 -3
  4. package/accordion/accordion.cjs.min.js +1 -1
  5. package/accordion/accordion.esm.js +8 -4
  6. package/accordion/accordion.esm.min.js +1 -1
  7. package/accordion/accordion.js +7 -3
  8. package/accordion/accordion.min.js +1 -1
  9. package/autocomplete/AutoComplete.vue +6 -3
  10. package/autocomplete/autocomplete.cjs.js +12 -9
  11. package/autocomplete/autocomplete.cjs.min.js +1 -1
  12. package/autocomplete/autocomplete.esm.js +13 -10
  13. package/autocomplete/autocomplete.esm.min.js +1 -1
  14. package/autocomplete/autocomplete.js +12 -9
  15. package/autocomplete/autocomplete.min.js +1 -1
  16. package/breadcrumb/Breadcrumb.vue +2 -2
  17. package/breadcrumb/breadcrumb.cjs.js +17 -10
  18. package/breadcrumb/breadcrumb.cjs.min.js +1 -1
  19. package/breadcrumb/breadcrumb.esm.js +17 -10
  20. package/breadcrumb/breadcrumb.esm.min.js +1 -1
  21. package/breadcrumb/breadcrumb.js +17 -10
  22. package/breadcrumb/breadcrumb.min.js +1 -1
  23. package/cascadeselect/CascadeSelect.vue +6 -3
  24. package/cascadeselect/cascadeselect.cjs.js +9 -6
  25. package/cascadeselect/cascadeselect.cjs.min.js +1 -1
  26. package/cascadeselect/cascadeselect.esm.js +10 -7
  27. package/cascadeselect/cascadeselect.esm.min.js +1 -1
  28. package/cascadeselect/cascadeselect.js +9 -6
  29. package/cascadeselect/cascadeselect.min.js +1 -1
  30. package/contextmenu/ContextMenu.vue +6 -3
  31. package/contextmenu/contextmenu.cjs.js +8 -5
  32. package/contextmenu/contextmenu.cjs.min.js +1 -1
  33. package/contextmenu/contextmenu.esm.js +9 -6
  34. package/contextmenu/contextmenu.esm.min.js +1 -1
  35. package/contextmenu/contextmenu.js +8 -5
  36. package/contextmenu/contextmenu.min.js +1 -1
  37. package/core/core.js +48 -34
  38. package/core/core.min.js +5 -5
  39. package/datatable/BodyCell.vue +4 -2
  40. package/datatable/datatable.cjs.js +4 -2
  41. package/datatable/datatable.cjs.min.js +1 -1
  42. package/datatable/datatable.esm.js +4 -2
  43. package/datatable/datatable.esm.min.js +1 -1
  44. package/datatable/datatable.js +4 -2
  45. package/datatable/datatable.min.js +1 -1
  46. package/dock/DockSub.vue +9 -3
  47. package/dock/dock.cjs.js +10 -4
  48. package/dock/dock.cjs.min.js +1 -1
  49. package/dock/dock.esm.js +11 -5
  50. package/dock/dock.esm.min.js +1 -1
  51. package/dock/dock.js +10 -4
  52. package/dock/dock.min.js +1 -1
  53. package/dropdown/Dropdown.vue +6 -3
  54. package/dropdown/dropdown.cjs.js +13 -10
  55. package/dropdown/dropdown.cjs.min.js +1 -1
  56. package/dropdown/dropdown.esm.js +14 -11
  57. package/dropdown/dropdown.esm.min.js +1 -1
  58. package/dropdown/dropdown.js +13 -10
  59. package/dropdown/dropdown.min.js +1 -1
  60. package/listbox/Listbox.vue +6 -3
  61. package/listbox/listbox.cjs.js +11 -8
  62. package/listbox/listbox.cjs.min.js +1 -1
  63. package/listbox/listbox.esm.js +12 -9
  64. package/listbox/listbox.esm.min.js +1 -1
  65. package/listbox/listbox.js +11 -8
  66. package/listbox/listbox.min.js +1 -1
  67. package/megamenu/MegaMenu.vue +7 -3
  68. package/megamenu/megamenu.cjs.js +10 -6
  69. package/megamenu/megamenu.cjs.min.js +1 -1
  70. package/megamenu/megamenu.esm.js +11 -7
  71. package/megamenu/megamenu.esm.min.js +1 -1
  72. package/megamenu/megamenu.js +10 -6
  73. package/megamenu/megamenu.min.js +1 -1
  74. package/menu/Menu.vue +8 -3
  75. package/menu/menu.cjs.js +13 -8
  76. package/menu/menu.cjs.min.js +1 -1
  77. package/menu/menu.esm.js +14 -9
  78. package/menu/menu.esm.min.js +1 -1
  79. package/menu/menu.js +13 -8
  80. package/menu/menu.min.js +1 -1
  81. package/menubar/Menubar.vue +7 -3
  82. package/menubar/menubar.cjs.js +10 -6
  83. package/menubar/menubar.cjs.min.js +1 -1
  84. package/menubar/menubar.esm.js +11 -7
  85. package/menubar/menubar.esm.min.js +1 -1
  86. package/menubar/menubar.js +10 -6
  87. package/menubar/menubar.min.js +1 -1
  88. package/multiselect/MultiSelect.vue +6 -3
  89. package/multiselect/multiselect.cjs.js +11 -8
  90. package/multiselect/multiselect.cjs.min.js +1 -1
  91. package/multiselect/multiselect.esm.js +12 -9
  92. package/multiselect/multiselect.esm.min.js +1 -1
  93. package/multiselect/multiselect.js +11 -8
  94. package/multiselect/multiselect.min.js +1 -1
  95. package/orderlist/OrderList.vue +8 -3
  96. package/orderlist/orderlist.cjs.js +11 -6
  97. package/orderlist/orderlist.cjs.min.js +1 -1
  98. package/orderlist/orderlist.esm.js +12 -7
  99. package/orderlist/orderlist.esm.min.js +1 -1
  100. package/orderlist/orderlist.js +11 -6
  101. package/orderlist/orderlist.min.js +1 -1
  102. package/package.json +1 -1
  103. package/panelmenu/PanelMenu.vue +9 -6
  104. package/panelmenu/PanelMenuList.vue +1 -1
  105. package/panelmenu/panelmenu.cjs.js +11 -8
  106. package/panelmenu/panelmenu.cjs.min.js +1 -1
  107. package/panelmenu/panelmenu.esm.js +11 -8
  108. package/panelmenu/panelmenu.esm.min.js +1 -1
  109. package/panelmenu/panelmenu.js +11 -8
  110. package/panelmenu/panelmenu.min.js +1 -1
  111. package/picklist/PickList.vue +8 -2
  112. package/picklist/picklist.cjs.js +8 -2
  113. package/picklist/picklist.cjs.min.js +1 -1
  114. package/picklist/picklist.esm.js +9 -3
  115. package/picklist/picklist.esm.min.js +1 -1
  116. package/picklist/picklist.js +8 -2
  117. package/picklist/picklist.min.js +1 -1
  118. package/rating/Rating.vue +9 -3
  119. package/rating/rating.cjs.js +11 -5
  120. package/rating/rating.cjs.min.js +1 -1
  121. package/rating/rating.esm.js +12 -6
  122. package/rating/rating.esm.min.js +1 -1
  123. package/rating/rating.js +11 -5
  124. package/rating/rating.min.js +1 -1
  125. package/resources/themes/arya-blue/theme.css +7 -0
  126. package/resources/themes/arya-green/theme.css +7 -0
  127. package/resources/themes/arya-orange/theme.css +7 -0
  128. package/resources/themes/arya-purple/theme.css +7 -0
  129. package/resources/themes/bootstrap4-dark-blue/theme.css +7 -0
  130. package/resources/themes/bootstrap4-dark-purple/theme.css +7 -0
  131. package/resources/themes/bootstrap4-light-blue/theme.css +7 -0
  132. package/resources/themes/bootstrap4-light-purple/theme.css +7 -0
  133. package/resources/themes/fluent-light/theme.css +7 -0
  134. package/resources/themes/lara-dark-blue/theme.css +7 -0
  135. package/resources/themes/lara-dark-indigo/theme.css +7 -0
  136. package/resources/themes/lara-dark-purple/theme.css +7 -0
  137. package/resources/themes/lara-dark-teal/theme.css +7 -0
  138. package/resources/themes/lara-light-blue/theme.css +7 -0
  139. package/resources/themes/lara-light-indigo/theme.css +7 -0
  140. package/resources/themes/lara-light-purple/theme.css +7 -0
  141. package/resources/themes/lara-light-teal/theme.css +7 -0
  142. package/resources/themes/luna-amber/theme.css +7 -0
  143. package/resources/themes/luna-blue/theme.css +7 -0
  144. package/resources/themes/luna-green/theme.css +7 -0
  145. package/resources/themes/luna-pink/theme.css +7 -0
  146. package/resources/themes/md-dark-deeppurple/theme.css +10 -2
  147. package/resources/themes/md-dark-indigo/theme.css +10 -2
  148. package/resources/themes/md-light-deeppurple/theme.css +10 -2
  149. package/resources/themes/md-light-indigo/theme.css +10 -2
  150. package/resources/themes/mdc-dark-deeppurple/theme.css +10 -2
  151. package/resources/themes/mdc-dark-indigo/theme.css +10 -2
  152. package/resources/themes/mdc-light-deeppurple/theme.css +10 -2
  153. package/resources/themes/mdc-light-indigo/theme.css +10 -2
  154. package/resources/themes/nova/theme.css +7 -0
  155. package/resources/themes/nova-accent/theme.css +7 -0
  156. package/resources/themes/nova-alt/theme.css +7 -0
  157. package/resources/themes/nova-vue/theme.css +7 -0
  158. package/resources/themes/rhea/theme.css +7 -0
  159. package/resources/themes/saga-blue/theme.css +7 -0
  160. package/resources/themes/saga-green/theme.css +7 -0
  161. package/resources/themes/saga-orange/theme.css +7 -0
  162. package/resources/themes/saga-purple/theme.css +7 -0
  163. package/resources/themes/tailwind-light/theme.css +7 -0
  164. package/resources/themes/vela-blue/theme.css +7 -0
  165. package/resources/themes/vela-green/theme.css +7 -0
  166. package/resources/themes/vela-orange/theme.css +7 -0
  167. package/resources/themes/vela-purple/theme.css +7 -0
  168. package/speeddial/SpeedDial.vue +6 -3
  169. package/speeddial/speeddial.cjs.js +11 -8
  170. package/speeddial/speeddial.cjs.min.js +1 -1
  171. package/speeddial/speeddial.esm.js +12 -9
  172. package/speeddial/speeddial.esm.min.js +1 -1
  173. package/speeddial/speeddial.js +11 -8
  174. package/speeddial/speeddial.min.js +1 -1
  175. package/tabview/TabView.vue +6 -3
  176. package/tabview/tabview.cjs.js +6 -3
  177. package/tabview/tabview.cjs.min.js +1 -1
  178. package/tabview/tabview.esm.js +7 -4
  179. package/tabview/tabview.esm.min.js +1 -1
  180. package/tabview/tabview.js +6 -3
  181. package/tabview/tabview.min.js +1 -1
  182. package/tieredmenu/TieredMenu.vue +7 -3
  183. package/tieredmenu/tieredmenu.cjs.js +10 -6
  184. package/tieredmenu/tieredmenu.cjs.min.js +1 -1
  185. package/tieredmenu/tieredmenu.esm.js +11 -7
  186. package/tieredmenu/tieredmenu.esm.min.js +1 -1
  187. package/tieredmenu/tieredmenu.js +10 -6
  188. package/tieredmenu/tieredmenu.min.js +1 -1
  189. package/tooltip/tooltip.cjs.js +0 -2
  190. package/tooltip/tooltip.cjs.min.js +1 -1
  191. package/tooltip/tooltip.esm.js +1 -3
  192. package/tooltip/tooltip.esm.min.js +1 -1
  193. package/tooltip/tooltip.js +0 -2
  194. package/tooltip/tooltip.min.js +1 -1
  195. package/utils/utils.cjs.js +12 -8
  196. package/utils/utils.cjs.min.js +1 -1
  197. package/utils/utils.esm.js +12 -8
  198. package/utils/utils.esm.min.js +1 -1
  199. package/utils/utils.js +12 -8
  200. package/utils/utils.min.js +1 -1
  201. package/web-types.json +1 -1
@@ -1 +1 @@
1
- "use strict";var e=require("primevue/utils"),t=require("primevue/ripple"),i=require("vue");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n={name:"MegaMenuSub",emits:["item-click","item-mouseenter"],props:{menuId:{type:String,default:null},focusedItemId:{type:String,default:null},horizontal:{type:Boolean,default:!1},submenu:{type:Object,default:null},items:{type:Array,default:null},level:{type:Number,default:0},template:{type:Function,default:null},activeItem:{type:Object,default:null},exact:{type:Boolean,default:!0}},methods:{getSubListId(e){return`${this.getItemId(e)}_list`},getSubListKey(e){return this.getSubListId(e)},getItemId(e){return`${this.menuId}_${e.key}`},getItemKey(e){return this.getItemId(e)},getItemProp:(t,i,s)=>t&&t.item?e.ObjectUtils.getItemValue(t.item[i],s):void 0,getItemLabel(e){return this.getItemProp(e,"label")},isItemActive(t){return!!e.ObjectUtils.isNotEmpty(this.activeItem)&&this.activeItem.key===t.key},isItemVisible(e){return!1!==this.getItemProp(e,"visible")},isItemDisabled(e){return this.getItemProp(e,"disabled")},isItemFocused(e){return this.focusedItemId===this.getItemId(e)},isItemGroup:t=>e.ObjectUtils.isNotEmpty(t.items),onItemClick(e,t){this.getItemProp(t,"command",{originalEvent:e,item:t.item}),this.$emit("item-click",{originalEvent:e,processedItem:t,isFocus:!0})},onItemMouseEnter(e,t){this.$emit("item-mouseenter",{originalEvent:e,processedItem:t})},onItemActionClick(e,t){t&&t(e)},getAriaSetSize(){return this.items.filter((e=>this.isItemVisible(e)&&!this.getItemProp(e,"separator"))).length},getAriaPosInset(e){return e-this.items.slice(0,e).filter((e=>this.isItemVisible(e)&&this.getItemProp(e,"separator"))).length+1},getSubmenuHeaderClass(e){return["p-megamenu-submenu-header p-submenu-header",this.getItemProp(e,"class"),{"p-disabled":this.isItemDisabled(e)}]},getColumnClass(e){let t;switch(this.isItemGroup(e)?e.items.length:0){case 2:t="p-megamenu-col-6";break;case 3:t="p-megamenu-col-4";break;case 4:t="p-megamenu-col-3";break;case 6:t="p-megamenu-col-2";break;default:t="p-megamenu-col-12"}return t},getItemClass(e){return["p-menuitem",this.getItemProp(e,"class"),{"p-menuitem-active p-highlight":this.isItemActive(e),"p-focus":this.isItemFocused(e),"p-disabled":this.isItemDisabled(e)}]},getItemActionClass(e,t){return["p-menuitem-link",{"router-link-active":t&&t.isActive,"router-link-active-exact":this.exact&&t&&t.isExactActive}]},getItemIconClass(e){return["p-menuitem-icon",this.getItemProp(e,"icon")]},getItemToggleIconClass(){return["p-submenu-icon",this.horizontal?"pi pi-angle-down":"pi pi-angle-right"]},getSeparatorItemClass(e){return["p-menuitem-separator",this.getItemProp(e,"class")]}},directives:{ripple:s(t).default}};const o=["id","aria-label","aria-disabled","aria-expanded","aria-haspopup","aria-level","aria-setsize","aria-posinset"],a=["onClick","onMouseenter"],m=["href","onClick"],r={class:"p-menuitem-text"},l=["href","target"],c={class:"p-menuitem-text"},d={key:0,class:"p-megamenu-panel"},u={class:"p-megamenu-grid"},I=["id"];n.render=function(e,t,s,n,h,p){const f=i.resolveComponent("router-link"),g=i.resolveComponent("MegaMenuSub",!0),y=i.resolveDirective("ripple");return i.openBlock(),i.createElementBlock("ul",null,[s.submenu?(i.openBlock(),i.createElementBlock("li",{key:0,class:i.normalizeClass(p.getSubmenuHeaderClass(s.submenu)),style:i.normalizeStyle(p.getItemProp(s.submenu,"style")),role:"presentation"},i.toDisplayString(p.getItemLabel(s.submenu)),7)):i.createCommentVNode("",!0),(i.openBlock(!0),i.createElementBlock(i.Fragment,null,i.renderList(s.items,((n,h)=>(i.openBlock(),i.createElementBlock(i.Fragment,{key:p.getItemKey(n)},[p.isItemVisible(n)&&!p.getItemProp(n,"separator")?(i.openBlock(),i.createElementBlock("li",{key:0,id:p.getItemId(n),style:i.normalizeStyle(p.getItemProp(n,"style")),class:i.normalizeClass(p.getItemClass(n)),role:"menuitem","aria-label":p.getItemLabel(n),"aria-disabled":p.isItemDisabled(n)||void 0,"aria-expanded":p.isItemGroup(n)?p.isItemActive(n):void 0,"aria-haspopup":p.isItemGroup(n)&&!p.getItemProp(n,"to")?"menu":void 0,"aria-level":s.level+1,"aria-setsize":p.getAriaSetSize(),"aria-posinset":p.getAriaPosInset(h)},[i.createElementVNode("div",{class:"p-menuitem-content",onClick:e=>p.onItemClick(e,n),onMouseenter:e=>p.onItemMouseEnter(e,n)},[s.template?(i.openBlock(),i.createBlock(i.resolveDynamicComponent(s.template),{key:1,item:n.item},null,8,["item"])):(i.openBlock(),i.createElementBlock(i.Fragment,{key:0},[p.getItemProp(n,"to")&&!p.isItemDisabled(n)?(i.openBlock(),i.createBlock(f,{key:0,to:p.getItemProp(n,"to"),custom:""},{default:i.withCtx((({navigate:e,href:t,isActive:s,isExactActive:o})=>[i.withDirectives((i.openBlock(),i.createElementBlock("a",{href:t,class:i.normalizeClass(p.getItemActionClass(n,{isActive:s,isExactActive:o})),tabindex:"-1","aria-hidden":"true",onClick:t=>p.onItemActionClick(t,e)},[p.getItemProp(n,"icon")?(i.openBlock(),i.createElementBlock("span",{key:0,class:i.normalizeClass(p.getItemIconClass(n))},null,2)):i.createCommentVNode("",!0),i.createElementVNode("span",r,i.toDisplayString(p.getItemLabel(n)),1)],10,m)),[[y]])])),_:2},1032,["to"])):i.withDirectives((i.openBlock(),i.createElementBlock("a",{key:1,href:p.getItemProp(n,"url"),class:i.normalizeClass(p.getItemActionClass(n)),target:p.getItemProp(n,"target"),tabindex:"-1","aria-hidden":"true"},[p.getItemProp(n,"icon")?(i.openBlock(),i.createElementBlock("span",{key:0,class:i.normalizeClass(p.getItemIconClass(n))},null,2)):i.createCommentVNode("",!0),i.createElementVNode("span",c,i.toDisplayString(p.getItemLabel(n)),1),p.isItemGroup(n)?(i.openBlock(),i.createElementBlock("span",{key:1,class:i.normalizeClass(p.getItemToggleIconClass())},null,2)):i.createCommentVNode("",!0)],10,l)),[[y]])],64))],40,a),p.isItemVisible(n)&&p.isItemGroup(n)?(i.openBlock(),i.createElementBlock("div",d,[i.createElementVNode("div",u,[(i.openBlock(!0),i.createElementBlock(i.Fragment,null,i.renderList(n.items,(o=>(i.openBlock(),i.createElementBlock("div",{key:p.getItemKey(o),class:i.normalizeClass(p.getColumnClass(n))},[(i.openBlock(!0),i.createElementBlock(i.Fragment,null,i.renderList(o,(n=>(i.openBlock(),i.createBlock(g,{key:p.getSubListKey(n),id:p.getSubListId(n),role:"menu",class:"p-submenu-list p-megamenu-submenu",menuId:s.menuId,focusedItemId:s.focusedItemId,submenu:n,items:n.items,template:s.template,exact:s.exact,level:s.level+1,onItemClick:t[0]||(t[0]=t=>e.$emit("item-click",t)),onItemMouseenter:t[1]||(t[1]=t=>e.$emit("item-mouseenter",t))},null,8,["id","menuId","focusedItemId","submenu","items","template","exact","level"])))),128))],2)))),128))])])):i.createCommentVNode("",!0)],14,o)):i.createCommentVNode("",!0),p.isItemVisible(n)&&p.getItemProp(n,"separator")?(i.openBlock(),i.createElementBlock("li",{key:1,id:p.getItemId(n),style:i.normalizeStyle(p.getItemProp(n,"style")),class:i.normalizeClass(p.getSeparatorItemClass(n)),role:"separator"},null,14,I)):i.createCommentVNode("",!0)],64)))),128))])};var h={name:"MegaMenu",emits:["focus","blur"],props:{model:{type:Array,default:null},orientation:{type:String,default:"horizontal"},exact:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},tabindex:{type:Number,default:0},"aria-labelledby":{type:String,default:null},"aria-label":{type:String,default:null}},outsideClickListener:null,resizeListener:null,container:null,menubar:null,searchTimeout:null,searchValue:null,data:()=>({focused:!1,focusedItemInfo:{index:-1,key:"",parentKey:""},activeItem:null,dirty:!1}),watch:{activeItem(t){e.ObjectUtils.isNotEmpty(t)?(this.bindOutsideClickListener(),this.bindResizeListener()):(this.unbindOutsideClickListener(),this.unbindResizeListener())}},beforeUnmount(){this.unbindOutsideClickListener(),this.unbindResizeListener()},methods:{getItemProp:(t,i)=>t?e.ObjectUtils.getItemValue(t[i]):void 0,getItemLabel(e){return this.getItemProp(e,"label")},isItemDisabled(e){return this.getItemProp(e,"disabled")},isItemGroup(t){return e.ObjectUtils.isNotEmpty(this.getItemProp(t,"items"))},isItemSeparator(e){return this.getItemProp(e,"separator")},getProccessedItemLabel(e){return e?this.getItemLabel(e.item):void 0},isProccessedItemGroup:t=>t&&e.ObjectUtils.isNotEmpty(t.items),hide(t,i){this.activeItem=null,this.focusedItemInfo={index:-1,key:"",parentKey:""},i&&e.DomHandler.focus(this.menubar),this.dirty=!1},onFocus(e){if(this.focused=!0,-1===this.focusedItemInfo.index){const e=this.findFirstFocusedItemIndex(),t=this.findVisibleItem(e);this.focusedItemInfo={index:e,key:t.key,parentKey:t.parentKey}}this.$emit("focus",e)},onBlur(e){this.focused=!1,this.focusedItemInfo={index:-1,key:"",parentKey:""},this.searchValue="",this.dirty=!1,this.$emit("blur",e)},onKeyDown(t){if(this.disabled)return void t.preventDefault();const i=t.metaKey||t.ctrlKey;switch(t.code){case"ArrowDown":this.onArrowDownKey(t);break;case"ArrowUp":this.onArrowUpKey(t);break;case"ArrowLeft":this.onArrowLeftKey(t);break;case"ArrowRight":this.onArrowRightKey(t);break;case"Home":this.onHomeKey(t);break;case"End":this.onEndKey(t);break;case"Space":this.onSpaceKey(t);break;case"Enter":this.onEnterKey(t);break;case"Escape":this.onEscapeKey(t);break;case"Tab":this.onTabKey(t);break;case"PageDown":case"PageUp":case"Backspace":case"ShiftLeft":case"ShiftRight":break;default:!i&&e.ObjectUtils.isPrintableCharacter(t.key)&&this.searchItems(t,t.key)}},onItemChange(t){const{processedItem:i,isFocus:s}=t;if(e.ObjectUtils.isEmpty(i))return;const{index:n,key:o,parentKey:a,items:m}=i,r=e.ObjectUtils.isNotEmpty(m);r&&(this.activeItem=i),this.focusedItemInfo={index:n,key:o,parentKey:a},r&&(this.dirty=!0),s&&e.DomHandler.focus(this.menubar)},onItemClick(t){const{originalEvent:i,processedItem:s}=t,n=this.isProccessedItemGroup(s),o=e.ObjectUtils.isEmpty(s.parent);if(this.isSelected(s)){const{index:t,key:i,parentKey:n}=s;this.activeItem=null,this.focusedItemInfo={index:t,key:i,parentKey:n},this.dirty=!o,e.DomHandler.focus(this.menubar)}else if(n)this.onItemChange(t);else{const t=o?s:this.activeItem;this.hide(i),this.changeFocusedItemInfo(i,t?t.index:-1),e.DomHandler.focus(this.menubar)}},onItemMouseEnter(e){this.dirty&&this.onItemChange(e)},onArrowDownKey(t){if(this.horizontal)if(e.ObjectUtils.isNotEmpty(this.activeItem)&&this.activeItem.key===this.focusedItemInfo.key)this.focusedItemInfo={index:-1,key:"",parentKey:this.activeItem.key};else{const e=this.findVisibleItem(this.focusedItemInfo.index);this.isProccessedItemGroup(e)&&(this.onItemChange({originalEvent:t,processedItem:e}),this.focusedItemInfo={index:-1,key:e.key,parentKey:e.parentKey},this.searchValue="")}const i=-1!==this.focusedItemInfo.index?this.findNextItemIndex(this.focusedItemInfo.index):this.findFirstFocusedItemIndex();this.changeFocusedItemInfo(t,i),t.preventDefault()},onArrowUpKey(t){if(t.altKey&&this.horizontal){if(-1!==this.focusedItemInfo.index){const i=this.findVisibleItem(this.focusedItemInfo.index);!this.isProccessedItemGroup(i)&&e.ObjectUtils.isNotEmpty(this.activeItem)&&(0===this.focusedItemInfo.index?(this.focusedItemInfo={index:this.activeItem.index,key:this.activeItem.key,parentKey:this.activeItem.parentKey},this.activeItem=null):this.changeFocusedItemInfo(t,this.findFirstItemIndex()))}t.preventDefault()}else{const e=-1!==this.focusedItemInfo.index?this.findPrevItemIndex(this.focusedItemInfo.index):this.findLastFocusedItemIndex();this.changeFocusedItemInfo(t,e),t.preventDefault()}},onArrowLeftKey(t){const i=this.findVisibleItem(this.focusedItemInfo.index);if(this.isProccessedItemGroup(i)){if(this.horizontal){const e=-1!==this.focusedItemInfo.index?this.findPrevItemIndex(this.focusedItemInfo.index):this.findLastFocusedItemIndex();this.changeFocusedItemInfo(t,e)}}else{this.vertical&&e.ObjectUtils.isNotEmpty(this.activeItem)&&0===i.columnIndex&&(this.focusedItemInfo={index:this.activeItem.index,key:this.activeItem.key,parentKey:this.activeItem.parentKey},this.activeItem=null);const s=i.columnIndex-1,n=this.visibleItems.findIndex((e=>e.columnIndex===s));-1!==n&&this.changeFocusedItemInfo(t,n)}t.preventDefault()},onArrowRightKey(t){const i=this.findVisibleItem(this.focusedItemInfo.index);if(this.isProccessedItemGroup(i)){if(this.vertical)if(e.ObjectUtils.isNotEmpty(this.activeItem)&&this.activeItem.key===i.key)this.focusedItemInfo={index:-1,key:"",parentKey:this.activeItem.key};else{const e=this.findVisibleItem(this.focusedItemInfo.index);this.isProccessedItemGroup(e)&&(this.onItemChange({originalEvent:t,processedItem:e}),this.focusedItemInfo={index:-1,key:e.key,parentKey:e.parentKey},this.searchValue="")}const s=-1!==this.focusedItemInfo.index?this.findNextItemIndex(this.focusedItemInfo.index):this.findFirstFocusedItemIndex();this.changeFocusedItemInfo(t,s)}else{const e=i.columnIndex+1,s=this.visibleItems.findIndex((t=>t.columnIndex===e));-1!==s&&this.changeFocusedItemInfo(t,s)}t.preventDefault()},onHomeKey(e){this.changeFocusedItemInfo(e,this.findFirstItemIndex()),e.preventDefault()},onEndKey(e){this.changeFocusedItemInfo(e,this.findLastItemIndex()),e.preventDefault()},onEnterKey(t){if(-1!==this.focusedItemInfo.index){const i=e.DomHandler.findSingle(this.menubar,`li[id="${this.focusedItemId}"]`),s=i&&e.DomHandler.findSingle(i,".p-menuitem-link");s?s.click():i&&i.click();const n=this.visibleItems[this.focusedItemInfo.index];!this.isProccessedItemGroup(n)&&this.changeFocusedItemInfo(t,this.findFirstFocusedItemIndex())}t.preventDefault()},onSpaceKey(e){this.onEnterKey(e)},onEscapeKey(t){e.ObjectUtils.isNotEmpty(this.activeItem)&&(this.focusedItemInfo={index:this.activeItem.index,key:this.activeItem.key},this.activeItem=null),t.preventDefault()},onTabKey(e){if(-1!==this.focusedItemInfo.index){const t=this.findVisibleItem(this.focusedItemInfo.index);!this.isProccessedItemGroup(t)&&this.onItemChange({originalEvent:e,processedItem:t})}this.hide()},bindOutsideClickListener(){this.outsideClickListener||(this.outsideClickListener=e=>{const t=this.container&&!this.container.contains(e.target),i=!this.popup||!(this.target&&(this.target===e.target||this.target.contains(e.target)));t&&i&&this.hide()},document.addEventListener("click",this.outsideClickListener))},unbindOutsideClickListener(){this.outsideClickListener&&(document.removeEventListener("click",this.outsideClickListener),this.outsideClickListener=null)},bindResizeListener(){this.resizeListener||(this.resizeListener=t=>{e.DomHandler.isTouchDevice()||this.hide(t,!0)},window.addEventListener("resize",this.resizeListener))},unbindResizeListener(){this.resizeListener&&(window.removeEventListener("resize",this.resizeListener),this.resizeListener=null)},isItemMatched(e){return this.isValidItem(e)&&this.getProccessedItemLabel(e).toLocaleLowerCase().startsWith(this.searchValue.toLocaleLowerCase())},isValidItem(e){return!!e&&!this.isItemDisabled(e.item)&&!this.isItemSeparator(e.item)},isValidSelectedItem(e){return this.isValidItem(e)&&this.isSelected(e)},isSelected(t){return!!e.ObjectUtils.isNotEmpty(this.activeItem)&&this.activeItem.key===t.key},findFirstItemIndex(){return this.visibleItems.findIndex((e=>this.isValidItem(e)))},findLastItemIndex(){return e.ObjectUtils.findLastIndex(this.visibleItems,(e=>this.isValidItem(e)))},findNextItemIndex(e){const t=e<this.visibleItems.length-1?this.visibleItems.slice(e+1).findIndex((e=>this.isValidItem(e))):-1;return t>-1?t+e+1:e},findPrevItemIndex(t){const i=t>0?e.ObjectUtils.findLastIndex(this.visibleItems.slice(0,t),(e=>this.isValidItem(e))):-1;return i>-1?i:t},findSelectedItemIndex(){return this.visibleItems.findIndex((e=>this.isValidSelectedItem(e)))},findFirstFocusedItemIndex(){const e=this.findSelectedItemIndex();return e<0?this.findFirstItemIndex():e},findLastFocusedItemIndex(){const e=this.findSelectedItemIndex();return e<0?this.findLastItemIndex():e},findVisibleItem(t){return e.ObjectUtils.isNotEmpty(this.visibleItems)?this.visibleItems[t]:null},searchItems(e,t){this.searchValue=(this.searchValue||"")+t;let i=-1,s=!1;return-1!==this.focusedItemInfo.index?(i=this.visibleItems.slice(this.focusedItemInfo.index).findIndex((e=>this.isItemMatched(e))),i=-1===i?this.visibleItems.slice(0,this.focusedItemInfo.index).findIndex((e=>this.isItemMatched(e))):i+this.focusedItemInfo.index):i=this.visibleItems.findIndex((e=>this.isItemMatched(e))),-1!==i&&(s=!0),-1===i&&-1===this.focusedItemInfo.index&&(i=this.findFirstFocusedItemIndex()),-1!==i&&this.changeFocusedItemInfo(e,i),this.searchTimeout&&clearTimeout(this.searchTimeout),this.searchTimeout=setTimeout((()=>{this.searchValue="",this.searchTimeout=null}),500),s},changeFocusedItemInfo(t,i){const s=this.findVisibleItem(i);this.focusedItemInfo.index=i,this.focusedItemInfo.key=e.ObjectUtils.isNotEmpty(s)?s.key:"",this.scrollInView()},scrollInView(t=-1){const i=-1!==t?`${this.id}_${t}`:this.focusedItemId,s=e.DomHandler.findSingle(this.menubar,`li[id="${i}"]`);s&&s.scrollIntoView&&s.scrollIntoView({block:"nearest",inline:"start"})},createProcessedItems(e,t=0,i={},s="",n){const o=[];return e&&e.forEach(((e,a)=>{const m=(""!==s?s+"_":"")+(void 0!==n?n+"_":"")+a,r={item:e,index:a,level:t,key:m,parent:i,parentKey:s,columnIndex:void 0!==n?n:void 0!==i.columnIndex?i.columnIndex:a};r.items=0===t&&e.items&&e.items.length>0?e.items.map(((e,i)=>this.createProcessedItems(e,t+1,r,m,i))):this.createProcessedItems(e.items,t+1,r,m),o.push(r)})),o},containerRef(e){this.container=e},menubarRef(e){this.menubar=e?e.$el:void 0}},computed:{containerClass(){return["p-megamenu p-component",{"p-megamenu-horizontal":this.horizontal,"p-megamenu-vertical":this.vertical}]},processedItems(){return this.createProcessedItems(this.model||[])},visibleItems(){const t=e.ObjectUtils.isNotEmpty(this.activeItem)?this.activeItem:null;return t&&t.key===this.focusedItemInfo.parentKey?t.items.reduce(((e,t)=>(t.forEach((t=>{t.items.forEach((t=>{e.push(t)}))})),e)),[]):this.processedItems},horizontal(){return"horizontal"===this.orientation},vertical(){return"vertical"===this.orientation},id(){return this.$attrs.id||e.UniqueComponentId()},focusedItemId(){return e.ObjectUtils.isNotEmpty(this.focusedItemInfo.key)?`${this.id}_${this.focusedItemInfo.key}`:null}},components:{MegaMenuSub:n}};const p=["id"],f={key:0,class:"p-megamenu-start"},g={key:1,class:"p-megamenu-end"};!function(e,t){void 0===t&&(t={});var i=t.insertAt;if(e&&"undefined"!=typeof document){var s=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css","top"===i&&s.firstChild?s.insertBefore(n,s.firstChild):s.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}}("\n.p-megamenu-root-list {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.p-megamenu-root-list > .p-menuitem {\n position: relative;\n}\n.p-megamenu .p-menuitem-link {\n cursor: pointer;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n position: relative;\n}\n.p-megamenu .p-menuitem-text {\n line-height: 1;\n}\n.p-megamenu-panel {\n display: none;\n position: absolute;\n width: auto;\n z-index: 1;\n}\n.p-megamenu-root-list > .p-menuitem-active > .p-megamenu-panel {\n display: block;\n}\n.p-megamenu-submenu {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n/* Horizontal */\n.p-megamenu-horizontal .p-megamenu-root-list {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n}\n\n/* Vertical */\n.p-megamenu-vertical .p-megamenu-root-list {\n flex-direction: column;\n}\n.p-megamenu-vertical .p-megamenu-root-list > .p-menuitem-active > .p-megamenu-panel {\n left: 100%;\n top: 0;\n}\n.p-megamenu-vertical .p-megamenu-root-list > .p-menuitem > .p-menuitem-content > .p-menuitem-link > .p-submenu-icon {\n margin-left: auto;\n}\n.p-megamenu-grid {\n display: flex;\n}\n.p-megamenu-col-2,\n.p-megamenu-col-3,\n.p-megamenu-col-4,\n.p-megamenu-col-6,\n.p-megamenu-col-12 {\n flex: 0 0 auto;\n padding: 0.5rem;\n}\n.p-megamenu-col-2 {\n width: 16.6667%;\n}\n.p-megamenu-col-3 {\n width: 25%;\n}\n.p-megamenu-col-4 {\n width: 33.3333%;\n}\n.p-megamenu-col-6 {\n width: 50%;\n}\n.p-megamenu-col-12 {\n width: 100%;\n}\n"),h.render=function(e,t,s,n,o,a){const m=i.resolveComponent("MegaMenuSub");return i.openBlock(),i.createElementBlock("div",{ref:a.containerRef,id:a.id,class:i.normalizeClass(a.containerClass)},[e.$slots.start?(i.openBlock(),i.createElementBlock("div",f,[i.renderSlot(e.$slots,"start")])):i.createCommentVNode("",!0),i.createVNode(m,{ref:a.menubarRef,id:a.id+"_list",class:"p-megamenu-root-list",tabindex:s.disabled?-1:s.tabindex,role:"menubar","aria-label":e.ariaLabel,"aria-labelledby":e.ariaLabelledby,"aria-disabled":s.disabled||void 0,"aria-orientation":s.orientation,"aria-activedescendant":o.focused?a.focusedItemId:void 0,menuId:a.id,focusedItemId:o.focused?a.focusedItemId:void 0,items:a.processedItems,horizontal:a.horizontal,template:e.$slots.item,activeItem:o.activeItem,exact:s.exact,level:0,onFocus:a.onFocus,onBlur:a.onBlur,onKeydown:a.onKeyDown,onItemClick:a.onItemClick,onItemMouseenter:a.onItemMouseEnter},null,8,["id","tabindex","aria-label","aria-labelledby","aria-disabled","aria-orientation","aria-activedescendant","menuId","focusedItemId","items","horizontal","template","activeItem","exact","onFocus","onBlur","onKeydown","onItemClick","onItemMouseenter"]),e.$slots.end?(i.openBlock(),i.createElementBlock("div",g,[i.renderSlot(e.$slots,"end")])):i.createCommentVNode("",!0)],10,p)},module.exports=h;
1
+ "use strict";var e=require("primevue/utils"),t=require("primevue/ripple"),i=require("vue");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n={name:"MegaMenuSub",emits:["item-click","item-mouseenter"],props:{menuId:{type:String,default:null},focusedItemId:{type:String,default:null},horizontal:{type:Boolean,default:!1},submenu:{type:Object,default:null},items:{type:Array,default:null},level:{type:Number,default:0},template:{type:Function,default:null},activeItem:{type:Object,default:null},exact:{type:Boolean,default:!0}},methods:{getSubListId(e){return`${this.getItemId(e)}_list`},getSubListKey(e){return this.getSubListId(e)},getItemId(e){return`${this.menuId}_${e.key}`},getItemKey(e){return this.getItemId(e)},getItemProp:(t,i,s)=>t&&t.item?e.ObjectUtils.getItemValue(t.item[i],s):void 0,getItemLabel(e){return this.getItemProp(e,"label")},isItemActive(t){return!!e.ObjectUtils.isNotEmpty(this.activeItem)&&this.activeItem.key===t.key},isItemVisible(e){return!1!==this.getItemProp(e,"visible")},isItemDisabled(e){return this.getItemProp(e,"disabled")},isItemFocused(e){return this.focusedItemId===this.getItemId(e)},isItemGroup:t=>e.ObjectUtils.isNotEmpty(t.items),onItemClick(e,t){this.getItemProp(t,"command",{originalEvent:e,item:t.item}),this.$emit("item-click",{originalEvent:e,processedItem:t,isFocus:!0})},onItemMouseEnter(e,t){this.$emit("item-mouseenter",{originalEvent:e,processedItem:t})},onItemActionClick(e,t){t&&t(e)},getAriaSetSize(){return this.items.filter((e=>this.isItemVisible(e)&&!this.getItemProp(e,"separator"))).length},getAriaPosInset(e){return e-this.items.slice(0,e).filter((e=>this.isItemVisible(e)&&this.getItemProp(e,"separator"))).length+1},getSubmenuHeaderClass(e){return["p-megamenu-submenu-header p-submenu-header",this.getItemProp(e,"class"),{"p-disabled":this.isItemDisabled(e)}]},getColumnClass(e){let t;switch(this.isItemGroup(e)?e.items.length:0){case 2:t="p-megamenu-col-6";break;case 3:t="p-megamenu-col-4";break;case 4:t="p-megamenu-col-3";break;case 6:t="p-megamenu-col-2";break;default:t="p-megamenu-col-12"}return t},getItemClass(e){return["p-menuitem",this.getItemProp(e,"class"),{"p-menuitem-active p-highlight":this.isItemActive(e),"p-focus":this.isItemFocused(e),"p-disabled":this.isItemDisabled(e)}]},getItemActionClass(e,t){return["p-menuitem-link",{"router-link-active":t&&t.isActive,"router-link-active-exact":this.exact&&t&&t.isExactActive}]},getItemIconClass(e){return["p-menuitem-icon",this.getItemProp(e,"icon")]},getItemToggleIconClass(){return["p-submenu-icon",this.horizontal?"pi pi-angle-down":"pi pi-angle-right"]},getSeparatorItemClass(e){return["p-menuitem-separator",this.getItemProp(e,"class")]}},directives:{ripple:s(t).default}};const o=["id","aria-label","aria-disabled","aria-expanded","aria-haspopup","aria-level","aria-setsize","aria-posinset"],a=["onClick","onMouseenter"],m=["href","onClick"],r={class:"p-menuitem-text"},l=["href","target"],c={class:"p-menuitem-text"},d={key:0,class:"p-megamenu-panel"},u={class:"p-megamenu-grid"},I=["id"];n.render=function(e,t,s,n,h,p){const f=i.resolveComponent("router-link"),g=i.resolveComponent("MegaMenuSub",!0),y=i.resolveDirective("ripple");return i.openBlock(),i.createElementBlock("ul",null,[s.submenu?(i.openBlock(),i.createElementBlock("li",{key:0,class:i.normalizeClass(p.getSubmenuHeaderClass(s.submenu)),style:i.normalizeStyle(p.getItemProp(s.submenu,"style")),role:"presentation"},i.toDisplayString(p.getItemLabel(s.submenu)),7)):i.createCommentVNode("",!0),(i.openBlock(!0),i.createElementBlock(i.Fragment,null,i.renderList(s.items,((n,h)=>(i.openBlock(),i.createElementBlock(i.Fragment,{key:p.getItemKey(n)},[p.isItemVisible(n)&&!p.getItemProp(n,"separator")?(i.openBlock(),i.createElementBlock("li",{key:0,id:p.getItemId(n),style:i.normalizeStyle(p.getItemProp(n,"style")),class:i.normalizeClass(p.getItemClass(n)),role:"menuitem","aria-label":p.getItemLabel(n),"aria-disabled":p.isItemDisabled(n)||void 0,"aria-expanded":p.isItemGroup(n)?p.isItemActive(n):void 0,"aria-haspopup":p.isItemGroup(n)&&!p.getItemProp(n,"to")?"menu":void 0,"aria-level":s.level+1,"aria-setsize":p.getAriaSetSize(),"aria-posinset":p.getAriaPosInset(h)},[i.createElementVNode("div",{class:"p-menuitem-content",onClick:e=>p.onItemClick(e,n),onMouseenter:e=>p.onItemMouseEnter(e,n)},[s.template?(i.openBlock(),i.createBlock(i.resolveDynamicComponent(s.template),{key:1,item:n.item},null,8,["item"])):(i.openBlock(),i.createElementBlock(i.Fragment,{key:0},[p.getItemProp(n,"to")&&!p.isItemDisabled(n)?(i.openBlock(),i.createBlock(f,{key:0,to:p.getItemProp(n,"to"),custom:""},{default:i.withCtx((({navigate:e,href:t,isActive:s,isExactActive:o})=>[i.withDirectives((i.openBlock(),i.createElementBlock("a",{href:t,class:i.normalizeClass(p.getItemActionClass(n,{isActive:s,isExactActive:o})),tabindex:"-1","aria-hidden":"true",onClick:t=>p.onItemActionClick(t,e)},[p.getItemProp(n,"icon")?(i.openBlock(),i.createElementBlock("span",{key:0,class:i.normalizeClass(p.getItemIconClass(n))},null,2)):i.createCommentVNode("",!0),i.createElementVNode("span",r,i.toDisplayString(p.getItemLabel(n)),1)],10,m)),[[y]])])),_:2},1032,["to"])):i.withDirectives((i.openBlock(),i.createElementBlock("a",{key:1,href:p.getItemProp(n,"url"),class:i.normalizeClass(p.getItemActionClass(n)),target:p.getItemProp(n,"target"),tabindex:"-1","aria-hidden":"true"},[p.getItemProp(n,"icon")?(i.openBlock(),i.createElementBlock("span",{key:0,class:i.normalizeClass(p.getItemIconClass(n))},null,2)):i.createCommentVNode("",!0),i.createElementVNode("span",c,i.toDisplayString(p.getItemLabel(n)),1),p.isItemGroup(n)?(i.openBlock(),i.createElementBlock("span",{key:1,class:i.normalizeClass(p.getItemToggleIconClass())},null,2)):i.createCommentVNode("",!0)],10,l)),[[y]])],64))],40,a),p.isItemVisible(n)&&p.isItemGroup(n)?(i.openBlock(),i.createElementBlock("div",d,[i.createElementVNode("div",u,[(i.openBlock(!0),i.createElementBlock(i.Fragment,null,i.renderList(n.items,(o=>(i.openBlock(),i.createElementBlock("div",{key:p.getItemKey(o),class:i.normalizeClass(p.getColumnClass(n))},[(i.openBlock(!0),i.createElementBlock(i.Fragment,null,i.renderList(o,(n=>(i.openBlock(),i.createBlock(g,{key:p.getSubListKey(n),id:p.getSubListId(n),role:"menu",class:"p-submenu-list p-megamenu-submenu",menuId:s.menuId,focusedItemId:s.focusedItemId,submenu:n,items:n.items,template:s.template,exact:s.exact,level:s.level+1,onItemClick:t[0]||(t[0]=t=>e.$emit("item-click",t)),onItemMouseenter:t[1]||(t[1]=t=>e.$emit("item-mouseenter",t))},null,8,["id","menuId","focusedItemId","submenu","items","template","exact","level"])))),128))],2)))),128))])])):i.createCommentVNode("",!0)],14,o)):i.createCommentVNode("",!0),p.isItemVisible(n)&&p.getItemProp(n,"separator")?(i.openBlock(),i.createElementBlock("li",{key:1,id:p.getItemId(n),style:i.normalizeStyle(p.getItemProp(n,"style")),class:i.normalizeClass(p.getSeparatorItemClass(n)),role:"separator"},null,14,I)):i.createCommentVNode("",!0)],64)))),128))])};var h={name:"MegaMenu",emits:["focus","blur"],props:{model:{type:Array,default:null},orientation:{type:String,default:"horizontal"},exact:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},tabindex:{type:Number,default:0},"aria-labelledby":{type:String,default:null},"aria-label":{type:String,default:null}},outsideClickListener:null,resizeListener:null,container:null,menubar:null,searchTimeout:null,searchValue:null,data(){return{id:this.$attrs.id,focused:!1,focusedItemInfo:{index:-1,key:"",parentKey:""},activeItem:null,dirty:!1}},watch:{"$attrs.id":function(t){this.id=t||e.UniqueComponentId()},activeItem(t){e.ObjectUtils.isNotEmpty(t)?(this.bindOutsideClickListener(),this.bindResizeListener()):(this.unbindOutsideClickListener(),this.unbindResizeListener())}},mounted(){this.id=this.id||e.UniqueComponentId()},beforeUnmount(){this.unbindOutsideClickListener(),this.unbindResizeListener()},methods:{getItemProp:(t,i)=>t?e.ObjectUtils.getItemValue(t[i]):void 0,getItemLabel(e){return this.getItemProp(e,"label")},isItemDisabled(e){return this.getItemProp(e,"disabled")},isItemGroup(t){return e.ObjectUtils.isNotEmpty(this.getItemProp(t,"items"))},isItemSeparator(e){return this.getItemProp(e,"separator")},getProccessedItemLabel(e){return e?this.getItemLabel(e.item):void 0},isProccessedItemGroup:t=>t&&e.ObjectUtils.isNotEmpty(t.items),hide(t,i){this.activeItem=null,this.focusedItemInfo={index:-1,key:"",parentKey:""},i&&e.DomHandler.focus(this.menubar),this.dirty=!1},onFocus(e){if(this.focused=!0,-1===this.focusedItemInfo.index){const e=this.findFirstFocusedItemIndex(),t=this.findVisibleItem(e);this.focusedItemInfo={index:e,key:t.key,parentKey:t.parentKey}}this.$emit("focus",e)},onBlur(e){this.focused=!1,this.focusedItemInfo={index:-1,key:"",parentKey:""},this.searchValue="",this.dirty=!1,this.$emit("blur",e)},onKeyDown(t){if(this.disabled)return void t.preventDefault();const i=t.metaKey||t.ctrlKey;switch(t.code){case"ArrowDown":this.onArrowDownKey(t);break;case"ArrowUp":this.onArrowUpKey(t);break;case"ArrowLeft":this.onArrowLeftKey(t);break;case"ArrowRight":this.onArrowRightKey(t);break;case"Home":this.onHomeKey(t);break;case"End":this.onEndKey(t);break;case"Space":this.onSpaceKey(t);break;case"Enter":this.onEnterKey(t);break;case"Escape":this.onEscapeKey(t);break;case"Tab":this.onTabKey(t);break;case"PageDown":case"PageUp":case"Backspace":case"ShiftLeft":case"ShiftRight":break;default:!i&&e.ObjectUtils.isPrintableCharacter(t.key)&&this.searchItems(t,t.key)}},onItemChange(t){const{processedItem:i,isFocus:s}=t;if(e.ObjectUtils.isEmpty(i))return;const{index:n,key:o,parentKey:a,items:m}=i,r=e.ObjectUtils.isNotEmpty(m);r&&(this.activeItem=i),this.focusedItemInfo={index:n,key:o,parentKey:a},r&&(this.dirty=!0),s&&e.DomHandler.focus(this.menubar)},onItemClick(t){const{originalEvent:i,processedItem:s}=t,n=this.isProccessedItemGroup(s),o=e.ObjectUtils.isEmpty(s.parent);if(this.isSelected(s)){const{index:t,key:i,parentKey:n}=s;this.activeItem=null,this.focusedItemInfo={index:t,key:i,parentKey:n},this.dirty=!o,e.DomHandler.focus(this.menubar)}else if(n)this.onItemChange(t);else{const t=o?s:this.activeItem;this.hide(i),this.changeFocusedItemInfo(i,t?t.index:-1),e.DomHandler.focus(this.menubar)}},onItemMouseEnter(e){this.dirty&&this.onItemChange(e)},onArrowDownKey(t){if(this.horizontal)if(e.ObjectUtils.isNotEmpty(this.activeItem)&&this.activeItem.key===this.focusedItemInfo.key)this.focusedItemInfo={index:-1,key:"",parentKey:this.activeItem.key};else{const e=this.findVisibleItem(this.focusedItemInfo.index);this.isProccessedItemGroup(e)&&(this.onItemChange({originalEvent:t,processedItem:e}),this.focusedItemInfo={index:-1,key:e.key,parentKey:e.parentKey},this.searchValue="")}const i=-1!==this.focusedItemInfo.index?this.findNextItemIndex(this.focusedItemInfo.index):this.findFirstFocusedItemIndex();this.changeFocusedItemInfo(t,i),t.preventDefault()},onArrowUpKey(t){if(t.altKey&&this.horizontal){if(-1!==this.focusedItemInfo.index){const i=this.findVisibleItem(this.focusedItemInfo.index);!this.isProccessedItemGroup(i)&&e.ObjectUtils.isNotEmpty(this.activeItem)&&(0===this.focusedItemInfo.index?(this.focusedItemInfo={index:this.activeItem.index,key:this.activeItem.key,parentKey:this.activeItem.parentKey},this.activeItem=null):this.changeFocusedItemInfo(t,this.findFirstItemIndex()))}t.preventDefault()}else{const e=-1!==this.focusedItemInfo.index?this.findPrevItemIndex(this.focusedItemInfo.index):this.findLastFocusedItemIndex();this.changeFocusedItemInfo(t,e),t.preventDefault()}},onArrowLeftKey(t){const i=this.findVisibleItem(this.focusedItemInfo.index);if(this.isProccessedItemGroup(i)){if(this.horizontal){const e=-1!==this.focusedItemInfo.index?this.findPrevItemIndex(this.focusedItemInfo.index):this.findLastFocusedItemIndex();this.changeFocusedItemInfo(t,e)}}else{this.vertical&&e.ObjectUtils.isNotEmpty(this.activeItem)&&0===i.columnIndex&&(this.focusedItemInfo={index:this.activeItem.index,key:this.activeItem.key,parentKey:this.activeItem.parentKey},this.activeItem=null);const s=i.columnIndex-1,n=this.visibleItems.findIndex((e=>e.columnIndex===s));-1!==n&&this.changeFocusedItemInfo(t,n)}t.preventDefault()},onArrowRightKey(t){const i=this.findVisibleItem(this.focusedItemInfo.index);if(this.isProccessedItemGroup(i)){if(this.vertical)if(e.ObjectUtils.isNotEmpty(this.activeItem)&&this.activeItem.key===i.key)this.focusedItemInfo={index:-1,key:"",parentKey:this.activeItem.key};else{const e=this.findVisibleItem(this.focusedItemInfo.index);this.isProccessedItemGroup(e)&&(this.onItemChange({originalEvent:t,processedItem:e}),this.focusedItemInfo={index:-1,key:e.key,parentKey:e.parentKey},this.searchValue="")}const s=-1!==this.focusedItemInfo.index?this.findNextItemIndex(this.focusedItemInfo.index):this.findFirstFocusedItemIndex();this.changeFocusedItemInfo(t,s)}else{const e=i.columnIndex+1,s=this.visibleItems.findIndex((t=>t.columnIndex===e));-1!==s&&this.changeFocusedItemInfo(t,s)}t.preventDefault()},onHomeKey(e){this.changeFocusedItemInfo(e,this.findFirstItemIndex()),e.preventDefault()},onEndKey(e){this.changeFocusedItemInfo(e,this.findLastItemIndex()),e.preventDefault()},onEnterKey(t){if(-1!==this.focusedItemInfo.index){const i=e.DomHandler.findSingle(this.menubar,`li[id="${this.focusedItemId}"]`),s=i&&e.DomHandler.findSingle(i,".p-menuitem-link");s?s.click():i&&i.click();const n=this.visibleItems[this.focusedItemInfo.index];!this.isProccessedItemGroup(n)&&this.changeFocusedItemInfo(t,this.findFirstFocusedItemIndex())}t.preventDefault()},onSpaceKey(e){this.onEnterKey(e)},onEscapeKey(t){e.ObjectUtils.isNotEmpty(this.activeItem)&&(this.focusedItemInfo={index:this.activeItem.index,key:this.activeItem.key},this.activeItem=null),t.preventDefault()},onTabKey(e){if(-1!==this.focusedItemInfo.index){const t=this.findVisibleItem(this.focusedItemInfo.index);!this.isProccessedItemGroup(t)&&this.onItemChange({originalEvent:e,processedItem:t})}this.hide()},bindOutsideClickListener(){this.outsideClickListener||(this.outsideClickListener=e=>{const t=this.container&&!this.container.contains(e.target),i=!this.popup||!(this.target&&(this.target===e.target||this.target.contains(e.target)));t&&i&&this.hide()},document.addEventListener("click",this.outsideClickListener))},unbindOutsideClickListener(){this.outsideClickListener&&(document.removeEventListener("click",this.outsideClickListener),this.outsideClickListener=null)},bindResizeListener(){this.resizeListener||(this.resizeListener=t=>{e.DomHandler.isTouchDevice()||this.hide(t,!0)},window.addEventListener("resize",this.resizeListener))},unbindResizeListener(){this.resizeListener&&(window.removeEventListener("resize",this.resizeListener),this.resizeListener=null)},isItemMatched(e){return this.isValidItem(e)&&this.getProccessedItemLabel(e).toLocaleLowerCase().startsWith(this.searchValue.toLocaleLowerCase())},isValidItem(e){return!!e&&!this.isItemDisabled(e.item)&&!this.isItemSeparator(e.item)},isValidSelectedItem(e){return this.isValidItem(e)&&this.isSelected(e)},isSelected(t){return!!e.ObjectUtils.isNotEmpty(this.activeItem)&&this.activeItem.key===t.key},findFirstItemIndex(){return this.visibleItems.findIndex((e=>this.isValidItem(e)))},findLastItemIndex(){return e.ObjectUtils.findLastIndex(this.visibleItems,(e=>this.isValidItem(e)))},findNextItemIndex(e){const t=e<this.visibleItems.length-1?this.visibleItems.slice(e+1).findIndex((e=>this.isValidItem(e))):-1;return t>-1?t+e+1:e},findPrevItemIndex(t){const i=t>0?e.ObjectUtils.findLastIndex(this.visibleItems.slice(0,t),(e=>this.isValidItem(e))):-1;return i>-1?i:t},findSelectedItemIndex(){return this.visibleItems.findIndex((e=>this.isValidSelectedItem(e)))},findFirstFocusedItemIndex(){const e=this.findSelectedItemIndex();return e<0?this.findFirstItemIndex():e},findLastFocusedItemIndex(){const e=this.findSelectedItemIndex();return e<0?this.findLastItemIndex():e},findVisibleItem(t){return e.ObjectUtils.isNotEmpty(this.visibleItems)?this.visibleItems[t]:null},searchItems(e,t){this.searchValue=(this.searchValue||"")+t;let i=-1,s=!1;return-1!==this.focusedItemInfo.index?(i=this.visibleItems.slice(this.focusedItemInfo.index).findIndex((e=>this.isItemMatched(e))),i=-1===i?this.visibleItems.slice(0,this.focusedItemInfo.index).findIndex((e=>this.isItemMatched(e))):i+this.focusedItemInfo.index):i=this.visibleItems.findIndex((e=>this.isItemMatched(e))),-1!==i&&(s=!0),-1===i&&-1===this.focusedItemInfo.index&&(i=this.findFirstFocusedItemIndex()),-1!==i&&this.changeFocusedItemInfo(e,i),this.searchTimeout&&clearTimeout(this.searchTimeout),this.searchTimeout=setTimeout((()=>{this.searchValue="",this.searchTimeout=null}),500),s},changeFocusedItemInfo(t,i){const s=this.findVisibleItem(i);this.focusedItemInfo.index=i,this.focusedItemInfo.key=e.ObjectUtils.isNotEmpty(s)?s.key:"",this.scrollInView()},scrollInView(t=-1){const i=-1!==t?`${this.id}_${t}`:this.focusedItemId,s=e.DomHandler.findSingle(this.menubar,`li[id="${i}"]`);s&&s.scrollIntoView&&s.scrollIntoView({block:"nearest",inline:"start"})},createProcessedItems(e,t=0,i={},s="",n){const o=[];return e&&e.forEach(((e,a)=>{const m=(""!==s?s+"_":"")+(void 0!==n?n+"_":"")+a,r={item:e,index:a,level:t,key:m,parent:i,parentKey:s,columnIndex:void 0!==n?n:void 0!==i.columnIndex?i.columnIndex:a};r.items=0===t&&e.items&&e.items.length>0?e.items.map(((e,i)=>this.createProcessedItems(e,t+1,r,m,i))):this.createProcessedItems(e.items,t+1,r,m),o.push(r)})),o},containerRef(e){this.container=e},menubarRef(e){this.menubar=e?e.$el:void 0}},computed:{containerClass(){return["p-megamenu p-component",{"p-megamenu-horizontal":this.horizontal,"p-megamenu-vertical":this.vertical}]},processedItems(){return this.createProcessedItems(this.model||[])},visibleItems(){const t=e.ObjectUtils.isNotEmpty(this.activeItem)?this.activeItem:null;return t&&t.key===this.focusedItemInfo.parentKey?t.items.reduce(((e,t)=>(t.forEach((t=>{t.items.forEach((t=>{e.push(t)}))})),e)),[]):this.processedItems},horizontal(){return"horizontal"===this.orientation},vertical(){return"vertical"===this.orientation},focusedItemId(){return e.ObjectUtils.isNotEmpty(this.focusedItemInfo.key)?`${this.id}_${this.focusedItemInfo.key}`:null}},components:{MegaMenuSub:n}};const p=["id"],f={key:0,class:"p-megamenu-start"},g={key:1,class:"p-megamenu-end"};!function(e,t){void 0===t&&(t={});var i=t.insertAt;if(e&&"undefined"!=typeof document){var s=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css","top"===i&&s.firstChild?s.insertBefore(n,s.firstChild):s.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}}("\n.p-megamenu-root-list {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.p-megamenu-root-list > .p-menuitem {\n position: relative;\n}\n.p-megamenu .p-menuitem-link {\n cursor: pointer;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n position: relative;\n}\n.p-megamenu .p-menuitem-text {\n line-height: 1;\n}\n.p-megamenu-panel {\n display: none;\n position: absolute;\n width: auto;\n z-index: 1;\n}\n.p-megamenu-root-list > .p-menuitem-active > .p-megamenu-panel {\n display: block;\n}\n.p-megamenu-submenu {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n/* Horizontal */\n.p-megamenu-horizontal .p-megamenu-root-list {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n}\n\n/* Vertical */\n.p-megamenu-vertical .p-megamenu-root-list {\n flex-direction: column;\n}\n.p-megamenu-vertical .p-megamenu-root-list > .p-menuitem-active > .p-megamenu-panel {\n left: 100%;\n top: 0;\n}\n.p-megamenu-vertical .p-megamenu-root-list > .p-menuitem > .p-menuitem-content > .p-menuitem-link > .p-submenu-icon {\n margin-left: auto;\n}\n.p-megamenu-grid {\n display: flex;\n}\n.p-megamenu-col-2,\n.p-megamenu-col-3,\n.p-megamenu-col-4,\n.p-megamenu-col-6,\n.p-megamenu-col-12 {\n flex: 0 0 auto;\n padding: 0.5rem;\n}\n.p-megamenu-col-2 {\n width: 16.6667%;\n}\n.p-megamenu-col-3 {\n width: 25%;\n}\n.p-megamenu-col-4 {\n width: 33.3333%;\n}\n.p-megamenu-col-6 {\n width: 50%;\n}\n.p-megamenu-col-12 {\n width: 100%;\n}\n"),h.render=function(e,t,s,n,o,a){const m=i.resolveComponent("MegaMenuSub");return i.openBlock(),i.createElementBlock("div",{ref:a.containerRef,id:o.id,class:i.normalizeClass(a.containerClass)},[e.$slots.start?(i.openBlock(),i.createElementBlock("div",f,[i.renderSlot(e.$slots,"start")])):i.createCommentVNode("",!0),i.createVNode(m,{ref:a.menubarRef,id:o.id+"_list",class:"p-megamenu-root-list",tabindex:s.disabled?-1:s.tabindex,role:"menubar","aria-label":e.ariaLabel,"aria-labelledby":e.ariaLabelledby,"aria-disabled":s.disabled||void 0,"aria-orientation":s.orientation,"aria-activedescendant":o.focused?a.focusedItemId:void 0,menuId:o.id,focusedItemId:o.focused?a.focusedItemId:void 0,items:a.processedItems,horizontal:a.horizontal,template:e.$slots.item,activeItem:o.activeItem,exact:s.exact,level:0,onFocus:a.onFocus,onBlur:a.onBlur,onKeydown:a.onKeyDown,onItemClick:a.onItemClick,onItemMouseenter:a.onItemMouseEnter},null,8,["id","tabindex","aria-label","aria-labelledby","aria-disabled","aria-orientation","aria-activedescendant","menuId","focusedItemId","items","horizontal","template","activeItem","exact","onFocus","onBlur","onKeydown","onItemClick","onItemMouseenter"]),e.$slots.end?(i.openBlock(),i.createElementBlock("div",g,[i.renderSlot(e.$slots,"end")])):i.createCommentVNode("",!0)],10,p)},module.exports=h;
@@ -1,4 +1,4 @@
1
- import { ObjectUtils, DomHandler, UniqueComponentId } from 'primevue/utils';
1
+ import { ObjectUtils, UniqueComponentId, DomHandler } from 'primevue/utils';
2
2
  import Ripple from 'primevue/ripple';
3
3
  import { resolveComponent, resolveDirective, openBlock, createElementBlock, normalizeClass, normalizeStyle, toDisplayString, createCommentVNode, Fragment, renderList, createElementVNode, createBlock, withCtx, withDirectives, resolveDynamicComponent, renderSlot, createVNode } from 'vue';
4
4
 
@@ -364,6 +364,7 @@ var script = {
364
364
  searchValue: null,
365
365
  data() {
366
366
  return {
367
+ id: this.$attrs.id,
367
368
  focused: false,
368
369
  focusedItemInfo: { index: -1, key: '', parentKey: '' },
369
370
  activeItem: null,
@@ -371,6 +372,9 @@ var script = {
371
372
  };
372
373
  },
373
374
  watch: {
375
+ '$attrs.id': function (newValue) {
376
+ this.id = newValue || UniqueComponentId();
377
+ },
374
378
  activeItem(newItem) {
375
379
  if (ObjectUtils.isNotEmpty(newItem)) {
376
380
  this.bindOutsideClickListener();
@@ -381,6 +385,9 @@ var script = {
381
385
  }
382
386
  }
383
387
  },
388
+ mounted() {
389
+ this.id = this.id || UniqueComponentId();
390
+ },
384
391
  beforeUnmount() {
385
392
  this.unbindOutsideClickListener();
386
393
  this.unbindResizeListener();
@@ -888,9 +895,6 @@ var script = {
888
895
  vertical() {
889
896
  return this.orientation === 'vertical';
890
897
  },
891
- id() {
892
- return this.$attrs.id || UniqueComponentId();
893
- },
894
898
  focusedItemId() {
895
899
  return ObjectUtils.isNotEmpty(this.focusedItemInfo.key) ? `${this.id}_${this.focusedItemInfo.key}` : null;
896
900
  }
@@ -915,7 +919,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
915
919
 
916
920
  return (openBlock(), createElementBlock("div", {
917
921
  ref: $options.containerRef,
918
- id: $options.id,
922
+ id: $data.id,
919
923
  class: normalizeClass($options.containerClass)
920
924
  }, [
921
925
  (_ctx.$slots.start)
@@ -925,7 +929,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
925
929
  : createCommentVNode("", true),
926
930
  createVNode(_component_MegaMenuSub, {
927
931
  ref: $options.menubarRef,
928
- id: $options.id + '_list',
932
+ id: $data.id + '_list',
929
933
  class: "p-megamenu-root-list",
930
934
  tabindex: !$props.disabled ? $props.tabindex : -1,
931
935
  role: "menubar",
@@ -934,7 +938,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
934
938
  "aria-disabled": $props.disabled || undefined,
935
939
  "aria-orientation": $props.orientation,
936
940
  "aria-activedescendant": $data.focused ? $options.focusedItemId : undefined,
937
- menuId: $options.id,
941
+ menuId: $data.id,
938
942
  focusedItemId: $data.focused ? $options.focusedItemId : undefined,
939
943
  items: $options.processedItems,
940
944
  horizontal: $options.horizontal,
@@ -1 +1 @@
1
- import{ObjectUtils as e,DomHandler as t,UniqueComponentId as i}from"primevue/utils";import s from"primevue/ripple";import{resolveComponent as n,resolveDirective as o,openBlock as a,createElementBlock as m,normalizeClass as r,normalizeStyle as d,toDisplayString as l,createCommentVNode as c,Fragment as u,renderList as I,createElementVNode as h,createBlock as p,withCtx as f,withDirectives as g,resolveDynamicComponent as y,renderSlot as b,createVNode as v}from"vue";var x={name:"MegaMenuSub",emits:["item-click","item-mouseenter"],props:{menuId:{type:String,default:null},focusedItemId:{type:String,default:null},horizontal:{type:Boolean,default:!1},submenu:{type:Object,default:null},items:{type:Array,default:null},level:{type:Number,default:0},template:{type:Function,default:null},activeItem:{type:Object,default:null},exact:{type:Boolean,default:!0}},methods:{getSubListId(e){return`${this.getItemId(e)}_list`},getSubListKey(e){return this.getSubListId(e)},getItemId(e){return`${this.menuId}_${e.key}`},getItemKey(e){return this.getItemId(e)},getItemProp:(t,i,s)=>t&&t.item?e.getItemValue(t.item[i],s):void 0,getItemLabel(e){return this.getItemProp(e,"label")},isItemActive(t){return!!e.isNotEmpty(this.activeItem)&&this.activeItem.key===t.key},isItemVisible(e){return!1!==this.getItemProp(e,"visible")},isItemDisabled(e){return this.getItemProp(e,"disabled")},isItemFocused(e){return this.focusedItemId===this.getItemId(e)},isItemGroup:t=>e.isNotEmpty(t.items),onItemClick(e,t){this.getItemProp(t,"command",{originalEvent:e,item:t.item}),this.$emit("item-click",{originalEvent:e,processedItem:t,isFocus:!0})},onItemMouseEnter(e,t){this.$emit("item-mouseenter",{originalEvent:e,processedItem:t})},onItemActionClick(e,t){t&&t(e)},getAriaSetSize(){return this.items.filter((e=>this.isItemVisible(e)&&!this.getItemProp(e,"separator"))).length},getAriaPosInset(e){return e-this.items.slice(0,e).filter((e=>this.isItemVisible(e)&&this.getItemProp(e,"separator"))).length+1},getSubmenuHeaderClass(e){return["p-megamenu-submenu-header p-submenu-header",this.getItemProp(e,"class"),{"p-disabled":this.isItemDisabled(e)}]},getColumnClass(e){let t;switch(this.isItemGroup(e)?e.items.length:0){case 2:t="p-megamenu-col-6";break;case 3:t="p-megamenu-col-4";break;case 4:t="p-megamenu-col-3";break;case 6:t="p-megamenu-col-2";break;default:t="p-megamenu-col-12"}return t},getItemClass(e){return["p-menuitem",this.getItemProp(e,"class"),{"p-menuitem-active p-highlight":this.isItemActive(e),"p-focus":this.isItemFocused(e),"p-disabled":this.isItemDisabled(e)}]},getItemActionClass(e,t){return["p-menuitem-link",{"router-link-active":t&&t.isActive,"router-link-active-exact":this.exact&&t&&t.isExactActive}]},getItemIconClass(e){return["p-menuitem-icon",this.getItemProp(e,"icon")]},getItemToggleIconClass(){return["p-submenu-icon",this.horizontal?"pi pi-angle-down":"pi pi-angle-right"]},getSeparatorItemClass(e){return["p-menuitem-separator",this.getItemProp(e,"class")]}},directives:{ripple:s}};const k=["id","aria-label","aria-disabled","aria-expanded","aria-haspopup","aria-level","aria-setsize","aria-posinset"],L=["onClick","onMouseenter"],C=["href","onClick"],K={class:"p-menuitem-text"},E=["href","target"],P={class:"p-menuitem-text"},w={key:0,class:"p-megamenu-panel"},S={class:"p-megamenu-grid"},F=["id"];x.render=function(e,t,i,s,b,v){const x=n("router-link"),V=n("MegaMenuSub",!0),z=o("ripple");return a(),m("ul",null,[i.submenu?(a(),m("li",{key:0,class:r(v.getSubmenuHeaderClass(i.submenu)),style:d(v.getItemProp(i.submenu,"style")),role:"presentation"},l(v.getItemLabel(i.submenu)),7)):c("",!0),(a(!0),m(u,null,I(i.items,((s,n)=>(a(),m(u,{key:v.getItemKey(s)},[v.isItemVisible(s)&&!v.getItemProp(s,"separator")?(a(),m("li",{key:0,id:v.getItemId(s),style:d(v.getItemProp(s,"style")),class:r(v.getItemClass(s)),role:"menuitem","aria-label":v.getItemLabel(s),"aria-disabled":v.isItemDisabled(s)||void 0,"aria-expanded":v.isItemGroup(s)?v.isItemActive(s):void 0,"aria-haspopup":v.isItemGroup(s)&&!v.getItemProp(s,"to")?"menu":void 0,"aria-level":i.level+1,"aria-setsize":v.getAriaSetSize(),"aria-posinset":v.getAriaPosInset(n)},[h("div",{class:"p-menuitem-content",onClick:e=>v.onItemClick(e,s),onMouseenter:e=>v.onItemMouseEnter(e,s)},[i.template?(a(),p(y(i.template),{key:1,item:s.item},null,8,["item"])):(a(),m(u,{key:0},[v.getItemProp(s,"to")&&!v.isItemDisabled(s)?(a(),p(x,{key:0,to:v.getItemProp(s,"to"),custom:""},{default:f((({navigate:e,href:t,isActive:i,isExactActive:n})=>[g((a(),m("a",{href:t,class:r(v.getItemActionClass(s,{isActive:i,isExactActive:n})),tabindex:"-1","aria-hidden":"true",onClick:t=>v.onItemActionClick(t,e)},[v.getItemProp(s,"icon")?(a(),m("span",{key:0,class:r(v.getItemIconClass(s))},null,2)):c("",!0),h("span",K,l(v.getItemLabel(s)),1)],10,C)),[[z]])])),_:2},1032,["to"])):g((a(),m("a",{key:1,href:v.getItemProp(s,"url"),class:r(v.getItemActionClass(s)),target:v.getItemProp(s,"target"),tabindex:"-1","aria-hidden":"true"},[v.getItemProp(s,"icon")?(a(),m("span",{key:0,class:r(v.getItemIconClass(s))},null,2)):c("",!0),h("span",P,l(v.getItemLabel(s)),1),v.isItemGroup(s)?(a(),m("span",{key:1,class:r(v.getItemToggleIconClass())},null,2)):c("",!0)],10,E)),[[z]])],64))],40,L),v.isItemVisible(s)&&v.isItemGroup(s)?(a(),m("div",w,[h("div",S,[(a(!0),m(u,null,I(s.items,(n=>(a(),m("div",{key:v.getItemKey(n),class:r(v.getColumnClass(s))},[(a(!0),m(u,null,I(n,(s=>(a(),p(V,{key:v.getSubListKey(s),id:v.getSubListId(s),role:"menu",class:"p-submenu-list p-megamenu-submenu",menuId:i.menuId,focusedItemId:i.focusedItemId,submenu:s,items:s.items,template:i.template,exact:i.exact,level:i.level+1,onItemClick:t[0]||(t[0]=t=>e.$emit("item-click",t)),onItemMouseenter:t[1]||(t[1]=t=>e.$emit("item-mouseenter",t))},null,8,["id","menuId","focusedItemId","submenu","items","template","exact","level"])))),128))],2)))),128))])])):c("",!0)],14,k)):c("",!0),v.isItemVisible(s)&&v.getItemProp(s,"separator")?(a(),m("li",{key:1,id:v.getItemId(s),style:d(v.getItemProp(s,"style")),class:r(v.getSeparatorItemClass(s)),role:"separator"},null,14,F)):c("",!0)],64)))),128))])};var V={name:"MegaMenu",emits:["focus","blur"],props:{model:{type:Array,default:null},orientation:{type:String,default:"horizontal"},exact:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},tabindex:{type:Number,default:0},"aria-labelledby":{type:String,default:null},"aria-label":{type:String,default:null}},outsideClickListener:null,resizeListener:null,container:null,menubar:null,searchTimeout:null,searchValue:null,data:()=>({focused:!1,focusedItemInfo:{index:-1,key:"",parentKey:""},activeItem:null,dirty:!1}),watch:{activeItem(t){e.isNotEmpty(t)?(this.bindOutsideClickListener(),this.bindResizeListener()):(this.unbindOutsideClickListener(),this.unbindResizeListener())}},beforeUnmount(){this.unbindOutsideClickListener(),this.unbindResizeListener()},methods:{getItemProp:(t,i)=>t?e.getItemValue(t[i]):void 0,getItemLabel(e){return this.getItemProp(e,"label")},isItemDisabled(e){return this.getItemProp(e,"disabled")},isItemGroup(t){return e.isNotEmpty(this.getItemProp(t,"items"))},isItemSeparator(e){return this.getItemProp(e,"separator")},getProccessedItemLabel(e){return e?this.getItemLabel(e.item):void 0},isProccessedItemGroup:t=>t&&e.isNotEmpty(t.items),hide(e,i){this.activeItem=null,this.focusedItemInfo={index:-1,key:"",parentKey:""},i&&t.focus(this.menubar),this.dirty=!1},onFocus(e){if(this.focused=!0,-1===this.focusedItemInfo.index){const e=this.findFirstFocusedItemIndex(),t=this.findVisibleItem(e);this.focusedItemInfo={index:e,key:t.key,parentKey:t.parentKey}}this.$emit("focus",e)},onBlur(e){this.focused=!1,this.focusedItemInfo={index:-1,key:"",parentKey:""},this.searchValue="",this.dirty=!1,this.$emit("blur",e)},onKeyDown(t){if(this.disabled)return void t.preventDefault();const i=t.metaKey||t.ctrlKey;switch(t.code){case"ArrowDown":this.onArrowDownKey(t);break;case"ArrowUp":this.onArrowUpKey(t);break;case"ArrowLeft":this.onArrowLeftKey(t);break;case"ArrowRight":this.onArrowRightKey(t);break;case"Home":this.onHomeKey(t);break;case"End":this.onEndKey(t);break;case"Space":this.onSpaceKey(t);break;case"Enter":this.onEnterKey(t);break;case"Escape":this.onEscapeKey(t);break;case"Tab":this.onTabKey(t);break;case"PageDown":case"PageUp":case"Backspace":case"ShiftLeft":case"ShiftRight":break;default:!i&&e.isPrintableCharacter(t.key)&&this.searchItems(t,t.key)}},onItemChange(i){const{processedItem:s,isFocus:n}=i;if(e.isEmpty(s))return;const{index:o,key:a,parentKey:m,items:r}=s,d=e.isNotEmpty(r);d&&(this.activeItem=s),this.focusedItemInfo={index:o,key:a,parentKey:m},d&&(this.dirty=!0),n&&t.focus(this.menubar)},onItemClick(i){const{originalEvent:s,processedItem:n}=i,o=this.isProccessedItemGroup(n),a=e.isEmpty(n.parent);if(this.isSelected(n)){const{index:e,key:i,parentKey:s}=n;this.activeItem=null,this.focusedItemInfo={index:e,key:i,parentKey:s},this.dirty=!a,t.focus(this.menubar)}else if(o)this.onItemChange(i);else{const e=a?n:this.activeItem;this.hide(s),this.changeFocusedItemInfo(s,e?e.index:-1),t.focus(this.menubar)}},onItemMouseEnter(e){this.dirty&&this.onItemChange(e)},onArrowDownKey(t){if(this.horizontal)if(e.isNotEmpty(this.activeItem)&&this.activeItem.key===this.focusedItemInfo.key)this.focusedItemInfo={index:-1,key:"",parentKey:this.activeItem.key};else{const e=this.findVisibleItem(this.focusedItemInfo.index);this.isProccessedItemGroup(e)&&(this.onItemChange({originalEvent:t,processedItem:e}),this.focusedItemInfo={index:-1,key:e.key,parentKey:e.parentKey},this.searchValue="")}const i=-1!==this.focusedItemInfo.index?this.findNextItemIndex(this.focusedItemInfo.index):this.findFirstFocusedItemIndex();this.changeFocusedItemInfo(t,i),t.preventDefault()},onArrowUpKey(t){if(t.altKey&&this.horizontal){if(-1!==this.focusedItemInfo.index){const i=this.findVisibleItem(this.focusedItemInfo.index);!this.isProccessedItemGroup(i)&&e.isNotEmpty(this.activeItem)&&(0===this.focusedItemInfo.index?(this.focusedItemInfo={index:this.activeItem.index,key:this.activeItem.key,parentKey:this.activeItem.parentKey},this.activeItem=null):this.changeFocusedItemInfo(t,this.findFirstItemIndex()))}t.preventDefault()}else{const e=-1!==this.focusedItemInfo.index?this.findPrevItemIndex(this.focusedItemInfo.index):this.findLastFocusedItemIndex();this.changeFocusedItemInfo(t,e),t.preventDefault()}},onArrowLeftKey(t){const i=this.findVisibleItem(this.focusedItemInfo.index);if(this.isProccessedItemGroup(i)){if(this.horizontal){const e=-1!==this.focusedItemInfo.index?this.findPrevItemIndex(this.focusedItemInfo.index):this.findLastFocusedItemIndex();this.changeFocusedItemInfo(t,e)}}else{this.vertical&&e.isNotEmpty(this.activeItem)&&0===i.columnIndex&&(this.focusedItemInfo={index:this.activeItem.index,key:this.activeItem.key,parentKey:this.activeItem.parentKey},this.activeItem=null);const s=i.columnIndex-1,n=this.visibleItems.findIndex((e=>e.columnIndex===s));-1!==n&&this.changeFocusedItemInfo(t,n)}t.preventDefault()},onArrowRightKey(t){const i=this.findVisibleItem(this.focusedItemInfo.index);if(this.isProccessedItemGroup(i)){if(this.vertical)if(e.isNotEmpty(this.activeItem)&&this.activeItem.key===i.key)this.focusedItemInfo={index:-1,key:"",parentKey:this.activeItem.key};else{const e=this.findVisibleItem(this.focusedItemInfo.index);this.isProccessedItemGroup(e)&&(this.onItemChange({originalEvent:t,processedItem:e}),this.focusedItemInfo={index:-1,key:e.key,parentKey:e.parentKey},this.searchValue="")}const s=-1!==this.focusedItemInfo.index?this.findNextItemIndex(this.focusedItemInfo.index):this.findFirstFocusedItemIndex();this.changeFocusedItemInfo(t,s)}else{const e=i.columnIndex+1,s=this.visibleItems.findIndex((t=>t.columnIndex===e));-1!==s&&this.changeFocusedItemInfo(t,s)}t.preventDefault()},onHomeKey(e){this.changeFocusedItemInfo(e,this.findFirstItemIndex()),e.preventDefault()},onEndKey(e){this.changeFocusedItemInfo(e,this.findLastItemIndex()),e.preventDefault()},onEnterKey(e){if(-1!==this.focusedItemInfo.index){const i=t.findSingle(this.menubar,`li[id="${this.focusedItemId}"]`),s=i&&t.findSingle(i,".p-menuitem-link");s?s.click():i&&i.click();const n=this.visibleItems[this.focusedItemInfo.index];!this.isProccessedItemGroup(n)&&this.changeFocusedItemInfo(e,this.findFirstFocusedItemIndex())}e.preventDefault()},onSpaceKey(e){this.onEnterKey(e)},onEscapeKey(t){e.isNotEmpty(this.activeItem)&&(this.focusedItemInfo={index:this.activeItem.index,key:this.activeItem.key},this.activeItem=null),t.preventDefault()},onTabKey(e){if(-1!==this.focusedItemInfo.index){const t=this.findVisibleItem(this.focusedItemInfo.index);!this.isProccessedItemGroup(t)&&this.onItemChange({originalEvent:e,processedItem:t})}this.hide()},bindOutsideClickListener(){this.outsideClickListener||(this.outsideClickListener=e=>{const t=this.container&&!this.container.contains(e.target),i=!this.popup||!(this.target&&(this.target===e.target||this.target.contains(e.target)));t&&i&&this.hide()},document.addEventListener("click",this.outsideClickListener))},unbindOutsideClickListener(){this.outsideClickListener&&(document.removeEventListener("click",this.outsideClickListener),this.outsideClickListener=null)},bindResizeListener(){this.resizeListener||(this.resizeListener=e=>{t.isTouchDevice()||this.hide(e,!0)},window.addEventListener("resize",this.resizeListener))},unbindResizeListener(){this.resizeListener&&(window.removeEventListener("resize",this.resizeListener),this.resizeListener=null)},isItemMatched(e){return this.isValidItem(e)&&this.getProccessedItemLabel(e).toLocaleLowerCase().startsWith(this.searchValue.toLocaleLowerCase())},isValidItem(e){return!!e&&!this.isItemDisabled(e.item)&&!this.isItemSeparator(e.item)},isValidSelectedItem(e){return this.isValidItem(e)&&this.isSelected(e)},isSelected(t){return!!e.isNotEmpty(this.activeItem)&&this.activeItem.key===t.key},findFirstItemIndex(){return this.visibleItems.findIndex((e=>this.isValidItem(e)))},findLastItemIndex(){return e.findLastIndex(this.visibleItems,(e=>this.isValidItem(e)))},findNextItemIndex(e){const t=e<this.visibleItems.length-1?this.visibleItems.slice(e+1).findIndex((e=>this.isValidItem(e))):-1;return t>-1?t+e+1:e},findPrevItemIndex(t){const i=t>0?e.findLastIndex(this.visibleItems.slice(0,t),(e=>this.isValidItem(e))):-1;return i>-1?i:t},findSelectedItemIndex(){return this.visibleItems.findIndex((e=>this.isValidSelectedItem(e)))},findFirstFocusedItemIndex(){const e=this.findSelectedItemIndex();return e<0?this.findFirstItemIndex():e},findLastFocusedItemIndex(){const e=this.findSelectedItemIndex();return e<0?this.findLastItemIndex():e},findVisibleItem(t){return e.isNotEmpty(this.visibleItems)?this.visibleItems[t]:null},searchItems(e,t){this.searchValue=(this.searchValue||"")+t;let i=-1,s=!1;return-1!==this.focusedItemInfo.index?(i=this.visibleItems.slice(this.focusedItemInfo.index).findIndex((e=>this.isItemMatched(e))),i=-1===i?this.visibleItems.slice(0,this.focusedItemInfo.index).findIndex((e=>this.isItemMatched(e))):i+this.focusedItemInfo.index):i=this.visibleItems.findIndex((e=>this.isItemMatched(e))),-1!==i&&(s=!0),-1===i&&-1===this.focusedItemInfo.index&&(i=this.findFirstFocusedItemIndex()),-1!==i&&this.changeFocusedItemInfo(e,i),this.searchTimeout&&clearTimeout(this.searchTimeout),this.searchTimeout=setTimeout((()=>{this.searchValue="",this.searchTimeout=null}),500),s},changeFocusedItemInfo(t,i){const s=this.findVisibleItem(i);this.focusedItemInfo.index=i,this.focusedItemInfo.key=e.isNotEmpty(s)?s.key:"",this.scrollInView()},scrollInView(e=-1){const i=-1!==e?`${this.id}_${e}`:this.focusedItemId,s=t.findSingle(this.menubar,`li[id="${i}"]`);s&&s.scrollIntoView&&s.scrollIntoView({block:"nearest",inline:"start"})},createProcessedItems(e,t=0,i={},s="",n){const o=[];return e&&e.forEach(((e,a)=>{const m=(""!==s?s+"_":"")+(void 0!==n?n+"_":"")+a,r={item:e,index:a,level:t,key:m,parent:i,parentKey:s,columnIndex:void 0!==n?n:void 0!==i.columnIndex?i.columnIndex:a};r.items=0===t&&e.items&&e.items.length>0?e.items.map(((e,i)=>this.createProcessedItems(e,t+1,r,m,i))):this.createProcessedItems(e.items,t+1,r,m),o.push(r)})),o},containerRef(e){this.container=e},menubarRef(e){this.menubar=e?e.$el:void 0}},computed:{containerClass(){return["p-megamenu p-component",{"p-megamenu-horizontal":this.horizontal,"p-megamenu-vertical":this.vertical}]},processedItems(){return this.createProcessedItems(this.model||[])},visibleItems(){const t=e.isNotEmpty(this.activeItem)?this.activeItem:null;return t&&t.key===this.focusedItemInfo.parentKey?t.items.reduce(((e,t)=>(t.forEach((t=>{t.items.forEach((t=>{e.push(t)}))})),e)),[]):this.processedItems},horizontal(){return"horizontal"===this.orientation},vertical(){return"vertical"===this.orientation},id(){return this.$attrs.id||i()},focusedItemId(){return e.isNotEmpty(this.focusedItemInfo.key)?`${this.id}_${this.focusedItemInfo.key}`:null}},components:{MegaMenuSub:x}};const z=["id"],A={key:0,class:"p-megamenu-start"},D={key:1,class:"p-megamenu-end"};!function(e,t){void 0===t&&(t={});var i=t.insertAt;if(e&&"undefined"!=typeof document){var s=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css","top"===i&&s.firstChild?s.insertBefore(n,s.firstChild):s.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}}("\n.p-megamenu-root-list {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.p-megamenu-root-list > .p-menuitem {\n position: relative;\n}\n.p-megamenu .p-menuitem-link {\n cursor: pointer;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n position: relative;\n}\n.p-megamenu .p-menuitem-text {\n line-height: 1;\n}\n.p-megamenu-panel {\n display: none;\n position: absolute;\n width: auto;\n z-index: 1;\n}\n.p-megamenu-root-list > .p-menuitem-active > .p-megamenu-panel {\n display: block;\n}\n.p-megamenu-submenu {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n/* Horizontal */\n.p-megamenu-horizontal .p-megamenu-root-list {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n}\n\n/* Vertical */\n.p-megamenu-vertical .p-megamenu-root-list {\n flex-direction: column;\n}\n.p-megamenu-vertical .p-megamenu-root-list > .p-menuitem-active > .p-megamenu-panel {\n left: 100%;\n top: 0;\n}\n.p-megamenu-vertical .p-megamenu-root-list > .p-menuitem > .p-menuitem-content > .p-menuitem-link > .p-submenu-icon {\n margin-left: auto;\n}\n.p-megamenu-grid {\n display: flex;\n}\n.p-megamenu-col-2,\n.p-megamenu-col-3,\n.p-megamenu-col-4,\n.p-megamenu-col-6,\n.p-megamenu-col-12 {\n flex: 0 0 auto;\n padding: 0.5rem;\n}\n.p-megamenu-col-2 {\n width: 16.6667%;\n}\n.p-megamenu-col-3 {\n width: 25%;\n}\n.p-megamenu-col-4 {\n width: 33.3333%;\n}\n.p-megamenu-col-6 {\n width: 50%;\n}\n.p-megamenu-col-12 {\n width: 100%;\n}\n"),V.render=function(e,t,i,s,o,d){const l=n("MegaMenuSub");return a(),m("div",{ref:d.containerRef,id:d.id,class:r(d.containerClass)},[e.$slots.start?(a(),m("div",A,[b(e.$slots,"start")])):c("",!0),v(l,{ref:d.menubarRef,id:d.id+"_list",class:"p-megamenu-root-list",tabindex:i.disabled?-1:i.tabindex,role:"menubar","aria-label":e.ariaLabel,"aria-labelledby":e.ariaLabelledby,"aria-disabled":i.disabled||void 0,"aria-orientation":i.orientation,"aria-activedescendant":o.focused?d.focusedItemId:void 0,menuId:d.id,focusedItemId:o.focused?d.focusedItemId:void 0,items:d.processedItems,horizontal:d.horizontal,template:e.$slots.item,activeItem:o.activeItem,exact:i.exact,level:0,onFocus:d.onFocus,onBlur:d.onBlur,onKeydown:d.onKeyDown,onItemClick:d.onItemClick,onItemMouseenter:d.onItemMouseEnter},null,8,["id","tabindex","aria-label","aria-labelledby","aria-disabled","aria-orientation","aria-activedescendant","menuId","focusedItemId","items","horizontal","template","activeItem","exact","onFocus","onBlur","onKeydown","onItemClick","onItemMouseenter"]),e.$slots.end?(a(),m("div",D,[b(e.$slots,"end")])):c("",!0)],10,z)};export{V as default};
1
+ import{ObjectUtils as e,UniqueComponentId as t,DomHandler as i}from"primevue/utils";import s from"primevue/ripple";import{resolveComponent as n,resolveDirective as o,openBlock as a,createElementBlock as m,normalizeClass as r,normalizeStyle as d,toDisplayString as l,createCommentVNode as c,Fragment as u,renderList as I,createElementVNode as h,createBlock as p,withCtx as f,withDirectives as g,resolveDynamicComponent as y,renderSlot as b,createVNode as v}from"vue";var x={name:"MegaMenuSub",emits:["item-click","item-mouseenter"],props:{menuId:{type:String,default:null},focusedItemId:{type:String,default:null},horizontal:{type:Boolean,default:!1},submenu:{type:Object,default:null},items:{type:Array,default:null},level:{type:Number,default:0},template:{type:Function,default:null},activeItem:{type:Object,default:null},exact:{type:Boolean,default:!0}},methods:{getSubListId(e){return`${this.getItemId(e)}_list`},getSubListKey(e){return this.getSubListId(e)},getItemId(e){return`${this.menuId}_${e.key}`},getItemKey(e){return this.getItemId(e)},getItemProp:(t,i,s)=>t&&t.item?e.getItemValue(t.item[i],s):void 0,getItemLabel(e){return this.getItemProp(e,"label")},isItemActive(t){return!!e.isNotEmpty(this.activeItem)&&this.activeItem.key===t.key},isItemVisible(e){return!1!==this.getItemProp(e,"visible")},isItemDisabled(e){return this.getItemProp(e,"disabled")},isItemFocused(e){return this.focusedItemId===this.getItemId(e)},isItemGroup:t=>e.isNotEmpty(t.items),onItemClick(e,t){this.getItemProp(t,"command",{originalEvent:e,item:t.item}),this.$emit("item-click",{originalEvent:e,processedItem:t,isFocus:!0})},onItemMouseEnter(e,t){this.$emit("item-mouseenter",{originalEvent:e,processedItem:t})},onItemActionClick(e,t){t&&t(e)},getAriaSetSize(){return this.items.filter((e=>this.isItemVisible(e)&&!this.getItemProp(e,"separator"))).length},getAriaPosInset(e){return e-this.items.slice(0,e).filter((e=>this.isItemVisible(e)&&this.getItemProp(e,"separator"))).length+1},getSubmenuHeaderClass(e){return["p-megamenu-submenu-header p-submenu-header",this.getItemProp(e,"class"),{"p-disabled":this.isItemDisabled(e)}]},getColumnClass(e){let t;switch(this.isItemGroup(e)?e.items.length:0){case 2:t="p-megamenu-col-6";break;case 3:t="p-megamenu-col-4";break;case 4:t="p-megamenu-col-3";break;case 6:t="p-megamenu-col-2";break;default:t="p-megamenu-col-12"}return t},getItemClass(e){return["p-menuitem",this.getItemProp(e,"class"),{"p-menuitem-active p-highlight":this.isItemActive(e),"p-focus":this.isItemFocused(e),"p-disabled":this.isItemDisabled(e)}]},getItemActionClass(e,t){return["p-menuitem-link",{"router-link-active":t&&t.isActive,"router-link-active-exact":this.exact&&t&&t.isExactActive}]},getItemIconClass(e){return["p-menuitem-icon",this.getItemProp(e,"icon")]},getItemToggleIconClass(){return["p-submenu-icon",this.horizontal?"pi pi-angle-down":"pi pi-angle-right"]},getSeparatorItemClass(e){return["p-menuitem-separator",this.getItemProp(e,"class")]}},directives:{ripple:s}};const k=["id","aria-label","aria-disabled","aria-expanded","aria-haspopup","aria-level","aria-setsize","aria-posinset"],L=["onClick","onMouseenter"],C=["href","onClick"],K={class:"p-menuitem-text"},E=["href","target"],P={class:"p-menuitem-text"},w={key:0,class:"p-megamenu-panel"},S={class:"p-megamenu-grid"},F=["id"];x.render=function(e,t,i,s,b,v){const x=n("router-link"),V=n("MegaMenuSub",!0),z=o("ripple");return a(),m("ul",null,[i.submenu?(a(),m("li",{key:0,class:r(v.getSubmenuHeaderClass(i.submenu)),style:d(v.getItemProp(i.submenu,"style")),role:"presentation"},l(v.getItemLabel(i.submenu)),7)):c("",!0),(a(!0),m(u,null,I(i.items,((s,n)=>(a(),m(u,{key:v.getItemKey(s)},[v.isItemVisible(s)&&!v.getItemProp(s,"separator")?(a(),m("li",{key:0,id:v.getItemId(s),style:d(v.getItemProp(s,"style")),class:r(v.getItemClass(s)),role:"menuitem","aria-label":v.getItemLabel(s),"aria-disabled":v.isItemDisabled(s)||void 0,"aria-expanded":v.isItemGroup(s)?v.isItemActive(s):void 0,"aria-haspopup":v.isItemGroup(s)&&!v.getItemProp(s,"to")?"menu":void 0,"aria-level":i.level+1,"aria-setsize":v.getAriaSetSize(),"aria-posinset":v.getAriaPosInset(n)},[h("div",{class:"p-menuitem-content",onClick:e=>v.onItemClick(e,s),onMouseenter:e=>v.onItemMouseEnter(e,s)},[i.template?(a(),p(y(i.template),{key:1,item:s.item},null,8,["item"])):(a(),m(u,{key:0},[v.getItemProp(s,"to")&&!v.isItemDisabled(s)?(a(),p(x,{key:0,to:v.getItemProp(s,"to"),custom:""},{default:f((({navigate:e,href:t,isActive:i,isExactActive:n})=>[g((a(),m("a",{href:t,class:r(v.getItemActionClass(s,{isActive:i,isExactActive:n})),tabindex:"-1","aria-hidden":"true",onClick:t=>v.onItemActionClick(t,e)},[v.getItemProp(s,"icon")?(a(),m("span",{key:0,class:r(v.getItemIconClass(s))},null,2)):c("",!0),h("span",K,l(v.getItemLabel(s)),1)],10,C)),[[z]])])),_:2},1032,["to"])):g((a(),m("a",{key:1,href:v.getItemProp(s,"url"),class:r(v.getItemActionClass(s)),target:v.getItemProp(s,"target"),tabindex:"-1","aria-hidden":"true"},[v.getItemProp(s,"icon")?(a(),m("span",{key:0,class:r(v.getItemIconClass(s))},null,2)):c("",!0),h("span",P,l(v.getItemLabel(s)),1),v.isItemGroup(s)?(a(),m("span",{key:1,class:r(v.getItemToggleIconClass())},null,2)):c("",!0)],10,E)),[[z]])],64))],40,L),v.isItemVisible(s)&&v.isItemGroup(s)?(a(),m("div",w,[h("div",S,[(a(!0),m(u,null,I(s.items,(n=>(a(),m("div",{key:v.getItemKey(n),class:r(v.getColumnClass(s))},[(a(!0),m(u,null,I(n,(s=>(a(),p(V,{key:v.getSubListKey(s),id:v.getSubListId(s),role:"menu",class:"p-submenu-list p-megamenu-submenu",menuId:i.menuId,focusedItemId:i.focusedItemId,submenu:s,items:s.items,template:i.template,exact:i.exact,level:i.level+1,onItemClick:t[0]||(t[0]=t=>e.$emit("item-click",t)),onItemMouseenter:t[1]||(t[1]=t=>e.$emit("item-mouseenter",t))},null,8,["id","menuId","focusedItemId","submenu","items","template","exact","level"])))),128))],2)))),128))])])):c("",!0)],14,k)):c("",!0),v.isItemVisible(s)&&v.getItemProp(s,"separator")?(a(),m("li",{key:1,id:v.getItemId(s),style:d(v.getItemProp(s,"style")),class:r(v.getSeparatorItemClass(s)),role:"separator"},null,14,F)):c("",!0)],64)))),128))])};var V={name:"MegaMenu",emits:["focus","blur"],props:{model:{type:Array,default:null},orientation:{type:String,default:"horizontal"},exact:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},tabindex:{type:Number,default:0},"aria-labelledby":{type:String,default:null},"aria-label":{type:String,default:null}},outsideClickListener:null,resizeListener:null,container:null,menubar:null,searchTimeout:null,searchValue:null,data(){return{id:this.$attrs.id,focused:!1,focusedItemInfo:{index:-1,key:"",parentKey:""},activeItem:null,dirty:!1}},watch:{"$attrs.id":function(e){this.id=e||t()},activeItem(t){e.isNotEmpty(t)?(this.bindOutsideClickListener(),this.bindResizeListener()):(this.unbindOutsideClickListener(),this.unbindResizeListener())}},mounted(){this.id=this.id||t()},beforeUnmount(){this.unbindOutsideClickListener(),this.unbindResizeListener()},methods:{getItemProp:(t,i)=>t?e.getItemValue(t[i]):void 0,getItemLabel(e){return this.getItemProp(e,"label")},isItemDisabled(e){return this.getItemProp(e,"disabled")},isItemGroup(t){return e.isNotEmpty(this.getItemProp(t,"items"))},isItemSeparator(e){return this.getItemProp(e,"separator")},getProccessedItemLabel(e){return e?this.getItemLabel(e.item):void 0},isProccessedItemGroup:t=>t&&e.isNotEmpty(t.items),hide(e,t){this.activeItem=null,this.focusedItemInfo={index:-1,key:"",parentKey:""},t&&i.focus(this.menubar),this.dirty=!1},onFocus(e){if(this.focused=!0,-1===this.focusedItemInfo.index){const e=this.findFirstFocusedItemIndex(),t=this.findVisibleItem(e);this.focusedItemInfo={index:e,key:t.key,parentKey:t.parentKey}}this.$emit("focus",e)},onBlur(e){this.focused=!1,this.focusedItemInfo={index:-1,key:"",parentKey:""},this.searchValue="",this.dirty=!1,this.$emit("blur",e)},onKeyDown(t){if(this.disabled)return void t.preventDefault();const i=t.metaKey||t.ctrlKey;switch(t.code){case"ArrowDown":this.onArrowDownKey(t);break;case"ArrowUp":this.onArrowUpKey(t);break;case"ArrowLeft":this.onArrowLeftKey(t);break;case"ArrowRight":this.onArrowRightKey(t);break;case"Home":this.onHomeKey(t);break;case"End":this.onEndKey(t);break;case"Space":this.onSpaceKey(t);break;case"Enter":this.onEnterKey(t);break;case"Escape":this.onEscapeKey(t);break;case"Tab":this.onTabKey(t);break;case"PageDown":case"PageUp":case"Backspace":case"ShiftLeft":case"ShiftRight":break;default:!i&&e.isPrintableCharacter(t.key)&&this.searchItems(t,t.key)}},onItemChange(t){const{processedItem:s,isFocus:n}=t;if(e.isEmpty(s))return;const{index:o,key:a,parentKey:m,items:r}=s,d=e.isNotEmpty(r);d&&(this.activeItem=s),this.focusedItemInfo={index:o,key:a,parentKey:m},d&&(this.dirty=!0),n&&i.focus(this.menubar)},onItemClick(t){const{originalEvent:s,processedItem:n}=t,o=this.isProccessedItemGroup(n),a=e.isEmpty(n.parent);if(this.isSelected(n)){const{index:e,key:t,parentKey:s}=n;this.activeItem=null,this.focusedItemInfo={index:e,key:t,parentKey:s},this.dirty=!a,i.focus(this.menubar)}else if(o)this.onItemChange(t);else{const e=a?n:this.activeItem;this.hide(s),this.changeFocusedItemInfo(s,e?e.index:-1),i.focus(this.menubar)}},onItemMouseEnter(e){this.dirty&&this.onItemChange(e)},onArrowDownKey(t){if(this.horizontal)if(e.isNotEmpty(this.activeItem)&&this.activeItem.key===this.focusedItemInfo.key)this.focusedItemInfo={index:-1,key:"",parentKey:this.activeItem.key};else{const e=this.findVisibleItem(this.focusedItemInfo.index);this.isProccessedItemGroup(e)&&(this.onItemChange({originalEvent:t,processedItem:e}),this.focusedItemInfo={index:-1,key:e.key,parentKey:e.parentKey},this.searchValue="")}const i=-1!==this.focusedItemInfo.index?this.findNextItemIndex(this.focusedItemInfo.index):this.findFirstFocusedItemIndex();this.changeFocusedItemInfo(t,i),t.preventDefault()},onArrowUpKey(t){if(t.altKey&&this.horizontal){if(-1!==this.focusedItemInfo.index){const i=this.findVisibleItem(this.focusedItemInfo.index);!this.isProccessedItemGroup(i)&&e.isNotEmpty(this.activeItem)&&(0===this.focusedItemInfo.index?(this.focusedItemInfo={index:this.activeItem.index,key:this.activeItem.key,parentKey:this.activeItem.parentKey},this.activeItem=null):this.changeFocusedItemInfo(t,this.findFirstItemIndex()))}t.preventDefault()}else{const e=-1!==this.focusedItemInfo.index?this.findPrevItemIndex(this.focusedItemInfo.index):this.findLastFocusedItemIndex();this.changeFocusedItemInfo(t,e),t.preventDefault()}},onArrowLeftKey(t){const i=this.findVisibleItem(this.focusedItemInfo.index);if(this.isProccessedItemGroup(i)){if(this.horizontal){const e=-1!==this.focusedItemInfo.index?this.findPrevItemIndex(this.focusedItemInfo.index):this.findLastFocusedItemIndex();this.changeFocusedItemInfo(t,e)}}else{this.vertical&&e.isNotEmpty(this.activeItem)&&0===i.columnIndex&&(this.focusedItemInfo={index:this.activeItem.index,key:this.activeItem.key,parentKey:this.activeItem.parentKey},this.activeItem=null);const s=i.columnIndex-1,n=this.visibleItems.findIndex((e=>e.columnIndex===s));-1!==n&&this.changeFocusedItemInfo(t,n)}t.preventDefault()},onArrowRightKey(t){const i=this.findVisibleItem(this.focusedItemInfo.index);if(this.isProccessedItemGroup(i)){if(this.vertical)if(e.isNotEmpty(this.activeItem)&&this.activeItem.key===i.key)this.focusedItemInfo={index:-1,key:"",parentKey:this.activeItem.key};else{const e=this.findVisibleItem(this.focusedItemInfo.index);this.isProccessedItemGroup(e)&&(this.onItemChange({originalEvent:t,processedItem:e}),this.focusedItemInfo={index:-1,key:e.key,parentKey:e.parentKey},this.searchValue="")}const s=-1!==this.focusedItemInfo.index?this.findNextItemIndex(this.focusedItemInfo.index):this.findFirstFocusedItemIndex();this.changeFocusedItemInfo(t,s)}else{const e=i.columnIndex+1,s=this.visibleItems.findIndex((t=>t.columnIndex===e));-1!==s&&this.changeFocusedItemInfo(t,s)}t.preventDefault()},onHomeKey(e){this.changeFocusedItemInfo(e,this.findFirstItemIndex()),e.preventDefault()},onEndKey(e){this.changeFocusedItemInfo(e,this.findLastItemIndex()),e.preventDefault()},onEnterKey(e){if(-1!==this.focusedItemInfo.index){const t=i.findSingle(this.menubar,`li[id="${this.focusedItemId}"]`),s=t&&i.findSingle(t,".p-menuitem-link");s?s.click():t&&t.click();const n=this.visibleItems[this.focusedItemInfo.index];!this.isProccessedItemGroup(n)&&this.changeFocusedItemInfo(e,this.findFirstFocusedItemIndex())}e.preventDefault()},onSpaceKey(e){this.onEnterKey(e)},onEscapeKey(t){e.isNotEmpty(this.activeItem)&&(this.focusedItemInfo={index:this.activeItem.index,key:this.activeItem.key},this.activeItem=null),t.preventDefault()},onTabKey(e){if(-1!==this.focusedItemInfo.index){const t=this.findVisibleItem(this.focusedItemInfo.index);!this.isProccessedItemGroup(t)&&this.onItemChange({originalEvent:e,processedItem:t})}this.hide()},bindOutsideClickListener(){this.outsideClickListener||(this.outsideClickListener=e=>{const t=this.container&&!this.container.contains(e.target),i=!this.popup||!(this.target&&(this.target===e.target||this.target.contains(e.target)));t&&i&&this.hide()},document.addEventListener("click",this.outsideClickListener))},unbindOutsideClickListener(){this.outsideClickListener&&(document.removeEventListener("click",this.outsideClickListener),this.outsideClickListener=null)},bindResizeListener(){this.resizeListener||(this.resizeListener=e=>{i.isTouchDevice()||this.hide(e,!0)},window.addEventListener("resize",this.resizeListener))},unbindResizeListener(){this.resizeListener&&(window.removeEventListener("resize",this.resizeListener),this.resizeListener=null)},isItemMatched(e){return this.isValidItem(e)&&this.getProccessedItemLabel(e).toLocaleLowerCase().startsWith(this.searchValue.toLocaleLowerCase())},isValidItem(e){return!!e&&!this.isItemDisabled(e.item)&&!this.isItemSeparator(e.item)},isValidSelectedItem(e){return this.isValidItem(e)&&this.isSelected(e)},isSelected(t){return!!e.isNotEmpty(this.activeItem)&&this.activeItem.key===t.key},findFirstItemIndex(){return this.visibleItems.findIndex((e=>this.isValidItem(e)))},findLastItemIndex(){return e.findLastIndex(this.visibleItems,(e=>this.isValidItem(e)))},findNextItemIndex(e){const t=e<this.visibleItems.length-1?this.visibleItems.slice(e+1).findIndex((e=>this.isValidItem(e))):-1;return t>-1?t+e+1:e},findPrevItemIndex(t){const i=t>0?e.findLastIndex(this.visibleItems.slice(0,t),(e=>this.isValidItem(e))):-1;return i>-1?i:t},findSelectedItemIndex(){return this.visibleItems.findIndex((e=>this.isValidSelectedItem(e)))},findFirstFocusedItemIndex(){const e=this.findSelectedItemIndex();return e<0?this.findFirstItemIndex():e},findLastFocusedItemIndex(){const e=this.findSelectedItemIndex();return e<0?this.findLastItemIndex():e},findVisibleItem(t){return e.isNotEmpty(this.visibleItems)?this.visibleItems[t]:null},searchItems(e,t){this.searchValue=(this.searchValue||"")+t;let i=-1,s=!1;return-1!==this.focusedItemInfo.index?(i=this.visibleItems.slice(this.focusedItemInfo.index).findIndex((e=>this.isItemMatched(e))),i=-1===i?this.visibleItems.slice(0,this.focusedItemInfo.index).findIndex((e=>this.isItemMatched(e))):i+this.focusedItemInfo.index):i=this.visibleItems.findIndex((e=>this.isItemMatched(e))),-1!==i&&(s=!0),-1===i&&-1===this.focusedItemInfo.index&&(i=this.findFirstFocusedItemIndex()),-1!==i&&this.changeFocusedItemInfo(e,i),this.searchTimeout&&clearTimeout(this.searchTimeout),this.searchTimeout=setTimeout((()=>{this.searchValue="",this.searchTimeout=null}),500),s},changeFocusedItemInfo(t,i){const s=this.findVisibleItem(i);this.focusedItemInfo.index=i,this.focusedItemInfo.key=e.isNotEmpty(s)?s.key:"",this.scrollInView()},scrollInView(e=-1){const t=-1!==e?`${this.id}_${e}`:this.focusedItemId,s=i.findSingle(this.menubar,`li[id="${t}"]`);s&&s.scrollIntoView&&s.scrollIntoView({block:"nearest",inline:"start"})},createProcessedItems(e,t=0,i={},s="",n){const o=[];return e&&e.forEach(((e,a)=>{const m=(""!==s?s+"_":"")+(void 0!==n?n+"_":"")+a,r={item:e,index:a,level:t,key:m,parent:i,parentKey:s,columnIndex:void 0!==n?n:void 0!==i.columnIndex?i.columnIndex:a};r.items=0===t&&e.items&&e.items.length>0?e.items.map(((e,i)=>this.createProcessedItems(e,t+1,r,m,i))):this.createProcessedItems(e.items,t+1,r,m),o.push(r)})),o},containerRef(e){this.container=e},menubarRef(e){this.menubar=e?e.$el:void 0}},computed:{containerClass(){return["p-megamenu p-component",{"p-megamenu-horizontal":this.horizontal,"p-megamenu-vertical":this.vertical}]},processedItems(){return this.createProcessedItems(this.model||[])},visibleItems(){const t=e.isNotEmpty(this.activeItem)?this.activeItem:null;return t&&t.key===this.focusedItemInfo.parentKey?t.items.reduce(((e,t)=>(t.forEach((t=>{t.items.forEach((t=>{e.push(t)}))})),e)),[]):this.processedItems},horizontal(){return"horizontal"===this.orientation},vertical(){return"vertical"===this.orientation},focusedItemId(){return e.isNotEmpty(this.focusedItemInfo.key)?`${this.id}_${this.focusedItemInfo.key}`:null}},components:{MegaMenuSub:x}};const z=["id"],A={key:0,class:"p-megamenu-start"},D={key:1,class:"p-megamenu-end"};!function(e,t){void 0===t&&(t={});var i=t.insertAt;if(e&&"undefined"!=typeof document){var s=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css","top"===i&&s.firstChild?s.insertBefore(n,s.firstChild):s.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}}("\n.p-megamenu-root-list {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.p-megamenu-root-list > .p-menuitem {\n position: relative;\n}\n.p-megamenu .p-menuitem-link {\n cursor: pointer;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n position: relative;\n}\n.p-megamenu .p-menuitem-text {\n line-height: 1;\n}\n.p-megamenu-panel {\n display: none;\n position: absolute;\n width: auto;\n z-index: 1;\n}\n.p-megamenu-root-list > .p-menuitem-active > .p-megamenu-panel {\n display: block;\n}\n.p-megamenu-submenu {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n/* Horizontal */\n.p-megamenu-horizontal .p-megamenu-root-list {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n}\n\n/* Vertical */\n.p-megamenu-vertical .p-megamenu-root-list {\n flex-direction: column;\n}\n.p-megamenu-vertical .p-megamenu-root-list > .p-menuitem-active > .p-megamenu-panel {\n left: 100%;\n top: 0;\n}\n.p-megamenu-vertical .p-megamenu-root-list > .p-menuitem > .p-menuitem-content > .p-menuitem-link > .p-submenu-icon {\n margin-left: auto;\n}\n.p-megamenu-grid {\n display: flex;\n}\n.p-megamenu-col-2,\n.p-megamenu-col-3,\n.p-megamenu-col-4,\n.p-megamenu-col-6,\n.p-megamenu-col-12 {\n flex: 0 0 auto;\n padding: 0.5rem;\n}\n.p-megamenu-col-2 {\n width: 16.6667%;\n}\n.p-megamenu-col-3 {\n width: 25%;\n}\n.p-megamenu-col-4 {\n width: 33.3333%;\n}\n.p-megamenu-col-6 {\n width: 50%;\n}\n.p-megamenu-col-12 {\n width: 100%;\n}\n"),V.render=function(e,t,i,s,o,d){const l=n("MegaMenuSub");return a(),m("div",{ref:d.containerRef,id:o.id,class:r(d.containerClass)},[e.$slots.start?(a(),m("div",A,[b(e.$slots,"start")])):c("",!0),v(l,{ref:d.menubarRef,id:o.id+"_list",class:"p-megamenu-root-list",tabindex:i.disabled?-1:i.tabindex,role:"menubar","aria-label":e.ariaLabel,"aria-labelledby":e.ariaLabelledby,"aria-disabled":i.disabled||void 0,"aria-orientation":i.orientation,"aria-activedescendant":o.focused?d.focusedItemId:void 0,menuId:o.id,focusedItemId:o.focused?d.focusedItemId:void 0,items:d.processedItems,horizontal:d.horizontal,template:e.$slots.item,activeItem:o.activeItem,exact:i.exact,level:0,onFocus:d.onFocus,onBlur:d.onBlur,onKeydown:d.onKeyDown,onItemClick:d.onItemClick,onItemMouseenter:d.onItemMouseEnter},null,8,["id","tabindex","aria-label","aria-labelledby","aria-disabled","aria-orientation","aria-activedescendant","menuId","focusedItemId","items","horizontal","template","activeItem","exact","onFocus","onBlur","onKeydown","onItemClick","onItemMouseenter"]),e.$slots.end?(a(),m("div",D,[b(e.$slots,"end")])):c("",!0)],10,z)};export{V as default};
@@ -368,6 +368,7 @@ this.primevue.megamenu = (function (utils, Ripple, vue) {
368
368
  searchValue: null,
369
369
  data() {
370
370
  return {
371
+ id: this.$attrs.id,
371
372
  focused: false,
372
373
  focusedItemInfo: { index: -1, key: '', parentKey: '' },
373
374
  activeItem: null,
@@ -375,6 +376,9 @@ this.primevue.megamenu = (function (utils, Ripple, vue) {
375
376
  };
376
377
  },
377
378
  watch: {
379
+ '$attrs.id': function (newValue) {
380
+ this.id = newValue || utils.UniqueComponentId();
381
+ },
378
382
  activeItem(newItem) {
379
383
  if (utils.ObjectUtils.isNotEmpty(newItem)) {
380
384
  this.bindOutsideClickListener();
@@ -385,6 +389,9 @@ this.primevue.megamenu = (function (utils, Ripple, vue) {
385
389
  }
386
390
  }
387
391
  },
392
+ mounted() {
393
+ this.id = this.id || utils.UniqueComponentId();
394
+ },
388
395
  beforeUnmount() {
389
396
  this.unbindOutsideClickListener();
390
397
  this.unbindResizeListener();
@@ -892,9 +899,6 @@ this.primevue.megamenu = (function (utils, Ripple, vue) {
892
899
  vertical() {
893
900
  return this.orientation === 'vertical';
894
901
  },
895
- id() {
896
- return this.$attrs.id || utils.UniqueComponentId();
897
- },
898
902
  focusedItemId() {
899
903
  return utils.ObjectUtils.isNotEmpty(this.focusedItemInfo.key) ? `${this.id}_${this.focusedItemInfo.key}` : null;
900
904
  }
@@ -919,7 +923,7 @@ this.primevue.megamenu = (function (utils, Ripple, vue) {
919
923
 
920
924
  return (vue.openBlock(), vue.createElementBlock("div", {
921
925
  ref: $options.containerRef,
922
- id: $options.id,
926
+ id: $data.id,
923
927
  class: vue.normalizeClass($options.containerClass)
924
928
  }, [
925
929
  (_ctx.$slots.start)
@@ -929,7 +933,7 @@ this.primevue.megamenu = (function (utils, Ripple, vue) {
929
933
  : vue.createCommentVNode("", true),
930
934
  vue.createVNode(_component_MegaMenuSub, {
931
935
  ref: $options.menubarRef,
932
- id: $options.id + '_list',
936
+ id: $data.id + '_list',
933
937
  class: "p-megamenu-root-list",
934
938
  tabindex: !$props.disabled ? $props.tabindex : -1,
935
939
  role: "menubar",
@@ -938,7 +942,7 @@ this.primevue.megamenu = (function (utils, Ripple, vue) {
938
942
  "aria-disabled": $props.disabled || undefined,
939
943
  "aria-orientation": $props.orientation,
940
944
  "aria-activedescendant": $data.focused ? $options.focusedItemId : undefined,
941
- menuId: $options.id,
945
+ menuId: $data.id,
942
946
  focusedItemId: $data.focused ? $options.focusedItemId : undefined,
943
947
  items: $options.processedItems,
944
948
  horizontal: $options.horizontal,
@@ -1 +1 @@
1
- this.primevue=this.primevue||{},this.primevue.megamenu=function(e,t,i){"use strict";function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n={name:"MegaMenuSub",emits:["item-click","item-mouseenter"],props:{menuId:{type:String,default:null},focusedItemId:{type:String,default:null},horizontal:{type:Boolean,default:!1},submenu:{type:Object,default:null},items:{type:Array,default:null},level:{type:Number,default:0},template:{type:Function,default:null},activeItem:{type:Object,default:null},exact:{type:Boolean,default:!0}},methods:{getSubListId(e){return`${this.getItemId(e)}_list`},getSubListKey(e){return this.getSubListId(e)},getItemId(e){return`${this.menuId}_${e.key}`},getItemKey(e){return this.getItemId(e)},getItemProp:(t,i,s)=>t&&t.item?e.ObjectUtils.getItemValue(t.item[i],s):void 0,getItemLabel(e){return this.getItemProp(e,"label")},isItemActive(t){return!!e.ObjectUtils.isNotEmpty(this.activeItem)&&this.activeItem.key===t.key},isItemVisible(e){return!1!==this.getItemProp(e,"visible")},isItemDisabled(e){return this.getItemProp(e,"disabled")},isItemFocused(e){return this.focusedItemId===this.getItemId(e)},isItemGroup:t=>e.ObjectUtils.isNotEmpty(t.items),onItemClick(e,t){this.getItemProp(t,"command",{originalEvent:e,item:t.item}),this.$emit("item-click",{originalEvent:e,processedItem:t,isFocus:!0})},onItemMouseEnter(e,t){this.$emit("item-mouseenter",{originalEvent:e,processedItem:t})},onItemActionClick(e,t){t&&t(e)},getAriaSetSize(){return this.items.filter((e=>this.isItemVisible(e)&&!this.getItemProp(e,"separator"))).length},getAriaPosInset(e){return e-this.items.slice(0,e).filter((e=>this.isItemVisible(e)&&this.getItemProp(e,"separator"))).length+1},getSubmenuHeaderClass(e){return["p-megamenu-submenu-header p-submenu-header",this.getItemProp(e,"class"),{"p-disabled":this.isItemDisabled(e)}]},getColumnClass(e){let t;switch(this.isItemGroup(e)?e.items.length:0){case 2:t="p-megamenu-col-6";break;case 3:t="p-megamenu-col-4";break;case 4:t="p-megamenu-col-3";break;case 6:t="p-megamenu-col-2";break;default:t="p-megamenu-col-12"}return t},getItemClass(e){return["p-menuitem",this.getItemProp(e,"class"),{"p-menuitem-active p-highlight":this.isItemActive(e),"p-focus":this.isItemFocused(e),"p-disabled":this.isItemDisabled(e)}]},getItemActionClass(e,t){return["p-menuitem-link",{"router-link-active":t&&t.isActive,"router-link-active-exact":this.exact&&t&&t.isExactActive}]},getItemIconClass(e){return["p-menuitem-icon",this.getItemProp(e,"icon")]},getItemToggleIconClass(){return["p-submenu-icon",this.horizontal?"pi pi-angle-down":"pi pi-angle-right"]},getSeparatorItemClass(e){return["p-menuitem-separator",this.getItemProp(e,"class")]}},directives:{ripple:s(t).default}};const o=["id","aria-label","aria-disabled","aria-expanded","aria-haspopup","aria-level","aria-setsize","aria-posinset"],a=["onClick","onMouseenter"],m=["href","onClick"],r={class:"p-menuitem-text"},l=["href","target"],c={class:"p-menuitem-text"},d={key:0,class:"p-megamenu-panel"},u={class:"p-megamenu-grid"},I=["id"];n.render=function(e,t,s,n,h,p){const f=i.resolveComponent("router-link"),g=i.resolveComponent("MegaMenuSub",!0),y=i.resolveDirective("ripple");return i.openBlock(),i.createElementBlock("ul",null,[s.submenu?(i.openBlock(),i.createElementBlock("li",{key:0,class:i.normalizeClass(p.getSubmenuHeaderClass(s.submenu)),style:i.normalizeStyle(p.getItemProp(s.submenu,"style")),role:"presentation"},i.toDisplayString(p.getItemLabel(s.submenu)),7)):i.createCommentVNode("",!0),(i.openBlock(!0),i.createElementBlock(i.Fragment,null,i.renderList(s.items,((n,h)=>(i.openBlock(),i.createElementBlock(i.Fragment,{key:p.getItemKey(n)},[p.isItemVisible(n)&&!p.getItemProp(n,"separator")?(i.openBlock(),i.createElementBlock("li",{key:0,id:p.getItemId(n),style:i.normalizeStyle(p.getItemProp(n,"style")),class:i.normalizeClass(p.getItemClass(n)),role:"menuitem","aria-label":p.getItemLabel(n),"aria-disabled":p.isItemDisabled(n)||void 0,"aria-expanded":p.isItemGroup(n)?p.isItemActive(n):void 0,"aria-haspopup":p.isItemGroup(n)&&!p.getItemProp(n,"to")?"menu":void 0,"aria-level":s.level+1,"aria-setsize":p.getAriaSetSize(),"aria-posinset":p.getAriaPosInset(h)},[i.createElementVNode("div",{class:"p-menuitem-content",onClick:e=>p.onItemClick(e,n),onMouseenter:e=>p.onItemMouseEnter(e,n)},[s.template?(i.openBlock(),i.createBlock(i.resolveDynamicComponent(s.template),{key:1,item:n.item},null,8,["item"])):(i.openBlock(),i.createElementBlock(i.Fragment,{key:0},[p.getItemProp(n,"to")&&!p.isItemDisabled(n)?(i.openBlock(),i.createBlock(f,{key:0,to:p.getItemProp(n,"to"),custom:""},{default:i.withCtx((({navigate:e,href:t,isActive:s,isExactActive:o})=>[i.withDirectives((i.openBlock(),i.createElementBlock("a",{href:t,class:i.normalizeClass(p.getItemActionClass(n,{isActive:s,isExactActive:o})),tabindex:"-1","aria-hidden":"true",onClick:t=>p.onItemActionClick(t,e)},[p.getItemProp(n,"icon")?(i.openBlock(),i.createElementBlock("span",{key:0,class:i.normalizeClass(p.getItemIconClass(n))},null,2)):i.createCommentVNode("",!0),i.createElementVNode("span",r,i.toDisplayString(p.getItemLabel(n)),1)],10,m)),[[y]])])),_:2},1032,["to"])):i.withDirectives((i.openBlock(),i.createElementBlock("a",{key:1,href:p.getItemProp(n,"url"),class:i.normalizeClass(p.getItemActionClass(n)),target:p.getItemProp(n,"target"),tabindex:"-1","aria-hidden":"true"},[p.getItemProp(n,"icon")?(i.openBlock(),i.createElementBlock("span",{key:0,class:i.normalizeClass(p.getItemIconClass(n))},null,2)):i.createCommentVNode("",!0),i.createElementVNode("span",c,i.toDisplayString(p.getItemLabel(n)),1),p.isItemGroup(n)?(i.openBlock(),i.createElementBlock("span",{key:1,class:i.normalizeClass(p.getItemToggleIconClass())},null,2)):i.createCommentVNode("",!0)],10,l)),[[y]])],64))],40,a),p.isItemVisible(n)&&p.isItemGroup(n)?(i.openBlock(),i.createElementBlock("div",d,[i.createElementVNode("div",u,[(i.openBlock(!0),i.createElementBlock(i.Fragment,null,i.renderList(n.items,(o=>(i.openBlock(),i.createElementBlock("div",{key:p.getItemKey(o),class:i.normalizeClass(p.getColumnClass(n))},[(i.openBlock(!0),i.createElementBlock(i.Fragment,null,i.renderList(o,(n=>(i.openBlock(),i.createBlock(g,{key:p.getSubListKey(n),id:p.getSubListId(n),role:"menu",class:"p-submenu-list p-megamenu-submenu",menuId:s.menuId,focusedItemId:s.focusedItemId,submenu:n,items:n.items,template:s.template,exact:s.exact,level:s.level+1,onItemClick:t[0]||(t[0]=t=>e.$emit("item-click",t)),onItemMouseenter:t[1]||(t[1]=t=>e.$emit("item-mouseenter",t))},null,8,["id","menuId","focusedItemId","submenu","items","template","exact","level"])))),128))],2)))),128))])])):i.createCommentVNode("",!0)],14,o)):i.createCommentVNode("",!0),p.isItemVisible(n)&&p.getItemProp(n,"separator")?(i.openBlock(),i.createElementBlock("li",{key:1,id:p.getItemId(n),style:i.normalizeStyle(p.getItemProp(n,"style")),class:i.normalizeClass(p.getSeparatorItemClass(n)),role:"separator"},null,14,I)):i.createCommentVNode("",!0)],64)))),128))])};var h={name:"MegaMenu",emits:["focus","blur"],props:{model:{type:Array,default:null},orientation:{type:String,default:"horizontal"},exact:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},tabindex:{type:Number,default:0},"aria-labelledby":{type:String,default:null},"aria-label":{type:String,default:null}},outsideClickListener:null,resizeListener:null,container:null,menubar:null,searchTimeout:null,searchValue:null,data:()=>({focused:!1,focusedItemInfo:{index:-1,key:"",parentKey:""},activeItem:null,dirty:!1}),watch:{activeItem(t){e.ObjectUtils.isNotEmpty(t)?(this.bindOutsideClickListener(),this.bindResizeListener()):(this.unbindOutsideClickListener(),this.unbindResizeListener())}},beforeUnmount(){this.unbindOutsideClickListener(),this.unbindResizeListener()},methods:{getItemProp:(t,i)=>t?e.ObjectUtils.getItemValue(t[i]):void 0,getItemLabel(e){return this.getItemProp(e,"label")},isItemDisabled(e){return this.getItemProp(e,"disabled")},isItemGroup(t){return e.ObjectUtils.isNotEmpty(this.getItemProp(t,"items"))},isItemSeparator(e){return this.getItemProp(e,"separator")},getProccessedItemLabel(e){return e?this.getItemLabel(e.item):void 0},isProccessedItemGroup:t=>t&&e.ObjectUtils.isNotEmpty(t.items),hide(t,i){this.activeItem=null,this.focusedItemInfo={index:-1,key:"",parentKey:""},i&&e.DomHandler.focus(this.menubar),this.dirty=!1},onFocus(e){if(this.focused=!0,-1===this.focusedItemInfo.index){const e=this.findFirstFocusedItemIndex(),t=this.findVisibleItem(e);this.focusedItemInfo={index:e,key:t.key,parentKey:t.parentKey}}this.$emit("focus",e)},onBlur(e){this.focused=!1,this.focusedItemInfo={index:-1,key:"",parentKey:""},this.searchValue="",this.dirty=!1,this.$emit("blur",e)},onKeyDown(t){if(this.disabled)return void t.preventDefault();const i=t.metaKey||t.ctrlKey;switch(t.code){case"ArrowDown":this.onArrowDownKey(t);break;case"ArrowUp":this.onArrowUpKey(t);break;case"ArrowLeft":this.onArrowLeftKey(t);break;case"ArrowRight":this.onArrowRightKey(t);break;case"Home":this.onHomeKey(t);break;case"End":this.onEndKey(t);break;case"Space":this.onSpaceKey(t);break;case"Enter":this.onEnterKey(t);break;case"Escape":this.onEscapeKey(t);break;case"Tab":this.onTabKey(t);break;case"PageDown":case"PageUp":case"Backspace":case"ShiftLeft":case"ShiftRight":break;default:!i&&e.ObjectUtils.isPrintableCharacter(t.key)&&this.searchItems(t,t.key)}},onItemChange(t){const{processedItem:i,isFocus:s}=t;if(e.ObjectUtils.isEmpty(i))return;const{index:n,key:o,parentKey:a,items:m}=i,r=e.ObjectUtils.isNotEmpty(m);r&&(this.activeItem=i),this.focusedItemInfo={index:n,key:o,parentKey:a},r&&(this.dirty=!0),s&&e.DomHandler.focus(this.menubar)},onItemClick(t){const{originalEvent:i,processedItem:s}=t,n=this.isProccessedItemGroup(s),o=e.ObjectUtils.isEmpty(s.parent);if(this.isSelected(s)){const{index:t,key:i,parentKey:n}=s;this.activeItem=null,this.focusedItemInfo={index:t,key:i,parentKey:n},this.dirty=!o,e.DomHandler.focus(this.menubar)}else if(n)this.onItemChange(t);else{const t=o?s:this.activeItem;this.hide(i),this.changeFocusedItemInfo(i,t?t.index:-1),e.DomHandler.focus(this.menubar)}},onItemMouseEnter(e){this.dirty&&this.onItemChange(e)},onArrowDownKey(t){if(this.horizontal)if(e.ObjectUtils.isNotEmpty(this.activeItem)&&this.activeItem.key===this.focusedItemInfo.key)this.focusedItemInfo={index:-1,key:"",parentKey:this.activeItem.key};else{const e=this.findVisibleItem(this.focusedItemInfo.index);this.isProccessedItemGroup(e)&&(this.onItemChange({originalEvent:t,processedItem:e}),this.focusedItemInfo={index:-1,key:e.key,parentKey:e.parentKey},this.searchValue="")}const i=-1!==this.focusedItemInfo.index?this.findNextItemIndex(this.focusedItemInfo.index):this.findFirstFocusedItemIndex();this.changeFocusedItemInfo(t,i),t.preventDefault()},onArrowUpKey(t){if(t.altKey&&this.horizontal){if(-1!==this.focusedItemInfo.index){const i=this.findVisibleItem(this.focusedItemInfo.index);!this.isProccessedItemGroup(i)&&e.ObjectUtils.isNotEmpty(this.activeItem)&&(0===this.focusedItemInfo.index?(this.focusedItemInfo={index:this.activeItem.index,key:this.activeItem.key,parentKey:this.activeItem.parentKey},this.activeItem=null):this.changeFocusedItemInfo(t,this.findFirstItemIndex()))}t.preventDefault()}else{const e=-1!==this.focusedItemInfo.index?this.findPrevItemIndex(this.focusedItemInfo.index):this.findLastFocusedItemIndex();this.changeFocusedItemInfo(t,e),t.preventDefault()}},onArrowLeftKey(t){const i=this.findVisibleItem(this.focusedItemInfo.index);if(this.isProccessedItemGroup(i)){if(this.horizontal){const e=-1!==this.focusedItemInfo.index?this.findPrevItemIndex(this.focusedItemInfo.index):this.findLastFocusedItemIndex();this.changeFocusedItemInfo(t,e)}}else{this.vertical&&e.ObjectUtils.isNotEmpty(this.activeItem)&&0===i.columnIndex&&(this.focusedItemInfo={index:this.activeItem.index,key:this.activeItem.key,parentKey:this.activeItem.parentKey},this.activeItem=null);const s=i.columnIndex-1,n=this.visibleItems.findIndex((e=>e.columnIndex===s));-1!==n&&this.changeFocusedItemInfo(t,n)}t.preventDefault()},onArrowRightKey(t){const i=this.findVisibleItem(this.focusedItemInfo.index);if(this.isProccessedItemGroup(i)){if(this.vertical)if(e.ObjectUtils.isNotEmpty(this.activeItem)&&this.activeItem.key===i.key)this.focusedItemInfo={index:-1,key:"",parentKey:this.activeItem.key};else{const e=this.findVisibleItem(this.focusedItemInfo.index);this.isProccessedItemGroup(e)&&(this.onItemChange({originalEvent:t,processedItem:e}),this.focusedItemInfo={index:-1,key:e.key,parentKey:e.parentKey},this.searchValue="")}const s=-1!==this.focusedItemInfo.index?this.findNextItemIndex(this.focusedItemInfo.index):this.findFirstFocusedItemIndex();this.changeFocusedItemInfo(t,s)}else{const e=i.columnIndex+1,s=this.visibleItems.findIndex((t=>t.columnIndex===e));-1!==s&&this.changeFocusedItemInfo(t,s)}t.preventDefault()},onHomeKey(e){this.changeFocusedItemInfo(e,this.findFirstItemIndex()),e.preventDefault()},onEndKey(e){this.changeFocusedItemInfo(e,this.findLastItemIndex()),e.preventDefault()},onEnterKey(t){if(-1!==this.focusedItemInfo.index){const i=e.DomHandler.findSingle(this.menubar,`li[id="${this.focusedItemId}"]`),s=i&&e.DomHandler.findSingle(i,".p-menuitem-link");s?s.click():i&&i.click();const n=this.visibleItems[this.focusedItemInfo.index];!this.isProccessedItemGroup(n)&&this.changeFocusedItemInfo(t,this.findFirstFocusedItemIndex())}t.preventDefault()},onSpaceKey(e){this.onEnterKey(e)},onEscapeKey(t){e.ObjectUtils.isNotEmpty(this.activeItem)&&(this.focusedItemInfo={index:this.activeItem.index,key:this.activeItem.key},this.activeItem=null),t.preventDefault()},onTabKey(e){if(-1!==this.focusedItemInfo.index){const t=this.findVisibleItem(this.focusedItemInfo.index);!this.isProccessedItemGroup(t)&&this.onItemChange({originalEvent:e,processedItem:t})}this.hide()},bindOutsideClickListener(){this.outsideClickListener||(this.outsideClickListener=e=>{const t=this.container&&!this.container.contains(e.target),i=!this.popup||!(this.target&&(this.target===e.target||this.target.contains(e.target)));t&&i&&this.hide()},document.addEventListener("click",this.outsideClickListener))},unbindOutsideClickListener(){this.outsideClickListener&&(document.removeEventListener("click",this.outsideClickListener),this.outsideClickListener=null)},bindResizeListener(){this.resizeListener||(this.resizeListener=t=>{e.DomHandler.isTouchDevice()||this.hide(t,!0)},window.addEventListener("resize",this.resizeListener))},unbindResizeListener(){this.resizeListener&&(window.removeEventListener("resize",this.resizeListener),this.resizeListener=null)},isItemMatched(e){return this.isValidItem(e)&&this.getProccessedItemLabel(e).toLocaleLowerCase().startsWith(this.searchValue.toLocaleLowerCase())},isValidItem(e){return!!e&&!this.isItemDisabled(e.item)&&!this.isItemSeparator(e.item)},isValidSelectedItem(e){return this.isValidItem(e)&&this.isSelected(e)},isSelected(t){return!!e.ObjectUtils.isNotEmpty(this.activeItem)&&this.activeItem.key===t.key},findFirstItemIndex(){return this.visibleItems.findIndex((e=>this.isValidItem(e)))},findLastItemIndex(){return e.ObjectUtils.findLastIndex(this.visibleItems,(e=>this.isValidItem(e)))},findNextItemIndex(e){const t=e<this.visibleItems.length-1?this.visibleItems.slice(e+1).findIndex((e=>this.isValidItem(e))):-1;return t>-1?t+e+1:e},findPrevItemIndex(t){const i=t>0?e.ObjectUtils.findLastIndex(this.visibleItems.slice(0,t),(e=>this.isValidItem(e))):-1;return i>-1?i:t},findSelectedItemIndex(){return this.visibleItems.findIndex((e=>this.isValidSelectedItem(e)))},findFirstFocusedItemIndex(){const e=this.findSelectedItemIndex();return e<0?this.findFirstItemIndex():e},findLastFocusedItemIndex(){const e=this.findSelectedItemIndex();return e<0?this.findLastItemIndex():e},findVisibleItem(t){return e.ObjectUtils.isNotEmpty(this.visibleItems)?this.visibleItems[t]:null},searchItems(e,t){this.searchValue=(this.searchValue||"")+t;let i=-1,s=!1;return-1!==this.focusedItemInfo.index?(i=this.visibleItems.slice(this.focusedItemInfo.index).findIndex((e=>this.isItemMatched(e))),i=-1===i?this.visibleItems.slice(0,this.focusedItemInfo.index).findIndex((e=>this.isItemMatched(e))):i+this.focusedItemInfo.index):i=this.visibleItems.findIndex((e=>this.isItemMatched(e))),-1!==i&&(s=!0),-1===i&&-1===this.focusedItemInfo.index&&(i=this.findFirstFocusedItemIndex()),-1!==i&&this.changeFocusedItemInfo(e,i),this.searchTimeout&&clearTimeout(this.searchTimeout),this.searchTimeout=setTimeout((()=>{this.searchValue="",this.searchTimeout=null}),500),s},changeFocusedItemInfo(t,i){const s=this.findVisibleItem(i);this.focusedItemInfo.index=i,this.focusedItemInfo.key=e.ObjectUtils.isNotEmpty(s)?s.key:"",this.scrollInView()},scrollInView(t=-1){const i=-1!==t?`${this.id}_${t}`:this.focusedItemId,s=e.DomHandler.findSingle(this.menubar,`li[id="${i}"]`);s&&s.scrollIntoView&&s.scrollIntoView({block:"nearest",inline:"start"})},createProcessedItems(e,t=0,i={},s="",n){const o=[];return e&&e.forEach(((e,a)=>{const m=(""!==s?s+"_":"")+(void 0!==n?n+"_":"")+a,r={item:e,index:a,level:t,key:m,parent:i,parentKey:s,columnIndex:void 0!==n?n:void 0!==i.columnIndex?i.columnIndex:a};r.items=0===t&&e.items&&e.items.length>0?e.items.map(((e,i)=>this.createProcessedItems(e,t+1,r,m,i))):this.createProcessedItems(e.items,t+1,r,m),o.push(r)})),o},containerRef(e){this.container=e},menubarRef(e){this.menubar=e?e.$el:void 0}},computed:{containerClass(){return["p-megamenu p-component",{"p-megamenu-horizontal":this.horizontal,"p-megamenu-vertical":this.vertical}]},processedItems(){return this.createProcessedItems(this.model||[])},visibleItems(){const t=e.ObjectUtils.isNotEmpty(this.activeItem)?this.activeItem:null;return t&&t.key===this.focusedItemInfo.parentKey?t.items.reduce(((e,t)=>(t.forEach((t=>{t.items.forEach((t=>{e.push(t)}))})),e)),[]):this.processedItems},horizontal(){return"horizontal"===this.orientation},vertical(){return"vertical"===this.orientation},id(){return this.$attrs.id||e.UniqueComponentId()},focusedItemId(){return e.ObjectUtils.isNotEmpty(this.focusedItemInfo.key)?`${this.id}_${this.focusedItemInfo.key}`:null}},components:{MegaMenuSub:n}};const p=["id"],f={key:0,class:"p-megamenu-start"},g={key:1,class:"p-megamenu-end"};return function(e,t){void 0===t&&(t={});var i=t.insertAt;if(e&&"undefined"!=typeof document){var s=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css","top"===i&&s.firstChild?s.insertBefore(n,s.firstChild):s.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}}("\n.p-megamenu-root-list {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.p-megamenu-root-list > .p-menuitem {\n position: relative;\n}\n.p-megamenu .p-menuitem-link {\n cursor: pointer;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n position: relative;\n}\n.p-megamenu .p-menuitem-text {\n line-height: 1;\n}\n.p-megamenu-panel {\n display: none;\n position: absolute;\n width: auto;\n z-index: 1;\n}\n.p-megamenu-root-list > .p-menuitem-active > .p-megamenu-panel {\n display: block;\n}\n.p-megamenu-submenu {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n/* Horizontal */\n.p-megamenu-horizontal .p-megamenu-root-list {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n}\n\n/* Vertical */\n.p-megamenu-vertical .p-megamenu-root-list {\n flex-direction: column;\n}\n.p-megamenu-vertical .p-megamenu-root-list > .p-menuitem-active > .p-megamenu-panel {\n left: 100%;\n top: 0;\n}\n.p-megamenu-vertical .p-megamenu-root-list > .p-menuitem > .p-menuitem-content > .p-menuitem-link > .p-submenu-icon {\n margin-left: auto;\n}\n.p-megamenu-grid {\n display: flex;\n}\n.p-megamenu-col-2,\n.p-megamenu-col-3,\n.p-megamenu-col-4,\n.p-megamenu-col-6,\n.p-megamenu-col-12 {\n flex: 0 0 auto;\n padding: 0.5rem;\n}\n.p-megamenu-col-2 {\n width: 16.6667%;\n}\n.p-megamenu-col-3 {\n width: 25%;\n}\n.p-megamenu-col-4 {\n width: 33.3333%;\n}\n.p-megamenu-col-6 {\n width: 50%;\n}\n.p-megamenu-col-12 {\n width: 100%;\n}\n"),h.render=function(e,t,s,n,o,a){const m=i.resolveComponent("MegaMenuSub");return i.openBlock(),i.createElementBlock("div",{ref:a.containerRef,id:a.id,class:i.normalizeClass(a.containerClass)},[e.$slots.start?(i.openBlock(),i.createElementBlock("div",f,[i.renderSlot(e.$slots,"start")])):i.createCommentVNode("",!0),i.createVNode(m,{ref:a.menubarRef,id:a.id+"_list",class:"p-megamenu-root-list",tabindex:s.disabled?-1:s.tabindex,role:"menubar","aria-label":e.ariaLabel,"aria-labelledby":e.ariaLabelledby,"aria-disabled":s.disabled||void 0,"aria-orientation":s.orientation,"aria-activedescendant":o.focused?a.focusedItemId:void 0,menuId:a.id,focusedItemId:o.focused?a.focusedItemId:void 0,items:a.processedItems,horizontal:a.horizontal,template:e.$slots.item,activeItem:o.activeItem,exact:s.exact,level:0,onFocus:a.onFocus,onBlur:a.onBlur,onKeydown:a.onKeyDown,onItemClick:a.onItemClick,onItemMouseenter:a.onItemMouseEnter},null,8,["id","tabindex","aria-label","aria-labelledby","aria-disabled","aria-orientation","aria-activedescendant","menuId","focusedItemId","items","horizontal","template","activeItem","exact","onFocus","onBlur","onKeydown","onItemClick","onItemMouseenter"]),e.$slots.end?(i.openBlock(),i.createElementBlock("div",g,[i.renderSlot(e.$slots,"end")])):i.createCommentVNode("",!0)],10,p)},h}(primevue.utils,primevue.ripple,Vue);
1
+ this.primevue=this.primevue||{},this.primevue.megamenu=function(e,t,i){"use strict";function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n={name:"MegaMenuSub",emits:["item-click","item-mouseenter"],props:{menuId:{type:String,default:null},focusedItemId:{type:String,default:null},horizontal:{type:Boolean,default:!1},submenu:{type:Object,default:null},items:{type:Array,default:null},level:{type:Number,default:0},template:{type:Function,default:null},activeItem:{type:Object,default:null},exact:{type:Boolean,default:!0}},methods:{getSubListId(e){return`${this.getItemId(e)}_list`},getSubListKey(e){return this.getSubListId(e)},getItemId(e){return`${this.menuId}_${e.key}`},getItemKey(e){return this.getItemId(e)},getItemProp:(t,i,s)=>t&&t.item?e.ObjectUtils.getItemValue(t.item[i],s):void 0,getItemLabel(e){return this.getItemProp(e,"label")},isItemActive(t){return!!e.ObjectUtils.isNotEmpty(this.activeItem)&&this.activeItem.key===t.key},isItemVisible(e){return!1!==this.getItemProp(e,"visible")},isItemDisabled(e){return this.getItemProp(e,"disabled")},isItemFocused(e){return this.focusedItemId===this.getItemId(e)},isItemGroup:t=>e.ObjectUtils.isNotEmpty(t.items),onItemClick(e,t){this.getItemProp(t,"command",{originalEvent:e,item:t.item}),this.$emit("item-click",{originalEvent:e,processedItem:t,isFocus:!0})},onItemMouseEnter(e,t){this.$emit("item-mouseenter",{originalEvent:e,processedItem:t})},onItemActionClick(e,t){t&&t(e)},getAriaSetSize(){return this.items.filter((e=>this.isItemVisible(e)&&!this.getItemProp(e,"separator"))).length},getAriaPosInset(e){return e-this.items.slice(0,e).filter((e=>this.isItemVisible(e)&&this.getItemProp(e,"separator"))).length+1},getSubmenuHeaderClass(e){return["p-megamenu-submenu-header p-submenu-header",this.getItemProp(e,"class"),{"p-disabled":this.isItemDisabled(e)}]},getColumnClass(e){let t;switch(this.isItemGroup(e)?e.items.length:0){case 2:t="p-megamenu-col-6";break;case 3:t="p-megamenu-col-4";break;case 4:t="p-megamenu-col-3";break;case 6:t="p-megamenu-col-2";break;default:t="p-megamenu-col-12"}return t},getItemClass(e){return["p-menuitem",this.getItemProp(e,"class"),{"p-menuitem-active p-highlight":this.isItemActive(e),"p-focus":this.isItemFocused(e),"p-disabled":this.isItemDisabled(e)}]},getItemActionClass(e,t){return["p-menuitem-link",{"router-link-active":t&&t.isActive,"router-link-active-exact":this.exact&&t&&t.isExactActive}]},getItemIconClass(e){return["p-menuitem-icon",this.getItemProp(e,"icon")]},getItemToggleIconClass(){return["p-submenu-icon",this.horizontal?"pi pi-angle-down":"pi pi-angle-right"]},getSeparatorItemClass(e){return["p-menuitem-separator",this.getItemProp(e,"class")]}},directives:{ripple:s(t).default}};const o=["id","aria-label","aria-disabled","aria-expanded","aria-haspopup","aria-level","aria-setsize","aria-posinset"],a=["onClick","onMouseenter"],m=["href","onClick"],r={class:"p-menuitem-text"},l=["href","target"],c={class:"p-menuitem-text"},d={key:0,class:"p-megamenu-panel"},u={class:"p-megamenu-grid"},I=["id"];n.render=function(e,t,s,n,h,p){const f=i.resolveComponent("router-link"),g=i.resolveComponent("MegaMenuSub",!0),y=i.resolveDirective("ripple");return i.openBlock(),i.createElementBlock("ul",null,[s.submenu?(i.openBlock(),i.createElementBlock("li",{key:0,class:i.normalizeClass(p.getSubmenuHeaderClass(s.submenu)),style:i.normalizeStyle(p.getItemProp(s.submenu,"style")),role:"presentation"},i.toDisplayString(p.getItemLabel(s.submenu)),7)):i.createCommentVNode("",!0),(i.openBlock(!0),i.createElementBlock(i.Fragment,null,i.renderList(s.items,((n,h)=>(i.openBlock(),i.createElementBlock(i.Fragment,{key:p.getItemKey(n)},[p.isItemVisible(n)&&!p.getItemProp(n,"separator")?(i.openBlock(),i.createElementBlock("li",{key:0,id:p.getItemId(n),style:i.normalizeStyle(p.getItemProp(n,"style")),class:i.normalizeClass(p.getItemClass(n)),role:"menuitem","aria-label":p.getItemLabel(n),"aria-disabled":p.isItemDisabled(n)||void 0,"aria-expanded":p.isItemGroup(n)?p.isItemActive(n):void 0,"aria-haspopup":p.isItemGroup(n)&&!p.getItemProp(n,"to")?"menu":void 0,"aria-level":s.level+1,"aria-setsize":p.getAriaSetSize(),"aria-posinset":p.getAriaPosInset(h)},[i.createElementVNode("div",{class:"p-menuitem-content",onClick:e=>p.onItemClick(e,n),onMouseenter:e=>p.onItemMouseEnter(e,n)},[s.template?(i.openBlock(),i.createBlock(i.resolveDynamicComponent(s.template),{key:1,item:n.item},null,8,["item"])):(i.openBlock(),i.createElementBlock(i.Fragment,{key:0},[p.getItemProp(n,"to")&&!p.isItemDisabled(n)?(i.openBlock(),i.createBlock(f,{key:0,to:p.getItemProp(n,"to"),custom:""},{default:i.withCtx((({navigate:e,href:t,isActive:s,isExactActive:o})=>[i.withDirectives((i.openBlock(),i.createElementBlock("a",{href:t,class:i.normalizeClass(p.getItemActionClass(n,{isActive:s,isExactActive:o})),tabindex:"-1","aria-hidden":"true",onClick:t=>p.onItemActionClick(t,e)},[p.getItemProp(n,"icon")?(i.openBlock(),i.createElementBlock("span",{key:0,class:i.normalizeClass(p.getItemIconClass(n))},null,2)):i.createCommentVNode("",!0),i.createElementVNode("span",r,i.toDisplayString(p.getItemLabel(n)),1)],10,m)),[[y]])])),_:2},1032,["to"])):i.withDirectives((i.openBlock(),i.createElementBlock("a",{key:1,href:p.getItemProp(n,"url"),class:i.normalizeClass(p.getItemActionClass(n)),target:p.getItemProp(n,"target"),tabindex:"-1","aria-hidden":"true"},[p.getItemProp(n,"icon")?(i.openBlock(),i.createElementBlock("span",{key:0,class:i.normalizeClass(p.getItemIconClass(n))},null,2)):i.createCommentVNode("",!0),i.createElementVNode("span",c,i.toDisplayString(p.getItemLabel(n)),1),p.isItemGroup(n)?(i.openBlock(),i.createElementBlock("span",{key:1,class:i.normalizeClass(p.getItemToggleIconClass())},null,2)):i.createCommentVNode("",!0)],10,l)),[[y]])],64))],40,a),p.isItemVisible(n)&&p.isItemGroup(n)?(i.openBlock(),i.createElementBlock("div",d,[i.createElementVNode("div",u,[(i.openBlock(!0),i.createElementBlock(i.Fragment,null,i.renderList(n.items,(o=>(i.openBlock(),i.createElementBlock("div",{key:p.getItemKey(o),class:i.normalizeClass(p.getColumnClass(n))},[(i.openBlock(!0),i.createElementBlock(i.Fragment,null,i.renderList(o,(n=>(i.openBlock(),i.createBlock(g,{key:p.getSubListKey(n),id:p.getSubListId(n),role:"menu",class:"p-submenu-list p-megamenu-submenu",menuId:s.menuId,focusedItemId:s.focusedItemId,submenu:n,items:n.items,template:s.template,exact:s.exact,level:s.level+1,onItemClick:t[0]||(t[0]=t=>e.$emit("item-click",t)),onItemMouseenter:t[1]||(t[1]=t=>e.$emit("item-mouseenter",t))},null,8,["id","menuId","focusedItemId","submenu","items","template","exact","level"])))),128))],2)))),128))])])):i.createCommentVNode("",!0)],14,o)):i.createCommentVNode("",!0),p.isItemVisible(n)&&p.getItemProp(n,"separator")?(i.openBlock(),i.createElementBlock("li",{key:1,id:p.getItemId(n),style:i.normalizeStyle(p.getItemProp(n,"style")),class:i.normalizeClass(p.getSeparatorItemClass(n)),role:"separator"},null,14,I)):i.createCommentVNode("",!0)],64)))),128))])};var h={name:"MegaMenu",emits:["focus","blur"],props:{model:{type:Array,default:null},orientation:{type:String,default:"horizontal"},exact:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},tabindex:{type:Number,default:0},"aria-labelledby":{type:String,default:null},"aria-label":{type:String,default:null}},outsideClickListener:null,resizeListener:null,container:null,menubar:null,searchTimeout:null,searchValue:null,data(){return{id:this.$attrs.id,focused:!1,focusedItemInfo:{index:-1,key:"",parentKey:""},activeItem:null,dirty:!1}},watch:{"$attrs.id":function(t){this.id=t||e.UniqueComponentId()},activeItem(t){e.ObjectUtils.isNotEmpty(t)?(this.bindOutsideClickListener(),this.bindResizeListener()):(this.unbindOutsideClickListener(),this.unbindResizeListener())}},mounted(){this.id=this.id||e.UniqueComponentId()},beforeUnmount(){this.unbindOutsideClickListener(),this.unbindResizeListener()},methods:{getItemProp:(t,i)=>t?e.ObjectUtils.getItemValue(t[i]):void 0,getItemLabel(e){return this.getItemProp(e,"label")},isItemDisabled(e){return this.getItemProp(e,"disabled")},isItemGroup(t){return e.ObjectUtils.isNotEmpty(this.getItemProp(t,"items"))},isItemSeparator(e){return this.getItemProp(e,"separator")},getProccessedItemLabel(e){return e?this.getItemLabel(e.item):void 0},isProccessedItemGroup:t=>t&&e.ObjectUtils.isNotEmpty(t.items),hide(t,i){this.activeItem=null,this.focusedItemInfo={index:-1,key:"",parentKey:""},i&&e.DomHandler.focus(this.menubar),this.dirty=!1},onFocus(e){if(this.focused=!0,-1===this.focusedItemInfo.index){const e=this.findFirstFocusedItemIndex(),t=this.findVisibleItem(e);this.focusedItemInfo={index:e,key:t.key,parentKey:t.parentKey}}this.$emit("focus",e)},onBlur(e){this.focused=!1,this.focusedItemInfo={index:-1,key:"",parentKey:""},this.searchValue="",this.dirty=!1,this.$emit("blur",e)},onKeyDown(t){if(this.disabled)return void t.preventDefault();const i=t.metaKey||t.ctrlKey;switch(t.code){case"ArrowDown":this.onArrowDownKey(t);break;case"ArrowUp":this.onArrowUpKey(t);break;case"ArrowLeft":this.onArrowLeftKey(t);break;case"ArrowRight":this.onArrowRightKey(t);break;case"Home":this.onHomeKey(t);break;case"End":this.onEndKey(t);break;case"Space":this.onSpaceKey(t);break;case"Enter":this.onEnterKey(t);break;case"Escape":this.onEscapeKey(t);break;case"Tab":this.onTabKey(t);break;case"PageDown":case"PageUp":case"Backspace":case"ShiftLeft":case"ShiftRight":break;default:!i&&e.ObjectUtils.isPrintableCharacter(t.key)&&this.searchItems(t,t.key)}},onItemChange(t){const{processedItem:i,isFocus:s}=t;if(e.ObjectUtils.isEmpty(i))return;const{index:n,key:o,parentKey:a,items:m}=i,r=e.ObjectUtils.isNotEmpty(m);r&&(this.activeItem=i),this.focusedItemInfo={index:n,key:o,parentKey:a},r&&(this.dirty=!0),s&&e.DomHandler.focus(this.menubar)},onItemClick(t){const{originalEvent:i,processedItem:s}=t,n=this.isProccessedItemGroup(s),o=e.ObjectUtils.isEmpty(s.parent);if(this.isSelected(s)){const{index:t,key:i,parentKey:n}=s;this.activeItem=null,this.focusedItemInfo={index:t,key:i,parentKey:n},this.dirty=!o,e.DomHandler.focus(this.menubar)}else if(n)this.onItemChange(t);else{const t=o?s:this.activeItem;this.hide(i),this.changeFocusedItemInfo(i,t?t.index:-1),e.DomHandler.focus(this.menubar)}},onItemMouseEnter(e){this.dirty&&this.onItemChange(e)},onArrowDownKey(t){if(this.horizontal)if(e.ObjectUtils.isNotEmpty(this.activeItem)&&this.activeItem.key===this.focusedItemInfo.key)this.focusedItemInfo={index:-1,key:"",parentKey:this.activeItem.key};else{const e=this.findVisibleItem(this.focusedItemInfo.index);this.isProccessedItemGroup(e)&&(this.onItemChange({originalEvent:t,processedItem:e}),this.focusedItemInfo={index:-1,key:e.key,parentKey:e.parentKey},this.searchValue="")}const i=-1!==this.focusedItemInfo.index?this.findNextItemIndex(this.focusedItemInfo.index):this.findFirstFocusedItemIndex();this.changeFocusedItemInfo(t,i),t.preventDefault()},onArrowUpKey(t){if(t.altKey&&this.horizontal){if(-1!==this.focusedItemInfo.index){const i=this.findVisibleItem(this.focusedItemInfo.index);!this.isProccessedItemGroup(i)&&e.ObjectUtils.isNotEmpty(this.activeItem)&&(0===this.focusedItemInfo.index?(this.focusedItemInfo={index:this.activeItem.index,key:this.activeItem.key,parentKey:this.activeItem.parentKey},this.activeItem=null):this.changeFocusedItemInfo(t,this.findFirstItemIndex()))}t.preventDefault()}else{const e=-1!==this.focusedItemInfo.index?this.findPrevItemIndex(this.focusedItemInfo.index):this.findLastFocusedItemIndex();this.changeFocusedItemInfo(t,e),t.preventDefault()}},onArrowLeftKey(t){const i=this.findVisibleItem(this.focusedItemInfo.index);if(this.isProccessedItemGroup(i)){if(this.horizontal){const e=-1!==this.focusedItemInfo.index?this.findPrevItemIndex(this.focusedItemInfo.index):this.findLastFocusedItemIndex();this.changeFocusedItemInfo(t,e)}}else{this.vertical&&e.ObjectUtils.isNotEmpty(this.activeItem)&&0===i.columnIndex&&(this.focusedItemInfo={index:this.activeItem.index,key:this.activeItem.key,parentKey:this.activeItem.parentKey},this.activeItem=null);const s=i.columnIndex-1,n=this.visibleItems.findIndex((e=>e.columnIndex===s));-1!==n&&this.changeFocusedItemInfo(t,n)}t.preventDefault()},onArrowRightKey(t){const i=this.findVisibleItem(this.focusedItemInfo.index);if(this.isProccessedItemGroup(i)){if(this.vertical)if(e.ObjectUtils.isNotEmpty(this.activeItem)&&this.activeItem.key===i.key)this.focusedItemInfo={index:-1,key:"",parentKey:this.activeItem.key};else{const e=this.findVisibleItem(this.focusedItemInfo.index);this.isProccessedItemGroup(e)&&(this.onItemChange({originalEvent:t,processedItem:e}),this.focusedItemInfo={index:-1,key:e.key,parentKey:e.parentKey},this.searchValue="")}const s=-1!==this.focusedItemInfo.index?this.findNextItemIndex(this.focusedItemInfo.index):this.findFirstFocusedItemIndex();this.changeFocusedItemInfo(t,s)}else{const e=i.columnIndex+1,s=this.visibleItems.findIndex((t=>t.columnIndex===e));-1!==s&&this.changeFocusedItemInfo(t,s)}t.preventDefault()},onHomeKey(e){this.changeFocusedItemInfo(e,this.findFirstItemIndex()),e.preventDefault()},onEndKey(e){this.changeFocusedItemInfo(e,this.findLastItemIndex()),e.preventDefault()},onEnterKey(t){if(-1!==this.focusedItemInfo.index){const i=e.DomHandler.findSingle(this.menubar,`li[id="${this.focusedItemId}"]`),s=i&&e.DomHandler.findSingle(i,".p-menuitem-link");s?s.click():i&&i.click();const n=this.visibleItems[this.focusedItemInfo.index];!this.isProccessedItemGroup(n)&&this.changeFocusedItemInfo(t,this.findFirstFocusedItemIndex())}t.preventDefault()},onSpaceKey(e){this.onEnterKey(e)},onEscapeKey(t){e.ObjectUtils.isNotEmpty(this.activeItem)&&(this.focusedItemInfo={index:this.activeItem.index,key:this.activeItem.key},this.activeItem=null),t.preventDefault()},onTabKey(e){if(-1!==this.focusedItemInfo.index){const t=this.findVisibleItem(this.focusedItemInfo.index);!this.isProccessedItemGroup(t)&&this.onItemChange({originalEvent:e,processedItem:t})}this.hide()},bindOutsideClickListener(){this.outsideClickListener||(this.outsideClickListener=e=>{const t=this.container&&!this.container.contains(e.target),i=!this.popup||!(this.target&&(this.target===e.target||this.target.contains(e.target)));t&&i&&this.hide()},document.addEventListener("click",this.outsideClickListener))},unbindOutsideClickListener(){this.outsideClickListener&&(document.removeEventListener("click",this.outsideClickListener),this.outsideClickListener=null)},bindResizeListener(){this.resizeListener||(this.resizeListener=t=>{e.DomHandler.isTouchDevice()||this.hide(t,!0)},window.addEventListener("resize",this.resizeListener))},unbindResizeListener(){this.resizeListener&&(window.removeEventListener("resize",this.resizeListener),this.resizeListener=null)},isItemMatched(e){return this.isValidItem(e)&&this.getProccessedItemLabel(e).toLocaleLowerCase().startsWith(this.searchValue.toLocaleLowerCase())},isValidItem(e){return!!e&&!this.isItemDisabled(e.item)&&!this.isItemSeparator(e.item)},isValidSelectedItem(e){return this.isValidItem(e)&&this.isSelected(e)},isSelected(t){return!!e.ObjectUtils.isNotEmpty(this.activeItem)&&this.activeItem.key===t.key},findFirstItemIndex(){return this.visibleItems.findIndex((e=>this.isValidItem(e)))},findLastItemIndex(){return e.ObjectUtils.findLastIndex(this.visibleItems,(e=>this.isValidItem(e)))},findNextItemIndex(e){const t=e<this.visibleItems.length-1?this.visibleItems.slice(e+1).findIndex((e=>this.isValidItem(e))):-1;return t>-1?t+e+1:e},findPrevItemIndex(t){const i=t>0?e.ObjectUtils.findLastIndex(this.visibleItems.slice(0,t),(e=>this.isValidItem(e))):-1;return i>-1?i:t},findSelectedItemIndex(){return this.visibleItems.findIndex((e=>this.isValidSelectedItem(e)))},findFirstFocusedItemIndex(){const e=this.findSelectedItemIndex();return e<0?this.findFirstItemIndex():e},findLastFocusedItemIndex(){const e=this.findSelectedItemIndex();return e<0?this.findLastItemIndex():e},findVisibleItem(t){return e.ObjectUtils.isNotEmpty(this.visibleItems)?this.visibleItems[t]:null},searchItems(e,t){this.searchValue=(this.searchValue||"")+t;let i=-1,s=!1;return-1!==this.focusedItemInfo.index?(i=this.visibleItems.slice(this.focusedItemInfo.index).findIndex((e=>this.isItemMatched(e))),i=-1===i?this.visibleItems.slice(0,this.focusedItemInfo.index).findIndex((e=>this.isItemMatched(e))):i+this.focusedItemInfo.index):i=this.visibleItems.findIndex((e=>this.isItemMatched(e))),-1!==i&&(s=!0),-1===i&&-1===this.focusedItemInfo.index&&(i=this.findFirstFocusedItemIndex()),-1!==i&&this.changeFocusedItemInfo(e,i),this.searchTimeout&&clearTimeout(this.searchTimeout),this.searchTimeout=setTimeout((()=>{this.searchValue="",this.searchTimeout=null}),500),s},changeFocusedItemInfo(t,i){const s=this.findVisibleItem(i);this.focusedItemInfo.index=i,this.focusedItemInfo.key=e.ObjectUtils.isNotEmpty(s)?s.key:"",this.scrollInView()},scrollInView(t=-1){const i=-1!==t?`${this.id}_${t}`:this.focusedItemId,s=e.DomHandler.findSingle(this.menubar,`li[id="${i}"]`);s&&s.scrollIntoView&&s.scrollIntoView({block:"nearest",inline:"start"})},createProcessedItems(e,t=0,i={},s="",n){const o=[];return e&&e.forEach(((e,a)=>{const m=(""!==s?s+"_":"")+(void 0!==n?n+"_":"")+a,r={item:e,index:a,level:t,key:m,parent:i,parentKey:s,columnIndex:void 0!==n?n:void 0!==i.columnIndex?i.columnIndex:a};r.items=0===t&&e.items&&e.items.length>0?e.items.map(((e,i)=>this.createProcessedItems(e,t+1,r,m,i))):this.createProcessedItems(e.items,t+1,r,m),o.push(r)})),o},containerRef(e){this.container=e},menubarRef(e){this.menubar=e?e.$el:void 0}},computed:{containerClass(){return["p-megamenu p-component",{"p-megamenu-horizontal":this.horizontal,"p-megamenu-vertical":this.vertical}]},processedItems(){return this.createProcessedItems(this.model||[])},visibleItems(){const t=e.ObjectUtils.isNotEmpty(this.activeItem)?this.activeItem:null;return t&&t.key===this.focusedItemInfo.parentKey?t.items.reduce(((e,t)=>(t.forEach((t=>{t.items.forEach((t=>{e.push(t)}))})),e)),[]):this.processedItems},horizontal(){return"horizontal"===this.orientation},vertical(){return"vertical"===this.orientation},focusedItemId(){return e.ObjectUtils.isNotEmpty(this.focusedItemInfo.key)?`${this.id}_${this.focusedItemInfo.key}`:null}},components:{MegaMenuSub:n}};const p=["id"],f={key:0,class:"p-megamenu-start"},g={key:1,class:"p-megamenu-end"};return function(e,t){void 0===t&&(t={});var i=t.insertAt;if(e&&"undefined"!=typeof document){var s=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css","top"===i&&s.firstChild?s.insertBefore(n,s.firstChild):s.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}}("\n.p-megamenu-root-list {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.p-megamenu-root-list > .p-menuitem {\n position: relative;\n}\n.p-megamenu .p-menuitem-link {\n cursor: pointer;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n position: relative;\n}\n.p-megamenu .p-menuitem-text {\n line-height: 1;\n}\n.p-megamenu-panel {\n display: none;\n position: absolute;\n width: auto;\n z-index: 1;\n}\n.p-megamenu-root-list > .p-menuitem-active > .p-megamenu-panel {\n display: block;\n}\n.p-megamenu-submenu {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n/* Horizontal */\n.p-megamenu-horizontal .p-megamenu-root-list {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n}\n\n/* Vertical */\n.p-megamenu-vertical .p-megamenu-root-list {\n flex-direction: column;\n}\n.p-megamenu-vertical .p-megamenu-root-list > .p-menuitem-active > .p-megamenu-panel {\n left: 100%;\n top: 0;\n}\n.p-megamenu-vertical .p-megamenu-root-list > .p-menuitem > .p-menuitem-content > .p-menuitem-link > .p-submenu-icon {\n margin-left: auto;\n}\n.p-megamenu-grid {\n display: flex;\n}\n.p-megamenu-col-2,\n.p-megamenu-col-3,\n.p-megamenu-col-4,\n.p-megamenu-col-6,\n.p-megamenu-col-12 {\n flex: 0 0 auto;\n padding: 0.5rem;\n}\n.p-megamenu-col-2 {\n width: 16.6667%;\n}\n.p-megamenu-col-3 {\n width: 25%;\n}\n.p-megamenu-col-4 {\n width: 33.3333%;\n}\n.p-megamenu-col-6 {\n width: 50%;\n}\n.p-megamenu-col-12 {\n width: 100%;\n}\n"),h.render=function(e,t,s,n,o,a){const m=i.resolveComponent("MegaMenuSub");return i.openBlock(),i.createElementBlock("div",{ref:a.containerRef,id:o.id,class:i.normalizeClass(a.containerClass)},[e.$slots.start?(i.openBlock(),i.createElementBlock("div",f,[i.renderSlot(e.$slots,"start")])):i.createCommentVNode("",!0),i.createVNode(m,{ref:a.menubarRef,id:o.id+"_list",class:"p-megamenu-root-list",tabindex:s.disabled?-1:s.tabindex,role:"menubar","aria-label":e.ariaLabel,"aria-labelledby":e.ariaLabelledby,"aria-disabled":s.disabled||void 0,"aria-orientation":s.orientation,"aria-activedescendant":o.focused?a.focusedItemId:void 0,menuId:o.id,focusedItemId:o.focused?a.focusedItemId:void 0,items:a.processedItems,horizontal:a.horizontal,template:e.$slots.item,activeItem:o.activeItem,exact:s.exact,level:0,onFocus:a.onFocus,onBlur:a.onBlur,onKeydown:a.onKeyDown,onItemClick:a.onItemClick,onItemMouseenter:a.onItemMouseEnter},null,8,["id","tabindex","aria-label","aria-labelledby","aria-disabled","aria-orientation","aria-activedescendant","menuId","focusedItemId","items","horizontal","template","activeItem","exact","onFocus","onBlur","onKeydown","onItemClick","onItemMouseenter"]),e.$slots.end?(i.openBlock(),i.createElementBlock("div",g,[i.renderSlot(e.$slots,"end")])):i.createCommentVNode("",!0)],10,p)},h}(primevue.utils,primevue.ripple,Vue);
package/menu/Menu.vue CHANGED
@@ -84,12 +84,18 @@ export default {
84
84
  },
85
85
  data() {
86
86
  return {
87
+ id: this.$attrs.id,
87
88
  overlayVisible: false,
88
89
  focused: false,
89
90
  focusedOptionIndex: -1,
90
91
  selectedOptionIndex: -1
91
92
  };
92
93
  },
94
+ watch: {
95
+ '$attrs.id': function (newValue) {
96
+ this.id = newValue || UniqueComponentId();
97
+ }
98
+ },
93
99
  target: null,
94
100
  outsideClickListener: null,
95
101
  scrollHandler: null,
@@ -97,6 +103,8 @@ export default {
97
103
  container: null,
98
104
  list: null,
99
105
  mounted() {
106
+ this.id = this.id || UniqueComponentId();
107
+
100
108
  if (!this.popup) {
101
109
  this.bindResizeListener();
102
110
  this.bindOutsideClickListener();
@@ -389,9 +397,6 @@ export default {
389
397
  }
390
398
  ];
391
399
  },
392
- id() {
393
- return this.$attrs.id || UniqueComponentId();
394
- },
395
400
  focusedOptionId() {
396
401
  return this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : null;
397
402
  }
package/menu/menu.cjs.js CHANGED
@@ -190,12 +190,18 @@ var script = {
190
190
  },
191
191
  data() {
192
192
  return {
193
+ id: this.$attrs.id,
193
194
  overlayVisible: false,
194
195
  focused: false,
195
196
  focusedOptionIndex: -1,
196
197
  selectedOptionIndex: -1
197
198
  };
198
199
  },
200
+ watch: {
201
+ '$attrs.id': function (newValue) {
202
+ this.id = newValue || utils.UniqueComponentId();
203
+ }
204
+ },
199
205
  target: null,
200
206
  outsideClickListener: null,
201
207
  scrollHandler: null,
@@ -203,6 +209,8 @@ var script = {
203
209
  container: null,
204
210
  list: null,
205
211
  mounted() {
212
+ this.id = this.id || utils.UniqueComponentId();
213
+
206
214
  if (!this.popup) {
207
215
  this.bindResizeListener();
208
216
  this.bindOutsideClickListener();
@@ -492,9 +500,6 @@ var script = {
492
500
  }
493
501
  ];
494
502
  },
495
- id() {
496
- return this.$attrs.id || utils.UniqueComponentId();
497
- },
498
503
  focusedOptionId() {
499
504
  return this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : null;
500
505
  }
@@ -529,14 +534,14 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
529
534
  ? (vue.openBlock(), vue.createElementBlock("div", vue.mergeProps({
530
535
  key: 0,
531
536
  ref: $options.containerRef,
532
- id: $options.id,
537
+ id: $data.id,
533
538
  class: $options.containerClass
534
539
  }, _ctx.$attrs, {
535
540
  onClick: _cache[3] || (_cache[3] = (...args) => ($options.onOverlayClick && $options.onOverlayClick(...args)))
536
541
  }), [
537
542
  vue.createElementVNode("ul", {
538
543
  ref: $options.listRef,
539
- id: $options.id + '_list',
544
+ id: $data.id + '_list',
540
545
  class: "p-menu-list p-reset",
541
546
  role: "menu",
542
547
  tabindex: $props.tabindex,
@@ -556,7 +561,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
556
561
  (item.items)
557
562
  ? (vue.openBlock(), vue.createElementBlock("li", {
558
563
  key: 0,
559
- id: $options.id + '_' + i,
564
+ id: $data.id + '_' + i,
560
565
  class: "p-submenu-header",
561
566
  role: "none"
562
567
  }, [
@@ -572,7 +577,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
572
577
  ($options.visible(child) && !child.separator)
573
578
  ? (vue.openBlock(), vue.createBlock(_component_PVMenuitem, {
574
579
  key: 0,
575
- id: $options.id + '_' + i + '_' + j,
580
+ id: $data.id + '_' + i + '_' + j,
576
581
  item: child,
577
582
  template: _ctx.$slots.item,
578
583
  exact: $props.exact,
@@ -599,7 +604,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
599
604
  }, null, 6))
600
605
  : (vue.openBlock(), vue.createBlock(_component_PVMenuitem, {
601
606
  key: $options.label(item) + i.toString(),
602
- id: $options.id + '_' + i,
607
+ id: $data.id + '_' + i,
603
608
  item: item,
604
609
  template: _ctx.$slots.item,
605
610
  exact: $props.exact,