@cbm-common/text-input-directive
v0.0.4
Published
Documentación en español para la librería `text-input-directive`.
Readme
text-input-directive
Documentación en español para la librería text-input-directive.
Propósito
La librería exporta la directiva 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.
Qué exporta
CbmTextInputDirective— directiva standalone que se aplica a elementos<input>o<textarea>.TCbmTextInputTransform— tipo'uppercase' | 'lowercase' | 'capitalize'.
Inputs / parámetros
La directiva declara los siguientes inputs (usando la función 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.
Comportamiento principal
- onKeyDown: valida la tecla pulsada contra
pattern, controla longitud total y longitud de palabra actual, y permite teclas especiales (Backspace, flechas, Ctrl+C/V/X). - onPaste: valida el texto pegado contra
pattern,maxTextLengthymaxWordLength. Publica mensajes de error usandoPubSub.publish('alert', { ... })cuando la validación falla. - onInput: aplica la
transformconfigurada y trunca palabras que excedenmaxWordLength.
Ejemplo de uso
En template:
<input
cbmTextInput
[maxTextLength]="100"
[maxWordLength]="20"
[transform]="'capitalize'"
[pattern]="'^[A-Za-z0-9 ]*$'"
/>Notas técnicas
- La directiva usa
PubSub(paquetepubsub-js) para publicar alertas en el eventopastecuando el contenido pegado no cumple las reglas. Asegúrate de tener un manejador global paraalerto 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:
ng testContribuciones y mejoras sugeridas
- Añadir soporte para reglas de validación más complejas (por ejemplo bloqueo por blacklist).
- Hacer la publicación de alertas configurable (callback o servicio de mensajes en vez de PubSub directo).
Licencia
Consulta la licencia del repositorio principal.
