import { VcfRecord } from "@molgenis/vip-report-vcf"; import { Item } from "@molgenis/vip-report-api"; import { Component, For, Match, Show, Switch } from "solid-js"; import { CellValue, ConfigCellGroup, ConfigCellItem } from "../types/configCells"; import { ConfigCells } from "../types/config"; import { Abbr } from "./Abbr"; import { Field } from "./field/Field"; import { Table } from "./Table.tsx"; export const RecordsTable: Component<{ fieldConfigs: ConfigCells; records: Item[]; verticalHeaders?: boolean; showParentHeader?: boolean; }> = (props) => { return (
); }; const RecordsTableHeader: Component<{ fieldConfigs: ConfigCells; verticalHeaders?: boolean; showParentHeader: boolean; }> = (props) => { return ( ); }; export const RecordsTableHeaderCells: Component<{ fieldConfigs: ConfigCells; showParentHeader: boolean }> = (props) => { const showParentHeader = () => props.showParentHeader; return ( {(fieldConfig) => ( } > {(childConfigField) => ( )} )} ); }; export const RecordsTableHeaderCell: Component<{ fieldConfig: ConfigCellItem; showParentHeader: boolean; }> = (props) => { const label = () => props.fieldConfig.parentLabel !== undefined && props.fieldConfig.parentLabel() !== "" && props.showParentHeader ? `${props.fieldConfig.parentLabel()}/${props.fieldConfig.label()}` : props.fieldConfig.label(); const description = () => props.fieldConfig.description(); return ( {(description) => } ); }; const RecordsTableBody: Component<{ fieldConfigs: ConfigCells; records: Item[]; }> = (props) => { return ( {(record) => ( )} ); }; export const RecordsTableCells: Component<{ fieldConfigs: ConfigCells; record: Item }> = (props) => { return ( {(fieldConfig) => ( }> {(childConfigField) => } )} ); }; export const RecordsTableCell: Component<{ fieldConfig: ConfigCellItem; record: Item; }> = (props) => { const lineIndices = () => [...Array(props.fieldConfig.valueCount(props.record))].map((_, i) => i); return ( {(valueIndex) => ( )} ); }; export const RecordsTableCellLine: Component<{ fieldConfig: ConfigCellItem; record: Item; valueIndex: number; }> = (props) => { const value = (): CellValue => props.fieldConfig.value(props.record, props.valueIndex); return (
{/* print Unicode zero width space character to ensure a line with non-zero height */} {"\u200b"}
); };