design-react-kit
Version:
Componenti React per Bootstrap 5
1 lines • 3.26 kB
Source Map (JSON)
{"version":3,"sources":["../../src/Pager/Pager.tsx"],"sourcesContent":["import React, { FC, HTMLAttributes, ElementType } from 'react';\nimport classNames from 'classnames';\n\nexport interface PagerProps extends HTMLAttributes<HTMLElement> {\n /** Etichetta di descrizione del contenuto del componente Pager */\n 'aria-label': string;\n /** Utilizzarlo in caso di utilizzo di componenti personalizzati */\n tag?: ElementType;\n /** Utilizzarlo in caso di utilizzo di componenti personalizzati per la l'elemento lista interno */\n listTag?: ElementType;\n /** Classi aggiuntive da usare per il componente Pager */\n className?: string;\n /** Classi aggiuntive da usare per il componente di lista interno Pager */\n listClassName?: string;\n /** Utilizzare questo attributo per indicare il numero totale di pagine */\n total?: { ariaLabel: string; label: string };\n testId?: string;\n}\n\nexport const Pager: FC<PagerProps> = ({\n className,\n tag = 'nav',\n listTag: ListTag = 'ul',\n listClassName,\n children,\n total,\n testId,\n ...attributes\n}) => {\n const Tag = tag;\n const classes = classNames(className, 'pagination-wrapper', {\n 'pagination-total': total\n });\n const listClasses = classNames(listClassName, 'pagination');\n const { ariaLabel, label } = total || {};\n const totalAriaLabel = ariaLabel ? <span className='visually-hidden'>{ariaLabel}</span> : null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const listChildren = React.Children.toArray(children).filter((child: any) => child.type.name === 'PaginationItem');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const extraChildren = React.Children.toArray(children).filter((child: any)=> child.type.name !== 'PaginationItem');\n\n // listChildren?.forEach(child => {\n // console.log(child)\n // })\n\n return (\n <Tag className={classes} {...attributes} data-testid={testId}>\n <ListTag className={listClasses}>{listChildren}</ListTag>\n {extraChildren}\n {total ? (\n <p>\n {totalAriaLabel}\n {label}\n </p>\n ) : null}\n </Tag>\n );\n};\n"],"mappings":"0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAuD,sBACvDC,EAAuB,2BAkBVH,EAAwB,CAAC,CACpC,UAAAI,EACA,IAAAC,EAAM,MACN,QAASC,EAAU,KACnB,cAAAC,EACA,SAAAC,EACA,MAAAC,EACA,OAAAC,EACA,GAAGC,CACL,IAAM,CACJ,IAAMC,EAAMP,EACNQ,KAAU,EAAAC,SAAWV,EAAW,qBAAsB,CAC1D,mBAAoBK,CACtB,CAAC,EACKM,KAAc,EAAAD,SAAWP,EAAe,YAAY,EACpD,CAAE,UAAAS,EAAW,MAAAC,CAAM,EAAIR,GAAS,CAAC,EACjCS,EAAiBF,EAAY,EAAAG,QAAA,cAAC,QAAK,UAAU,mBAAmBH,CAAU,EAAU,KAEpFI,EAAe,EAAAD,QAAM,SAAS,QAAQX,CAAQ,EAAE,OAAQa,GAAeA,EAAM,KAAK,OAAS,gBAAgB,EAE3GC,EAAgB,EAAAH,QAAM,SAAS,QAAQX,CAAQ,EAAE,OAAQa,GAAcA,EAAM,KAAK,OAAS,gBAAgB,EAMjH,OACE,EAAAF,QAAA,cAACP,EAAA,CAAI,UAAWC,EAAU,GAAGF,EAAY,cAAaD,GACpD,EAAAS,QAAA,cAACb,EAAA,CAAQ,UAAWS,GAAcK,CAAa,EAC9CE,EACAb,EACC,EAAAU,QAAA,cAAC,SACED,EACAD,CACH,EACE,IACN,CAEJ","names":["Pager_exports","__export","Pager","__toCommonJS","import_react","import_classnames","className","tag","ListTag","listClassName","children","total","testId","attributes","Tag","classes","classNames","listClasses","ariaLabel","label","totalAriaLabel","React","listChildren","child","extraChildren"]}