События и применение
Элемент общается полностью через DOM-CustomEvent — подписывайтесь на столько, сколько нужно.
| Событие | Срабатывает, когда | detail содержит |
|---|---|---|
import-ready |
Лицензия проверена, виджет смонтирован | tenantId |
import-ingested |
Файл декодирован в запись | recordId, deduplicated |
import-mapped |
Столбцы сопоставлены с вашей схемой | recordId, mapping |
import-step |
Мастер переходит на шаг дальше | step, previous |
import-applied |
Импорт доставлен | recordId, action, rowCount |
import-error |
Что-то не удалось | code, message, step |
import-cancel |
Пользователь отменяет импорт | — |
События несут сводки, а не сами данные — import-applied сообщает, что строки доставлены и сколько их, но никогда сами строки:
const el = document.querySelector('mildport-import')!;
el.addEventListener('import-applied', e => { const { rowCount, action } = (e as CustomEvent).detail; console.log(`${rowCount} rows delivered (${action})`);});Два способа получать строки
Заголовок раздела «Два способа получать строки»Браузерный режим (applyMode = 'browser') — строки (и маппинг, который их создал) передаются свойству onResults элемента, когда пользователь применяет импорт:
el.onResults = (rows, mapping) => saveRows(rows, mapping);Нужно проверить или заблокировать отправку до её завершения? Используйте resultsHook (третий аргумент mountImportFlow) — те же строки, плюс средства вето:
mountImportFlow(el, flowInput, { resultsHook: ({ rows, mapping }, controls) => { // controls.block('reason') vetoes the submit; doing nothing lets it proceed. },});Подходит для демо, офлайн-встраиваний и клиентских сценариев.
Режим вебхука (applyMode = 'webhook') — движок отправляет применённые строки на ваш
бэкенд методом POST как подписанную HMAC доставку, с надёжными повторами и журналом аудита. Это
продакшен-путь. См. справочник по вебхукам для подписи и заголовков.