El lápiz inicia un borrador. Guardar aplica el borrador a value y emite valueCommitted con previousValue y value; cancelar conserva el valor aceptado. type elige el editor y options aporta las entradas del select. Mantén el tipo del modelo compatible con el editor. saveOnBlur es opcional; por defecto hay acciones explícitas.
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 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 value = signal("Atlas");
export const selectOptions = [
"Atlas",
"Birch",
"Cedar"
];
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.
El lápiz inicia un borrador. Guardar aplica el borrador a value y emite valueCommitted con previousValue y value; cancelar conserva el valor aceptado. type elige el editor y options aporta las entradas del select. Mantén el tipo del modelo compatible con el editor. saveOnBlur es opcional; por defecto hay acciones explícitas.
Activa el lápiz con Intro/Espacio. Intro guarda una edición de una línea; Escape cancela. Tab alcanza guardar y cancelar.
Tecla
Acción
Tab
Recorre el lápiz, el campo de edición y los botones habilitados de guardar y cancelar.
Enter
En el lápiz, inicia la edición. En texto o número, guarda el borrador. En Textarea, inserta una línea; Select y DateInput mantienen su navegación por teclado.
Ctrl / Cmd + Enter
Guarda el borrador multilínea de Textarea.
Space
Activa el botón enfocado de editar, guardar o cancelar.
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
ariaDescribedBy
string
''
[ariaDescribedBy]
IDs de los elementos que describen el control, separados por espacios.
cancelLabel
string
'Cancel edit'
[cancelLabel]
Nombre accesible de la acción correspondiente para editar, guardar o cancelar.
dirty
boolean
false
[dirty]
Estado del formulario que indica que el usuario ha cambiado el valor.
disabled
boolean
false
[disabled]
Impide interactuar con este control.
editLabel
string
'Edit value'
[editLabel]
Nombre accesible de la acción correspondiente para editar, guardar o cancelar.
emptyLabel
string
'Empty'
[emptyLabel]
Texto mostrado cuando el valor editable está vacío.
errors
readonly ValidationError.WithOptionalFieldTree[]
[]
[errors]
Errores de validación proporcionados por el formulario o la aplicación.
hidden
boolean
false
[hidden]
Oculta el control según el estado del formulario.
invalid
boolean
false
[invalid]
Muestra el estado inválido; no añade una regla de validación.
options
readonly unknown[]
[]
[options]
Registros de opciones cargados. Los accessors permiten usar tus propios objetos de dominio.
pending
boolean
false
[pending]
Estado del formulario que indica que hay una validación asíncrona pendiente.
placeholder
string
''
[placeholder]
Texto que se muestra cuando el campo no tiene un valor seleccionado.
readonly
boolean
false
[readonly]
Mantiene visible el valor aplicado, pero impide editarlo.
required
boolean
false
[required]
Marca el campo como obligatorio; utiliza un validador del formulario para exigirlo.
saveLabel
string
'Save value'
[saveLabel]
Nombre accesible de la acción correspondiente para editar, guardar o cancelar.
saveOnBlur
boolean
false
[saveOnBlur]
Guarda un borrador válido al salir el foco. false conserva guardar y cancelar explícitos.
Tipo de editor: text, textarea, number, select o date. Mantén value compatible con él.
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
value
V
'' as VValor 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
editCancel
V
(editCancel)="onEditCancel($event)"
Informa de la cancelación de la edición sin aplicar su borrador.
editStart
V
(editStart)="onEditStart($event)"
Emite el valor aceptado al iniciar la edición.
touch
void
(touch)="onTouch($event)"
Notifica al formulario que el control ha sido visitado; no es un cambio de valor.
valueCommitted
NeuInlineEditorValueCommitEvent<V>
(valueCommitted)="onValueCommitted($event)"
Informa de una edición finalizada. Consulta el tipo: algunos controles emiten el valor; InlineEditor emite previousValue y value.
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.
Este componente no expone proyección de contenido ni templates públicos de personalización.
Public Types
Abre un tipo para consultar su definición y los campos de sus interfaces.
NeuInlineEditorCommitEvent.d.ts
import type { NeuInlineMode } from '@neural-ui/core/inline-editor';
import type { NeuInlineValue } from '@neural-ui/core/inline-editor';
import type { NeuInlineEditorCommitEvent } from '@neural-ui/core/inline-editor';
// Declaración pública (solo referencia)
export interface NeuInlineEditorCommitEvent<M extends NeuInlineMode = NeuInlineMode> {
readonly previousValue: NeuInlineValue<M>;
readonly value: NeuInlineValue<M>;
}
NeuInlineEditorComponent.d.ts
import type { NeuInlineMode } from '@neural-ui/core/inline-editor';
import type { NeuInlineValue } from '@neural-ui/core/inline-editor';
import type { NeuInlineEditorComponent } from '@neural-ui/core/inline-editor';
// Declaración pública (solo referencia)
export type NeuInlineEditorComponent<M extends NeuInlineMode = 'text'> = NeuInlineEditorControl<NeuInlineValue<M>>;
const NeuInlineEditorComponent: typeof NeuInlineEditorControl;
NeuInlineEditorSize.d.ts
import type { NeuInlineEditorSize } from '@neural-ui/core/inline-editor';
// Declaración pública (solo referencia)
export type NeuInlineEditorSize = 'sm' | 'md' | 'lg';
NeuInlineEditorType.d.ts
import type { NeuInlineMode } from '@neural-ui/core/inline-editor';
import type { NeuInlineEditorType } from '@neural-ui/core/inline-editor';
// Declaración pública (solo referencia)
export type NeuInlineEditorType = NeuInlineMode | 'select' | 'textarea' | 'date';
NeuInlineMode.d.ts
import type { NeuInlineMode } from '@neural-ui/core/inline-editor';
// Declaración pública (solo referencia)
export type NeuInlineMode = 'text' | 'number';
NeuInlineValue.d.ts
import type { NeuInlineMode } from '@neural-ui/core/inline-editor';
import type { NeuInlineValue } from '@neural-ui/core/inline-editor';
// Declaración pública (solo referencia)
export type NeuInlineValue<M extends NeuInlineMode> = M extends 'number' ? number | null : string;
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-focus-ring
Anillo normal del foco de teclado
Compartido con otros consumidores de Core; limita el cambio a un ámbito.