{"version":3,"file":"ExpandableTableRowController.cjs","sources":["../../../../src/components/table/ExpandableTableRowController.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { forwardRef } from \"react\";\nimport { Expander } from \"../expander/Expander.js\";\nimport { TableCell } from \"./TableCell.js\";\nimport { useTableContext } from \"./tableContext.js\";\nimport type { ExpandableTableRowControllerProps } from \"./types.js\";\n\nconst ExpandableTableRowController = forwardRef<\n    HTMLTableCellElement,\n    ExpandableTableRowControllerProps\n>(\n    (\n        {\n            isOpen,\n            onClick,\n            children,\n            className,\n            id,\n            \"aria-controls\": ariaControls,\n            ...rest\n        },\n        ref,\n    ) => {\n        if (isOpen === undefined || typeof onClick !== \"function\") {\n            throw new Error(\n                \"ExpandableTableRowController must have ExpandableTableRow as parent\",\n            );\n        }\n\n        const { collapseToList } = useTableContext();\n\n        const dataTh = (rest as Record<string, string>)[\"data-th\"];\n\n        // pick text from data-th if possible, but only if it's a list\n        const showTextFromTh: string | undefined = collapseToList\n            ? dataTh\n            : undefined;\n\n        return (\n            <TableCell\n                className={clsx(\n                    \"jkl-table-cell--expand\",\n                    { [\"jkl-table-cell--expand-without-text\"]: !children },\n                    className,\n                )}\n                {...rest}\n                ref={ref}\n            >\n                <Expander\n                    as=\"button\"\n                    className={clsx(\"jkl-table-row-expand-button\", {\n                        [\"jkl-table-row-expand-button--expanded\"]: isOpen,\n                    })}\n                    id={id}\n                    open={isOpen}\n                    aria-controls={ariaControls}\n                    aria-label={\n                        children ? undefined : dataTh || \"Ekspander rad\"\n                    }\n                    onClick={(e: React.MouseEvent<HTMLButtonElement>) => {\n                        e.stopPropagation();\n                        onClick();\n                    }}\n                    onKeyDown={(e: React.KeyboardEvent<HTMLButtonElement>) => {\n                        if (e.key === \"Enter\" || e.key === \" \") {\n                            e.stopPropagation();\n                            e.preventDefault();\n                            onClick();\n                        }\n                    }}\n                >\n                    {/* show children. or try to use data-th if children is undefined */}\n                    {children ?? showTextFromTh}\n                </Expander>\n            </TableCell>\n        );\n    },\n);\n\nExpandableTableRowController.displayName = \"ExpandableTableRowController\";\n\nexport { ExpandableTableRowController };\n"],"names":["ExpandableTableRowController","forwardRef","isOpen","onClick","children","className","id","ariaControls","rest","ref","Error","collapseToList","useTableContext","dataTh","showTextFromTh","jsx","TableCell","clsx","Expander","as","open","e","stopPropagation","onKeyDown","key","preventDefault","displayName"],"mappings":"mRAOMA,EAA+BC,EAAAA,WAIjC,EAEQC,OAAAA,EACAC,QAAAA,EACAC,SAAAA,EACAC,UAAAA,EACAC,GAAAA,EACA,gBAAiBC,KACdC,GAEPC,KAEA,QAAe,IAAXP,GAA2C,mBAAZC,EAC/B,MAAM,IAAIO,MACN,uEAIR,MAAQC,eAAAA,GAAmBC,oBAErBC,EAAUL,EAAgC,WAG1CM,EAAqCH,EACrCE,OACA,EAEN,OACIE,EAAAA,IAACC,EAAAA,UAAA,CACGX,UAAWY,EAAAA,KACP,yBACA,CAAG,uCAAyCb,GAC5CC,MAEAG,EACJC,IAAAA,EAEAL,SAAAW,EAAAA,IAACG,EAAAA,SAAA,CACGC,GAAG,SACHd,UAAWY,EAAAA,KAAK,8BAA+B,CAC1C,wCAA0Cf,IAE/CI,GAAAA,EACAc,KAAMlB,EACN,gBAAeK,EACf,aACIH,OAAW,EAAYS,GAAU,gBAErCV,QAAUkB,IACNA,EAAEC,kBACFnB,KAEJoB,UAAYF,KACM,UAAVA,EAAEG,KAA6B,MAAVH,EAAEG,OACvBH,EAAEC,kBACFD,EAAEI,iBACFtB,MAKPC,SAAAA,GAAYU,QAOjCd,EAA6B0B,YAAc"}