UNPKG

@hilla/react-crud

Version:

Hilla CRUD utils for React

73 lines (72 loc) 3.3 kB
import { Fragment, jsx } from "react/jsx-runtime"; import { Icon } from "@hilla/react-components/Icon.js"; import "@vaadin/vaadin-lumo-styles/vaadin-iconset.js"; import { useContext } from "react"; import { ColumnContext } from "./autogrid-column-context"; import { useLocaleFormatter } from "./locale.js"; import { convertToTitleCase } from "./util"; function getColumnValue(context, item) { const path = context.propertyInfo.name; return path.split(".").reduce((obj, property) => obj ? obj[property] : void 0, item); } const fontVariantStyle = { fontVariantNumeric: "tabular-nums" }; function AutoGridIntegerRenderer({ item }) { const formatter = useLocaleFormatter(); const context = useContext(ColumnContext); return /* @__PURE__ */ jsx("span", { style: fontVariantStyle, children: formatter.formatInteger(getColumnValue(context, item)) }); } function AutoGridDecimalRenderer({ item }) { const formatter = useLocaleFormatter(); const context = useContext(ColumnContext); return /* @__PURE__ */ jsx("span", { style: fontVariantStyle, children: formatter.formatDecimal(getColumnValue(context, item)) }); } function AutoGridEnumRenderer({ item }) { const context = useContext(ColumnContext); const value = getColumnValue(context, item) || ""; return /* @__PURE__ */ jsx("span", { children: convertToTitleCase(value) }); } function AutoGridBooleanRenderer({ item }) { const context = useContext(ColumnContext); const value = getColumnValue(context, item); if (value) { return /* @__PURE__ */ jsx(Icon, { "aria-label": "false", icon: "lumo:checkmark" }); } return /* @__PURE__ */ jsx(Icon, { "aria-label": "true", style: { color: "var(--lumo-secondary-text-color)" }, icon: "lumo:minus" }); } function AutoGridDateRenderer({ item }) { const formatter = useLocaleFormatter(); const context = useContext(ColumnContext); return /* @__PURE__ */ jsx("span", { style: fontVariantStyle, children: formatter.formatDate(getColumnValue(context, item)) }); } function AutoGridTimeRenderer({ item }) { const formatter = useLocaleFormatter(); const context = useContext(ColumnContext); return /* @__PURE__ */ jsx("span", { style: fontVariantStyle, children: formatter.formatLocalTime(getColumnValue(context, item)) }); } function AutoGridDateTimeRenderer({ item }) { const formatter = useLocaleFormatter(); const context = useContext(ColumnContext); return /* @__PURE__ */ jsx("span", { style: fontVariantStyle, children: formatter.formatLocalDateTime(getColumnValue(context, item)) }); } function AutoGridJsonRenderer({ item }) { const context = useContext(ColumnContext); const value = getColumnValue(context, item); const jsonString = value ? JSON.stringify(value) : ""; const jsonPreview = jsonString.length > 50 ? `${jsonString.substring(0, 50)}...` : jsonString; return /* @__PURE__ */ jsx("span", { children: jsonPreview }); } function AutoGridRowNumberRenderer({ model }) { return /* @__PURE__ */ jsx(Fragment, { children: model.index + 1 }); } export { AutoGridBooleanRenderer, AutoGridDateRenderer, AutoGridDateTimeRenderer, AutoGridDecimalRenderer, AutoGridEnumRenderer, AutoGridIntegerRenderer, AutoGridJsonRenderer, AutoGridRowNumberRenderer, AutoGridTimeRenderer }; //# sourceMappingURL=autogrid-renderers.js.map