Aplica itemsChange.source e itemsChange.target juntos para no duplicar un elemento entre listas. sourceChange y targetChange aportan propuestas individuales; itemsChange contiene la transferencia completa. moveAllScope="filtered" mueve los elementos visibles habilitados; "all" utiliza la colección completa habilitada. No se mueven elementos disabled.
Cambia las opciones públicas, prueba el resultado y consulta el template actualizado. Código contiene la implementación ejecutable completa.
Prueba y configura
Disponibles
Seleccionados
Sin proyectos coincidentes
Eventos: 0
Los datos estructurados, callbacks y templates se muestran en los ejemplos y en la API.
El código añade las opciones avanzadas cuando difieren del valor predeterminado. Los datos y valores de esta configuración aparecen en el estado del template.
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.
Aplica itemsChange.source e itemsChange.target juntos para no duplicar un elemento entre listas. sourceChange y targetChange aportan propuestas individuales; itemsChange contiene la transferencia completa. moveAllScope="filtered" mueve los elementos visibles habilitados; "all" utiliza la colección completa habilitada. No se mueven elementos disabled.
Usa Tab para alcanzar los elementos y botones de transferencia. Intro o Espacio selecciona un elemento o activa un botón de transferencia. Estos controles siguen disponibles sin dragDrop.
Tecla
Acción
Tab
Recorre los botones de elementos y los controles disponibles para ordenar o transferir.
Enter
Selecciona el elemento enfocado o activa el botón de ordenar o transferir. No es necesario arrastrar.
Space
Selecciona el elemento enfocado o activa el botón de ordenar o transferir. No es necesario arrastrar.
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
dragDrop
boolean
false
[dragDrop]
Habilita el arrastre opcional; teclado y botones siguen disponibles.
emptyFilterLabel
string
'No matching items'
[emptyFilterLabel]
Texto que se muestra cuando no hay entradas coincidentes con el filtro.
filter
boolean
false
[filter]
Consulta de búsqueda original modificada por el usuario.
Informa de los objetos seleccionados en la lista correspondiente.
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.
import type { NeuTransferItem } from '@neural-ui/core/pick-list';
import { NeuPickListItemDirective } from '@neural-ui/core/pick-list';
// Declaración pública (solo referencia)
export declare class NeuPickListItemDirective<T = NeuTransferItem> {
readonly neuPickListItem: import("@angular/core").InputSignal<"" | readonly T[]>;
}
context.d.ts
import type { NeuPickListItemContext } from '@neural-ui/core/pick-list';
import { NeuPickListItemDirective } from '@neural-ui/core/pick-list';
// Declaración pública (solo referencia)
readonly templateRef: TemplateRef<NeuPickListItemContext<T>>;
Cada ejemplo muestra un template diferente. Alterna entre Demo y Código para consultar su implementación, imports y estado.
NeuPickListItemDirective
NeuPickListItemDirective
NeuPickListItemDirective
Disponibles
Seleccionados
Sin proyectos coincidentes
Eventos: 0
Public Types
Abre un tipo para consultar su definición y los campos de sus interfaces.
NeuListLocation.d.ts
import type { NeuListLocation } from '@neural-ui/core/pick-list';
// Declaración pública (solo referencia)
export type NeuListLocation = 'source' | 'target';
NeuListMove.d.ts
import type { NeuListMove } from '@neural-ui/core/pick-list';
// Declaración pública (solo referencia)
export type NeuListMove = 'up' | 'down' | 'top' | 'bottom';
NeuOptionAccessor.d.ts
import type { NeuOptionPath } from '@neural-ui/core/option-api';
import type { NeuOptionAccessor } from '@neural-ui/core/option-api';
// Declaración pública (solo referencia)
export type NeuOptionAccessor<T, R = unknown> = Exclude<keyof T, string> | NeuOptionPath<T> | ((option: T) => R);
NeuOptionDisabledAccessor.d.ts
import type { NeuOptionAccessor } from '@neural-ui/core/option-api';
import type { NeuOptionDisabledAccessor } from '@neural-ui/core/option-api';
// Declaración pública (solo referencia)
export type NeuOptionDisabledAccessor<T> = NeuOptionAccessor<T, boolean>;
NeuOptionFilterConfig.d.ts
import type { NeuOptionAccessor } from '@neural-ui/core/option-api';
import type { NeuOptionFilterMatchMode } from '@neural-ui/core/option-api';
import type { NeuOptionFilterStrategy } from '@neural-ui/core/option-api';
import type { NeuOptionFilterConfig } from '@neural-ui/core/option-api';
// Declaración pública (solo referencia)
export interface NeuOptionFilterConfig<T> {
readonly fields?: readonly NeuOptionAccessor<T, unknown>[];
readonly locale?: string;
readonly matchMode?: NeuOptionFilterMatchMode;
readonly strategy?: NeuOptionFilterStrategy;
}
NeuOptionFilterMatchMode.d.ts
import type { NeuOptionFilterMatchMode } from '@neural-ui/core/option-api';
// Declaración pública (solo referencia)
export type NeuOptionFilterMatchMode = 'startsWith' | 'contains' | 'notContains' | 'endsWith' | 'equals' | 'notEquals';
NeuOptionFilterStrategy.d.ts
import type { NeuOptionFilterStrategy } from '@neural-ui/core/option-api';
// Declaración pública (solo referencia)
export type NeuOptionFilterStrategy = 'client' | 'server';
NeuOptionLabelAccessor.d.ts
import type { NeuOptionAccessor } from '@neural-ui/core/option-api';
import type { NeuOptionLabelAccessor } from '@neural-ui/core/option-api';
// Declaración pública (solo referencia)
export type NeuOptionLabelAccessor<T> = NeuOptionAccessor<T, string>;
NeuOptionPath.d.ts
import type { NeuOptionPath } from '@neural-ui/core/option-api';
// Declaración pública (solo referencia)
export type NeuOptionPath<T> = Extract<keyof T, string> | `${Extract<keyof T, string>}.${string}`;
NeuOptionValueAccessor.d.ts
import type { NeuOptionAccessor } from '@neural-ui/core/option-api';
import type { NeuOptionValueAccessor } from '@neural-ui/core/option-api';
// Declaración pública (solo referencia)
export type NeuOptionValueAccessor<T, V> = NeuOptionAccessor<T, V>;
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-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-surface
Superficie principal del campo, cabecera o control
Compartido con otros consumidores de Core; limita el cambio a un ámbito.
#ffffff
--neu-surface-2
Superficies secundarias y filas alternas
Compartido con otros consumidores de Core; limita el cambio a un ámbito.
#f1f5f9
--neu-text
Color del texto principal y de los iconos que lo heredan
Compartido con otros consumidores de Core; limita el cambio a un ámbito.
#0f172a
--neu-transition
Duración de los cambios de estado
Compartido con otros consumidores de Core; limita el cambio a un ámbito.