UNPKG

@progress/kendo-vue-gauges

Version:
9 lines (8 loc) 2.87 kB
/** * @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 o=require("vue"),g=require("./BaseGauge.js"),d=require("@progress/kendo-charts"),h=require("./ArcCenter.js"),c=require("@progress/kendo-drawing"),s=require("@progress/kendo-vue-common"),f=o.defineComponent({name:"KendoArcGauge",props:{dir:String,renderAs:{type:String,default:"svg",validator:function(e){return["svg","canvas"].includes(e)}},gaugeConstructor:[Object,Function],value:{type:Number,default:void 0},color:String,colors:{type:Array,default:void 0},opacity:{type:Number,default:void 0},scale:{type:Object,default:void 0},centerRender:[String,Function,Object],transitions:{type:Boolean,default:void 0}},created(){this.gaugeType=d.ArcGauge},data(){return{centerStyles:{top:null,left:null},arcCenterValue:{value:"",color:""}}},provide(){return{centerStyles:this.$data.centerStyles,arcCenterValue:this.$data.arcCenterValue}},mounted(){this._baseGauge=this.baseGaugeRef,this.center=this.centerRef,this.positionCenter()},watch:{colors:function(e,t){this.prevColors=t}},updated(){this._baseGauge=this.baseGaugeRef,this.center=this.centerRef},render(){const e=s.getDefaultSlots(this),{centerRender:t,className:r,value:n,transitions:a,scale:i}=this.$props,l=t?s.templateRendering.call(this,t,s.getListeners.call(this)):void 0;return o.createVNode(g.BaseGauge,{value:n,scale:i,transitions:a,deriveOptionsFromParent:this.deriveOptionsFromParent,ref:u=>{this.baseGaugeRef=u},gaugeConstructor:this.gaugeType,getTarget:this.getTarget,class:s.classNames("k-gauge k-arcgauge",r),onRender:this.positionCenter},{default:()=>[e,o.createVNode(h.ArcCenter,{center:l,ref:u=>{this.centerRef=u}},null)]})},methods:{positionCenter(){const e=this.center.$el.offsetWidth,t=this.center.$el.offsetHeight,r=this.gaugeInstance(),n=r.centerLabelPosition(e,t);this.centerStyles.left=n.left+"px",this.centerStyles.top=n.top+"px",this.arcCenterValue.value=r.value(),this.arcCenterValue.color=r.currentColor()},gaugeInstance(){return this._baseGauge?this._baseGauge.gaugeInstance:null},surface(){return this._baseGauge?this._baseGauge.surface:null},element(){return this._baseGauge?this._baseGauge.element:null},exportVisual(e){return this.gaugeInstance!==null&&this.$el?c.drawDOM(this.$el,e):Promise.resolve(new c.Group)},getTarget(){return this},deriveOptionsFromParent(e){const{value:t,color:r,colors:n,opacity:a,scale:i}=this.$props;return Object.assign({},e,{value:t,color:r,colors:n,opacity:a,scale:i})}}});exports.ArcGauge=f;