Proporciona items con un id único y estable, un title y contenido HTML opcional saneado. multiple permite varios paneles abiertos. Enlaza expandedKeys y acepta expandedKeysChange si la aplicación controla el estado, o deja expandedKeys sin enlazar y utiliza initialExpandedKeys una sola vez. Mantén esa elección durante la vida de la instancia. Los Templates de cabecera y cuerpo reciben el elemento y su estado expanded.
Estos valores corresponden a la vista previa actual. Los handlers, imports de Core y templates completos están en Código.
configured-state.ts
import { signal } from '@angular/core';
export const items = signal([
{
"id": "delivery",
"title": "Entrega",
"content": "Los pedidos llegan en dos días laborables."
},
{
"id": "returns",
"title": "Devoluciones",
"content": "Contacta con soporte en un plazo de 30 días."
},
{
"id": "unavailable",
"title": "Próximamente",
"disabled": true
}
]);
export const expanded = signal([
"delivery"
]);
Estos inputs requieren un modelo o función, no un checkbox. Modifica el campo del mismo nombre en el componente de Código y enlázalo al template; los datos que ya usa esta vista previa se muestran en el estado anterior.
initialExpandedKeys · readonly K[]
En Código: define initialExpandedKeys con este tipo y utiliza [initialExpandedKeys]="initialExpandedKeys" (o initialExpandedKeys() si es una signal).
expandedKeysChange propone el array completo de claves abiertas. panelToggle comunica la acción individual como { id, expanded }. initialExpandedKeys no sustituye al estado aplicado de forma reactiva.
Tab llega a las cabeceras habilitadas. Intro o Espacio abre o cierra una sección. Las flechas arriba/abajo, Inicio y Fin mueven el foco entre cabeceras, omitiendo las deshabilitadas. El contenido cerrado es inerte. No anides controles interactivos en las cabeceras personalizadas.
Tecla
Acción
Tab
Accede a las cabeceras habilitadas y a los controles de las secciones abiertas.
Los Inputs y Outputs corresponden al paquete Core fijado. Los tipos con nombre enlazan a sus definiciones. Templates incluye ejemplos ejecutables de cada zona disponible.
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
bordered
boolean
true
[bordered]
Dibuja el borde exterior.
expandedKeys
readonly K[] | undefined
undefined
[expandedKeys]
Claves abiertas aplicadas; undefined elige el modo no controlado una vez.
initialExpandedKeys
readonly K[]
[]
[initialExpandedKeys]
Claves iniciales, aplicadas una sola vez cuando se omite expandedKeys.
items
readonly T[]
[]
[items]
Elementos con id único estable, title, contenido HTML opcional y disabled.
multiple
boolean
false
[multiple]
Permite más de un panel abierto.
Outputs
Escucha un evento con (evento)="handler($event)". La tabla indica qué datos recibe tu función y cómo utilizarlos.
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.
Utiliza los tokens públicos de superficie, texto, espaciado y foco. Comprueba el contenido 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-focus-ring
Anillo normal del foco de teclado
Compartido con otros consumidores de Core; limita el cambio a un ámbito.