{"version":3,"file":"PaginationControllerItemButton.cjs","sources":["../../../src/components/Pagination/PaginationControllerItemButton.tsx"],"sourcesContent":["import { type ComponentProps, type ElementType, type FC, useMemo } from 'react'\n\nimport { Localizer } from '../../intl'\nimport { AnchorButton, Button } from '../Button'\nimport { FaAnglesLeftIcon, FaAnglesRightIcon, FaChevronLeftIcon, FaChevronRightIcon } from '../Icon'\n\ntype Props = {\n  targetPage: number\n  direction: 'prev' | 'next'\n  disabled: boolean\n  double?: boolean\n  hrefTemplate?: (pageNumber: number) => string\n  linkAs?: ElementType\n}\n\nconst ICON_MAPPER = {\n  prev: {\n    single: {\n      Icon: FaChevronLeftIcon,\n      alt: (\n        <Localizer\n          id=\"smarthr-ui/Pagination/controllerItemButtonPreviousLabel\"\n          defaultText=\"前へ\"\n        />\n      ),\n    },\n    double: {\n      Icon: FaAnglesLeftIcon,\n      alt: (\n        <Localizer id=\"smarthr-ui/Pagination/controllerItemButtonFirstLabel\" defaultText=\"最初へ\" />\n      ),\n    },\n  },\n  next: {\n    single: {\n      Icon: FaChevronRightIcon,\n      alt: (\n        <Localizer id=\"smarthr-ui/Pagination/controllerItemButtonNextLabel\" defaultText=\"次へ\" />\n      ),\n    },\n    double: {\n      Icon: FaAnglesRightIcon,\n      alt: (\n        <Localizer id=\"smarthr-ui/Pagination/controllerItemButtonLastLabel\" defaultText=\"最後へ\" />\n      ),\n    },\n  },\n}\n\nexport const PaginationControllerItemButton: FC<Props> = ({\n  direction,\n  disabled,\n  double,\n  targetPage,\n  hrefTemplate,\n  linkAs,\n}) => {\n  const { Icon, alt } = ICON_MAPPER[direction][double ? 'double' : 'single']\n\n  const { Component, attrs } = useMemo(() => {\n    if (hrefTemplate) {\n      return {\n        Component: AnchorButton,\n        // HINT: elementAsにnext/linkを設定した場合、hrefがundefinedでは\n        // エラーになってしまうため、undefinedで指定されていない状態にする\n        attrs: (disabled\n          ? {\n              href: undefined,\n              elementAs: undefined,\n            }\n          : {\n              href: hrefTemplate(targetPage),\n              elementAs: linkAs,\n            }) as ComponentProps<typeof AnchorButton>,\n      }\n    }\n\n    return {\n      Component: Button,\n      attrs: {\n        disabled,\n        value: targetPage,\n      } as ComponentProps<typeof Button>,\n    }\n  }, [targetPage, disabled, hrefTemplate, linkAs])\n\n  return (\n    <Component {...attrs} variant=\"secondary\" size=\"S\" className=\"shr-rounded-s\">\n      <Icon color={disabled ? 'TEXT_DISABLED' : 'TEXT_BLACK'} alt={alt} />\n    </Component>\n  )\n}\n"],"names":["FaChevronLeftIcon","_jsx","Localizer","FaAnglesLeftIcon","FaChevronRightIcon","FaAnglesRightIcon","useMemo","AnchorButton","Button"],"mappings":";;;;;;;;;;;;;;;AAeA,MAAM,WAAW,GAAG;AAClB,IAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE;AACN,YAAA,IAAI,EAAEA,wCAAiB;AACvB,YAAA,GAAG,GACDC,cAAA,CAACC,wBAAS,EAAA,EACR,EAAE,EAAC,yDAAyD,EAC5D,WAAW,EAAC,cAAI,GAChB,CACH;AACF,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,IAAI,EAAEC,uCAAgB;AACtB,YAAA,GAAG,GACDF,cAAA,CAACC,wBAAS,EAAA,EAAC,EAAE,EAAC,sDAAsD,EAAC,WAAW,EAAC,oBAAK,GAAG,CAC1F;AACF,SAAA;AACF,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE;AACN,YAAA,IAAI,EAAEE,yCAAkB;AACxB,YAAA,GAAG,GACDH,cAAA,CAACC,wBAAS,EAAA,EAAC,EAAE,EAAC,qDAAqD,EAAC,WAAW,EAAC,cAAI,GAAG,CACxF;AACF,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,IAAI,EAAEG,wCAAiB;AACvB,YAAA,GAAG,GACDJ,cAAA,CAACC,wBAAS,EAAA,EAAC,EAAE,EAAC,qDAAqD,EAAC,WAAW,EAAC,oBAAK,GAAG,CACzF;AACF,SAAA;AACF,KAAA;CACF;AAEM,MAAM,8BAA8B,GAAc,CAAC,EACxD,SAAS,EACT,QAAQ,EACR,MAAM,EACN,UAAU,EACV,YAAY,EACZ,MAAM,GACP,KAAI;IACH,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAE1E,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAGI,aAAO,CAAC,MAAK;QACxC,IAAI,YAAY,EAAE;YAChB,OAAO;AACL,gBAAA,SAAS,EAAEC,2CAAY;;;gBAGvB,KAAK,GAAG;AACN,sBAAE;AACE,wBAAA,IAAI,EAAE,SAAS;AACf,wBAAA,SAAS,EAAE,SAAS;AACrB;AACH,sBAAE;AACE,wBAAA,IAAI,EAAE,YAAY,CAAC,UAAU,CAAC;AAC9B,wBAAA,SAAS,EAAE,MAAM;qBAClB,CAAwC;aAC9C;QACH;QAEA,OAAO;AACL,YAAA,SAAS,EAAEC,+BAAM;AACjB,YAAA,KAAK,EAAE;gBACL,QAAQ;AACR,gBAAA,KAAK,EAAE,UAAU;AACe,aAAA;SACnC;IACH,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;AAEhD,IAAA,QACEP,cAAA,CAAC,SAAS,EAAA,EAAA,GAAK,KAAK,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,GAAG,EAAC,SAAS,EAAC,eAAe,EAAA,QAAA,EAC1EA,cAAA,CAAC,IAAI,EAAA,EAAC,KAAK,EAAE,QAAQ,GAAG,eAAe,GAAG,YAAY,EAAE,GAAG,EAAE,GAAG,EAAA,CAAI,EAAA,CAC1D;AAEhB;;;;"}