mirror of https://github.com/itflow-org/itflow
Updated SBAdmin Template along with chartjs, boostrap, fontawesome, jquery etc updated numbers to use mono-space, Add buttons are now just a + icon
This commit is contained in:
parent
7565f8e86d
commit
5af085a40b
|
|
@ -6,7 +6,7 @@
|
|||
<div class="card mb-3">
|
||||
<div class="card-header">
|
||||
<h6 class="float-left mt-1"><i class="fa fa-piggy-bank"></i> Accounts</h6>
|
||||
<button type="button" class="btn btn-primary btn-sm mr-auto float-right" data-toggle="modal" data-target="#addAccountModal"><i class="fas fa-plus"></i> New</button>
|
||||
<button type="button" class="btn btn-primary btn-sm mr-auto float-right" data-toggle="modal" data-target="#addAccountModal"><i class="fas fa-plus"></i></button>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="table-responsive">
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ $sql = mysqli_query($mysqli,"SELECT * FROM calendars, calendar_events WHERE cale
|
|||
</select>
|
||||
</form>
|
||||
|
||||
<button type="button" class="btn btn-primary btn-sm mr-auto float-right" data-toggle="modal" data-target="#addCalendarEventModal"><i class="fas fa-plus"></i> New</button>
|
||||
<button type="button" class="btn btn-primary btn-sm mr-auto float-right" data-toggle="modal" data-target="#addCalendarEventModal"><i class="fas fa-plus"></i></button>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="table-responsive">
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
<div class="card mb-3">
|
||||
<div class="card-header">
|
||||
<button type="button" class="btn btn-primary btn-sm float-right" data-toggle="modal" data-target="#addCategoryModal"><i class="fas fa-plus"></i> New</button>
|
||||
<button type="button" class="btn btn-primary btn-sm float-right" data-toggle="modal" data-target="#addCategoryModal"><i class="fas fa-plus"></i></button>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="table-responsive">
|
||||
|
|
|
|||
|
|
@ -76,12 +76,9 @@ if(isset($_GET['client_id'])){
|
|||
|
||||
<?php include("header.php"); ?>
|
||||
|
||||
<div class="card mb-3 border-0">
|
||||
<div class="card-body mb-4">
|
||||
<div class="card mb-3">
|
||||
<div class="card-body mb-2">
|
||||
<div class="row">
|
||||
<div class="col border-left border-right ">
|
||||
<h2 class="text-secondary"><?php echo $client_name; ?></h2>
|
||||
</div>
|
||||
<div class="col border-right">
|
||||
<h4 class="text-secondary">Address</h4>
|
||||
<a href="//maps.<?php echo $session_map_source; ?>.com/?q=<?php echo "$client_address $client_zip"; ?>" target="_blank">
|
||||
|
|
@ -105,7 +102,7 @@ if(isset($_GET['client_id'])){
|
|||
</div>
|
||||
<div class="col-1">
|
||||
<div class="dropdown dropleft text-center">
|
||||
<button class="btn btn-secondary btn-sm float-right" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<button class="btn btn-dark btn-sm float-right" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<i class="fas fa-ellipsis-h"></i>
|
||||
</button>
|
||||
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
|
||||
|
|
|
|||
|
|
@ -1,10 +1,15 @@
|
|||
<!-- Sidebar -->
|
||||
|
||||
<ul class="sidebar navbar-nav d-print-none">
|
||||
|
||||
<li class="nav-item my-3">
|
||||
<h2 class="text-white text-center"><?php echo $client_name; ?></h2>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="clients.php">
|
||||
<button class="btn btn-outline-light btn-block">
|
||||
<i class="fas fa-fw fa-arrow-left mx-2"></i>
|
||||
<i class="fas fa-fw fa-arrow-left"></i>
|
||||
<span>Back</span>
|
||||
</button>
|
||||
</a>
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
<div class="card mb-3">
|
||||
<div class="card-header">
|
||||
<h6 class="float-left mt-1"><i class="fa fa-users"></i> Clients</h6>
|
||||
<button type="button" class="btn btn-primary btn-sm mr-auto float-right" data-toggle="modal" data-target="#addClientModal"><i class="fas fa-plus"></i> New</button>
|
||||
<button type="button" class="btn btn-primary btn-sm mr-auto float-right" data-toggle="modal" data-target="#addClientModal"><i class="fas fa-plus"></i></button>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="table-responsive">
|
||||
|
|
|
|||
648
css/sb-admin.css
648
css/sb-admin.css
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
|
|
@ -12,7 +12,7 @@
|
|||
<div class="card mb-3">
|
||||
<div class="card-header">
|
||||
<h6 class="float-left mt-1"><i class="fa fa-shopping-cart"></i> Expenses</h6>
|
||||
<button type="button" class="btn btn-primary btn-sm mr-auto float-right" data-toggle="modal" data-target="#addExpenseModal"><i class="fas fa-plus"></i> New</button>
|
||||
<button type="button" class="btn btn-primary btn-sm mr-auto float-right" data-toggle="modal" data-target="#addExpenseModal"><i class="fas fa-plus"></i></button>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="table-responsive">
|
||||
|
|
|
|||
22
invoice.php
22
invoice.php
|
|
@ -194,10 +194,10 @@ if(isset($_GET['invoice_id'])){
|
|||
<td class="text-center d-print-none"><a class="btn btn-danger btn-sm" href="post.php?delete_invoice_item=<?php echo $invoice_item_id; ?>"><i class="fa fa-trash"></i></a></td>
|
||||
<td><?php echo $invoice_item_name; ?></td>
|
||||
<td><?php echo $invoice_item_description; ?></td>
|
||||
<td class="text-right">$<?php echo number_format($invoice_item_price,2); ?></td>
|
||||
<td class="text-center"><?php echo $invoice_item_quantity; ?></td>
|
||||
<td class="text-right">$<?php echo number_format($invoice_item_tax,2); ?></td>
|
||||
<td class="text-right">$<?php echo number_format($invoice_item_total,2); ?></td>
|
||||
<td class="text-right text-monospace">$<?php echo number_format($invoice_item_price,2); ?></td>
|
||||
<td class="text-center text-monospace"><?php echo $invoice_item_quantity; ?></td>
|
||||
<td class="text-right text-monospace">$<?php echo number_format($invoice_item_tax,2); ?></td>
|
||||
<td class="text-right text-monospace">$<?php echo number_format($invoice_item_total,2); ?></td>
|
||||
</tr>
|
||||
|
||||
<?php
|
||||
|
|
@ -250,29 +250,29 @@ if(isset($_GET['invoice_id'])){
|
|||
<tbody>
|
||||
<tr class="border-bottom">
|
||||
<td>Subtotal</td>
|
||||
<td class="text-right">$<?php echo number_format($sub_total,2); ?></td>
|
||||
<td class="text-right text-monospace">$<?php echo number_format($sub_total,2); ?></td>
|
||||
</tr>
|
||||
<?php if($discount > 0){ ?>
|
||||
<tr class="border-bottom">
|
||||
<td>Discount</td>
|
||||
<td class="text-right">$<?php echo number_format($invoice_discount,2); ?></td>
|
||||
<td class="text-right text-monospace">$<?php echo number_format($invoice_discount,2); ?></td>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
<?php if($total_tax > 0){ ?>
|
||||
<tr class="border-bottom">
|
||||
<td>Tax</td>
|
||||
<td class="text-right">$<?php echo number_format($total_tax,2); ?></td>
|
||||
<td class="text-right text-monospace">$<?php echo number_format($total_tax,2); ?></td>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
<?php if($amount_paid > 0){ ?>
|
||||
<tr class="border-bottom">
|
||||
<td><div class="text-success">Paid to Date</div></td>
|
||||
<td class="text-right text-success">$<?php echo number_format($amount_paid,2); ?></td>
|
||||
<td class="text-right text-monospace text-success">$<?php echo number_format($amount_paid,2); ?></td>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
<tr class="border-bottom">
|
||||
<td><strong>Balance Due</strong></td>
|
||||
<td class="text-right"><strong>$<?php echo number_format($balance,2); ?></strong></td>
|
||||
<td class="text-right text-monospace"><strong>$<?php echo number_format($balance,2); ?></strong></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -327,7 +327,7 @@ if(isset($_GET['invoice_id'])){
|
|||
<thead>
|
||||
<tr>
|
||||
<th>Date</th>
|
||||
<th>Amount</th>
|
||||
<th class="text-right">Amount</th>
|
||||
<th>Account</th>
|
||||
<th class="text-center">Action</th>
|
||||
</tr>
|
||||
|
|
@ -345,7 +345,7 @@ if(isset($_GET['invoice_id'])){
|
|||
?>
|
||||
<tr>
|
||||
<td><?php echo $payment_date; ?></td>
|
||||
<td>$<?php echo number_format($payment_amount,2); ?></td>
|
||||
<td class=" text-right text-monospace">$<?php echo number_format($payment_amount,2); ?></td>
|
||||
<td><?php echo $account_name; ?></td>
|
||||
<td class="text-center"><a class="btn btn-danger btn-sm" href="post.php?delete_payment=<?php echo $payment_id; ?>"><i class="fa fa-trash"></i></a></td>
|
||||
</tr>
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@
|
|||
<div class="card mb-3">
|
||||
<div class="card-header">
|
||||
<h6 class="float-left mt-1"><i class="fa fa-file"></i> Invoices</h6>
|
||||
<button type="button" class="btn btn-primary btn-sm float-right" data-toggle="modal" data-target="#addInvoiceModal"><i class="fas fa-plus"></i> New</button>
|
||||
<button type="button" class="btn btn-primary btn-sm float-right" data-toggle="modal" data-target="#addInvoiceModal"><i class="fas fa-plus"></i></button>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="table-responsive">
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*!
|
||||
* Start Bootstrap - SB Admin v5.0.3 (https://startbootstrap.com/template-overviews/sb-admin)
|
||||
* Start Bootstrap - SB Admin v5.1.0 (https://startbootstrap.com/template-overviews/sb-admin)
|
||||
* Copyright 2013-2019 Start Bootstrap
|
||||
* Licensed under MIT (https://github.com/BlackrockDigital/startbootstrap-sb-admin/blob/master/LICENSE)
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
<div class="card mb-3">
|
||||
<div class="card-header">
|
||||
<h6 class="float-left mt-1"><i class="fa fa-car"></i> Mileage</h6>
|
||||
<button type="button" class="btn btn-primary btn-sm float-right" data-toggle="modal" data-target="#addMileageModal"><i class="fas fa-plus"></i> New</button>
|
||||
<button type="button" class="btn btn-primary btn-sm float-right" data-toggle="modal" data-target="#addMileageModal"><i class="fas fa-plus"></i></button>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="table-responsive">
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
<div class="card mb-3">
|
||||
<div class="card-header">
|
||||
<h6 class="float-left mt-1"><i class="fa fa-box"></i> Products</h6>
|
||||
<button type="button" class="btn btn-primary btn-sm mr-auto float-right" data-toggle="modal" data-target="#addProductModal"><i class="fas fa-plus"></i> New</button>
|
||||
<button type="button" class="btn btn-primary btn-sm mr-auto float-right" data-toggle="modal" data-target="#addProductModal"><i class="fas fa-plus"></i></button>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="table-responsive">
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
<div class="card mb-3">
|
||||
<div class="card-header">
|
||||
<h6 class="float-left mt-1"><i class="fa fa-file"></i> Quotes</h6>
|
||||
<button type="button" class="btn btn-primary btn-sm float-right" data-toggle="modal" data-target="#addQuoteModal"><i class="fas fa-plus"></i> New</button>
|
||||
<button type="button" class="btn btn-primary btn-sm float-right" data-toggle="modal" data-target="#addQuoteModal"><i class="fas fa-plus"></i></button>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="table-responsive">
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
<div class="card mb-3">
|
||||
<div class="card-header">
|
||||
<h6 class="float-left mt-1"><i class="fa fa-copy"></i> Recurring Invoices</h6>
|
||||
<button type="button" class="btn btn-primary btn-sm float-right" data-toggle="modal" data-target="#addRecurringInvoiceModal"><i class="fas fa-plus"></i> New</button>
|
||||
<button type="button" class="btn btn-primary btn-sm float-right" data-toggle="modal" data-target="#addRecurringInvoiceModal"><i class="fas fa-plus"></i></button>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="table-responsive">
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ $sql_categories = mysqli_query($mysqli,"SELECT * FROM categories WHERE category_
|
|||
|
||||
|
||||
?>
|
||||
<td class="text-right">$<?php echo number_format($expense_amount_for_month,2); ?></td>
|
||||
<td class="text-right text-monospace">$<?php echo number_format($expense_amount_for_month,2); ?></td>
|
||||
|
||||
<?php
|
||||
|
||||
|
|
@ -82,7 +82,7 @@ $sql_categories = mysqli_query($mysqli,"SELECT * FROM categories WHERE category_
|
|||
|
||||
?>
|
||||
|
||||
<td class="text-right">$<?php echo number_format($total_expense_for_all_months,2); ?></td>
|
||||
<td class="text-right text-monospace">$<?php echo number_format($total_expense_for_all_months,2); ?></td>
|
||||
</tr>
|
||||
|
||||
<?php
|
||||
|
|
@ -106,14 +106,14 @@ $sql_categories = mysqli_query($mysqli,"SELECT * FROM categories WHERE category_
|
|||
|
||||
?>
|
||||
|
||||
<th class="text-right">$<?php echo number_format($expense_total_amount_for_month,2); ?></th>
|
||||
<th class="text-right text-monospace">$<?php echo number_format($expense_total_amount_for_month,2); ?></th>
|
||||
<?php
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
<th class="text-right">$<?php echo number_format($total_expense_for_all_months,2); ?></th>
|
||||
<th class="text-right text-monospace">$<?php echo number_format($total_expense_for_all_months,2); ?></th>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ $sql_categories = mysqli_query($mysqli,"SELECT * FROM categories WHERE category_
|
|||
|
||||
|
||||
?>
|
||||
<td class="text-right">$<?php echo number_format($payment_amount_for_month,2); ?></td>
|
||||
<td class="text-right text-monospace">$<?php echo number_format($payment_amount_for_month,2); ?></td>
|
||||
|
||||
<?php
|
||||
|
||||
|
|
@ -82,7 +82,7 @@ $sql_categories = mysqli_query($mysqli,"SELECT * FROM categories WHERE category_
|
|||
|
||||
?>
|
||||
|
||||
<td class="text-right">$<?php echo number_format($total_payment_for_all_months,2); ?></td>
|
||||
<td class="text-right text-monospace">$<?php echo number_format($total_payment_for_all_months,2); ?></td>
|
||||
</tr>
|
||||
|
||||
<?php
|
||||
|
|
@ -105,14 +105,14 @@ $sql_categories = mysqli_query($mysqli,"SELECT * FROM categories WHERE category_
|
|||
|
||||
?>
|
||||
|
||||
<th class="text-right">$<?php echo number_format($payment_total_amount_for_month,2); ?></th>
|
||||
<th class="text-right text-monospace">$<?php echo number_format($payment_total_amount_for_month,2); ?></th>
|
||||
<?php
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
<th class="text-right">$<?php echo number_format($total_payment_for_all_months,2); ?></th>
|
||||
<th class="text-right text-monospace">$<?php echo number_format($total_payment_for_all_months,2); ?></th>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ $sql_categories_expense = mysqli_query($mysqli,"SELECT * FROM categories WHERE c
|
|||
|
||||
?>
|
||||
|
||||
<td class="text-right">$<?php echo number_format($payment_amount_for_quarter_one,2); ?></td>
|
||||
<td class="text-right text-monospace">$<?php echo number_format($payment_amount_for_quarter_one,2); ?></td>
|
||||
|
||||
<?php
|
||||
|
||||
|
|
@ -87,7 +87,7 @@ $sql_categories_expense = mysqli_query($mysqli,"SELECT * FROM categories WHERE c
|
|||
|
||||
?>
|
||||
|
||||
<td class="text-right">$<?php echo number_format($payment_amount_for_quarter_two,2); ?></td>
|
||||
<td class="text-right text-monospace">$<?php echo number_format($payment_amount_for_quarter_two,2); ?></td>
|
||||
|
||||
<?php
|
||||
|
||||
|
|
@ -99,7 +99,7 @@ $sql_categories_expense = mysqli_query($mysqli,"SELECT * FROM categories WHERE c
|
|||
|
||||
?>
|
||||
|
||||
<td class="text-right">$<?php echo number_format($payment_amount_for_quarter_three,2); ?></td>
|
||||
<td class="text-right text-monospace">$<?php echo number_format($payment_amount_for_quarter_three,2); ?></td>
|
||||
|
||||
<?php
|
||||
|
||||
|
|
@ -113,9 +113,9 @@ $sql_categories_expense = mysqli_query($mysqli,"SELECT * FROM categories WHERE c
|
|||
|
||||
?>
|
||||
|
||||
<td class="text-right">$<?php echo number_format($payment_amount_for_quarter_four,2); ?></td>
|
||||
<td class="text-right text-monospace">$<?php echo number_format($payment_amount_for_quarter_four,2); ?></td>
|
||||
|
||||
<td class="text-right">$<?php echo number_format($total_payments_for_all_four_quarters,2); ?></td>
|
||||
<td class="text-right text-monospace">$<?php echo number_format($total_payments_for_all_four_quarters,2); ?></td>
|
||||
</tr>
|
||||
|
||||
<?php
|
||||
|
|
@ -142,7 +142,7 @@ $sql_categories_expense = mysqli_query($mysqli,"SELECT * FROM categories WHERE c
|
|||
|
||||
?>
|
||||
|
||||
<th class="text-right">$<?php echo number_format($payment_total_amount_for_quarter_one,2); ?></th>
|
||||
<th class="text-right text-monospace">$<?php echo number_format($payment_total_amount_for_quarter_one,2); ?></th>
|
||||
|
||||
<?php
|
||||
|
||||
|
|
@ -154,7 +154,7 @@ $sql_categories_expense = mysqli_query($mysqli,"SELECT * FROM categories WHERE c
|
|||
|
||||
?>
|
||||
|
||||
<th class="text-right">$<?php echo number_format($payment_total_amount_for_quarter_two,2); ?></th>
|
||||
<th class="text-right text-monospace">$<?php echo number_format($payment_total_amount_for_quarter_two,2); ?></th>
|
||||
|
||||
<?php
|
||||
|
||||
|
|
@ -166,7 +166,7 @@ $sql_categories_expense = mysqli_query($mysqli,"SELECT * FROM categories WHERE c
|
|||
|
||||
?>
|
||||
|
||||
<th class="text-right">$<?php echo number_format($payment_total_amount_for_quarter_three,2); ?></th>
|
||||
<th class="text-right text-monospace">$<?php echo number_format($payment_total_amount_for_quarter_three,2); ?></th>
|
||||
|
||||
<?php
|
||||
|
||||
|
|
@ -180,9 +180,9 @@ $sql_categories_expense = mysqli_query($mysqli,"SELECT * FROM categories WHERE c
|
|||
|
||||
?>
|
||||
|
||||
<th class="text-right">$<?php echo number_format($payment_total_amount_for_quarter_four,2); ?></th>
|
||||
<th class="text-right text-monospace">$<?php echo number_format($payment_total_amount_for_quarter_four,2); ?></th>
|
||||
|
||||
<th class="text-right">$<?php echo number_format($total_payments_for_all_four_quarters,2); ?></th>
|
||||
<th class="text-right text-monospace">$<?php echo number_format($total_payments_for_all_four_quarters,2); ?></th>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
|
|
@ -208,7 +208,7 @@ $sql_categories_expense = mysqli_query($mysqli,"SELECT * FROM categories WHERE c
|
|||
|
||||
?>
|
||||
|
||||
<td class="text-right">$<?php echo number_format($expense_amount_for_quarter_one,2); ?></td>
|
||||
<td class="text-right text-monospace">$<?php echo number_format($expense_amount_for_quarter_one,2); ?></td>
|
||||
|
||||
<?php
|
||||
|
||||
|
|
@ -220,7 +220,7 @@ $sql_categories_expense = mysqli_query($mysqli,"SELECT * FROM categories WHERE c
|
|||
|
||||
?>
|
||||
|
||||
<td class="text-right">$<?php echo number_format($expense_amount_for_quarter_two,2); ?></td>
|
||||
<td class="text-right text-monospace">$<?php echo number_format($expense_amount_for_quarter_two,2); ?></td>
|
||||
|
||||
<?php
|
||||
|
||||
|
|
@ -232,7 +232,7 @@ $sql_categories_expense = mysqli_query($mysqli,"SELECT * FROM categories WHERE c
|
|||
|
||||
?>
|
||||
|
||||
<td class="text-right">$<?php echo number_format($expense_amount_for_quarter_three,2); ?></td>
|
||||
<td class="text-right text-monospace">$<?php echo number_format($expense_amount_for_quarter_three,2); ?></td>
|
||||
|
||||
<?php
|
||||
|
||||
|
|
@ -246,9 +246,9 @@ $sql_categories_expense = mysqli_query($mysqli,"SELECT * FROM categories WHERE c
|
|||
|
||||
?>
|
||||
|
||||
<td class="text-right">$<?php echo number_format($expense_amount_for_quarter_four,2); ?></td>
|
||||
<td class="text-right text-monospace">$<?php echo number_format($expense_amount_for_quarter_four,2); ?></td>
|
||||
|
||||
<td class="text-right">$<?php echo number_format($total_expenses_for_all_four_quarters,2); ?></td>
|
||||
<td class="text-right text-monospace">$<?php echo number_format($total_expenses_for_all_four_quarters,2); ?></td>
|
||||
</tr>
|
||||
|
||||
<?php
|
||||
|
|
@ -275,7 +275,7 @@ $sql_categories_expense = mysqli_query($mysqli,"SELECT * FROM categories WHERE c
|
|||
|
||||
?>
|
||||
|
||||
<th class="text-right">$<?php echo number_format($expense_total_amount_for_quarter_one,2); ?></th>
|
||||
<th class="text-right text-monospace">$<?php echo number_format($expense_total_amount_for_quarter_one,2); ?></th>
|
||||
|
||||
<?php
|
||||
|
||||
|
|
@ -287,7 +287,7 @@ $sql_categories_expense = mysqli_query($mysqli,"SELECT * FROM categories WHERE c
|
|||
|
||||
?>
|
||||
|
||||
<th class="text-right">$<?php echo number_format($expense_total_amount_for_quarter_two,2); ?></th>
|
||||
<th class="text-right text-monospace">$<?php echo number_format($expense_total_amount_for_quarter_two,2); ?></th>
|
||||
|
||||
<?php
|
||||
|
||||
|
|
@ -299,7 +299,7 @@ $sql_categories_expense = mysqli_query($mysqli,"SELECT * FROM categories WHERE c
|
|||
|
||||
?>
|
||||
|
||||
<th class="text-right">$<?php echo number_format($expense_total_amount_for_quarter_three,2); ?></th>
|
||||
<th class="text-right text-monospace">$<?php echo number_format($expense_total_amount_for_quarter_three,2); ?></th>
|
||||
|
||||
<?php
|
||||
|
||||
|
|
@ -313,9 +313,9 @@ $sql_categories_expense = mysqli_query($mysqli,"SELECT * FROM categories WHERE c
|
|||
|
||||
?>
|
||||
|
||||
<th class="text-right">$<?php echo number_format($expense_total_amount_for_quarter_four,2); ?></th>
|
||||
<th class="text-right text-monospace">$<?php echo number_format($expense_total_amount_for_quarter_four,2); ?></th>
|
||||
|
||||
<th class="text-right">$<?php echo number_format($total_expenses_for_all_four_quarters,2); ?></th>
|
||||
<th class="text-right text-monospace">$<?php echo number_format($total_expenses_for_all_four_quarters,2); ?></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<?php
|
||||
|
|
@ -327,11 +327,11 @@ $sql_categories_expense = mysqli_query($mysqli,"SELECT * FROM categories WHERE c
|
|||
?>
|
||||
|
||||
<th>Net Profit</th>
|
||||
<th class="text-right">$<?php echo number_format($net_profit_quarter_one,2); ?></th>
|
||||
<th class="text-right">$<?php echo number_format($net_profit_quarter_two,2); ?></th>
|
||||
<th class="text-right">$<?php echo number_format($net_profit_quarter_three,2); ?></th>
|
||||
<th class="text-right">$<?php echo number_format($net_profit_quarter_four,2); ?></th>
|
||||
<th class="text-right">$<?php echo number_format($net_profit_year,2); ?></th>
|
||||
<th class="text-right text-monospace">$<?php echo number_format($net_profit_quarter_one,2); ?></th>
|
||||
<th class="text-right text-monospace">$<?php echo number_format($net_profit_quarter_two,2); ?></th>
|
||||
<th class="text-right text-monospace">$<?php echo number_format($net_profit_quarter_three,2); ?></th>
|
||||
<th class="text-right text-monospace">$<?php echo number_format($net_profit_quarter_four,2); ?></th>
|
||||
<th class="text-right text-monospace">$<?php echo number_format($net_profit_year,2); ?></th>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,25 @@
|
|||
// Styling for custom cards
|
||||
// Custom class for the background icon in card blocks
|
||||
.card-body-icon {
|
||||
position: absolute;
|
||||
z-index: 0;
|
||||
top: -1.25rem;
|
||||
right: -1rem;
|
||||
opacity: 0.4;
|
||||
|
||||
font-size: 5rem;
|
||||
@include rotate;
|
||||
}
|
||||
|
||||
// Override breakpoints for card columns to work well with sidebar layout
|
||||
.card-columns {
|
||||
@media (min-width: 576px) {
|
||||
column-count: 1;
|
||||
}
|
||||
@media (min-width: 768px) {
|
||||
column-count: 2;
|
||||
}
|
||||
@media (min-width: 1200px) {
|
||||
column-count: 2;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
footer.sticky-footer {
|
||||
display: flex;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
width: calc(100% - #{$sidebar-collapsed-width});
|
||||
height: $sticky-footer-height;
|
||||
background-color: $gray-200;
|
||||
.copyright {
|
||||
line-height: 1;
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
@media (min-width: 768px) {
|
||||
width: calc(100% - #{$sidebar-base-width});
|
||||
}
|
||||
}
|
||||
|
||||
body.sidebar-toggled {
|
||||
footer.sticky-footer {
|
||||
width: 100%;
|
||||
}
|
||||
@media (min-width: 768px) {
|
||||
footer.sticky-footer {
|
||||
width: calc(100% - #{$sidebar-collapsed-width});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
// Global styling for this template
|
||||
|
||||
html {
|
||||
position: relative;
|
||||
min-height: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
#wrapper {
|
||||
display: flex;
|
||||
#content-wrapper {
|
||||
overflow-x: hidden;
|
||||
width: 100%;
|
||||
padding-top: 1rem;
|
||||
padding-bottom: $sticky-footer-height;
|
||||
}
|
||||
}
|
||||
|
||||
// Scroll to top button
|
||||
.scroll-to-top {
|
||||
position: fixed;
|
||||
right: 15px;
|
||||
bottom: 15px;
|
||||
display: none;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
text-align: center;
|
||||
color: $white;
|
||||
background: fade-out($gray-800, .5);
|
||||
line-height: 46px;
|
||||
&:focus,
|
||||
&:hover {
|
||||
color: white;
|
||||
}
|
||||
&:hover {
|
||||
background: $gray-800;
|
||||
}
|
||||
i {
|
||||
font-weight: 800;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,69 @@
|
|||
:root {
|
||||
--input-padding-x: 0.75rem;
|
||||
--input-padding-y: 0.75rem;
|
||||
}
|
||||
|
||||
.card-login {
|
||||
max-width: 25rem;
|
||||
}
|
||||
|
||||
.card-register {
|
||||
max-width: 40rem;
|
||||
}
|
||||
|
||||
.form-label-group {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.form-label-group > input,
|
||||
.form-label-group > label {
|
||||
padding: var(--input-padding-y) var(--input-padding-x);
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.form-label-group > label {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
display: block;
|
||||
width: 100%;
|
||||
margin-bottom: 0;
|
||||
/* Override default `<label>` margin */
|
||||
line-height: 1.5;
|
||||
color: #495057;
|
||||
border: 1px solid transparent;
|
||||
border-radius: 0.25rem;
|
||||
transition: all 0.1s ease-in-out;
|
||||
}
|
||||
|
||||
.form-label-group input::-webkit-input-placeholder {
|
||||
color: transparent;
|
||||
}
|
||||
|
||||
.form-label-group input:-ms-input-placeholder {
|
||||
color: transparent;
|
||||
}
|
||||
|
||||
.form-label-group input::-ms-input-placeholder {
|
||||
color: transparent;
|
||||
}
|
||||
|
||||
.form-label-group input::-moz-placeholder {
|
||||
color: transparent;
|
||||
}
|
||||
|
||||
.form-label-group input::placeholder {
|
||||
color: transparent;
|
||||
}
|
||||
|
||||
.form-label-group input:not(:placeholder-shown) {
|
||||
padding-top: calc(var(--input-padding-y) + var(--input-padding-y) * (2 / 3));
|
||||
padding-bottom: calc(var(--input-padding-y) / 3);
|
||||
}
|
||||
|
||||
.form-label-group input:not(:placeholder-shown) ~ label {
|
||||
padding-top: calc(var(--input-padding-y) / 3);
|
||||
padding-bottom: calc(var(--input-padding-y) / 3);
|
||||
font-size: 12px;
|
||||
color: #777;
|
||||
}
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
@mixin rotate {
|
||||
transform: rotate(15deg);
|
||||
}
|
||||
|
||||
@mixin sidebar-icons {
|
||||
.nav-item {
|
||||
&:last-child {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
.nav-link {
|
||||
text-align: center;
|
||||
padding: 0.75rem 1rem;
|
||||
width: $sidebar-collapsed-width;
|
||||
span {
|
||||
font-size: 0.65rem;
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
.dropdown-menu {
|
||||
position: absolute !important;
|
||||
transform: none !important;
|
||||
left: calc(#{$sidebar-collapsed-width} + 0.5rem) !important;
|
||||
margin: 0;
|
||||
&.dropup {
|
||||
bottom: 0;
|
||||
top: auto !important;
|
||||
}
|
||||
}
|
||||
&.dropdown .dropdown-toggle::after {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,115 @@
|
|||
.navbar-nav {
|
||||
|
||||
.form-inline .input-group {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.nav-item {
|
||||
&.active {
|
||||
.nav-link {
|
||||
color: $white;
|
||||
}
|
||||
}
|
||||
&.dropdown {
|
||||
.dropdown-toggle {
|
||||
&::after {
|
||||
width: 1rem;
|
||||
text-align: center;
|
||||
float: right;
|
||||
vertical-align: 0;
|
||||
border: 0;
|
||||
font-weight: 900;
|
||||
content: '\f105';
|
||||
font-family: 'Font Awesome 5 Free';
|
||||
}
|
||||
}
|
||||
&.show {
|
||||
.dropdown-toggle::after {
|
||||
content: '\f107';
|
||||
}
|
||||
}
|
||||
&.no-arrow {
|
||||
.dropdown-toggle::after {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
.nav-link {
|
||||
&:focus {
|
||||
// remove outline for Safari and Firefox
|
||||
outline: none;
|
||||
}
|
||||
.badge {
|
||||
position: absolute;
|
||||
margin-left: 0.75rem;
|
||||
top: 0.3rem;
|
||||
font-weight: 400;
|
||||
font-size: 0.5rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media(min-width: 768px) {
|
||||
|
||||
.form-inline .input-group {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.sidebar {
|
||||
width: $sidebar-collapsed-width !important;
|
||||
background-color: $gray-900;
|
||||
min-height: calc(100vh - #{$navbar-base-height});
|
||||
@include sidebar-icons;
|
||||
.nav-item {
|
||||
.nav-link {
|
||||
color: fade-out($white, 0.5);
|
||||
&:active,
|
||||
&:focus,
|
||||
&:hover {
|
||||
color: fade-out($white, 0.25);
|
||||
}
|
||||
}
|
||||
}
|
||||
&.toggled {
|
||||
width: 0 !important;
|
||||
overflow: hidden;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
.sidebar {
|
||||
width: $sidebar-base-width !important;
|
||||
|
||||
.nav-item {
|
||||
.nav-link {
|
||||
display: block;
|
||||
width: 100%;
|
||||
text-align: left;
|
||||
padding: 1rem;
|
||||
width: $sidebar-base-width;
|
||||
span {
|
||||
font-size: 1rem;
|
||||
display: inline;
|
||||
}
|
||||
}
|
||||
.dropdown-menu {
|
||||
position: static !important;
|
||||
margin: 0 1rem;
|
||||
// Position fix for Firefox
|
||||
top: 0;
|
||||
}
|
||||
&.dropdown .dropdown-toggle::after {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
&.toggled {
|
||||
overflow: visible;
|
||||
width: $sidebar-collapsed-width !important;
|
||||
@include sidebar-icons;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
// Additional Text Helper Class
|
||||
.smaller {
|
||||
font-size: 0.7rem;
|
||||
}
|
||||
|
||||
// Helper class for the overflow property
|
||||
.o-hidden {
|
||||
overflow: hidden !important;
|
||||
}
|
||||
|
||||
// Helper classes for z-index
|
||||
.z-0 {
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
.z-1 {
|
||||
z-index: 1;
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
// Spacing Variables
|
||||
// Change below variable if the height of the navbar changes
|
||||
$navbar-base-height: 56px;
|
||||
// Change below variable to change the width of the sidenav
|
||||
$sidebar-base-width: 225px;
|
||||
// Change below variable to change the width of the sidenav when collapsed
|
||||
$sidebar-collapsed-width: 90px;
|
||||
// Change below variable to change the height of the sticky footer
|
||||
$sticky-footer-height: 80px;
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
// Import Custom Variables
|
||||
@import "variables.scss";
|
||||
|
||||
// Import Bootstrap
|
||||
@import "../vendor/bootstrap/scss/bootstrap.scss";
|
||||
|
||||
// Import Custom SCSS
|
||||
@import "mixins.scss";
|
||||
@import "global.scss";
|
||||
@import "utilities.scss";
|
||||
@import "navbar.scss";
|
||||
@import "cards.scss";
|
||||
@import "login.scss";
|
||||
@import "footer.scss";
|
||||
|
|
@ -1,5 +1,8 @@
|
|||
<!-- Sidebar -->
|
||||
<ul class="sidebar navbar-nav d-print-none">
|
||||
<li class="nav-item">
|
||||
<h2 class="text-white text-center my-3"><?php echo $config_company_name; ?></h2>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="dashboard.php">
|
||||
<i class="fas fa-fw fa-tachometer-alt mx-2"></i>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<nav class="navbar navbar-expand navbar-dark bg-primary static-top">
|
||||
|
||||
<a class="navbar-brand mr-1" href="index.php"><?php echo "$config_company_name";?></a>
|
||||
|
||||
|
||||
<button class="btn btn-link btn-sm text-white order-1 order-sm-0" id="sidebarToggle" href="#">
|
||||
<i class="fas fa-bars"></i>
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ $sql = mysqli_query($mysqli,"SELECT * FROM transfers ORDER BY transfer_date DESC
|
|||
<div class="card mb-3">
|
||||
<div class="card-header">
|
||||
<h6 class="float-left mt-1"><i class="fa fa-exchange-alt"></i> Transfers</h6>
|
||||
<button type="button" class="btn btn-primary btn-sm mr-auto float-right" data-toggle="modal" data-target="#addTransferModal"><i class="fas fa-plus"></i> New</button>
|
||||
<button type="button" class="btn btn-primary btn-sm mr-auto float-right" data-toggle="modal" data-target="#addTransferModal"><i class="fas fa-plus"></i></button>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="table-responsive">
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
<div class="card mb-3">
|
||||
<div class="card-header">
|
||||
<h6 class="float-left mt-1"><i class="fa fa-users"></i> Users</h6>
|
||||
<button type="button" class="btn btn-primary btn-sm mr-auto float-right" data-toggle="modal" data-target="#addUserModal"><i class="fas fa-plus"></i> New</button>
|
||||
<button type="button" class="btn btn-primary btn-sm mr-auto float-right" data-toggle="modal" data-target="#addUserModal"><i class="fas fa-plus"></i></button>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="table-responsive">
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
/*!
|
||||
* Bootstrap v4.2.1 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
||||
* Bootstrap v4.3.1 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
*/
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery')) :
|
||||
typeof define === 'function' && define.amd ? define(['exports', 'jquery'], factory) :
|
||||
(factory((global.bootstrap = {}),global.jQuery));
|
||||
}(this, (function (exports,$) { 'use strict';
|
||||
(global = global || self, factory(global.bootstrap = {}, global.jQuery));
|
||||
}(this, function (exports, $) { 'use strict';
|
||||
|
||||
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
|
||||
|
||||
|
|
@ -69,7 +69,7 @@
|
|||
|
||||
/**
|
||||
* --------------------------------------------------------------------------
|
||||
* Bootstrap (v4.2.1): util.js
|
||||
* Bootstrap (v4.3.1): util.js
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
|
|
@ -145,7 +145,11 @@
|
|||
selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : '';
|
||||
}
|
||||
|
||||
return selector && document.querySelector(selector) ? selector : null;
|
||||
try {
|
||||
return document.querySelector(selector) ? selector : null;
|
||||
} catch (err) {
|
||||
return null;
|
||||
}
|
||||
},
|
||||
getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {
|
||||
if (!element) {
|
||||
|
|
@ -225,7 +229,7 @@
|
|||
*/
|
||||
|
||||
var NAME = 'alert';
|
||||
var VERSION = '4.2.1';
|
||||
var VERSION = '4.3.1';
|
||||
var DATA_KEY = 'bs.alert';
|
||||
var EVENT_KEY = "." + DATA_KEY;
|
||||
var DATA_API_KEY = '.data-api';
|
||||
|
|
@ -280,8 +284,8 @@
|
|||
_proto.dispose = function dispose() {
|
||||
$.removeData(this._element, DATA_KEY);
|
||||
this._element = null;
|
||||
}; // Private
|
||||
|
||||
} // Private
|
||||
;
|
||||
|
||||
_proto._getRootElement = function _getRootElement(element) {
|
||||
var selector = Util.getSelectorFromElement(element);
|
||||
|
|
@ -323,8 +327,8 @@
|
|||
|
||||
_proto._destroyElement = function _destroyElement(element) {
|
||||
$(element).detach().trigger(Event.CLOSED).remove();
|
||||
}; // Static
|
||||
|
||||
} // Static
|
||||
;
|
||||
|
||||
Alert._jQueryInterface = function _jQueryInterface(config) {
|
||||
return this.each(function () {
|
||||
|
|
@ -390,7 +394,7 @@
|
|||
*/
|
||||
|
||||
var NAME$1 = 'button';
|
||||
var VERSION$1 = '4.2.1';
|
||||
var VERSION$1 = '4.3.1';
|
||||
var DATA_KEY$1 = 'bs.button';
|
||||
var EVENT_KEY$1 = "." + DATA_KEY$1;
|
||||
var DATA_API_KEY$1 = '.data-api';
|
||||
|
|
@ -476,8 +480,8 @@
|
|||
_proto.dispose = function dispose() {
|
||||
$.removeData(this._element, DATA_KEY$1);
|
||||
this._element = null;
|
||||
}; // Static
|
||||
|
||||
} // Static
|
||||
;
|
||||
|
||||
Button._jQueryInterface = function _jQueryInterface(config) {
|
||||
return this.each(function () {
|
||||
|
|
@ -544,7 +548,7 @@
|
|||
*/
|
||||
|
||||
var NAME$2 = 'carousel';
|
||||
var VERSION$2 = '4.2.1';
|
||||
var VERSION$2 = '4.3.1';
|
||||
var DATA_KEY$2 = 'bs.carousel';
|
||||
var EVENT_KEY$2 = "." + DATA_KEY$2;
|
||||
var DATA_API_KEY$2 = '.data-api';
|
||||
|
|
@ -739,8 +743,8 @@
|
|||
this._isSliding = null;
|
||||
this._activeElement = null;
|
||||
this._indicatorsElement = null;
|
||||
}; // Private
|
||||
|
||||
} // Private
|
||||
;
|
||||
|
||||
_proto._getConfig = function _getConfig(config) {
|
||||
config = _objectSpread({}, Default, config);
|
||||
|
|
@ -784,7 +788,9 @@
|
|||
});
|
||||
}
|
||||
|
||||
this._addTouchEventListeners();
|
||||
if (this._config.touch) {
|
||||
this._addTouchEventListeners();
|
||||
}
|
||||
};
|
||||
|
||||
_proto._addTouchEventListeners = function _addTouchEventListeners() {
|
||||
|
|
@ -1025,8 +1031,8 @@
|
|||
if (isCycling) {
|
||||
this.cycle();
|
||||
}
|
||||
}; // Static
|
||||
|
||||
} // Static
|
||||
;
|
||||
|
||||
Carousel._jQueryInterface = function _jQueryInterface(config) {
|
||||
return this.each(function () {
|
||||
|
|
@ -1053,7 +1059,7 @@
|
|||
}
|
||||
|
||||
data[action]();
|
||||
} else if (_config.interval) {
|
||||
} else if (_config.interval && _config.ride) {
|
||||
data.pause();
|
||||
data.cycle();
|
||||
}
|
||||
|
|
@ -1142,7 +1148,7 @@
|
|||
*/
|
||||
|
||||
var NAME$3 = 'collapse';
|
||||
var VERSION$3 = '4.2.1';
|
||||
var VERSION$3 = '4.3.1';
|
||||
var DATA_KEY$3 = 'bs.collapse';
|
||||
var EVENT_KEY$3 = "." + DATA_KEY$3;
|
||||
var DATA_API_KEY$3 = '.data-api';
|
||||
|
|
@ -1364,8 +1370,8 @@
|
|||
this._element = null;
|
||||
this._triggerArray = null;
|
||||
this._isTransitioning = null;
|
||||
}; // Private
|
||||
|
||||
} // Private
|
||||
;
|
||||
|
||||
_proto._getConfig = function _getConfig(config) {
|
||||
config = _objectSpread({}, Default$1, config);
|
||||
|
|
@ -1409,8 +1415,8 @@
|
|||
if (triggerArray.length) {
|
||||
$(triggerArray).toggleClass(ClassName$3.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
|
||||
}
|
||||
}; // Static
|
||||
|
||||
} // Static
|
||||
;
|
||||
|
||||
Collapse._getTargetFromElement = function _getTargetFromElement(element) {
|
||||
var selector = Util.getSelectorFromElement(element);
|
||||
|
|
@ -1497,7 +1503,7 @@
|
|||
|
||||
/**!
|
||||
* @fileOverview Kickass library to create and place poppers near their reference elements.
|
||||
* @version 1.14.6
|
||||
* @version 1.14.7
|
||||
* @license
|
||||
* Copyright (c) 2016 Federico Zivolo and contributors
|
||||
*
|
||||
|
|
@ -2065,7 +2071,11 @@
|
|||
if (getStyleComputedProperty(element, 'position') === 'fixed') {
|
||||
return true;
|
||||
}
|
||||
return isFixed(getParentNode(element));
|
||||
var parentNode = getParentNode(element);
|
||||
if (!parentNode) {
|
||||
return false;
|
||||
}
|
||||
return isFixed(parentNode);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -2721,18 +2731,23 @@
|
|||
var _data$offsets = data.offsets,
|
||||
popper = _data$offsets.popper,
|
||||
reference = _data$offsets.reference;
|
||||
var round = Math.round,
|
||||
floor = Math.floor;
|
||||
|
||||
|
||||
var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;
|
||||
var isVariation = data.placement.indexOf('-') !== -1;
|
||||
var sameWidthOddness = reference.width % 2 === popper.width % 2;
|
||||
var bothOddWidth = reference.width % 2 === 1 && popper.width % 2 === 1;
|
||||
var noRound = function noRound(v) {
|
||||
return v;
|
||||
};
|
||||
|
||||
var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthOddness ? Math.round : Math.floor;
|
||||
var verticalToInteger = !shouldRound ? noRound : Math.round;
|
||||
var referenceWidth = round(reference.width);
|
||||
var popperWidth = round(popper.width);
|
||||
|
||||
var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;
|
||||
var isVariation = data.placement.indexOf('-') !== -1;
|
||||
var sameWidthParity = referenceWidth % 2 === popperWidth % 2;
|
||||
var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;
|
||||
|
||||
var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;
|
||||
var verticalToInteger = !shouldRound ? noRound : round;
|
||||
|
||||
return {
|
||||
left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),
|
||||
|
|
@ -4072,7 +4087,7 @@
|
|||
*/
|
||||
|
||||
var NAME$4 = 'dropdown';
|
||||
var VERSION$4 = '4.2.1';
|
||||
var VERSION$4 = '4.3.1';
|
||||
var DATA_KEY$4 = 'bs.dropdown';
|
||||
var EVENT_KEY$4 = "." + DATA_KEY$4;
|
||||
var DATA_API_KEY$4 = '.data-api';
|
||||
|
|
@ -4301,8 +4316,8 @@
|
|||
if (this._popper !== null) {
|
||||
this._popper.scheduleUpdate();
|
||||
}
|
||||
}; // Private
|
||||
|
||||
} // Private
|
||||
;
|
||||
|
||||
_proto._addEventListeners = function _addEventListeners() {
|
||||
var _this = this;
|
||||
|
|
@ -4358,24 +4373,28 @@
|
|||
return $(this._element).closest('.navbar').length > 0;
|
||||
};
|
||||
|
||||
_proto._getPopperConfig = function _getPopperConfig() {
|
||||
_proto._getOffset = function _getOffset() {
|
||||
var _this2 = this;
|
||||
|
||||
var offsetConf = {};
|
||||
var offset = {};
|
||||
|
||||
if (typeof this._config.offset === 'function') {
|
||||
offsetConf.fn = function (data) {
|
||||
data.offsets = _objectSpread({}, data.offsets, _this2._config.offset(data.offsets) || {});
|
||||
offset.fn = function (data) {
|
||||
data.offsets = _objectSpread({}, data.offsets, _this2._config.offset(data.offsets, _this2._element) || {});
|
||||
return data;
|
||||
};
|
||||
} else {
|
||||
offsetConf.offset = this._config.offset;
|
||||
offset.offset = this._config.offset;
|
||||
}
|
||||
|
||||
return offset;
|
||||
};
|
||||
|
||||
_proto._getPopperConfig = function _getPopperConfig() {
|
||||
var popperConfig = {
|
||||
placement: this._getPlacement(),
|
||||
modifiers: {
|
||||
offset: offsetConf,
|
||||
offset: this._getOffset(),
|
||||
flip: {
|
||||
enabled: this._config.flip
|
||||
},
|
||||
|
|
@ -4393,8 +4412,8 @@
|
|||
}
|
||||
|
||||
return popperConfig;
|
||||
}; // Static
|
||||
|
||||
} // Static
|
||||
;
|
||||
|
||||
Dropdown._jQueryInterface = function _jQueryInterface(config) {
|
||||
return this.each(function () {
|
||||
|
|
@ -4478,8 +4497,8 @@
|
|||
}
|
||||
|
||||
return parent || element.parentNode;
|
||||
}; // eslint-disable-next-line complexity
|
||||
|
||||
} // eslint-disable-next-line complexity
|
||||
;
|
||||
|
||||
Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
|
||||
// If not input/textarea:
|
||||
|
|
@ -4594,7 +4613,7 @@
|
|||
*/
|
||||
|
||||
var NAME$5 = 'modal';
|
||||
var VERSION$5 = '4.2.1';
|
||||
var VERSION$5 = '4.3.1';
|
||||
var DATA_KEY$5 = 'bs.modal';
|
||||
var EVENT_KEY$5 = "." + DATA_KEY$5;
|
||||
var DATA_API_KEY$5 = '.data-api';
|
||||
|
|
@ -4627,6 +4646,7 @@
|
|||
CLICK_DATA_API: "click" + EVENT_KEY$5 + DATA_API_KEY$5
|
||||
};
|
||||
var ClassName$5 = {
|
||||
SCROLLABLE: 'modal-dialog-scrollable',
|
||||
SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
|
||||
BACKDROP: 'modal-backdrop',
|
||||
OPEN: 'modal-open',
|
||||
|
|
@ -4635,6 +4655,7 @@
|
|||
};
|
||||
var Selector$5 = {
|
||||
DIALOG: '.modal-dialog',
|
||||
MODAL_BODY: '.modal-body',
|
||||
DATA_TOGGLE: '[data-toggle="modal"]',
|
||||
DATA_DISMISS: '[data-dismiss="modal"]',
|
||||
FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
|
||||
|
|
@ -4787,8 +4808,8 @@
|
|||
|
||||
_proto.handleUpdate = function handleUpdate() {
|
||||
this._adjustDialog();
|
||||
}; // Private
|
||||
|
||||
} // Private
|
||||
;
|
||||
|
||||
_proto._getConfig = function _getConfig(config) {
|
||||
config = _objectSpread({}, Default$3, config);
|
||||
|
|
@ -4812,7 +4833,11 @@
|
|||
|
||||
this._element.setAttribute('aria-modal', true);
|
||||
|
||||
this._element.scrollTop = 0;
|
||||
if ($(this._dialog).hasClass(ClassName$5.SCROLLABLE)) {
|
||||
this._dialog.querySelector(Selector$5.MODAL_BODY).scrollTop = 0;
|
||||
} else {
|
||||
this._element.scrollTop = 0;
|
||||
}
|
||||
|
||||
if (transition) {
|
||||
Util.reflow(this._element);
|
||||
|
|
@ -4982,11 +5007,11 @@
|
|||
} else if (callback) {
|
||||
callback();
|
||||
}
|
||||
}; // ----------------------------------------------------------------------
|
||||
} // ----------------------------------------------------------------------
|
||||
// the following methods are used to handle overflowing modals
|
||||
// todo (fat): these should probably be refactored out of modal.js
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
;
|
||||
|
||||
_proto._adjustDialog = function _adjustDialog() {
|
||||
var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
|
||||
|
|
@ -5071,8 +5096,8 @@
|
|||
var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
|
||||
document.body.removeChild(scrollDiv);
|
||||
return scrollbarWidth;
|
||||
}; // Static
|
||||
|
||||
} // Static
|
||||
;
|
||||
|
||||
Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
|
||||
return this.each(function () {
|
||||
|
|
@ -5163,6 +5188,127 @@
|
|||
return Modal._jQueryInterface;
|
||||
};
|
||||
|
||||
/**
|
||||
* --------------------------------------------------------------------------
|
||||
* Bootstrap (v4.3.1): tools/sanitizer.js
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
var uriAttrs = ['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href'];
|
||||
var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
|
||||
var DefaultWhitelist = {
|
||||
// Global attributes allowed on any supplied element below.
|
||||
'*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],
|
||||
a: ['target', 'href', 'title', 'rel'],
|
||||
area: [],
|
||||
b: [],
|
||||
br: [],
|
||||
col: [],
|
||||
code: [],
|
||||
div: [],
|
||||
em: [],
|
||||
hr: [],
|
||||
h1: [],
|
||||
h2: [],
|
||||
h3: [],
|
||||
h4: [],
|
||||
h5: [],
|
||||
h6: [],
|
||||
i: [],
|
||||
img: ['src', 'alt', 'title', 'width', 'height'],
|
||||
li: [],
|
||||
ol: [],
|
||||
p: [],
|
||||
pre: [],
|
||||
s: [],
|
||||
small: [],
|
||||
span: [],
|
||||
sub: [],
|
||||
sup: [],
|
||||
strong: [],
|
||||
u: [],
|
||||
ul: []
|
||||
/**
|
||||
* A pattern that recognizes a commonly useful subset of URLs that are safe.
|
||||
*
|
||||
* Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
|
||||
*/
|
||||
|
||||
};
|
||||
var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi;
|
||||
/**
|
||||
* A pattern that matches safe data URLs. Only matches image, video and audio types.
|
||||
*
|
||||
* Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
|
||||
*/
|
||||
|
||||
var DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;
|
||||
|
||||
function allowedAttribute(attr, allowedAttributeList) {
|
||||
var attrName = attr.nodeName.toLowerCase();
|
||||
|
||||
if (allowedAttributeList.indexOf(attrName) !== -1) {
|
||||
if (uriAttrs.indexOf(attrName) !== -1) {
|
||||
return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
var regExp = allowedAttributeList.filter(function (attrRegex) {
|
||||
return attrRegex instanceof RegExp;
|
||||
}); // Check if a regular expression validates the attribute.
|
||||
|
||||
for (var i = 0, l = regExp.length; i < l; i++) {
|
||||
if (attrName.match(regExp[i])) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {
|
||||
if (unsafeHtml.length === 0) {
|
||||
return unsafeHtml;
|
||||
}
|
||||
|
||||
if (sanitizeFn && typeof sanitizeFn === 'function') {
|
||||
return sanitizeFn(unsafeHtml);
|
||||
}
|
||||
|
||||
var domParser = new window.DOMParser();
|
||||
var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');
|
||||
var whitelistKeys = Object.keys(whiteList);
|
||||
var elements = [].slice.call(createdDocument.body.querySelectorAll('*'));
|
||||
|
||||
var _loop = function _loop(i, len) {
|
||||
var el = elements[i];
|
||||
var elName = el.nodeName.toLowerCase();
|
||||
|
||||
if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {
|
||||
el.parentNode.removeChild(el);
|
||||
return "continue";
|
||||
}
|
||||
|
||||
var attributeList = [].slice.call(el.attributes);
|
||||
var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []);
|
||||
attributeList.forEach(function (attr) {
|
||||
if (!allowedAttribute(attr, whitelistedAttributes)) {
|
||||
el.removeAttribute(attr.nodeName);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
for (var i = 0, len = elements.length; i < len; i++) {
|
||||
var _ret = _loop(i, len);
|
||||
|
||||
if (_ret === "continue") continue;
|
||||
}
|
||||
|
||||
return createdDocument.body.innerHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* ------------------------------------------------------------------------
|
||||
* Constants
|
||||
|
|
@ -5170,12 +5316,13 @@
|
|||
*/
|
||||
|
||||
var NAME$6 = 'tooltip';
|
||||
var VERSION$6 = '4.2.1';
|
||||
var VERSION$6 = '4.3.1';
|
||||
var DATA_KEY$6 = 'bs.tooltip';
|
||||
var EVENT_KEY$6 = "." + DATA_KEY$6;
|
||||
var JQUERY_NO_CONFLICT$6 = $.fn[NAME$6];
|
||||
var CLASS_PREFIX = 'bs-tooltip';
|
||||
var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
|
||||
var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn'];
|
||||
var DefaultType$4 = {
|
||||
animation: 'boolean',
|
||||
template: 'string',
|
||||
|
|
@ -5185,10 +5332,13 @@
|
|||
html: 'boolean',
|
||||
selector: '(string|boolean)',
|
||||
placement: '(string|function)',
|
||||
offset: '(number|string)',
|
||||
offset: '(number|string|function)',
|
||||
container: '(string|element|boolean)',
|
||||
fallbackPlacement: '(string|array)',
|
||||
boundary: '(string|element)'
|
||||
boundary: '(string|element)',
|
||||
sanitize: 'boolean',
|
||||
sanitizeFn: '(null|function)',
|
||||
whiteList: 'object'
|
||||
};
|
||||
var AttachmentMap$1 = {
|
||||
AUTO: 'auto',
|
||||
|
|
@ -5209,7 +5359,10 @@
|
|||
offset: 0,
|
||||
container: false,
|
||||
fallbackPlacement: 'flip',
|
||||
boundary: 'scrollParent'
|
||||
boundary: 'scrollParent',
|
||||
sanitize: true,
|
||||
sanitizeFn: null,
|
||||
whiteList: DefaultWhitelist
|
||||
};
|
||||
var HoverState = {
|
||||
SHOW: 'show',
|
||||
|
|
@ -5394,9 +5547,7 @@
|
|||
this._popper = new Popper(this.element, tip, {
|
||||
placement: attachment,
|
||||
modifiers: {
|
||||
offset: {
|
||||
offset: this.config.offset
|
||||
},
|
||||
offset: this._getOffset(),
|
||||
flip: {
|
||||
behavior: this.config.fallbackPlacement
|
||||
},
|
||||
|
|
@ -5505,8 +5656,8 @@
|
|||
if (this._popper !== null) {
|
||||
this._popper.scheduleUpdate();
|
||||
}
|
||||
}; // Protected
|
||||
|
||||
} // Protected
|
||||
;
|
||||
|
||||
_proto.isWithContent = function isWithContent() {
|
||||
return Boolean(this.getTitle());
|
||||
|
|
@ -5528,19 +5679,27 @@
|
|||
};
|
||||
|
||||
_proto.setElementContent = function setElementContent($element, content) {
|
||||
var html = this.config.html;
|
||||
|
||||
if (typeof content === 'object' && (content.nodeType || content.jquery)) {
|
||||
// Content is a DOM node or a jQuery
|
||||
if (html) {
|
||||
if (this.config.html) {
|
||||
if (!$(content).parent().is($element)) {
|
||||
$element.empty().append(content);
|
||||
}
|
||||
} else {
|
||||
$element.text($(content).text());
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.config.html) {
|
||||
if (this.config.sanitize) {
|
||||
content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn);
|
||||
}
|
||||
|
||||
$element.html(content);
|
||||
} else {
|
||||
$element[html ? 'html' : 'text'](content);
|
||||
$element.text(content);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
@ -5552,8 +5711,25 @@
|
|||
}
|
||||
|
||||
return title;
|
||||
}; // Private
|
||||
} // Private
|
||||
;
|
||||
|
||||
_proto._getOffset = function _getOffset() {
|
||||
var _this3 = this;
|
||||
|
||||
var offset = {};
|
||||
|
||||
if (typeof this.config.offset === 'function') {
|
||||
offset.fn = function (data) {
|
||||
data.offsets = _objectSpread({}, data.offsets, _this3.config.offset(data.offsets, _this3.element) || {});
|
||||
return data;
|
||||
};
|
||||
} else {
|
||||
offset.offset = this.config.offset;
|
||||
}
|
||||
|
||||
return offset;
|
||||
};
|
||||
|
||||
_proto._getContainer = function _getContainer() {
|
||||
if (this.config.container === false) {
|
||||
|
|
@ -5572,27 +5748,27 @@
|
|||
};
|
||||
|
||||
_proto._setListeners = function _setListeners() {
|
||||
var _this3 = this;
|
||||
var _this4 = this;
|
||||
|
||||
var triggers = this.config.trigger.split(' ');
|
||||
triggers.forEach(function (trigger) {
|
||||
if (trigger === 'click') {
|
||||
$(_this3.element).on(_this3.constructor.Event.CLICK, _this3.config.selector, function (event) {
|
||||
return _this3.toggle(event);
|
||||
$(_this4.element).on(_this4.constructor.Event.CLICK, _this4.config.selector, function (event) {
|
||||
return _this4.toggle(event);
|
||||
});
|
||||
} else if (trigger !== Trigger.MANUAL) {
|
||||
var eventIn = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSEENTER : _this3.constructor.Event.FOCUSIN;
|
||||
var eventOut = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSELEAVE : _this3.constructor.Event.FOCUSOUT;
|
||||
$(_this3.element).on(eventIn, _this3.config.selector, function (event) {
|
||||
return _this3._enter(event);
|
||||
}).on(eventOut, _this3.config.selector, function (event) {
|
||||
return _this3._leave(event);
|
||||
var eventIn = trigger === Trigger.HOVER ? _this4.constructor.Event.MOUSEENTER : _this4.constructor.Event.FOCUSIN;
|
||||
var eventOut = trigger === Trigger.HOVER ? _this4.constructor.Event.MOUSELEAVE : _this4.constructor.Event.FOCUSOUT;
|
||||
$(_this4.element).on(eventIn, _this4.config.selector, function (event) {
|
||||
return _this4._enter(event);
|
||||
}).on(eventOut, _this4.config.selector, function (event) {
|
||||
return _this4._leave(event);
|
||||
});
|
||||
}
|
||||
});
|
||||
$(this.element).closest('.modal').on('hide.bs.modal', function () {
|
||||
if (_this3.element) {
|
||||
_this3.hide();
|
||||
if (_this4.element) {
|
||||
_this4.hide();
|
||||
}
|
||||
});
|
||||
|
||||
|
|
@ -5691,7 +5867,13 @@
|
|||
};
|
||||
|
||||
_proto._getConfig = function _getConfig(config) {
|
||||
config = _objectSpread({}, this.constructor.Default, $(this.element).data(), typeof config === 'object' && config ? config : {});
|
||||
var dataAttributes = $(this.element).data();
|
||||
Object.keys(dataAttributes).forEach(function (dataAttr) {
|
||||
if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {
|
||||
delete dataAttributes[dataAttr];
|
||||
}
|
||||
});
|
||||
config = _objectSpread({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {});
|
||||
|
||||
if (typeof config.delay === 'number') {
|
||||
config.delay = {
|
||||
|
|
@ -5709,6 +5891,11 @@
|
|||
}
|
||||
|
||||
Util.typeCheckConfig(NAME$6, config, this.constructor.DefaultType);
|
||||
|
||||
if (config.sanitize) {
|
||||
config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn);
|
||||
}
|
||||
|
||||
return config;
|
||||
};
|
||||
|
||||
|
|
@ -5757,8 +5944,8 @@
|
|||
this.hide();
|
||||
this.show();
|
||||
this.config.animation = initConfigAnimation;
|
||||
}; // Static
|
||||
|
||||
} // Static
|
||||
;
|
||||
|
||||
Tooltip._jQueryInterface = function _jQueryInterface(config) {
|
||||
return this.each(function () {
|
||||
|
|
@ -5846,7 +6033,7 @@
|
|||
*/
|
||||
|
||||
var NAME$7 = 'popover';
|
||||
var VERSION$7 = '4.2.1';
|
||||
var VERSION$7 = '4.3.1';
|
||||
var DATA_KEY$7 = 'bs.popover';
|
||||
var EVENT_KEY$7 = "." + DATA_KEY$7;
|
||||
var JQUERY_NO_CONFLICT$7 = $.fn[NAME$7];
|
||||
|
|
@ -5929,8 +6116,8 @@
|
|||
|
||||
this.setElementContent($tip.find(Selector$7.CONTENT), content);
|
||||
$tip.removeClass(ClassName$7.FADE + " " + ClassName$7.SHOW);
|
||||
}; // Private
|
||||
|
||||
} // Private
|
||||
;
|
||||
|
||||
_proto._getContent = function _getContent() {
|
||||
return this.element.getAttribute('data-content') || this.config.content;
|
||||
|
|
@ -5943,8 +6130,8 @@
|
|||
if (tabClass !== null && tabClass.length > 0) {
|
||||
$tip.removeClass(tabClass.join(''));
|
||||
}
|
||||
}; // Static
|
||||
|
||||
} // Static
|
||||
;
|
||||
|
||||
Popover._jQueryInterface = function _jQueryInterface(config) {
|
||||
return this.each(function () {
|
||||
|
|
@ -6033,7 +6220,7 @@
|
|||
*/
|
||||
|
||||
var NAME$8 = 'scrollspy';
|
||||
var VERSION$8 = '4.2.1';
|
||||
var VERSION$8 = '4.3.1';
|
||||
var DATA_KEY$8 = 'bs.scrollspy';
|
||||
var EVENT_KEY$8 = "." + DATA_KEY$8;
|
||||
var DATA_API_KEY$6 = '.data-api';
|
||||
|
|
@ -6156,8 +6343,8 @@
|
|||
this._targets = null;
|
||||
this._activeTarget = null;
|
||||
this._scrollHeight = null;
|
||||
}; // Private
|
||||
|
||||
} // Private
|
||||
;
|
||||
|
||||
_proto._getConfig = function _getConfig(config) {
|
||||
config = _objectSpread({}, Default$6, typeof config === 'object' && config ? config : {});
|
||||
|
|
@ -6264,8 +6451,8 @@
|
|||
}).forEach(function (node) {
|
||||
return node.classList.remove(ClassName$8.ACTIVE);
|
||||
});
|
||||
}; // Static
|
||||
|
||||
} // Static
|
||||
;
|
||||
|
||||
ScrollSpy._jQueryInterface = function _jQueryInterface(config) {
|
||||
return this.each(function () {
|
||||
|
|
@ -6340,7 +6527,7 @@
|
|||
*/
|
||||
|
||||
var NAME$9 = 'tab';
|
||||
var VERSION$9 = '4.2.1';
|
||||
var VERSION$9 = '4.3.1';
|
||||
var DATA_KEY$9 = 'bs.tab';
|
||||
var EVENT_KEY$9 = "." + DATA_KEY$9;
|
||||
var DATA_API_KEY$7 = '.data-api';
|
||||
|
|
@ -6448,8 +6635,8 @@
|
|||
_proto.dispose = function dispose() {
|
||||
$.removeData(this._element, DATA_KEY$9);
|
||||
this._element = null;
|
||||
}; // Private
|
||||
|
||||
} // Private
|
||||
;
|
||||
|
||||
_proto._activate = function _activate(element, container, callback) {
|
||||
var _this2 = this;
|
||||
|
|
@ -6491,7 +6678,10 @@
|
|||
}
|
||||
|
||||
Util.reflow(element);
|
||||
$(element).addClass(ClassName$9.SHOW);
|
||||
|
||||
if (element.classList.contains(ClassName$9.FADE)) {
|
||||
element.classList.add(ClassName$9.SHOW);
|
||||
}
|
||||
|
||||
if (element.parentNode && $(element.parentNode).hasClass(ClassName$9.DROPDOWN_MENU)) {
|
||||
var dropdownElement = $(element).closest(Selector$9.DROPDOWN)[0];
|
||||
|
|
@ -6507,8 +6697,8 @@
|
|||
if (callback) {
|
||||
callback();
|
||||
}
|
||||
}; // Static
|
||||
|
||||
} // Static
|
||||
;
|
||||
|
||||
Tab._jQueryInterface = function _jQueryInterface(config) {
|
||||
return this.each(function () {
|
||||
|
|
@ -6572,7 +6762,7 @@
|
|||
*/
|
||||
|
||||
var NAME$a = 'toast';
|
||||
var VERSION$a = '4.2.1';
|
||||
var VERSION$a = '4.3.1';
|
||||
var DATA_KEY$a = 'bs.toast';
|
||||
var EVENT_KEY$a = "." + DATA_KEY$a;
|
||||
var JQUERY_NO_CONFLICT$a = $.fn[NAME$a];
|
||||
|
|
@ -6687,8 +6877,8 @@
|
|||
$.removeData(this._element, DATA_KEY$a);
|
||||
this._element = null;
|
||||
this._config = null;
|
||||
}; // Private
|
||||
|
||||
} // Private
|
||||
;
|
||||
|
||||
_proto._getConfig = function _getConfig(config) {
|
||||
config = _objectSpread({}, Default$7, $(this._element).data(), typeof config === 'object' && config ? config : {});
|
||||
|
|
@ -6721,8 +6911,8 @@
|
|||
} else {
|
||||
complete();
|
||||
}
|
||||
}; // Static
|
||||
|
||||
} // Static
|
||||
;
|
||||
|
||||
Toast._jQueryInterface = function _jQueryInterface(config) {
|
||||
return this.each(function () {
|
||||
|
|
@ -6756,6 +6946,11 @@
|
|||
get: function get() {
|
||||
return DefaultType$7;
|
||||
}
|
||||
}, {
|
||||
key: "Default",
|
||||
get: function get() {
|
||||
return Default$7;
|
||||
}
|
||||
}]);
|
||||
|
||||
return Toast;
|
||||
|
|
@ -6777,7 +6972,7 @@
|
|||
|
||||
/**
|
||||
* --------------------------------------------------------------------------
|
||||
* Bootstrap (v4.2.1): index.js
|
||||
* Bootstrap (v4.3.1): index.js
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
|
|
@ -6814,5 +7009,5 @@
|
|||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
})));
|
||||
}));
|
||||
//# sourceMappingURL=bootstrap.bundle.js.map
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,16 +1,16 @@
|
|||
/*!
|
||||
* Bootstrap v4.2.1 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
||||
* Bootstrap v4.3.1 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
*/
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('popper.js'), require('jquery')) :
|
||||
typeof define === 'function' && define.amd ? define(['exports', 'popper.js', 'jquery'], factory) :
|
||||
(factory((global.bootstrap = {}),global.Popper,global.jQuery));
|
||||
}(this, (function (exports,Popper,$) { 'use strict';
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery'), require('popper.js')) :
|
||||
typeof define === 'function' && define.amd ? define(['exports', 'jquery', 'popper.js'], factory) :
|
||||
(global = global || self, factory(global.bootstrap = {}, global.jQuery, global.Popper));
|
||||
}(this, function (exports, $, Popper) { 'use strict';
|
||||
|
||||
Popper = Popper && Popper.hasOwnProperty('default') ? Popper['default'] : Popper;
|
||||
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
|
||||
Popper = Popper && Popper.hasOwnProperty('default') ? Popper['default'] : Popper;
|
||||
|
||||
function _defineProperties(target, props) {
|
||||
for (var i = 0; i < props.length; i++) {
|
||||
|
|
@ -70,7 +70,7 @@
|
|||
|
||||
/**
|
||||
* --------------------------------------------------------------------------
|
||||
* Bootstrap (v4.2.1): util.js
|
||||
* Bootstrap (v4.3.1): util.js
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
|
|
@ -146,7 +146,11 @@
|
|||
selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : '';
|
||||
}
|
||||
|
||||
return selector && document.querySelector(selector) ? selector : null;
|
||||
try {
|
||||
return document.querySelector(selector) ? selector : null;
|
||||
} catch (err) {
|
||||
return null;
|
||||
}
|
||||
},
|
||||
getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {
|
||||
if (!element) {
|
||||
|
|
@ -226,7 +230,7 @@
|
|||
*/
|
||||
|
||||
var NAME = 'alert';
|
||||
var VERSION = '4.2.1';
|
||||
var VERSION = '4.3.1';
|
||||
var DATA_KEY = 'bs.alert';
|
||||
var EVENT_KEY = "." + DATA_KEY;
|
||||
var DATA_API_KEY = '.data-api';
|
||||
|
|
@ -281,8 +285,8 @@
|
|||
_proto.dispose = function dispose() {
|
||||
$.removeData(this._element, DATA_KEY);
|
||||
this._element = null;
|
||||
}; // Private
|
||||
|
||||
} // Private
|
||||
;
|
||||
|
||||
_proto._getRootElement = function _getRootElement(element) {
|
||||
var selector = Util.getSelectorFromElement(element);
|
||||
|
|
@ -324,8 +328,8 @@
|
|||
|
||||
_proto._destroyElement = function _destroyElement(element) {
|
||||
$(element).detach().trigger(Event.CLOSED).remove();
|
||||
}; // Static
|
||||
|
||||
} // Static
|
||||
;
|
||||
|
||||
Alert._jQueryInterface = function _jQueryInterface(config) {
|
||||
return this.each(function () {
|
||||
|
|
@ -391,7 +395,7 @@
|
|||
*/
|
||||
|
||||
var NAME$1 = 'button';
|
||||
var VERSION$1 = '4.2.1';
|
||||
var VERSION$1 = '4.3.1';
|
||||
var DATA_KEY$1 = 'bs.button';
|
||||
var EVENT_KEY$1 = "." + DATA_KEY$1;
|
||||
var DATA_API_KEY$1 = '.data-api';
|
||||
|
|
@ -477,8 +481,8 @@
|
|||
_proto.dispose = function dispose() {
|
||||
$.removeData(this._element, DATA_KEY$1);
|
||||
this._element = null;
|
||||
}; // Static
|
||||
|
||||
} // Static
|
||||
;
|
||||
|
||||
Button._jQueryInterface = function _jQueryInterface(config) {
|
||||
return this.each(function () {
|
||||
|
|
@ -545,7 +549,7 @@
|
|||
*/
|
||||
|
||||
var NAME$2 = 'carousel';
|
||||
var VERSION$2 = '4.2.1';
|
||||
var VERSION$2 = '4.3.1';
|
||||
var DATA_KEY$2 = 'bs.carousel';
|
||||
var EVENT_KEY$2 = "." + DATA_KEY$2;
|
||||
var DATA_API_KEY$2 = '.data-api';
|
||||
|
|
@ -740,8 +744,8 @@
|
|||
this._isSliding = null;
|
||||
this._activeElement = null;
|
||||
this._indicatorsElement = null;
|
||||
}; // Private
|
||||
|
||||
} // Private
|
||||
;
|
||||
|
||||
_proto._getConfig = function _getConfig(config) {
|
||||
config = _objectSpread({}, Default, config);
|
||||
|
|
@ -785,7 +789,9 @@
|
|||
});
|
||||
}
|
||||
|
||||
this._addTouchEventListeners();
|
||||
if (this._config.touch) {
|
||||
this._addTouchEventListeners();
|
||||
}
|
||||
};
|
||||
|
||||
_proto._addTouchEventListeners = function _addTouchEventListeners() {
|
||||
|
|
@ -1026,8 +1032,8 @@
|
|||
if (isCycling) {
|
||||
this.cycle();
|
||||
}
|
||||
}; // Static
|
||||
|
||||
} // Static
|
||||
;
|
||||
|
||||
Carousel._jQueryInterface = function _jQueryInterface(config) {
|
||||
return this.each(function () {
|
||||
|
|
@ -1054,7 +1060,7 @@
|
|||
}
|
||||
|
||||
data[action]();
|
||||
} else if (_config.interval) {
|
||||
} else if (_config.interval && _config.ride) {
|
||||
data.pause();
|
||||
data.cycle();
|
||||
}
|
||||
|
|
@ -1143,7 +1149,7 @@
|
|||
*/
|
||||
|
||||
var NAME$3 = 'collapse';
|
||||
var VERSION$3 = '4.2.1';
|
||||
var VERSION$3 = '4.3.1';
|
||||
var DATA_KEY$3 = 'bs.collapse';
|
||||
var EVENT_KEY$3 = "." + DATA_KEY$3;
|
||||
var DATA_API_KEY$3 = '.data-api';
|
||||
|
|
@ -1365,8 +1371,8 @@
|
|||
this._element = null;
|
||||
this._triggerArray = null;
|
||||
this._isTransitioning = null;
|
||||
}; // Private
|
||||
|
||||
} // Private
|
||||
;
|
||||
|
||||
_proto._getConfig = function _getConfig(config) {
|
||||
config = _objectSpread({}, Default$1, config);
|
||||
|
|
@ -1410,8 +1416,8 @@
|
|||
if (triggerArray.length) {
|
||||
$(triggerArray).toggleClass(ClassName$3.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
|
||||
}
|
||||
}; // Static
|
||||
|
||||
} // Static
|
||||
;
|
||||
|
||||
Collapse._getTargetFromElement = function _getTargetFromElement(element) {
|
||||
var selector = Util.getSelectorFromElement(element);
|
||||
|
|
@ -1503,7 +1509,7 @@
|
|||
*/
|
||||
|
||||
var NAME$4 = 'dropdown';
|
||||
var VERSION$4 = '4.2.1';
|
||||
var VERSION$4 = '4.3.1';
|
||||
var DATA_KEY$4 = 'bs.dropdown';
|
||||
var EVENT_KEY$4 = "." + DATA_KEY$4;
|
||||
var DATA_API_KEY$4 = '.data-api';
|
||||
|
|
@ -1732,8 +1738,8 @@
|
|||
if (this._popper !== null) {
|
||||
this._popper.scheduleUpdate();
|
||||
}
|
||||
}; // Private
|
||||
|
||||
} // Private
|
||||
;
|
||||
|
||||
_proto._addEventListeners = function _addEventListeners() {
|
||||
var _this = this;
|
||||
|
|
@ -1789,24 +1795,28 @@
|
|||
return $(this._element).closest('.navbar').length > 0;
|
||||
};
|
||||
|
||||
_proto._getPopperConfig = function _getPopperConfig() {
|
||||
_proto._getOffset = function _getOffset() {
|
||||
var _this2 = this;
|
||||
|
||||
var offsetConf = {};
|
||||
var offset = {};
|
||||
|
||||
if (typeof this._config.offset === 'function') {
|
||||
offsetConf.fn = function (data) {
|
||||
data.offsets = _objectSpread({}, data.offsets, _this2._config.offset(data.offsets) || {});
|
||||
offset.fn = function (data) {
|
||||
data.offsets = _objectSpread({}, data.offsets, _this2._config.offset(data.offsets, _this2._element) || {});
|
||||
return data;
|
||||
};
|
||||
} else {
|
||||
offsetConf.offset = this._config.offset;
|
||||
offset.offset = this._config.offset;
|
||||
}
|
||||
|
||||
return offset;
|
||||
};
|
||||
|
||||
_proto._getPopperConfig = function _getPopperConfig() {
|
||||
var popperConfig = {
|
||||
placement: this._getPlacement(),
|
||||
modifiers: {
|
||||
offset: offsetConf,
|
||||
offset: this._getOffset(),
|
||||
flip: {
|
||||
enabled: this._config.flip
|
||||
},
|
||||
|
|
@ -1824,8 +1834,8 @@
|
|||
}
|
||||
|
||||
return popperConfig;
|
||||
}; // Static
|
||||
|
||||
} // Static
|
||||
;
|
||||
|
||||
Dropdown._jQueryInterface = function _jQueryInterface(config) {
|
||||
return this.each(function () {
|
||||
|
|
@ -1909,8 +1919,8 @@
|
|||
}
|
||||
|
||||
return parent || element.parentNode;
|
||||
}; // eslint-disable-next-line complexity
|
||||
|
||||
} // eslint-disable-next-line complexity
|
||||
;
|
||||
|
||||
Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
|
||||
// If not input/textarea:
|
||||
|
|
@ -2025,7 +2035,7 @@
|
|||
*/
|
||||
|
||||
var NAME$5 = 'modal';
|
||||
var VERSION$5 = '4.2.1';
|
||||
var VERSION$5 = '4.3.1';
|
||||
var DATA_KEY$5 = 'bs.modal';
|
||||
var EVENT_KEY$5 = "." + DATA_KEY$5;
|
||||
var DATA_API_KEY$5 = '.data-api';
|
||||
|
|
@ -2058,6 +2068,7 @@
|
|||
CLICK_DATA_API: "click" + EVENT_KEY$5 + DATA_API_KEY$5
|
||||
};
|
||||
var ClassName$5 = {
|
||||
SCROLLABLE: 'modal-dialog-scrollable',
|
||||
SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
|
||||
BACKDROP: 'modal-backdrop',
|
||||
OPEN: 'modal-open',
|
||||
|
|
@ -2066,6 +2077,7 @@
|
|||
};
|
||||
var Selector$5 = {
|
||||
DIALOG: '.modal-dialog',
|
||||
MODAL_BODY: '.modal-body',
|
||||
DATA_TOGGLE: '[data-toggle="modal"]',
|
||||
DATA_DISMISS: '[data-dismiss="modal"]',
|
||||
FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
|
||||
|
|
@ -2218,8 +2230,8 @@
|
|||
|
||||
_proto.handleUpdate = function handleUpdate() {
|
||||
this._adjustDialog();
|
||||
}; // Private
|
||||
|
||||
} // Private
|
||||
;
|
||||
|
||||
_proto._getConfig = function _getConfig(config) {
|
||||
config = _objectSpread({}, Default$3, config);
|
||||
|
|
@ -2243,7 +2255,11 @@
|
|||
|
||||
this._element.setAttribute('aria-modal', true);
|
||||
|
||||
this._element.scrollTop = 0;
|
||||
if ($(this._dialog).hasClass(ClassName$5.SCROLLABLE)) {
|
||||
this._dialog.querySelector(Selector$5.MODAL_BODY).scrollTop = 0;
|
||||
} else {
|
||||
this._element.scrollTop = 0;
|
||||
}
|
||||
|
||||
if (transition) {
|
||||
Util.reflow(this._element);
|
||||
|
|
@ -2413,11 +2429,11 @@
|
|||
} else if (callback) {
|
||||
callback();
|
||||
}
|
||||
}; // ----------------------------------------------------------------------
|
||||
} // ----------------------------------------------------------------------
|
||||
// the following methods are used to handle overflowing modals
|
||||
// todo (fat): these should probably be refactored out of modal.js
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
;
|
||||
|
||||
_proto._adjustDialog = function _adjustDialog() {
|
||||
var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
|
||||
|
|
@ -2502,8 +2518,8 @@
|
|||
var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
|
||||
document.body.removeChild(scrollDiv);
|
||||
return scrollbarWidth;
|
||||
}; // Static
|
||||
|
||||
} // Static
|
||||
;
|
||||
|
||||
Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
|
||||
return this.each(function () {
|
||||
|
|
@ -2594,6 +2610,127 @@
|
|||
return Modal._jQueryInterface;
|
||||
};
|
||||
|
||||
/**
|
||||
* --------------------------------------------------------------------------
|
||||
* Bootstrap (v4.3.1): tools/sanitizer.js
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
var uriAttrs = ['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href'];
|
||||
var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
|
||||
var DefaultWhitelist = {
|
||||
// Global attributes allowed on any supplied element below.
|
||||
'*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],
|
||||
a: ['target', 'href', 'title', 'rel'],
|
||||
area: [],
|
||||
b: [],
|
||||
br: [],
|
||||
col: [],
|
||||
code: [],
|
||||
div: [],
|
||||
em: [],
|
||||
hr: [],
|
||||
h1: [],
|
||||
h2: [],
|
||||
h3: [],
|
||||
h4: [],
|
||||
h5: [],
|
||||
h6: [],
|
||||
i: [],
|
||||
img: ['src', 'alt', 'title', 'width', 'height'],
|
||||
li: [],
|
||||
ol: [],
|
||||
p: [],
|
||||
pre: [],
|
||||
s: [],
|
||||
small: [],
|
||||
span: [],
|
||||
sub: [],
|
||||
sup: [],
|
||||
strong: [],
|
||||
u: [],
|
||||
ul: []
|
||||
/**
|
||||
* A pattern that recognizes a commonly useful subset of URLs that are safe.
|
||||
*
|
||||
* Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
|
||||
*/
|
||||
|
||||
};
|
||||
var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi;
|
||||
/**
|
||||
* A pattern that matches safe data URLs. Only matches image, video and audio types.
|
||||
*
|
||||
* Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
|
||||
*/
|
||||
|
||||
var DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;
|
||||
|
||||
function allowedAttribute(attr, allowedAttributeList) {
|
||||
var attrName = attr.nodeName.toLowerCase();
|
||||
|
||||
if (allowedAttributeList.indexOf(attrName) !== -1) {
|
||||
if (uriAttrs.indexOf(attrName) !== -1) {
|
||||
return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
var regExp = allowedAttributeList.filter(function (attrRegex) {
|
||||
return attrRegex instanceof RegExp;
|
||||
}); // Check if a regular expression validates the attribute.
|
||||
|
||||
for (var i = 0, l = regExp.length; i < l; i++) {
|
||||
if (attrName.match(regExp[i])) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {
|
||||
if (unsafeHtml.length === 0) {
|
||||
return unsafeHtml;
|
||||
}
|
||||
|
||||
if (sanitizeFn && typeof sanitizeFn === 'function') {
|
||||
return sanitizeFn(unsafeHtml);
|
||||
}
|
||||
|
||||
var domParser = new window.DOMParser();
|
||||
var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');
|
||||
var whitelistKeys = Object.keys(whiteList);
|
||||
var elements = [].slice.call(createdDocument.body.querySelectorAll('*'));
|
||||
|
||||
var _loop = function _loop(i, len) {
|
||||
var el = elements[i];
|
||||
var elName = el.nodeName.toLowerCase();
|
||||
|
||||
if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {
|
||||
el.parentNode.removeChild(el);
|
||||
return "continue";
|
||||
}
|
||||
|
||||
var attributeList = [].slice.call(el.attributes);
|
||||
var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []);
|
||||
attributeList.forEach(function (attr) {
|
||||
if (!allowedAttribute(attr, whitelistedAttributes)) {
|
||||
el.removeAttribute(attr.nodeName);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
for (var i = 0, len = elements.length; i < len; i++) {
|
||||
var _ret = _loop(i, len);
|
||||
|
||||
if (_ret === "continue") continue;
|
||||
}
|
||||
|
||||
return createdDocument.body.innerHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* ------------------------------------------------------------------------
|
||||
* Constants
|
||||
|
|
@ -2601,12 +2738,13 @@
|
|||
*/
|
||||
|
||||
var NAME$6 = 'tooltip';
|
||||
var VERSION$6 = '4.2.1';
|
||||
var VERSION$6 = '4.3.1';
|
||||
var DATA_KEY$6 = 'bs.tooltip';
|
||||
var EVENT_KEY$6 = "." + DATA_KEY$6;
|
||||
var JQUERY_NO_CONFLICT$6 = $.fn[NAME$6];
|
||||
var CLASS_PREFIX = 'bs-tooltip';
|
||||
var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
|
||||
var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn'];
|
||||
var DefaultType$4 = {
|
||||
animation: 'boolean',
|
||||
template: 'string',
|
||||
|
|
@ -2616,10 +2754,13 @@
|
|||
html: 'boolean',
|
||||
selector: '(string|boolean)',
|
||||
placement: '(string|function)',
|
||||
offset: '(number|string)',
|
||||
offset: '(number|string|function)',
|
||||
container: '(string|element|boolean)',
|
||||
fallbackPlacement: '(string|array)',
|
||||
boundary: '(string|element)'
|
||||
boundary: '(string|element)',
|
||||
sanitize: 'boolean',
|
||||
sanitizeFn: '(null|function)',
|
||||
whiteList: 'object'
|
||||
};
|
||||
var AttachmentMap$1 = {
|
||||
AUTO: 'auto',
|
||||
|
|
@ -2640,7 +2781,10 @@
|
|||
offset: 0,
|
||||
container: false,
|
||||
fallbackPlacement: 'flip',
|
||||
boundary: 'scrollParent'
|
||||
boundary: 'scrollParent',
|
||||
sanitize: true,
|
||||
sanitizeFn: null,
|
||||
whiteList: DefaultWhitelist
|
||||
};
|
||||
var HoverState = {
|
||||
SHOW: 'show',
|
||||
|
|
@ -2825,9 +2969,7 @@
|
|||
this._popper = new Popper(this.element, tip, {
|
||||
placement: attachment,
|
||||
modifiers: {
|
||||
offset: {
|
||||
offset: this.config.offset
|
||||
},
|
||||
offset: this._getOffset(),
|
||||
flip: {
|
||||
behavior: this.config.fallbackPlacement
|
||||
},
|
||||
|
|
@ -2936,8 +3078,8 @@
|
|||
if (this._popper !== null) {
|
||||
this._popper.scheduleUpdate();
|
||||
}
|
||||
}; // Protected
|
||||
|
||||
} // Protected
|
||||
;
|
||||
|
||||
_proto.isWithContent = function isWithContent() {
|
||||
return Boolean(this.getTitle());
|
||||
|
|
@ -2959,19 +3101,27 @@
|
|||
};
|
||||
|
||||
_proto.setElementContent = function setElementContent($element, content) {
|
||||
var html = this.config.html;
|
||||
|
||||
if (typeof content === 'object' && (content.nodeType || content.jquery)) {
|
||||
// Content is a DOM node or a jQuery
|
||||
if (html) {
|
||||
if (this.config.html) {
|
||||
if (!$(content).parent().is($element)) {
|
||||
$element.empty().append(content);
|
||||
}
|
||||
} else {
|
||||
$element.text($(content).text());
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.config.html) {
|
||||
if (this.config.sanitize) {
|
||||
content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn);
|
||||
}
|
||||
|
||||
$element.html(content);
|
||||
} else {
|
||||
$element[html ? 'html' : 'text'](content);
|
||||
$element.text(content);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
@ -2983,8 +3133,25 @@
|
|||
}
|
||||
|
||||
return title;
|
||||
}; // Private
|
||||
} // Private
|
||||
;
|
||||
|
||||
_proto._getOffset = function _getOffset() {
|
||||
var _this3 = this;
|
||||
|
||||
var offset = {};
|
||||
|
||||
if (typeof this.config.offset === 'function') {
|
||||
offset.fn = function (data) {
|
||||
data.offsets = _objectSpread({}, data.offsets, _this3.config.offset(data.offsets, _this3.element) || {});
|
||||
return data;
|
||||
};
|
||||
} else {
|
||||
offset.offset = this.config.offset;
|
||||
}
|
||||
|
||||
return offset;
|
||||
};
|
||||
|
||||
_proto._getContainer = function _getContainer() {
|
||||
if (this.config.container === false) {
|
||||
|
|
@ -3003,27 +3170,27 @@
|
|||
};
|
||||
|
||||
_proto._setListeners = function _setListeners() {
|
||||
var _this3 = this;
|
||||
var _this4 = this;
|
||||
|
||||
var triggers = this.config.trigger.split(' ');
|
||||
triggers.forEach(function (trigger) {
|
||||
if (trigger === 'click') {
|
||||
$(_this3.element).on(_this3.constructor.Event.CLICK, _this3.config.selector, function (event) {
|
||||
return _this3.toggle(event);
|
||||
$(_this4.element).on(_this4.constructor.Event.CLICK, _this4.config.selector, function (event) {
|
||||
return _this4.toggle(event);
|
||||
});
|
||||
} else if (trigger !== Trigger.MANUAL) {
|
||||
var eventIn = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSEENTER : _this3.constructor.Event.FOCUSIN;
|
||||
var eventOut = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSELEAVE : _this3.constructor.Event.FOCUSOUT;
|
||||
$(_this3.element).on(eventIn, _this3.config.selector, function (event) {
|
||||
return _this3._enter(event);
|
||||
}).on(eventOut, _this3.config.selector, function (event) {
|
||||
return _this3._leave(event);
|
||||
var eventIn = trigger === Trigger.HOVER ? _this4.constructor.Event.MOUSEENTER : _this4.constructor.Event.FOCUSIN;
|
||||
var eventOut = trigger === Trigger.HOVER ? _this4.constructor.Event.MOUSELEAVE : _this4.constructor.Event.FOCUSOUT;
|
||||
$(_this4.element).on(eventIn, _this4.config.selector, function (event) {
|
||||
return _this4._enter(event);
|
||||
}).on(eventOut, _this4.config.selector, function (event) {
|
||||
return _this4._leave(event);
|
||||
});
|
||||
}
|
||||
});
|
||||
$(this.element).closest('.modal').on('hide.bs.modal', function () {
|
||||
if (_this3.element) {
|
||||
_this3.hide();
|
||||
if (_this4.element) {
|
||||
_this4.hide();
|
||||
}
|
||||
});
|
||||
|
||||
|
|
@ -3122,7 +3289,13 @@
|
|||
};
|
||||
|
||||
_proto._getConfig = function _getConfig(config) {
|
||||
config = _objectSpread({}, this.constructor.Default, $(this.element).data(), typeof config === 'object' && config ? config : {});
|
||||
var dataAttributes = $(this.element).data();
|
||||
Object.keys(dataAttributes).forEach(function (dataAttr) {
|
||||
if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {
|
||||
delete dataAttributes[dataAttr];
|
||||
}
|
||||
});
|
||||
config = _objectSpread({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {});
|
||||
|
||||
if (typeof config.delay === 'number') {
|
||||
config.delay = {
|
||||
|
|
@ -3140,6 +3313,11 @@
|
|||
}
|
||||
|
||||
Util.typeCheckConfig(NAME$6, config, this.constructor.DefaultType);
|
||||
|
||||
if (config.sanitize) {
|
||||
config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn);
|
||||
}
|
||||
|
||||
return config;
|
||||
};
|
||||
|
||||
|
|
@ -3188,8 +3366,8 @@
|
|||
this.hide();
|
||||
this.show();
|
||||
this.config.animation = initConfigAnimation;
|
||||
}; // Static
|
||||
|
||||
} // Static
|
||||
;
|
||||
|
||||
Tooltip._jQueryInterface = function _jQueryInterface(config) {
|
||||
return this.each(function () {
|
||||
|
|
@ -3277,7 +3455,7 @@
|
|||
*/
|
||||
|
||||
var NAME$7 = 'popover';
|
||||
var VERSION$7 = '4.2.1';
|
||||
var VERSION$7 = '4.3.1';
|
||||
var DATA_KEY$7 = 'bs.popover';
|
||||
var EVENT_KEY$7 = "." + DATA_KEY$7;
|
||||
var JQUERY_NO_CONFLICT$7 = $.fn[NAME$7];
|
||||
|
|
@ -3360,8 +3538,8 @@
|
|||
|
||||
this.setElementContent($tip.find(Selector$7.CONTENT), content);
|
||||
$tip.removeClass(ClassName$7.FADE + " " + ClassName$7.SHOW);
|
||||
}; // Private
|
||||
|
||||
} // Private
|
||||
;
|
||||
|
||||
_proto._getContent = function _getContent() {
|
||||
return this.element.getAttribute('data-content') || this.config.content;
|
||||
|
|
@ -3374,8 +3552,8 @@
|
|||
if (tabClass !== null && tabClass.length > 0) {
|
||||
$tip.removeClass(tabClass.join(''));
|
||||
}
|
||||
}; // Static
|
||||
|
||||
} // Static
|
||||
;
|
||||
|
||||
Popover._jQueryInterface = function _jQueryInterface(config) {
|
||||
return this.each(function () {
|
||||
|
|
@ -3464,7 +3642,7 @@
|
|||
*/
|
||||
|
||||
var NAME$8 = 'scrollspy';
|
||||
var VERSION$8 = '4.2.1';
|
||||
var VERSION$8 = '4.3.1';
|
||||
var DATA_KEY$8 = 'bs.scrollspy';
|
||||
var EVENT_KEY$8 = "." + DATA_KEY$8;
|
||||
var DATA_API_KEY$6 = '.data-api';
|
||||
|
|
@ -3587,8 +3765,8 @@
|
|||
this._targets = null;
|
||||
this._activeTarget = null;
|
||||
this._scrollHeight = null;
|
||||
}; // Private
|
||||
|
||||
} // Private
|
||||
;
|
||||
|
||||
_proto._getConfig = function _getConfig(config) {
|
||||
config = _objectSpread({}, Default$6, typeof config === 'object' && config ? config : {});
|
||||
|
|
@ -3695,8 +3873,8 @@
|
|||
}).forEach(function (node) {
|
||||
return node.classList.remove(ClassName$8.ACTIVE);
|
||||
});
|
||||
}; // Static
|
||||
|
||||
} // Static
|
||||
;
|
||||
|
||||
ScrollSpy._jQueryInterface = function _jQueryInterface(config) {
|
||||
return this.each(function () {
|
||||
|
|
@ -3771,7 +3949,7 @@
|
|||
*/
|
||||
|
||||
var NAME$9 = 'tab';
|
||||
var VERSION$9 = '4.2.1';
|
||||
var VERSION$9 = '4.3.1';
|
||||
var DATA_KEY$9 = 'bs.tab';
|
||||
var EVENT_KEY$9 = "." + DATA_KEY$9;
|
||||
var DATA_API_KEY$7 = '.data-api';
|
||||
|
|
@ -3879,8 +4057,8 @@
|
|||
_proto.dispose = function dispose() {
|
||||
$.removeData(this._element, DATA_KEY$9);
|
||||
this._element = null;
|
||||
}; // Private
|
||||
|
||||
} // Private
|
||||
;
|
||||
|
||||
_proto._activate = function _activate(element, container, callback) {
|
||||
var _this2 = this;
|
||||
|
|
@ -3922,7 +4100,10 @@
|
|||
}
|
||||
|
||||
Util.reflow(element);
|
||||
$(element).addClass(ClassName$9.SHOW);
|
||||
|
||||
if (element.classList.contains(ClassName$9.FADE)) {
|
||||
element.classList.add(ClassName$9.SHOW);
|
||||
}
|
||||
|
||||
if (element.parentNode && $(element.parentNode).hasClass(ClassName$9.DROPDOWN_MENU)) {
|
||||
var dropdownElement = $(element).closest(Selector$9.DROPDOWN)[0];
|
||||
|
|
@ -3938,8 +4119,8 @@
|
|||
if (callback) {
|
||||
callback();
|
||||
}
|
||||
}; // Static
|
||||
|
||||
} // Static
|
||||
;
|
||||
|
||||
Tab._jQueryInterface = function _jQueryInterface(config) {
|
||||
return this.each(function () {
|
||||
|
|
@ -4003,7 +4184,7 @@
|
|||
*/
|
||||
|
||||
var NAME$a = 'toast';
|
||||
var VERSION$a = '4.2.1';
|
||||
var VERSION$a = '4.3.1';
|
||||
var DATA_KEY$a = 'bs.toast';
|
||||
var EVENT_KEY$a = "." + DATA_KEY$a;
|
||||
var JQUERY_NO_CONFLICT$a = $.fn[NAME$a];
|
||||
|
|
@ -4118,8 +4299,8 @@
|
|||
$.removeData(this._element, DATA_KEY$a);
|
||||
this._element = null;
|
||||
this._config = null;
|
||||
}; // Private
|
||||
|
||||
} // Private
|
||||
;
|
||||
|
||||
_proto._getConfig = function _getConfig(config) {
|
||||
config = _objectSpread({}, Default$7, $(this._element).data(), typeof config === 'object' && config ? config : {});
|
||||
|
|
@ -4152,8 +4333,8 @@
|
|||
} else {
|
||||
complete();
|
||||
}
|
||||
}; // Static
|
||||
|
||||
} // Static
|
||||
;
|
||||
|
||||
Toast._jQueryInterface = function _jQueryInterface(config) {
|
||||
return this.each(function () {
|
||||
|
|
@ -4187,6 +4368,11 @@
|
|||
get: function get() {
|
||||
return DefaultType$7;
|
||||
}
|
||||
}, {
|
||||
key: "Default",
|
||||
get: function get() {
|
||||
return Default$7;
|
||||
}
|
||||
}]);
|
||||
|
||||
return Toast;
|
||||
|
|
@ -4208,7 +4394,7 @@
|
|||
|
||||
/**
|
||||
* --------------------------------------------------------------------------
|
||||
* Bootstrap (v4.2.1): index.js
|
||||
* Bootstrap (v4.3.1): index.js
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
|
|
@ -4245,5 +4431,5 @@
|
|||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
})));
|
||||
}));
|
||||
//# sourceMappingURL=bootstrap.js.map
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -6,13 +6,14 @@
|
|||
.badge {
|
||||
display: inline-block;
|
||||
padding: $badge-padding-y $badge-padding-x;
|
||||
font-size: $badge-font-size;
|
||||
@include font-size($badge-font-size);
|
||||
font-weight: $badge-font-weight;
|
||||
line-height: 1;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
vertical-align: baseline;
|
||||
@include border-radius($badge-border-radius);
|
||||
@include transition($badge-transition);
|
||||
|
||||
@at-root a#{&} {
|
||||
@include hover-focus {
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
.btn {
|
||||
display: inline-block;
|
||||
font-family: $btn-font-family;
|
||||
font-weight: $btn-font-weight;
|
||||
color: $body-color;
|
||||
text-align: center;
|
||||
|
|
@ -34,11 +35,6 @@
|
|||
@include box-shadow(none);
|
||||
}
|
||||
|
||||
// Opinionated: add "hand" cursor to non-disabled .btn elements
|
||||
&:not(:disabled):not(.disabled) {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
&:not(:disabled):not(.disabled):active,
|
||||
&:not(:disabled):not(.disabled).active {
|
||||
@include box-shadow($btn-active-box-shadow);
|
||||
|
|
@ -81,6 +77,7 @@ fieldset:disabled a.btn {
|
|||
.btn-link {
|
||||
font-weight: $font-weight-normal;
|
||||
color: $link-color;
|
||||
text-decoration: $link-decoration;
|
||||
|
||||
@include hover {
|
||||
color: $link-hover-color;
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-width: 0;
|
||||
min-width: 0; // See https://github.com/twbs/bootstrap/pull/22740#issuecomment-305868106
|
||||
word-wrap: break-word;
|
||||
background-color: $card-bg;
|
||||
background-clip: border-box;
|
||||
|
|
@ -36,6 +36,7 @@
|
|||
// as much space as possible, ensuring footers are aligned to the bottom.
|
||||
flex: 1 1 auto;
|
||||
padding: $card-spacer-x;
|
||||
color: $card-color;
|
||||
}
|
||||
|
||||
.card-title {
|
||||
|
|
@ -195,55 +196,35 @@
|
|||
|
||||
// Handle rounded corners
|
||||
@if $enable-rounded {
|
||||
&:first-child {
|
||||
&:not(:last-child) {
|
||||
@include border-right-radius(0);
|
||||
|
||||
.card-img-top,
|
||||
.card-header {
|
||||
// stylelint-disable-next-line property-blacklist
|
||||
border-top-right-radius: 0;
|
||||
}
|
||||
.card-img-bottom,
|
||||
.card-footer {
|
||||
// stylelint-disable-next-line property-blacklist
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
&:not(:first-child) {
|
||||
@include border-left-radius(0);
|
||||
|
||||
.card-img-top,
|
||||
.card-header {
|
||||
// stylelint-disable-next-line property-blacklist
|
||||
border-top-left-radius: 0;
|
||||
}
|
||||
.card-img-bottom,
|
||||
.card-footer {
|
||||
// stylelint-disable-next-line property-blacklist
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
}
|
||||
|
||||
&:only-child {
|
||||
@include border-radius($card-border-radius);
|
||||
|
||||
.card-img-top,
|
||||
.card-header {
|
||||
@include border-top-radius($card-border-radius);
|
||||
}
|
||||
.card-img-bottom,
|
||||
.card-footer {
|
||||
@include border-bottom-radius($card-border-radius);
|
||||
}
|
||||
}
|
||||
|
||||
&:not(:first-child):not(:last-child):not(:only-child) {
|
||||
@include border-radius(0);
|
||||
|
||||
.card-img-top,
|
||||
.card-img-bottom,
|
||||
.card-header,
|
||||
.card-footer {
|
||||
@include border-radius(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -278,29 +259,27 @@
|
|||
//
|
||||
|
||||
.accordion {
|
||||
.card {
|
||||
> .card {
|
||||
overflow: hidden;
|
||||
|
||||
&:not(:first-of-type) {
|
||||
.card-header:first-child {
|
||||
border-radius: 0;
|
||||
@include border-radius(0);
|
||||
}
|
||||
|
||||
&:not(:last-of-type) {
|
||||
border-bottom: 0;
|
||||
border-radius: 0;
|
||||
@include border-radius(0);
|
||||
}
|
||||
}
|
||||
|
||||
&:first-of-type {
|
||||
border-bottom: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
@include border-bottom-radius(0);
|
||||
}
|
||||
|
||||
&:last-of-type {
|
||||
border-top-left-radius: 0;
|
||||
border-top-right-radius: 0;
|
||||
@include border-top-radius(0);
|
||||
}
|
||||
|
||||
.card-header {
|
||||
|
|
|
|||
|
|
@ -127,8 +127,7 @@
|
|||
display: inline-block;
|
||||
width: $carousel-control-icon-width;
|
||||
height: $carousel-control-icon-width;
|
||||
background: transparent no-repeat center center;
|
||||
background-size: 100% 100%;
|
||||
background: no-repeat 50% / 100% 100%;
|
||||
}
|
||||
.carousel-control-prev-icon {
|
||||
background-image: $carousel-control-prev-icon-bg;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
.close {
|
||||
float: right;
|
||||
font-size: $close-font-size;
|
||||
@include font-size($close-font-size);
|
||||
font-weight: $close-font-weight;
|
||||
line-height: 1;
|
||||
color: $close-color;
|
||||
|
|
@ -17,9 +17,6 @@
|
|||
@include hover-focus {
|
||||
opacity: .75;
|
||||
}
|
||||
|
||||
// Opinionated: add "hand" cursor to non-disabled .close elements
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// Inline code
|
||||
code {
|
||||
font-size: $code-font-size;
|
||||
@include font-size($code-font-size);
|
||||
color: $code-color;
|
||||
word-break: break-word;
|
||||
|
||||
|
|
@ -13,7 +13,7 @@ code {
|
|||
// User input typically entered via keyboard
|
||||
kbd {
|
||||
padding: $kbd-padding-y $kbd-padding-x;
|
||||
font-size: $kbd-font-size;
|
||||
@include font-size($kbd-font-size);
|
||||
color: $kbd-color;
|
||||
background-color: $kbd-bg;
|
||||
@include border-radius($border-radius-sm);
|
||||
|
|
@ -21,7 +21,7 @@ kbd {
|
|||
|
||||
kbd {
|
||||
padding: 0;
|
||||
font-size: 100%;
|
||||
@include font-size(100%);
|
||||
font-weight: $nested-kbd-font-weight;
|
||||
@include box-shadow(none);
|
||||
}
|
||||
|
|
@ -30,12 +30,12 @@ kbd {
|
|||
// Blocks of code
|
||||
pre {
|
||||
display: block;
|
||||
font-size: $code-font-size;
|
||||
@include font-size($code-font-size);
|
||||
color: $pre-color;
|
||||
|
||||
// Account for some code outputs that place code tags in pre tags
|
||||
code {
|
||||
font-size: inherit;
|
||||
@include font-size(inherit);
|
||||
color: inherit;
|
||||
word-break: normal;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -95,9 +95,7 @@
|
|||
width: $custom-control-indicator-size;
|
||||
height: $custom-control-indicator-size;
|
||||
content: "";
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
background-size: $custom-control-indicator-bg-size;
|
||||
background: no-repeat 50% / #{$custom-control-indicator-bg-size};
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -144,6 +142,7 @@
|
|||
|
||||
.custom-radio {
|
||||
.custom-control-label::before {
|
||||
// stylelint-disable-next-line property-blacklist
|
||||
border-radius: $custom-radio-indicator-border-radius;
|
||||
}
|
||||
|
||||
|
|
@ -173,6 +172,7 @@
|
|||
left: -($custom-switch-width + $custom-control-gutter);
|
||||
width: $custom-switch-width;
|
||||
pointer-events: all;
|
||||
// stylelint-disable-next-line property-blacklist
|
||||
border-radius: $custom-switch-indicator-border-radius;
|
||||
}
|
||||
|
||||
|
|
@ -182,6 +182,7 @@
|
|||
width: $custom-switch-indicator-size;
|
||||
height: $custom-switch-indicator-size;
|
||||
background-color: $custom-control-indicator-border-color;
|
||||
// stylelint-disable-next-line property-blacklist
|
||||
border-radius: $custom-switch-indicator-border-radius;
|
||||
@include transition(transform .15s ease-in-out, $custom-forms-transition);
|
||||
}
|
||||
|
|
@ -213,6 +214,8 @@
|
|||
width: 100%;
|
||||
height: $custom-select-height;
|
||||
padding: $custom-select-padding-y ($custom-select-padding-x + $custom-select-indicator-padding) $custom-select-padding-y $custom-select-padding-x;
|
||||
font-family: $custom-select-font-family;
|
||||
@include font-size($custom-select-font-size);
|
||||
font-weight: $custom-select-font-weight;
|
||||
line-height: $custom-select-line-height;
|
||||
color: $custom-select-color;
|
||||
|
|
@ -220,11 +223,7 @@
|
|||
background: $custom-select-background;
|
||||
background-color: $custom-select-bg;
|
||||
border: $custom-select-border-width solid $custom-select-border-color;
|
||||
@if $enable-rounded {
|
||||
border-radius: $custom-select-border-radius;
|
||||
} @else {
|
||||
border-radius: 0;
|
||||
}
|
||||
@include border-radius($custom-select-border-radius, 0);
|
||||
@include box-shadow($custom-select-box-shadow);
|
||||
appearance: none;
|
||||
|
||||
|
|
@ -262,7 +261,7 @@
|
|||
|
||||
// Hides the default caret in IE11
|
||||
&::-ms-expand {
|
||||
opacity: 0;
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -271,7 +270,7 @@
|
|||
padding-top: $custom-select-padding-y-sm;
|
||||
padding-bottom: $custom-select-padding-y-sm;
|
||||
padding-left: $custom-select-padding-x-sm;
|
||||
font-size: $custom-select-font-size-sm;
|
||||
@include font-size($custom-select-font-size-sm);
|
||||
}
|
||||
|
||||
.custom-select-lg {
|
||||
|
|
@ -279,7 +278,7 @@
|
|||
padding-top: $custom-select-padding-y-lg;
|
||||
padding-bottom: $custom-select-padding-y-lg;
|
||||
padding-left: $custom-select-padding-x-lg;
|
||||
font-size: $custom-select-font-size-lg;
|
||||
@include font-size($custom-select-font-size-lg);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -331,6 +330,7 @@
|
|||
z-index: 1;
|
||||
height: $custom-file-height;
|
||||
padding: $custom-file-padding-y $custom-file-padding-x;
|
||||
font-family: $custom-file-font-family;
|
||||
font-weight: $custom-file-font-weight;
|
||||
line-height: $custom-file-line-height;
|
||||
color: $custom-file-color;
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@
|
|||
}
|
||||
|
||||
.dropdown-toggle {
|
||||
white-space: nowrap;
|
||||
|
||||
// Generate the caret automatically
|
||||
@include caret;
|
||||
}
|
||||
|
|
@ -22,8 +24,8 @@
|
|||
min-width: $dropdown-min-width;
|
||||
padding: $dropdown-padding-y 0;
|
||||
margin: $dropdown-spacer 0 0; // override default ul
|
||||
font-size: $font-size-base; // Redeclare because nesting can cause inheritance issues
|
||||
color: $body-color;
|
||||
@include font-size($dropdown-font-size);
|
||||
color: $dropdown-color;
|
||||
text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)
|
||||
list-style: none;
|
||||
background-color: $dropdown-bg;
|
||||
|
|
@ -33,17 +35,6 @@
|
|||
@include box-shadow($dropdown-box-shadow);
|
||||
}
|
||||
|
||||
@each $breakpoint in map-keys($grid-breakpoints) {
|
||||
@include media-breakpoint-up($breakpoint) {
|
||||
$infix: breakpoint-infix($breakpoint, $grid-breakpoints);
|
||||
|
||||
.dropdown-menu#{$infix}-right {
|
||||
right: 0;
|
||||
left: auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@each $breakpoint in map-keys($grid-breakpoints) {
|
||||
@include media-breakpoint-up($breakpoint) {
|
||||
$infix: breakpoint-infix($breakpoint, $grid-breakpoints);
|
||||
|
|
@ -52,6 +43,11 @@
|
|||
right: auto;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.dropdown-menu#{$infix}-right {
|
||||
right: 0;
|
||||
left: auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -118,7 +114,7 @@
|
|||
|
||||
// Dividers (basically an `<hr>`) within the dropdown
|
||||
.dropdown-divider {
|
||||
@include nav-divider($dropdown-divider-bg);
|
||||
@include nav-divider($dropdown-divider-bg, $dropdown-divider-margin-y);
|
||||
}
|
||||
|
||||
// Links, buttons, and more within the dropdown menu
|
||||
|
|
@ -136,12 +132,16 @@
|
|||
background-color: transparent; // For `<button>`s
|
||||
border: 0; // For `<button>`s
|
||||
|
||||
&:first-child {
|
||||
@include border-top-radius($dropdown-inner-border-radius);
|
||||
}
|
||||
// Prevent dropdown overflow if there's no padding
|
||||
// See https://github.com/twbs/bootstrap/pull/27703
|
||||
@if $dropdown-padding-y == 0 {
|
||||
&:first-child {
|
||||
@include border-top-radius($dropdown-inner-border-radius);
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
@include border-bottom-radius($dropdown-inner-border-radius);
|
||||
&:last-child {
|
||||
@include border-bottom-radius($dropdown-inner-border-radius);
|
||||
}
|
||||
}
|
||||
|
||||
@include hover-focus {
|
||||
|
|
@ -178,7 +178,7 @@
|
|||
display: block;
|
||||
padding: $dropdown-padding-y $dropdown-item-padding-x;
|
||||
margin-bottom: 0; // for use with heading elements
|
||||
font-size: $font-size-sm;
|
||||
@include font-size($font-size-sm);
|
||||
color: $dropdown-header-color;
|
||||
white-space: nowrap; // as with > li > a
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,7 +9,8 @@
|
|||
width: 100%;
|
||||
height: $input-height;
|
||||
padding: $input-padding-y $input-padding-x;
|
||||
font-size: $input-font-size;
|
||||
font-family: $input-font-family;
|
||||
@include font-size($input-font-size);
|
||||
font-weight: $input-font-weight;
|
||||
line-height: $input-line-height;
|
||||
color: $input-color;
|
||||
|
|
@ -18,13 +19,7 @@
|
|||
border: $input-border-width solid $input-border-color;
|
||||
|
||||
// Note: This has no effect on <select>s in some browsers, due to the limited stylability of `<select>`s in CSS.
|
||||
@if $enable-rounded {
|
||||
// Manually use the if/else instead of the mixin to account for iOS override
|
||||
border-radius: $input-border-radius;
|
||||
} @else {
|
||||
// Otherwise undo the iOS default
|
||||
border-radius: 0;
|
||||
}
|
||||
@include border-radius($input-border-radius, 0);
|
||||
|
||||
@include box-shadow($input-box-shadow);
|
||||
@include transition($input-transition);
|
||||
|
|
@ -88,21 +83,21 @@ select.form-control {
|
|||
padding-top: calc(#{$input-padding-y} + #{$input-border-width});
|
||||
padding-bottom: calc(#{$input-padding-y} + #{$input-border-width});
|
||||
margin-bottom: 0; // Override the `<label>/<legend>` default
|
||||
font-size: inherit; // Override the `<legend>` default
|
||||
@include font-size(inherit); // Override the `<legend>` default
|
||||
line-height: $input-line-height;
|
||||
}
|
||||
|
||||
.col-form-label-lg {
|
||||
padding-top: calc(#{$input-padding-y-lg} + #{$input-border-width});
|
||||
padding-bottom: calc(#{$input-padding-y-lg} + #{$input-border-width});
|
||||
font-size: $input-font-size-lg;
|
||||
@include font-size($input-font-size-lg);
|
||||
line-height: $input-line-height-lg;
|
||||
}
|
||||
|
||||
.col-form-label-sm {
|
||||
padding-top: calc(#{$input-padding-y-sm} + #{$input-border-width});
|
||||
padding-bottom: calc(#{$input-padding-y-sm} + #{$input-border-width});
|
||||
font-size: $input-font-size-sm;
|
||||
@include font-size($input-font-size-sm);
|
||||
line-height: $input-line-height-sm;
|
||||
}
|
||||
|
||||
|
|
@ -142,7 +137,7 @@ select.form-control {
|
|||
.form-control-sm {
|
||||
height: $input-height-sm;
|
||||
padding: $input-padding-y-sm $input-padding-x-sm;
|
||||
font-size: $input-font-size-sm;
|
||||
@include font-size($input-font-size-sm);
|
||||
line-height: $input-line-height-sm;
|
||||
@include border-radius($input-border-radius-sm);
|
||||
}
|
||||
|
|
@ -150,7 +145,7 @@ select.form-control {
|
|||
.form-control-lg {
|
||||
height: $input-height-lg;
|
||||
padding: $input-padding-y-lg $input-padding-x-lg;
|
||||
font-size: $input-font-size-lg;
|
||||
@include font-size($input-font-size-lg);
|
||||
line-height: $input-line-height-lg;
|
||||
@include border-radius($input-border-radius-lg);
|
||||
}
|
||||
|
|
@ -163,7 +158,6 @@ select.form-control {
|
|||
}
|
||||
}
|
||||
|
||||
// stylelint-disable-next-line no-duplicate-selectors
|
||||
textarea.form-control {
|
||||
height: auto;
|
||||
}
|
||||
|
|
@ -248,8 +242,9 @@ textarea.form-control {
|
|||
// pseudo-classes but also includes `.is-invalid` and `.is-valid` classes for
|
||||
// server side validation.
|
||||
|
||||
@include form-validation-state("valid", $form-feedback-valid-color);
|
||||
@include form-validation-state("invalid", $form-feedback-invalid-color);
|
||||
@each $state, $data in $form-validation-states {
|
||||
@include form-validation-state($state, map-get($data, color), map-get($data, icon));
|
||||
}
|
||||
|
||||
// Inline forms
|
||||
//
|
||||
|
|
@ -318,6 +313,7 @@ textarea.form-control {
|
|||
}
|
||||
.form-check-input {
|
||||
position: relative;
|
||||
flex-shrink: 0;
|
||||
margin-top: 0;
|
||||
margin-right: $form-check-input-margin-x;
|
||||
margin-left: 0;
|
||||
|
|
|
|||
|
|
@ -21,12 +21,12 @@
|
|||
}
|
||||
|
||||
// Starts at zero
|
||||
// Another grid mixin that ensures the min-width of the lowest breakpoint starts at 0.
|
||||
@mixin _assert-starts-at-zero($map) {
|
||||
// Used to ensure the min-width of the lowest breakpoint starts at 0.
|
||||
@mixin _assert-starts-at-zero($map, $map-name: "$grid-breakpoints") {
|
||||
$values: map-values($map);
|
||||
$first-value: nth($values, 1);
|
||||
@if $first-value != 0 {
|
||||
@warn "First breakpoint in `$grid-breakpoints` must start at 0, but starts at #{$first-value}.";
|
||||
@warn "First breakpoint in #{$map-name} must start at 0, but starts at #{$first-value}.";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -37,6 +37,6 @@
|
|||
}
|
||||
|
||||
.figure-caption {
|
||||
font-size: $figure-caption-font-size;
|
||||
@include font-size($figure-caption-font-size);
|
||||
color: $figure-caption-color;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@
|
|||
align-items: center;
|
||||
padding: $input-padding-y $input-padding-x;
|
||||
margin-bottom: 0; // Allow use of <label> elements by overriding our default margin-bottom
|
||||
font-size: $font-size-base; // Match inputs
|
||||
@include font-size($input-font-size); // Match inputs
|
||||
font-weight: $font-weight-normal;
|
||||
line-height: $input-line-height;
|
||||
color: $input-group-addon-color;
|
||||
|
|
@ -139,7 +139,7 @@
|
|||
.input-group-lg > .input-group-prepend > .btn,
|
||||
.input-group-lg > .input-group-append > .btn {
|
||||
padding: $input-padding-y-lg $input-padding-x-lg;
|
||||
font-size: $input-font-size-lg;
|
||||
@include font-size($input-font-size-lg);
|
||||
line-height: $input-line-height-lg;
|
||||
@include border-radius($input-border-radius-lg);
|
||||
}
|
||||
|
|
@ -156,7 +156,7 @@
|
|||
.input-group-sm > .input-group-prepend > .btn,
|
||||
.input-group-sm > .input-group-append > .btn {
|
||||
padding: $input-padding-y-sm $input-padding-x-sm;
|
||||
font-size: $input-font-size-sm;
|
||||
@include font-size($input-font-size-sm);
|
||||
line-height: $input-line-height-sm;
|
||||
@include border-radius($input-border-radius-sm);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
.jumbotron {
|
||||
padding: $jumbotron-padding ($jumbotron-padding / 2);
|
||||
margin-bottom: $jumbotron-padding;
|
||||
color: $jumbotron-color;
|
||||
background-color: $jumbotron-bg;
|
||||
@include border-radius($border-radius-lg);
|
||||
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@
|
|||
|
||||
// Hover state
|
||||
@include hover-focus {
|
||||
z-index: 1; // Place hover/focus items above their siblings for proper border styling
|
||||
color: $list-group-action-hover-color;
|
||||
text-decoration: none;
|
||||
background-color: $list-group-hover-bg;
|
||||
|
|
@ -46,6 +47,7 @@
|
|||
padding: $list-group-item-padding-y $list-group-item-padding-x;
|
||||
// Place the border on the list items and negative margin up for better styling
|
||||
margin-bottom: -$list-group-border-width;
|
||||
color: $list-group-color;
|
||||
background-color: $list-group-bg;
|
||||
border: $list-group-border-width solid $list-group-border-color;
|
||||
|
||||
|
|
@ -58,11 +60,6 @@
|
|||
@include border-bottom-radius($list-group-border-radius);
|
||||
}
|
||||
|
||||
@include hover-focus {
|
||||
z-index: 1; // Place hover/active items above their siblings for proper border styling
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
&.disabled,
|
||||
&:disabled {
|
||||
color: $list-group-disabled-color;
|
||||
|
|
@ -80,6 +77,37 @@
|
|||
}
|
||||
|
||||
|
||||
// Horizontal
|
||||
//
|
||||
// Change the layout of list group items from vertical (default) to horizontal.
|
||||
|
||||
@each $breakpoint in map-keys($grid-breakpoints) {
|
||||
@include media-breakpoint-up($breakpoint) {
|
||||
$infix: breakpoint-infix($breakpoint, $grid-breakpoints);
|
||||
|
||||
.list-group-horizontal#{$infix} {
|
||||
flex-direction: row;
|
||||
|
||||
.list-group-item {
|
||||
margin-right: -$list-group-border-width;
|
||||
margin-bottom: 0;
|
||||
|
||||
&:first-child {
|
||||
@include border-left-radius($list-group-border-radius);
|
||||
@include border-top-right-radius(0);
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
margin-right: 0;
|
||||
@include border-right-radius($list-group-border-radius);
|
||||
@include border-bottom-left-radius(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Flush list items
|
||||
//
|
||||
// Remove borders and border-radius to keep list group items edge-to-edge. Most
|
||||
|
|
|
|||
|
|
@ -2,6 +2,12 @@
|
|||
//
|
||||
// Used in conjunction with global variables to enable certain theme features.
|
||||
|
||||
// Vendor
|
||||
@import "vendor/rfs";
|
||||
|
||||
// Deprecate
|
||||
@import "mixins/deprecate";
|
||||
|
||||
// Utilities
|
||||
@import "mixins/breakpoints";
|
||||
@import "mixins/hover";
|
||||
|
|
|
|||
|
|
@ -50,17 +50,51 @@
|
|||
}
|
||||
}
|
||||
|
||||
.modal-dialog-scrollable {
|
||||
display: flex; // IE10/11
|
||||
max-height: calc(100% - #{$modal-dialog-margin * 2});
|
||||
|
||||
.modal-content {
|
||||
max-height: calc(100vh - #{$modal-dialog-margin * 2}); // IE10/11
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.modal-header,
|
||||
.modal-footer {
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.modal-body {
|
||||
overflow-y: auto;
|
||||
}
|
||||
}
|
||||
|
||||
.modal-dialog-centered {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
min-height: calc(100% - (#{$modal-dialog-margin} * 2));
|
||||
min-height: calc(100% - #{$modal-dialog-margin * 2});
|
||||
|
||||
// Ensure `modal-dialog-centered` extends the full height of the view (IE10/11)
|
||||
&::before {
|
||||
display: block; // IE10
|
||||
height: calc(100vh - (#{$modal-dialog-margin} * 2));
|
||||
height: calc(100vh - #{$modal-dialog-margin * 2});
|
||||
content: "";
|
||||
}
|
||||
|
||||
// Ensure `.modal-body` shows scrollbar (IE10/11)
|
||||
&.modal-dialog-scrollable {
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
height: 100%;
|
||||
|
||||
.modal-content {
|
||||
max-height: none;
|
||||
}
|
||||
|
||||
&::before {
|
||||
content: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Actual modal
|
||||
|
|
@ -70,6 +104,7 @@
|
|||
flex-direction: column;
|
||||
width: 100%; // Ensure `.modal-content` extends the full width of the parent `.modal-dialog`
|
||||
// counteract the pointer-events: none; in the .modal-dialog
|
||||
color: $modal-content-color;
|
||||
pointer-events: auto;
|
||||
background-color: $modal-content-bg;
|
||||
background-clip: padding-box;
|
||||
|
|
@ -159,11 +194,19 @@
|
|||
margin: $modal-dialog-margin-y-sm-up auto;
|
||||
}
|
||||
|
||||
.modal-dialog-scrollable {
|
||||
max-height: calc(100% - #{$modal-dialog-margin-y-sm-up * 2});
|
||||
|
||||
.modal-content {
|
||||
max-height: calc(100vh - #{$modal-dialog-margin-y-sm-up * 2});
|
||||
}
|
||||
}
|
||||
|
||||
.modal-dialog-centered {
|
||||
min-height: calc(100% - (#{$modal-dialog-margin-y-sm-up} * 2));
|
||||
min-height: calc(100% - #{$modal-dialog-margin-y-sm-up * 2});
|
||||
|
||||
&::before {
|
||||
height: calc(100vh - (#{$modal-dialog-margin-y-sm-up} * 2));
|
||||
height: calc(100vh - #{$modal-dialog-margin-y-sm-up * 2});
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@
|
|||
padding-top: $navbar-brand-padding-y;
|
||||
padding-bottom: $navbar-brand-padding-y;
|
||||
margin-right: $navbar-padding-x;
|
||||
font-size: $navbar-brand-font-size;
|
||||
@include font-size($navbar-brand-font-size);
|
||||
line-height: inherit;
|
||||
white-space: nowrap;
|
||||
|
||||
|
|
@ -107,7 +107,7 @@
|
|||
// Button for toggling the navbar when in its collapsed state
|
||||
.navbar-toggler {
|
||||
padding: $navbar-toggler-padding-y $navbar-toggler-padding-x;
|
||||
font-size: $navbar-toggler-font-size;
|
||||
@include font-size($navbar-toggler-font-size);
|
||||
line-height: 1;
|
||||
background-color: transparent; // remove default button style
|
||||
border: $border-width solid transparent; // remove default button style
|
||||
|
|
@ -116,11 +116,6 @@
|
|||
@include hover-focus {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
// Opinionated: add "hand" cursor to non-disabled .navbar-toggler elements
|
||||
&:not(:disabled):not(.disabled) {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
// Keep as a separate element so folks can easily override it with another icon
|
||||
|
|
@ -175,7 +170,7 @@
|
|||
}
|
||||
|
||||
.navbar-collapse {
|
||||
display: flex !important; // stylelint-disable-line declaration-no-important
|
||||
display: flex !important; // stylelint-disable-line declaration-no-important
|
||||
|
||||
// Changes flex-bases to auto because of an IE10 bug
|
||||
flex-basis: auto;
|
||||
|
|
|
|||
|
|
@ -27,11 +27,6 @@
|
|||
outline: $pagination-focus-outline;
|
||||
box-shadow: $pagination-focus-box-shadow;
|
||||
}
|
||||
|
||||
// Opinionated: add "hand" cursor to non-disabled .page-link elements
|
||||
&:not(:disabled):not(.disabled) {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
.page-item {
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
// Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
|
||||
// So reset our font and text properties to avoid inheriting weird values.
|
||||
@include reset-text();
|
||||
font-size: $popover-font-size;
|
||||
@include font-size($popover-font-size);
|
||||
// Allow breaking very long words so they don't overflow the popover's bounds
|
||||
word-wrap: break-word;
|
||||
background-color: $popover-bg;
|
||||
|
|
@ -38,72 +38,63 @@
|
|||
.bs-popover-top {
|
||||
margin-bottom: $popover-arrow-height;
|
||||
|
||||
.arrow {
|
||||
> .arrow {
|
||||
bottom: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);
|
||||
}
|
||||
|
||||
.arrow::before,
|
||||
.arrow::after {
|
||||
border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;
|
||||
}
|
||||
&::before {
|
||||
bottom: 0;
|
||||
border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;
|
||||
border-top-color: $popover-arrow-outer-color;
|
||||
}
|
||||
|
||||
.arrow::before {
|
||||
bottom: 0;
|
||||
border-top-color: $popover-arrow-outer-color;
|
||||
}
|
||||
|
||||
.arrow::after {
|
||||
bottom: $popover-border-width;
|
||||
border-top-color: $popover-arrow-color;
|
||||
&::after {
|
||||
bottom: $popover-border-width;
|
||||
border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;
|
||||
border-top-color: $popover-arrow-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.bs-popover-right {
|
||||
margin-left: $popover-arrow-height;
|
||||
|
||||
.arrow {
|
||||
> .arrow {
|
||||
left: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);
|
||||
width: $popover-arrow-height;
|
||||
height: $popover-arrow-width;
|
||||
margin: $border-radius-lg 0; // make sure the arrow does not touch the popover's rounded corners
|
||||
}
|
||||
|
||||
.arrow::before,
|
||||
.arrow::after {
|
||||
border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;
|
||||
}
|
||||
&::before {
|
||||
left: 0;
|
||||
border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;
|
||||
border-right-color: $popover-arrow-outer-color;
|
||||
}
|
||||
|
||||
.arrow::before {
|
||||
left: 0;
|
||||
border-right-color: $popover-arrow-outer-color;
|
||||
}
|
||||
|
||||
.arrow::after {
|
||||
left: $popover-border-width;
|
||||
border-right-color: $popover-arrow-color;
|
||||
&::after {
|
||||
left: $popover-border-width;
|
||||
border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;
|
||||
border-right-color: $popover-arrow-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.bs-popover-bottom {
|
||||
margin-top: $popover-arrow-height;
|
||||
|
||||
.arrow {
|
||||
> .arrow {
|
||||
top: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);
|
||||
}
|
||||
|
||||
.arrow::before,
|
||||
.arrow::after {
|
||||
border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);
|
||||
}
|
||||
&::before {
|
||||
top: 0;
|
||||
border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);
|
||||
border-bottom-color: $popover-arrow-outer-color;
|
||||
}
|
||||
|
||||
.arrow::before {
|
||||
top: 0;
|
||||
border-bottom-color: $popover-arrow-outer-color;
|
||||
}
|
||||
|
||||
.arrow::after {
|
||||
top: $popover-border-width;
|
||||
border-bottom-color: $popover-arrow-color;
|
||||
&::after {
|
||||
top: $popover-border-width;
|
||||
border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);
|
||||
border-bottom-color: $popover-arrow-color;
|
||||
}
|
||||
}
|
||||
|
||||
// This will remove the popover-header's border just below the arrow
|
||||
|
|
@ -122,26 +113,23 @@
|
|||
.bs-popover-left {
|
||||
margin-right: $popover-arrow-height;
|
||||
|
||||
.arrow {
|
||||
> .arrow {
|
||||
right: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);
|
||||
width: $popover-arrow-height;
|
||||
height: $popover-arrow-width;
|
||||
margin: $border-radius-lg 0; // make sure the arrow does not touch the popover's rounded corners
|
||||
}
|
||||
|
||||
.arrow::before,
|
||||
.arrow::after {
|
||||
border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;
|
||||
}
|
||||
&::before {
|
||||
right: 0;
|
||||
border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;
|
||||
border-left-color: $popover-arrow-outer-color;
|
||||
}
|
||||
|
||||
.arrow::before {
|
||||
right: 0;
|
||||
border-left-color: $popover-arrow-outer-color;
|
||||
}
|
||||
|
||||
.arrow::after {
|
||||
right: $popover-border-width;
|
||||
border-left-color: $popover-arrow-color;
|
||||
&::after {
|
||||
right: $popover-border-width;
|
||||
border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;
|
||||
border-left-color: $popover-arrow-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -165,7 +153,7 @@
|
|||
.popover-header {
|
||||
padding: $popover-header-padding-y $popover-header-padding-x;
|
||||
margin-bottom: 0; // Reset the default from Reboot
|
||||
font-size: $font-size-base;
|
||||
@include font-size($font-size-base);
|
||||
color: $popover-header-color;
|
||||
background-color: $popover-header-bg;
|
||||
border-bottom: $popover-border-width solid darken($popover-header-bg, 5%);
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@
|
|||
}
|
||||
pre,
|
||||
blockquote {
|
||||
border: $border-width solid $gray-500; // Bootstrap custom code; using `$border-width` instead of 1px
|
||||
border: $border-width solid $gray-500; // Bootstrap custom code; using `$border-width` instead of 1px
|
||||
page-break-inside: avoid;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,13 +1,16 @@
|
|||
@keyframes progress-bar-stripes {
|
||||
from { background-position: $progress-height 0; }
|
||||
to { background-position: 0 0; }
|
||||
// Disable animation if transitions are disabled
|
||||
@if $enable-transitions {
|
||||
@keyframes progress-bar-stripes {
|
||||
from { background-position: $progress-height 0; }
|
||||
to { background-position: 0 0; }
|
||||
}
|
||||
}
|
||||
|
||||
.progress {
|
||||
display: flex;
|
||||
height: $progress-height;
|
||||
overflow: hidden; // force rounded corners by cropping it
|
||||
font-size: $progress-font-size;
|
||||
@include font-size($progress-font-size);
|
||||
background-color: $progress-bg;
|
||||
@include border-radius($progress-border-radius);
|
||||
@include box-shadow($progress-box-shadow);
|
||||
|
|
@ -29,6 +32,12 @@
|
|||
background-size: $progress-height $progress-height;
|
||||
}
|
||||
|
||||
.progress-bar-animated {
|
||||
animation: progress-bar-stripes $progress-bar-animation-timing;
|
||||
@if $enable-transitions {
|
||||
.progress-bar-animated {
|
||||
animation: progress-bar-stripes $progress-bar-animation-timing;
|
||||
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
animation: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
|
|||
body {
|
||||
margin: 0; // 1
|
||||
font-family: $font-family-base;
|
||||
font-size: $font-size-base;
|
||||
@include font-size($font-size-base);
|
||||
font-weight: $font-weight-base;
|
||||
line-height: $line-height-base;
|
||||
color: $body-color;
|
||||
|
|
@ -155,7 +155,7 @@ strong {
|
|||
}
|
||||
|
||||
small {
|
||||
font-size: 80%; // Add the correct font size in all browsers
|
||||
@include font-size(80%); // Add the correct font size in all browsers
|
||||
}
|
||||
|
||||
//
|
||||
|
|
@ -166,7 +166,7 @@ small {
|
|||
sub,
|
||||
sup {
|
||||
position: relative;
|
||||
font-size: 75%;
|
||||
@include font-size(75%);
|
||||
line-height: 0;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
|
@ -220,7 +220,7 @@ code,
|
|||
kbd,
|
||||
samp {
|
||||
font-family: $font-family-monospace;
|
||||
font-size: 1em; // Correct the odd `em` font sizing in all browsers.
|
||||
@include font-size(1em); // Correct the odd `em` font sizing in all browsers.
|
||||
}
|
||||
|
||||
pre {
|
||||
|
|
@ -297,6 +297,7 @@ label {
|
|||
//
|
||||
// Details at https://github.com/twbs/bootstrap/issues/24093
|
||||
button {
|
||||
// stylelint-disable-next-line property-blacklist
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
|
|
@ -316,7 +317,7 @@ optgroup,
|
|||
textarea {
|
||||
margin: 0; // Remove the margin in Firefox and Safari
|
||||
font-family: inherit;
|
||||
font-size: inherit;
|
||||
@include font-size(inherit);
|
||||
line-height: inherit;
|
||||
}
|
||||
|
||||
|
|
@ -330,6 +331,14 @@ select {
|
|||
text-transform: none; // Remove the inheritance of text transform in Firefox
|
||||
}
|
||||
|
||||
// Remove the inheritance of word-wrap in Safari.
|
||||
//
|
||||
// Details at https://github.com/twbs/bootstrap/issues/24990
|
||||
select {
|
||||
word-wrap: normal;
|
||||
}
|
||||
|
||||
|
||||
// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
|
||||
// controls in Android 4.
|
||||
// 2. Correct the inability to style clickable types in iOS and Safari.
|
||||
|
|
@ -340,6 +349,18 @@ button,
|
|||
-webkit-appearance: button; // 2
|
||||
}
|
||||
|
||||
// Opinionated: add "hand" cursor to non-disabled button elements.
|
||||
@if $enable-pointer-cursor-for-buttons {
|
||||
button,
|
||||
[type="button"],
|
||||
[type="reset"],
|
||||
[type="submit"] {
|
||||
&:not(:disabled) {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.
|
||||
button::-moz-focus-inner,
|
||||
[type="button"]::-moz-focus-inner,
|
||||
|
|
@ -395,7 +416,7 @@ legend {
|
|||
max-width: 100%; // 1
|
||||
padding: 0;
|
||||
margin-bottom: .5rem;
|
||||
font-size: 1.5rem;
|
||||
@include font-size(1.5rem);
|
||||
line-height: inherit;
|
||||
color: inherit; // 2
|
||||
white-space: normal; // 1
|
||||
|
|
@ -421,7 +442,7 @@ progress {
|
|||
}
|
||||
|
||||
//
|
||||
// Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
|
||||
// Remove the inner padding in Chrome and Safari on macOS.
|
||||
//
|
||||
|
||||
[type="search"]::-webkit-search-decoration {
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@
|
|||
vertical-align: text-bottom;
|
||||
border: $spinner-border-width solid currentColor;
|
||||
border-right-color: transparent;
|
||||
// stylelint-disable-next-line property-blacklist
|
||||
border-radius: 50%;
|
||||
animation: spinner-border .75s linear infinite;
|
||||
}
|
||||
|
|
@ -42,6 +43,7 @@
|
|||
height: $spinner-height;
|
||||
vertical-align: text-bottom;
|
||||
background-color: currentColor;
|
||||
// stylelint-disable-next-line property-blacklist
|
||||
border-radius: 50%;
|
||||
opacity: 0;
|
||||
animation: spinner-grow .75s linear infinite;
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
.table {
|
||||
width: 100%;
|
||||
margin-bottom: $spacer;
|
||||
color: $table-color;
|
||||
background-color: $table-bg; // Reset for nesting within parents with `background-color`.
|
||||
|
||||
th,
|
||||
|
|
@ -22,10 +23,6 @@
|
|||
tbody + tbody {
|
||||
border-top: (2 * $table-border-width) solid $table-border-color;
|
||||
}
|
||||
|
||||
.table {
|
||||
background-color: $body-bg;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -88,6 +85,7 @@
|
|||
.table-hover {
|
||||
tbody tr {
|
||||
@include hover {
|
||||
color: $table-hover-color;
|
||||
background-color: $table-hover-bg;
|
||||
}
|
||||
}
|
||||
|
|
@ -152,6 +150,7 @@
|
|||
&.table-hover {
|
||||
tbody tr {
|
||||
@include hover {
|
||||
color: $table-dark-hover-color;
|
||||
background-color: $table-dark-hover-bg;
|
||||
}
|
||||
}
|
||||
|
|
@ -175,7 +174,6 @@
|
|||
width: 100%;
|
||||
overflow-x: auto;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
-ms-overflow-style: -ms-autohiding-scrollbar; // See https://github.com/twbs/bootstrap/pull/10057
|
||||
|
||||
// Prevent double border on horizontal scroll due to use of `display: block;`
|
||||
> .table-bordered {
|
||||
|
|
|
|||
|
|
@ -1,14 +1,15 @@
|
|||
.toast {
|
||||
max-width: $toast-max-width;
|
||||
overflow: hidden; // cheap rounded corners on nested items
|
||||
font-size: $toast-font-size; // knock it down to 14px
|
||||
@include font-size($toast-font-size);
|
||||
color: $toast-color;
|
||||
background-color: $toast-background-color;
|
||||
background-clip: padding-box;
|
||||
border: $toast-border-width solid $toast-border-color;
|
||||
border-radius: $toast-border-radius;
|
||||
box-shadow: $toast-box-shadow;
|
||||
backdrop-filter: blur(10px);
|
||||
opacity: 0;
|
||||
@include border-radius($toast-border-radius);
|
||||
|
||||
&:not(:last-child) {
|
||||
margin-bottom: $toast-padding-x;
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
// Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
|
||||
// So reset our font and text properties to avoid inheriting weird values.
|
||||
@include reset-text();
|
||||
font-size: $tooltip-font-size;
|
||||
@include font-size($tooltip-font-size);
|
||||
// Allow breaking very long words so they don't overflow the tooltip's bounds
|
||||
word-wrap: break-word;
|
||||
opacity: 0;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,3 @@
|
|||
// stylelint-disable selector-no-qualifying-type
|
||||
|
||||
.fade {
|
||||
@include transition($transition-fade);
|
||||
|
||||
|
|
|
|||
|
|
@ -13,36 +13,36 @@ h1, h2, h3, h4, h5, h6,
|
|||
color: $headings-color;
|
||||
}
|
||||
|
||||
h1, .h1 { font-size: $h1-font-size; }
|
||||
h2, .h2 { font-size: $h2-font-size; }
|
||||
h3, .h3 { font-size: $h3-font-size; }
|
||||
h4, .h4 { font-size: $h4-font-size; }
|
||||
h5, .h5 { font-size: $h5-font-size; }
|
||||
h6, .h6 { font-size: $h6-font-size; }
|
||||
h1, .h1 { @include font-size($h1-font-size); }
|
||||
h2, .h2 { @include font-size($h2-font-size); }
|
||||
h3, .h3 { @include font-size($h3-font-size); }
|
||||
h4, .h4 { @include font-size($h4-font-size); }
|
||||
h5, .h5 { @include font-size($h5-font-size); }
|
||||
h6, .h6 { @include font-size($h6-font-size); }
|
||||
|
||||
.lead {
|
||||
font-size: $lead-font-size;
|
||||
@include font-size($lead-font-size);
|
||||
font-weight: $lead-font-weight;
|
||||
}
|
||||
|
||||
// Type display classes
|
||||
.display-1 {
|
||||
font-size: $display1-size;
|
||||
@include font-size($display1-size);
|
||||
font-weight: $display1-weight;
|
||||
line-height: $display-line-height;
|
||||
}
|
||||
.display-2 {
|
||||
font-size: $display2-size;
|
||||
@include font-size($display2-size);
|
||||
font-weight: $display2-weight;
|
||||
line-height: $display-line-height;
|
||||
}
|
||||
.display-3 {
|
||||
font-size: $display3-size;
|
||||
@include font-size($display3-size);
|
||||
font-weight: $display3-weight;
|
||||
line-height: $display-line-height;
|
||||
}
|
||||
.display-4 {
|
||||
font-size: $display4-size;
|
||||
@include font-size($display4-size);
|
||||
font-weight: $display4-weight;
|
||||
line-height: $display-line-height;
|
||||
}
|
||||
|
|
@ -66,7 +66,7 @@ hr {
|
|||
|
||||
small,
|
||||
.small {
|
||||
font-size: $small-font-size;
|
||||
@include font-size($small-font-size);
|
||||
font-weight: $font-weight-normal;
|
||||
}
|
||||
|
||||
|
|
@ -104,19 +104,19 @@ mark,
|
|||
|
||||
// Builds on `abbr`
|
||||
.initialism {
|
||||
font-size: 90%;
|
||||
@include font-size(90%);
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
// Blockquotes
|
||||
.blockquote {
|
||||
margin-bottom: $spacer;
|
||||
font-size: $blockquote-font-size;
|
||||
@include font-size($blockquote-font-size);
|
||||
}
|
||||
|
||||
.blockquote-footer {
|
||||
display: block;
|
||||
font-size: $blockquote-small-font-size;
|
||||
@include font-size($blockquote-small-font-size);
|
||||
color: $blockquote-small-color;
|
||||
|
||||
&::before {
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
@import "utilities/screenreaders";
|
||||
@import "utilities/shadows";
|
||||
@import "utilities/sizing";
|
||||
@import "utilities/stretched-link";
|
||||
@import "utilities/spacing";
|
||||
@import "utilities/text";
|
||||
@import "utilities/visibility";
|
||||
|
|
|
|||
|
|
@ -114,8 +114,11 @@ $enable-transitions: true !default;
|
|||
$enable-prefers-reduced-motion-media-query: true !default;
|
||||
$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS
|
||||
$enable-grid-classes: true !default;
|
||||
$enable-pointer-cursor-for-buttons: true !default;
|
||||
$enable-print-styles: true !default;
|
||||
$enable-responsive-font-sizes: false !default;
|
||||
$enable-validation-icons: true !default;
|
||||
$enable-deprecation-messages: true !default;
|
||||
|
||||
|
||||
// Spacing
|
||||
|
|
@ -185,38 +188,28 @@ $paragraph-margin-bottom: 1rem !default;
|
|||
// Define the minimum dimensions at which your layout will change,
|
||||
// adapting to different screen sizes, for use in media queries.
|
||||
|
||||
$grid-breakpoints: () !default;
|
||||
// stylelint-disable-next-line scss/dollar-variable-default
|
||||
$grid-breakpoints: map-merge(
|
||||
(
|
||||
xs: 0,
|
||||
sm: 576px,
|
||||
md: 768px,
|
||||
lg: 992px,
|
||||
xl: 1200px
|
||||
),
|
||||
$grid-breakpoints
|
||||
);
|
||||
$grid-breakpoints: (
|
||||
xs: 0,
|
||||
sm: 576px,
|
||||
md: 768px,
|
||||
lg: 992px,
|
||||
xl: 1200px
|
||||
) !default;
|
||||
|
||||
@include _assert-ascending($grid-breakpoints, "$grid-breakpoints");
|
||||
@include _assert-starts-at-zero($grid-breakpoints);
|
||||
@include _assert-starts-at-zero($grid-breakpoints, "$grid-breakpoints");
|
||||
|
||||
|
||||
// Grid containers
|
||||
//
|
||||
// Define the maximum width of `.container` for different screen sizes.
|
||||
|
||||
$container-max-widths: () !default;
|
||||
// stylelint-disable-next-line scss/dollar-variable-default
|
||||
$container-max-widths: map-merge(
|
||||
(
|
||||
sm: 540px,
|
||||
md: 720px,
|
||||
lg: 960px,
|
||||
xl: 1140px
|
||||
),
|
||||
$container-max-widths
|
||||
);
|
||||
$container-max-widths: (
|
||||
sm: 540px,
|
||||
md: 720px,
|
||||
lg: 960px,
|
||||
xl: 1140px
|
||||
) !default;
|
||||
|
||||
@include _assert-ascending($container-max-widths, "$container-max-widths");
|
||||
|
||||
|
|
@ -253,6 +246,8 @@ $component-active-color: $white !default;
|
|||
$component-active-bg: theme-color("primary") !default;
|
||||
|
||||
$caret-width: .3em !default;
|
||||
$caret-vertical-align: $caret-width * .85 !default;
|
||||
$caret-spacing: $caret-width * .85 !default;
|
||||
|
||||
$transition-base: all .2s ease-in-out !default;
|
||||
$transition-fade: opacity .15s linear !default;
|
||||
|
|
@ -264,13 +259,13 @@ $embed-responsive-aspect-ratios: join(
|
|||
(
|
||||
(21 9),
|
||||
(16 9),
|
||||
(3 4),
|
||||
(4 3),
|
||||
(1 1),
|
||||
),
|
||||
$embed-responsive-aspect-ratios
|
||||
);
|
||||
|
||||
// Fonts
|
||||
// Typography
|
||||
//
|
||||
// Font, line-height, and color for body text, headings, and more.
|
||||
|
||||
|
|
@ -281,8 +276,8 @@ $font-family-base: $font-family-sans-serif !default;
|
|||
// stylelint-enable value-keyword-case
|
||||
|
||||
$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`
|
||||
$font-size-lg: ($font-size-base * 1.25) !default;
|
||||
$font-size-sm: ($font-size-base * .875) !default;
|
||||
$font-size-lg: $font-size-base * 1.25 !default;
|
||||
$font-size-sm: $font-size-base * .875 !default;
|
||||
|
||||
$font-weight-lighter: lighter !default;
|
||||
$font-weight-light: 300 !default;
|
||||
|
|
@ -301,10 +296,10 @@ $h5-font-size: $font-size-base * 1.25 !default;
|
|||
$h6-font-size: $font-size-base !default;
|
||||
|
||||
$headings-margin-bottom: $spacer / 2 !default;
|
||||
$headings-font-family: inherit !default;
|
||||
$headings-font-family: null !default;
|
||||
$headings-font-weight: 500 !default;
|
||||
$headings-line-height: 1.2 !default;
|
||||
$headings-color: inherit !default;
|
||||
$headings-color: null !default;
|
||||
|
||||
$display1-size: 6rem !default;
|
||||
$display2-size: 5.5rem !default;
|
||||
|
|
@ -317,7 +312,7 @@ $display3-weight: 300 !default;
|
|||
$display4-weight: 300 !default;
|
||||
$display-line-height: $headings-line-height !default;
|
||||
|
||||
$lead-font-size: ($font-size-base * 1.25) !default;
|
||||
$lead-font-size: $font-size-base * 1.25 !default;
|
||||
$lead-font-weight: 300 !default;
|
||||
|
||||
$small-font-size: 80% !default;
|
||||
|
|
@ -326,7 +321,7 @@ $text-muted: $gray-600 !default;
|
|||
|
||||
$blockquote-small-color: $gray-600 !default;
|
||||
$blockquote-small-font-size: $small-font-size !default;
|
||||
$blockquote-font-size: ($font-size-base * 1.25) !default;
|
||||
$blockquote-font-size: $font-size-base * 1.25 !default;
|
||||
|
||||
$hr-border-color: rgba($black, .1) !default;
|
||||
$hr-border-width: $border-width !default;
|
||||
|
|
@ -352,21 +347,25 @@ $hr-margin-y: $spacer !default;
|
|||
$table-cell-padding: .75rem !default;
|
||||
$table-cell-padding-sm: .3rem !default;
|
||||
|
||||
$table-bg: transparent !default;
|
||||
$table-color: $body-color !default;
|
||||
$table-bg: null !default;
|
||||
$table-accent-bg: rgba($black, .05) !default;
|
||||
$table-hover-color: $table-color !default;
|
||||
$table-hover-bg: rgba($black, .075) !default;
|
||||
$table-active-bg: $table-hover-bg !default;
|
||||
|
||||
$table-border-width: $border-width !default;
|
||||
$table-border-color: $gray-300 !default;
|
||||
$table-border-color: $border-color !default;
|
||||
|
||||
$table-head-bg: $gray-200 !default;
|
||||
$table-head-color: $gray-700 !default;
|
||||
|
||||
$table-dark-bg: $gray-900 !default;
|
||||
$table-dark-color: $white !default;
|
||||
$table-dark-bg: $gray-800 !default;
|
||||
$table-dark-accent-bg: rgba($white, .05) !default;
|
||||
$table-dark-hover-color: $table-dark-color !default;
|
||||
$table-dark-hover-bg: rgba($white, .075) !default;
|
||||
$table-dark-border-color: lighten($gray-900, 7.5%) !default;
|
||||
$table-dark-border-color: lighten($table-dark-bg, 7.5%) !default;
|
||||
$table-dark-color: $white !default;
|
||||
|
||||
$table-striped-order: odd !default;
|
||||
|
|
@ -383,6 +382,7 @@ $table-border-level: -6 !default;
|
|||
|
||||
$input-btn-padding-y: .375rem !default;
|
||||
$input-btn-padding-x: .75rem !default;
|
||||
$input-btn-font-family: null !default;
|
||||
$input-btn-font-size: $font-size-base !default;
|
||||
$input-btn-line-height: $line-height-base !default;
|
||||
|
||||
|
|
@ -409,6 +409,7 @@ $input-btn-border-width: $border-width !default;
|
|||
|
||||
$btn-padding-y: $input-btn-padding-y !default;
|
||||
$btn-padding-x: $input-btn-padding-x !default;
|
||||
$btn-font-family: $input-btn-font-family !default;
|
||||
$btn-font-size: $input-btn-font-size !default;
|
||||
$btn-line-height: $input-btn-line-height !default;
|
||||
|
||||
|
|
@ -449,6 +450,7 @@ $label-margin-bottom: .5rem !default;
|
|||
|
||||
$input-padding-y: $input-btn-padding-y !default;
|
||||
$input-padding-x: $input-btn-padding-x !default;
|
||||
$input-font-family: $input-btn-font-family !default;
|
||||
$input-font-size: $input-btn-font-size !default;
|
||||
$input-font-weight: $font-weight-base !default;
|
||||
$input-line-height: $input-btn-line-height !default;
|
||||
|
|
@ -486,14 +488,13 @@ $input-plaintext-color: $body-color !default;
|
|||
|
||||
$input-height-border: $input-border-width * 2 !default;
|
||||
|
||||
$input-height-inner: ($input-btn-font-size * $input-btn-line-height) + ($input-btn-padding-y * 2) !default;
|
||||
$input-height: calc(#{$input-height-inner} + #{$input-height-border}) !default;
|
||||
$input-height-inner: calc(#{$input-line-height * 1em} + #{$input-padding-y * 2}) !default;
|
||||
$input-height-inner-half: calc(#{$input-line-height * .5em} + #{$input-padding-y}) !default;
|
||||
$input-height-inner-quarter: calc(#{$input-line-height * .25em} + #{$input-padding-y / 2}) !default;
|
||||
|
||||
$input-height-inner-sm: ($input-btn-font-size-sm * $input-btn-line-height-sm) + ($input-btn-padding-y-sm * 2) !default;
|
||||
$input-height-sm: calc(#{$input-height-inner-sm} + #{$input-height-border}) !default;
|
||||
|
||||
$input-height-inner-lg: ($input-btn-font-size-lg * $input-btn-line-height-lg) + ($input-btn-padding-y-lg * 2) !default;
|
||||
$input-height-lg: calc(#{$input-height-inner-lg} + #{$input-height-border}) !default;
|
||||
$input-height: calc(#{$input-line-height * 1em} + #{$input-padding-y * 2} + #{$input-height-border}) !default;
|
||||
$input-height-sm: calc(#{$input-line-height-sm * 1em} + #{$input-btn-padding-y-sm * 2} + #{$input-height-border}) !default;
|
||||
$input-height-lg: calc(#{$input-line-height-lg * 1em} + #{$input-btn-padding-y-lg * 2} + #{$input-height-border}) !default;
|
||||
|
||||
$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;
|
||||
|
||||
|
|
@ -535,7 +536,7 @@ $custom-control-indicator-checked-disabled-bg: rgba(theme-color("primary"), .5)
|
|||
$custom-control-indicator-checked-box-shadow: none !default;
|
||||
$custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default;
|
||||
|
||||
$custom-control-indicator-focus-box-shadow: $input-btn-focus-box-shadow !default;
|
||||
$custom-control-indicator-focus-box-shadow: $input-focus-box-shadow !default;
|
||||
$custom-control-indicator-focus-border-color: $input-focus-border-color !default;
|
||||
|
||||
$custom-control-indicator-active-color: $component-active-color !default;
|
||||
|
|
@ -559,8 +560,10 @@ $custom-switch-width: $custom-control-indicator-size *
|
|||
$custom-switch-indicator-border-radius: $custom-control-indicator-size / 2 !default;
|
||||
$custom-switch-indicator-size: calc(#{$custom-control-indicator-size} - #{$custom-control-indicator-border-width * 4}) !default;
|
||||
|
||||
$custom-select-padding-y: $input-btn-padding-y !default;
|
||||
$custom-select-padding-x: $input-btn-padding-x !default;
|
||||
$custom-select-padding-y: $input-padding-y !default;
|
||||
$custom-select-padding-x: $input-padding-x !default;
|
||||
$custom-select-font-family: $input-font-family !default;
|
||||
$custom-select-font-size: $input-font-size !default;
|
||||
$custom-select-height: $input-height !default;
|
||||
$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator
|
||||
$custom-select-font-weight: $input-font-weight !default;
|
||||
|
|
@ -574,9 +577,9 @@ $custom-select-indicator-color: $gray-800 !default;
|
|||
$custom-select-indicator: str-replace(url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e"), "#", "%23") !default;
|
||||
$custom-select-background: $custom-select-indicator no-repeat right $custom-select-padding-x center / $custom-select-bg-size !default; // Used so we can have multiple background elements (e.g., arrow and feedback icon)
|
||||
|
||||
$custom-select-feedback-icon-padding-right: $input-height-inner * 3 / 4 + $custom-select-padding-x + $custom-select-indicator-padding !default;
|
||||
$custom-select-feedback-icon-padding-right: calc((1em + #{2 * $custom-select-padding-y}) * 3 / 4 + #{$custom-select-padding-x + $custom-select-indicator-padding}) !default;
|
||||
$custom-select-feedback-icon-position: center right ($custom-select-padding-x + $custom-select-indicator-padding) !default;
|
||||
$custom-select-feedback-icon-size: ($input-height-inner / 2) ($input-height-inner / 2) !default;
|
||||
$custom-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;
|
||||
|
||||
$custom-select-border-width: $input-border-width !default;
|
||||
$custom-select-border-color: $input-border-color !default;
|
||||
|
|
@ -585,16 +588,16 @@ $custom-select-box-shadow: inset 0 1px 2px rgba($black, .075) !default;
|
|||
|
||||
$custom-select-focus-border-color: $input-focus-border-color !default;
|
||||
$custom-select-focus-width: $input-focus-width !default;
|
||||
$custom-select-focus-box-shadow: 0 0 0 $custom-select-focus-width rgba($custom-select-focus-border-color, .5) !default;
|
||||
$custom-select-focus-box-shadow: 0 0 0 $custom-select-focus-width $input-btn-focus-color !default;
|
||||
|
||||
$custom-select-padding-y-sm: $input-padding-y-sm !default;
|
||||
$custom-select-padding-x-sm: $input-padding-x-sm !default;
|
||||
$custom-select-font-size-sm: $input-btn-font-size-sm !default;
|
||||
$custom-select-font-size-sm: $input-font-size-sm !default;
|
||||
$custom-select-height-sm: $input-height-sm !default;
|
||||
|
||||
$custom-select-padding-y-lg: $input-padding-y-lg !default;
|
||||
$custom-select-padding-x-lg: $input-padding-x-lg !default;
|
||||
$custom-select-font-size-lg: $input-btn-font-size-lg !default;
|
||||
$custom-select-font-size-lg: $input-font-size-lg !default;
|
||||
$custom-select-height-lg: $input-height-lg !default;
|
||||
|
||||
$custom-range-track-width: 100% !default;
|
||||
|
|
@ -624,6 +627,7 @@ $custom-file-disabled-bg: $input-disabled-bg !default;
|
|||
$custom-file-padding-y: $input-padding-y !default;
|
||||
$custom-file-padding-x: $input-padding-x !default;
|
||||
$custom-file-line-height: $input-line-height !default;
|
||||
$custom-file-font-family: $input-font-family !default;
|
||||
$custom-file-font-weight: $input-font-weight !default;
|
||||
$custom-file-color: $input-color !default;
|
||||
$custom-file-bg: $input-bg !default;
|
||||
|
|
@ -648,38 +652,23 @@ $form-feedback-invalid-color: theme-color("danger") !default;
|
|||
$form-feedback-icon-valid-color: $form-feedback-valid-color !default;
|
||||
$form-feedback-icon-valid: str-replace(url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='#{$form-feedback-icon-valid-color}' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"), "#", "%23") !default;
|
||||
$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;
|
||||
$form-feedback-icon-invalid: str-replace(url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='#{$form-feedback-icon-invalid-color}' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23d9534f' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E"), "#", "%23") !default;
|
||||
|
||||
|
||||
// Dropdowns
|
||||
//
|
||||
// Dropdown menu container and contents.
|
||||
|
||||
$dropdown-min-width: 10rem !default;
|
||||
$dropdown-padding-y: .5rem !default;
|
||||
$dropdown-spacer: .125rem !default;
|
||||
$dropdown-bg: $white !default;
|
||||
$dropdown-border-color: rgba($black, .15) !default;
|
||||
$dropdown-border-radius: $border-radius !default;
|
||||
$dropdown-border-width: $border-width !default;
|
||||
$dropdown-inner-border-radius: calc(#{$dropdown-border-radius} - #{$dropdown-border-width}) !default;
|
||||
$dropdown-divider-bg: $gray-200 !default;
|
||||
$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;
|
||||
|
||||
$dropdown-link-color: $gray-900 !default;
|
||||
$dropdown-link-hover-color: darken($gray-900, 5%) !default;
|
||||
$dropdown-link-hover-bg: $gray-100 !default;
|
||||
|
||||
$dropdown-link-active-color: $component-active-color !default;
|
||||
$dropdown-link-active-bg: $component-active-bg !default;
|
||||
|
||||
$dropdown-link-disabled-color: $gray-600 !default;
|
||||
|
||||
$dropdown-item-padding-y: .25rem !default;
|
||||
$dropdown-item-padding-x: 1.5rem !default;
|
||||
|
||||
$dropdown-header-color: $gray-600 !default;
|
||||
$form-feedback-icon-invalid: str-replace(url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='#{$form-feedback-icon-invalid-color}' viewBox='-2 -2 7 7'%3e%3cpath stroke='#{$form-feedback-icon-invalid-color}' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E"), "#", "%23") !default;
|
||||
|
||||
$form-validation-states: () !default;
|
||||
// stylelint-disable-next-line scss/dollar-variable-default
|
||||
$form-validation-states: map-merge(
|
||||
(
|
||||
"valid": (
|
||||
"color": $form-feedback-valid-color,
|
||||
"icon": $form-feedback-icon-valid
|
||||
),
|
||||
"invalid": (
|
||||
"color": $form-feedback-invalid-color,
|
||||
"icon": $form-feedback-icon-invalid
|
||||
),
|
||||
),
|
||||
$form-validation-states
|
||||
);
|
||||
|
||||
// Z-index master list
|
||||
//
|
||||
|
|
@ -755,6 +744,39 @@ $navbar-dark-brand-color: $navbar-dark-active-color !default;
|
|||
$navbar-dark-brand-hover-color: $navbar-dark-active-color !default;
|
||||
|
||||
|
||||
// Dropdowns
|
||||
//
|
||||
// Dropdown menu container and contents.
|
||||
|
||||
$dropdown-min-width: 10rem !default;
|
||||
$dropdown-padding-y: .5rem !default;
|
||||
$dropdown-spacer: .125rem !default;
|
||||
$dropdown-font-size: $font-size-base !default;
|
||||
$dropdown-color: $body-color !default;
|
||||
$dropdown-bg: $white !default;
|
||||
$dropdown-border-color: rgba($black, .15) !default;
|
||||
$dropdown-border-radius: $border-radius !default;
|
||||
$dropdown-border-width: $border-width !default;
|
||||
$dropdown-inner-border-radius: calc(#{$dropdown-border-radius} - #{$dropdown-border-width}) !default;
|
||||
$dropdown-divider-bg: $gray-200 !default;
|
||||
$dropdown-divider-margin-y: $nav-divider-margin-y !default;
|
||||
$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;
|
||||
|
||||
$dropdown-link-color: $gray-900 !default;
|
||||
$dropdown-link-hover-color: darken($gray-900, 5%) !default;
|
||||
$dropdown-link-hover-bg: $gray-100 !default;
|
||||
|
||||
$dropdown-link-active-color: $component-active-color !default;
|
||||
$dropdown-link-active-bg: $component-active-bg !default;
|
||||
|
||||
$dropdown-link-disabled-color: $gray-600 !default;
|
||||
|
||||
$dropdown-item-padding-y: .25rem !default;
|
||||
$dropdown-item-padding-x: 1.5rem !default;
|
||||
|
||||
$dropdown-header-color: $gray-600 !default;
|
||||
|
||||
|
||||
// Pagination
|
||||
|
||||
$pagination-padding-y: .5rem !default;
|
||||
|
|
@ -789,6 +811,7 @@ $pagination-disabled-border-color: $gray-300 !default;
|
|||
// Jumbotron
|
||||
|
||||
$jumbotron-padding: 2rem !default;
|
||||
$jumbotron-color: null !default;
|
||||
$jumbotron-bg: $gray-200 !default;
|
||||
|
||||
|
||||
|
|
@ -801,7 +824,8 @@ $card-border-radius: $border-radius !default;
|
|||
$card-border-color: rgba($black, .125) !default;
|
||||
$card-inner-border-radius: calc(#{$card-border-radius} - #{$card-border-width}) !default;
|
||||
$card-cap-bg: rgba($black, .03) !default;
|
||||
$card-cap-color: inherit !default;
|
||||
$card-cap-color: null !default;
|
||||
$card-color: null !default;
|
||||
$card-bg: $white !default;
|
||||
|
||||
$card-img-overlay-padding: 1.25rem !default;
|
||||
|
|
@ -866,19 +890,21 @@ $popover-arrow-outer-color: fade-in($popover-border-color, .05) !default
|
|||
|
||||
|
||||
// Toasts
|
||||
$toast-max-width: 350px !default;
|
||||
$toast-padding-x: .75rem !default;
|
||||
$toast-padding-y: .25rem !default;
|
||||
$toast-font-size: .875rem !default;
|
||||
$toast-background-color: rgba($white, .85) !default;
|
||||
$toast-border-width: 1px !default;
|
||||
$toast-border-color: rgba(0, 0, 0, .1) !default;
|
||||
$toast-border-radius: .25rem !default;
|
||||
$toast-box-shadow: 0 .25rem .75rem rgba($black, .1) !default;
|
||||
|
||||
$toast-header-color: $gray-600 !default;
|
||||
$toast-header-background-color: rgba($white, .85) !default;
|
||||
$toast-header-border-color: rgba(0, 0, 0, .05) !default;
|
||||
$toast-max-width: 350px !default;
|
||||
$toast-padding-x: .75rem !default;
|
||||
$toast-padding-y: .25rem !default;
|
||||
$toast-font-size: .875rem !default;
|
||||
$toast-color: null !default;
|
||||
$toast-background-color: rgba($white, .85) !default;
|
||||
$toast-border-width: 1px !default;
|
||||
$toast-border-color: rgba(0, 0, 0, .1) !default;
|
||||
$toast-border-radius: .25rem !default;
|
||||
$toast-box-shadow: 0 .25rem .75rem rgba($black, .1) !default;
|
||||
|
||||
$toast-header-color: $gray-600 !default;
|
||||
$toast-header-background-color: rgba($white, .85) !default;
|
||||
$toast-header-border-color: rgba(0, 0, 0, .05) !default;
|
||||
|
||||
|
||||
// Badges
|
||||
|
|
@ -889,6 +915,9 @@ $badge-padding-y: .25em !default;
|
|||
$badge-padding-x: .4em !default;
|
||||
$badge-border-radius: $border-radius !default;
|
||||
|
||||
$badge-transition: $btn-transition !default;
|
||||
$badge-focus-width: $input-btn-focus-width !default;
|
||||
|
||||
$badge-pill-padding-x: .6em !default;
|
||||
// Use a higher than normal value to ensure completely rounded edges when
|
||||
// customizing padding or font-size on labels.
|
||||
|
|
@ -905,6 +934,7 @@ $modal-dialog-margin-y-sm-up: 1.75rem !default;
|
|||
|
||||
$modal-title-line-height: $line-height-base !default;
|
||||
|
||||
$modal-content-color: null !default;
|
||||
$modal-content-bg: $white !default;
|
||||
$modal-content-border-color: rgba($black, .2) !default;
|
||||
$modal-content-border-width: $border-width !default;
|
||||
|
|
@ -914,7 +944,7 @@ $modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;
|
|||
|
||||
$modal-backdrop-bg: $black !default;
|
||||
$modal-backdrop-opacity: .5 !default;
|
||||
$modal-header-border-color: $gray-200 !default;
|
||||
$modal-header-border-color: $border-color !default;
|
||||
$modal-footer-border-color: $modal-header-border-color !default;
|
||||
$modal-header-border-width: $modal-content-border-width !default;
|
||||
$modal-footer-border-width: $modal-header-border-width !default;
|
||||
|
|
@ -951,7 +981,7 @@ $alert-color-level: 6 !default;
|
|||
// Progress bars
|
||||
|
||||
$progress-height: 1rem !default;
|
||||
$progress-font-size: ($font-size-base * .75) !default;
|
||||
$progress-font-size: $font-size-base * .75 !default;
|
||||
$progress-bg: $gray-200 !default;
|
||||
$progress-border-radius: $border-radius !default;
|
||||
$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;
|
||||
|
|
@ -963,6 +993,7 @@ $progress-bar-transition: width .6s ease !default;
|
|||
|
||||
// List group
|
||||
|
||||
$list-group-color: null !default;
|
||||
$list-group-bg: $white !default;
|
||||
$list-group-border-color: rgba($black, .125) !default;
|
||||
$list-group-border-width: $border-width !default;
|
||||
|
|
@ -1081,6 +1112,7 @@ $pre-scrollable-max-height: 340px !default;
|
|||
|
||||
// Utilities
|
||||
|
||||
$displays: none, inline, inline-block, block, table, table-row, table-cell, flex, inline-flex !default;
|
||||
$overflows: auto, hidden !default;
|
||||
$positions: static, relative, absolute, fixed, sticky !default;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/*!
|
||||
* Bootstrap Grid v4.2.1 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2018 The Bootstrap Authors
|
||||
* Copyright 2011-2018 Twitter, Inc.
|
||||
* Bootstrap Grid v4.3.1 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2019 The Bootstrap Authors
|
||||
* Copyright 2011-2019 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/*!
|
||||
* Bootstrap Reboot v4.2.1 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2018 The Bootstrap Authors
|
||||
* Copyright 2011-2018 Twitter, Inc.
|
||||
* Bootstrap Reboot v4.3.1 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2019 The Bootstrap Authors
|
||||
* Copyright 2011-2019 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/*!
|
||||
* Bootstrap v4.2.1 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2018 The Bootstrap Authors
|
||||
* Copyright 2011-2018 Twitter, Inc.
|
||||
* Bootstrap v4.3.1 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2019 The Bootstrap Authors
|
||||
* Copyright 2011-2019 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
|
|
|
|||
|
|
@ -7,5 +7,11 @@
|
|||
color: color-yiq($bg);
|
||||
background-color: darken($bg, 10%);
|
||||
}
|
||||
|
||||
&:focus,
|
||||
&.focus {
|
||||
outline: 0;
|
||||
box-shadow: 0 0 0 $badge-focus-width rgba($bg, .5);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,13 @@
|
|||
// stylelint-disable property-blacklist
|
||||
// Single side border-radius
|
||||
|
||||
@mixin border-radius($radius: $border-radius) {
|
||||
@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {
|
||||
@if $enable-rounded {
|
||||
border-radius: $radius;
|
||||
}
|
||||
@else if $fallback-border-radius != false {
|
||||
border-radius: $fallback-border-radius;
|
||||
}
|
||||
}
|
||||
|
||||
@mixin border-top-radius($radius) {
|
||||
|
|
@ -33,3 +37,27 @@
|
|||
border-bottom-left-radius: $radius;
|
||||
}
|
||||
}
|
||||
|
||||
@mixin border-top-left-radius($radius) {
|
||||
@if $enable-rounded {
|
||||
border-top-left-radius: $radius;
|
||||
}
|
||||
}
|
||||
|
||||
@mixin border-top-right-radius($radius) {
|
||||
@if $enable-rounded {
|
||||
border-top-right-radius: $radius;
|
||||
}
|
||||
}
|
||||
|
||||
@mixin border-bottom-right-radius($radius) {
|
||||
@if $enable-rounded {
|
||||
border-bottom-right-radius: $radius;
|
||||
}
|
||||
}
|
||||
|
||||
@mixin border-bottom-left-radius($radius) {
|
||||
@if $enable-rounded {
|
||||
border-bottom-left-radius: $radius;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,20 @@
|
|||
@mixin box-shadow($shadow...) {
|
||||
@if $enable-shadows {
|
||||
box-shadow: $shadow;
|
||||
$result: ();
|
||||
|
||||
@if (length($shadow) == 1) {
|
||||
// We can pass `@include box-shadow(none);`
|
||||
$result: $shadow;
|
||||
} @else {
|
||||
// Filter to avoid invalid properties for example `box-shadow: none, 1px 1px black;`
|
||||
@for $i from 1 through length($shadow) {
|
||||
@if nth($shadow, $i) != "none" {
|
||||
$result: append($result, nth($shadow, $i), "comma");
|
||||
}
|
||||
}
|
||||
}
|
||||
@if (length($result) > 0) {
|
||||
box-shadow: $result;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@
|
|||
|
||||
&:focus {
|
||||
// Avoid using mixin so we can pass custom focus shadow properly
|
||||
@if $enable-shadows {
|
||||
@if $enable-shadows and $btn-active-box-shadow != none {
|
||||
box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);
|
||||
} @else {
|
||||
box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);
|
||||
|
|
@ -100,12 +100,8 @@
|
|||
// Button sizes
|
||||
@mixin button-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {
|
||||
padding: $padding-y $padding-x;
|
||||
font-size: $font-size;
|
||||
@include font-size($font-size);
|
||||
line-height: $line-height;
|
||||
// Manually declare to provide an override to the browser default
|
||||
@if $enable-rounded {
|
||||
border-radius: $border-radius;
|
||||
} @else {
|
||||
border-radius: 0;
|
||||
}
|
||||
@include border-radius($border-radius, 0);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,8 +29,8 @@
|
|||
@if $enable-caret {
|
||||
&::after {
|
||||
display: inline-block;
|
||||
margin-left: $caret-width * .85;
|
||||
vertical-align: $caret-width * .85;
|
||||
margin-left: $caret-spacing;
|
||||
vertical-align: $caret-vertical-align;
|
||||
content: "";
|
||||
@if $direction == down {
|
||||
@include caret-down;
|
||||
|
|
@ -48,8 +48,8 @@
|
|||
|
||||
&::before {
|
||||
display: inline-block;
|
||||
margin-right: $caret-width * .85;
|
||||
vertical-align: $caret-width * .85;
|
||||
margin-right: $caret-spacing;
|
||||
vertical-align: $caret-vertical-align;
|
||||
content: "";
|
||||
@include caret-left;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,10 @@
|
|||
// Deprecate mixin
|
||||
//
|
||||
// This mixin can be used to deprecate mixins or functions.
|
||||
// `$enable-deprecation-messages` is a global variable, `$ignore-warning` is a variable that can be passed to
|
||||
// some deprecated mixins to suppress the warning (for example if the mixin is still be used in the current version of Bootstrap)
|
||||
@mixin deprecate($name, $deprecate-version, $remove-version, $ignore-warning: false) {
|
||||
@if ($enable-deprecation-messages != false and $ignore-warning != true) {
|
||||
@warn "#{$name} has been deprecated as of #{$deprecate-version}. It will be removed entirely in #{$remove-version}.";
|
||||
}
|
||||
}
|
||||
|
|
@ -2,10 +2,13 @@
|
|||
|
||||
@mixin float-left {
|
||||
float: left !important;
|
||||
@include deprecate("The `float-left` mixin", "v4.3.0", "v5");
|
||||
}
|
||||
@mixin float-right {
|
||||
float: right !important;
|
||||
@include deprecate("The `float-right` mixin", "v4.3.0", "v5");
|
||||
}
|
||||
@mixin float-none {
|
||||
float: none !important;
|
||||
@include deprecate("The `float-none` mixin", "v4.3.0", "v5");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,12 +26,12 @@
|
|||
}
|
||||
|
||||
|
||||
@mixin form-validation-state($state, $color) {
|
||||
@mixin form-validation-state($state, $color, $icon) {
|
||||
.#{$state}-feedback {
|
||||
display: none;
|
||||
width: 100%;
|
||||
margin-top: $form-feedback-margin-top;
|
||||
font-size: $form-feedback-font-size;
|
||||
@include font-size($form-feedback-font-size);
|
||||
color: $color;
|
||||
}
|
||||
|
||||
|
|
@ -43,7 +43,7 @@
|
|||
max-width: 100%; // Contain to parent when possible
|
||||
padding: $form-feedback-tooltip-padding-y $form-feedback-tooltip-padding-x;
|
||||
margin-top: .1rem;
|
||||
font-size: $form-feedback-tooltip-font-size;
|
||||
@include font-size($form-feedback-tooltip-font-size);
|
||||
line-height: $form-feedback-tooltip-line-height;
|
||||
color: color-yiq($color);
|
||||
background-color: rgba($color, $form-feedback-tooltip-opacity);
|
||||
|
|
@ -57,15 +57,10 @@
|
|||
|
||||
@if $enable-validation-icons {
|
||||
padding-right: $input-height-inner;
|
||||
background-image: $icon;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center right calc(#{$input-height-inner} / 4);
|
||||
background-size: calc(#{$input-height-inner} / 2) calc(#{$input-height-inner} / 2);
|
||||
|
||||
@if $state == "valid" {
|
||||
background-image: $form-feedback-icon-valid;
|
||||
} @else {
|
||||
background-image: $form-feedback-icon-invalid;
|
||||
}
|
||||
background-position: center right $input-height-inner-quarter;
|
||||
background-size: $input-height-inner-half $input-height-inner-half;
|
||||
}
|
||||
|
||||
&:focus {
|
||||
|
|
@ -86,7 +81,7 @@
|
|||
&.is-#{$state} {
|
||||
@if $enable-validation-icons {
|
||||
padding-right: $input-height-inner;
|
||||
background-position: top calc(#{$input-height-inner} / 4) right calc(#{$input-height-inner} / 4);
|
||||
background-position: top $input-height-inner-quarter right $input-height-inner-quarter;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -97,9 +92,8 @@
|
|||
border-color: $color;
|
||||
|
||||
@if $enable-validation-icons {
|
||||
$form-feedback-icon: if($state == "valid", $form-feedback-icon-valid, $form-feedback-icon-invalid);
|
||||
padding-right: $custom-select-feedback-icon-padding-right;
|
||||
background: $custom-select-background, $form-feedback-icon no-repeat $custom-select-feedback-icon-position / $custom-select-feedback-icon-size;
|
||||
background: $custom-select-background, $icon $custom-select-bg no-repeat $custom-select-feedback-icon-position / $custom-select-feedback-icon-size;
|
||||
}
|
||||
|
||||
&:focus {
|
||||
|
|
|
|||
|
|
@ -20,7 +20,6 @@
|
|||
//
|
||||
// Short retina mixin for setting background-image and -size.
|
||||
|
||||
// stylelint-disable indentation, media-query-list-comma-newline-after
|
||||
@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {
|
||||
background-image: url($file-1x);
|
||||
|
||||
|
|
@ -29,8 +28,9 @@
|
|||
// There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.
|
||||
// Compatibility info: https://caniuse.com/#feat=css-media-resolution
|
||||
@media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx
|
||||
only screen and (min-resolution: 2dppx) { // Standardized
|
||||
only screen and (min-resolution: 2dppx) { // Standardized
|
||||
background-image: url($file-2x);
|
||||
background-size: $width-1x $height-1x;
|
||||
}
|
||||
@include deprecate("`img-retina()`", "v4.3.0", "v5");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
@mixin pagination-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {
|
||||
.page-link {
|
||||
padding: $padding-y $padding-x;
|
||||
font-size: $font-size;
|
||||
@include font-size($font-size);
|
||||
line-height: $line-height;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
font-weight: $font-weight-normal;
|
||||
line-height: $line-height-base;
|
||||
text-align: left; // Fallback for where `start` is not supported
|
||||
text-align: start; // stylelint-disable-line declaration-block-no-duplicate-properties
|
||||
text-align: start;
|
||||
text-decoration: none;
|
||||
text-shadow: none;
|
||||
text-transform: none;
|
||||
|
|
|
|||
|
|
@ -3,4 +3,5 @@
|
|||
@mixin size($width, $height: $width) {
|
||||
width: $width;
|
||||
height: $height;
|
||||
@include deprecate("`size()`", "v4.3.0", "v5");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,9 +6,11 @@
|
|||
#{$parent} {
|
||||
color: $color !important;
|
||||
}
|
||||
a#{$parent} {
|
||||
@include hover-focus {
|
||||
color: darken($color, $emphasized-link-hover-darken-percentage) !important;
|
||||
@if $emphasized-link-hover-darken-percentage != 0 {
|
||||
a#{$parent} {
|
||||
@include hover-focus {
|
||||
color: darken($color, $emphasized-link-hover-darken-percentage) !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,5 @@
|
|||
background-color: transparent;
|
||||
border: 0;
|
||||
|
||||
@if ($ignore-warning != true) {
|
||||
@warn "The `text-hide()` mixin has been deprecated as of v4.1.0. It will be removed entirely in v5.";
|
||||
}
|
||||
@include deprecate("`text-hide()`", "v4.1.0", "v5", $ignore-warning);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
}
|
||||
|
||||
@if $enable-prefers-reduced-motion-media-query {
|
||||
@media screen and (prefers-reduced-motion: reduce) {
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
transition: none;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,4 +4,5 @@
|
|||
|
||||
@mixin invisible($visibility) {
|
||||
visibility: $visibility !important;
|
||||
@include deprecate("`invisible()`", "v4.3.0", "v5");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// stylelint-disable declaration-no-important
|
||||
// stylelint-disable property-blacklist, declaration-no-important
|
||||
|
||||
//
|
||||
// Border
|
||||
|
|
@ -30,26 +30,38 @@
|
|||
// Border-radius
|
||||
//
|
||||
|
||||
.rounded-sm {
|
||||
border-radius: $border-radius-sm !important;
|
||||
}
|
||||
|
||||
.rounded {
|
||||
border-radius: $border-radius !important;
|
||||
}
|
||||
|
||||
.rounded-top {
|
||||
border-top-left-radius: $border-radius !important;
|
||||
border-top-right-radius: $border-radius !important;
|
||||
}
|
||||
|
||||
.rounded-right {
|
||||
border-top-right-radius: $border-radius !important;
|
||||
border-bottom-right-radius: $border-radius !important;
|
||||
}
|
||||
|
||||
.rounded-bottom {
|
||||
border-bottom-right-radius: $border-radius !important;
|
||||
border-bottom-left-radius: $border-radius !important;
|
||||
}
|
||||
|
||||
.rounded-left {
|
||||
border-top-left-radius: $border-radius !important;
|
||||
border-bottom-left-radius: $border-radius !important;
|
||||
}
|
||||
|
||||
.rounded-lg {
|
||||
border-radius: $border-radius-lg !important;
|
||||
}
|
||||
|
||||
.rounded-circle {
|
||||
border-radius: 50% !important;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,15 +8,9 @@
|
|||
@include media-breakpoint-up($breakpoint) {
|
||||
$infix: breakpoint-infix($breakpoint, $grid-breakpoints);
|
||||
|
||||
.d#{$infix}-none { display: none !important; }
|
||||
.d#{$infix}-inline { display: inline !important; }
|
||||
.d#{$infix}-inline-block { display: inline-block !important; }
|
||||
.d#{$infix}-block { display: block !important; }
|
||||
.d#{$infix}-table { display: table !important; }
|
||||
.d#{$infix}-table-row { display: table-row !important; }
|
||||
.d#{$infix}-table-cell { display: table-cell !important; }
|
||||
.d#{$infix}-flex { display: flex !important; }
|
||||
.d#{$infix}-inline-flex { display: inline-flex !important; }
|
||||
@each $value in $displays {
|
||||
.d#{$infix}-#{$value} { display: $value !important; }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -26,13 +20,7 @@
|
|||
//
|
||||
|
||||
@media print {
|
||||
.d-print-none { display: none !important; }
|
||||
.d-print-inline { display: inline !important; }
|
||||
.d-print-inline-block { display: inline-block !important; }
|
||||
.d-print-block { display: block !important; }
|
||||
.d-print-table { display: table !important; }
|
||||
.d-print-table-row { display: table-row !important; }
|
||||
.d-print-table-cell { display: table-cell !important; }
|
||||
.d-print-flex { display: flex !important; }
|
||||
.d-print-inline-flex { display: inline-flex !important; }
|
||||
@each $value in $displays {
|
||||
.d-print-#{$value} { display: $value !important; }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
// stylelint-disable declaration-no-important
|
||||
|
||||
@each $breakpoint in map-keys($grid-breakpoints) {
|
||||
@include media-breakpoint-up($breakpoint) {
|
||||
$infix: breakpoint-infix($breakpoint, $grid-breakpoints);
|
||||
|
||||
.float#{$infix}-left { @include float-left; }
|
||||
.float#{$infix}-right { @include float-right; }
|
||||
.float#{$infix}-none { @include float-none; }
|
||||
.float#{$infix}-left { float: left !important; }
|
||||
.float#{$infix}-right { float: right !important; }
|
||||
.float#{$infix}-none { float: none !important; }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,19 @@
|
|||
//
|
||||
// Stretched link
|
||||
//
|
||||
|
||||
.stretched-link {
|
||||
&::after {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
z-index: 1;
|
||||
// Just in case `pointer-events: none` is set on a parent
|
||||
pointer-events: auto;
|
||||
content: "";
|
||||
// IE10 bugfix, see https://stackoverflow.com/questions/16947967/ie10-hover-pseudo-class-doesnt-work-without-background-color
|
||||
background-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
}
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
// Text
|
||||
//
|
||||
|
||||
.text-monospace { font-family: $font-family-monospace; }
|
||||
.text-monospace { font-family: $font-family-monospace !important; }
|
||||
|
||||
// Alignment
|
||||
|
||||
|
|
@ -62,6 +62,11 @@
|
|||
|
||||
.text-decoration-none { text-decoration: none !important; }
|
||||
|
||||
.text-break {
|
||||
word-break: break-word !important; // IE & < Edge 18
|
||||
overflow-wrap: break-word !important;
|
||||
}
|
||||
|
||||
// Reset
|
||||
|
||||
.text-reset { color: inherit !important; }
|
||||
|
|
|
|||
|
|
@ -1,11 +1,13 @@
|
|||
// stylelint-disable declaration-no-important
|
||||
|
||||
//
|
||||
// Visibility utilities
|
||||
//
|
||||
|
||||
.visible {
|
||||
@include invisible(visible);
|
||||
visibility: visible !important;
|
||||
}
|
||||
|
||||
.invisible {
|
||||
@include invisible(hidden);
|
||||
visibility: hidden !important;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,204 @@
|
|||
// stylelint-disable property-blacklist, scss/dollar-variable-default
|
||||
|
||||
// SCSS RFS mixin
|
||||
//
|
||||
// Automated font-resizing
|
||||
//
|
||||
// See https://github.com/twbs/rfs
|
||||
|
||||
// Configuration
|
||||
|
||||
// Base font size
|
||||
$rfs-base-font-size: 1.25rem !default;
|
||||
$rfs-font-size-unit: rem !default;
|
||||
|
||||
// Breakpoint at where font-size starts decreasing if screen width is smaller
|
||||
$rfs-breakpoint: 1200px !default;
|
||||
$rfs-breakpoint-unit: px !default;
|
||||
|
||||
// Resize font-size based on screen height and width
|
||||
$rfs-two-dimensional: false !default;
|
||||
|
||||
// Factor of decrease
|
||||
$rfs-factor: 10 !default;
|
||||
|
||||
@if type-of($rfs-factor) != "number" or $rfs-factor <= 1 {
|
||||
@error "`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.";
|
||||
}
|
||||
|
||||
// Generate enable or disable classes. Possibilities: false, "enable" or "disable"
|
||||
$rfs-class: false !default;
|
||||
|
||||
// 1 rem = $rfs-rem-value px
|
||||
$rfs-rem-value: 16 !default;
|
||||
|
||||
// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14
|
||||
$rfs-safari-iframe-resize-bug-fix: false !default;
|
||||
|
||||
// Disable RFS by setting $enable-responsive-font-sizes to false
|
||||
$enable-responsive-font-sizes: true !default;
|
||||
|
||||
// Cache $rfs-base-font-size unit
|
||||
$rfs-base-font-size-unit: unit($rfs-base-font-size);
|
||||
|
||||
// Remove px-unit from $rfs-base-font-size for calculations
|
||||
@if $rfs-base-font-size-unit == "px" {
|
||||
$rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);
|
||||
}
|
||||
@else if $rfs-base-font-size-unit == "rem" {
|
||||
$rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value);
|
||||
}
|
||||
|
||||
// Cache $rfs-breakpoint unit to prevent multiple calls
|
||||
$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);
|
||||
|
||||
// Remove unit from $rfs-breakpoint for calculations
|
||||
@if $rfs-breakpoint-unit-cache == "px" {
|
||||
$rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);
|
||||
}
|
||||
@else if $rfs-breakpoint-unit-cache == "rem" or $rfs-breakpoint-unit-cache == "em" {
|
||||
$rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);
|
||||
}
|
||||
|
||||
// Responsive font-size mixin
|
||||
@mixin rfs($fs, $important: false) {
|
||||
// Cache $fs unit
|
||||
$fs-unit: if(type-of($fs) == "number", unit($fs), false);
|
||||
|
||||
// Add !important suffix if needed
|
||||
$rfs-suffix: if($important, " !important", "");
|
||||
|
||||
// If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value
|
||||
@if not $fs-unit or $fs-unit != "" and $fs-unit != "px" and $fs-unit != "rem" or $fs == 0 {
|
||||
font-size: #{$fs}#{$rfs-suffix};
|
||||
}
|
||||
@else {
|
||||
// Variables for storing static and fluid rescaling
|
||||
$rfs-static: null;
|
||||
$rfs-fluid: null;
|
||||
|
||||
// Remove px-unit from $fs for calculations
|
||||
@if $fs-unit == "px" {
|
||||
$fs: $fs / ($fs * 0 + 1);
|
||||
}
|
||||
@else if $fs-unit == "rem" {
|
||||
$fs: $fs / ($fs * 0 + 1 / $rfs-rem-value);
|
||||
}
|
||||
|
||||
// Set default font-size
|
||||
@if $rfs-font-size-unit == rem {
|
||||
$rfs-static: #{$fs / $rfs-rem-value}rem#{$rfs-suffix};
|
||||
}
|
||||
@else if $rfs-font-size-unit == px {
|
||||
$rfs-static: #{$fs}px#{$rfs-suffix};
|
||||
}
|
||||
@else {
|
||||
@error "`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.";
|
||||
}
|
||||
|
||||
// Only add media query if font-size is bigger as the minimum font-size
|
||||
// If $rfs-factor == 1, no rescaling will take place
|
||||
@if $fs > $rfs-base-font-size and $enable-responsive-font-sizes {
|
||||
$min-width: null;
|
||||
$variable-unit: null;
|
||||
|
||||
// Calculate minimum font-size for given font-size
|
||||
$fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;
|
||||
|
||||
// Calculate difference between given font-size and minimum font-size for given font-size
|
||||
$fs-diff: $fs - $fs-min;
|
||||
|
||||
// Base font-size formatting
|
||||
// No need to check if the unit is valid, because we did that before
|
||||
$min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);
|
||||
|
||||
// If two-dimensional, use smallest of screen width and height
|
||||
$variable-unit: if($rfs-two-dimensional, vmin, vw);
|
||||
|
||||
// Calculate the variable width between 0 and $rfs-breakpoint
|
||||
$variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};
|
||||
|
||||
// Set the calculated font-size.
|
||||
$rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};
|
||||
}
|
||||
|
||||
// Rendering
|
||||
@if $rfs-fluid == null {
|
||||
// Only render static font-size if no fluid font-size is available
|
||||
font-size: $rfs-static;
|
||||
}
|
||||
@else {
|
||||
$mq-value: null;
|
||||
|
||||
// RFS breakpoint formatting
|
||||
@if $rfs-breakpoint-unit == em or $rfs-breakpoint-unit == rem {
|
||||
$mq-value: #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit};
|
||||
}
|
||||
@else if $rfs-breakpoint-unit == px {
|
||||
$mq-value: #{$rfs-breakpoint}px;
|
||||
}
|
||||
@else {
|
||||
@error "`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.";
|
||||
}
|
||||
|
||||
@if $rfs-class == "disable" {
|
||||
// Adding an extra class increases specificity,
|
||||
// which prevents the media query to override the font size
|
||||
&,
|
||||
.disable-responsive-font-size &,
|
||||
&.disable-responsive-font-size {
|
||||
font-size: $rfs-static;
|
||||
}
|
||||
}
|
||||
@else {
|
||||
font-size: $rfs-static;
|
||||
}
|
||||
|
||||
@if $rfs-two-dimensional {
|
||||
@media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {
|
||||
@if $rfs-class == "enable" {
|
||||
.enable-responsive-font-size &,
|
||||
&.enable-responsive-font-size {
|
||||
font-size: $rfs-fluid;
|
||||
}
|
||||
}
|
||||
@else {
|
||||
font-size: $rfs-fluid;
|
||||
}
|
||||
|
||||
@if $rfs-safari-iframe-resize-bug-fix {
|
||||
// stylelint-disable-next-line length-zero-no-unit
|
||||
min-width: 0vw;
|
||||
}
|
||||
}
|
||||
}
|
||||
@else {
|
||||
@media (max-width: #{$mq-value}) {
|
||||
@if $rfs-class == "enable" {
|
||||
.enable-responsive-font-size &,
|
||||
&.enable-responsive-font-size {
|
||||
font-size: $rfs-fluid;
|
||||
}
|
||||
}
|
||||
@else {
|
||||
font-size: $rfs-fluid;
|
||||
}
|
||||
|
||||
@if $rfs-safari-iframe-resize-bug-fix {
|
||||
// stylelint-disable-next-line length-zero-no-unit
|
||||
min-width: 0vw;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// The font-size & responsive-font-size mixin uses RFS to rescale font sizes
|
||||
@mixin font-size($fs, $important: false) {
|
||||
@include rfs($fs, $important);
|
||||
}
|
||||
|
||||
@mixin responsive-font-size($fs, $important: false) {
|
||||
@include rfs($fs, $important);
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue