WIP
This commit is contained in:
parent
42c9987bed
commit
c7736e33ba
69
twitch/chatguessr.js
Normal file
69
twitch/chatguessr.js
Normal file
@ -0,0 +1,69 @@
|
||||
(function() {
|
||||
var isOpen = false,
|
||||
guesses = {};
|
||||
|
||||
function DBsetOpen(open) {
|
||||
$.inidb.SetBoolean("chatguessr", "isOpen", "", open);
|
||||
isOpen = open;
|
||||
sendData('status',open);
|
||||
}
|
||||
|
||||
function DBClearG() {
|
||||
guesses = {};
|
||||
$.inidb.SetString("chatguessr", "guesses", JSON.stringify(guesses));
|
||||
sendData('guesses',guesses);
|
||||
}
|
||||
|
||||
function DBAddG(user,position) {
|
||||
if(guesses[user] && guesses[user].length > 0){
|
||||
}else{
|
||||
guesses[user] = position;
|
||||
$.inidb.SetString("chatguessr", "guesses", JSON.stringify(guesses));
|
||||
sendData('guesses',guesses);
|
||||
}
|
||||
}
|
||||
|
||||
function sendData(tpe, data) {
|
||||
$.panelsocketserver.sendJSONToAll(JSON.stringify({
|
||||
'eventFamily': 'chatguessr',
|
||||
'eventType': tpe,
|
||||
'data': data
|
||||
}));
|
||||
}
|
||||
|
||||
$.bind('command', function(event) {
|
||||
|
||||
const sender = "" + event.getSender().toLowerCase(),
|
||||
command = event.getCommand(),
|
||||
args = event.getArgs(),
|
||||
action = args[0];
|
||||
|
||||
if (command.equalsIgnoreCase('g')) {
|
||||
if(isOpen) DBAddG(sender,args);
|
||||
}else if (command.equalsIgnoreCase('cg')) {
|
||||
if (!action) {
|
||||
$.say($.whisperPrefix(sender) + $.lang.get('chatguessr.help', ' Use "!cg [open | close | ...]" to open/close the feature.'));
|
||||
} else if (action.equalsIgnoreCase('open')) {
|
||||
if(!isOpen) DBsetOpen(true);
|
||||
} else if (action.equalsIgnoreCase('close')) {
|
||||
if(isOpen) DBsetOpen(false);
|
||||
} else if (action.equalsIgnoreCase('clear')) {
|
||||
DBClearG();
|
||||
} else if (action.equalsIgnoreCase('timer')) {
|
||||
sendData(action, new Date(Date.now().getTime()+value*1000*60));
|
||||
} else {
|
||||
$.say($.whisperPrefix(sender) + $.lang.get('chatguessr.help'));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
$.bind('initReady', function() {
|
||||
$.registerChatCommand('./custom/custom/chatguessr.js', 'cg');
|
||||
$.registerChatCommand('./custom/custom/chatguessr.js', 'g',7);
|
||||
|
||||
$.registerChatSubcommand('cg', 'open', 2);
|
||||
$.registerChatSubcommand('cg', 'close', 2);
|
||||
$.registerChatSubcommand('cg', 'clear', 2);
|
||||
});
|
||||
|
||||
})();
|
1730
web/chatguessr/SRC_CG.js
Normal file
1730
web/chatguessr/SRC_CG.js
Normal file
File diff suppressed because it is too large
Load Diff
51
web/chatguessr/index.html
Normal file
51
web/chatguessr/index.html
Normal file
@ -0,0 +1,51 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<title>GeoGuess</title>
|
||||
<meta charset="utf-8">
|
||||
<!-- Load our styles -->
|
||||
<link rel="stylesheet" href="styles.css"/>
|
||||
<link rel="stylesheet" href="https://code.jquery.com/ui/1.13.1/themes/ui-darkness/jquery-ui.css"/>
|
||||
|
||||
</head>
|
||||
|
||||
<!-- Main body -->
|
||||
<body>
|
||||
<div class="main fit">
|
||||
<div id="all" class="card">
|
||||
<div class="heading p-1">
|
||||
<div class="btn-primary btn p-1" id="showhide"><span class="ui-icon ui-icon-transferthick-e-w"></span></div>
|
||||
<!-- <div class="btn-primary btn p-1" id="settings"><span class="ui-icon ui-icon-transferthick-e-w"></span></div> -->
|
||||
</div>
|
||||
<div class="containing px-4 py-2" style="max-width:500px;min-width:400px">
|
||||
<table class="table table-dark table-auto w-100 no-overflow">
|
||||
<thead><tr><th>#</th><th>User</th><th>Distance</th><th>Score</th></tr></thead>
|
||||
<tbody id="datatab">
|
||||
<tr><td>1</td><td>sora</td><td>1230</td><td>1230</td></tr>
|
||||
<tr><td>2</td><td>Sorb</td><td>1230</td><td>1230</td></tr>
|
||||
<tr><td>3</td><td>Sorc</td><td>1230</td><td>1230</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="timer"></div>
|
||||
</div>
|
||||
<!-- jQuery -->
|
||||
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
|
||||
<!-- Load jQuery UI -->
|
||||
<script src="https://code.jquery.com/ui/1.13.1/jquery-ui.min.js"></script>
|
||||
<!-- Load Reconnecting socket -->
|
||||
<script src="/common/reconnecting-websocket/reconnectingWS.min.js"></script>
|
||||
<!-- Load Bot config file -->
|
||||
<script src="/common/js/wsConfig.js"></script>
|
||||
|
||||
<!-- Load functions copied out of panel dir, since can't directly read panel dir (http auth problem) -->
|
||||
<script src="/custom/js/socketWrapper.js"></script>
|
||||
|
||||
<!-- Load our script -->
|
||||
<script src="index.js"></script>
|
||||
</body>
|
||||
</html>
|
126
web/chatguessr/index.js
Normal file
126
web/chatguessr/index.js
Normal file
@ -0,0 +1,126 @@
|
||||
$(function () {
|
||||
const webSocket = window.socket;
|
||||
var guesses = {},
|
||||
status = '-',
|
||||
hidden = false;
|
||||
|
||||
const getQueryMap = () => {
|
||||
let queryString = window.location.search,
|
||||
queryParts = queryString.substring(1).split('&'),
|
||||
queryMap = new Map();
|
||||
|
||||
for (let part of queryParts) {
|
||||
let key = part.substring(0, part.indexOf('=')),
|
||||
value = part.substring(part.indexOf('=') + 1, part.length);
|
||||
if (key.length > 0 && value.length > 0) queryMap.set(key, value);
|
||||
}
|
||||
return queryMap;
|
||||
}
|
||||
Map.prototype.getOrElse = (option, def) => queryMap.has(option) ? queryMap.get(option): def;
|
||||
const queryMap = getQueryMap();
|
||||
|
||||
|
||||
|
||||
$('#showhide').on('click',()=>{
|
||||
if(hidden){
|
||||
$('.containing').show();
|
||||
hidden = false;
|
||||
}else{
|
||||
$('.containing').hide();
|
||||
hidden = true;
|
||||
}
|
||||
})
|
||||
|
||||
const computeScore = (pos) => {
|
||||
return 0;
|
||||
}
|
||||
const fillTable = ()=> {
|
||||
$('#datatab > tr').remove();
|
||||
var html = '';
|
||||
for (let user in Object.keys(guesses))
|
||||
html += '<tr><td>' + user + '</td><td>' + computeScore(guesses[user]) + '</td></tr>';
|
||||
$('#datatab').html(html);
|
||||
}
|
||||
|
||||
const refreshUI = () => {
|
||||
// if(queryMap.getOrElse('single',false)){
|
||||
// $('#all').show(); $('#timer').hide(); $('#goal').hide();
|
||||
// $('#follow').parent().closest('div').hide(); $('#subscribe').parent().closest('div').hide(); $('#donate').parent().closest('div').hide();
|
||||
// if(queryMap.getOrElse('follow',false)) $('#follow').parent().closest('div').show();
|
||||
// if(queryMap.getOrElse('subscribe',false)) $('#subscribe').parent().closest('div').show();
|
||||
// if(queryMap.getOrElse('donate',false)) $('#donate').parent().closest('div').show();
|
||||
// }else if(queryMap.getOrElse('goal',false)){
|
||||
// $('#all').hide(); $('#timer').hide(); $('#goal').show();
|
||||
// $('#cfollow').parent().closest('div').hide(); $('#csubscribe').parent().closest('div').hide();
|
||||
// if(queryMap.getOrElse('follow',false)) $('#cfollow').parent().closest('div').show();
|
||||
// if(queryMap.getOrElse('subscribe',false)) $('#csubscribe').parent().closest('div').show();
|
||||
// }
|
||||
|
||||
// $('#follow').text(lastFollow);
|
||||
// $('#subscribe').text(lastSub);
|
||||
// $('#donate').text(lastDonator);
|
||||
// $('#cfollow').parent().closest('div').progressbar({ value : countFollow/parseInt(queryMap.getOrElse('follow',9999))*100 });
|
||||
// $('#csubscribe').parent().closest('div').progressbar({ value : countSub/parseInt(queryMap.getOrElse('subscribe',9999))*100});
|
||||
// $('#cfollow').text(`${countFollow} / ${queryMap.getOrElse('follow',9999)}`);
|
||||
// $('#csubscribe').text(`${countSub} / ${queryMap.getOrElse('subscribe',9999)}`);
|
||||
}
|
||||
|
||||
const handleSocketMessage = (e)=>{
|
||||
try {
|
||||
let rawMessage = e.data,
|
||||
message = JSON.parse(rawMessage);
|
||||
|
||||
if(!message.hasOwnProperty('eventFamily') || message.eventFamily != 'chatguessr' ||
|
||||
!message.hasOwnProperty('eventType') || !message.hasOwnProperty('data'))
|
||||
return;
|
||||
|
||||
console.log(message.eventType, message.data)
|
||||
if(message.eventType == 'follow') {
|
||||
lastFollow = message.data || lastFollow;
|
||||
countFollow++;
|
||||
} else if(message.eventType == 'subscribe') {
|
||||
lastSub = message.data || lastSub;
|
||||
countSub++;
|
||||
} else if(message.eventType == 'donation') {
|
||||
lastDonator = message.data || lastDonator;
|
||||
} else if(message.eventType == 'timer') {
|
||||
console.log("New timer !! ", message.data)
|
||||
}
|
||||
refreshUI();
|
||||
} catch (ex) {
|
||||
console.log(ex)
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
jQuery(async ()=>{
|
||||
refreshUI();
|
||||
try{
|
||||
socket.addFamilyHandler("chatguessr", handleSocketMessage);
|
||||
if(socket){
|
||||
while(socket.getReadyState() === 0){
|
||||
await new Promise(r => setTimeout(r, 500));
|
||||
}
|
||||
// socket.getDBValue("get_current_stream_info_lastFollow", 'streamInfo', 'lastFollow', (response)=>{
|
||||
// if(response.streamInfo) lastFollow = response.streamInfo || lastFollow;
|
||||
// refreshUI();
|
||||
// })
|
||||
// socket.getDBValue("get_current_stream_info_lastSub", 'streamInfo', 'lastSub', (response)=>{
|
||||
// if(response.streamInfo) lastSub = response.streamInfo || lastSub;
|
||||
// refreshUI();
|
||||
// })
|
||||
// socket.getDBValue("get_current_stream_info_lastDonator", 'streamInfo', 'lastDonator', (response)=>{
|
||||
// if(response.streamInfo) lastDonator = response.streamInfo || lastDonator;
|
||||
// refreshUI();
|
||||
// })
|
||||
// socket.getDBValue('get_current_stream_info_counts', 'panelData', 'stream', (e)=>{
|
||||
// let data = JSON.parse(e.panelData);
|
||||
// countFollow = data.followers || countFollow;
|
||||
// countSub = 0;
|
||||
// refreshUI();
|
||||
// })
|
||||
}
|
||||
}catch(e) {console.log(e)}
|
||||
})
|
||||
|
||||
});
|
790
web/chatguessr/styles.css
Normal file
790
web/chatguessr/styles.css
Normal file
@ -0,0 +1,790 @@
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
--nord0: #2e3440;
|
||||
--nord1: #3b4252;
|
||||
--nord2: #434c5e;
|
||||
--nord3: #4c566a;
|
||||
--nord4: #d8dee9;
|
||||
--nord5: #e5e9f0;
|
||||
--nord6: #eceff4;
|
||||
--nord7: #8fbcbb;
|
||||
--nord8: #88c0d0;
|
||||
--nord9: #81a1c1;
|
||||
--blue: #5e81ac;
|
||||
--red: #bf616a;
|
||||
--orange: #d08770;
|
||||
--yellow: #ebcb8b;
|
||||
--green: #a3be8c;
|
||||
--purple: #b48ead;
|
||||
|
||||
--fonts: 'IBMPlex Mono', sans-serif;
|
||||
}
|
||||
|
||||
html,
|
||||
body {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
font-family: var(--fonts);
|
||||
/* background-color: var(--nord0); */
|
||||
color: var(--nord4);
|
||||
}
|
||||
|
||||
a,
|
||||
a:visited {
|
||||
color: var(--nord7);
|
||||
text-decoration: none !important;
|
||||
}
|
||||
a:hover {
|
||||
color: var(--blue) !important;
|
||||
}
|
||||
|
||||
.red a:hover,
|
||||
.red {
|
||||
color: var(--red);
|
||||
}
|
||||
|
||||
.purple a:hover,
|
||||
.purple {
|
||||
color: var(--purple);
|
||||
}
|
||||
|
||||
.green a:hover,
|
||||
.green {
|
||||
color: var(--green);
|
||||
}
|
||||
|
||||
.yellow a:hover,
|
||||
.yellow {
|
||||
color: var(--yellow);
|
||||
}
|
||||
|
||||
.blue a:hover,
|
||||
.blue {
|
||||
color: var(--blue);
|
||||
}
|
||||
|
||||
.pointer {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.ui-progressbar-value {
|
||||
height:100%;
|
||||
position:absolute;
|
||||
background-color: var(--blue);
|
||||
border-radius: 0.25rem;
|
||||
z-index: 0;
|
||||
left:0;
|
||||
}
|
||||
|
||||
.no-border {
|
||||
border:none!important;
|
||||
}
|
||||
|
||||
img {
|
||||
object-fit:cover;
|
||||
background-color: var(--nord3);
|
||||
box-shadow: 8px 8px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
img.no-bg {
|
||||
background-color: transparent;
|
||||
box-shadow: none;
|
||||
}
|
||||
.fit {
|
||||
width:fit-content;
|
||||
height:fit-content;
|
||||
}
|
||||
|
||||
.img-wrap {
|
||||
display: inline-block; width: 100%; height: 100%;
|
||||
width:fit-content;
|
||||
height:fit-content;
|
||||
overflow:hidden;
|
||||
}
|
||||
.img-wrap > div:first-child, .img-wrap > span:first-child {
|
||||
position: static !important
|
||||
}
|
||||
.img-wrap > div > img, .img-wrap > span > img {
|
||||
position: inherit !important;
|
||||
width:auto !important;
|
||||
height:auto !important;
|
||||
margin:0!important;
|
||||
}
|
||||
|
||||
form {
|
||||
margin: 1.5em auto 1em auto;
|
||||
display:block;
|
||||
width:400px;
|
||||
|
||||
}
|
||||
input {
|
||||
width: 100%;
|
||||
padding: 0.5em;
|
||||
border:none;
|
||||
border-radius:0;
|
||||
background-color: var(--nord1);
|
||||
color: var(--nord4);
|
||||
box-shadow: 8px 8px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.card {
|
||||
scrollbar-color: var(--nord4) var(--nord1);
|
||||
scrollbar-width: thin;
|
||||
box-shadow: 8px 8px rgba(0, 0, 0, 0.2);
|
||||
background-color: var(--nord1);
|
||||
}
|
||||
|
||||
header {
|
||||
padding-bottom: 8px;
|
||||
font-weight: bold;
|
||||
cursor: pointer;
|
||||
}
|
||||
sub{
|
||||
font-weight:normal;
|
||||
font-size:0.7em;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
article>hr{
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
.tshadow{
|
||||
text-shadow: 0 0 0.25em var(--nord0);
|
||||
}
|
||||
|
||||
.opacity-4{opacity:0.4;}
|
||||
.opacity-5{opacity:0.5;}
|
||||
.grayscale-5{filter: grayscale(50%);}
|
||||
.grayscale{filter: grayscale(100%);}
|
||||
.index-100{z-index:100;}
|
||||
|
||||
/* purgecss end ignore */
|
||||
|
||||
.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}
|
||||
.h1,h1{font-size:calc(1.375rem + 1.5vw)}
|
||||
.h2,h2{font-size:calc(1.325rem + .9vw)}
|
||||
.h3,h3{font-size:calc(1.3rem + .6vw)}
|
||||
.h4,h4{font-size:calc(1.275rem + .3vw)}
|
||||
.h5,h5{font-size:1.25rem}
|
||||
.h6,h6{font-size:1rem}
|
||||
p{margin-top:0;margin-bottom:1rem}
|
||||
abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}
|
||||
address{margin-bottom:1rem;font-style:normal;line-height:inherit}
|
||||
ol,ul{padding-left:2rem}
|
||||
dl,ol,ul{margin-top:0;margin-bottom:1rem}
|
||||
ol ol,ol ul,ul ol,ul ul{margin-bottom:0}
|
||||
dt{font-weight:700}
|
||||
dd{margin-bottom:.5rem;margin-left:0}
|
||||
blockquote{margin:0 0 1rem}
|
||||
b,strong{font-weight:bolder}
|
||||
|
||||
|
||||
.small,small{font-size:.875em}
|
||||
.mark,mark{padding:.2em;background-color:--red}
|
||||
sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}
|
||||
sub{bottom:-.25em}
|
||||
sup{top:-.5em}
|
||||
|
||||
a:not([href]):not([class]),
|
||||
a:not([href]):not([class]):hover{color:inherit;text-decoration:none}
|
||||
code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em;direction:ltr;unicode-bidi:bidi-override}
|
||||
pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}
|
||||
pre code{font-size:inherit;color:inherit;word-break:normal}
|
||||
code{font-size:.875em;color:var(--nord9);word-wrap:break-word}
|
||||
a>code{color:inherit}
|
||||
kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}
|
||||
kbd kbd{padding:0;font-size:1em;font-weight:700}
|
||||
figure{margin:0 0 1rem}
|
||||
img,svg{vertical-align:middle}
|
||||
table{caption-side:bottom;border-collapse:collapse}
|
||||
caption{padding-top:.5rem;padding-bottom:.5rem;color:var(--nord3);text-align:left}
|
||||
th{text-align:inherit;text-align:-webkit-match-parent}
|
||||
tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}
|
||||
label{display:inline-block}
|
||||
button{border-radius:0}
|
||||
button:focus:not(:focus-visible){outline:0}
|
||||
button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}
|
||||
button,select{text-transform:none}[role=button]{cursor:pointer}
|
||||
select{word-wrap:normal}
|
||||
select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}
|
||||
textarea{resize:vertical}
|
||||
fieldset{min-width:0;padding:0;margin:0;border:0}
|
||||
legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}
|
||||
legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}
|
||||
output{display:inline-block}
|
||||
iframe{border:0}
|
||||
summary{display:list-item;cursor:pointer}
|
||||
progress{vertical-align:baseline}[hidden]{display:none!important}
|
||||
.lead{font-size:1.25rem;font-weight:300}
|
||||
.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}
|
||||
.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}
|
||||
.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}
|
||||
.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}
|
||||
.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}
|
||||
.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}
|
||||
.list-unstyled{padding-left:0;list-style:none}
|
||||
.list-inline{padding-left:0;list-style:none}
|
||||
.list-inline-item{display:inline-block}
|
||||
.list-inline-item:not(:last-child){margin-right:.5rem}
|
||||
.initialism{font-size:.875em;text-transform:uppercase}
|
||||
.blockquote{margin-bottom:1rem;font-size:1.25rem}
|
||||
.blockquote>:last-child{margin-bottom:0}
|
||||
.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}
|
||||
.blockquote-footer::before{content:"— "}
|
||||
.img-fluid{max-width:100%;height:auto}
|
||||
.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}
|
||||
.figure{display:inline-block}
|
||||
.figure-img{margin-bottom:.5rem;line-height:1}
|
||||
.figure-caption{font-size:.875em;color:#6c757d}
|
||||
.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{width:100%;padding-right:var(--bs-gutter-x,.75rem);padding-left:var(--bs-gutter-x,.75rem);margin-right:auto;margin-left:auto}
|
||||
.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(var(--bs-gutter-y) * -1);margin-right:calc(var(--bs-gutter-x) * -.5);margin-left:calc(var(--bs-gutter-x) * -.5)}
|
||||
.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}
|
||||
.col{flex:1 0 0%}
|
||||
.row-cols-auto>*{flex:0 0 auto;width:auto}
|
||||
.row-cols-1>*{flex:0 0 auto;width:100%}
|
||||
.row-cols-2>*{flex:0 0 auto;width:50%}
|
||||
.row-cols-3>*{flex:0 0 auto;width:33.3333333333%}
|
||||
.row-cols-4>*{flex:0 0 auto;width:25%}
|
||||
.row-cols-5>*{flex:0 0 auto;width:20%}
|
||||
.row-cols-6>*{flex:0 0 auto;width:16.6666666667%}
|
||||
.col-auto{flex:0 0 auto;width:auto}
|
||||
.col-1{flex:0 0 auto;width:8.33333333%}
|
||||
.col-2{flex:0 0 auto;width:16.66666667%}
|
||||
.col-3{flex:0 0 auto;width:25%}
|
||||
.col-4{flex:0 0 auto;width:33.33333333%}
|
||||
.col-5{flex:0 0 auto;width:41.66666667%}
|
||||
.col-6{flex:0 0 auto;width:50%}
|
||||
.col-7{flex:0 0 auto;width:58.33333333%}
|
||||
.col-8{flex:0 0 auto;width:66.66666667%}
|
||||
.col-9{flex:0 0 auto;width:75%}
|
||||
.col-10{flex:0 0 auto;width:83.33333333%}
|
||||
.col-11{flex:0 0 auto;width:91.66666667%}
|
||||
.col-12{flex:0 0 auto;width:100%}
|
||||
.offset-1{margin-left:8.33333333%}
|
||||
.offset-2{margin-left:16.66666667%}
|
||||
.offset-3{margin-left:25%}
|
||||
.offset-4{margin-left:33.33333333%}
|
||||
.offset-5{margin-left:41.66666667%}
|
||||
.offset-6{margin-left:50%}
|
||||
.offset-7{margin-left:58.33333333%}
|
||||
.offset-8{margin-left:66.66666667%}
|
||||
.offset-9{margin-left:75%}
|
||||
.offset-10{margin-left:83.33333333%}
|
||||
.offset-11{margin-left:91.66666667%}
|
||||
.g-0,.gx-0{--bs-gutter-x:0}
|
||||
.g-0,.gy-0{--bs-gutter-y:0}
|
||||
.g-1,.gx-1{--bs-gutter-x:0.25rem}
|
||||
.g-1,.gy-1{--bs-gutter-y:0.25rem}
|
||||
.g-2,.gx-2{--bs-gutter-x:0.5rem}
|
||||
.g-2,.gy-2{--bs-gutter-y:0.5rem}
|
||||
.g-3,.gx-3{--bs-gutter-x:1rem}
|
||||
.g-3,.gy-3{--bs-gutter-y:1rem}
|
||||
.g-4,.gx-4{--bs-gutter-x:1.5rem}
|
||||
.g-4,.gy-4{--bs-gutter-y:1.5rem}
|
||||
.g-5,.gx-5{--bs-gutter-x:3rem}
|
||||
.g-5,.gy-5{--bs-gutter-y:3rem}
|
||||
.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}
|
||||
.card>hr{margin-right:0;margin-left:0}
|
||||
.card>.list-group{border-top:inherit;border-bottom:inherit}
|
||||
.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}
|
||||
.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}
|
||||
.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}
|
||||
.card-body{flex:1 1 auto;padding:1rem 1rem}
|
||||
.card-title{margin-bottom:.5rem}
|
||||
.card-subtitle{margin-top:-.25rem;margin-bottom:0}
|
||||
.card-text:last-child{margin-bottom:0}
|
||||
.card-link:hover{text-decoration:none}
|
||||
.card-link+.card-link{margin-left:1rem}
|
||||
.card-header{padding:.5rem 1rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}
|
||||
.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}
|
||||
.card-footer{padding:.5rem 1rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}
|
||||
.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}
|
||||
.card-header-tabs{margin-right:-.5rem;margin-bottom:-.5rem;margin-left:-.5rem;border-bottom:0}
|
||||
.card-header-pills{margin-right:-.5rem;margin-left:-.5rem}
|
||||
.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem;border-radius:calc(.25rem - 1px)}
|
||||
.card-img,.card-img-bottom,.card-img-top{width:100%}
|
||||
.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}
|
||||
.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}
|
||||
.card-group>.card{margin-bottom:.75rem}
|
||||
.card-group>.card{flex:1 0 0%;margin-bottom:0}
|
||||
.card-group>.card+.card{margin-left:0;border-left:0}
|
||||
.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}
|
||||
.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}
|
||||
.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}
|
||||
.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}
|
||||
.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}
|
||||
.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}
|
||||
.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:.75s linear infinite spinner-border;animation:.75s linear infinite spinner-border}
|
||||
.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}
|
||||
.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:.75s linear infinite spinner-grow;animation:.75s linear infinite spinner-grow}
|
||||
.spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{-webkit-animation-duration:1.5s;animation-duration:1.5s}}
|
||||
.offcanvas{position:fixed;bottom:0;z-index:1050;display:flex;flex-direction:column;max-width:100%;visibility:hidden;background-color:#fff;background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}
|
||||
@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}
|
||||
.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1rem}
|
||||
.offcanvas-header .btn-close{padding:.5rem .5rem;margin-top:-.5rem;margin-right:-.5rem;margin-bottom:-.5rem}
|
||||
.offcanvas-title{margin-bottom:0;line-height:1.5}
|
||||
.offcanvas-body{flex-grow:1;padding:1rem 1rem;overflow-y:auto}
|
||||
.offcanvas-start{top:0;left:0;width:400px;border-right:1px solid rgba(0,0,0,.2);transform:translateX(-100%)}
|
||||
.offcanvas-end{top:0;right:0;width:400px;border-left:1px solid rgba(0,0,0,.2);transform:translateX(100%)}
|
||||
.offcanvas-top{top:0;right:0;left:0;height:30vh;max-height:100%;border-bottom:1px solid rgba(0,0,0,.2);transform:translateY(-100%)}
|
||||
.offcanvas-bottom{right:0;left:0;height:30vh;max-height:100%;border-top:1px solid rgba(0,0,0,.2);transform:translateY(100%)}
|
||||
.offcanvas.show{transform:none}
|
||||
.clearfix::after{display:block;clear:both;content:""}
|
||||
.link-primary{color:#0d6efd}
|
||||
.link-primary:focus,.link-primary:hover{color:#0a58ca}
|
||||
.link-secondary{color:#6c757d}
|
||||
.link-secondary:focus,.link-secondary:hover{color:#565e64}
|
||||
.link-success{color:#198754}
|
||||
.link-success:focus,.link-success:hover{color:#146c43}
|
||||
.link-info{color:#0dcaf0}
|
||||
.link-info:focus,.link-info:hover{color:#3dd5f3}
|
||||
.link-warning{color:#ffc107}
|
||||
.link-warning:focus,.link-warning:hover{color:#ffcd39}
|
||||
.link-danger{color:#dc3545}
|
||||
.link-danger:focus,.link-danger:hover{color:#b02a37}
|
||||
.link-light{color:#f8f9fa}
|
||||
.link-light:focus,.link-light:hover{color:#f9fafb}
|
||||
.link-dark{color:#212529}
|
||||
.link-dark:focus,.link-dark:hover{color:#1a1e21}
|
||||
.ratio{position:relative;width:100%}
|
||||
.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}
|
||||
.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}
|
||||
.ratio-1x1{--bs-aspect-ratio:100%}
|
||||
.ratio-4x3{--bs-aspect-ratio:calc(3 / 4 * 100%)}
|
||||
.ratio-16x9{--bs-aspect-ratio:calc(9 / 16 * 100%)}
|
||||
.ratio-21x9{--bs-aspect-ratio:calc(9 / 21 * 100%)}
|
||||
.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}
|
||||
.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}
|
||||
.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}
|
||||
.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
|
||||
.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}
|
||||
.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
||||
.align-baseline{vertical-align:baseline!important}
|
||||
.align-top{vertical-align:top!important}
|
||||
.align-middle{vertical-align:middle!important}
|
||||
.align-bottom{vertical-align:bottom!important}
|
||||
.align-text-bottom{vertical-align:text-bottom!important}
|
||||
.align-text-top{vertical-align:text-top!important}
|
||||
.float-start{float:left!important}
|
||||
.float-end{float:right!important}
|
||||
.float-none{float:none!important}
|
||||
.overflow-auto{overflow:auto!important}
|
||||
.overflow-hidden{overflow:hidden!important}
|
||||
.overflow-visible{overflow:visible!important}
|
||||
.overflow-scroll{overflow:scroll!important}
|
||||
.d-inline{display:inline!important}
|
||||
.d-inline-block{display:inline-block!important}
|
||||
.d-block{display:block!important}
|
||||
.d-grid{display:grid!important}
|
||||
.d-table{display:table!important}
|
||||
.d-table-row{display:table-row!important}
|
||||
.d-table-cell{display:table-cell!important}
|
||||
.d-flex{display:flex!important}
|
||||
.d-inline-flex{display:inline-flex!important}
|
||||
.d-none{display:none!important}
|
||||
.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}
|
||||
.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}
|
||||
.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}
|
||||
.shadow-none{box-shadow:none!important}
|
||||
.position-static{position:static!important}
|
||||
.position-relative{position:relative!important}
|
||||
.position-absolute{position:absolute!important}
|
||||
.position-fixed{position:fixed!important}
|
||||
.position-sticky{position:-webkit-sticky!important;position:sticky!important}
|
||||
.top-0{top:0!important}
|
||||
.top-50{top:50%!important}
|
||||
.top-100{top:100%!important}
|
||||
.bottom-0{bottom:0!important}
|
||||
.bottom-50{bottom:50%!important}
|
||||
.bottom-100{bottom:100%!important}
|
||||
.start-0{left:0!important}
|
||||
.start-50{left:50%!important}
|
||||
.start-100{left:100%!important}
|
||||
.end-0{right:0!important}
|
||||
.end-50{right:50%!important}
|
||||
.end-100{right:100%!important}
|
||||
.translate-middle{transform:translate(-50%,-50%)!important}
|
||||
.translate-middle-x{transform:translateX(-50%)!important}
|
||||
.translate-middle-y{transform:translateY(-50%)!important}
|
||||
.border{border:1px solid #dee2e6!important}
|
||||
.border-0{border:0!important}
|
||||
.border-top{border-top:1px solid #dee2e6!important}
|
||||
.border-top-0{border-top:0!important}
|
||||
.border-end{border-right:1px solid #dee2e6!important}
|
||||
.border-end-0{border-right:0!important}
|
||||
.border-bottom{border-bottom:1px solid #dee2e6!important}
|
||||
.border-bottom-0{border-bottom:0!important}
|
||||
.border-start{border-left:1px solid #dee2e6!important}
|
||||
.border-start-0{border-left:0!important}
|
||||
.border-primary{border-color:#0d6efd!important}
|
||||
.border-secondary{border-color:#6c757d!important}
|
||||
.border-success{border-color:#198754!important}
|
||||
.border-info{border-color:#0dcaf0!important}
|
||||
.border-warning{border-color:#ffc107!important}
|
||||
.border-danger{border-color:#dc3545!important}
|
||||
.border-light{border-color:#f8f9fa!important}
|
||||
.border-dark{border-color:#212529!important}
|
||||
.border-white{border-color:#fff!important}
|
||||
.border-1{border-width:1px!important}
|
||||
.border-2{border-width:2px!important}
|
||||
.border-3{border-width:3px!important}
|
||||
.border-4{border-width:4px!important}
|
||||
.border-5{border-width:5px!important}
|
||||
.w-25{width:25%!important}
|
||||
.w-50{width:50%!important}
|
||||
.w-75{width:75%!important}
|
||||
.w-100{width:100%!important}
|
||||
.w-auto{width:auto!important}
|
||||
.mw-100{max-width:100%!important}
|
||||
.vw-100{width:100vw!important}
|
||||
.min-vw-100{min-width:100vw!important}
|
||||
.h-25{height:25%!important}
|
||||
.h-50{height:50%!important}
|
||||
.h-75{height:75%!important}
|
||||
.h-100{height:100%!important}
|
||||
.h-auto{height:auto!important}
|
||||
.mh-100{max-height:100%!important}
|
||||
.vh-100{height:100vh!important}
|
||||
.min-vh-100{min-height:100vh!important}
|
||||
.flex-fill{flex:1 1 auto!important}
|
||||
.flex-row{flex-direction:row!important}
|
||||
.flex-column{flex-direction:column!important}
|
||||
.flex-row-reverse{flex-direction:row-reverse!important}
|
||||
.flex-column-reverse{flex-direction:column-reverse!important}
|
||||
.flex-grow-0{flex-grow:0!important}
|
||||
.flex-grow-1{flex-grow:1!important}
|
||||
.flex-shrink-0{flex-shrink:0!important}
|
||||
.flex-shrink-1{flex-shrink:1!important}
|
||||
.flex-wrap{flex-wrap:wrap!important}
|
||||
.flex-nowrap{flex-wrap:nowrap!important}
|
||||
.flex-wrap-reverse{flex-wrap:wrap-reverse!important}
|
||||
.gap-0{gap:0!important}
|
||||
.gap-1{gap:.25rem!important}
|
||||
.gap-2{gap:.5rem!important}
|
||||
.gap-3{gap:1rem!important}
|
||||
.gap-4{gap:1.5rem!important}
|
||||
.gap-5{gap:3rem!important}
|
||||
.justify-content-start{justify-content:flex-start!important}
|
||||
.justify-content-end{justify-content:flex-end!important}
|
||||
.justify-content-center{justify-content:center!important}
|
||||
.justify-content-between{justify-content:space-between!important}
|
||||
.justify-content-around{justify-content:space-around!important}
|
||||
.justify-content-evenly{justify-content:space-evenly!important}
|
||||
.align-items-start{align-items:flex-start!important}
|
||||
.align-items-end{align-items:flex-end!important}
|
||||
.align-items-center{align-items:center!important}
|
||||
.align-items-baseline{align-items:baseline!important}
|
||||
.align-items-stretch{align-items:stretch!important}
|
||||
.align-content-start{align-content:flex-start!important}
|
||||
.align-content-end{align-content:flex-end!important}
|
||||
.align-content-center{align-content:center!important}
|
||||
.align-content-between{align-content:space-between!important}
|
||||
.align-content-around{align-content:space-around!important}
|
||||
.align-content-stretch{align-content:stretch!important}
|
||||
.align-self-auto{align-self:auto!important}
|
||||
.align-self-start{align-self:flex-start!important}
|
||||
.align-self-end{align-self:flex-end!important}
|
||||
.align-self-center{align-self:center!important}
|
||||
.align-self-baseline{align-self:baseline!important}
|
||||
.align-self-stretch{align-self:stretch!important}
|
||||
.order-first{order:-1!important}
|
||||
.order-0{order:0!important}
|
||||
.order-1{order:1!important}
|
||||
.order-2{order:2!important}
|
||||
.order-3{order:3!important}
|
||||
.order-4{order:4!important}
|
||||
.order-5{order:5!important}
|
||||
.order-last{order:6!important}
|
||||
.m-0{margin:0!important}
|
||||
.m-1{margin:.25rem!important}
|
||||
.m-2{margin:.5rem!important}
|
||||
.m-3{margin:1rem!important}
|
||||
.m-4{margin:1.5rem!important}
|
||||
.m-5{margin:3rem!important}
|
||||
.m-auto{margin:auto!important}
|
||||
.mx-0{margin-right:0!important;margin-left:0!important}
|
||||
.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}
|
||||
.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}
|
||||
.mx-3{margin-right:1rem!important;margin-left:1rem!important}
|
||||
.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}
|
||||
.mx-5{margin-right:3rem!important;margin-left:3rem!important}
|
||||
.mx-auto{margin-right:auto!important;margin-left:auto!important}
|
||||
.my-0{margin-top:0!important;margin-bottom:0!important}
|
||||
.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}
|
||||
.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}
|
||||
.my-3{margin-top:1rem!important;margin-bottom:1rem!important}
|
||||
.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}
|
||||
.my-5{margin-top:3rem!important;margin-bottom:3rem!important}
|
||||
.my-auto{margin-top:auto!important;margin-bottom:auto!important}
|
||||
.mt-0{margin-top:0!important}
|
||||
.mt-1{margin-top:.25rem!important}
|
||||
.mt-2{margin-top:.5rem!important}
|
||||
.mt-3{margin-top:1rem!important}
|
||||
.mt-4{margin-top:1.5rem!important}
|
||||
.mt-5{margin-top:3rem!important}
|
||||
.mt-auto{margin-top:auto!important}
|
||||
.me-0{margin-right:0!important}
|
||||
.me-1{margin-right:.25rem!important}
|
||||
.me-2{margin-right:.5rem!important}
|
||||
.me-3{margin-right:1rem!important}
|
||||
.me-4{margin-right:1.5rem!important}
|
||||
.me-5{margin-right:3rem!important}
|
||||
.me-auto{margin-right:auto!important}
|
||||
.mb-0{margin-bottom:0!important}
|
||||
.mb-1{margin-bottom:.25rem!important}
|
||||
.mb-2{margin-bottom:.5rem!important}
|
||||
.mb-3{margin-bottom:1rem!important}
|
||||
.mb-4{margin-bottom:1.5rem!important}
|
||||
.mb-5{margin-bottom:3rem!important}
|
||||
.mb-auto{margin-bottom:auto!important}
|
||||
.ms-0{margin-left:0!important}
|
||||
.ms-1{margin-left:.25rem!important}
|
||||
.ms-2{margin-left:.5rem!important}
|
||||
.ms-3{margin-left:1rem!important}
|
||||
.ms-4{margin-left:1.5rem!important}
|
||||
.ms-5{margin-left:3rem!important}
|
||||
.ms-auto{margin-left:auto!important}
|
||||
.p-0{padding:0!important}
|
||||
.p-1{padding:.25rem!important}
|
||||
.p-2{padding:.5rem!important}
|
||||
.p-3{padding:1rem!important}
|
||||
.p-4{padding:1.5rem!important}
|
||||
.p-5{padding:3rem!important}
|
||||
.px-0{padding-right:0!important;padding-left:0!important}
|
||||
.px-1{padding-right:.25rem!important;padding-left:.25rem!important}
|
||||
.px-2{padding-right:.5rem!important;padding-left:.5rem!important}
|
||||
.px-3{padding-right:1rem!important;padding-left:1rem!important}
|
||||
.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}
|
||||
.px-5{padding-right:3rem!important;padding-left:3rem!important}
|
||||
.py-0{padding-top:0!important;padding-bottom:0!important}
|
||||
.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}
|
||||
.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}
|
||||
.py-3{padding-top:1rem!important;padding-bottom:1rem!important}
|
||||
.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}
|
||||
.py-5{padding-top:3rem!important;padding-bottom:3rem!important}
|
||||
.pt-0{padding-top:0!important}
|
||||
.pt-1{padding-top:.25rem!important}
|
||||
.pt-2{padding-top:.5rem!important}
|
||||
.pt-3{padding-top:1rem!important}
|
||||
.pt-4{padding-top:1.5rem!important}
|
||||
.pt-5{padding-top:3rem!important}
|
||||
.pe-0{padding-right:0!important}
|
||||
.pe-1{padding-right:.25rem!important}
|
||||
.pe-2{padding-right:.5rem!important}
|
||||
.pe-3{padding-right:1rem!important}
|
||||
.pe-4{padding-right:1.5rem!important}
|
||||
.pe-5{padding-right:3rem!important}
|
||||
.pb-0{padding-bottom:0!important}
|
||||
.pb-1{padding-bottom:.25rem!important}
|
||||
.pb-2{padding-bottom:.5rem!important}
|
||||
.pb-3{padding-bottom:1rem!important}
|
||||
.pb-4{padding-bottom:1.5rem!important}
|
||||
.pb-5{padding-bottom:3rem!important}
|
||||
.ps-0{padding-left:0!important}
|
||||
.ps-1{padding-left:.25rem!important}
|
||||
.ps-2{padding-left:.5rem!important}
|
||||
.ps-3{padding-left:1rem!important}
|
||||
.ps-4{padding-left:1.5rem!important}
|
||||
.ps-5{padding-left:3rem!important}
|
||||
.font-monospace{font-family:var(--bs-font-monospace)!important}
|
||||
.fs-1{font-size:calc(1.375rem + 1.5vw)!important}
|
||||
.fs-2{font-size:calc(1.325rem + .9vw)!important}
|
||||
.fs-3{font-size:calc(1.3rem + .6vw)!important}
|
||||
.fs-4{font-size:calc(1.275rem + .3vw)!important}
|
||||
.fs-5{font-size:1.25rem!important}
|
||||
.fs-6{font-size:1rem!important}
|
||||
.fst-italic{font-style:italic!important}
|
||||
.fst-normal{font-style:normal!important}
|
||||
.fw-light{font-weight:300!important}
|
||||
.fw-lighter{font-weight:lighter!important}
|
||||
.fw-normal{font-weight:400!important}
|
||||
.fw-bold{font-weight:700!important}
|
||||
.fw-bolder{font-weight:bolder!important}
|
||||
.lh-1{line-height:1!important}
|
||||
.lh-sm{line-height:1.25!important}
|
||||
.lh-base{line-height:1.5!important}
|
||||
.lh-lg{line-height:2!important}
|
||||
.text-start{text-align:left!important}
|
||||
.text-end{text-align:right!important}
|
||||
.text-center{text-align:center!important}
|
||||
.text-decoration-none{text-decoration:none!important}
|
||||
.text-decoration-underline{text-decoration:underline!important}
|
||||
.text-decoration-line-through{text-decoration:line-through!important}
|
||||
.text-lowercase{text-transform:lowercase!important}
|
||||
.text-uppercase{text-transform:uppercase!important}
|
||||
.text-capitalize{text-transform:capitalize!important}
|
||||
.text-wrap{white-space:normal!important}
|
||||
.text-nowrap{white-space:nowrap!important}
|
||||
.text-break{word-wrap:break-word!important;word-break:break-word!important}
|
||||
.text-primary{color:#0d6efd!important}
|
||||
.text-secondary{color:#6c757d!important}
|
||||
.text-success{color:#198754!important}
|
||||
.text-info{color:#0dcaf0!important}
|
||||
.text-warning{color:#ffc107!important}
|
||||
.text-danger{color:#dc3545!important}
|
||||
.text-light{color:#f8f9fa!important}
|
||||
.text-dark{color:#212529!important}
|
||||
.text-white{color:#fff!important}
|
||||
.text-body{color:#212529!important}
|
||||
.text-muted{color:#6c757d!important}
|
||||
.text-black-50{color:rgba(0,0,0,.5)!important}
|
||||
.text-white-50{color:rgba(255,255,255,.5)!important}
|
||||
.text-reset{color:inherit!important}
|
||||
.bg-primary{background-color:#0d6efd!important}
|
||||
.bg-secondary{background-color:#6c757d!important}
|
||||
.bg-success{background-color:#198754!important}
|
||||
.bg-info{background-color:#0dcaf0!important}
|
||||
.bg-warning{background-color:#ffc107!important}
|
||||
.bg-danger{background-color:#dc3545!important}
|
||||
.bg-light{background-color:#f8f9fa!important}
|
||||
.bg-dark{background-color:#212529!important}
|
||||
.bg-body{background-color:#fff!important}
|
||||
.bg-white{background-color:#fff!important}
|
||||
.bg-transparent{background-color:transparent!important}
|
||||
.bg-gradient{background-image:var(--bs-gradient)!important}
|
||||
.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}
|
||||
.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;user-select:auto!important}
|
||||
.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}
|
||||
.pe-none{pointer-events:none!important}
|
||||
.pe-auto{pointer-events:auto!important}
|
||||
.rounded{border-radius:.25rem!important}
|
||||
.rounded-0{border-radius:0!important}
|
||||
.rounded-1{border-radius:.2rem!important}
|
||||
.rounded-2{border-radius:.25rem!important}
|
||||
.rounded-3{border-radius:.3rem!important}
|
||||
.rounded-circle{border-radius:50%!important}
|
||||
.rounded-pill{border-radius:50rem!important}
|
||||
.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}
|
||||
.rounded-end{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}
|
||||
.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}
|
||||
.rounded-start{border-bottom-left-radius:.25rem!important;border-top-left-radius:.25rem!important}
|
||||
.visible{visibility:visible!important}
|
||||
.invisible{visibility:hidden!important}
|
||||
|
||||
.fs-1{font-size:2.5rem!important}
|
||||
.fs-2{font-size:2rem!important}
|
||||
.fs-3{font-size:1.75rem!important}
|
||||
.fs-4{font-size:1.5rem!important}
|
||||
.btn{display:inline-block;font-weight:400;line-height:1.5;color:#212529;text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}
|
||||
.btn:hover{color:#212529}
|
||||
.btn-check:focus+.btn,.btn:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}
|
||||
.btn.disabled,.btn:disabled,fieldset:disabled .btn{pointer-events:none;opacity:.65}
|
||||
.btn-primary{color:#fff;background-color:var(--nord3);border-color:var(--nord3)}
|
||||
.btn-primary:hover{color:#fff;background-color:var(--nord2);border-color:var(--nord2)}
|
||||
.btn-check:focus+.btn-primary,.btn-primary:focus{color:#fff;background-color:var(--nord3);border-color:var(--nord3)}
|
||||
.btn-check:active+.btn-primary,.btn-check:checked+.btn-primary,.btn-primary.active,.btn-primary:active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:var(--nord0);border-color:var(--nord0)}
|
||||
.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#0d6efd;border-color:#0d6efd}
|
||||
.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}
|
||||
.btn-secondary:hover{color:#fff;background-color:#5c636a;border-color:#565e64}
|
||||
.btn-check:focus+.btn-secondary,.btn-secondary:focus{color:#fff;background-color:#5c636a;border-color:#565e64;box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}
|
||||
.btn-check:active+.btn-secondary,.btn-check:checked+.btn-secondary,.btn-secondary.active,.btn-secondary:active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#565e64;border-color:#51585e}
|
||||
.btn-check:active+.btn-secondary:focus,.btn-check:checked+.btn-secondary:focus,.btn-secondary.active:focus,.btn-secondary:active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}
|
||||
.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}
|
||||
.btn-success{color:#fff;background-color:#198754;border-color:#198754}
|
||||
.btn-success:hover{color:#fff;background-color:#157347;border-color:#146c43}
|
||||
.btn-check:focus+.btn-success,.btn-success:focus{color:#fff;background-color:#157347;border-color:#146c43;box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}
|
||||
.btn-check:active+.btn-success,.btn-check:checked+.btn-success,.btn-success.active,.btn-success:active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#146c43;border-color:#13653f}
|
||||
.btn-check:active+.btn-success:focus,.btn-check:checked+.btn-success:focus,.btn-success.active:focus,.btn-success:active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}
|
||||
.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#198754;border-color:#198754}
|
||||
.btn-info{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}
|
||||
.btn-info:hover{color:#000;background-color:#31d2f2;border-color:#25cff2}
|
||||
.btn-check:focus+.btn-info,.btn-info:focus{color:#000;background-color:#31d2f2;border-color:#25cff2;box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}
|
||||
.btn-check:active+.btn-info,.btn-check:checked+.btn-info,.btn-info.active,.btn-info:active,.show>.btn-info.dropdown-toggle{color:#000;background-color:#3dd5f3;border-color:#25cff2}
|
||||
.btn-check:active+.btn-info:focus,.btn-check:checked+.btn-info:focus,.btn-info.active:focus,.btn-info:active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}
|
||||
.btn-info.disabled,.btn-info:disabled{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}
|
||||
.btn-warning{color:#000;background-color:#ffc107;border-color:#ffc107}
|
||||
.btn-warning:hover{color:#000;background-color:#ffca2c;border-color:#ffc720}
|
||||
.btn-check:focus+.btn-warning,.btn-warning:focus{color:#000;background-color:#ffca2c;border-color:#ffc720;box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}
|
||||
.btn-check:active+.btn-warning,.btn-check:checked+.btn-warning,.btn-warning.active,.btn-warning:active,.show>.btn-warning.dropdown-toggle{color:#000;background-color:#ffcd39;border-color:#ffc720}
|
||||
.btn-check:active+.btn-warning:focus,.btn-check:checked+.btn-warning:focus,.btn-warning.active:focus,.btn-warning:active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}
|
||||
.btn-warning.disabled,.btn-warning:disabled{color:#000;background-color:#ffc107;border-color:#ffc107}
|
||||
.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}
|
||||
.btn-danger:hover{color:#fff;background-color:#bb2d3b;border-color:#b02a37}
|
||||
.btn-check:focus+.btn-danger,.btn-danger:focus{color:#fff;background-color:#bb2d3b;border-color:#b02a37;box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}
|
||||
.btn-check:active+.btn-danger,.btn-check:checked+.btn-danger,.btn-danger.active,.btn-danger:active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#b02a37;border-color:#a52834}
|
||||
.btn-check:active+.btn-danger:focus,.btn-check:checked+.btn-danger:focus,.btn-danger.active:focus,.btn-danger:active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}
|
||||
.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}
|
||||
.btn-light{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}
|
||||
.btn-light:hover{color:#000;background-color:#f9fafb;border-color:#f9fafb}
|
||||
.btn-check:focus+.btn-light,.btn-light:focus{color:#000;background-color:#f9fafb;border-color:#f9fafb;box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}
|
||||
.btn-check:active+.btn-light,.btn-check:checked+.btn-light,.btn-light.active,.btn-light:active,.show>.btn-light.dropdown-toggle{color:#000;background-color:#f9fafb;border-color:#f9fafb}
|
||||
.btn-check:active+.btn-light:focus,.btn-check:checked+.btn-light:focus,.btn-light.active:focus,.btn-light:active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}
|
||||
.btn-light.disabled,.btn-light:disabled{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}
|
||||
.btn-dark{color:#fff;background-color:#212529;border-color:#212529}
|
||||
.btn-dark:hover{color:#fff;background-color:#1c1f23;border-color:#1a1e21}
|
||||
.btn-check:focus+.btn-dark,.btn-dark:focus{color:#fff;background-color:#1c1f23;border-color:#1a1e21;box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}
|
||||
.btn-check:active+.btn-dark,.btn-check:checked+.btn-dark,.btn-dark.active,.btn-dark:active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1a1e21;border-color:#191c1f}
|
||||
.btn-check:active+.btn-dark:focus,.btn-check:checked+.btn-dark:focus,.btn-dark.active:focus,.btn-dark:active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}
|
||||
.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#212529;border-color:#212529}
|
||||
.btn-outline-primary{color:#0d6efd;border-color:#0d6efd}
|
||||
.btn-outline-primary:hover{color:#fff;background-color:#0d6efd;border-color:#0d6efd}
|
||||
.btn-check:focus+.btn-outline-primary,.btn-outline-primary:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}
|
||||
.btn-check:active+.btn-outline-primary,.btn-check:checked+.btn-outline-primary,.btn-outline-primary.active,.btn-outline-primary.dropdown-toggle.show,.btn-outline-primary:active{color:#fff;background-color:#0d6efd;border-color:#0d6efd}
|
||||
.btn-check:active+.btn-outline-primary:focus,.btn-check:checked+.btn-outline-primary:focus,.btn-outline-primary.active:focus,.btn-outline-primary.dropdown-toggle.show:focus,.btn-outline-primary:active:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}
|
||||
.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#0d6efd;background-color:transparent}
|
||||
.btn-outline-secondary{color:#6c757d;border-color:#6c757d}
|
||||
.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}
|
||||
.btn-check:focus+.btn-outline-secondary,.btn-outline-secondary:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}
|
||||
.btn-check:active+.btn-outline-secondary,.btn-check:checked+.btn-outline-secondary,.btn-outline-secondary.active,.btn-outline-secondary.dropdown-toggle.show,.btn-outline-secondary:active{color:#fff;background-color:#6c757d;border-color:#6c757d}
|
||||
.btn-check:active+.btn-outline-secondary:focus,.btn-check:checked+.btn-outline-secondary:focus,.btn-outline-secondary.active:focus,.btn-outline-secondary.dropdown-toggle.show:focus,.btn-outline-secondary:active:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}
|
||||
.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}
|
||||
.btn-outline-success{color:#198754;border-color:#198754}
|
||||
.btn-outline-success:hover{color:#fff;background-color:#198754;border-color:#198754}
|
||||
.btn-check:focus+.btn-outline-success,.btn-outline-success:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}
|
||||
.btn-check:active+.btn-outline-success,.btn-check:checked+.btn-outline-success,.btn-outline-success.active,.btn-outline-success.dropdown-toggle.show,.btn-outline-success:active{color:#fff;background-color:#198754;border-color:#198754}
|
||||
.btn-check:active+.btn-outline-success:focus,.btn-check:checked+.btn-outline-success:focus,.btn-outline-success.active:focus,.btn-outline-success.dropdown-toggle.show:focus,.btn-outline-success:active:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}
|
||||
.btn-outline-success.disabled,.btn-outline-success:disabled{color:#198754;background-color:transparent}
|
||||
.btn-outline-info{color:#0dcaf0;border-color:#0dcaf0}
|
||||
.btn-outline-info:hover{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}
|
||||
.btn-check:focus+.btn-outline-info,.btn-outline-info:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}
|
||||
.btn-check:active+.btn-outline-info,.btn-check:checked+.btn-outline-info,.btn-outline-info.active,.btn-outline-info.dropdown-toggle.show,.btn-outline-info:active{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}
|
||||
.btn-check:active+.btn-outline-info:focus,.btn-check:checked+.btn-outline-info:focus,.btn-outline-info.active:focus,.btn-outline-info.dropdown-toggle.show:focus,.btn-outline-info:active:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}
|
||||
.btn-outline-info.disabled,.btn-outline-info:disabled{color:#0dcaf0;background-color:transparent}
|
||||
.btn-outline-warning{color:#ffc107;border-color:#ffc107}
|
||||
.btn-outline-warning:hover{color:#000;background-color:#ffc107;border-color:#ffc107}
|
||||
.btn-check:focus+.btn-outline-warning,.btn-outline-warning:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}
|
||||
.btn-check:active+.btn-outline-warning,.btn-check:checked+.btn-outline-warning,.btn-outline-warning.active,.btn-outline-warning.dropdown-toggle.show,.btn-outline-warning:active{color:#000;background-color:#ffc107;border-color:#ffc107}
|
||||
.btn-check:active+.btn-outline-warning:focus,.btn-check:checked+.btn-outline-warning:focus,.btn-outline-warning.active:focus,.btn-outline-warning.dropdown-toggle.show:focus,.btn-outline-warning:active:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}
|
||||
.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}
|
||||
.btn-outline-danger{color:#dc3545;border-color:#dc3545}
|
||||
.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}
|
||||
.btn-check:focus+.btn-outline-danger,.btn-outline-danger:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}
|
||||
.btn-check:active+.btn-outline-danger,.btn-check:checked+.btn-outline-danger,.btn-outline-danger.active,.btn-outline-danger.dropdown-toggle.show,.btn-outline-danger:active{color:#fff;background-color:#dc3545;border-color:#dc3545}
|
||||
.btn-check:active+.btn-outline-danger:focus,.btn-check:checked+.btn-outline-danger:focus,.btn-outline-danger.active:focus,.btn-outline-danger.dropdown-toggle.show:focus,.btn-outline-danger:active:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}
|
||||
.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}
|
||||
.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}
|
||||
.btn-outline-light:hover{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}
|
||||
.btn-check:focus+.btn-outline-light,.btn-outline-light:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}
|
||||
.btn-check:active+.btn-outline-light,.btn-check:checked+.btn-outline-light,.btn-outline-light.active,.btn-outline-light.dropdown-toggle.show,.btn-outline-light:active{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}
|
||||
.btn-check:active+.btn-outline-light:focus,.btn-check:checked+.btn-outline-light:focus,.btn-outline-light.active:focus,.btn-outline-light.dropdown-toggle.show:focus,.btn-outline-light:active:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}
|
||||
.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}
|
||||
.btn-outline-dark{color:#212529;border-color:#212529}
|
||||
.btn-outline-dark:hover{color:#fff;background-color:#212529;border-color:#212529}
|
||||
.btn-check:focus+.btn-outline-dark,.btn-outline-dark:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}
|
||||
.btn-check:active+.btn-outline-dark,.btn-check:checked+.btn-outline-dark,.btn-outline-dark.active,.btn-outline-dark.dropdown-toggle.show,.btn-outline-dark:active{color:#fff;background-color:#212529;border-color:#212529}
|
||||
.btn-check:active+.btn-outline-dark:focus,.btn-check:checked+.btn-outline-dark:focus,.btn-outline-dark.active:focus,.btn-outline-dark.dropdown-toggle.show:focus,.btn-outline-dark:active:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}
|
||||
.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#212529;background-color:transparent}
|
||||
.btn-link{font-weight:400;color:#0d6efd;text-decoration:underline}
|
||||
.btn-link:hover{color:#0a58ca}
|
||||
.btn-link.disabled,.btn-link:disabled{color:#6c757d}
|
||||
.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}
|
||||
.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}
|
||||
.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}
|
||||
.fade:not(.show){opacity:0}
|
||||
|
||||
thead > tr {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
tr:nth-child(even) {
|
||||
background-color: var(--nord3);
|
||||
}
|
||||
tr:nth-child(odd) {
|
||||
background-color:var(--nord2);
|
||||
}
|
||||
|
||||
.table-fixed { table-layout: fixed; }
|
||||
.table-auto { table-layout: auto; }
|
||||
table.no-overflow>tbody>tr>td { overflow:hidden; text-overflow: ellipsis; white-space: nowrap;}
|
@ -73,7 +73,7 @@ $(function () {
|
||||
};
|
||||
|
||||
|
||||
$(document).ready(async ()=>{
|
||||
jQuery(async ()=>{
|
||||
refreshUI();
|
||||
try{
|
||||
socket.addFamilyHandler("overlay", handleSocketMessage);
|
||||
|
Loading…
x
Reference in New Issue
Block a user