@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
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 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
};