@progress/kendo-vue-layout
Version:
9 lines (8 loc) • 4.25 kB
JavaScript
/**
* @license
*-------------------------------------------------------------------------------------------
* Copyright © 2026 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the package root for more information
*-------------------------------------------------------------------------------------------
*/
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),o=require("@progress/kendo-vue-common"),f=require("@progress/kendo-svg-icons"),q=require("@progress/kendo-vue-animation");function E(n){return typeof n=="function"||Object.prototype.toString.call(n)==="[object Object]"&&!e.isVNode(n)}const w=e.defineComponent({name:"KendoPanelBarGroup",props:{item:Object,items:Array,animation:Boolean,expanded:Boolean,disabled:Boolean,keepItemsMounted:Boolean,uniquePrivateKey:[String,Number],content:Object},data(){return{show:this.$props.expanded}},render(){const{item:n,items:i,uniquePrivateKey:u,disabled:d,expanded:l,animation:s,keepItemsMounted:p}=this.$props,b={display:"block"},t=o.getTemplate.call(this,{h:e.h,template:this.$props.content,defaultRendering:null,additionalProps:{...this.$props,show:this.show}}),r=!d&&l,c=r||p?i?e.createVNode("ul",{role:"group",class:"k-panelbar-group",style:{display:p?this.$data.show?"block":"none":"block"}},[i.map(function(k){return e.h(N,{...k,item:n})},this)]):this.$props.content?e.createVNode("div",{class:"k-panelbar-content"},[t]):null:null,a=!r&&!p&&!i&&this.$props.content?e.createVNode("div",{class:"k-panelbar-content","aria-hidden":"true",style:{display:"none"}},[t]):null;return[(s!==void 0?s:!0)&&!d?e.createVNode(q.Reveal,{appear:r,transitionEnterDuration:200,transitionExitDuration:200,key:u+"_animation",style:b,onEntering:this.handleEntering,onExited:this.handleExited},E(c)?c:{default:()=>[c]}):c,a]},methods:{handleEntering(){this.keepItemsMounted&&(this.show=!0)},handleExited(){this.keepItemsMounted&&(this.show=!1)}}}),N=e.defineComponent({name:"KendoPanelBarItem",props:{item:Object,items:Array,animation:Boolean,expanded:Boolean,disabled:Boolean,selected:Boolean,level:Number,title:{type:[String,Object,Function],default:function(){return"Untitled"}},id:[String,Number],focused:Boolean,keepItemsMounted:Boolean,uniquePrivateKey:[String,Number],parentUniquePrivateKey:Array,parentExpanded:Boolean,headerClassName:String,iconClass:String,imageUrl:String,icon:String,svgIcon:Object,content:Object,header:Object},inject:{dispatchItemSelect:{default:null}},render(){const{id:n,item:i,icon:u,svgIcon:d,items:l,content:s,title:p,uniquePrivateKey:b,disabled:t,selected:r,focused:c,expanded:a,className:g,level:m,headerClassName:k,animation:I,keepItemsMounted:y}=this.$props,h=!!l||!!s,v=o.classNames("k-panelbar-item",{"k-panelbar-header":m===0,"k-panelbar-item":m!==0,"k-expanded":a&&h,"k-disabled":t},`k-level-${m}`,g),B=o.classNames("k-link",{"k-selected":!t&&r,"k-focus":c},k),C=o.classNames("k-panelbar-toggle",{"k-panelbar-collapse":a&&h,"k-panelbar-expand":!a&&h}),S=a?"chevron-up":"chevron-down",P=a?f.chevronUpIcon:f.chevronDownIcon,V=function(){return this.imageUrl?e.createVNode("img",{role:"presentation",class:"k-panelbar-item-icon k-image",src:this.imageUrl},null):u||d?e.createVNode(o.Icon,{name:u,class:"k-panelbar-item-icon",icon:d},null):this.iconClass?e.createVNode(o.Icon,{class:"k-panelbar-item-icon "+this.iconClass},null):null}.call(this),x=!t&&(l||s)?e.createVNode(o.Icon,{name:S,icon:P,class:C},null):null,$=l||s?e.createVNode(w,{items:l,item:i,content:s,uniquePrivateKey:b,disabled:t,expanded:a,animation:I,keepItemsMounted:y},null):null,j=o.getTemplate.call(this,{h:e.h,template:this.$props.header,defaultRendering:null,additionalProps:{...this.$props}});return e.createVNode("li",{id:n,class:v,role:"treeitem","aria-disabled":t||void 0,"aria-selected":!t&&r,"aria-expanded":h?!t&&a:void 0},[e.createVNode("span",{class:B,onClick:this.handleItemClick},[V,this.$props.header?j:e.createVNode("span",{class:"k-panelbar-item-text"},[p]),x]),$])},methods:{handleItemClick(){const{disabled:n,id:i}=this.$props;n||this.dispatchItemSelect({uniquePrivateKey:this.$props.uniquePrivateKey,id:i,target:this})},childFactory(n){return n}}});exports.PanelBarItem=N;