UNPKG

@progress/kendo-vue-labels

Version:
9 lines (8 loc) 2.34 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 e=require("vue"),n=require("@progress/kendo-vue-common"),u=require("@progress/kendo-vue-intl"),o=require("./messages/main.js"),p=require("./package-metadata.js"),h=e.defineComponent({name:"KendoFloatingLabel",props:{label:String,labelClass:String,editorId:String,editorValue:[String,Boolean,Number],editorPlaceholder:String,editorValid:{type:Boolean,default:void 0},editorDisabled:Boolean,id:String,optional:Boolean,focused:{type:Boolean,default:void 0},dir:String},data(){return{currentFocused:!1}},inject:{kendoLocalizationService:{default:null}},created(){n.validatePackage(p.packageMetadata)},computed:{computedFocused(){return this.$props.focused!==void 0?this.$props.focused:this.currentFocused},spanClassNames(){return{"k-floating-label-container":!0,"k-focus":this.computedFocused,"k-empty":!this.$props.editorPlaceholder&&!this.$props.editorValue&&this.$props.editorValue!==0,"k-text-disabled":this.$props.editorDisabled,"k-rtl":this.$props.dir==="rtl"}},labelClassNames(){return{"k-floating-label":!0,"k-text-error":this.$props.editorValid===!1,"k-text-disabled":this.$props.editorDisabled,[this.$props.labelClass]:this.$props.labelClass}}},methods:{handleFocus(){this.currentFocused=!0},handleBlur(){this.currentFocused=!1}},setup(){return{kendoLocalizationService:e.inject("kendoLocalizationService",{})}},render(){const a=n.getDefaultSlots(this),{label:t,editorId:s,id:l,optional:d}=this.$props,c=u.provideLocalizationService(this),i=d?c.toLanguageString(o.labelsOptional,o.messages[o.labelsOptional]):"",r=i&&e.createVNode("span",{class:"k-label-optional"},[i]);return e.createVNode("span",{class:this.spanClassNames,onFocusin:this.handleFocus,onFocusout:this.handleBlur,dir:this.$props.dir},[a,t?s?e.createVNode("label",{id:l,for:s,class:this.labelClassNames},[t,r]):e.createVNode("span",{id:l,class:this.labelClassNames},[t,r]):null])}});exports.FloatingLabel=h;