{"version":3,"file":"pagination-db251ad6.js","sources":["../../../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../../../node_modules/prop-types/factoryWithThrowingShims.js","../../../../node_modules/prop-types/index.js","../../../../src/scripts/react-components/pagination.tsx"],"sourcesContent":["/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","import React, { useEffect, useRef, useState } from 'react';\nimport PropTypes, { InferProps } from 'prop-types';\nimport { ExtendedWindowType } from '../coveo/engine';\nfunction Pagination({\n totalPages,\n pagesToShow,\n currentPage,\n onPageChange,\n nextPageLabel,\n previousPageLabel,\n pageLabel\n}: InferProps) {\n const pages =\n pagesToShow || Object.keys([...Array(totalPages)]).map(i => Number(i) + 1);\n const paginationRef = useRef(null);\n const [parentSection, setParentSection] = useState();\n\n const scrollToTop = () => {\n if (parentSection) {\n setTimeout(() => {\n parentSection.scrollIntoView({ behavior: 'smooth' });\n }, 250);\n }\n };\n\n const handlePageChange = (event: React.MouseEvent) => {\n const page = Number(event.currentTarget.value);\n event.currentTarget.blur();\n onPageChange(page);\n scrollToTop();\n\n const global = window as ExtendedWindowType;\n\n global.dataLayer?.push({\n event: 'pagination_click',\n event_category: 'pagination',\n event_action: 'click',\n event_label: page\n });\n };\n\n const handlePrevPage = () => {\n if (currentPage > 1) {\n onPageChange(currentPage - 1);\n scrollToTop();\n\n const global = window as ExtendedWindowType;\n\n global.dataLayer?.push({\n event: 'pagination_click',\n event_category: 'pagination',\n event_action: 'click',\n event_label: 'previous'\n });\n }\n };\n\n const handleNextPage = () => {\n if (currentPage < totalPages) {\n onPageChange(currentPage + 1);\n scrollToTop();\n\n const global = window as ExtendedWindowType;\n\n global.dataLayer?.push({\n event: 'pagination_click',\n event_category: 'pagination',\n event_action: 'click',\n event_label: 'next'\n });\n }\n };\n\n const renderPage = (pageNumber: number, active: boolean) => {\n return (\n
  • \n \n {pageLabel} \n {pageNumber}\n \n
  • \n );\n };\n\n const renderEllipsis = () => (\n
  • \n \n {'...'}\n \n
  • \n );\n\n useEffect(() => {\n if (paginationRef.current) {\n const parentSection = paginationRef.current.closest('section');\n parentSection?.style.setProperty(\n 'scroll-margin-block-start',\n 'calc(var(--header-block-size) + 100px)'\n );\n setParentSection(parentSection);\n }\n }, [paginationRef.current]);\n\n if (totalPages > 1) {\n return (\n
      \n
    • \n \n \n \n \n \n
    • \n\n {renderPage(1, currentPage === 1)}\n\n {currentPage > 4 && totalPages > 5 && <>{renderEllipsis()}}\n\n {totalPages <= 5 &&\n pages.map((page, index) => (\n \n {page > 1 && page < totalPages && (\n <>{renderPage(page, currentPage === page)}\n )}\n \n ))}\n\n {totalPages > 5 &&\n pages.map((page, index) => {\n if (currentPage <= 4 && page <= 4 && page > 1) {\n return (\n \n {renderPage(page, currentPage === page)}\n \n );\n }\n\n if (\n currentPage > 4 &&\n page >= currentPage - 1 &&\n page <= currentPage + 1 &&\n page < totalPages\n ) {\n return (\n \n {renderPage(page, currentPage === page)}\n \n );\n }\n\n if (\n currentPage >= totalPages - 1 &&\n page >= totalPages - 3 &&\n page < totalPages\n ) {\n return (\n \n {renderPage(page, currentPage === page)}\n \n );\n }\n return null;\n })}\n\n {totalPages === 6 && currentPage + 2 <= totalPages && (\n <>{renderEllipsis()}\n )}\n\n {totalPages > 6 && currentPage + 3 <= totalPages && (\n <>{renderEllipsis()}\n )}\n\n {renderPage(totalPages, currentPage === totalPages)}\n
    • \n \n \n \n \n \n
    • \n
    \n );\n } else {\n return null;\n }\n}\n\nPagination.propTypes = {\n totalPages: PropTypes.number.isRequired,\n pagesToShow: PropTypes.array,\n currentPage: PropTypes.number.isRequired,\n onPageChange: PropTypes.func.isRequired,\n nextPageLabel: PropTypes.string.isRequired,\n previousPageLabel: PropTypes.string.isRequired,\n pageLabel: PropTypes.string.isRequired\n};\n\nexport default Pagination;\n"],"names":["ReactPropTypesSecret","ReactPropTypesSecret_1","require$$0","emptyFunction","emptyFunctionWithReset","factoryWithThrowingShims","shim","props","propName","componentName","location","propFullName","secret","err","getShim","ReactPropTypes","propTypesModule","Pagination","totalPages","pagesToShow","currentPage","onPageChange","nextPageLabel","previousPageLabel","pageLabel","pages","i","paginationRef","useRef","parentSection","setParentSection","useState","scrollToTop","handlePageChange","event","page","_a","handlePrevPage","handleNextPage","renderPage","pageNumber","active","React","renderEllipsis","useEffect","index","PropTypes"],"mappings":"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","x_google_ignoreList":[0,1,2]}