@progress/kendo-vue-grid
Version:
9 lines (8 loc) • 3.12 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 i=require("vue"),o=require("../utils/main.js"),d=require("@progress/kendo-vue-intl"),s=require("@progress/kendo-vue-common"),a=require("@progress/kendo-vue-data-tools"),l=i.defineComponent({name:"GridCell",inheritAttrs:!1,emits:{cellclick:null,cellkeydown:null},props:{id:String,field:String,dataItem:Object,format:String,readFormat:String,className:String,colSpan:Number,columnIndex:Number,columnsCount:Number,dataIndex:Number,rowType:String,level:Number,expanded:Boolean,type:String,editor:String,isSelected:Boolean,ariaColumnIndex:Number,render:[String,Function,Object],isRtl:Boolean,onEdit:Function,onSave:Function,onRemove:Function,onCancel:Function,onChange:Function,onSelectionchange:Function},inject:{kendoIntlService:{default:null},getKeyboardNavigationAttributes:{default:s.noop}},methods:{triggerClick(){this.$emit("cellclick",{dataItem:this.$props.dataItem,field:this.$props.field})},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)}},created(){this._intl=d.provideIntlService(this)},computed:{tdClass(){const{className:e}=this.$props;return{"k-table-td":!0,[e]:e}}},setup(){return{kendoIntlService:i.inject("kendoIntlService",{})}},render(){let e=null;const r=this.getKeyboardNavigationAttributes(this.$props.id);if(this.$props.rowType==="groupFooter")e=i.createVNode("td",{class:this.tdClass},null);else if(this.$props.field!==void 0&&this.$props.rowType!=="groupHeader"){const t=o.getNestedValue(this.$props.field,this.$props.dataItem);let n="";t!=null&&(n=this.$props.format?this.$props.type?this._intl.format(this.$props.format,o.parsers[this.$props.type](t,this._intl,this.$props.readFormat)):this._intl.format(this.$props.format,t):t.toString()),e=i.createVNode("td",{style:this.$attrs.style,colspan:this.$props.colSpan,class:this.tdClass,onKeydown:this.triggerKeydown,onClick:this.triggerClick,role:"gridcell","aria-colindex":this.$props.ariaColumnIndex,"aria-selected":this.$props.isSelected,"data-grid-col-index":this.$props.columnIndex,tabindex:r.tabIndex,"data-keyboardnavlevel":r[a.KEYBOARD_NAV_DATA_LEVEL],"data-keyboardnavid":r[a.KEYBOARD_NAV_DATA_ID]},[n])}return s.getTemplate.call(this,{h:i.h,template:this.$props.render,defaultRendering:e,additionalProps:this.$props,additionalListeners:{click:this.triggerClick,keydown:this.triggerKeydown,edit:this.triggerEdit,add:this.triggerAdd,cancel:this.triggerCancel,save:this.triggerSave,remove:this.triggerRemove}})}});exports.GridCell=l;