@progress/kendo-vue-data-tools
Version:
9 lines (8 loc) • 2.54 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"),a=require("./GroupFilters.js"),n=require("./GroupToolbar.js"),l=require("@progress/kendo-vue-common"),u=require("../package-metadata.js"),s=require("@progress/kendo-vue-intl"),o=require("../messages/main.js"),d=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(){l.validatePackage(u.packageMetadata)},computed:{computedValue(){let e;return this.$props.value!==void 0?e=this.$props.value:this.$props.modelValue!==void 0&&(e=this.$props.modelValue),e}},render(){const e=s.provideLocalizationService(this),t=this.$props.fields.map(function(i){return{...i,filterRender:l.templateRendering.call(this,i.filterRender,l.getListeners.call(this))}},this);return r.createVNode("div",{class:"k-filter"},[r.createVNode("ul",{class:"k-filter-container",role:"tree","aria-label":e.toLanguageString(o.filterAriaLabel,o.messages[o.filterAriaLabel])},[r.createVNode("li",{class:"k-filter-group-main",role:"treeitem"},[r.createVNode(n.GroupToolbar,{"aria-label":this.$props.upperToolbarAriaLabel,filter:this.computedValue,fields:t,onChange:this.onFilterChange,onRemove:this.onGroupRemove,defaultGroupFilter:this.$props.defaultGroupFilter||{logic:"and",filters:[]}},null),r.createVNode(a.GroupFilter,{filter:this.computedValue,fields:t,onChange:this.onFilterChange,onRemove:this.onGroupRemove,defaultGroupFilter:this.$props.defaultGroupFilter||{logic:"and",filters:[]}},null)])])])},methods:{onFilterChange(e){const t={filter:e.nextFilter,event:e.event,target:this};this.$emit("changemodel",e.nextFilter),this.$emit("update:modelValue",e.nextFilter),this.$emit("change",t)},onGroupRemove(e){const t={...this.computedValue,filters:[]},i={filter:t,event:e.event,target:this};this.$emit("changemodel",t),this.$emit("update:modelValue",t),this.$emit("change",i)}}});exports.Filter=d;