UNPKG

@progress/kendo-vue-grid

Version:
9 lines (8 loc) 3.99 kB
/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2026 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 r=require("vue"),c=require("../utils/main.js"),h=require("@progress/kendo-vue-intl"),g=require("@progress/kendo-vue-common"),s=require("@progress/kendo-vue-data-tools"),u=r.defineComponent({name:"GridCell",inheritAttrs:!1,emits:{cellclick:null,cellkeydown:null},props:{id:String,field:String,dataItem:Object,format:String,readFormat:String,className:String,columnType:String,colSpan:Number,columnIndex:Number,columnsCount:Number,dataIndex:Number,rowType:String,level:Number,expanded:Boolean,type:String,editor:String,rowSpan:[Number,Object],isSelected:Boolean,isHighlighted:Boolean,ariaColumnIndex:Number,render:[String,Function,Object],isRtl:Boolean,onEdit:Function,onSave:Function,onRemove:Function,onCancel:Function,onChange:Function,onSelectionchange:Function,cells:Object},inject:{kendoIntlService:{default:null},getKeyboardNavigationAttributes:{default:g.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)},triggerContextMenu(e){var t,i;(i=(t=this.gridContext)==null?void 0:t.onContextMenu)==null||i.call(t,e,this.$props.dataItem,this.$props.field)}},created(){this._intl=h.provideIntlService(this)},computed:{tdClass(){const{className:e,isSelected:t,isHighlighted:i}=this.$props;return{"k-table-td":!0,"k-selected":t,"k-highlighted":i,[e]:e}}},setup(){const e=r.inject("kendoIntlService",{}),t=r.inject("gridContext",null);return{kendoIntlService:e,gridContext:t}},render(){var l,d,a;let e=null;const t=this.getKeyboardNavigationAttributes(this.$props.id);let i={},o=null;if(((l=this.$props.rowSpan)==null?void 0:l.count)===null)return null;if(this.$props.rowType==="groupFooter")i={class:this.tdClass,tabindex:t.tabIndex,"data-keyboardnavlevel":t[s.KEYBOARD_NAV_DATA_LEVEL],"data-keyboardnavid":t[s.KEYBOARD_NAV_DATA_ID]},e=r.createVNode("td",r.mergeProps(i,{onKeydown:this.triggerKeydown,onClick:this.triggerClick,onContextmenu:this.triggerContextMenu}),[o]);else if(this.$props.field!==void 0&&this.$props.rowType!=="groupHeader"){const n=c.getNestedValue(this.$props.field,this.$props.dataItem);let p="";n!=null&&(p=this.$props.format?this.$props.type?this._intl.format(this.$props.format,c.parsers[this.$props.type](n,this._intl,this.$props.readFormat)):this._intl.format(this.$props.format,n):n.toString()),i={style:this.$attrs.style,colspan:this.$props.colSpan,rowspan:(a=(d=this.$props.rowSpan)==null?void 0:d.count)!=null?a:void 0,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[s.KEYBOARD_NAV_DATA_LEVEL],"data-keyboardnavid":t[s.KEYBOARD_NAV_DATA_ID]},o=p,e=r.createVNode("td",r.mergeProps(i,{onKeydown:this.triggerKeydown,onClick:this.triggerClick,onContextmenu:this.triggerContextMenu}),[o])}return g.getTemplate.call(this,{h:r.h,template:this.$props.render,defaultRendering:e,additionalProps:{...this.$props,tdProps:i},additionalListeners:{click:this.triggerClick,keydown:this.triggerKeydown,edit:this.triggerEdit,add:this.triggerAdd,cancel:this.triggerCancel,save:this.triggerSave,remove:this.triggerRemove,contextmenu:this.triggerContextMenu},defaultSlots:o})}});exports.GridCell=u;