@azure-utils/storybooks
Version:
Utils to upload and manage Storybooks via Azure Functions and storage.
1 lines • 3.4 kB
Source Map (JSON)
{"version":3,"file":"table-CFLDF1bd.mjs","names":[],"sources":["../src/components/table.tsx"],"sourcesContent":["export type TableItem = Record<string, unknown>;\n\nexport type TableProps<T extends TableItem> = {\n data: T[];\n columns: (TableColumn<NoInfer<T>> | undefined)[];\n caption?: JSX.Element;\n toolbar?: JSX.Element;\n};\n\nexport type TableColumn<T extends TableItem> = {\n id: keyof T | (string & {});\n header?: JSX.Element;\n cell?: (item: T) => JSX.Element | null;\n style?: JSX.HtmlTag[\"style\"];\n};\n\nexport function Table<T extends TableItem>({\n caption: safeCaption,\n columns,\n data,\n toolbar: safeToolbar,\n}: TableProps<T>) {\n const cols = columns.filter(Boolean) as TableColumn<T>[];\n\n return (\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: \"0.5rem\" }}>\n <div\n style={{\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"end\",\n margin: 0,\n gap: \"1rem\",\n }}\n >\n {\n <div\n style={{\n fontSize: \"1.25em\",\n fontWeight: \"bold\",\n paddingLeft: \"1rem\",\n }}\n >\n {safeCaption}\n </div>\n }\n {<div>{safeToolbar}</div>}\n </div>\n <table style={{ flex: 1 }}>\n <thead>\n <tr>\n {cols.map((col) => (\n <th safe>{String(col.header || col.id)}</th>\n ))}\n </tr>\n </thead>\n <tbody>\n {data.map((item) => {\n return (\n <tr>\n {cols.map((col) => {\n const value = col.cell?.(item) || item[col.id];\n if (!value) return <td />;\n\n if (typeof value === \"string\") {\n const safeValue = value;\n return <td style={col.style}>{safeValue}</td>;\n }\n\n if (typeof value === \"object\") {\n return (\n <td safe style={col.style}>\n {JSON.stringify(value)}\n </td>\n );\n }\n\n return (\n <td safe style={col.style}>\n {String(value)}\n </td>\n );\n })}\n </tr>\n );\n })}\n </tbody>\n </table>\n </div>\n );\n}\n"],"mappings":";;;;AAgBA,SAAgB,MAA2B,EACzC,SAAS,aACT,SACA,MACA,SAAS,aACK,EAAE;CAChB,MAAM,OAAO,QAAQ,OAAO,QAAQ;AAEpC,qDACG;EAAI,OAAO;GAAE,SAAS;GAAQ,eAAe;GAAU,KAAK;EAAU;0DACpE;GACC,OAAO;IACL,SAAS;IACT,gBAAgB;IAChB,YAAY;IACZ,QAAQ;IACR,KAAK;GACN;0DAGE;IACC,OAAO;KACL,UAAU;KACV,YAAY;KACZ,aAAa;IACd;cAEA;KACG,8CAEN,mBAAK,cAAkB;IACrB,+CACL;GAAM,OAAO,EAAE,MAAM,EAAG;0DACtB,iEACE,kBACE,KAAK,IAAI,CAAC,oDACR;IAAG;cAAM,OAAO,IAAI,UAAU,IAAI,GAAG;KAAM,CAC5C,GACC,GACC,8CACP,qBACE,KAAK,IAAI,CAAC,SAAS;AAClB,uDACG,kBACE,KAAK,IAAI,CAAC,QAAQ;KACjB,MAAM,QAAQ,IAAI,OAAO,KAAK,IAAI,KAAK,IAAI;AAC3C,SAAI,CAAC,MAAO,oDAAQ,SAAK;AAEzB,SAAI,OAAO,UAAU,UAAU;MAC7B,MAAM,YAAY;AAClB,yDAAQ;OAAG,OAAO,IAAI;iBAAQ;QAAe;KAC9C;AAED,SAAI,OAAO,UAAU,SACnB,oDACG;MAAG;MAAK,OAAO,IAAI;gBACjB,KAAK,UAAU,MAAM;OACnB;AAIT,wDACG;MAAG;MAAK,OAAO,IAAI;gBACjB,OAAO,MAAM;OACX;IAER,EAAC,GACC;GAER,EAAC,GACI;IACF;GACJ;AAET"}