Usa valores de opción estables para identificar elementos. selectionChange aporta los seleccionados; orderChange propone el nuevo array. Aplícalo a items para aceptar el orden. El filtro cambia el subconjunto visible, no la colección. dragDrop es opcional; botones y teclado ofrecen la misma operación.
Cambia las opciones públicas, prueba el resultado y consulta el template actualizado. Código contiene la implementación ejecutable completa.
Prueba y configura
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.
Usa valores de opción estables para identificar elementos. selectionChange aporta los seleccionados; orderChange propone el nuevo array. Aplícalo a items para aceptar el orden. El filtro cambia el subconjunto visible, no la colección. dragDrop es opcional; botones y teclado ofrecen la misma operación.
Usa Tab para alcanzar los elementos y botones de orden. Intro o Espacio selecciona un elemento o activa un botón de orden. 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
ariaLabel
string
'Ordered items'
[ariaLabel]
Nombre accesible del control o regió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 del drop por puntero/teclado con elemento, listas e índices. Aplica la propuesta de estado para aceptarlo.
orderChange
T[]
(orderChange)="onOrderChange($event)"
Propone el array completo reordenado. Sustituye items o tiles para aceptarlo.
selectionChange
T[]
(selectionChange)="onSelectionChange($event)"
Propone la selección, la clave afectada y el origen de la interacción. Aplica payload.selection a selection.
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 { NeuOrderListItemDirective } from '@neural-ui/core/pick-list';
// Declaración pública (solo referencia)
export declare class NeuOrderListItemDirective<T = NeuTransferItem> {
readonly neuOrderListItem: import("@angular/core").InputSignal<"" | readonly T[]>;
}
context.d.ts
import type { NeuOrderListItemContext } from '@neural-ui/core/pick-list';
import { NeuOrderListItemDirective } from '@neural-ui/core/pick-list';
// Declaración pública (solo referencia)
readonly templateRef: TemplateRef<NeuOrderListItemContext<T>>;
Cada ejemplo muestra un template diferente. Alterna entre Demo y Código para consultar su implementación, imports y estado.
NeuOrderListItemDirective
NeuOrderListItemDirective
NeuOrderListItemDirective
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.