import React from "react";
import { AbstractSheet, BorderStyle, Style } from "../abstract-sheet/abstract-sheet.js";
export function toReact({ abstractSheet }: { readonly abstractSheet: AbstractSheet }): React.JSX.Element {
const styles = React.useMemo(
() => Object.fromEntries(abstractSheet.styles?.map((s) => [s.name, s]) ?? []),
[abstractSheet.styles]
);
return (
{abstractSheet.sheets.map((s, si) => {
const maxCols = s.cells.reduce((a, c) => Math.max(a, c.length), 0);
const colArray = Array.from({ length: maxCols }, (_, i) => i);
return (
{
const info = s.rowInfo?.[ri];
return info?.hidden
? ""
: info?.heightPixels !== undefined
? `${info.heightPixels}px`
: "minmax(18px, max-content)";
})
.join(" ")}`,
gridTemplateColumns: `${(s.direction === "col" ? s.cells : colArray)
.map((_, ci) => {
const co = s.colInfo?.[ci];
return co?.hidden
? ""
: co?.widthPixels !== undefined
? `${co.widthPixels}px`
: "minmax(64px, max-content)";
})
.join(" ")}`,
}}
>
{s.cells.map((cells, cellsIdx) => (
{Array.from({ length: maxCols }, (_, i) => i).map((ci) => {
const c = cells[ci];
let s: Partial