{"version":3,"file":"usePagePaginationState.cjs","sources":["../../../../src/lib/Pagination/usePagePaginationState.ts"],"sourcesContent":["import {useCallback, useState} from 'react';\n\nconst getVisible = (totalPages: number, selectedPage: number) => {\n    switch (selectedPage) {\n        case 1: {\n            return [selectedPage + 1, selectedPage + 2, selectedPage + 3];\n        }\n        case 2: {\n            return [selectedPage, selectedPage + 1, selectedPage + 2];\n        }\n        case totalPages: {\n            return [selectedPage - 3, selectedPage - 2, selectedPage - 1];\n        }\n        case totalPages - 1: {\n            return [selectedPage - 2, selectedPage - 1, selectedPage];\n        }\n        default: {\n            return [selectedPage - 1, selectedPage, selectedPage + 1];\n        }\n    }\n};\n\nexport const usePagePaginationState = (totalPages: number, initiallySelected: number) => {\n    const [selectedPage, setSelectedPage] = useState(initiallySelected);\n    const first = 1;\n    const last = totalPages;\n    const visible = getVisible(totalPages, selectedPage);\n    const nextPage = selectedPage + 1 <= totalPages ? selectedPage + 1 : 1;\n    const previousPage = selectedPage - 1 >= 1 ? selectedPage - 1 : totalPages;\n    const isLong = totalPages > 7;\n    const maxDigits = totalPages.toString().length + 1;\n    const checkValidity = useCallback(\n        (pageNumber: number | null) => {\n            if (pageNumber === null) {\n                return true;\n            }\n            return pageNumber >= 1 && pageNumber <= totalPages;\n        },\n        [totalPages]\n    );\n    return {\n        first,\n        last,\n        visible,\n        setSelectedPage,\n        selectedPage,\n        nextPage,\n        previousPage,\n        isLong,\n        maxDigits,\n        checkValidity,\n    };\n};\n"],"names":["getVisible","totalPages","selectedPage","usePagePaginationState","initiallySelected","setSelectedPage","useState","first","last","visible","nextPage","previousPage","isLong","maxDigits","checkValidity","useCallback","pageNumber"],"mappings":"sHAEMA,EAAa,CAACC,EAAoBC,IAAyB,CAC7D,OAAQA,EAAA,CACJ,IAAK,GACD,MAAO,CAACA,EAAe,EAAGA,EAAe,EAAGA,EAAe,CAAC,EAEhE,IAAK,GACD,MAAO,CAACA,EAAcA,EAAe,EAAGA,EAAe,CAAC,EAE5D,KAAKD,EACD,MAAO,CAACC,EAAe,EAAGA,EAAe,EAAGA,EAAe,CAAC,EAEhE,KAAKD,EAAa,EACd,MAAO,CAACC,EAAe,EAAGA,EAAe,EAAGA,CAAY,EAE5D,QACI,MAAO,CAACA,EAAe,EAAGA,EAAcA,EAAe,CAAC,CAC5D,CAER,EAEaC,EAAyB,CAACF,EAAoBG,IAA8B,CACrF,KAAM,CAACF,EAAcG,CAAe,EAAIC,EAAAA,SAASF,CAAiB,EAC5DG,EAAQ,EACRC,EAAOP,EACPQ,EAAUT,EAAWC,EAAYC,CAAY,EAC7CQ,EAAWR,EAAe,GAAKD,EAAaC,EAAe,EAAI,EAC/DS,EAAeT,EAAe,GAAK,EAAIA,EAAe,EAAID,EAC1DW,EAASX,EAAa,EACtBY,EAAYZ,EAAW,SAAA,EAAW,OAAS,EAC3Ca,EAAgBC,EAAAA,YACjBC,GACOA,IAAe,KACR,GAEJA,GAAc,GAAKA,GAAcf,EAE5C,CAACA,CAAU,CAAA,EAEf,MAAO,CACH,MAAAM,EACA,KAAAC,EACA,QAAAC,EACA,gBAAAJ,EACA,aAAAH,EACA,SAAAQ,EACA,aAAAC,EACA,OAAAC,EACA,UAAAC,EACA,cAAAC,CAAA,CAER"}