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

ToggleButtonGroup

Selecciona una o varias opciones con un grupo de botones segmentados.

Categoría
Acciones
Import
@neural-ui/core/toggle-button-group
Selector
neu-toggle-button-group
import { NeuToggleButtonGroupComponent } from '@neural-ui/core/toggle-button-group';

Uso

Usa mode="single" para un valor o null; mode="multiple" utiliza un array de solo lectura. deselectable permite desmarcar una opción activa. options admite entradas desactivadas e iconos de aplicación. El Template sustituye el contenido visual mientras Core conserva el estado pulsado y el botón nativo.

Ejemplos

Prueba esta interacción gestionada por la aplicación. Código incluye los eventos y los datos iniciales.

Ejemplos

Valor actual: [ "week" ]

Eventos: 0

Prueba y configura

Cambia las opciones públicas, prueba el resultado y consulta el template actualizado. Código contiene la implementación ejecutable completa.

Prueba y configura

Valor actual: "week"

Eventos: 0

template.html
<neu-toggle-button-group
  mode="single"
  [options]="options()"
  [value]="value()"
  (valueChange)="acceptValue($event)"
  [size]="'md'"
  [deselectable]="true"
  [disabled]="false"
  [readonly]="false"
  [invalid]="false"
></neu-toggle-button-group>

Estado y eventos

Usa mode="single" para un valor o null; mode="multiple" utiliza un array de solo lectura. deselectable permite desmarcar una opción activa. options admite entradas desactivadas e iconos de aplicación. El Template sustituye el contenido visual mientras Core conserva el estado pulsado y el botón nativo.

Accesibilidad y teclado

Las flechas mueven el foco entre opciones habilitadas; Intro/Espacio selecciona. Tab entra y sale del grupo.

Tecla
Acción
Tab Entra o sale del grupo.
Arrow keys Mueve el foco entre opciones disponibles; el movimiento horizontal respeta la dirección del texto.
Home Enfoca la primera opción disponible.
End Enfoca la última opción disponible.
Enter Selecciona la opción enfocada.
Space Selecciona la opción enfocada.

API

Inputs, modelos y Outputs se extraen del paquete Core instalado. Los tipos públicos enlazan a sus definiciones. Los Templates incluyen ejemplos ejecutables.

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
compareWith(left: NeuToggleValue<T, V>, right: NeuToggleValue<T, V>) => booleanObject.isValor derivado[compareWith]Función para comparar valores seleccionados; utiliza una identidad de dominio estable.
deselectablebooleantrue[deselectable]Permite desmarcar una opción ya seleccionada.
dirtybooleanfalse[dirty]Estado del formulario que indica que el usuario ha cambiado el valor.
disabledbooleanfalse[disabled]Impide interactuar con este control.
errorsreadonly ValidationError.WithOptionalFieldTree[][][errors]Errores de validación proporcionados por el formulario o la aplicación.
hiddenbooleanfalse[hidden]Oculta el control según el estado del formulario.
invalidbooleanfalse[invalid]Muestra el estado inválido; no añade una regla de validación.
modeM'single' as MValor derivado[mode]single admite un valor; multiple admite un array de valores de solo lectura.
optionDisabledNeuOptionDisabledAccessor<NeuToggleOptionModel<T, V>> | nullnull[optionDisabled]Nombre de campo o función que indica si una opción está deshabilitada.
optionLabelNeuOptionLabelAccessor<NeuToggleOptionModel<T, V>> | nullnull[optionLabel]Nombre de campo o función que obtiene la etiqueta visible de la opción.
optionsreadonly NeuToggleOptionModel<T, V>[][][options]Registros de opciones cargados. Los accessors permiten usar tus propios objetos de dominio.
optionValue(option: NeuToggleOptionModel<T, V>) => NeuToggleValue<T, V>(option) => resolveNeuOptionValue<NeuToggleOptionModel<T, V>, NeuToggleValue<T, V>>(option)Valor derivado[optionValue]Nombre de campo o función que obtiene el valor guardado de la opción.
pendingbooleanfalse[pending]Estado del formulario que indica que hay una validación asíncrona pendiente.
readonlybooleanfalse[readonly]Mantiene visible el valor aplicado, pero impide editarlo.
requiredbooleanfalse[required]Marca el campo como obligatorio; utiliza un validador del formulario para exigirlo.
sizeNeuButtonSize'md'[size]Tamaño del control. El tipo indica la escala o unidad numérica admitida.
touchedbooleanfalse[touched]Estado del formulario que indica que el control ha sido visitado.

Models

Un modelo admite [(propiedad)]="signal" o la pareja [propiedad] y (propiedadChange). Elige una de las dos formas, no ambas.

Nombre
Tipo
Por defecto
Uso en el template
Descripción
valueNeuSelectionValue<NeuToggleValue<T, V>, M>null as NeuSelectionValue<NeuToggleValue<T, V>, M>Valor derivado[(value)]Valor editable del modelo gestionado por la aplicación.

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
optionActivatedNeuOptionActivatedEvent<NeuToggleOptionModel<T, V>, NeuToggleValue<T, V>>(optionActivated)="onOptionActivated($event)"Opción activada, su valor y el evento que la ha activado.
touchvoid(touch)="onTouch($event)"Notifica al formulario que el control ha sido visitado; no es un cambio de valor.

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.

Nombre
Mecanismo
Contrato
NeuToggleButtonItemDirectiveVer ejemplo Directiva pública de templateng-template[neuToggleButtonItem]

Cada ejemplo muestra un template diferente. Alterna entre Demo y Código para consultar su implementación, imports y estado.

NeuToggleButtonItemDirective

NeuToggleButtonItemDirective

NeuToggleButtonItemDirective

Valor actual: "week"

Eventos: 0

Public Types

Abre un tipo para consultar su definición y los campos de sus interfaces.

Estilos y tokens

Usa los tokens públicos de la referencia. El diseño del contenedor pertenece a tu aplicación; comprueba el resultado en modo claro y oscuro y en espacios estrechos.

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-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
--neu-radius Radio de las esquinas del control Compartido con otros consumidores de Core; limita el cambio a un ámbito. 8px