@progress/kendo-vue-labels
Version:
9 lines (8 loc) • 1.85 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
*-------------------------------------------------------------------------------------------
*/
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("vue"),l=require("@progress/kendo-vue-common"),i=require("./messages/main.js"),d=require("@progress/kendo-vue-intl"),c=require("./package-metadata.js"),p=o.defineComponent({name:"KendoLabel",props:{id:String,editorId:String,editorRef:String,editorValid:{type:Boolean,default:void 0},editorDisabled:Boolean,optional:Boolean},inject:{kendoLocalizationService:{default:null}},created(){l.validatePackage(c.packageMetadata)},computed:{labelClassName(){return{"k-label":!0,"k-label-empty":!this.defaultSlots,"k-text-error":this.$props.editorValid===!1,"k-text-disabled":this.$props.editorDisabled===!0}}},methods:{onLabelClick(e){if(this.$props.editorRef&&this.$props.editorRef.current&&!this.$props.editorDisabled){this.$props.editorRef.current.focus&&(e.preventDefault(),this.$props.editorRef.current.focus());const t=this.$props.editorRef.current.actionElement;t&&(e.preventDefault(),t.click())}}},setup(){return{kendoLocalizationService:o.inject("kendoLocalizationService",{})}},render(){this.defaultSlots=l.getDefaultSlots(this);const e=d.provideLocalizationService(this),{id:t,editorId:r,optional:n}=this.$props,a=n?e.toLanguageString(i.labelsOptional,i.messages[i.labelsOptional]):"",s=a&&o.createVNode("span",{class:"k-label-optional"},[a]);return o.createVNode("label",{id:t,for:r,onClick:this.onLabelClick,class:this.labelClassName},[this.defaultSlots,s])}});exports.Label=p;