vgapp 1.3.7 → 1.3.9

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 (90) hide show
  1. package/app/langs/en/buttons.json +17 -17
  2. package/app/langs/en/messages.json +36 -36
  3. package/app/langs/ru/buttons.json +17 -17
  4. package/app/langs/ru/messages.json +36 -36
  5. package/app/modules/base-module.js +111 -111
  6. package/app/modules/vgalert/js/vgalert.js +37 -37
  7. package/app/modules/vgalert/readme.md +105 -105
  8. package/app/modules/vgdynamictable/index.js +4 -5
  9. package/app/modules/vgdynamictable/js/editable.js +19 -19
  10. package/app/modules/vgdynamictable/js/filters.js +21 -21
  11. package/app/modules/vgdynamictable/js/fixed.js +179 -179
  12. package/app/modules/vgdynamictable/js/pagination.js +1 -1
  13. package/app/modules/vgdynamictable/js/search.js +12 -12
  14. package/app/modules/vgdynamictable/js/sortable.js +71 -71
  15. package/app/modules/vgdynamictable/js/summary-footer.js +28 -28
  16. package/app/modules/vgdynamictable/js/table-remote.js +79 -79
  17. package/app/modules/vgdynamictable/js/table-url-state.js +31 -31
  18. package/app/modules/vgdynamictable/js/utils/common.js +48 -48
  19. package/app/modules/vgdynamictable/js/vgdynamictable.js +274 -274
  20. package/app/modules/vgdynamictable/readme.md +250 -250
  21. package/app/modules/vgdynamictable/scss/_skeleton.scss +6 -6
  22. package/app/modules/vgdynamictable/scss/_sortable.scss +24 -24
  23. package/app/modules/vgdynamictable/scss/_table.scss +4 -4
  24. package/app/modules/vgdynamictable/scss/_variables.scss +79 -79
  25. package/app/modules/vgdynamictable/scss/vgdynamictable.scss +27 -27
  26. package/app/modules/vgfilepreview/js/i18n.js +56 -56
  27. package/app/modules/vgfilepreview/js/renderers/image-modal.js +145 -145
  28. package/app/modules/vgfilepreview/js/renderers/image.js +92 -92
  29. package/app/modules/vgfilepreview/js/renderers/index.js +19 -19
  30. package/app/modules/vgfilepreview/js/renderers/office-modal.js +168 -168
  31. package/app/modules/vgfilepreview/js/renderers/office.js +79 -79
  32. package/app/modules/vgfilepreview/js/renderers/pdf-modal.js +260 -260
  33. package/app/modules/vgfilepreview/js/renderers/pdf.js +76 -76
  34. package/app/modules/vgfilepreview/js/renderers/playlist.js +71 -71
  35. package/app/modules/vgfilepreview/js/renderers/text-modal.js +343 -343
  36. package/app/modules/vgfilepreview/js/renderers/text.js +83 -83
  37. package/app/modules/vgfilepreview/js/renderers/video-modal.js +272 -272
  38. package/app/modules/vgfilepreview/js/renderers/video.js +80 -80
  39. package/app/modules/vgfilepreview/js/renderers/zip-modal.js +522 -522
  40. package/app/modules/vgfilepreview/js/renderers/zip.js +89 -89
  41. package/app/modules/vgfilepreview/js/vgfilepreview.js +7 -7
  42. package/app/modules/vgfilepreview/readme.md +68 -68
  43. package/app/modules/vgfilepreview/scss/_variables.scss +113 -113
  44. package/app/modules/vgfilepreview/scss/vgfilepreview.scss +464 -464
  45. package/app/modules/vgfiles/js/base.js +26 -26
  46. package/app/modules/vgfiles/js/droppable.js +260 -260
  47. package/app/modules/vgfiles/js/render.js +153 -153
  48. package/app/modules/vgfiles/js/vgfiles.js +104 -104
  49. package/app/modules/vgfiles/readme.md +123 -123
  50. package/app/modules/vgfiles/scss/_variables.scss +18 -18
  51. package/app/modules/vgfiles/scss/vgfiles.scss +148 -148
  52. package/app/modules/vgformsender/js/hideshowpass.js +16 -16
  53. package/app/modules/vgformsender/js/vgformsender.js +73 -72
  54. package/app/modules/vgformsender/readme.md +41 -41
  55. package/app/modules/vgformsender/scss/vgformsender.scss +34 -34
  56. package/app/modules/vgmodal/js/vgmodal.drag.js +332 -332
  57. package/app/modules/vgmodal/js/vgmodal.js +188 -188
  58. package/app/modules/vgmodal/js/vgmodal.resize.js +27 -27
  59. package/app/modules/vgmodal/scss/vgmodal.scss +14 -14
  60. package/app/modules/vgnav/js/vgnav.js +135 -135
  61. package/app/modules/vgnav/readme.md +67 -67
  62. package/app/modules/vgnestable/README.md +307 -307
  63. package/app/modules/vgnestable/scss/_variables.scss +60 -60
  64. package/app/modules/vgnestable/scss/vgnestable.scss +163 -163
  65. package/app/modules/vgrangeslider/js/skins.js +222 -222
  66. package/app/modules/vgrangeslider/js/vgrangeslider.js +704 -704
  67. package/app/modules/vgrangeslider/readme.md +523 -523
  68. package/app/modules/vgrangeslider/scss/_variables.scss +53 -53
  69. package/app/modules/vgrangeslider/scss/vgrangeslider.scss +240 -240
  70. package/app/modules/vgselect/js/vgselect.js +39 -39
  71. package/app/modules/vgselect/scss/vgselect.scss +22 -22
  72. package/app/modules/vgspy/readme.md +28 -28
  73. package/app/modules/vgtoast/readme.md +18 -18
  74. package/app/modules/vgtoast/scss/vgtoast.scss +48 -48
  75. package/app/modules/vgtooltip/js/vgtooltip.js +89 -89
  76. package/app/modules/vgtooltip/readme.md +181 -181
  77. package/app/utils/js/components/ajax.js +117 -117
  78. package/app/utils/js/components/audio-metadata.js +240 -240
  79. package/app/utils/js/components/backdrop.js +17 -17
  80. package/app/utils/js/components/file-icon.js +109 -109
  81. package/app/utils/js/components/file-preview.js +304 -304
  82. package/app/utils/js/components/sanitize.js +150 -150
  83. package/app/utils/js/components/video-metadata.js +140 -140
  84. package/app/vgapp.js +295 -130
  85. package/build/vgapp.css +1 -1
  86. package/build/vgapp.css.map +1 -1
  87. package/build/vgapp.js +1 -1
  88. package/build/vgapp.js.map +1 -1
  89. package/index.js +14 -14
  90. package/package.json +1 -1
@@ -17,12 +17,12 @@ const CLASS_NAME_SHOW = 'show';
17
17
  const EVENT_KEY_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;
18
18
 
19
19
  class VGHideShowPass extends BaseModule{
20
- constructor(el, params = {}) {
21
- super(el, params);
22
-
23
- this._params = this._getParams(el, mergeDeepObject({
24
- parentClass: 'vg-form-sender--content-pass'
25
- }, params));
20
+ constructor(el, params = {}) {
21
+ super(el, params);
22
+
23
+ this._params = this._getParams(el, mergeDeepObject({
24
+ parentClass: 'vg-form-sender--content-pass'
25
+ }, params));
26
26
  }
27
27
 
28
28
  static get NAME() {
@@ -62,15 +62,15 @@ class VGHideShowPass extends BaseModule{
62
62
  instance.build(false);
63
63
  }
64
64
 
65
- build(isShow = false) {
66
- let classes = this._params.classes.join(' '), elm = '';
67
- const HTML = Html('string');
68
- if (this._element.parentElement && this._params.parentClass) {
69
- this._element.parentElement.classList.add(this._params.parentClass);
70
- }
71
-
72
- if (!isShow) {
73
- elm = HTML.component('eye', {class: classes});
65
+ build(isShow = false) {
66
+ let classes = this._params.classes.join(' '), elm = '';
67
+ const HTML = Html('string');
68
+ if (this._element.parentElement && this._params.parentClass) {
69
+ this._element.parentElement.classList.add(this._params.parentClass);
70
+ }
71
+
72
+ if (!isShow) {
73
+ elm = HTML.component('eye', {class: classes});
74
74
  } else {
75
75
  elm = HTML.component('eye', {class: classes, type: 'hide'});
76
76
  }
@@ -100,4 +100,4 @@ EventHandler.on(document, EVENT_KEY_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, functi
100
100
  instance.toggle(this);
101
101
  });
102
102
 
103
- export default VGHideShowPass
103
+ export default VGHideShowPass
@@ -21,16 +21,16 @@
21
21
  * type: 'modal',
22
22
  * enabled: true
23
23
  * },
24
- * callback: {
25
- * afterSuccess: (form, instance, event, data) => {
26
- * console.log('Форма успешно отправлена');
27
- * },
28
- * afterValidateError: (form, instance, event, errors) => {
29
- * console.log(errors);
30
- * }
31
- * }
32
- * });
33
- */
24
+ * callback: {
25
+ * afterSuccess: (form, instance, event, data) => {
26
+ * console.log('Форма успешно отправлена');
27
+ * },
28
+ * afterValidateError: (form, instance, event, errors) => {
29
+ * console.log(errors);
30
+ * }
31
+ * }
32
+ * });
33
+ */
34
34
 
35
35
  import BaseModule from "../../base-module";
36
36
  import VGModal from "../../vgmodal/js/vgmodal";
@@ -163,13 +163,13 @@ class VGFormSender extends BaseModule {
163
163
  wasValidate: 'was-validated',
164
164
  content: 'vg-form-sender--content'
165
165
  },
166
- callback: {
167
- afterInit: noop,
168
- afterValidateError: noop,
169
- afterSuccess: noop,
170
- afterError: noop,
171
- afterSend: noop,
172
- },
166
+ callback: {
167
+ afterInit: noop,
168
+ afterValidateError: noop,
169
+ afterSuccess: noop,
170
+ afterError: noop,
171
+ afterSend: noop,
172
+ },
173
173
  interceptors: {
174
174
  beforeSend: () => new Promise((resolve, reject) => resolve()),
175
175
  success: false,
@@ -473,59 +473,59 @@ class VGFormSender extends BaseModule {
473
473
  * @param {'success'|'error'} status - Статус ответа
474
474
  * @private
475
475
  */
476
- _jsonParse(data, status) {
477
- const _this = this;
476
+ _jsonParse(data, status) {
477
+ const _this = this;
478
478
 
479
479
  if (_this._params.isJsonParse) {
480
480
  _this.alert(normalizeData(data), status);
481
481
  } else {
482
482
  _this.alert(data, status);
483
- }
484
- }
485
-
486
- /**
487
- * Возвращает список ошибок нативной валидации формы
488
- * @returns {Array<Object>}
489
- * @private
490
- */
491
- _getValidationErrors() {
492
- return [...this._element.elements]
493
- .filter((field) => typeof field?.checkValidity === 'function' && !field.checkValidity())
494
- .map((field) => ({
495
- element: field,
496
- name: field.name || '',
497
- id: field.id || '',
498
- type: field.type || '',
499
- value: field.value,
500
- message: field.validationMessage || '',
501
- validity: {...field.validity}
502
- }));
503
- }
504
-
505
- /**
506
- * Обрабатывает неуспешную нативную валидацию перед отправкой
507
- * @param {Event} event
508
- * @returns {boolean}
509
- * @private
510
- */
511
- _handleValidateError(event) {
512
- event.preventDefault();
513
- event.stopPropagation();
514
-
515
- this._element.classList.add(this._params.classes.wasValidate);
516
-
517
- execute(this._params.callback.afterValidateError, [
518
- this._element,
519
- this,
520
- event,
521
- this._getValidationErrors()
522
- ]);
523
-
524
- return false;
525
- }
526
-
527
- /**
528
- * Отображение алерта в зависимости от типа (modal/collapse)
483
+ }
484
+ }
485
+
486
+ /**
487
+ * Возвращает список ошибок нативной валидации формы
488
+ * @returns {Array<Object>}
489
+ * @private
490
+ */
491
+ _getValidationErrors() {
492
+ return [...this._element.elements]
493
+ .filter((field) => typeof field?.checkValidity === 'function' && !field.checkValidity())
494
+ .map((field) => ({
495
+ element: field,
496
+ name: field.name || '',
497
+ id: field.id || '',
498
+ type: field.type || '',
499
+ value: field.value,
500
+ message: field.validationMessage || '',
501
+ validity: {...field.validity}
502
+ }));
503
+ }
504
+
505
+ /**
506
+ * Обрабатывает неуспешную нативную валидацию перед отправкой
507
+ * @param {Event} event
508
+ * @returns {boolean}
509
+ * @private
510
+ */
511
+ _handleValidateError(event) {
512
+ event.preventDefault();
513
+ event.stopPropagation();
514
+
515
+ this._element.classList.add(this._params.classes.wasValidate);
516
+
517
+ execute(this._params.callback.afterValidateError, [
518
+ this._element,
519
+ this,
520
+ event,
521
+ this._getValidationErrors()
522
+ ]);
523
+
524
+ return false;
525
+ }
526
+
527
+ /**
528
+ * Отображение алерта в зависимости от типа (modal/collapse)
529
529
  * @param {Object|string} data - Данные для отображения
530
530
  * @param {string} status - Статус: success, error, danger и т.д.
531
531
  */
@@ -682,8 +682,9 @@ class VGFormSender extends BaseModule {
682
682
  // Модалка OKAUX
683
683
  [...document.getElementsByClassName('ox-modal')].forEach((element) => {
684
684
  if (element && element.classList.contains('is-open')) {
685
- const mOX = okaux.Modal.getOrCreateInstance(element);
686
- mOX.hide();
685
+ okaux.Modal.getOpenInstances().forEach((instance) => {
686
+ instance.hide();
687
+ });
687
688
  }
688
689
  });
689
690
  }
@@ -944,11 +945,11 @@ EventHandler.on(document, EVENT_SUBMIT_DATA_API, function (event) {
944
945
  return;
945
946
  }
946
947
 
947
- if (instance._params.validate) {
948
- if (!instance._element.checkValidity()) {
949
- return instance._handleValidateError(event);
950
- }
951
- }
948
+ if (instance._params.validate) {
949
+ if (!instance._element.checkValidity()) {
950
+ return instance._handleValidateError(event);
951
+ }
952
+ }
952
953
 
953
954
  if (!instance._params.submit) {
954
955
  event.preventDefault();
@@ -43,13 +43,13 @@ VGFormSender.init(document.getElementById('contactForm'), {
43
43
  enabled: true,
44
44
  delay: 5000 // ожидание открытия, через 5 секунд
45
45
  },
46
- callback: {
47
- afterValidateError: (form, instance, event, errors) => {
48
- console.log('Ошибки валидации:', errors);
49
- },
50
- afterSuccess: (form, instance, event, data) => {
51
- console.log('Форма отправлена!', data);
52
- },
46
+ callback: {
47
+ afterValidateError: (form, instance, event, errors) => {
48
+ console.log('Ошибки валидации:', errors);
49
+ },
50
+ afterSuccess: (form, instance, event, data) => {
51
+ console.log('Форма отправлена!', data);
52
+ },
53
53
  afterError: (form, instance, event, data) => {
54
54
  console.error('Ошибка:', data);
55
55
  }
@@ -97,40 +97,40 @@ VGFormSender.init(document.getElementById('contactForm'), {
97
97
  | `interceptors.beforeSend` | `Function` | `Promise.resolve()` | Выполняется перед отправкой |
98
98
  | `interceptors.success` | `Function\|false` | `false` | Кастомная обработка успеха |
99
99
  | `interceptors.error` | `Function\|false` | `false` | Кастомная обработка ошибки |
100
- | `callback.afterInit` | `Function` | `noop` | После инициализации |
101
- | `callback.afterValidateError` | `Function` | `noop` | После провала нативной HTML5-валидации, до отправки формы |
102
- | `callback.afterSuccess` | `Function` | `noop` | После успеха |
103
- | `callback.afterError` | `Function` | `noop` | После ошибки |
104
- | `callback.afterSend` | `Function` | `noop` | После любого ответа |
105
-
106
- ---
107
-
108
- ## Проверка валидации до отправки
109
-
110
- Если включён `validate: true`, модуль сначала вызывает нативный `checkValidity()` у формы. Если форма невалидна, отправка отменяется, форме добавляется класс `was-validated`, а затем вызывается `callback.afterValidateError`.
111
-
112
- ```js
113
- VGFormSender.init(document.getElementById('contactForm'), {
114
- validate: true,
115
- callback: {
116
- afterValidateError: (form, instance, event, errors) => {
117
- errors.forEach((error) => {
118
- console.log(error.name, error.message);
119
- });
120
- }
121
- }
122
- });
123
- ```
124
-
125
- Каждый элемент массива `errors` содержит:
126
-
127
- - `element` — ссылку на невалидное поле
128
- - `name` / `id` / `type`
129
- - `value` — текущее значение поля
130
- - `message` — текст из `validationMessage`
131
- - `validity` — слепок объекта `ValidityState`
132
-
133
- ---
100
+ | `callback.afterInit` | `Function` | `noop` | После инициализации |
101
+ | `callback.afterValidateError` | `Function` | `noop` | После провала нативной HTML5-валидации, до отправки формы |
102
+ | `callback.afterSuccess` | `Function` | `noop` | После успеха |
103
+ | `callback.afterError` | `Function` | `noop` | После ошибки |
104
+ | `callback.afterSend` | `Function` | `noop` | После любого ответа |
105
+
106
+ ---
107
+
108
+ ## Проверка валидации до отправки
109
+
110
+ Если включён `validate: true`, модуль сначала вызывает нативный `checkValidity()` у формы. Если форма невалидна, отправка отменяется, форме добавляется класс `was-validated`, а затем вызывается `callback.afterValidateError`.
111
+
112
+ ```js
113
+ VGFormSender.init(document.getElementById('contactForm'), {
114
+ validate: true,
115
+ callback: {
116
+ afterValidateError: (form, instance, event, errors) => {
117
+ errors.forEach((error) => {
118
+ console.log(error.name, error.message);
119
+ });
120
+ }
121
+ }
122
+ });
123
+ ```
124
+
125
+ Каждый элемент массива `errors` содержит:
126
+
127
+ - `element` — ссылку на невалидное поле
128
+ - `name` / `id` / `type`
129
+ - `value` — текущее значение поля
130
+ - `message` — текст из `validationMessage`
131
+ - `validity` — слепок объекта `ValidityState`
132
+
133
+ ---
134
134
 
135
135
  ## 🔔 События
136
136
 
@@ -20,21 +20,21 @@
20
20
  }
21
21
  }
22
22
 
23
- &--content {
24
- position: relative;
25
-
26
- &-pass {
27
- &:focus-within {
28
- input {
29
- padding-right: 5rem;
30
- }
31
-
32
- .vg-form-sender--hide-show-pass {
33
- right: 44px;
34
- }
35
- }
36
- }
37
- }
23
+ &--content {
24
+ position: relative;
25
+
26
+ &-pass {
27
+ &:focus-within {
28
+ input {
29
+ padding-right: 5rem;
30
+ }
31
+
32
+ .vg-form-sender--hide-show-pass {
33
+ right: 44px;
34
+ }
35
+ }
36
+ }
37
+ }
38
38
 
39
39
  &--hide-show-pass {
40
40
  position: absolute;
@@ -52,24 +52,24 @@
52
52
  }
53
53
  }
54
54
 
55
- &.was-validated {
56
- .vg-form-sender--hide-show-pass {
57
- right: 34px;
58
- }
59
-
60
- .vg-form-sender--content-pass {
61
- &:focus-within {
62
- input {
63
- padding-right: 6.25rem;
64
- }
65
-
66
- .vg-form-sender--hide-show-pass {
67
- right: 64px;
68
- }
69
- }
70
- }
71
- }
72
- }
55
+ &.was-validated {
56
+ .vg-form-sender--hide-show-pass {
57
+ right: 34px;
58
+ }
59
+
60
+ .vg-form-sender--content-pass {
61
+ &:focus-within {
62
+ input {
63
+ padding-right: 6.25rem;
64
+ }
65
+
66
+ .vg-form-sender--hide-show-pass {
67
+ right: 64px;
68
+ }
69
+ }
70
+ }
71
+ }
72
+ }
73
73
 
74
74
  .vg-form-sender-alert {
75
75
  @include mix-alert-color-mode($class: vg-form-sender-alert);
@@ -126,4 +126,4 @@
126
126
  .vg-form-sender-alert-content--text {
127
127
  font-size: 1.25rem;
128
128
  color: var(--vg-form-sender-alert-color);
129
- }
129
+ }