{"version":3,"file":"index-CdsKE3h5.js","sources":["../../../app/javascript/entrypoints/components/PageList/index.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { Pagination } from '../../output/models/Pagination';\n\nimport { Link } from '../Link';\n\nimport { classNames } from '../../utils';\n\ninterface Props {\n pagination: Pagination;\n currentPage?: number;\n path?: string;\n className: string;\n}\n\nconst SIZE = 20;\n\nexport const PageList: React.FC = ({ pagination, currentPage, path, className }) => {\n const total = pagination.pages;\n const current = pagination.page;\n const remain = total - current;\n const pages = Array(total)\n .fill(0)\n .map((_, index) => index + 1)\n .filter((i) => {\n if (remain < SIZE && current <= SIZE) {\n return true;\n } else if (current <= SIZE) {\n return i <= SIZE || i === total - 1 || i === total;\n } else {\n return i <= 2 || i > total - SIZE;\n }\n });\n\n return (\n \n );\n};\n\nconst to = (pagination: Pagination, page: number, path?: string): string | { search: string } => {\n if (path) {\n return `${path}?${search(pagination, page)}`;\n } else {\n return { search: search(pagination, page) };\n }\n};\n\nconst search = (pagination: Pagination, page: number) => {\n const search = pagination.path_params ? [pagination.path_params] : [];\n\n if (pagination.path_params) {\n search.push(pagination.path_params);\n }\n\n if (pagination.search_params) {\n search.push(pagination.search_params);\n }\n\n return page === 1 ? search.join('&') : search.concat([`page=${page}`]).join('&');\n};\n\nconst styles = {\n default: 'border-l-0',\n first: 'rounded-l',\n last: 'rounded-r',\n active: 'bg-gray-heavy-light text-dark-gray hover:text-dark-gray focus:text-dark-gray',\n};\n"],"names":["SIZE","PageList","pagination","currentPage","path","className","total","current","remain","pages","_","index","i","classNames","page","jsx","Link","to","styles","search"],"mappings":"4TAeA,MAAMA,EAAO,GAEAC,EAA4B,CAAC,CAAE,WAAAC,EAAY,YAAAC,EAAa,KAAAC,EAAM,UAAAC,KAAgB,CACzF,MAAMC,EAAQJ,EAAW,MACnBK,EAAUL,EAAW,KACrBM,EAASF,EAAQC,EACjBE,EAAQ,MAAMH,CAAK,EACtB,KAAK,CAAC,EACN,IAAI,CAACI,EAAGC,IAAUA,EAAQ,CAAC,EAC3B,OAAQC,GACHJ,EAASR,GAAQO,GAAWP,EACvB,GACEO,GAAWP,EACbY,GAAKZ,GAAQY,IAAMN,EAAQ,GAAKM,IAAMN,EAEtCM,GAAK,GAAKA,EAAIN,EAAQN,CAEhC,EAEH,aACG,KAAG,CAAA,UAAWa,EAAW,OAAQR,CAAS,EACxC,SAAMI,EAAA,IAAI,CAACK,EAAMH,IACfH,EAASR,GAAQc,IAASR,EAAQ,GAAOC,EAAUP,GAAQc,IAAS,EAClEC,EAAAA,IAAA,KAAA,CACC,SAACA,EAAAA,IAAA,OAAA,CAAK,UAAU,iHAAiH,eAEjI,CAHO,EAAAJ,CAIT,EAEAI,EAAAA,IAAC,KACC,CAAA,SAAAA,EAAA,IAACC,EAAA,CACC,GAAIC,EAAGf,EAAYY,EAAMV,CAAI,EAC7B,UAAWS,EACT,kHACAC,KAAUX,GAAeD,EAAW,OAASgB,EAAO,OACpDJ,IAAS,EAAII,EAAO,MAAQA,EAAO,QACnCJ,IAASZ,EAAW,OAASgB,EAAO,IACtC,EAEC,SAAAJ,CAAA,IAVIH,CAYT,CAGN,CAAA,CAAA,CAEJ,EAEMM,EAAK,CAACf,EAAwBY,EAAcV,IAC5CA,EACK,GAAGA,CAAI,IAAIe,EAAOjB,EAAYY,CAAI,CAAC,GAEnC,CAAE,OAAQK,EAAOjB,EAAYY,CAAI,CAAE,EAIxCK,EAAS,CAACjB,EAAwBY,IAAiB,CACvD,MAAMK,EAASjB,EAAW,YAAc,CAACA,EAAW,WAAW,EAAI,GAEnE,OAAIA,EAAW,aACbiB,EAAO,KAAKjB,EAAW,WAAW,EAGhCA,EAAW,eACbiB,EAAO,KAAKjB,EAAW,aAAa,EAG/BY,IAAS,EAAIK,EAAO,KAAK,GAAG,EAAIA,EAAO,OAAO,CAAC,QAAQL,CAAI,EAAE,CAAC,EAAE,KAAK,GAAG,CACjF,EAEMI,EAAS,CACb,QAAS,aACT,MAAO,YACP,KAAM,YACN,OAAQ,8EACV"}