vgapp 0.7.9 → 0.8.1

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 (49) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/app/langs/en/buttons.json +16 -0
  3. package/app/langs/en/messages.json +32 -0
  4. package/app/langs/en/titles.json +6 -0
  5. package/app/langs/ru/buttons.json +16 -0
  6. package/app/langs/ru/messages.json +32 -0
  7. package/app/langs/ru/titles.json +6 -0
  8. package/app/modules/base-module.js +12 -1
  9. package/app/modules/module-fn.js +20 -9
  10. package/app/modules/vgalert/js/vgalert.js +12 -6
  11. package/app/modules/vgalert/readme.md +1 -1
  12. package/app/modules/vgcollapse/readme.md +1 -1
  13. package/app/modules/vgdropdown/js/vgdropdown.js +140 -38
  14. package/app/modules/vgdropdown/readme.md +225 -0
  15. package/app/modules/vgfiles/js/base.js +499 -0
  16. package/app/modules/vgfiles/js/droppable.js +159 -0
  17. package/app/modules/vgfiles/js/loader.js +389 -0
  18. package/app/modules/vgfiles/js/render.js +83 -0
  19. package/app/modules/vgfiles/js/sortable.js +155 -0
  20. package/app/modules/vgfiles/js/vgfiles.js +796 -280
  21. package/app/modules/vgfiles/readme.md +193 -0
  22. package/app/modules/vgfiles/scss/_animations.scss +18 -0
  23. package/app/modules/vgfiles/scss/_mixins.scss +73 -0
  24. package/app/modules/vgfiles/scss/_variables.scss +103 -26
  25. package/app/modules/vgfiles/scss/vgfiles.scss +573 -60
  26. package/app/modules/vgformsender/js/vgformsender.js +5 -1
  27. package/app/modules/vgformsender/readme.md +1 -1
  28. package/app/modules/vglawcookie/js/vglawcookie.js +96 -62
  29. package/app/modules/vglawcookie/readme.md +102 -0
  30. package/app/modules/vgloadmore/js/vgloadmore.js +212 -112
  31. package/app/modules/vgloadmore/readme.md +145 -0
  32. package/app/modules/vgsidebar/js/vgsidebar.js +6 -4
  33. package/app/utils/js/components/ajax.js +172 -122
  34. package/app/utils/js/components/animation.js +124 -39
  35. package/app/utils/js/components/backdrop.js +54 -31
  36. package/app/utils/js/components/lang.js +69 -88
  37. package/app/utils/js/components/params.js +34 -31
  38. package/app/utils/js/components/scrollbar.js +118 -67
  39. package/app/utils/js/components/templater.js +14 -4
  40. package/app/utils/js/dom/cookie.js +107 -64
  41. package/app/utils/js/dom/data.js +68 -20
  42. package/app/utils/js/dom/event.js +272 -239
  43. package/app/utils/js/dom/manipulator.js +135 -62
  44. package/app/utils/js/dom/selectors.js +134 -59
  45. package/app/utils/js/functions.js +183 -349
  46. package/build/vgapp.css +1 -1
  47. package/build/vgapp.css.map +1 -1
  48. package/package.json +1 -1
  49. package/app/utils/js/components/overflow.js +0 -28
package/CHANGELOG.md CHANGED
@@ -1,3 +1,12 @@
1
+ # VEGAS-APP 0.8.1 (Январь, 2, 2025)
2
+ * Оптимизирован и дополнен модуль VGLoadMore, см. файл readme.md
3
+
4
+ ---
5
+
6
+ # VEGAS-APP 0.8.0 (Декабрь, 31, 2025)
7
+ * Полностью переписан модуль VGFiles, см. файл readme.md
8
+ * Рефакторинг модуля VGLawCookie, см. файл readme.md
9
+
1
10
  # VEGAS-APP 0.7.9 (Декабрь, 19, 2025)
2
11
  * Добавлена возможность управления клавиатурой в модуле VGAlert. ESC - отменяет действие. ENTER - подтверждает действие
3
12
  * В VGAlert добавлен JSDoc и документация
@@ -0,0 +1,16 @@
1
+ {
2
+ "alert": {
3
+ "agree": "Yeah, I agree",
4
+ "cancel": "Cancel"
5
+ },
6
+ "files": {
7
+ "agree": "Yeah, I agree",
8
+ "cancel": "Cancel"
9
+ },
10
+ "loadmore": {
11
+ "send": "Uploading...",
12
+ "show": "I'm showing you...",
13
+ "text-ajax": "Upload more",
14
+ "text-more": "Show more"
15
+ }
16
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "errors": {
3
+ "went_wrong": "Something went wrong, please repeat later",
4
+ "400": "Bad Request",
5
+ "401": "Unauthorized",
6
+ "403": "Forbidden",
7
+ "404": "Not Found",
8
+ "413": "Payload Too Large",
9
+ "419": "Problems with the CSRF token",
10
+ "422": "Unprocessable Entity",
11
+ "500": "Internal Server Error",
12
+ "504": "Gateway Timeout"
13
+ },
14
+ "form-sender": {
15
+ "bootstrap_not_found": "VGApp could not find bootstrap, the modals will not be closed, try to do this through the afterSend callback."
16
+ },
17
+ "files": {
18
+ "is-count": "Exceeded the limit on the number of files",
19
+ "is-sizes": "File size exceeded",
20
+ "is-types": "Invalid file type",
21
+ "is-total-size": "The maximum allowed size for the selected files has been exceeded",
22
+ "titles": "Deleting files",
23
+ "title": "Deleting file",
24
+ "descriptions": "Do you really want to delete all uploaded files from the server?",
25
+ "description": "It will not be possible to return it"
26
+ },
27
+ "alert": {
28
+ "title": "Default header",
29
+ "description": "Description of the current action",
30
+ "reason": "Alert already open"
31
+ }
32
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "errors": {
3
+ "title": "Error",
4
+ "titles": "Errors"
5
+ }
6
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "alert": {
3
+ "agree": "Да, согласен",
4
+ "cancel": "Отмена"
5
+ },
6
+ "files": {
7
+ "agree": "Да",
8
+ "cancel": "Нет"
9
+ },
10
+ "loadmore": {
11
+ "send": "Загружаю...",
12
+ "show": "Показываю...",
13
+ "text-ajax": "Загрузить еще",
14
+ "text-more": "Показать еще"
15
+ }
16
+ }
@@ -0,0 +1,32 @@
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
+ },
27
+ "alert": {
28
+ "title": "Заголовок по умолчанию",
29
+ "description": "Описание текущего действия",
30
+ "reason": "Алерт уже открыт"
31
+ }
32
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "errors": {
3
+ "title": "Ошибка",
4
+ "titles": "Ошибки"
5
+ }
6
+ }
@@ -1,4 +1,11 @@
1
- import {execute, executeAfterTransition, isEmptyObj, isObject, normalizeData} from "../utils/js/functions";
1
+ import {
2
+ execute,
3
+ executeAfterTransition,
4
+ isEmptyObj,
5
+ isObject,
6
+ mergeDeepObject,
7
+ normalizeData
8
+ } from "../utils/js/functions";
2
9
  import Selectors from "../utils/js/dom/selectors";
3
10
  import Data from "../utils/js/dom/data";
4
11
  import Params from "../utils/js/components/params";
@@ -122,6 +129,10 @@ class BaseModule {
122
129
  if (this._params.ajax.method.toLowerCase() === 'post') {
123
130
  ajax.post(this._params.ajax.route, this._params.ajax.data, ajaxData);
124
131
  }
132
+
133
+ if (this._params.ajax.method.toLowerCase() === 'delete') {
134
+ ajax.delete(this._params.ajax.route, ajaxData);
135
+ }
125
136
  }, timeout);
126
137
  }
127
138
 
@@ -13,15 +13,26 @@ import Selectors from "../utils/js/dom/selectors";
13
13
  */
14
14
  const getSVG = (name) => {
15
15
  const svg = {
16
- danger: '<svg width="72" height="72" viewBox="0 0 72 72" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M36 4.5C53.3953 4.5 67.5 18.6047 67.5 36C67.5 53.3953 53.3953 67.5 36 67.5C18.6047 67.5 4.5 53.3953 4.5 36C4.5 18.6047 18.6047 4.5 36 4.5ZM44.9961 23.8237C44.9944 23.8242 44.9931 23.825 44.9902 23.8279L36 32.818L27.0098 23.8279C27.0069 23.825 27.0056 23.8242 27.0039 23.8237C27.0023 23.8232 27.0006 23.8232 26.999 23.8237C26.9975 23.8242 26.9961 23.825 26.9932 23.8279L23.8278 26.9932C23.825 26.9961 23.8243 26.9975 23.8237 26.9991C23.8232 27.0007 23.8232 27.0024 23.8237 27.004L23.8244 27.0056C23.8253 27.0071 23.8265 27.0085 23.8279 27.0098L32.818 36L23.8279 44.9903C23.825 44.9931 23.8242 44.9945 23.8237 44.9961C23.8232 44.9977 23.8232 44.9995 23.8237 45.0011C23.8242 45.0026 23.825 45.0039 23.8279 45.0068L26.9932 48.1723C26.9961 48.1751 26.9975 48.1758 26.9991 48.1764C27.0007 48.1769 27.0024 48.1769 27.004 48.1764C27.0056 48.1759 27.0069 48.1751 27.0098 48.1722L36 39.1819L44.9903 48.1721C44.9931 48.175 44.9945 48.1758 44.9961 48.1763C44.9977 48.1768 44.9995 48.1768 45.0011 48.1763C45.0026 48.1758 45.0039 48.175 45.0068 48.1721L48.1723 45.0068C48.1751 45.0039 48.1758 45.0025 48.1764 45.0009C48.1769 44.9993 48.1769 44.9976 48.1764 44.996L48.1757 44.9944C48.1747 44.9929 48.1736 44.9915 48.1722 44.9902L39.1819 36L48.1721 27.0098C48.175 27.0069 48.1758 27.0056 48.1763 27.0039C48.1768 27.0023 48.1768 27.0006 48.1763 26.999C48.1758 26.9975 48.175 26.9961 48.1721 26.9932L45.0068 23.8278C45.0039 23.825 45.0025 23.8243 45.0009 23.8237C44.9993 23.8232 44.9977 23.8232 44.9961 23.8237Z" fill="#000000"/></svg>',
17
- success: '<svg width="72" height="72" viewBox="0 0 72 72" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M36 4.5C18.6047 4.5 4.5 18.6047 4.5 36C4.5 53.3953 18.6047 67.5 36 67.5C53.3953 67.5 67.5 53.3953 67.5 36C67.5 18.6047 53.3953 4.5 36 4.5ZM49.6055 25.7133L34.7977 46.2445C34.5907 46.5334 34.3179 46.7688 34.0018 46.9312C33.6857 47.0935 33.3354 47.1782 32.9801 47.1782C32.6247 47.1782 32.2745 47.0935 31.9584 46.9312C31.6423 46.7688 31.3695 46.5334 31.1625 46.2445L22.3945 34.0945C22.1273 33.7219 22.3945 33.2016 22.8516 33.2016H26.1492C26.8664 33.2016 27.5484 33.5461 27.9703 34.1367L32.9766 41.0836L44.0297 25.7555C44.4516 25.1719 45.1266 24.8203 45.8508 24.8203H49.1484C49.6055 24.8203 49.8727 25.3406 49.6055 25.7133Z" fill="#000000"/></svg>',
18
- waiting: '<svg width="72" height="72" viewBox="0 0 72 72" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M51 10.02C55.5248 12.6326 59.2888 16.3816 61.9194 20.8959C64.5501 25.4103 65.9561 30.5334 65.9983 35.7581C66.0405 40.9828 64.7174 46.1279 62.1601 50.6841C59.6027 55.2404 55.8997 59.0497 51.4177 61.735C46.9357 64.4203 41.8301 65.8885 36.6063 65.9942C31.3825 66.1 26.2216 64.8395 21.6347 62.3378C17.0477 59.836 13.1936 56.1796 10.454 51.7306C7.71439 47.2816 6.18423 42.1942 6.015 36.972L6 36L6.015 35.028C6.18301 29.847 7.69064 24.7979 10.3909 20.373C13.0912 15.9481 16.892 12.2984 21.4227 9.77969C25.9534 7.26098 31.0594 5.95923 36.243 6.00136C41.4266 6.04348 46.5108 7.42804 51 10.02ZM36 18C35.2652 18.0001 34.556 18.2699 34.0069 18.7582C33.4578 19.2465 33.107 19.9193 33.021 20.649L33 21V36L33.027 36.393C33.0954 36.9135 33.2992 37.407 33.618 37.824L33.879 38.124L42.879 47.124L43.161 47.37C43.6871 47.7782 44.3341 47.9998 45 47.9998C45.6659 47.9998 46.3129 47.7782 46.839 47.37L47.121 47.121L47.37 46.839C47.7782 46.3129 47.9998 45.6659 47.9998 45C47.9998 44.3341 47.7782 43.6872 47.37 43.161L47.121 42.879L39 34.755V21L38.979 20.649C38.893 19.9193 38.5422 19.2465 37.9931 18.7582C37.444 18.2699 36.7348 18.0001 36 18Z" fill="black"/></svg>',
19
- warning: '<svg width="72" height="72" viewBox="0 0 72 72" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M36.5 5C44.8543 5 52.8665 8.31874 58.7739 14.2261C64.6813 20.1335 68 28.1457 68 36.5C68 44.8543 64.6813 52.8665 58.7739 58.7739C52.8665 64.6813 44.8543 68 36.5 68C28.1457 68 20.1335 64.6813 14.2261 58.7739C8.31874 52.8665 5 44.8543 5 36.5C5 28.1457 8.31874 20.1335 14.2261 14.2261C20.1335 8.31874 28.1457 5 36.5 5ZM36.5 18.5C35.9287 18.4995 35.3635 18.6181 34.8406 18.8484C34.3178 19.0786 33.8487 19.4154 33.4633 19.8372C33.0779 20.259 32.7848 20.7565 32.6025 21.298C32.4203 21.8395 32.353 22.413 32.405 22.982L34.0475 41.009C34.1112 41.6151 34.397 42.1761 34.8499 42.5839C35.3028 42.9917 35.8906 43.2173 36.5 43.2173C37.1094 43.2173 37.6972 42.9917 38.1501 42.5839C38.603 42.1761 38.8888 41.6151 38.9525 41.009L40.5905 22.982C40.6424 22.4134 40.5753 21.8403 40.3933 21.2991C40.2114 20.7579 39.9186 20.2606 39.5337 19.8389C39.1488 19.4171 38.6803 19.0803 38.1579 18.8498C37.6356 18.6192 37.0709 18.5001 36.5 18.5ZM36.5 54.5C37.4548 54.5 38.3705 54.1207 39.0456 53.4456C39.7207 52.7705 40.1 51.8548 40.1 50.9C40.1 49.9452 39.7207 49.0295 39.0456 48.3544C38.3705 47.6793 37.4548 47.3 36.5 47.3C35.5452 47.3 34.6295 47.6793 33.9544 48.3544C33.2793 49.0295 32.9 49.9452 32.9 50.9C32.9 51.8548 33.2793 52.7705 33.9544 53.4456C34.6295 54.1207 35.5452 54.5 36.5 54.5Z" fill="#000000"/></svg>',
20
- info: '<svg width="72" height="72" viewBox="0 0 72 72" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M36 4.5C18.6047 4.5 4.5 18.6047 4.5 36C4.5 53.3953 18.6047 67.5 36 67.5C53.3953 67.5 67.5 53.3953 67.5 36C67.5 18.6047 53.3953 4.5 36 4.5ZM33.75 20.8125C33.75 20.5031 34.0031 20.25 34.3125 20.25H37.6875C37.9969 20.25 38.25 20.5031 38.25 20.8125V39.9375C38.25 40.2469 37.9969 40.5 37.6875 40.5H34.3125C34.0031 40.5 33.75 40.2469 33.75 39.9375V20.8125ZM36 51.75C35.1168 51.732 34.2759 51.3685 33.6577 50.7375C33.0395 50.1065 32.6932 49.2584 32.6932 48.375C32.6932 47.4916 33.0395 46.6435 33.6577 46.0125C34.2759 45.3815 35.1168 45.018 36 45C36.8832 45.018 37.7241 45.3815 38.3423 46.0125C38.9605 46.6435 39.3068 47.4916 39.3068 48.375C39.3068 49.2584 38.9605 50.1065 38.3423 50.7375C37.7241 51.3685 36.8832 51.732 36 51.75Z" fill="#000000"/></svg>',
21
- dots: '<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M10 17C11.1046 17 12 16.1046 12 15C12 13.8954 11.1046 13 10 13C8.89543 13 8 13.8954 8 15C8 16.1046 8.89543 17 10 17Z" fill="black"/><path d="M10 12C11.1046 12 12 11.1046 12 10C12 8.89543 11.1046 8 10 8C8.89543 8 8 8.89543 8 10C8 11.1046 8.89543 12 10 12Z" fill="black"/><path d="M10 7C11.1046 7 12 6.10457 12 5C12 3.89543 11.1046 3 10 3C8.89543 3 8 3.89543 8 5C8 6.10457 8.89543 7 10 7Z" fill="black"/></svg>',
22
- cross: '<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M15.3149 0.340332C15.4478 0.20752 15.6027 0.118978 15.7798 0.074707C15.9569 0.0249023 16.134 0.0249023 16.311 0.074707C16.4881 0.118978 16.6431 0.20752 16.7759 0.340332C16.9142 0.473145 17.0055 0.630859 17.0498 0.813477C17.0941 0.99056 17.0941 1.16764 17.0498 1.34473C17.0055 1.52181 16.917 1.67676 16.7842 1.80957L1.80127 16.8008C1.67399 16.9281 1.52181 17.0111 1.34473 17.0498C1.16764 17.0941 0.987793 17.0941 0.805176 17.0498C0.628092 17.0111 0.470378 16.9253 0.332031 16.7925C0.199219 16.6597 0.110677 16.502 0.0664062 16.3193C0.0221354 16.1423 0.0221354 15.9652 0.0664062 15.7881C0.110677 15.611 0.196452 15.4588 0.32373 15.3315L15.3149 0.340332ZM16.7842 15.3232C16.917 15.4561 17.0028 15.6082 17.0415 15.7798C17.0858 15.9569 17.0858 16.134 17.0415 16.311C17.0028 16.4937 16.9142 16.6541 16.7759 16.7925C16.6431 16.9253 16.4881 17.0138 16.311 17.0581C16.134 17.1024 15.9569 17.1024 15.7798 17.0581C15.6027 17.0138 15.4478 16.9253 15.3149 16.7925L0.32373 1.80127C0.201986 1.67952 0.116211 1.53011 0.0664062 1.35303C0.0221354 1.17594 0.0221354 0.996094 0.0664062 0.813477C0.116211 0.630859 0.204753 0.473145 0.332031 0.340332C0.464844 0.20752 0.622559 0.118978 0.805176 0.074707C0.987793 0.0304362 1.16488 0.0304362 1.33643 0.074707C1.51351 0.118978 1.66846 0.204753 1.80127 0.332031L16.7842 15.3232Z" fill="#000"/></svg>',
23
- 'eye-open': '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M288 80c-65.2 0-118.8 29.6-159.9 67.7C89.6 183.5 63 226 49.4 256c13.6 30 40.2 72.5 78.6 108.3C169.2 402.4 222.8 432 288 432s118.8-29.6 159.9-67.7C486.4 328.5 513 286 526.6 256c-13.6-30-40.2-72.5-78.6-108.3C406.8 109.6 353.2 80 288 80zM95.4 112.6C142.5 68.8 207.2 32 288 32s145.5 36.8 192.6 80.6c46.8 43.5 78.1 95.4 93 131.1c3.3 7.9 3.3 16.7 0 24.6c-14.9 35.7-46.2 87.7-93 131.1C433.5 443.2 368.8 480 288 480s-145.5-36.8-192.6-80.6C48.6 356 17.3 304 2.5 268.3c-3.3-7.9-3.3-16.7 0-24.6C17.3 208 48.6 156 95.4 112.6zM288 336c44.2 0 80-35.8 80-80s-35.8-80-80-80c-.7 0-1.3 0-2 0c1.3 5.1 2 10.5 2 16c0 35.3-28.7 64-64 64c-5.5 0-10.9-.7-16-2c0 .7 0 1.3 0 2c0 44.2 35.8 80 80 80zm0-208a128 128 0 1 1 0 256 128 128 0 1 1 0-256z"/></svg>',
24
- 'eye-hide': '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zm151 118.3C226 97.7 269.5 80 320 80c65.2 0 118.8 29.6 159.9 67.7C518.4 183.5 545 226 558.6 256c-12.6 28-36.6 66.8-70.9 100.9l-53.8-42.2c9.1-17.6 14.2-37.5 14.2-58.7c0-70.7-57.3-128-128-128c-32.2 0-61.7 11.9-84.2 31.5l-46.1-36.1zM394.9 284.2l-81.5-63.9c4.2-8.5 6.6-18.2 6.6-28.3c0-5.5-.7-10.9-2-16c.7 0 1.3 0 2 0c44.2 0 80 35.8 80 80c0 9.9-1.8 19.4-5.1 28.2zm9.4 130.3C378.8 425.4 350.7 432 320 432c-65.2 0-118.8-29.6-159.9-67.7C121.6 328.5 95 286 81.4 256c8.3-18.4 21.5-41.5 39.4-64.8L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5l-41.9-33zM192 256c0 70.7 57.3 128 128 128c13.3 0 26.1-2 38.2-5.8L302 334c-23.5-5.4-43.1-21.2-53.7-42.3l-56.1-44.2c-.2 2.8-.3 5.6-.3 8.5z"/></svg>',
16
+ danger: '<svg width="72" height="72" viewBox="0 0 72 72" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M36 4.5C53.3953 4.5 67.5 18.6047 67.5 36C67.5 53.3953 53.3953 67.5 36 67.5C18.6047 67.5 4.5 53.3953 4.5 36C4.5 18.6047 18.6047 4.5 36 4.5ZM44.9961 23.8237C44.9944 23.8242 44.9931 23.825 44.9902 23.8279L36 32.818L27.0098 23.8279C27.0069 23.825 27.0056 23.8242 27.0039 23.8237C27.0023 23.8232 27.0006 23.8232 26.999 23.8237C26.9975 23.8242 26.9961 23.825 26.9932 23.8279L23.8278 26.9932C23.825 26.9961 23.8243 26.9975 23.8237 26.9991C23.8232 27.0007 23.8232 27.0024 23.8237 27.004L23.8244 27.0056C23.8253 27.0071 23.8265 27.0085 23.8279 27.0098L32.818 36L23.8279 44.9903C23.825 44.9931 23.8242 44.9945 23.8237 44.9961C23.8232 44.9977 23.8232 44.9995 23.8237 45.0011C23.8242 45.0026 23.825 45.0039 23.8279 45.0068L26.9932 48.1723C26.9961 48.1751 26.9975 48.1758 26.9991 48.1764C27.0007 48.1769 27.0024 48.1769 27.004 48.1764C27.0056 48.1759 27.0069 48.1751 27.0098 48.1722L36 39.1819L44.9903 48.1721C44.9931 48.175 44.9945 48.1758 44.9961 48.1763C44.9977 48.1768 44.9995 48.1768 45.0011 48.1763C45.0026 48.1758 45.0039 48.175 45.0068 48.1721L48.1723 45.0068C48.1751 45.0039 48.1758 45.0025 48.1764 45.0009C48.1769 44.9993 48.1769 44.9976 48.1764 44.996L48.1757 44.9944C48.1747 44.9929 48.1736 44.9915 48.1722 44.9902L39.1819 36L48.1721 27.0098C48.175 27.0069 48.1758 27.0056 48.1763 27.0039C48.1768 27.0023 48.1768 27.0006 48.1763 26.999C48.1758 26.9975 48.175 26.9961 48.1721 26.9932L45.0068 23.8278C45.0039 23.825 45.0025 23.8243 45.0009 23.8237C44.9993 23.8232 44.9977 23.8232 44.9961 23.8237Z" fill="#000000"/></svg>',
17
+ success: '<svg width="72" height="72" viewBox="0 0 72 72" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M36 4.5C18.6047 4.5 4.5 18.6047 4.5 36C4.5 53.3953 18.6047 67.5 36 67.5C53.3953 67.5 67.5 53.3953 67.5 36C67.5 18.6047 53.3953 4.5 36 4.5ZM49.6055 25.7133L34.7977 46.2445C34.5907 46.5334 34.3179 46.7688 34.0018 46.9312C33.6857 47.0935 33.3354 47.1782 32.9801 47.1782C32.6247 47.1782 32.2745 47.0935 31.9584 46.9312C31.6423 46.7688 31.3695 46.5334 31.1625 46.2445L22.3945 34.0945C22.1273 33.7219 22.3945 33.2016 22.8516 33.2016H26.1492C26.8664 33.2016 27.5484 33.5461 27.9703 34.1367L32.9766 41.0836L44.0297 25.7555C44.4516 25.1719 45.1266 24.8203 45.8508 24.8203H49.1484C49.6055 24.8203 49.8727 25.3406 49.6055 25.7133Z" fill="#000000"/></svg>',
18
+ waiting: '<svg width="72" height="72" viewBox="0 0 72 72" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M51 10.02C55.5248 12.6326 59.2888 16.3816 61.9194 20.8959C64.5501 25.4103 65.9561 30.5334 65.9983 35.7581C66.0405 40.9828 64.7174 46.1279 62.1601 50.6841C59.6027 55.2404 55.8997 59.0497 51.4177 61.735C46.9357 64.4203 41.8301 65.8885 36.6063 65.9942C31.3825 66.1 26.2216 64.8395 21.6347 62.3378C17.0477 59.836 13.1936 56.1796 10.454 51.7306C7.71439 47.2816 6.18423 42.1942 6.015 36.972L6 36L6.015 35.028C6.18301 29.847 7.69064 24.7979 10.3909 20.373C13.0912 15.9481 16.892 12.2984 21.4227 9.77969C25.9534 7.26098 31.0594 5.95923 36.243 6.00136C41.4266 6.04348 46.5108 7.42804 51 10.02ZM36 18C35.2652 18.0001 34.556 18.2699 34.0069 18.7582C33.4578 19.2465 33.107 19.9193 33.021 20.649L33 21V36L33.027 36.393C33.0954 36.9135 33.2992 37.407 33.618 37.824L33.879 38.124L42.879 47.124L43.161 47.37C43.6871 47.7782 44.3341 47.9998 45 47.9998C45.6659 47.9998 46.3129 47.7782 46.839 47.37L47.121 47.121L47.37 46.839C47.7782 46.3129 47.9998 45.6659 47.9998 45C47.9998 44.3341 47.7782 43.6872 47.37 43.161L47.121 42.879L39 34.755V21L38.979 20.649C38.893 19.9193 38.5422 19.2465 37.9931 18.7582C37.444 18.2699 36.7348 18.0001 36 18Z" fill="black"/></svg>',
19
+ warning: '<svg width="72" height="72" viewBox="0 0 72 72" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M36.5 5C44.8543 5 52.8665 8.31874 58.7739 14.2261C64.6813 20.1335 68 28.1457 68 36.5C68 44.8543 64.6813 52.8665 58.7739 58.7739C52.8665 64.6813 44.8543 68 36.5 68C28.1457 68 20.1335 64.6813 14.2261 58.7739C8.31874 52.8665 5 44.8543 5 36.5C5 28.1457 8.31874 20.1335 14.2261 14.2261C20.1335 8.31874 28.1457 5 36.5 5ZM36.5 18.5C35.9287 18.4995 35.3635 18.6181 34.8406 18.8484C34.3178 19.0786 33.8487 19.4154 33.4633 19.8372C33.0779 20.259 32.7848 20.7565 32.6025 21.298C32.4203 21.8395 32.353 22.413 32.405 22.982L34.0475 41.009C34.1112 41.6151 34.397 42.1761 34.8499 42.5839C35.3028 42.9917 35.8906 43.2173 36.5 43.2173C37.1094 43.2173 37.6972 42.9917 38.1501 42.5839C38.603 42.1761 38.8888 41.6151 38.9525 41.009L40.5905 22.982C40.6424 22.4134 40.5753 21.8403 40.3933 21.2991C40.2114 20.7579 39.9186 20.2606 39.5337 19.8389C39.1488 19.4171 38.6803 19.0803 38.1579 18.8498C37.6356 18.6192 37.0709 18.5001 36.5 18.5ZM36.5 54.5C37.4548 54.5 38.3705 54.1207 39.0456 53.4456C39.7207 52.7705 40.1 51.8548 40.1 50.9C40.1 49.9452 39.7207 49.0295 39.0456 48.3544C38.3705 47.6793 37.4548 47.3 36.5 47.3C35.5452 47.3 34.6295 47.6793 33.9544 48.3544C33.2793 49.0295 32.9 49.9452 32.9 50.9C32.9 51.8548 33.2793 52.7705 33.9544 53.4456C34.6295 54.1207 35.5452 54.5 36.5 54.5Z" fill="#000000"/></svg>',
20
+ info: '<svg width="72" height="72" viewBox="0 0 72 72" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M36 4.5C18.6047 4.5 4.5 18.6047 4.5 36C4.5 53.3953 18.6047 67.5 36 67.5C53.3953 67.5 67.5 53.3953 67.5 36C67.5 18.6047 53.3953 4.5 36 4.5ZM33.75 20.8125C33.75 20.5031 34.0031 20.25 34.3125 20.25H37.6875C37.9969 20.25 38.25 20.5031 38.25 20.8125V39.9375C38.25 40.2469 37.9969 40.5 37.6875 40.5H34.3125C34.0031 40.5 33.75 40.2469 33.75 39.9375V20.8125ZM36 51.75C35.1168 51.732 34.2759 51.3685 33.6577 50.7375C33.0395 50.1065 32.6932 49.2584 32.6932 48.375C32.6932 47.4916 33.0395 46.6435 33.6577 46.0125C34.2759 45.3815 35.1168 45.018 36 45C36.8832 45.018 37.7241 45.3815 38.3423 46.0125C38.9605 46.6435 39.3068 47.4916 39.3068 48.375C39.3068 49.2584 38.9605 50.1065 38.3423 50.7375C37.7241 51.3685 36.8832 51.732 36 51.75Z" fill="#000000"/></svg>',
21
+ dots: '<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M10 17C11.1046 17 12 16.1046 12 15C12 13.8954 11.1046 13 10 13C8.89543 13 8 13.8954 8 15C8 16.1046 8.89543 17 10 17Z" fill="black"/><path d="M10 12C11.1046 12 12 11.1046 12 10C12 8.89543 11.1046 8 10 8C8.89543 8 8 8.89543 8 10C8 11.1046 8.89543 12 10 12Z" fill="black"/><path d="M10 7C11.1046 7 12 6.10457 12 5C12 3.89543 11.1046 3 10 3C8.89543 3 8 3.89543 8 5C8 6.10457 8.89543 7 10 7Z" fill="black"/></svg>',
22
+ cross: '<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M15.3149 0.340332C15.4478 0.20752 15.6027 0.118978 15.7798 0.074707C15.9569 0.0249023 16.134 0.0249023 16.311 0.074707C16.4881 0.118978 16.6431 0.20752 16.7759 0.340332C16.9142 0.473145 17.0055 0.630859 17.0498 0.813477C17.0941 0.99056 17.0941 1.16764 17.0498 1.34473C17.0055 1.52181 16.917 1.67676 16.7842 1.80957L1.80127 16.8008C1.67399 16.9281 1.52181 17.0111 1.34473 17.0498C1.16764 17.0941 0.987793 17.0941 0.805176 17.0498C0.628092 17.0111 0.470378 16.9253 0.332031 16.7925C0.199219 16.6597 0.110677 16.502 0.0664062 16.3193C0.0221354 16.1423 0.0221354 15.9652 0.0664062 15.7881C0.110677 15.611 0.196452 15.4588 0.32373 15.3315L15.3149 0.340332ZM16.7842 15.3232C16.917 15.4561 17.0028 15.6082 17.0415 15.7798C17.0858 15.9569 17.0858 16.134 17.0415 16.311C17.0028 16.4937 16.9142 16.6541 16.7759 16.7925C16.6431 16.9253 16.4881 17.0138 16.311 17.0581C16.134 17.1024 15.9569 17.1024 15.7798 17.0581C15.6027 17.0138 15.4478 16.9253 15.3149 16.7925L0.32373 1.80127C0.201986 1.67952 0.116211 1.53011 0.0664062 1.35303C0.0221354 1.17594 0.0221354 0.996094 0.0664062 0.813477C0.116211 0.630859 0.204753 0.473145 0.332031 0.340332C0.464844 0.20752 0.622559 0.118978 0.805176 0.074707C0.987793 0.0304362 1.16488 0.0304362 1.33643 0.074707C1.51351 0.118978 1.66846 0.204753 1.80127 0.332031L16.7842 15.3232Z" fill="#000"/></svg>',
23
+ 'eye-open': '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M288 80c-65.2 0-118.8 29.6-159.9 67.7C89.6 183.5 63 226 49.4 256c13.6 30 40.2 72.5 78.6 108.3C169.2 402.4 222.8 432 288 432s118.8-29.6 159.9-67.7C486.4 328.5 513 286 526.6 256c-13.6-30-40.2-72.5-78.6-108.3C406.8 109.6 353.2 80 288 80zM95.4 112.6C142.5 68.8 207.2 32 288 32s145.5 36.8 192.6 80.6c46.8 43.5 78.1 95.4 93 131.1c3.3 7.9 3.3 16.7 0 24.6c-14.9 35.7-46.2 87.7-93 131.1C433.5 443.2 368.8 480 288 480s-145.5-36.8-192.6-80.6C48.6 356 17.3 304 2.5 268.3c-3.3-7.9-3.3-16.7 0-24.6C17.3 208 48.6 156 95.4 112.6zM288 336c44.2 0 80-35.8 80-80s-35.8-80-80-80c-.7 0-1.3 0-2 0c1.3 5.1 2 10.5 2 16c0 35.3-28.7 64-64 64c-5.5 0-10.9-.7-16-2c0 .7 0 1.3 0 2c0 44.2 35.8 80 80 80zm0-208a128 128 0 1 1 0 256 128 128 0 1 1 0-256z"/></svg>',
24
+ 'eye-hide': '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zm151 118.3C226 97.7 269.5 80 320 80c65.2 0 118.8 29.6 159.9 67.7C518.4 183.5 545 226 558.6 256c-12.6 28-36.6 66.8-70.9 100.9l-53.8-42.2c9.1-17.6 14.2-37.5 14.2-58.7c0-70.7-57.3-128-128-128c-32.2 0-61.7 11.9-84.2 31.5l-46.1-36.1zM394.9 284.2l-81.5-63.9c4.2-8.5 6.6-18.2 6.6-28.3c0-5.5-.7-10.9-2-16c.7 0 1.3 0 2 0c44.2 0 80 35.8 80 80c0 9.9-1.8 19.4-5.1 28.2zm9.4 130.3C378.8 425.4 350.7 432 320 432c-65.2 0-118.8-29.6-159.9-67.7C121.6 328.5 95 286 81.4 256c8.3-18.4 21.5-41.5 39.4-64.8L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5l-41.9-33zM192 256c0 70.7 57.3 128 128 128c13.3 0 26.1-2 38.2-5.8L302 334c-23.5-5.4-43.1-21.2-53.7-42.3l-56.1-44.2c-.2 2.8-.3 5.6-.3 8.5z"/></svg>',
25
+ trash: '<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M17.5013 3.33332H14.918C14.5193 1.39465 12.8139 0.0025 10.8346 0H9.16793C7.18867 0.0025 5.48328 1.39465 5.08461 3.33332H2.50129C2.04105 3.33332 1.66797 3.70641 1.66797 4.16664C1.66797 4.62687 2.04105 5 2.50129 5H3.33461V15.8333C3.33738 18.1334 5.20125 19.9973 7.50129 20H12.5013C14.8013 19.9973 16.6652 18.1334 16.668 15.8333V5H17.5013C17.9615 5 18.3346 4.62691 18.3346 4.16668C18.3346 3.70645 17.9615 3.33332 17.5013 3.33332ZM9.16797 14.1667C9.16797 14.6269 8.79488 15 8.33465 15C7.87437 15 7.50129 14.6269 7.50129 14.1667V9.16668C7.50129 8.70645 7.87437 8.33336 8.33461 8.33336C8.79484 8.33336 9.16793 8.70645 9.16793 9.16668V14.1667H9.16797ZM12.5013 14.1667C12.5013 14.6269 12.1282 15 11.668 15C11.2077 15 10.8346 14.6269 10.8346 14.1667V9.16668C10.8346 8.70645 11.2077 8.33336 11.668 8.33336C12.1282 8.33336 12.5013 8.70645 12.5013 9.16668V14.1667ZM6.81047 3.33332C7.16492 2.33523 8.10883 1.66793 9.16797 1.66664H10.8346C11.8938 1.66793 12.8377 2.33523 13.1921 3.33332H6.81047Z" fill="black" fill-opacity="0.5"/></svg>',
26
+ 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>',
27
+ 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>',
28
+ '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>',
29
+ '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>',
30
+ '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>',
31
+ '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>',
32
+ '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>',
33
+ '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>',
34
+ '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>',
35
+ 'file-php': '',
25
36
  };
26
37
 
27
38
  return svg[name] ?? '';
@@ -3,7 +3,7 @@ import VGModal from "../../vgmodal";
3
3
 
4
4
  import { isElement, isVisible, makeRandomString, mergeDeepObject } from "../../../utils/js/functions";
5
5
  import { getSVG } from "../../module-fn";
6
- import { Classes, Manipulator } from "../../../utils/js/dom/manipulator";
6
+ import { Classes} from "../../../utils/js/dom/manipulator";
7
7
  import Selectors from "../../../utils/js/dom/selectors";
8
8
  import EventHandler from "../../../utils/js/dom/event";
9
9
  import {lang_buttons, lang_messages} from "../../../utils/js/components/lang";
@@ -143,7 +143,7 @@ class VGAlert {
143
143
  attr: {},
144
144
  toggle: DATA_AGREE,
145
145
  class: ["btn"],
146
- text: lang_buttons(this.lang, NAME).agree,
146
+ text: lang_buttons(this.lang, NAME)['agree'],
147
147
  },
148
148
  cancel: {
149
149
  element: "",
@@ -152,12 +152,12 @@ class VGAlert {
152
152
  attr: {},
153
153
  toggle: DATA_CANCEL,
154
154
  class: ["btn"],
155
- text: lang_buttons(this.lang, NAME).cancel,
155
+ text: lang_buttons(this.lang, NAME)['cancel'],
156
156
  },
157
157
  },
158
158
  message: {
159
- title: lang_messages(this.lang, NAME).title,
160
- description: lang_messages(this.lang, NAME).description
159
+ title: lang_messages(this.lang, NAME)['title'],
160
+ description: lang_messages(this.lang, NAME)['description']
161
161
  },
162
162
  icons: {
163
163
  danger: getSVG("danger"),
@@ -256,7 +256,13 @@ class VGAlert {
256
256
  * @returns {void}
257
257
  */
258
258
  static confirm(elem, options = {}) {
259
- const context = new VGAlert(options);
259
+ let lang = 'ru';
260
+
261
+ if ('lang' in options) {
262
+ lang = options.lang || 'ru';
263
+ delete options.lang;
264
+ }
265
+ const context = new VGAlert(options, lang);
260
266
  if (context._params.mode !== "confirm") return;
261
267
 
262
268
  const instance = VGAlertConfirm.getOrCreateInstance(elem, context._params);
@@ -239,4 +239,4 @@ MIT — свободно используйте и модифицируйте.
239
239
  ---
240
240
 
241
241
  > 🚀 Автор: VEGAS STUDIO (vegas-dev.com)
242
- > 📍 Поддерживается в проектах на VEGAS
242
+ > 📍 Поддерживается в проектах VEGAS
@@ -53,4 +53,4 @@
53
53
  ---
54
54
 
55
55
  > 🚀 Автор: VEGAS STUDIO (vegas-dev.com)
56
- > 📍 Поддерживается в проектах на VEGAS
56
+ > 📍 Поддерживается в проектах VEGAS
@@ -3,10 +3,19 @@ import EventHandler from "../../../utils/js/dom/event";
3
3
  import Selectors from "../../../utils/js/dom/selectors";
4
4
  import {isDisabled, mergeDeepObject, noop} from "../../../utils/js/functions";
5
5
  import Placement from "../../../utils/js/components/placement";
6
- import Overflow from "../../../utils/js/components/overflow";
7
- import Backdrop from "../../../utils/js/components/backdrop";
8
- import {dismissTrigger} from "../../module-fn";
9
6
 
7
+ /**
8
+ * Константы, используемые в модуле выпадающего списка.
9
+ * @type {Object}
10
+ * @property {string} NAME - Имя модуля.
11
+ * @property {string} NAME_KEY - Уникальный ключ модуля с префиксом.
12
+ * @property {string} CLASS_NAME_SHOW - CSS-класс для отображения элемента.
13
+ * @property {string} CLASS_NAME_FADE - CSS-класс для эффекта затухания.
14
+ * @property {string} CLASS_NAME_OPEN - CSS-класс для немигающего открытия.
15
+ * @property {string} TARGET_CONTAINER - Класс контейнера выпадающего меню.
16
+ * @property {string} PARENT_CONTAINER - Класс родительского контейнера.
17
+ * @property {string} SELECTOR_DATA_TOGGLE - Селектор элемента-переключателя.
18
+ */
10
19
  const NAME = 'dropdown';
11
20
  const NAME_KEY = 'vg.dropdown';
12
21
  const CLASS_NAME_SHOW = 'show';
@@ -16,26 +25,75 @@ const TARGET_CONTAINER = 'vg-dropdown-content';
16
25
  const PARENT_CONTAINER = 'vg-dropdown';
17
26
  const SELECTOR_DATA_TOGGLE = '[data-vg-toggle="dropdown"]';
18
27
 
28
+ /**
29
+ * События, генерируемые модулем.
30
+ * @type {Object}
31
+ */
19
32
  const EVENT_KEY_HIDE = `${NAME_KEY}.hide`;
20
33
  const EVENT_KEY_HIDDEN = `${NAME_KEY}.hidden`;
21
34
  const EVENT_KEY_SHOW = `${NAME_KEY}.show`;
22
35
  const EVENT_KEY_SHOWN = `${NAME_KEY}.shown`;
23
-
24
- const EVENT_KEYUP_DATA_API = `keyup.${NAME_KEY}.data.api`;
25
- const EVENT_KEYDOWN_DATA_API = `keydown.${NAME_KEY}.data.api`;
26
- const EVENT_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;
36
+ const EVENT_KEY_LOADED = `${NAME_KEY}.loaded`;
37
+
38
+ /**
39
+ * Делегированные события на уровне документа.
40
+ * @type {Object}
41
+ */
42
+ const EVENT_KEYUP_DATA_API = `keyup.${NAME_KEY}.data.api`;
43
+ const EVENT_KEYDOWN_DATA_API = `keydown.${NAME_KEY}.data.api`;
44
+ const EVENT_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;
27
45
  const EVENT_MOUSEOVER_DATA_API = `mouseover.${NAME_KEY}.data.api`;
28
- const EVENT_MOUSEOUT_DATA_API = `mouseout.${NAME_KEY}.data.api`;
29
-
46
+ const EVENT_MOUSEOUT_DATA_API = `mouseout.${NAME_KEY}.data.api`;
47
+
48
+ /**
49
+ * Компонент выпадающего списка (Dropdown).
50
+ *
51
+ * @extends BaseModule
52
+ *
53
+ * @example
54
+ * const dropdown = new VGDropdown(document.querySelector('[data-vg-toggle="dropdown"]'), {
55
+ * placement: 'bottom-start',
56
+ * hover: true,
57
+ * animation: {
58
+ * enable: true,
59
+ * in: 'animate__fadeIn',
60
+ * out: 'animate__fadeOut',
61
+ * delay: 150
62
+ * }
63
+ * });
64
+ *
65
+ * @example <caption>Инициализация через data-атрибуты</caption>
66
+ * <div class="vg-dropdown">
67
+ * <button data-vg-toggle="dropdown" aria-expanded="false">Меню</button>
68
+ * <div class="vg-dropdown-content">Содержимое меню</div>
69
+ * </div>
70
+ */
30
71
  class VGDropdown extends BaseModule {
72
+ /**
73
+ * Создаёт экземпляр VGDropdown.
74
+ *
75
+ * @param {HTMLElement} element - Элемент-переключатель (кнопка).
76
+ * @param {Object} [params] - Пользовательские параметры.
77
+ * @param {string} [params.placement='auto'] - Позиция выпадающего окна: 'top', 'bottom', 'left', 'right', 'auto' и т.д.
78
+ * @param {boolean} [params.hover=false] - Открывать по наведению мыши.
79
+ * @param {Object} [params.ajax] - Параметры AJAX-загрузки.
80
+ * @param {string} [params.ajax.route=''] - URL для загрузки контента.
81
+ * @param {string} [params.ajax.target=''] - Селектор внутри drop для вставки данных.
82
+ * @param {string} [params.ajax.method='get'] - HTTP-метод.
83
+ * @param {boolean} [params.ajax.loader=false] - Показывать ли лоадер.
84
+ * @param {boolean} [params.ajax.once=false] - Загружать один раз.
85
+ * @param {boolean} [params.ajax.output=true] - Вставлять ли ответ в DOM.
86
+ * @param {Object} [params.animation] - Настройки анимации.
87
+ * @param {boolean} [params.animation.fade=false] - Использовать fade-анимацию.
88
+ * @param {boolean} [params.animation.enable=false] - Включить CSS-анимации.
89
+ * @param {string} [params.animation.in='animate__flipInY'] - Класс для анимации входа.
90
+ * @param {string} [params.animation.out='animate__flipOutY'] - Класс для анимации выхода.
91
+ * @param {number} [params.animation.delay=300] - Задержка перед завершением скрытия (в мс).
92
+ */
31
93
  constructor(element, params) {
32
94
  super(element, params);
33
95
 
34
96
  let defaultParams = {
35
- backdrop: false,
36
- overflow: false,
37
- keyboard: false,
38
- timeoutAnimation: 10,
39
97
  placement: 'auto',
40
98
  hover: false,
41
99
  ajax: {
@@ -71,18 +129,36 @@ class VGDropdown extends BaseModule {
71
129
  this._animation(this._drop, VGDropdown.NAME_KEY, this._params.animation);
72
130
  }
73
131
 
132
+ /**
133
+ * Возвращает имя компонента.
134
+ * @return {string}
135
+ */
74
136
  static get NAME() {
75
137
  return NAME;
76
138
  }
77
139
 
140
+ /**
141
+ * Возвращает уникальный ключ компонента.
142
+ * @return {string}
143
+ */
78
144
  static get NAME_KEY() {
79
145
  return NAME_KEY;
80
146
  }
81
147
 
148
+ /**
149
+ * Переключает состояние выпадающего списка (открыто/закрыто).
150
+ * @return {void}
151
+ */
82
152
  toggle() {
83
153
  return this._isShown() ? this.hide() : this.show();
84
154
  }
85
155
 
156
+ /**
157
+ * Открывает выпадающий список.
158
+ * @fires VGDropdown#show - Перед открытием.
159
+ * @fires VGDropdown#shown - После открытия.
160
+ * @return {void}
161
+ */
86
162
  show() {
87
163
  if (isDisabled(this._element) || this._isShown()) return;
88
164
 
@@ -101,18 +177,12 @@ class VGDropdown extends BaseModule {
101
177
  this._element.classList.add(CLASS_NAME_SHOW);
102
178
  this._drop.classList.add(CLASS_NAME_SHOW);
103
179
  this._setPlacement();
104
- this._route();
105
-
106
- if (this._params.backdrop && !this._params.hover) {
107
- Backdrop.show();
108
- }
109
-
110
- if (this._params.overflow) {
111
- Overflow.append();
112
- document.body.classList.add('dropdown-open');
113
- }
114
180
 
115
181
  const completeCallback = () => {
182
+ this._route((status, data) => {
183
+ EventHandler.trigger(this._element, EVENT_KEY_LOADED, { stats: status, data });
184
+ });
185
+
116
186
  if (this.isFade) {
117
187
  this._drop.classList.add(CLASS_NAME_FADE);
118
188
  } else if (!this.isAnimation) {
@@ -124,19 +194,39 @@ class VGDropdown extends BaseModule {
124
194
  this._queueCallback(completeCallback, this._drop, this.isAnimation || this.isFade, 50);
125
195
  }
126
196
 
197
+ /**
198
+ * Закрывает выпадающий список.
199
+ * @fires VGDropdown#hide - Перед закрытием.
200
+ * @fires VGDropdown#hidden - После закрытия.
201
+ * @return {void}
202
+ */
127
203
  hide() {
128
204
  if (isDisabled(this._element) || !this._isShown()) return;
129
205
  this._completeHide({ relatedTarget: this._element });
130
206
  }
131
207
 
208
+ /**
209
+ * Удаляет инстанс компонента и очищает обработчики событий.
210
+ * @return {void}
211
+ */
132
212
  dispose() {
133
213
  super.dispose();
134
214
  }
135
215
 
216
+ /**
217
+ * Проверяет, открыто ли выпадающее меню.
218
+ * @return {boolean} - `true`, если открыто.
219
+ * @private
220
+ */
136
221
  _isShown() {
137
222
  return this._element.classList.contains(CLASS_NAME_SHOW);
138
223
  }
139
224
 
225
+ /**
226
+ * Полностью закрывает меню с анимацией и callback.
227
+ * @param {Object} relatedTarget - Событие-инициатор.
228
+ * @private
229
+ */
140
230
  _completeHide(relatedTarget) {
141
231
  const hideEvent = EventHandler.trigger(this._drop, EVENT_KEY_HIDE, relatedTarget);
142
232
  if (hideEvent.defaultPrevented) return;
@@ -156,19 +246,6 @@ class VGDropdown extends BaseModule {
156
246
  this._drop.classList.remove(CLASS_NAME_OPEN);
157
247
  }
158
248
 
159
- if (this._params.backdrop && !this._params.hover) {
160
- Backdrop.hide(() => {
161
- if (this._params.overflow) {
162
- Overflow.destroy();
163
- }
164
- });
165
- }
166
-
167
- if (this._params.overflow) {
168
- Overflow.destroy();
169
- document.body.classList.remove('dropdown-open');
170
- }
171
-
172
249
  setTimeout(() => {
173
250
  const completeCallback = () => {
174
251
  this._drop.classList.remove(CLASS_NAME_SHOW);
@@ -178,6 +255,10 @@ class VGDropdown extends BaseModule {
178
255
  }, this._params.animation.delay);
179
256
  }
180
257
 
258
+ /**
259
+ * Устанавливает позицию выпадающего окна с помощью вспомогательного класса Placement.
260
+ * @private
261
+ */
181
262
  _setPlacement() {
182
263
  if (!this._drop) return;
183
264
 
@@ -209,6 +290,12 @@ class VGDropdown extends BaseModule {
209
290
  this._isPlacement = true;
210
291
  }
211
292
 
293
+ /**
294
+ * Инициализирует компонент на указанном элементе и устанавливает обработчики событий.
295
+ * @param {HTMLElement} element - Элемент-переключатель.
296
+ * @param {Object} [params] - Параметры инициализации.
297
+ * @return {VGDropdown} - Экземпляр компонента.
298
+ */
212
299
  static init(element, params = {}) {
213
300
  const instance = VGDropdown.getOrCreateInstance(element, params);
214
301
 
@@ -253,8 +340,15 @@ class VGDropdown extends BaseModule {
253
340
  event.preventDefault();
254
341
  instance.toggle();
255
342
  });
343
+
344
+ return instance;
256
345
  }
257
346
 
347
+ /**
348
+ * Скрывает все открытые выпадающие списки.
349
+ * @param {Event} event - Событие, инициировавшее скрытие.
350
+ * @static
351
+ */
258
352
  static hideOpenToggles(event) {
259
353
  const openToggles = Selectors.findAll(`${SELECTOR_DATA_TOGGLE}:not(.disabled):not(:disabled).${CLASS_NAME_SHOW}`);
260
354
  for (const toggle of openToggles) {
@@ -279,6 +373,11 @@ class VGDropdown extends BaseModule {
279
373
  }
280
374
  }
281
375
 
376
+ /**
377
+ * Обработчик клавиатурных событий (стрелки, Esc).
378
+ * @param {KeyboardEvent} event - Клавиатурное событие.
379
+ * @static
380
+ */
282
381
  static keydownHandler(event) {
283
382
  const isInput = /input|textarea/i.test(event.target.tagName);
284
383
  const isEscapeEvent = event.key === 'Escape';
@@ -307,6 +406,11 @@ class VGDropdown extends BaseModule {
307
406
  }
308
407
  }
309
408
 
409
+ /**
410
+ * Обработчик кликов и Tab для закрытия выпадающих списков.
411
+ * @param {Event} event - Событие (click или keyup).
412
+ * @static
413
+ */
310
414
  static clearDrops(event) {
311
415
  if (event.button === 2 || (event.type === 'keyup' && event.key !== 'Tab')) {
312
416
  return;
@@ -315,6 +419,4 @@ class VGDropdown extends BaseModule {
315
419
  }
316
420
  }
317
421
 
318
- dismissTrigger(VGDropdown);
319
-
320
422
  export default VGDropdown;