j1-template 2021.2.5 → 2021.2.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/_includes/themes/j1/modules/connectors/translators/google-translator.html +2 -1
- data/_layouts/default.html +0 -1
- data/assets/data/iso-639-language-codes-flags.json +224 -0
- data/assets/data/{translator_languages.json → iso-639-language-codes.json} +111 -142
- data/assets/data/translator.html +23 -19
- data/assets/themes/j1/adapter/js/translator.1.js +525 -0
- data/assets/themes/j1/adapter/js/translator.js +107 -168
- data/assets/themes/j1/core/css/themes/bootstrap/bootstrap.css +27 -12
- data/assets/themes/j1/core/css/themes/bootstrap/bootstrap.min.css +1 -1
- data/assets/themes/j1/core/css/themes/uno-dark/bootstrap.css +27 -12
- data/assets/themes/j1/core/css/themes/uno-dark/bootstrap.min.css +1 -1
- data/assets/themes/j1/core/css/themes/uno-light/bootstrap.css +59 -22
- data/assets/themes/j1/core/css/themes/uno-light/bootstrap.min.css +1 -1
- data/assets/themes/j1/modules/translator/js/translator.js +217 -242
- data/assets/themes/j1/modules/translator/js/translator.min.js +2 -2
- data/lib/j1/version.rb +1 -1
- data/lib/starter_web/Gemfile +1 -1
- data/lib/starter_web/_config.yml +1 -1
- data/lib/starter_web/_data/j1_config.yml +2 -22
- data/lib/starter_web/_data/modules/defaults/translator.yml +77 -64
- data/lib/starter_web/_data/modules/translator.yml +1 -0
- data/lib/starter_web/_includes/attributes.asciidoc +1 -1
- data/lib/starter_web/_plugins/lunr_index.rb +1 -1
- data/lib/starter_web/package.json +1 -1
- data/lib/starter_web/pages/public/learn/roundtrip/400_asciidoc_extensions.adoc +3 -3
- data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
- data/lib/starter_web/utilsrv/package.json +1 -1
- metadata +5 -4
- data/assets/data/msdropdown.json +0 -155
@@ -87,6 +87,7 @@ j1.adapter['translator'] = (function (j1, window) {
|
|
87
87
|
var user_translate = {};
|
88
88
|
var _this;
|
89
89
|
var $modal;
|
90
|
+
var domain;
|
90
91
|
var cookie_names;
|
91
92
|
var user_consent;
|
92
93
|
var logger;
|
@@ -94,7 +95,7 @@ j1.adapter['translator'] = (function (j1, window) {
|
|
94
95
|
var baseUrl;
|
95
96
|
var hostname;
|
96
97
|
var domain;
|
97
|
-
var
|
98
|
+
var cookie_sub_domains;
|
98
99
|
var secure;
|
99
100
|
var logText;
|
100
101
|
var cookie_written;
|
@@ -109,21 +110,45 @@ j1.adapter['translator'] = (function (j1, window) {
|
|
109
110
|
// ---------------------------------------------------------------------------
|
110
111
|
// helper functions
|
111
112
|
// ---------------------------------------------------------------------------
|
113
|
+
|
114
|
+
// ---------------------------------------------------------------------------
|
115
|
+
// setCookie()
|
116
|
+
// writes a flat cookie (not using an encoded JSON string)
|
117
|
+
// ---------------------------------------------------------------------------
|
112
118
|
function setCookie(options /*cName, cValue, expDays*/) {
|
113
|
-
var defaults = {
|
119
|
+
var defaults = {};
|
120
|
+
var settings;
|
121
|
+
var document_cookie;
|
122
|
+
var stringifiedAttributes = '';
|
123
|
+
|
124
|
+
defaults = {
|
114
125
|
name: '',
|
115
126
|
path: '/',
|
116
127
|
expires: 0,
|
117
|
-
domain: 'localhost'
|
128
|
+
domain: 'localhost',
|
129
|
+
samesite: 'Strict',
|
130
|
+
http_only: false,
|
131
|
+
secure: false
|
118
132
|
};
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
133
|
+
settings = $.extend(defaults, options);
|
134
|
+
|
135
|
+
stringifiedAttributes += '; ' + 'path=' + settings.path;
|
136
|
+
|
137
|
+
if (settings.expires > 0) {
|
138
|
+
date.setTime(date.getTime() + (settings.expires * 24 * 60 * 60 * 1000));
|
139
|
+
stringifiedAttributes += '; ' + 'expires=' + date.toUTCString();
|
140
|
+
}
|
141
|
+
|
142
|
+
stringifiedAttributes += '; ' + 'SameSite=' + settings.samesite;
|
143
|
+
|
144
|
+
if (settings.secure) {
|
145
|
+
stringifiedAttributes += '; ' + 'secure=' + settings.secure;
|
146
|
+
}
|
147
|
+
|
148
|
+
// document_cookie = settings.name + '=' + settings.data + '; path=' + settings.path + '; ' + 'domain=' + settings.domain + '; ' + 'SameSite=' + settings.samesite + ';';
|
149
|
+
document_cookie = settings.name + '=' + settings.data + stringifiedAttributes;
|
150
|
+
|
151
|
+
document.cookie = document_cookie;
|
127
152
|
};
|
128
153
|
|
129
154
|
// ---------------------------------------------------------------------------
|
@@ -165,6 +190,14 @@ j1.adapter['translator'] = (function (j1, window) {
|
|
165
190
|
'translationLanguage': translation_language,
|
166
191
|
};
|
167
192
|
|
193
|
+
// set sub domain settings for cookies
|
194
|
+
if(domain !== 'localhost') {
|
195
|
+
cookie_sub_domains = '.' + hostname;
|
196
|
+
} else {
|
197
|
+
cookie_sub_domains = hostname;
|
198
|
+
}
|
199
|
+
|
200
|
+
// load|initialize user translate cookie
|
168
201
|
if (j1.existsCookie(cookie_names.user_translate)) {
|
169
202
|
user_translate = j1.readCookie(cookie_names.user_translate);
|
170
203
|
} else {
|
@@ -177,13 +210,6 @@ j1.adapter['translator'] = (function (j1, window) {
|
|
177
210
|
});
|
178
211
|
}
|
179
212
|
|
180
|
-
// set domain used by cookies
|
181
|
-
if(domain !== 'localhost') {
|
182
|
-
cookie_domain = '.' + hostname;
|
183
|
-
} else {
|
184
|
-
cookie_domain = hostname;
|
185
|
-
}
|
186
|
-
|
187
213
|
// initialize state flag
|
188
214
|
_this.state = 'pending';
|
189
215
|
// _this.settings.languageList = '/assets/data/ms_select.json';
|
@@ -218,6 +244,7 @@ j1.adapter['translator'] = (function (j1, window) {
|
|
218
244
|
logger.info('\n' + 'state: ' + _this.getState());
|
219
245
|
logger.info('\n' + 'module is being initialized');
|
220
246
|
|
247
|
+
// hide the google translate element if exists
|
221
248
|
if ($('google_translate_element')) {
|
222
249
|
$('google_translate_element').hide();
|
223
250
|
}
|
@@ -249,31 +276,32 @@ j1.adapter['translator'] = (function (j1, window) {
|
|
249
276
|
});
|
250
277
|
|
251
278
|
j1.translator = new Translator({
|
252
|
-
contentURL:
|
253
|
-
cookieName:
|
254
|
-
cookieConsentName:
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
279
|
+
contentURL: moduleOptions.contentURL, // dialog content (modals) for all supported languages
|
280
|
+
cookieName: moduleOptions.cookieName, // the name of the User State Cookie (primary data)
|
281
|
+
cookieConsentName: moduleOptions.cookieConsentName, // the name of the Cookie Consent Cookie (secondary data)
|
282
|
+
disableLanguageSelector: moduleOptions.disableLanguageSelector, // disable language dropdown for translation in dialog (modal)
|
283
|
+
dialogContainerID: moduleOptions.dialogContainerID, // dest container, the dialog modal is loaded (dynamically)
|
284
|
+
dialogLanguage: moduleOptions.dialogLanguage, // language for the dialog (modal)
|
285
|
+
translationLanguage: moduleOptions.translationLanguage, // default language for translation
|
286
|
+
translationLanguages: moduleOptions.google.translationLanguages,// supported languages for translation
|
287
|
+
translationEnabled: moduleOptions.translationEnabled, // run translation enabled|disabled
|
288
|
+
translatorName: moduleOptions.translatorName, // translator used for translation
|
289
|
+
xhrDataElement: moduleOptions.xhrDataElement, // container for all language-specific dialogs (modals)
|
290
|
+
postSelectionCallback: moduleOptions.google.postSelectionCallback
|
263
291
|
});
|
264
292
|
|
293
|
+
// enable|disable translation (after callback)
|
265
294
|
if (user_consent.analysis && user_consent.personalization && user_translate.translationEnabled) {
|
266
295
|
if (moduleOptions.translatorName === 'google') {
|
267
296
|
head.appendChild(script);
|
268
|
-
$('google_translate_element')
|
297
|
+
if ($('google_translate_element')) {
|
298
|
+
$('google_translate_element').hide();
|
299
|
+
}
|
269
300
|
}
|
270
301
|
} else {
|
271
302
|
if (moduleOptions.translatorName === 'google') {
|
272
|
-
j1.removeCookie({name: 'googtrans'});
|
273
|
-
|
274
|
-
// j1.removeCookie({name: 'NID'});
|
275
|
-
// j1.removeCookie({name: 'OTZ'});
|
276
|
-
}
|
303
|
+
j1.removeCookie({name: 'googtrans', domain: domain});
|
304
|
+
}
|
277
305
|
}
|
278
306
|
|
279
307
|
_this.setState('finished');
|
@@ -328,29 +356,40 @@ j1.adapter['translator'] = (function (j1, window) {
|
|
328
356
|
}, // END getState
|
329
357
|
|
330
358
|
// -------------------------------------------------------------------------
|
331
|
-
//
|
332
|
-
//
|
333
|
-
//
|
359
|
+
// postTranslateElementInit()
|
360
|
+
// ???
|
361
|
+
// -------------------------------------------------------------------------
|
362
|
+
postTranslateElementInit: function (response) {
|
363
|
+
// code for post processing
|
364
|
+
logger.info('\n' + 'postTranslateElementInit entered');
|
365
|
+
logger.info('\n' + response.T.Dh);
|
366
|
+
return;
|
367
|
+
}, // END postTranslateElementInit
|
368
|
+
|
369
|
+
// -------------------------------------------------------------------------
|
370
|
+
// cbGoogle()
|
371
|
+
// Called by the translator CORE module after the user made the
|
372
|
+
// selection for a translation|language
|
334
373
|
// -------------------------------------------------------------------------
|
335
|
-
|
374
|
+
cbGoogle: function () {
|
375
|
+
var logger = log4javascript.getLogger('j1.adapter.translator.cbGoogle');
|
336
376
|
var cookie_names = j1.getCookieNames();
|
337
377
|
var user_state = j1.readCookie(cookie_names.user_state);
|
338
378
|
var user_consent = j1.readCookie(cookie_names.user_consent);
|
339
379
|
var user_translate = j1.readCookie(cookie_names.user_translate);
|
340
|
-
var
|
341
|
-
var
|
380
|
+
var msDropdown = document.getElementById('dropdownJSON').msDropdown;
|
381
|
+
var selectedTranslationLanguage;
|
342
382
|
var srcLang;
|
343
383
|
var destLang;
|
344
384
|
var transCode;
|
345
|
-
var cookie_written;
|
346
385
|
|
347
|
-
|
348
|
-
logger.
|
349
|
-
logger.debug('\n' + 'current values from user state: ' + JSON.stringify(user_state));
|
386
|
+
selectedTranslationLanguage = msDropdown.value;
|
387
|
+
logger.info('\n' + 'selected translation language: ' + selectedTranslationLanguage);
|
350
388
|
|
351
389
|
// update cookie consent settings
|
352
|
-
user_consent.analysis
|
353
|
-
user_consent.personalization
|
390
|
+
user_consent.analysis = user_translate.analysis;
|
391
|
+
user_consent.personalization = user_translate.personalization;
|
392
|
+
|
354
393
|
cookie_written = j1.writeCookie({
|
355
394
|
name: cookie_names.user_consent,
|
356
395
|
data: user_consent,
|
@@ -359,130 +398,30 @@ j1.adapter['translator'] = (function (j1, window) {
|
|
359
398
|
expires: 0
|
360
399
|
});
|
361
400
|
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
// $('#j1_footer').bind('DOMSubtreeModified', function() {
|
367
|
-
// var val = $(this);
|
368
|
-
// var strlang = "" + val[0].innerText + "";
|
369
|
-
// console.log(strlang); // print your selected language in console
|
370
|
-
// });
|
371
|
-
|
372
|
-
// $('#google_translate_element').bind('DOMSubtreeModified', function() {
|
373
|
-
// var val = $(this);
|
374
|
-
// var strlang = "" + val[0].innerText + "";
|
375
|
-
// console.log(strlang); // print your selected language in console
|
376
|
-
// });
|
377
|
-
|
378
|
-
// remove class dropcap
|
379
|
-
// $('.dropcap').children('span').removeClass('j1-dropcap');
|
380
|
-
|
381
|
-
// remove span dropcap !!!
|
382
|
-
// $('.dropcap').children('span').remove();
|
401
|
+
// set transCode settings
|
402
|
+
srcLang = "{{site.language}}";
|
403
|
+
destLang = translation_language;
|
404
|
+
transCode = '/' + srcLang + '/' + selectedTranslationLanguage;
|
383
405
|
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
script.id = 'google-translate';
|
390
|
-
script.src = '//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit';
|
391
|
-
|
392
|
-
if (user_translate.translationEnabled && moduleOptions.translatorName === 'google') {
|
393
|
-
head.appendChild(script);
|
394
|
-
|
395
|
-
if ($('google_translate_element')) {
|
396
|
-
$('google_translate_element').hide();
|
397
|
-
}
|
398
|
-
|
399
|
-
srcLang = "{{site.language}}";
|
400
|
-
destLang = translation_language;
|
401
|
-
transCode = '/' + srcLang + '/' + destLang;
|
402
|
-
|
403
|
-
// set language
|
404
|
-
setCookie({
|
405
|
-
name: 'googtrans',
|
406
|
-
data: transCode
|
407
|
-
});
|
408
|
-
|
409
|
-
// enable google transalate button if not visible
|
410
|
-
if ($('#quickLinksTranslateButton').css('display') === 'none') {
|
411
|
-
$('#quickLinksTranslateButton').css('display', 'block');
|
412
|
-
}
|
413
|
-
|
414
|
-
} else {
|
415
|
-
|
416
|
-
user_translate.translationEnabled = false;
|
417
|
-
cookie_written = j1.writeCookie({
|
418
|
-
name: cookie_names.user_translate,
|
419
|
-
data: user_translate,
|
420
|
-
samesite: 'Strict',
|
421
|
-
secure: secure
|
422
|
-
});
|
423
|
-
|
424
|
-
var el = document.getElementById(script.id);
|
425
|
-
|
426
|
-
if (el) { el.remove(); }
|
427
|
-
|
428
|
-
el = document.getElementById('google_translate_element');
|
429
|
-
if (el) { el.remove(); }
|
430
|
-
|
431
|
-
j1.removeCookie({name: 'googtrans'});
|
432
|
-
// j1.removeCookie({name: '1P_JAR'});
|
433
|
-
// j1.removeCookie({name: 'CONSENT'});
|
434
|
-
// j1.removeCookie({name: 'NID'});
|
435
|
-
}
|
436
|
-
|
437
|
-
}
|
438
|
-
|
439
|
-
if (!user_translate.analysis || !user_translate.personalization) {
|
440
|
-
head = document.getElementsByTagName('head')[0];
|
441
|
-
script = document.createElement('script');
|
442
|
-
script.id = 'google-translate';
|
443
|
-
// script.src = '//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit';
|
444
|
-
|
445
|
-
var el = document.getElementById(script.id);
|
446
|
-
|
447
|
-
// update cookie consent settings
|
448
|
-
user_consent.analysis = user_translate.analysis;
|
449
|
-
user_consent.personalization = user_translate.personalization;
|
450
|
-
cookie_written = j1.writeCookie({
|
451
|
-
name: cookie_names.user_consent,
|
452
|
-
data: user_consent,
|
453
|
-
samesite: 'Strict',
|
454
|
-
secure: secure,
|
455
|
-
expires: 0
|
456
|
-
});
|
457
|
-
|
458
|
-
user_translate.translationEnabled = false;
|
459
|
-
cookie_written = j1.writeCookie({
|
460
|
-
name: cookie_names.user_translate,
|
461
|
-
data: user_consent,
|
462
|
-
samesite: 'Strict',
|
463
|
-
secure: secure,
|
464
|
-
expires: 0
|
465
|
-
});
|
466
|
-
|
467
|
-
if (el) { el.remove(); }
|
468
|
-
|
469
|
-
el = document.getElementById('google_translate_element');
|
470
|
-
if (el) { el.remove(); }
|
471
|
-
|
472
|
-
j1.removeCookie({name: 'googtrans'});
|
473
|
-
}
|
474
|
-
|
475
|
-
if (moduleOptions.reloadPageOnChange) {
|
476
|
-
// reload current page (skip cache)
|
477
|
-
location.reload(true);
|
478
|
-
}
|
406
|
+
// write the googtrans cookie
|
407
|
+
setCookie({
|
408
|
+
name: 'googtrans',
|
409
|
+
data: transCode
|
410
|
+
});
|
479
411
|
|
480
|
-
//
|
481
|
-
|
482
|
-
|
483
|
-
}
|
412
|
+
// reload current page (skip cache)
|
413
|
+
location.reload(true);
|
414
|
+
}, // END cbGoogle
|
484
415
|
|
485
|
-
|
416
|
+
// -------------------------------------------------------------------------
|
417
|
+
// cbDeepl()
|
418
|
+
// Called by the translator CORE module after the user made the
|
419
|
+
// selection for a translation language
|
420
|
+
// -------------------------------------------------------------------------
|
421
|
+
cbDeepl: function () {
|
422
|
+
var logger = log4javascript.getLogger('j1.adapter.translator.cbDeepl');
|
423
|
+
// code for post processing
|
424
|
+
} // END cbDeepl
|
486
425
|
|
487
426
|
}; // END return
|
488
427
|
})(j1, window);
|
@@ -13,7 +13,7 @@
|
|
13
13
|
# -----------------------------------------------------------------------------
|
14
14
|
*/
|
15
15
|
/*!
|
16
|
-
* Bootstrap v4.6.
|
16
|
+
* Bootstrap v4.6.1 (https://getbootstrap.com/)
|
17
17
|
* Copyright 2011-2021 The Bootstrap Authors
|
18
18
|
* Copyright 2011-2021 Twitter, Inc.
|
19
19
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
@@ -1414,9 +1414,6 @@ pre {
|
|
1414
1414
|
.form-control::-ms-expand {
|
1415
1415
|
background-color: transparent;
|
1416
1416
|
border: 0; }
|
1417
|
-
.form-control:-moz-focusring {
|
1418
|
-
color: transparent;
|
1419
|
-
text-shadow: 0 0 0 #495057; }
|
1420
1417
|
.form-control:focus {
|
1421
1418
|
color: #495057;
|
1422
1419
|
background-color: #fff;
|
@@ -1436,6 +1433,10 @@ input[type="datetime-local"].form-control,
|
|
1436
1433
|
input[type="month"].form-control {
|
1437
1434
|
appearance: none; }
|
1438
1435
|
|
1436
|
+
select.form-control:-moz-focusring {
|
1437
|
+
color: transparent;
|
1438
|
+
text-shadow: 0 0 0 #495057; }
|
1439
|
+
|
1439
1440
|
select.form-control:focus::-ms-value {
|
1440
1441
|
color: #495057;
|
1441
1442
|
background-color: #fff; }
|
@@ -1576,7 +1577,7 @@ textarea.form-control {
|
|
1576
1577
|
|
1577
1578
|
.was-validated .form-control:valid, .form-control.is-valid {
|
1578
1579
|
border-color: #28a745;
|
1579
|
-
padding-right: calc(1.5em + 0.75rem);
|
1580
|
+
padding-right: calc(1.5em + 0.75rem) !important;
|
1580
1581
|
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
|
1581
1582
|
background-repeat: no-repeat;
|
1582
1583
|
background-position: right calc(0.375em + 0.1875rem) center;
|
@@ -1585,13 +1586,17 @@ textarea.form-control {
|
|
1585
1586
|
border-color: #28a745;
|
1586
1587
|
box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); }
|
1587
1588
|
|
1589
|
+
.was-validated select.form-control:valid, select.form-control.is-valid {
|
1590
|
+
padding-right: 3rem !important;
|
1591
|
+
background-position: right 1.5rem center; }
|
1592
|
+
|
1588
1593
|
.was-validated textarea.form-control:valid, textarea.form-control.is-valid {
|
1589
1594
|
padding-right: calc(1.5em + 0.75rem);
|
1590
1595
|
background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); }
|
1591
1596
|
|
1592
1597
|
.was-validated .custom-select:valid, .custom-select.is-valid {
|
1593
1598
|
border-color: #28a745;
|
1594
|
-
padding-right: calc(0.75em + 2.3125rem);
|
1599
|
+
padding-right: calc(0.75em + 2.3125rem) !important;
|
1595
1600
|
background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right 0.75rem center/8px 10px no-repeat, #fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat; }
|
1596
1601
|
.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {
|
1597
1602
|
border-color: #28a745;
|
@@ -1660,7 +1665,7 @@ textarea.form-control {
|
|
1660
1665
|
|
1661
1666
|
.was-validated .form-control:invalid, .form-control.is-invalid {
|
1662
1667
|
border-color: #dc3545;
|
1663
|
-
padding-right: calc(1.5em + 0.75rem);
|
1668
|
+
padding-right: calc(1.5em + 0.75rem) !important;
|
1664
1669
|
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");
|
1665
1670
|
background-repeat: no-repeat;
|
1666
1671
|
background-position: right calc(0.375em + 0.1875rem) center;
|
@@ -1669,13 +1674,17 @@ textarea.form-control {
|
|
1669
1674
|
border-color: #dc3545;
|
1670
1675
|
box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); }
|
1671
1676
|
|
1677
|
+
.was-validated select.form-control:invalid, select.form-control.is-invalid {
|
1678
|
+
padding-right: 3rem !important;
|
1679
|
+
background-position: right 1.5rem center; }
|
1680
|
+
|
1672
1681
|
.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {
|
1673
1682
|
padding-right: calc(1.5em + 0.75rem);
|
1674
1683
|
background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); }
|
1675
1684
|
|
1676
1685
|
.was-validated .custom-select:invalid, .custom-select.is-invalid {
|
1677
1686
|
border-color: #dc3545;
|
1678
|
-
padding-right: calc(0.75em + 2.3125rem);
|
1687
|
+
padding-right: calc(0.75em + 2.3125rem) !important;
|
1679
1688
|
background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right 0.75rem center/8px 10px no-repeat, #fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat; }
|
1680
1689
|
.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {
|
1681
1690
|
border-color: #dc3545;
|
@@ -2551,16 +2560,21 @@ input[type="button"].btn-block {
|
|
2551
2560
|
display: flex;
|
2552
2561
|
align-items: center; }
|
2553
2562
|
.input-group > .custom-file:not(:last-child) .custom-file-label,
|
2563
|
+
.input-group > .custom-file:not(:last-child) .custom-file-label::after {
|
2564
|
+
border-top-right-radius: 0;
|
2565
|
+
border-bottom-right-radius: 0; }
|
2554
2566
|
.input-group > .custom-file:not(:first-child) .custom-file-label {
|
2555
2567
|
border-top-left-radius: 0;
|
2556
2568
|
border-bottom-left-radius: 0; }
|
2557
2569
|
.input-group:not(.has-validation) > .form-control:not(:last-child),
|
2558
2570
|
.input-group:not(.has-validation) > .custom-select:not(:last-child),
|
2571
|
+
.input-group:not(.has-validation) > .custom-file:not(:last-child) .custom-file-label,
|
2559
2572
|
.input-group:not(.has-validation) > .custom-file:not(:last-child) .custom-file-label::after {
|
2560
2573
|
border-top-right-radius: 0;
|
2561
2574
|
border-bottom-right-radius: 0; }
|
2562
2575
|
.input-group.has-validation > .form-control:nth-last-child(n + 3),
|
2563
2576
|
.input-group.has-validation > .custom-select:nth-last-child(n + 3),
|
2577
|
+
.input-group.has-validation > .custom-file:nth-last-child(n + 3) .custom-file-label,
|
2564
2578
|
.input-group.has-validation > .custom-file:nth-last-child(n + 3) .custom-file-label::after {
|
2565
2579
|
border-top-right-radius: 0;
|
2566
2580
|
border-bottom-right-radius: 0; }
|
@@ -4581,8 +4595,11 @@ a.close.disabled {
|
|
4581
4595
|
align-items: center;
|
4582
4596
|
justify-content: center;
|
4583
4597
|
width: 15%;
|
4598
|
+
padding: 0;
|
4584
4599
|
color: #fff;
|
4585
4600
|
text-align: center;
|
4601
|
+
background: none;
|
4602
|
+
border: 0;
|
4586
4603
|
opacity: 0.5;
|
4587
4604
|
transition: opacity 0.15s ease; }
|
4588
4605
|
@media (prefers-reduced-motion: reduce) {
|
@@ -4668,7 +4685,7 @@ a.close.disabled {
|
|
4668
4685
|
display: inline-block;
|
4669
4686
|
width: 2rem;
|
4670
4687
|
height: 2rem;
|
4671
|
-
vertical-align:
|
4688
|
+
vertical-align: -0.125em;
|
4672
4689
|
border: 0.25em solid currentColor;
|
4673
4690
|
border-right-color: transparent;
|
4674
4691
|
border-radius: 50%;
|
@@ -4690,7 +4707,7 @@ a.close.disabled {
|
|
4690
4707
|
display: inline-block;
|
4691
4708
|
width: 2rem;
|
4692
4709
|
height: 2rem;
|
4693
|
-
vertical-align:
|
4710
|
+
vertical-align: -0.125em;
|
4694
4711
|
background-color: currentColor;
|
4695
4712
|
border-radius: 50%;
|
4696
4713
|
opacity: 0;
|
@@ -7158,8 +7175,6 @@ a.text-dark:hover, a.text-dark:focus {
|
|
7158
7175
|
blockquote {
|
7159
7176
|
border: 1px solid #adb5bd;
|
7160
7177
|
page-break-inside: avoid; }
|
7161
|
-
thead {
|
7162
|
-
display: table-header-group; }
|
7163
7178
|
tr,
|
7164
7179
|
img {
|
7165
7180
|
page-break-inside: avoid; }
|