@progress/kendo-vue-layout
Version:
9 lines (8 loc) • 3.39 kB
JavaScript
/**
* @license
*-------------------------------------------------------------------------------------------
* Copyright © 2025 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 c=require("vue"),w=require("./DrawerNavigation.js"),t=require("@progress/kendo-vue-common"),h=require("../package-metadata.js"),f=c.defineComponent({name:"KendoDrawer",emits:{select:e=>!0,overlayclick:null},props:{animation:{type:[Object,Boolean],default:!0},expanded:{type:Boolean,default:!1},dir:{type:String,default:"ltr"},item:[String,Object,Function],navigationHeader:[String,Object,Function],navigationFooter:[String,Object,Function],navigationContent:[String,Object,Function],mode:{type:String,default:"overlay",validator:function(e){return["overlay","push"].includes(e)}},position:{type:String,default:"start",validator:function(e){return["start","end"].includes(e)}},items:{type:Array,default:[]},mini:{type:Boolean,default:!1},tabIndex:Number,width:{type:Number,default:240},miniWidth:{type:Number,default:50}},created(){t.validatePackage(h.packageMetadata),this.showLicenseWatermark=t.shouldShowValidationUI(h.packageMetadata),this.licenseMessage=t.getLicenseMessage(h.packageMetadata)},data(){const{expanded:e,mode:i,position:n,animation:o,mini:l,width:r,miniWidth:a,items:s,item:d}=this.$props;return{currentDir:"ltr",drawer:{expanded:e,mode:i,dir:this.currentDir,position:n,animation:o,mini:l,width:r,miniWidth:a,items:s,item:d},showLicenseWatermark:!1,licenseMessage:void 0}},mounted(){this.currentDir=t.getDir(this.$el,this.$props.dir)},updated(){const{expanded:e,mode:i,position:n,animation:o,mini:l,width:r,miniWidth:a,items:s,item:d}=this.$props;this.drawer.expanded=e,this.drawer.mode=i,this.drawer.dir=this.currentDir,this.drawer.position=n,this.drawer.animation=o,this.drawer.mini=l,this.drawer.width=r,this.drawer.miniWidth=a,this.drawer.items=s,this.drawer.item=d},provide(){return{kendoDrawer:this.drawer}},computed:{drawerClassNames(){const{expanded:e,mode:i,mini:n}=this.$props;return{"k-drawer-container":!0,"k-drawer-expanded":e,"k-drawer-overlay":i==="overlay","k-drawer-push":i==="push","k-drawer-mini":n}}},render(){const e=t.getDefaultSlots(this),{items:i,tabIndex:n,mode:o,expanded:l,item:r,navigationHeader:a,navigationFooter:s,navigationContent:d}=this.$props,m=r?t.templateRendering.call(this,r,t.getListeners.call(this)):void 0,u=a?t.templateRendering.call(this,a,t.getListeners.call(this)):void 0,p=s?t.templateRendering.call(this,s,t.getListeners.call(this)):void 0,g=d?t.templateRendering.call(this,d,t.getListeners.call(this)):void 0;return c.createVNode("div",{class:this.drawerClassNames,dir:this.currentDir,tabindex:n},[o==="overlay"&&l&&c.createVNode("div",{class:"k-overlay",onClick:this.onOverlayClick},null),i&&c.createVNode(w.DrawerNavigation,{onSelect:this.handleSelect,item:m,header:u,footer:p,content:g,showLicenseWatermark:this.showLicenseWatermark},null),e])},methods:{focus(){this.$el&&this.$el.focus()},handleSelect(e,i){this.$props.items&&this.$emit("select",{itemTarget:e,itemIndex:i,component:this})},onOverlayClick(e){this.$emit("overlayclick",e)}}});exports.Drawer=f;