UNPKG

@aplus-frontend/ui

Version:

159 lines (158 loc) 4.83 kB
import { isNumber as u, isFunction as c } from "lodash-unified"; import { ref as S, unref as v, computed as y } from "vue"; import { dataIndexToField as D } from "../../ap-grid/utils/col.mjs"; import { getTableRenderProps as m, objectToString as P } from "../../ap-table/utils.mjs"; import "../../config-provider/index.mjs"; import "../../utils/index.mjs"; import "../components/body-cell/index.vue.mjs"; import "../components/header-cell/index.vue.mjs"; import "../components/tooltip/index.vue.mjs"; import { rendererMap as x } from "../renderer/index.mjs"; import { useGlobalConfig as I } from "../../config-provider/hooks/use-global-config.mjs"; import { useNamespace as _ } from "../../config-provider/hooks/use-namespace.mjs"; import G from "../components/body-cell/index.vue2.mjs"; import W from "../components/tooltip/index.vue2.mjs"; import { isDef as z } from "../../utils/is.mjs"; import h from "../components/header-cell/index.vue2.mjs"; function F(t) { return u(t) && t > 1; } function M(t, i) { if (i.bodyCellTooltip) return c(i.bodyCellTooltip) ? i.bodyCellTooltip(t.value, t.data) : i.bodyCellTooltip; if (i.renderText) return i.renderText({ value: t.value, record: t.data, column: i, text: t.value }); const d = i.valueType || "text", p = x[d]; if (p) { const f = m( { ...i, valueType: d }, { value: t.value, text: t.value, record: t.data, column: t.column, rowIndex: t.node?.rowIndex, pinned: t.node?.rowPinned } ); return p(f); } return P(t.value); } const Y = (t, i, d) => { const p = I("valueTypeMap"), C = S(), { em: f } = _("ag-grid"), b = (r) => { const a = { cellRenderer: G, cellRendererParams: { column: r, extraValueType: v(p), rowKey: i.rowKey } }; if (r.customRender) return a; if (r.renderText) return { valueFormatter: (o) => r.renderText({ value: o.value, record: o.data, column: r, text: o.value }) }; const l = r.valueType || "text", e = x[l]; return e ? { valueFormatter: (o) => { const s = m( { ...r, valueType: l }, { value: o.value, text: o.value, record: o.data, column: o.column, rowIndex: o.node?.rowIndex, pinned: o.node?.rowPinned } ); return e(s); } } : a; }, w = (r) => { const a = r.valueType || "text", l = x[a], e = {}, o = r.bodyCellTooltip || !r.customRender && l && (r.ellipsis === !0 || r.ellipsis === "tooltip" || u(r.ellipsis)), s = u(r.ellipsis) && r.ellipsis > 1, n = u(r.ellipsis) ? r.ellipsis : 1; return e.tooltipValueGetter = o ? (T) => M(T, r) : void 0, e.wrapText = !r.ellipsis || s, e.cellStyle = { "--ag-grid-line-clamp": n }, e.tooltipComponent = W, e.tooltipComponentParams = { lineClamp: n, gridWrapperRef: C }, e; }, g = y(() => { const r = v(t); function a(l) { return l.map((e) => { const o = { field: D(e.dataIndex), colId: z(e.key) ? String(e.key) : void 0, sortable: !!e.sorter, comparator: e.sorter === !0 ? () => 0 : e.sorter, headerComponentParams: { column: e }, resizable: e.resizable, width: e.width, minWidth: e.minWidth, maxWidth: e.maxWidth, flex: e.width ? void 0 : 1, // 如果没有设置确切的宽度,则设置为可自由伸缩列 pinned: e.fixed || null, // undefined to null colSpan: e.colSpan, spanRows: e.spanRows, cellClass: d((s) => { const n = e.cellClass || "", T = c(n) ? n(s.data, s.node) : n; return [ `${f("cell", e.align || "left")}`, F(e.ellipsis) ? f("cell", "multiline") : null, T ].flat().filter(Boolean); }), cellStyle: e.cellStyle, headerStyle: e.headerStyle, headerClass: e.headerClass, autoHeight: !0, // 设置自动计算高度以自适应多行换行的场景 ...w(e), ...b(e) }; return e.children?.length ? { ...o, headerGroupComponent: h, headerGroupComponentParams: { column: e }, children: a(e.children) } : o; }); } return a(r); }), R = y( () => ({ headerComponent: h, resizable: i.columnResizable, suppressMovable: !0, cellDataType: !1 }) ); return { columnDefs: g, defaultColDef: R, gridWrapperRef: C }; }; export { Y as useColumnsDef };