44 lines
2.4 KiB
Markdown
44 lines
2.4 KiB
Markdown
# Upload module
|
||
|
||
Для встраивания скопируйте один готовый bundle из `dist/`:
|
||
|
||
- IIFE: `FilePicker.initFilePicker(config)`;
|
||
- ESM: `import { initFilePicker } from './file-picker.esm.js'`.
|
||
|
||
`config` должен содержать `mount` как DOM-элемент или CSS-селектор. Основные
|
||
параметры: `allowedExt`, `labels`, `layout`, `limits`, `onChange(files)` и
|
||
`onError(error, file)`. `onError` вызывается для ошибок разбора ZIP; обычные
|
||
файлы с неподдерживаемым расширением просто пропускаются.
|
||
|
||
Публичный API picker-а:
|
||
|
||
- `pickFiles()` и `pickFolder()` — открыть системный выбор;
|
||
- `getFiles()` — получить leaf-файлы с `path`, `name`, `size` и `file`;
|
||
- `addFiles(files)` — добавить файлы программно;
|
||
- `remove(id)` и `clear()` — удалить узел или очистить дерево;
|
||
- `render()` и `destroy()` — перерисовать или удалить экземпляр.
|
||
|
||
Picker поддерживает разрешённые документы, папки и вложенные ZIP, хранит
|
||
исходные browser `File` objects и выполняет дедупликацию по пути и размеру.
|
||
Загрузка на VM, backend sessions и upload API не используются. ZIP обрабатывается
|
||
локально через встроенный в bundle `fflate`; отдельный vendor script не требуется.
|
||
|
||
## Legacy
|
||
|
||
Старые `uploadViaVM`, VM-буфер, backend sessions и upload API относятся к
|
||
предыдущей архитектуре и в текущем модуле отсутствуют. Упоминания этих названий
|
||
в `HISTORY/` являются историческими и не должны использоваться как инструкция.
|
||
|
||
Подробная таблица функций, входов, выходов и побочных эффектов находится в
|
||
[`../docs/CODE-REFERENCE.md`](../docs/CODE-REFERENCE.md).
|
||
|
||
## Сборка из исходников
|
||
|
||
Исходники находятся в `frontend/`. В корне проекта:
|
||
|
||
```bash
|
||
npm install
|
||
npm run build
|
||
```
|
||
|
||
Результат сборки: `dist/file-picker.esm.js` и `dist/file-picker.iife.js`. |