UNPKG

@progress/kendo-vue-inputs

Version:
9 lines (8 loc) 2.93 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 a=require("vue"),t=require("@progress/kendo-vue-common"),v=require("../package-metadata.js"),N=a.defineComponent({name:"KendoRadioButton",props:{ariaDescribedBy:String,checked:Boolean,disabled:Boolean,className:String,content:[String,Number,Boolean,Object],dataItem:Object,id:String,label:String,labelRender:[String,Number,Boolean,Object],item:[String,Number,Boolean,Object],labelPlacement:String,name:String,index:Number,tag:{type:String,default:"div"},size:{type:String,default:"medium",validator:function(e){return[null,"small","medium","large"].includes(e)}},tabIndex:Number,value:[String,Number,Object],valid:{type:Boolean,default:void 0},role:String},emits:{change:null,focus:null,blur:null},created(){this.calculatedId=t.guid(),t.validatePackage(v.packageMetadata)},mounted(){this.input=t.getRef(this,"input")},computed:{inputClassName(){return{"k-radio":!0,[`k-radio-${t.kendoThemeMaps.sizeMap[this.$props.size]}`]:this.$props.size,"k-invalid":this.$props.valid===!1,[this.$props.className]:this.$props.className}}},methods:{focusElement(){this.input&&this.input.focus()},handleChange(e){this.$emit("change",{event:e,value:this.$props.value})},handleFocus(e){this.$props.disabled||this.$emit("focus",e,void 0)},handleBlur(e){this.$props.disabled||this.$emit("blur",e,void 0)}},setup(){return{inputRef:a.ref(null)}},render(){const e=t.getDefaultSlots(this),{ariaDescribedBy:h,checked:p,disabled:i,id:s,label:d,labelRender:l,labelPlacement:m,name:b,tabIndex:g,value:f,tag:r,role:S}=this.$props;let n=d;if(l){const B=l?t.templateRendering.call(this,l,t.getListeners.call(this)):null;n=t.getTemplate.call(this,{h:a.h,template:B})}const o=t.getTemplate.call(this,{h:a.h,template:this.$props.content}),u=n!==void 0?a.createVNode("label",{class:"k-radio-label",for:s||this.calculatedId,style:{userSelect:"none"},"aria-label":d},[n]):null,c=a.createVNode("input",{role:S,type:"radio",id:s||this.calculatedId,name:b,class:this.inputClassName,ref:t.setRef(this,"input"),disabled:i,tabindex:t.getTabIndex(g,i),checked:p,style:this.$attrs.style,"aria-describedby":h,value:f,onChange:this.handleChange,onFocus:this.handleFocus,onBlur:this.handleBlur},null),$=m==="before"?a.h(r,[u,c,o,e]):a.h(r,[c,u,o,e]);return t.getTemplate.call(this,{h:a.h,template:this.$props.item,defaultRendering:$,defaultSlots:e,additionalListeners:{change:this.handleChange,focus:this.handleFocus,blur:this.handleBlur},additionalProps:{dataItem:this.$props.dataItem}})}});exports.RadioButton=N;