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.
- package/app/langs/en/buttons.json +17 -17
- package/app/langs/en/messages.json +36 -36
- package/app/langs/ru/buttons.json +17 -17
- package/app/langs/ru/messages.json +36 -36
- package/app/modules/base-module.js +111 -111
- package/app/modules/vgalert/js/vgalert.js +37 -37
- package/app/modules/vgalert/readme.md +105 -105
- package/app/modules/vgdynamictable/index.js +4 -5
- package/app/modules/vgdynamictable/js/editable.js +19 -19
- package/app/modules/vgdynamictable/js/filters.js +21 -21
- package/app/modules/vgdynamictable/js/fixed.js +179 -179
- package/app/modules/vgdynamictable/js/pagination.js +1 -1
- package/app/modules/vgdynamictable/js/search.js +12 -12
- package/app/modules/vgdynamictable/js/sortable.js +71 -71
- package/app/modules/vgdynamictable/js/summary-footer.js +28 -28
- package/app/modules/vgdynamictable/js/table-remote.js +79 -79
- package/app/modules/vgdynamictable/js/table-url-state.js +31 -31
- package/app/modules/vgdynamictable/js/utils/common.js +48 -48
- package/app/modules/vgdynamictable/js/vgdynamictable.js +274 -274
- package/app/modules/vgdynamictable/readme.md +250 -250
- package/app/modules/vgdynamictable/scss/_skeleton.scss +6 -6
- package/app/modules/vgdynamictable/scss/_sortable.scss +24 -24
- package/app/modules/vgdynamictable/scss/_table.scss +4 -4
- package/app/modules/vgdynamictable/scss/_variables.scss +79 -79
- package/app/modules/vgdynamictable/scss/vgdynamictable.scss +27 -27
- package/app/modules/vgfilepreview/js/i18n.js +56 -56
- package/app/modules/vgfilepreview/js/renderers/image-modal.js +145 -145
- package/app/modules/vgfilepreview/js/renderers/image.js +92 -92
- package/app/modules/vgfilepreview/js/renderers/index.js +19 -19
- package/app/modules/vgfilepreview/js/renderers/office-modal.js +168 -168
- package/app/modules/vgfilepreview/js/renderers/office.js +79 -79
- package/app/modules/vgfilepreview/js/renderers/pdf-modal.js +260 -260
- package/app/modules/vgfilepreview/js/renderers/pdf.js +76 -76
- package/app/modules/vgfilepreview/js/renderers/playlist.js +71 -71
- package/app/modules/vgfilepreview/js/renderers/text-modal.js +343 -343
- package/app/modules/vgfilepreview/js/renderers/text.js +83 -83
- package/app/modules/vgfilepreview/js/renderers/video-modal.js +272 -272
- package/app/modules/vgfilepreview/js/renderers/video.js +80 -80
- package/app/modules/vgfilepreview/js/renderers/zip-modal.js +522 -522
- package/app/modules/vgfilepreview/js/renderers/zip.js +89 -89
- package/app/modules/vgfilepreview/js/vgfilepreview.js +7 -7
- package/app/modules/vgfilepreview/readme.md +68 -68
- package/app/modules/vgfilepreview/scss/_variables.scss +113 -113
- package/app/modules/vgfilepreview/scss/vgfilepreview.scss +464 -464
- package/app/modules/vgfiles/js/base.js +26 -26
- package/app/modules/vgfiles/js/droppable.js +260 -260
- package/app/modules/vgfiles/js/render.js +153 -153
- package/app/modules/vgfiles/js/vgfiles.js +104 -104
- package/app/modules/vgfiles/readme.md +123 -123
- package/app/modules/vgfiles/scss/_variables.scss +18 -18
- package/app/modules/vgfiles/scss/vgfiles.scss +148 -148
- package/app/modules/vgformsender/js/hideshowpass.js +16 -16
- package/app/modules/vgformsender/js/vgformsender.js +73 -72
- package/app/modules/vgformsender/readme.md +41 -41
- package/app/modules/vgformsender/scss/vgformsender.scss +34 -34
- package/app/modules/vgmodal/js/vgmodal.drag.js +332 -332
- package/app/modules/vgmodal/js/vgmodal.js +188 -188
- package/app/modules/vgmodal/js/vgmodal.resize.js +27 -27
- package/app/modules/vgmodal/scss/vgmodal.scss +14 -14
- package/app/modules/vgnav/js/vgnav.js +135 -135
- package/app/modules/vgnav/readme.md +67 -67
- package/app/modules/vgnestable/README.md +307 -307
- package/app/modules/vgnestable/scss/_variables.scss +60 -60
- package/app/modules/vgnestable/scss/vgnestable.scss +163 -163
- package/app/modules/vgrangeslider/js/skins.js +222 -222
- package/app/modules/vgrangeslider/js/vgrangeslider.js +704 -704
- package/app/modules/vgrangeslider/readme.md +523 -523
- package/app/modules/vgrangeslider/scss/_variables.scss +53 -53
- package/app/modules/vgrangeslider/scss/vgrangeslider.scss +240 -240
- package/app/modules/vgselect/js/vgselect.js +39 -39
- package/app/modules/vgselect/scss/vgselect.scss +22 -22
- package/app/modules/vgspy/readme.md +28 -28
- package/app/modules/vgtoast/readme.md +18 -18
- package/app/modules/vgtoast/scss/vgtoast.scss +48 -48
- package/app/modules/vgtooltip/js/vgtooltip.js +89 -89
- package/app/modules/vgtooltip/readme.md +181 -181
- package/app/utils/js/components/ajax.js +117 -117
- package/app/utils/js/components/audio-metadata.js +240 -240
- package/app/utils/js/components/backdrop.js +17 -17
- package/app/utils/js/components/file-icon.js +109 -109
- package/app/utils/js/components/file-preview.js +304 -304
- package/app/utils/js/components/sanitize.js +150 -150
- package/app/utils/js/components/video-metadata.js +140 -140
- package/app/vgapp.js +295 -130
- package/build/vgapp.css +1 -1
- package/build/vgapp.css.map +1 -1
- package/build/vgapp.js +1 -1
- package/build/vgapp.js.map +1 -1
- package/index.js +14 -14
- 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
|
-
|
|
686
|
-
|
|
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
|
+
}
|