UNPKG

@progress/kendo-vue-grid

Version:
9 lines (8 loc) 3.02 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 n=require("vue"),c=require("../utils/main.js"),s=require("@progress/kendo-vue-common"),a=require("@progress/kendo-vue-data-tools"),p=e=>{var t,o;return(o=(t=e.cells)==null?void 0:t.select)==null?void 0:o[e.rowType||"data"]},u=n.defineComponent({name:"KendoGridSelectionCell",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,render:[String,Function,Object],isSelected:Boolean,ariaColumnIndex:Number,editor:String,isRtl:Boolean,cells:Object},emits:{selectionchange:null,cellkeydown:null},inject:{kendoIntlService:{default:null},getKeyboardNavigationAttributes:{default:s.noop}},data(){return{inputId:s.guid()}},computed:{tdClass(){const{className:e}=this.$props;return{"k-table-td":!0,[e]:e}}},methods:{handleKeyDown(e){this.$emit("cellkeydown",{event:e,dataItem:this.$props.dataItem,field:this.$props.field}),(e.keyCode===s.Keys.enter||e.keyCode===s.Keys.space)&&this.$emit("selectionchange",{event:e,dataItem:this.$props.dataItem})},handleOnChange(e){this.$emit("selectionchange",{event:e,dataItem:this.$props.dataItem})},triggerContextMenu(e){var t,o;(o=(t=this.gridContext)==null?void 0:t.onContextMenu)==null||o.call(t,e,this.$props.dataItem,this.$props.field)}},setup(){return{gridContext:n.inject("gridContext",null)}},render(){let e,t=null;const o=this.$props.isSelected||c.getNestedValue(this.$props.field,this.$props.dataItem),r=typeof o=="boolean"&&o,i=this.$props.render,l=this.getKeyboardNavigationAttributes(this.$props.id),d=this.$props.rowType!=="groupHeader"?(e={style:this.$attrs.style,colspan:this.$props.colSpan,class:this.tdClass,"aria-colindex":this.$props.ariaColumnIndex,role:"gridcell",tabindex:l.tabIndex,"data-keyboardnavlevel":l[a.KEYBOARD_NAV_DATA_LEVEL],"data-keyboardnavid":l[a.KEYBOARD_NAV_DATA_ID]},t=n.createVNode(n.Fragment,null,[n.createVNode("span",{class:"k-checkbox-wrap"},[n.createVNode("input",{checked:r,id:this.inputId,type:"checkbox",class:"k-checkbox k-checkbox-md k-rounded-md",onChange:this.handleOnChange},null)]),n.createVNode("label",{class:"k-checkbox-label",for:this.inputId},null)]),n.createVNode("td",n.mergeProps(e,{onKeydown:this.handleKeyDown}),[t])):null;return s.getTemplate.call(this,{h:n.h,template:i||p(this.$props),defaultRendering:d,additionalProps:{...this.$props,tdProps:e},additionalListeners:{keydown:this.handleKeyDown,change:this.handleOnChange,contextmenu:this.triggerContextMenu},defaultSlots:t})}});exports.GridSelectionCell=u;