primevue
Version:
[](https://opensource.org/licenses/MIT) [](https://badge.fury.io/js/primevue) [ • 7.3 kB
JavaScript
import{resolveComponent as e,openBlock as t,createBlock as n,Fragment as l,renderList as i,withCtx as a,createVNode as s,toDisplayString as o,createCommentVNode as d,resolveDynamicComponent as m,Transition as p,withDirectives as c,vShow as r}from"vue";import{UniqueComponentId as u}from"primevue/utils";var y={name:"PanelMenuSub",emits:["item-toggle"],props:{model:{type:null,default:null},template:{type:Object,default:null},expandedKeys:{type:null,default:null}},data:()=>({activeItem:null}),methods:{onItemClick(e,t,n){this.isActive(t)&&null===this.activeItem&&(this.activeItem=t),t.disabled?e.preventDefault():(t.command&&t.command({originalEvent:e,item:t}),this.activeItem&&this.activeItem===t?this.activeItem=null:this.activeItem=t,this.$emit("item-toggle",{item:t,expanded:null!=this.activeItem}),t.to&&n&&n(e))},getItemClass:e=>["p-menuitem",e.className],getLinkClass:e=>["p-menuitem-link",{"p-disabled":e.disabled}],isActive(e){return this.expandedKeys?this.expandedKeys[e.key]:e===this.activeItem},getSubmenuIcon(e){const t=this.isActive(e);return["p-panelmenu-icon pi pi-fw",{"pi-angle-right":!t,"pi-angle-down":t}]},visible:e=>"function"==typeof e.visible?e.visible():!1!==e.visible}};const g={class:"p-submenu-list",role:"tree"},h={class:"p-menuitem-text"},b={class:"p-menuitem-text"},v={class:"p-toggleable-content"};y.render=function(u,y,x,k,f,I){const C=e("router-link"),K=e("PanelMenuSub",!0);return t(),n("ul",g,[(t(!0),n(l,null,i(x.model,((e,i)=>(t(),n(l,{key:e.label+i.toString()},[I.visible(e)&&!e.separator?(t(),n("li",{key:0,role:"none",class:I.getItemClass(e),style:e.style},[x.template?(t(),n(m(x.template),{key:1,item:e},null,8,["item"])):(t(),n(l,{key:0},[e.to&&!e.disabled?(t(),n(C,{key:0,to:e.to,custom:""},{default:a((({navigate:t,href:n})=>[s("a",{href:n,class:I.getLinkClass(e),onClick:n=>I.onItemClick(n,e,t),role:"treeitem","aria-expanded":I.isActive(e)},[s("span",{class:["p-menuitem-icon",e.icon]},null,2),s("span",h,o(e.label),1)],10,["href","onClick","aria-expanded"])])),_:2},1032,["to"])):(t(),n("a",{key:1,href:e.url,class:I.getLinkClass(e),target:e.target,onClick:t=>I.onItemClick(t,e),role:"treeitem","aria-expanded":I.isActive(e),tabindex:e.disabled?null:"0"},[e.items?(t(),n("span",{key:0,class:I.getSubmenuIcon(e)},null,2)):d("",!0),s("span",{class:["p-menuitem-icon",e.icon]},null,2),s("span",b,o(e.label),1)],10,["href","target","onClick","aria-expanded","tabindex"]))],64)),s(p,{name:"p-toggleable-content"},{default:a((()=>[c(s("div",v,[I.visible(e)&&e.items?(t(),n(K,{model:e.items,key:e.label+"_sub_",template:x.template,expandedKeys:x.expandedKeys,onItemToggle:y[1]||(y[1]=e=>u.$emit("item-toggle",e))},null,8,["model","template","expandedKeys"])):d("",!0)],512),[[r,I.isActive(e)]])])),_:2},1024)],6)):d("",!0),I.visible(e)&&e.separator?(t(),n("li",{class:["p-menu-separator",e.class],style:e.style,key:"separator"+i.toString()},null,6)):d("",!0)],64)))),128))])};var x={name:"PanelMenu",emits:["update:expandedKeys"],props:{model:{type:Array,default:null},expandedKeys:{type:null,default:null}},data:()=>({activeItem:null}),methods:{onItemClick(e,t,n){this.isActive(t)&&null===this.activeItem&&(this.activeItem=t),t.disabled?e.preventDefault():(t.command&&t.command({originalEvent:e,item:t}),this.activeItem&&this.activeItem===t?this.activeItem=null:this.activeItem=t,this.updateExpandedKeys({item:t,expanded:null!=this.activeItem}),t.to&&n&&n(e))},updateExpandedKeys(e){if(this.expandedKeys){let t=e.item,n={...this.expandedKeys};e.expanded?n[t.key]=!0:delete n[t.key],this.$emit("update:expandedKeys",n)}},getPanelClass:e=>["p-panelmenu-panel",e.class],getPanelToggleIcon(e){const t=this.isActive(e);return["p-panelmenu-icon pi",{"pi-chevron-right":!t," pi-chevron-down":t}]},getPanelIcon:e=>["p-menuitem-icon",e.icon],isActive(e){return this.expandedKeys?this.expandedKeys[e.key]:e===this.activeItem},getHeaderClass(e){return["p-component p-panelmenu-header",{"p-highlight":this.isActive(e),"p-disabled":e.disabled}]},visible:e=>"function"==typeof e.visible?e.visible():!1!==e.visible},components:{PanelMenuSub:y},computed:{ariaId:()=>u()}};const k={class:"p-panelmenu p-component"},f={class:"p-menuitem-text"},I={class:"p-menuitem-text"},C={key:0,class:"p-panelmenu-content"};!function(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var l=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css","top"===n&&l.firstChild?l.insertBefore(i,l.firstChild):l.appendChild(i),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(document.createTextNode(e))}}("\n.p-panelmenu .p-panelmenu-header-link {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n cursor: pointer;\n position: relative;\n text-decoration: none;\n}\n.p-panelmenu .p-panelmenu-header-link:focus {\n z-index: 1;\n}\n.p-panelmenu .p-submenu-list {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.p-panelmenu .p-menuitem-link {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n cursor: pointer;\n text-decoration: none;\n}\n.p-panelmenu .p-menuitem-text {\n line-height: 1;\n}\n"),x.render=function(u,y,g,h,b,v){const x=e("router-link"),K=e("PanelMenuSub");return t(),n("div",k,[(t(!0),n(l,null,i(g.model,((e,i)=>(t(),n(l,{key:e.label+"_"+i},[v.visible(e)?(t(),n("div",{key:0,class:v.getPanelClass(e),style:e.style},[s("div",{class:v.getHeaderClass(e),style:e.style},[u.$slots.item?(t(),n(m(u.$slots.item),{key:1,item:e},null,8,["item"])):(t(),n(l,{key:0},[e.to&&!e.disabled?(t(),n(x,{key:0,to:e.to,custom:""},{default:a((({navigate:l,href:i})=>[s("a",{href:i,class:"p-panelmenu-header-link",onClick:t=>v.onItemClick(t,e,l),role:"treeitem"},[e.icon?(t(),n("span",{key:0,class:v.getPanelIcon(e)},null,2)):d("",!0),s("span",f,o(e.label),1)],8,["href","onClick"])])),_:2},1032,["to"])):(t(),n("a",{key:1,href:e.url,class:"p-panelmenu-header-link",onClick:t=>v.onItemClick(t,e),tabindex:e.disabled?null:"0","aria-expanded":v.isActive(e),id:v.ariaId+"_header","aria-controls":v.ariaId+"_content"},[e.items?(t(),n("span",{key:0,class:v.getPanelToggleIcon(e)},null,2)):d("",!0),e.icon?(t(),n("span",{key:1,class:v.getPanelIcon(e)},null,2)):d("",!0),s("span",I,o(e.label),1)],8,["href","onClick","tabindex","aria-expanded","id","aria-controls"]))],64))],6),s(p,{name:"p-toggleable-content"},{default:a((()=>[c(s("div",{class:"p-toggleable-content",role:"region",id:v.ariaId+"_content","aria-labelledby":v.ariaId+"_header"},[e.items?(t(),n("div",C,[s(K,{model:e.items,class:"p-panelmenu-root-submenu",template:u.$slots.item,expandedKeys:g.expandedKeys,onItemToggle:v.updateExpandedKeys},null,8,["model","template","expandedKeys","onItemToggle"])])):d("",!0)],8,["id","aria-labelledby"]),[[r,v.isActive(e)]])])),_:2},1024)],6)):d("",!0)],64)))),128))])};export default x;