Настройка
Зарегистрируйте элемент один раз, затем настройте каждый экземпляр атрибутами (строки) и свойствами (объекты/функции).
import { defineImportSuiteElement } from '@capitality-io/import-suite-ng';await defineImportSuiteElement('mildport-import');Атрибуты
Заголовок раздела «Атрибуты»Задавайте их прямо в разметке.
| Атрибут | Описание |
|---|---|
api-base-url |
Origin вашего самостоятельно размещаемого (или пилотного) движка, напр. https://imports.your-infra.example. |
license-key |
Подписанный ключ лицензии тенанта, который движок проверяет офлайн. |
grid-impl |
Реализация сетки проверки (напр. slickgrid). |
<mildport-import api-base-url="https://imports.your-infra.example" license-key="SIGNED_TENANT_KEY" grid-impl="slickgrid"></mildport-import>Свойства
Заголовок раздела «Свойства»Задавайте их в JavaScript на экземпляре элемента.
| Свойство | Тип | Описание |
|---|---|---|
columnSchema |
ColumnSchema[] |
Ваша целевая модель данных — поля, на которые отображается чистая строка. |
applyMode |
'webhook' | 'browser' |
Доставка через подписанный вебхук применения или возврат строк прямо на странице. |
mappingIdentifier |
string | null |
Стабильный id, чтобы подтверждённые сопоставления запоминались между импортами. |
hostConfig |
ImportSuiteHostConfig |
Принимаемые форматы, объединения нескольких файлов, хуки очистки, примеры данных. |
onResults |
(rows, mapping) => void |
Колбэк в режиме браузера с доставленными строками + сопоставлением. |
const el = document.querySelector('mildport-import')!;
el.columnSchema = [ { key: 'person.firstName', label: 'First name', columnType: 'string', alternativeMatches: ['given name', 'vorname'], }, { key: 'person.email', label: 'Email', columnType: 'email', validations: [{ validate: 'required' }], }, // …];
el.applyMode = 'browser';el.hostConfig = { allowMultipleFiles: false, acceptedFormats: ['spreadsheet', 'text', 'json', 'xml'],};el.onResults = (rows, mapping) => sync(rows, mapping);Дальше: События и применение.