vgapp 1.1.2 → 1.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/CHANGELOG.md +23 -5
  2. package/README.md +19 -16
  3. package/agents.md +6 -0
  4. package/app/langs/en/buttons.json +17 -2
  5. package/app/langs/en/messages.json +36 -1
  6. package/app/langs/ru/buttons.json +17 -2
  7. package/app/langs/ru/messages.json +69 -34
  8. package/app/modules/module-fn.js +15 -9
  9. package/app/modules/vgfilepreview/index.js +3 -0
  10. package/app/modules/vgfilepreview/js/i18n.js +56 -0
  11. package/app/modules/vgfilepreview/js/renderers/image-modal.js +145 -0
  12. package/app/modules/vgfilepreview/js/renderers/image.js +92 -0
  13. package/app/modules/vgfilepreview/js/renderers/index.js +19 -0
  14. package/app/modules/vgfilepreview/js/renderers/office-modal.js +168 -0
  15. package/app/modules/vgfilepreview/js/renderers/office.js +79 -0
  16. package/app/modules/vgfilepreview/js/renderers/pdf-modal.js +260 -0
  17. package/app/modules/vgfilepreview/js/renderers/pdf.js +76 -0
  18. package/app/modules/vgfilepreview/js/renderers/playlist.js +71 -0
  19. package/app/modules/vgfilepreview/js/renderers/text-modal.js +343 -0
  20. package/app/modules/vgfilepreview/js/renderers/text.js +83 -0
  21. package/app/modules/vgfilepreview/js/renderers/video-modal.js +272 -0
  22. package/app/modules/vgfilepreview/js/renderers/video.js +80 -0
  23. package/app/modules/vgfilepreview/js/renderers/zip-modal.js +522 -0
  24. package/app/modules/vgfilepreview/js/renderers/zip.js +89 -0
  25. package/app/modules/vgfilepreview/js/vgfilepreview.js +594 -0
  26. package/app/modules/vgfilepreview/readme.md +68 -0
  27. package/app/modules/vgfilepreview/scss/_variables.scss +113 -0
  28. package/app/modules/vgfilepreview/scss/vgfilepreview.scss +460 -0
  29. package/app/modules/vgfiles/js/base.js +463 -175
  30. package/app/modules/vgfiles/js/droppable.js +260 -260
  31. package/app/modules/vgfiles/js/render.js +153 -153
  32. package/app/modules/vgfiles/js/vgfiles.js +41 -29
  33. package/app/modules/vgfiles/readme.md +116 -217
  34. package/app/modules/vgfiles/scss/_variables.scss +18 -10
  35. package/app/modules/vgfiles/scss/vgfiles.scss +153 -59
  36. package/app/modules/vgformsender/js/vgformsender.js +13 -13
  37. package/app/modules/vgmodal/js/vgmodal.js +12 -0
  38. package/app/modules/vgnav/js/vgnav.js +135 -135
  39. package/app/modules/vgnav/readme.md +67 -67
  40. package/app/modules/vgnestable/README.md +307 -307
  41. package/app/modules/vgnestable/scss/_variables.scss +60 -60
  42. package/app/modules/vgnestable/scss/vgnestable.scss +163 -163
  43. package/app/modules/vgselect/js/vgselect.js +39 -39
  44. package/app/modules/vgselect/scss/vgselect.scss +22 -22
  45. package/app/modules/vgspy/readme.md +28 -28
  46. package/app/utils/js/components/audio-metadata.js +240 -0
  47. package/app/utils/js/components/file-icon.js +109 -0
  48. package/app/utils/js/components/file-preview.js +304 -0
  49. package/app/utils/js/components/sanitize.js +150 -150
  50. package/build/vgapp.css +1 -1
  51. package/build/vgapp.css.map +1 -1
  52. package/build/vgapp.js.map +1 -1
  53. package/index.js +1 -0
  54. package/index.scss +9 -6
  55. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,21 @@
1
+ # VEGAS-APP 1.1.4 (Апрель, 9, 2026)
2
+ ## Новые фичи
3
+ * В модуле VGFilePreview для изображений реализован показ самой картинки в слоте иконки (с fallback на стандартную иконку при ошибке загрузки).
4
+
5
+ ## Изменения
6
+ * В модуле VGFilePreview параметр `ui.preview` сделан опциональным и выключен по умолчанию.
7
+ * В модуле VGFilePreview длинные названия файлов и original name ограничены: `min-width: 60px` и `text-overflow: ellipsis`, чтобы название не схлопывалось.
8
+
9
+ ---
10
+
11
+ # VEGAS-APP 1.0.0 - 1.1.3 (Апрель, 9, 2026)
12
+ * Новый модуль VGFilePreview, см. файл readme.md
13
+ * У модуля VGModal новый параметр `size: width и height`, кастомная высота и ширина, хорошо для `width: fit-content`
14
+ * модуль VGFilePreview интегрирован с VGFiles
15
+ * Исправлены ошибки в разных модулях
16
+
17
+ ---
18
+
1
19
  # VEGAS-APP 0.9.1 - 1.0.0 (Март, 2, 2026)
2
20
  * Новый модуль VGNestable, см. файл readme.md
3
21
  * Добавлены новые функции в модуле VGSelect, см. файл readme.md
@@ -240,8 +258,8 @@
240
258
 
241
259
 
242
260
  # VEGAS-APP 0.1.4 (Март, 10, 2025)
243
- * Перенесен плагин (<a href="https://github.com/vegas-dev/vegas-select">VGSelect</a>) в модуль VGSelect
244
- * для модулей VGSidebar и VGModal добавлена возможность собирать параметры с кнопки вызова элемента
245
- * в модуль VGSidebar добавлен класс vg-sidebar-open в тело документа
246
- * исправлены некоторые ошибки
247
- ---
261
+ * Перенесен плагин (<a href="https://github.com/vegas-dev/vegas-select">VGSelect</a>) в модуль VGSelect
262
+ * для модулей VGSidebar и VGModal добавлена возможность собирать параметры с кнопки вызова элемента
263
+ * в модуль VGSidebar добавлен класс vg-sidebar-open в тело документа
264
+ * исправлены некоторые ошибки
265
+ ---
package/README.md CHANGED
@@ -19,27 +19,30 @@ npm i vgapp
19
19
  - События на DOM для интеграции и расширения поведения.
20
20
  - AJAX‑интеграция в ключевых модулях.
21
21
  - Локализация интерфейсных текстов.
22
+ - Расширяемая архитектура модулей и рендереров.
22
23
 
23
24
  ### Основные модули
24
- - `VGAlert` — модальные окна подтверждений и уведомлений (confirm/info), интеграция с AJAX, темы, клавиатура.
25
- - `VGModal` — базовые модальные окна.
26
- - `VGToast` — уведомления (toasts) с темами, стеком, автозакрытием и анимациями.
27
- - `VGSidebar` — боковые панели с backdrop, блокировкой скролла, анимациями и AJAX‑загрузкой.
28
- - `VGNav` — навигация с dropdown‑меню, позиционированием и мобильным режимом (гамбургер).
29
- - `VGDropdown` — выпадающие меню с позиционированием, hover/click, анимациями, a11y и AJAX.
30
- - `VGTabs` — вкладки с клавиатурой, хеш‑роутингом, слайдер‑индикатором и AJAX‑контентом.
31
- - `VGCollapse` — сворачиваемые блоки/аккордеоны с плавной анимацией.
32
- - `VGRollup` — сворачивание текста или списка элементов по высоте/количеству.
33
- - `VGLoadMore` — подгрузка контента по кнопке или при прокрутке (infinite scroll).
34
- - `VGSpy` — scrollspy: подсветка активных пунктов навигации и плавная прокрутка.
35
- - `VGSelect` — кастомный `<select>` с поиском, мультивыбором, удалёнными данными и i18n.
36
- - `VGFormSender` — отправка форм (AJAX/нативно), валидация, спиннеры, редиректы, уведомления.
37
- - `VGFiles` — управление файлами: drag‑and‑drop, превью, валидация, загрузка/удаление по AJAX.
38
- - `VGLawCookie` — баннер согласия на cookies с хранением в cookie/localStorage.
25
+ - `VGAlert` — диалоги подтверждения и уведомления с поддержкой AJAX‑сценариев.
26
+ - `VGCollapse` — сворачиваемые секции и аккордеоны с анимацией.
27
+ - `VGDropdown` — выпадающие меню с гибким открытием и позиционированием.
28
+ - `VGFiles` — загрузка и управление файлами (dropzone, валидация, AJAX, сортировка).
29
+ - `VGFilePreview` — предпросмотр файлов разных типов и действия по файлу (preview/download).
30
+ - `VGFormSender` — отправка форм (AJAX/нативно), обработка состояний и ответов.
31
+ - `VGLawCookie` — баннер cookies с сохранением выбора пользователя.
32
+ - `VGLoadMore` — подгрузка контента кнопкой или при прокрутке.
33
+ - `VGModal` — базовый модуль модальных окон.
34
+ - `VGNav` — навигация и мобильное меню.
35
+ - `VGNestable` — dragand‑drop вложенных списков с обновлением структуры.
36
+ - `VGRollup` — ограничение контента по высоте/элементам с кнопкой разворота.
37
+ - `VGSelect` — кастомный select с поиском, мультивыбором и i18n.
38
+ - `VGSidebar` — боковые панели с управлением открытием/закрытием.
39
+ - `VGSpy` — scroll‑spy для подсветки активных ссылок по секциям.
40
+ - `VGTabs` — вкладки с переключением контента и поддержкой URL/hash.
41
+ - `VGToast` — всплывающие уведомления со стеком и автозакрытием.
39
42
 
40
43
  ## Authors
41
44
 
42
45
  [VEGAS STUDIO](https://vegas-dev.com) Russia
43
46
 
44
47
  ## License
45
- Is published under the [MIT license](http://www.opensource.org/licenses/mit-license)
48
+ Is published under the [MIT license](http://www.opensource.org/licenses/mit-license)
package/agents.md CHANGED
@@ -0,0 +1,6 @@
1
+ ### Свод правил:
2
+ 1. Правила по changelog:
3
+ - Правило: при команде "записать в changelog" или "дополни changelog" записываем вкратце изменения в файл `CHANGELOG.md`, которые были сделаны с прошлой версии. Записываем так: Версия (смотри `package.json`), дата и построчно что было внесено, нужно как-то выделить новые фичи.
4
+ - Если версия в `package.json` не изменилась, нужно проверить, есть ли эта версия в `CHANGELOG.md`.
5
+ - Если запись версии уже есть, дописывать изменения в существующую запись (как дополнение), а не создавать новый блок той же версии.
6
+ - Если записи версии нет, создавать новый блок с версией из `package.json`, датой и списком изменений, запись добавляется сверху.
@@ -7,7 +7,22 @@
7
7
  "agree": "Yeah, I agree",
8
8
  "cancel": "Cancel"
9
9
  },
10
- "loadmore": {
10
+ "filepreview": {
11
+ "open_audio": "Open player",
12
+ "open_image": "Open image",
13
+ "open_text": "Open text",
14
+ "open_video": "Open video",
15
+ "open_archive": "Open archive",
16
+ "open_pdf": "Open PDF",
17
+ "open_office": "Open document",
18
+ "download": "Download",
19
+ "preview": "Preview",
20
+ "prev": "Prev",
21
+ "next": "Next",
22
+ "zoom_in": "Zoom +",
23
+ "zoom_out": "Zoom -"
24
+ },
25
+ "loadmore": {
11
26
  "send": "Uploading...",
12
27
  "show": "I'm showing you...",
13
28
  "text-ajax": "Upload more",
@@ -21,4 +36,4 @@
21
36
  "select": {
22
37
  "load-more": "Upload more"
23
38
  }
24
- }
39
+ }
@@ -25,7 +25,42 @@
25
25
  "description": "It will not be possible to return it",
26
26
  "drop-active": "Release to upload"
27
27
  },
28
- "alert": {
28
+ "filepreview": {
29
+ "audio_title": "Audio file",
30
+ "image_title": "Image preview",
31
+ "image_thumbnail_alt": "Image thumbnail",
32
+ "text_title": "Text preview",
33
+ "video_title": "Video preview",
34
+ "pdf_title": "PDF preview",
35
+ "office_title": "Office preview",
36
+ "archive_title": "Archive preview",
37
+ "loading_text": "Loading...",
38
+ "loading_archive": "Loading archive...",
39
+ "loading_entry": "Loading entry...",
40
+ "cannot_open_file": "Cannot open file",
41
+ "cannot_open_archive": "Cannot open archive",
42
+ "cannot_preview_entry": "Cannot preview entry",
43
+ "office_fallback": "If embedded preview is unavailable, download the file.",
44
+ "invalid_zip": "Invalid ZIP file",
45
+ "central_directory_not_found": "Central directory not found",
46
+ "archive_buffer_missing": "Archive buffer is missing",
47
+ "entry_corrupted": "Archive entry is corrupted",
48
+ "compression_not_supported": "Compression method is not supported",
49
+ "deflate_not_supported": "Deflate decompression is not supported by the browser",
50
+ "unknown_error": "Unknown error",
51
+ "empty_file": "(empty file)",
52
+ "archive_empty_unsupported": "Archive is empty or unsupported.",
53
+ "archive_type_dir": "dir",
54
+ "archive_type_file": "file",
55
+ "archive_table_name": "Name",
56
+ "archive_table_type": "Type",
57
+ "archive_table_packed": "Packed",
58
+ "archive_table_size": "Size",
59
+ "archive_table_preview": "Preview",
60
+ "pdf_page": "Page",
61
+ "pdf_zoom": "Zoom"
62
+ },
63
+ "alert": {
29
64
  "title": "Default header",
30
65
  "description": "Description of the current action",
31
66
  "reason": "Alert already open"
@@ -7,7 +7,22 @@
7
7
  "agree": "Да",
8
8
  "cancel": "Нет"
9
9
  },
10
- "loadmore": {
10
+ "filepreview": {
11
+ "open_audio": "\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u043f\u043b\u0435\u0435\u0440",
12
+ "open_image": "\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435",
13
+ "open_text": "\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u0442\u0435\u043a\u0441\u0442",
14
+ "open_video": "\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u0432\u0438\u0434\u0435\u043e",
15
+ "open_archive": "\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u0430\u0440\u0445\u0438\u0432",
16
+ "open_pdf": "\u041e\u0442\u043a\u0440\u044b\u0442\u044c PDF",
17
+ "open_office": "\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442",
18
+ "download": "\u0421\u043a\u0430\u0447\u0430\u0442\u044c",
19
+ "preview": "\u041f\u0440\u0435\u0432\u044c\u044e",
20
+ "prev": "\u041d\u0430\u0437\u0430\u0434",
21
+ "next": "\u0412\u043f\u0435\u0440\u0435\u0434",
22
+ "zoom_in": "\u0423\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c",
23
+ "zoom_out": "\u0423\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c"
24
+ },
25
+ "loadmore": {
11
26
  "send": "Загружаю...",
12
27
  "show": "Показываю...",
13
28
  "text-ajax": "Загрузить еще",
@@ -21,4 +36,4 @@
21
36
  "select": {
22
37
  "load-more": "Загрузить еще"
23
38
  }
24
- }
39
+ }
@@ -1,36 +1,71 @@
1
- {
2
- "errors": {
3
- "went_wrong": "Что-то пошло не так, повторите позже",
4
- "400": "Неверный запрос",
5
- "401": "Не авторизован",
6
- "403": "Запрещено",
7
- "404": "Не найдено",
8
- "413": "Слишком большой запрос",
9
- "419": "Проблемы с токеном CSRF",
10
- "422": "Неверный запрос",
11
- "500": "Внутренняя ошибка сервера",
12
- "504": "Превышено время ожидания"
13
- },
14
- "form-sender": {
15
- "bootstrap_not_found": "VGApp не удалось найти bootstrap, модалки не будут закрыты, попробуйте сделать это через коллбек afterSend."
16
- },
17
- "files": {
18
- "is-count": "Превышен лимит по количеству файлов",
19
- "is-sizes": "Превышен размер файл",
20
- "is-types": "Недопустимый тип файла",
21
- "is-total-size": "Превышен максимально разрешённый размер для выбранных файлов",
22
- "titles": "Удаление файлов",
23
- "title": "Удаление файлa",
24
- "descriptions": "Вы действительно хотите удалить все загруженные файлы с сервера?",
25
- "description": "Вернуть будет невозможно",
26
- "drop-active": "Отпустите, чтобы загрузить"
1
+ {
2
+ "errors": {
3
+ "went_wrong": "Что-то пошло не так, повторите позже",
4
+ "400": "Неверный запрос",
5
+ "401": "Не авторизован",
6
+ "403": "Запрещено",
7
+ "404": "Не найдено",
8
+ "413": "Слишком большой запрос",
9
+ "419": "Проблемы с токеном CSRF",
10
+ "422": "Неверный запрос",
11
+ "500": "Внутренняя ошибка сервера",
12
+ "504": "Превышено время ожидания"
13
+ },
14
+ "form-sender": {
15
+ "bootstrap_not_found": "VGApp не удалось найти bootstrap, модалки не будут закрыты, попробуйте сделать это через коллбек afterSend."
16
+ },
17
+ "files": {
18
+ "is-count": "Превышен лимит по количеству файлов",
19
+ "is-sizes": "Превышен размер файл",
20
+ "is-types": "Недопустимый тип файла",
21
+ "is-total-size": "Превышен максимально разрешённый размер для выбранных файлов",
22
+ "titles": "Удаление файлов",
23
+ "title": "Удаление файлa",
24
+ "descriptions": "Вы действительно хотите удалить все загруженные файлы с сервера?",
25
+ "description": "Вернуть будет невозможно",
26
+ "drop-active": "Отпустите, чтобы загрузить"
27
+ },
28
+ "filepreview": {
29
+ "audio_title": "\u0410\u0443\u0434\u0438\u043e \u0444\u0430\u0439\u043b",
30
+ "image_title": "\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f",
31
+ "image_thumbnail_alt": "\u041c\u0438\u043d\u0438\u0430\u0442\u044e\u0440\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f",
32
+ "text_title": "\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u0442\u0435\u043a\u0441\u0442\u0430",
33
+ "video_title": "\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u0432\u0438\u0434\u0435\u043e",
34
+ "pdf_title": "\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 PDF",
35
+ "office_title": "\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430",
36
+ "archive_title": "\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u0430\u0440\u0445\u0438\u0432\u0430",
37
+ "loading_text": "\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430...",
38
+ "loading_archive": "\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0430\u0440\u0445\u0438\u0432\u0430...",
39
+ "loading_entry": "\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0444\u0430\u0439\u043b\u0430 \u0438\u0437 \u0430\u0440\u0445\u0438\u0432\u0430...",
40
+ "cannot_open_file": "\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0444\u0430\u0439\u043b",
41
+ "cannot_open_archive": "\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0430\u0440\u0445\u0438\u0432",
42
+ "cannot_preview_entry": "\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0432\u043b\u043e\u0436\u0435\u043d\u0438\u0435",
43
+ "office_fallback": "\u0415\u0441\u043b\u0438 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u043f\u0440\u0435\u0432\u044c\u044e \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u0441\u043a\u0430\u0447\u0430\u0439\u0442\u0435 \u0444\u0430\u0439\u043b.",
44
+ "invalid_zip": "\u041d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 ZIP-\u0444\u0430\u0439\u043b",
45
+ "central_directory_not_found": "\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d",
46
+ "archive_buffer_missing": "\u0411\u0443\u0444\u0435\u0440 \u0430\u0440\u0445\u0438\u0432\u0430 \u043d\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d",
47
+ "entry_corrupted": "\u0424\u0430\u0439\u043b \u0432 \u0430\u0440\u0445\u0438\u0432\u0435 \u043f\u043e\u0432\u0440\u0435\u0436\u0434\u0435\u043d",
48
+ "compression_not_supported": "\u041c\u0435\u0442\u043e\u0434 \u0441\u0436\u0430\u0442\u0438\u044f \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f",
49
+ "deflate_not_supported": "\u0411\u0440\u0430\u0443\u0437\u0435\u0440 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0443 Deflate",
50
+ "unknown_error": "\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430",
51
+ "empty_file": "(\u043f\u0443\u0441\u0442\u043e\u0439 \u0444\u0430\u0439\u043b)",
52
+ "archive_empty_unsupported": "\u0410\u0440\u0445\u0438\u0432 \u043f\u0443\u0441\u0442\u043e\u0439 \u0438\u043b\u0438 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f.",
53
+ "archive_type_dir": "\u043f\u0430\u043f\u043a\u0430",
54
+ "archive_type_file": "\u0444\u0430\u0439\u043b",
55
+ "archive_table_name": "\u0418\u043c\u044f",
56
+ "archive_table_type": "\u0422\u0438\u043f",
57
+ "archive_table_packed": "\u0421\u0436\u0430\u0442\u044b\u0439",
58
+ "archive_table_size": "\u0420\u0430\u0437\u043c\u0435\u0440",
59
+ "archive_table_preview": "\u041f\u0440\u0435\u0432\u044c\u044e",
60
+ "pdf_page": "\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430",
61
+ "pdf_zoom": "\u041c\u0430\u0441\u0448\u0442\u0430\u0431"
27
62
  },
28
63
  "alert": {
29
- "title": "Заголовок по умолчанию",
30
- "description": "Описание текущего действия",
31
- "reason": "Алерт уже открыт"
32
- },
33
- "select": {
34
- "loading": "Загрузка"
35
- }
36
- }
64
+ "title": "Заголовок по умолчанию",
65
+ "description": "Описание текущего действия",
66
+ "reason": "Алерт уже открыт"
67
+ },
68
+ "select": {
69
+ "loading": "Загрузка"
70
+ }
71
+ }
@@ -1,6 +1,7 @@
1
1
  import EventHandler from "../utils/js/dom/event";
2
2
  import {isDisabled, isEmptyObj} from "../utils/js/functions";
3
3
  import Selectors from "../utils/js/dom/selectors";
4
+ import {getSVG as resolveSVGByFile} from "../utils/js/components/file-icon";
4
5
 
5
6
  /**
6
7
  * Тут собраны вспомогательные скрипты для работы модулей
@@ -30,16 +31,21 @@ const getSVG = (name) => {
30
31
  spinner: '<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0_290_5000)"><path d="M14.6414 8.58333C14.5128 10.1032 13.8685 11.5335 12.8153 12.6368C11.7621 13.7401 10.3634 14.4502 8.85109 14.6493C7.33883 14.8483 5.80396 14.5244 4.50113 13.7311C3.19831 12.9379 2.20584 11.7231 1.68838 10.2882C1.17092 8.85338 1.15958 7.28474 1.65623 5.84255C2.15289 4.40037 3.12769 3.17133 4.41891 2.35934C5.71013 1.54735 7.24015 1.20123 8.75514 1.37839C10.2701 1.55555 11.679 2.24534 12.748 3.33333H10.6667C10.4899 3.33333 10.3203 3.40357 10.1953 3.5286C10.0703 3.65362 10 3.82319 10 4C10 4.17681 10.0703 4.34638 10.1953 4.47141C10.3203 4.59643 10.4899 4.66667 10.6667 4.66667H13.4287C13.757 4.66649 14.0718 4.536 14.3039 4.30387C14.5361 4.07174 14.6665 3.75695 14.6667 3.42867V0.666667C14.6667 0.489856 14.5965 0.320286 14.4715 0.195262C14.3464 0.0702379 14.1769 0 14 0C13.8232 0 13.6537 0.0702379 13.5286 0.195262C13.4036 0.320286 13.3334 0.489856 13.3334 0.666667V2.052C11.9925 0.853819 10.2866 0.142989 8.4917 0.0344742C6.69675 -0.0740408 4.91768 0.426105 3.44222 1.45402C1.96675 2.48194 0.881175 3.97752 0.361055 5.69888C-0.159065 7.42024 -0.0833125 9.26672 0.57606 10.9397C1.23543 12.6127 2.43987 14.0143 3.99457 14.9179C5.54928 15.8215 7.36334 16.1742 9.14336 15.9191C10.9234 15.6639 12.5653 14.8157 13.8035 13.5117C15.0417 12.2077 15.8039 10.5242 15.9667 8.73333C15.9753 8.6405 15.9645 8.54688 15.9349 8.45846C15.9054 8.37003 15.8577 8.28873 15.795 8.21974C15.7323 8.15075 15.6559 8.09559 15.5707 8.05775C15.4854 8.01992 15.3933 8.00025 15.3 8C15.1374 7.99804 14.9799 8.05669 14.8581 8.16452C14.7364 8.27236 14.6591 8.42165 14.6414 8.58333Z" fill="black" fill-opacity="0.35"/></g><defs><clipPath id="clip0_290_5000"><rect width="16" height="16" fill="white"/></clipPath></defs></svg>',
31
32
  check: '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M9.29448 19L3 12.8378L4.57362 11.2973L9.29448 15.9189L19.4264 6L21 7.54054L9.29448 19Z" fill="black"/></svg>',
32
33
  'cloud-dot': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M14.1401 13.925C14.2399 13.9266 14.3378 13.8983 14.4213 13.8438C14.5049 13.7893 14.5702 13.711 14.6089 13.6191C14.6476 13.5272 14.6579 13.4258 14.6385 13.3279C14.6192 13.2301 14.5709 13.1402 14.5001 13.07L12.0001 10.57L9.50011 13.07C9.4182 13.1657 9.3754 13.2887 9.38026 13.4145C9.38512 13.5404 9.43728 13.6597 9.52633 13.7488C9.61538 13.8378 9.73475 13.89 9.86058 13.8949C9.98642 13.8997 10.1095 13.8569 10.2051 13.775L11.5001 12.5V18.625C11.5001 18.7576 11.5528 18.8848 11.6466 18.9786C11.7403 19.0723 11.8675 19.125 12.0001 19.125C12.1327 19.125 12.2599 19.0723 12.3537 18.9786C12.4474 18.8848 12.5001 18.7576 12.5001 18.625V12.5L13.7851 13.785C13.8803 13.8768 14.0079 13.9271 14.1401 13.925Z" fill="black"/><path d="M18.46 9.71996C18.0211 9.77884 17.5751 9.7551 17.145 9.64996V9.76496L17.105 10.125L17.43 10.275C18.0502 10.5605 18.5545 11.0491 18.8595 11.6601C19.1645 12.271 19.2519 12.9677 19.1074 13.6351C18.9628 14.3024 18.5949 14.9005 18.0645 15.3305C17.5341 15.7605 16.8728 15.9966 16.19 16H13.5V17H16.19C17.0395 16.9958 17.8657 16.7214 18.5488 16.2163C19.2319 15.7112 19.7364 15.0017 19.9893 14.1907C20.2422 13.3797 20.2303 12.5092 19.9553 11.7054C19.6804 10.9016 19.1566 10.2062 18.46 9.71996Z" fill="black"/><path d="M4.80029 12.19C4.80848 11.2 5.19728 10.251 5.88612 9.53986C6.57495 8.82869 7.51101 8.40981 8.50029 8.37003H8.83529L8.95029 8.05503C9.2604 7.2496 9.81028 6.55878 10.5256 6.07591C11.241 5.59305 12.0873 5.34142 12.9503 5.35503C13.4051 5.35535 13.8572 5.42619 14.2903 5.56503C14.3299 5.23197 14.414 4.90573 14.5403 4.59503C14.0252 4.43613 13.4893 4.35523 12.9503 4.35503C11.9414 4.3468 10.9516 4.63029 10.1 5.1714C9.24844 5.7125 8.57138 6.48816 8.15029 7.40503C6.96363 7.53241 5.86506 8.09111 5.06315 8.97505C4.26125 9.85898 3.81186 11.0066 3.80029 12.2C3.8016 12.8321 3.92748 13.4577 4.17073 14.0411C4.41398 14.6245 4.76984 15.1543 5.21794 15.6001C5.66605 16.0459 6.19763 16.3989 6.78229 16.6392C7.36695 16.8794 7.99321 17.002 8.62529 17H10.5003V16H8.62529C7.61384 15.9987 6.64396 15.5974 5.92735 14.8836C5.21074 14.1698 4.80557 13.2015 4.80029 12.19Z" fill="black"/><path class="dot" d="M18 8.5C19.3807 8.5 20.5 7.38071 20.5 6C20.5 4.61929 19.3807 3.5 18 3.5C16.6193 3.5 15.5 4.61929 15.5 6C15.5 7.38071 16.6193 8.5 18 8.5Z" fill="black"/></svg>',
33
- 'file-generic': '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><path d="M304 112L192 112C183.2 112 176 119.2 176 128L176 512C176 520.8 183.2 528 192 528L448 528C456.8 528 464 520.8 464 512L464 272L376 272C336.2 272 304 239.8 304 200L304 112zM444.1 224L352 131.9L352 200C352 213.3 362.7 224 376 224L444.1 224zM128 128C128 92.7 156.7 64 192 64L325.5 64C342.5 64 358.8 70.7 370.8 82.7L493.3 205.3C505.3 217.3 512 233.6 512 250.6L512 512C512 547.3 483.3 576 448 576L192 576C156.7 576 128 547.3 128 512L128 128z"/></svg>',
34
- 'file-pdf': '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><path d="M240 112L128 112C119.2 112 112 119.2 112 128L112 512C112 520.8 119.2 528 128 528L208 528L208 576L128 576C92.7 576 64 547.3 64 512L64 128C64 92.7 92.7 64 128 64L261.5 64C278.5 64 294.8 70.7 306.8 82.7L429.3 205.3C441.3 217.3 448 233.6 448 250.6L448 400.1L400 400.1L400 272.1L312 272.1C272.2 272.1 240 239.9 240 200.1L240 112.1zM380.1 224L288 131.9L288 200C288 213.3 298.7 224 312 224L380.1 224zM272 444L304 444C337.1 444 364 470.9 364 504C364 537.1 337.1 564 304 564L292 564L292 592C292 603 283 612 272 612C261 612 252 603 252 592L252 464C252 453 261 444 272 444zM304 524C315 524 324 515 324 504C324 493 315 484 304 484L292 484L292 524L304 524zM400 444L432 444C460.7 444 484 467.3 484 496L484 560C484 588.7 460.7 612 432 612L400 612C389 612 380 603 380 592L380 464C380 453 389 444 400 444zM432 572C438.6 572 444 566.6 444 560L444 496C444 489.4 438.6 484 432 484L420 484L420 572L432 572zM508 464C508 453 517 444 528 444L576 444C587 444 596 453 596 464C596 475 587 484 576 484L548 484L548 508L576 508C587 508 596 517 596 528C596 539 587 548 576 548L548 548L548 592C548 603 539 612 528 612C517 612 508 603 508 592L508 464z"/></svg>',
35
- 'file-word': '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><path d="M192 112L304 112L304 200C304 239.8 336.2 272 376 272L464 272L464 512C464 520.8 456.8 528 448 528L192 528C183.2 528 176 520.8 176 512L176 128C176 119.2 183.2 112 192 112zM352 131.9L444.1 224L376 224C362.7 224 352 213.3 352 200L352 131.9zM192 64C156.7 64 128 92.7 128 128L128 512C128 547.3 156.7 576 192 576L448 576C483.3 576 512 547.3 512 512L512 250.5C512 233.5 505.3 217.2 493.3 205.2L370.7 82.7C358.7 70.7 342.5 64 325.5 64L192 64zM263.3 338.2C260.1 325.3 247.1 317.5 234.2 320.7C221.3 323.9 213.5 337 216.7 349.8L248.7 477.8C251.2 488 260.1 495.3 270.6 495.9C281.1 496.5 290.7 490.2 294.4 480.4L319.9 412.3L345.4 480.4C349.1 490.2 358.7 496.5 369.2 495.9C379.7 495.3 388.6 488 391.1 477.8L423.1 349.8C426.3 336.9 418.5 323.9 405.6 320.7C392.7 317.5 379.7 325.3 376.5 338.2L363.2 391.4L342.3 335.6C339 326.2 330 320 320 320C310 320 301 326.2 297.5 335.6L276.6 391.4L263.3 338.2z"/></svg>',
36
- 'file-zip': '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><path d="M192 112L304 112L304 200C304 239.8 336.2 272 376 272L464 272L464 512C464 520.8 456.8 528 448 528L192 528C183.2 528 176 520.8 176 512L176 128C176 119.2 183.2 112 192 112zM352 131.9L444.1 224L376 224C362.7 224 352 213.3 352 200L352 131.9zM192 64C156.7 64 128 92.7 128 128L128 512C128 547.3 156.7 576 192 576L448 576C483.3 576 512 547.3 512 512L512 250.5C512 233.5 505.3 217.2 493.3 205.2L370.7 82.7C358.7 70.7 342.5 64 325.5 64L192 64zM208 168C208 181.3 218.7 192 232 192L248 192C261.3 192 272 181.3 272 168C272 154.7 261.3 144 248 144L232 144C218.7 144 208 154.7 208 168zM208 248C208 261.3 218.7 272 232 272L264 272C277.3 272 288 261.3 288 248C288 234.7 277.3 224 264 224L232 224C218.7 224 208 234.7 208 248zM272 304L240 304C222.3 304 208 318.3 208 336L208 384C208 410.5 229.5 432 256 432C282.5 432 304 410.5 304 384L304 336C304 318.3 289.7 304 272 304zM256 368C264.8 368 272 375.2 272 384C272 392.8 264.8 400 256 400C247.2 400 240 392.8 240 384C240 375.2 247.2 368 256 368z"/></svg>',
37
- 'file-text': '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><path d="M192 112L304 112L304 200C304 239.8 336.2 272 376 272L464 272L464 512C464 520.8 456.8 528 448 528L192 528C183.2 528 176 520.8 176 512L176 128C176 119.2 183.2 112 192 112zM352 131.9L444.1 224L376 224C362.7 224 352 213.3 352 200L352 131.9zM192 64C156.7 64 128 92.7 128 128L128 512C128 547.3 156.7 576 192 576L448 576C483.3 576 512 547.3 512 512L512 250.5C512 233.5 505.3 217.2 493.3 205.2L370.7 82.7C358.7 70.7 342.5 64 325.5 64L192 64zM248 320C234.7 320 224 330.7 224 344C224 357.3 234.7 368 248 368L392 368C405.3 368 416 357.3 416 344C416 330.7 405.3 320 392 320L248 320zM248 416C234.7 416 224 426.7 224 440C224 453.3 234.7 464 248 464L392 464C405.3 464 416 453.3 416 440C416 426.7 405.3 416 392 416L248 416z"/></svg>',
38
- 'file-exel': '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><path d="M192 112L304 112L304 200C304 239.8 336.2 272 376 272L464 272L464 512C464 520.8 456.8 528 448 528L192 528C183.2 528 176 520.8 176 512L176 128C176 119.2 183.2 112 192 112zM352 131.9L444.1 224L376 224C362.7 224 352 213.3 352 200L352 131.9zM192 64C156.7 64 128 92.7 128 128L128 512C128 547.3 156.7 576 192 576L448 576C483.3 576 512 547.3 512 512L512 250.5C512 233.5 505.3 217.2 493.3 205.2L370.7 82.7C358.7 70.7 342.5 64 325.5 64L192 64zM291.2 329.6C283.2 319 268.2 316.8 257.6 324.8C247 332.8 244.8 347.8 252.8 358.4L290 408L252.8 457.6C244.8 468.2 247 483.2 257.6 491.2C268.2 499.2 283.2 497 291.2 486.4L320 448L348.8 486.4C356.8 497 371.8 499.2 382.4 491.2C393 483.2 395.2 468.2 387.2 457.6L350 408L387.2 358.4C395.2 347.8 393 332.8 382.4 324.8C371.8 316.8 356.8 319 348.8 329.6L320 368L291.2 329.6z"/></svg>',
39
- 'file-php': '',
34
+ 'file-generic': '<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M106.825 36.075L79.925 9.175C79.175 8.425 78.1625 8 77.1 8H24C21.7875 8 20 9.7875 20 12V116C20 118.213 21.7875 120 24 120H104C106.213 120 108 118.213 108 116V38.9125C108 37.85 107.575 36.825 106.825 36.075ZM98.775 40.75H75.25V17.225L98.775 40.75ZM99 111H29V17H66.75V44C66.75 45.3924 67.3031 46.7277 68.2877 47.7123C69.2723 48.6969 70.6076 49.25 72 49.25H99V111Z" fill="black"/></svg>',
35
+ 'file-exel': '<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M106.825 36.075L79.925 9.175C79.175 8.425 78.1625 8 77.1 8H24C21.7875 8 20 9.7875 20 12V116C20 118.213 21.7875 120 24 120H104C106.213 120 108 118.213 108 116V38.9125C108 37.85 107.575 36.825 106.825 36.075ZM98.775 40.75H75.25V17.225L98.775 40.75ZM99 111H29V17H66.75V44C66.75 45.3924 67.3031 46.7277 68.2877 47.7123C69.2723 48.6969 70.6076 49.25 72 49.25H99V111ZM64.2625 72.5125L56.5375 59.7125C56.2625 59.2625 55.775 58.9875 55.25 58.9875H50.45C50.1625 58.9875 49.8875 59.0625 49.65 59.225C48.95 59.6625 48.7375 60.5875 49.1875 61.3L59.475 77.6L49.05 94.2C48.9084 94.4277 48.8301 94.6891 48.8234 94.9571C48.8166 95.2252 48.8816 95.4902 49.0116 95.7247C49.1416 95.9592 49.3319 96.1547 49.5628 96.291C49.7937 96.4273 50.0569 96.4995 50.325 96.5H54.6375C55.1625 96.5 55.6375 96.225 55.9125 95.7875L63.75 83.1L71.5375 95.775C71.8125 96.225 72.3 96.4875 72.8125 96.4875H77.5C77.7875 96.4875 78.0625 96.4 78.3125 96.25C79.0125 95.8 79.2125 94.875 78.7625 94.175L68.2625 77.875L78.925 61.3125C79.0693 61.0855 79.1502 60.824 79.1591 60.5551C79.1681 60.2863 79.1048 60.0199 78.9759 59.7838C78.847 59.5477 78.6572 59.3505 78.4262 59.2126C78.1952 59.0748 77.9315 59.0013 77.6625 59H73.2C72.675 59 72.1875 59.275 71.9125 59.725L64.2625 72.5125Z" fill="black"/></svg>',
36
+ 'file-word': '<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M106.825 36.075L79.925 9.175C79.175 8.425 78.1625 8 77.1 8H24C21.7875 8 20 9.7875 20 12V116C20 118.213 21.7875 120 24 120H104C106.213 120 108 118.213 108 116V38.9125C108 37.85 107.575 36.825 106.825 36.075ZM98.775 40.75H75.25V17.225L98.775 40.75ZM99 111H29V17H66.75V44C66.75 45.3924 67.3031 46.7277 68.2877 47.7123C69.2723 48.6969 70.6076 49.25 72 49.25H99V111ZM66.0125 59H61.9875C61.3 59 60.7 59.4625 60.5375 60.1375L54.325 85L48.5625 60.1625C48.4 59.4875 47.8 59 47.1 59H42.675C42.4451 59.0004 42.2183 59.0535 42.0121 59.1553C41.806 59.2571 41.6259 59.4048 41.4858 59.5872C41.3458 59.7695 41.2494 59.9816 41.2042 60.207C41.159 60.4324 41.1661 60.6652 41.225 60.8875L50.5 95.3875C50.675 96.0375 51.275 96.5 51.95 96.5H55.95C56.625 96.5 57.225 96.05 57.4 95.3875L64 70.7625L70.6 95.3875C70.775 96.0375 71.375 96.5 72.05 96.5H76.025C76.7 96.5 77.3 96.05 77.475 95.3875L86.775 60.8875C86.8334 60.6653 86.8401 60.4326 86.7947 60.2074C86.7493 59.9822 86.6529 59.7703 86.5129 59.5881C86.3729 59.4059 86.1931 59.2582 85.9872 59.1562C85.7813 59.0543 85.5548 59.0009 85.325 59H80.875C80.175 59 79.575 59.4875 79.4125 60.1625L73.6875 85.05L67.4625 60.1375C67.3 59.4625 66.7 59 66.0125 59Z" fill="black"/></svg>',
37
+ 'file-pdf': '<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M66.4125 71.8L66.45 71.625C67.175 68.6375 68.0875 64.9125 67.375 61.5375C66.9 58.875 64.9375 57.8375 63.2625 57.7625C61.2875 57.675 59.525 58.8 59.0875 60.4375C58.2625 63.4375 59 67.5375 60.35 72.7625C58.65 76.8125 55.9375 82.7 53.95 86.2C50.25 88.1125 45.2875 91.0625 44.55 94.7875C44.4 95.475 44.575 96.35 44.9875 97.1375C45.45 98.0125 46.1875 98.6875 47.05 99.0125C47.425 99.15 47.875 99.2625 48.4 99.2625C50.6 99.2625 54.1625 97.4875 58.9125 89.3375C59.6375 89.1 60.3875 88.85 61.1125 88.6C64.5125 87.45 68.0375 86.25 71.225 85.7125C74.75 87.6 78.7625 88.8125 81.4875 88.8125C84.1875 88.8125 85.25 87.2125 85.65 86.25C86.35 84.5625 86.0125 82.4375 84.875 81.3C83.225 79.675 79.2125 79.25 72.9625 80.025C69.8875 78.15 67.875 75.6 66.4125 71.8ZM52.7 90.7875C50.9625 93.3125 49.65 94.575 48.9375 95.125C49.775 93.5875 51.4125 91.9625 52.7 90.7875ZM63.65 61.35C64.3 62.4625 64.2125 65.825 63.7125 67.525C63.1 65.0375 63.0125 61.5125 63.375 61.1C63.475 61.1125 63.5625 61.1875 63.65 61.35ZM63.45 76.4125C64.7875 78.725 66.475 80.7125 68.3375 82.1875C65.6375 82.8 63.175 83.8125 60.975 84.7125C60.45 84.925 59.9375 85.1375 59.4375 85.3375C61.1 82.325 62.4875 78.9125 63.45 76.4125ZM82.9 84.6C82.9125 84.625 82.925 84.6625 82.85 84.7125H82.825L82.8 84.75C82.7 84.8125 81.675 85.4125 77.2625 83.675C82.3375 83.4375 82.8875 84.5875 82.9 84.6ZM106.825 36.075L79.925 9.175C79.175 8.425 78.1625 8 77.1 8H24C21.7875 8 20 9.7875 20 12V116C20 118.213 21.7875 120 24 120H104C106.213 120 108 118.213 108 116V38.9125C108 37.85 107.575 36.825 106.825 36.075ZM98.775 40.75H75.25V17.225L98.775 40.75ZM99 111H29V17H66.75V44C66.75 45.3924 67.3031 46.7277 68.2877 47.7123C69.2723 48.6969 70.6076 49.25 72 49.25H99V111Z" fill="black"/></svg>',
38
+ 'file-zip': '<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M37 49H45V57H37V49ZM37 72.75V92.75H53V72.75H45V65H37V72.75ZM47 78.75V86.75H43V78.75H47ZM45 41H53V49H45V41ZM37 33H45V41H37V33ZM45 57H53V65H45V57ZM45 25H53V33H45V25ZM106.825 36.075L79.925 9.175C79.175 8.425 78.1625 8 77.1 8H24C21.7875 8 20 9.7875 20 12V116C20 118.213 21.7875 120 24 120H104C106.213 120 108 118.213 108 116V38.9125C108 37.85 107.575 36.825 106.825 36.075ZM98.775 40.75H75.25V17.225L98.775 40.75ZM99 111H29V17H37V25H45V17H66.75V44C66.75 45.3924 67.3031 46.7277 68.2877 47.7123C69.2723 48.6969 70.6076 49.25 72 49.25H99V111Z" fill="black"/></svg>',
39
+ 'file-text': '<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M106.825 36.075L79.925 9.175C79.175 8.425 78.1625 8 77.1 8H24C21.7875 8 20 9.7875 20 12V116C20 118.213 21.7875 120 24 120H104C106.213 120 108 118.213 108 116V38.9125C108 37.85 107.575 36.825 106.825 36.075ZM98.775 40.75H75.25V17.225L98.775 40.75ZM99 111H29V17H66.75V44C66.75 45.3924 67.3031 46.7277 68.2877 47.7123C69.2723 48.6969 70.6076 49.25 72 49.25H99V111ZM63 77.25H40C39.45 77.25 39 77.7 39 78.25V84.25C39 84.8 39.45 85.25 40 85.25H63C63.55 85.25 64 84.8 64 84.25V78.25C64 77.7 63.55 77.25 63 77.25ZM39 61.25V67.25C39 67.8 39.45 68.25 40 68.25H88C88.55 68.25 89 67.8 89 67.25V61.25C89 60.7 88.55 60.25 88 60.25H40C39.45 60.25 39 60.7 39 61.25Z" fill="black"/></svg>',
40
+ 'file-image': '<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M69.1375 63.6375L59.4125 76.0375L54.275 69.4875C54.1815 69.368 54.0619 69.2713 53.9255 69.2048C53.7891 69.1384 53.6393 69.1038 53.4875 69.1038C53.3357 69.1038 53.1859 69.1384 53.0495 69.2048C52.9131 69.2713 52.7935 69.368 52.7 69.4875L40.225 85.3875C40.1096 85.5349 40.038 85.7118 40.0183 85.8979C39.9987 86.0841 40.0319 86.272 40.114 86.4402C40.1962 86.6084 40.324 86.7501 40.4829 86.8491C40.6418 86.9481 40.8253 87.0004 41.0125 87H87C87.8375 87 88.3 86.0375 87.7875 85.3875L70.725 63.6375C70.6302 63.5178 70.5096 63.4211 70.3721 63.3546C70.2347 63.2881 70.0839 63.2536 69.9313 63.2536C69.7786 63.2536 69.6278 63.2881 69.4904 63.3546C69.3529 63.4211 69.2323 63.5178 69.1375 63.6375ZM45 55.25C45 56.5761 45.5268 57.8479 46.4645 58.7855C47.4021 59.7232 48.6739 60.25 50 60.25C51.3261 60.25 52.5979 59.7232 53.5355 58.7855C54.4732 57.8479 55 56.5761 55 55.25C55 53.9239 54.4732 52.6521 53.5355 51.7145C52.5979 50.7768 51.3261 50.25 50 50.25C48.6739 50.25 47.4021 50.7768 46.4645 51.7145C45.5268 52.6521 45 53.9239 45 55.25ZM106.825 36.075L79.925 9.175C79.175 8.425 78.1625 8 77.1 8H24C21.7875 8 20 9.7875 20 12V116C20 118.213 21.7875 120 24 120H104C106.213 120 108 118.213 108 116V38.9125C108 37.85 107.575 36.825 106.825 36.075ZM98.775 40.75H75.25V17.225L98.775 40.75ZM99 111H29V17H66.75V44C66.75 45.3924 67.3031 46.7277 68.2877 47.7123C69.2723 48.6969 70.6076 49.25 72 49.25H99V111Z" fill="black"/></svg>',
41
+ 'file-audio': '<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M106.825 36.075L79.925 9.175C79.175 8.425 78.1625 8 77.1 8H24C21.7875 8 20 9.7875 20 12V116C20 118.213 21.7875 120 24 120H104C106.213 120 108 118.213 108 116V38.9125C108 37.85 107.575 36.825 106.825 36.075ZM98.775 40.75H75.25V17.225L98.775 40.75ZM99 111H29V17H66.75V44C66.75 45.3924 67.3031 46.7277 68.2877 47.7123C69.2723 48.6969 70.6076 49.25 72 49.25H99V111Z" fill="black"/><path d="M64.6781 93.0344C62.701 95.0114 60.2677 96 57.3781 96C54.4885 96 52.0552 95.0114 50.0781 93.0344C48.1011 91.0573 47.1125 88.624 47.1125 85.7344C47.1125 82.8448 48.1011 80.4115 50.0781 78.4344C52.0552 76.4573 54.4885 75.4688 57.3781 75.4688C58.4458 75.4657 59.4541 75.598 60.4031 75.8657C61.3521 76.1333 62.2448 76.5714 63.0813 77.1797V64.0625C63.0843 62.7728 63.5223 61.69 64.3953 60.814C65.2682 59.938 66.351 59.5 67.6438 59.5H76.7688C78.0615 59.5 79.1443 59.938 80.0172 60.814C80.8902 61.69 81.3282 62.7728 81.3313 64.0625C81.3343 65.3522 80.8978 66.435 80.0218 67.311C79.1458 68.187 78.0615 68.625 76.7688 68.625H67.6438V85.7344C67.6438 88.624 66.6552 91.0573 64.6781 93.0344Z" fill="black"/></svg>',
42
+ 'file-video': '<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M106.825 36.075L79.925 9.175C79.175 8.425 78.1625 8 77.1 8H24C21.7875 8 20 9.7875 20 12V116C20 118.213 21.7875 120 24 120H104C106.213 120 108 118.213 108 116V38.9125C108 37.85 107.575 36.825 106.825 36.075ZM98.775 40.75H75.25V17.225L98.775 40.75ZM99 111H29V17H66.75V44C66.75 45.3924 67.3031 46.7277 68.2877 47.7123C69.2723 48.6969 70.6076 49.25 72 49.25H99V111Z" fill="black"/><path d="M44.2566 71.7109C44.2566 70.0637 44.911 68.4839 46.0758 67.3191C47.2405 66.1544 48.8203 65.5 50.4676 65.5H64.5457C66.1929 65.5 67.7727 66.1544 68.9375 67.3191C70.1023 68.4839 70.7566 70.0637 70.7566 71.7109V85.7891C70.7566 87.4363 70.1023 89.0161 68.9375 90.1809C67.7727 91.3456 66.1929 92 64.5457 92H50.4676C48.8203 92 47.2405 91.3456 46.0758 90.1809C44.911 89.0161 44.2566 87.4363 44.2566 85.7891V71.7109ZM79.4552 89.8187L72.4129 84.956V72.5391L79.4552 67.6763C81.3765 66.348 84 67.726 84 70.0613V87.4354C84 89.7707 81.3782 91.1454 79.4552 89.8187Z" fill="black"/></svg>',
43
+ 'download': '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"><path d="M.5 9.9a.5.5 0 0 1 .5.5v2.5a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-2.5a.5.5 0 0 1 1 0v2.5a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2v-2.5a.5.5 0 0 1 .5-.5"/><path d="M7.646 11.854a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0-.708-.708L8.5 10.293V1.5a.5.5 0 0 0-1 0v8.793L5.354 8.146a.5.5 0 1 0-.708.708z"/></svg>',
44
+ 'play': '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"><path d="M10.804 8 5 4.633v6.734zm.792-.696a.802.802 0 0 1 0 1.392l-6.363 3.692C4.713 12.69 4 12.345 4 11.692V4.308c0-.653.713-.998 1.233-.696z"/></svg>',
45
+ 'pause': '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"><path d="M6.25 5C5.56 5 5 5.56 5 6.25v3.5a1.25 1.25 0 1 0 2.5 0v-3.5C7.5 5.56 6.94 5 6.25 5m3.5 0c-.69 0-1.25.56-1.25 1.25v3.5a1.25 1.25 0 1 0 2.5 0v-3.5C11 5.56 10.44 5 9.75 5"/></svg>',
40
46
  };
41
47
 
42
- return svg[name] ?? '';
48
+ return resolveSVGByFile(name, svg);
43
49
  }
44
50
 
45
51
  /**
@@ -67,4 +73,4 @@ const dismissTrigger = (module, method = 'hide') => {
67
73
 
68
74
  export {
69
75
  dismissTrigger, getSVG
70
- }
76
+ }
@@ -0,0 +1,3 @@
1
+ import VGFilePreview from "./js/vgfilepreview";
2
+
3
+ export default VGFilePreview;
@@ -0,0 +1,56 @@
1
+ import { lang_buttons, lang_messages } from "../../../utils/js/components/lang";
2
+
3
+ const SUPPORTED_LANGS = new Set(["ru", "en"]);
4
+
5
+ const normalizeLang = (value, fallback = "ru") => {
6
+ const candidate = String(value || "").trim().toLowerCase();
7
+ if (!candidate) {
8
+ return fallback;
9
+ }
10
+
11
+ const short = candidate.split("-")[0];
12
+ return SUPPORTED_LANGS.has(short) ? short : fallback;
13
+ };
14
+
15
+ const resolveFilePreviewLang = (paramsLang, element) => {
16
+ const fromParams = normalizeLang(paramsLang, "");
17
+ if (fromParams) {
18
+ return fromParams;
19
+ }
20
+
21
+ const fromElement = normalizeLang(element?.getAttribute("lang"), "");
22
+ if (fromElement) {
23
+ return fromElement;
24
+ }
25
+
26
+ const fromClosest = normalizeLang(element?.closest("[lang]")?.getAttribute("lang"), "");
27
+ if (fromClosest) {
28
+ return fromClosest;
29
+ }
30
+
31
+ const fromHtml = normalizeLang(document?.documentElement?.getAttribute("lang"), "");
32
+ if (fromHtml) {
33
+ return fromHtml;
34
+ }
35
+
36
+ const fromNavigator = normalizeLang(window?.navigator?.language, "");
37
+ if (fromNavigator) {
38
+ return fromNavigator;
39
+ }
40
+
41
+ return "ru";
42
+ };
43
+
44
+ const createFilePreviewI18n = (lang = "ru") => {
45
+ const normalizedLang = normalizeLang(lang, "ru");
46
+ const messages = lang_messages(normalizedLang, "filepreview") || {};
47
+ const buttons = lang_buttons(normalizedLang, "filepreview") || {};
48
+
49
+ return {
50
+ lang: normalizedLang,
51
+ message: (key, fallback = "") => messages[key] || fallback,
52
+ button: (key, fallback = "") => buttons[key] || fallback
53
+ };
54
+ };
55
+
56
+ export { createFilePreviewI18n, resolveFilePreviewLang };