@progress/kendo-vue-grid
Version:
15 lines • 117 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
*-------------------------------------------------------------------------------------------
*/
/**
* @license
*-------------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the package root for more information
*-------------------------------------------------------------------------------------------
*/
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vue"),require("@progress/kendo-vue-common"),require("@progress/kendo-vue-data-tools"),require("@progress/kendo-vue-indicators"),require("@progress/kendo-vue-intl"),require("@progress/kendo-svg-icons"),require("@progress/kendo-vue-inputs"),require("@progress/kendo-vue-dateinputs"),require("@progress/kendo-vue-popup"),require("@progress/kendo-data-query"),require("@progress/kendo-vue-animation"),require("@progress/kendo-vue-buttons"),require("@progress/kendo-vue-dropdowns")):"function"==typeof define&&define.amd?define(["exports","vue","@progress/kendo-vue-common","@progress/kendo-vue-data-tools","@progress/kendo-vue-indicators","@progress/kendo-vue-intl","@progress/kendo-svg-icons","@progress/kendo-vue-inputs","@progress/kendo-vue-dateinputs","@progress/kendo-vue-popup","@progress/kendo-data-query","@progress/kendo-vue-animation","@progress/kendo-vue-buttons","@progress/kendo-vue-dropdowns"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).KendoVueGrid={},e.Vue,e.KendoVueCommon,e.KendoVueDatatools,e.KendoVueIndicators,e.KendoVueIntl,e.KendoSVGIcons,e.KendoVueInputs,e.KendoVueDateinputs,e.KendoVuePopup,e.KendoDataQuery,e.KendoVueAnimation,e.KendoVueButtons,e.KendoVueDropdowns)}(this,(function(e,t,i,r,o,s,l,n,a,d,h,c,p,u){"use strict";const g=t.defineComponent({name:"KendoGridNav",props:{currentData:Array},inject:{onNavKeyDown:{default:i.noop},onNavFocus:{default:i.noop},onNavMount:{default:i.noop},handleDispatchFocus:{default:i.noop},kbContext:{default:null},navigation:{default:null}},mounted(){this.onNavMount({scope:this.$el||void 0})},updated(){this.onNavMount({scope:this.$el||void 0})},methods:{onKeyDown(e){this.onNavKeyDown(e,{navigation:this.navigation,kbContext:this.kbContext,onNavigationAction:this.onNavigationAction}),this.$emit("keydown",{dataItems:this.getLeafDataItems(),componentId:this._gridId,selectedField:this.$props.selectedField,event:e})},onFocus(e){this.onNavFocus(e,{kbContext:this.kbContext})},onNavigationAction(e){this.$emit("navigationaction",{focusElement:e.focusElement,event:e.event})},getLeafDataItems(){return this.$props.currentData.filter((e=>"data"===e.rowType)).map((e=>e.dataItem))}},render(){const e=i.getDefaultSlots(this);return t.createVNode("div",{onKeydown:this.onKeyDown,onFocusin:this.onFocus,"data-keyboardnavscope":!0},[e])}}),m="string";function f(e,t){const i=e.split(".");let r=t;return i.forEach((e=>{r=r?r[e]:void 0})),r}function b(e,t,i,r,o,s,l=0){let n=l;for(let a=0;a<t.length;a++){if(!o||void 0===t[a].value||void 0===t[a].items){e[e.length]={dataIndex:++r.index,dataItem:t[a],rowType:"data",level:l,expanded:void 0===s||f(s,t[a])};continue}n=Math.max(n,l+1);const d=void 0===s||void 0===f(s,t[a])||f(s,t[a]);e[e.length]={dataIndex:-1,dataItem:t[a],level:l,rowType:"groupHeader",expanded:d},d&&(n=Math.max(b(e,t[a].items,i,r,o,s,l+1),n)),("always"===i||d&&"visible"===i)&&(e[e.length]={dataIndex:-1,dataItem:t[a],rowType:"groupFooter",level:l,expanded:d})}return n}function v(e){return e&&"rtl"===getComputedStyle(e).direction||!1}function C(e,t){if(!(t&&e&&e.originalEvent&&i.canUseDOM))return-1;let r=document.elementFromPoint(e.clientX,e.originalEvent.clientY);for(;r&&r.parentElement!==t;)r=r.parentElement;const o=t.children;for(let e=0;e<o.length;e++)if(o[e]===r)return e;return-1}const $=["sortChange","filterChange","groupChange","pageChange","expandChange","selectionChange","headerSelectionChange","rowClick","itemChange","dataStateChange","columnResize","columnReorder"],k={filterable:!0,editable:!0,sortable:!0,resizable:!0,reorderable:!0,groupable:!0},x=(e,t)=>`The ${e} event handler property is deprecated, use https://www.telerik.com/kendo-vue-ui/components/grid/api/GridProps/#toc-${t} instead`;function S(e,t){const i=e[t].depth;let r=null;for(let o=t+1;o<e.length;o++)if(e[o].depth===i){r=e[o];break}return r}function I(e){const t=[[]];let i=0;for(let t=e.length-1;t>=0;t--)i=Math.max(i,e[t].depth),e[t].colSpan=e[t].colSpan||1,e[t].children.length>0&&(e[t].colSpan=e[t].children.reduce(((e,t)=>t.hidden?e:e+t.colSpan),0));let r=1;e.forEach(((e,o)=>{t[e.depth]=t[e.depth]||[];let s=!1;0===t[e.depth].length&&(r<=1?r=1+(e.children.length>0?0:i-e.depth):(r--,s=!0)),e.rowSpan=1+(e.children.length>0?0:i-e.depth),e.kFirst=s,e.index=t[e.depth].length,t[e.depth].push(o)}));const o=new Array(t.length).fill(0);let s=0;e.forEach((e=>{if(e.locked)if(e.left=o[e.depth],s=e.width?parseFloat(e.width.toString()):0,0===e.children.length)for(let t=e.depth;t<o.length;t++)o[t]+=s;else o[e.depth]+=s}));const l=new Array(t.length).fill(0);for(let t=e.length-1;t>=0;t--){const i=e[t];if(i.locked){if(i.right=l[i.depth],s=i.width?parseFloat(i.width.toString()):0,0===i.children.length)for(let e=i.depth;e<l.length;e++)l[e]+=s;else l[i.depth]+=s;const r=S(e,t);i.rightBorder=!(r&&r.locked)}}return t}function y(e,t,i,o=0){const s=[],l=!(!e||!e.length)&&e.length===t.length;if(!e)return[];e&&void 0===e.length&&(e=[e]),e.forEach(((e,n)=>{const a=l&&t[n]||null,d=e.children?e.children.filter((e=>!e.hidden)):e.children,h=y(d,a&&a.children||[],i,o+1);s.push(Object.assign({depth:o},k,h.length?{cell:()=>null,filterCell:()=>null}:{},a?{width:a.width,orderIndex:a.orderIndex}:{},e,{id:r.tableKeyboardNavigationTools.generateNavigatableId(""+i.prevId++,i.idPrefix,"column"),declarationIndex:s.length,children:h,rowSpan:0,colSpan:0,isAccessible:!0}))}));if(s.sort(((e,t)=>e.orderIndex===t.orderIndex?e.declarationIndex-t.declarationIndex:(e.orderIndex||0)-(t.orderIndex||0))),0===o){const e=[],t=(i,r)=>i.forEach((i=>{i.parentIndex=r,t(i.children,e.push(i)-1)}));return t(s,-1),e}return s}function N(e,t,i,o){let s=[];Array.isArray(e)?s=e:e&&(s=e.data),s.length||console.warn("Kendo Grid autogeneration of columns is only possible if some items are defined when the component is created.");const l=[];if(s.length>0){let e=s[0];if(t)for(let i=0;i<t.length;i++)e=e.items&&e.items[0];Object.getOwnPropertyNames(e).forEach((e=>{e!==i&&"__ob__"!==e&&l.push(Object.assign({id:r.tableKeyboardNavigationTools.generateNavigatableId(""+o.prevId++,o.idPrefix,"column"),declarationIndex:-1,parentIndex:-1,depth:0,colSpan:0,rowSpan:0,index:0,left:0,right:0,children:[],rightBorder:!1,ariaColumnIndex:1,isAccessible:!0},k,{field:e}))}))}return l}const w=e=>e.filter((t=>!((e,t)=>{let i=e[t.parentIndex];for(;i;){if(i.footerCell)return!0;i=e[i.parentIndex]}return!1})(e,t)&&(!!t.footerCell||!(t.children&&t.children.length>0)))),V={number:function(e,t,i){return typeof e===m&&"null"===e.toLowerCase()?null:t.parseNumber(e,i)},date:function(e,t,i){return typeof e===m&&"null"===e.toLowerCase()?null:t.parseDate(e,i)},boolean:function(e){return typeof e===m?"null"===e.toLowerCase()?null:"true"===e.toLowerCase():null!=e?!!e:e},string:function(e){return typeof e===m&&"null"===e.toLowerCase()?null:null!=e?e+"":e},default:function(e){return e}};function R(e,t,i,r){return e.forEach((e=>{e.expanded=t[r]&&!t[r].includes(H(e,i)),e.items&&e.items.length&&(e.items=R(e.items,t,i,r+1))})),e}function F(e,t,i){return t&&t.length&&e.data.forEach((e=>{e.expanded=void 0!==e.expanded?e.expanded:t[0]&&!t[0].includes(H(e,i)),e.items&&e.items.length&&(e.items=R(e.items,t,i,1))})),e}function H(e,t){let i=e;for(;i.items&&i.items.length;)i=i.items[0];return t?i[t]:e.value}const O="undefined"!=typeof window&&/Firefox/.test(window.navigator.userAgent),D=17895697,L=t.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},emits:{selectionchange:null,cellkeydown:null},inject:{kendoIntlService:{default:null},getKeyboardNavigationAttributes:{default:i.noop}},data:()=>({inputId:i.guid()}),computed:{tdClass(){const{className:e}=this.$props;return{"k-table-td":!0,[e]:e}}},methods:{triggerKeydown(e){this.$emit("cellkeydown",{event:e,dataItem:this.$props.dataItem,field:this.$props.field})},handleOnChange(e){this.$emit("selectionchange",{event:e,dataItem:this.$props.dataItem})}},render(){const e=f(this.$props.field,this.$props.dataItem),o=this.$props.render,s=this.getKeyboardNavigationAttributes(this.$props.id),l="groupHeader"!==this.$props.rowType?t.createVNode("td",{style:this.$attrs.style,onKeydown:this.triggerKeydown,colspan:this.$props.colSpan,class:this.tdClass,"aria-colindex":this.$props.ariaColumnIndex,role:"gridcell",tabindex:s.tabIndex,"data-keyboardnavlevel":s[r.KEYBOARD_NAV_DATA_LEVEL],"data-keyboardnavid":s[r.KEYBOARD_NAV_DATA_ID]},[t.createVNode("span",{class:"k-checkbox-wrap"},[t.createVNode("input",{checked:e,id:this.inputId,type:"checkbox",class:"k-checkbox k-checkbox-md k-rounded-md",onChange:this.handleOnChange},null)]),t.createVNode("label",{class:"k-checkbox-label",for:this.inputId},null)]):null;return i.getTemplate.call(this,{h:t.h,template:o,defaultRendering:l,additionalProps:this.$props,additionalListeners:{keydown:this.triggerKeydown,change:this.handleOnChange}})}}),A="grid.noRecords",T="grid.selectAllRows",E="grid.pagerInfo",G="grid.pagerFirstPage",z="grid.pagerPreviousPage",_="grid.pagerNextPage",j="grid.pagerLastPage",M="grid.pagerItemsPerPage",K="grid.pagerPageSelection",B="grid.pagerPage",P="grid.pagerOf",W="grid.pagerTotalPages",q="grid.groupPanelEmpty",U="grid.columnMenu",Y="grid.filterClearButton",X="grid.filterSubmitButton",J="grid.filterTitle",Q="grid.sortAscending",Z="grid.sortDescending",ee="grid.searchPlaceholder",te="grid.filterCheckAll",ie="grid.filterChooseOperator",re="grid.filterSelectedItems",oe="grid.sortAriaLabel",se="grid.sortableColumnAriaLabel",le="grid.sortableColumnAscendingAriaLabel",ne="grid.sortableColumnDescendingAriaLabel",ae="grid.filterAriaLabel",de="grid.numericFilterAriaLabel",he="grid.dateFilterAriaLabel",ce="grid.textFilterAriaLabel",pe="grid.booleanFilterAriaLabel",ue="grid.groupHeaderAriaLabel",ge="grid.groupCaretAriaLabelCollapse",me="grid.groupCaretAriaLabelExpand",fe="grid.expandDetailTemplateAriaLabel",be="grid.collapseDetailTemplateAriaLabel",ve={[T]:"Select All Rows",[A]:"No records available",[q]:"Drag a column header and drop it here to group by that column",[U]:"Column Menu",[Y]:"Clear",[X]:"Filter",[J]:"Filter",[Q]:"Sort Ascending",[Z]:"Sort Descending",[M]:"items per page",[K]:"Select page",[E]:"{0} - {1} of {2} items",[G]:"Go to the first page",[z]:"Go to the previous page",[_]:"Go to the next page",[j]:"Go to the last page",[B]:"Page",[P]:"of",[W]:"{0}",[ee]:"Search",[te]:"Check All",[ie]:"Choose Operator",[re]:"selected items",[oe]:"Sortable",[se]:"Sortable Column",[le]:"Sorted in ascending order",[ne]:"Sorted in descending order",[ae]:"Filter",[de]:"Numeric Filter",[he]:"Date Filter",[ce]:"Text Filter",[pe]:"Boolean Filter",[ue]:"Group Header",[ge]:"Collapse Group",[me]:"Expand Group",[fe]:"Expand Details",[be]:"Collapse Details","grid.filterEqOperator":"Is equal to","grid.filterNotEqOperator":"Is not equal to","grid.filterIsNullOperator":"Is null","grid.filterIsNotNullOperator":"Is not null","grid.filterIsEmptyOperator":"Is empty","grid.filterIsNotEmptyOperator":"Is not empty","grid.filterStartsWithOperator":"Starts with","grid.filterContainsOperator":"Contains","grid.filterNotContainsOperator":"Does not contain","grid.filterEndsWithOperator":"Ends with","grid.filterGteOperator":"Is greater than or equal to","grid.filterGtOperator":"Is greater than","grid.filterLteOperator":"Is less than or equal to","grid.filterLtOperator":"Is less than","grid.filterIsTrue":"Is true","grid.filterIsFalse":"Is false","grid.filterBooleanAll":"(All)","grid.filterAfterOrEqualOperator":"Is after or equal to","grid.filterAfterOperator":"Is after","grid.filterBeforeOperator":"Is before","grid.filterBeforeOrEqualOperator":"Is before or equal to","grid.filterAndLogic":"And","grid.filterOrLogic":"Or"};function Ce(e){const t=e.replace(/^pager\.([a-z])/,((e,t)=>"grid.pager"+t.toUpperCase()));return{messageKey:t,defaultMessage:ve[t]}}const $e=t.defineComponent({name:"KendoGridHierarchyCell",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,editor:String,isSelected:Boolean,dataIndex:Number,ariaColumnIndex:Number,render:[String,Function,Object],isRtl:Boolean},emits:{change:null,cellkeydown:null},inject:{kendoIntlService:{default:null},kendoLocalizationService:{default:null},getKeyboardNavigationAttributes:{default:i.noop}},methods:{triggerKeydown(e,t){this.$emit("cellkeydown",{event:e,dataItem:this.$props.dataItem,field:this.$props.field,expanded:t}),!e.defaultPrevented&&e.keyCode===i.Keys.enter&&(e.preventDefault(),this.$emit("change",{dataItem:this.$props.dataItem,dataIndex:this.$props.dataIndex,event:e,field:this.$props.field,value:!t}))},clickHandler(e,t,i){e.preventDefault(),this.$emit("change",{dataItem:t,event:e,field:void 0,value:!i})}},computed:{wrapperClass(){return{"k-table-td":!0,"k-hierarchy-cell":!0,[this.className||""]:this.className}}},render(){let e=null;const o=this.getKeyboardNavigationAttributes(this.$props.id),n=s.provideLocalizationService(this),a=n.toLanguageString(be,ve[be]),d=n.toLanguageString(fe,ve[fe]);if("groupFooter"===this.$props.rowType)e=t.createVNode("td",{class:this.wrapperClass},null);else if("groupHeader"!==this.$props.rowType){const s=f(this.$props.field,this.$props.dataItem);e=t.createVNode("td",{style:this.$attrs.style,onKeydown:e=>{this.triggerKeydown(e,s)},class:this.wrapperClass,"aria-expanded":s?"true":"false",role:"gridcell","aria-colindex":this.$props.ariaColumnIndex,tabindex:o.tabIndex,"data-keyboardnavlevel":o[r.KEYBOARD_NAV_DATA_LEVEL],"data-keyboardnavid":o[r.KEYBOARD_NAV_DATA_ID]},[t.createVNode("a",{onClick:e=>{this.clickHandler(e,this.$props.dataItem,s)},href:"#",tabindex:-1,title:s?a:d,"aria-label":s?a:d},[t.createVNode(i.Icon,{name:s?"minus":"plus",icon:s?l.minusIcon:l.plusIcon},null)])])}return i.getTemplate.call(this,{h:t.h,template:this.$props.render,defaultRendering:e,additionalProps:this.$props,additionalListeners:{keydown:this.triggerKeydown,click:this.clickHandler}})}}),ke=t.defineComponent({props:{id:String},inject:{getKeyboardNavigationAttributes:{default:i.noop}},setup:()=>({kendoIntlService:t.inject("kendoIntlService",{})}),render(){const e=this.getKeyboardNavigationAttributes(this.$props.id);return t.createVNode("td",{class:"k-table-td k-hierarchy-cell",tabindex:e.tabIndex,"data-keyboardnavlevel":e[r.KEYBOARD_NAV_DATA_LEVEL],"data-keyboardnavid":e[r.KEYBOARD_NAV_DATA_ID]},null)}}),xe=t.defineComponent({props:{colSpan:Number,ariaColIndex:Number,dataItem:[Object,String,Number],dataIndex:Number,detail:[String,Function,Object],id:String},inject:{getKeyboardNavigationAttributes:{default:i.noop}},setup:()=>({kendoIntlService:t.inject("kendoIntlService",{})}),render(){const{colSpan:e,ariaColIndex:o,dataItem:s,dataIndex:l,id:n}=this.$props,a=this.getKeyboardNavigationAttributes(n);return t.createVNode("td",{class:"k-table-td k-detail-cell",colspan:e,"aria-colindex":o,role:"gridcell",tabindex:a.tabIndex,"data-keyboardnavlevel":a[r.KEYBOARD_NAV_DATA_LEVEL],"data-keyboardnavid":a[r.KEYBOARD_NAV_DATA_ID]},[function(e){return i.getTemplate.call(this,{h:t.h,template:this.$props.detail,additionalProps:e})}.call(this,{dataItem:s,dataIndex:l})])}}),Se=t.defineComponent({name:"GridEditCell",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,editor:String,isSelected:Boolean,ariaColumnIndex:Number,render:[String,Function,Object],isRtl:Boolean,readFormat:String,dataIndex:Number},emits:{change:null,cellkeydown:null,edit:null,add:null,cancel:null,save:null,remove:null},inject:{kendoIntlService:{default:null},getKeyboardNavigationAttributes:{default:i.noop}},computed:{tdClass(){const{className:e}=this.$props;return{"k-table-td":!0,[e]:e}}},data:()=>({inputId:i.guid()}),methods:{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)},changeHandler(e,t){t||(t="checkbox"===e.target.type?e.target.checked:e.target.valueAsDate?e.target.valueAsDate:e.target.value),this.$emit("change",{dataItem:this.$props.dataItem,field:this.$props.field,event:e,value:t})}},setup:()=>({kendoIntlService:t.inject("kendoIntlService",{})}),render(){const e=f(this.$props.field,this.$props.dataItem),o=this.getKeyboardNavigationAttributes(this.$props.id);let s=null;switch(this.$props.editor){case"numeric":s=t.createVNode("td",{style:this.$attrs.style,onKeydown:this.triggerKeydown,colspan:this.$props.colSpan,class:this.tdClass,role:"gridcell","aria-colindex":this.$props.ariaColumnIndex,"aria-selected":this.$props.isSelected,"data-grid-col-index":this.$props.columnIndex,tabindex:o.tabIndex,"data-keyboardnavlevel":o[r.KEYBOARD_NAV_DATA_LEVEL],"data-keyboardnavid":o[r.KEYBOARD_NAV_DATA_ID]},[t.createVNode(n.NumericTextBox,{style:{width:"100%"},value:void 0===e?null:e,onChange:this.changeHandler},null)]);break;case"date":s=t.createVNode("td",{style:this.$attrs.style,onKeydown:this.triggerKeydown,colspan:this.$props.colSpan,class:this.tdClass,role:"gridcell","aria-colindex":this.$props.ariaColumnIndex,"aria-selected":this.$props.isSelected,"data-grid-col-index":this.$props.columnIndex,tabindex:o.tabIndex,"data-keyboardnavlevel":o[r.KEYBOARD_NAV_DATA_LEVEL],"data-keyboardnavid":o[r.KEYBOARD_NAV_DATA_ID]},[t.createVNode(a.DatePicker,{style:{width:"100%"},value:e,onChange:this.changeHandler},null)]);break;case"boolean":s=t.createVNode("td",{style:this.$attrs.style,onKeydown:this.triggerKeydown,colspan:this.$props.colSpan,class:this.tdClass,role:"gridcell","aria-colindex":this.$props.ariaColumnIndex,"aria-selected":this.$props.isSelected,"data-grid-col-index":this.$props.columnIndex,tabindex:o.tabIndex,"data-keyboardnavlevel":o[r.KEYBOARD_NAV_DATA_LEVEL],"data-keyboardnavid":o[r.KEYBOARD_NAV_DATA_ID]},[t.createVNode("input",{checked:e||!1,id:this.inputId,type:"checkbox",class:"k-checkbox k-checkbox-md k-rounded-md",onChange:this.changeHandler},null),t.createVNode("label",{class:"k-checkbox-label",for:this.inputId},null)]);break;default:s=t.createVNode("td",{style:this.$attrs.style,onKeydown:this.triggerKeydown,colspan:this.$props.colSpan,class:this.tdClass,role:"gridcell","aria-colindex":this.$props.ariaColumnIndex,"aria-selected":this.$props.isSelected,"data-grid-col-index":this.$props.columnIndex,tabindex:o.tabIndex,"data-keyboardnavlevel":o[r.KEYBOARD_NAV_DATA_LEVEL],"data-keyboardnavid":o[r.KEYBOARD_NAV_DATA_ID]},[t.createVNode("span",{class:"k-textbox k-input k-input-md k-rounded-md k-input-solid"},[t.createVNode("input",{style:{width:"100%"},class:"k-input-inner",value:null!=e?e:"",onChange:this.changeHandler},null)])])}return i.getTemplate.call(this,{h:t.h,template:this.$props.render,defaultRendering:s,additionalProps:this.$props,additionalListeners:{change:this.changeHandler,keydown:this.triggerKeydown,edit:this.triggerEdit,add:this.triggerAdd,cancel:this.triggerCancel,save:this.triggerSave,remove:this.triggerRemove}})}});let Ie=class{get scrollbarWidth(){const e="undefined"!=typeof document?document:{};if(!this.scrollbar&&e&&e.createElement){const t=e.createElement("div");t.style.cssText="overflow:scroll;overflow-x:hidden;zoom:1;clear:both;display:block",t.innerHTML=" ",e.body.appendChild(t),this.scrollbar=t.offsetWidth-t.scrollWidth,e.body.removeChild(t)}return this.scrollbar}};const ye=t.defineComponent({props:{staticHeaders:Boolean,headerRow:Object,columnResize:Object,cols:Array,size:String,draggable:Boolean},data:()=>({divStyle:{},element:null,headerWrap:null,table:null}),computed:{wrapperClass(){return{"k-grid-header":!0,"k-grid-draggable-header":this.$props.draggable}},tableClass(){const{size:e}=this.$props;return{"k-table":!0,"k-grid-header-table":!0,[`k-table-${i.kendoThemeMaps.sizeMap[e]||e}`]:e}}},mounted(){this.headerWrap=i.getRef(this,"headerWrap"),this.table=i.getRef(this,"table"),this.$props.columnResize.colGroupHeader=i.getRef(this,"colGroupHeader");const e=(new Ie).scrollbarWidth,t=v(this.$el);this.$props.columnResize&&this.$props.columnResize.setIsRtl(t);const r=Math.max(0,e)+"px",o=t?0:r,s=t?r:0;this.divStyle={padding:`0 ${o} 0 ${s}`}},methods:{setScrollLeft(e){this.headerWrap&&(this.headerWrap.scrollLeft=e)},setWidth(e){this.table&&(this.table.style.width=e+"px")}},setup:()=>({headerWrapRef:t.ref(null),tableRef:t.ref(null),colGroupHeaderRef:t.ref(null)}),render(){return this.$props.staticHeaders?t.createVNode("div",{class:this.wrapperClass,style:this.divStyle},[t.createVNode("div",{ref:i.setRef(this,"headerWrap"),class:"k-grid-header-wrap"},[t.createVNode("table",{class:this.tableClass,ref:i.setRef(this,"table"),role:"none"},[t.createVNode("colgroup",{ref:i.setRef(this,"colGroupHeader")},[this.$props.cols]),this.$props.headerRow])])]):this.$props.headerRow}}),Ne=(...e)=>Object.assign({allowUnsort:!0,mode:"single"},...e),we=t.defineComponent({props:{onResize:Function},mounted(){this.$el&&(this.draggable=this.$refs.draggable)},methods:{drag(e){const t=this.draggable&&this.draggable.element;t&&this.$emit("resize",e,t,!1)},release(e){const t=this.draggable&&this.draggable.element;t&&this.$emit("resize",e,t,!0)}},render(){const e={cursor:"col-resize",display:"block",height:"1000%",position:"absolute",top:0,width:".5em"};return t.createVNode(i.Draggable,{onDrag:this.drag,onRelease:this.release,ref:"draggable"},{default:()=>[t.createVNode("span",{class:"k-column-resizer",draggable:!1,style:e},null)]})}}),Ve=t.defineComponent({props:{onPressHandler:Function,onDragHandler:Function,onReleaseHandler:Function},mounted(){this.$el&&(this.draggable=this.$refs.draggable)},methods:{onPress(e){const t=this.draggable&&this.draggable.element;t&&this.$emit("pressHandler",e,t)},onDrag(e){const t=this.draggable&&this.draggable.element;t&&this.$emit("dragHandler",e,t)},onRelease(e){const t=this.draggable&&this.draggable.element;t&&this.$emit("releaseHandler",e,t)}},render(){const e=i.getDefaultSlots(this);return t.createVNode(i.Draggable,{onPress:this.onPress,onDrag:this.onDrag,onRelease:this.onRelease,ref:"draggable"},{default:()=>[t.createVNode("tr",{class:"k-table-row",role:"row"},[e])]})}}),Re=t.defineComponent({props:{field:String,title:String,sortable:[Boolean,Object],render:[Object,Function,String],selectionValue:[Boolean,String,Number],onHeadercellclick:Function},computed:{linkClass(){return{"k-link":!0,"!k-cursor-default":!this.sortable}}},methods:{clickHandler(e){this.sortable&&this.$emit("headercellclick",e)}},render(){const e=i.getDefaultSlots(this),r=this.$props.render,o=this.$props.title||this.$props.field||" ",s=i.getTemplate.call(this,{h:t.h,template:r,defaultRendering:o,additionalProps:this.$props,additionalListeners:{click:this.clickHandler}});return t.createVNode("span",{class:this.linkClass,onClick:this.clickHandler},[t.createVNode("span",{class:"k-column-title"},[s]),e])}}),Fe=t.defineComponent({props:{title:String,iconClass:String,icon:String,svgIcon:Object,selected:Boolean,onMenuitemclick:Function},methods:{onClick(e){this.$emit("menuitemclick",e)},onKeyDown(e){e.keyCode===i.Keys.enter&&this.$emit("menuitemclick",e)}},render(){const{title:e,iconClass:r,selected:o,icon:s,svgIcon:l}=this.$props;return t.createVNode("div",{tabindex:0,onKeydown:this.onKeyDown,onClick:this.onClick,class:"k-columnmenu-item "+(o?"k-selected":"")},[r&&t.createVNode(i.Icon,{class:r},null),(s||l)&&t.createVNode(i.Icon,{name:s,icon:l},null),e])}}),He=t.defineComponent({render(){const e=i.getDefaultSlots(this);return t.createVNode("div",{class:"k-columnmenu-item-wrapper"},[e])}}),Oe="desc",De={true:{asc:{asc:"",desc:"desc"},desc:{asc:"asc",desc:""},"":{asc:"asc",desc:"desc"}},false:{asc:{asc:"asc",desc:"desc"},desc:{asc:"asc",desc:"desc"},"":{asc:"asc",desc:"desc"}}},Le=(e,t)=>t?t.findIndex((t=>t.field===e)):-1,Ae=(e,t)=>!!(t&&e>-1&&"asc"===t[e].dir),Te=(e,t)=>!!(t&&e>-1&&t[e].dir===Oe),Ee=t.defineComponent({props:{sortable:[Boolean,Object],sort:{type:Array},column:Object,onSortchange:Function,onClosemenu:Function},inject:{kendoLocalizationService:{default:null}},methods:{onAscClick(e){this.onSort(e,"asc"),this.$emit("closemenu")},onDescClick(e){this.onSort(e,Oe),this.$emit("closemenu")},onSort(e,t){if(e.preventDefault(),!i.hasListener.call(this,"sortchange"))return;const{column:r,sortable:o,sort:s}=this.$props,{allowUnsort:l,mode:n}=Ne(o||!1,!1),a=(s||[]).filter((e=>e.field===r.field))[0],d=De[l][a&&a.dir||""][t],h="single"===n?[]:(this.$props.sort||[]).filter((e=>e.field!==r.field));""!==d&&r.field&&h.push({field:r.field,dir:d}),this.$emit("sortchange",h,{event:e,field:this.$props.column.field})}},setup:()=>({kendoLocalizationService:t.inject("kendoLocalizationService",{})}),render(){const{sort:e,column:i}=this.$props,r=Le(i.field,e),o=s.provideLocalizationService(this);return t.createVNode(He,null,{default:()=>[t.createVNode(Fe,{title:o.toLanguageString(Q,ve[Q]),icon:"sort-asc-small",svgIcon:l.sortAscSmallIcon,selected:Ae(r,e),onMenuitemclick:this.onAscClick},null),t.createVNode(Fe,{title:o.toLanguageString(Z,ve[Z]),icon:"sort-desc-small",svgIcon:l.sortDescSmallIcon,selected:Te(r,e),onMenuitemclick:this.onDescClick},null)]})}}),Ge=t.defineComponent({props:{show:Boolean},render(){const e=i.getDefaultSlots(this);return t.createVNode("div",{class:"k-columnmenu-item-content"},[t.createVNode(c.Reveal,{appear:this.$props.show,style:{position:"relative",display:"block"}},{default:()=>[this.$props.show?e:null]})])}}),ze=[{text:"grid.filterAndLogic",operator:"and"},{text:"grid.filterOrLogic",operator:"or"}],_e={text:[{text:"grid.filterContainsOperator",operator:"contains"},{text:"grid.filterNotContainsOperator",operator:"doesnotcontain"},{text:"grid.filterEqOperator",operator:"eq"},{text:"grid.filterNotEqOperator",operator:"neq"},{text:"grid.filterStartsWithOperator",operator:"startswith"},{text:"grid.filterEndsWithOperator",operator:"endswith"},{text:"grid.filterIsNullOperator",operator:"isnull"},{text:"grid.filterIsNotNullOperator",operator:"isnotnull"},{text:"grid.filterIsEmptyOperator",operator:"isempty"},{text:"grid.filterIsNotEmptyOperator",operator:"isnotempty"}],numeric:[{text:"grid.filterEqOperator",operator:"eq"},{text:"grid.filterNotEqOperator",operator:"neq"},{text:"grid.filterGteOperator",operator:"gte"},{text:"grid.filterGtOperator",operator:"gt"},{text:"grid.filterLteOperator",operator:"lte"},{text:"grid.filterLtOperator",operator:"lt"},{text:"grid.filterIsNullOperator",operator:"isnull"},{text:"grid.filterIsNotNullOperator",operator:"isnotnull"}],date:[{text:"grid.filterEqOperator",operator:"eq"},{text:"grid.filterNotEqOperator",operator:"neq"},{text:"grid.filterAfterOrEqualOperator",operator:"gte"},{text:"grid.filterAfterOperator",operator:"gt"},{text:"grid.filterBeforeOperator",operator:"lt"},{text:"grid.filterBeforeOrEqualOperator",operator:"lte"},{text:"grid.filterIsNullOperator",operator:"isnull"},{text:"grid.filterIsNotNullOperator",operator:"isnotnull"}],boolean:[{text:"grid.filterEqOperator",operator:"eq"}]},je=e=>"isnull"===e||"isnotnull"===e||"isempty"===e||"isnotempty"===e,Me=(e,t)=>e.map((e=>({text:t.toLanguageString(e.text,ve[e.text]),operator:e.operator}))),Ke=[{text:"grid.filterBooleanAll",operator:""},{text:"grid.filterIsTrue",operator:!0},{text:"grid.filterIsFalse",operator:!1}],Be=(e,t,i)=>{const r=Pe(i.operators);let o=i.operator;switch(i.filterType){case"numeric":case"date":(!o||je(o))&&(o=r),null===e&&o===r&&(o="");break;case"text":(!o||je(o))&&(o=r),!e&&o===r&&(o="");break;default:return}return{value:e,operator:o,event:t}},Pe=(e,t)=>t?e[t][0].operator:e[0].operator,We=e=>e||"text",qe=(e,t)=>({value:e,operator:""===e?"":"eq",event:t}),Ue=(e,t,i)=>(je(e)&&(i=null),{value:i,operator:e,event:t}),Ye=t.defineComponent({props:{field:String,filterType:String,value:[Object,String,Number,Date,Boolean],operator:String,operators:Array,booleanValues:Array},emits:{change:null,filtercellfocus:null},methods:{handleFocus(e){this.$emit("filtercellfocus",e)},triggerChange(e){this.$emit("change",e)},inputChange(e,t){const i=Be(e,t,this.$props);this.triggerChange(i)},boolDropdownChange(e,t){const i=qe(e.value.operator,t);this.triggerChange(i)}},render(){const{filterType:e,value:i,booleanValues:r}=this.$props;let o;switch(e){case"numeric":return t.createVNode(n.NumericTextBox,{value:i,onChange:e=>{this.inputChange(e.value,e.event)}},null);case"date":return t.createVNode(a.DatePicker,{value:i,onFocus:this.handleFocus,onChange:e=>{this.inputChange(e.value,e.event)}},null);case"boolean":return o=e=>null==e,t.createVNode(u.DropDownList,{onChange:this.boolDropdownChange,value:r.find((e=>e.operator===(o(i)?"":i))),"data-items":r,textField:"text"},null);default:return t.createVNode("span",{class:"k-textbox k-input k-input-md k-rounded-md k-input-solid"},[t.createVNode("input",{class:"k-input-inner",value:i||"",onInput:e=>{this.inputChange(e.target.value,e)}},null)])}}}),Xe=t.defineComponent({props:{filterType:String,operator:String,operators:Array},emits:{change:null},methods:{triggerChange(e){this.$emit("change",e)},operatorChange(e,t){const i=Ue(e.value.operator,t,this.$props.value);this.triggerChange(i)}},render(){const e=this.$props.operators.find((e=>e.operator===this.$props.operator))||null;return"boolean"!==this.$props.filterType?t.createVNode(u.DropDownList,{onChange:this.operatorChange,value:e,"data-items":this.$props.operators,textField:"text"},null):null}});function Je(e){return"function"==typeof e||"[object Object]"===Object.prototype.toString.call(e)&&!t.isVNode(e)}const Qe=e=>e||{filters:[],logic:"and"},Ze=(e,t)=>Qe(t).filters.filter((t=>!!h.isCompositeFilterDescriptor(t)&&(t.filters&&t.filters.length&&t.filters.length<=2&&!t.filters.find((t=>h.isCompositeFilterDescriptor(t)||t.field!==e)))))[0]||null,et=t.defineComponent({name:"KendoGridColumnMenuFilter",props:{column:Object,filter:Object,expanded:{type:Boolean,default:void 0},filterable:Boolean,filterOperators:{type:Object,default:function(){return _e}},hideSecondFilter:{type:[Boolean,Object],default:function(){}},filterUI:[String,Function,Object],onFilterfocus:Function,onFilterchange:Function,onExpandchange:Function,onClosemenu:Function},inject:{kendoLocalizationService:{default:null}},data:()=>({currentExpanded:!1,filterGroup:null}),created(){let e;if(this.$props.column&&this.$props.column.field){const t=We(this.$props.column.filter),i=Pe(this.$props.filterOperators,t);e=Ze(this.$props.column.field,this.$props.filter),e=e?{...e,filters:e.filters.map((e=>({...e})))}:{logic:"and",filters:[{field:this.$props.column.field,operator:i},{field:this.$props.column.field,operator:i}]},1===e.filters.filter((e=>e.field===this.$props.column.field)).length&&e.filters.splice(1,0,{field:this.$props.column.field,operator:i})}this.currentExpanded=this.$props.expanded||!1,this.filterGroup=e},methods:{removeGroup(e,t){const i=[...t.filters],r=i.findIndex((t=>t===e));return r>-1&&i.splice(r,1),{...t,filters:i}},insertGroup:(e,t)=>({...t,filters:[e,...t.filters]}),isControlled(){return void 0!==this.$props.expanded},onFilterExpand(){const e=this.isControlled(),t=!(e?this.$props.expanded:this.currentExpanded);this.$emit("expandchange",t),e||(this.currentExpanded=t)},filterChangeHandler(e,t){this.filterChange(t||0,e)},firstFilterChange(e){this.filterChange(0,e)},secondFilterChange(e){this.filterChange(1,e)},filterChange(e,t){const i=this.filterGroup.filters.map(((i,r)=>r===e?{...i,value:t.value,operator:t.operator}:i));this.filterGroup={...this.filterGroup,filters:i}},logicChange(e){this.filterGroup={...this.filterGroup,logic:e.target.value.operator}},clear(e){if(e.preventDefault(),!i.hasListener.call(this,"filterchange"))return;const t=this.$props.column.field,r=Qe(this.$props.filter),o=Ze(t,this.$props.filter),s=r.filters.filter((e=>e!==o));s.length?this.$emit("filterchange",{...r,filters:s},{event:e,field:this.$props.column.field}):this.$emit("filterchange",null,{event:e,field:this.$props.column.field}),this.$emit("closemenu")},currentFilterGroup(){return{...this.filterGroup,filters:this.filterGroup.filters.filter((e=>void 0!==e.value&&null!==e.value&&""!==e.value||null===e.value&&e.operator))}},submit(e){if(e.preventDefault(),!i.hasListener.call(this,"filterchange"))return;const t=this.$props.column.field,r=Qe(this.$props.filter),o=Ze(t,this.$props.filter),s=this.currentFilterGroup();let l=null;if(o&&s.filters.length>0){const e=r.filters.map((e=>e===o?s:e));l={...r,filters:e}}else if(0===s.filters.length){const e=r.filters.filter((e=>e!==o));e.length&&(l={...r,filters:e})}else l={...r,filters:[...r.filters,s]};this.$emit("filterchange",l,{event:e,field:this.$props.column.field}),this.$emit("closemenu")},handleFocus(e){this.$emit("filterfocus",e)}},setup:()=>({kendoLocalizationService:t.inject("kendoLocalizationService",{})}),render(){let e,r;const{column:o,filterUI:n,hideSecondFilter:a,filterOperators:d}=this.$props;if(!o||!o.field)return t.createVNode("div",null,null);const h=o.filter||"text",c=s.provideLocalizationService(this),g=this.filterGroup.filters,m=Me(d[h],c),f=Me(Ke,c),b={field:o.field,value:g[0].value,operator:g[0].operator,operators:m,booleanValues:f,filterType:h},v={field:o.field,value:g[1].value,operator:g[1].operator,operators:m,booleanValues:f,filterType:h},C=this.filterGroup.logic,$=Me(ze,c),k={value:$.find((e=>e.operator===(null===C?"":C))),data:$},x=0!==this.currentFilterGroup().filters.length,S=this.isControlled()?this.$props.expanded:this.currentExpanded,I=b.field,y=b.value,N=b.operator,w=b.booleanValues,V=b.filterType,R=v.field,F=v.value,H=v.operator,O=v.booleanValues,D=v.filterType,L=n&&i.templateRendering.call(this,n,i.getListeners.call(this)),A=i.getTemplate.call(this,{h:t.h,template:L,defaultRendering:void 0,additionalProps:this.$props,additionalListeners:{change:this.filterChangeHandler,logicchange:this.logicChange}});return t.createVNode(He,null,{default:()=>[t.createVNode(Fe,{title:c.toLanguageString(J,ve[J]),icon:"filter",svgIcon:l.filterIcon,onMenuitemclick:this.onFilterExpand},null),t.createVNode(Ge,{show:!!S},{default:()=>[t.createVNode("div",{class:"kendo-grid-filter-menu-container"},[t.createVNode("form",{class:"k-filter-menu k-border-up",onSubmit:this.submit,onReset:this.clear},[t.createVNode("div",{class:"k-filter-menu-container"},[!n&&[t.createVNode(Xe,{operator:N,filterType:V,onChange:e=>{this.filterChangeHandler(e,0)},operators:m},null),t.createVNode(Ye,{field:I,value:y,operator:N,booleanValues:w,filterType:V,onFiltercellfocus:this.handleFocus,onChange:e=>{this.filterChangeHandler(e,0)},operators:m},null)],!a&&!n&&[t.createVNode(u.DropDownList,{onChange:this.logicChange,class:"k-filter-and","data-items":k.data,value:k.value,textField:"text"},null),t.createVNode(Xe,{operator:H,filterType:D,onChange:e=>{this.filterChangeHandler(e,1)},operators:m},null),t.createVNode(Ye,{field:R,value:F,operator:H,booleanValues:O,filterType:D,onFiltercellfocus:this.handleFocus,onChange:e=>{this.filterChangeHandler(e,1)},operators:m},null)],n&&A,t.createVNode("div",{class:"k-columnmenu-actions"},[t.createVNode(p.Button,{themeColor:"primary",disabled:!x},Je(e=c.toLanguageString(X,ve[X]))?e:{default:()=>[e]}),t.createVNode(p.Button,{type:"reset"},Je(r=c.toLanguageString(Y,ve[Y]))?r:{default:()=>[r]})])])])])]})]})}}),tt=t.defineComponent({name:"KendoColumnMenuContent",inheritAttrs:!1,props:{column:Object,sortable:[Boolean,Object],sort:{type:Array},filter:Object,filterOperators:Object,filterable:Boolean,render:[Boolean,String,Function,Object],onContentfocus:Function,onClosemenu:Function,onSortchange:Function,onExpandchange:Function,onFilterchange:Function},methods:{handleFocus(e){this.$emit("contentfocus",e)},closeMenu(){this.$emit("closemenu")},expandChange(){this.$emit("expandchange")},sortChange(e,t){this.$emit("sortchange",e,t)},filterChange(e,t){this.$emit("filterchange",e,t)},contentKeyDown(e){e.keyCode===i.Keys.esc&&this.$emit("closemenu")}},render(){const e=this.$props.render,r=t.createVNode("div",{style:this.$attrs.style,onKeydown:this.contentKeyDown},[t.createVNode(Ee,{column:this.$props.column,sortable:this.$props.sortable,sort:this.$props.sort,onClosemenu:this.closeMenu,onSortchange:this.sortChange},null),t.createVNode(et,{column:this.$props.column,filterable:this.$props.filterable,filter:this.$props.filter,filterOperators:this.$props.filterOperators,onFilterfocus:this.handleFocus,onClosemenu:this.closeMenu,onExpandchange:this.expandChange,onFilterchange:this.filterChange},null)]);return i.getTemplate.call(this,{h:t.h,template:"boolean"!=typeof e&&e,defaultRendering:r,additionalProps:this.$props,additionalListeners:{closemenu:this.closeMenu,filterchange:this.filterChange,sortchange:this.sortChange,expandchange:this.expandChange,contentfocus:this.handleFocus}})}}),it=t.defineComponent({name:"KendoColumnMenu",props:{animate:{type:[Boolean,Object],default:function(){return!0}},column:Object,sortable:[Boolean,Object],sort:{type:Array},opened:Boolean,filter:Object,filterable:Boolean,filterOperators:Object,render:[Boolean,String,Function,Object],columnMenuIcon:i.SvgIcon,onClose:Function,onSortchange:Function,onFilterchange:Function},inject:{kendoIntlService:{default:null},kendoLocalizationService:{default:null}},data:()=>({show:!1,blurTimeout:void 0}),created(){this._anchor=i.guid()},computed:{currentOpen(){return this.show||this.$props.opened}},watch:{currentOpen:function(e){this.$nextTick((function(){if(this._content=this.$refs.content,e&&this._content){const e=r.tableKeyboardNavigationTools.getFocusableElements(this._content,{focusable:!0});e.length?e[0].focus():this._content.focus()}}))}},methods:{blur(){clearTimeout(this.blurTimeout),this.blurTimeout=setTimeout((()=>{this.closeMenu()}),200)},focus(){clearTimeout(this.blurTimeout)},handleFocus(e){clearTimeout(this.blurTimeout)},anchorClick(e){e.preventDefault(),this.show=!this.show},closeMenu(){this.$emit("close"),this.show=!1},sortChange(e,t){this.$emit("sortchange",e,t)},filterChange(e,t){this.$emit("filterchange",e,t)}},setup:()=>({kendoLocalizationService:t.inject("kendoLocalizationService",{})}),render(){const e=this.$props.render,r=s.provideLocalizationService(this),{columnMenuIcon:o}=this.$props;return t.createVNode("div",{style:{display:"inline"}},[t.createVNode("a",{class:"k-grid-header-menu k-grid-column-menu",title:`${this.$props.column.field} ${r.toLanguageString(U,ve[U])}`,ref:i.setRef(this,"kendoAnchor"),onClick:this.anchorClick,href:"#"},[o?t.createVNode(i.Icon,{name:o.name,icon:o},null):t.createVNode(i.Icon,{name:"more-vertical",icon:l.moreVerticalIcon},null)]),t.createVNode(d.Popup,{animate:this.$props.animate,anchor:this._anchor,show:this.currentOpen},{default:()=>[t.createVNode("div",{ref:"content",class:"k-column-menu k-grid-columnmenu-popup",tabindex:0,onFocusout:this.blur,onFocusin:this.focus,style:{outline:"none",width:"230px"}},[t.createVNode(tt,{column:this.$props.column,sortable:this.$props.sortable,sort:this.$props.sort,filter:this.$props.filter,filterable:this.$props.filterable,filterOperators:this.$props.filterOperators,render:e,onContentfocus:this.handleFocus,onClosemenu:this.closeMenu,onSortchange:this.sortChange,onFilterchange:this.filterChange},null)])]})])}});function rt(e){return"function"==typeof e||"[object Object]"===Object.prototype.toString.call(e)&&!t.isVNode(e)}const ot={none:"none",asc:"ascending",desc:"descending"},st={true:{asc:"desc",desc:"","":"asc"},false:{asc:"desc",desc:"asc","":"asc"}},lt=t.defineComponent({name:"KendoHeaderRow",props:{grid:Object,cellRender:[String,Function,Object],groupable:[Boolean,Object],reorderable:Boolean,sortable:[Boolean,Object],sort:{type:Array},filter:Object,filterable:Boolean,filterOperators:Object,filterChange:Function,filterRow:Object,columns:Array,columnsMap:Array,columnResize:Object,columnMenu:[Boolean,String,Function,Object],columnMenuAnimate:{type:[Boolean,Object],default:function(){return!0}},columnMenuIcon:Object,isRtl:Boolean,isColCountDefined:Boolean,columnsInitial:Array,onSortChange:Function,onFilterChange:Function,onSelectionchange:Function,onPressHandler:Function,onDragHandler:Function,onReleaseHandler:Function},inject:{onNavFocus:{default:i.noop},kendoLocalizationService:{default:null}},data:()=>({columnMenuOpened:{}}),created(){this.serviceIndex=0,this.index=-1,this._element=null,this.cellClick=this.cellClick.bind(this)},methods:{pressHandler(e,t){this.$emit("pressHandler",e,t)},dragHandler(e,t){this.$emit("dragHandler",e,t)},releaseHandler(e){this.$emit("releaseHandler",e)},selectionChangeHandler(e){this.$emit("selectionchange",e)},cellClick(e,t){if(e.preventDefault(),!i.hasListener.call(this,"sortChange"))return;const{allowUnsort:r,mode:o}=Ne(this.$props.sortable||!1,t.sortable||!1),s=(this.$props.sort||[]).filter((e=>e.field===t.field))[0],l=st[r][s&&s.dir||""],n="single"===o?[]:(this.$props.sort||[]).filter((e=>e.field!==t.field));""!==l&&t.field&&n.push({field:t.field,dir:l}),this.sortChangeHandler(n,{event:e,field:t.field})},sortChangeHandler(e,t){this.$emit("sortChange",e,t)},filterChangeHandler(e,t){this.$emit("filterChange",e,t)},cellClass(e,t,i){let r="k-header"+(i?" k-grid-header-sticky":"")+(t?" "+t:"");return this.$props.sort&&this.$props.sort.filter((t=>t.field===e)).length>0&&(r+=" k-sorted"),r},cellKeyDown(e,t){e.defaultPrevented||(e.keyCode===i.Keys.enter&&this.cellClick(e,t),e.altKey&&e.keyCode===i.Keys.down&&t.field&&(e.preventDefault(),this.columnMenuOpened={[t.field]:!0}))},getTemplate(e){return i.templateRendering.call(this.$props.grid,e,i.getListeners.call(this.$props.grid))},columnMenuClose(){this.onNavFocus({}),this.columnMenuOpened={}}},computed:{element(){return this._element},theadClasses:()=>({"k-table-thead":!0})},render(e){const o=s.provideLocalizationService(this),n=o.toLanguageString(se,ve[se]),a=o.toLanguageString(le,ve[le]),d=o.toLanguageString(ne,ve[ne]);this.serviceIndex=0,this.index=-1;const h=function(e){return e.map((function(e){const o=this.$props.columns[e],s=this.$props.sortable&&o.sortable,h=this.$props.sort?this.$props.sort.findIndex((e=>e.field===o.field)):-1,c=h>=0&&this.$props.sort[h].dir||"none",p=function(e){if(!this.$props.sort)return null;const r=e>=0?this.$props.sort[e].dir:"";return e>=0&&[t.createVNode("span",{key:1,class:"k-sort-icon"},[t.createVNode(i.Icon,{name:"sort-"+r+"-small",icon:"asc"===r?l.sortAscSmallIcon:l.sortDescSmallIcon},null)]),this.$props.sort.length>1&&t.createVNode("span",{key:2,class:"k-sort-icon"},[t.createVNode("span",{class:"k-sort-order"},[e+1])])]}.call(this,h),u=o.columnMenu||!1===o.columnMenu?o.columnMenu:this.$props.columnMenu,g=o.menuIcon||this.$props.columnMenuIcon,m=(o.kFirst?"k-first ":"")+this.cellClass(o.field,o.headerClassName,o.locked)+(u?" k-filterable":""),f=u&&"boolean"!=typeof u?this.getTemplate(u):!!u,b=void 0!==o.left?this.$props.isRtl?{left:o.right+"px",right:o.left+"px"}:{left:o.left+"px",right:o.right+"px"}:{},v="none"===ot[c]?n:"ascending"===ot[c]?a:d;let C=o.isAccessible?{ariaSort:ot[c],ariaLabel:v,role:"columnheader",ariaColumnIndex:this.$props.isColCountDefined?this.$props.columnsInitial.findIndex((e=>e.field===o.field))+1:void 0,ariaSelected:!1,ariaHaspopup:u?"menu":this.$props.filterable&&o.filterable?"dialog":void 0}:{role:"columnheader"};const $=o.declarationIndex>=0?++this.index:--this.serviceIndex,k=void 0!==o.columnMenuOpened?o.columnMenuOpened:this.columnMenuOpened[o.field];return t.createVNode(r.HeaderThElement,{ariaSort:s?C.ariaSort:void 0,ariaLabel:s?C.ariaLabel:void 0,role:C.role,ariaColumnIndex:C.ariaColumnIndex,ariaSelected:C.ariaSelected,ariaHaspopup:C.ariaHaspopup,key:$,colSpan:o.colSpan,rowSpan:o.rowSpan,class:m,style:b,columnId:o.id,navigatable:o.navigatable,onKeydown:e=>this.cellKeyDown(e,o)},{default:()=>[[0===o.children.length&&u&&t.createVNode(it,{key:0,column:{field:o.field,filter:o.filter},opened:k,animate:this.$props.columnMenuAnimate,sortable:s,sort:this.$props.sort,onClose:this.columnMenuClose,onSortchange:this.sortChangeHandler,filter:this.$props.filter,filterable:this.$props.filterable&&o.filterable,filterOperators:this.$props.filterOperators,onFilterchange:this.filterChangeHandler,render:f,columnMenuIcon:g},null),o.internalHeaderCell&&t.createVNode("span",{class:"k-cell-inner"},[t.createVNode(o.internalHeaderCell,{key:1,field:o.field,sortable:s,onHeadercellclick:e=>this.cellClick(e,o),onSelectionchange:this.selectionChangeHandler,selectionValue:o.headerSelectionValue,title:o.title,render:(o.headerCell||this.$props.cellRender)&&this.getTemplate(o.headerCell||this.$props.cellRender)},rt(p)?p:{default:()=>[p]})])||t.createVNode("span",{class:"k-cell-inner"},[t.createVNode(Re,{key:1,field:o.field,sortable:s,onHeadercellclick:e=>this.cellClick(e,o),selectionValue:o.headerSelectionValue,title:o.title,render:(o.headerCell||this.$props.cellRender)&&this.getTemplate(o.headerCell||this.$props.cellRender)},rt(p)?p:{default:()=>[p]})]),this.$props.columnResize&&this.$props.columnResize.resizable&&o.resizable&&t.createVNode(we,{key:2,onResize:(e,t,i)=>this.$props.columnResize&&this.$props.columnResize.dragHandler(e,o,t,i)},null)]]})}),this)};return t.createVNode("thead",{role:"rowgroup",class:this.theadClasses,"data-keyboardnavheader":!0},[this.$props.columnsMap.map((function(e,i){let r;return(this.$props.groupable||this.$props.reorderable)&&t.createVNode(Ve,{key:i,onPressHandler:this.pressHandler,onDragHandler:this.dragHandler,onReleaseHandler:this.releaseHandler},rt(r=h.call(this,e))?r:{default:()=>[r]})||t.createVNode("tr",{class:"k-table-row",role:"row","aria-rowindex":this.columnsMap.length},[h.call(this,e)])}),this),this.$props.filterRow])}}),nt=t.defineComponent({name:"KendoGridFilterCell",inheritAttrs:!1,props:{id:String,grid:Object,field:String,filterType:String,colSpan:Number,title:String,value:[String,Number,Boolean,Date],operator:[String,Function],operators:Array,booleanValues:Array,onChange:Function,render:[String,Function,Object],ariaLabel:String,size:String},inject:{kendoLocalizationService:{default:null},kendoIntlService:{default:null}},methods:{inputChange(e,t){const i=Be(e,t,this.$props);this.triggerChange(i)},operatorChange(e,t){const i=Ue(e.value.operator,t,this.$props.value);this.triggerChange(i)},boolDropdownChange(e,t){const i=qe(e.value.operator,t);this.triggerChange(i)},clear(e){e.preventDefault(),this.triggerChange({value:"",operator:"",event:e})},triggerChange(e){e.field=this.$props.field,this.$emit("change",e)}},setup:()=>({kendoIntlService:t.inject("kendoIntlService",{}),kendoLocalizationService:t.inject("kendoLocalizationService",{})}),render(){const e=s.provideLocalizationService(this),{size:r}=this.$props,o=this.$props.operators.find((e=>e.operator===this.$props.operator))||null,d=t.createVNode("div",{class:"k-filtercell",style:this.$attrs.style},[t.createVNode("div",{class:"k-filtercell-wrapper"},[function(e,i){let o;switch(e){case"numeric":return t.createVNode(n.NumericTextBox,{size:r,value:i,onChange:e=>{this.inputChange(e.value,e.event)},title:this.$props.title,ariaLabel:this.ariaLabel},null);case"date":return t.createVNode(a.DatePicker,{size:r,value:i,onChange:e=>{this.inputChange(e.value,e)},title:this.$props.title,ariaLabel:this.ariaLabel},null);case"boolean":return o=this.$props.booleanValues,t.createVNode(u.DropDownList,{onChange:this.boolDropdownChange,size:r,value:o.find((e=>e.operator===(null!==i?i:""))),"data-items":o,textField:"text",title:this.$props.title,ariaLabel:this.ariaLabel},null);default:return t.createVNode(n.TextBox,{value:i||"",size:r,onInput:e=>{this.inputChange(e.target.value,e)},title:this.$props.title,"aria-label":this.ariaLabel},null)}}.call(this,this.$props.filterType,this.$props.value),t.createVNode("div",{class:"k-filtercell-operator"},[function(){if("boolean"!==this.$props.filterType)return t.createVNode(u.DropDownList,{onChange:this.operatorChange,value:o,size:r,class:"k-dropdown-operator",icon:"filter",svgIcon:l.filterIcon,iconClassName:"filter k-button-icon","data-items":this.$props.operators,textField:"text",title:e.toLanguageString(ie,ve[ie]),popupSettings:{width:"",anchor:""},ariaLabel:this.ariaLabel},null)}.call(this),t.createVNode(p.Button,{type:"button",size:r,icon:"filter-clear",svgIcon:l.filterClearIcon,class:{"k-disabled":!(null!==this.$props.value&&""!==this.$props.value||this.$props.operator)},title:e.toLanguageString(Y,ve[Y]),onClick:this.clear},null)])])]),h=this.$props.grid?i.getListeners.call(this.$props.grid):null,c=i.templateRendering.call(this.$props.grid,this.$props.render,h);return i.getTemplate.call(this,{h:t.h,template:c,defaultRendering:d,additionalProps:this.$props,additionalListeners:{change:this.triggerChange}})}});const at=t.defineComponent({name:"kendoFilterRow",props:{grid:Object,columns:Array,filter:Object,filterOperators:Object,sort:[Object,Array],cellRender:[String,Function,Object],isRtl:Boolean,ariaRowIndex:Number,size:String,onFilterchange:Function},inject:{kendoLocaliz