Eventos y aplicación
El elemento se comunica enteramente a través de CustomEvents del DOM — suscríbete a tantos
como necesites.
| Evento | Se dispara cuando | detail incluye |
|---|---|---|
import-ready |
Licencia verificada, widget montado | tenantId |
import-ingested |
Un archivo se decodifica en un registro | recordId, deduplicated |
import-mapped |
Las columnas se emparejan con tu esquema | recordId, mapping |
import-step |
El asistente avanza un paso | step, previous |
import-applied |
La importación se entrega | recordId, action, rowCount |
import-error |
Algo falla | code, message, step |
import-cancel |
El usuario descarta la importación | — |
Los eventos transportan resúmenes, no los datos en sí — import-applied te dice que se entregaron filas y cuántas, nunca las filas:
const el = document.querySelector('mildport-import')!;
el.addEventListener('import-applied', e => { const { rowCount, action } = (e as CustomEvent).detail; console.log(`${rowCount} rows delivered (${action})`);});Dos formas de recibir filas
Sección titulada «Dos formas de recibir filas»Modo navegador (applyMode = 'browser') — las filas (y el mapeo que las produjo) se entregan a la propiedad onResults del elemento cuando el usuario aplica:
el.onResults = (rows, mapping) => saveRows(rows, mapping);¿Necesitas inspeccionar o vetar el envío antes de que se complete? Usa el resultsHook (tercer argumento de mountImportFlow) — las mismas filas, más controles de veto:
mountImportFlow(el, flowInput, { resultsHook: ({ rows, mapping }, controls) => { // controls.block('reason') vetoes the submit; doing nothing lets it proceed. },});Ideal para demos, embeds offline y flujos del lado del cliente.
Modo webhook (applyMode = 'webhook') — el motor envía las filas aplicadas a tu backend por
POST como una entrega firmada con HMAC, con reintentos duraderos y un registro de auditoría.
Este es el camino de producción. Consulta la referencia de webhooks para la
firma y los encabezados.