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

InlineEditor

Edita un valor en su posición con acciones explícitas para guardar y cancelar.

Categoría
Acciones
Import
@neural-ui/core/inline-editor
Selector
neu-inline-editor
import { NeuInlineEditorControl } from '@neural-ui/core/inline-editor';

Uso

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.

Ejemplos

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

Ejemplos

Valor actual: "Atlas"

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: "Atlas"

Eventos: 0

template.html
<neu-inline-editor
  [value]="value()"
  (valueChange)="value.set($event)"
  [type]="'text'"
  [options]="selectOptions"
  [size]="'md'"
  [saveOnBlur]="false"
  [disabled]="false"
  [readonly]="false"
  [invalid]="false"
  (valueCommitted)="record('valueCommitted', $event)"
  (editCancel)="record('editCancel', $event)"
  [cancelLabel]="'Cancelar edición'"
  [editLabel]="'Editar valor'"
  [emptyLabel]="'Vacío'"
  [saveLabel]="'Guardar valor'"
/>

Estado y eventos

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.

Accesibilidad y teclado

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.
Escape Cancela la edición y descarta el borrador.

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
ariaDescribedBystring''[ariaDescribedBy]IDs de los elementos que describen el control, separados por espacios.
cancelLabelstring'Cancel edit'[cancelLabel]Nombre accesible de la acción correspondiente para editar, guardar o cancelar.
dirtybooleanfalse[dirty]Estado del formulario que indica que el usuario ha cambiado el valor.
disabledbooleanfalse[disabled]Impide interactuar con este control.
editLabelstring'Edit value'[editLabel]Nombre accesible de la acción correspondiente para editar, guardar o cancelar.
emptyLabelstring'Empty'[emptyLabel]Texto mostrado cuando el valor editable está vacío.
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.
optionsreadonly unknown[][][options]Registros de opciones cargados. Los accessors permiten usar tus propios objetos de dominio.
pendingbooleanfalse[pending]Estado del formulario que indica que hay una validación asíncrona pendiente.
placeholderstring''[placeholder]Texto que se muestra cuando el campo no tiene un valor seleccionado.
readonlybooleanfalse[readonly]Mantiene visible el valor aplicado, pero impide editarlo.
requiredbooleanfalse[required]Marca el campo como obligatorio; utiliza un validador del formulario para exigirlo.
saveLabelstring'Save value'[saveLabel]Nombre accesible de la acción correspondiente para editar, guardar o cancelar.
saveOnBlurbooleanfalse[saveOnBlur]Guarda un borrador válido al salir el foco. false conserva guardar y cancelar explícitos.
sizeNeuInlineEditorSize'sm'[size]Tamaño del control. El tipo indica la escala o unidad numérica admitida.
startInEditbooleanfalse[startInEdit]Inicia la instancia en modo de edición.
touchedbooleanfalse[touched]Estado del formulario que indica que el control ha sido visitado.
typeNeuInlineEditorType'text'[type]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
valueV'' 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
editCancelV(editCancel)="onEditCancel($event)"Informa de la cancelación de la edición sin aplicar su borrador.
editStartV(editStart)="onEditStart($event)"Emite el valor aceptado al iniciar la edición.
touchvoid(touch)="onTouch($event)"Notifica al formulario que el control ha sido visitado; no es un cambio de valor.
valueCommittedNeuInlineEditorValueCommitEvent<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.

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-focus-ring Anillo normal del foco de teclado Compartido con otros consumidores de Core; limita el cambio a un ámbito. 0 0 0 var(--neu-focus-ring-width) rgba(0, 122, 255, 0.15)
--neu-surface Superficie principal del campo, cabecera o control Compartido con otros consumidores de Core; limita el cambio a un ámbito. #ffffff
--neu-text-muted Etiquetas secundarias y contenido de ayuda Compartido con otros consumidores de Core; limita el cambio a un ámbito. #475569
--neu-radius-sm Radio de esquina Compartido con otros consumidores de Core; limita el cambio a un ámbito. 6px
--neu-space-1 Separación entre contenido y controles Compartido con otros consumidores de Core; limita el cambio a un ámbito. 0.25rem
--neu-space-2 Separación entre contenido y controles Compartido con otros consumidores de Core; limita el cambio a un ámbito. 0.5rem
--neu-space-3 Separación entre contenido y controles Compartido con otros consumidores de Core; limita el cambio a un ámbito. 0.75rem