Mi Claro Interactive Invoice

Componente web interactivo para mostrar y gestionar facturas en el sistema de facturación de Claro. Construido con Stencil para máxima compatibilidad entre frameworks.
🚀 Instalación Rápida
npm install intellisoft-mi-claro-interactive-invoice
📋 Uso Básico
Vanilla JavaScript / HTML
<!DOCTYPE html>
<html>
<head>
<script type="module" src="https://unpkg.com/intellisoft-mi-claro-interactive-invoice@latest/dist/mi-claro-interactive-invoice/mi-claro-interactive-invoice.esm.js"></script>
</head>
<body>
<mi-claro-interactive-invoice></mi-claro-interactive-invoice>
</body>
</html>
React
import { defineCustomElements } from 'intellisoft-mi-claro-interactive-invoice/loader';
defineCustomElements();
function App() {
const handleInvoicePaid = (event) => {
console.log('Factura pagada:', event.detail);
};
return (
<mi-claro-interactive-invoice
onInvoicePaid={handleInvoicePaid}>
</mi-claro-interactive-invoice>
);
}
Angular
import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { defineCustomElements } from 'intellisoft-mi-claro-interactive-invoice/loader';
defineCustomElements();
@NgModule({
schemas: [CUSTOM_ELEMENTS_SCHEMA]
})
export class AppModule { }
@Component({
template: `
<mi-claro-interactive-invoice
(invoicePaid)="onInvoicePaid($event)">
</mi-claro-interactive-invoice>
`
})
export class InvoiceComponent {
onInvoicePaid(event: CustomEvent) {
console.log('Factura pagada:', event.detail);
}
}
Vue 3
<template>
<mi-claro-interactive-invoice
@invoice-paid="handleInvoicePaid">
</mi-claro-interactive-invoice>
</template>
<script setup>
import { defineCustomElements } from 'intellisoft-mi-claro-interactive-invoice/loader';
defineCustomElements();
const handleInvoicePaid = (event) => {
console.log('Factura pagada:', event.detail);
};
</script>
🛠️ Propiedades
Por definir | - | Se agregarán según lógica de negocio | - |
📡 Eventos
invoicePaid | Se emite cuando se completa un pago | { invoiceId: string, amount: number, method: string } |
invoiceDetailToggled | Se emite al expandir/contraer detalles | { invoiceId: string, isOpen: boolean } |
🎨 Personalización
El componente soporta CSS Custom Properties para personalización:
mi-claro-interactive-invoice {
--invoice-primary-color: #e60028;
--invoice-background: #ffffff;
--invoice-border-radius: 8px;
}
💻 Desarrollo
Requisitos
- Node.js >= 14.x
- npm >= 6.x
Comandos
npm install
npm start
npm run build
npm test
npm run generate
📁 Estructura del Proyecto
mi-claro-interactive-invoice/
├── src/
│ ├── components/
│ │ └── mi-claro-interactive-invoice/
│ │ ├── mi-claro-interactive-invoice.tsx
│ │ ├── mi-claro-interactive-invoice.css
│ │ └── readme.md
│ └── index.ts
├── examples/ # Ejemplos de integración
│ ├── vanilla-js/
│ ├── react-app/
│ ├── angular-app/
│ └── vue-app/
└── dist/ # Archivos construidos
📚 Documentación
🤝 Contribución
Sección por definir según políticas internas de Claro
📄 Licencia
MIT © IntelliSoft
Nota: Este componente está en desarrollo activo. Las propiedades, eventos y estilos se definirán según los requerimientos específicos del negocio de Claro.