vgapp 1.1.7 → 1.1.8

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 (57) hide show
  1. package/CHANGELOG.md +11 -11
  2. package/README.md +48 -48
  3. package/app/langs/en/buttons.json +17 -17
  4. package/app/langs/en/messages.json +36 -36
  5. package/app/langs/ru/buttons.json +17 -17
  6. package/app/langs/ru/messages.json +36 -36
  7. package/app/modules/vgfilepreview/js/i18n.js +56 -56
  8. package/app/modules/vgfilepreview/js/renderers/image-modal.js +145 -145
  9. package/app/modules/vgfilepreview/js/renderers/image.js +92 -92
  10. package/app/modules/vgfilepreview/js/renderers/index.js +19 -19
  11. package/app/modules/vgfilepreview/js/renderers/office-modal.js +168 -168
  12. package/app/modules/vgfilepreview/js/renderers/office.js +79 -79
  13. package/app/modules/vgfilepreview/js/renderers/pdf-modal.js +260 -260
  14. package/app/modules/vgfilepreview/js/renderers/pdf.js +76 -76
  15. package/app/modules/vgfilepreview/js/renderers/playlist.js +71 -71
  16. package/app/modules/vgfilepreview/js/renderers/text-modal.js +343 -343
  17. package/app/modules/vgfilepreview/js/renderers/text.js +83 -83
  18. package/app/modules/vgfilepreview/js/renderers/video-modal.js +272 -272
  19. package/app/modules/vgfilepreview/js/renderers/video.js +80 -80
  20. package/app/modules/vgfilepreview/js/renderers/zip-modal.js +522 -522
  21. package/app/modules/vgfilepreview/js/renderers/zip.js +89 -89
  22. package/app/modules/vgfilepreview/js/vgfilepreview.js +7 -7
  23. package/app/modules/vgfilepreview/readme.md +68 -68
  24. package/app/modules/vgfilepreview/scss/_variables.scss +113 -113
  25. package/app/modules/vgfilepreview/scss/vgfilepreview.scss +464 -464
  26. package/app/modules/vgfiles/js/base.js +26 -26
  27. package/app/modules/vgfiles/js/droppable.js +260 -260
  28. package/app/modules/vgfiles/js/render.js +153 -153
  29. package/app/modules/vgfiles/js/vgfiles.js +41 -41
  30. package/app/modules/vgfiles/readme.md +123 -123
  31. package/app/modules/vgfiles/scss/_variables.scss +18 -18
  32. package/app/modules/vgfiles/scss/vgfiles.scss +148 -148
  33. package/app/modules/vgmodal/js/vgmodal.drag.js +332 -332
  34. package/app/modules/vgmodal/js/vgmodal.js +33 -33
  35. package/app/modules/vgmodal/js/vgmodal.resize.js +435 -435
  36. package/app/modules/vgnav/js/vgnav.js +135 -135
  37. package/app/modules/vgnav/readme.md +67 -67
  38. package/app/modules/vgnestable/README.md +307 -307
  39. package/app/modules/vgnestable/scss/_variables.scss +60 -60
  40. package/app/modules/vgnestable/scss/vgnestable.scss +163 -163
  41. package/app/modules/vgrollup/js/vgrollup.js +14 -9
  42. package/app/modules/vgselect/js/vgselect.js +39 -39
  43. package/app/modules/vgselect/scss/vgselect.scss +22 -22
  44. package/app/modules/vgspy/readme.md +28 -28
  45. package/app/modules/vgtoast/js/vgtoast.js +121 -76
  46. package/app/modules/vgtoast/readme.md +12 -1
  47. package/app/modules/vgtoast/scss/vgtoast.scss +42 -1
  48. package/app/utils/js/components/audio-metadata.js +240 -240
  49. package/app/utils/js/components/file-icon.js +109 -109
  50. package/app/utils/js/components/file-preview.js +304 -304
  51. package/app/utils/js/components/sanitize.js +150 -150
  52. package/app/utils/js/components/video-metadata.js +140 -140
  53. package/build/vgapp.css +1 -1
  54. package/build/vgapp.css.map +1 -1
  55. package/build/vgapp.js.map +1 -1
  56. package/index.scss +9 -9
  57. package/package.json +1 -1
@@ -1,60 +1,60 @@
1
- $nestable-map: (
2
- list-transition: "background-color .15s ease, outline-color .15s ease",
3
- list-drop-target-bg: rgba(13, 110, 253, .06),
4
- list-drop-target-outline: 1px dashed rgba(13, 110, 253, .45),
5
- list-drop-target-outline-offset: 2px,
6
- list-drop-denied-bg: rgba(220, 53, 69, .06),
7
- list-drop-denied-outline: 1px dashed rgba(220, 53, 69, .5),
8
- list-drop-denied-outline-offset: 2px,
9
- list-nested-margin-top: .35rem,
10
- list-nested-padding-left: 1.25rem,
11
- list-nested-border-left: 1px dashed rgba(0, 0, 0, .12),
12
-
13
- item-margin: .35rem 0,
14
- item-transition: opacity .15s ease,
15
- item-dragging-opacity: .85,
16
- item-ghost-opacity: .3,
17
-
18
- inner-gap: .5rem,
19
- inner-min-height: 40px,
20
- inner-padding: .45rem .65rem,
21
- inner-border: 1px solid rgba(0, 0, 0, .12),
22
- inner-bg: #fff,
23
- inner-border-radius: .45rem,
24
-
25
- handle-size: 1.85rem,
26
- handle-border: 1px solid rgba(0, 0, 0, .12),
27
- handle-bg: rgba(0, 0, 0, .03),
28
- handle-border-radius: .35rem,
29
- handle-cursor: grab,
30
- handle-active-cursor: grabbing,
31
-
32
- toggle-size: 1.85rem,
33
- toggle-border: 1px solid rgba(0, 0, 0, .12),
34
- toggle-bg: rgba(0, 0, 0, .03),
35
- toggle-border-radius: .35rem,
36
- toggle-color: rgba(0, 0, 0, .65),
37
- toggle-font-weight: 700,
38
- toggle-line-height: 1,
39
- toggle-hover-bg: rgba(0, 0, 0, .07),
40
- toggle-svg-size: 16px,
41
- toggle-svg-transition: transform .2s ease,
42
- toggle-svg-closed-transform: rotate(0deg),
43
- toggle-svg-open-transform: rotate(180deg),
44
-
45
- handle-icon-min-width: .9rem,
46
- handle-icon-color: rgba(0, 0, 0, .45),
47
- handle-icon-font-weight: 700,
48
- handle-icon-line-height: 1,
49
- handle-icon-letter-spacing: .06em,
50
-
51
- placeholder-border: 1px dashed rgba(13, 110, 253, .7),
52
- placeholder-bg: rgba(13, 110, 253, .08),
53
- placeholder-border-radius: .45rem,
54
- placeholder-margin: .35rem 0,
55
- placeholder-min-height: 40px,
56
-
57
- drag-element-opacity: .92,
58
- drag-element-transform: rotate(.5deg),
59
- drag-element-shadow: 0 8px 22px rgba(0, 0, 0, .18)
60
- );
1
+ $nestable-map: (
2
+ list-transition: "background-color .15s ease, outline-color .15s ease",
3
+ list-drop-target-bg: rgba(13, 110, 253, .06),
4
+ list-drop-target-outline: 1px dashed rgba(13, 110, 253, .45),
5
+ list-drop-target-outline-offset: 2px,
6
+ list-drop-denied-bg: rgba(220, 53, 69, .06),
7
+ list-drop-denied-outline: 1px dashed rgba(220, 53, 69, .5),
8
+ list-drop-denied-outline-offset: 2px,
9
+ list-nested-margin-top: .35rem,
10
+ list-nested-padding-left: 1.25rem,
11
+ list-nested-border-left: 1px dashed rgba(0, 0, 0, .12),
12
+
13
+ item-margin: .35rem 0,
14
+ item-transition: opacity .15s ease,
15
+ item-dragging-opacity: .85,
16
+ item-ghost-opacity: .3,
17
+
18
+ inner-gap: .5rem,
19
+ inner-min-height: 40px,
20
+ inner-padding: .45rem .65rem,
21
+ inner-border: 1px solid rgba(0, 0, 0, .12),
22
+ inner-bg: #fff,
23
+ inner-border-radius: .45rem,
24
+
25
+ handle-size: 1.85rem,
26
+ handle-border: 1px solid rgba(0, 0, 0, .12),
27
+ handle-bg: rgba(0, 0, 0, .03),
28
+ handle-border-radius: .35rem,
29
+ handle-cursor: grab,
30
+ handle-active-cursor: grabbing,
31
+
32
+ toggle-size: 1.85rem,
33
+ toggle-border: 1px solid rgba(0, 0, 0, .12),
34
+ toggle-bg: rgba(0, 0, 0, .03),
35
+ toggle-border-radius: .35rem,
36
+ toggle-color: rgba(0, 0, 0, .65),
37
+ toggle-font-weight: 700,
38
+ toggle-line-height: 1,
39
+ toggle-hover-bg: rgba(0, 0, 0, .07),
40
+ toggle-svg-size: 16px,
41
+ toggle-svg-transition: transform .2s ease,
42
+ toggle-svg-closed-transform: rotate(0deg),
43
+ toggle-svg-open-transform: rotate(180deg),
44
+
45
+ handle-icon-min-width: .9rem,
46
+ handle-icon-color: rgba(0, 0, 0, .45),
47
+ handle-icon-font-weight: 700,
48
+ handle-icon-line-height: 1,
49
+ handle-icon-letter-spacing: .06em,
50
+
51
+ placeholder-border: 1px dashed rgba(13, 110, 253, .7),
52
+ placeholder-bg: rgba(13, 110, 253, .08),
53
+ placeholder-border-radius: .45rem,
54
+ placeholder-margin: .35rem 0,
55
+ placeholder-min-height: 40px,
56
+
57
+ drag-element-opacity: .92,
58
+ drag-element-transform: rotate(.5deg),
59
+ drag-element-shadow: 0 8px 22px rgba(0, 0, 0, .18)
60
+ );
@@ -1,163 +1,163 @@
1
- /**
2
- *--------------------------------------------------------------------------
3
- * Module: VGNestable
4
- * Author: Vegas DEV
5
- * License: see LICENSE
6
- *--------------------------------------------------------------------------
7
- **/
8
-
9
- @import "../../../utils/scss/functions";
10
- @import "../../../utils/scss/mixin";
11
- @import "../../../utils/scss/variables";
12
- @import "variables";
13
-
14
- .vg-nestable {
15
- @include mix-vars('nestable', $nestable-map);
16
-
17
- &-list {
18
- list-style: none;
19
- margin: 0;
20
- padding: 0;
21
- transition: var(--vg-nestable-list-transition);
22
-
23
- &.is-drop-target {
24
- background: var(--vg-nestable-list-drop-target-bg);
25
- outline: var(--vg-nestable-list-drop-target-outline);
26
- outline-offset: var(--vg-nestable-list-drop-target-outline-offset);
27
- }
28
-
29
- &.is-drop-denied {
30
- background: var(--vg-nestable-list-drop-denied-bg);
31
- outline: var(--vg-nestable-list-drop-denied-outline);
32
- outline-offset: var(--vg-nestable-list-drop-denied-outline-offset);
33
- }
34
-
35
- .vg-nestable-list {
36
- margin-top: var(--vg-nestable-list-nested-margin-top);
37
- padding-left: var(--vg-nestable-list-nested-padding-left);
38
- border-left: var(--vg-nestable-list-nested-border-left);
39
- }
40
- }
41
-
42
- &-item {
43
- margin: var(--vg-nestable-item-margin);
44
- position: relative;
45
- transition: var(--vg-nestable-item-transition);
46
-
47
- &.is-dragging {
48
- opacity: var(--vg-nestable-item-dragging-opacity);
49
- }
50
-
51
- &.is-drag-ghost {
52
- opacity: var(--vg-nestable-item-ghost-opacity);
53
- }
54
- }
55
-
56
- &-inner {
57
- display: flex;
58
- align-items: center;
59
- gap: var(--vg-nestable-inner-gap);
60
- min-height: var(--vg-nestable-inner-min-height);
61
- padding: var(--vg-nestable-inner-padding);
62
- border: var(--vg-nestable-inner-border);
63
- background: var(--vg-nestable-inner-bg);
64
- border-radius: var(--vg-nestable-inner-border-radius);
65
- }
66
-
67
- &-handle {
68
- flex: 0 0 auto;
69
- display: inline-flex;
70
- align-items: center;
71
- justify-content: center;
72
- width: var(--vg-nestable-handle-size);
73
- min-height: var(--vg-nestable-handle-size);
74
- padding: 0;
75
- border: var(--vg-nestable-handle-border);
76
- background: var(--vg-nestable-handle-bg);
77
- border-radius: var(--vg-nestable-handle-border-radius);
78
- cursor: var(--vg-nestable-handle-cursor);
79
- user-select: none;
80
-
81
- &:active {
82
- cursor: var(--vg-nestable-handle-active-cursor);
83
- }
84
- }
85
-
86
- &-collapse-toggle {
87
- flex: 0 0 auto;
88
- display: inline-flex;
89
- align-items: center;
90
- justify-content: center;
91
- width: var(--vg-nestable-toggle-size);
92
- min-height: var(--vg-nestable-toggle-size);
93
- padding: 0;
94
- border: var(--vg-nestable-toggle-border);
95
- background: var(--vg-nestable-toggle-bg);
96
- border-radius: var(--vg-nestable-toggle-border-radius);
97
- cursor: pointer;
98
- color: var(--vg-nestable-toggle-color);
99
- font-weight: var(--vg-nestable-toggle-font-weight);
100
- line-height: var(--vg-nestable-toggle-line-height);
101
-
102
- &:hover {
103
- background: var(--vg-nestable-toggle-hover-bg);
104
- }
105
-
106
- svg {
107
- width: var(--vg-nestable-toggle-svg-size);
108
- height: var(--vg-nestable-toggle-svg-size);
109
- transition: var(--vg-nestable-toggle-svg-transition);
110
- transform: var(--vg-nestable-toggle-svg-closed-transform);
111
-
112
- path {
113
- fill: currentColor;
114
- }
115
- }
116
-
117
- &[aria-expanded="true"] {
118
- svg {
119
- transform: var(--vg-nestable-toggle-svg-open-transform);
120
- }
121
- }
122
- }
123
-
124
- &-handle-icon {
125
- flex: 0 0 auto;
126
- display: inline-flex;
127
- align-items: center;
128
- justify-content: center;
129
- min-width: var(--vg-nestable-handle-icon-min-width);
130
- color: var(--vg-nestable-handle-icon-color);
131
- font-weight: var(--vg-nestable-handle-icon-font-weight);
132
- line-height: var(--vg-nestable-handle-icon-line-height);
133
- letter-spacing: var(--vg-nestable-handle-icon-letter-spacing);
134
- }
135
-
136
- &-content {
137
- flex: 1 1 auto;
138
- min-width: 0;
139
- }
140
-
141
- &-placeholder {
142
- list-style: none;
143
- border: var(--vg-nestable-placeholder-border);
144
- background: var(--vg-nestable-placeholder-bg);
145
- border-radius: var(--vg-nestable-placeholder-border-radius);
146
- margin: var(--vg-nestable-placeholder-margin);
147
- min-height: var(--vg-nestable-placeholder-min-height);
148
- }
149
-
150
- &-placeholder-hidden {
151
- border: 0;
152
- background: transparent;
153
- margin: 0;
154
- min-height: 0;
155
- height: 0 !important;
156
- }
157
-
158
- &-drag-element {
159
- opacity: var(--vg-nestable-drag-element-opacity);
160
- transform: var(--vg-nestable-drag-element-transform);
161
- box-shadow: var(--vg-nestable-drag-element-shadow);
162
- }
163
- }
1
+ /**
2
+ *--------------------------------------------------------------------------
3
+ * Module: VGNestable
4
+ * Author: Vegas DEV
5
+ * License: see LICENSE
6
+ *--------------------------------------------------------------------------
7
+ **/
8
+
9
+ @import "../../../utils/scss/functions";
10
+ @import "../../../utils/scss/mixin";
11
+ @import "../../../utils/scss/variables";
12
+ @import "variables";
13
+
14
+ .vg-nestable {
15
+ @include mix-vars('nestable', $nestable-map);
16
+
17
+ &-list {
18
+ list-style: none;
19
+ margin: 0;
20
+ padding: 0;
21
+ transition: var(--vg-nestable-list-transition);
22
+
23
+ &.is-drop-target {
24
+ background: var(--vg-nestable-list-drop-target-bg);
25
+ outline: var(--vg-nestable-list-drop-target-outline);
26
+ outline-offset: var(--vg-nestable-list-drop-target-outline-offset);
27
+ }
28
+
29
+ &.is-drop-denied {
30
+ background: var(--vg-nestable-list-drop-denied-bg);
31
+ outline: var(--vg-nestable-list-drop-denied-outline);
32
+ outline-offset: var(--vg-nestable-list-drop-denied-outline-offset);
33
+ }
34
+
35
+ .vg-nestable-list {
36
+ margin-top: var(--vg-nestable-list-nested-margin-top);
37
+ padding-left: var(--vg-nestable-list-nested-padding-left);
38
+ border-left: var(--vg-nestable-list-nested-border-left);
39
+ }
40
+ }
41
+
42
+ &-item {
43
+ margin: var(--vg-nestable-item-margin);
44
+ position: relative;
45
+ transition: var(--vg-nestable-item-transition);
46
+
47
+ &.is-dragging {
48
+ opacity: var(--vg-nestable-item-dragging-opacity);
49
+ }
50
+
51
+ &.is-drag-ghost {
52
+ opacity: var(--vg-nestable-item-ghost-opacity);
53
+ }
54
+ }
55
+
56
+ &-inner {
57
+ display: flex;
58
+ align-items: center;
59
+ gap: var(--vg-nestable-inner-gap);
60
+ min-height: var(--vg-nestable-inner-min-height);
61
+ padding: var(--vg-nestable-inner-padding);
62
+ border: var(--vg-nestable-inner-border);
63
+ background: var(--vg-nestable-inner-bg);
64
+ border-radius: var(--vg-nestable-inner-border-radius);
65
+ }
66
+
67
+ &-handle {
68
+ flex: 0 0 auto;
69
+ display: inline-flex;
70
+ align-items: center;
71
+ justify-content: center;
72
+ width: var(--vg-nestable-handle-size);
73
+ min-height: var(--vg-nestable-handle-size);
74
+ padding: 0;
75
+ border: var(--vg-nestable-handle-border);
76
+ background: var(--vg-nestable-handle-bg);
77
+ border-radius: var(--vg-nestable-handle-border-radius);
78
+ cursor: var(--vg-nestable-handle-cursor);
79
+ user-select: none;
80
+
81
+ &:active {
82
+ cursor: var(--vg-nestable-handle-active-cursor);
83
+ }
84
+ }
85
+
86
+ &-collapse-toggle {
87
+ flex: 0 0 auto;
88
+ display: inline-flex;
89
+ align-items: center;
90
+ justify-content: center;
91
+ width: var(--vg-nestable-toggle-size);
92
+ min-height: var(--vg-nestable-toggle-size);
93
+ padding: 0;
94
+ border: var(--vg-nestable-toggle-border);
95
+ background: var(--vg-nestable-toggle-bg);
96
+ border-radius: var(--vg-nestable-toggle-border-radius);
97
+ cursor: pointer;
98
+ color: var(--vg-nestable-toggle-color);
99
+ font-weight: var(--vg-nestable-toggle-font-weight);
100
+ line-height: var(--vg-nestable-toggle-line-height);
101
+
102
+ &:hover {
103
+ background: var(--vg-nestable-toggle-hover-bg);
104
+ }
105
+
106
+ svg {
107
+ width: var(--vg-nestable-toggle-svg-size);
108
+ height: var(--vg-nestable-toggle-svg-size);
109
+ transition: var(--vg-nestable-toggle-svg-transition);
110
+ transform: var(--vg-nestable-toggle-svg-closed-transform);
111
+
112
+ path {
113
+ fill: currentColor;
114
+ }
115
+ }
116
+
117
+ &[aria-expanded="true"] {
118
+ svg {
119
+ transform: var(--vg-nestable-toggle-svg-open-transform);
120
+ }
121
+ }
122
+ }
123
+
124
+ &-handle-icon {
125
+ flex: 0 0 auto;
126
+ display: inline-flex;
127
+ align-items: center;
128
+ justify-content: center;
129
+ min-width: var(--vg-nestable-handle-icon-min-width);
130
+ color: var(--vg-nestable-handle-icon-color);
131
+ font-weight: var(--vg-nestable-handle-icon-font-weight);
132
+ line-height: var(--vg-nestable-handle-icon-line-height);
133
+ letter-spacing: var(--vg-nestable-handle-icon-letter-spacing);
134
+ }
135
+
136
+ &-content {
137
+ flex: 1 1 auto;
138
+ min-width: 0;
139
+ }
140
+
141
+ &-placeholder {
142
+ list-style: none;
143
+ border: var(--vg-nestable-placeholder-border);
144
+ background: var(--vg-nestable-placeholder-bg);
145
+ border-radius: var(--vg-nestable-placeholder-border-radius);
146
+ margin: var(--vg-nestable-placeholder-margin);
147
+ min-height: var(--vg-nestable-placeholder-min-height);
148
+ }
149
+
150
+ &-placeholder-hidden {
151
+ border: 0;
152
+ background: transparent;
153
+ margin: 0;
154
+ min-height: 0;
155
+ height: 0 !important;
156
+ }
157
+
158
+ &-drag-element {
159
+ opacity: var(--vg-nestable-drag-element-opacity);
160
+ transform: var(--vg-nestable-drag-element-transform);
161
+ box-shadow: var(--vg-nestable-drag-element-shadow);
162
+ }
163
+ }
@@ -73,7 +73,7 @@ class VGRollup extends BaseModule {
73
73
  constructor(element, params = {}) {
74
74
  super(element, params);
75
75
 
76
- this._params = this._getParams(element, mergeDeepObject({
76
+ const defaultParams = {
77
77
  lang: document.documentElement.lang || 'ru',
78
78
  content: 'text',
79
79
  cnt: 0,
@@ -87,8 +87,8 @@ class VGRollup extends BaseModule {
87
87
  more: ' еще ',
88
88
  button: {
89
89
  enabled: true,
90
- more: "Показать",
91
- less: "Свернуть",
90
+ more: 'Показать',
91
+ less: 'Свернуть',
92
92
  classes: ''
93
93
  },
94
94
  callbacks: {
@@ -96,7 +96,17 @@ class VGRollup extends BaseModule {
96
96
  expand: () => {},
97
97
  collapse: () => {}
98
98
  }
99
- }, params));
99
+ };
100
+
101
+ let lang = Manipulator.get(element, 'data-lang') || ('lang' in params) ? params.lang : defaultParams.lang;
102
+
103
+ // Локализация текстов кнопок
104
+ defaultParams.button.more = lang_buttons(lang, NAME)['show'];
105
+ defaultParams.button.less = lang_buttons(lang, NAME)['less'];
106
+ defaultParams.more = lang_buttons(lang, NAME)['more'];
107
+
108
+
109
+ this._params = this._getParams(element, mergeDeepObject(defaultParams, params));
100
110
 
101
111
  /**
102
112
  * CSS-классы, используемые модулем.
@@ -141,11 +151,6 @@ class VGRollup extends BaseModule {
141
151
  */
142
152
  this.isOffset = false;
143
153
 
144
- // Локализация текстов кнопок
145
- this._params.button.more = lang_buttons(this._params.lang, NAME)['show'];
146
- this._params.button.less = lang_buttons(this._params.lang, NAME)['less'];
147
- this._params.more = lang_buttons(this._params.lang, NAME)['more'];
148
-
149
154
  this.build();
150
155
  }
151
156
 
@@ -52,7 +52,7 @@ const SELECTOR_DROPDOWN = `.${CLASS_NAME_DROPDOWN}`;
52
52
  const SELECTOR_SEARCH_INPUT = `.${CLASS_NAME_SEARCH} input`;
53
53
  const SELECTOR_LIST = `.${CLASS_NAME_LIST}`;
54
54
  const SELECTOR_LOAD_MORE_BTN = `.${CLASS_NAME_LOAD_MORE}`;
55
- const DATA_ATTR_COPY_EXCLUDE_DEFAULT = ['inited', 'updating', 'exclude'];
55
+ const DATA_ATTR_COPY_EXCLUDE_DEFAULT = ['inited', 'updating', 'exclude'];
56
56
 
57
57
  /**
58
58
  * Класс VGSelect
@@ -90,7 +90,7 @@ class VGSelect extends BaseModule {
90
90
  },
91
91
  close: true,
92
92
  tree: false,
93
- exclude: 'data-filter-param',
93
+ exclude: 'data-filter-param',
94
94
  placeholder: '',
95
95
  onInit: null,
96
96
  onShow: null,
@@ -275,12 +275,12 @@ class VGSelect extends BaseModule {
275
275
  return new Set([...DATA_ATTR_COPY_EXCLUDE_DEFAULT, ...customExcluded]);
276
276
  }
277
277
 
278
- static _normalizeDataAttrKey(value) {
279
- return String(value || '')
280
- .trim()
281
- .replace(/^data-/, '')
282
- .toLowerCase();
283
- }
278
+ static _normalizeDataAttrKey(value) {
279
+ return String(value || '')
280
+ .trim()
281
+ .replace(/^data-/, '')
282
+ .toLowerCase();
283
+ }
284
284
 
285
285
  /**
286
286
  * Проверяет, является ли значение "пустым" (соответствует placeholder)
@@ -788,28 +788,28 @@ class VGSelect extends BaseModule {
788
788
  * @param {string} value - Значение для выбора
789
789
  * @param {Object} [data] - Дополнительные данные
790
790
  */
791
- static changeSelector(select, value, data = {}) {
792
- const container = select.nextElementSibling;
793
- const instance = container ? VGSelect.getInstance(container) : null;
794
-
795
- select.setAttribute('data-updating', 'true');
796
- try {
797
- const opt = select.querySelector(`option[value="${CSS.escape(normalizeData(value))}"]`);
791
+ static changeSelector(select, value, data = {}) {
792
+ const container = select.nextElementSibling;
793
+ const instance = container ? VGSelect.getInstance(container) : null;
794
+
795
+ select.setAttribute('data-updating', 'true');
796
+ try {
797
+ const opt = select.querySelector(`option[value="${CSS.escape(normalizeData(value))}"]`);
798
798
  if (!opt) {
799
799
  instance?._triggerEvent(EVENT_KEY_ERROR, { error: 'Option not found', value });
800
800
  return;
801
801
  }
802
802
 
803
- const wasSelected = opt.selected;
804
- const selectedText = opt.textContent.trim();
805
-
806
- if (select.multiple) {
807
- opt.selected = data?.selected === false ? false : true;
808
- } else {
809
- [...select.options].forEach(o => o.selected = false);
810
- opt.selected = true;
811
- select.value = opt.value;
812
- }
803
+ const wasSelected = opt.selected;
804
+ const selectedText = opt.textContent.trim();
805
+
806
+ if (select.multiple) {
807
+ opt.selected = data?.selected === false ? false : true;
808
+ } else {
809
+ [...select.options].forEach(o => o.selected = false);
810
+ opt.selected = true;
811
+ select.value = opt.value;
812
+ }
813
813
 
814
814
  this.updateUI(select);
815
815
 
@@ -832,9 +832,9 @@ class VGSelect extends BaseModule {
832
832
  * @param {number} index
833
833
  * @param {Object} [data]
834
834
  */
835
- static changeSelectorByIndex(select, index, data = {}) {
836
- const container = select.nextElementSibling;
837
- const instance = container ? VGSelect.getInstance(container) : null;
835
+ static changeSelectorByIndex(select, index, data = {}) {
836
+ const container = select.nextElementSibling;
837
+ const instance = container ? VGSelect.getInstance(container) : null;
838
838
 
839
839
  select.setAttribute('data-updating', 'true');
840
840
  try {
@@ -844,17 +844,17 @@ class VGSelect extends BaseModule {
844
844
  return;
845
845
  }
846
846
 
847
- const wasSelected = opt.selected;
848
- const selectedText = opt.textContent.trim();
849
- const value = opt.value;
850
-
851
- if (select.multiple) {
852
- opt.selected = data?.selected === false ? false : true;
853
- } else {
854
- [...select.options].forEach(o => o.selected = false);
855
- opt.selected = true;
856
- select.value = opt.value;
857
- }
847
+ const wasSelected = opt.selected;
848
+ const selectedText = opt.textContent.trim();
849
+ const value = opt.value;
850
+
851
+ if (select.multiple) {
852
+ opt.selected = data?.selected === false ? false : true;
853
+ } else {
854
+ [...select.options].forEach(o => o.selected = false);
855
+ opt.selected = true;
856
+ select.value = opt.value;
857
+ }
858
858
 
859
859
  this.updateUI(select);
860
860