vgapp 1.4.4 → 1.4.6

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 (123) hide show
  1. package/README.md +270 -270
  2. package/app/langs/en/buttons.json +17 -17
  3. package/app/langs/en/messages.json +36 -36
  4. package/app/langs/ru/buttons.json +17 -17
  5. package/app/langs/ru/messages.json +36 -36
  6. package/app/modules/vgalert/js/vgalert.js +266 -266
  7. package/app/modules/vgalert/scss/_variables.scss +16 -16
  8. package/app/modules/vgalert/scss/vgalert.scss +107 -107
  9. package/app/modules/vgcollapse/scss/_variables.scss +7 -7
  10. package/app/modules/vgcollapse/scss/vgcollapse.scss +5 -5
  11. package/app/modules/vgdropdown/scss/_variables.scss +14 -14
  12. package/app/modules/vgdropdown/scss/vgdropdown.scss +5 -5
  13. package/app/modules/vgdynamictable/index.js +4 -4
  14. package/app/modules/vgdynamictable/js/filters.js +21 -21
  15. package/app/modules/vgdynamictable/js/fixed.js +179 -179
  16. package/app/modules/vgdynamictable/js/options.js +3 -3
  17. package/app/modules/vgdynamictable/js/pagination.js +1 -1
  18. package/app/modules/vgdynamictable/js/search.js +12 -12
  19. package/app/modules/vgdynamictable/js/skeleton.js +27 -19
  20. package/app/modules/vgdynamictable/js/sortable.js +71 -71
  21. package/app/modules/vgdynamictable/js/summary-footer.js +28 -28
  22. package/app/modules/vgdynamictable/js/table-url-state.js +31 -31
  23. package/app/modules/vgdynamictable/js/utils/common.js +48 -48
  24. package/app/modules/vgdynamictable/js/vgdynamictable.js +79 -79
  25. package/app/modules/vgdynamictable/scss/_actions.scss +19 -19
  26. package/app/modules/vgdynamictable/scss/_pagination.scss +5 -5
  27. package/app/modules/vgdynamictable/scss/_skeleton.scss +11 -11
  28. package/app/modules/vgdynamictable/scss/_sortable.scss +28 -28
  29. package/app/modules/vgdynamictable/scss/_table.scss +7 -30
  30. package/app/modules/vgdynamictable/scss/_variables.scss +46 -46
  31. package/app/modules/vgdynamictable/scss/vgdynamictable.scss +28 -36
  32. package/app/modules/vgfilepreview/js/i18n.js +56 -56
  33. package/app/modules/vgfilepreview/js/renderers/image-modal.js +145 -145
  34. package/app/modules/vgfilepreview/js/renderers/image.js +92 -92
  35. package/app/modules/vgfilepreview/js/renderers/index.js +19 -19
  36. package/app/modules/vgfilepreview/js/renderers/office-modal.js +168 -168
  37. package/app/modules/vgfilepreview/js/renderers/office.js +79 -79
  38. package/app/modules/vgfilepreview/js/renderers/pdf-modal.js +260 -260
  39. package/app/modules/vgfilepreview/js/renderers/pdf.js +76 -76
  40. package/app/modules/vgfilepreview/js/renderers/playlist.js +71 -71
  41. package/app/modules/vgfilepreview/js/renderers/text-modal.js +343 -343
  42. package/app/modules/vgfilepreview/js/renderers/text.js +83 -83
  43. package/app/modules/vgfilepreview/js/renderers/video-modal.js +272 -272
  44. package/app/modules/vgfilepreview/js/renderers/video.js +80 -80
  45. package/app/modules/vgfilepreview/js/renderers/zip-modal.js +522 -522
  46. package/app/modules/vgfilepreview/js/renderers/zip.js +89 -89
  47. package/app/modules/vgfilepreview/js/vgfilepreview.js +7 -7
  48. package/app/modules/vgfilepreview/readme.md +68 -68
  49. package/app/modules/vgfilepreview/scss/_variables.scss +115 -115
  50. package/app/modules/vgfilepreview/scss/vgfilepreview.scss +463 -463
  51. package/app/modules/vgfiles/js/droppable.js +20 -9
  52. package/app/modules/vgfiles/js/render.js +153 -153
  53. package/app/modules/vgfiles/js/vgfiles.js +104 -104
  54. package/app/modules/vgfiles/readme.md +123 -123
  55. package/app/modules/vgfiles/scss/_mixins.scss +9 -9
  56. package/app/modules/vgfiles/scss/_variables.scss +41 -41
  57. package/app/modules/vgfiles/scss/vgfiles.scss +161 -161
  58. package/app/modules/vgformsender/js/hideshowpass.js +21 -16
  59. package/app/modules/vgformsender/js/vgformsender.js +4 -6
  60. package/app/modules/vgformsender/readme.md +1 -1
  61. package/app/modules/vgformsender/scss/_variables.scss +5 -5
  62. package/app/modules/vgformsender/scss/vgformsender.scss +42 -42
  63. package/app/modules/vglawcookie/js/vglawcookie.js +11 -8
  64. package/app/modules/vglawcookie/scss/_variables.scss +13 -13
  65. package/app/modules/vglawcookie/scss/vglawcookie.scss +5 -5
  66. package/app/modules/vgmodal/js/vgmodal.interaction.js +216 -216
  67. package/app/modules/vgmodal/js/vgmodal.js +355 -355
  68. package/app/modules/vgmodal/js/vgmodal.minimized.js +227 -227
  69. package/app/modules/vgmodal/scss/_variables.scss +17 -17
  70. package/app/modules/vgmodal/scss/vgmodal.scss +77 -77
  71. package/app/modules/vgnav/js/vgnav.js +180 -180
  72. package/app/modules/vgnav/scss/_breakpoints.scss +36 -36
  73. package/app/modules/vgnav/scss/_hamburger.scss +5 -5
  74. package/app/modules/vgnav/scss/_placement.scss +5 -5
  75. package/app/modules/vgnav/scss/_toggle.scss +5 -5
  76. package/app/modules/vgnav/scss/_variables.scss +26 -26
  77. package/app/modules/vgnav/scss/vgnav.scss +41 -41
  78. package/app/modules/vgnestable/README.md +39 -39
  79. package/app/modules/vgnestable/js/vgnestable.js +358 -358
  80. package/app/modules/vgnestable/scss/_variables.scss +35 -35
  81. package/app/modules/vgnestable/scss/vgnestable.scss +55 -55
  82. package/app/modules/vgrangeslider/js/skins.js +222 -222
  83. package/app/modules/vgrangeslider/js/vgrangeslider.js +704 -704
  84. package/app/modules/vgrangeslider/scss/_variables.scss +55 -55
  85. package/app/modules/vgrangeslider/scss/vgrangeslider.scss +239 -239
  86. package/app/modules/vgrollup/scss/_variables.scss +15 -15
  87. package/app/modules/vgrollup/scss/vgrollup.scss +6 -6
  88. package/app/modules/vgselect/js/vgselect.js +129 -129
  89. package/app/modules/vgselect/readme.md +11 -11
  90. package/app/modules/vgselect/scss/_variables.scss +50 -50
  91. package/app/modules/vgselect/scss/vgselect.scss +48 -48
  92. package/app/modules/vgsidebar/js/vgsidebar.js +79 -79
  93. package/app/modules/vgsidebar/scss/_variables.scss +10 -10
  94. package/app/modules/vgsidebar/scss/vgsidebar.scss +5 -5
  95. package/app/modules/vgtabs/scss/_variables.scss +23 -23
  96. package/app/modules/vgtabs/scss/vgtabs.scss +5 -5
  97. package/app/modules/vgtoast/scss/_variables.scss +13 -13
  98. package/app/modules/vgtoast/scss/vgtoast.scss +5 -5
  99. package/app/modules/vgtooltip/js/vgtooltip.js +107 -51
  100. package/app/modules/vgtooltip/scss/_variables.scss +10 -10
  101. package/app/modules/vgtooltip/scss/vgtooltip.scss +5 -5
  102. package/app/utils/js/components/audio-metadata.js +240 -240
  103. package/app/utils/js/components/backdrop.js +116 -116
  104. package/app/utils/js/components/file-icon.js +109 -109
  105. package/app/utils/js/components/file-preview.js +304 -304
  106. package/app/utils/js/components/sanitize.js +150 -150
  107. package/app/utils/js/components/video-metadata.js +140 -140
  108. package/app/utils/scss/_backdrop.scss +5 -5
  109. package/app/utils/scss/_theme-default.scss +12 -12
  110. package/app/utils/scss/_theme.scss +7 -7
  111. package/app/utils/scss/_tokens.scss +170 -170
  112. package/app/utils/scss/default.scss +9 -9
  113. package/app/utils/scss/functions.scss +21 -21
  114. package/app/utils/scss/index.scss +4 -4
  115. package/app/utils/scss/mixin.scss +16 -16
  116. package/app/utils/scss/variables.scss +105 -105
  117. package/app/vgapp.js +295 -295
  118. package/build/vgapp.css +1 -1
  119. package/build/vgapp.css.map +1 -1
  120. package/build/vgapp.js +1 -1
  121. package/build/vgapp.js.map +1 -1
  122. package/index.scss +20 -20
  123. package/package.json +4 -2
@@ -6,14 +6,14 @@
6
6
  *--------------------------------------------------------------------------
7
7
  **/
8
8
 
9
- @forward "variables";
10
- @use "../../../utils/scss" as vg;
11
- @use "animations";
12
- @use "mixins" as files;
13
- @use "variables" as vars;
9
+ @forward "variables";
10
+ @use "../../../utils/scss" as vg;
11
+ @use "animations";
12
+ @use "mixins" as files;
13
+ @use "variables" as vars;
14
14
 
15
15
  .vg-files {
16
- @include vg.mix-vars('files', vars.$files-map);
16
+ @include vg.mix-vars('files', vars.$files-map);
17
17
  position: relative;
18
18
 
19
19
  a {
@@ -260,62 +260,62 @@
260
260
  }
261
261
  }
262
262
 
263
- .file {
264
- --vg-button-color: var(--vg-secondary);
265
- display: flex;
266
- align-items: center;
267
- gap: var(--vg-files-info-gap);
268
- padding: var(--vg-files-info-padding);
269
- border-bottom: 1px solid var(--vg-files-info-border-bottom-color);
270
- transition: all .2s ease-in-out;
271
- position: relative;
263
+ .file {
264
+ --vg-button-color: var(--vg-secondary);
265
+ display: flex;
266
+ align-items: center;
267
+ gap: var(--vg-files-info-gap);
268
+ padding: var(--vg-files-info-padding);
269
+ border-bottom: 1px solid var(--vg-files-info-border-bottom-color);
270
+ transition: all .2s ease-in-out;
271
+ position: relative;
272
272
 
273
- @include files.vgfiles-sortable();
274
- @include files.vgfiles-state();
273
+ @include files.vgfiles-sortable();
274
+ @include files.vgfiles-state();
275
275
 
276
276
  &:last-child {
277
277
  border-bottom: none;
278
278
  }
279
279
 
280
- &:hover {
281
- background-color: var(--vg-files-info-hover-bg);
282
- }
283
-
284
- &[data-vg-filepreview-renderer="audio"] {
285
- --vg-filepreview-audio-inline-progress: 0%;
286
- position: relative;
287
- overflow: hidden;
288
- isolation: isolate;
289
- min-height: var(--vg-files-info-audio-row-min-height);
290
- background-color: var(--vg-files-info-audio-progress-track);
291
-
292
- &::before {
293
- content: '';
294
- position: absolute;
295
- inset: 0 auto 0 0;
296
- width: var(--vg-filepreview-audio-inline-progress);
297
- background: var(--vg-files-info-audio-progress-fill);
298
- opacity: var(--vg-files-info-audio-progress-opacity);
299
- pointer-events: none;
300
- z-index: 0;
301
- transition: width .12s linear;
302
- }
303
-
304
- > * {
305
- position: relative;
306
- z-index: 1;
307
- }
308
-
309
- .file-image {
310
- flex: 0 0 var(--vg-files-info-audio-image-size);
311
- width: var(--vg-files-info-audio-image-size);
312
- height: var(--vg-files-info-audio-image-size);
313
- }
314
- }
315
-
316
- > * {
317
- transition: all .2s ease-in-out;
318
- }
280
+ &:hover {
281
+ background-color: var(--vg-files-info-hover-bg);
282
+ }
283
+
284
+ &[data-vg-filepreview-renderer="audio"] {
285
+ --vg-filepreview-audio-inline-progress: 0%;
286
+ position: relative;
287
+ overflow: hidden;
288
+ isolation: isolate;
289
+ min-height: var(--vg-files-info-audio-row-min-height);
290
+ background-color: var(--vg-files-info-audio-progress-track);
291
+
292
+ &::before {
293
+ content: '';
294
+ position: absolute;
295
+ inset: 0 auto 0 0;
296
+ width: var(--vg-filepreview-audio-inline-progress);
297
+ background: var(--vg-files-info-audio-progress-fill);
298
+ opacity: var(--vg-files-info-audio-progress-opacity);
299
+ pointer-events: none;
300
+ z-index: 0;
301
+ transition: width .12s linear;
302
+ }
303
+
304
+ > * {
305
+ position: relative;
306
+ z-index: 1;
307
+ }
308
+
309
+ .file-image {
310
+ flex: 0 0 var(--vg-files-info-audio-image-size);
311
+ width: var(--vg-files-info-audio-image-size);
312
+ height: var(--vg-files-info-audio-image-size);
313
+ }
314
+ }
315
+
316
+ > * {
317
+ transition: all .2s ease-in-out;
318
+ }
319
319
 
320
320
  &-image {
321
321
  flex: 0 0 var(--vg-files-image-width);
@@ -361,63 +361,63 @@
361
361
  display: none;
362
362
  }
363
363
 
364
- .name {
365
- display: block;
366
- overflow: hidden;
367
- text-overflow: ellipsis;
368
- white-space: nowrap;
369
- font-size: var(--vg-files-info-name-font-size);
370
-
371
- &.vg-filepreview-audio-inline {
372
- display: inline-flex;
373
- gap: var(--vg-filepreview-audio-inline-gap);
374
- align-items: center;
375
- }
376
-
377
- &.is-preview-action {
378
- cursor: pointer;
379
- }
380
- }
381
-
382
- .size {
383
- color: var(--vg-secondary);
384
- font-size: var(--vg-files-info-size-font-size);
385
- white-space: nowrap;
386
- margin-left: auto;
387
- }
388
-
389
- .download {
390
- margin-left: 8px;
391
-
392
- .vg-filepreview-download-trigger {
393
- padding: 0;
394
- background: transparent;
395
- color: var(--vg-secondary);
396
- border-radius: 0;
397
- font-size: var(--vg-files-info-size-font-size);
398
- font-weight: 500;
399
- gap: 4px;
400
-
401
- &:hover {
402
- color: var(--vg-body-color);
403
- }
404
-
405
- &__icon svg {
406
- width: 14px;
407
- height: 14px;
408
- }
409
-
410
- &__text {
411
- display: none;
412
- }
413
- }
414
- }
415
- }
416
-
417
- &-remove {
418
- flex: 0 0 var(--vg-files-remove-width);
419
- width: var(--vg-files-remove-width);
420
- margin-left: auto;
364
+ .name {
365
+ display: block;
366
+ overflow: hidden;
367
+ text-overflow: ellipsis;
368
+ white-space: nowrap;
369
+ font-size: var(--vg-files-info-name-font-size);
370
+
371
+ &.vg-filepreview-audio-inline {
372
+ display: inline-flex;
373
+ gap: var(--vg-filepreview-audio-inline-gap);
374
+ align-items: center;
375
+ }
376
+
377
+ &.is-preview-action {
378
+ cursor: pointer;
379
+ }
380
+ }
381
+
382
+ .size {
383
+ color: var(--vg-secondary);
384
+ font-size: var(--vg-files-info-size-font-size);
385
+ white-space: nowrap;
386
+ margin-left: auto;
387
+ }
388
+
389
+ .download {
390
+ margin-left: 8px;
391
+
392
+ .vg-filepreview-download-trigger {
393
+ padding: 0;
394
+ background: transparent;
395
+ color: var(--vg-secondary);
396
+ border-radius: 0;
397
+ font-size: var(--vg-files-info-size-font-size);
398
+ font-weight: 500;
399
+ gap: 4px;
400
+
401
+ &:hover {
402
+ color: var(--vg-body-color);
403
+ }
404
+
405
+ &__icon svg {
406
+ width: 14px;
407
+ height: 14px;
408
+ }
409
+
410
+ &__text {
411
+ display: none;
412
+ }
413
+ }
414
+ }
415
+ }
416
+
417
+ &-remove {
418
+ flex: 0 0 var(--vg-files-remove-width);
419
+ width: var(--vg-files-remove-width);
420
+ margin-left: auto;
421
421
 
422
422
  button {
423
423
  width: var(--vg-files-remove-width);
@@ -450,21 +450,21 @@
450
450
  fill: var(--vg-button-color);
451
451
  }
452
452
  }
453
- }
454
- }
455
- }
456
-
457
- &.failing {
458
- .file-remove {
459
- flex: 0 0 auto;
460
- width: auto;
461
- }
462
- }
463
-
464
- &:not(.with-image) {
465
- .file-info {
466
- .iteration {
467
- display: block;
453
+ }
454
+ }
455
+ }
456
+
457
+ &.failing {
458
+ .file-remove {
459
+ flex: 0 0 auto;
460
+ width: auto;
461
+ }
462
+ }
463
+
464
+ &:not(.with-image) {
465
+ .file-info {
466
+ .iteration {
467
+ display: block;
468
468
  }
469
469
  }
470
470
  }
@@ -511,26 +511,26 @@
511
511
  }
512
512
  }
513
513
  }
514
- }
515
- }
516
- }
517
- }
518
-
519
- .file-failing-actions {
520
- display: inline-flex;
521
- align-items: center;
522
- gap: var(--vg-files-info-failing-actions-gap);
523
- }
524
-
525
- &-info--list {
526
- .file.failing {
527
- .file-remove {
528
- margin-left: var(--vg-files-info-failing-actions-margin-start);
529
- }
530
- }
531
- }
532
-
533
- &-drop {
514
+ }
515
+ }
516
+ }
517
+ }
518
+
519
+ .file-failing-actions {
520
+ display: inline-flex;
521
+ align-items: center;
522
+ gap: var(--vg-files-info-failing-actions-gap);
523
+ }
524
+
525
+ &-info--list {
526
+ .file.failing {
527
+ .file-remove {
528
+ margin-left: var(--vg-files-info-failing-actions-margin-start);
529
+ }
530
+ }
531
+ }
532
+
533
+ &-drop {
534
534
  background-color: var(--vg-files-drop-bg);
535
535
  border: var(--vg-files-drop-border-width) var(--vg-files-drop-border-style) var(--vg-files-drop-border-color);
536
536
  cursor: pointer;
@@ -558,11 +558,11 @@
558
558
  animation: stripes var(--vg-files-drop-stripes-duration) linear infinite;
559
559
  background-image: linear-gradient(
560
560
  -45deg,
561
- rgb(var(--vg-secondary-rgb, 107 114 128) / var(--vg-files-drop-stripes-alpha)) 25%,
561
+ rgb(var(--vg-secondary-rgb, 107 114 128) / var(--vg-files-drop-stripes-alpha)) 25%,
562
562
  transparent 0,
563
563
  transparent 50%,
564
- rgb(var(--vg-secondary-rgb, 107 114 128) / var(--vg-files-drop-stripes-alpha)) 0,
565
- rgb(var(--vg-secondary-rgb, 107 114 128) / var(--vg-files-drop-stripes-alpha)) 75%,
564
+ rgb(var(--vg-secondary-rgb, 107 114 128) / var(--vg-files-drop-stripes-alpha)) 0,
565
+ rgb(var(--vg-secondary-rgb, 107 114 128) / var(--vg-files-drop-stripes-alpha)) 75%,
566
566
  transparent 0,
567
567
  transparent
568
568
  );
@@ -644,8 +644,8 @@
644
644
  flex: 0 0 var(--vg-files-drop-file-flex);
645
645
  height: var(--vg-files-drop-file-height);
646
646
 
647
- @include files.vgfiles-sortable();
648
- @include files.vgfiles-state();
647
+ @include files.vgfiles-sortable();
648
+ @include files.vgfiles-state();
649
649
 
650
650
  .file-image {
651
651
  width: 100%;
@@ -710,14 +710,14 @@
710
710
  flex-direction: column;
711
711
  gap: 8px;
712
712
 
713
- .file-remove {
714
- .file-failing-actions {
715
- gap: var(--vg-files-drop-failing-actions-gap);
716
- }
717
-
718
- button {
719
- background: var(--vg-body-bg);
720
- color: var(--vg-body-color);
713
+ .file-remove {
714
+ .file-failing-actions {
715
+ gap: var(--vg-files-drop-failing-actions-gap);
716
+ }
717
+
718
+ button {
719
+ background: var(--vg-body-bg);
720
+ color: var(--vg-body-color);
721
721
  border: none;
722
722
  cursor: pointer;
723
723
  outline: none;
@@ -13,16 +13,17 @@ const NAME_KEY = 'vg.hideshowpass';
13
13
  const SELECTOR_DATA_TOGGLE= '[data-vg-toggle="pass"]';
14
14
 
15
15
  const CLASS_NAME_SHOW = 'show';
16
+ const CLASS_NAME_FOCUS_OFFSET = 'vg-form-sender--content-pass-focus-offset';
16
17
 
17
18
  const EVENT_KEY_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;
18
19
 
19
20
  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));
21
+ constructor(el, params = {}) {
22
+ super(el, params);
23
+
24
+ this._params = this._getParams(el, mergeDeepObject({
25
+ parentClass: 'vg-form-sender--content-pass'
26
+ }, params));
26
27
  }
27
28
 
28
29
  static get NAME() {
@@ -62,15 +63,19 @@ class VGHideShowPass extends BaseModule{
62
63
  instance.build(false);
63
64
  }
64
65
 
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});
66
+ build(isShow = false) {
67
+ let classes = this._params.classes.join(' '), elm = '';
68
+ const HTML = Html('string');
69
+ if (this._element.parentElement && this._params.parentClass) {
70
+ this._element.parentElement.classList.add(this._params.parentClass);
71
+ this._element.parentElement.classList.toggle(
72
+ CLASS_NAME_FOCUS_OFFSET,
73
+ this._params.focus === true
74
+ );
75
+ }
76
+
77
+ if (!isShow) {
78
+ elm = HTML.component('eye', {class: classes});
74
79
  } else {
75
80
  elm = HTML.component('eye', {class: classes, type: 'hide'});
76
81
  }
@@ -100,4 +105,4 @@ EventHandler.on(document, EVENT_KEY_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, functi
100
105
  instance.toggle(this);
101
106
  });
102
107
 
103
- export default VGHideShowPass
108
+ export default VGHideShowPass
@@ -129,7 +129,7 @@ class VGFormSender extends BaseModule {
129
129
  fields: [],
130
130
  timeout: 50,
131
131
  pass: {
132
- enabled: true,
132
+ focus: false,
133
133
  template: 'pass-open',
134
134
  classes: ['vg-form-sender--hide-show-pass'],
135
135
  insert: 'afterend'
@@ -270,11 +270,9 @@ class VGFormSender extends BaseModule {
270
270
  this._element.classList.add(this._params.classes.validation);
271
271
  }
272
272
 
273
- if (this._params.pass.enabled) {
274
- [... Selectors.findAll('input[type="password"]', this._element)].forEach((el) => {
275
- VGHideShowPass.init(el, this._params.pass);
276
- })
277
- }
273
+ [... Selectors.findAll('input[type="password"]', this._element)].forEach((el) => {
274
+ VGHideShowPass.init(el, this._params.pass);
275
+ })
278
276
 
279
277
  execute(this._params.callback.afterInit, [this._element, this]);
280
278
 
@@ -78,7 +78,7 @@ VGFormSender.init(document.getElementById('contactForm'), {
78
78
  | `response.enabled` | `boolean` | `false` | Нативная обработка ответа (без AJAX) |
79
79
  | `submit` | `boolean` | `false` | Отправлять нативно (без AJAX) |
80
80
  | `fields` | `Array` | `[]` | Доп. данные для отправки |
81
- | `pass.enabled` | `boolean` | `true` | Показывать иконку глаза у паролей |
81
+ | `pass.focus` | `boolean` | `false` | Увеличивать правый отступ поля и сдвигать иконку глаза при фокусе |
82
82
  | `alert.enabled` | `boolean` | `true` | Показывать уведомления |
83
83
  | `alert.type` | `'modal' \| 'collapse'` | `'modal'` | Тип уведомления |
84
84
  | `alert.errors` | `boolean` | `true` | Показывать детали ошибок |
@@ -1,5 +1,5 @@
1
- @use "../../../utils/scss" as vg;
2
-
3
- $form-sender-map: (
4
- 'eye-color': var(--vg-text-color, #{vg.$color})
5
- ) !default;
1
+ @use "../../../utils/scss" as vg;
2
+
3
+ $form-sender-map: (
4
+ 'eye-color': var(--vg-text-color, #{vg.$color})
5
+ ) !default;
@@ -6,12 +6,12 @@
6
6
  *--------------------------------------------------------------------------
7
7
  **/
8
8
 
9
- @forward "variables";
10
- @use "../../../utils/scss" as vg;
11
- @use "variables" as vars;
9
+ @forward "variables";
10
+ @use "../../../utils/scss" as vg;
11
+ @use "variables" as vars;
12
12
 
13
13
  .vg-form-sender {
14
- @include vg.mix-vars('form-sender', vars.$form-sender-map);
14
+ @include vg.mix-vars('form-sender', vars.$form-sender-map);
15
15
 
16
16
  &-modal {
17
17
  .vg-modal-content {
@@ -19,21 +19,21 @@
19
19
  }
20
20
  }
21
21
 
22
- &--content {
23
- position: relative;
24
-
25
- &-pass {
26
- &:focus-within {
27
- input {
28
- padding-right: 5rem;
29
- }
30
-
31
- .vg-form-sender--hide-show-pass {
32
- right: 44px;
33
- }
34
- }
35
- }
36
- }
22
+ &--content {
23
+ position: relative;
24
+
25
+ &-pass-focus-offset {
26
+ &:focus-within {
27
+ input {
28
+ padding-right: 5rem;
29
+ }
30
+
31
+ .vg-form-sender--hide-show-pass {
32
+ right: 44px;
33
+ }
34
+ }
35
+ }
36
+ }
37
37
 
38
38
  &--hide-show-pass {
39
39
  position: absolute;
@@ -42,7 +42,7 @@
42
42
  width: 22px;
43
43
  height: 22px;
44
44
  cursor: pointer;
45
- transition: vg.$transition-base;
45
+ transition: vg.$transition-base;
46
46
 
47
47
  svg {
48
48
  path {
@@ -51,35 +51,35 @@
51
51
  }
52
52
  }
53
53
 
54
- &.was-validated {
55
- .vg-form-sender--hide-show-pass {
56
- right: 34px;
57
- }
58
-
59
- .vg-form-sender--content-pass {
60
- &:focus-within {
61
- input {
62
- padding-right: 6.25rem;
63
- }
64
-
65
- .vg-form-sender--hide-show-pass {
66
- right: 64px;
67
- }
68
- }
69
- }
70
- }
71
- }
54
+ &.was-validated {
55
+ .vg-form-sender--hide-show-pass {
56
+ right: 34px;
57
+ }
58
+
59
+ .vg-form-sender--content-pass-focus-offset {
60
+ &:focus-within {
61
+ input {
62
+ padding-right: 6.25rem;
63
+ }
64
+
65
+ .vg-form-sender--hide-show-pass {
66
+ right: 64px;
67
+ }
68
+ }
69
+ }
70
+ }
71
+ }
72
72
 
73
73
  .vg-form-sender-alert {
74
- @include vg.mix-alert-color-mode($class: vg-form-sender-alert);
74
+ @include vg.mix-alert-color-mode($class: vg-form-sender-alert);
75
75
  background-color: var(--vg-form-sender-alert-background-color);
76
76
  border: 1px solid var(--vg-form-sender-alert-border-color) ;
77
- border-radius: var(--vg-border-radius, #{vg.$border-radius});
77
+ border-radius: var(--vg-border-radius, #{vg.$border-radius});
78
78
 
79
79
  .vg-btn-close {
80
80
  svg {
81
81
  path {
82
- fill: var(--vg-form-sender-alert-close);
82
+ fill: var(--vg-form-sender-alert-close);
83
83
  }
84
84
  }
85
85
  }
@@ -125,4 +125,4 @@
125
125
  .vg-form-sender-alert-content--text {
126
126
  font-size: 1.25rem;
127
127
  color: var(--vg-form-sender-alert-color);
128
- }
128
+ }
@@ -23,7 +23,6 @@ const SELECTOR_DATA_TOGGLE_CLEAR = '[data-vg-toggle="lawcookie-clear"]';
23
23
  const EVENT_KEY_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;
24
24
 
25
25
  class VGLawCookie extends BaseModule {
26
- // Убрано статическое sParams — избыточно и небезопасно
27
26
 
28
27
  constructor(element, params = {}) {
29
28
  super(element, params);
@@ -147,11 +146,13 @@ class VGLawCookie extends BaseModule {
147
146
  }
148
147
 
149
148
  /**
150
- * Полный сброс согласия
149
+ * Сбрасывает согласие, не затрагивая остальные данные хранилища
151
150
  */
152
151
  static reset() {
153
- Cookies.remove(VGLawCookie.getDefaultParams().cookie.name);
154
- localStorage.clear();
152
+ const { name } = VGLawCookie.getDefaultParams().cookie;
153
+
154
+ Cookies.remove(name);
155
+ localStorage.removeItem(name);
155
156
  location.reload();
156
157
  }
157
158
 
@@ -165,8 +166,10 @@ class VGLawCookie extends BaseModule {
165
166
  }
166
167
 
167
168
  dispose() {
168
- Cookies.remove(VGLawCookie.getDefaultParams().cookie.name);
169
- localStorage.clear();
169
+ const { name } = this._params.cookie;
170
+
171
+ Cookies.remove(name);
172
+ localStorage.removeItem(name);
170
173
  super.dispose();
171
174
  }
172
175
 
@@ -213,7 +216,7 @@ EventHandler.on(document, EVENT_KEY_CLICK_DATA_API, SELECTOR_DATA_TOGGLE_CLEAR,
213
216
 
214
217
  const instance = VGLawCookie.getOrCreateInstance(element);
215
218
  instance.dispose();
216
- VGLawCookie.reset(); // Полный сброс
219
+ VGLawCookie.reset(); // Сброс согласия
217
220
  });
218
221
 
219
- export default VGLawCookie;
222
+ export default VGLawCookie;