UNPKG

synapse-react-client

Version:

[![npm version](https://badge.fury.io/js/synapse-react-client.svg)](https://badge.fury.io/js/synapse-react-client) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettie

125 lines (124 loc) 3.19 kB
import { jsx as o } from "react/jsx-runtime"; import { dateTimeColumn as m } from "../columns/DateTimeColumn.js"; import { createTextColumn as s, keyColumn as a, floatColumn as d } from "@sage-bionetworks/react-datasheet-grid"; import { autocompleteColumn as l } from "../columns/AutocompleteColumn.js"; import { autocompleteMultipleEnumColumn as p } from "../columns/AutocompleteMultipleEnumColumn.js"; import { calculateDefaultColumnWidth as i } from "./calculateColumnWidth.js"; import { ColumnHeaderWithTooltip as c } from "../components/ColumnHeaderWithTooltip.js"; function h(e) { return e ? "header-cell-required" : "header-cell"; } function y(e, t) { return ({ rowData: r }) => ({ ...r, [e]: t ? null : void 0 }); } function C(e) { return (t) => { const r = t.trim(); return r === "" ? e ? null : void 0 : r; }; } function u(e, t) { const r = { showPinIcon: e.showPinIcon, hasDescription: !!e.description }, n = e.customWidth ?? i( e.columnName, void 0, // propertyInfo is not available here, passed from higher level r ); return { ...a(e.columnName, t), title: /* @__PURE__ */ o( c, { name: e.columnName, description: e.description, showPinIcon: e.showPinIcon, isPinned: e.isPinned, onTogglePin: e.onTogglePin } ), headerClassName: h(e.isRequired), minWidth: n, basis: n, grow: 0, shrink: 0, disabled: e.disabled, deleteValue: y(e.columnName, e.isRequired), stickyLeft: e.isPinned }; } const T = { multipleEnum: (e) => u( e, p({ choices: e.enumeratedValues ?? [], colType: e.typeInfo?.type || null, limitTags: 3, clearValue: e.isRequired ? null : void 0 }) ), boolean: (e) => u( e, l({ choices: [!0, !1], colType: "boolean", clearValue: e.isRequired ? null : void 0 }) ), number: (e) => u(e, d), enumerated: (e) => u( e, l({ choices: e.enumeratedValues ?? [], colType: e.typeInfo?.type || null, clearValue: e.isRequired ? null : void 0 }) ), "date-time": (e) => { const t = m({ colType: e.typeInfo?.type || null }), r = { showPinIcon: e.showPinIcon, hasDescription: !!e.description }, n = e.customWidth ?? i( e.columnName, { type: e.typeInfo ?? void 0, isRequired: e.isRequired }, r ); return { ...u(e, t), minWidth: n, basis: n }; }, text: (e) => { const t = s({ continuousUpdates: !1, deletedValue: void 0, parseUserInput: C(e.isRequired) }); return { ...u(e, t), cellClassName: "MuiInputBase-input" }; } }; function I(e, t) { return e ? e.format === "date-time" ? "date-time" : e.isArray ? "multipleEnum" : e.type === "boolean" ? "boolean" : e.type === "number" || e.type === "integer" ? "number" : t && t.length > 0 ? "enumerated" : "text" : t && t.length > 0 ? "enumerated" : "text"; } function V(e) { const t = I(e.typeInfo, e.enumeratedValues); return T[t](e); } export { V as createColumn }; //# sourceMappingURL=columnFactory.js.map