UNPKG

@mantine/core

Version:

React components library focused on usability, accessibility and developer experience

1 lines 5.48 kB
{"version":3,"file":"Pagination.cjs","names":["factory","useProps","PaginationRoot","Group","PaginationFirst","PaginationPrevious","PaginationItems","PaginationNext","PaginationLast","classes","PaginationControl","PaginationDots"],"sources":["../../../src/components/Pagination/Pagination.tsx"],"sourcesContent":["import { factory, Factory, MantineSpacing, useProps } from '../../core';\nimport { Group } from '../Group/Group';\nimport { PaginationIcon } from './Pagination.icons';\nimport { PaginationControl } from './PaginationControl/PaginationControl';\nimport { PaginationDots } from './PaginationDots/PaginationDots';\nimport {\n PaginationFirst,\n PaginationLast,\n PaginationNext,\n PaginationPrevious,\n} from './PaginationEdges/PaginationEdges';\nimport { PaginationItems } from './PaginationItems/PaginationItems';\nimport {\n PaginationRoot,\n PaginationRootCssVariables,\n PaginationRootProps,\n PaginationRootStylesNames,\n} from './PaginationRoot/PaginationRoot';\nimport classes from './Pagination.module.css';\n\nexport type PaginationStylesNames = PaginationRootStylesNames;\nexport type PaginationCssVariables = PaginationRootCssVariables;\n\nexport interface PaginationProps extends PaginationRootProps {\n /** If set, first/last controls are displayed @default false */\n withEdges?: boolean;\n\n /** If set, next/previous controls are displayed @default true */\n withControls?: boolean;\n\n /** Props passed down to next/previous/first/last controls */\n getControlProps?: (control: 'first' | 'previous' | 'last' | 'next') => Record<string, any>;\n\n /** Next control icon component */\n nextIcon?: PaginationIcon;\n\n /** Previous control icon component */\n previousIcon?: PaginationIcon;\n\n /** Last control icon component */\n lastIcon?: PaginationIcon;\n\n /** First control icon component */\n firstIcon?: PaginationIcon;\n\n /** Dots icon component */\n dotsIcon?: PaginationIcon;\n\n /** Key of `theme.spacing`, gap between controls @default 8 */\n gap?: MantineSpacing;\n\n /** If set, the pagination is hidden when only one page is available (`total={1}`) @default false */\n hideWithOnePage?: boolean;\n\n /** If set to `false`, page number buttons are hidden, only next/previous controls remain @default `true` */\n withPages?: boolean;\n}\n\nexport type PaginationFactory = Factory<{\n props: PaginationProps;\n ref: HTMLDivElement;\n stylesNames: PaginationStylesNames;\n vars: PaginationCssVariables;\n staticComponents: {\n Root: typeof PaginationRoot;\n Control: typeof PaginationControl;\n Dots: typeof PaginationDots;\n First: typeof PaginationFirst;\n Last: typeof PaginationLast;\n Next: typeof PaginationNext;\n Previous: typeof PaginationPrevious;\n Items: typeof PaginationItems;\n };\n}>;\n\nconst defaultProps = {\n withControls: true,\n withPages: true,\n siblings: 1,\n boundaries: 1,\n gap: 8,\n} satisfies Partial<PaginationProps>;\n\nexport const Pagination = factory<PaginationFactory>((_props) => {\n const props = useProps('Pagination', defaultProps, _props);\n const {\n withEdges,\n withControls,\n getControlProps,\n nextIcon,\n previousIcon,\n lastIcon,\n firstIcon,\n dotsIcon,\n total,\n gap,\n hideWithOnePage,\n withPages,\n ...others\n } = props;\n\n if (total <= 0 || (hideWithOnePage && total === 1)) {\n return null;\n }\n\n return (\n <PaginationRoot total={total} {...others}>\n <Group gap={gap}>\n {withEdges && <PaginationFirst icon={firstIcon} {...getControlProps?.('first')} />}\n {withControls && (\n <PaginationPrevious icon={previousIcon} {...getControlProps?.('previous')} />\n )}\n {withPages && <PaginationItems dotsIcon={dotsIcon} />}\n {withControls && <PaginationNext icon={nextIcon} {...getControlProps?.('next')} />}\n {withEdges && <PaginationLast icon={lastIcon} {...getControlProps?.('last')} />}\n </Group>\n </PaginationRoot>\n );\n});\n\nPagination.classes = classes;\nPagination.displayName = '@mantine/core/Pagination';\nPagination.Root = PaginationRoot;\nPagination.Control = PaginationControl;\nPagination.Dots = PaginationDots;\nPagination.First = PaginationFirst;\nPagination.Last = PaginationLast;\nPagination.Next = PaginationNext;\nPagination.Previous = PaginationPrevious;\nPagination.Items = PaginationItems;\n"],"mappings":";;;;;;;;;;;;;AA2EA,MAAM,eAAe;CACnB,cAAc;CACd,WAAW;CACX,UAAU;CACV,YAAY;CACZ,KAAK;CACN;AAED,MAAa,aAAaA,gBAAAA,SAA4B,WAAW;CAE/D,MAAM,EACJ,WACA,cACA,iBACA,UACA,cACA,UACA,WACA,UACA,OACA,KACA,iBACA,WACA,GAAG,WAdSC,kBAAAA,SAAS,cAAc,cAAc,OAAO;AAiB1D,KAAI,SAAS,KAAM,mBAAmB,UAAU,EAC9C,QAAO;AAGT,QACE,iBAAA,GAAA,kBAAA,KAACC,uBAAAA,gBAAD;EAAuB;EAAO,GAAI;YAChC,iBAAA,GAAA,kBAAA,MAACC,cAAAA,OAAD;GAAY;aAAZ;IACG,aAAa,iBAAA,GAAA,kBAAA,KAACC,wBAAAA,iBAAD;KAAiB,MAAM;KAAW,GAAI,kBAAkB,QAAQ;KAAI,CAAA;IACjF,gBACC,iBAAA,GAAA,kBAAA,KAACC,wBAAAA,oBAAD;KAAoB,MAAM;KAAc,GAAI,kBAAkB,WAAW;KAAI,CAAA;IAE9E,aAAa,iBAAA,GAAA,kBAAA,KAACC,wBAAAA,iBAAD,EAA2B,UAAY,CAAA;IACpD,gBAAgB,iBAAA,GAAA,kBAAA,KAACC,wBAAAA,gBAAD;KAAgB,MAAM;KAAU,GAAI,kBAAkB,OAAO;KAAI,CAAA;IACjF,aAAa,iBAAA,GAAA,kBAAA,KAACC,wBAAAA,gBAAD;KAAgB,MAAM;KAAU,GAAI,kBAAkB,OAAO;KAAI,CAAA;IACzE;;EACO,CAAA;EAEnB;AAEF,WAAW,UAAUC,0BAAAA;AACrB,WAAW,cAAc;AACzB,WAAW,OAAOP,uBAAAA;AAClB,WAAW,UAAUQ,0BAAAA;AACrB,WAAW,OAAOC,uBAAAA;AAClB,WAAW,QAAQP,wBAAAA;AACnB,WAAW,OAAOI,wBAAAA;AAClB,WAAW,OAAOD,wBAAAA;AAClB,WAAW,WAAWF,wBAAAA;AACtB,WAAW,QAAQC,wBAAAA"}