{"version":3,"file":"useColumnPinning.cjs","sources":["../../../../../src/lib/DataTable/tableFeatures/useColumnPinning.ts"],"sourcesContent":["import {useState, useEffect, useMemo} from 'react';\nimport type {ColumnPinningState} from '@tanstack/react-table';\n\nimport {ROW_SELECTION_ID} from './../columns/rowSelection.tsx';\n\nconst defaultColumnPinning = {};\n\nexport type Props = {\n    columnPinningProp?: ColumnPinningState;\n    hasSelectableColumn: boolean;\n};\n\nconst normalizeProp = (hasSelectableColumn: boolean, columnPinningProp?: ColumnPinningState) => {\n    const nextRight = columnPinningProp?.right ? columnPinningProp?.right : [];\n    const nextLeft = columnPinningProp?.left ? columnPinningProp?.left : [];\n    return {\n        right: nextRight,\n        left: hasSelectableColumn ? [ROW_SELECTION_ID, ...nextLeft] : nextLeft,\n    };\n};\n\nexport const useColumnPinning = ({\n    columnPinningProp = defaultColumnPinning,\n    hasSelectableColumn,\n}: Props) => {\n    const normalizedPinningState = useMemo(\n        () => normalizeProp(hasSelectableColumn, columnPinningProp),\n        [columnPinningProp, hasSelectableColumn]\n    );\n\n    const [columnPinning, setColumnPinning] = useState<ColumnPinningState>(normalizedPinningState);\n\n    useEffect(() => {\n        setColumnPinning(normalizedPinningState);\n    }, [normalizedPinningState]);\n\n    return {columnPinning, setColumnPinning};\n};\n"],"names":["defaultColumnPinning","normalizeProp","hasSelectableColumn","columnPinningProp","nextRight","nextLeft","ROW_SELECTION_ID","useColumnPinning","normalizedPinningState","useMemo","columnPinning","setColumnPinning","useState","useEffect"],"mappings":"+JAKMA,EAAuB,CAAA,EAOvBC,EAAgB,CAACC,EAA8BC,IAA2C,CAC5F,MAAMC,EAAYD,GAAmB,MAAQA,GAAmB,MAAQ,CAAA,EAClEE,EAAWF,GAAmB,KAAOA,GAAmB,KAAO,CAAA,EACrE,MAAO,CACH,MAAOC,EACP,KAAMF,EAAsB,CAACI,mBAAkB,GAAGD,CAAQ,EAAIA,CAAA,CAEtE,EAEaE,EAAmB,CAAC,CAC7B,kBAAAJ,EAAoBH,EACpB,oBAAAE,CACJ,IAAa,CACT,MAAMM,EAAyBC,EAAAA,QAC3B,IAAMR,EAAcC,EAAqBC,CAAiB,EAC1D,CAACA,EAAmBD,CAAmB,CAAA,EAGrC,CAACQ,EAAeC,CAAgB,EAAIC,EAAAA,SAA6BJ,CAAsB,EAE7FK,OAAAA,EAAAA,UAAU,IAAM,CACZF,EAAiBH,CAAsB,CAC3C,EAAG,CAACA,CAAsB,CAAC,EAEpB,CAAC,cAAAE,EAAe,iBAAAC,CAAA,CAC3B"}