{"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"}