feat: make file picker embeddable
This commit is contained in:
@@ -9,7 +9,7 @@ backend.
|
||||
|
||||
| Слой | Ответственность |
|
||||
|---|---|
|
||||
| Конфиг | `allowedExt` |
|
||||
| Конфиг | `allowedExt`, `labels`, `layout`, `limits` |
|
||||
| Picker | таблица, дедупликация, ZIP, рекурсивный обход папки |
|
||||
| Интегрирующее приложение | получает leaf-файлы через `getFiles()` |
|
||||
|
||||
@@ -50,16 +50,17 @@ python site/app.py
|
||||
|
||||
## Как интегрировать picker в другой проект
|
||||
|
||||
1. Скопировать папку `upload/` в свой проект.
|
||||
2. Задать конфиг по образцу `upload/config.example.json`.
|
||||
3. Подключить локальный `fflate` до picker-модуля.
|
||||
4. Вызвать `initUploadTable({ ...cfg, fileInputEl, folderInputEl, tableBodyEl, countEl })`.
|
||||
5. Получить выбранные leaf-файлы через `table.getFiles()`; каждый элемент содержит
|
||||
1. Скопировать `upload/frontend/` и один из собранных файлов `dist/` в свой проект.
|
||||
2. Подключить `file-picker.iife.js` через `<script>` и вызвать `FilePicker.initFilePicker`, либо импортировать ESM-бандл.
|
||||
3. Передать `mount`, `allowedExt`, а при необходимости `labels`, `layout`, `limits` и `onChange`.
|
||||
4. Получить выбранные leaf-файлы через `picker.getFiles()`; каждый элемент содержит
|
||||
`path`, `name`, `size` и исходный `file`.
|
||||
5. После удаления компонента вызвать `picker.destroy()`.
|
||||
|
||||
Разрешённые расширения по умолчанию: `.pdf`, `.doc`, `.docx`, `.txt`, `.md`.
|
||||
Разрешённые расширения демо: `.pdf`, `.doc`, `.docx`, `.txt`, `.md`.
|
||||
ZIP-файлы используются как контейнеры и раскрываются в браузере; сам ZIP не
|
||||
возвращается как leaf-файл. Ограничения размера и количества файлов не заданы.
|
||||
возвращается как leaf-файл. По умолчанию действуют ограничения: 1000 entries,
|
||||
100 MiB суммарно, 50 MiB на entry и глубина 20.
|
||||
|
||||
## Legacy
|
||||
|
||||
|
||||
Reference in New Issue
Block a user