{"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<HTMLButtonElement> {\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    <li>\n      <ActionLinkWrapper aria-disabled={disabled} tabIndex={disabled ? -1 : undefined} {...props}>\n        <VisuallyHidden>{children}</VisuallyHidden>\n        <ChevronLeft aria-hidden />\n      </ActionLinkWrapper>\n    </li>\n  );\n};\n\nconst NextLink = ({ children, ...props }: PaginationLinkProps) => {\n  const { activePage, pageCount } = usePagination();\n\n  const disabled = activePage === pageCount;\n\n  return (\n    <li>\n      <ActionLinkWrapper aria-disabled={disabled} tabIndex={disabled ? -1 : undefined} {...props}>\n        <VisuallyHidden>{children}</VisuallyHidden>\n        <ChevronRight aria-hidden />\n      </ActionLinkWrapper>\n    </li>\n  );\n};\n\nconst PageLink = ({ number, children, ...props }: PageLinkProps) => {\n  const { activePage } = usePagination();\n\n  const isActive = activePage === number;\n\n  return (\n    <li>\n      <PageLinkWrapper {...props} $active={isActive}>\n        <VisuallyHidden>{children}</VisuallyHidden>\n        <PaginationText aria-hidden variant=\"pi\" fontWeight={isActive ? 'bold' : ''}>\n          {number}\n        </PaginationText>\n      </PageLinkWrapper>\n    </li>\n  );\n};\n\ninterface DotsProps extends React.HTMLAttributes<HTMLDivElement> {\n  children: React.ReactNode;\n}\n\nconst Dots = ({ children, ...props }: DotsProps) => (\n  <li>\n    <DotsWrapper {...props} as=\"div\">\n      <VisuallyHidden>{children}</VisuallyHidden>\n      <PaginationText aria-hidden small>\n        …\n      </PaginationText>\n    </DotsWrapper>\n  </li>\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    <PageLink\n      key={1}\n      number={1}\n      onClick={() => {\n        onChangePage(1);\n      }}\n    >\n      {formatMessage(\n        { id: 'components.pagination.go-to', defaultMessage: 'Go to page {page}' },\n        { page: 1 }\n      )}\n    </PageLink>,\n  ];\n\n  if (pageCount <= 4) {\n    const links = Array.from({ length: pageCount })\n      .map((_, i) => i + 1)\n      .map((number) => {\n        return (\n          <PageLink key={number} number={number} onClick={() => onChangePage(number)}>\n            {formatMessage(\n              { id: 'components.pagination.go-to', defaultMessage: 'Go to page {page}' },\n              { page: number }\n            )}\n          </PageLink>\n        );\n      });\n\n    return (\n      <Pagination activePage={activePage} pageCount={pageCount}>\n        <PreviousLink onClick={() => onChangePage(previousActivePage)}>\n          {formatMessage({\n            id: 'components.pagination.go-to-previous',\n            defaultMessage: 'Go to previous page',\n          })}\n        </PreviousLink>\n        {links}\n        <NextLink onClick={() => onChangePage(nextActivePage)}>\n          {formatMessage({\n            id: 'components.pagination.go-to-next',\n            defaultMessage: 'Go to next page',\n          })}\n        </NextLink>\n      </Pagination>\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      <PageLink key={pageCount} number={pageCount} onClick={() => onChangePage(pageCount)}>\n        {formatMessage(\n          { id: 'components.pagination.go-to', defaultMessage: 'Go to page {page}' },\n          { page: pageCount }\n        )}\n      </PageLink>\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      <PageLink key={number} number={number} onClick={() => onChangePage(number)}>\n        Go to page {number}\n      </PageLink>\n    );\n  });\n\n  firstLinksToCreate.forEach((number) => {\n    firstLinks.push(\n      <PageLink key={number} number={number} onClick={() => onChangePage(number)}>\n        {formatMessage(\n          { id: 'components.pagination.go-to', defaultMessage: 'Go to page {page}' },\n          { page: number }\n        )}\n      </PageLink>\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        <PageLink key={number} number={number} onClick={() => onChangePage(number)}>\n          {formatMessage(\n            { id: 'components.pagination.go-to', defaultMessage: 'Go to page {page}' },\n            { page: number }\n          )}\n        </PageLink>\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    <Pagination activePage={activePage} pageCount={pageCount}>\n      <PreviousLink onClick={() => onChangePage(previousActivePage)}>\n        {formatMessage({\n          id: 'components.pagination.go-to-previous',\n          defaultMessage: 'Go to previous page',\n        })}\n      </PreviousLink>\n      {firstLinks}\n      {shouldShowMiddleDots && (\n        <Dots>\n          {formatMessage(\n            {\n              id: 'components.pagination.remaining-links',\n              defaultMessage: 'And {number} other links',\n            },\n            { number: beforeDotsLinksLength }\n          )}\n        </Dots>\n      )}\n      {middleLinks}\n      {shouldShowDotsAfterFirstLink && (\n        <Dots>\n          {formatMessage(\n            {\n              id: 'components.pagination.remaining-links',\n              defaultMessage: 'And {number} other links',\n            },\n            { number: afterDotsLength }\n          )}\n        </Dots>\n      )}\n      {lastLinks}\n      <NextLink onClick={() => onChangePage(nextActivePage)}>\n        {formatMessage({\n          id: 'components.pagination.go-to-next',\n          defaultMessage: 'Go to next page',\n        })}\n      </NextLink>\n    </Pagination>\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":";;;;;;;AAAA;AAqBA,MAAMA,cAAAA,GAAiBC,MAAAA,CAAOC,UAAAA,CAAW;;AAEzC,CAAC;AAED,MAAMC,iBAAAA,GAAoBC,GAA0B;WACzC,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAKA,KAAAA,CAAMC,MAAM,CAAC,CAAA,CAAE,CAAC;AAC3B,iBAAA,EAAE,CAAC,EAAED,KAAK,EAAE,GAAKA,KAAAA,CAAME,YAAY,CAAC;AACvC,cAAA,EAAE,CAAC,EAAEC,OAAO,EAAEH,KAAK,EAAE,GAAMG,OAAAA,GAAUH,KAAAA,CAAMI,OAAO,CAACC,YAAY,GAAGC,SAAAA,CAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA8BnE,EAAE,CAACC,QAAUA,KAAAA,CAAMP,KAAK,CAACQ,MAAM,CAACC,UAAU,CAAC;;;AAGnE,CAAC;AAED,MAAMC,iBAAAA,GAAoBd,MAAAA,CAAOe,MAA6B;AAC5D,EAAA,EAAEb,iBAAAA;AACJ,CAAC;AAED,MAAMc,cAAAA,GAAiBhB,MAAAA,CAAOiB,GAA0B;AACtD,EAAA,EAAEf,iBAAAA;AACJ,CAAC;AAEDY,iBAAAA,CAAkBI,YAAY,GAAG;IAAEC,IAAAA,EAAM;AAAS,CAAA;AAElD,MAAMC,eAAAA,GAAkBpB,MAAAA,CAAOc,iBAAAA,CAAkB;AACxC,SAAA,EAAE,CAAC,EAAEV,KAAK,EAAEG,OAAO,EAAE,GAAMA,OAAAA,GAAUH,KAAAA,CAAMQ,MAAM,CAACS,UAAU,GAAGjB,MAAMQ,MAAM,CAACU,UAAU,CAAE;AACnF,cAAA,EAAE,CAAC,EAAElB,KAAK,EAAEG,OAAO,EAAE,GAAMA,OAAAA,GAAUH,KAAAA,CAAMQ,MAAM,CAACW,QAAQ,GAAGb,SAAAA,CAAW;;;gBAGtE,EAAE,CAAC,EAAEN,KAAK,EAAE,GAAKA,KAAAA,CAAMI,OAAO,CAACC,YAAY,CAAC;;AAE5D,CAAC;AAED,MAAMe,iBAAAA,GAAoBxB,MAAAA,CAAOc,iBAAAA,CAAkB;;;AAGzC,UAAA,EAAE,CAACW,CAAAA,GAAOA,CAAC,CAAC,eAAA,CAAgB,GAAGA,EAAErB,KAAK,CAACQ,MAAM,CAACc,UAAU,GAAGD,CAAAA,CAAErB,KAAK,CAACQ,MAAM,CAACe,UAAU,CAAE;;;;;;AAMpF,YAAA,EAAE,CAACF,CAAAA,GAAOA,CAAC,CAAC,eAAA,CAAgB,GAAGA,EAAErB,KAAK,CAACQ,MAAM,CAACc,UAAU,GAAGD,CAAAA,CAAErB,KAAK,CAACQ,MAAM,CAACgB,UAAU,CAAE;;;;AAIhG,EAAA,EAAE,CAACH,CAAAA,GACDA,CAAC,CAAC,eAAA,CAAgB,GACd;;AAEJ,IAAA,CAAC,GACGf,SAAAA;AACR,CAAC;AAED,MAAMmB,WAAAA,GAAc7B,MAAAA,CAAOgB,cAAAA,CAAe;SACjC,EAAE,CAAC,EAAEZ,KAAK,EAAE,GAAKA,KAAAA,CAAMQ,MAAM,CAACU,UAAU,CAAC;AAClD,CAAC;AAUD,MAAMQ,eAAe,CAAC,EAAEC,QAAQ,EAAE,GAAGpB,KAAAA,EAA4B,GAAA;IAC/D,MAAM,EAAEqB,UAAU,EAAE,GAAGC,aAAAA,EAAAA;AAEvB,IAAA,MAAMC,WAAWF,UAAAA,KAAe,CAAA;AAEhC,IAAA,qBACEG,GAAA,CAACC,IAAAA,EAAAA;AACC,QAAA,QAAA,gBAAAC,IAAA,CAACb,iBAAAA,EAAAA;YAAkBc,eAAAA,EAAeJ,QAAAA;YAAUK,QAAAA,EAAUL,QAAAA,GAAW,EAAC,GAAIxB,SAAAA;AAAY,YAAA,GAAGC,KAAK;;8BACxFwB,GAAA,CAACK,cAAAA,EAAAA;AAAgBT,oBAAAA,QAAAA,EAAAA;;8BACjBI,GAAA,CAACM,WAAAA,EAAAA;oBAAYC,aAAW,EAAA;;;;;AAIhC,CAAA;AAEA,MAAMC,WAAW,CAAC,EAAEZ,QAAQ,EAAE,GAAGpB,KAAAA,EAA4B,GAAA;AAC3D,IAAA,MAAM,EAAEqB,UAAU,EAAEY,SAAS,EAAE,GAAGX,aAAAA,EAAAA;AAElC,IAAA,MAAMC,WAAWF,UAAAA,KAAeY,SAAAA;AAEhC,IAAA,qBACET,GAAA,CAACC,IAAAA,EAAAA;AACC,QAAA,QAAA,gBAAAC,IAAA,CAACb,iBAAAA,EAAAA;YAAkBc,eAAAA,EAAeJ,QAAAA;YAAUK,QAAAA,EAAUL,QAAAA,GAAW,EAAC,GAAIxB,SAAAA;AAAY,YAAA,GAAGC,KAAK;;8BACxFwB,GAAA,CAACK,cAAAA,EAAAA;AAAgBT,oBAAAA,QAAAA,EAAAA;;8BACjBI,GAAA,CAACU,YAAAA,EAAAA;oBAAaH,aAAW,EAAA;;;;;AAIjC,CAAA;AAEA,MAAMI,QAAAA,GAAW,CAAC,EAAEC,MAAM,EAAEhB,QAAQ,EAAE,GAAGpB,KAAAA,EAAsB,GAAA;IAC7D,MAAM,EAAEqB,UAAU,EAAE,GAAGC,aAAAA,EAAAA;AAEvB,IAAA,MAAMe,WAAWhB,UAAAA,KAAee,MAAAA;AAEhC,IAAA,qBACEZ,GAAA,CAACC,IAAAA,EAAAA;AACC,QAAA,QAAA,gBAAAC,IAAA,CAACjB,eAAAA,EAAAA;AAAiB,YAAA,GAAGT,KAAK;YAAEJ,OAAAA,EAASyC,QAAAA;;8BACnCb,GAAA,CAACK,cAAAA,EAAAA;AAAgBT,oBAAAA,QAAAA,EAAAA;;8BACjBI,GAAA,CAACpC,cAAAA,EAAAA;oBAAe2C,aAAW,EAAA,IAAA;oBAACO,OAAAA,EAAQ,IAAA;AAAKC,oBAAAA,UAAAA,EAAYF,WAAW,MAAA,GAAS,EAAA;AACtED,oBAAAA,QAAAA,EAAAA;;;;;AAKX,CAAA;AAMA,MAAMI,IAAAA,GAAO,CAAC,EAAEpB,QAAQ,EAAE,GAAGpB,KAAAA,EAAkB,iBAC7CwB,GAAA,CAACC,IAAAA,EAAAA;AACC,QAAA,QAAA,gBAAAC,IAAA,CAACR,WAAAA,EAAAA;AAAa,YAAA,GAAGlB,KAAK;YAAEyC,EAAAA,EAAG,KAAA;;8BACzBjB,GAAA,CAACK,cAAAA,EAAAA;AAAgBT,oBAAAA,QAAAA,EAAAA;;8BACjBI,GAAA,CAACpC,cAAAA,EAAAA;oBAAe2C,aAAW,EAAA,IAAA;oBAACW,KAAK,EAAA,IAAA;AAAC,oBAAA,QAAA,EAAA;;;;;AAejC,MAAMC,gBAAAA,GAAmB,CAAC,EAC/BtB,UAAU,EACVuB,YAAY,EACZC,UAAAA,EAAY,EAAEZ,SAAS,EAAE,EACH,GAAA;IACtB,MAAM,EAAEa,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAE1B,IAAA,MAAMC,qBAAqB3B,UAAAA,GAAa,CAAA;AACxC,IAAA,MAAM4B,iBAAiB5B,UAAAA,GAAa,CAAA;AAEpC,IAAA,MAAM6B,UAAAA,GAAa;sBACjB1B,GAAA,CAACW,QAAAA,EAAAA;YAECC,MAAAA,EAAQ,CAAA;YACRe,OAAAA,EAAS,IAAA;gBACPP,YAAAA,CAAa,CAAA,CAAA;AACf,YAAA,CAAA;sBAECE,aAAAA,CACC;gBAAEM,EAAAA,EAAI,6BAAA;gBAA+BC,cAAAA,EAAgB;aAAoB,EACzE;gBAAEC,IAAAA,EAAM;AAAE,aAAA;AARP,SAAA,EAAA,CAAA;AAWR,KAAA;AAED,IAAA,IAAIrB,aAAa,CAAA,EAAG;QAClB,MAAMsB,KAAAA,GAAQC,KAAAA,CAAMC,IAAI,CAAC;YAAEC,MAAAA,EAAQzB;SAAU,CAAA,CAC1C0B,GAAG,CAAC,CAACC,CAAAA,EAAGC,IAAMA,CAAAA,GAAI,CAAA,CAAA,CAClBF,GAAG,CAAC,CAACvB,MAAAA,GAAAA;AACJ,YAAA,qBACEZ,GAAA,CAACW,QAAAA,EAAAA;gBAAsBC,MAAAA,EAAQA,MAAAA;AAAQe,gBAAAA,OAAAA,EAAS,IAAMP,YAAAA,CAAaR,MAAAA,CAAAA;0BAChEU,aAAAA,CACC;oBAAEM,EAAAA,EAAI,6BAAA;oBAA+BC,cAAAA,EAAgB;iBAAoB,EACzE;oBAAEC,IAAAA,EAAMlB;AAAO,iBAAA;AAHJA,aAAAA,EAAAA,MAAAA,CAAAA;AAOnB,QAAA,CAAA,CAAA;AAEF,QAAA,qBACEV,IAAA,CAACoC,UAAAA,EAAAA;YAAWzC,UAAAA,EAAYA,UAAAA;YAAYY,SAAAA,EAAWA,SAAAA;;8BAC7CT,GAAA,CAACL,YAAAA,EAAAA;AAAagC,oBAAAA,OAAAA,EAAS,IAAMP,YAAAA,CAAaI,kBAAAA,CAAAA;8BACvCF,aAAAA,CAAc;wBACbM,EAAAA,EAAI,sCAAA;wBACJC,cAAAA,EAAgB;AAClB,qBAAA;;AAEDE,gBAAAA,KAAAA;8BACD/B,GAAA,CAACQ,QAAAA,EAAAA;AAASmB,oBAAAA,OAAAA,EAAS,IAAMP,YAAAA,CAAaK,cAAAA,CAAAA;8BACnCH,aAAAA,CAAc;wBACbM,EAAAA,EAAI,kCAAA;wBACJC,cAAAA,EAAgB;AAClB,qBAAA;;;;AAIR,IAAA;AAEA,IAAA,IAAIU,qBAA+B,EAAE;AACrC,IAAA,MAAMC,YAA2B,EAAE;AACnC,IAAA,IAAIC,oBAA8B,EAAE;AACpC,IAAA,MAAMC,cAA6B,EAAE;AAErC,IAAA,IAAIjC,YAAY,CAAA,EAAG;QACjB+B,SAAAA,CAAUG,IAAI,eACZ3C,GAAA,CAACW,QAAAA,EAAAA;YAAyBC,MAAAA,EAAQH,SAAAA;AAAWkB,YAAAA,OAAAA,EAAS,IAAMP,YAAAA,CAAaX,SAAAA,CAAAA;sBACtEa,aAAAA,CACC;gBAAEM,EAAAA,EAAI,6BAAA;gBAA+BC,cAAAA,EAAgB;aAAoB,EACzE;gBAAEC,IAAAA,EAAMrB;AAAU,aAAA;AAHPA,SAAAA,EAAAA,SAAAA,CAAAA,CAAAA;AAOnB,IAAA;IAEA,IAAIZ,UAAAA,KAAe,CAAA,IAAKY,SAAAA,IAAa,CAAA,EAAG;QACtC8B,kBAAAA,GAAqB;AAAC,YAAA;AAAE,SAAA;AAC1B,IAAA;IAEA,IAAI1C,UAAAA,KAAe,CAAA,IAAKY,SAAAA,IAAa,CAAA,EAAG;AACtC,QAAA,IAAIA,cAAc,CAAA,EAAG;YACnB8B,kBAAAA,GAAqB;AAAC,gBAAA,CAAA;AAAG,gBAAA,CAAA;AAAG,gBAAA;AAAE,aAAA;QAChC,CAAA,MAAO,IAAI9B,cAAc,CAAA,EAAG;YAC1B8B,kBAAAA,GAAqB;AAAC,gBAAA;AAAE,aAAA;QAC1B,CAAA,MAAO;YACLA,kBAAAA,GAAqB;AAAC,gBAAA,CAAA;AAAG,gBAAA;AAAE,aAAA;AAC7B,QAAA;AACF,IAAA;IAEA,IAAI1C,UAAAA,KAAe,CAAA,IAAKY,SAAAA,IAAa,CAAA,EAAG;QACtC8B,kBAAAA,GAAqB;AAAC,YAAA;AAAE,SAAA;AAC1B,IAAA;IAEA,IAAI1C,UAAAA,KAAeY,SAAAA,IAAaA,SAAAA,IAAa,CAAA,EAAG;QAC9CgC,iBAAAA,GAAoB;YAAChC,SAAAA,GAAY;AAAE,SAAA;AACrC,IAAA;AAEA,IAAA,IAAIZ,UAAAA,KAAeY,SAAAA,GAAY,CAAA,IAAKA,SAAAA,GAAY,CAAA,EAAG;QACjDgC,iBAAAA,GAAoB;YAAC5C,UAAAA,GAAa,CAAA;AAAGA,YAAAA,UAAAA;YAAYA,UAAAA,GAAa;AAAE,SAAA;AAClE,IAAA;AAEA,IAAA,IAAIA,eAAeY,SAAAA,GAAY,CAAA,IAAKA,SAAAA,GAAY,CAAA,IAAKZ,aAAa,CAAA,EAAG;QACnE4C,iBAAAA,GAAoB;YAAC5C,UAAAA,GAAa,CAAA;YAAGA,UAAAA,GAAa,CAAA;AAAGA,YAAAA,UAAAA;YAAYA,UAAAA,GAAa;AAAE,SAAA;AAClF,IAAA;AAEA,IAAA,IAAIA,UAAAA,KAAeY,SAAAA,GAAY,CAAA,IAAKA,SAAAA,GAAY,CAAA,EAAG;QACjDgC,iBAAAA,GAAoB;AAAC5C,YAAAA,UAAAA;YAAYA,UAAAA,GAAa;AAAE,SAAA;AAClD,IAAA;IAEA4C,iBAAAA,CAAkBG,OAAO,CAAC,CAAChC,MAAAA,GAAAA;QACzB4B,SAAAA,CAAUK,OAAO,eACf3C,IAAA,CAACS,QAAAA,EAAAA;YAAsBC,MAAAA,EAAQA,MAAAA;AAAQe,YAAAA,OAAAA,EAAS,IAAMP,YAAAA,CAAaR,MAAAA,CAAAA;;AAAS,gBAAA,aAAA;AAC9DA,gBAAAA;;AADCA,SAAAA,EAAAA,MAAAA,CAAAA,CAAAA;AAInB,IAAA,CAAA,CAAA;IAEA2B,kBAAAA,CAAmBK,OAAO,CAAC,CAAChC,MAAAA,GAAAA;QAC1Bc,UAAAA,CAAWiB,IAAI,eACb3C,GAAA,CAACW,QAAAA,EAAAA;YAAsBC,MAAAA,EAAQA,MAAAA;AAAQe,YAAAA,OAAAA,EAAS,IAAMP,YAAAA,CAAaR,MAAAA,CAAAA;sBAChEU,aAAAA,CACC;gBAAEM,EAAAA,EAAI,6BAAA;gBAA+BC,cAAAA,EAAgB;aAAoB,EACzE;gBAAEC,IAAAA,EAAMlB;AAAO,aAAA;AAHJA,SAAAA,EAAAA,MAAAA,CAAAA,CAAAA;AAOnB,IAAA,CAAA,CAAA;AAEA,IAAA,IACE,CAAC;AAAC,QAAA,CAAA;AAAG,QAAA;AAAE,KAAA,CAACkC,QAAQ,CAACjD,UAAAA,CAAAA,IACjBA,UAAAA,IAAcY,SAAAA,GAAY,CAAA,IAC1BiB,UAAAA,CAAWQ,MAAM,GAAGM,SAAAA,CAAUN,MAAM,GAAG,CAAA,EACvC;AACA,QAAA,MAAMa,mBAAAA,GAAsB;YAAClD,UAAAA,GAAa,CAAA;AAAGA,YAAAA,UAAAA;YAAYA,UAAAA,GAAa;AAAE,SAAA;QAExEkD,mBAAAA,CAAoBH,OAAO,CAAC,CAAChC,MAAAA,GAAAA;YAC3B8B,WAAAA,CAAYC,IAAI,eACd3C,GAAA,CAACW,QAAAA,EAAAA;gBAAsBC,MAAAA,EAAQA,MAAAA;AAAQe,gBAAAA,OAAAA,EAAS,IAAMP,YAAAA,CAAaR,MAAAA,CAAAA;0BAChEU,aAAAA,CACC;oBAAEM,EAAAA,EAAI,6BAAA;oBAA+BC,cAAAA,EAAgB;iBAAoB,EACzE;oBAAEC,IAAAA,EAAMlB;AAAO,iBAAA;AAHJA,aAAAA,EAAAA,MAAAA,CAAAA,CAAAA;AAOnB,QAAA,CAAA,CAAA;AACF,IAAA;IAEA,MAAMoC,4BAAAA,GACJvC,YAAY,CAAA,IAAMA,SAAAA,KAAc,MAAMZ,UAAAA,KAAe,CAAA,IAAKA,UAAAA,KAAe,CAAA,CAAA;AAC3E,IAAA,MAAMoD,uBAAuBP,WAAAA,CAAYR,MAAM,GAAG,CAAA,IAAKrC,UAAAA,GAAa,KAAKY,SAAAA,GAAY,CAAA;IAErF,MAAMyC,qBAAAA,GAAwBD,oBAAAA,GAC1BxC,SAAAA,GAAYZ,UAAAA,GAAa,CAAA,GACzBY,YAAYiB,UAAAA,CAAWQ,MAAM,GAAGM,SAAAA,CAAUN,MAAM;IACpD,MAAMiB,eAAAA,GAAkBF,oBAAAA,GACpBxC,SAAAA,GAAYiB,UAAAA,CAAWQ,MAAM,GAAGM,SAAAA,CAAUN,MAAM,GAChDzB,SAAAA,GAAYZ,UAAAA,GAAa,CAAA;AAE7B,IAAA,qBACEK,IAAA,CAACoC,UAAAA,EAAAA;QAAWzC,UAAAA,EAAYA,UAAAA;QAAYY,SAAAA,EAAWA,SAAAA;;0BAC7CT,GAAA,CAACL,YAAAA,EAAAA;AAAagC,gBAAAA,OAAAA,EAAS,IAAMP,YAAAA,CAAaI,kBAAAA,CAAAA;0BACvCF,aAAAA,CAAc;oBACbM,EAAAA,EAAI,sCAAA;oBACJC,cAAAA,EAAgB;AAClB,iBAAA;;AAEDH,YAAAA,UAAAA;AACAuB,YAAAA,oBAAAA,kBACCjD,GAAA,CAACgB,IAAAA,EAAAA;0BACEM,aAAAA,CACC;oBACEM,EAAAA,EAAI,uCAAA;oBACJC,cAAAA,EAAgB;iBAClB,EACA;oBAAEjB,MAAAA,EAAQsC;AAAsB,iBAAA;;AAIrCR,YAAAA,WAAAA;AACAM,YAAAA,4BAAAA,kBACChD,GAAA,CAACgB,IAAAA,EAAAA;0BACEM,aAAAA,CACC;oBACEM,EAAAA,EAAI,uCAAA;oBACJC,cAAAA,EAAgB;iBAClB,EACA;oBAAEjB,MAAAA,EAAQuC;AAAgB,iBAAA;;AAI/BX,YAAAA,SAAAA;0BACDxC,GAAA,CAACQ,QAAAA,EAAAA;AAASmB,gBAAAA,OAAAA,EAAS,IAAMP,YAAAA,CAAaK,cAAAA,CAAAA;0BACnCH,aAAAA,CAAc;oBACbM,EAAAA,EAAI,kCAAA;oBACJC,cAAAA,EAAgB;AAClB,iBAAA;;;;AAIR;;;;"}