@progress/kendo-vue-grid
Version:
9 lines (8 loc) • 3.67 kB
JavaScript
/**
* @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"),o=require("@progress/kendo-vue-common"),c=require("@progress/kendo-vue-data-tools"),r=require("../messages/main.js"),f=require("@progress/kendo-vue-intl"),u=require("@progress/kendo-svg-icons"),k=n.defineComponent({name:"KendoGridGroupCell",inheritAttrs:!1,props:{id:String,field:String,dataItem:Object,format:String,type:String,colSpan:Number,className:String,columnIndex:Number,columnsCount:Number,rowType:String,level:Number,expanded:Boolean,editor:String,dataIndex:Number,isSelected:Boolean,isRtl:Boolean,ariaColumnIndex:Number,group:Object,render:[String,Function,Object]},emits:{change:null,cellkeydown:null},inject:{kendo:{default:null},kendoIntlService:{default:null},kendoLocalizationService:{default:null},getKeyboardNavigationAttributes:{default:o.noop}},computed:{tdClass(){const{className:e}=this.$props;return{"k-table-td":!0,[e]:e}}},methods:{triggerStateChange(){var t;const e=this.kendo;(t=e==null?void 0:e.dispatchGroupExpand)==null||t.call(e,{type:c.GROUP_EXPAND_ACTION.TOGGLE,group:this.$props.group})},triggerKeydown(e,t){this.$emit("cellkeydown",{event:e,dataItem:this.$props.dataItem,dataIndex:this.$props.dataIndex,field:this.$props.field,expanded:this.$props.expanded}),!e.defaultPrevented&&e.keyCode===o.Keys.enter&&(e.preventDefault(),this.$emit("change",{dataItem:this.$props.dataItem,dataIndex:this.$props.dataIndex,event:e,level:this.$props.level,field:void 0,value:!t}),this.triggerStateChange())},clickHandler(e,t,i){e.preventDefault(),this.$emit("change",{dataItem:t,dataIndex:this.$props.dataIndex,event:e,level:this.$props.level,field:void 0,value:!i}),this.triggerStateChange()}},render(){let e=null;const{columnIndex:t,level:i,columnsCount:g,rowType:b,dataItem:l,field:d,expanded:a,render:I}=this.$props,s=this.getKeyboardNavigationAttributes(this.$props.id),h=f.provideLocalizationService(this).toLanguageString(r.groupCaretAriaLabelCollapse,r.messages[r.groupCaretAriaLabelCollapse]),m=f.provideLocalizationService(this).toLanguageString(r.groupCaretAriaLabelExpand,r.messages[r.groupCaretAriaLabelExpand]);return t===void 0||i===void 0||t<i||g===void 0||b!=="groupHeader"||l[d]===void 0?e=n.createVNode("td",{style:this.$attrs.style,key:"g"+t,class:"k-table-td k-group-cell"},null):t<=i&&(e=n.createVNode("td",{style:this.$attrs.style,onKeydown:p=>{this.triggerKeydown(p,a)},key:"g-colspan",class:this.tdClass,colspan:g-t,role:"gridcell","aria-colindex":this.$props.ariaColumnIndex,"aria-selected":this.$props.isSelected,"aria-expanded":a,"data-grid-col-index":this.$props.columnIndex,tabindex:s.tabIndex,"data-keyboardnavlevel":s[c.KEYBOARD_NAV_DATA_LEVEL],"data-keyboardnavid":s[c.KEYBOARD_NAV_DATA_ID]},[n.createVNode("p",{class:"k-reset"},[n.createVNode("a",{onClick:p=>{this.clickHandler(p,l,a)},href:"#",tabindex:-1,title:a?h:m,"aria-label":a?h:m},[n.createVNode(o.Icon,{name:a?"caret-alt-down":this.isRtl?"caret-alt-left":"caret-alt-right",icon:a?u.caretAltDownIcon:this.isRtl?u.caretAltLeftIcon:u.caretAltRightIcon},null)]),l[d]?l[d].toString():""])])),o.getTemplate.call(this,{h:n.h,template:I,defaultRendering:e,additionalProps:this.$props,additionalListeners:{keydown:this.triggerKeydown,click:this.clickHandler}})}});exports.GridGroupCell=k;