mirror of
https://github.com/btcpayserver/btcpayserver.git
synced 2024-11-19 09:54:30 +01:00
Displaying payment method name during checkout
Ref: https://github.com/btcpayserver/btcpayserver/issues/152
This commit is contained in:
parent
97e564901e
commit
33d18a3278
@ -248,6 +248,8 @@ namespace BTCPayServer.Controllers
|
||||
{
|
||||
CryptoCode = network.CryptoCode,
|
||||
PaymentMethodId = paymentMethodId.ToString(),
|
||||
PaymentMethodName = GetPaymentMethodName(paymentMethodId.ToString()),
|
||||
CryptoImage = "/" + GetImage(paymentMethodId, network),
|
||||
IsLightning = paymentMethodId.PaymentType == PaymentTypes.LightningLike,
|
||||
ServerUrl = HttpContext.Request.GetAbsoluteRoot(),
|
||||
OrderId = invoice.OrderId,
|
||||
@ -279,7 +281,6 @@ namespace BTCPayServer.Controllers
|
||||
TxCount = accounting.TxRequired,
|
||||
BtcPaid = accounting.Paid.ToString(),
|
||||
Status = invoice.Status,
|
||||
CryptoImage = "/" + GetImage(paymentMethodId, network),
|
||||
NetworkFee = paymentMethodDetails.GetTxFee(),
|
||||
IsMultiCurrency = invoice.GetPayments().Select(p => p.GetPaymentMethodId()).Concat(new[] { paymentMethod.GetId() }).Distinct().Count() > 1,
|
||||
AllowCoinConversion = storeBlob.AllowCoinConversion,
|
||||
@ -288,6 +289,7 @@ namespace BTCPayServer.Controllers
|
||||
.Select(kv => new PaymentModel.AvailableCrypto()
|
||||
{
|
||||
PaymentMethodId = kv.GetId().ToString(),
|
||||
PaymentMethodName = GetPaymentMethodName(kv.GetId().ToString()),
|
||||
CryptoImage = "/" + GetImage(kv.GetId(), kv.Network),
|
||||
Link = Url.Action(nameof(Checkout), new { invoiceId = invoiceId, paymentMethodId = kv.GetId().ToString() })
|
||||
}).Where(c => c.CryptoImage != "/")
|
||||
@ -299,6 +301,19 @@ namespace BTCPayServer.Controllers
|
||||
return model;
|
||||
}
|
||||
|
||||
private static readonly Dictionary<string,string> CURRENCY_NAMES = new Dictionary<string, string>
|
||||
{
|
||||
{"BTC", "Bitcoin (BTC)" },
|
||||
{"BTC_LightningLike", "Bitcoin (BTC) Lightning" },
|
||||
{"LTC", "Litecoin (LTC)" },
|
||||
{"LTC_LightningLike", "Litecoin (LTC) Lightning" },
|
||||
{"DOGE", "Dogecoin (DOGE)" },
|
||||
};
|
||||
private string GetPaymentMethodName(string key)
|
||||
{
|
||||
return CURRENCY_NAMES[key];
|
||||
}
|
||||
|
||||
private string GetImage(PaymentMethodId paymentMethodId, BTCPayNetwork network)
|
||||
{
|
||||
return (paymentMethodId.PaymentType == PaymentTypes.BTCLike ? Url.Content(network.CryptoImagePath) : Url.Content(network.LightningImagePath));
|
||||
|
@ -12,6 +12,7 @@ namespace BTCPayServer.Models.InvoicingModels
|
||||
public string PaymentMethodId { get; set; }
|
||||
public string CryptoImage { get; set; }
|
||||
public string Link { get; set; }
|
||||
public string PaymentMethodName { get; set; }
|
||||
}
|
||||
public string HtmlTitle { get; set; }
|
||||
public string CustomCSSLink { get; set; }
|
||||
@ -45,12 +46,13 @@ namespace BTCPayServer.Models.InvoicingModels
|
||||
public string StoreEmail { get; set; }
|
||||
|
||||
public string OrderId { get; set; }
|
||||
public string CryptoImage { get; set; }
|
||||
public decimal NetworkFee { get; set; }
|
||||
public bool IsMultiCurrency { get; set; }
|
||||
public int MaxTimeMinutes { get; internal set; }
|
||||
public string PaymentType { get; internal set; }
|
||||
public string PaymentMethodId { get; internal set; }
|
||||
public int MaxTimeMinutes { get; set; }
|
||||
public string PaymentType { get; set; }
|
||||
public string PaymentMethodId { get; set; }
|
||||
public string PaymentMethodName { get; set; }
|
||||
public string CryptoImage { get; set; }
|
||||
|
||||
public bool AllowCoinConversion { get; set; }
|
||||
public string PeerInfo { get; set; }
|
||||
|
@ -42,13 +42,22 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="single-item-order__right">
|
||||
<div class="payment__currencies">
|
||||
<div class="payment__currencies" style="font-size: 14px; cursor:pointer;" onclick="bringupDialog()">
|
||||
<img style='height:32px;' v-bind:src="srvModel.cryptoImage" />
|
||||
<span style="color: #000000; border-bottom: 1px dotted gray;">{{srvModel.paymentMethodName}}</span>
|
||||
</div>
|
||||
<div id="vexPopupDialog">
|
||||
<ul class="vexmenu">
|
||||
@foreach (var crypto in Model.AvailableCryptos)
|
||||
{
|
||||
<a href="@crypto.Link" onclick="return changeCurrency('@crypto.PaymentMethodId');">
|
||||
<img style="height:32px; margin-left:5px;" alt="@crypto.PaymentMethodId" src="@crypto.CryptoImage" />
|
||||
</a>
|
||||
<li class="vexmenuitem">
|
||||
<a href="@crypto.Link" onclick="return closeVexChangeCurrency('@crypto.PaymentMethodId');">
|
||||
<img style="height:24px;" alt="@crypto.PaymentMethodId" src="@crypto.CryptoImage" />
|
||||
@crypto.PaymentMethodName
|
||||
</a>
|
||||
</li>
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="payment__spinner">
|
||||
<partial name="Checkout-Spinner" />
|
||||
|
@ -20,12 +20,15 @@
|
||||
</script>
|
||||
|
||||
<bundle name="wwwroot/bundles/checkout-bundle.min.js" />
|
||||
<script>vex.defaultOptions.className = 'vex-theme-btcpay'</script>
|
||||
|
||||
|
||||
@if(Model.CustomCSSLink != null)
|
||||
@if (Model.CustomCSSLink != null)
|
||||
{
|
||||
<link href="@Model.CustomCSSLink" rel="stylesheet" />
|
||||
}
|
||||
|
||||
<style type="text/css">
|
||||
</style>
|
||||
</head>
|
||||
<body style="background: #E4E4E4">
|
||||
<noscript>
|
||||
@ -82,7 +85,7 @@
|
||||
|
||||
$('select').prettyDropdown({
|
||||
classic: false,
|
||||
height: 30,
|
||||
height: 32,
|
||||
reverse: true,
|
||||
hoverIntent: 5000
|
||||
});
|
||||
|
@ -33,6 +33,7 @@
|
||||
"outputFileName": "wwwroot/bundles/checkout-bundle.min.css",
|
||||
"inputFiles": [
|
||||
"wwwroot/vendor/font-awesome/css/font-awesome.css",
|
||||
"wwwroot/vendor/vex/css/vex.css",
|
||||
"wwwroot/checkout/**/*.css",
|
||||
"wwwroot/vendor/jquery-prettydropdowns/prettydropdowns.css"
|
||||
]
|
||||
@ -47,6 +48,7 @@
|
||||
"wwwroot/vendor/i18next/i18next.js",
|
||||
"wwwroot/vendor/i18next/vue-i18next.js",
|
||||
"wwwroot/vendor/jquery-prettydropdowns/jquery.prettydropdowns.js",
|
||||
"wwwroot/vendor/vex/js/vex.combined.min.js",
|
||||
"wwwroot/checkout/**/*.js"
|
||||
]
|
||||
}
|
||||
|
@ -8289,7 +8289,7 @@ strong {
|
||||
.modal.page {
|
||||
overflow-y: hidden;
|
||||
position: relative;
|
||||
z-index: 105111;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
.content {
|
||||
@ -8420,6 +8420,7 @@ strong {
|
||||
color: #565D6E;
|
||||
letter-spacing: .45px;
|
||||
background: #fff;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
.single-item-order {
|
||||
|
32
BTCPayServer/wwwroot/checkout/css/vex-extrastyles.css
Normal file
32
BTCPayServer/wwwroot/checkout/css/vex-extrastyles.css
Normal file
@ -0,0 +1,32 @@
|
||||
.vexmenu {
|
||||
margin: 0;
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.vexmenuitem {
|
||||
display: block;
|
||||
float: none;
|
||||
line-height: inherit;
|
||||
position: relative;
|
||||
list-style: none;
|
||||
cursor: pointer;
|
||||
padding: 5px;
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
|
||||
.vexmenuitem a {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.vexmenuitem:hover {
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
.vexmenuitem:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
#vexPopupDialog {
|
||||
display: none;
|
||||
}
|
204
BTCPayServer/wwwroot/checkout/css/vex-theme-btcpay.css
Normal file
204
BTCPayServer/wwwroot/checkout/css/vex-theme-btcpay.css
Normal file
@ -0,0 +1,204 @@
|
||||
@-webkit-keyframes vex-flyin {
|
||||
0% {
|
||||
opacity: 0;
|
||||
-webkit-transform: translateY(-40px);
|
||||
transform: translateY(-40px);
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateY(0);
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes vex-flyin {
|
||||
0% {
|
||||
opacity: 0;
|
||||
-webkit-transform: translateY(-40px);
|
||||
transform: translateY(-40px);
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateY(0);
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes vex-flyout {
|
||||
0% {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateY(0);
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 0;
|
||||
-webkit-transform: translateY(-40px);
|
||||
transform: translateY(-40px);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes vex-flyout {
|
||||
0% {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateY(0);
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 0;
|
||||
-webkit-transform: translateY(-40px);
|
||||
transform: translateY(-40px);
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes vex-pulse {
|
||||
0% {
|
||||
box-shadow: inset 0 0 0 300px transparent;
|
||||
}
|
||||
|
||||
70% {
|
||||
box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25);
|
||||
}
|
||||
|
||||
100% {
|
||||
box-shadow: inset 0 0 0 300px transparent;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes vex-pulse {
|
||||
0% {
|
||||
box-shadow: inset 0 0 0 300px transparent;
|
||||
}
|
||||
|
||||
70% {
|
||||
box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25);
|
||||
}
|
||||
|
||||
100% {
|
||||
box-shadow: inset 0 0 0 300px transparent;
|
||||
}
|
||||
}
|
||||
|
||||
.vex.vex-theme-btcpay {
|
||||
padding-top: 160px;
|
||||
padding-bottom: 160px;
|
||||
}
|
||||
|
||||
.vex.vex-theme-btcpay.vex-closing .vex-content {
|
||||
-webkit-animation: vex-flyout .5s forwards;
|
||||
animation: vex-flyout .5s forwards;
|
||||
}
|
||||
|
||||
.vex.vex-theme-btcpay .vex-content {
|
||||
-webkit-animation: vex-flyin .5s;
|
||||
animation: vex-flyin .5s;
|
||||
}
|
||||
|
||||
.vex.vex-theme-btcpay .vex-content {
|
||||
border-radius: 5px;
|
||||
background: #ffffff;
|
||||
color: #444;
|
||||
padding: 5px;
|
||||
position: relative;
|
||||
margin: 0 auto;
|
||||
max-width: 100%;
|
||||
width: 300px;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.vex.vex-theme-btcpay .vex-content h1, .vex.vex-theme-btcpay .vex-content h2, .vex.vex-theme-btcpay .vex-content h3, .vex.vex-theme-btcpay .vex-content h4, .vex.vex-theme-btcpay .vex-content h5, .vex.vex-theme-btcpay .vex-content h6, .vex.vex-theme-btcpay .vex-content p, .vex.vex-theme-btcpay .vex-content ul, .vex.vex-theme-btcpay .vex-content li {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.vex.vex-theme-btcpay .vex-close {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.vex.vex-theme-btcpay .vex-dialog-form .vex-dialog-message {
|
||||
margin-bottom: .5em;
|
||||
}
|
||||
|
||||
.vex.vex-theme-btcpay .vex-dialog-form .vex-dialog-input {
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
.vex.vex-theme-btcpay .vex-dialog-form .vex-dialog-input select, .vex.vex-theme-btcpay .vex-dialog-form .vex-dialog-input textarea, .vex.vex-theme-btcpay .vex-dialog-form .vex-dialog-input input[type="date"], .vex.vex-theme-btcpay .vex-dialog-form .vex-dialog-input input[type="datetime"], .vex.vex-theme-btcpay .vex-dialog-form .vex-dialog-input input[type="datetime-local"], .vex.vex-theme-btcpay .vex-dialog-form .vex-dialog-input input[type="email"], .vex.vex-theme-btcpay .vex-dialog-form .vex-dialog-input input[type="month"], .vex.vex-theme-btcpay .vex-dialog-form .vex-dialog-input input[type="number"], .vex.vex-theme-btcpay .vex-dialog-form .vex-dialog-input input[type="password"], .vex.vex-theme-btcpay .vex-dialog-form .vex-dialog-input input[type="search"], .vex.vex-theme-btcpay .vex-dialog-form .vex-dialog-input input[type="tel"], .vex.vex-theme-btcpay .vex-dialog-form .vex-dialog-input input[type="text"], .vex.vex-theme-btcpay .vex-dialog-form .vex-dialog-input input[type="time"], .vex.vex-theme-btcpay .vex-dialog-form .vex-dialog-input input[type="url"], .vex.vex-theme-btcpay .vex-dialog-form .vex-dialog-input input[type="week"] {
|
||||
border-radius: 3px;
|
||||
background: #fff;
|
||||
width: 100%;
|
||||
padding: .25em .67em;
|
||||
border: 0;
|
||||
font-family: inherit;
|
||||
font-weight: inherit;
|
||||
font-size: inherit;
|
||||
min-height: 2.5em;
|
||||
margin: 0 0 .25em;
|
||||
}
|
||||
|
||||
.vex.vex-theme-btcpay .vex-dialog-form .vex-dialog-input select:focus, .vex.vex-theme-btcpay .vex-dialog-form .vex-dialog-input textarea:focus, .vex.vex-theme-btcpay .vex-dialog-form .vex-dialog-input input[type="date"]:focus, .vex.vex-theme-btcpay .vex-dialog-form .vex-dialog-input input[type="datetime"]:focus, .vex.vex-theme-btcpay .vex-dialog-form .vex-dialog-input input[type="datetime-local"]:focus, .vex.vex-theme-btcpay .vex-dialog-form .vex-dialog-input input[type="email"]:focus, .vex.vex-theme-btcpay .vex-dialog-form .vex-dialog-input input[type="month"]:focus, .vex.vex-theme-btcpay .vex-dialog-form .vex-dialog-input input[type="number"]:focus, .vex.vex-theme-btcpay .vex-dialog-form .vex-dialog-input input[type="password"]:focus, .vex.vex-theme-btcpay .vex-dialog-form .vex-dialog-input input[type="search"]:focus, .vex.vex-theme-btcpay .vex-dialog-form .vex-dialog-input input[type="tel"]:focus, .vex.vex-theme-btcpay .vex-dialog-form .vex-dialog-input input[type="text"]:focus, .vex.vex-theme-btcpay .vex-dialog-form .vex-dialog-input input[type="time"]:focus, .vex.vex-theme-btcpay .vex-dialog-form .vex-dialog-input input[type="url"]:focus, .vex.vex-theme-btcpay .vex-dialog-form .vex-dialog-input input[type="week"]:focus {
|
||||
box-shadow: inset 0 0 0 2px #8dbdf1;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.vex.vex-theme-btcpay .vex-dialog-form .vex-dialog-buttons {
|
||||
*zoom: 1;
|
||||
}
|
||||
|
||||
.vex.vex-theme-btcpay .vex-dialog-form .vex-dialog-buttons:after {
|
||||
content: "";
|
||||
display: table;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.vex.vex-theme-btcpay .vex-dialog-button {
|
||||
border-radius: 3px;
|
||||
border: 0;
|
||||
float: right;
|
||||
margin: 0 0 0 .5em;
|
||||
font-family: inherit;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: .1em;
|
||||
font-size: .8em;
|
||||
line-height: 1em;
|
||||
padding: .75em 2em;
|
||||
}
|
||||
|
||||
.vex.vex-theme-btcpay .vex-dialog-button.vex-last {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.vex.vex-theme-btcpay .vex-dialog-button:focus {
|
||||
-webkit-animation: vex-pulse 1.1s infinite;
|
||||
animation: vex-pulse 1.1s infinite;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
@media (max-width: 568px) {
|
||||
.vex.vex-theme-btcpay .vex-dialog-button:focus {
|
||||
-webkit-animation: none;
|
||||
animation: none;
|
||||
}
|
||||
}
|
||||
|
||||
.vex.vex-theme-btcpay .vex-dialog-button.vex-dialog-button-primary {
|
||||
background: #3288e6;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.vex.vex-theme-btcpay .vex-dialog-button.vex-dialog-button-secondary {
|
||||
background: #e0e0e0;
|
||||
color: #777;
|
||||
}
|
||||
|
||||
.vex-loading-spinner.vex-theme-btcpay {
|
||||
box-shadow: 0 0 0 0.5em #f0f0f0, 0 0 1px 0.5em rgba(0, 0, 0, 0.3);
|
||||
border-radius: 100%;
|
||||
background: #f0f0f0;
|
||||
border: .2em solid transparent;
|
||||
border-top-color: #bbb;
|
||||
top: -1.1em;
|
||||
bottom: auto;
|
||||
}
|
11
BTCPayServer/wwwroot/checkout/js/vexdialog.js
Normal file
11
BTCPayServer/wwwroot/checkout/js/vexdialog.js
Normal file
@ -0,0 +1,11 @@
|
||||
function bringupDialog() {
|
||||
var content = $("#vexPopupDialog").html();
|
||||
vex.open({
|
||||
unsafeContent: content
|
||||
});
|
||||
}
|
||||
|
||||
function closeVexChangeCurrency(currencyId) {
|
||||
vex.closeAll();
|
||||
return changeCurrency(currencyId);
|
||||
}
|
183
BTCPayServer/wwwroot/vendor/vex/css/vex-theme-bottom-right-corner.css
vendored
Normal file
183
BTCPayServer/wwwroot/vendor/vex/css/vex-theme-bottom-right-corner.css
vendored
Normal file
@ -0,0 +1,183 @@
|
||||
@-webkit-keyframes vex-slideup {
|
||||
0% {
|
||||
-webkit-transform: translateY(0);
|
||||
transform: translateY(0);
|
||||
opacity: 0; }
|
||||
1% {
|
||||
-webkit-transform: translateY(800px);
|
||||
transform: translateY(800px);
|
||||
opacity: 0; }
|
||||
2% {
|
||||
-webkit-transform: translateY(800px);
|
||||
transform: translateY(800px);
|
||||
opacity: 1; }
|
||||
100% {
|
||||
-webkit-transform: translateY(0);
|
||||
transform: translateY(0);
|
||||
opacity: 1; } }
|
||||
|
||||
@keyframes vex-slideup {
|
||||
0% {
|
||||
-webkit-transform: translateY(0);
|
||||
transform: translateY(0);
|
||||
opacity: 0; }
|
||||
1% {
|
||||
-webkit-transform: translateY(800px);
|
||||
transform: translateY(800px);
|
||||
opacity: 0; }
|
||||
2% {
|
||||
-webkit-transform: translateY(800px);
|
||||
transform: translateY(800px);
|
||||
opacity: 1; }
|
||||
100% {
|
||||
-webkit-transform: translateY(0);
|
||||
transform: translateY(0);
|
||||
opacity: 1; } }
|
||||
|
||||
@-webkit-keyframes vex-slidedown {
|
||||
0% {
|
||||
-webkit-transform: translateY(0);
|
||||
transform: translateY(0); }
|
||||
100% {
|
||||
-webkit-transform: translateY(800px);
|
||||
transform: translateY(800px); } }
|
||||
|
||||
@keyframes vex-slidedown {
|
||||
0% {
|
||||
-webkit-transform: translateY(0);
|
||||
transform: translateY(0); }
|
||||
100% {
|
||||
-webkit-transform: translateY(800px);
|
||||
transform: translateY(800px); } }
|
||||
|
||||
@-webkit-keyframes vex-pulse {
|
||||
0% {
|
||||
box-shadow: inset 0 0 0 300px transparent; }
|
||||
70% {
|
||||
box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25); }
|
||||
100% {
|
||||
box-shadow: inset 0 0 0 300px transparent; } }
|
||||
|
||||
@keyframes vex-pulse {
|
||||
0% {
|
||||
box-shadow: inset 0 0 0 300px transparent; }
|
||||
70% {
|
||||
box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25); }
|
||||
100% {
|
||||
box-shadow: inset 0 0 0 300px transparent; } }
|
||||
|
||||
.vex.vex-theme-bottom-right-corner {
|
||||
top: auto;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
overflow: visible; }
|
||||
.vex.vex-theme-bottom-right-corner .vex-overlay {
|
||||
display: none; }
|
||||
.vex.vex-theme-bottom-right-corner.vex-closing .vex-content {
|
||||
-webkit-animation: vex-slidedown .5s forwards;
|
||||
animation: vex-slidedown .5s forwards; }
|
||||
.vex.vex-theme-bottom-right-corner .vex-content {
|
||||
-webkit-animation: vex-slideup .5s;
|
||||
animation: vex-slideup .5s; }
|
||||
.vex.vex-theme-bottom-right-corner .vex-content {
|
||||
border-radius: 5px 0 0 0;
|
||||
font-family: "Helvetica Neue", sans-serif;
|
||||
background: #f0f0f0;
|
||||
color: #444;
|
||||
padding: 1em;
|
||||
max-width: 100%;
|
||||
width: 450px;
|
||||
font-size: 1.1em;
|
||||
line-height: 1.5em;
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
left: auto; }
|
||||
.vex.vex-theme-bottom-right-corner .vex-content h1, .vex.vex-theme-bottom-right-corner .vex-content h2, .vex.vex-theme-bottom-right-corner .vex-content h3, .vex.vex-theme-bottom-right-corner .vex-content h4, .vex.vex-theme-bottom-right-corner .vex-content h5, .vex.vex-theme-bottom-right-corner .vex-content h6, .vex.vex-theme-bottom-right-corner .vex-content p, .vex.vex-theme-bottom-right-corner .vex-content ul, .vex.vex-theme-bottom-right-corner .vex-content li {
|
||||
color: inherit; }
|
||||
.vex.vex-theme-bottom-right-corner .vex-close {
|
||||
border-radius: 5px;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
cursor: pointer; }
|
||||
.vex.vex-theme-bottom-right-corner .vex-close:before {
|
||||
border-radius: 3px;
|
||||
position: absolute;
|
||||
content: "\00D7";
|
||||
font-size: 26px;
|
||||
font-weight: normal;
|
||||
line-height: 31px;
|
||||
height: 30px;
|
||||
width: 30px;
|
||||
text-align: center;
|
||||
top: 3px;
|
||||
right: 3px;
|
||||
color: #bbb;
|
||||
background: transparent; }
|
||||
.vex.vex-theme-bottom-right-corner .vex-close:hover:before, .vex.vex-theme-bottom-right-corner .vex-close:active:before {
|
||||
color: #777;
|
||||
background: #e0e0e0; }
|
||||
.vex.vex-theme-bottom-right-corner .vex-dialog-form .vex-dialog-message {
|
||||
margin-bottom: .5em; }
|
||||
.vex.vex-theme-bottom-right-corner .vex-dialog-form .vex-dialog-input {
|
||||
margin-bottom: 1em; }
|
||||
.vex.vex-theme-bottom-right-corner .vex-dialog-form .vex-dialog-input select, .vex.vex-theme-bottom-right-corner .vex-dialog-form .vex-dialog-input textarea, .vex.vex-theme-bottom-right-corner .vex-dialog-form .vex-dialog-input input[type="date"], .vex.vex-theme-bottom-right-corner .vex-dialog-form .vex-dialog-input input[type="datetime"], .vex.vex-theme-bottom-right-corner .vex-dialog-form .vex-dialog-input input[type="datetime-local"], .vex.vex-theme-bottom-right-corner .vex-dialog-form .vex-dialog-input input[type="email"], .vex.vex-theme-bottom-right-corner .vex-dialog-form .vex-dialog-input input[type="month"], .vex.vex-theme-bottom-right-corner .vex-dialog-form .vex-dialog-input input[type="number"], .vex.vex-theme-bottom-right-corner .vex-dialog-form .vex-dialog-input input[type="password"], .vex.vex-theme-bottom-right-corner .vex-dialog-form .vex-dialog-input input[type="search"], .vex.vex-theme-bottom-right-corner .vex-dialog-form .vex-dialog-input input[type="tel"], .vex.vex-theme-bottom-right-corner .vex-dialog-form .vex-dialog-input input[type="text"], .vex.vex-theme-bottom-right-corner .vex-dialog-form .vex-dialog-input input[type="time"], .vex.vex-theme-bottom-right-corner .vex-dialog-form .vex-dialog-input input[type="url"], .vex.vex-theme-bottom-right-corner .vex-dialog-form .vex-dialog-input input[type="week"] {
|
||||
border-radius: 3px;
|
||||
background: #fff;
|
||||
width: 100%;
|
||||
padding: .25em .67em;
|
||||
border: 0;
|
||||
font-family: inherit;
|
||||
font-weight: inherit;
|
||||
font-size: inherit;
|
||||
min-height: 2.5em;
|
||||
margin: 0 0 .25em; }
|
||||
.vex.vex-theme-bottom-right-corner .vex-dialog-form .vex-dialog-input select:focus, .vex.vex-theme-bottom-right-corner .vex-dialog-form .vex-dialog-input textarea:focus, .vex.vex-theme-bottom-right-corner .vex-dialog-form .vex-dialog-input input[type="date"]:focus, .vex.vex-theme-bottom-right-corner .vex-dialog-form .vex-dialog-input input[type="datetime"]:focus, .vex.vex-theme-bottom-right-corner .vex-dialog-form .vex-dialog-input input[type="datetime-local"]:focus, .vex.vex-theme-bottom-right-corner .vex-dialog-form .vex-dialog-input input[type="email"]:focus, .vex.vex-theme-bottom-right-corner .vex-dialog-form .vex-dialog-input input[type="month"]:focus, .vex.vex-theme-bottom-right-corner .vex-dialog-form .vex-dialog-input input[type="number"]:focus, .vex.vex-theme-bottom-right-corner .vex-dialog-form .vex-dialog-input input[type="password"]:focus, .vex.vex-theme-bottom-right-corner .vex-dialog-form .vex-dialog-input input[type="search"]:focus, .vex.vex-theme-bottom-right-corner .vex-dialog-form .vex-dialog-input input[type="tel"]:focus, .vex.vex-theme-bottom-right-corner .vex-dialog-form .vex-dialog-input input[type="text"]:focus, .vex.vex-theme-bottom-right-corner .vex-dialog-form .vex-dialog-input input[type="time"]:focus, .vex.vex-theme-bottom-right-corner .vex-dialog-form .vex-dialog-input input[type="url"]:focus, .vex.vex-theme-bottom-right-corner .vex-dialog-form .vex-dialog-input input[type="week"]:focus {
|
||||
box-shadow: inset 0 0 0 2px #8dbdf1;
|
||||
outline: none; }
|
||||
.vex.vex-theme-bottom-right-corner .vex-dialog-form .vex-dialog-buttons {
|
||||
*zoom: 1; }
|
||||
.vex.vex-theme-bottom-right-corner .vex-dialog-form .vex-dialog-buttons:after {
|
||||
content: "";
|
||||
display: table;
|
||||
clear: both; }
|
||||
.vex.vex-theme-bottom-right-corner .vex-dialog-button {
|
||||
border-radius: 3px;
|
||||
border: 0;
|
||||
float: right;
|
||||
margin: 0 0 0 .5em;
|
||||
font-family: inherit;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: .1em;
|
||||
font-size: .8em;
|
||||
line-height: 1em;
|
||||
padding: .75em 2em; }
|
||||
.vex.vex-theme-bottom-right-corner .vex-dialog-button.vex-last {
|
||||
margin-left: 0; }
|
||||
.vex.vex-theme-bottom-right-corner .vex-dialog-button:focus {
|
||||
-webkit-animation: vex-pulse 1.1s infinite;
|
||||
animation: vex-pulse 1.1s infinite;
|
||||
outline: none; }
|
||||
@media (max-width: 568px) {
|
||||
.vex.vex-theme-bottom-right-corner .vex-dialog-button:focus {
|
||||
-webkit-animation: none;
|
||||
animation: none; } }
|
||||
.vex.vex-theme-bottom-right-corner .vex-dialog-button.vex-dialog-button-primary {
|
||||
background: #3288e6;
|
||||
color: #fff; }
|
||||
.vex.vex-theme-bottom-right-corner .vex-dialog-button.vex-dialog-button-secondary {
|
||||
background: #e0e0e0;
|
||||
color: #777; }
|
||||
|
||||
.vex-loading-spinner.vex-theme-bottom-right-corner {
|
||||
box-shadow: 0 0 0 0.5em #f0f0f0, 0 0 1px 0.5em rgba(0, 0, 0, 0.3);
|
||||
border-radius: 100%;
|
||||
background: #f0f0f0;
|
||||
border: .2em solid transparent;
|
||||
border-top-color: #bbb;
|
||||
top: -1.1em;
|
||||
bottom: auto; }
|
||||
|
||||
body.vex-open {
|
||||
overflow: initial; }
|
162
BTCPayServer/wwwroot/vendor/vex/css/vex-theme-default.css
vendored
Normal file
162
BTCPayServer/wwwroot/vendor/vex/css/vex-theme-default.css
vendored
Normal file
@ -0,0 +1,162 @@
|
||||
@-webkit-keyframes vex-flyin {
|
||||
0% {
|
||||
opacity: 0;
|
||||
-webkit-transform: translateY(-40px);
|
||||
transform: translateY(-40px); }
|
||||
100% {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateY(0);
|
||||
transform: translateY(0); } }
|
||||
|
||||
@keyframes vex-flyin {
|
||||
0% {
|
||||
opacity: 0;
|
||||
-webkit-transform: translateY(-40px);
|
||||
transform: translateY(-40px); }
|
||||
100% {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateY(0);
|
||||
transform: translateY(0); } }
|
||||
|
||||
@-webkit-keyframes vex-flyout {
|
||||
0% {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateY(0);
|
||||
transform: translateY(0); }
|
||||
100% {
|
||||
opacity: 0;
|
||||
-webkit-transform: translateY(-40px);
|
||||
transform: translateY(-40px); } }
|
||||
|
||||
@keyframes vex-flyout {
|
||||
0% {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateY(0);
|
||||
transform: translateY(0); }
|
||||
100% {
|
||||
opacity: 0;
|
||||
-webkit-transform: translateY(-40px);
|
||||
transform: translateY(-40px); } }
|
||||
|
||||
@-webkit-keyframes vex-pulse {
|
||||
0% {
|
||||
box-shadow: inset 0 0 0 300px transparent; }
|
||||
70% {
|
||||
box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25); }
|
||||
100% {
|
||||
box-shadow: inset 0 0 0 300px transparent; } }
|
||||
|
||||
@keyframes vex-pulse {
|
||||
0% {
|
||||
box-shadow: inset 0 0 0 300px transparent; }
|
||||
70% {
|
||||
box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25); }
|
||||
100% {
|
||||
box-shadow: inset 0 0 0 300px transparent; } }
|
||||
|
||||
.vex.vex-theme-default {
|
||||
padding-top: 160px;
|
||||
padding-bottom: 160px; }
|
||||
.vex.vex-theme-default.vex-closing .vex-content {
|
||||
-webkit-animation: vex-flyout .5s forwards;
|
||||
animation: vex-flyout .5s forwards; }
|
||||
.vex.vex-theme-default .vex-content {
|
||||
-webkit-animation: vex-flyin .5s;
|
||||
animation: vex-flyin .5s; }
|
||||
.vex.vex-theme-default .vex-content {
|
||||
border-radius: 5px;
|
||||
font-family: "Helvetica Neue", sans-serif;
|
||||
background: #f0f0f0;
|
||||
color: #444;
|
||||
padding: 1em;
|
||||
position: relative;
|
||||
margin: 0 auto;
|
||||
max-width: 100%;
|
||||
width: 450px;
|
||||
font-size: 1.1em;
|
||||
line-height: 1.5em; }
|
||||
.vex.vex-theme-default .vex-content h1, .vex.vex-theme-default .vex-content h2, .vex.vex-theme-default .vex-content h3, .vex.vex-theme-default .vex-content h4, .vex.vex-theme-default .vex-content h5, .vex.vex-theme-default .vex-content h6, .vex.vex-theme-default .vex-content p, .vex.vex-theme-default .vex-content ul, .vex.vex-theme-default .vex-content li {
|
||||
color: inherit; }
|
||||
.vex.vex-theme-default .vex-close {
|
||||
border-radius: 5px;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
cursor: pointer; }
|
||||
.vex.vex-theme-default .vex-close:before {
|
||||
border-radius: 3px;
|
||||
position: absolute;
|
||||
content: "\00D7";
|
||||
font-size: 26px;
|
||||
font-weight: normal;
|
||||
line-height: 31px;
|
||||
height: 30px;
|
||||
width: 30px;
|
||||
text-align: center;
|
||||
top: 3px;
|
||||
right: 3px;
|
||||
color: #bbb;
|
||||
background: transparent; }
|
||||
.vex.vex-theme-default .vex-close:hover:before, .vex.vex-theme-default .vex-close:active:before {
|
||||
color: #777;
|
||||
background: #e0e0e0; }
|
||||
.vex.vex-theme-default .vex-dialog-form .vex-dialog-message {
|
||||
margin-bottom: .5em; }
|
||||
.vex.vex-theme-default .vex-dialog-form .vex-dialog-input {
|
||||
margin-bottom: 1em; }
|
||||
.vex.vex-theme-default .vex-dialog-form .vex-dialog-input select, .vex.vex-theme-default .vex-dialog-form .vex-dialog-input textarea, .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="date"], .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="datetime"], .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="datetime-local"], .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="email"], .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="month"], .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="number"], .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="password"], .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="search"], .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="tel"], .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="text"], .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="time"], .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="url"], .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="week"] {
|
||||
border-radius: 3px;
|
||||
background: #fff;
|
||||
width: 100%;
|
||||
padding: .25em .67em;
|
||||
border: 0;
|
||||
font-family: inherit;
|
||||
font-weight: inherit;
|
||||
font-size: inherit;
|
||||
min-height: 2.5em;
|
||||
margin: 0 0 .25em; }
|
||||
.vex.vex-theme-default .vex-dialog-form .vex-dialog-input select:focus, .vex.vex-theme-default .vex-dialog-form .vex-dialog-input textarea:focus, .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="date"]:focus, .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="datetime"]:focus, .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="datetime-local"]:focus, .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="email"]:focus, .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="month"]:focus, .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="number"]:focus, .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="password"]:focus, .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="search"]:focus, .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="tel"]:focus, .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="text"]:focus, .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="time"]:focus, .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="url"]:focus, .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="week"]:focus {
|
||||
box-shadow: inset 0 0 0 2px #8dbdf1;
|
||||
outline: none; }
|
||||
.vex.vex-theme-default .vex-dialog-form .vex-dialog-buttons {
|
||||
*zoom: 1; }
|
||||
.vex.vex-theme-default .vex-dialog-form .vex-dialog-buttons:after {
|
||||
content: "";
|
||||
display: table;
|
||||
clear: both; }
|
||||
.vex.vex-theme-default .vex-dialog-button {
|
||||
border-radius: 3px;
|
||||
border: 0;
|
||||
float: right;
|
||||
margin: 0 0 0 .5em;
|
||||
font-family: inherit;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: .1em;
|
||||
font-size: .8em;
|
||||
line-height: 1em;
|
||||
padding: .75em 2em; }
|
||||
.vex.vex-theme-default .vex-dialog-button.vex-last {
|
||||
margin-left: 0; }
|
||||
.vex.vex-theme-default .vex-dialog-button:focus {
|
||||
-webkit-animation: vex-pulse 1.1s infinite;
|
||||
animation: vex-pulse 1.1s infinite;
|
||||
outline: none; }
|
||||
@media (max-width: 568px) {
|
||||
.vex.vex-theme-default .vex-dialog-button:focus {
|
||||
-webkit-animation: none;
|
||||
animation: none; } }
|
||||
.vex.vex-theme-default .vex-dialog-button.vex-dialog-button-primary {
|
||||
background: #3288e6;
|
||||
color: #fff; }
|
||||
.vex.vex-theme-default .vex-dialog-button.vex-dialog-button-secondary {
|
||||
background: #e0e0e0;
|
||||
color: #777; }
|
||||
|
||||
.vex-loading-spinner.vex-theme-default {
|
||||
box-shadow: 0 0 0 0.5em #f0f0f0, 0 0 1px 0.5em rgba(0, 0, 0, 0.3);
|
||||
border-radius: 100%;
|
||||
background: #f0f0f0;
|
||||
border: .2em solid transparent;
|
||||
border-top-color: #bbb;
|
||||
top: -1.1em;
|
||||
bottom: auto; }
|
176
BTCPayServer/wwwroot/vendor/vex/css/vex-theme-flat-attack.css
vendored
Normal file
176
BTCPayServer/wwwroot/vendor/vex/css/vex-theme-flat-attack.css
vendored
Normal file
@ -0,0 +1,176 @@
|
||||
@-webkit-keyframes vex-flipin-horizontal {
|
||||
0% {
|
||||
opacity: 0;
|
||||
-webkit-transform: rotateY(-90deg);
|
||||
transform: rotateY(-90deg); }
|
||||
100% {
|
||||
opacity: 1;
|
||||
-webkit-transform: rotateY(0deg);
|
||||
transform: rotateY(0deg); } }
|
||||
|
||||
@keyframes vex-flipin-horizontal {
|
||||
0% {
|
||||
opacity: 0;
|
||||
-webkit-transform: rotateY(-90deg);
|
||||
transform: rotateY(-90deg); }
|
||||
100% {
|
||||
opacity: 1;
|
||||
-webkit-transform: rotateY(0deg);
|
||||
transform: rotateY(0deg); } }
|
||||
|
||||
@-webkit-keyframes vex-flipout-horizontal {
|
||||
0% {
|
||||
opacity: 1;
|
||||
-webkit-transform: rotateY(0deg);
|
||||
transform: rotateY(0deg); }
|
||||
100% {
|
||||
opacity: 0;
|
||||
-webkit-transform: rotateY(90deg);
|
||||
transform: rotateY(90deg); } }
|
||||
|
||||
@keyframes vex-flipout-horizontal {
|
||||
0% {
|
||||
opacity: 1;
|
||||
-webkit-transform: rotateY(0deg);
|
||||
transform: rotateY(0deg); }
|
||||
100% {
|
||||
opacity: 0;
|
||||
-webkit-transform: rotateY(90deg);
|
||||
transform: rotateY(90deg); } }
|
||||
|
||||
.vex.vex-theme-flat-attack {
|
||||
-webkit-perspective: 1300px;
|
||||
perspective: 1300px;
|
||||
-webkit-perspective-origin: 50% 150px;
|
||||
perspective-origin: 50% 150px;
|
||||
padding-top: 100px;
|
||||
padding-bottom: 100px;
|
||||
font-size: 1.5em; }
|
||||
.vex.vex-theme-flat-attack.vex-closing .vex-content {
|
||||
-webkit-animation: vex-flipout-horizontal .5s forwards;
|
||||
animation: vex-flipout-horizontal .5s forwards; }
|
||||
.vex.vex-theme-flat-attack .vex-content {
|
||||
-webkit-transform-style: preserve-3d;
|
||||
transform-style: preserve-3d;
|
||||
-webkit-animation: vex-flipin-horizontal .5s;
|
||||
animation: vex-flipin-horizontal .5s; }
|
||||
.vex.vex-theme-flat-attack .vex-content {
|
||||
font-family: "Helvetica Neue", sans-serif;
|
||||
font-weight: 200;
|
||||
background: #fff;
|
||||
color: #444;
|
||||
padding: 2em 2em 3em 2em;
|
||||
line-height: 1.5em;
|
||||
position: relative;
|
||||
margin: 0 auto;
|
||||
max-width: 100%;
|
||||
width: 600px; }
|
||||
.vex.vex-theme-flat-attack .vex-content h1, .vex.vex-theme-flat-attack .vex-content h2, .vex.vex-theme-flat-attack .vex-content h3, .vex.vex-theme-flat-attack .vex-content h4, .vex.vex-theme-flat-attack .vex-content h5, .vex.vex-theme-flat-attack .vex-content h6, .vex.vex-theme-flat-attack .vex-content p, .vex.vex-theme-flat-attack .vex-content ul, .vex.vex-theme-flat-attack .vex-content li {
|
||||
color: inherit; }
|
||||
.vex.vex-theme-flat-attack .vex-close {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
cursor: pointer; }
|
||||
.vex.vex-theme-flat-attack .vex-close:before {
|
||||
font-family: "Helvetica Neue", sans-serif;
|
||||
font-weight: 100;
|
||||
line-height: 1px;
|
||||
padding-top: .5em;
|
||||
display: block;
|
||||
font-size: 2em;
|
||||
text-indent: 1px;
|
||||
overflow: hidden;
|
||||
height: 1.25em;
|
||||
width: 1.25em;
|
||||
text-align: center;
|
||||
top: 0;
|
||||
right: 0;
|
||||
color: #fff;
|
||||
background: #666; }
|
||||
.vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-message {
|
||||
margin-bottom: .5em; }
|
||||
.vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input {
|
||||
margin-bottom: .5em; }
|
||||
.vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input textarea, .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="date"], .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="datetime"], .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="datetime-local"], .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="email"], .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="month"], .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="number"], .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="password"], .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="search"], .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="tel"], .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="text"], .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="time"], .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="url"], .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="week"] {
|
||||
border-radius: 3px;
|
||||
background: #f0f0f0;
|
||||
width: 100%;
|
||||
padding: .25em .67em;
|
||||
border: 0;
|
||||
font-family: inherit;
|
||||
font-weight: inherit;
|
||||
font-size: inherit;
|
||||
min-height: 2.5em;
|
||||
margin: 0 0 .25em; }
|
||||
.vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input textarea:focus, .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="date"]:focus, .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="datetime"]:focus, .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="datetime-local"]:focus, .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="email"]:focus, .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="month"]:focus, .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="number"]:focus, .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="password"]:focus, .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="search"]:focus, .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="tel"]:focus, .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="text"]:focus, .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="time"]:focus, .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="url"]:focus, .vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-input input[type="week"]:focus {
|
||||
box-shadow: inset 0 0 0 2px #666;
|
||||
outline: none; }
|
||||
.vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-buttons {
|
||||
*zoom: 1;
|
||||
padding-top: 1em;
|
||||
margin-bottom: -3em;
|
||||
margin-left: -2em;
|
||||
margin-right: -2em; }
|
||||
.vex.vex-theme-flat-attack .vex-dialog-form .vex-dialog-buttons:after {
|
||||
content: "";
|
||||
display: table;
|
||||
clear: both; }
|
||||
.vex.vex-theme-flat-attack .vex-dialog-button {
|
||||
border-radius: 0;
|
||||
border: 0;
|
||||
margin: 0;
|
||||
float: right;
|
||||
padding: .5em 1em;
|
||||
font-size: 1.13em;
|
||||
text-transform: uppercase;
|
||||
font-weight: 200;
|
||||
letter-spacing: .1em;
|
||||
line-height: 1em;
|
||||
font-family: inherit; }
|
||||
.vex.vex-theme-flat-attack .vex-dialog-button.vex-last {
|
||||
margin-left: 0; }
|
||||
.vex.vex-theme-flat-attack .vex-dialog-button:focus {
|
||||
outline: none; }
|
||||
.vex.vex-theme-flat-attack .vex-dialog-button.vex-dialog-button-primary {
|
||||
background: #666;
|
||||
color: #fff; }
|
||||
.vex.vex-theme-flat-attack .vex-dialog-button.vex-dialog-button-primary:focus {
|
||||
box-shadow: inset 0 3px rgba(0, 0, 0, 0.2); }
|
||||
.vex.vex-theme-flat-attack .vex-dialog-button.vex-dialog-button-secondary {
|
||||
background: #fff;
|
||||
color: #ccc; }
|
||||
.vex.vex-theme-flat-attack .vex-dialog-button.vex-dialog-button-secondary:focus {
|
||||
box-shadow: inset 0 3px #aaa;
|
||||
background: #eee;
|
||||
color: #777; }
|
||||
.vex.vex-theme-flat-attack .vex-dialog-button.vex-dialog-button-secondary:hover, .vex.vex-theme-flat-attack .vex-dialog-button.vex-dialog-button-secondary:active {
|
||||
color: #777; }
|
||||
.vex.vex-theme-flat-attack.vex-theme-flat-attack-pink .vex-close:before {
|
||||
background: #ff7ea7; }
|
||||
.vex.vex-theme-flat-attack.vex-theme-flat-attack-pink .vex-dialog-form .vex-dialog-input select:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-pink .vex-dialog-form .vex-dialog-input textarea:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-pink .vex-dialog-form .vex-dialog-input input[type="date"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-pink .vex-dialog-form .vex-dialog-input input[type="datetime"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-pink .vex-dialog-form .vex-dialog-input input[type="datetime-local"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-pink .vex-dialog-form .vex-dialog-input input[type="email"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-pink .vex-dialog-form .vex-dialog-input input[type="month"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-pink .vex-dialog-form .vex-dialog-input input[type="number"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-pink .vex-dialog-form .vex-dialog-input input[type="password"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-pink .vex-dialog-form .vex-dialog-input input[type="search"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-pink .vex-dialog-form .vex-dialog-input input[type="tel"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-pink .vex-dialog-form .vex-dialog-input input[type="text"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-pink .vex-dialog-form .vex-dialog-input input[type="time"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-pink .vex-dialog-form .vex-dialog-input input[type="url"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-pink .vex-dialog-form .vex-dialog-input input[type="week"]:focus {
|
||||
box-shadow: inset 0 0 0 2px #ff7ea7; }
|
||||
.vex.vex-theme-flat-attack.vex-theme-flat-attack-pink .vex-dialog-form .vex-dialog-buttons .vex-dialog-button.vex-dialog-button-primary {
|
||||
background: #ff7ea7; }
|
||||
.vex.vex-theme-flat-attack.vex-theme-flat-attack-red .vex-close:before {
|
||||
background: #ce4a55; }
|
||||
.vex.vex-theme-flat-attack.vex-theme-flat-attack-red .vex-dialog-form .vex-dialog-input select:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-red .vex-dialog-form .vex-dialog-input textarea:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-red .vex-dialog-form .vex-dialog-input input[type="date"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-red .vex-dialog-form .vex-dialog-input input[type="datetime"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-red .vex-dialog-form .vex-dialog-input input[type="datetime-local"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-red .vex-dialog-form .vex-dialog-input input[type="email"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-red .vex-dialog-form .vex-dialog-input input[type="month"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-red .vex-dialog-form .vex-dialog-input input[type="number"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-red .vex-dialog-form .vex-dialog-input input[type="password"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-red .vex-dialog-form .vex-dialog-input input[type="search"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-red .vex-dialog-form .vex-dialog-input input[type="tel"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-red .vex-dialog-form .vex-dialog-input input[type="text"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-red .vex-dialog-form .vex-dialog-input input[type="time"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-red .vex-dialog-form .vex-dialog-input input[type="url"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-red .vex-dialog-form .vex-dialog-input input[type="week"]:focus {
|
||||
box-shadow: inset 0 0 0 2px #ce4a55; }
|
||||
.vex.vex-theme-flat-attack.vex-theme-flat-attack-red .vex-dialog-form .vex-dialog-buttons .vex-dialog-button.vex-dialog-button-primary {
|
||||
background: #ce4a55; }
|
||||
.vex.vex-theme-flat-attack.vex-theme-flat-attack-green .vex-close:before {
|
||||
background: #34b989; }
|
||||
.vex.vex-theme-flat-attack.vex-theme-flat-attack-green .vex-dialog-form .vex-dialog-input select:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-green .vex-dialog-form .vex-dialog-input textarea:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-green .vex-dialog-form .vex-dialog-input input[type="date"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-green .vex-dialog-form .vex-dialog-input input[type="datetime"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-green .vex-dialog-form .vex-dialog-input input[type="datetime-local"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-green .vex-dialog-form .vex-dialog-input input[type="email"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-green .vex-dialog-form .vex-dialog-input input[type="month"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-green .vex-dialog-form .vex-dialog-input input[type="number"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-green .vex-dialog-form .vex-dialog-input input[type="password"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-green .vex-dialog-form .vex-dialog-input input[type="search"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-green .vex-dialog-form .vex-dialog-input input[type="tel"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-green .vex-dialog-form .vex-dialog-input input[type="text"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-green .vex-dialog-form .vex-dialog-input input[type="time"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-green .vex-dialog-form .vex-dialog-input input[type="url"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-green .vex-dialog-form .vex-dialog-input input[type="week"]:focus {
|
||||
box-shadow: inset 0 0 0 2px #34b989; }
|
||||
.vex.vex-theme-flat-attack.vex-theme-flat-attack-green .vex-dialog-form .vex-dialog-buttons .vex-dialog-button.vex-dialog-button-primary {
|
||||
background: #34b989; }
|
||||
.vex.vex-theme-flat-attack.vex-theme-flat-attack-blue .vex-close:before {
|
||||
background: #477FA5; }
|
||||
.vex.vex-theme-flat-attack.vex-theme-flat-attack-blue .vex-dialog-form .vex-dialog-input select:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-blue .vex-dialog-form .vex-dialog-input textarea:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-blue .vex-dialog-form .vex-dialog-input input[type="date"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-blue .vex-dialog-form .vex-dialog-input input[type="datetime"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-blue .vex-dialog-form .vex-dialog-input input[type="datetime-local"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-blue .vex-dialog-form .vex-dialog-input input[type="email"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-blue .vex-dialog-form .vex-dialog-input input[type="month"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-blue .vex-dialog-form .vex-dialog-input input[type="number"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-blue .vex-dialog-form .vex-dialog-input input[type="password"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-blue .vex-dialog-form .vex-dialog-input input[type="search"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-blue .vex-dialog-form .vex-dialog-input input[type="tel"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-blue .vex-dialog-form .vex-dialog-input input[type="text"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-blue .vex-dialog-form .vex-dialog-input input[type="time"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-blue .vex-dialog-form .vex-dialog-input input[type="url"]:focus, .vex.vex-theme-flat-attack.vex-theme-flat-attack-blue .vex-dialog-form .vex-dialog-input input[type="week"]:focus {
|
||||
box-shadow: inset 0 0 0 2px #477FA5; }
|
||||
.vex.vex-theme-flat-attack.vex-theme-flat-attack-blue .vex-dialog-form .vex-dialog-buttons .vex-dialog-button.vex-dialog-button-primary {
|
||||
background: #477FA5; }
|
||||
|
||||
.vex-loading-spinner.vex-theme-flat-attack {
|
||||
height: 4em;
|
||||
width: 4em; }
|
165
BTCPayServer/wwwroot/vendor/vex/css/vex-theme-os.css
vendored
Normal file
165
BTCPayServer/wwwroot/vendor/vex/css/vex-theme-os.css
vendored
Normal file
@ -0,0 +1,165 @@
|
||||
@-webkit-keyframes vex-flyin {
|
||||
0% {
|
||||
opacity: 0;
|
||||
-webkit-transform: translateY(-40px);
|
||||
transform: translateY(-40px); }
|
||||
100% {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateY(0);
|
||||
transform: translateY(0); } }
|
||||
|
||||
@keyframes vex-flyin {
|
||||
0% {
|
||||
opacity: 0;
|
||||
-webkit-transform: translateY(-40px);
|
||||
transform: translateY(-40px); }
|
||||
100% {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateY(0);
|
||||
transform: translateY(0); } }
|
||||
|
||||
@-webkit-keyframes vex-flyout {
|
||||
0% {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateY(0);
|
||||
transform: translateY(0); }
|
||||
100% {
|
||||
opacity: 0;
|
||||
-webkit-transform: translateY(-40px);
|
||||
transform: translateY(-40px); } }
|
||||
|
||||
@keyframes vex-flyout {
|
||||
0% {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateY(0);
|
||||
transform: translateY(0); }
|
||||
100% {
|
||||
opacity: 0;
|
||||
-webkit-transform: translateY(-40px);
|
||||
transform: translateY(-40px); } }
|
||||
|
||||
@-webkit-keyframes vex-pulse {
|
||||
0% {
|
||||
box-shadow: inset 0 0 0 300px transparent; }
|
||||
70% {
|
||||
box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25); }
|
||||
100% {
|
||||
box-shadow: inset 0 0 0 300px transparent; } }
|
||||
|
||||
@keyframes vex-pulse {
|
||||
0% {
|
||||
box-shadow: inset 0 0 0 300px transparent; }
|
||||
70% {
|
||||
box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25); }
|
||||
100% {
|
||||
box-shadow: inset 0 0 0 300px transparent; } }
|
||||
|
||||
.vex.vex-theme-os {
|
||||
padding-top: 160px;
|
||||
padding-bottom: 160px; }
|
||||
.vex.vex-theme-os.vex-closing .vex-content {
|
||||
-webkit-animation: vex-flyout .5s forwards;
|
||||
animation: vex-flyout .5s forwards; }
|
||||
.vex.vex-theme-os .vex-content {
|
||||
-webkit-animation: vex-flyin .5s;
|
||||
animation: vex-flyin .5s; }
|
||||
.vex.vex-theme-os .vex-content {
|
||||
border-radius: 5px;
|
||||
box-shadow: inset 0 1px #a6a6a6, 0 0 0 1px rgba(0, 0, 0, 0.08);
|
||||
font-family: "Helvetica Neue", sans-serif;
|
||||
border-top: 20px solid #bbb;
|
||||
background: #f0f0f0;
|
||||
color: #444;
|
||||
padding: 1em;
|
||||
position: relative;
|
||||
margin: 0 auto;
|
||||
max-width: 100%;
|
||||
width: 450px;
|
||||
font-size: 1.1em;
|
||||
line-height: 1.5em; }
|
||||
.vex.vex-theme-os .vex-content h1, .vex.vex-theme-os .vex-content h2, .vex.vex-theme-os .vex-content h3, .vex.vex-theme-os .vex-content h4, .vex.vex-theme-os .vex-content h5, .vex.vex-theme-os .vex-content h6, .vex.vex-theme-os .vex-content p, .vex.vex-theme-os .vex-content ul, .vex.vex-theme-os .vex-content li {
|
||||
color: inherit; }
|
||||
.vex.vex-theme-os .vex-close {
|
||||
border-radius: 0 5px 0 0;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
cursor: pointer; }
|
||||
.vex.vex-theme-os .vex-close:before {
|
||||
border-radius: 3px;
|
||||
position: absolute;
|
||||
content: "\00D7";
|
||||
font-size: 26px;
|
||||
font-weight: normal;
|
||||
line-height: 31px;
|
||||
height: 30px;
|
||||
width: 30px;
|
||||
text-align: center;
|
||||
top: 3px;
|
||||
right: 3px;
|
||||
color: #bbb;
|
||||
background: transparent; }
|
||||
.vex.vex-theme-os .vex-close:hover:before, .vex.vex-theme-os .vex-close:active:before {
|
||||
color: #777;
|
||||
background: #e0e0e0; }
|
||||
.vex.vex-theme-os .vex-dialog-form .vex-dialog-message {
|
||||
margin-bottom: .5em; }
|
||||
.vex.vex-theme-os .vex-dialog-form .vex-dialog-input {
|
||||
margin-bottom: 1em; }
|
||||
.vex.vex-theme-os .vex-dialog-form .vex-dialog-input select, .vex.vex-theme-os .vex-dialog-form .vex-dialog-input textarea, .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="date"], .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="datetime"], .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="datetime-local"], .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="email"], .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="month"], .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="number"], .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="password"], .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="search"], .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="tel"], .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="text"], .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="time"], .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="url"], .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="week"] {
|
||||
border-radius: 3px;
|
||||
background: #fff;
|
||||
width: 100%;
|
||||
padding: .25em .67em;
|
||||
border: 0;
|
||||
font-family: inherit;
|
||||
font-weight: inherit;
|
||||
font-size: inherit;
|
||||
min-height: 2.5em;
|
||||
margin: 0 0 .25em; }
|
||||
.vex.vex-theme-os .vex-dialog-form .vex-dialog-input select:focus, .vex.vex-theme-os .vex-dialog-form .vex-dialog-input textarea:focus, .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="date"]:focus, .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="datetime"]:focus, .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="datetime-local"]:focus, .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="email"]:focus, .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="month"]:focus, .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="number"]:focus, .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="password"]:focus, .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="search"]:focus, .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="tel"]:focus, .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="text"]:focus, .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="time"]:focus, .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="url"]:focus, .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="week"]:focus {
|
||||
box-shadow: inset 0 0 0 1px #3288e6;
|
||||
outline: none; }
|
||||
.vex.vex-theme-os .vex-dialog-form .vex-dialog-buttons {
|
||||
*zoom: 1; }
|
||||
.vex.vex-theme-os .vex-dialog-form .vex-dialog-buttons:after {
|
||||
content: "";
|
||||
display: table;
|
||||
clear: both; }
|
||||
.vex.vex-theme-os .vex-dialog-button {
|
||||
border-radius: 3px;
|
||||
border: 0;
|
||||
float: right;
|
||||
margin: 0 0 0 .5em;
|
||||
font-family: inherit;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: .1em;
|
||||
font-size: .8em;
|
||||
line-height: 1em;
|
||||
padding: .75em 2em; }
|
||||
.vex.vex-theme-os .vex-dialog-button.vex-last {
|
||||
margin-left: 0; }
|
||||
.vex.vex-theme-os .vex-dialog-button:focus {
|
||||
-webkit-animation: vex-pulse 1.1s infinite;
|
||||
animation: vex-pulse 1.1s infinite;
|
||||
outline: none; }
|
||||
@media (max-width: 568px) {
|
||||
.vex.vex-theme-os .vex-dialog-button:focus {
|
||||
-webkit-animation: none;
|
||||
animation: none; } }
|
||||
.vex.vex-theme-os .vex-dialog-button.vex-dialog-button-primary {
|
||||
background: #3288e6;
|
||||
color: #fff; }
|
||||
.vex.vex-theme-os .vex-dialog-button.vex-dialog-button-secondary {
|
||||
background: #e0e0e0;
|
||||
color: #777; }
|
||||
|
||||
.vex-loading-spinner.vex-theme-os {
|
||||
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2), 0 0 0.5em rgba(0, 0, 0, 0.2);
|
||||
border-radius: 100%;
|
||||
background: rgba(255, 255, 255, 0.2);
|
||||
width: 0;
|
||||
height: 0;
|
||||
border: 1.2em solid #bbb;
|
||||
border-top-color: #f0f0f0;
|
||||
border-bottom-color: #f0f0f0; }
|
107
BTCPayServer/wwwroot/vendor/vex/css/vex-theme-plain.css
vendored
Normal file
107
BTCPayServer/wwwroot/vendor/vex/css/vex-theme-plain.css
vendored
Normal file
@ -0,0 +1,107 @@
|
||||
@-webkit-keyframes vex-pulse {
|
||||
0% {
|
||||
box-shadow: inset 0 0 0 300px transparent; }
|
||||
70% {
|
||||
box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25); }
|
||||
100% {
|
||||
box-shadow: inset 0 0 0 300px transparent; } }
|
||||
|
||||
@keyframes vex-pulse {
|
||||
0% {
|
||||
box-shadow: inset 0 0 0 300px transparent; }
|
||||
70% {
|
||||
box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25); }
|
||||
100% {
|
||||
box-shadow: inset 0 0 0 300px transparent; } }
|
||||
|
||||
.vex.vex-theme-plain {
|
||||
padding-top: 160px;
|
||||
padding-bottom: 160px; }
|
||||
.vex.vex-theme-plain .vex-content {
|
||||
font-family: "Helvetica Neue", sans-serif;
|
||||
background: #fff;
|
||||
color: #444;
|
||||
padding: 1em;
|
||||
position: relative;
|
||||
margin: 0 auto;
|
||||
max-width: 100%;
|
||||
width: 450px;
|
||||
font-size: 1.1em;
|
||||
line-height: 1.5em; }
|
||||
.vex.vex-theme-plain .vex-content h1, .vex.vex-theme-plain .vex-content h2, .vex.vex-theme-plain .vex-content h3, .vex.vex-theme-plain .vex-content h4, .vex.vex-theme-plain .vex-content h5, .vex.vex-theme-plain .vex-content h6, .vex.vex-theme-plain .vex-content p, .vex.vex-theme-plain .vex-content ul, .vex.vex-theme-plain .vex-content li {
|
||||
color: inherit; }
|
||||
.vex.vex-theme-plain .vex-close {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
cursor: pointer; }
|
||||
.vex.vex-theme-plain .vex-close:before {
|
||||
position: absolute;
|
||||
content: "\00D7";
|
||||
font-size: 26px;
|
||||
font-weight: normal;
|
||||
line-height: 31px;
|
||||
height: 30px;
|
||||
width: 30px;
|
||||
text-align: center;
|
||||
top: 3px;
|
||||
right: 3px;
|
||||
color: #bbb;
|
||||
background: transparent; }
|
||||
.vex.vex-theme-plain .vex-close:hover:before, .vex.vex-theme-plain .vex-close:active:before {
|
||||
color: #777;
|
||||
background: #e0e0e0; }
|
||||
.vex.vex-theme-plain .vex-dialog-form .vex-dialog-message {
|
||||
margin-bottom: .5em; }
|
||||
.vex.vex-theme-plain .vex-dialog-form .vex-dialog-input {
|
||||
margin-bottom: 1em; }
|
||||
.vex.vex-theme-plain .vex-dialog-form .vex-dialog-input select, .vex.vex-theme-plain .vex-dialog-form .vex-dialog-input textarea, .vex.vex-theme-plain .vex-dialog-form .vex-dialog-input input[type="date"], .vex.vex-theme-plain .vex-dialog-form .vex-dialog-input input[type="datetime"], .vex.vex-theme-plain .vex-dialog-form .vex-dialog-input input[type="datetime-local"], .vex.vex-theme-plain .vex-dialog-form .vex-dialog-input input[type="email"], .vex.vex-theme-plain .vex-dialog-form .vex-dialog-input input[type="month"], .vex.vex-theme-plain .vex-dialog-form .vex-dialog-input input[type="number"], .vex.vex-theme-plain .vex-dialog-form .vex-dialog-input input[type="password"], .vex.vex-theme-plain .vex-dialog-form .vex-dialog-input input[type="search"], .vex.vex-theme-plain .vex-dialog-form .vex-dialog-input input[type="tel"], .vex.vex-theme-plain .vex-dialog-form .vex-dialog-input input[type="text"], .vex.vex-theme-plain .vex-dialog-form .vex-dialog-input input[type="time"], .vex.vex-theme-plain .vex-dialog-form .vex-dialog-input input[type="url"], .vex.vex-theme-plain .vex-dialog-form .vex-dialog-input input[type="week"] {
|
||||
background: #f0f0f0;
|
||||
width: 100%;
|
||||
padding: .25em .67em;
|
||||
border: 0;
|
||||
font-family: inherit;
|
||||
font-weight: inherit;
|
||||
font-size: inherit;
|
||||
min-height: 2.5em;
|
||||
margin: 0 0 .25em; }
|
||||
.vex.vex-theme-plain .vex-dialog-form .vex-dialog-input select:focus, .vex.vex-theme-plain .vex-dialog-form .vex-dialog-input textarea:focus, .vex.vex-theme-plain .vex-dialog-form .vex-dialog-input input[type="date"]:focus, .vex.vex-theme-plain .vex-dialog-form .vex-dialog-input input[type="datetime"]:focus, .vex.vex-theme-plain .vex-dialog-form .vex-dialog-input input[type="datetime-local"]:focus, .vex.vex-theme-plain .vex-dialog-form .vex-dialog-input input[type="email"]:focus, .vex.vex-theme-plain .vex-dialog-form .vex-dialog-input input[type="month"]:focus, .vex.vex-theme-plain .vex-dialog-form .vex-dialog-input input[type="number"]:focus, .vex.vex-theme-plain .vex-dialog-form .vex-dialog-input input[type="password"]:focus, .vex.vex-theme-plain .vex-dialog-form .vex-dialog-input input[type="search"]:focus, .vex.vex-theme-plain .vex-dialog-form .vex-dialog-input input[type="tel"]:focus, .vex.vex-theme-plain .vex-dialog-form .vex-dialog-input input[type="text"]:focus, .vex.vex-theme-plain .vex-dialog-form .vex-dialog-input input[type="time"]:focus, .vex.vex-theme-plain .vex-dialog-form .vex-dialog-input input[type="url"]:focus, .vex.vex-theme-plain .vex-dialog-form .vex-dialog-input input[type="week"]:focus {
|
||||
box-shadow: inset 0 0 0 2px rgba(0, 0, 0, 0.2);
|
||||
outline: none; }
|
||||
.vex.vex-theme-plain .vex-dialog-form .vex-dialog-buttons {
|
||||
*zoom: 1; }
|
||||
.vex.vex-theme-plain .vex-dialog-form .vex-dialog-buttons:after {
|
||||
content: "";
|
||||
display: table;
|
||||
clear: both; }
|
||||
.vex.vex-theme-plain .vex-dialog-button {
|
||||
border-radius: 0;
|
||||
border: 0;
|
||||
float: right;
|
||||
margin: 0 0 0 .5em;
|
||||
font-family: inherit;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: .1em;
|
||||
font-size: .8em;
|
||||
line-height: 1em;
|
||||
padding: .75em 2em; }
|
||||
.vex.vex-theme-plain .vex-dialog-button.vex-last {
|
||||
margin-left: 0; }
|
||||
.vex.vex-theme-plain .vex-dialog-button:focus {
|
||||
-webkit-animation: vex-pulse 1.1s infinite;
|
||||
animation: vex-pulse 1.1s infinite;
|
||||
outline: none; }
|
||||
@media (max-width: 568px) {
|
||||
.vex.vex-theme-plain .vex-dialog-button:focus {
|
||||
-webkit-animation: none;
|
||||
animation: none; } }
|
||||
.vex.vex-theme-plain .vex-dialog-button.vex-dialog-button-primary {
|
||||
background: #3288e6;
|
||||
color: #fff; }
|
||||
.vex.vex-theme-plain .vex-dialog-button.vex-dialog-button-secondary {
|
||||
background: #e0e0e0;
|
||||
color: #777; }
|
||||
|
||||
.vex-loading-spinner.vex-theme-plain {
|
||||
height: 2.5em;
|
||||
width: 2.5em; }
|
178
BTCPayServer/wwwroot/vendor/vex/css/vex-theme-top.css
vendored
Normal file
178
BTCPayServer/wwwroot/vendor/vex/css/vex-theme-top.css
vendored
Normal file
@ -0,0 +1,178 @@
|
||||
@-webkit-keyframes vex-dropin {
|
||||
0% {
|
||||
-webkit-transform: translateY(0);
|
||||
transform: translateY(0);
|
||||
opacity: 0; }
|
||||
1% {
|
||||
-webkit-transform: translateY(-800px);
|
||||
transform: translateY(-800px);
|
||||
opacity: 0; }
|
||||
2% {
|
||||
-webkit-transform: translateY(-800px);
|
||||
transform: translateY(-800px);
|
||||
opacity: 1; }
|
||||
100% {
|
||||
-webkit-transform: translateY(0);
|
||||
transform: translateY(0);
|
||||
opacity: 1; } }
|
||||
|
||||
@keyframes vex-dropin {
|
||||
0% {
|
||||
-webkit-transform: translateY(0);
|
||||
transform: translateY(0);
|
||||
opacity: 0; }
|
||||
1% {
|
||||
-webkit-transform: translateY(-800px);
|
||||
transform: translateY(-800px);
|
||||
opacity: 0; }
|
||||
2% {
|
||||
-webkit-transform: translateY(-800px);
|
||||
transform: translateY(-800px);
|
||||
opacity: 1; }
|
||||
100% {
|
||||
-webkit-transform: translateY(0);
|
||||
transform: translateY(0);
|
||||
opacity: 1; } }
|
||||
|
||||
@-webkit-keyframes vex-dropout {
|
||||
0% {
|
||||
-webkit-transform: translateY(0);
|
||||
transform: translateY(0); }
|
||||
100% {
|
||||
-webkit-transform: translateY(-800px);
|
||||
transform: translateY(-800px); } }
|
||||
|
||||
@keyframes vex-dropout {
|
||||
0% {
|
||||
-webkit-transform: translateY(0);
|
||||
transform: translateY(0); }
|
||||
100% {
|
||||
-webkit-transform: translateY(-800px);
|
||||
transform: translateY(-800px); } }
|
||||
|
||||
@-webkit-keyframes vex-pulse {
|
||||
0% {
|
||||
box-shadow: inset 0 0 0 300px transparent; }
|
||||
70% {
|
||||
box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25); }
|
||||
100% {
|
||||
box-shadow: inset 0 0 0 300px transparent; } }
|
||||
|
||||
@keyframes vex-pulse {
|
||||
0% {
|
||||
box-shadow: inset 0 0 0 300px transparent; }
|
||||
70% {
|
||||
box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25); }
|
||||
100% {
|
||||
box-shadow: inset 0 0 0 300px transparent; } }
|
||||
|
||||
.vex.vex-theme-top.vex-closing .vex-content {
|
||||
-webkit-animation: vex-dropout .5s forwards;
|
||||
animation: vex-dropout .5s forwards; }
|
||||
|
||||
.vex.vex-theme-top .vex-content {
|
||||
-webkit-animation: vex-dropin .5s;
|
||||
animation: vex-dropin .5s; }
|
||||
|
||||
.vex.vex-theme-top .vex-content {
|
||||
border-radius: 0 0 5px 5px;
|
||||
font-family: "Helvetica Neue", sans-serif;
|
||||
background: #f0f0f0;
|
||||
color: #444;
|
||||
padding: 1em;
|
||||
position: relative;
|
||||
margin: 0 auto;
|
||||
max-width: 100%;
|
||||
width: 450px;
|
||||
font-size: 1.1em;
|
||||
line-height: 1.5em; }
|
||||
.vex.vex-theme-top .vex-content h1, .vex.vex-theme-top .vex-content h2, .vex.vex-theme-top .vex-content h3, .vex.vex-theme-top .vex-content h4, .vex.vex-theme-top .vex-content h5, .vex.vex-theme-top .vex-content h6, .vex.vex-theme-top .vex-content p, .vex.vex-theme-top .vex-content ul, .vex.vex-theme-top .vex-content li {
|
||||
color: inherit; }
|
||||
|
||||
.vex.vex-theme-top .vex-close {
|
||||
border-radius: 5px;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
cursor: pointer; }
|
||||
.vex.vex-theme-top .vex-close:before {
|
||||
border-radius: 3px;
|
||||
position: absolute;
|
||||
content: "\00D7";
|
||||
font-size: 26px;
|
||||
font-weight: normal;
|
||||
line-height: 31px;
|
||||
height: 30px;
|
||||
width: 30px;
|
||||
text-align: center;
|
||||
top: 3px;
|
||||
right: 3px;
|
||||
color: #bbb;
|
||||
background: transparent; }
|
||||
.vex.vex-theme-top .vex-close:hover:before, .vex.vex-theme-top .vex-close:active:before {
|
||||
color: #777;
|
||||
background: #e0e0e0; }
|
||||
|
||||
.vex.vex-theme-top .vex-dialog-form .vex-dialog-message {
|
||||
margin-bottom: .5em; }
|
||||
|
||||
.vex.vex-theme-top .vex-dialog-form .vex-dialog-input {
|
||||
margin-bottom: 1em; }
|
||||
.vex.vex-theme-top .vex-dialog-form .vex-dialog-input select, .vex.vex-theme-top .vex-dialog-form .vex-dialog-input textarea, .vex.vex-theme-top .vex-dialog-form .vex-dialog-input input[type="date"], .vex.vex-theme-top .vex-dialog-form .vex-dialog-input input[type="datetime"], .vex.vex-theme-top .vex-dialog-form .vex-dialog-input input[type="datetime-local"], .vex.vex-theme-top .vex-dialog-form .vex-dialog-input input[type="email"], .vex.vex-theme-top .vex-dialog-form .vex-dialog-input input[type="month"], .vex.vex-theme-top .vex-dialog-form .vex-dialog-input input[type="number"], .vex.vex-theme-top .vex-dialog-form .vex-dialog-input input[type="password"], .vex.vex-theme-top .vex-dialog-form .vex-dialog-input input[type="search"], .vex.vex-theme-top .vex-dialog-form .vex-dialog-input input[type="tel"], .vex.vex-theme-top .vex-dialog-form .vex-dialog-input input[type="text"], .vex.vex-theme-top .vex-dialog-form .vex-dialog-input input[type="time"], .vex.vex-theme-top .vex-dialog-form .vex-dialog-input input[type="url"], .vex.vex-theme-top .vex-dialog-form .vex-dialog-input input[type="week"] {
|
||||
border-radius: 3px;
|
||||
background: #fff;
|
||||
width: 100%;
|
||||
padding: .25em .67em;
|
||||
border: 0;
|
||||
font-family: inherit;
|
||||
font-weight: inherit;
|
||||
font-size: inherit;
|
||||
min-height: 2.5em;
|
||||
margin: 0 0 .25em; }
|
||||
.vex.vex-theme-top .vex-dialog-form .vex-dialog-input select:focus, .vex.vex-theme-top .vex-dialog-form .vex-dialog-input textarea:focus, .vex.vex-theme-top .vex-dialog-form .vex-dialog-input input[type="date"]:focus, .vex.vex-theme-top .vex-dialog-form .vex-dialog-input input[type="datetime"]:focus, .vex.vex-theme-top .vex-dialog-form .vex-dialog-input input[type="datetime-local"]:focus, .vex.vex-theme-top .vex-dialog-form .vex-dialog-input input[type="email"]:focus, .vex.vex-theme-top .vex-dialog-form .vex-dialog-input input[type="month"]:focus, .vex.vex-theme-top .vex-dialog-form .vex-dialog-input input[type="number"]:focus, .vex.vex-theme-top .vex-dialog-form .vex-dialog-input input[type="password"]:focus, .vex.vex-theme-top .vex-dialog-form .vex-dialog-input input[type="search"]:focus, .vex.vex-theme-top .vex-dialog-form .vex-dialog-input input[type="tel"]:focus, .vex.vex-theme-top .vex-dialog-form .vex-dialog-input input[type="text"]:focus, .vex.vex-theme-top .vex-dialog-form .vex-dialog-input input[type="time"]:focus, .vex.vex-theme-top .vex-dialog-form .vex-dialog-input input[type="url"]:focus, .vex.vex-theme-top .vex-dialog-form .vex-dialog-input input[type="week"]:focus {
|
||||
box-shadow: inset 0 0 0 2px #8dbdf1;
|
||||
outline: none; }
|
||||
|
||||
.vex.vex-theme-top .vex-dialog-form .vex-dialog-buttons {
|
||||
*zoom: 1; }
|
||||
.vex.vex-theme-top .vex-dialog-form .vex-dialog-buttons:after {
|
||||
content: "";
|
||||
display: table;
|
||||
clear: both; }
|
||||
|
||||
.vex.vex-theme-top .vex-dialog-button {
|
||||
border-radius: 3px;
|
||||
border: 0;
|
||||
float: right;
|
||||
margin: 0 0 0 .5em;
|
||||
font-family: inherit;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: .1em;
|
||||
font-size: .8em;
|
||||
line-height: 1em;
|
||||
padding: .75em 2em; }
|
||||
.vex.vex-theme-top .vex-dialog-button.vex-last {
|
||||
margin-left: 0; }
|
||||
.vex.vex-theme-top .vex-dialog-button:focus {
|
||||
-webkit-animation: vex-pulse 1.1s infinite;
|
||||
animation: vex-pulse 1.1s infinite;
|
||||
outline: none; }
|
||||
@media (max-width: 568px) {
|
||||
.vex.vex-theme-top .vex-dialog-button:focus {
|
||||
-webkit-animation: none;
|
||||
animation: none; } }
|
||||
.vex.vex-theme-top .vex-dialog-button.vex-dialog-button-primary {
|
||||
background: #3288e6;
|
||||
color: #fff; }
|
||||
.vex.vex-theme-top .vex-dialog-button.vex-dialog-button-secondary {
|
||||
background: #e0e0e0;
|
||||
color: #777; }
|
||||
|
||||
.vex-loading-spinner.vex-theme-top {
|
||||
box-shadow: 0 0 0 0.5em #f0f0f0, 0 0 1px 0.5em rgba(0, 0, 0, 0.3);
|
||||
border-radius: 100%;
|
||||
background: #f0f0f0;
|
||||
border: .2em solid transparent;
|
||||
border-top-color: #bbb;
|
||||
top: -1.1em;
|
||||
bottom: auto; }
|
110
BTCPayServer/wwwroot/vendor/vex/css/vex-theme-wireframe.css
vendored
Normal file
110
BTCPayServer/wwwroot/vendor/vex/css/vex-theme-wireframe.css
vendored
Normal file
@ -0,0 +1,110 @@
|
||||
@-webkit-keyframes vex-pulse {
|
||||
0% {
|
||||
box-shadow: inset 0 0 0 300px transparent; }
|
||||
70% {
|
||||
box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25); }
|
||||
100% {
|
||||
box-shadow: inset 0 0 0 300px transparent; } }
|
||||
|
||||
@keyframes vex-pulse {
|
||||
0% {
|
||||
box-shadow: inset 0 0 0 300px transparent; }
|
||||
70% {
|
||||
box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25); }
|
||||
100% {
|
||||
box-shadow: inset 0 0 0 300px transparent; } }
|
||||
|
||||
.vex.vex-theme-wireframe {
|
||||
padding-top: 160px;
|
||||
padding-bottom: 160px; }
|
||||
.vex.vex-theme-wireframe .vex-overlay {
|
||||
background: rgba(255, 255, 255, 0.4); }
|
||||
.vex.vex-theme-wireframe .vex-content {
|
||||
font-family: "Helvetica Neue", sans-serif;
|
||||
background: #fff;
|
||||
color: #000;
|
||||
border: 2px solid #000;
|
||||
padding: 2em;
|
||||
position: relative;
|
||||
margin: 0 auto;
|
||||
max-width: 100%;
|
||||
width: 400px;
|
||||
font-size: 1.1em;
|
||||
line-height: 1.5em; }
|
||||
.vex.vex-theme-wireframe .vex-content h1, .vex.vex-theme-wireframe .vex-content h2, .vex.vex-theme-wireframe .vex-content h3, .vex.vex-theme-wireframe .vex-content h4, .vex.vex-theme-wireframe .vex-content h5, .vex.vex-theme-wireframe .vex-content h6, .vex.vex-theme-wireframe .vex-content p, .vex.vex-theme-wireframe .vex-content ul, .vex.vex-theme-wireframe .vex-content li {
|
||||
color: inherit; }
|
||||
.vex.vex-theme-wireframe .vex-close {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
cursor: pointer; }
|
||||
.vex.vex-theme-wireframe .vex-close:before {
|
||||
position: absolute;
|
||||
content: "\00D7";
|
||||
font-size: 40px;
|
||||
font-weight: normal;
|
||||
line-height: 80px;
|
||||
height: 80px;
|
||||
width: 80px;
|
||||
text-align: center;
|
||||
top: 3px;
|
||||
right: 3px;
|
||||
color: #000; }
|
||||
.vex.vex-theme-wireframe .vex-close:hover:before, .vex.vex-theme-wireframe .vex-close:active:before {
|
||||
color: #000; }
|
||||
.vex.vex-theme-wireframe .vex-dialog-form .vex-dialog-message {
|
||||
margin-bottom: .5em; }
|
||||
.vex.vex-theme-wireframe .vex-dialog-form .vex-dialog-input {
|
||||
margin-bottom: 1em; }
|
||||
.vex.vex-theme-wireframe .vex-dialog-form .vex-dialog-input select, .vex.vex-theme-wireframe .vex-dialog-form .vex-dialog-input textarea, .vex.vex-theme-wireframe .vex-dialog-form .vex-dialog-input input[type="date"], .vex.vex-theme-wireframe .vex-dialog-form .vex-dialog-input input[type="datetime"], .vex.vex-theme-wireframe .vex-dialog-form .vex-dialog-input input[type="datetime-local"], .vex.vex-theme-wireframe .vex-dialog-form .vex-dialog-input input[type="email"], .vex.vex-theme-wireframe .vex-dialog-form .vex-dialog-input input[type="month"], .vex.vex-theme-wireframe .vex-dialog-form .vex-dialog-input input[type="number"], .vex.vex-theme-wireframe .vex-dialog-form .vex-dialog-input input[type="password"], .vex.vex-theme-wireframe .vex-dialog-form .vex-dialog-input input[type="search"], .vex.vex-theme-wireframe .vex-dialog-form .vex-dialog-input input[type="tel"], .vex.vex-theme-wireframe .vex-dialog-form .vex-dialog-input input[type="text"], .vex.vex-theme-wireframe .vex-dialog-form .vex-dialog-input input[type="time"], .vex.vex-theme-wireframe .vex-dialog-form .vex-dialog-input input[type="url"], .vex.vex-theme-wireframe .vex-dialog-form .vex-dialog-input input[type="week"] {
|
||||
background: #fff;
|
||||
width: 100%;
|
||||
padding: .25em .67em;
|
||||
font-family: inherit;
|
||||
font-weight: inherit;
|
||||
font-size: inherit;
|
||||
min-height: 2.5em;
|
||||
margin: 0 0 .25em;
|
||||
border: 2px solid #000; }
|
||||
.vex.vex-theme-wireframe .vex-dialog-form .vex-dialog-input select:focus, .vex.vex-theme-wireframe .vex-dialog-form .vex-dialog-input textarea:focus, .vex.vex-theme-wireframe .vex-dialog-form .vex-dialog-input input[type="date"]:focus, .vex.vex-theme-wireframe .vex-dialog-form .vex-dialog-input input[type="datetime"]:focus, .vex.vex-theme-wireframe .vex-dialog-form .vex-dialog-input input[type="datetime-local"]:focus, .vex.vex-theme-wireframe .vex-dialog-form .vex-dialog-input input[type="email"]:focus, .vex.vex-theme-wireframe .vex-dialog-form .vex-dialog-input input[type="month"]:focus, .vex.vex-theme-wireframe .vex-dialog-form .vex-dialog-input input[type="number"]:focus, .vex.vex-theme-wireframe .vex-dialog-form .vex-dialog-input input[type="password"]:focus, .vex.vex-theme-wireframe .vex-dialog-form .vex-dialog-input input[type="search"]:focus, .vex.vex-theme-wireframe .vex-dialog-form .vex-dialog-input input[type="tel"]:focus, .vex.vex-theme-wireframe .vex-dialog-form .vex-dialog-input input[type="text"]:focus, .vex.vex-theme-wireframe .vex-dialog-form .vex-dialog-input input[type="time"]:focus, .vex.vex-theme-wireframe .vex-dialog-form .vex-dialog-input input[type="url"]:focus, .vex.vex-theme-wireframe .vex-dialog-form .vex-dialog-input input[type="week"]:focus {
|
||||
border-style: dashed;
|
||||
outline: none; }
|
||||
.vex.vex-theme-wireframe .vex-dialog-form .vex-dialog-buttons {
|
||||
*zoom: 1; }
|
||||
.vex.vex-theme-wireframe .vex-dialog-form .vex-dialog-buttons:after {
|
||||
content: "";
|
||||
display: table;
|
||||
clear: both; }
|
||||
.vex.vex-theme-wireframe .vex-dialog-button {
|
||||
border-radius: 0;
|
||||
border: 0;
|
||||
float: right;
|
||||
margin: 0 0 0 .5em;
|
||||
font-family: inherit;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: .1em;
|
||||
font-size: .8em;
|
||||
line-height: 1em;
|
||||
padding: .75em 2em; }
|
||||
.vex.vex-theme-wireframe .vex-dialog-button.vex-last {
|
||||
margin-left: 0; }
|
||||
.vex.vex-theme-wireframe .vex-dialog-button:focus {
|
||||
-webkit-animation: vex-pulse 1.1s infinite;
|
||||
animation: vex-pulse 1.1s infinite;
|
||||
outline: none; }
|
||||
@media (max-width: 568px) {
|
||||
.vex.vex-theme-wireframe .vex-dialog-button:focus {
|
||||
-webkit-animation: none;
|
||||
animation: none; } }
|
||||
.vex.vex-theme-wireframe .vex-dialog-button.vex-dialog-button-primary {
|
||||
background: #000;
|
||||
color: #fff;
|
||||
border: 2px solid transparent; }
|
||||
.vex.vex-theme-wireframe .vex-dialog-button.vex-dialog-button-secondary {
|
||||
background: #fff;
|
||||
color: #000;
|
||||
border: 2px solid #000; }
|
||||
|
||||
.vex-loading-spinner.vex-theme-wireframe {
|
||||
height: 2.5em;
|
||||
width: 2.5em; }
|
117
BTCPayServer/wwwroot/vendor/vex/css/vex.css
vendored
Normal file
117
BTCPayServer/wwwroot/vendor/vex/css/vex.css
vendored
Normal file
@ -0,0 +1,117 @@
|
||||
@-webkit-keyframes vex-fadein {
|
||||
0% {
|
||||
opacity: 0; }
|
||||
100% {
|
||||
opacity: 1; } }
|
||||
|
||||
@keyframes vex-fadein {
|
||||
0% {
|
||||
opacity: 0; }
|
||||
100% {
|
||||
opacity: 1; } }
|
||||
|
||||
@-webkit-keyframes vex-fadeout {
|
||||
0% {
|
||||
opacity: 1; }
|
||||
100% {
|
||||
opacity: 0; } }
|
||||
|
||||
@keyframes vex-fadeout {
|
||||
0% {
|
||||
opacity: 1; }
|
||||
100% {
|
||||
opacity: 0; } }
|
||||
|
||||
@-webkit-keyframes vex-rotation {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg); }
|
||||
100% {
|
||||
-webkit-transform: rotate(359deg);
|
||||
transform: rotate(359deg); } }
|
||||
|
||||
@keyframes vex-rotation {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg); }
|
||||
100% {
|
||||
-webkit-transform: rotate(359deg);
|
||||
transform: rotate(359deg); } }
|
||||
|
||||
.vex, .vex *, .vex *:before, .vex *:after {
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box; }
|
||||
|
||||
.vex {
|
||||
position: fixed;
|
||||
overflow: auto;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
z-index: 1111;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0; }
|
||||
|
||||
.vex-scrollbar-measure {
|
||||
position: absolute;
|
||||
top: -9999px;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
overflow: scroll; }
|
||||
|
||||
.vex-overlay {
|
||||
-webkit-animation: vex-fadein .5s;
|
||||
animation: vex-fadein .5s;
|
||||
position: fixed;
|
||||
z-index: 1111;
|
||||
background: rgba(0, 0, 0, 0.4);
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0; }
|
||||
|
||||
.vex-overlay.vex-closing {
|
||||
-webkit-animation: vex-fadeout .5s forwards;
|
||||
animation: vex-fadeout .5s forwards; }
|
||||
|
||||
.vex-content {
|
||||
-webkit-animation: vex-fadein .5s;
|
||||
animation: vex-fadein .5s;
|
||||
background: #fff; }
|
||||
|
||||
.vex.vex-closing .vex-content {
|
||||
-webkit-animation: vex-fadeout .5s forwards;
|
||||
animation: vex-fadeout .5s forwards; }
|
||||
|
||||
.vex-close:before {
|
||||
font-family: Arial, sans-serif;
|
||||
content: "\00D7"; }
|
||||
|
||||
.vex-dialog-form {
|
||||
margin: 0; }
|
||||
|
||||
.vex-dialog-button {
|
||||
text-rendering: optimizeLegibility;
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
cursor: pointer;
|
||||
-webkit-tap-highlight-color: transparent; }
|
||||
|
||||
.vex-loading-spinner {
|
||||
-webkit-animation: vex-rotation .7s linear infinite;
|
||||
animation: vex-rotation .7s linear infinite;
|
||||
box-shadow: 0 0 1em rgba(0, 0, 0, 0.1);
|
||||
position: fixed;
|
||||
z-index: 1112;
|
||||
margin: auto;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
height: 2em;
|
||||
width: 2em;
|
||||
background: #fff; }
|
||||
|
||||
body.vex-open {
|
||||
overflow: hidden; }
|
1629
BTCPayServer/wwwroot/vendor/vex/js/vex.combined.js
vendored
Normal file
1629
BTCPayServer/wwwroot/vendor/vex/js/vex.combined.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2
BTCPayServer/wwwroot/vendor/vex/js/vex.combined.min.js
vendored
Normal file
2
BTCPayServer/wwwroot/vendor/vex/js/vex.combined.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
754
BTCPayServer/wwwroot/vendor/vex/js/vex.js
vendored
Normal file
754
BTCPayServer/wwwroot/vendor/vex/js/vex.js
vendored
Normal file
@ -0,0 +1,754 @@
|
||||
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.vex = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
|
||||
/*
|
||||
* classList.js: Cross-browser full element.classList implementation.
|
||||
* 2014-07-23
|
||||
*
|
||||
* By Eli Grey, http://eligrey.com
|
||||
* Public Domain.
|
||||
* NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.
|
||||
*/
|
||||
|
||||
/*global self, document, DOMException */
|
||||
|
||||
/*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js*/
|
||||
|
||||
/* Copied from MDN:
|
||||
* https://developer.mozilla.org/en-US/docs/Web/API/Element/classList
|
||||
*/
|
||||
|
||||
if ("document" in window.self) {
|
||||
|
||||
// Full polyfill for browsers with no classList support
|
||||
// Including IE < Edge missing SVGElement.classList
|
||||
if (!("classList" in document.createElement("_"))
|
||||
|| document.createElementNS && !("classList" in document.createElementNS("http://www.w3.org/2000/svg","g"))) {
|
||||
|
||||
(function (view) {
|
||||
|
||||
"use strict";
|
||||
|
||||
if (!('Element' in view)) return;
|
||||
|
||||
var
|
||||
classListProp = "classList"
|
||||
, protoProp = "prototype"
|
||||
, elemCtrProto = view.Element[protoProp]
|
||||
, objCtr = Object
|
||||
, strTrim = String[protoProp].trim || function () {
|
||||
return this.replace(/^\s+|\s+$/g, "");
|
||||
}
|
||||
, arrIndexOf = Array[protoProp].indexOf || function (item) {
|
||||
var
|
||||
i = 0
|
||||
, len = this.length
|
||||
;
|
||||
for (; i < len; i++) {
|
||||
if (i in this && this[i] === item) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
// Vendors: please allow content code to instantiate DOMExceptions
|
||||
, DOMEx = function (type, message) {
|
||||
this.name = type;
|
||||
this.code = DOMException[type];
|
||||
this.message = message;
|
||||
}
|
||||
, checkTokenAndGetIndex = function (classList, token) {
|
||||
if (token === "") {
|
||||
throw new DOMEx(
|
||||
"SYNTAX_ERR"
|
||||
, "An invalid or illegal string was specified"
|
||||
);
|
||||
}
|
||||
if (/\s/.test(token)) {
|
||||
throw new DOMEx(
|
||||
"INVALID_CHARACTER_ERR"
|
||||
, "String contains an invalid character"
|
||||
);
|
||||
}
|
||||
return arrIndexOf.call(classList, token);
|
||||
}
|
||||
, ClassList = function (elem) {
|
||||
var
|
||||
trimmedClasses = strTrim.call(elem.getAttribute("class") || "")
|
||||
, classes = trimmedClasses ? trimmedClasses.split(/\s+/) : []
|
||||
, i = 0
|
||||
, len = classes.length
|
||||
;
|
||||
for (; i < len; i++) {
|
||||
this.push(classes[i]);
|
||||
}
|
||||
this._updateClassName = function () {
|
||||
elem.setAttribute("class", this.toString());
|
||||
};
|
||||
}
|
||||
, classListProto = ClassList[protoProp] = []
|
||||
, classListGetter = function () {
|
||||
return new ClassList(this);
|
||||
}
|
||||
;
|
||||
// Most DOMException implementations don't allow calling DOMException's toString()
|
||||
// on non-DOMExceptions. Error's toString() is sufficient here.
|
||||
DOMEx[protoProp] = Error[protoProp];
|
||||
classListProto.item = function (i) {
|
||||
return this[i] || null;
|
||||
};
|
||||
classListProto.contains = function (token) {
|
||||
token += "";
|
||||
return checkTokenAndGetIndex(this, token) !== -1;
|
||||
};
|
||||
classListProto.add = function () {
|
||||
var
|
||||
tokens = arguments
|
||||
, i = 0
|
||||
, l = tokens.length
|
||||
, token
|
||||
, updated = false
|
||||
;
|
||||
do {
|
||||
token = tokens[i] + "";
|
||||
if (checkTokenAndGetIndex(this, token) === -1) {
|
||||
this.push(token);
|
||||
updated = true;
|
||||
}
|
||||
}
|
||||
while (++i < l);
|
||||
|
||||
if (updated) {
|
||||
this._updateClassName();
|
||||
}
|
||||
};
|
||||
classListProto.remove = function () {
|
||||
var
|
||||
tokens = arguments
|
||||
, i = 0
|
||||
, l = tokens.length
|
||||
, token
|
||||
, updated = false
|
||||
, index
|
||||
;
|
||||
do {
|
||||
token = tokens[i] + "";
|
||||
index = checkTokenAndGetIndex(this, token);
|
||||
while (index !== -1) {
|
||||
this.splice(index, 1);
|
||||
updated = true;
|
||||
index = checkTokenAndGetIndex(this, token);
|
||||
}
|
||||
}
|
||||
while (++i < l);
|
||||
|
||||
if (updated) {
|
||||
this._updateClassName();
|
||||
}
|
||||
};
|
||||
classListProto.toggle = function (token, force) {
|
||||
token += "";
|
||||
|
||||
var
|
||||
result = this.contains(token)
|
||||
, method = result ?
|
||||
force !== true && "remove"
|
||||
:
|
||||
force !== false && "add"
|
||||
;
|
||||
|
||||
if (method) {
|
||||
this[method](token);
|
||||
}
|
||||
|
||||
if (force === true || force === false) {
|
||||
return force;
|
||||
} else {
|
||||
return !result;
|
||||
}
|
||||
};
|
||||
classListProto.toString = function () {
|
||||
return this.join(" ");
|
||||
};
|
||||
|
||||
if (objCtr.defineProperty) {
|
||||
var classListPropDesc = {
|
||||
get: classListGetter
|
||||
, enumerable: true
|
||||
, configurable: true
|
||||
};
|
||||
try {
|
||||
objCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);
|
||||
} catch (ex) { // IE 8 doesn't support enumerable:true
|
||||
if (ex.number === -0x7FF5EC54) {
|
||||
classListPropDesc.enumerable = false;
|
||||
objCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);
|
||||
}
|
||||
}
|
||||
} else if (objCtr[protoProp].__defineGetter__) {
|
||||
elemCtrProto.__defineGetter__(classListProp, classListGetter);
|
||||
}
|
||||
|
||||
}(window.self));
|
||||
|
||||
} else {
|
||||
// There is full or partial native classList support, so just check if we need
|
||||
// to normalize the add/remove and toggle APIs.
|
||||
|
||||
(function () {
|
||||
"use strict";
|
||||
|
||||
var testElement = document.createElement("_");
|
||||
|
||||
testElement.classList.add("c1", "c2");
|
||||
|
||||
// Polyfill for IE 10/11 and Firefox <26, where classList.add and
|
||||
// classList.remove exist but support only one argument at a time.
|
||||
if (!testElement.classList.contains("c2")) {
|
||||
var createMethod = function(method) {
|
||||
var original = DOMTokenList.prototype[method];
|
||||
|
||||
DOMTokenList.prototype[method] = function(token) {
|
||||
var i, len = arguments.length;
|
||||
|
||||
for (i = 0; i < len; i++) {
|
||||
token = arguments[i];
|
||||
original.call(this, token);
|
||||
}
|
||||
};
|
||||
};
|
||||
createMethod('add');
|
||||
createMethod('remove');
|
||||
}
|
||||
|
||||
testElement.classList.toggle("c3", false);
|
||||
|
||||
// Polyfill for IE 10 and Firefox <24, where classList.toggle does not
|
||||
// support the second argument.
|
||||
if (testElement.classList.contains("c3")) {
|
||||
var _toggle = DOMTokenList.prototype.toggle;
|
||||
|
||||
DOMTokenList.prototype.toggle = function(token, force) {
|
||||
if (1 in arguments && !this.contains(token) === !force) {
|
||||
return force;
|
||||
} else {
|
||||
return _toggle.call(this, token);
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
testElement = null;
|
||||
}());
|
||||
}
|
||||
}
|
||||
|
||||
},{}],2:[function(require,module,exports){
|
||||
|
||||
/**
|
||||
* Expose `parse`.
|
||||
*/
|
||||
|
||||
module.exports = parse;
|
||||
|
||||
/**
|
||||
* Tests for browser support.
|
||||
*/
|
||||
|
||||
var innerHTMLBug = false;
|
||||
var bugTestDiv;
|
||||
if (typeof document !== 'undefined') {
|
||||
bugTestDiv = document.createElement('div');
|
||||
// Setup
|
||||
bugTestDiv.innerHTML = ' <link/><table></table><a href="/a">a</a><input type="checkbox"/>';
|
||||
// Make sure that link elements get serialized correctly by innerHTML
|
||||
// This requires a wrapper element in IE
|
||||
innerHTMLBug = !bugTestDiv.getElementsByTagName('link').length;
|
||||
bugTestDiv = undefined;
|
||||
}
|
||||
|
||||
/**
|
||||
* Wrap map from jquery.
|
||||
*/
|
||||
|
||||
var map = {
|
||||
legend: [1, '<fieldset>', '</fieldset>'],
|
||||
tr: [2, '<table><tbody>', '</tbody></table>'],
|
||||
col: [2, '<table><tbody></tbody><colgroup>', '</colgroup></table>'],
|
||||
// for script/link/style tags to work in IE6-8, you have to wrap
|
||||
// in a div with a non-whitespace character in front, ha!
|
||||
_default: innerHTMLBug ? [1, 'X<div>', '</div>'] : [0, '', '']
|
||||
};
|
||||
|
||||
map.td =
|
||||
map.th = [3, '<table><tbody><tr>', '</tr></tbody></table>'];
|
||||
|
||||
map.option =
|
||||
map.optgroup = [1, '<select multiple="multiple">', '</select>'];
|
||||
|
||||
map.thead =
|
||||
map.tbody =
|
||||
map.colgroup =
|
||||
map.caption =
|
||||
map.tfoot = [1, '<table>', '</table>'];
|
||||
|
||||
map.polyline =
|
||||
map.ellipse =
|
||||
map.polygon =
|
||||
map.circle =
|
||||
map.text =
|
||||
map.line =
|
||||
map.path =
|
||||
map.rect =
|
||||
map.g = [1, '<svg xmlns="http://www.w3.org/2000/svg" version="1.1">','</svg>'];
|
||||
|
||||
/**
|
||||
* Parse `html` and return a DOM Node instance, which could be a TextNode,
|
||||
* HTML DOM Node of some kind (<div> for example), or a DocumentFragment
|
||||
* instance, depending on the contents of the `html` string.
|
||||
*
|
||||
* @param {String} html - HTML string to "domify"
|
||||
* @param {Document} doc - The `document` instance to create the Node for
|
||||
* @return {DOMNode} the TextNode, DOM Node, or DocumentFragment instance
|
||||
* @api private
|
||||
*/
|
||||
|
||||
function parse(html, doc) {
|
||||
if ('string' != typeof html) throw new TypeError('String expected');
|
||||
|
||||
// default to the global `document` object
|
||||
if (!doc) doc = document;
|
||||
|
||||
// tag name
|
||||
var m = /<([\w:]+)/.exec(html);
|
||||
if (!m) return doc.createTextNode(html);
|
||||
|
||||
html = html.replace(/^\s+|\s+$/g, ''); // Remove leading/trailing whitespace
|
||||
|
||||
var tag = m[1];
|
||||
|
||||
// body support
|
||||
if (tag == 'body') {
|
||||
var el = doc.createElement('html');
|
||||
el.innerHTML = html;
|
||||
return el.removeChild(el.lastChild);
|
||||
}
|
||||
|
||||
// wrap map
|
||||
var wrap = map[tag] || map._default;
|
||||
var depth = wrap[0];
|
||||
var prefix = wrap[1];
|
||||
var suffix = wrap[2];
|
||||
var el = doc.createElement('div');
|
||||
el.innerHTML = prefix + html + suffix;
|
||||
while (depth--) el = el.lastChild;
|
||||
|
||||
// one element
|
||||
if (el.firstChild == el.lastChild) {
|
||||
return el.removeChild(el.firstChild);
|
||||
}
|
||||
|
||||
// several elements
|
||||
var fragment = doc.createDocumentFragment();
|
||||
while (el.firstChild) {
|
||||
fragment.appendChild(el.removeChild(el.firstChild));
|
||||
}
|
||||
|
||||
return fragment;
|
||||
}
|
||||
|
||||
},{}],3:[function(require,module,exports){
|
||||
/**
|
||||
* Code refactored from Mozilla Developer Network:
|
||||
* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
function assign(target, firstSource) {
|
||||
if (target === undefined || target === null) {
|
||||
throw new TypeError('Cannot convert first argument to object');
|
||||
}
|
||||
|
||||
var to = Object(target);
|
||||
for (var i = 1; i < arguments.length; i++) {
|
||||
var nextSource = arguments[i];
|
||||
if (nextSource === undefined || nextSource === null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
var keysArray = Object.keys(Object(nextSource));
|
||||
for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) {
|
||||
var nextKey = keysArray[nextIndex];
|
||||
var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);
|
||||
if (desc !== undefined && desc.enumerable) {
|
||||
to[nextKey] = nextSource[nextKey];
|
||||
}
|
||||
}
|
||||
}
|
||||
return to;
|
||||
}
|
||||
|
||||
function polyfill() {
|
||||
if (!Object.assign) {
|
||||
Object.defineProperty(Object, 'assign', {
|
||||
enumerable: false,
|
||||
configurable: true,
|
||||
writable: true,
|
||||
value: assign
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
assign: assign,
|
||||
polyfill: polyfill
|
||||
};
|
||||
|
||||
},{}],4:[function(require,module,exports){
|
||||
// classList polyfill for old browsers
|
||||
require('classlist-polyfill')
|
||||
// Object.assign polyfill
|
||||
require('es6-object-assign').polyfill()
|
||||
|
||||
// String to DOM function
|
||||
var domify = require('domify')
|
||||
|
||||
// Use the DOM's HTML parsing to escape any dangerous strings
|
||||
var escapeHtml = function escapeHtml (str) {
|
||||
if (typeof str !== 'undefined') {
|
||||
var div = document.createElement('div')
|
||||
div.appendChild(document.createTextNode(str))
|
||||
return div.innerHTML
|
||||
} else {
|
||||
return ''
|
||||
}
|
||||
}
|
||||
|
||||
// Utility function to add space-delimited class strings to a DOM element's classList
|
||||
var addClasses = function addClasses (el, classStr) {
|
||||
if (typeof classStr !== 'string' || classStr.length === 0) {
|
||||
return
|
||||
}
|
||||
var classes = classStr.split(' ')
|
||||
for (var i = 0; i < classes.length; i++) {
|
||||
var className = classes[i]
|
||||
if (className.length) {
|
||||
el.classList.add(className)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Detect CSS Animation End Support
|
||||
// https://github.com/limonte/sweetalert2/blob/99bd539f85e15ac170f69d35001d12e092ef0054/src/utils/dom.js#L194
|
||||
var animationEndEvent = (function detectAnimationEndEvent () {
|
||||
var el = document.createElement('div')
|
||||
var eventNames = {
|
||||
'WebkitAnimation': 'webkitAnimationEnd',
|
||||
'MozAnimation': 'animationend',
|
||||
'OAnimation': 'oanimationend',
|
||||
'msAnimation': 'MSAnimationEnd',
|
||||
'animation': 'animationend'
|
||||
}
|
||||
for (var i in eventNames) {
|
||||
if (el.style[i] !== undefined) {
|
||||
return eventNames[i]
|
||||
}
|
||||
}
|
||||
return false
|
||||
})()
|
||||
|
||||
// vex base CSS classes
|
||||
var baseClassNames = {
|
||||
vex: 'vex',
|
||||
content: 'vex-content',
|
||||
overlay: 'vex-overlay',
|
||||
close: 'vex-close',
|
||||
closing: 'vex-closing',
|
||||
open: 'vex-open'
|
||||
}
|
||||
|
||||
// Private lookup table of all open vex objects, keyed by id
|
||||
var vexes = {}
|
||||
var globalId = 1
|
||||
|
||||
// Private boolean to assist the escapeButtonCloses option
|
||||
var isEscapeActive = false
|
||||
|
||||
// vex itself is an object that exposes a simple API to open and close vex objects in various ways
|
||||
var vex = {
|
||||
open: function open (opts) {
|
||||
// Check for usage of deprecated options, and log a warning
|
||||
var warnDeprecated = function warnDeprecated (prop) {
|
||||
console.warn('The "' + prop + '" property is deprecated in vex 3. Use CSS classes and the appropriate "ClassName" options, instead.')
|
||||
console.warn('See http://github.hubspot.com/vex/api/advanced/#options')
|
||||
}
|
||||
if (opts.css) {
|
||||
warnDeprecated('css')
|
||||
}
|
||||
if (opts.overlayCSS) {
|
||||
warnDeprecated('overlayCSS')
|
||||
}
|
||||
if (opts.contentCSS) {
|
||||
warnDeprecated('contentCSS')
|
||||
}
|
||||
if (opts.closeCSS) {
|
||||
warnDeprecated('closeCSS')
|
||||
}
|
||||
|
||||
// The dialog instance
|
||||
var vexInstance = {}
|
||||
|
||||
// Set id
|
||||
vexInstance.id = globalId++
|
||||
|
||||
// Store internally
|
||||
vexes[vexInstance.id] = vexInstance
|
||||
|
||||
// Set state
|
||||
vexInstance.isOpen = true
|
||||
|
||||
// Close function on the vex instance
|
||||
// This is how all API functions should close individual vexes
|
||||
vexInstance.close = function instanceClose () {
|
||||
// Check state
|
||||
if (!this.isOpen) {
|
||||
return true
|
||||
}
|
||||
|
||||
var options = this.options
|
||||
|
||||
// escapeButtonCloses is checked first
|
||||
if (isEscapeActive && !options.escapeButtonCloses) {
|
||||
return false
|
||||
}
|
||||
|
||||
// Allow the user to validate any info or abort the close with the beforeClose callback
|
||||
var shouldClose = (function shouldClose () {
|
||||
// Call before close callback
|
||||
if (options.beforeClose) {
|
||||
return options.beforeClose.call(this)
|
||||
}
|
||||
// Otherwise indicate that it's ok to continue with close
|
||||
return true
|
||||
}.bind(this)())
|
||||
|
||||
// If beforeClose() fails, abort the close
|
||||
if (shouldClose === false) {
|
||||
return false
|
||||
}
|
||||
|
||||
// Update state
|
||||
this.isOpen = false
|
||||
|
||||
// Detect if the content el has any CSS animations defined
|
||||
var style = window.getComputedStyle(this.contentEl)
|
||||
function hasAnimationPre (prefix) {
|
||||
return style.getPropertyValue(prefix + 'animation-name') !== 'none' && style.getPropertyValue(prefix + 'animation-duration') !== '0s'
|
||||
}
|
||||
var hasAnimation = hasAnimationPre('') || hasAnimationPre('-webkit-') || hasAnimationPre('-moz-') || hasAnimationPre('-o-')
|
||||
|
||||
// Define the function that will actually close the instance
|
||||
var close = function close () {
|
||||
if (!this.rootEl.parentNode) {
|
||||
return
|
||||
}
|
||||
// Run once
|
||||
this.rootEl.removeEventListener(animationEndEvent, close)
|
||||
this.overlayEl.removeEventListener(animationEndEvent, close)
|
||||
// Remove from lookup table (prevent memory leaks)
|
||||
delete vexes[this.id]
|
||||
// Remove the dialog from the DOM
|
||||
this.rootEl.parentNode.removeChild(this.rootEl)
|
||||
// Remove the overlay from the DOM
|
||||
this.bodyEl.removeChild(this.overlayEl);
|
||||
// Call after close callback
|
||||
if (options.afterClose) {
|
||||
options.afterClose.call(this)
|
||||
}
|
||||
// Remove styling from the body, if no more vexes are open
|
||||
if (Object.keys(vexes).length === 0) {
|
||||
document.body.classList.remove(baseClassNames.open)
|
||||
}
|
||||
}.bind(this)
|
||||
|
||||
// Close the vex
|
||||
if (animationEndEvent && hasAnimation) {
|
||||
// Setup the end event listener, to remove the el from the DOM
|
||||
this.rootEl.addEventListener(animationEndEvent, close)
|
||||
this.overlayEl.addEventListener(animationEndEvent, close)
|
||||
// Add the closing class to the dialog, showing the close animation
|
||||
this.rootEl.classList.add(baseClassNames.closing)
|
||||
this.overlayEl.classList.add(baseClassNames.closing)
|
||||
} else {
|
||||
close()
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
// Allow strings as content
|
||||
if (typeof opts === 'string') {
|
||||
opts = {
|
||||
content: opts
|
||||
}
|
||||
}
|
||||
|
||||
// `content` is unsafe internally, so translate
|
||||
// safe default: HTML-escape the content before passing it through
|
||||
if (opts.unsafeContent && !opts.content) {
|
||||
opts.content = opts.unsafeContent
|
||||
} else if (opts.content) {
|
||||
opts.content = escapeHtml(opts.content)
|
||||
}
|
||||
|
||||
// Store options on instance for future reference
|
||||
var options = vexInstance.options = Object.assign({}, vex.defaultOptions, opts)
|
||||
|
||||
// Get Body Element
|
||||
var bodyEl = vexInstance.bodyEl = document.getElementsByTagName('body')[0];
|
||||
|
||||
// vex root
|
||||
var rootEl = vexInstance.rootEl = document.createElement('div')
|
||||
rootEl.classList.add(baseClassNames.vex)
|
||||
addClasses(rootEl, options.className)
|
||||
|
||||
// Overlay
|
||||
var overlayEl = vexInstance.overlayEl = document.createElement('div')
|
||||
overlayEl.classList.add(baseClassNames.overlay)
|
||||
addClasses(overlayEl, options.overlayClassName)
|
||||
if (options.overlayClosesOnClick) {
|
||||
rootEl.addEventListener('click', function overlayClickListener (e) {
|
||||
if (e.target === rootEl) {
|
||||
vexInstance.close()
|
||||
}
|
||||
})
|
||||
}
|
||||
bodyEl.appendChild(overlayEl)
|
||||
|
||||
// Content
|
||||
var contentEl = vexInstance.contentEl = document.createElement('div')
|
||||
contentEl.classList.add(baseClassNames.content)
|
||||
addClasses(contentEl, options.contentClassName)
|
||||
contentEl.appendChild(options.content instanceof window.Node ? options.content : domify(options.content))
|
||||
rootEl.appendChild(contentEl)
|
||||
|
||||
// Close button
|
||||
if (options.showCloseButton) {
|
||||
var closeEl = vexInstance.closeEl = document.createElement('div')
|
||||
closeEl.classList.add(baseClassNames.close)
|
||||
addClasses(closeEl, options.closeClassName)
|
||||
closeEl.addEventListener('click', vexInstance.close.bind(vexInstance))
|
||||
contentEl.appendChild(closeEl)
|
||||
}
|
||||
|
||||
// Add to DOM
|
||||
document.querySelector(options.appendLocation).appendChild(rootEl)
|
||||
|
||||
// Call after open callback
|
||||
if (options.afterOpen) {
|
||||
options.afterOpen.call(vexInstance)
|
||||
}
|
||||
|
||||
// Apply styling to the body
|
||||
document.body.classList.add(baseClassNames.open)
|
||||
|
||||
// Return the created vex instance
|
||||
return vexInstance
|
||||
},
|
||||
|
||||
// A top-level vex.close function to close dialogs by reference or id
|
||||
close: function close (vexOrId) {
|
||||
var id
|
||||
if (vexOrId.id) {
|
||||
id = vexOrId.id
|
||||
} else if (typeof vexOrId === 'string') {
|
||||
id = vexOrId
|
||||
} else {
|
||||
throw new TypeError('close requires a vex object or id string')
|
||||
}
|
||||
if (!vexes[id]) {
|
||||
return false
|
||||
}
|
||||
return vexes[id].close()
|
||||
},
|
||||
|
||||
// Close the most recently created/opened vex
|
||||
closeTop: function closeTop () {
|
||||
var ids = Object.keys(vexes)
|
||||
if (!ids.length) {
|
||||
return false
|
||||
}
|
||||
return vexes[ids[ids.length - 1]].close()
|
||||
},
|
||||
|
||||
// Close every vex!
|
||||
closeAll: function closeAll () {
|
||||
for (var id in vexes) {
|
||||
this.close(id)
|
||||
}
|
||||
return true
|
||||
},
|
||||
|
||||
// A getter for the internal lookup table
|
||||
getAll: function getAll () {
|
||||
return vexes
|
||||
},
|
||||
|
||||
// A getter for the internal lookup table
|
||||
getById: function getById (id) {
|
||||
return vexes[id]
|
||||
}
|
||||
}
|
||||
|
||||
// Close top vex on escape
|
||||
window.addEventListener('keyup', function vexKeyupListener (e) {
|
||||
if (e.keyCode === 27) {
|
||||
isEscapeActive = true
|
||||
vex.closeTop()
|
||||
isEscapeActive = false
|
||||
}
|
||||
})
|
||||
|
||||
// Close all vexes on history pop state (useful in single page apps)
|
||||
window.addEventListener('popstate', function () {
|
||||
if (vex.defaultOptions.closeAllOnPopState) {
|
||||
vex.closeAll()
|
||||
}
|
||||
})
|
||||
|
||||
vex.defaultOptions = {
|
||||
content: '',
|
||||
showCloseButton: true,
|
||||
escapeButtonCloses: true,
|
||||
overlayClosesOnClick: true,
|
||||
appendLocation: 'body',
|
||||
className: '',
|
||||
overlayClassName: '',
|
||||
contentClassName: '',
|
||||
closeClassName: '',
|
||||
closeAllOnPopState: true
|
||||
}
|
||||
|
||||
// TODO Loading symbols?
|
||||
|
||||
// Include escapeHtml function on the library object
|
||||
Object.defineProperty(vex, '_escapeHtml', {
|
||||
configurable: false,
|
||||
enumerable: false,
|
||||
writable: false,
|
||||
value: escapeHtml
|
||||
})
|
||||
|
||||
// Plugin system!
|
||||
vex.registerPlugin = function registerPlugin (pluginFn, name) {
|
||||
var plugin = pluginFn(vex)
|
||||
var pluginName = name || plugin.name
|
||||
if (vex[pluginName]) {
|
||||
throw new Error('Plugin ' + name + ' is already registered.')
|
||||
}
|
||||
vex[pluginName] = plugin
|
||||
}
|
||||
|
||||
module.exports = vex
|
||||
|
||||
},{"classlist-polyfill":1,"domify":2,"es6-object-assign":3}]},{},[4])(4)
|
||||
});
|
2
BTCPayServer/wwwroot/vendor/vex/js/vex.min.js
vendored
Normal file
2
BTCPayServer/wwwroot/vendor/vex/js/vex.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user