{"version":3,"file":"utils.cjs","sources":["../../../../src/components/table/utils.ts"],"sourcesContent":["import type { TableSortDirection } from \"./TableHeader.js\";\n\nexport type TableSortProps = ReturnType<\n    ReturnType<typeof useSortableTableHeader>[\"getSortProps\"]\n>[\"sortable\"];\n\nexport const useSortableTableHeader = (\n    activeSortKey: string,\n    activeSortDirection: TableSortDirection,\n    onChange: (\n        newSortKey: string,\n        newSortDirection: TableSortDirection,\n    ) => void,\n) => {\n    const getSortProps = (columnKey: string) => {\n        const isCurrentSortKey = activeSortKey === columnKey;\n        const currentDirection = isCurrentSortKey\n            ? activeSortDirection\n            : \"none\";\n\n        const nextDirectionMap: Record<string, TableSortDirection> = {\n            asc: \"desc\",\n            desc: \"none\",\n            none: \"asc\",\n        };\n\n        const nextDirection = nextDirectionMap[currentDirection] ?? \"asc\";\n\n        return {\n            sortable: {\n                onClick: () => onChange(columnKey, nextDirection),\n                direction: currentDirection,\n            },\n        };\n    };\n\n    return {\n        getSortProps,\n    };\n};\n"],"names":["activeSortKey","activeSortDirection","onChange","getSortProps","columnKey","currentDirection","nextDirection","asc","desc","none","sortable","onClick","direction"],"mappings":"+GAMsC,CAClCA,EACAC,EACAC,KAAAA,CA4BIC,aAvBkBC,IAElB,MAAMC,EADmBL,IAAkBI,EAErCH,EACA,OAQAK,EANuD,CACzDC,IAAK,OACLC,KAAM,OACNC,KAAM,OAG6BJ,IAAqB,MAE5D,MAAO,CACHK,SAAU,CACNC,QAAS,IAAMT,EAASE,EAAWE,GACnCM,UAAWP"}