import { defineComponent, toRefs, computed, mergeProps, unref, useSSRContext } from 'vue'; import { ssrRenderAttrs, ssrRenderAttr, ssrRenderList, ssrInterpolate, ssrRenderClass, ssrRenderSlot } from 'vue/server-renderer'; import _ from 'lodash'; const _sfc_main = /* @__PURE__ */ defineComponent({ __name: "c-table", __ssrInlineRender: true, props: { data: { default: () => [] }, headers: { default: void 0 }, hideHeaders: { type: Boolean, default: false }, description: { default: "Data table" } }, setup(__props) { const props = __props; const { data, headers: rawHeaders, hideHeaders } = toRefs(props); const headers = computed(() => { if (rawHeaders.value) { if (Array.isArray(rawHeaders.value)) { return rawHeaders.value.map((value) => { if (typeof value === "string") { return { key: value, label: value }; } const { key, label } = value; return { key, label: label ?? key }; }); } return _.map(rawHeaders.value, (value, key) => ({ key, label: value })); } return _.chain(data.value).map((row) => Object.keys(row)).flatten().uniq().map((key) => ({ key, label: key })).value(); }); return (_ctx, _push, _parent, _attrs) => { _push(`
${ssrInterpolate(header.label)} | `); }); _push(`
---|
`); ssrRenderSlot(_ctx.$slots, header.key, { row, headers: unref(headers), value: row[header.key] }, () => { _push(`${ssrInterpolate(row[header.key])}`); }, _push, _parent); _push(` | `); }); _push(`