@progress/kendo-vue-grid
Version:
9 lines (8 loc) • 4.72 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
*-------------------------------------------------------------------------------------------
*/
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("vue"),n=require("../utils/main.js"),d=require("@progress/kendo-vue-common"),s=require("@progress/kendo-vue-inputs"),l=require("@progress/kendo-vue-dateinputs"),i=require("@progress/kendo-vue-data-tools"),o=a.defineComponent({name:"GridEditCell",inheritAttrs:!1,props:{id:String,field:String,dataItem:Object,format:String,type:String,className:String,colSpan:Number,columnIndex:Number,columnsCount:Number,rowType:String,level:Number,expanded:Boolean,editor:String,isSelected:Boolean,ariaColumnIndex:Number,render:[String,Function,Object],isRtl:Boolean,readFormat:String,dataIndex:Number},emits:{change:null,cellkeydown:null,edit:null,add:null,cancel:null,save:null,remove:null},inject:{kendoIntlService:{default:null},getKeyboardNavigationAttributes:{default:d.noop}},computed:{tdClass(){const{className:e}=this.$props;return{"k-table-td":!0,[e]:e}}},data(){return{inputId:d.guid()}},methods:{triggerKeydown(e){this.$emit("cellkeydown",{event:e,dataItem:this.$props.dataItem,field:this.$props.field})},triggerEdit(e){this.$emit("edit",e)},triggerAdd(e){this.$emit("add",e)},triggerCancel(e){this.$emit("cancel",e)},triggerSave(e){this.$emit("save",e)},triggerRemove(e){this.$emit("remove",e)},changeHandler(e,t){t||(e.target.type==="checkbox"?t=e.target.checked:t=e.target.valueAsDate?e.target.valueAsDate:e.target.value),this.$emit("change",{dataItem:this.$props.dataItem,field:this.$props.field,event:e,value:t})}},setup(){return{kendoIntlService:a.inject("kendoIntlService",{})}},render(){const e=n.getNestedValue(this.$props.field,this.$props.dataItem),t=this.getKeyboardNavigationAttributes(this.$props.id);let r=null;switch(this.$props.editor){case"numeric":r=a.createVNode("td",{style:this.$attrs.style,onKeydown:this.triggerKeydown,colspan:this.$props.colSpan,class:this.tdClass,role:"gridcell","aria-colindex":this.$props.ariaColumnIndex,"aria-selected":this.$props.isSelected,"data-grid-col-index":this.$props.columnIndex,tabindex:t.tabIndex,"data-keyboardnavlevel":t[i.KEYBOARD_NAV_DATA_LEVEL],"data-keyboardnavid":t[i.KEYBOARD_NAV_DATA_ID]},[a.createVNode(s.NumericTextBox,{style:{width:"100%"},value:e===void 0?null:e,onChange:this.changeHandler},null)]);break;case"date":r=a.createVNode("td",{style:this.$attrs.style,onKeydown:this.triggerKeydown,colspan:this.$props.colSpan,class:this.tdClass,role:"gridcell","aria-colindex":this.$props.ariaColumnIndex,"aria-selected":this.$props.isSelected,"data-grid-col-index":this.$props.columnIndex,tabindex:t.tabIndex,"data-keyboardnavlevel":t[i.KEYBOARD_NAV_DATA_LEVEL],"data-keyboardnavid":t[i.KEYBOARD_NAV_DATA_ID]},[a.createVNode(l.DatePicker,{style:{width:"100%"},value:e,onChange:this.changeHandler},null)]);break;case"boolean":r=a.createVNode("td",{style:this.$attrs.style,onKeydown:this.triggerKeydown,colspan:this.$props.colSpan,class:this.tdClass,role:"gridcell","aria-colindex":this.$props.ariaColumnIndex,"aria-selected":this.$props.isSelected,"data-grid-col-index":this.$props.columnIndex,tabindex:t.tabIndex,"data-keyboardnavlevel":t[i.KEYBOARD_NAV_DATA_LEVEL],"data-keyboardnavid":t[i.KEYBOARD_NAV_DATA_ID]},[a.createVNode("input",{checked:e||!1,id:this.inputId,type:"checkbox",class:"k-checkbox k-checkbox-md k-rounded-md",onChange:this.changeHandler},null),a.createVNode("label",{class:"k-checkbox-label",for:this.inputId},null)]);break;default:r=a.createVNode("td",{style:this.$attrs.style,onKeydown:this.triggerKeydown,colspan:this.$props.colSpan,class:this.tdClass,role:"gridcell","aria-colindex":this.$props.ariaColumnIndex,"aria-selected":this.$props.isSelected,"data-grid-col-index":this.$props.columnIndex,tabindex:t.tabIndex,"data-keyboardnavlevel":t[i.KEYBOARD_NAV_DATA_LEVEL],"data-keyboardnavid":t[i.KEYBOARD_NAV_DATA_ID]},[a.createVNode("span",{class:"k-textbox k-input k-input-md k-rounded-md k-input-solid"},[a.createVNode("input",{style:{width:"100%"},class:"k-input-inner",value:e!=null?e:"",onChange:this.changeHandler},null)])])}return d.getTemplate.call(this,{h:a.h,template:this.$props.render,defaultRendering:r,additionalProps:this.$props,additionalListeners:{change:this.changeHandler,keydown:this.triggerKeydown,edit:this.triggerEdit,add:this.triggerAdd,cancel:this.triggerCancel,save:this.triggerSave,remove:this.triggerRemove}})}});exports.GridEditCell=o;