import { Cell, CellData, Header, RowData, TableFeatures } from "@tanstack/table-core"; import { TemplateResult, noChange, nothing } from "lit"; import { DirectiveResult } from "lit/directive.js"; //#region src/flexRender.d.ts type LitRenderable = TemplateResult | DirectiveResult | Node | string | number | bigint | boolean | null | undefined | typeof nothing | typeof noChange | Iterable; /** * Renders a Lit table template value with the provided context props. * * Use this lower-level helper for custom header, cell, or footer renderers when * you already have the render function and context. `FlexRender` is the * convenience wrapper for table cell/header/footer objects. * * @example * ```ts * flexRender(cell.column.columnDef.cell, cell.getContext()) * ``` */ declare function flexRender(Comp: ((props: TProps) => LitRenderable) | LitRenderable, props: TProps): LitRenderable; /** * Simplified component wrapper of `flexRender`. Use this utility function to render headers, cells, or footers with custom markup. * Only one prop (`cell`, `header`, or `footer`) may be passed. * @example * ```ts * ${FlexRender({ cell })} * ${FlexRender({ header })} * ${FlexRender({ footer: header })} * ``` * * This replaces calling `flexRender` directly like this: * ```ts * flexRender(cell.column.columnDef.cell, cell.getContext()) * flexRender(header.column.columnDef.header, header.getContext()) * flexRender(footer.column.columnDef.footer, footer.getContext()) * ``` */ type FlexRenderProps = { cell: Cell; header?: never; footer?: never; } | { header: Header; cell?: never; footer?: never; } | { footer: Header; cell?: never; header?: never; }; /** * Simplified component wrapper of `flexRender`. Use this utility function to render headers, cells, or footers with custom markup. * Only one prop (`cell`, `header`, or `footer`) may be passed. * @example * ```ts * ${FlexRender({ cell })} * ${FlexRender({ header })} * ${FlexRender({ footer: header })} * ``` * * This replaces calling `flexRender` directly like this: * ```ts * flexRender(cell.column.columnDef.cell, cell.getContext()) * flexRender(header.column.columnDef.header, header.getContext()) * flexRender(footer.column.columnDef.footer, footer.getContext()) * ``` */ declare function FlexRender(props: FlexRenderProps): LitRenderable; //#endregion export { FlexRender, FlexRenderProps, LitRenderable, flexRender };