@aplus-frontend/ui
Version:
159 lines (158 loc) • 4.83 kB
JavaScript
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
};