{"version":3,"file":"pagination-73f28cc6.js","sources":["../../../../src/scripts/coveo/components/pagination.tsx"],"sourcesContent":["import React, { useState, useEffect, useContext } from 'react';\nimport { Pager, PagerState } from '@coveo/headless';\nimport { headlessEngine } from '../engine';\nimport { pager } from '../controllers/controller';\nimport PaginationModule from '../../react-components/pagination';\nimport { labelsObj } from '../controllers/controller';\nimport SecondCall from './second-call-context';\nimport { maxResultsPerPage } from '../controllers/controller';\n\nexport const COVEO_PAGINATION_EVENTS = {\n reset: 'pagination:reset'\n};\n\nconst Pagination = () => {\n const [controller, setController] = useState<Pager>(pager as Pager);\n const [state, setState] = useState<PagerState | null>(null);\n const secondCallContext = useContext(SecondCall);\n\n useEffect(() => {\n if (headlessEngine) {\n setController(pager as Pager);\n setState((pager as Pager).state);\n (pager as Pager).subscribe(() => {\n setState((pager as Pager).state);\n });\n }\n\n window.addEventListener(COVEO_PAGINATION_EVENTS.reset, resetPagination);\n\n return () => {\n window.removeEventListener(\n COVEO_PAGINATION_EVENTS.reset,\n resetPagination\n );\n };\n }, []);\n\n const resetPagination = () => {\n if (secondCallContext.secondCall && secondCallContext.setSelectedPage) {\n secondCallContext.setSelectedPage(1);\n return;\n }\n controller?.selectPage(1);\n };\n\n const handleGoToPage = (pageNumber: number) => {\n if (secondCallContext.secondCall && secondCallContext.setSelectedPage) {\n secondCallContext.setSelectedPage(pageNumber);\n return;\n }\n controller?.selectPage(pageNumber);\n };\n\n if (secondCallContext.secondCall) {\n const _totalPages = Math.ceil(\n secondCallContext.filteredResults.length / maxResultsPerPage\n );\n const _currentPages = Array.from(Array(_totalPages).keys()) || [];\n return (\n <>\n {state && (\n <PaginationModule\n totalPages={_totalPages}\n pagesToShow={_currentPages}\n currentPage={secondCallContext.selectedPage}\n onPageChange={handleGoToPage}\n nextPageLabel={labelsObj.nextPage}\n previousPageLabel={labelsObj.previousPage}\n pageLabel={labelsObj.pageLabel}\n />\n )}\n </>\n );\n }\n\n return (\n <>\n {state && (\n <PaginationModule\n totalPages={state?.maxPage}\n pagesToShow={state.currentPages}\n currentPage={state.currentPage}\n onPageChange={handleGoToPage}\n nextPageLabel={labelsObj.nextPage}\n previousPageLabel={labelsObj.previousPage}\n pageLabel={labelsObj.pageLabel}\n />\n )}\n </>\n );\n};\n\nexport default Pagination;\n"],"names":["COVEO_PAGINATION_EVENTS","Pagination","controller","setController","useState","pager","state","setState","secondCallContext","useContext","SecondCall","useEffect","headlessEngine","resetPagination","handleGoToPage","pageNumber","_totalPages","maxResultsPerPage","_currentPages","React","PaginationModule","labelsObj"],"mappings":"uPASO,MAAMA,EAA0B,CACrC,MAAO,kBACT,EAEMC,EAAa,IAAM,CACvB,KAAM,CAACC,EAAYC,CAAa,EAAIC,WAAgBC,CAAc,EAC5D,CAACC,EAAOC,CAAQ,EAAIH,WAA4B,IAAI,EACpDI,EAAoBC,aAAWC,CAAU,EAE/CC,EAAAA,UAAU,KACJC,IACFT,EAAcE,CAAc,EAC5BE,EAAUF,EAAgB,KAAK,EAC9BA,EAAgB,UAAU,IAAM,CAC/BE,EAAUF,EAAgB,KAAK,CAAA,CAChC,GAGI,OAAA,iBAAiBL,EAAwB,MAAOa,CAAe,EAE/D,IAAM,CACJ,OAAA,oBACLb,EAAwB,MACxBa,CAAA,CACF,GAED,CAAE,CAAA,EAEL,MAAMA,EAAkB,IAAM,CACxB,GAAAL,EAAkB,YAAcA,EAAkB,gBAAiB,CACrEA,EAAkB,gBAAgB,CAAC,EACnC,OAEFN,GAAA,MAAAA,EAAY,WAAW,EAAC,EAGpBY,EAAkBC,GAAuB,CACzC,GAAAP,EAAkB,YAAcA,EAAkB,gBAAiB,CACrEA,EAAkB,gBAAgBO,CAAU,EAC5C,OAEFb,GAAA,MAAAA,EAAY,WAAWa,EAAU,EAGnC,GAAIP,EAAkB,WAAY,CAChC,MAAMQ,EAAc,KAAK,KACvBR,EAAkB,gBAAgB,OAASS,CAAA,EAEvCC,EAAgB,MAAM,KAAK,MAAMF,CAAW,EAAE,MAAM,GAAK,GAC/D,uCAEKV,GACCa,EAAA,cAACC,EAAA,CACC,WAAYJ,EACZ,YAAaE,EACb,YAAaV,EAAkB,aAC/B,aAAcM,EACd,cAAeO,EAAU,SACzB,kBAAmBA,EAAU,aAC7B,UAAWA,EAAU,SAAA,CAAA,CAG3B,EAIJ,uCAEKf,GACCa,EAAA,cAACC,EAAA,CACC,WAAYd,GAAA,YAAAA,EAAO,QACnB,YAAaA,EAAM,aACnB,YAAaA,EAAM,YACnB,aAAcQ,EACd,cAAeO,EAAU,SACzB,kBAAmBA,EAAU,aAC7B,UAAWA,EAAU,SAAA,CAAA,CAG3B,CAEJ"}