vgapp 1.1.6 → 1.1.7
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.
- package/CHANGELOG.md +10 -1
- package/README.md +48 -48
- package/app/langs/en/buttons.json +17 -17
- package/app/langs/en/messages.json +36 -36
- package/app/langs/ru/buttons.json +17 -17
- package/app/langs/ru/messages.json +36 -36
- package/app/modules/vgfilepreview/js/i18n.js +56 -56
- package/app/modules/vgfilepreview/js/renderers/image-modal.js +145 -145
- package/app/modules/vgfilepreview/js/renderers/image.js +92 -92
- package/app/modules/vgfilepreview/js/renderers/index.js +19 -19
- package/app/modules/vgfilepreview/js/renderers/office-modal.js +168 -168
- package/app/modules/vgfilepreview/js/renderers/office.js +79 -79
- package/app/modules/vgfilepreview/js/renderers/pdf-modal.js +260 -260
- package/app/modules/vgfilepreview/js/renderers/pdf.js +76 -76
- package/app/modules/vgfilepreview/js/renderers/playlist.js +71 -71
- package/app/modules/vgfilepreview/js/renderers/text-modal.js +343 -343
- package/app/modules/vgfilepreview/js/renderers/text.js +83 -83
- package/app/modules/vgfilepreview/js/renderers/video-modal.js +272 -272
- package/app/modules/vgfilepreview/js/renderers/video.js +80 -80
- package/app/modules/vgfilepreview/js/renderers/zip-modal.js +522 -522
- package/app/modules/vgfilepreview/js/renderers/zip.js +89 -89
- package/app/modules/vgfilepreview/js/vgfilepreview.js +7 -7
- package/app/modules/vgfilepreview/readme.md +68 -68
- package/app/modules/vgfilepreview/scss/_variables.scss +113 -113
- package/app/modules/vgfilepreview/scss/vgfilepreview.scss +464 -464
- package/app/modules/vgfiles/js/base.js +26 -26
- package/app/modules/vgfiles/js/droppable.js +260 -260
- package/app/modules/vgfiles/js/render.js +153 -153
- package/app/modules/vgfiles/js/vgfiles.js +41 -41
- package/app/modules/vgfiles/readme.md +123 -123
- package/app/modules/vgfiles/scss/_variables.scss +18 -18
- package/app/modules/vgfiles/scss/vgfiles.scss +148 -148
- package/app/modules/vgformsender/js/vgformsender.js +1 -1
- package/app/modules/vgmodal/js/vgmodal.drag.js +332 -332
- package/app/modules/vgmodal/js/vgmodal.js +33 -33
- package/app/modules/vgmodal/js/vgmodal.resize.js +435 -435
- package/app/modules/vgnav/js/vgnav.js +135 -135
- package/app/modules/vgnav/readme.md +67 -67
- package/app/modules/vgnestable/README.md +307 -307
- package/app/modules/vgnestable/scss/_variables.scss +60 -60
- package/app/modules/vgnestable/scss/vgnestable.scss +163 -163
- package/app/modules/vgselect/js/vgselect.js +39 -39
- package/app/modules/vgselect/scss/vgselect.scss +22 -22
- package/app/modules/vgspy/readme.md +28 -28
- package/app/utils/js/components/audio-metadata.js +240 -240
- package/app/utils/js/components/file-icon.js +109 -109
- package/app/utils/js/components/file-preview.js +304 -304
- package/app/utils/js/components/sanitize.js +150 -150
- package/app/utils/js/components/video-metadata.js +140 -140
- package/build/vgapp.css +1 -1
- package/build/vgapp.css.map +1 -1
- package/build/vgapp.js.map +1 -1
- package/index.scss +9 -9
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
|
-
# VEGAS-APP 1.1.
|
|
1
|
+
# VEGAS-APP 1.1.7 (Апрель, 13, 2026)
|
|
2
|
+
## Новые фичи
|
|
3
|
+
* В VGFilePreview добавлена поддержка атрибута `data-name` для явной установки отображаемого имени файла (в приоритете над `data-vg-filepreview-display-name`).
|
|
4
|
+
|
|
5
|
+
## Изменения
|
|
6
|
+
* Обновлена версия пакета в `package.json`: `1.1.6` -> `1.1.7`.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# VEGAS-APP 1.1.6 (Апрель, 10, 2026)
|
|
2
11
|
## Новые фичи
|
|
3
12
|
* **VGToast**: добавлены встроенные модули VGToastDrag и VGToastResize с поддержкой параметров drag/resize (enable, threshold, edgeSize, minWidth/minHeight, debug).
|
|
4
13
|
|
package/README.md
CHANGED
|
@@ -1,48 +1,48 @@
|
|
|
1
|
-
# VEGAS APP (VGApp)
|
|
2
|
-
[FUNC.TRUE?!](http://func-true.ru)
|
|
3
|
-
|
|
4
|
-
VGApp — набор фронтенд‑модулей (UI‑компонентов и утилит) на чистом JavaScript от Vegas Studio.
|
|
5
|
-
Проект объединяет типовые элементы интерфейса и сценарии (модалки, табы, формы, загрузка файлов и т.д.) с едиными подходами к инициализации, data‑API, событиям и локализации.
|
|
6
|
-
|
|
7
|
-
[](https://www.npmjs.com/package/vgapp) []()
|
|
8
|
-
|
|
9
|
-
## Install
|
|
10
|
-
```
|
|
11
|
-
npm i vgapp
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
## Что умеет
|
|
15
|
-
|
|
16
|
-
### Общие возможности
|
|
17
|
-
- Работает без jQuery, ориентирован на ES6+.
|
|
18
|
-
- Поддерживает инициализацию через JS и `data-*` атрибуты.
|
|
19
|
-
- События на DOM для интеграции и расширения поведения.
|
|
20
|
-
- AJAX‑интеграция в ключевых модулях.
|
|
21
|
-
- Локализация интерфейсных текстов.
|
|
22
|
-
- Расширяемая архитектура модулей и рендереров.
|
|
23
|
-
|
|
24
|
-
### Основные модули
|
|
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` — drag‑and‑drop вложенных списков с обновлением структуры.
|
|
36
|
-
- `VGRollup` — ограничение контента по высоте/элементам с кнопкой разворота.
|
|
37
|
-
- `VGSelect` — кастомный select с поиском, мультивыбором и i18n.
|
|
38
|
-
- `VGSidebar` — боковые панели с управлением открытием/закрытием.
|
|
39
|
-
- `VGSpy` — scroll‑spy для подсветки активных ссылок по секциям.
|
|
40
|
-
- `VGTabs` — вкладки с переключением контента и поддержкой URL/hash.
|
|
41
|
-
- `VGToast` — всплывающие уведомления со стеком и автозакрытием.
|
|
42
|
-
|
|
43
|
-
## Authors
|
|
44
|
-
|
|
45
|
-
[VEGAS STUDIO](https://vegas-dev.com) Russia
|
|
46
|
-
|
|
47
|
-
## License
|
|
48
|
-
Is published under the [MIT license](http://www.opensource.org/licenses/mit-license)
|
|
1
|
+
# VEGAS APP (VGApp)
|
|
2
|
+
[FUNC.TRUE?!](http://func-true.ru)
|
|
3
|
+
|
|
4
|
+
VGApp — набор фронтенд‑модулей (UI‑компонентов и утилит) на чистом JavaScript от Vegas Studio.
|
|
5
|
+
Проект объединяет типовые элементы интерфейса и сценарии (модалки, табы, формы, загрузка файлов и т.д.) с едиными подходами к инициализации, data‑API, событиям и локализации.
|
|
6
|
+
|
|
7
|
+
[](https://www.npmjs.com/package/vgapp) []()
|
|
8
|
+
|
|
9
|
+
## Install
|
|
10
|
+
```
|
|
11
|
+
npm i vgapp
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Что умеет
|
|
15
|
+
|
|
16
|
+
### Общие возможности
|
|
17
|
+
- Работает без jQuery, ориентирован на ES6+.
|
|
18
|
+
- Поддерживает инициализацию через JS и `data-*` атрибуты.
|
|
19
|
+
- События на DOM для интеграции и расширения поведения.
|
|
20
|
+
- AJAX‑интеграция в ключевых модулях.
|
|
21
|
+
- Локализация интерфейсных текстов.
|
|
22
|
+
- Расширяемая архитектура модулей и рендереров.
|
|
23
|
+
|
|
24
|
+
### Основные модули
|
|
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` — drag‑and‑drop вложенных списков с обновлением структуры.
|
|
36
|
+
- `VGRollup` — ограничение контента по высоте/элементам с кнопкой разворота.
|
|
37
|
+
- `VGSelect` — кастомный select с поиском, мультивыбором и i18n.
|
|
38
|
+
- `VGSidebar` — боковые панели с управлением открытием/закрытием.
|
|
39
|
+
- `VGSpy` — scroll‑spy для подсветки активных ссылок по секциям.
|
|
40
|
+
- `VGTabs` — вкладки с переключением контента и поддержкой URL/hash.
|
|
41
|
+
- `VGToast` — всплывающие уведомления со стеком и автозакрытием.
|
|
42
|
+
|
|
43
|
+
## Authors
|
|
44
|
+
|
|
45
|
+
[VEGAS STUDIO](https://vegas-dev.com) Russia
|
|
46
|
+
|
|
47
|
+
## License
|
|
48
|
+
Is published under the [MIT license](http://www.opensource.org/licenses/mit-license)
|
|
@@ -7,22 +7,22 @@
|
|
|
7
7
|
"agree": "Yeah, I agree",
|
|
8
8
|
"cancel": "Cancel"
|
|
9
9
|
},
|
|
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": {
|
|
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": {
|
|
26
26
|
"send": "Uploading...",
|
|
27
27
|
"show": "I'm showing you...",
|
|
28
28
|
"text-ajax": "Upload more",
|
|
@@ -36,4 +36,4 @@
|
|
|
36
36
|
"select": {
|
|
37
37
|
"load-more": "Upload more"
|
|
38
38
|
}
|
|
39
|
-
}
|
|
39
|
+
}
|
|
@@ -25,42 +25,42 @@
|
|
|
25
25
|
"description": "It will not be possible to return it",
|
|
26
26
|
"drop-active": "Release to upload"
|
|
27
27
|
},
|
|
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": {
|
|
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": {
|
|
64
64
|
"title": "Default header",
|
|
65
65
|
"description": "Description of the current action",
|
|
66
66
|
"reason": "Alert already open"
|
|
@@ -7,22 +7,22 @@
|
|
|
7
7
|
"agree": "Да",
|
|
8
8
|
"cancel": "Нет"
|
|
9
9
|
},
|
|
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": {
|
|
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": {
|
|
26
26
|
"send": "Загружаю...",
|
|
27
27
|
"show": "Показываю...",
|
|
28
28
|
"text-ajax": "Загрузить еще",
|
|
@@ -36,4 +36,4 @@
|
|
|
36
36
|
"select": {
|
|
37
37
|
"load-more": "Загрузить еще"
|
|
38
38
|
}
|
|
39
|
-
}
|
|
39
|
+
}
|
|
@@ -25,42 +25,42 @@
|
|
|
25
25
|
"description": "Вернуть будет невозможно",
|
|
26
26
|
"drop-active": "Отпустите, чтобы загрузить"
|
|
27
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"
|
|
62
|
-
},
|
|
63
|
-
"alert": {
|
|
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"
|
|
62
|
+
},
|
|
63
|
+
"alert": {
|
|
64
64
|
"title": "Заголовок по умолчанию",
|
|
65
65
|
"description": "Описание текущего действия",
|
|
66
66
|
"reason": "Алерт уже открыт"
|
|
@@ -1,56 +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 };
|
|
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 };
|