@progress/kendo-vue-grid
Version:
9 lines (8 loc) • 4.04 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
*-------------------------------------------------------------------------------------------
*/
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("vue"),$=require("@progress/kendo-vue-buttons"),n=require("../messages/main.js"),u=require("@progress/kendo-vue-dropdowns"),d=require("@progress/kendo-vue-inputs"),S=require("@progress/kendo-vue-dateinputs"),h=require("@progress/kendo-svg-icons"),m=require("@progress/kendo-vue-intl"),p=require("../filterCommon.js"),c=require("@progress/kendo-vue-common"),k=r.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 o=p.cellInputChange(e,t,this.$props);this.triggerChange(o)},operatorChange(e,t){const o=p.cellOperatorChange(e.value.operator,t,this.$props.value);this.triggerChange(o)},boolDropdownChange(e,t){const o=p.cellBoolDropdownChange(e.value.operator,t);this.triggerChange(o)},clear(e){e.preventDefault(),this.triggerChange({value:"",operator:"",event:e})},triggerChange(e){e.field=this.$props.field,this.$emit("change",e)}},setup(){const e=r.inject("kendoIntlService",{}),t=r.inject("kendoLocalizationService",{});return{kendoIntlService:e,kendoLocalizationService:t}},render(){const e=m.provideLocalizationService(this),{size:t}=this.$props,o=this.$props.operators.find(l=>l.operator===this.$props.operator)||null,g=function(){if(this.$props.filterType!=="boolean")return r.createVNode(u.DropDownList,{onChange:this.operatorChange,value:o,size:t,class:"k-dropdown-operator",icon:"filter",svgIcon:h.filterIcon,iconClassName:"filter k-button-icon","data-items":this.$props.operators,textField:"text",title:e.toLanguageString(n.filterChooseOperator,n.messages[n.filterChooseOperator]),popupSettings:{width:"",anchor:""},ariaLabel:this.ariaLabel},null)},f=function(l,a){let s;switch(l){case"numeric":return r.createVNode(d.NumericTextBox,{size:t,value:a,onChange:i=>{this.inputChange(i.value,i.event)},title:this.$props.title,ariaLabel:this.ariaLabel},null);case"date":return r.createVNode(S.DatePicker,{size:t,value:a,onChange:i=>{this.inputChange(i.value,i)},title:this.$props.title,ariaLabel:this.ariaLabel},null);case"boolean":return s=this.$props.booleanValues,r.createVNode(u.DropDownList,{onChange:this.boolDropdownChange,size:t,value:s.find(i=>i.operator===(a!==null?a:"")),"data-items":s,textField:"text",title:this.$props.title,ariaLabel:this.ariaLabel},null);default:return r.createVNode(d.TextBox,{value:a||"",size:t,onInput:i=>{this.inputChange(i.target.value,i)},title:this.$props.title,"aria-label":this.ariaLabel},null)}},C=r.createVNode("div",{class:"k-filtercell",style:this.$attrs.style},[r.createVNode("div",{class:"k-filtercell-wrapper"},[f.call(this,this.$props.filterType,this.$props.value),r.createVNode("div",{class:"k-filtercell-operator"},[g.call(this),r.createVNode($.Button,{type:"button",size:t,icon:"filter-clear",svgIcon:h.filterClearIcon,class:{"k-disabled":!(!(this.$props.value===null||this.$props.value==="")||this.$props.operator)},title:e.toLanguageString(n.filterClearButton,n.messages[n.filterClearButton]),onClick:this.clear},null)])])]),v=this.$props.grid?c.getListeners.call(this.$props.grid):null,b=c.templateRendering.call(this.$props.grid,this.$props.render,v);return c.getTemplate.call(this,{h:r.h,template:b,defaultRendering:C,additionalProps:this.$props,additionalListeners:{change:this.triggerChange}})}});exports.GridFilterCell=k;