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

RichTextEditor

Escribe HTML con formato mediante una barra de herramientas, variables y vista previa opcionales.

Categoría
Formularios y selección
Import
@neural-ui/core/rich-text-editor
Selector
neu-rich-text-editor
import { NeuRichTextEditorComponent } from '@neural-ui/core/rich-text-editor';

Uso

Conecta la cadena HTML mediante value. Los comandos actúan sobre la selección del editor; variables inserta marcadores definidos por la aplicación. showPreview muestra una vista de solo lectura. maxPastedImageBytes limita imágenes pegadas e imageRejected informa del rechazo. Valida y sanea el contenido en el límite de tu aplicación antes de almacenarlo o renderizarlo fuera del editor.

Ejemplos

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

Ejemplos
Variables

Neural UI

Valor actual: "<p>Neural UI</p>"

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
Variables

Neural UI

Valor actual: "<p>Neural UI</p>"

Eventos: 0

template.html
<neu-rich-text-editor
  [value]="value()"
  (valueChange)="value.set($event)"
  [disabled]="false"
  [readonly]="false"
  [invalid]="false"
  [showPreview]="false"
  [size]="'sm'"
  [minHeight]="'180px'"
  [labels]="labels()"
  [variables]="['customer', 'reference']"
  [variablesLabel]="'Variables'"
  (valueCommitted)="record('valueCommitted', $event)"
  (imageRejected)="record('imageRejected', $event)"
  [label]="'Descripción'"
  [placeholder]="'Escribe aquí…'"
  [previewLabel]="'Vista previa'"
  [variablesAriaLabel]="'Variables disponibles'"
/>

Estado y eventos

Conecta la cadena HTML mediante value. Los comandos actúan sobre la selección del editor; variables inserta marcadores definidos por la aplicación. showPreview muestra una vista de solo lectura. maxPastedImageBytes limita imágenes pegadas e imageRejected informa del rechazo. Valida y sanea el contenido en el límite de tu aplicación antes de almacenarlo o renderizarlo fuera del editor.

Accesibilidad y teclado

Tab recorre la barra de herramientas y la zona editable. Dentro del editor funcionan los atajos nativos de edición y selección de texto.

Tecla
Acción
Tab Recorre los controles de la barra y la zona editable.
Enter En un botón de la barra, ejecuta su acción. Dentro de la zona editable se aplica la edición de texto nativa.
Space En un botón de la barra, ejecuta su acción. Dentro de la zona editable se aplica la edición de texto nativa.
Ctrl / Meta + C / X / V Copia, corta y pega mediante los atajos nativos de la zona editable.

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
dirtybooleanfalse[dirty]Estado del formulario que indica que el usuario ha cambiado el valor.
disabledbooleanfalse[disabled]Impide interactuar con este control.
editorIdstringinject(NeuIdGenerator).getId('neu-rich-text-editor-')Valor derivado[editorId]Id estable compartido por el editor, su etiqueta y descripciones.
errorMessagestring''[errorMessage]Mensaje de error visible asociado al campo.
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.
hintstring''[hint]Texto de ayuda aportado por la aplicación.
invalidbooleanfalse[invalid]Muestra el estado inválido; no añade una regla de validación.
labelstring''[label]Etiqueta visible que identifica el campo o la acción.
labelsPartial<NeuRichTextEditorLabels>{}[labels]Grupos y comandos de la barra y preguntas de enlaces/imágenes localizados. Los campos omitidos conservan los valores del paquete.
maxPastedImageBytesnumber1_500_000[maxPastedImageBytes]Tamaño máximo en bytes de una imagen pegada en el editor.
minHeightstring'180px'[minHeight]Altura mínima CSS de la región editable, incluida su unidad.
pendingbooleanfalse[pending]Estado del formulario que indica que hay una validación asíncrona pendiente.
placeholderstring'Write here...'[placeholder]Texto que se muestra cuando el campo no tiene un valor seleccionado.
previewLabelstring'Preview'[previewLabel]Etiqueta visible del desplegable de vista previa del contenido con formato.
readonlybooleanfalse[readonly]Mantiene visible el valor aplicado, pero impide editarlo.
requiredbooleanfalse[required]Marca el campo como obligatorio; utiliza un validador del formulario para exigirlo.
showPreviewbooleanfalse[showPreview]Muestra una vista con formato y de solo lectura del valor.
sizeNeuRichTextEditorSize'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.
variablesreadonly string[][][variables]Nombres de marcadores definidos por la aplicación que se pueden insertar.
variablesAriaLabelstring'Available variables'[variablesAriaLabel]Etiqueta accesible o visible de los controles de variables.
variablesLabelstring'Variables'[variablesLabel]Etiqueta accesible o visible de los controles de variables.

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
valuestring''[(value)]Cadena HTML editada por este control.

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
imageRejectedNeuRichTextImageRejectedEvent(imageRejected)="onImageRejected($event)"Informa de una imagen pegada rechazada por las reglas de tamaño o contenido.
touchvoid(touch)="onTouch($event)"Notifica al formulario que el control ha sido visitado; no es un cambio de valor.
valueCommittedstring(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-border-focus Borde del control con foco Compartido con otros consumidores de Core; limita el cambio a un ámbito. var(--neu-primary)
--neu-error Color del campo no válido o de la acción de peligro Compartido con otros consumidores de Core; limita el cambio a un ámbito. #dc2626
--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-primary Color de marca en controles activos y énfasis Compartido con otros consumidores de Core; limita el cambio a un ámbito. #007aff
--neu-primary-50 Superficie tenue de marca para estados de puntero y foco Compartido con otros consumidores de Core; limita el cambio a un ámbito. #eff6ff
--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-light Tono claro de marca; texto de Button outline y ghost en el tema oscuro Compartido con otros consumidores de Core; limita el cambio a un ámbito. #339dff