UNPKG

primevue

Version:

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![npm version](https://badge.fury.io/js/primevue.svg)](https://badge.fury.io/js/primevue) [![Discord Chat](https://img.shields.io/discord/55794023

2 lines (1 loc) 8.45 kB
import{resolveComponent as e,openBlock as t,createElementBlock as n,Fragment as i,renderList as l,normalizeClass as a,normalizeStyle as s,createBlock as o,withCtx as d,createElementVNode as c,toDisplayString as m,createCommentVNode as p,resolveDynamicComponent as r,createVNode as u,Transition as y,withDirectives as v,vShow as b}from"vue";import{UniqueComponentId as h}from"primevue/utils";var x={name:"PanelMenuSub",emits:["item-toggle"],props:{model:{type:null,default:null},template:{type:Function,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))},onItemKeydown(e,t){13===e.which&&this.onItemClick(e,t)},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,label:e=>"function"==typeof e.label?e.label():e.label}};const g={class:"p-submenu-list",role:"tree"},k=["href","onClick","aria-expanded"],f={class:"p-menuitem-text"},I=["href","target","onClick","onKeydown","aria-expanded","tabindex"],C={class:"p-menuitem-text"},K={class:"p-toggleable-content"};x.render=function(h,x,A,w,_,E){const P=e("router-link"),S=e("PanelMenuSub",!0);return t(),n("ul",g,[(t(!0),n(i,null,l(A.model,((e,l)=>(t(),n(i,{key:E.label(e)+l.toString()},[E.visible(e)&&!e.separator?(t(),n("li",{key:0,role:"none",class:a(E.getItemClass(e)),style:s(e.style)},[A.template?(t(),o(r(A.template),{key:1,item:e},null,8,["item"])):(t(),n(i,{key:0},[e.to&&!E.disabled(e)?(t(),o(P,{key:0,to:e.to,custom:""},{default:d((({navigate:t,href:n,isActive:i,isExactActive:l})=>[c("a",{href:n,class:a(E.linkClass(e,{isRouterActive:i,isExactActive:l})),onClick:n=>E.onItemClick(n,e,t),role:"treeitem","aria-expanded":E.isActive(e)},[c("span",{class:a(["p-menuitem-icon",e.icon])},null,2),c("span",f,m(E.label(e)),1)],10,k)])),_:2},1032,["to"])):(t(),n("a",{key:1,href:e.url,class:a(E.linkClass(e)),target:e.target,onClick:t=>E.onItemClick(t,e),onKeydown:t=>E.onItemKeydown(t,e),role:"treeitem","aria-expanded":E.isActive(e),tabindex:E.disabled(e)?null:"0"},[e.items?(t(),n("span",{key:0,class:a(E.getSubmenuIcon(e))},null,2)):p("",!0),c("span",{class:a(["p-menuitem-icon",e.icon])},null,2),c("span",C,m(E.label(e)),1)],42,I))],64)),u(y,{name:"p-toggleable-content"},{default:d((()=>[v(c("div",K,[E.visible(e)&&e.items?(t(),o(S,{model:e.items,key:E.label(e)+"_sub_",template:A.template,expandedKeys:A.expandedKeys,onItemToggle:x[0]||(x[0]=e=>h.$emit("item-toggle",e)),exact:A.exact},null,8,["model","template","expandedKeys","exact"])):p("",!0)],512),[[b,E.isActive(e)]])])),_:2},1024)],6)):p("",!0),E.visible(e)&&e.separator?(t(),n("li",{class:a(["p-menu-separator",e.class]),style:s(e.style),key:"separator"+l.toString()},null,6)):p("",!0)],64)))),128))])};var A={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))},onItemKeydown(e,t){13===e.which&&this.onItemClick(e,t)},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,label:e=>"function"==typeof e.label?e.label():e.label},components:{PanelMenuSub:x},computed:{ariaId:()=>h()}};const w={class:"p-panelmenu p-component"},_=["href","onClick"],E={class:"p-menuitem-text"},P=["href","onClick","onKeydown","tabindex","aria-expanded","id","aria-controls"],S={class:"p-menuitem-text"},T=["id","aria-labelledby"],$={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"),A.render=function(h,x,g,k,f,I){const C=e("router-link"),K=e("PanelMenuSub");return t(),n("div",w,[(t(!0),n(i,null,l(g.model,((e,l)=>(t(),n(i,{key:I.label(e)+"_"+l},[I.visible(e)?(t(),n("div",{key:0,class:a(I.getPanelClass(e)),style:s(e.style)},[c("div",{class:a(I.getHeaderClass(e)),style:s(e.style)},[h.$slots.item?(t(),o(r(h.$slots.item),{key:1,item:e},null,8,["item"])):(t(),n(i,{key:0},[e.to&&!I.disabled(e)?(t(),o(C,{key:0,to:e.to,custom:""},{default:d((({navigate:i,href:l,isActive:s,isExactActive:o})=>[c("a",{href:l,class:a(I.getHeaderLinkClass(e,{isActive:s,isExactActive:o})),onClick:t=>I.onItemClick(t,e,i),role:"treeitem"},[e.icon?(t(),n("span",{key:0,class:a(I.getPanelIcon(e))},null,2)):p("",!0),c("span",E,m(I.label(e)),1)],10,_)])),_:2},1032,["to"])):(t(),n("a",{key:1,href:e.url,class:a(I.getHeaderLinkClass(e)),onClick:t=>I.onItemClick(t,e),onKeydown:t=>I.onItemKeydown(t,e),tabindex:I.disabled(e)?null:"0","aria-expanded":I.isActive(e),id:I.ariaId+"_header_"+l,"aria-controls":I.ariaId+"_content_"+l},[e.items?(t(),n("span",{key:0,class:a(I.getPanelToggleIcon(e))},null,2)):p("",!0),e.icon?(t(),n("span",{key:1,class:a(I.getPanelIcon(e))},null,2)):p("",!0),c("span",S,m(I.label(e)),1)],42,P))],64))],6),u(y,{name:"p-toggleable-content"},{default:d((()=>[v(c("div",{class:"p-toggleable-content",role:"region",id:I.ariaId+"_content_"+l,"aria-labelledby":I.ariaId+"_header_"+l},[e.items?(t(),n("div",$,[u(K,{model:e.items,class:"p-panelmenu-root-submenu",template:h.$slots.item,expandedKeys:g.expandedKeys,onItemToggle:I.updateExpandedKeys,exact:g.exact},null,8,["model","template","expandedKeys","onItemToggle","exact"])])):p("",!0)],8,T),[[b,I.isActive(e)]])])),_:2},1024)],6)):p("",!0)],64)))),128))])};export{A as default};