UNPKG

@progress/kendo-vue-grid

Version:
9 lines (8 loc) 3.42 kB
/** * @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 n=require("vue"),d=require("@progress/kendo-vue-common"),m=require("@progress/kendo-vue-data-tools"),r=require("../messages/main.js"),f=require("@progress/kendo-vue-intl"),p=require("@progress/kendo-svg-icons"),v=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,render:[String,Function,Object]},emits:{change:null,cellkeydown:null},inject:{kendoIntlService:{default:null},kendoLocalizationService:{default:null},getKeyboardNavigationAttributes:{default:d.noop}},computed:{tdClass(){const{className:e}=this.$props;return{"k-table-td":!0,[e]:e}}},methods:{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===d.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}))},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})}},render(){let e=null;const{columnIndex:t,level:i,columnsCount:u,rowType:b,dataItem:l,field:o,expanded:a,render:I}=this.$props,s=this.getKeyboardNavigationAttributes(this.$props.id),g=f.provideLocalizationService(this).toLanguageString(r.groupCaretAriaLabelCollapse,r.messages[r.groupCaretAriaLabelCollapse]),h=f.provideLocalizationService(this).toLanguageString(r.groupCaretAriaLabelExpand,r.messages[r.groupCaretAriaLabelExpand]);return t===void 0||i===void 0||t<i||u===void 0||b!=="groupHeader"||l[o]===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:c=>{this.triggerKeydown(c,a)},key:"g-colspan",class:this.tdClass,colspan:u-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[m.KEYBOARD_NAV_DATA_LEVEL],"data-keyboardnavid":s[m.KEYBOARD_NAV_DATA_ID]},[n.createVNode("p",{class:"k-reset"},[n.createVNode("a",{onClick:c=>{this.clickHandler(c,l,a)},href:"#",tabindex:-1,title:a?g:h,"aria-label":a?g:h},[n.createVNode(d.Icon,{name:a?"caret-alt-down":this.isRtl?"caret-alt-left":"caret-alt-right",icon:a?p.caretAltDownIcon:this.isRtl?p.caretAltLeftIcon:p.caretAltRightIcon},null)]),l[o]?l[o].toString():""])])),d.getTemplate.call(this,{h:n.h,template:I,defaultRendering:e,additionalProps:this.$props,additionalListeners:{keydown:this.triggerKeydown,click:this.clickHandler}})}});exports.GridGroupCell=v;