UNPKG

@progress/kendo-vue-dialogs

Version:
9 lines (8 loc) 3.94 kB
/** * @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 o=require("vue"),I=require("./DialogTitleBar.js"),n=require("@progress/kendo-vue-common"),c=require("./package-metadata.js"),k=require("./constants.js"),y=o.defineComponent({name:"KendoDialog",emits:{close:e=>!0,overlayclick:null},props:{appendTo:String,title:String,titleRender:[String,Function],id:String,wrapperId:String,dir:String,closeIcon:{type:Boolean,default:!0},modal:{type:Boolean,default:!0},width:[String,Number],height:[String,Number],minWidth:[String,Number],className:String,dialogClass:String,onClose:Function},provide(){return{kCurrentZIndex:k.DEFAULT_DIALOGS_ZINDEX}},data(){return{showLicenseWatermark:!1,licenseMessage:void 0}},created(){n.validatePackage(c.packageMetadata),this.showLicenseWatermark=n.shouldShowValidationUI(c.packageMetadata),this.licenseMessage=n.getLicenseMessage(c.packageMetadata),this.titleId=this.generateTitleId(),this.contentId=this.generateContentId()},computed:{wrapperClass(){const{className:e}=this.$props;return{"k-dialog-wrapper":!0,[e]:e}},dialogElementClass(){const{dialogClass:e}=this.$props;return{"k-window":!0,"k-dialog":!0,[e]:e}}},mounted(){const e=this.$props.appendTo?document.querySelector(this.$props.appendTo):document.body;e&&(this.windowElement=this.$el,e.appendChild(this.windowElement))},beforeUnmount(){var e;(e=this.windowElement)!=null&&e.parentNode&&this.windowElement.remove()},methods:{handleCloseDialog(e){e.preventDefault(),this.$emit("close",{event:e,target:this})},handleKeyDown(e){e.keyCode===n.Keys.esc&&n.hasListener.call(this,"close")&&(e.preventDefault(),this.handleCloseDialog(e))},transformDimesion(e){return typeof e=="string"&&(e.endsWith("px")||e.endsWith("%"))?e:e+"px"},getActionBarIndex(e){return e.findIndex(t=>t&&t.tag&&t.tag.toLowerCase().indexOf("dialogactionsbar")!==-1||t.componentOptions&&t.componentOptions.tag&&t.componentOptions.tag.toLowerCase().indexOf("actions-bar")!==-1||t.type&&t.type.name&&t.type.name.toLowerCase().indexOf("dialogactionsbar")!==-1)},generateTitleId(){return"dialog-title"+n.guid()},generateContentId(){return"dialog-content"+n.guid()},handleClick(e){this.$emit("overlayclick",e)}},render(){const e=this.$props.id!==void 0?this.$props.id:this.titleId;let{title:i,width:t,height:a,minWidth:r,dir:g,contentStyle:u,wrapperId:m}=this.$props;const d=this.$props.titleRender?n.templateRendering.call(this,this.$props.titleRender,n.getListeners.call(this)):null,s=n.getDefaultSlots(this)||[];t=this.transformDimesion(t),a=this.transformDimesion(a),r=this.transformDimesion(r);const w=this.showLicenseWatermark?o.createVNode(n.WatermarkOverlay,{message:this.licenseMessage},null):null,l=this.getActionBarIndex(s);let p;l!==-1&&(p=s[l],s.splice(l,1));const f=this.$props.closeIcon!==void 0?this.$props.closeIcon:!0,h=o.createVNode("div",{ref:"wrapper",class:this.wrapperClass,onKeydown:this.handleKeyDown,tabindex:0,id:m,dir:g},[this.$props.modal&&o.createVNode("div",{class:"k-overlay",onClick:this.handleClick},null),o.createVNode("div",{"aria-labelledby":i||d?e:void 0,"aria-describedby":this.contentId,"aria-modal":this.$props.modal||void 0,class:this.dialogElementClass,role:"dialog",style:{width:t,height:a,minWidth:r,overflow:"hidden"}},[(i||d)&&o.createVNode(I.DialogTitleBar,{closeIcon:f,onClosebuttonclick:this.handleCloseDialog,id:e,title:i,titleRender:d},null),o.createVNode("div",{class:"k-window-content k-dialog-content",style:u,id:this.contentId},[s]),p,w])]);return this.$props.appendTo?o.createVNode("div",null,[h]):h}});exports.Dialog=y;