Перейти к содержимому
Начать

События и применение

Элемент общается полностью через 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 доставку, с надёжными повторами и журналом аудита. Это продакшен-путь. См. справочник по вебхукам для подписи и заголовков.