Saltar al contenido principal
Neural UIv2.0.0Documentación
Ver v1 GitHub

Pagination

Navega por una colección con página y cantidad de elementos controladas.

Categoría
Datos y jerarquía
Import
@neural-ui/core/pagination
Selector
neu-pagination
import { NeuPaginationComponent } from '@neural-ui/core/pagination';

Uso

page empieza en 1. Proporciona total y pageSize, acepta pageChange y utiliza esos valores para cargar o recortar los datos. pageSizeOptions añade un selector opcional. Acepta pageSizeChange y pageChange: al cambiar la cantidad se propone una página que mantiene visible el primer registro. maxVisible limita el tramo numerado; las colecciones largas conservan primera y última página con puntos suspensivos.

Ejemplos

Prueba el comportamiento y abre Código para consultar la implementación.

Ejemplos
  • Pedido 1
  • Pedido 2
  • Pedido 3
  • Pedido 4
  • Pedido 5
  • Pedido 6
  • Pedido 7
  • Pedido 8
  • Pedido 9
  • Pedido 10

La aplicación recorta la colección; Pagination solo propone cambios de página.

Prueba y configura

Cambia las opciones y prueba el resultado. El template generado sigue tu configuración; Código contiene la implementación ejecutable completa.

Prueba y configura

Página actual: 1 · Total: 84

template.html
<neu-pagination
  [page]="page()"
  [total]="84"
  [pageSize]="pageSize()"
  [maxVisible]="5"
  [pageSizeOptions]="[5,10,20]"
  pageSizeAriaLabel="Elementos por página"
  (pageChange)="page.set($event)"
  (pageSizeChange)="changeSize($event)"
/>

Datos y contenido

pageChange y pageSizeChange son propuestas, no cargan datos. Mantén una única página y cantidad aplicadas en la aplicación. Pagination no modifica ni consulta tus registros.

Accesibilidad y teclado

Pagination es una zona de navegación con nombre accesible. La página actual usa aria-current="page". Anterior y siguiente se deshabilitan en los extremos. El selector opcional tiene su propio nombre accesible. Los botones admiten Tab, Intro y Espacio.

Tecla
Acción
Tab Recorre los controles de página disponibles y el selector opcional de tamaño de página.
Enter Activa el botón de página enfocado; las acciones no disponibles en los extremos permanecen desactivadas.
Space Activa el botón de página enfocado; las acciones no disponibles en los extremos permanecen desactivadas.
ArrowUp / ArrowDown En el selector abierto de tamaño de página, recorre sus opciones.
Escape Cierra el selector abierto de tamaño de página.

API

Inputs y Outputs corresponden al paquete fijado. Los tipos con nombre enlazan a sus definiciones; cada Template disponible tiene un ejemplo ejecutable.

Inputs

Configura el componente con [propiedad]="valor". Tu aplicación proporciona estos valores; el componente no debe reemplazar el estado que le pasas.

Nombre
Tipo
Por defecto
Uso en el template
Descripción
maxVisiblenumber7[maxVisible]Tramo numerado máximo, sin anterior/siguiente; utiliza al menos 3.
pagenumber1[page]Número de página aplicado, desde 1.
pageSizenumber10[pageSize]Cantidad positiva aplicada de registros por página.
pageSizeAriaLabelstring'Items per page'[pageSizeAriaLabel]Nombre accesible del selector opcional.
pageSizeOptionsreadonly number[][][pageSizeOptions]Cantidades positivas; el array vacío oculta el selector.
totalnumber0[total]Cantidad total de registros, no de páginas.

Outputs

Escucha un evento con (evento)="handler($event)". La tabla indica qué datos recibe tu función y cómo utilizarlos.

Nombre
Valor emitido
Uso en el template
Descripción
pageChangenumber(pageChange)="onPageChange($event)"Propone una página desde 1 ajustada al rango.
pageSizeChangenumber(pageSizeChange)="onPageSizeChange($event)"Propone la siguiente cantidad por página.

Templates

ng-content proyecta contenido dentro del componente. Los inputs TemplateRef reciben un template; las directivas ng-template identifican templates con un contexto tipado. Una directiva compartida en el entrypoint no es necesariamente un slot de este componente.

Este componente no expone proyección de contenido ni templates públicos de personalización.

Estilos y tokens

Utiliza tokens públicos de espaciado, superficie, texto y foco. Comprueba el contenido proyectado y los controles en ambos temas y con anchos reducidos.

Tokens específicos

Este componente utiliza tokens compartidos del tema en lugar de tokens específicos.

Tokens compartidos utilizados

Sobrescríbelos en un contenedor local para afectar a este ejemplo. Una modificación en :root afecta a los demás componentes que utilizan el mismo token.

Token
Efecto aquí
Otros efectos
Valor / alternativa
--neu-border Bordes normales de controles y celdas Compartido con otros consumidores de Core; limita el cambio a un ámbito. rgba(15, 23, 42, 0.08)
--neu-border-hover Bordes de controles al pasar el puntero Compartido con otros consumidores de Core; limita el cambio a un ámbito. rgba(15, 23, 42, 0.16)
--neu-primary Color de marca en controles activos y énfasis Compartido con otros consumidores de Core; limita el cambio a un ámbito. #007aff
--neu-primary-dark Tono oscuro de marca; texto de Button outline y ghost en el tema claro Compartido con otros consumidores de Core; limita el cambio a un ámbito. #005fcc
--neu-primary-fg Contenido dibujado sobre el fondo primario Compartido con otros consumidores de Core; limita el cambio a un ámbito. #ffffff
--neu-primary-solid Fondo de las acciones de marca sólidas Compartido con otros consumidores de Core; limita el cambio a un ámbito. #006ee6
--neu-primary-solid-fg Contenido de las acciones de marca sólidas Compartido con otros consumidores de Core; limita el cambio a un ámbito. #ffffff
--neu-primary-solid-hover Fondo de las acciones sólidas al pasar el puntero Compartido con otros consumidores de Core; limita el cambio a un ámbito. #005fcc