Documentación en español para la librería `text-input-directive`.
npm install @cbm-common/text-input-directive
text-input-directive.
CbmTextInputDirective (standalone) que facilita el control de entradas de texto en formularios, aplicando transformaciones, validaciones en tiempo real y reglas de pegado. Es útil para normalizar el comportamiento de inputs de texto en distintas pantallas.
CbmTextInputDirective — directiva standalone que se aplica a elementos o .
TCbmTextInputTransform — tipo 'uppercase' | 'lowercase' | 'capitalize'.
input() de Angular):
maxTextLength?: number — longitud máxima total del texto. Si se supera, se evita la inserción.
maxWordLength?: number — longitud máxima permitida por palabra; palabras largas se truncan o se bloquean en pegado.
transform?: 'uppercase' | 'lowercase' | 'capitalize' — transformación que se aplica en cada input.
pattern?: string | RegExp — expresión regular para validar caracteres permitidos; si la entrada no cumple, se previene la acción.
pattern, controla longitud total y longitud de palabra actual, y permite teclas especiales (Backspace, flechas, Ctrl+C/V/X).
pattern, maxTextLength y maxWordLength. Publica mensajes de error usando PubSub.publish('alert', { ... }) cuando la validación falla.
transform configurada y trunca palabras que exceden maxWordLength.
html
cbmTextInput
[maxTextLength]="100"
[maxWordLength]="20"
[transform]="'capitalize'"
[pattern]="'^[A-Za-z0-9 ]*$'"
/>
`
Notas técnicas
--------------
- La directiva usa PubSub (paquete pubsub-js) para publicar alertas en el evento paste cuando el contenido pegado no cumple las reglas. Asegúrate de tener un manejador global para alert o sustituir esa lógica según tus necesidades.
- input() es usado para declarar inputs de forma compacta; la directiva lee estos valores en tiempo de ejecución.
- Se permiten operaciones de portapapeles con Ctrl/C/V/X y navegación con flechas.
Testing
-------
El proyecto incluye una spec base text-input.directive.spec.ts. Ejecuta las pruebas con:
`powershell
ng test
``