UNPKG

@progress/kendo-react-data-tools

Version:

Includes React Pager & React Filter component, an intuitive interface to create complex filter descriptions. KendoReact Data Tools package

96 lines (95 loc) 3.35 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 client"; import * as e from "react"; import { useLocalization as C } from "@progress/kendo-react-intl"; import { DropDownList as x } from "@progress/kendo-react-dropdowns"; import { Checkbox as h, Input as E, NumericTextBox as b } from "@progress/kendo-react-inputs"; import { DatePicker as k } from "@progress/kendo-react-dateinputs"; import { messages as F } from "../messages/index.mjs"; import { ColumnMenuOperators as s } from "./ColumnMenuOperators.mjs"; const p = (n) => { const { filter: t, onFilterChange: a, operators: o, initialFilter: r } = n, c = e.useCallback( (l) => { const u = t, i = l.target.value.operator, m = u ? { ...u, operator: i } : { value: r.value, operator: i }; a.call(void 0, l.syntheticEvent, m, u); }, [t, a, r] ), g = e.useCallback( (l) => { const u = l.target.value, i = t, m = i ? { ...i, value: u } : { value: u, operator: o[0].operator }; a.call(void 0, l, m, i); }, [t, a, o] ), f = C(), v = o.map((l) => ({ ...l, text: f.toLanguageString(l.text, F[l.text]) })); return /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement( x, { value: v.find((l) => l.operator === t.operator) || null, onChange: c, data: v, textField: "text" } ), /* @__PURE__ */ e.createElement(n.input, { value: t.value, onChange: g })); }, y = (n) => { const { filter: t, onFilterChange: a } = n, o = e.useCallback( (c) => a.call(void 0, c.syntheticEvent, { ...t, value: c.value }, t), [t, a] ), r = s.boolean[0].text; return /* @__PURE__ */ e.createElement( h, { onChange: o, checked: t.value, label: C().toLanguageString(r, F[r]), labelPlacement: "after" } ); }, z = (n) => { const t = e.useCallback((r) => /* @__PURE__ */ e.createElement(E, { ...r, value: r.value || "" }), []), a = e.useRef(s.text), o = e.useRef({ operator: "", value: "" }); return /* @__PURE__ */ e.createElement( p, { initialFilter: o.current, input: t, operators: n.operators || a.current, ...n } ); }, B = (n) => { const t = e.useCallback((r) => /* @__PURE__ */ e.createElement(b, { ...r, value: r.value || null }), []), a = e.useRef(s.numeric), o = e.useRef({ operator: "", value: null }); return /* @__PURE__ */ e.createElement( p, { initialFilter: o.current, input: t, operators: n.operators || a.current, ...n } ); }, N = (n) => { const t = e.useCallback((r) => /* @__PURE__ */ e.createElement(k, { ...r, value: r.value || null }), []), a = e.useRef(s.date), o = e.useRef({ operator: "", value: null }); return /* @__PURE__ */ e.createElement( p, { initialFilter: o.current, input: t, operators: n.operators || a.current, ...n } ); }; export { y as ColumnMenuBooleanFilter, N as ColumnMenuDateFilter, B as ColumnMenuNumericFilter, z as ColumnMenuTextFilter };