primevue
Version:
[](https://opensource.org/licenses/MIT) [](https://badge.fury.io/js/primevue) [ • 7.94 kB
JavaScript
import{resolveComponent as e,openBlock as t,createBlock as n,Fragment as i,renderList as l,withCtx as a,createVNode as s,toDisplayString as d,createCommentVNode as o,resolveDynamicComponent as c,Transition as m,withDirectives as p,vShow as r}from"vue";import{UniqueComponentId as u}from"primevue/utils";var v={name:"PanelMenuSub",emits:["item-toggle"],props:{model:{type:null,default:null},template:{type:Object,default:null},expandedKeys:{type:null,default:null},exact:{type:Boolean,default:!0}},data:()=>({activeItem:null}),methods:{onItemClick(e,t,n){this.isActive(t)&&null===this.activeItem&&(this.activeItem=t),this.disabled(t)?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],linkClass(e,t){return["p-menuitem-link",{"p-disabled":this.disabled(e),"router-link-active":t&&t.isActive,"router-link-active-exact":this.exact&&t&&t.isExactActive}]},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,disabled:e=>"function"==typeof e.disabled?e.disabled():e.disabled}};const y={class:"p-submenu-list",role:"tree"},x={class:"p-menuitem-text"},b={class:"p-menuitem-text"},h={class:"p-toggleable-content"};v.render=function(u,v,g,k,f,I){const C=e("router-link"),A=e("PanelMenuSub",!0);return t(),n("ul",y,[(t(!0),n(i,null,l(g.model,((e,l)=>(t(),n(i,{key:e.label+l.toString()},[I.visible(e)&&!e.separator?(t(),n("li",{key:0,role:"none",class:I.getItemClass(e),style:e.style},[g.template?(t(),n(c(g.template),{key:1,item:e},null,8,["item"])):(t(),n(i,{key:0},[e.to&&!I.disabled(e)?(t(),n(C,{key:0,to:e.to,custom:""},{default:a((({navigate:t,href:n,isActive:i,isExactActive:l})=>[s("a",{href:n,class:I.linkClass(e,{isRouterActive:i,isExactActive:l}),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",x,d(e.label),1)],10,["href","onClick","aria-expanded"])])),_:2},1032,["to"])):(t(),n("a",{key:1,href:e.url,class:I.linkClass(e),target:e.target,onClick:t=>I.onItemClick(t,e),role:"treeitem","aria-expanded":I.isActive(e),tabindex:I.disabled(e)?null:"0"},[e.items?(t(),n("span",{key:0,class:I.getSubmenuIcon(e)},null,2)):o("",!0),s("span",{class:["p-menuitem-icon",e.icon]},null,2),s("span",b,d(e.label),1)],10,["href","target","onClick","aria-expanded","tabindex"]))],64)),s(m,{name:"p-toggleable-content"},{default:a((()=>[p(s("div",h,[I.visible(e)&&e.items?(t(),n(A,{model:e.items,key:e.label+"_sub_",template:g.template,expandedKeys:g.expandedKeys,onItemToggle:v[1]||(v[1]=e=>u.$emit("item-toggle",e)),exact:g.exact},null,8,["model","template","expandedKeys","exact"])):o("",!0)],512),[[r,I.isActive(e)]])])),_:2},1024)],6)):o("",!0),I.visible(e)&&e.separator?(t(),n("li",{class:["p-menu-separator",e.class],style:e.style,key:"separator"+l.toString()},null,6)):o("",!0)],64)))),128))])};var g={name:"PanelMenu",emits:["update:expandedKeys"],props:{model:{type:Array,default:null},expandedKeys:{type:null,default:null},exact:{type:Boolean,default:!0}},data:()=>({activeItem:null}),methods:{onItemClick(e,t,n){this.isActive(t)&&null===this.activeItem&&(this.activeItem=t),this.disabled(t)?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],getHeaderLinkClass(e,t){return["p-panelmenu-header-link",{"router-link-active":t&&t.isActive,"router-link-active-exact":this.exact&&t&&t.isExactActive}]},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":this.disabled(e)}]},visible:e=>"function"==typeof e.visible?e.visible():!1!==e.visible,disabled:e=>"function"==typeof e.disabled?e.disabled():e.disabled},components:{PanelMenuSub:v},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 i=document.head||document.getElementsByTagName("head")[0],l=document.createElement("style");l.type="text/css","top"===n&&i.firstChild?i.insertBefore(l,i.firstChild):i.appendChild(l),l.styleSheet?l.styleSheet.cssText=e:l.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"),g.render=function(u,v,y,x,b,h){const g=e("router-link"),A=e("PanelMenuSub");return t(),n("div",k,[(t(!0),n(i,null,l(y.model,((e,l)=>(t(),n(i,{key:e.label+"_"+l},[h.visible(e)?(t(),n("div",{key:0,class:h.getPanelClass(e),style:e.style},[s("div",{class:h.getHeaderClass(e),style:e.style},[u.$slots.item?(t(),n(c(u.$slots.item),{key:1,item:e},null,8,["item"])):(t(),n(i,{key:0},[e.to&&!h.disabled(e)?(t(),n(g,{key:0,to:e.to,custom:""},{default:a((({navigate:i,href:l,isActive:a,isExactActive:c})=>[s("a",{href:l,class:h.getHeaderLinkClass(e,{isActive:a,isExactActive:c}),onClick:t=>h.onItemClick(t,e,i),role:"treeitem"},[e.icon?(t(),n("span",{key:0,class:h.getPanelIcon(e)},null,2)):o("",!0),s("span",f,d(e.label),1)],10,["href","onClick"])])),_:2},1032,["to"])):(t(),n("a",{key:1,href:e.url,class:h.getHeaderLinkClass(e),onClick:t=>h.onItemClick(t,e),tabindex:h.disabled(e)?null:"0","aria-expanded":h.isActive(e),id:h.ariaId+"_header","aria-controls":h.ariaId+"_content"},[e.items?(t(),n("span",{key:0,class:h.getPanelToggleIcon(e)},null,2)):o("",!0),e.icon?(t(),n("span",{key:1,class:h.getPanelIcon(e)},null,2)):o("",!0),s("span",I,d(e.label),1)],10,["href","onClick","tabindex","aria-expanded","id","aria-controls"]))],64))],6),s(m,{name:"p-toggleable-content"},{default:a((()=>[p(s("div",{class:"p-toggleable-content",role:"region",id:h.ariaId+"_content","aria-labelledby":h.ariaId+"_header"},[e.items?(t(),n("div",C,[s(A,{model:e.items,class:"p-panelmenu-root-submenu",template:u.$slots.item,expandedKeys:y.expandedKeys,onItemToggle:h.updateExpandedKeys,exact:y.exact},null,8,["model","template","expandedKeys","onItemToggle","exact"])])):o("",!0)],8,["id","aria-labelledby"]),[[r,h.isActive(e)]])])),_:2},1024)],6)):o("",!0)],64)))),128))])};export default g;