{"version":3,"sources":["../../src/components/ColumnResizer.tsx"],"sourcesContent":["'use client';\n\nimport { forwardRef, useCallback, useRef, type PointerEvent } from 'react';\nimport { styled, useThemeProps } from '@mui/material/styles';\n\ninterface ColumnResizerProps {\n    /** Called continuously during drag with the horizontal pixel delta since the last event. */\n    onResize?: (delta: number) => void;\n    className?: string;\n}\n\nconst ColumnResizerRoot = styled('div', {\n    name: 'MuiColumnResizer',\n    slot: 'root',\n})(({ theme }) => ({\n    width: 4,\n    height: '100%',\n    position: 'absolute',\n    right: 0,\n    top: 0,\n    cursor: 'col-resize',\n    backgroundColor: 'transparent',\n    touchAction: 'none',\n    zIndex: 1,\n    '&:hover, &:active': {\n        backgroundColor: theme.palette.primary.main,\n    },\n}));\n\nconst ColumnResizer = forwardRef<HTMLDivElement, ColumnResizerProps>(\n    function ColumnResizer(inProps, ref) {\n        const props = useThemeProps({ props: inProps, name: 'MuiColumnResizer' });\n        const { onResize, className, ...other } = props;\n\n        const lastXRef = useRef(0);\n\n        const handlePointerDown = useCallback((e: PointerEvent<HTMLDivElement>) => {\n            e.preventDefault();\n            const target = e.currentTarget;\n            target.setPointerCapture(e.pointerId);\n            lastXRef.current = e.clientX;\n        }, []);\n\n        const handlePointerMove = useCallback(\n            (e: PointerEvent<HTMLDivElement>) => {\n                if (!e.currentTarget.hasPointerCapture(e.pointerId)) {\n                    return;\n                }\n                const delta = e.clientX - lastXRef.current;\n                lastXRef.current = e.clientX;\n                onResize?.(delta);\n            },\n            [onResize]\n        );\n\n        const handlePointerUp = useCallback((e: PointerEvent<HTMLDivElement>) => {\n            e.currentTarget.releasePointerCapture(e.pointerId);\n        }, []);\n\n        return (\n            <ColumnResizerRoot\n                ref={ref}\n                className={className}\n                onPointerDown={handlePointerDown}\n                onPointerMove={handlePointerMove}\n                onPointerUp={handlePointerUp}\n                {...other}\n            />\n        );\n    }\n);\n\nexport { ColumnResizer };\nexport type { ColumnResizerProps };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAAmE;AACnE,oBAAsC;AAyD1B;AAjDZ,IAAM,wBAAoB,sBAAO,OAAO;AAAA,EACpC,MAAM;AAAA,EACN,MAAM;AACV,CAAC,EAAE,CAAC,EAAE,MAAM,OAAO;AAAA,EACf,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,OAAO;AAAA,EACP,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,qBAAqB;AAAA,IACjB,iBAAiB,MAAM,QAAQ,QAAQ;AAAA,EAC3C;AACJ,EAAE;AAEF,IAAM,oBAAgB;AAAA,EAClB,SAASA,eAAc,SAAS,KAAK;AACjC,UAAM,YAAQ,6BAAc,EAAE,OAAO,SAAS,MAAM,mBAAmB,CAAC;AACxE,UAAM,EAAE,UAAU,WAAW,GAAG,MAAM,IAAI;AAE1C,UAAM,eAAW,qBAAO,CAAC;AAEzB,UAAM,wBAAoB,0BAAY,CAAC,MAAoC;AACvE,QAAE,eAAe;AACjB,YAAM,SAAS,EAAE;AACjB,aAAO,kBAAkB,EAAE,SAAS;AACpC,eAAS,UAAU,EAAE;AAAA,IACzB,GAAG,CAAC,CAAC;AAEL,UAAM,wBAAoB;AAAA,MACtB,CAAC,MAAoC;AACjC,YAAI,CAAC,EAAE,cAAc,kBAAkB,EAAE,SAAS,GAAG;AACjD;AAAA,QACJ;AACA,cAAM,QAAQ,EAAE,UAAU,SAAS;AACnC,iBAAS,UAAU,EAAE;AACrB,mBAAW,KAAK;AAAA,MACpB;AAAA,MACA,CAAC,QAAQ;AAAA,IACb;AAEA,UAAM,sBAAkB,0BAAY,CAAC,MAAoC;AACrE,QAAE,cAAc,sBAAsB,EAAE,SAAS;AAAA,IACrD,GAAG,CAAC,CAAC;AAEL,WACI;AAAA,MAAC;AAAA;AAAA,QACG;AAAA,QACA;AAAA,QACA,eAAe;AAAA,QACf,eAAe;AAAA,QACf,aAAa;AAAA,QACZ,GAAG;AAAA;AAAA,IACR;AAAA,EAER;AACJ;","names":["ColumnResizer"]}