UNPKG

@progress/kendo-vue-data-tools

Version:
15 lines 93.7 kB
/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2026 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ /** * @license *------------------------------------------------------------------------------------------- * Copyright © 2026 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("@progress/kendo-vue-common"),require("vue"),require("@progress/kendo-svg-icons"),require("@progress/kendo-vue-buttons"),require("@progress/kendo-vue-dropdowns"),require("@progress/kendo-vue-inputs"),require("@progress/kendo-vue-dateinputs"),require("@progress/kendo-vue-intl"),require("@progress/kendo-data-query"),require("@progress/kendo-vue-popup"),require("@progress/kendo-vue-animation")):"function"==typeof define&&define.amd?define(["exports","@progress/kendo-vue-common","vue","@progress/kendo-svg-icons","@progress/kendo-vue-buttons","@progress/kendo-vue-dropdowns","@progress/kendo-vue-inputs","@progress/kendo-vue-dateinputs","@progress/kendo-vue-intl","@progress/kendo-data-query","@progress/kendo-vue-popup","@progress/kendo-vue-animation"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).KendoVueDatatools={},e.KendoVueCommon,e.Vue,e.KendoSVGIcons,e.KendoVueButtons,e.KendoVueDropdowns,e.KendoVueInputs,e.KendoVueDateinputs,e.KendoVueIntl,e.KendoDataQuery,e.KendoVuePopup,e.KendoVueAnimation)}(this,(function(e,t,r,n,o,i,l,a,s,d,c,p){"use strict";function u(e,r){if(!(r&&e&&e.originalEvent&&t.canUseDOM))return-1;let n=document.elementFromPoint(e.clientX,e.originalEvent.clientY);for(;n&&n.parentElement!==r;)n=n.parentElement;const o=r.children;for(let e=0;e<o.length;e++)if(o[e]===n)return e;return-1}const h=r.defineComponent({data:()=>({visible:!1,top:0,left:0,innerText:"",status:"cancel"}),render(){return this.visible&&r.createVNode("div",{class:"k-header k-drag-clue",style:{display:"block",position:"absolute",zIndex:2e4,padding:"8px 12px",top:this.top+"px",left:this.left+"px"}},[r.createVNode(t.Icon,{name:this.status,class:"k-drag-status",icon:"cancel"===this.status?n.cancelIcon:n.plusIcon},null),this.innerText])}}),g=r.defineComponent({data:()=>({height:0,visible:!1,left:0,top:0}),render(){return this.visible&&r.createVNode("div",{class:"k-grouping-dropclue",style:{zIndex:1e4,display:"block",top:this.top+"px",left:this.left+"px",height:this.height+"px"}},null)}}),f="grid.columnMenu",m="pager.info",v="pager.firstPage",b="pager.previousPage",C="pager.nextPage",I="pager.lastPage",x="pager.itemsPerPage",y="pager.pageInputAriaLabel",k="pager.smallPageSelectorAriaLabel",E="pager.pageSelection",$="pager.page",S="pager.of",N="pager.totalPages",F="filter.eqOperator",L="filter.groupFilterAriaLabel",O="filter.notEqOperator",D="filter.isNullOperator",T="filter.isNotNullOperator",A="filter.isEmptyOperator",V="filter.isNotEmptyOperator",w="filter.startsWithOperator",P="filter.containsOperator",R="filter.notContainsOperator",z="filter.endsWithOperator",M="filter.gteOperator",G="filter.gtOperator",_="filter.lteOperator",K="filter.ltOperator",j="filter.isTrue",B="filter.isFalse",H="filter.afterOrEqualOperator",q="filter.afterOperator",W="filter.beforeOperator",X="filter.beforeOrEqualOperator",U="filter.andLogic",Y="filter.orLogic",Q="filter.addExpression",Z="filter.addGroup",J="filter.close",ee="columnMenu.filterChooseOperator",te="columnMenu.filterClearButton",re="columnMenu.filterSubmitButton",ne="columnMenu.filterTitle",oe="columnMenu.sortAscending",ie="columnMenu.sortDescending",le="columnMenu.filterEqOperator",ae="columnMenu.filterNotEqOperator",se="columnMenu.filterIsNullOperator",de="columnMenu.filterIsNotNullOperator",ce="columnMenu.filterIsEmptyOperator",pe="columnMenu.filterIsNotEmptyOperator",ue="columnMenu.filterStartsWithOperator",he="columnMenu.filterContainsOperator",ge="columnMenu.filterNotContainsOperator",fe="columnMenu.filterEndsWithOperator",me="columnMenu.filterGteOperator",ve="columnMenu.filterGtOperator",be="columnMenu.filterLteOperator",Ce="columnMenu.filterLtOperator",Ie="columnMenu.filterIsTrue",xe="columnMenu.filterAfterOrEqualOperator",ye="columnMenu.filterAfterOperator",ke="columnMenu.filterBeforeOperator",Ee="columnMenu.filterBeforeOrEqualOperator",$e="columnMenu.filterAndLogic",Se="columnMenu.filterOrLogic",Ne="grid.searchPlaceholder",Fe="grid.selectAllRows",Le="grid.filterCheckAll",Oe="sort.ariaLabel",De="filter.ariaLabel",Te="filter.groupAriaLabel",Ae="filter.expressionAriaLabel",Ve="filter.expressionDropdownAriaLabel",we="filter.expressionOperatorDropdownAriaLabel",Pe="filter.enumFilterDropdownAriaLabel",Re="filter.numericFilterAriaLabel",ze="filter.textFilterAriaLabel",Me="filter.dateFilterAriaLabel",Ge="filter.dropdownOperatorAriaLabel",_e={[L]:"Group Filter",[k]:"Select page",[y]:"Pager - Page number input",[x]:"items per page",[E]:"Select page",[m]:"{0} - {1} of {2} items",[v]:"Go to the first page",[b]:"Go to the previous page",[C]:"Go to the next page",[I]:"Go to the last page",[$]:"Page",[S]:"of",[N]:"{0}",[Ne]:"Search",[Fe]:"Select All Rows",[Le]:"Check All",[Oe]:"Sortable",[De]:"Filter",[F]:"Is equal to",[O]:"Is not equal to",[D]:"Is null",[T]:"Is not null",[A]:"Is empty",[V]:"Is not empty",[w]:"Starts with",[P]:"Contains",[R]:"Does not contain",[z]:"Ends with",[M]:"Is greater than or equal to",[G]:"Is greater than",[_]:"Is less than or equal to",[K]:"Is less than",[j]:"Is true",[B]:"Is false",[H]:"Is after or equal to",[q]:"Is after",[W]:"Is before",[X]:"Is before or equal to",[U]:"And",[Y]:"Or",[Q]:"Add Expression",[Z]:"Add Group",[J]:"Remove",[Te]:"Filter toolbar",[Ae]:"Filter expression row",[Ve]:"Filter dropdown",[we]:"Filter operator dropdown",[Pe]:"Select True/False",[Re]:"Enter number",[ze]:"Enter text",[Me]:"Enter date",[Ge]:"Choose Operator",[ee]:"Choose Operator",[te]:"Clear",[re]:"Filter",[ne]:"Filter",[oe]:"Sort Ascending",[ie]:"Sort Descending",[le]:"Is equal to",[ae]:"Is not equal to",[se]:"Is null",[de]:"Is not null",[ce]:"Is empty",[pe]:"Is not empty",[ue]:"Starts with",[he]:"Contains",[ge]:"Does not contain",[fe]:"Ends with",[me]:"Is greater than or equal to",[ve]:"Is greater than",[be]:"Is less than or equal to",[Ce]:"Is less than",[Ie]:"Is true",[xe]:"Is after or equal to",[ye]:"Is after",[ke]:"Is before",[Ee]:"Is before or equal to",[$e]:"And",[Se]:"Or","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"},Ke=[{text:"grid.filterAndLogic",operator:"and"},{text:"grid.filterOrLogic",operator:"or"}],je={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"}]},Be=e=>"isnull"===e||"isnotnull"===e||"isempty"===e||"isnotempty"===e,He=(e,t)=>e.map((e=>({text:t.toLanguageString(e.text,_e[e.text]),operator:e.operator}))),qe=[{text:"grid.filterBooleanAll",operator:""},{text:"grid.filterIsTrue",operator:!0},{text:"grid.filterIsFalse",operator:!1}],We=(e,t,r)=>{const n=Xe(r.operators);let o=r.operator;switch(r.filterType){case"numeric":case"date":(!o||Be(o))&&(o=n),null===e&&o===n&&(o="");break;case"text":(!o||Be(o))&&(o=n),!e&&o===n&&(o="");break;default:return}return{value:e,operator:o,event:t}},Xe=(e,t)=>t?e[t][0].operator:e[0].operator,Ue=e=>e||"text",Ye=(e,t)=>({value:e,operator:""===e?"":"eq",event:t}),Qe=(e,t,r)=>(Be(e)&&(r=null),{value:r,operator:e,event:t}),Ze=r.defineComponent({name:"KendoFilterCell",inheritAttrs:!1,emits:{change:null},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 r=We(e,t,this.$props);this.triggerChange(r)},operatorChange(e,t){const r=Qe(e.value.operator,t,this.$props.value);this.triggerChange(r)},boolDropdownChange(e,t){const r=Ye(e.value.operator,t);this.triggerChange(r)},clear(e){e.preventDefault(),this.triggerChange({value:"",operator:"",event:e})},triggerChange(e){e.field=this.$props.field,this.$emit("change",e)}},setup:()=>({kendoIntlService:r.inject("kendoIntlService",{}),kendoLocalizationService:r.inject("kendoLocalizationService",{})}),render(){const{size:e}=this.$props,d=s.provideLocalizationService(this),c=this.$props.operators.find((e=>e.operator===this.$props.operator))||null,p=r.createVNode("div",{class:"k-filtercell",style:this.$attrs.style},[r.createVNode("div",{class:"k-filtercell-wrapper"},[function(t,n){let o;switch(t){case"numeric":return r.createVNode(l.NumericTextBox,{size:e,value:n,onChange:e=>{this.inputChange(e.value,e.event)},title:this.$props.title,"aria-label":this.ariaLabel||d.toLanguageString(Re,_e[Re])},null);case"date":return r.createVNode(a.DatePicker,{size:e,value:n,onChange:e=>{this.inputChange(e.value,e)},title:this.$props.title,"aria-label":this.ariaLabel||d.toLanguageString(Me,_e[Me])},null);case"boolean":return o=this.$props.booleanValues,r.createVNode(i.DropDownList,{onChange:this.boolDropdownChange,size:e,value:o.find((e=>e.operator===(null!==n?n:""))),"data-items":o,textField:"text",title:this.$props.title,"aria-label":this.ariaLabel||d.toLanguageString(Pe,_e[Pe])},null);default:return r.createVNode(l.TextBox,{size:e,value:n||"",onInput:e=>{this.inputChange(e.target.value,e)},title:this.$props.title,"aria-label":this.ariaLabel||d.toLanguageString(ze,_e[ze])},null)}}.call(this,this.$props.filterType,this.$props.value),r.createVNode("div",{class:"k-filtercell-operator"},[function(){if("boolean"!==this.$props.filterType)return r.createVNode(i.DropDownList,{onChange:this.operatorChange,value:c,size:e,class:"k-dropdown-operator",icon:"filter",svgIcon:n.filterIcon,iconClassName:"k-button-icon","data-items":this.$props.operators,textField:"text",title:d.toLanguageString(ee,_e[ee]),popupSettings:{width:"",anchor:""},"aria-label":this.ariaLabel||d.toLanguageString(Ge,_e[Ge])},null)}.call(this),r.createVNode(o.Button,{size:e,type:"button",icon:"filter-clear",svgIcon:n.filterClearIcon,class:{"k-disabled":!(null!==this.$props.value&&""!==this.$props.value||this.$props.operator)},title:d.toLanguageString(te,_e[te]),onClick:this.clear},null)])])]),u=this.$props.grid?t.getListeners.call(this.$props.grid):null,h=t.templateRendering.call(this.$props.grid,this.$props.render,u);return t.getTemplate.call(this,{h:r.h,template:h,defaultRendering:p,additionalProps:this.$props,additionalListeners:{change:this.triggerChange}})}});function Je(e,t,r){return r?{...e,[t]:r.length?[...r]:void 0}:e&&e[t]?[...e[t]]:[]}function et(e,t,r){if(e[r]){let n=Je(e,r,d.orderBy(Je(e,r),t)),o=Je(n,r).map((e=>et(e,t,r)));return{...n,[r]:o}}return e}function tt(e,t,r){let n=Je(e,r);if(n&&n.length){n=n.map((e=>tt(e,t,r)));const o=d.filterBy(n,{filters:[{filters:t,logic:"and"},{operator:e=>!!(e[r]||[]).length}],logic:"or"});return Je(e,r,o)}return e}const rt="groupId",nt="items",ot=(e,t,r)=>{e.items&&(e[rt]=`${r}${r&&"_"}${e.value}${e.field}`,t>1&&e.items.forEach((r=>ot(r,t-1,e[rt]))))};const it=r.defineComponent({name:"KendoNumericButtons",props:{buttonCount:Number,totalPages:Number,currentPage:Number,size:String,responsiveSize:String,onPagechange:Function},inject:{kendoLocalizationService:{default:null}},computed:{start(){const e=this.$props.currentPage,t=this.$props.buttonCount;if(e>t){const r=e%t;return 0===r?e-t+1:e-r+1}return 1},end(){return Math.min(this.start+this.$props.buttonCount-1,this.$props.totalPages)},dropdownClass(){const{size:e}=this.$props;return{"k-picker":!0,"k-dropdown-list":!0,"k-dropdown":!0,"k-rounded-md":!0,"k-picker-solid":!0,[`k-picker-${t.kendoThemeMaps.sizeMap[e]||e}`]:e}}},methods:{click(e,t){e.preventDefault(),this.$emit("pagechange",t,e)},ddlChange(e){this.$emit("pagechange",parseInt(e.target.value,10),e)}},render(){const e=s.provideLocalizationService(this),t=this.$props.messagesMap?this.$props.messagesMap(k):{messageKey:k,defaultMessage:_e[k]},n=this.start>1&&r.createVNode(o.Button,{fillMode:"flat",themeColor:"primary",size:this.$props.size,rounded:null,onClick:e=>this.click(e,this.start-1)},{default:()=>[r.createTextVNode("...")]}),i=this.end<this.$props.totalPages&&r.createVNode(o.Button,{fillMode:"flat",themeColor:"primary",size:this.$props.size,rounded:null,onClick:e=>this.click(e,this.end+1)},{default:()=>[r.createTextVNode("...")]}),l=[];for(let e=this.start;e<=this.end;e++)l.push(e);const a=l.map((function(e){return r.createVNode(o.Button,{key:e,class:"k-link",onClick:t=>this.click(t,e),selected:this.$props.currentPage===e,fillMode:"flat",themeColor:"primary",size:this.$props.size,rounded:null,role:"button",title:"Page "+e,"aria-current":this.$props.currentPage===e||void 0},function(e){return"function"==typeof e||"[object Object]"===Object.prototype.toString.call(e)&&!r.isVNode(e)}(e)?e:{default:()=>[e]})}),this);return r.createVNode("div",{class:"k-pager-numbers-wrap"},[r.createVNode("div",{class:"k-pager-numbers",style:{display:"small"!==this.$props.responsiveSize?"":"none"}},[n,a,i]),function(n){return r.createVNode("select",{style:{width:"5em",margin:"0px 1em",display:"small"===this.$props.responsiveSize?"inline-flex":"none"},class:this.dropdownClass,"aria-label":e.toLanguageString(t.messageKey,t.defaultMessage),onChange:this.ddlChange},[n.map((function(e){return r.createVNode("option",{value:e,selected:e===this.$props.currentPage},[e])}),this)])}.call(this,l)])}}),lt=r.defineComponent({name:"KendoPagerInput",props:{totalPages:Number,currentPage:Number,messagesMap:Function,size:String,onPagechange:Function},inject:{kendoIntlService:{default:null},kendoLocalizationService:{default:null}},data:()=>({currentText:void 0}),computed:{computedValue(){return void 0!==this.$props.currentPage?this.$props.currentPage:this.currentText}},methods:{changeHangler(e){this.currentText=e.target.value,this.currentText&&this.$emit("pagechange",this.currentText,e)}},setup:()=>({kendoIntlService:r.inject("kendoIntlService",{}),kendoLocalizationService:r.inject("kendoLocalizationService",{})}),render(){const e=s.provideIntlService(this),t=s.provideLocalizationService(this),n=this.$props.messagesMap?this.$props.messagesMap($):{messageKey:$,defaultMessage:_e[$]},o=this.$props.messagesMap?this.$props.messagesMap(S):{messageKey:S,defaultMessage:_e[S]},i=this.$props.messagesMap?this.$props.messagesMap(N):{messageKey:N,defaultMessage:_e[N]},a=this.$props.messagesMap?this.$props.messagesMap(y):{messageKey:y,defaultMessage:_e[y]};return r.createVNode("span",{class:"k-pager-input"},[r.createVNode("span",null,[t.toLanguageString(n.messageKey,n.defaultMessage)]),r.createVNode(l.NumericTextBox,{min:1,value:this.computedValue,onChange:this.changeHangler,spinners:!1,size:this.$props.size,ariaLabel:t.toLanguageString(a.messageKey,a.defaultMessage)},null),r.createVNode("span",null,[`${t.toLanguageString(o.messageKey,o.defaultMessage)} ${e.format(t.toLanguageString(i.messageKey,i.defaultMessage),[this.$props.totalPages])}`])])}}),at=r.defineComponent({name:"KendoPagerPageSizes",props:{value:[String,Number],pageSize:Number,pageSizes:Array,size:String,messagesMap:Function,onPagechange:Function},inject:{kendoLocalizationService:{default:null}},methods:{pageSizeChange(e){this.$emit("pagechange",{skip:0,take:parseInt(e.target.value,10)},e)}},setup:()=>({kendoLocalizationService:r.inject("kendoLocalizationService",{})}),render(){const{value:e,pageSizes:t,pageSize:n}=this.$props,o=s.provideLocalizationService(this),l=t.slice();void 0===e&&0===l.filter((e=>e===n)).length&&l.unshift(n);const a=this.$props.messagesMap?this.$props.messagesMap(x):{messageKey:x,defaultMessage:_e[x]},d=this.$props.messagesMap?this.$props.messagesMap(E):{messageKey:E,defaultMessage:_e[E]};return r.createVNode("span",{class:"k-pager-sizes k-label"},[r.createVNode(i.DropDownList,{value:void 0!==e?e:n,dataItems:l,size:this.$props.size,ariaLabel:o.toLanguageString(d.messageKey,d.defaultMessage),onChange:this.pageSizeChange},null),o.toLanguageString(a.messageKey,a.defaultMessage)])}}),st=r.defineComponent({name:"KendoPagerInfo",props:{totalPages:Number,currentPage:Number,skip:Number,messagesMap:Function},inject:{kendoLocalizationService:{default:null},kendoIntlService:{default:null}},setup:()=>({kendoIntlService:r.inject("kendoIntlService",{}),kendoLocalizationService:r.inject("kendoLocalizationService",{})}),render(){const e=s.provideIntlService(this),t=s.provideLocalizationService(this),n=this.$props.messagesMap?this.$props.messagesMap(m):{messageKey:m,defaultMessage:_e[m]};return r.createVNode("span",{class:"k-pager-info"},[e.format(t.toLanguageString(n.messageKey,n.defaultMessage),[Math.min(this.$props.skip+1,this.$props.totalPages),Math.min(this.$props.skip+this.$props.currentPage,this.$props.totalPages),this.$props.totalPages])])}}),dt=r.defineComponent({name:"KendoPagerNavigationButton",props:{title:String,disabled:Boolean,icon:String,svgIcon:Object,page:Number,size:String,onPagechange:Function},inject:{kendoLocalizationService:{default:null},kendoIntlService:{default:null}},methods:{changePage(e){e.preventDefault(),this.$emit("pagechange",this.$props.page,e)}},render(){return r.createVNode(o.Button,{fillMode:"flat",themeColor:"base",size:this.$props.size,rounded:null,class:"k-pager-nav",ariaLabel:this.title,icon:t.getIconName(this.icon),svgIcon:this.svgIcon,title:this.title,disabled:this.disabled,role:"button",onClick:this.changePage},null)}}),ct=r.defineComponent({name:"KendoPager",props:{pageSizeValue:[String,Number],total:Number,skip:Number,take:Number,pageSize:Number,settings:[Object,Boolean],buttonCount:{type:Number,default:10},info:{type:Boolean,default:!0},type:{type:String,default:"numeric",validator:function(e){return["numeric","input"].includes(e)}},pageSizes:{type:Array},previousNext:Boolean,messagesMap:Function,responsive:{type:Boolean,default:!0},size:{type:String,validator:function(e){return["small","medium","large"].includes(e)}},pagerRender:[String,Function,Object],width:[Number,String],ariaControls:{type:String,default:void 0},onPagesizechange:Function,onPagechange:Function},data:()=>({currentRtl:!1,itemsToFit:void 0,itemsWidths:void 0}),mounted(){t.canUseDOM&&window.ResizeObserver&&(this.observerResize=new window.ResizeObserver(this.onWindowResize),this.observerResize.observe(this.$el)),this.currentRtl=t.isRtl(this.$el);const e=this.collectPagerChildrenWidths();this.itemsWidths=e,this.onWindowResize()},unmounted(){var e;null!=(e=this.document)&&e.body&&this.observerResize&&this.observerResize.disconnect()},inject:{kendoLocalizationService:{default:null},kendoIntlService:{default:null}},computed:{wrapperClass(){const{size:e}=this.$props;return{"k-pager":!0,[`k-pager-${t.kendoThemeMaps.sizeMap[e]||e}`]:e}},totalPages(){return Math.ceil((this.$props.total||0)/this.currentTake)},currentPage(){return Math.floor((this.$props.skip||0)/this.currentTake)+1},currentTake(){return this.$props.take||this.$props.pageSize},showPageSizes(){return this.itemsToFit.includes(this.pagerSizesIndex)},showInfo(){return this.itemsToFit.includes(this.pagerInfoIndex)}},methods:{changePage(e,t){e>0&&e<=this.totalPages&&this.$emit("pagechange",{skip:(e-1)*this.currentTake,take:this.currentTake},t)},triggerPageChange(e,r){t.hasListener.call(this,"pagesizechange")?this.$emit("pagesizechange",e,r):this.$emit("pagechange",e,r)},onWindowResize(){const e=this.$el;!e||!this.$props.responsive||!1===this.$props.settings.responsive||(this.itemsToFit=this.fitChildrenInParent(e,this.itemsWidths||[]))},transformDimension:e=>"string"==typeof e&&e.endsWith("px")?e:e+"px",collectPagerChildrenWidths(){var e;return Array.from((null==(e=this.$el)?void 0:e.children)||[]).map((e=>e instanceof HTMLElement?{class:e.className,width:e.offsetWidth}:0))},fitChildrenInParent(e,t){let r=[],n=0,o=t;const i=e.offsetWidth;for(let l=0;l<t.length;l++){const a=0===l?8:0,s=e.children[l],d=0===l?t[l].width:(null==s?void 0:s.offsetWidth)||t[l].width;n+=d,n<i-20-a?r.push(t[l].class):o[l].width=d}return this.itemsWidths=o,r}},setup:()=>({kendoIntlService:r.inject("kendoIntlService",{}),kendoLocalizationService:r.inject("kendoLocalizationService",{})}),render(){var e,o;const{skip:i,take:l,total:a,pageSizes:d,buttonCount:c,messagesMap:p,info:u,type:h,previousNext:g,pageSizeValue:f}=this.$props,m={pageSizes:d,buttonCount:c,info:u,previousNext:g,type:h,pageSizeValue:f,...this.$props.settings},x=this.$props.pagerRender||this.$props.settings.pagerRender,y=x?t.templateRendering.call(this,x,t.getListeners.call(this)):null,k=s.provideLocalizationService(this),E=p?p(v):{messageKey:v,defaultMessage:_e[v]},$=p?p(b):{messageKey:b,defaultMessage:_e[b]},S=p?p(C):{messageKey:C,defaultMessage:_e[C]},N=p?p(I):{messageKey:I,defaultMessage:_e[I]},F="numeric"===m.type?r.createVNode(it,{responsiveSize:this.responsive&&this.itemsToFit&&this.itemsToFit.length<2?"small":"large",size:this.size,buttonCount:m.buttonCount||0,totalPages:this.totalPages,currentPage:this.currentPage,onPagechange:this.changePage},null):r.createVNode(lt,{currentPage:this.currentPage,totalPages:this.totalPages,onPagechange:this.changePage,messagesMap:p,size:this.size},null);let L,O,D,T;m.previousNext&&(L=r.createVNode(dt,{class:"k-pager-first",size:this.size,disabled:1===this.currentPage,page:1,title:k.toLanguageString(E.messageKey,E.defaultMessage),icon:this.currentRtl?"caret-alt-to-right":"caret-alt-to-left",svgIcon:this.currentRtl?n.caretAltToRightIcon:n.caretAltToLeftIcon,onPagechange:this.changePage},null),O=r.createVNode(dt,{disabled:1===this.currentPage,size:this.size,page:this.currentPage-1,title:k.toLanguageString($.messageKey,$.defaultMessage),icon:this.currentRtl?"caret-alt-right":"caret-alt-left",svgIcon:this.currentRtl?n.caretAltRightIcon:n.caretAltLeftIcon,onPagechange:this.changePage},null),D=r.createVNode(dt,{disabled:this.currentPage===this.totalPages,size:this.size,page:this.currentPage+1,title:k.toLanguageString(S.messageKey,S.defaultMessage),icon:this.currentRtl?"caret-alt-left":"caret-alt-right",svgIcon:this.currentRtl?n.caretAltLeftIcon:n.caretAltRightIcon,onPagechange:this.changePage},null),T=r.createVNode(dt,{class:"k-pager-last",disabled:this.currentPage===this.totalPages,size:this.size,page:this.totalPages,title:k.toLanguageString(N.messageKey,N.defaultMessage),icon:this.currentRtl?"caret-alt-to-left":"caret-alt-to-right",svgIcon:this.currentRtl?n.caretAltToLeftIcon:n.caretAltToRightIcon,onPagechange:this.changePage},null));const A=m.pageSizes&&r.createVNode(at,{onPagechange:this.triggerPageChange,pageSize:this.currentTake,pageSizes:m.pageSizes,value:m.pageSizeValue,messagesMap:p,size:this.size},null),V=m.info&&r.createVNode(st,{totalPages:this.$props.total,skip:this.$props.skip,currentPage:this.currentTake,messagesMap:p},null);let w=t.getTemplate.call(this,{h:r.h,template:y,additionalProps:{...this.$props,current:this.currentPage},additionalListeners:{pagechange:this.triggerPageChange}});const P=this.transformDimension(this.$props.width);return x?r.createVNode("div",{class:this.wrapperClass,style:{width:P},role:"application","aria-roledescription":"pager"},[w]):r.createVNode("div",{class:this.wrapperClass,style:{width:P},role:"application","aria-roledescription":"pager","aria-keyshortcuts":"Enter ArrowRight ArrowLeft","aria-label":"Page navigation, page "+this.currentPage+" of "+this.totalPages,"aria-controls":this.$props.ariaControls},[r.createVNode("div",{class:"k-pager-numbers-wrap"},[L,O,F,D,T]),!(this.responsive&&this.itemsToFit&&(null==(e=this.itemsToFit)||!e.find((e=>-1!==e.indexOf("k-pager-sizes")))))&&A,!(this.responsive&&this.itemsToFit&&(null==(o=this.itemsToFit)||!o.find((e=>-1!==e.indexOf("k-pager-info")))))&&V])}}),pt="data-keyboardnavlevel",ut="data-keyboardnavscope",ht="data-keyboardnavheader",gt="data-keyboardnavbody",ft="data-keyboardnavid",mt="_filter",vt=["input:not([disabled]):not([type=hidden])","select:not([disabled])","textarea:not([disabled])","button:not([disabled])","a[href]","area[href]","summary","iframe","object","embed","audio[controls]","video[controls]","[contenteditable]"],bt=[...vt,"[tabindex]"],Ct=[...vt,"[tabindex]"].map((e=>e+':not([tabindex="-1"])')),It={[ut]:!0},xt={[ht]:!0},yt={[gt]:!0},kt=r.defineComponent({name:"KendoHeaderThElement",emits:{keydown:null},props:{ariaSort:{type:String,validator:function(e){return["none","ascending","descending"].includes(e)}},ariaLabel:String,ariaColumnIndex:Number,ariaSelected:Boolean,ariaHaspopup:String,colSpan:Number,rowSpan:Number,role:String,columnId:String,navigatable:Boolean},computed:{thClass(){const{className:e}=this.$props;return{"k-table-th":!0,[e]:e}}},inject:{getKeyboardNavigationAttributes:{default:t.noop}},setup:()=>({kendoIntlService:r.inject("kendoIntlService",{}),kendoLocalizationService:r.inject("kendoLocalizationService",{})}),render(){const{ariaSort:e,colSpan:n,rowSpan:o,columnId:i,navigatable:l,ariaColumnIndex:a,ariaLabel:s,ariaHaspopup:d,role:c,ariaSelected:p}=this.$props,u=this.getKeyboardNavigationAttributes(i,l),h=t.getDefaultSlots(this);return r.createVNode("th",{"aria-sort":e,"aria-label":s,"aria-colindex":a,"aria-selected":p,"aria-haspopup":d,colspan:n,rowspan:o,class:this.thClass,onKeydown:this.onKeyDown,role:c,tabindex:u.tabIndex,"data-keyboardnavlevel":u[pt],"data-keyboardnavid":u[ft]},[h])},methods:{onKeyDown(e){this.$emit("keydown",e)}}}),Et=(e,t,r="cell")=>`${t}_${e}_${r}`,$t=e=>{if(!e)return;return e.getAttribute(ft)||void 0},St=e=>!!e&&!!e.getAttribute(ft),Nt=e=>e.querySelector(`[${ht}]`),Ft=e=>e.querySelector(`[${gt}]`),Lt=(e,t,r,n,o)=>{if(!r)return[];let i=e+(o?-1:1);for(;i>=0&&i<n.length;){const e=n[i][t];if(e!==r)return[e,[i,t]];i+=o?-1:1}return[]},Ot=(e,t,r,n,o)=>{if(!r)return[];let i=t+(o?-1:1);for(;i>=0&&i<n[e].length;){const t=n[e][i];if(t!==r)return[t,[e,i]];i+=o?-1:1}return[]},Dt=(e,t)=>{if(t)for(let r=0;r<e.length;r++)for(let n=0;n<e[r].length;n++)if(e[r][n]===t)return[r,n]},Tt={generateNavigatableId:Et,getNavigatableId:$t,getNavigatableLevel:e=>{if(e)return parseInt(e.getAttribute(pt)||"",10)},getNavigatableElement:(e,t={level:0})=>e.querySelector(`[${pt}='${t.level}']`),getClosestNavigatableElement:e=>e.parentElement&&e.parentElement.closest(`[${pt}]`),getActiveElement:(e,t)=>e.querySelector(`[${ft}='${t}']`),getClosestScope:e=>e.parentElement&&e.parentElement.closest(`[${ut}]`),getHeaderElement:Nt,getBodyElement:Ft,getFocusableElements:(e,t={focusable:!1})=>{let r=t.focusable?bt:Ct;return Array.from(e.querySelectorAll(r.join(",")))},getNavigatableElements:(e,t={level:0})=>{if(!e)return[];let r=bt.map((e=>e+`[${pt}='${t.level}']`)).join(",");return Array.from(e.querySelectorAll(r))},filterNavigatableElements:(e={level:0})=>{let t=bt.map((t=>t+`[${pt}='${e.level}']`)).join(",");return e=>e.matches(t)},focusElement:e=>{const{elementForFocus:t,event:r,kbContext:n,prevElement:o}=e;n&&t&&t.focus&&(r.preventDefault(),t.focus(),St(t)&&(t.setAttribute("tabIndex","0"),n.activeId=$t(t)),o&&St(o)&&o.setAttribute("tabIndex","-1"))},getIdPrefix:e=>e?e.idPrefix:"",isNavigatable:St,findNextIdByRowIndex:Lt,findNextIdByCellIndex:Ot,findId:Dt,getNextNavigationIndex:e=>e?e.navigationMatrix.length:0,getFilterColumnId:e=>e?`${e}${mt}`:""},At=r.defineComponent({name:"KendoTableKeyboardNavigationProvider",props:{navigatable:{type:Boolean,default:!1},id:String},data:function(){return{scope:void 0,kbContext:void 0,navigation:void 0}},provide:function(){return{getKeyboardNavigationAttributes:this.getKeyboardNavigationAttributes,onNavMount:this.onComponentDidMount,onGetSnapshotBeforeUpdate:this.onGetSnapshotBeforeUpdate,onComponentDidUpdate:this.onComponentDidUpdate,onNavFocus:this.onFocus,onNavKeyDown:this.onKeyDown,generateMatrix:this.generateMatrix,kbContext:this.kbContext,navigation:this.navigation}},created(){const{navigatable:e,id:r}=this.$props;e&&(this.kbContext={activeId:"",level:0},this.navigation={activeElementIsFocused:!1,prevNavigationIndexes:void 0,idPrefix:r||t.guid(),navigationMatrix:[],lastHeaderIndex:-1})},methods:{getKeyboardNavigationAttributes(e){return e&&!1!==this.$props.navigatable?{tabIndex:this.kbContext.activeId&&this.kbContext.activeId===e?0:-1,[pt]:this.kbContext.level,[ft]:e}:{}},onComponentDidMount(e){const{scope:t=this.scope}=e;if(this.kbContext&&this.navigation&&t){this.scope=t,this.generateMatrix(e);const r=this.navigation.navigationMatrix[0][0],n=Tt.getActiveElement(t,r);r&&n&&(this.kbContext.activeId=r,n.setAttribute("tabIndex","0"))}},onGetSnapshotBeforeUpdate(e){const{kbContext:t=this.kbContext,navigation:r=this.navigation,document:n}=e;if(t&&r&&n){const e=n.activeElement,o=Tt.getNavigatableId(e);o&&o===t.activeId&&(r.activeElementIsFocused=!0)}},onComponentDidUpdate(e){const{scope:t}=e;if(this.generateMatrix(e),this.kbContext&&this.navigation&&t){if(!Tt.getActiveElement(t,this.kbContext.activeId)){const e=this.navigation.navigationMatrix[0][0],r=Tt.getActiveElement(t,e);e&&r&&(this.kbContext.activeId=e,r.setAttribute("tabIndex","0"),this.navigation.activeElementIsFocused&&r.focus())}this.navigation.activeElementIsFocused=!1}},onFocus(e){const t=this.kbContext;if(e.defaultPrevented||!t)return;const r=e.target,n=Tt.getNavigatableId(r);if(n&&n!==t.activeId){const e=Tt.getClosestScope(r);if(!e)return;const o=Tt.getActiveElement(e,t.activeId);o&&o.setAttribute("tabIndex","-1"),r.setAttribute("tabIndex","0"),t.activeId=n}},onKeyDown(e,r){const{kbContext:n=this.kbContext,navigation:o=this.navigation,onNavigationAction:i}=r;if(e.defaultPrevented||!n||!o)return;if(e.keyCode===t.Keys.esc){const t=Tt.getClosestNavigatableElement(e.target);return void Tt.focusElement({elementForFocus:t,event:e,kbContext:n})}const l=e.target,a=Tt.getNavigatableId(l),s=Tt.getNavigatableLevel(l),d=Tt.getClosestScope(l),c=o.navigationMatrix;if(void 0!==s&&d){if(e.keyCode===t.Keys.enter){const t=Tt.getNavigatableElement(l,{level:s+1});if(t)return void Tt.focusElement({elementForFocus:t,event:e,kbContext:n,prevElement:l});{const t=Tt.getFocusableElements(l)[0];return void Tt.focusElement({elementForFocus:t,event:e,kbContext:n,prevElement:l})}}if(e.keyCode===t.Keys.up||e.keyCode===t.Keys.down||e.keyCode===t.Keys.left||e.keyCode===t.Keys.right){const r=e.keyCode===t.Keys.up||e.keyCode===t.Keys.left,s=e.keyCode===t.Keys.up||e.keyCode===t.Keys.down;let p;if(o&&o.prevNavigationIndexes){const[e,t]=o.prevNavigationIndexes;p=c[e][t]===a?o.prevNavigationIndexes:Dt(c,a)}else p=Dt(c,a);if(p){const[t,u]=p,[h,g]=s?Lt(t,u,a,c,r):Ot(t,u,a,c,r);if(h){const t=Tt.getActiveElement(d,h);Tt.focusElement({elementForFocus:t,event:e,kbContext:n,prevElement:l}),o.prevNavigationIndexes=g,i&&i({focusElement:t,event:e})}}}}},generateMatrix(e){const{navigation:t=this.navigation,scope:r}=e;if(!t||!r)return;const n=[],o=Nt(r),i=Ft(r);if(!o||!i)return;const l=Array.from(o.children),a=Array.from(i.children);[...l,...a].forEach(((e,t)=>{Array.from(e.children).forEach((e=>{const r=$t(e);if(!r)return;const o=e.rowSpan||1,i=e.colSpan||1;let l;for(let e=t,i=t+o;e<i;e++){if(n[e]||(n[e]=[]),void 0===l){const t=n[e].findIndex((e=>!e));l=t>-1?t:n[e].length}n[e][l]=r||""}for(let e=l+1,o=l+i;e<o;e++)n[t][e]=r||""}))})),t.navigationMatrix=n.filter((e=>!!e)),t.lastHeaderIndex=l.length-1}},render(){return t.getDefaultSlots(this)[0]}}),Vt="data-grid-row-index",wt="data-grid-col-index",Pt={},Rt=(e,t)=>{let r=e;for(;r;){if(r.tagName===t)return r;if("TABLE"===r.tagName)return null;r=r.parentElement}return null},zt=e=>{if(!e)return;const t=e.getAttribute(Vt);return t?parseInt(t,10):void 0},Mt=e=>{if(!e)return;const t=e.getAttribute(wt);return t?parseInt(t,10):void 0},Gt=e=>{const{event:t,dataItemKey:r,selectedState:n}=e,{dataItems:o,startRowIndex:i,endRowIndex:l,startColIndex:a,endColIndex:s,cell:d,isDrag:c,ctrlKey:p,shiftKey:u,metaKey:h,componentId:g,mode:f,dataItem:m}=t;let v={};const b=null!==m;if("single"===f){const e=o.slice(i,i+1)[0][r];Pt[g]={rowIndex:i,colIndex:a},v[e]=!d||[a]}else if(!c&&(u||p||h||b)){if(p||h||b){Pt[g]={rowIndex:i,colIndex:a};const e=o.slice(i,l+1)[0][r];v={...n},v[e]=d&&!b?((e,t)=>!e||Array.isArray(e)&&0===e.length?[t]:e.findIndex((e=>e===t))>-1?e.filter((e=>e===t)):[...e,t])(v[e],a):!v[e]}else if(u){const e=Pt[g]&&Pt[g].rowIndex||0,t=Pt[g]&&Pt[g].colIndex||0,n=Math.min(e,i,l),c=Math.max(e,i,l),p=Math.min(t,a,s),u=Math.max(t,a,s),h=[];for(let e=p;e<=u;e++)h.push(e);o.slice(n,c+1).forEach((e=>{const t=e[r];v[t]=!d||[...h]}))}}else{c||(Pt[g]={rowIndex:i,colIndex:a});const e=[];for(let t=a;t<=s;t++)e.push(t);o.slice(i,l+1).forEach((t=>{const n=t[r];v[n]=!d||[...e]}))}return v},_t=t.hasRelativeStackingContext();var Kt=(e=>(e.ENTER_EDIT="EDITING_ENTER_EDIT",e.ENTER_FIELD_EDIT="EDITING_ENTER_FIELD_EDIT",e.ADD_EDIT="EDITING_ADD_EDIT",e.ADD_FIELD_EDIT="EDITING_ADD_FIELD_EDIT",e.EXIT_EDIT="EDITING_EXIT_EDIT",e.EXIT_FIELD_EDIT="EDITING_EXIT_FIELD_EDIT",e.TOGGLE_EDIT="EDITING_TOGGLE_EDIT",e.TOGGLE_FIELD_EDIT="EDITING_TOGGLE_FIELD_EDIT",e))(Kt||{});const jt=(e={},r)=>{switch(r.type){case"EDITING_ENTER_EDIT":return{[r.payload.id]:!0};case"EDITING_ENTER_FIELD_EDIT":return{[r.payload.id]:[r.payload.field]};case"EDITING_ADD_EDIT":return{...e,[r.payload.id]:!0};case"EDITING_ADD_FIELD_EDIT":return{...e,[r.payload.id]:Array.isArray(e[r.payload.id])?[...e[r.payload.id],r.payload.field]:[r.payload.field]};case"EDITING_EXIT_EDIT":{const n=t.clone(e);return delete n[r.payload.id],n}case"EDITING_EXIT_FIELD_EDIT":return{...e,[r.payload.id]:Array.isArray(e[r.payload.id])?e[r.payload.id].filter((e=>e!==r.payload.field)):[]};case"EDITING_TOGGLE_EDIT":return Object.keys(e).includes(r.payload.id)&&e[r.payload.id]?jt(e,{type:"EDITING_EXIT_EDIT",payload:r.payload}):jt(e,{type:"EDITING_ENTER_EDIT",payload:r.payload});case"EDITING_TOGGLE_FIELD_EDIT":return Object.keys(e).includes(r.payload.id)&&Array.isArray(e[r.payload.id])?jt(e,{type:"EDITING_EXIT_FIELD_EDIT",payload:r.payload}):jt(e,{type:"EDITING_ENTER_FIELD_EDIT",payload:r.payload});default:return e}};var Bt=(e=>(e.DETAIL_EXPAND="DETAIL_EXPAND_DETAIL_EXPAND",e.COLLAPSE="DETAIL_EXPAND_COLLAPSE",e.TOGGLE="DETAIL_EXPAND_TOGGLE",e.SET="DETAIL_EXPAND_SET",e))(Bt||{});var Ht=(e=>(e.TOGGLE="GROUP-EXPAND_TOGGLE",e.EXPAND="GROUP-EXPAND_EXPAND",e.COLLAPSE="GROUP-EXPAND_COLLAPSE",e.RESET="GROUP-EXPAND_RESET",e))(Ht||{});const qt=(e=[],t=null)=>{const r=[];return null==e||e.forEach((e=>{var n;const o={value:e.value,field:e.field,parents:t?[t,...null!=(n=t.parents)?n:[]]:[]};void 0!==e.expanded&&(o.expanded=e.expanded),e.groups&&r.push(...qt(e.groups,o)),r.push(o)})),r},Wt=e=>{var t,r,n,o;return`${null!=(t=e.parents)&&t.length?(null==(o=null==(n=null==(r=e.parents)?void 0:r.slice())?void 0:n.reverse())?void 0:o.map((e=>Wt({field:e.field,value:e.value}))).join("/"))+"/":""}${e.field}:${e.value}`},Xt=e=>{var t;const r=new Map;r.set("root",{value:null,field:"",groups:new Set}),(e=>{e.forEach((e=>{var t,n,o,i;const l=Wt(e),a=null!=(t=r.get(l))?t:{value:e.value,field:e.field};void 0!==e.expanded&&(a.expanded=e.expanded),r.has(l)||r.set(l,a);let s=a;null!=(n=e.parents)&&n.length?e.parents.forEach(((t,n)=>{var o,i,l,a,d,c,p;const u=Wt({value:t.value,field:t.field,parents:null==(i=e.parents)?void 0:i.slice(n+1,null==(o=null==e?void 0:e.parents)?void 0:o.length)}),h=null!=(l=r.get(u))?l:{value:t.value,field:t.field};t.expanded&&(h.expanded=t.expanded),r.has(u)||r.set(u,h),null!=h&&h.groups||(h.groups=new Set),h.groups.add(s),s=h,n===(null!=(d=null==(a=e.parents)?void 0:a.length)?d:-1)-1&&(null==(p=null==(c=r.get("root"))?void 0:c.groups)||p.add(h))})):null==(i=null==(o=r.get("root"))?void 0:o.groups)||i.add(s)}))})(e);const n=e=>{e.groups&&(e.groups=Array.from(e.groups),e.groups.forEach(n))};return n(r.get("root")),(null==(t=r.get("root"))?void 0:t.groups)||[]},Ut=(e,t)=>e.find((e=>e.value===t.value&&e.field===t.field&&((e,t)=>{var r;return!(null==(r=t.parents)||!r.every(((t,r)=>{var n;return null==(n=e.parents)?void 0:n.find((e=>t.value===e.value&&t.field===e.field))})))})(e,t))),Yt=r.defineComponent({name:"kendoTextFilter",props:{filter:{type:Object,required:!0},ariaLabel:String,onFilterchange:Function},inject:{kendoLocalizationService:{default:null}},render(){const e=s.provideLocalizationService(this),{ariaLabel:t=e.toLanguageString(ze,_e[ze])}=this.$props;return r.createVNode(l.TextBox,{value:this.$props.filter.value||"",onInput:this.onChange,ariaLabel:t},null)},methods:{onChange(e){this.$emit("filterchange",{nextFilter:{...this.$props.filter,value:e.value}})}}}),Qt=r.defineComponent({name:"kendoNumericFilter",props:{filter:{type:Object,required:!0},onFilterchange:Function},inject:{kendoLocalizationService:{default:null}},render(){const e=this.$props.filter,t=s.provideLocalizationService(this).toLanguageString(Re,_e[Re]);return r.createVNode(l.NumericTextBox,{value:"number"==typeof e.value?e.value:null,onChange:this.onChange,ariaLabel:t},null)},methods:{onChange(e){this.$emit("filterchange",{nextFilter:{...this.$props.filter,value:e.value}})}}}),Zt=r.defineComponent({name:"KendoDateFilter",props:{filter:{type:Object,required:!0},onFilterchange:Function},render(){const e=this.$props.filter;return r.createVNode(a.DatePicker,{value:e.value||null,onChange:this.onChange},null)},methods:{onChange(e){this.$emit("filterchange",{nextFilter:{...this.$props.filter,value:e.value}})}}}),Jt=r.defineComponent({name:"KendoEnumFilter",props:{filter:{type:Object,required:!0},dataItems:Array,defaultItem:Object,ariaLabel:String,onFilterchange:Function},inject:{kendoLocalizationService:{default:null}},render(){const e=s.provideLocalizationService(this),{filter:t,dataItems:n=[],defaultItem:o,ariaLabel:l=e.toLanguageString(Pe,_e[Pe])}=this.$props,a=n.map((t=>({...t,text:e.toLanguageString(t.text,_e[t.text]||t.text)})));return r.createVNode(i.DropDownList,{value:a.find((e=>e.value===t.value))||null,onChange:this.onChange,defaultItem:o,dataItems:a,textField:"text",ariaLabel:l},null)},methods:{onChange(e){this.$emit("filterchange",{nextFilter:{...this.$props.filter,value:e.value.value}})}}}),er=r.defineComponent({name:"KendoBooleanFilter",props:{filter:{type:Object,required:!0},dataItems:{type:Array,default:function(){}},defaultItem:Object,onFilterchange:Function},data:()=>({currentData:[{text:j,value:!0},{text:B,value:!1}]}),render(){return r.createVNode(Jt,{filter:this.$props.filter,onFilterchange:this.handleFilterChange,dataItems:this.$props.dataItems||this.currentData,defaultItem:this.$props.defaultItem},null)},methods:{handleFilterChange(e){this.$emit("filterchange",e)}}}),tr=[{text:P,operator:"contains"},{text:R,operator:"doesnotcontain"},{text:F,operator:"eq"},{text:O,operator:"neq"},{text:w,operator:"startswith"},{text:z,operator:"endswith"},{text:D,operator:"isnull"},{text:T,operator:"isnotnull"},{text:A,operator:"isempty"},{text:V,operator:"isnotempty"}],rr=[{text:F,operator:"eq"},{text:O,operator:"neq"},{text:M,operator:"gte"},{text:G,operator:"gt"},{text:_,operator:"lte"},{text:K,operator:"lt"},{text:D,operator:"isnull"},{text:T,operator:"isnotnull"}],nr=[{text:F,operator:"eq"},{text:O,operator:"neq"},{text:H,operator:"gte"},{text:q,operator:"gt"},{text:W,operator:"lt"},{text:X,operator:"lte"},{text:D,operator:"isnull"},{text:T,operator:"isnotnull"}],or=[{text:F,operator:"eq"},{text:O,operator:"neq"}];const ir=e=>"contains"===e||"doesnotcontain"===e||"startswith"===e||"endswith"===e,lr=e=>"isnull"===e||"isnotnull"===e||"isempty"===e||"isnotempty"===e,ar=r.defineComponent({name:"KendoExpression",emits:{change:null,remove:null},props:{filter:{type:Object,required:!0},fields:{type:Array,required:!0}},inject:{kendoLocalizationService:{default:null}},render(){const{fields:e,filter:l}=this.$props,a=e.find((e=>e.name===l.field)),d=s.provideLocalizationService(this),c=(a&&a.operators||[]).map((e=>({...e,text:d.toLanguageString(e.text,_e[e.text]||e.text)})));let p=null;const u=function(e,n){switch(e){case"numeric":p=r.createVNode(Qt,{filter:l,onFilterchange:this.onInputChange},null);break;case"date":p=r.createVNode(Zt,{filter:l,onFilterchange:this.onInputChange},null);break;case"boolean":p=r.createVNode(er,{filter:l,onFilterchange:this.onInputChange},null);break;default:p=r.createVNode(Yt,{filter:l,onFilterchange:this.onInputChange},null)}return t.getTemplate.call(this,{h:r.h,template:n,defaultRendering:p,additionalProps:{filter:l},additionalListeners:{filterchange:this.onInputChange}})};return r.createVNode("div",{class:"k-filter-toolbar"},[r.createVNode(o.Toolbar,{overflow:"none",keyboardNavigation:!1,ariaLabel:l.ariaLabel?l.ariaLabel:void 0},{default:()=>[r.createVNode(o.ToolbarItem,{class:"k-filter-field"},{default:()=>[r.createVNode(i.DropDownList,{class:"k-filter-dropdown",dataItems:e,textField:"label",value:e.find((e=>e.name===l.field)),onChange:this.onFieldChange,ariaLabel:d.toLanguageString(Ve,_e[Ve])},null)]}),r.createVNode(o.ToolbarItem,{class:"k-filter-operator"},{default:()=>[r.createVNode(i.DropDownList,{dataItems:c,textField:"text",value:c.find((e=>e.operator===l.operator)),onChange:this.onOperatorChange,ariaLabel:d.toLanguageString(we,_e[we])},null)]}),r.createVNode(o.ToolbarItem,{class:"k-filter-value"},{default:()=>[a&&u.call(this,a.filter,a.filterRender)]}),r.createVNode(o.Button,{title:d.toLanguageString(J,_e[J]),icon:"x",svgIcon:n.xIcon,fillMode:"flat",type:"button",class:"k-toolbar-button",onClick:this.onFilterRemove},null)]})])},methods:{onFieldChange(e){const t=e.value.name,r=this.$props.fields.find((e=>e.name===t)),n=this.$props.filter,o=r&&!r.operators.some((e=>e.operator===n.operator))?r.operators[0].operator:n.operator,i={field:t,operator:o};lr(o)||(i.value=ir(o)?"":null),this.triggerOnFilterChange(n,i,e)},onOperatorChange(e){const t=e.value.operator,r=this.$props.filter;let n;if(lr(t)){let{value:e,...o}=r;n={...o,operator:t}}else n={...r,operator:t};this.triggerOnFilterChange(r,n,e)},onInputChange(e){const t=this.$props.filter;let r=e.nextFilter;if(lr(r.operator)){const e=this.$props.fields.find((e=>e.name===r.field));r={...r,operator:e&&e.operators[0].operator||r.operator}}this.triggerOnFilterChange(t,r,e)},triggerOnFilterChange(e,t,r){const n={prevFilter:e,nextFilter:t,event:r.event,target:this};this.$emit("change",n)},onFilterRemove(e){const t={filter:this.$props.filter,event:e.event,target:this};this.$emit("remove",t)}}});function sr(e){return"function"==typeof e||"[object Object]"===Object.prototype.toString.call(e)&&!r.isVNode(e)}const dr=r.defineComponent({name:"KendoFilterGroup",emits:{change:null,remove:null},props:{filter:{type:Object,required:!0},fields:{type:Array,required:!0},defaultGroupFilter:{type:Object,required:!0},ariaLabel:{type:String,default:void 0}},inject:{kendoLocalizationService:{default:null}},render(){let e,t;const{filter:i}=this.$props,l=s.provideLocalizationService(this);return r.createVNode("div",{class:"k-filter-toolbar"},[r.createVNode(o.Toolbar,{overflow:"none",keyboardNavigation:!1,"aria-label":this.$props.ariaLabel},{default:()=>[r.createVNode(o.ButtonGroup,{class:"k-toolbar-button-group"},{default:()=>[r.createVNode(o.Button,{togglable:!0,onClick:this.onLogicAnd,class:"k-toolbar-button",selected:"and"===i.logic,type:"button"},sr(e=l.toLanguageString(U,_e[U]))?e:{default:()=>[e]}),r.createVNode(o.Button,{togglable:!0,onClick:this.onLogicOr,class:"k-toolbar-button",selected:"or"===i.logic,type:"button"},sr(t=l.toLanguageString(Y,_e[Y]))?t:{default:()=>[t]})]}),r.createVNode(o.Button,{title:l.toLanguageString(Q,_e[Q]),icon:"filter-add-expression",svgIcon:n.filterAddExpressionIcon,type:"button",class:"k-toolbar-button",onClick:this.onAddExpression},null),r.createVNode(o.Button,{title:l.toLanguageString(Z,_e[Z]),icon:"filter-add-group",svgIcon:n.filterAddGroupIcon,type:"button",class:"k-toolbar-button",onClick:this.onAddGroup},null),r.createVNode(o.Button,{title:l.toLanguageString(J,_e[J]),icon:"x",svgIcon:n.xIcon,fillMode:"flat",type:"button",class:"k-toolbar-button",onClick:this.onGroupRemove},null)]})])},methods:{onGroupRemove(){this.$emit("remove",{filter:this.$props.filter})},onAddExpression(){const e=this.$props.filter,t=this.$props.fields[0],r={field:t.name,operator:t.operators[0].operator};r.value=ir(r.operator)?"":null,this.$emit("change",{nextFilter:{...e,filters:[...e.filters,r]},prevFilter:e})},onAddGroup(){const e=this.$props.filter;this.$emit("change",{nextFilter:{...e,filters:[...e.filters,{...this.$props.defaultGroupFilter}]},prevFilter:e})},onLogicAnd(){this.changeLogic("and")},onLogicOr(){this.changeLogic("or")},changeLogic(e){const t=this.$props.filter;t.logic!==e&&this.$emit("change",{nextFilter:{...t,logic:e},prevFilter:t})}}}),cr=r.defineComponent({name:"KendoFilterGroup",emits:{change:null,remove:null},props:{filter:{type:Object,required:!0},fields:{type:Array,required:!0},defaultGroupFilter:{type:Object,required:!0}},inject:{kendoLocalizationService:{default:null}},render(){const e=s.provideLocalizationService(this),{fields:t,filter:n,filterRender:o}=this.$props;return n.filters.length>0?r.createVNode("ul",{class:"k-filter-lines",role:"group"},[n.filters.map((function(n,o){return r.createVNode("li",{key:o,class:"k-filter-item",role:"treeitem"},[d.isCompositeFilterDescriptor(n)?[r.createVNode(dr,{filter:n,fields:t,ariaLabel:e.toLanguageString(L,_e[L]),onChange:this.onChange,onRemove:this.onRemove,defaultGroupFilter:this.$props.defaultGroupFilter},null),r.createVNode(cr,{filter:n,fields:t,onChange:this.onChange,onRemove:this.onRemove,defaultGroupFilter:this.$props.defaultGroupFilter},null)]:r.createVNode(ar,{filter:n,fields:t,onChange:this.onChange,onRemove:this.onRemove},null)])}),this)]):null},methods:{replaceFilter(e,t){const r=this.$props.filter,n=r.filters.map((r=>r===e?t:r));return{...r,filters:n}},onChange(e){const t={nextFilter:this.replaceFilter(e.prevFilter,e.nextFilter),prevFilter:this.$props.filter,event:e.event,target:this};this.$emit("change",t)},onRemove(e){const t=this.$props.filter,r=t.filters.filter((t=>t!==e.filter)),n={nextFilter:{...t,filters:r},prevFilter:t,event:e.event,target:this};this.$emit("change",n)}}}),pr={name:"@progress/kendo-vue-data-tools",productName:"Kendo UI for Vue",productCode:"KENDOUIVUE",productCodes:["KENDOUIVUE"],publishDate:1632380454,version:"8.0.2",licensingDocsUrl:"https://www.telerik.com/kendo-vue-ui/my-license/?utm_medium=product&utm_source=kendovue&utm_campaign=kendo-ui-vue-purchase-license-keys-warning"},ur=r.defineComponent({name:"KendoFilter",emits:{change:null,changemodel:null,"update:modelValue":null},model:{event:"changemodel"},props:{fields:{type:Array,required:!0},modelValue:{type:Object,default:void 0},value:Object,defaultGroupFilter:Object,upperToolbarAriaLabel:{type:String,default:void 0}},inject:{kendoLocalizationService:{default:null}},created(){t.validatePackage(pr)},computed:{computedValue(){let e;return void 0!==this.$props.value?e=this.$props.value:void 0!==this.$props.modelValue&&(e=this.$props.modelValue),e}},render(){const e=s.provideLocalizationService(this),n=this.$props.fields.map((function(e){return{...e,filterRender:t.templateRendering.call(this,e.filterRender,t.getListeners.call(this))}}),this);return r.createVNode("div",{class:"k-filter"},[r.createVNode("ul",{class:"k-filter-container",role:"tree","aria-label":e.toLanguageString(De,_e[De])},[r.createVNode("li",{class:"k-filter-group-main",role:"treeitem"},[r.createVNode(dr,{"aria-label":this.$props.upperToolbarAriaLabel,filter:this.computedValue,fields:n,onChange:this.onFilterChange,onRemove:this.onGroupRemove,defaultGroupFilter:this.$props.defaultGroupFilter||{logic:"and",filters:[]}},null)