{"version":3,"file":"PaginationFooter.mjs","sources":["../../../../../../admin/src/components/AssetDialog/BrowseStep/PaginationFooter/PaginationFooter.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\n/**\n * The component works as follows: this is a duplicate of the helper-plugin one but without the router\n * `1` , 2, 3, ... 10\n * 1, `2`, 3, ... 10\n * 1, 2, `3`, 4, ... 10\n * 1, 2, 3, `4`, 5, ... 10\n * 1, ..,4, `5`, 6, ... 10\n *\n * 1, ...., 8, 9, `10`\n * 1, ...., 8, `9`, 10\n * 1, ...., 7, `8`, 9, 10\n * 1, ... 6, `7`, 8, 9, 10\n */\nimport { Typography, VisuallyHidden } from '@strapi/design-system';\nimport { ChevronLeft, ChevronRight } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled, css } from 'styled-components';\n\nimport { Pagination, usePagination } from './Pagination';\n\nconst PaginationText = styled(Typography)`\n line-height: revert;\n`;\n\nconst linkWrapperStyles = css<{ $active?: boolean }>`\n padding: ${({ theme }) => theme.spaces[3]};\n border-radius: ${({ theme }) => theme.borderRadius};\n box-shadow: ${({ $active, theme }) => ($active ? theme.shadows.filterShadow : undefined)};\n text-decoration: none;\n display: flex;\n position: relative;\n outline: none;\n\n &:after {\n transition-property: all;\n transition-duration: 0.2s;\n border-radius: 8px;\n content: '';\n position: absolute;\n top: -4px;\n bottom: -4px;\n left: -4px;\n right: -4px;\n border: 2px solid transparent;\n }\n\n &:focus-visible {\n outline: none;\n\n &:after {\n border-radius: 8px;\n content: '';\n position: absolute;\n top: -5px;\n bottom: -5px;\n left: -5px;\n right: -5px;\n border: 2px solid ${(props) => props.theme.colors.primary600};\n }\n }\n`;\n\nconst LinkWrapperButton = styled.button<{ $active?: boolean }>`\n ${linkWrapperStyles}\n`;\n\nconst LinkWrapperDiv = styled.div<{ $active?: boolean }>`\n ${linkWrapperStyles}\n`;\n\nLinkWrapperButton.defaultProps = { type: 'button' };\n\nconst PageLinkWrapper = styled(LinkWrapperButton)`\n color: ${({ theme, $active }) => ($active ? theme.colors.primary700 : theme.colors.neutral800)};\n background: ${({ theme, $active }) => ($active ? theme.colors.neutral0 : undefined)};\n\n &:hover {\n box-shadow: ${({ theme }) => theme.shadows.filterShadow};\n }\n`;\n\nconst ActionLinkWrapper = styled(LinkWrapperButton)`\n font-size: 1.1rem;\n svg path {\n fill: ${(p) => (p['aria-disabled'] ? p.theme.colors.neutral300 : p.theme.colors.neutral600)};\n }\n\n &:focus,\n &:hover {\n svg path {\n fill: ${(p) => (p['aria-disabled'] ? p.theme.colors.neutral300 : p.theme.colors.neutral700)};\n }\n }\n\n ${(p) =>\n p['aria-disabled']\n ? `\n pointer-events: none;\n `\n : undefined}\n`;\n\nconst DotsWrapper = styled(LinkWrapperDiv)`\n color: ${({ theme }) => theme.colors.neutral800};\n`;\n\ninterface PaginationLinkProps extends React.ButtonHTMLAttributes {\n children: React.ReactNode;\n}\n\ninterface PageLinkProps extends PaginationLinkProps {\n number: number;\n}\n\nconst PreviousLink = ({ children, ...props }: PaginationLinkProps) => {\n const { activePage } = usePagination();\n\n const disabled = activePage === 1;\n\n return (\n
  • \n \n {children}\n \n \n
  • \n );\n};\n\nconst NextLink = ({ children, ...props }: PaginationLinkProps) => {\n const { activePage, pageCount } = usePagination();\n\n const disabled = activePage === pageCount;\n\n return (\n
  • \n \n {children}\n \n \n
  • \n );\n};\n\nconst PageLink = ({ number, children, ...props }: PageLinkProps) => {\n const { activePage } = usePagination();\n\n const isActive = activePage === number;\n\n return (\n
  • \n \n {children}\n \n {number}\n \n \n
  • \n );\n};\n\ninterface DotsProps extends React.HTMLAttributes {\n children: React.ReactNode;\n}\n\nconst Dots = ({ children, ...props }: DotsProps) => (\n
  • \n \n {children}\n \n …\n \n \n
  • \n);\n\ninterface PaginationFooterProps {\n activePage: number;\n onChangePage: (page: number) => void;\n pagination: {\n pageCount: number;\n };\n}\n\nexport const PaginationFooter = ({\n activePage,\n onChangePage,\n pagination: { pageCount },\n}: PaginationFooterProps) => {\n const { formatMessage } = useIntl();\n\n const previousActivePage = activePage - 1;\n const nextActivePage = activePage + 1;\n\n const firstLinks = [\n {\n onChangePage(1);\n }}\n >\n {formatMessage(\n { id: 'components.pagination.go-to', defaultMessage: 'Go to page {page}' },\n { page: 1 }\n )}\n ,\n ];\n\n if (pageCount <= 4) {\n const links = Array.from({ length: pageCount })\n .map((_, i) => i + 1)\n .map((number) => {\n return (\n onChangePage(number)}>\n {formatMessage(\n { id: 'components.pagination.go-to', defaultMessage: 'Go to page {page}' },\n { page: number }\n )}\n \n );\n });\n\n return (\n \n onChangePage(previousActivePage)}>\n {formatMessage({\n id: 'components.pagination.go-to-previous',\n defaultMessage: 'Go to previous page',\n })}\n \n {links}\n onChangePage(nextActivePage)}>\n {formatMessage({\n id: 'components.pagination.go-to-next',\n defaultMessage: 'Go to next page',\n })}\n \n \n );\n }\n\n let firstLinksToCreate: number[] = [];\n const lastLinks: JSX.Element[] = [];\n let lastLinksToCreate: number[] = [];\n const middleLinks: JSX.Element[] = [];\n\n if (pageCount > 1) {\n lastLinks.push(\n onChangePage(pageCount)}>\n {formatMessage(\n { id: 'components.pagination.go-to', defaultMessage: 'Go to page {page}' },\n { page: pageCount }\n )}\n \n );\n }\n\n if (activePage === 1 && pageCount >= 3) {\n firstLinksToCreate = [2];\n }\n\n if (activePage === 2 && pageCount >= 3) {\n if (pageCount === 5) {\n firstLinksToCreate = [2, 3, 4];\n } else if (pageCount === 3) {\n firstLinksToCreate = [2];\n } else {\n firstLinksToCreate = [2, 3];\n }\n }\n\n if (activePage === 4 && pageCount >= 3) {\n firstLinksToCreate = [2];\n }\n\n if (activePage === pageCount && pageCount >= 3) {\n lastLinksToCreate = [pageCount - 1];\n }\n\n if (activePage === pageCount - 2 && pageCount > 3) {\n lastLinksToCreate = [activePage + 1, activePage, activePage - 1];\n }\n\n if (activePage === pageCount - 3 && pageCount > 3 && activePage > 5) {\n lastLinksToCreate = [activePage + 2, activePage + 1, activePage, activePage - 1];\n }\n\n if (activePage === pageCount - 1 && pageCount > 3) {\n lastLinksToCreate = [activePage, activePage - 1];\n }\n\n lastLinksToCreate.forEach((number) => {\n lastLinks.unshift(\n onChangePage(number)}>\n Go to page {number}\n \n );\n });\n\n firstLinksToCreate.forEach((number) => {\n firstLinks.push(\n onChangePage(number)}>\n {formatMessage(\n { id: 'components.pagination.go-to', defaultMessage: 'Go to page {page}' },\n { page: number }\n )}\n \n );\n });\n\n if (\n ![1, 2].includes(activePage) &&\n activePage <= pageCount - 3 &&\n firstLinks.length + lastLinks.length < 6\n ) {\n const middleLinksToCreate = [activePage - 1, activePage, activePage + 1];\n\n middleLinksToCreate.forEach((number) => {\n middleLinks.push(\n onChangePage(number)}>\n {formatMessage(\n { id: 'components.pagination.go-to', defaultMessage: 'Go to page {page}' },\n { page: number }\n )}\n \n );\n });\n }\n\n const shouldShowDotsAfterFirstLink =\n pageCount > 5 || (pageCount === 5 && (activePage === 1 || activePage === 5));\n const shouldShowMiddleDots = middleLinks.length > 2 && activePage > 4 && pageCount > 5;\n\n const beforeDotsLinksLength = shouldShowMiddleDots\n ? pageCount - activePage - 1\n : pageCount - firstLinks.length - lastLinks.length;\n const afterDotsLength = shouldShowMiddleDots\n ? pageCount - firstLinks.length - lastLinks.length\n : pageCount - activePage - 1;\n\n return (\n \n onChangePage(previousActivePage)}>\n {formatMessage({\n id: 'components.pagination.go-to-previous',\n defaultMessage: 'Go to previous page',\n })}\n \n {firstLinks}\n {shouldShowMiddleDots && (\n \n {formatMessage(\n {\n id: 'components.pagination.remaining-links',\n defaultMessage: 'And {number} other links',\n },\n { number: beforeDotsLinksLength }\n )}\n \n )}\n {middleLinks}\n {shouldShowDotsAfterFirstLink && (\n \n {formatMessage(\n {\n id: 'components.pagination.remaining-links',\n defaultMessage: 'And {number} other links',\n },\n { number: afterDotsLength }\n )}\n \n )}\n {lastLinks}\n onChangePage(nextActivePage)}>\n {formatMessage({\n id: 'components.pagination.go-to-next',\n defaultMessage: 'Go to next page',\n })}\n \n \n );\n};\n"],"names":["PaginationText","styled","Typography","linkWrapperStyles","css","theme","spaces","borderRadius","$active","shadows","filterShadow","undefined","props","colors","primary600","LinkWrapperButton","button","LinkWrapperDiv","div","defaultProps","type","PageLinkWrapper","primary700","neutral800","neutral0","ActionLinkWrapper","p","neutral300","neutral600","neutral700","DotsWrapper","PreviousLink","children","activePage","usePagination","disabled","_jsx","li","_jsxs","aria-disabled","tabIndex","VisuallyHidden","ChevronLeft","aria-hidden","NextLink","pageCount","ChevronRight","PageLink","number","isActive","variant","fontWeight","Dots","as","small","PaginationFooter","onChangePage","pagination","formatMessage","useIntl","previousActivePage","nextActivePage","firstLinks","onClick","id","defaultMessage","page","links","Array","from","length","map","_","i","Pagination","firstLinksToCreate","lastLinks","lastLinksToCreate","middleLinks","push","forEach","unshift","includes","middleLinksToCreate","shouldShowDotsAfterFirstLink","shouldShowMiddleDots","beforeDotsLinksLength","afterDotsLength"],"mappings":"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"}