@cbm-common/advanced-item-search-modal
v0.0.1
Published
Documentación en español para la librería `advanced-item-search-modal`.
Readme
AdvancedItemSearchModal
Documentación en español para la librería advanced-item-search-modal.
Descripción
Esta librería entrega un componente modal reutilizable para búsqueda avanzada de ítems dentro de la aplicación. Está pensado para integrarse en aplicaciones Angular como una librería del monorepo y expone un componente standalone que facilita búsqueda, filtrado y selección de uno o varios ítems.
Características principais
- Componente modal con formulario de búsqueda y resultados paginados.
- Integración sencilla vía inputs/outputs o servicio y repository del proyecto.
- Estilos encapsulados y puntos de extensión para adaptar columnas o filtros.
Exportaciones relevantes
- Módulo / componente principal:
AdvancedItemSearchModal(revisarpublic-api.tsde la librería para el nombre exacto de exportación). - Recomendación: importar desde el paquete local
advanced-item-search-modal(sin prefijo@cbm-common/) tras construir la librería si se consume desde otra app.
Instalación y uso local
- Compilar la librería localmente desde la raíz del monorepo:
ng build advanced-item-search-modal- Importar el componente o módulo en tu aplicación. Si la librería exporta un módulo con
forRootúsalo; si expone un componente standalone, impórtalo directamente.
Ejemplo (módulo genérico):
import { AdvancedItemSearchModalModule } from 'advanced-item-search-modal';
@NgModule({
imports: [
AdvancedItemSearchModalModule.forRoot({ /* opciones si aplica */ }),
],
})
export class AppModule {}Ejemplo (componente standalone en plantilla):
<!-- abrir modal desde botón -->
<button (click)="openAdvancedSearch()">Buscar ítems</button>
<advanced-item-search-modal
[multiple]="true"
(select)="onItemsSelected($event)"
></advanced-item-search-modal>API (visión general)
La API concreta (nombres de inputs/outputs y servicios) puede variar según la versión dentro del monorepo; consulte projects/advanced-item-search-modal/src/lib para detalles. A continuación se indican conceptos y contratos habituales:
Inputs importantes
multiple: boolean— Permite seleccionar múltiples elementos.initialQuery: string— Consulta inicial para prefiltrar resultados.
Outputs importantes
select: EventEmitter<Item[]> | EventEmitter<Item>— Emite el/los ítem(s) seleccionados.close: EventEmitter<void>— Evento al cerrar el modal.
Servicios y hooks
- La librería puede exponer un servicio para abrir programáticamente el modal o para configurar endpoints. Revisar
*.service.tssi existe.
- La librería puede exponer un servicio para abrir programáticamente el modal o para configurar endpoints. Revisar
Desarrollo y pruebas
- Ejecutar tests unitarios (desde la raíz del workspace):
ng test- Para ejecutar pruebas E2E (si la librería las incluye), usar el target e2e correspondiente.
Publicación
- Construir la librería:
ng build advanced-item-search-modal- Publicar (opcional) desde
dist/advanced-item-search-modal:
cd dist/advanced-item-search-modal
npm publishNotas y buenas prácticas
- Tip: dentro del monorepo, las apps consumidoras pueden necesitar compilar la librería (
ng build) antes de poder importarla por nombre de paquete. - Revise
public-api.tsy los archivos dentro desrc/libpara conocer las interfaces y modelos exportados. Use los tipos exportados por la librería en los componentes consuming (no usarany). - Si el componente expone inputs para columnas o filtros, preferir la inyección de tipos/contratos definidos por la librería para mantener tipado estricto.
Resolución de problemas
- Error: "module not found" al importar la librería desde la app: asegúrese de ejecutar
ng build advanced-item-search-modaly que elpaths/package.json del monorepo esté configurado correctamente. - Error: tipos incompatibles: consulte
projects/advanced-item-search-modal/src/liby use las interfaces exportadas por la librería.
Contacto y mantenimiento
Para cambios mayores en la API del componente (inputs/outputs o estructura de datos), siga la convención de versionado del monorepo y documente los cambios en este README y en CHANGELOG.md si aplica.
Archivo generado/actualizado por: mantenimiento del monorepo.
