vgapp 1.5.7 → 1.5.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 (109) 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 +1 -1
  5. package/app/modules/vgalert/js/vgalert.js +7 -7
  6. package/app/modules/vgalert/scss/_variables.scss +16 -16
  7. package/app/modules/vgcollapse/scss/_variables.scss +7 -7
  8. package/app/modules/vgcollapse/scss/vgcollapse.scss +5 -5
  9. package/app/modules/vgdropdown/scss/_variables.scss +14 -14
  10. package/app/modules/vgdropdown/scss/vgdropdown.scss +5 -5
  11. package/app/modules/vgfilepreview/js/i18n.js +56 -56
  12. package/app/modules/vgfilepreview/js/renderers/image-modal.js +145 -145
  13. package/app/modules/vgfilepreview/js/renderers/image.js +92 -92
  14. package/app/modules/vgfilepreview/js/renderers/index.js +19 -19
  15. package/app/modules/vgfilepreview/js/renderers/office-modal.js +168 -168
  16. package/app/modules/vgfilepreview/js/renderers/office.js +79 -79
  17. package/app/modules/vgfilepreview/js/renderers/pdf-modal.js +260 -260
  18. package/app/modules/vgfilepreview/js/renderers/pdf.js +76 -76
  19. package/app/modules/vgfilepreview/js/renderers/playlist.js +71 -71
  20. package/app/modules/vgfilepreview/js/renderers/text-modal.js +343 -343
  21. package/app/modules/vgfilepreview/js/renderers/text.js +83 -83
  22. package/app/modules/vgfilepreview/js/renderers/zip-modal.js +522 -522
  23. package/app/modules/vgfilepreview/js/renderers/zip.js +89 -89
  24. package/app/modules/vgfilepreview/readme.md +68 -68
  25. package/app/modules/vgfiles/js/base.js +198 -198
  26. package/app/modules/vgfiles/js/droppable.js +17 -17
  27. package/app/modules/vgfiles/js/render.js +153 -153
  28. package/app/modules/vgfiles/js/sortable.js +52 -52
  29. package/app/modules/vgfiles/js/vgfiles.js +43 -43
  30. package/app/modules/vgfiles/readme.md +123 -123
  31. package/app/modules/vgfiles/scss/_mixins.scss +13 -13
  32. package/app/modules/vgfiles/scss/_variables.scss +10 -10
  33. package/app/modules/vgfiles/scss/vgfiles.scss +28 -28
  34. package/app/modules/vgformsender/js/hideshowpass.js +22 -22
  35. package/app/modules/vgformsender/readme.md +1 -1
  36. package/app/modules/vgformsender/scss/_variables.scss +5 -5
  37. package/app/modules/vgformsender/scss/vgformsender.scss +42 -42
  38. package/app/modules/vglawcookie/js/vglawcookie.js +19 -19
  39. package/app/modules/vglawcookie/scss/_variables.scss +13 -13
  40. package/app/modules/vglawcookie/scss/vglawcookie.scss +5 -5
  41. package/app/modules/vgmodal/js/vgmodal.interaction.js +216 -216
  42. package/app/modules/vgmodal/js/vgmodal.js +9 -9
  43. package/app/modules/vgmodal/js/vgmodal.minimized.js +227 -227
  44. package/app/modules/vgmodal/scss/_variables.scss +17 -17
  45. package/app/modules/vgmodal/scss/vgmodal.scss +77 -77
  46. package/app/modules/vgnav/js/vgnav.js +62 -62
  47. package/app/modules/vgnav/scss/_breakpoints.scss +36 -36
  48. package/app/modules/vgnav/scss/_hamburger.scss +5 -5
  49. package/app/modules/vgnav/scss/_placement.scss +5 -5
  50. package/app/modules/vgnav/scss/_toggle.scss +5 -5
  51. package/app/modules/vgnav/scss/_variables.scss +26 -26
  52. package/app/modules/vgnav/scss/vgnav.scss +41 -41
  53. package/app/modules/vgnestable/README.md +39 -39
  54. package/app/modules/vgrangeslider/js/skins.js +8 -8
  55. package/app/modules/vgrangeslider/js/vgrangeslider.js +29 -29
  56. package/app/modules/vgrangeslider/scss/_variables.scss +55 -55
  57. package/app/modules/vgrangeslider/scss/vgrangeslider.scss +239 -239
  58. package/app/modules/vgrollup/js/vgrollup.js +15 -15
  59. package/app/modules/vgrollup/scss/_variables.scss +15 -15
  60. package/app/modules/vgrollup/scss/vgrollup.scss +6 -6
  61. package/app/modules/vgselect/js/handlers.js +6 -6
  62. package/app/modules/vgselect/js/vgselect.js +167 -123
  63. package/app/modules/vgselect/readme.md +11 -11
  64. package/app/modules/vgselect/scss/_variables.scss +51 -51
  65. package/app/modules/vgselect/scss/vgselect.scss +1 -1
  66. package/app/modules/vgsidebar/js/vgsidebar.js +21 -21
  67. package/app/modules/vgsidebar/scss/_variables.scss +10 -10
  68. package/app/modules/vgsidebar/scss/vgsidebar.scss +5 -5
  69. package/app/modules/vgspy/js/vgspy.js +43 -43
  70. package/app/modules/vgtable/js/_filters.js +10 -6
  71. package/app/modules/vgtable/js/_options.js +16 -16
  72. package/app/modules/vgtable/js/_pagination.js +118 -118
  73. package/app/modules/vgtable/js/_responsive.js +79 -79
  74. package/app/modules/vgtable/js/_sticky-header.js +349 -280
  75. package/app/modules/vgtable/js/vgtable.js +98 -98
  76. package/app/modules/vgtable/scss/_sorting.scss +6 -6
  77. package/app/modules/vgtable/scss/_sticky-header.scss +31 -31
  78. package/app/modules/vgtable/scss/_variables.scss +6 -4
  79. package/app/modules/vgtable/scss/vgtable.scss +8 -4
  80. package/app/modules/vgtabs/js/vgtabs.js +91 -91
  81. package/app/modules/vgtabs/scss/_variables.scss +23 -23
  82. package/app/modules/vgtabs/scss/vgtabs.scss +5 -5
  83. package/app/modules/vgtoast/js/vgtoast.js +4 -4
  84. package/app/modules/vgtoast/scss/_variables.scss +13 -13
  85. package/app/modules/vgtoast/scss/vgtoast.scss +5 -5
  86. package/app/modules/vgtooltip/js/vgtooltip.js +127 -127
  87. package/app/modules/vgtooltip/scss/_variables.scss +10 -10
  88. package/app/modules/vgtooltip/scss/vgtooltip.scss +5 -5
  89. package/app/utils/js/components/audio-metadata.js +240 -240
  90. package/app/utils/js/components/backdrop.js +116 -116
  91. package/app/utils/js/components/file-icon.js +7 -7
  92. package/app/utils/js/components/file-preview.js +304 -304
  93. package/app/utils/js/components/responsive.js +165 -165
  94. package/app/utils/js/components/sanitize.js +150 -150
  95. package/app/utils/js/components/video-metadata.js +140 -140
  96. package/app/utils/scss/_backdrop.scss +5 -5
  97. package/app/utils/scss/_theme-default.scss +12 -12
  98. package/app/utils/scss/_theme.scss +7 -7
  99. package/app/utils/scss/default.scss +9 -9
  100. package/app/utils/scss/functions.scss +21 -21
  101. package/app/utils/scss/index.scss +4 -4
  102. package/app/utils/scss/mixin.scss +16 -16
  103. package/app/utils/scss/variables.scss +147 -147
  104. package/build/vgapp.css +1 -1
  105. package/build/vgapp.css.map +1 -1
  106. package/build/vgapp.js +1 -1
  107. package/build/vgapp.js.map +1 -1
  108. package/index.js +7 -7
  109. package/package.json +1 -1
@@ -1,8 +1,8 @@
1
- /**
2
- * Описание: адаптивная навигация VGNav с выпадающими пунктами и гамбургером.
3
- * Возможности: click/hover, вложенные меню, позиционирование, события и интеграция с VGSidebar.
4
- */
5
- import BaseModule from "../../base-module";
1
+ /**
2
+ * Описание: адаптивная навигация VGNav с выпадающими пунктами и гамбургером.
3
+ * Возможности: click/hover, вложенные меню, позиционирование, события и интеграция с VGSidebar.
4
+ */
5
+ import BaseModule from "../../base-module";
6
6
  import Selectors from "../../../utils/js/dom/selectors";
7
7
  import {
8
8
  execute,
@@ -33,7 +33,7 @@ const CLASS_NAME_ACTIVE = 'active';
33
33
  /**
34
34
  * Constants toggle
35
35
  */
36
- const SELECTOR_DATA_TOGGLE = '.' + CLASS_NAME + ' .dropdown > a';
36
+ const SELECTOR_DATA_TOGGLE = '.' + CLASS_NAME + ' .dropdown > a';
37
37
 
38
38
  /**
39
39
  * Constants Events
@@ -219,43 +219,43 @@ class VGNav extends BaseModule {
219
219
  }
220
220
  }
221
221
 
222
- show(relatedTarget) {
223
- let target = relatedTarget.relatedTarget;
224
-
225
- if (!target || isDisabled(target)) return;
226
- const drop = Selectors.find(':scope > .dropdown-content', target);
227
- if (!drop) return;
228
-
229
- const showEvent = EventHandler.trigger(target, EVENT_KEY_SHOW, { relatedTarget });
230
- if (showEvent.defaultPrevented) return;
231
-
232
- if (!target.closest('.dropdown-content')) {
233
- target.classList.add('first');
234
- }
235
-
236
- const link = target.firstElementChild;
222
+ show(relatedTarget) {
223
+ let target = relatedTarget.relatedTarget;
224
+
225
+ if (!target || isDisabled(target)) return;
226
+ const drop = Selectors.find(':scope > .dropdown-content', target);
227
+ if (!drop) return;
228
+
229
+ const showEvent = EventHandler.trigger(target, EVENT_KEY_SHOW, { relatedTarget });
230
+ if (showEvent.defaultPrevented) return;
231
+
232
+ if (!target.closest('.dropdown-content')) {
233
+ target.classList.add('first');
234
+ }
235
+
236
+ const link = target.firstElementChild;
237
237
 
238
238
  if (link) link.setAttribute('aria-expanded', 'true');
239
- drop.classList.add(CLASS_NAME_SHOW);
240
- target.classList.add(CLASS_NAME_ACTIVE);
241
- // Координаты Placement имеют приоритет над старой CSS-схемой top/bottom/right.
242
- drop.style.bottom = 'auto';
243
- drop.style.right = 'auto';
244
- const openToSide = !!target.closest('.dropdown-content') || this._params.placement === 'vertical';
245
-
246
- const $placement = new Placement({
247
- reference: target,
248
- drop: drop,
249
- placement: openToSide ? 'right-start' : 'bottom-start',
250
- fallbackPlacements: openToSide
251
- ? ['left-start', 'right-end', 'left-end', 'bottom-start', 'top-start']
252
- : ['top-start', 'bottom-end', 'top-end'],
253
- offset: openToSide ? [6, 0] : [0, 6],
254
- boundary: 'clippingParents',
255
- autoFlip: true,
256
- overflowProtection: true,
257
- clamp: true,
258
- isMerge: false
239
+ drop.classList.add(CLASS_NAME_SHOW);
240
+ target.classList.add(CLASS_NAME_ACTIVE);
241
+ // Координаты Placement имеют приоритет над старой CSS-схемой top/bottom/right.
242
+ drop.style.bottom = 'auto';
243
+ drop.style.right = 'auto';
244
+ const openToSide = !!target.closest('.dropdown-content') || this._params.placement === 'vertical';
245
+
246
+ const $placement = new Placement({
247
+ reference: target,
248
+ drop: drop,
249
+ placement: openToSide ? 'right-start' : 'bottom-start',
250
+ fallbackPlacements: openToSide
251
+ ? ['left-start', 'right-end', 'left-end', 'bottom-start', 'top-start']
252
+ : ['top-start', 'bottom-end', 'top-end'],
253
+ offset: openToSide ? [6, 0] : [0, 6],
254
+ boundary: 'clippingParents',
255
+ autoFlip: true,
256
+ overflowProtection: true,
257
+ clamp: true,
258
+ isMerge: false
259
259
  });
260
260
 
261
261
  $placement._setPlacement();
@@ -277,8 +277,8 @@ class VGNav extends BaseModule {
277
277
  this._queueCallback(completeCallBack, drop, true, 10);
278
278
  }
279
279
 
280
- hide(relatedTarget) {
281
- const _this = this;
280
+ hide(relatedTarget) {
281
+ const _this = this;
282
282
 
283
283
  let element = relatedTarget.relatedTarget;
284
284
 
@@ -296,7 +296,7 @@ class VGNav extends BaseModule {
296
296
  element.classList.remove('first');
297
297
  }
298
298
 
299
- [...Selectors.findAll('.dropdown-content.' + CLASS_NAME_SHOW, element)].forEach(function (el) {
299
+ [...Selectors.findAll('.dropdown-content.' + CLASS_NAME_SHOW, element)].forEach(function (el) {
300
300
  el.classList.remove(CLASS_NAME_FADE);
301
301
 
302
302
  let parent = el.closest('.dropdown');
@@ -307,14 +307,14 @@ class VGNav extends BaseModule {
307
307
  let link = el.previousElementSibling;
308
308
  if (link) link.setAttribute('aria-expanded', 'false');
309
309
 
310
- const completeCallback = () => {
311
- if (parent.classList.contains(CLASS_NAME_ACTIVE)) return;
312
- el.classList.remove(CLASS_NAME_SHOW);
313
- EventHandler.trigger(el, EVENT_KEY_HIDDEN, relatedTarget);
314
- };
315
-
316
- _this._queueCallback(completeCallback, el, true, 500);
317
- _this._cleanupDrop(el);
310
+ const completeCallback = () => {
311
+ if (parent.classList.contains(CLASS_NAME_ACTIVE)) return;
312
+ el.classList.remove(CLASS_NAME_SHOW);
313
+ EventHandler.trigger(el, EVENT_KEY_HIDDEN, relatedTarget);
314
+ };
315
+
316
+ _this._queueCallback(completeCallback, el, true, 500);
317
+ _this._cleanupDrop(el);
318
318
  });
319
319
  }
320
320
  }
@@ -342,16 +342,16 @@ class VGNav extends BaseModule {
342
342
  }
343
343
  }
344
344
 
345
- _cleanupDrop(drop) {
346
- const dropData = this._openDrops.get(drop);
347
- if (dropData) {
348
- this._openDrops.delete(drop);
349
- // Обработчики общие для экземпляра: другие открытые уровни ещё нуждаются в них.
350
- if (!this._openDrops.size) {
351
- window.removeEventListener('scroll', dropData.scrollHandler, { capture: true });
352
- window.removeEventListener('resize', dropData.resizeHandler);
353
- }
354
- }
345
+ _cleanupDrop(drop) {
346
+ const dropData = this._openDrops.get(drop);
347
+ if (dropData) {
348
+ this._openDrops.delete(drop);
349
+ // Обработчики общие для экземпляра: другие открытые уровни ещё нуждаются в них.
350
+ if (!this._openDrops.size) {
351
+ window.removeEventListener('scroll', dropData.scrollHandler, { capture: true });
352
+ window.removeEventListener('resize', dropData.resizeHandler);
353
+ }
354
+ }
355
355
  }
356
356
 
357
357
  _isElementInViewport(el) {
@@ -1,8 +1,8 @@
1
- @use "sass:list";
2
- @use "sass:map";
3
- @use "variables" as vars;
4
-
5
- // Breakpoint viewport sizes and media queries.
1
+ @use "sass:list";
2
+ @use "sass:map";
3
+ @use "variables" as vars;
4
+
5
+ // Breakpoint viewport sizes and media queries.
6
6
  //
7
7
  // Breakpoints are defined as a map of (name: minimum width), order from small to large:
8
8
  //
@@ -18,27 +18,27 @@
18
18
  // md
19
19
  // >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl xxl))
20
20
  // md
21
- @function breakpoint-next($name, $breakpoints: vars.$grid-breakpoints, $breakpoint-names: map.keys($breakpoints)) {
22
- $n: list.index($breakpoint-names, $name);
23
- @if not $n {
24
- @error "breakpoint `#{$name}` not found in `#{$breakpoints}`";
25
- }
26
- @if $n < list.length($breakpoint-names) {
27
- @return list.nth($breakpoint-names, $n + 1);
28
- }
29
- @return null;
21
+ @function breakpoint-next($name, $breakpoints: vars.$grid-breakpoints, $breakpoint-names: map.keys($breakpoints)) {
22
+ $n: list.index($breakpoint-names, $name);
23
+ @if not $n {
24
+ @error "breakpoint `#{$name}` not found in `#{$breakpoints}`";
25
+ }
26
+ @if $n < list.length($breakpoint-names) {
27
+ @return list.nth($breakpoint-names, $n + 1);
28
+ }
29
+ @return null;
30
30
  }
31
31
 
32
32
  // Minimum breakpoint width. Null for the smallest (first) breakpoint.
33
33
  //
34
34
  // >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))
35
35
  // 576px
36
- @function breakpoint-min($name, $breakpoints: vars.$grid-breakpoints) {
37
- $min: map.get($breakpoints, $name);
38
- @if $min != 0 {
39
- @return $min;
40
- }
41
- @return null;
36
+ @function breakpoint-min($name, $breakpoints: vars.$grid-breakpoints) {
37
+ $min: map.get($breakpoints, $name);
38
+ @if $min != 0 {
39
+ @return $min;
40
+ }
41
+ @return null;
42
42
  }
43
43
 
44
44
  // Maximum breakpoint width.
@@ -50,12 +50,12 @@
50
50
  //
51
51
  // >> breakpoint-max(md, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))
52
52
  // 767.98px
53
- @function breakpoint-max($name, $breakpoints: vars.$grid-breakpoints) {
54
- $max: map.get($breakpoints, $name);
55
- @if $max and $max > 0 {
56
- @return $max - .02;
57
- }
58
- @return null;
53
+ @function breakpoint-max($name, $breakpoints: vars.$grid-breakpoints) {
54
+ $max: map.get($breakpoints, $name);
55
+ @if $max and $max > 0 {
56
+ @return $max - .02;
57
+ }
58
+ @return null;
59
59
  }
60
60
 
61
61
  // Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.
@@ -65,16 +65,16 @@
65
65
  // "" (Returns a blank string)
66
66
  // >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))
67
67
  // "-sm"
68
- @function breakpoint-infix($name, $breakpoints: vars.$grid-breakpoints) {
69
- @if breakpoint-min($name, $breakpoints) == null {
70
- @return "";
71
- }
72
- @return "-#{$name}";
68
+ @function breakpoint-infix($name, $breakpoints: vars.$grid-breakpoints) {
69
+ @if breakpoint-min($name, $breakpoints) == null {
70
+ @return "";
71
+ }
72
+ @return "-#{$name}";
73
73
  }
74
74
 
75
75
  // Media of at least the minimum breakpoint width. No query for the smallest breakpoint.
76
76
  // Makes the @content apply to the given breakpoint and wider.
77
- @mixin media-breakpoint-up($name, $breakpoints: vars.$grid-breakpoints) {
77
+ @mixin media-breakpoint-up($name, $breakpoints: vars.$grid-breakpoints) {
78
78
  $min: breakpoint-min($name, $breakpoints);
79
79
  @if $min {
80
80
  @media (min-width: $min) {
@@ -87,7 +87,7 @@
87
87
 
88
88
  // Media of at most the maximum breakpoint width. No query for the largest breakpoint.
89
89
  // Makes the @content apply to the given breakpoint and narrower.
90
- @mixin media-breakpoint-down($name, $breakpoints: vars.$grid-breakpoints) {
90
+ @mixin media-breakpoint-down($name, $breakpoints: vars.$grid-breakpoints) {
91
91
  $max: breakpoint-max($name, $breakpoints);
92
92
  @if $max {
93
93
  @media (max-width: $max) {
@@ -100,7 +100,7 @@
100
100
 
101
101
  // Media that spans multiple breakpoint widths.
102
102
  // Makes the @content apply between the min and max breakpoints
103
- @mixin media-breakpoint-between($lower, $upper, $breakpoints: vars.$grid-breakpoints) {
103
+ @mixin media-breakpoint-between($lower, $upper, $breakpoints: vars.$grid-breakpoints) {
104
104
  $min: breakpoint-min($lower, $breakpoints);
105
105
  $max: breakpoint-max($upper, $breakpoints);
106
106
 
@@ -122,7 +122,7 @@
122
122
  // Media between the breakpoint's minimum and maximum widths.
123
123
  // No minimum for the smallest breakpoint, and no maximum for the largest one.
124
124
  // Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.
125
- @mixin media-breakpoint-only($name, $breakpoints: vars.$grid-breakpoints) {
125
+ @mixin media-breakpoint-only($name, $breakpoints: vars.$grid-breakpoints) {
126
126
  $min: breakpoint-min($name, $breakpoints);
127
127
  $next: breakpoint-next($name, $breakpoints);
128
128
  $max: breakpoint-max($next, $breakpoints);
@@ -140,4 +140,4 @@
140
140
  @content;
141
141
  }
142
142
  }
143
- }
143
+ }
@@ -1,5 +1,5 @@
1
- @mixin hamburger() {
2
- .vg-nav-hamburger {
1
+ @mixin hamburger() {
2
+ .vg-nav-hamburger {
3
3
  display: none;
4
4
  align-items: flex-start;
5
5
 
@@ -60,6 +60,6 @@
60
60
  }
61
61
  }
62
62
  }
63
- }
64
-
65
- }
63
+ }
64
+
65
+ }
@@ -1,5 +1,5 @@
1
- @mixin placement() {
2
- &.vg-nav-horizontal {
1
+ @mixin placement() {
2
+ &.vg-nav-horizontal {
3
3
  .vg-nav-wrapper {
4
4
  flex-direction: row;
5
5
  }
@@ -23,6 +23,6 @@
23
23
  }
24
24
  }
25
25
  }
26
- }
27
-
28
- }
26
+ }
27
+
28
+ }
@@ -1,5 +1,5 @@
1
- @mixin toggle() {
2
- .toggle {
1
+ @mixin toggle() {
2
+ .toggle {
3
3
  transition: var(--vg-nav-transition);
4
4
  transform: rotate(0);
5
5
 
@@ -18,6 +18,6 @@
18
18
  vertical-align: .255em;
19
19
  }
20
20
  }
21
- }
22
-
23
- }
21
+ }
22
+
23
+ }
@@ -1,9 +1,9 @@
1
- @use "sass:map";
2
- @use "../../../utils/scss" as vg;
3
-
4
- $nav-map: (
5
- transition: all .2s ease-in-out,
6
- ) !default;
1
+ @use "sass:map";
2
+ @use "../../../utils/scss" as vg;
3
+
4
+ $nav-map: (
5
+ transition: all .2s ease-in-out,
6
+ ) !default;
7
7
 
8
8
  $nav-item-map: (
9
9
  margin: 0,
@@ -11,39 +11,39 @@ $nav-item-map: (
11
11
  font-size: 1rem,
12
12
  font-weight: 400,
13
13
  line-height: 1.4,
14
- color: var(--vg-text-color, #212529),
14
+ color: var(--vg-text-color, #212529),
15
15
  decoration: none,
16
16
  display: inline-block,
17
17
  border: none,
18
18
  border-radius: 0,
19
19
  white-space: nowrap,
20
- position: relative,
21
- ) !default;
20
+ position: relative,
21
+ ) !default;
22
22
 
23
23
  $nav-drop-map: (
24
24
  z-index: 10,
25
- transition: map.get($nav-map, transition),
25
+ transition: map.get($nav-map, transition),
26
26
  width: 200px,
27
27
  max-height: 650px,
28
- border-color: var(--vg-border-color, #{vg.$border-color}),
28
+ border-color: var(--vg-border-color, #{vg.$border-color}),
29
29
  border-radius: 0,
30
30
  padding: 0,
31
- bg: var(--vg-surface-bg, #{vg.$surface-bg}),
31
+ bg: var(--vg-surface-bg, #{vg.$surface-bg}),
32
32
  overflow-y: auto,
33
- overflow-x: visible,
34
- ) !default;
33
+ overflow-x: visible,
34
+ ) !default;
35
35
 
36
36
  $nav-drop-mega-map: (
37
37
  width: 100%,
38
38
  min-height: 300px,
39
- bg: var(--vg-surface-bg, #{vg.$surface-bg}),
40
- border-color: var(--vg-border-color, #{vg.$border-color}),
39
+ bg: var(--vg-surface-bg, #{vg.$surface-bg}),
40
+ border-color: var(--vg-border-color, #{vg.$border-color}),
41
41
  border-radius: 0,
42
42
  padding: 1rem,
43
43
  z-index: 10,
44
- transition: map.get($nav-map, transition),
45
- max-height: 600px,
46
- ) !default;
44
+ transition: map.get($nav-map, transition),
45
+ max-height: 600px,
46
+ ) !default;
47
47
 
48
48
  $nav-drop-item-map: (
49
49
  padding: .75rem 1rem,
@@ -53,16 +53,16 @@ $nav-drop-item-map: (
53
53
  bg-hover: transparent,
54
54
  color: inherit,
55
55
  color-hover: inherit,
56
- transition: map.get($nav-map, transition),
57
- ) !default;
56
+ transition: map.get($nav-map, transition),
57
+ ) !default;
58
58
 
59
59
  $hamburger-map: (
60
60
  height: 27px,
61
61
  line-width: 35px,
62
- line-color: var(--vg-text-emphasis-color, #333333),
62
+ line-color: var(--vg-text-emphasis-color, #333333),
63
63
  line-height: 3px,
64
- line-indent-top: 7px
65
- ) !default;
64
+ line-indent-top: 7px
65
+ ) !default;
66
66
 
67
67
  $grid-breakpoints: (
68
68
  xs: 576px,
@@ -71,5 +71,5 @@ $grid-breakpoints: (
71
71
  lg: 1200px,
72
72
  xl: 1400px,
73
73
  xxl: 1600px,
74
- xxxl: 1800px
75
- ) !default;
74
+ xxxl: 1800px
75
+ ) !default;
@@ -6,23 +6,23 @@
6
6
  *--------------------------------------------------------------------------
7
7
  **/
8
8
 
9
- @forward "variables";
10
- @forward "breakpoints";
11
- @use "sass:map";
12
- @use "../../../utils/scss" as vg;
13
- @use "breakpoints";
14
- @use "hamburger";
15
- @use "placement";
16
- @use "toggle";
17
- @use "variables" as vars;
9
+ @forward "variables";
10
+ @forward "breakpoints";
11
+ @use "sass:map";
12
+ @use "../../../utils/scss" as vg;
13
+ @use "breakpoints";
14
+ @use "hamburger";
15
+ @use "placement";
16
+ @use "toggle";
17
+ @use "variables" as vars;
18
18
 
19
19
  .vg-nav {
20
- @include vg.mix-vars('nav', vars.$nav-map);
21
- @include vg.mix-vars('nav-item', vars.$nav-item-map);
22
- @include vg.mix-vars('nav-drop', vars.$nav-drop-map);
23
- @include vg.mix-vars('nav-drop-mega', vars.$nav-drop-mega-map);
24
- @include vg.mix-vars('nav-drop-item', vars.$nav-drop-item-map);
25
- @include vg.mix-vars('nav-hamburger', vars.$hamburger-map);
20
+ @include vg.mix-vars('nav', vars.$nav-map);
21
+ @include vg.mix-vars('nav-item', vars.$nav-item-map);
22
+ @include vg.mix-vars('nav-drop', vars.$nav-drop-map);
23
+ @include vg.mix-vars('nav-drop-mega', vars.$nav-drop-mega-map);
24
+ @include vg.mix-vars('nav-drop-item', vars.$nav-drop-item-map);
25
+ @include vg.mix-vars('nav-hamburger', vars.$hamburger-map);
26
26
 
27
27
  .vg-nav-wrapper {
28
28
  display: flex;
@@ -52,7 +52,7 @@
52
52
  li {
53
53
  a {
54
54
  /** set toggle **/
55
- @include toggle.toggle();
55
+ @include toggle.toggle();
56
56
  }
57
57
  }
58
58
 
@@ -74,9 +74,9 @@
74
74
  background-color: var(--vg-nav-drop-bg);
75
75
  overflow: visible;
76
76
 
77
- &:not(.show) {
78
- display: none;
79
- }
77
+ &:not(.show) {
78
+ display: none;
79
+ }
80
80
 
81
81
  &.fade {
82
82
  visibility: visible;
@@ -133,32 +133,32 @@
133
133
  }
134
134
  }
135
135
  }
136
- }
137
- }
138
-
139
- &.vg-nav-drop-list-scroll {
140
- .vg-nav-wrapper {
141
- .dropdown {
142
- .dropdown-content {
143
- > .vg-nav-drop-list {
144
- max-height: var(--vg-nav-drop-max-height);
145
- overflow-y: var(--vg-nav-drop-overflow-y);
146
- overflow-x: var(--vg-nav-drop-overflow-x);
147
- }
148
- }
149
- }
150
- }
151
- }
152
-
153
- /** set placement **/
154
- @include placement.placement();
136
+ }
137
+ }
138
+
139
+ &.vg-nav-drop-list-scroll {
140
+ .vg-nav-wrapper {
141
+ .dropdown {
142
+ .dropdown-content {
143
+ > .vg-nav-drop-list {
144
+ max-height: var(--vg-nav-drop-max-height);
145
+ overflow-y: var(--vg-nav-drop-overflow-y);
146
+ overflow-x: var(--vg-nav-drop-overflow-x);
147
+ }
148
+ }
149
+ }
150
+ }
151
+ }
152
+
153
+ /** set placement **/
154
+ @include placement.placement();
155
155
 
156
156
  /** set hamburger **/
157
- @include hamburger.hamburger();
157
+ @include hamburger.hamburger();
158
158
 
159
159
  &:not(.vg-nav-expand) {
160
- @each $breakpoint in map.keys(vars.$grid-breakpoints) {
161
- @include breakpoints.media-breakpoint-down($breakpoint, vars.$grid-breakpoints) {
160
+ @each $breakpoint in map.keys(vars.$grid-breakpoints) {
161
+ @include breakpoints.media-breakpoint-down($breakpoint, vars.$grid-breakpoints) {
162
162
  &.vg-nav-#{$breakpoint} {
163
163
  .vg-nav-hamburger {
164
164
  display: flex;
@@ -69,18 +69,18 @@ const nestable = VGNestable.getOrCreateInstance("#myNestable", {
69
69
  Значения по умолчанию:
70
70
 
71
71
  ```js
72
- {
73
- disabled: false,
74
- disabledattribute: "data-disabled",
75
- listselector: ".vg-nestable-list",
72
+ {
73
+ disabled: false,
74
+ disabledattribute: "data-disabled",
75
+ listselector: ".vg-nestable-list",
76
76
  itemselector: ".vg-nestable-item",
77
77
  handleselector: ".vg-nestable-handle",
78
78
  idattribute: "data-id",
79
79
  childlistclass: "vg-nestable-list",
80
80
  handleicon: "",
81
- indent: 18,
81
+ indent: 18,
82
82
  maxdepth: 6,
83
- hoverthreshold: 0.25,
83
+ hoverthreshold: 0.25,
84
84
  neighborchangethreshold: 0,
85
85
  showplaceholder: true,
86
86
  group: "",
@@ -119,49 +119,49 @@ const nestable = VGNestable.getOrCreateInstance("#myNestable", {
119
119
  }
120
120
  ```
121
121
 
122
- ### Пояснение параметров
123
-
124
- - `disabled`: полностью отключает изменение дерева мышью, touch и клавиатурой. Также читается из `data-disabled="true"` корневого элемента.
125
- - `disabledattribute`: атрибут блокировки отдельных элементов и вложенных списков (`data-disabled` по умолчанию).
126
- - `listselector`: селектор корневого/вложенных списков.
122
+ ### Пояснение параметров
123
+
124
+ - `disabled`: полностью отключает изменение дерева мышью, touch и клавиатурой. Также читается из `data-disabled="true"` корневого элемента.
125
+ - `disabledattribute`: атрибут блокировки отдельных элементов и вложенных списков (`data-disabled` по умолчанию).
126
+ - `listselector`: селектор корневого/вложенных списков.
127
127
  - `itemselector`: селектор sortable-элемента.
128
128
  - `handleselector`: селектор зоны, за которую можно начинать drag.
129
129
  - `idattribute`: атрибут, из которого берется `id` в `serialize()`.
130
130
  - `childlistclass`: классы для автосозданного дочернего списка.
131
131
  - `handleicon`: HTML/SVG иконки хэндла (проходит SVG-санитизацию).
132
- - `indent`: ширина одного горизонтального шага вложенности. Каждый следующий шаг вправо переносит элемент ещё на один доступный уровень под предыдущий элемент.
132
+ - `indent`: ширина одного горизонтального шага вложенности. Каждый следующий шаг вправо переносит элемент ещё на один доступный уровень под предыдущий элемент.
133
133
  - `maxdepth`: максимальная глубина дерева.
134
- - `hoverthreshold`: половина высоты центральной зоны (0.05..0.45), используемой для вложения; выше и ниже неё находятся зоны `before/after`.
134
+ - `hoverthreshold`: половина высоты центральной зоны (0.05..0.45), используемой для вложения; выше и ниже неё находятся зоны `before/after`.
135
135
  - `neighborchangethreshold`: порог в процентах (0..49), альтернативная логика смены позиции по краям элемента.
136
136
  - `showplaceholder`: показывать/скрывать placeholder во время drag.
137
137
  - `group`: имя группы списков для межспискового dnd.
138
138
  - `connect`: включить связь списков внутри группы.
139
- - `accept(item, sourceInstance, targetInstance)`: функция-фильтр разрешения дропа в target.
140
-
141
- ### Блокировка перетаскивания
142
-
143
- Заблокировать всё дерево, в том числе запретить перенос в него из связанного списка:
144
-
145
- ```html
146
- <div class="vg-nestable" data-vg-toggle="nestable" data-disabled="true">
147
- <ol class="vg-nestable-list">...</ol>
148
- </div>
149
- ```
150
-
151
- Заблокировать только конкретный элемент. Другие элементы по-прежнему могут вставляться до/после него, поэтому его индекс в результате может измениться:
152
-
153
- ```html
154
- <li class="vg-nestable-item" data-id="2" data-disabled="true">...</li>
155
- ```
156
-
157
- Заблокировать внутреннюю группу. Её элементы нельзя переносить отдельно или добавлять в эту группу, но родительскую ветку можно перемещать целиком:
158
-
159
- ```html
160
- <li class="vg-nestable-item" data-id="1">
161
- <div class="vg-nestable-inner">...</div>
162
- <ol class="vg-nestable-list" data-disabled="true">...</ol>
163
- </li>
164
- ```
139
+ - `accept(item, sourceInstance, targetInstance)`: функция-фильтр разрешения дропа в target.
140
+
141
+ ### Блокировка перетаскивания
142
+
143
+ Заблокировать всё дерево, в том числе запретить перенос в него из связанного списка:
144
+
145
+ ```html
146
+ <div class="vg-nestable" data-vg-toggle="nestable" data-disabled="true">
147
+ <ol class="vg-nestable-list">...</ol>
148
+ </div>
149
+ ```
150
+
151
+ Заблокировать только конкретный элемент. Другие элементы по-прежнему могут вставляться до/после него, поэтому его индекс в результате может измениться:
152
+
153
+ ```html
154
+ <li class="vg-nestable-item" data-id="2" data-disabled="true">...</li>
155
+ ```
156
+
157
+ Заблокировать внутреннюю группу. Её элементы нельзя переносить отдельно или добавлять в эту группу, но родительскую ветку можно перемещать целиком:
158
+
159
+ ```html
160
+ <li class="vg-nestable-item" data-id="1">
161
+ <div class="vg-nestable-inner">...</div>
162
+ <ol class="vg-nestable-list" data-disabled="true">...</ol>
163
+ </li>
164
+ ```
165
165
 
166
166
  #### `collapse`
167
167