UNPKG

@eristack/line-grid

Version:

Editable QUPS line table with patchLine recalculation hook

1 lines • 2.58 kB
{"version":3,"sources":["../src/index.ts","../src/line-grid.tsx","../src/use-line-grid-recalc.ts"],"sourcesContent":["export { LineGrid, type LineGridColumn, type LineGridProps } from \"./line-grid.js\";\nexport { useLineGridRecalc } from \"./use-line-grid-recalc.js\";\n","import type { ReactNode } from \"react\";\nimport type { CalculatedLine } from \"@eristack/qups\";\n\nexport type LineGridColumn = {\n id: string;\n header: string;\n};\n\nexport type LineGridProps = {\n line: CalculatedLine;\n columns: LineGridColumn[];\n renderCell: (columnId: string, line: CalculatedLine) => ReactNode;\n};\n\nexport function LineGrid({ line, columns, renderCell }: LineGridProps) {\n return (\n <table className=\"erista-line-grid\" data-component=\"line-grid\">\n <thead>\n <tr>\n {columns.map((column) => (\n <th key={column.id} scope=\"col\">\n {column.header}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n <tr>\n {columns.map((column) => (\n <td key={column.id}>{renderCell(column.id, line)}</td>\n ))}\n </tr>\n </tbody>\n </table>\n );\n}\n","import {\n calculateLine,\n patchLine,\n type CalculateLineInput,\n type CalculatedLine,\n type PatchLineInput,\n} from \"@eristack/qups\";\nimport { useCallback, useState } from \"react\";\n\nexport function useLineGridRecalc(initial: CalculateLineInput) {\n const [line, setLine] = useState<CalculatedLine>(() => calculateLine(initial));\n\n const applyPatch = useCallback((patch: PatchLineInput) => {\n setLine((current) => patchLine(current, patch));\n }, []);\n\n const recalculate = useCallback((input: CalculateLineInput) => {\n setLine(calculateLine(input));\n }, []);\n\n return { line, applyPatch, recalculate };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACgBI;AAFG,SAAS,SAAS,EAAE,MAAM,SAAS,WAAW,GAAkB;AACrE,SACE,6CAAC,WAAM,WAAU,oBAAmB,kBAAe,aACjD;AAAA,gDAAC,WACC,sDAAC,QACE,kBAAQ,IAAI,CAAC,WACZ,4CAAC,QAAmB,OAAM,OACvB,iBAAO,UADD,OAAO,EAEhB,CACD,GACH,GACF;AAAA,IACA,4CAAC,WACC,sDAAC,QACE,kBAAQ,IAAI,CAAC,WACZ,4CAAC,QAAoB,qBAAW,OAAO,IAAI,IAAI,KAAtC,OAAO,EAAiC,CAClD,GACH,GACF;AAAA,KACF;AAEJ;;;ACnCA,kBAMO;AACP,mBAAsC;AAE/B,SAAS,kBAAkB,SAA6B;AAC7D,QAAM,CAAC,MAAM,OAAO,QAAI,uBAAyB,UAAM,2BAAc,OAAO,CAAC;AAE7E,QAAM,iBAAa,0BAAY,CAAC,UAA0B;AACxD,YAAQ,CAAC,gBAAY,uBAAU,SAAS,KAAK,CAAC;AAAA,EAChD,GAAG,CAAC,CAAC;AAEL,QAAM,kBAAc,0BAAY,CAAC,UAA8B;AAC7D,gBAAQ,2BAAc,KAAK,CAAC;AAAA,EAC9B,GAAG,CAAC,CAAC;AAEL,SAAO,EAAE,MAAM,YAAY,YAAY;AACzC;","names":[]}