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) 9.8 kB
"use strict";var e=require("vue"),t=require("primevue/utils"),n={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 l={class:"p-submenu-list",role:"tree"},a=["href","onClick","aria-expanded"],i={class:"p-menuitem-text"},o=["href","target","onClick","onKeydown","aria-expanded","tabindex"],s={class:"p-menuitem-text"},c={class:"p-toggleable-content"};n.render=function(t,n,m,r,d,p){const u=e.resolveComponent("router-link"),k=e.resolveComponent("PanelMenuSub",!0);return e.openBlock(),e.createElementBlock("ul",l,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.model,((l,r)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:p.label(l)+r.toString()},[p.visible(l)&&!l.separator?(e.openBlock(),e.createElementBlock("li",{key:0,role:"none",class:e.normalizeClass(p.getItemClass(l)),style:e.normalizeStyle(l.style)},[m.template?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(m.template),{key:1,item:l},null,8,["item"])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[l.to&&!p.disabled(l)?(e.openBlock(),e.createBlock(u,{key:0,to:l.to,custom:""},{default:e.withCtx((({navigate:t,href:n,isActive:o,isExactActive:s})=>[e.createElementVNode("a",{href:n,class:e.normalizeClass(p.linkClass(l,{isRouterActive:o,isExactActive:s})),onClick:e=>p.onItemClick(e,l,t),role:"treeitem","aria-expanded":p.isActive(l)},[e.createElementVNode("span",{class:e.normalizeClass(["p-menuitem-icon",l.icon])},null,2),e.createElementVNode("span",i,e.toDisplayString(p.label(l)),1)],10,a)])),_:2},1032,["to"])):(e.openBlock(),e.createElementBlock("a",{key:1,href:l.url,class:e.normalizeClass(p.linkClass(l)),target:l.target,onClick:e=>p.onItemClick(e,l),onKeydown:e=>p.onItemKeydown(e,l),role:"treeitem","aria-expanded":p.isActive(l),tabindex:p.disabled(l)?null:"0"},[l.items?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(p.getSubmenuIcon(l))},null,2)):e.createCommentVNode("",!0),e.createElementVNode("span",{class:e.normalizeClass(["p-menuitem-icon",l.icon])},null,2),e.createElementVNode("span",s,e.toDisplayString(p.label(l)),1)],42,o))],64)),e.createVNode(e.Transition,{name:"p-toggleable-content"},{default:e.withCtx((()=>[e.withDirectives(e.createElementVNode("div",c,[p.visible(l)&&l.items?(e.openBlock(),e.createBlock(k,{model:l.items,key:p.label(l)+"_sub_",template:m.template,expandedKeys:m.expandedKeys,onItemToggle:n[0]||(n[0]=e=>t.$emit("item-toggle",e)),exact:m.exact},null,8,["model","template","expandedKeys","exact"])):e.createCommentVNode("",!0)],512),[[e.vShow,p.isActive(l)]])])),_:2},1024)],6)):e.createCommentVNode("",!0),p.visible(l)&&l.separator?(e.openBlock(),e.createElementBlock("li",{class:e.normalizeClass(["p-menu-separator",l.class]),style:e.normalizeStyle(l.style),key:"separator"+r.toString()},null,6)):e.createCommentVNode("",!0)],64)))),128))])};var m={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:n},computed:{ariaId:()=>t.UniqueComponentId()}};const r={class:"p-panelmenu p-component"},d=["href","onClick"],p={class:"p-menuitem-text"},u=["href","onClick","onKeydown","tabindex","aria-expanded","id","aria-controls"],k={class:"p-menuitem-text"},y=["id","aria-labelledby"],v={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],a=document.createElement("style");a.type="text/css","top"===n&&l.firstChild?l.insertBefore(a,l.firstChild):l.appendChild(a),a.styleSheet?a.styleSheet.cssText=e:a.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"),m.render=function(t,n,l,a,i,o){const s=e.resolveComponent("router-link"),c=e.resolveComponent("PanelMenuSub");return e.openBlock(),e.createElementBlock("div",r,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.model,((n,a)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:o.label(n)+"_"+a},[o.visible(n)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(o.getPanelClass(n)),style:e.normalizeStyle(n.style)},[e.createElementVNode("div",{class:e.normalizeClass(o.getHeaderClass(n)),style:e.normalizeStyle(n.style)},[t.$slots.item?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.$slots.item),{key:1,item:n},null,8,["item"])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[n.to&&!o.disabled(n)?(e.openBlock(),e.createBlock(s,{key:0,to:n.to,custom:""},{default:e.withCtx((({navigate:t,href:l,isActive:a,isExactActive:i})=>[e.createElementVNode("a",{href:l,class:e.normalizeClass(o.getHeaderLinkClass(n,{isActive:a,isExactActive:i})),onClick:e=>o.onItemClick(e,n,t),role:"treeitem"},[n.icon?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(o.getPanelIcon(n))},null,2)):e.createCommentVNode("",!0),e.createElementVNode("span",p,e.toDisplayString(o.label(n)),1)],10,d)])),_:2},1032,["to"])):(e.openBlock(),e.createElementBlock("a",{key:1,href:n.url,class:e.normalizeClass(o.getHeaderLinkClass(n)),onClick:e=>o.onItemClick(e,n),onKeydown:e=>o.onItemKeydown(e,n),tabindex:o.disabled(n)?null:"0","aria-expanded":o.isActive(n),id:o.ariaId+"_header_"+a,"aria-controls":o.ariaId+"_content_"+a},[n.items?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(o.getPanelToggleIcon(n))},null,2)):e.createCommentVNode("",!0),n.icon?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(o.getPanelIcon(n))},null,2)):e.createCommentVNode("",!0),e.createElementVNode("span",k,e.toDisplayString(o.label(n)),1)],42,u))],64))],6),e.createVNode(e.Transition,{name:"p-toggleable-content"},{default:e.withCtx((()=>[e.withDirectives(e.createElementVNode("div",{class:"p-toggleable-content",role:"region",id:o.ariaId+"_content_"+a,"aria-labelledby":o.ariaId+"_header_"+a},[n.items?(e.openBlock(),e.createElementBlock("div",v,[e.createVNode(c,{model:n.items,class:"p-panelmenu-root-submenu",template:t.$slots.item,expandedKeys:l.expandedKeys,onItemToggle:o.updateExpandedKeys,exact:l.exact},null,8,["model","template","expandedKeys","onItemToggle","exact"])])):e.createCommentVNode("",!0)],8,y),[[e.vShow,o.isActive(n)]])])),_:2},1024)],6)):e.createCommentVNode("",!0)],64)))),128))])},module.exports=m;