Componente Breadcrumbs para Angular | ng-hub-ui-breadcrumbs

Componente breadcrumbs para Angular con integración con Router, plantillas personalizadas, soporte RTL y tokens de estilo flexibles.

Referencia API

Aquí tienes el contrato completo de breadcrumbs: todo lo que puedes enlazar, escuchar, proyectar y personalizar, reunido en un solo sitio. Enlaza lo que necesites y dale el estilo que quieras — es standalone y reactivo con signals.

Inputs

Ajusta breadcrumbs a tu gusto con 7 inputs. Se enlazan como cualquier @Input de Angular.

NombreTipoPor defectoDescripción
itemsBreadcrumbItem[] | nullnullRuta proporcionada por el consumidor, que sustituye a la derivada del router. Si se deja en null, el componente sigue leyendo HubBreadcrumbsService.
variantstring—Acento semántico para los enlaces del breadcrumb (p.ej. primary, success) o cualquier token personalizado.
truncateItemsbooleanfalseSi es true, recorta cada etiqueta a --hub-breadcrumb-max-item-width con puntos suspensivos y muestra un tooltip cuando desborda. También alcanza a una plantilla hubBreadcrumbItem: el componente envuelve el contenido proyectado en un span.hub-breadcrumb__custom propio y recorta esa caja, porque los estilos encapsulados no llegan a elementos que pertenecen al componente consumidor.
maxItemsnumber | undefinedundefinedLongitud a partir de la cual la ruta se colapsa tras un indicador. Undefined nunca colapsa, por larga que sea la ruta.
itemsBeforeCollapsenumber1Migas que se conservan al principio de una ruta colapsada.
itemsAfterCollapsenumber1Migas que se conservan al final de una ruta colapsada, incluida la página actual.
collapsedAriaLabelstring'Show the hidden breadcrumb items'Nombre accesible del indicador colapsado, para que la única cadena que anuncia este componente pueda traducirla la aplicación anfitriona.

Outputs

Reacciona a lo que hace breadcrumbs: 1 eventos a los que enganchar tu lógica.

NombreTipoDescripción
collapsedClickvoidSe emite al activar el indicador colapsado. La ruta se expande por sí sola; el evento es para consumidores que además quieran reaccionar.

Métodos

Controla breadcrumbs desde el código — 3 métodos en su superficie programática.

NombreFirmaDevuelveDescripción
HubBreadcrumbsService.breadcrumbsbreadcrumbs: Signal<BreadcrumbItem[]>Signal<BreadcrumbItem[]>La ruta como señal, y la superficie que lee el propio componente. Se envuelve una sola vez dentro del servicio y se suscribe una sola vez para toda la aplicación, de modo que una cabecera, el título del documento o cualquier otro lector deriva de ella sin async pipe.
HubBreadcrumbsService.breadcrumbs$breadcrumbs$: Observable<BreadcrumbItem[]>Observable<BreadcrumbItem[]>La misma ruta como Observable, que se mantiene para el código que ya compone con rxjs. Ambos miembros informan de la misma navegación: se toma el que ya hable el código que llama.
provideHubBreadcrumbTooltipprovideHubBreadcrumbTooltip(adapter: HubBreadcrumbTooltipAdapter): EnvironmentProvidersEnvironmentProvidersRegistra una sola vez un adaptador de tooltip para toda la aplicación, de modo que una etiqueta recortada muestre el tooltip de hub-ui en vez del atributo title nativo. Si se quita el provider, las etiquetas vuelven a title.

Templates

Hazlo tuyo — 2 plantillas para proyectar tu propio marcado.

NombreDescripciónEjemplo
hubBreadcrumbItemPlantilla personalizada para renderizar elementos individuales de las migas de pan<ng-template hubBreadcrumbItem let-item let-isLast="isLast"> @if (!isLast) { <a [routerLink]="item.url" class="breadcrumb-link">{{ item.label }}</a> } @else { <span class="breadcrumb-current">{{ item.label }}</span> } </ng-template>
hubBreadcrumbLabelDirectiva que muestra como tooltip el texto completo de una etiqueta recortada. El componente ya la aplica a las etiquetas que renderiza y a la caja en la que envuelve una plantilla hubBreadcrumbItem, así que ponerla a mano sirve solo para cambiar el texto del tooltip.<a class="my-crumb" hubBreadcrumbLabel [routerLink]="item.url">{{ item.label }}</a>