j1-template 2021.2.5 → 2021.2.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- 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 +24 -20
- data/assets/themes/j1/adapter/js/translator.js +66 -80
- 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 +208 -236
- 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 +4 -4
- data/assets/data/msdropdown.json +0 -155
data/assets/data/translator.html
CHANGED
@@ -64,20 +64,22 @@ exclude_from_search: true
|
|
64
64
|
{% comment %} i18n: translations
|
65
65
|
-------------------------------------------------------------------------------- {% endcomment %}
|
66
66
|
|
67
|
-
{% comment %} Modal
|
67
|
+
{% comment %} Modal Google Translator dialog (default: en-EN)
|
68
68
|
-------------------------------------------------------------------------------- {% endcomment %}
|
69
69
|
<div id="google-data-en">
|
70
70
|
<div id="modal-google-translate-en" class="modal-dialog modal-frame modal-top modal-notify modal-primary" role="document">
|
71
71
|
<div class="modal-content">
|
72
72
|
|
73
73
|
<div class="modal-header">
|
74
|
-
<p class="lead">{{translate_options.modal_settings.title.en}}</p>
|
74
|
+
<p class="lead">{{translate_options.google.modal_settings.title.en}}</p>
|
75
75
|
</div>
|
76
76
|
|
77
77
|
<div class="modal-body">
|
78
78
|
<div class="modal-body-text" style="font-size: 90%">
|
79
|
-
<p class="mb-3">{{translate_options.modal_settings.body_text.en}}</p>
|
79
|
+
<p class="mb-3">{{translate_options.google.modal_settings.body_text.en}}</p>
|
80
80
|
</div>
|
81
|
+
<p style="font-size: 90%">{{translate_options.google.modal_settings.language_selector_title.en}}</p>
|
82
|
+
<div id="dropdownJSON" class="mb-4" style="display:none"></div>
|
81
83
|
<p>
|
82
84
|
<a href="#google-privacy" data-toggle="collapse" class="">Privacy Notice</a>
|
83
85
|
<a href="#google-options" data-toggle="collapse" class="float-right">My Settings</a>
|
@@ -85,7 +87,7 @@ exclude_from_search: true
|
|
85
87
|
|
86
88
|
<div id="google-privacy" class="collapse">
|
87
89
|
<div class="modal-body-text" style="font-size: 90%">
|
88
|
-
<p class="mb-4">{{translate_options.modal_settings.privacy_notice.en}}</p>
|
90
|
+
<p class="mb-4">{{translate_options.google.modal_settings.privacy_notice.en}}</p>
|
89
91
|
</div>
|
90
92
|
</div>
|
91
93
|
|
@@ -148,16 +150,16 @@ exclude_from_search: true
|
|
148
150
|
</div>
|
149
151
|
|
150
152
|
<div class="modal-footer">
|
151
|
-
<button id="translator-buttonDoNotAgree" type="button" class="btn btn-link text-decoration-none" style="">
|
152
|
-
No,
|
153
|
+
<button id="translator-buttonDoNotAgree" type="button" class="btn btn-link text-decoration-none" style="min-width: 20rem">
|
154
|
+
No, skip translation
|
153
155
|
</button>
|
154
|
-
<button id="translator-buttonAgree" type="button" class="btn btn-primary btn-raised" style="">
|
156
|
+
<button id="translator-buttonAgree" type="button" class="btn btn-primary btn-raised" style="min-width: 20rem">
|
155
157
|
Yes, please translate
|
156
158
|
</button>
|
157
|
-
<button id="translator-buttonSave" type="button" class="btn btn-primary" style="display:
|
159
|
+
<button id="translator-buttonSave" type="button" class="btn btn-primary" style="display:none; min-width: 20rem">
|
158
160
|
Save selection
|
159
161
|
</button>
|
160
|
-
<button id="translator-buttonAgreeAll" type="button" class="btn btn-primary btn-raised" style="display:
|
162
|
+
<button id="translator-buttonAgreeAll" type="button" class="btn btn-primary btn-raised" style="display:none; min-width: 20rem">
|
161
163
|
I Agree on all
|
162
164
|
</button>
|
163
165
|
</div>
|
@@ -166,21 +168,23 @@ exclude_from_search: true
|
|
166
168
|
</div>
|
167
169
|
</div>
|
168
170
|
|
169
|
-
{% comment %} END Modal
|
171
|
+
{% comment %} END Modal Google Translator dialog (en-EN)
|
170
172
|
-------------------------------------------------------------------------------- {% endcomment %}
|
171
173
|
|
172
|
-
{% comment %} Modal
|
174
|
+
{% comment %} Modal Google Translator dialog (de-DE)
|
173
175
|
-------------------------------------------------------------------------------- {% endcomment %}
|
174
176
|
<div id="google-data-de">
|
175
177
|
<div id="modal-google-translate-de" class="modal-dialog modal-frame modal-top modal-notify modal-primary" role="document">
|
176
178
|
<div class="modal-content">
|
177
179
|
<div class="modal-header">
|
178
|
-
<p class="lead">{{translate_options.modal_settings.title.de}}</p>
|
180
|
+
<p class="lead">{{translate_options.google.modal_settings.title.de}}</p>
|
179
181
|
</div>
|
180
182
|
<div class="modal-body">
|
181
183
|
<div class="modal-body-text" style="font-size: 90%">
|
182
|
-
<p class="mb-4">{{translate_options.modal_settings.body_text.de}}</p>
|
184
|
+
<p class="mb-4">{{translate_options.google.modal_settings.body_text.de}}</p>
|
183
185
|
</div>
|
186
|
+
<p style="font-size: 90%">{{translate_options.google.modal_settings.language_selector_title.de}}</p>
|
187
|
+
<div id="dropdownJSON" class="mb-4" style="display:none"></div>
|
184
188
|
<p>
|
185
189
|
<a href="#google-privacy" data-toggle="collapse" class="">Datenschutzerklärung</a>
|
186
190
|
<a href="#google-options" data-toggle="collapse" class="float-right">Meine Einstellungen</a>
|
@@ -188,7 +192,7 @@ exclude_from_search: true
|
|
188
192
|
|
189
193
|
<div id="google-privacy" class="collapse">
|
190
194
|
<div class="modal-body-text" style="font-size: 90%">
|
191
|
-
<p class="mb-4">{{translate_options.modal_settings.privacy_notice.de}}</p>
|
195
|
+
<p class="mb-4">{{translate_options.google.modal_settings.privacy_notice.de}}</p>
|
192
196
|
</div>
|
193
197
|
</div>
|
194
198
|
|
@@ -261,16 +265,16 @@ exclude_from_search: true
|
|
261
265
|
</div>
|
262
266
|
|
263
267
|
<div class="modal-footer">
|
264
|
-
<button id="translator-buttonDoNotAgree" type="button" class="btn btn-link text-decoration-none" style="">
|
265
|
-
Nein,
|
268
|
+
<button id="translator-buttonDoNotAgree" type="button" class="btn btn-link text-decoration-none" style="min-width: 20rem">
|
269
|
+
Nein, keine Übersetzung
|
266
270
|
</button>
|
267
|
-
<button id="translator-buttonAgree" type="button" class="btn btn-primary btn-raised" style="">
|
271
|
+
<button id="translator-buttonAgree" type="button" class="btn btn-primary btn-raised" style="min-width: 20rem">
|
268
272
|
Ja, bitte übersetzen
|
269
273
|
</button>
|
270
|
-
<button id="translator-buttonSave" type="button" class="btn btn-primary" style="display:
|
274
|
+
<button id="translator-buttonSave" type="button" class="btn btn-primary" style="display:none; min-width: 20rem">
|
271
275
|
Auswahl speichern
|
272
276
|
</button>
|
273
|
-
<button id="translator-buttonAgreeAll" type="button" class="btn btn-primary btn-raised" style="display:
|
277
|
+
<button id="translator-buttonAgreeAll" type="button" class="btn btn-primary btn-raised" style="display:none; min-width: 20rem">
|
274
278
|
Allen zustimmen
|
275
279
|
</button>
|
276
280
|
</div>
|
@@ -278,7 +282,7 @@ exclude_from_search: true
|
|
278
282
|
</div>
|
279
283
|
</div>
|
280
284
|
</div>
|
281
|
-
{% comment %} END Modal
|
285
|
+
{% comment %} END Modal Google Translator dialog (de-DE)
|
282
286
|
-------------------------------------------------------------------------------- {% endcomment %}
|
283
287
|
|
284
288
|
{% endcapture %}
|
@@ -109,20 +109,23 @@ j1.adapter['translator'] = (function (j1, window) {
|
|
109
109
|
// ---------------------------------------------------------------------------
|
110
110
|
// helper functions
|
111
111
|
// ---------------------------------------------------------------------------
|
112
|
+
|
113
|
+
// ---------------------------------------------------------------------------
|
114
|
+
// setCookie()
|
115
|
+
// writes a flat cookie (not using an encoded JSON string)
|
116
|
+
// ---------------------------------------------------------------------------
|
112
117
|
function setCookie(options /*cName, cValue, expDays*/) {
|
113
|
-
var defaults = {
|
118
|
+
var defaults = {};
|
119
|
+
var settings;
|
120
|
+
|
121
|
+
defaults = {
|
114
122
|
name: '',
|
115
123
|
path: '/',
|
116
124
|
expires: 0,
|
117
125
|
domain: 'localhost'
|
118
126
|
};
|
119
|
-
|
127
|
+
settings = $.extend(defaults, options);
|
120
128
|
|
121
|
-
var date = new Date();
|
122
|
-
date.setTime(date.getTime() + (settings.expires * 24 * 60 * 60 * 1000));
|
123
|
-
const expires = "expires=" + date.toUTCString();
|
124
|
-
// document.cookie = cName + "=" + cValue + "; " + expires + "; path=/";
|
125
|
-
// document.cookie = settings.name + "=" + settings.data + "; " + expires + "; path=/";
|
126
129
|
document.cookie = settings.name + "=" + settings.data + "; path=/";
|
127
130
|
};
|
128
131
|
|
@@ -249,17 +252,18 @@ j1.adapter['translator'] = (function (j1, window) {
|
|
249
252
|
});
|
250
253
|
|
251
254
|
j1.translator = new Translator({
|
252
|
-
contentURL:
|
253
|
-
cookieName:
|
254
|
-
cookieConsentName:
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
255
|
+
contentURL: moduleOptions.contentURL, // dialog content (modals) for all supported languages
|
256
|
+
cookieName: moduleOptions.cookieName, // the name of the User State Cookie (primary data)
|
257
|
+
cookieConsentName: moduleOptions.cookieConsentName, // the name of the Cookie Consent Cookie (secondary data)
|
258
|
+
disableLanguageSelector: moduleOptions.disableLanguageSelector, // disable language dropdown for translation in dialog (modal)
|
259
|
+
dialogContainerID: moduleOptions.dialogContainerID, // dest container, the dialog modal is loaded (dynamically)
|
260
|
+
dialogLanguage: moduleOptions.dialogLanguage, // language for the dialog (modal)
|
261
|
+
translationLanguage: moduleOptions.translationLanguage, // default language for translation
|
262
|
+
translationLanguages: moduleOptions.google.translationLanguages,// supported languages for translation
|
263
|
+
translationEnabled: moduleOptions.translationEnabled, // run translation enabled|disabled
|
264
|
+
translatorName: moduleOptions.translatorName, // translator used for translation
|
265
|
+
xhrDataElement: moduleOptions.xhrDataElement, // container for all language-specific dialogs (modals)
|
266
|
+
postSelectionCallback: moduleOptions.google.postSelectionCallback
|
263
267
|
});
|
264
268
|
|
265
269
|
if (user_consent.analysis && user_consent.personalization && user_translate.translationEnabled) {
|
@@ -270,9 +274,6 @@ j1.adapter['translator'] = (function (j1, window) {
|
|
270
274
|
} else {
|
271
275
|
if (moduleOptions.translatorName === 'google') {
|
272
276
|
j1.removeCookie({name: 'googtrans'});
|
273
|
-
// j1.removeCookie({name: 'CONSENT'});
|
274
|
-
// j1.removeCookie({name: 'NID'});
|
275
|
-
// j1.removeCookie({name: 'OTZ'});
|
276
277
|
}
|
277
278
|
}
|
278
279
|
|
@@ -328,29 +329,37 @@ j1.adapter['translator'] = (function (j1, window) {
|
|
328
329
|
}, // END getState
|
329
330
|
|
330
331
|
// -------------------------------------------------------------------------
|
331
|
-
//
|
332
|
-
// Called by the translator CORE module after the user
|
333
|
-
// made
|
332
|
+
// cbGoogle()
|
333
|
+
// Called by the translator CORE module after the user
|
334
|
+
// has made the lanuage selection for translation (callback)
|
334
335
|
// -------------------------------------------------------------------------
|
335
|
-
|
336
|
+
cbGoogle: function () {
|
336
337
|
var cookie_names = j1.getCookieNames();
|
337
338
|
var user_state = j1.readCookie(cookie_names.user_state);
|
338
339
|
var user_consent = j1.readCookie(cookie_names.user_consent);
|
339
340
|
var user_translate = j1.readCookie(cookie_names.user_translate);
|
341
|
+
var msDropdownLang = document.getElementById('dropdownJSON').msDropdown;
|
342
|
+
var msDropdown = document.getElementById('dropdownJSON').msDropdown;
|
340
343
|
var head;
|
341
344
|
var script;
|
342
345
|
var srcLang;
|
343
346
|
var destLang;
|
344
347
|
var transCode;
|
345
348
|
var cookie_written;
|
349
|
+
var htmlScriptElement;
|
350
|
+
var selectedTranslationLanguage;
|
346
351
|
|
347
352
|
logger.info('\n' + 'entered post selection callback from google_translate');
|
348
353
|
logger.debug('\n' + 'current values from cookie consent: ' + JSON.stringify(user_consent));
|
349
354
|
logger.debug('\n' + 'current values from user state: ' + JSON.stringify(user_state));
|
350
355
|
|
356
|
+
selectedTranslationLanguage = msDropdownLang.value;
|
357
|
+
logger.info('\n' + 'selected translation language: ' + selectedTranslationLanguage);
|
358
|
+
|
351
359
|
// update cookie consent settings
|
352
|
-
user_consent.analysis
|
353
|
-
user_consent.personalization
|
360
|
+
user_consent.analysis = user_translate.analysis;
|
361
|
+
user_consent.personalization = user_translate.personalization;
|
362
|
+
|
354
363
|
cookie_written = j1.writeCookie({
|
355
364
|
name: cookie_names.user_consent,
|
356
365
|
data: user_consent,
|
@@ -359,35 +368,13 @@ j1.adapter['translator'] = (function (j1, window) {
|
|
359
368
|
expires: 0
|
360
369
|
});
|
361
370
|
|
371
|
+
// translation allowed
|
362
372
|
if (user_consent.analysis && user_consent.personalization) {
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
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();
|
383
|
-
|
384
|
-
// $('.dropcap').children('span').removeClass('j1-dropcap');
|
385
|
-
// $('.paragraph.dropcap').parent().find('p').removeClass('j1-dropcap');
|
386
|
-
|
387
|
-
head = document.getElementsByTagName('head')[0];
|
388
|
-
script = document.createElement('script');
|
389
|
-
script.id = 'google-translate';
|
390
|
-
script.src = '//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit';
|
373
|
+
head = document.getElementsByTagName('head')[0];
|
374
|
+
script = document.createElement('script');
|
375
|
+
script.id = 'google-translate';
|
376
|
+
script.src = '//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit';
|
377
|
+
htmlScriptElement = document.getElementById(script.id);
|
391
378
|
|
392
379
|
if (user_translate.translationEnabled && moduleOptions.translatorName === 'google') {
|
393
380
|
head.appendChild(script);
|
@@ -396,11 +383,12 @@ j1.adapter['translator'] = (function (j1, window) {
|
|
396
383
|
$('google_translate_element').hide();
|
397
384
|
}
|
398
385
|
|
386
|
+
// set transCode settings
|
399
387
|
srcLang = "{{site.language}}";
|
400
388
|
destLang = translation_language;
|
401
|
-
transCode = '/' + srcLang + '/' +
|
389
|
+
transCode = '/' + srcLang + '/' + selectedTranslationLanguage;
|
402
390
|
|
403
|
-
// set
|
391
|
+
// set the transCode cookie (googtrans)
|
404
392
|
setCookie({
|
405
393
|
name: 'googtrans',
|
406
394
|
data: transCode
|
@@ -410,9 +398,9 @@ j1.adapter['translator'] = (function (j1, window) {
|
|
410
398
|
if ($('#quickLinksTranslateButton').css('display') === 'none') {
|
411
399
|
$('#quickLinksTranslateButton').css('display', 'block');
|
412
400
|
}
|
401
|
+
} else { // translation NOT allowed
|
413
402
|
|
414
|
-
|
415
|
-
|
403
|
+
// update cookie user translate settings
|
416
404
|
user_translate.translationEnabled = false;
|
417
405
|
cookie_written = j1.writeCookie({
|
418
406
|
name: cookie_names.user_translate,
|
@@ -421,31 +409,20 @@ j1.adapter['translator'] = (function (j1, window) {
|
|
421
409
|
secure: secure
|
422
410
|
});
|
423
411
|
|
424
|
-
|
425
|
-
|
426
|
-
if (el) { el.remove(); }
|
427
|
-
|
428
|
-
el = document.getElementById('google_translate_element');
|
429
|
-
if (el) { el.remove(); }
|
430
|
-
|
412
|
+
// stop translation for all pages
|
413
|
+
if (htmlScriptElement) { htmlScriptElement.remove(); }
|
431
414
|
j1.removeCookie({name: 'googtrans'});
|
432
|
-
// j1.removeCookie({name: '1P_JAR'});
|
433
|
-
// j1.removeCookie({name: 'CONSENT'});
|
434
|
-
// j1.removeCookie({name: 'NID'});
|
435
415
|
}
|
436
|
-
|
437
416
|
}
|
438
417
|
|
418
|
+
// translation NOT allowed
|
439
419
|
if (!user_translate.analysis || !user_translate.personalization) {
|
440
420
|
head = document.getElementsByTagName('head')[0];
|
441
421
|
script = document.createElement('script');
|
442
422
|
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
423
|
|
447
424
|
// update cookie consent settings
|
448
|
-
user_consent.analysis
|
425
|
+
user_consent.analysis = user_translate.analysis;
|
449
426
|
user_consent.personalization = user_translate.personalization;
|
450
427
|
cookie_written = j1.writeCookie({
|
451
428
|
name: cookie_names.user_consent,
|
@@ -455,6 +432,7 @@ j1.adapter['translator'] = (function (j1, window) {
|
|
455
432
|
expires: 0
|
456
433
|
});
|
457
434
|
|
435
|
+
// update cookie user translate settings
|
458
436
|
user_translate.translationEnabled = false;
|
459
437
|
cookie_written = j1.writeCookie({
|
460
438
|
name: cookie_names.user_translate,
|
@@ -464,11 +442,8 @@ j1.adapter['translator'] = (function (j1, window) {
|
|
464
442
|
expires: 0
|
465
443
|
});
|
466
444
|
|
467
|
-
|
468
|
-
|
469
|
-
el = document.getElementById('google_translate_element');
|
470
|
-
if (el) { el.remove(); }
|
471
|
-
|
445
|
+
// stop translation for all pages
|
446
|
+
if (htmlScriptElement) { htmlScriptElement.remove(); }
|
472
447
|
j1.removeCookie({name: 'googtrans'});
|
473
448
|
}
|
474
449
|
|
@@ -482,7 +457,18 @@ j1.adapter['translator'] = (function (j1, window) {
|
|
482
457
|
$('#quickLinksTranslateButton').css('display', 'none');
|
483
458
|
}
|
484
459
|
|
485
|
-
} // END
|
460
|
+
}, // END cbGoogle
|
461
|
+
|
462
|
+
// -------------------------------------------------------------------------
|
463
|
+
// cbDeepl()
|
464
|
+
// Called by the translator CORE module after the user
|
465
|
+
// has made the lanuage selection for translation (callback)
|
466
|
+
// -------------------------------------------------------------------------
|
467
|
+
cbDeepl: function () {
|
468
|
+
|
469
|
+
// code for post procession on Deepl translations
|
470
|
+
|
471
|
+
} // END cbDeepl
|
486
472
|
|
487
473
|
}; // END return
|
488
474
|
})(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; }
|