UNPKG

@extclp/vexip-ui

Version:

A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good

68 lines (67 loc) 2.73 kB
import { defineComponent as k, inject as E, computed as c, openBlock as o, createElementBlock as s, normalizeClass as v, unref as B, normalizeStyle as L, Fragment as x, renderList as g, createBlock as C, withCtx as R, createCommentVNode as $ } from "vue"; import "./table-head-cell.vue.mjs"; import "./table-row.vue.mjs"; import { useNameHelper as b } from "@vexip-ui/config"; import { getLast as d } from "@vexip-ui/utils"; import { TABLE_STORE as S, TABLE_HEAD_PREFIX as T } from "./symbol.mjs"; import W from "./table-row.vue2.mjs"; import A from "./table-head-cell.vue2.mjs"; const V = /* @__PURE__ */ k({ name: "TableHead", __name: "table-head", props: { fixed: { type: String, default: null } }, setup(m) { const r = m, { state: e, getters: u, mutations: _ } = E(S), w = b("table"), y = c(() => { const l = e.leftFixedColumns.length, n = e.allColumns[0].length - e.rightFixedColumns.length; return r.fixed === "left" ? e.allColumns.map((t) => t.slice(0, l)) : r.fixed === "right" ? e.allColumns.map((t) => t.slice(n, e.allColumns[0].length)) : e.allColumns.map((t) => t.slice(l, n)); }), h = c(() => r.fixed === "left" ? e.leftFixedColumns : r.fixed === "right" ? e.rightFixedColumns : e.normalColumns), F = c(() => { var i, a; const l = r.fixed === "left" ? d(u.leftFixedWidths) : r.fixed === "right" ? d(u.rightFixedWidths) : d(u.normalWidths), n = ((i = h.value[0]) == null ? void 0 : i.fixed) === "left" && e.sidePadding[0] || 0, t = ((a = d(h.value)) == null ? void 0 : a.fixed) === "right" && e.sidePadding[1] || 0; return { minWidth: l && `${l + n + t}px` }; }); function p(l) { const n = `${T}${l}`; return e.rowMap.get(n) || _.createMinRowState(n); } return (l, n) => (o(), s("div", { class: v(B(w).be("head")), role: "rowgroup", style: L(F.value) }, [ (o(!0), s(x, null, g(y.value, (t, i) => (o(), C(W, { key: i, index: i, "is-head": "", fixed: m.fixed, row: p(i), "aria-rowindex": i }, { default: R(() => [ (o(!0), s(x, null, g(t, (a, f) => (o(), s(x, { key: f }, [ a ? (o(), C(A, { key: 0, column: a, index: f, row: p(i), "row-index": i, fixed: m.fixed, "aria-colindex": f }, null, 8, ["column", "index", "row", "row-index", "fixed", "aria-colindex"])) : $("", !0) ], 64))), 128)) ]), _: 2 }, 1032, ["index", "fixed", "row", "aria-rowindex"]))), 128)) ], 6)); } }); export { V as default }; //# sourceMappingURL=table-head.vue2.mjs.map