UNPKG

@progress/kendo-vue-data-tools

Version:
117 lines (116 loc) 3.23 kB
/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2025 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ import { defineComponent as o, createVNode as i } from "vue"; import { GroupFilter as a } from "./GroupFilters.mjs"; import { GroupToolbar as n } from "./GroupToolbar.mjs"; import { templateRendering as s, getListeners as u, validatePackage as p } from "@progress/kendo-vue-common"; import { packageMetadata as d } from "../package-metadata.mjs"; import { provideLocalizationService as m } from "@progress/kendo-vue-intl"; import { filterAriaLabel as r, messages as c } from "../messages/main.mjs"; const V = /* @__PURE__ */ o({ 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() { p(d); }, 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 = m(this), t = this.$props.fields.map(function(l) { return { ...l, filterRender: s.call(this, l.filterRender, u.call(this)) }; }, this); return i("div", { class: "k-filter" }, [i("ul", { class: "k-filter-container", role: "tree", "aria-label": e.toLanguageString(r, c[r]) }, [i("li", { class: "k-filter-group-main", role: "treeitem" }, [i(n, { "aria-label": this.$props.upperToolbarAriaLabel, filter: this.computedValue, fields: t, onChange: this.onFilterChange, onRemove: this.onGroupRemove, defaultGroupFilter: this.$props.defaultGroupFilter || { logic: "and", filters: [] } }, null), i(a, { 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: [] }, l = { filter: t, event: e.event, target: this }; this.$emit("changemodel", t), this.$emit("update:modelValue", t), this.$emit("change", l); } } }); export { V as Filter };