@progress/kendo-react-grid
Version:
React Data Grid (Table) provides 100+ ready-to-use data grid features. KendoReact Grid package
88 lines (87 loc) • 2.66 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 n from "react";
import { DropDownList as m } from "@progress/kendo-react-dropdowns";
import { TextBox as h, NumericTextBox as s } from "@progress/kendo-react-inputs";
import { DatePicker as f } from "@progress/kendo-react-dateinputs";
import { cellOperatorChange as x, cellInputChange as E, cellBoolDropdownChange as b } from "../filterCommon.mjs";
import { GridContext as p } from "../utils/GridContext.mjs";
const w = (e) => {
const o = n.useContext(p), d = () => {
if (e.filterType === "boolean")
return;
const t = e.operators.find((r) => r.operator === e.operator) || null;
return /* @__PURE__ */ n.createElement(
m,
{
adaptive: o.adaptive,
size: o.mobileMode ? "large" : "medium",
value: t,
onChange: c,
data: e.operators,
textField: "text"
}
);
}, i = (t) => {
E(t.value, t.syntheticEvent, e);
}, c = (t) => {
x(t, e.value, e.onChange);
}, u = (t) => {
b(t, e.onChange);
}, g = (t, r, l) => {
switch (t) {
case "numeric":
return /* @__PURE__ */ n.createElement(
s,
{
value: r,
size: o.mobileMode ? "large" : "medium",
onChange: i,
rangeOnEnter: !1
}
);
case "date":
return /* @__PURE__ */ n.createElement(
f,
{
value: r,
size: o.mobileMode ? "large" : "medium",
onChange: i
}
);
case "boolean": {
const C = (a) => a == null;
return /* @__PURE__ */ n.createElement(
m,
{
adaptive: o.adaptive,
onChange: u,
size: o.mobileMode ? "large" : "medium",
value: l.find((a) => a.operator === (C(r) ? "" : r)),
data: l,
textField: "text"
}
);
}
default:
return /* @__PURE__ */ n.createElement(
h,
{
size: o.mobileMode ? "large" : "medium",
value: r || "",
onChange: i
}
);
}
};
return /* @__PURE__ */ n.createElement(n.Fragment, null, d(), g(e.filterType, e.value, e.booleanValues));
};
export {
w as GridColumnMenuFilterCell
};