UNPKG

@progress/kendo-vue-data-tools

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