mirror of
https://github.com/itflow-org/itflow
synced 2026-03-01 03:14:52 +00:00
Initial Integration of fullcalendar.io JS library, currently can see listed events
This commit is contained in:
@@ -13,44 +13,109 @@ $sql = mysqli_query($mysqli,"SELECT * FROM calendars, calendar_events WHERE cale
|
|||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
||||||
|
<div id='calendar'></div>
|
||||||
|
|
||||||
<div class="card mb-3">
|
<div class="row">
|
||||||
<div class="card-header">
|
<div class="col-md-2">
|
||||||
<h5 class="float-left mt-2"><i class="fa fa-calendar mr-2"></i>Events</h5>
|
|
||||||
<button type="button" class="btn btn-primary badge-pill mr-auto float-right" data-toggle="modal" data-target="#addCalendarEventModal"><i class="fas fa-fw fa-calendar-plus"></i></button>
|
|
||||||
<form>
|
|
||||||
<select onchange="this.form.submit()" class="form-control mt-5" name="calendar_id">
|
|
||||||
<option value="">- ALL Calendars -</option>
|
|
||||||
<?php
|
|
||||||
|
|
||||||
while($row = mysqli_fetch_array($sql_calendars)){
|
|
||||||
$calendar_id = $row['calendar_id'];
|
|
||||||
$calendar_name = $row['calendar_name'];
|
|
||||||
?>
|
|
||||||
<option <?php if($calendar_id == $calendar_selected_id){ ?> selected <?php } ?> value="<?php echo $calendar_id; ?>"> <?php echo $calendar_name; ?></option>
|
|
||||||
|
|
||||||
<?php
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
|
|
||||||
</select>
|
|
||||||
</form>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body">
|
<div class="col-md-10">
|
||||||
<div class="table-responsive">
|
<div class="card mb-3">
|
||||||
<table class="table table-striped table-borderless table-hover" id="dataTable" width="100%" cellspacing="0">
|
<div class="card-header">
|
||||||
<thead class="thead-dark">
|
<h5 class="float-left mt-2"><i class="fa fa-calendar mr-2"></i>Events</h5>
|
||||||
<tr>
|
<button type="button" class="btn btn-primary badge-pill mr-auto float-right" data-toggle="modal" data-target="#addCalendarEventModal"><i class="fas fa-fw fa-calendar-plus"></i></button>
|
||||||
<th>Date</th>
|
<form>
|
||||||
<th>Times</th>
|
<select onchange="this.form.submit()" class="form-control mt-5" name="calendar_id">
|
||||||
<th>Title</th>
|
<option value="">- ALL Calendars -</option>
|
||||||
<th>Calendar</th>
|
<?php
|
||||||
<th class="text-center">Actions</th>
|
|
||||||
</tr>
|
while($row = mysqli_fetch_array($sql_calendars)){
|
||||||
</thead>
|
$calendar_id = $row['calendar_id'];
|
||||||
<tbody>
|
$calendar_name = $row['calendar_name'];
|
||||||
|
?>
|
||||||
|
<option <?php if($calendar_id == $calendar_selected_id){ ?> selected <?php } ?> value="<?php echo $calendar_id; ?>"> <?php echo $calendar_name; ?></option>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
|
||||||
|
</select>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="table-responsive">
|
||||||
|
<table class="table table-striped table-borderless table-hover" id="dataTable" width="100%" cellspacing="0">
|
||||||
|
<thead class="thead-dark">
|
||||||
|
<tr>
|
||||||
|
<th>Date</th>
|
||||||
|
<th>Times</th>
|
||||||
|
<th>Title</th>
|
||||||
|
<th>Calendar</th>
|
||||||
|
<th class="text-center">Actions</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<?php
|
||||||
|
|
||||||
|
while($row = mysqli_fetch_array($sql)){
|
||||||
|
$calendar_event_id = $row['calendar_event_id'];
|
||||||
|
$calendar_event_title = $row['calendar_event_title'];
|
||||||
|
$calendar_event_start = $row['calendar_event_start'];
|
||||||
|
$calendar_event_end = $row['calendar_event_end'];
|
||||||
|
$calendar_id = $row['calendar_id'];
|
||||||
|
$calendar_name = $row['calendar_name'];
|
||||||
|
|
||||||
|
?>
|
||||||
|
<tr>
|
||||||
|
<td><?php echo date( 'm/d/y', strtotime($calendar_event_start)); ?></td>
|
||||||
|
<td><?php echo date( 'g:i A', strtotime($calendar_event_start)); ?> - <?php echo date( 'g:i A', strtotime($calendar_event_end)); ?></td>
|
||||||
|
<td><?php echo $calendar_event_title; ?></td>
|
||||||
|
<td><?php echo $calendar_name; ?></td>
|
||||||
|
<td>
|
||||||
|
<div class="dropdown dropleft text-center">
|
||||||
|
<button class="btn btn-secondary btn-sm" 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">
|
||||||
|
<a class="dropdown-item" href="#" data-toggle="modal" data-target="#editCalendarEventModal<?php echo $calendar_event_id; ?>">Edit</a>
|
||||||
|
<a class="dropdown-item" href="post.php?delete_calendar_event=<?php echo $calendar_event_id; ?>">Delete</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
include("edit_calendar_event_modal.php");
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php include("add_calendar_event_modal.php"); ?>
|
||||||
|
|
||||||
|
<?php include("footer.php"); ?>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
|
var calendarEl = document.getElementById('calendar');
|
||||||
|
|
||||||
|
var calendar = new FullCalendar.Calendar(calendarEl, {
|
||||||
|
plugins: [ 'interaction', 'dayGrid', 'timeGrid', 'list' ],
|
||||||
|
defaultView: 'dayGridMonth',
|
||||||
|
header: {
|
||||||
|
left: 'prev,next today',
|
||||||
|
center: 'title',
|
||||||
|
right: 'dayGridMonth,timeGridWeek,timeGridDay,listMonth'
|
||||||
|
},
|
||||||
|
events: [
|
||||||
<?php
|
<?php
|
||||||
|
$sql = mysqli_query($mysqli,"SELECT * FROM calendar_events");
|
||||||
while($row = mysqli_fetch_array($sql)){
|
while($row = mysqli_fetch_array($sql)){
|
||||||
$calendar_event_id = $row['calendar_event_id'];
|
$calendar_event_id = $row['calendar_event_id'];
|
||||||
$calendar_event_title = $row['calendar_event_title'];
|
$calendar_event_title = $row['calendar_event_title'];
|
||||||
@@ -58,37 +123,13 @@ $sql = mysqli_query($mysqli,"SELECT * FROM calendars, calendar_events WHERE cale
|
|||||||
$calendar_event_end = $row['calendar_event_end'];
|
$calendar_event_end = $row['calendar_event_end'];
|
||||||
$calendar_id = $row['calendar_id'];
|
$calendar_id = $row['calendar_id'];
|
||||||
$calendar_name = $row['calendar_name'];
|
$calendar_name = $row['calendar_name'];
|
||||||
|
echo "{ title: '$calendar_event_title', start: '$calendar_event_start' },";
|
||||||
?>
|
|
||||||
<tr>
|
|
||||||
<td><?php echo date( 'm/d/y', strtotime($calendar_event_start)); ?></td>
|
|
||||||
<td><?php echo date( 'g:i A', strtotime($calendar_event_start)); ?> - <?php echo date( 'g:i A', strtotime($calendar_event_end)); ?></td>
|
|
||||||
<td><?php echo $calendar_event_title; ?></td>
|
|
||||||
<td><?php echo $calendar_name; ?></td>
|
|
||||||
<td>
|
|
||||||
<div class="dropdown dropleft text-center">
|
|
||||||
<button class="btn btn-secondary btn-sm" 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">
|
|
||||||
<a class="dropdown-item" href="#" data-toggle="modal" data-target="#editCalendarEventModal<?php echo $calendar_event_id; ?>">Edit</a>
|
|
||||||
<a class="dropdown-item" href="post.php?delete_calendar_event=<?php echo $calendar_event_id; ?>">Delete</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<?php
|
|
||||||
include("edit_calendar_event_modal.php");
|
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
</tbody>
|
calendar.render();
|
||||||
</table>
|
});
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<?php include("add_calendar_event_modal.php"); ?>
|
</script>
|
||||||
|
|
||||||
<?php include("footer.php");
|
|
||||||
505
dashboard2.php
Normal file
505
dashboard2.php
Normal file
@@ -0,0 +1,505 @@
|
|||||||
|
<?php include("header.php"); ?>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
|
||||||
|
if(isset($_GET['year'])){
|
||||||
|
$year = intval($_GET['year']);
|
||||||
|
}else{
|
||||||
|
$year = date('Y');
|
||||||
|
}
|
||||||
|
|
||||||
|
//GET THE YEARS
|
||||||
|
$sql_payment_years = mysqli_query($mysqli,"SELECT DISTINCT YEAR(payment_date) AS payment_year FROM payments ORDER BY payment_year DESC");
|
||||||
|
|
||||||
|
|
||||||
|
$row = mysqli_fetch_assoc(mysqli_query($mysqli,"SELECT COUNT('contact_id') AS num FROM contacts WHERE client_id = $client_id"));
|
||||||
|
$num_contacts = $row['num'];
|
||||||
|
|
||||||
|
$row = mysqli_fetch_assoc(mysqli_query($mysqli,"SELECT COUNT('location_id') AS num FROM locations WHERE client_id = $client_id"));
|
||||||
|
$num_locations = $row['num'];
|
||||||
|
|
||||||
|
$row = mysqli_fetch_assoc(mysqli_query($mysqli,"SELECT COUNT('asset_id') AS num FROM assets WHERE client_id = $client_id"));
|
||||||
|
$num_assets = $row['num'];
|
||||||
|
|
||||||
|
$row = mysqli_fetch_assoc(mysqli_query($mysqli,"SELECT COUNT('ticket_id') AS num FROM tickets WHERE client_id = $client_id"));
|
||||||
|
$num_tickets = $row['num'];
|
||||||
|
|
||||||
|
$row = mysqli_fetch_assoc(mysqli_query($mysqli,"SELECT COUNT('vendor_id') AS num FROM vendors WHERE client_id = $client_id"));
|
||||||
|
$num_vendors = $row['num'];
|
||||||
|
|
||||||
|
$row = mysqli_fetch_assoc(mysqli_query($mysqli,"SELECT COUNT('login_id') AS num FROM logins WHERE client_id = $client_id"));
|
||||||
|
$num_logins = $row['num'];
|
||||||
|
|
||||||
|
$row = mysqli_fetch_assoc(mysqli_query($mysqli,"SELECT COUNT('network_id') AS num FROM networks WHERE client_id = $client_id"));
|
||||||
|
$num_networks = $row['num'];
|
||||||
|
|
||||||
|
$row = mysqli_fetch_assoc(mysqli_query($mysqli,"SELECT COUNT('domain_id') AS num FROM domains WHERE client_id = $client_id"));
|
||||||
|
$num_domains = $row['num'];
|
||||||
|
|
||||||
|
$row = mysqli_fetch_assoc(mysqli_query($mysqli,"SELECT COUNT('software_id') AS num FROM software WHERE client_id = $client_id"));
|
||||||
|
$num_software = $row['num'];
|
||||||
|
|
||||||
|
$row = mysqli_fetch_assoc(mysqli_query($mysqli,"SELECT COUNT('invoice_id') AS num FROM invoices WHERE client_id = $client_id"));
|
||||||
|
$num_invoices = $row['num'];
|
||||||
|
|
||||||
|
$row = mysqli_fetch_assoc(mysqli_query($mysqli,"SELECT COUNT('quote_id') AS num FROM quotes WHERE client_id = $client_id"));
|
||||||
|
$num_quotes = $row['num'];
|
||||||
|
|
||||||
|
$row = mysqli_fetch_assoc(mysqli_query($mysqli,"SELECT COUNT('recurring_id') AS num FROM recurring WHERE client_id = $client_id"));
|
||||||
|
$num_recurring = $row['num'];
|
||||||
|
|
||||||
|
$row = mysqli_fetch_assoc(mysqli_query($mysqli,"SELECT COUNT('payment_id') AS num FROM payments, invoices WHERE payments.invoice_id = invoices.invoice_id AND invoices.client_id = $client_id"));
|
||||||
|
$num_payments = $row['num'];
|
||||||
|
|
||||||
|
$row = mysqli_fetch_assoc(mysqli_query($mysqli,"SELECT COUNT('file_id') AS num FROM files WHERE client_id = $client_id"));
|
||||||
|
$num_files = $row['num'];
|
||||||
|
|
||||||
|
$row = mysqli_fetch_assoc(mysqli_query($mysqli,"SELECT COUNT('note_id') AS num FROM notes WHERE client_id = $client_id"));
|
||||||
|
$num_notes = $row['num'];
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
<form>
|
||||||
|
<select onchange="this.form.submit()" class="form-control mb-3" name="year">
|
||||||
|
<?php
|
||||||
|
|
||||||
|
while($row = mysqli_fetch_array($sql_payment_years)){
|
||||||
|
$payment_year = $row['payment_year'];
|
||||||
|
?>
|
||||||
|
<option <?php if($year == $payment_year){ ?> selected <?php } ?> > <?php echo $payment_year; ?></option>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
|
||||||
|
</select>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<!-- Icon Cards-->
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xl-4 col-sm-6 mb-3">
|
||||||
|
<div class="card text-white bg-primary o-hidden h-100">
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="card-body-icon">
|
||||||
|
<i class="fas fa-fw fa-money-check"></i>
|
||||||
|
</div>
|
||||||
|
<div class="mr-5">Total Incomes <h1>$<?php echo number_format($total_income,2); ?></h1></div>
|
||||||
|
<hr>
|
||||||
|
Recievables: $<?php echo number_format($recievables,2); ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-xl-4 col-sm-6 mb-3">
|
||||||
|
<div class="card text-white bg-danger o-hidden h-100">
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="card-body-icon">
|
||||||
|
<i class="fas fa-fw fa-shopping-cart"></i>
|
||||||
|
</div>
|
||||||
|
<div class="mr-5">Total Expenses <h1>$<?php echo number_format($total_expenses,2); ?></h1></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-xl-4 col-sm-6 mb-3">
|
||||||
|
<div class="card text-white bg-success o-hidden h-100">
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="card-body-icon">
|
||||||
|
<i class="fas fa-fw fa-heart"></i>
|
||||||
|
</div>
|
||||||
|
<div class="mr-5">Total Profit <h1>$<?php echo number_format($profit,2); ?></h1></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-12">
|
||||||
|
<!-- Area Chart Example-->
|
||||||
|
<div class="card mb-3">
|
||||||
|
<div class="card-header"><i class="fas fa-fw fa-chart-area"></i> Cash Flow</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<canvas id="myAreaChart" width="100%" height="25"></canvas>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-lg-4">
|
||||||
|
<div class="card mb-3">
|
||||||
|
<div class="card-header">
|
||||||
|
<i class="fas fa-chart-pie"></i>
|
||||||
|
Income By Category
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<canvas id="incomeByCategoryPieChart" width="100%" height="60"></canvas>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-lg-4">
|
||||||
|
<div class="card mb-3">
|
||||||
|
<div class="card-header">
|
||||||
|
<i class="fas fa-chart-pie"></i>
|
||||||
|
Expense By Category
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<canvas id="expenseByCategoryPieChart" width="100%" height="60"></canvas>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-lg-4">
|
||||||
|
<div class="card mb-3">
|
||||||
|
<div class="card-header">
|
||||||
|
<i class="fas fa-chart-pie"></i>
|
||||||
|
Expense By Vendor
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<canvas id="expenseByVendorPieChart" width="100%" height="60"></canvas>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-4">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
Account Balance
|
||||||
|
</div>
|
||||||
|
<div class="table-responsive">
|
||||||
|
<table class="table table-borderless">
|
||||||
|
<tbody>
|
||||||
|
<?php
|
||||||
|
while($row = mysqli_fetch_array($sql_accounts)){
|
||||||
|
$account_id = $row['account_id'];
|
||||||
|
$account_name = $row['account_name'];
|
||||||
|
$opening_balance = $row['opening_balance'];
|
||||||
|
|
||||||
|
?>
|
||||||
|
<tr>
|
||||||
|
<td><?php echo $account_name; ?></a></td>
|
||||||
|
<?php
|
||||||
|
$sql2 = mysqli_query($mysqli,"SELECT SUM(payment_amount) AS total_payments FROM payments WHERE account_id = $account_id");
|
||||||
|
$row2 = mysqli_fetch_array($sql2);
|
||||||
|
|
||||||
|
$sql3 = mysqli_query($mysqli,"SELECT SUM(expense_amount) AS total_expenses FROM expenses WHERE account_id = $account_id");
|
||||||
|
$row3 = mysqli_fetch_array($sql3);
|
||||||
|
|
||||||
|
$balance = $opening_balance + $row2['total_payments'] - $row3['total_expenses'];
|
||||||
|
if($balance == ''){
|
||||||
|
$balance = '0.00';
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
|
||||||
|
<td class="text-right text-monospace">$<?php echo number_format($balance,2); ?></td>
|
||||||
|
</tr>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div> <!-- .col -->
|
||||||
|
<div class="col-md-4">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
Latest Payments
|
||||||
|
</div>
|
||||||
|
<div class="table-responsive">
|
||||||
|
<table class="table table-borderless">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Date</th>
|
||||||
|
<th>Customer</th>
|
||||||
|
<th>Invoice</th>
|
||||||
|
<th class="text-right">Amount</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<?php
|
||||||
|
while($row = mysqli_fetch_array($sql_latest_income_payments)){
|
||||||
|
$payment_date = $row['payment_date'];
|
||||||
|
$payment_amount = $row['payment_amount'];
|
||||||
|
$invoice_number = $row['invoice_number'];
|
||||||
|
$client_name = $row['client_name'];
|
||||||
|
?>
|
||||||
|
<tr>
|
||||||
|
<td><?php echo $payment_date; ?></td>
|
||||||
|
<td><?php echo $client_name; ?></td>
|
||||||
|
<td><?php echo $invoice_number; ?></td>
|
||||||
|
<td class="text-right text-monospace">$<?php echo number_format($payment_amount,2); ?></td>
|
||||||
|
</tr>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div> <!-- .col -->
|
||||||
|
<div class="col-md-4">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
Latest Expenses
|
||||||
|
</div>
|
||||||
|
<div class="table-responsive">
|
||||||
|
<table class="table table-borderless">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Date</th>
|
||||||
|
<th>Vendor</th>
|
||||||
|
<th>Category</th>
|
||||||
|
<th class="text-right">Amount</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<?php
|
||||||
|
while($row = mysqli_fetch_array($sql_latest_expenses)){
|
||||||
|
$expense_date = $row['expense_date'];
|
||||||
|
$expense_amount = $row['expense_amount'];
|
||||||
|
$vendor_name = $row['vendor_name'];
|
||||||
|
$category_name = $row['category_name'];
|
||||||
|
|
||||||
|
?>
|
||||||
|
<tr>
|
||||||
|
<td><?php echo $expense_date; ?></td>
|
||||||
|
<td><?php echo $vendor_name; ?></td>
|
||||||
|
<td><?php echo $category_name; ?></td>
|
||||||
|
<td class="text-right text-monospace">$<?php echo number_format($expense_amount,2); ?></td>
|
||||||
|
</tr>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div> <!-- .col -->
|
||||||
|
</div> <!-- row -->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<?php include("footer.php"); ?>
|
||||||
|
<script>
|
||||||
|
// Set new default font family and font color to mimic Bootstrap's default styling
|
||||||
|
Chart.defaults.global.defaultFontFamily = '-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif';
|
||||||
|
Chart.defaults.global.defaultFontColor = '#292b2c';
|
||||||
|
|
||||||
|
// Area Chart Example
|
||||||
|
var ctx = document.getElementById("myAreaChart");
|
||||||
|
var myLineChart = new Chart(ctx, {
|
||||||
|
type: 'line',
|
||||||
|
data: {
|
||||||
|
labels: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Nov", "Dec"],
|
||||||
|
datasets: [{
|
||||||
|
label: "Income",
|
||||||
|
lineTension: 0.3,
|
||||||
|
backgroundColor: "rgba(2,117,216,0.2)",
|
||||||
|
borderColor: "rgba(2,117,216,1)",
|
||||||
|
pointRadius: 5,
|
||||||
|
pointBackgroundColor: "rgba(2,117,216,1)",
|
||||||
|
pointBorderColor: "rgba(255,255,255,0.8)",
|
||||||
|
pointHoverRadius: 5,
|
||||||
|
pointHoverBackgroundColor: "rgba(2,117,216,1)",
|
||||||
|
pointHitRadius: 50,
|
||||||
|
pointBorderWidth: 2,
|
||||||
|
data: [
|
||||||
|
<?php
|
||||||
|
for($month = 1; $month<=12; $month++) {
|
||||||
|
$sql_payments = mysqli_query($mysqli,"SELECT SUM(payment_amount) AS payment_amount_for_month FROM payments, invoices WHERE payments.invoice_id = invoices.invoice_id AND YEAR(payment_date) = $year AND MONTH(payment_date) = $month");
|
||||||
|
$row = mysqli_fetch_array($sql_payments);
|
||||||
|
$income_for_month = $row['payment_amount_for_month'];
|
||||||
|
if($income_for_month > 0 AND $income_for_month > $largest_income_month){
|
||||||
|
$largest_income_month = $income_for_month;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
?>
|
||||||
|
<?php echo "$income_for_month,"; ?>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
],
|
||||||
|
}],
|
||||||
|
},
|
||||||
|
options: {
|
||||||
|
scales: {
|
||||||
|
xAxes: [{
|
||||||
|
time: {
|
||||||
|
unit: 'date'
|
||||||
|
},
|
||||||
|
gridLines: {
|
||||||
|
display: false
|
||||||
|
},
|
||||||
|
ticks: {
|
||||||
|
maxTicksLimit: 12
|
||||||
|
}
|
||||||
|
}],
|
||||||
|
yAxes: [{
|
||||||
|
ticks: {
|
||||||
|
min: 0,
|
||||||
|
max: <?php echo roundUpToNearestMultiple($largest_income_month); ?>,
|
||||||
|
maxTicksLimit: 5
|
||||||
|
},
|
||||||
|
gridLines: {
|
||||||
|
color: "rgba(0, 0, 0, .125)",
|
||||||
|
}
|
||||||
|
}],
|
||||||
|
},
|
||||||
|
legend: {
|
||||||
|
display: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Set new default font family and font color to mimic Bootstrap's default styling
|
||||||
|
Chart.defaults.global.defaultFontFamily = '-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif';
|
||||||
|
Chart.defaults.global.defaultFontColor = '#292b2c';
|
||||||
|
|
||||||
|
// Pie Chart Example
|
||||||
|
var ctx = document.getElementById("incomeByCategoryPieChart");
|
||||||
|
var myPieChart = new Chart(ctx, {
|
||||||
|
type: 'pie',
|
||||||
|
data: {
|
||||||
|
labels: [
|
||||||
|
<?php
|
||||||
|
$sql_categories = mysqli_query($mysqli,"SELECT DISTINCT category_name, categories.category_id FROM categories, invoices WHERE invoices.category_id = categories.category_id AND invoice_status = 'Paid' AND YEAR(invoice_date) = $year");
|
||||||
|
while($row = mysqli_fetch_array($sql_categories)){
|
||||||
|
$category_name = $row['category_name'];
|
||||||
|
echo "\"$category_name\",";
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
],
|
||||||
|
datasets: [{
|
||||||
|
data: [
|
||||||
|
<?php
|
||||||
|
$sql_categories = mysqli_query($mysqli,"SELECT DISTINCT category_name, categories.category_id FROM categories, invoices WHERE invoices.category_id = categories.category_id AND invoice_status = 'Paid' AND YEAR(invoice_date) = $year");
|
||||||
|
while($row = mysqli_fetch_array($sql_categories)){
|
||||||
|
$category_id = $row['category_id'];
|
||||||
|
|
||||||
|
$sql_invoices = mysqli_query($mysqli,"SELECT SUM(invoice_amount) AS income_amount_for_year FROM invoices WHERE category_id = $category_id AND YEAR(invoice_date) = $year");
|
||||||
|
$row = mysqli_fetch_array($sql_invoices);
|
||||||
|
$income_amount_for_year = $row['income_amount_for_year'];
|
||||||
|
echo "$income_amount_for_year,";
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
],
|
||||||
|
backgroundColor: [
|
||||||
|
<?php
|
||||||
|
$sql_categories = mysqli_query($mysqli,"SELECT DISTINCT category_name, categories.category_id, category_color FROM categories, invoices WHERE invoices.category_id = categories.category_id AND YEAR(invoice_date) = $year");
|
||||||
|
while($row = mysqli_fetch_array($sql_categories)){
|
||||||
|
$category_color = $row['category_color'];
|
||||||
|
echo "\"$category_color\",";
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
],
|
||||||
|
}],
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
// Set new default font family and font color to mimic Bootstrap's default styling
|
||||||
|
Chart.defaults.global.defaultFontFamily = '-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif';
|
||||||
|
Chart.defaults.global.defaultFontColor = '#292b2c';
|
||||||
|
|
||||||
|
// Pie Chart Example
|
||||||
|
var ctx = document.getElementById("expenseByCategoryPieChart");
|
||||||
|
var myPieChart = new Chart(ctx, {
|
||||||
|
type: 'pie',
|
||||||
|
data: {
|
||||||
|
labels: [
|
||||||
|
<?php
|
||||||
|
$sql_categories = mysqli_query($mysqli,"SELECT DISTINCT category_name, categories.category_id FROM categories, expenses WHERE expenses.category_id = categories.category_id AND YEAR(expense_date) = $year");
|
||||||
|
while($row = mysqli_fetch_array($sql_categories)){
|
||||||
|
$category_name = $row['category_name'];
|
||||||
|
echo "\"$category_name\",";
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
],
|
||||||
|
datasets: [{
|
||||||
|
data: [
|
||||||
|
<?php
|
||||||
|
$sql_categories = mysqli_query($mysqli,"SELECT DISTINCT category_name, categories.category_id FROM categories, expenses WHERE expenses.category_id = categories.category_id AND YEAR(expense_date) = $year");
|
||||||
|
while($row = mysqli_fetch_array($sql_categories)){
|
||||||
|
$category_id = $row['category_id'];
|
||||||
|
|
||||||
|
$sql_expenses = mysqli_query($mysqli,"SELECT SUM(expense_amount) AS expense_amount_for_year FROM expenses WHERE category_id = $category_id AND YEAR(expense_date) = $year");
|
||||||
|
$row = mysqli_fetch_array($sql_expenses);
|
||||||
|
$expense_amount_for_year = $row['expense_amount_for_year'];
|
||||||
|
echo "$expense_amount_for_year,";
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
],
|
||||||
|
backgroundColor: [
|
||||||
|
<?php
|
||||||
|
$sql_categories = mysqli_query($mysqli,"SELECT DISTINCT category_name, category_color FROM categories, expenses WHERE expenses.category_id = categories.category_id AND YEAR(expense_date) = $year");
|
||||||
|
while($row = mysqli_fetch_array($sql_categories)){
|
||||||
|
$category_color = $row['category_color'];
|
||||||
|
echo "\"$category_color\",";
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
],
|
||||||
|
}],
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
// Pie Chart Example
|
||||||
|
var ctx = document.getElementById("expenseByVendorPieChart");
|
||||||
|
var myPieChart = new Chart(ctx, {
|
||||||
|
type: 'pie',
|
||||||
|
data: {
|
||||||
|
labels: [
|
||||||
|
<?php
|
||||||
|
$sql_vendors = mysqli_query($mysqli,"SELECT DISTINCT vendor_name, vendors.vendor_id FROM vendors, expenses WHERE expenses.vendor_id = vendors.vendor_id AND YEAR(expense_date) = $year");
|
||||||
|
while($row = mysqli_fetch_array($sql_vendors)){
|
||||||
|
$vendor_name = $row['vendor_name'];
|
||||||
|
echo "\"$vendor_name\",";
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
],
|
||||||
|
datasets: [{
|
||||||
|
data: [
|
||||||
|
<?php
|
||||||
|
$sql_vendors = mysqli_query($mysqli,"SELECT DISTINCT vendor_name, vendors.vendor_id FROM vendors, expenses WHERE expenses.vendor_id = vendors.vendor_id AND YEAR(expense_date) = $year");
|
||||||
|
while($row = mysqli_fetch_array($sql_vendors)){
|
||||||
|
$vendor_id = $row['vendor_id'];
|
||||||
|
|
||||||
|
$sql_expenses = mysqli_query($mysqli,"SELECT SUM(expense_amount) AS expense_amount_for_year FROM expenses WHERE vendor_id = $vendor_id AND YEAR(expense_date) = $year");
|
||||||
|
$row = mysqli_fetch_array($sql_expenses);
|
||||||
|
$expense_amount_for_year = $row['expense_amount_for_year'];
|
||||||
|
echo "$expense_amount_for_year,";
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
],
|
||||||
|
backgroundColor: [
|
||||||
|
<?php
|
||||||
|
$sql_categories = mysqli_query($mysqli,"SELECT DISTINCT category_name, category_color FROM categories, expenses WHERE expenses.category_id = categories.category_id AND YEAR(expense_date) = $year");
|
||||||
|
while($row = mysqli_fetch_array($sql_categories)){
|
||||||
|
$category_color = $row['category_color'];
|
||||||
|
echo "\"$category_color\",";
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
],
|
||||||
|
}],
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
||||||
@@ -27,6 +27,10 @@
|
|||||||
<script src="vendor/Bootstrap-3-Typeahead/bootstrap3-typeahead.min.js"></script>
|
<script src="vendor/Bootstrap-3-Typeahead/bootstrap3-typeahead.min.js"></script>
|
||||||
<script src="vendor/moment/min/moment.min.js"></script>
|
<script src="vendor/moment/min/moment.min.js"></script>
|
||||||
<script src="vendor/datepicker/build/js/tempusdominus-bootstrap-4.min.js"></script>
|
<script src="vendor/datepicker/build/js/tempusdominus-bootstrap-4.min.js"></script>
|
||||||
|
<script src='vendor/fullcalendar/core/main.min.js'></script>
|
||||||
|
<script src='vendor/fullcalendar/daygrid/main.min.js'></script>
|
||||||
|
<script src='vendor/fullcalendar/timegrid/main.min.js'></script>
|
||||||
|
<script src='vendor/fullcalendar/list/main.min.js'></script>
|
||||||
|
|
||||||
<!-- Custom scripts for all pages-->
|
<!-- Custom scripts for all pages-->
|
||||||
<script src="js/sb-admin.min.js"></script>
|
<script src="js/sb-admin.min.js"></script>
|
||||||
|
|||||||
@@ -34,6 +34,11 @@
|
|||||||
|
|
||||||
<!-- Custom Style Sheet -->
|
<!-- Custom Style Sheet -->
|
||||||
<link href="css/style.css" rel="stylesheet" type="text/css">
|
<link href="css/style.css" rel="stylesheet" type="text/css">
|
||||||
|
|
||||||
|
<link href='vendor/fullcalendar/core/main.min.css' rel='stylesheet' />
|
||||||
|
<link href='vendor/fullcalendar/daygrid/main.min.css' rel='stylesheet' />
|
||||||
|
<link href='vendor/fullcalendar/timegrid/main.min.css' rel='stylesheet' />
|
||||||
|
<link href='vendor/fullcalendar/list/main.min.css' rel='stylesheet' />
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
|
|||||||
@@ -11,9 +11,9 @@ if(isset($_GET['year'])){
|
|||||||
//GET unique years from expenses and payments
|
//GET unique years from expenses and payments
|
||||||
$sql_all_years = mysqli_query($mysqli,"SELECT YEAR(expense_date) AS all_years FROM expenses UNION DISTINCT SELECT YEAR(payment_date) FROM payments ORDER BY all_years DESC");
|
$sql_all_years = mysqli_query($mysqli,"SELECT YEAR(expense_date) AS all_years FROM expenses UNION DISTINCT SELECT YEAR(payment_date) FROM payments ORDER BY all_years DESC");
|
||||||
|
|
||||||
$sql_categories_income = mysqli_query($mysqli,"SELECT * FROM categories WHERE category_type = 'Income' ORDER BY category_name ASC");
|
$sql_categories_income = mysqli_query($mysqli,"SELECT * FROM categories WHERE category_type = 'Income' ORDER BY category_name ASC");
|
||||||
|
|
||||||
$sql_categories_expense = mysqli_query($mysqli,"SELECT * FROM categories WHERE category_type = 'Expense' ORDER BY category_name ASC");
|
$sql_categories_expense = mysqli_query($mysqli,"SELECT * FROM categories WHERE category_type = 'Expense' ORDER BY category_name ASC");
|
||||||
|
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|||||||
33
vendor/fullcalendar/bootstrap/main.css
vendored
Normal file
33
vendor/fullcalendar/bootstrap/main.css
vendored
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
/*!
|
||||||
|
FullCalendar Bootstrap Plugin v4.1.0
|
||||||
|
Docs & License: https://fullcalendar.io/
|
||||||
|
(c) 2019 Adam Shaw
|
||||||
|
*/
|
||||||
|
.fc.fc-bootstrap a {
|
||||||
|
text-decoration: none; }
|
||||||
|
|
||||||
|
.fc.fc-bootstrap a[data-goto]:hover {
|
||||||
|
text-decoration: underline; }
|
||||||
|
|
||||||
|
.fc-bootstrap hr.fc-divider {
|
||||||
|
border-color: inherit; }
|
||||||
|
|
||||||
|
.fc-bootstrap .fc-today.alert {
|
||||||
|
border-radius: 0; }
|
||||||
|
|
||||||
|
.fc-bootstrap a.fc-event:not([href]):not([tabindex]) {
|
||||||
|
color: #fff; }
|
||||||
|
|
||||||
|
.fc-bootstrap .fc-popover.card {
|
||||||
|
position: absolute; }
|
||||||
|
|
||||||
|
/* Popover
|
||||||
|
--------------------------------------------------------------------------------------------------*/
|
||||||
|
.fc-bootstrap .fc-popover .card-body {
|
||||||
|
padding: 0; }
|
||||||
|
|
||||||
|
/* TimeGrid Slats (lines that run horizontally)
|
||||||
|
--------------------------------------------------------------------------------------------------*/
|
||||||
|
.fc-bootstrap .fc-time-grid .fc-slats table {
|
||||||
|
/* some themes have background color. see through to slats */
|
||||||
|
background: none; }
|
||||||
90
vendor/fullcalendar/bootstrap/main.js
vendored
Normal file
90
vendor/fullcalendar/bootstrap/main.js
vendored
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
/*!
|
||||||
|
FullCalendar Bootstrap Plugin v4.1.0
|
||||||
|
Docs & License: https://fullcalendar.io/
|
||||||
|
(c) 2019 Adam Shaw
|
||||||
|
*/
|
||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@fullcalendar/core')) :
|
||||||
|
typeof define === 'function' && define.amd ? define(['exports', '@fullcalendar/core'], factory) :
|
||||||
|
(global = global || self, factory(global.FullCalendarBootstrap = {}, global.FullCalendar));
|
||||||
|
}(this, function (exports, core) { 'use strict';
|
||||||
|
|
||||||
|
/*! *****************************************************************************
|
||||||
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
||||||
|
this file except in compliance with the License. You may obtain a copy of the
|
||||||
|
License at http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
|
||||||
|
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
|
||||||
|
MERCHANTABLITY OR NON-INFRINGEMENT.
|
||||||
|
|
||||||
|
See the Apache Version 2.0 License for specific language governing permissions
|
||||||
|
and limitations under the License.
|
||||||
|
***************************************************************************** */
|
||||||
|
/* global Reflect, Promise */
|
||||||
|
|
||||||
|
var extendStatics = function(d, b) {
|
||||||
|
extendStatics = Object.setPrototypeOf ||
|
||||||
|
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
||||||
|
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
||||||
|
return extendStatics(d, b);
|
||||||
|
};
|
||||||
|
|
||||||
|
function __extends(d, b) {
|
||||||
|
extendStatics(d, b);
|
||||||
|
function __() { this.constructor = d; }
|
||||||
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
||||||
|
}
|
||||||
|
|
||||||
|
var BootstrapTheme = /** @class */ (function (_super) {
|
||||||
|
__extends(BootstrapTheme, _super);
|
||||||
|
function BootstrapTheme() {
|
||||||
|
return _super !== null && _super.apply(this, arguments) || this;
|
||||||
|
}
|
||||||
|
return BootstrapTheme;
|
||||||
|
}(core.Theme));
|
||||||
|
BootstrapTheme.prototype.classes = {
|
||||||
|
widget: 'fc-bootstrap',
|
||||||
|
tableGrid: 'table-bordered',
|
||||||
|
tableList: 'table',
|
||||||
|
tableListHeading: 'table-active',
|
||||||
|
buttonGroup: 'btn-group',
|
||||||
|
button: 'btn btn-primary',
|
||||||
|
buttonActive: 'active',
|
||||||
|
today: 'alert alert-info',
|
||||||
|
popover: 'card card-primary',
|
||||||
|
popoverHeader: 'card-header',
|
||||||
|
popoverContent: 'card-body',
|
||||||
|
// day grid
|
||||||
|
// for left/right border color when border is inset from edges (all-day in timeGrid view)
|
||||||
|
// avoid `table` class b/c don't want margins/padding/structure. only border color.
|
||||||
|
headerRow: 'table-bordered',
|
||||||
|
dayRow: 'table-bordered',
|
||||||
|
// list view
|
||||||
|
listView: 'card card-primary'
|
||||||
|
};
|
||||||
|
BootstrapTheme.prototype.baseIconClass = 'fa';
|
||||||
|
BootstrapTheme.prototype.iconClasses = {
|
||||||
|
close: 'fa-times',
|
||||||
|
prev: 'fa-chevron-left',
|
||||||
|
next: 'fa-chevron-right',
|
||||||
|
prevYear: 'fa-angle-double-left',
|
||||||
|
nextYear: 'fa-angle-double-right'
|
||||||
|
};
|
||||||
|
BootstrapTheme.prototype.iconOverrideOption = 'bootstrapFontAwesome';
|
||||||
|
BootstrapTheme.prototype.iconOverrideCustomButtonOption = 'bootstrapFontAwesome';
|
||||||
|
BootstrapTheme.prototype.iconOverridePrefix = 'fa-';
|
||||||
|
var main = core.createPlugin({
|
||||||
|
themeClasses: {
|
||||||
|
bootstrap: BootstrapTheme
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
exports.BootstrapTheme = BootstrapTheme;
|
||||||
|
exports.default = main;
|
||||||
|
|
||||||
|
Object.defineProperty(exports, '__esModule', { value: true });
|
||||||
|
|
||||||
|
}));
|
||||||
5
vendor/fullcalendar/bootstrap/main.min.css
vendored
Normal file
5
vendor/fullcalendar/bootstrap/main.min.css
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
/*!
|
||||||
|
FullCalendar Bootstrap Plugin v4.1.0
|
||||||
|
Docs & License: https://fullcalendar.io/
|
||||||
|
(c) 2019 Adam Shaw
|
||||||
|
*/.fc.fc-bootstrap a{text-decoration:none}.fc.fc-bootstrap a[data-goto]:hover{text-decoration:underline}.fc-bootstrap hr.fc-divider{border-color:inherit}.fc-bootstrap .fc-today.alert{border-radius:0}.fc-bootstrap a.fc-event:not([href]):not([tabindex]){color:#fff}.fc-bootstrap .fc-popover.card{position:absolute}.fc-bootstrap .fc-popover .card-body{padding:0}.fc-bootstrap .fc-time-grid .fc-slats table{background:0 0}
|
||||||
20
vendor/fullcalendar/bootstrap/main.min.js
vendored
Normal file
20
vendor/fullcalendar/bootstrap/main.min.js
vendored
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
/*!
|
||||||
|
FullCalendar Bootstrap Plugin v4.1.0
|
||||||
|
Docs & License: https://fullcalendar.io/
|
||||||
|
(c) 2019 Adam Shaw
|
||||||
|
*/
|
||||||
|
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@fullcalendar/core")):"function"==typeof define&&define.amd?define(["exports","@fullcalendar/core"],t):(e=e||self,t(e.FullCalendarBootstrap={},e.FullCalendar))}(this,function(e,t){"use strict";function o(e,t){function o(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)}/*! *****************************************************************************
|
||||||
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
||||||
|
this file except in compliance with the License. You may obtain a copy of the
|
||||||
|
License at http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
|
||||||
|
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
|
||||||
|
MERCHANTABLITY OR NON-INFRINGEMENT.
|
||||||
|
|
||||||
|
See the Apache Version 2.0 License for specific language governing permissions
|
||||||
|
and limitations under the License.
|
||||||
|
***************************************************************************** */
|
||||||
|
var r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o])})(e,t)},a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return o(t,e),t}(t.Theme);a.prototype.classes={widget:"fc-bootstrap",tableGrid:"table-bordered",tableList:"table",tableListHeading:"table-active",buttonGroup:"btn-group",button:"btn btn-primary",buttonActive:"active",today:"alert alert-info",popover:"card card-primary",popoverHeader:"card-header",popoverContent:"card-body",headerRow:"table-bordered",dayRow:"table-bordered",listView:"card card-primary"},a.prototype.baseIconClass="fa",a.prototype.iconClasses={close:"fa-times",prev:"fa-chevron-left",next:"fa-chevron-right",prevYear:"fa-angle-double-left",nextYear:"fa-angle-double-right"},a.prototype.iconOverrideOption="bootstrapFontAwesome",a.prototype.iconOverrideCustomButtonOption="bootstrapFontAwesome",a.prototype.iconOverridePrefix="fa-";var n=t.createPlugin({themeClasses:{bootstrap:a}});e.BootstrapTheme=a,e.default=n,Object.defineProperty(e,"__esModule",{value:!0})});
|
||||||
1353
vendor/fullcalendar/core/locales-all.js
vendored
Normal file
1353
vendor/fullcalendar/core/locales-all.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
6
vendor/fullcalendar/core/locales-all.min.js
vendored
Normal file
6
vendor/fullcalendar/core/locales-all.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
30
vendor/fullcalendar/core/locales/af.js
vendored
Normal file
30
vendor/fullcalendar/core/locales/af.js
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.af = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var af = {
|
||||||
|
code: "af",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "Vorige",
|
||||||
|
next: "Volgende",
|
||||||
|
today: "Vandag",
|
||||||
|
year: "Jaar",
|
||||||
|
month: "Maand",
|
||||||
|
week: "Week",
|
||||||
|
day: "Dag",
|
||||||
|
list: "Agenda"
|
||||||
|
},
|
||||||
|
allDayHtml: "Heeldag",
|
||||||
|
eventLimitText: "Addisionele",
|
||||||
|
noEventsMessage: "Daar is geen gebeurtenisse nie"
|
||||||
|
};
|
||||||
|
|
||||||
|
return af;
|
||||||
|
|
||||||
|
}));
|
||||||
31
vendor/fullcalendar/core/locales/ar-dz.js
vendored
Normal file
31
vendor/fullcalendar/core/locales/ar-dz.js
vendored
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['ar-dz'] = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var arDz = {
|
||||||
|
code: "ar-dz",
|
||||||
|
week: {
|
||||||
|
dow: 0,
|
||||||
|
doy: 4 // The week that contains Jan 1st is the first week of the year.
|
||||||
|
},
|
||||||
|
dir: 'rtl',
|
||||||
|
buttonText: {
|
||||||
|
prev: "السابق",
|
||||||
|
next: "التالي",
|
||||||
|
today: "اليوم",
|
||||||
|
month: "شهر",
|
||||||
|
week: "أسبوع",
|
||||||
|
day: "يوم",
|
||||||
|
list: "أجندة"
|
||||||
|
},
|
||||||
|
weekLabel: "أسبوع",
|
||||||
|
allDayText: "اليوم كله",
|
||||||
|
eventLimitText: "أخرى",
|
||||||
|
noEventsMessage: "أي أحداث لعرض"
|
||||||
|
};
|
||||||
|
|
||||||
|
return arDz;
|
||||||
|
|
||||||
|
}));
|
||||||
31
vendor/fullcalendar/core/locales/ar-kw.js
vendored
Normal file
31
vendor/fullcalendar/core/locales/ar-kw.js
vendored
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['ar-kw'] = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var arKw = {
|
||||||
|
code: "ar-kw",
|
||||||
|
week: {
|
||||||
|
dow: 0,
|
||||||
|
doy: 12 // The week that contains Jan 1st is the first week of the year.
|
||||||
|
},
|
||||||
|
dir: 'rtl',
|
||||||
|
buttonText: {
|
||||||
|
prev: "السابق",
|
||||||
|
next: "التالي",
|
||||||
|
today: "اليوم",
|
||||||
|
month: "شهر",
|
||||||
|
week: "أسبوع",
|
||||||
|
day: "يوم",
|
||||||
|
list: "أجندة"
|
||||||
|
},
|
||||||
|
weekLabel: "أسبوع",
|
||||||
|
allDayText: "اليوم كله",
|
||||||
|
eventLimitText: "أخرى",
|
||||||
|
noEventsMessage: "أي أحداث لعرض"
|
||||||
|
};
|
||||||
|
|
||||||
|
return arKw;
|
||||||
|
|
||||||
|
}));
|
||||||
31
vendor/fullcalendar/core/locales/ar-ly.js
vendored
Normal file
31
vendor/fullcalendar/core/locales/ar-ly.js
vendored
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['ar-ly'] = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var arLy = {
|
||||||
|
code: "ar-ly",
|
||||||
|
week: {
|
||||||
|
dow: 6,
|
||||||
|
doy: 12 // The week that contains Jan 1st is the first week of the year.
|
||||||
|
},
|
||||||
|
dir: 'rtl',
|
||||||
|
buttonText: {
|
||||||
|
prev: "السابق",
|
||||||
|
next: "التالي",
|
||||||
|
today: "اليوم",
|
||||||
|
month: "شهر",
|
||||||
|
week: "أسبوع",
|
||||||
|
day: "يوم",
|
||||||
|
list: "أجندة"
|
||||||
|
},
|
||||||
|
weekLabel: "أسبوع",
|
||||||
|
allDayText: "اليوم كله",
|
||||||
|
eventLimitText: "أخرى",
|
||||||
|
noEventsMessage: "أي أحداث لعرض"
|
||||||
|
};
|
||||||
|
|
||||||
|
return arLy;
|
||||||
|
|
||||||
|
}));
|
||||||
31
vendor/fullcalendar/core/locales/ar-ma.js
vendored
Normal file
31
vendor/fullcalendar/core/locales/ar-ma.js
vendored
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['ar-ma'] = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var arMa = {
|
||||||
|
code: "ar-ma",
|
||||||
|
week: {
|
||||||
|
dow: 6,
|
||||||
|
doy: 12 // The week that contains Jan 1st is the first week of the year.
|
||||||
|
},
|
||||||
|
dir: 'rtl',
|
||||||
|
buttonText: {
|
||||||
|
prev: "السابق",
|
||||||
|
next: "التالي",
|
||||||
|
today: "اليوم",
|
||||||
|
month: "شهر",
|
||||||
|
week: "أسبوع",
|
||||||
|
day: "يوم",
|
||||||
|
list: "أجندة"
|
||||||
|
},
|
||||||
|
weekLabel: "أسبوع",
|
||||||
|
allDayText: "اليوم كله",
|
||||||
|
eventLimitText: "أخرى",
|
||||||
|
noEventsMessage: "أي أحداث لعرض"
|
||||||
|
};
|
||||||
|
|
||||||
|
return arMa;
|
||||||
|
|
||||||
|
}));
|
||||||
31
vendor/fullcalendar/core/locales/ar-sa.js
vendored
Normal file
31
vendor/fullcalendar/core/locales/ar-sa.js
vendored
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['ar-sa'] = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var arSa = {
|
||||||
|
code: "ar-sa",
|
||||||
|
week: {
|
||||||
|
dow: 0,
|
||||||
|
doy: 6 // The week that contains Jan 1st is the first week of the year.
|
||||||
|
},
|
||||||
|
dir: 'rtl',
|
||||||
|
buttonText: {
|
||||||
|
prev: "السابق",
|
||||||
|
next: "التالي",
|
||||||
|
today: "اليوم",
|
||||||
|
month: "شهر",
|
||||||
|
week: "أسبوع",
|
||||||
|
day: "يوم",
|
||||||
|
list: "أجندة"
|
||||||
|
},
|
||||||
|
weekLabel: "أسبوع",
|
||||||
|
allDayText: "اليوم كله",
|
||||||
|
eventLimitText: "أخرى",
|
||||||
|
noEventsMessage: "أي أحداث لعرض"
|
||||||
|
};
|
||||||
|
|
||||||
|
return arSa;
|
||||||
|
|
||||||
|
}));
|
||||||
31
vendor/fullcalendar/core/locales/ar-tn.js
vendored
Normal file
31
vendor/fullcalendar/core/locales/ar-tn.js
vendored
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['ar-tn'] = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var arTn = {
|
||||||
|
code: "ar-tn",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 4 // The week that contains Jan 4th is the first week of the year.
|
||||||
|
},
|
||||||
|
dir: 'rtl',
|
||||||
|
buttonText: {
|
||||||
|
prev: "السابق",
|
||||||
|
next: "التالي",
|
||||||
|
today: "اليوم",
|
||||||
|
month: "شهر",
|
||||||
|
week: "أسبوع",
|
||||||
|
day: "يوم",
|
||||||
|
list: "أجندة"
|
||||||
|
},
|
||||||
|
weekLabel: "أسبوع",
|
||||||
|
allDayText: "اليوم كله",
|
||||||
|
eventLimitText: "أخرى",
|
||||||
|
noEventsMessage: "أي أحداث لعرض"
|
||||||
|
};
|
||||||
|
|
||||||
|
return arTn;
|
||||||
|
|
||||||
|
}));
|
||||||
31
vendor/fullcalendar/core/locales/ar.js
vendored
Normal file
31
vendor/fullcalendar/core/locales/ar.js
vendored
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ar = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var ar = {
|
||||||
|
code: "ar",
|
||||||
|
week: {
|
||||||
|
dow: 6,
|
||||||
|
doy: 12 // The week that contains Jan 1st is the first week of the year.
|
||||||
|
},
|
||||||
|
dir: 'rtl',
|
||||||
|
buttonText: {
|
||||||
|
prev: "السابق",
|
||||||
|
next: "التالي",
|
||||||
|
today: "اليوم",
|
||||||
|
month: "شهر",
|
||||||
|
week: "أسبوع",
|
||||||
|
day: "يوم",
|
||||||
|
list: "أجندة"
|
||||||
|
},
|
||||||
|
weekLabel: "أسبوع",
|
||||||
|
allDayText: "اليوم كله",
|
||||||
|
eventLimitText: "أخرى",
|
||||||
|
noEventsMessage: "أي أحداث لعرض"
|
||||||
|
};
|
||||||
|
|
||||||
|
return ar;
|
||||||
|
|
||||||
|
}));
|
||||||
31
vendor/fullcalendar/core/locales/bg.js
vendored
Normal file
31
vendor/fullcalendar/core/locales/bg.js
vendored
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.bg = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var bg = {
|
||||||
|
code: "bg",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 7 // The week that contains Jan 1st is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "назад",
|
||||||
|
next: "напред",
|
||||||
|
today: "днес",
|
||||||
|
month: "Месец",
|
||||||
|
week: "Седмица",
|
||||||
|
day: "Ден",
|
||||||
|
list: "График"
|
||||||
|
},
|
||||||
|
allDayText: "Цял ден",
|
||||||
|
eventLimitText: function (n) {
|
||||||
|
return "+още " + n;
|
||||||
|
},
|
||||||
|
noEventsMessage: "Няма събития за показване"
|
||||||
|
};
|
||||||
|
|
||||||
|
return bg;
|
||||||
|
|
||||||
|
}));
|
||||||
32
vendor/fullcalendar/core/locales/bs.js
vendored
Normal file
32
vendor/fullcalendar/core/locales/bs.js
vendored
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.bs = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var bs = {
|
||||||
|
code: "bs",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 7 // The week that contains Jan 1st is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "Prošli",
|
||||||
|
next: "Sljedeći",
|
||||||
|
today: "Danas",
|
||||||
|
month: "Mjesec",
|
||||||
|
week: "Sedmica",
|
||||||
|
day: "Dan",
|
||||||
|
list: "Raspored"
|
||||||
|
},
|
||||||
|
weekLabel: "Sed",
|
||||||
|
allDayText: "Cijeli dan",
|
||||||
|
eventLimitText: function (n) {
|
||||||
|
return "+ još " + n;
|
||||||
|
},
|
||||||
|
noEventsMessage: "Nema događaja za prikazivanje"
|
||||||
|
};
|
||||||
|
|
||||||
|
return bs;
|
||||||
|
|
||||||
|
}));
|
||||||
30
vendor/fullcalendar/core/locales/ca.js
vendored
Normal file
30
vendor/fullcalendar/core/locales/ca.js
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ca = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var ca = {
|
||||||
|
code: "ca",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 4 // The week that contains Jan 4th is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "Anterior",
|
||||||
|
next: "Següent",
|
||||||
|
today: "Avui",
|
||||||
|
month: "Mes",
|
||||||
|
week: "Setmana",
|
||||||
|
day: "Dia",
|
||||||
|
list: "Agenda"
|
||||||
|
},
|
||||||
|
weekLabel: "Set",
|
||||||
|
allDayText: "Tot el dia",
|
||||||
|
eventLimitText: "més",
|
||||||
|
noEventsMessage: "No hi ha esdeveniments per mostrar"
|
||||||
|
};
|
||||||
|
|
||||||
|
return ca;
|
||||||
|
|
||||||
|
}));
|
||||||
32
vendor/fullcalendar/core/locales/cs.js
vendored
Normal file
32
vendor/fullcalendar/core/locales/cs.js
vendored
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.cs = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var cs = {
|
||||||
|
code: "cs",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 4 // The week that contains Jan 4th is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "Dříve",
|
||||||
|
next: "Později",
|
||||||
|
today: "Nyní",
|
||||||
|
month: "Měsíc",
|
||||||
|
week: "Týden",
|
||||||
|
day: "Den",
|
||||||
|
list: "Agenda"
|
||||||
|
},
|
||||||
|
weekLabel: "Týd",
|
||||||
|
allDayText: "Celý den",
|
||||||
|
eventLimitText: function (n) {
|
||||||
|
return "+další: " + n;
|
||||||
|
},
|
||||||
|
noEventsMessage: "Žádné akce k zobrazení"
|
||||||
|
};
|
||||||
|
|
||||||
|
return cs;
|
||||||
|
|
||||||
|
}));
|
||||||
30
vendor/fullcalendar/core/locales/da.js
vendored
Normal file
30
vendor/fullcalendar/core/locales/da.js
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.da = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var da = {
|
||||||
|
code: "da",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 4 // The week that contains Jan 4th is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "Forrige",
|
||||||
|
next: "Næste",
|
||||||
|
today: "Idag",
|
||||||
|
month: "Måned",
|
||||||
|
week: "Uge",
|
||||||
|
day: "Dag",
|
||||||
|
list: "Agenda"
|
||||||
|
},
|
||||||
|
weekLabel: "Uge",
|
||||||
|
allDayText: "Hele dagen",
|
||||||
|
eventLimitText: "flere",
|
||||||
|
noEventsMessage: "Ingen arrangementer at vise"
|
||||||
|
};
|
||||||
|
|
||||||
|
return da;
|
||||||
|
|
||||||
|
}));
|
||||||
33
vendor/fullcalendar/core/locales/de.js
vendored
Normal file
33
vendor/fullcalendar/core/locales/de.js
vendored
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.de = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var de = {
|
||||||
|
code: "de",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 4 // The week that contains Jan 4th is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "Zurück",
|
||||||
|
next: "Vor",
|
||||||
|
today: "Heute",
|
||||||
|
year: "Jahr",
|
||||||
|
month: "Monat",
|
||||||
|
week: "Woche",
|
||||||
|
day: "Tag",
|
||||||
|
list: "Terminübersicht"
|
||||||
|
},
|
||||||
|
weekLabel: "KW",
|
||||||
|
allDayText: "Ganztägig",
|
||||||
|
eventLimitText: function (n) {
|
||||||
|
return "+ weitere " + n;
|
||||||
|
},
|
||||||
|
noEventsMessage: "Keine Ereignisse anzuzeigen"
|
||||||
|
};
|
||||||
|
|
||||||
|
return de;
|
||||||
|
|
||||||
|
}));
|
||||||
30
vendor/fullcalendar/core/locales/el.js
vendored
Normal file
30
vendor/fullcalendar/core/locales/el.js
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.el = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var el = {
|
||||||
|
code: "el",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 4 // The week that contains Jan 4st is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "Προηγούμενος",
|
||||||
|
next: "Επόμενος",
|
||||||
|
today: "Σήμερα",
|
||||||
|
month: "Μήνας",
|
||||||
|
week: "Εβδομάδα",
|
||||||
|
day: "Ημέρα",
|
||||||
|
list: "Ατζέντα"
|
||||||
|
},
|
||||||
|
weekLabel: "Εβδ",
|
||||||
|
allDayText: "Ολοήμερο",
|
||||||
|
eventLimitText: "περισσότερα",
|
||||||
|
noEventsMessage: "Δεν υπάρχουν γεγονότα για να εμφανιστεί"
|
||||||
|
};
|
||||||
|
|
||||||
|
return el;
|
||||||
|
|
||||||
|
}));
|
||||||
17
vendor/fullcalendar/core/locales/en-au.js
vendored
Normal file
17
vendor/fullcalendar/core/locales/en-au.js
vendored
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['en-au'] = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var enAu = {
|
||||||
|
code: "en-au",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 4 // The week that contains Jan 4th is the first week of the year.
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return enAu;
|
||||||
|
|
||||||
|
}));
|
||||||
17
vendor/fullcalendar/core/locales/en-gb.js
vendored
Normal file
17
vendor/fullcalendar/core/locales/en-gb.js
vendored
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['en-gb'] = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var enGb = {
|
||||||
|
code: "en-gb",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 4 // The week that contains Jan 4th is the first week of the year.
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return enGb;
|
||||||
|
|
||||||
|
}));
|
||||||
17
vendor/fullcalendar/core/locales/en-nz.js
vendored
Normal file
17
vendor/fullcalendar/core/locales/en-nz.js
vendored
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['en-nz'] = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var enNz = {
|
||||||
|
code: "en-nz",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 4 // The week that contains Jan 4th is the first week of the year.
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return enNz;
|
||||||
|
|
||||||
|
}));
|
||||||
30
vendor/fullcalendar/core/locales/es-us.js
vendored
Normal file
30
vendor/fullcalendar/core/locales/es-us.js
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['es-us'] = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var esUs = {
|
||||||
|
code: "es",
|
||||||
|
week: {
|
||||||
|
dow: 0,
|
||||||
|
doy: 6 // The week that contains Jan 1st is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "Ant",
|
||||||
|
next: "Sig",
|
||||||
|
today: "Hoy",
|
||||||
|
month: "Mes",
|
||||||
|
week: "Semana",
|
||||||
|
day: "Día",
|
||||||
|
list: "Agenda"
|
||||||
|
},
|
||||||
|
weekLabel: "Sm",
|
||||||
|
allDayHtml: "Todo<br/>el día",
|
||||||
|
eventLimitText: "más",
|
||||||
|
noEventsMessage: "No hay eventos para mostrar"
|
||||||
|
};
|
||||||
|
|
||||||
|
return esUs;
|
||||||
|
|
||||||
|
}));
|
||||||
30
vendor/fullcalendar/core/locales/es.js
vendored
Normal file
30
vendor/fullcalendar/core/locales/es.js
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.es = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var es = {
|
||||||
|
code: "es",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 4 // The week that contains Jan 4th is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "Ant",
|
||||||
|
next: "Sig",
|
||||||
|
today: "Hoy",
|
||||||
|
month: "Mes",
|
||||||
|
week: "Semana",
|
||||||
|
day: "Día",
|
||||||
|
list: "Agenda"
|
||||||
|
},
|
||||||
|
weekLabel: "Sm",
|
||||||
|
allDayHtml: "Todo<br/>el día",
|
||||||
|
eventLimitText: "más",
|
||||||
|
noEventsMessage: "No hay eventos para mostrar"
|
||||||
|
};
|
||||||
|
|
||||||
|
return es;
|
||||||
|
|
||||||
|
}));
|
||||||
32
vendor/fullcalendar/core/locales/et.js
vendored
Normal file
32
vendor/fullcalendar/core/locales/et.js
vendored
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.et = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var et = {
|
||||||
|
code: "et",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 4 // The week that contains Jan 4th is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "Eelnev",
|
||||||
|
next: "Järgnev",
|
||||||
|
today: "Täna",
|
||||||
|
month: "Kuu",
|
||||||
|
week: "Nädal",
|
||||||
|
day: "Päev",
|
||||||
|
list: "Päevakord"
|
||||||
|
},
|
||||||
|
weekLabel: "näd",
|
||||||
|
allDayText: "Kogu päev",
|
||||||
|
eventLimitText: function (n) {
|
||||||
|
return "+ veel " + n;
|
||||||
|
},
|
||||||
|
noEventsMessage: "Kuvamiseks puuduvad sündmused"
|
||||||
|
};
|
||||||
|
|
||||||
|
return et;
|
||||||
|
|
||||||
|
}));
|
||||||
30
vendor/fullcalendar/core/locales/eu.js
vendored
Normal file
30
vendor/fullcalendar/core/locales/eu.js
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.eu = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var eu = {
|
||||||
|
code: "eu",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 7 // The week that contains Jan 1st is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "Aur",
|
||||||
|
next: "Hur",
|
||||||
|
today: "Gaur",
|
||||||
|
month: "Hilabetea",
|
||||||
|
week: "Astea",
|
||||||
|
day: "Eguna",
|
||||||
|
list: "Agenda"
|
||||||
|
},
|
||||||
|
weekLabel: "As",
|
||||||
|
allDayHtml: "Egun<br/>osoa",
|
||||||
|
eventLimitText: "gehiago",
|
||||||
|
noEventsMessage: "Ez dago ekitaldirik erakusteko"
|
||||||
|
};
|
||||||
|
|
||||||
|
return eu;
|
||||||
|
|
||||||
|
}));
|
||||||
33
vendor/fullcalendar/core/locales/fa.js
vendored
Normal file
33
vendor/fullcalendar/core/locales/fa.js
vendored
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.fa = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var fa = {
|
||||||
|
code: "fa",
|
||||||
|
week: {
|
||||||
|
dow: 6,
|
||||||
|
doy: 12 // The week that contains Jan 1st is the first week of the year.
|
||||||
|
},
|
||||||
|
dir: 'rtl',
|
||||||
|
buttonText: {
|
||||||
|
prev: "قبلی",
|
||||||
|
next: "بعدی",
|
||||||
|
today: "امروز",
|
||||||
|
month: "ماه",
|
||||||
|
week: "هفته",
|
||||||
|
day: "روز",
|
||||||
|
list: "برنامه"
|
||||||
|
},
|
||||||
|
weekLabel: "هف",
|
||||||
|
allDayText: "تمام روز",
|
||||||
|
eventLimitText: function (n) {
|
||||||
|
return "بیش از " + n;
|
||||||
|
},
|
||||||
|
noEventsMessage: "هیچ رویدادی به نمایش"
|
||||||
|
};
|
||||||
|
|
||||||
|
return fa;
|
||||||
|
|
||||||
|
}));
|
||||||
30
vendor/fullcalendar/core/locales/fi.js
vendored
Normal file
30
vendor/fullcalendar/core/locales/fi.js
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.fi = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var fi = {
|
||||||
|
code: "fi",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 4 // The week that contains Jan 4th is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "Edellinen",
|
||||||
|
next: "Seuraava",
|
||||||
|
today: "Tänään",
|
||||||
|
month: "Kuukausi",
|
||||||
|
week: "Viikko",
|
||||||
|
day: "Päivä",
|
||||||
|
list: "Tapahtumat"
|
||||||
|
},
|
||||||
|
weekLabel: "Vk",
|
||||||
|
allDayText: "Koko päivä",
|
||||||
|
eventLimitText: "lisää",
|
||||||
|
noEventsMessage: "Ei näytettäviä tapahtumia"
|
||||||
|
};
|
||||||
|
|
||||||
|
return fi;
|
||||||
|
|
||||||
|
}));
|
||||||
27
vendor/fullcalendar/core/locales/fr-ca.js
vendored
Normal file
27
vendor/fullcalendar/core/locales/fr-ca.js
vendored
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['fr-ca'] = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var frCa = {
|
||||||
|
code: "fr",
|
||||||
|
buttonText: {
|
||||||
|
prev: "Précédent",
|
||||||
|
next: "Suivant",
|
||||||
|
today: "Aujourd'hui",
|
||||||
|
year: "Année",
|
||||||
|
month: "Mois",
|
||||||
|
week: "Semaine",
|
||||||
|
day: "Jour",
|
||||||
|
list: "Mon planning"
|
||||||
|
},
|
||||||
|
weekLabel: "Sem.",
|
||||||
|
allDayHtml: "Toute la<br/>journée",
|
||||||
|
eventLimitText: "en plus",
|
||||||
|
noEventsMessage: "Aucun événement à afficher"
|
||||||
|
};
|
||||||
|
|
||||||
|
return frCa;
|
||||||
|
|
||||||
|
}));
|
||||||
31
vendor/fullcalendar/core/locales/fr-ch.js
vendored
Normal file
31
vendor/fullcalendar/core/locales/fr-ch.js
vendored
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['fr-ch'] = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var frCh = {
|
||||||
|
code: "fr-ch",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 4 // The week that contains Jan 4th is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "Précédent",
|
||||||
|
next: "Suivant",
|
||||||
|
today: "Courant",
|
||||||
|
year: "Année",
|
||||||
|
month: "Mois",
|
||||||
|
week: "Semaine",
|
||||||
|
day: "Jour",
|
||||||
|
list: "Mon planning"
|
||||||
|
},
|
||||||
|
weekLabel: "Sm",
|
||||||
|
allDayHtml: "Toute la<br/>journée",
|
||||||
|
eventLimitText: "en plus",
|
||||||
|
noEventsMessage: "Aucun événement à afficher"
|
||||||
|
};
|
||||||
|
|
||||||
|
return frCh;
|
||||||
|
|
||||||
|
}));
|
||||||
31
vendor/fullcalendar/core/locales/fr.js
vendored
Normal file
31
vendor/fullcalendar/core/locales/fr.js
vendored
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.fr = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var fr = {
|
||||||
|
code: "fr",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 4 // The week that contains Jan 4th is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "Précédent",
|
||||||
|
next: "Suivant",
|
||||||
|
today: "Aujourd'hui",
|
||||||
|
year: "Année",
|
||||||
|
month: "Mois",
|
||||||
|
week: "Semaine",
|
||||||
|
day: "Jour",
|
||||||
|
list: "Mon planning"
|
||||||
|
},
|
||||||
|
weekLabel: "Sem.",
|
||||||
|
allDayHtml: "Toute la<br/>journée",
|
||||||
|
eventLimitText: "en plus",
|
||||||
|
noEventsMessage: "Aucun événement à afficher"
|
||||||
|
};
|
||||||
|
|
||||||
|
return fr;
|
||||||
|
|
||||||
|
}));
|
||||||
30
vendor/fullcalendar/core/locales/gl.js
vendored
Normal file
30
vendor/fullcalendar/core/locales/gl.js
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.gl = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var gl = {
|
||||||
|
code: "gl",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 4 // The week that contains Jan 4th is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "Ant",
|
||||||
|
next: "Seg",
|
||||||
|
today: "Hoxe",
|
||||||
|
month: "Mes",
|
||||||
|
week: "Semana",
|
||||||
|
day: "Día",
|
||||||
|
list: "Axenda"
|
||||||
|
},
|
||||||
|
weekLabel: "Sm",
|
||||||
|
allDayHtml: "Todo<br/>o día",
|
||||||
|
eventLimitText: "máis",
|
||||||
|
noEventsMessage: "Non hai eventos para amosar"
|
||||||
|
};
|
||||||
|
|
||||||
|
return gl;
|
||||||
|
|
||||||
|
}));
|
||||||
27
vendor/fullcalendar/core/locales/he.js
vendored
Normal file
27
vendor/fullcalendar/core/locales/he.js
vendored
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.he = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var he = {
|
||||||
|
code: "he",
|
||||||
|
dir: 'rtl',
|
||||||
|
buttonText: {
|
||||||
|
prev: "הקודם",
|
||||||
|
next: "הבא",
|
||||||
|
today: "היום",
|
||||||
|
month: "חודש",
|
||||||
|
week: "שבוע",
|
||||||
|
day: "יום",
|
||||||
|
list: "סדר יום"
|
||||||
|
},
|
||||||
|
allDayText: "כל היום",
|
||||||
|
eventLimitText: "אחר",
|
||||||
|
noEventsMessage: "אין אירועים להצגה",
|
||||||
|
weekLabel: "שבוע"
|
||||||
|
};
|
||||||
|
|
||||||
|
return he;
|
||||||
|
|
||||||
|
}));
|
||||||
32
vendor/fullcalendar/core/locales/hi.js
vendored
Normal file
32
vendor/fullcalendar/core/locales/hi.js
vendored
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.hi = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var hi = {
|
||||||
|
code: "hi",
|
||||||
|
week: {
|
||||||
|
dow: 0,
|
||||||
|
doy: 6 // The week that contains Jan 1st is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "पिछला",
|
||||||
|
next: "अगला",
|
||||||
|
today: "आज",
|
||||||
|
month: "महीना",
|
||||||
|
week: "सप्ताह",
|
||||||
|
day: "दिन",
|
||||||
|
list: "कार्यसूची"
|
||||||
|
},
|
||||||
|
weekLabel: "हफ्ता",
|
||||||
|
allDayText: "सभी दिन",
|
||||||
|
eventLimitText: function (n) {
|
||||||
|
return "+अधिक " + n;
|
||||||
|
},
|
||||||
|
noEventsMessage: "कोई घटनाओं को प्रदर्शित करने के लिए"
|
||||||
|
};
|
||||||
|
|
||||||
|
return hi;
|
||||||
|
|
||||||
|
}));
|
||||||
32
vendor/fullcalendar/core/locales/hr.js
vendored
Normal file
32
vendor/fullcalendar/core/locales/hr.js
vendored
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.hr = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var hr = {
|
||||||
|
code: "hr",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 7 // The week that contains Jan 1st is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "Prijašnji",
|
||||||
|
next: "Sljedeći",
|
||||||
|
today: "Danas",
|
||||||
|
month: "Mjesec",
|
||||||
|
week: "Tjedan",
|
||||||
|
day: "Dan",
|
||||||
|
list: "Raspored"
|
||||||
|
},
|
||||||
|
weekLabel: "Tje",
|
||||||
|
allDayText: "Cijeli dan",
|
||||||
|
eventLimitText: function (n) {
|
||||||
|
return "+ još " + n;
|
||||||
|
},
|
||||||
|
noEventsMessage: "Nema događaja za prikaz"
|
||||||
|
};
|
||||||
|
|
||||||
|
return hr;
|
||||||
|
|
||||||
|
}));
|
||||||
30
vendor/fullcalendar/core/locales/hu.js
vendored
Normal file
30
vendor/fullcalendar/core/locales/hu.js
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.hu = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var hu = {
|
||||||
|
code: "hu",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 4 // The week that contains Jan 4th is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "vissza",
|
||||||
|
next: "előre",
|
||||||
|
today: "ma",
|
||||||
|
month: "Hónap",
|
||||||
|
week: "Hét",
|
||||||
|
day: "Nap",
|
||||||
|
list: "Napló"
|
||||||
|
},
|
||||||
|
weekLabel: "Hét",
|
||||||
|
allDayText: "Egész nap",
|
||||||
|
eventLimitText: "további",
|
||||||
|
noEventsMessage: "Nincs megjeleníthető esemény"
|
||||||
|
};
|
||||||
|
|
||||||
|
return hu;
|
||||||
|
|
||||||
|
}));
|
||||||
30
vendor/fullcalendar/core/locales/id.js
vendored
Normal file
30
vendor/fullcalendar/core/locales/id.js
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.id = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var id = {
|
||||||
|
code: "id",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 7 // The week that contains Jan 1st is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "mundur",
|
||||||
|
next: "maju",
|
||||||
|
today: "hari ini",
|
||||||
|
month: "Bulan",
|
||||||
|
week: "Minggu",
|
||||||
|
day: "Hari",
|
||||||
|
list: "Agenda"
|
||||||
|
},
|
||||||
|
weekLabel: "Mg",
|
||||||
|
allDayHtml: "Sehari<br/>penuh",
|
||||||
|
eventLimitText: "lebih",
|
||||||
|
noEventsMessage: "Tidak ada acara untuk ditampilkan"
|
||||||
|
};
|
||||||
|
|
||||||
|
return id;
|
||||||
|
|
||||||
|
}));
|
||||||
30
vendor/fullcalendar/core/locales/is.js
vendored
Normal file
30
vendor/fullcalendar/core/locales/is.js
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.is = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var is = {
|
||||||
|
code: "is",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 4 // The week that contains Jan 4th is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "Fyrri",
|
||||||
|
next: "Næsti",
|
||||||
|
today: "Í dag",
|
||||||
|
month: "Mánuður",
|
||||||
|
week: "Vika",
|
||||||
|
day: "Dagur",
|
||||||
|
list: "Dagskrá"
|
||||||
|
},
|
||||||
|
weekLabel: "Vika",
|
||||||
|
allDayHtml: "Allan<br/>daginn",
|
||||||
|
eventLimitText: "meira",
|
||||||
|
noEventsMessage: "Engir viðburðir til að sýna"
|
||||||
|
};
|
||||||
|
|
||||||
|
return is;
|
||||||
|
|
||||||
|
}));
|
||||||
32
vendor/fullcalendar/core/locales/it.js
vendored
Normal file
32
vendor/fullcalendar/core/locales/it.js
vendored
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.it = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var it = {
|
||||||
|
code: "it",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 4 // The week that contains Jan 4th is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "Prec",
|
||||||
|
next: "Succ",
|
||||||
|
today: "Oggi",
|
||||||
|
month: "Mese",
|
||||||
|
week: "Settimana",
|
||||||
|
day: "Giorno",
|
||||||
|
list: "Agenda"
|
||||||
|
},
|
||||||
|
weekLabel: "Sm",
|
||||||
|
allDayHtml: "Tutto il<br/>giorno",
|
||||||
|
eventLimitText: function (n) {
|
||||||
|
return "+altri " + n;
|
||||||
|
},
|
||||||
|
noEventsMessage: "Non ci sono eventi da visualizzare"
|
||||||
|
};
|
||||||
|
|
||||||
|
return it;
|
||||||
|
|
||||||
|
}));
|
||||||
28
vendor/fullcalendar/core/locales/ja.js
vendored
Normal file
28
vendor/fullcalendar/core/locales/ja.js
vendored
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ja = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var ja = {
|
||||||
|
code: "ja",
|
||||||
|
buttonText: {
|
||||||
|
prev: "前",
|
||||||
|
next: "次",
|
||||||
|
today: "今日",
|
||||||
|
month: "月",
|
||||||
|
week: "週",
|
||||||
|
day: "日",
|
||||||
|
list: "予定リスト"
|
||||||
|
},
|
||||||
|
weekLabel: "週",
|
||||||
|
allDayText: "終日",
|
||||||
|
eventLimitText: function (n) {
|
||||||
|
return "他 " + n + " 件";
|
||||||
|
},
|
||||||
|
noEventsMessage: "表示する予定はありません"
|
||||||
|
};
|
||||||
|
|
||||||
|
return ja;
|
||||||
|
|
||||||
|
}));
|
||||||
32
vendor/fullcalendar/core/locales/ka.js
vendored
Normal file
32
vendor/fullcalendar/core/locales/ka.js
vendored
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ka = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var ka = {
|
||||||
|
code: "ka",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 7
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "წინა",
|
||||||
|
next: "შემდეგი",
|
||||||
|
today: "დღეს",
|
||||||
|
month: "თვე",
|
||||||
|
week: "კვირა",
|
||||||
|
day: "დღე",
|
||||||
|
list: "დღის წესრიგი"
|
||||||
|
},
|
||||||
|
weekLabel: "კვ",
|
||||||
|
allDayText: "მთელი დღე",
|
||||||
|
eventLimitText: function (n) {
|
||||||
|
return "+ კიდევ " + n;
|
||||||
|
},
|
||||||
|
noEventsMessage: "ღონისძიებები არ არის"
|
||||||
|
};
|
||||||
|
|
||||||
|
return ka;
|
||||||
|
|
||||||
|
}));
|
||||||
32
vendor/fullcalendar/core/locales/kk.js
vendored
Normal file
32
vendor/fullcalendar/core/locales/kk.js
vendored
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.kk = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var kk = {
|
||||||
|
code: "kk",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 7 // The week that contains Jan 1st is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "Алдыңғы",
|
||||||
|
next: "Келесі",
|
||||||
|
today: "Бүгін",
|
||||||
|
month: "Ай",
|
||||||
|
week: "Апта",
|
||||||
|
day: "Күн",
|
||||||
|
list: "Күн тәртібі"
|
||||||
|
},
|
||||||
|
weekLabel: "Не",
|
||||||
|
allDayText: "Күні бойы",
|
||||||
|
eventLimitText: function (n) {
|
||||||
|
return "+ тағы " + n;
|
||||||
|
},
|
||||||
|
noEventsMessage: "Көрсету үшін оқиғалар жоқ"
|
||||||
|
};
|
||||||
|
|
||||||
|
return kk;
|
||||||
|
|
||||||
|
}));
|
||||||
26
vendor/fullcalendar/core/locales/ko.js
vendored
Normal file
26
vendor/fullcalendar/core/locales/ko.js
vendored
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ko = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var ko = {
|
||||||
|
code: "ko",
|
||||||
|
buttonText: {
|
||||||
|
prev: "이전달",
|
||||||
|
next: "다음달",
|
||||||
|
today: "오늘",
|
||||||
|
month: "월",
|
||||||
|
week: "주",
|
||||||
|
day: "일",
|
||||||
|
list: "일정목록"
|
||||||
|
},
|
||||||
|
weekLabel: "주",
|
||||||
|
allDayText: "종일",
|
||||||
|
eventLimitText: "개",
|
||||||
|
noEventsMessage: "일정이 없습니다"
|
||||||
|
};
|
||||||
|
|
||||||
|
return ko;
|
||||||
|
|
||||||
|
}));
|
||||||
30
vendor/fullcalendar/core/locales/lb.js
vendored
Normal file
30
vendor/fullcalendar/core/locales/lb.js
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.lb = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var lb = {
|
||||||
|
code: "lb",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 4 // The week that contains Jan 4th is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "Zréck",
|
||||||
|
next: "Weider",
|
||||||
|
today: "Haut",
|
||||||
|
month: "Mount",
|
||||||
|
week: "Woch",
|
||||||
|
day: "Dag",
|
||||||
|
list: "Terminiwwersiicht"
|
||||||
|
},
|
||||||
|
weekLabel: "W",
|
||||||
|
allDayText: "Ganzen Dag",
|
||||||
|
eventLimitText: "méi",
|
||||||
|
noEventsMessage: "Nee Evenementer ze affichéieren"
|
||||||
|
};
|
||||||
|
|
||||||
|
return lb;
|
||||||
|
|
||||||
|
}));
|
||||||
30
vendor/fullcalendar/core/locales/lt.js
vendored
Normal file
30
vendor/fullcalendar/core/locales/lt.js
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.lt = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var lt = {
|
||||||
|
code: "lt",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 4 // The week that contains Jan 4th is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "Atgal",
|
||||||
|
next: "Pirmyn",
|
||||||
|
today: "Šiandien",
|
||||||
|
month: "Mėnuo",
|
||||||
|
week: "Savaitė",
|
||||||
|
day: "Diena",
|
||||||
|
list: "Darbotvarkė"
|
||||||
|
},
|
||||||
|
weekLabel: "SAV",
|
||||||
|
allDayText: "Visą dieną",
|
||||||
|
eventLimitText: "daugiau",
|
||||||
|
noEventsMessage: "Nėra įvykių rodyti"
|
||||||
|
};
|
||||||
|
|
||||||
|
return lt;
|
||||||
|
|
||||||
|
}));
|
||||||
32
vendor/fullcalendar/core/locales/lv.js
vendored
Normal file
32
vendor/fullcalendar/core/locales/lv.js
vendored
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.lv = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var lv = {
|
||||||
|
code: "lv",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 4 // The week that contains Jan 4th is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "Iepr.",
|
||||||
|
next: "Nāk.",
|
||||||
|
today: "Šodien",
|
||||||
|
month: "Mēnesis",
|
||||||
|
week: "Nedēļa",
|
||||||
|
day: "Diena",
|
||||||
|
list: "Dienas kārtība"
|
||||||
|
},
|
||||||
|
weekLabel: "Ned.",
|
||||||
|
allDayText: "Visu dienu",
|
||||||
|
eventLimitText: function (n) {
|
||||||
|
return "+vēl " + n;
|
||||||
|
},
|
||||||
|
noEventsMessage: "Nav notikumu"
|
||||||
|
};
|
||||||
|
|
||||||
|
return lv;
|
||||||
|
|
||||||
|
}));
|
||||||
28
vendor/fullcalendar/core/locales/mk.js
vendored
Normal file
28
vendor/fullcalendar/core/locales/mk.js
vendored
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.mk = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var mk = {
|
||||||
|
code: "mk",
|
||||||
|
buttonText: {
|
||||||
|
prev: "претходно",
|
||||||
|
next: "следно",
|
||||||
|
today: "Денес",
|
||||||
|
month: "Месец",
|
||||||
|
week: "Недела",
|
||||||
|
day: "Ден",
|
||||||
|
list: "График"
|
||||||
|
},
|
||||||
|
weekLabel: "Сед",
|
||||||
|
allDayText: "Цел ден",
|
||||||
|
eventLimitText: function (n) {
|
||||||
|
return "+повеќе " + n;
|
||||||
|
},
|
||||||
|
noEventsMessage: "Нема настани за прикажување"
|
||||||
|
};
|
||||||
|
|
||||||
|
return mk;
|
||||||
|
|
||||||
|
}));
|
||||||
32
vendor/fullcalendar/core/locales/ms.js
vendored
Normal file
32
vendor/fullcalendar/core/locales/ms.js
vendored
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ms = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var ms = {
|
||||||
|
code: "ms",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 7 // The week that contains Jan 1st is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "Sebelum",
|
||||||
|
next: "Selepas",
|
||||||
|
today: "hari ini",
|
||||||
|
month: "Bulan",
|
||||||
|
week: "Minggu",
|
||||||
|
day: "Hari",
|
||||||
|
list: "Agenda"
|
||||||
|
},
|
||||||
|
weekLabel: "Mg",
|
||||||
|
allDayText: "Sepanjang hari",
|
||||||
|
eventLimitText: function (n) {
|
||||||
|
return "masih ada " + n + " acara";
|
||||||
|
},
|
||||||
|
noEventsMessage: "Tiada peristiwa untuk dipaparkan"
|
||||||
|
};
|
||||||
|
|
||||||
|
return ms;
|
||||||
|
|
||||||
|
}));
|
||||||
30
vendor/fullcalendar/core/locales/nb.js
vendored
Normal file
30
vendor/fullcalendar/core/locales/nb.js
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.nb = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var nb = {
|
||||||
|
code: "nb",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 4 // The week that contains Jan 4th is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "Forrige",
|
||||||
|
next: "Neste",
|
||||||
|
today: "I dag",
|
||||||
|
month: "Måned",
|
||||||
|
week: "Uke",
|
||||||
|
day: "Dag",
|
||||||
|
list: "Agenda"
|
||||||
|
},
|
||||||
|
weekLabel: "Uke",
|
||||||
|
allDayText: "Hele dagen",
|
||||||
|
eventLimitText: "til",
|
||||||
|
noEventsMessage: "Ingen hendelser å vise"
|
||||||
|
};
|
||||||
|
|
||||||
|
return nb;
|
||||||
|
|
||||||
|
}));
|
||||||
30
vendor/fullcalendar/core/locales/nl.js
vendored
Normal file
30
vendor/fullcalendar/core/locales/nl.js
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.nl = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var nl = {
|
||||||
|
code: "nl",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 4 // The week that contains Jan 4th is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "Voorgaand",
|
||||||
|
next: "Volgende",
|
||||||
|
today: "Vandaag",
|
||||||
|
year: "Jaar",
|
||||||
|
month: "Maand",
|
||||||
|
week: "Week",
|
||||||
|
day: "Dag",
|
||||||
|
list: "Agenda"
|
||||||
|
},
|
||||||
|
allDayText: "Hele dag",
|
||||||
|
eventLimitText: "extra",
|
||||||
|
noEventsMessage: "Geen evenementen om te laten zien"
|
||||||
|
};
|
||||||
|
|
||||||
|
return nl;
|
||||||
|
|
||||||
|
}));
|
||||||
30
vendor/fullcalendar/core/locales/nn.js
vendored
Normal file
30
vendor/fullcalendar/core/locales/nn.js
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.nn = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var nn = {
|
||||||
|
code: "nn",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 4 // The week that contains Jan 4th is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "Førre",
|
||||||
|
next: "Neste",
|
||||||
|
today: "I dag",
|
||||||
|
month: "Månad",
|
||||||
|
week: "Veke",
|
||||||
|
day: "Dag",
|
||||||
|
list: "Agenda"
|
||||||
|
},
|
||||||
|
weekLabel: "Veke",
|
||||||
|
allDayText: "Heile dagen",
|
||||||
|
eventLimitText: "til",
|
||||||
|
noEventsMessage: "Ingen hendelser å vise"
|
||||||
|
};
|
||||||
|
|
||||||
|
return nn;
|
||||||
|
|
||||||
|
}));
|
||||||
30
vendor/fullcalendar/core/locales/pl.js
vendored
Normal file
30
vendor/fullcalendar/core/locales/pl.js
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.pl = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var pl = {
|
||||||
|
code: "pl",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 4 // The week that contains Jan 4th is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "Poprzedni",
|
||||||
|
next: "Następny",
|
||||||
|
today: "Dziś",
|
||||||
|
month: "Miesiąc",
|
||||||
|
week: "Tydzień",
|
||||||
|
day: "Dzień",
|
||||||
|
list: "Plan dnia"
|
||||||
|
},
|
||||||
|
weekLabel: "Tydz",
|
||||||
|
allDayText: "Cały dzień",
|
||||||
|
eventLimitText: "więcej",
|
||||||
|
noEventsMessage: "Brak wydarzeń do wyświetlenia"
|
||||||
|
};
|
||||||
|
|
||||||
|
return pl;
|
||||||
|
|
||||||
|
}));
|
||||||
28
vendor/fullcalendar/core/locales/pt-br.js
vendored
Normal file
28
vendor/fullcalendar/core/locales/pt-br.js
vendored
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['pt-br'] = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var ptBr = {
|
||||||
|
code: "pt-br",
|
||||||
|
buttonText: {
|
||||||
|
prev: "Anterior",
|
||||||
|
next: "Próximo",
|
||||||
|
today: "Hoje",
|
||||||
|
month: "Mês",
|
||||||
|
week: "Semana",
|
||||||
|
day: "Dia",
|
||||||
|
list: "Compromissos"
|
||||||
|
},
|
||||||
|
weekLabel: "Sm",
|
||||||
|
allDayText: "dia inteiro",
|
||||||
|
eventLimitText: function (n) {
|
||||||
|
return "mais +" + n;
|
||||||
|
},
|
||||||
|
noEventsMessage: "Não há eventos para mostrar"
|
||||||
|
};
|
||||||
|
|
||||||
|
return ptBr;
|
||||||
|
|
||||||
|
}));
|
||||||
30
vendor/fullcalendar/core/locales/pt.js
vendored
Normal file
30
vendor/fullcalendar/core/locales/pt.js
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.pt = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var pt = {
|
||||||
|
code: "pt",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 4 // The week that contains Jan 4th is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "Anterior",
|
||||||
|
next: "Seguinte",
|
||||||
|
today: "Hoje",
|
||||||
|
month: "Mês",
|
||||||
|
week: "Semana",
|
||||||
|
day: "Dia",
|
||||||
|
list: "Agenda"
|
||||||
|
},
|
||||||
|
weekLabel: "Sem",
|
||||||
|
allDayText: "Todo o dia",
|
||||||
|
eventLimitText: "mais",
|
||||||
|
noEventsMessage: "Não há eventos para mostrar"
|
||||||
|
};
|
||||||
|
|
||||||
|
return pt;
|
||||||
|
|
||||||
|
}));
|
||||||
32
vendor/fullcalendar/core/locales/ro.js
vendored
Normal file
32
vendor/fullcalendar/core/locales/ro.js
vendored
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ro = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var ro = {
|
||||||
|
code: "ro",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 7 // The week that contains Jan 1st is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "precedentă",
|
||||||
|
next: "următoare",
|
||||||
|
today: "Azi",
|
||||||
|
month: "Lună",
|
||||||
|
week: "Săptămână",
|
||||||
|
day: "Zi",
|
||||||
|
list: "Agendă"
|
||||||
|
},
|
||||||
|
weekLabel: "Săpt",
|
||||||
|
allDayText: "Toată ziua",
|
||||||
|
eventLimitText: function (n) {
|
||||||
|
return "+alte " + n;
|
||||||
|
},
|
||||||
|
noEventsMessage: "Nu există evenimente de afișat"
|
||||||
|
};
|
||||||
|
|
||||||
|
return ro;
|
||||||
|
|
||||||
|
}));
|
||||||
32
vendor/fullcalendar/core/locales/ru.js
vendored
Normal file
32
vendor/fullcalendar/core/locales/ru.js
vendored
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.ru = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var ru = {
|
||||||
|
code: "ru",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 4 // The week that contains Jan 4th is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "Пред",
|
||||||
|
next: "След",
|
||||||
|
today: "Сегодня",
|
||||||
|
month: "Месяц",
|
||||||
|
week: "Неделя",
|
||||||
|
day: "День",
|
||||||
|
list: "Повестка дня"
|
||||||
|
},
|
||||||
|
weekLabel: "Нед",
|
||||||
|
allDayText: "Весь день",
|
||||||
|
eventLimitText: function (n) {
|
||||||
|
return "+ ещё " + n;
|
||||||
|
},
|
||||||
|
noEventsMessage: "Нет событий для отображения"
|
||||||
|
};
|
||||||
|
|
||||||
|
return ru;
|
||||||
|
|
||||||
|
}));
|
||||||
32
vendor/fullcalendar/core/locales/sk.js
vendored
Normal file
32
vendor/fullcalendar/core/locales/sk.js
vendored
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.sk = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var sk = {
|
||||||
|
code: "sk",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 4 // The week that contains Jan 4th is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "Predchádzajúci",
|
||||||
|
next: "Nasledujúci",
|
||||||
|
today: "Dnes",
|
||||||
|
month: "Mesiac",
|
||||||
|
week: "Týždeň",
|
||||||
|
day: "Deň",
|
||||||
|
list: "Rozvrh"
|
||||||
|
},
|
||||||
|
weekLabel: "Ty",
|
||||||
|
allDayText: "Celý deň",
|
||||||
|
eventLimitText: function (n) {
|
||||||
|
return "+ďalšie: " + n;
|
||||||
|
},
|
||||||
|
noEventsMessage: "Žiadne akcie na zobrazenie"
|
||||||
|
};
|
||||||
|
|
||||||
|
return sk;
|
||||||
|
|
||||||
|
}));
|
||||||
30
vendor/fullcalendar/core/locales/sl.js
vendored
Normal file
30
vendor/fullcalendar/core/locales/sl.js
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.sl = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var sl = {
|
||||||
|
code: "sl",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 7 // The week that contains Jan 1st is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "Prejšnji",
|
||||||
|
next: "Naslednji",
|
||||||
|
today: "Trenutni",
|
||||||
|
month: "Mesec",
|
||||||
|
week: "Teden",
|
||||||
|
day: "Dan",
|
||||||
|
list: "Dnevni red"
|
||||||
|
},
|
||||||
|
weekLabel: "Teden",
|
||||||
|
allDayText: "Ves dan",
|
||||||
|
eventLimitText: "več",
|
||||||
|
noEventsMessage: "Ni dogodkov za prikaz"
|
||||||
|
};
|
||||||
|
|
||||||
|
return sl;
|
||||||
|
|
||||||
|
}));
|
||||||
32
vendor/fullcalendar/core/locales/sq.js
vendored
Normal file
32
vendor/fullcalendar/core/locales/sq.js
vendored
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.sq = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var sq = {
|
||||||
|
code: "sq",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 4 // The week that contains Jan 4th is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "mbrapa",
|
||||||
|
next: "Përpara",
|
||||||
|
today: "sot",
|
||||||
|
month: "Muaj",
|
||||||
|
week: "Javë",
|
||||||
|
day: "Ditë",
|
||||||
|
list: "Listë"
|
||||||
|
},
|
||||||
|
weekLabel: "Ja",
|
||||||
|
allDayHtml: "Gjithë<br/>ditën",
|
||||||
|
eventLimitText: function (n) {
|
||||||
|
return "+më tepër " + n;
|
||||||
|
},
|
||||||
|
noEventsMessage: "Nuk ka evente për të shfaqur"
|
||||||
|
};
|
||||||
|
|
||||||
|
return sq;
|
||||||
|
|
||||||
|
}));
|
||||||
32
vendor/fullcalendar/core/locales/sr-cyrl.js
vendored
Normal file
32
vendor/fullcalendar/core/locales/sr-cyrl.js
vendored
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['sr-cyrl'] = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var srCyrl = {
|
||||||
|
code: "sr-cyrl",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 7 // The week that contains Jan 1st is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "Претходна",
|
||||||
|
next: "следећи",
|
||||||
|
today: "Данас",
|
||||||
|
month: "Месец",
|
||||||
|
week: "Недеља",
|
||||||
|
day: "Дан",
|
||||||
|
list: "Планер"
|
||||||
|
},
|
||||||
|
weekLabel: "Сед",
|
||||||
|
allDayText: "Цео дан",
|
||||||
|
eventLimitText: function (n) {
|
||||||
|
return "+ још " + n;
|
||||||
|
},
|
||||||
|
noEventsMessage: "Нема догађаја за приказ"
|
||||||
|
};
|
||||||
|
|
||||||
|
return srCyrl;
|
||||||
|
|
||||||
|
}));
|
||||||
32
vendor/fullcalendar/core/locales/sr.js
vendored
Normal file
32
vendor/fullcalendar/core/locales/sr.js
vendored
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.sr = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var sr = {
|
||||||
|
code: "sr",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 7 // The week that contains Jan 1st is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "Prethodna",
|
||||||
|
next: "Sledeći",
|
||||||
|
today: "Danas",
|
||||||
|
month: "Mеsеc",
|
||||||
|
week: "Nеdеlja",
|
||||||
|
day: "Dan",
|
||||||
|
list: "Planеr"
|
||||||
|
},
|
||||||
|
weekLabel: "Sed",
|
||||||
|
allDayText: "Cеo dan",
|
||||||
|
eventLimitText: function (n) {
|
||||||
|
return "+ još " + n;
|
||||||
|
},
|
||||||
|
noEventsMessage: "Nеma događaja za prikaz"
|
||||||
|
};
|
||||||
|
|
||||||
|
return sr;
|
||||||
|
|
||||||
|
}));
|
||||||
30
vendor/fullcalendar/core/locales/sv.js
vendored
Normal file
30
vendor/fullcalendar/core/locales/sv.js
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.sv = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var sv = {
|
||||||
|
code: "sv",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 4 // The week that contains Jan 4th is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "Förra",
|
||||||
|
next: "Nästa",
|
||||||
|
today: "Idag",
|
||||||
|
month: "Månad",
|
||||||
|
week: "Vecka",
|
||||||
|
day: "Dag",
|
||||||
|
list: "Program"
|
||||||
|
},
|
||||||
|
weekLabel: "v.",
|
||||||
|
allDayText: "Heldag",
|
||||||
|
eventLimitText: "till",
|
||||||
|
noEventsMessage: "Inga händelser att visa"
|
||||||
|
};
|
||||||
|
|
||||||
|
return sv;
|
||||||
|
|
||||||
|
}));
|
||||||
25
vendor/fullcalendar/core/locales/th.js
vendored
Normal file
25
vendor/fullcalendar/core/locales/th.js
vendored
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.th = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var th = {
|
||||||
|
code: "th",
|
||||||
|
buttonText: {
|
||||||
|
prev: "ย้อน",
|
||||||
|
next: "ถัดไป",
|
||||||
|
today: "วันนี้",
|
||||||
|
month: "เดือน",
|
||||||
|
week: "สัปดาห์",
|
||||||
|
day: "วัน",
|
||||||
|
list: "แผนงาน"
|
||||||
|
},
|
||||||
|
allDayText: "ตลอดวัน",
|
||||||
|
eventLimitText: "เพิ่มเติม",
|
||||||
|
noEventsMessage: "ไม่มีกิจกรรมที่จะแสดง"
|
||||||
|
};
|
||||||
|
|
||||||
|
return th;
|
||||||
|
|
||||||
|
}));
|
||||||
30
vendor/fullcalendar/core/locales/tr.js
vendored
Normal file
30
vendor/fullcalendar/core/locales/tr.js
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.tr = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var tr = {
|
||||||
|
code: "tr",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 7 // The week that contains Jan 1st is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "geri",
|
||||||
|
next: "ileri",
|
||||||
|
today: "bugün",
|
||||||
|
month: "Ay",
|
||||||
|
week: "Hafta",
|
||||||
|
day: "Gün",
|
||||||
|
list: "Ajanda"
|
||||||
|
},
|
||||||
|
weekLabel: "Hf",
|
||||||
|
allDayText: "Tüm gün",
|
||||||
|
eventLimitText: "daha fazla",
|
||||||
|
noEventsMessage: "Gösterilecek etkinlik yok"
|
||||||
|
};
|
||||||
|
|
||||||
|
return tr;
|
||||||
|
|
||||||
|
}));
|
||||||
32
vendor/fullcalendar/core/locales/uk.js
vendored
Normal file
32
vendor/fullcalendar/core/locales/uk.js
vendored
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.uk = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var uk = {
|
||||||
|
code: "uk",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 7 // The week that contains Jan 1st is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "Попередній",
|
||||||
|
next: "далі",
|
||||||
|
today: "Сьогодні",
|
||||||
|
month: "Місяць",
|
||||||
|
week: "Тиждень",
|
||||||
|
day: "День",
|
||||||
|
list: "Порядок денний"
|
||||||
|
},
|
||||||
|
weekLabel: "Тиж",
|
||||||
|
allDayText: "Увесь день",
|
||||||
|
eventLimitText: function (n) {
|
||||||
|
return "+ще " + n + "...";
|
||||||
|
},
|
||||||
|
noEventsMessage: "Немає подій для відображення"
|
||||||
|
};
|
||||||
|
|
||||||
|
return uk;
|
||||||
|
|
||||||
|
}));
|
||||||
32
vendor/fullcalendar/core/locales/vi.js
vendored
Normal file
32
vendor/fullcalendar/core/locales/vi.js
vendored
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.vi = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var vi = {
|
||||||
|
code: "vi",
|
||||||
|
week: {
|
||||||
|
dow: 1,
|
||||||
|
doy: 4 // The week that contains Jan 4th is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "Trước",
|
||||||
|
next: "Tiếp",
|
||||||
|
today: "Hôm nay",
|
||||||
|
month: "Tháng",
|
||||||
|
week: "Tuần",
|
||||||
|
day: "Ngày",
|
||||||
|
list: "Lịch biểu"
|
||||||
|
},
|
||||||
|
weekLabel: "Tu",
|
||||||
|
allDayText: "Cả ngày",
|
||||||
|
eventLimitText: function (n) {
|
||||||
|
return "+ thêm " + n;
|
||||||
|
},
|
||||||
|
noEventsMessage: "Không có sự kiện để hiển thị"
|
||||||
|
};
|
||||||
|
|
||||||
|
return vi;
|
||||||
|
|
||||||
|
}));
|
||||||
33
vendor/fullcalendar/core/locales/zh-cn.js
vendored
Normal file
33
vendor/fullcalendar/core/locales/zh-cn.js
vendored
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['zh-cn'] = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var zhCn = {
|
||||||
|
code: "zh-cn",
|
||||||
|
week: {
|
||||||
|
// GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
|
||||||
|
dow: 1,
|
||||||
|
doy: 4 // The week that contains Jan 4th is the first week of the year.
|
||||||
|
},
|
||||||
|
buttonText: {
|
||||||
|
prev: "上月",
|
||||||
|
next: "下月",
|
||||||
|
today: "今天",
|
||||||
|
month: "月",
|
||||||
|
week: "周",
|
||||||
|
day: "日",
|
||||||
|
list: "日程"
|
||||||
|
},
|
||||||
|
weekLabel: "周",
|
||||||
|
allDayText: "全天",
|
||||||
|
eventLimitText: function (n) {
|
||||||
|
return "另外 " + n + " 个";
|
||||||
|
},
|
||||||
|
noEventsMessage: "没有事件显示"
|
||||||
|
};
|
||||||
|
|
||||||
|
return zhCn;
|
||||||
|
|
||||||
|
}));
|
||||||
26
vendor/fullcalendar/core/locales/zh-tw.js
vendored
Normal file
26
vendor/fullcalendar/core/locales/zh-tw.js
vendored
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||||
|
typeof define === 'function' && define.amd ? define(factory) :
|
||||||
|
(global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['zh-tw'] = factory()));
|
||||||
|
}(this, function () { 'use strict';
|
||||||
|
|
||||||
|
var zhTw = {
|
||||||
|
code: "zh-tw",
|
||||||
|
buttonText: {
|
||||||
|
prev: "上月",
|
||||||
|
next: "下月",
|
||||||
|
today: "今天",
|
||||||
|
month: "月",
|
||||||
|
week: "週",
|
||||||
|
day: "天",
|
||||||
|
list: "活動列表"
|
||||||
|
},
|
||||||
|
weekLabel: "周",
|
||||||
|
allDayText: "整天",
|
||||||
|
eventLimitText: '顯示更多',
|
||||||
|
noEventsMessage: "没有任何活動"
|
||||||
|
};
|
||||||
|
|
||||||
|
return zhTw;
|
||||||
|
|
||||||
|
}));
|
||||||
900
vendor/fullcalendar/core/main.css
vendored
Normal file
900
vendor/fullcalendar/core/main.css
vendored
Normal file
@@ -0,0 +1,900 @@
|
|||||||
|
/*!
|
||||||
|
FullCalendar Core Package v4.1.0
|
||||||
|
Docs & License: https://fullcalendar.io/
|
||||||
|
(c) 2019 Adam Shaw
|
||||||
|
*/
|
||||||
|
.fc {
|
||||||
|
direction: ltr;
|
||||||
|
text-align: left; }
|
||||||
|
|
||||||
|
.fc-rtl {
|
||||||
|
text-align: right; }
|
||||||
|
|
||||||
|
body .fc {
|
||||||
|
/* extra precedence to overcome jqui */
|
||||||
|
font-size: 1em; }
|
||||||
|
|
||||||
|
/* Colors
|
||||||
|
--------------------------------------------------------------------------------------------------*/
|
||||||
|
.fc-highlight {
|
||||||
|
/* when user is selecting cells */
|
||||||
|
background: #bce8f1;
|
||||||
|
opacity: .3; }
|
||||||
|
|
||||||
|
.fc-bgevent {
|
||||||
|
/* default look for background events */
|
||||||
|
background: #8fdf82;
|
||||||
|
opacity: .3; }
|
||||||
|
|
||||||
|
.fc-nonbusiness {
|
||||||
|
/* default look for non-business-hours areas */
|
||||||
|
/* will inherit .fc-bgevent's styles */
|
||||||
|
background: #d7d7d7; }
|
||||||
|
|
||||||
|
/* Popover
|
||||||
|
--------------------------------------------------------------------------------------------------*/
|
||||||
|
.fc-popover {
|
||||||
|
position: absolute;
|
||||||
|
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15); }
|
||||||
|
|
||||||
|
.fc-popover .fc-header {
|
||||||
|
/* TODO: be more consistent with fc-head/fc-body */
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
padding: 2px 4px; }
|
||||||
|
|
||||||
|
.fc-rtl .fc-popover .fc-header {
|
||||||
|
flex-direction: row-reverse; }
|
||||||
|
|
||||||
|
.fc-popover .fc-header .fc-title {
|
||||||
|
margin: 0 2px; }
|
||||||
|
|
||||||
|
.fc-popover .fc-header .fc-close {
|
||||||
|
cursor: pointer;
|
||||||
|
opacity: 0.65;
|
||||||
|
font-size: 1.1em; }
|
||||||
|
|
||||||
|
/* Misc Reusable Components
|
||||||
|
--------------------------------------------------------------------------------------------------*/
|
||||||
|
.fc-divider {
|
||||||
|
border-style: solid;
|
||||||
|
border-width: 1px; }
|
||||||
|
|
||||||
|
hr.fc-divider {
|
||||||
|
height: 0;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0 0 2px;
|
||||||
|
/* height is unreliable across browsers, so use padding */
|
||||||
|
border-width: 1px 0; }
|
||||||
|
|
||||||
|
.fc-bg,
|
||||||
|
.fc-bgevent-skeleton,
|
||||||
|
.fc-highlight-skeleton,
|
||||||
|
.fc-mirror-skeleton {
|
||||||
|
/* these element should always cling to top-left/right corners */
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0; }
|
||||||
|
|
||||||
|
.fc-bg {
|
||||||
|
bottom: 0;
|
||||||
|
/* strech bg to bottom edge */ }
|
||||||
|
|
||||||
|
.fc-bg table {
|
||||||
|
height: 100%;
|
||||||
|
/* strech bg to bottom edge */ }
|
||||||
|
|
||||||
|
/* Tables
|
||||||
|
--------------------------------------------------------------------------------------------------*/
|
||||||
|
.fc table {
|
||||||
|
width: 100%;
|
||||||
|
box-sizing: border-box;
|
||||||
|
/* fix scrollbar issue in firefox */
|
||||||
|
table-layout: fixed;
|
||||||
|
border-collapse: collapse;
|
||||||
|
border-spacing: 0;
|
||||||
|
font-size: 1em;
|
||||||
|
/* normalize cross-browser */ }
|
||||||
|
|
||||||
|
.fc th {
|
||||||
|
text-align: center; }
|
||||||
|
|
||||||
|
.fc th,
|
||||||
|
.fc td {
|
||||||
|
border-style: solid;
|
||||||
|
border-width: 1px;
|
||||||
|
padding: 0;
|
||||||
|
vertical-align: top; }
|
||||||
|
|
||||||
|
.fc td.fc-today {
|
||||||
|
border-style: double;
|
||||||
|
/* overcome neighboring borders */ }
|
||||||
|
|
||||||
|
/* Internal Nav Links
|
||||||
|
--------------------------------------------------------------------------------------------------*/
|
||||||
|
a[data-goto] {
|
||||||
|
cursor: pointer; }
|
||||||
|
|
||||||
|
a[data-goto]:hover {
|
||||||
|
text-decoration: underline; }
|
||||||
|
|
||||||
|
/* Fake Table Rows
|
||||||
|
--------------------------------------------------------------------------------------------------*/
|
||||||
|
.fc .fc-row {
|
||||||
|
/* extra precedence to overcome themes forcing a 1px border */
|
||||||
|
/* no visible border by default. but make available if need be (scrollbar width compensation) */
|
||||||
|
border-style: solid;
|
||||||
|
border-width: 0; }
|
||||||
|
|
||||||
|
.fc-row table {
|
||||||
|
/* don't put left/right border on anything within a fake row.
|
||||||
|
the outer tbody will worry about this */
|
||||||
|
border-left: 0 hidden transparent;
|
||||||
|
border-right: 0 hidden transparent;
|
||||||
|
/* no bottom borders on rows */
|
||||||
|
border-bottom: 0 hidden transparent; }
|
||||||
|
|
||||||
|
.fc-row:first-child table {
|
||||||
|
border-top: 0 hidden transparent;
|
||||||
|
/* no top border on first row */ }
|
||||||
|
|
||||||
|
/* Day Row (used within the header and the DayGrid)
|
||||||
|
--------------------------------------------------------------------------------------------------*/
|
||||||
|
.fc-row {
|
||||||
|
position: relative; }
|
||||||
|
|
||||||
|
.fc-row .fc-bg {
|
||||||
|
z-index: 1; }
|
||||||
|
|
||||||
|
/* highlighting cells & background event skeleton */
|
||||||
|
.fc-row .fc-bgevent-skeleton,
|
||||||
|
.fc-row .fc-highlight-skeleton {
|
||||||
|
bottom: 0;
|
||||||
|
/* stretch skeleton to bottom of row */ }
|
||||||
|
|
||||||
|
.fc-row .fc-bgevent-skeleton table,
|
||||||
|
.fc-row .fc-highlight-skeleton table {
|
||||||
|
height: 100%;
|
||||||
|
/* stretch skeleton to bottom of row */ }
|
||||||
|
|
||||||
|
.fc-row .fc-highlight-skeleton td,
|
||||||
|
.fc-row .fc-bgevent-skeleton td {
|
||||||
|
border-color: transparent; }
|
||||||
|
|
||||||
|
.fc-row .fc-bgevent-skeleton {
|
||||||
|
z-index: 2; }
|
||||||
|
|
||||||
|
.fc-row .fc-highlight-skeleton {
|
||||||
|
z-index: 3; }
|
||||||
|
|
||||||
|
/*
|
||||||
|
row content (which contains day/week numbers and events) as well as "mirror" (which contains
|
||||||
|
temporary rendered events).
|
||||||
|
*/
|
||||||
|
.fc-row .fc-content-skeleton {
|
||||||
|
position: relative;
|
||||||
|
z-index: 4;
|
||||||
|
padding-bottom: 2px;
|
||||||
|
/* matches the space above the events */ }
|
||||||
|
|
||||||
|
.fc-row .fc-mirror-skeleton {
|
||||||
|
z-index: 5; }
|
||||||
|
|
||||||
|
.fc .fc-row .fc-content-skeleton table,
|
||||||
|
.fc .fc-row .fc-content-skeleton td,
|
||||||
|
.fc .fc-row .fc-mirror-skeleton td {
|
||||||
|
/* see-through to the background below */
|
||||||
|
/* extra precedence to prevent theme-provided backgrounds */
|
||||||
|
background: none;
|
||||||
|
/* in case <td>s are globally styled */
|
||||||
|
border-color: transparent; }
|
||||||
|
|
||||||
|
.fc-row .fc-content-skeleton td,
|
||||||
|
.fc-row .fc-mirror-skeleton td {
|
||||||
|
/* don't put a border between events and/or the day number */
|
||||||
|
border-bottom: 0; }
|
||||||
|
|
||||||
|
.fc-row .fc-content-skeleton tbody td,
|
||||||
|
.fc-row .fc-mirror-skeleton tbody td {
|
||||||
|
/* don't put a border between event cells */
|
||||||
|
border-top: 0; }
|
||||||
|
|
||||||
|
/* Scrolling Container
|
||||||
|
--------------------------------------------------------------------------------------------------*/
|
||||||
|
.fc-scroller {
|
||||||
|
-webkit-overflow-scrolling: touch; }
|
||||||
|
|
||||||
|
/* TODO: move to timegrid/daygrid */
|
||||||
|
.fc-scroller > .fc-day-grid,
|
||||||
|
.fc-scroller > .fc-time-grid {
|
||||||
|
position: relative;
|
||||||
|
/* re-scope all positions */
|
||||||
|
width: 100%;
|
||||||
|
/* hack to force re-sizing this inner element when scrollbars appear/disappear */ }
|
||||||
|
|
||||||
|
/* Global Event Styles
|
||||||
|
--------------------------------------------------------------------------------------------------*/
|
||||||
|
.fc-event {
|
||||||
|
position: relative;
|
||||||
|
/* for resize handle and other inner positioning */
|
||||||
|
display: block;
|
||||||
|
/* make the <a> tag block */
|
||||||
|
font-size: .85em;
|
||||||
|
line-height: 1.4;
|
||||||
|
border-radius: 3px;
|
||||||
|
border: 1px solid #3788d8; }
|
||||||
|
|
||||||
|
.fc-event,
|
||||||
|
.fc-event-dot {
|
||||||
|
background-color: #3788d8;
|
||||||
|
/* default BACKGROUND color */ }
|
||||||
|
|
||||||
|
.fc-event,
|
||||||
|
.fc-event:hover {
|
||||||
|
color: #fff;
|
||||||
|
/* default TEXT color */
|
||||||
|
text-decoration: none;
|
||||||
|
/* if <a> has an href */ }
|
||||||
|
|
||||||
|
.fc-event[href],
|
||||||
|
.fc-event.fc-draggable {
|
||||||
|
cursor: pointer;
|
||||||
|
/* give events with links and draggable events a hand mouse pointer */ }
|
||||||
|
|
||||||
|
.fc-not-allowed,
|
||||||
|
.fc-not-allowed .fc-event {
|
||||||
|
/* to override an event's custom cursor */
|
||||||
|
cursor: not-allowed; }
|
||||||
|
|
||||||
|
.fc-event .fc-content {
|
||||||
|
position: relative;
|
||||||
|
z-index: 2; }
|
||||||
|
|
||||||
|
/* resizer (cursor AND touch devices) */
|
||||||
|
.fc-event .fc-resizer {
|
||||||
|
position: absolute;
|
||||||
|
z-index: 4; }
|
||||||
|
|
||||||
|
/* resizer (touch devices) */
|
||||||
|
.fc-event .fc-resizer {
|
||||||
|
display: none; }
|
||||||
|
|
||||||
|
.fc-event.fc-allow-mouse-resize .fc-resizer,
|
||||||
|
.fc-event.fc-selected .fc-resizer {
|
||||||
|
/* only show when hovering or selected (with touch) */
|
||||||
|
display: block; }
|
||||||
|
|
||||||
|
/* hit area */
|
||||||
|
.fc-event.fc-selected .fc-resizer:before {
|
||||||
|
/* 40x40 touch area */
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
z-index: 9999;
|
||||||
|
/* user of this util can scope within a lower z-index */
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
width: 40px;
|
||||||
|
height: 40px;
|
||||||
|
margin-left: -20px;
|
||||||
|
margin-top: -20px; }
|
||||||
|
|
||||||
|
/* Event Selection (only for touch devices)
|
||||||
|
--------------------------------------------------------------------------------------------------*/
|
||||||
|
.fc-event.fc-selected {
|
||||||
|
z-index: 9999 !important;
|
||||||
|
/* overcomes inline z-index */
|
||||||
|
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); }
|
||||||
|
|
||||||
|
.fc-event.fc-selected:after {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
z-index: 1;
|
||||||
|
/* same z-index as fc-bg, behind text */
|
||||||
|
/* overcome the borders */
|
||||||
|
top: -1px;
|
||||||
|
right: -1px;
|
||||||
|
bottom: -1px;
|
||||||
|
left: -1px;
|
||||||
|
/* darkening effect */
|
||||||
|
background: #000;
|
||||||
|
opacity: .25; }
|
||||||
|
|
||||||
|
/* Event Dragging
|
||||||
|
--------------------------------------------------------------------------------------------------*/
|
||||||
|
.fc-event.fc-dragging.fc-selected {
|
||||||
|
box-shadow: 0 2px 7px rgba(0, 0, 0, 0.3); }
|
||||||
|
|
||||||
|
.fc-event.fc-dragging:not(.fc-selected) {
|
||||||
|
opacity: .75; }
|
||||||
|
|
||||||
|
/* Horizontal Events
|
||||||
|
--------------------------------------------------------------------------------------------------*/
|
||||||
|
/* bigger touch area when selected */
|
||||||
|
.fc-h-event.fc-selected:before {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
z-index: 3;
|
||||||
|
/* below resizers */
|
||||||
|
top: -10px;
|
||||||
|
bottom: -10px;
|
||||||
|
left: 0;
|
||||||
|
right: 0; }
|
||||||
|
|
||||||
|
/* events that are continuing to/from another week. kill rounded corners and butt up against edge */
|
||||||
|
.fc-ltr .fc-h-event.fc-not-start,
|
||||||
|
.fc-rtl .fc-h-event.fc-not-end {
|
||||||
|
margin-left: 0;
|
||||||
|
border-left-width: 0;
|
||||||
|
padding-left: 1px;
|
||||||
|
/* replace the border with padding */
|
||||||
|
border-top-left-radius: 0;
|
||||||
|
border-bottom-left-radius: 0; }
|
||||||
|
|
||||||
|
.fc-ltr .fc-h-event.fc-not-end,
|
||||||
|
.fc-rtl .fc-h-event.fc-not-start {
|
||||||
|
margin-right: 0;
|
||||||
|
border-right-width: 0;
|
||||||
|
padding-right: 1px;
|
||||||
|
/* replace the border with padding */
|
||||||
|
border-top-right-radius: 0;
|
||||||
|
border-bottom-right-radius: 0; }
|
||||||
|
|
||||||
|
/* resizer (cursor AND touch devices) */
|
||||||
|
/* left resizer */
|
||||||
|
.fc-ltr .fc-h-event .fc-start-resizer,
|
||||||
|
.fc-rtl .fc-h-event .fc-end-resizer {
|
||||||
|
cursor: w-resize;
|
||||||
|
left: -1px;
|
||||||
|
/* overcome border */ }
|
||||||
|
|
||||||
|
/* right resizer */
|
||||||
|
.fc-ltr .fc-h-event .fc-end-resizer,
|
||||||
|
.fc-rtl .fc-h-event .fc-start-resizer {
|
||||||
|
cursor: e-resize;
|
||||||
|
right: -1px;
|
||||||
|
/* overcome border */ }
|
||||||
|
|
||||||
|
/* resizer (mouse devices) */
|
||||||
|
.fc-h-event.fc-allow-mouse-resize .fc-resizer {
|
||||||
|
width: 7px;
|
||||||
|
top: -1px;
|
||||||
|
/* overcome top border */
|
||||||
|
bottom: -1px;
|
||||||
|
/* overcome bottom border */ }
|
||||||
|
|
||||||
|
/* resizer (touch devices) */
|
||||||
|
.fc-h-event.fc-selected .fc-resizer {
|
||||||
|
/* 8x8 little dot */
|
||||||
|
border-radius: 4px;
|
||||||
|
border-width: 1px;
|
||||||
|
width: 6px;
|
||||||
|
height: 6px;
|
||||||
|
border-style: solid;
|
||||||
|
border-color: inherit;
|
||||||
|
background: #fff;
|
||||||
|
/* vertically center */
|
||||||
|
top: 50%;
|
||||||
|
margin-top: -4px; }
|
||||||
|
|
||||||
|
/* left resizer */
|
||||||
|
.fc-ltr .fc-h-event.fc-selected .fc-start-resizer,
|
||||||
|
.fc-rtl .fc-h-event.fc-selected .fc-end-resizer {
|
||||||
|
margin-left: -4px;
|
||||||
|
/* centers the 8x8 dot on the left edge */ }
|
||||||
|
|
||||||
|
/* right resizer */
|
||||||
|
.fc-ltr .fc-h-event.fc-selected .fc-end-resizer,
|
||||||
|
.fc-rtl .fc-h-event.fc-selected .fc-start-resizer {
|
||||||
|
margin-right: -4px;
|
||||||
|
/* centers the 8x8 dot on the right edge */ }
|
||||||
|
|
||||||
|
/* DayGrid events
|
||||||
|
----------------------------------------------------------------------------------------------------
|
||||||
|
We use the full "fc-day-grid-event" class instead of using descendants because the event won't
|
||||||
|
be a descendant of the grid when it is being dragged.
|
||||||
|
*/
|
||||||
|
.fc-day-grid-event {
|
||||||
|
margin: 1px 2px 0;
|
||||||
|
/* spacing between events and edges */
|
||||||
|
padding: 0 1px; }
|
||||||
|
|
||||||
|
tr:first-child > td > .fc-day-grid-event {
|
||||||
|
margin-top: 2px;
|
||||||
|
/* a little bit more space before the first event */ }
|
||||||
|
|
||||||
|
.fc-mirror-skeleton tr:first-child > td > .fc-day-grid-event {
|
||||||
|
margin-top: 0;
|
||||||
|
/* except for mirror skeleton */ }
|
||||||
|
|
||||||
|
.fc-day-grid-event .fc-content {
|
||||||
|
/* force events to be one-line tall */
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden; }
|
||||||
|
|
||||||
|
.fc-day-grid-event .fc-time {
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* resizer (cursor devices) */
|
||||||
|
/* left resizer */
|
||||||
|
.fc-ltr .fc-day-grid-event.fc-allow-mouse-resize .fc-start-resizer,
|
||||||
|
.fc-rtl .fc-day-grid-event.fc-allow-mouse-resize .fc-end-resizer {
|
||||||
|
margin-left: -2px;
|
||||||
|
/* to the day cell's edge */ }
|
||||||
|
|
||||||
|
/* right resizer */
|
||||||
|
.fc-ltr .fc-day-grid-event.fc-allow-mouse-resize .fc-end-resizer,
|
||||||
|
.fc-rtl .fc-day-grid-event.fc-allow-mouse-resize .fc-start-resizer {
|
||||||
|
margin-right: -2px;
|
||||||
|
/* to the day cell's edge */ }
|
||||||
|
|
||||||
|
/* Event Limiting
|
||||||
|
--------------------------------------------------------------------------------------------------*/
|
||||||
|
/* "more" link that represents hidden events */
|
||||||
|
a.fc-more {
|
||||||
|
margin: 1px 3px;
|
||||||
|
font-size: .85em;
|
||||||
|
cursor: pointer;
|
||||||
|
text-decoration: none; }
|
||||||
|
|
||||||
|
a.fc-more:hover {
|
||||||
|
text-decoration: underline; }
|
||||||
|
|
||||||
|
.fc-limited {
|
||||||
|
/* rows and cells that are hidden because of a "more" link */
|
||||||
|
display: none; }
|
||||||
|
|
||||||
|
/* popover that appears when "more" link is clicked */
|
||||||
|
.fc-day-grid .fc-row {
|
||||||
|
z-index: 1;
|
||||||
|
/* make the "more" popover one higher than this */ }
|
||||||
|
|
||||||
|
.fc-more-popover {
|
||||||
|
z-index: 2;
|
||||||
|
width: 220px; }
|
||||||
|
|
||||||
|
.fc-more-popover .fc-event-container {
|
||||||
|
padding: 10px; }
|
||||||
|
|
||||||
|
/* Now Indicator
|
||||||
|
--------------------------------------------------------------------------------------------------*/
|
||||||
|
.fc-now-indicator {
|
||||||
|
position: absolute;
|
||||||
|
border: 0 solid red; }
|
||||||
|
|
||||||
|
/* Utilities
|
||||||
|
--------------------------------------------------------------------------------------------------*/
|
||||||
|
.fc-unselectable {
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-khtml-user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
|
user-select: none;
|
||||||
|
-webkit-touch-callout: none;
|
||||||
|
-webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
|
||||||
|
|
||||||
|
/*
|
||||||
|
TODO: more distinction between this file and common.css
|
||||||
|
*/
|
||||||
|
/* Colors
|
||||||
|
--------------------------------------------------------------------------------------------------*/
|
||||||
|
.fc-unthemed th,
|
||||||
|
.fc-unthemed td,
|
||||||
|
.fc-unthemed thead,
|
||||||
|
.fc-unthemed tbody,
|
||||||
|
.fc-unthemed .fc-divider,
|
||||||
|
.fc-unthemed .fc-row,
|
||||||
|
.fc-unthemed .fc-content,
|
||||||
|
.fc-unthemed .fc-popover,
|
||||||
|
.fc-unthemed .fc-list-view,
|
||||||
|
.fc-unthemed .fc-list-heading td {
|
||||||
|
border-color: #ddd; }
|
||||||
|
|
||||||
|
.fc-unthemed .fc-popover {
|
||||||
|
background-color: #fff; }
|
||||||
|
|
||||||
|
.fc-unthemed .fc-divider,
|
||||||
|
.fc-unthemed .fc-popover .fc-header,
|
||||||
|
.fc-unthemed .fc-list-heading td {
|
||||||
|
background: #eee; }
|
||||||
|
|
||||||
|
.fc-unthemed td.fc-today {
|
||||||
|
background: #fcf8e3; }
|
||||||
|
|
||||||
|
.fc-unthemed .fc-disabled-day {
|
||||||
|
background: #d7d7d7;
|
||||||
|
opacity: .3; }
|
||||||
|
|
||||||
|
/* Icons
|
||||||
|
--------------------------------------------------------------------------------------------------
|
||||||
|
from https://feathericons.com/ and built with IcoMoon
|
||||||
|
*/
|
||||||
|
@font-face {
|
||||||
|
font-family: 'fcicons';
|
||||||
|
src: url("data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg8SBfAAAAC8AAAAYGNtYXAXVtKNAAABHAAAAFRnYXNwAAAAEAAAAXAAAAAIZ2x5ZgYydxIAAAF4AAAFNGhlYWQUJ7cIAAAGrAAAADZoaGVhB20DzAAABuQAAAAkaG10eCIABhQAAAcIAAAALGxvY2ED4AU6AAAHNAAAABhtYXhwAA8AjAAAB0wAAAAgbmFtZXsr690AAAdsAAABhnBvc3QAAwAAAAAI9AAAACAAAwPAAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADpBgPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAOAAAAAoACAACAAIAAQAg6Qb//f//AAAAAAAg6QD//f//AAH/4xcEAAMAAQAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAWIAjQKeAskAEwAAJSc3NjQnJiIHAQYUFwEWMjc2NCcCnuLiDQ0MJAz/AA0NAQAMJAwNDcni4gwjDQwM/wANIwz/AA0NDCMNAAAAAQFiAI0CngLJABMAACUBNjQnASYiBwYUHwEHBhQXFjI3AZ4BAA0N/wAMJAwNDeLiDQ0MJAyNAQAMIw0BAAwMDSMM4uINIwwNDQAAAAIA4gC3Ax4CngATACcAACUnNzY0JyYiDwEGFB8BFjI3NjQnISc3NjQnJiIPAQYUHwEWMjc2NCcB87e3DQ0MIw3VDQ3VDSMMDQ0BK7e3DQ0MJAzVDQ3VDCQMDQ3zuLcMJAwNDdUNIwzWDAwNIwy4twwkDA0N1Q0jDNYMDA0jDAAAAgDiALcDHgKeABMAJwAAJTc2NC8BJiIHBhQfAQcGFBcWMjchNzY0LwEmIgcGFB8BBwYUFxYyNwJJ1Q0N1Q0jDA0Nt7cNDQwjDf7V1Q0N1QwkDA0Nt7cNDQwkDLfWDCMN1Q0NDCQMt7gMIw0MDNYMIw3VDQ0MJAy3uAwjDQwMAAADAFUAAAOrA1UAMwBoAHcAABMiBgcOAQcOAQcOARURFBYXHgEXHgEXHgEzITI2Nz4BNz4BNz4BNRE0JicuAScuAScuASMFITIWFx4BFx4BFx4BFREUBgcOAQcOAQcOASMhIiYnLgEnLgEnLgE1ETQ2Nz4BNz4BNz4BMxMhMjY1NCYjISIGFRQWM9UNGAwLFQkJDgUFBQUFBQ4JCRULDBgNAlYNGAwLFQkJDgUFBQUFBQ4JCRULDBgN/aoCVgQIBAQHAwMFAQIBAQIBBQMDBwQECAT9qgQIBAQHAwMFAQIBAQIBBQMDBwQECASAAVYRGRkR/qoRGRkRA1UFBAUOCQkVDAsZDf2rDRkLDBUJCA4FBQUFBQUOCQgVDAsZDQJVDRkLDBUJCQ4FBAVVAgECBQMCBwQECAX9qwQJAwQHAwMFAQICAgIBBQMDBwQDCQQCVQUIBAQHAgMFAgEC/oAZEhEZGRESGQAAAAADAFUAAAOrA1UAMwBoAIkAABMiBgcOAQcOAQcOARURFBYXHgEXHgEXHgEzITI2Nz4BNz4BNz4BNRE0JicuAScuAScuASMFITIWFx4BFx4BFx4BFREUBgcOAQcOAQcOASMhIiYnLgEnLgEnLgE1ETQ2Nz4BNz4BNz4BMxMzFRQWMzI2PQEzMjY1NCYrATU0JiMiBh0BIyIGFRQWM9UNGAwLFQkJDgUFBQUFBQ4JCRULDBgNAlYNGAwLFQkJDgUFBQUFBQ4JCRULDBgN/aoCVgQIBAQHAwMFAQIBAQIBBQMDBwQECAT9qgQIBAQHAwMFAQIBAQIBBQMDBwQECASAgBkSEhmAERkZEYAZEhIZgBEZGREDVQUEBQ4JCRUMCxkN/asNGQsMFQkIDgUFBQUFBQ4JCBUMCxkNAlUNGQsMFQkJDgUEBVUCAQIFAwIHBAQIBf2rBAkDBAcDAwUBAgICAgEFAwMHBAMJBAJVBQgEBAcCAwUCAQL+gIASGRkSgBkSERmAEhkZEoAZERIZAAABAOIAjQMeAskAIAAAExcHBhQXFjI/ARcWMjc2NC8BNzY0JyYiDwEnJiIHBhQX4uLiDQ0MJAzi4gwkDA0N4uINDQwkDOLiDCQMDQ0CjeLiDSMMDQ3h4Q0NDCMN4uIMIw0MDOLiDAwNIwwAAAABAAAAAQAAa5n0y18PPPUACwQAAAAAANivOVsAAAAA2K85WwAAAAADqwNVAAAACAACAAAAAAAAAAEAAAPA/8AAAAQAAAAAAAOrAAEAAAAAAAAAAAAAAAAAAAALBAAAAAAAAAAAAAAAAgAAAAQAAWIEAAFiBAAA4gQAAOIEAABVBAAAVQQAAOIAAAAAAAoAFAAeAEQAagCqAOoBngJkApoAAQAAAAsAigADAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAA4ArgABAAAAAAABAAcAAAABAAAAAAACAAcAYAABAAAAAAADAAcANgABAAAAAAAEAAcAdQABAAAAAAAFAAsAFQABAAAAAAAGAAcASwABAAAAAAAKABoAigADAAEECQABAA4ABwADAAEECQACAA4AZwADAAEECQADAA4APQADAAEECQAEAA4AfAADAAEECQAFABYAIAADAAEECQAGAA4AUgADAAEECQAKADQApGZjaWNvbnMAZgBjAGkAYwBvAG4Ac1ZlcnNpb24gMS4wAFYAZQByAHMAaQBvAG4AIAAxAC4AMGZjaWNvbnMAZgBjAGkAYwBvAG4Ac2ZjaWNvbnMAZgBjAGkAYwBvAG4Ac1JlZ3VsYXIAUgBlAGcAdQBsAGEAcmZjaWNvbnMAZgBjAGkAYwBvAG4Ac0ZvbnQgZ2VuZXJhdGVkIGJ5IEljb01vb24uAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=") format("truetype");
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal; }
|
||||||
|
.fc-icon {
|
||||||
|
/* use !important to prevent issues with browser extensions that change fonts */
|
||||||
|
font-family: 'fcicons' !important;
|
||||||
|
speak: none;
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: normal;
|
||||||
|
font-variant: normal;
|
||||||
|
text-transform: none;
|
||||||
|
line-height: 1;
|
||||||
|
/* Better Font Rendering =========== */
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
-moz-osx-font-smoothing: grayscale; }
|
||||||
|
|
||||||
|
.fc-icon-chevron-left:before {
|
||||||
|
content: "\e900"; }
|
||||||
|
|
||||||
|
.fc-icon-chevron-right:before {
|
||||||
|
content: "\e901"; }
|
||||||
|
|
||||||
|
.fc-icon-chevrons-left:before {
|
||||||
|
content: "\e902"; }
|
||||||
|
|
||||||
|
.fc-icon-chevrons-right:before {
|
||||||
|
content: "\e903"; }
|
||||||
|
|
||||||
|
.fc-icon-minus-square:before {
|
||||||
|
content: "\e904"; }
|
||||||
|
|
||||||
|
.fc-icon-plus-square:before {
|
||||||
|
content: "\e905"; }
|
||||||
|
|
||||||
|
.fc-icon-x:before {
|
||||||
|
content: "\e906"; }
|
||||||
|
|
||||||
|
.fc-icon {
|
||||||
|
display: inline-block;
|
||||||
|
width: 1em;
|
||||||
|
height: 1em;
|
||||||
|
text-align: center; }
|
||||||
|
|
||||||
|
/* Buttons
|
||||||
|
--------------------------------------------------------------------------------------------------
|
||||||
|
Lots taken from Flatly (MIT): https://bootswatch.com/4/flatly/bootstrap.css
|
||||||
|
*/
|
||||||
|
/* reset */
|
||||||
|
.fc-button {
|
||||||
|
border-radius: 0;
|
||||||
|
overflow: visible;
|
||||||
|
text-transform: none;
|
||||||
|
margin: 0;
|
||||||
|
font-family: inherit;
|
||||||
|
font-size: inherit;
|
||||||
|
line-height: inherit; }
|
||||||
|
|
||||||
|
.fc-button:focus {
|
||||||
|
outline: 1px dotted;
|
||||||
|
outline: 5px auto -webkit-focus-ring-color; }
|
||||||
|
|
||||||
|
.fc-button {
|
||||||
|
-webkit-appearance: button; }
|
||||||
|
|
||||||
|
.fc-button:not(:disabled) {
|
||||||
|
cursor: pointer; }
|
||||||
|
|
||||||
|
.fc-button::-moz-focus-inner {
|
||||||
|
padding: 0;
|
||||||
|
border-style: none; }
|
||||||
|
|
||||||
|
/* theme */
|
||||||
|
.fc-button {
|
||||||
|
display: inline-block;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #212529;
|
||||||
|
text-align: center;
|
||||||
|
vertical-align: middle;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
|
user-select: none;
|
||||||
|
background-color: transparent;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
padding: 0.4em 0.65em;
|
||||||
|
font-size: 1em;
|
||||||
|
line-height: 1.5;
|
||||||
|
border-radius: 0.25em; }
|
||||||
|
|
||||||
|
.fc-button:hover {
|
||||||
|
color: #212529;
|
||||||
|
text-decoration: none; }
|
||||||
|
|
||||||
|
.fc-button:focus {
|
||||||
|
outline: 0;
|
||||||
|
-webkit-box-shadow: 0 0 0 0.2rem rgba(44, 62, 80, 0.25);
|
||||||
|
box-shadow: 0 0 0 0.2rem rgba(44, 62, 80, 0.25); }
|
||||||
|
|
||||||
|
.fc-button:disabled {
|
||||||
|
opacity: 0.65; }
|
||||||
|
|
||||||
|
/* "primary" coloring */
|
||||||
|
.fc-button-primary {
|
||||||
|
color: #fff;
|
||||||
|
background-color: #2C3E50;
|
||||||
|
border-color: #2C3E50; }
|
||||||
|
|
||||||
|
.fc-button-primary:hover {
|
||||||
|
color: #fff;
|
||||||
|
background-color: #1e2b37;
|
||||||
|
border-color: #1a252f; }
|
||||||
|
|
||||||
|
.fc-button-primary:focus {
|
||||||
|
-webkit-box-shadow: 0 0 0 0.2rem rgba(76, 91, 106, 0.5);
|
||||||
|
box-shadow: 0 0 0 0.2rem rgba(76, 91, 106, 0.5); }
|
||||||
|
|
||||||
|
.fc-button-primary:disabled {
|
||||||
|
color: #fff;
|
||||||
|
background-color: #2C3E50;
|
||||||
|
border-color: #2C3E50; }
|
||||||
|
|
||||||
|
.fc-button-primary:not(:disabled):active,
|
||||||
|
.fc-button-primary:not(:disabled).fc-button-active {
|
||||||
|
color: #fff;
|
||||||
|
background-color: #1a252f;
|
||||||
|
border-color: #151e27; }
|
||||||
|
|
||||||
|
.fc-button-primary:not(:disabled):active:focus,
|
||||||
|
.fc-button-primary:not(:disabled).fc-button-active:focus {
|
||||||
|
-webkit-box-shadow: 0 0 0 0.2rem rgba(76, 91, 106, 0.5);
|
||||||
|
box-shadow: 0 0 0 0.2rem rgba(76, 91, 106, 0.5); }
|
||||||
|
|
||||||
|
/* icons within buttons */
|
||||||
|
.fc-button .fc-icon {
|
||||||
|
vertical-align: middle;
|
||||||
|
font-size: 1.5em; }
|
||||||
|
|
||||||
|
/* Buttons Groups
|
||||||
|
--------------------------------------------------------------------------------------------------*/
|
||||||
|
.fc-button-group {
|
||||||
|
position: relative;
|
||||||
|
display: -webkit-inline-box;
|
||||||
|
display: -ms-inline-flexbox;
|
||||||
|
display: inline-flex;
|
||||||
|
vertical-align: middle; }
|
||||||
|
|
||||||
|
.fc-button-group > .fc-button {
|
||||||
|
position: relative;
|
||||||
|
-webkit-box-flex: 1;
|
||||||
|
-ms-flex: 1 1 auto;
|
||||||
|
flex: 1 1 auto; }
|
||||||
|
|
||||||
|
.fc-button-group > .fc-button:hover {
|
||||||
|
z-index: 1; }
|
||||||
|
|
||||||
|
.fc-button-group > .fc-button:focus,
|
||||||
|
.fc-button-group > .fc-button:active,
|
||||||
|
.fc-button-group > .fc-button.fc-button-active {
|
||||||
|
z-index: 1; }
|
||||||
|
|
||||||
|
.fc-button-group > .fc-button:not(:first-child) {
|
||||||
|
margin-left: -1px; }
|
||||||
|
|
||||||
|
.fc-button-group > .fc-button:not(:last-child) {
|
||||||
|
border-top-right-radius: 0;
|
||||||
|
border-bottom-right-radius: 0; }
|
||||||
|
|
||||||
|
.fc-button-group > .fc-button:not(:first-child) {
|
||||||
|
border-top-left-radius: 0;
|
||||||
|
border-bottom-left-radius: 0; }
|
||||||
|
|
||||||
|
/* Popover
|
||||||
|
--------------------------------------------------------------------------------------------------*/
|
||||||
|
.fc-unthemed .fc-popover {
|
||||||
|
border-width: 1px;
|
||||||
|
border-style: solid; }
|
||||||
|
|
||||||
|
/* List View
|
||||||
|
--------------------------------------------------------------------------------------------------*/
|
||||||
|
.fc-unthemed .fc-list-item:hover td {
|
||||||
|
background-color: #f5f5f5; }
|
||||||
|
|
||||||
|
/* Toolbar
|
||||||
|
--------------------------------------------------------------------------------------------------*/
|
||||||
|
.fc-toolbar {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center; }
|
||||||
|
|
||||||
|
.fc-toolbar.fc-header-toolbar {
|
||||||
|
margin-bottom: 1.5em; }
|
||||||
|
|
||||||
|
.fc-toolbar.fc-footer-toolbar {
|
||||||
|
margin-top: 1.5em; }
|
||||||
|
|
||||||
|
/* inner content */
|
||||||
|
.fc-toolbar > * > :not(:first-child) {
|
||||||
|
margin-left: .75em; }
|
||||||
|
|
||||||
|
.fc-toolbar h2 {
|
||||||
|
font-size: 1.75em;
|
||||||
|
margin: 0; }
|
||||||
|
|
||||||
|
/* View Structure
|
||||||
|
--------------------------------------------------------------------------------------------------*/
|
||||||
|
.fc-view-container {
|
||||||
|
position: relative; }
|
||||||
|
|
||||||
|
/* undo twitter bootstrap's box-sizing rules. normalizes positioning techniques */
|
||||||
|
/* don't do this for the toolbar because we'll want bootstrap to style those buttons as some pt */
|
||||||
|
.fc-view-container *,
|
||||||
|
.fc-view-container *:before,
|
||||||
|
.fc-view-container *:after {
|
||||||
|
-webkit-box-sizing: content-box;
|
||||||
|
-moz-box-sizing: content-box;
|
||||||
|
box-sizing: content-box; }
|
||||||
|
|
||||||
|
.fc-view,
|
||||||
|
.fc-view > table {
|
||||||
|
/* so dragged elements can be above the view's main element */
|
||||||
|
position: relative;
|
||||||
|
z-index: 1; }
|
||||||
|
|
||||||
|
@media print {
|
||||||
|
.fc {
|
||||||
|
max-width: 100% !important; }
|
||||||
|
|
||||||
|
/* Global Event Restyling
|
||||||
|
--------------------------------------------------------------------------------------------------*/
|
||||||
|
.fc-event {
|
||||||
|
background: #fff !important;
|
||||||
|
color: #000 !important;
|
||||||
|
page-break-inside: avoid; }
|
||||||
|
|
||||||
|
.fc-event .fc-resizer {
|
||||||
|
display: none; }
|
||||||
|
|
||||||
|
/* Table & Day-Row Restyling
|
||||||
|
--------------------------------------------------------------------------------------------------*/
|
||||||
|
.fc th,
|
||||||
|
.fc td,
|
||||||
|
.fc hr,
|
||||||
|
.fc thead,
|
||||||
|
.fc tbody,
|
||||||
|
.fc-row {
|
||||||
|
border-color: #ccc !important;
|
||||||
|
background: #fff !important; }
|
||||||
|
|
||||||
|
/* kill the overlaid, absolutely-positioned components */
|
||||||
|
/* common... */
|
||||||
|
.fc-bg,
|
||||||
|
.fc-bgevent-skeleton,
|
||||||
|
.fc-highlight-skeleton,
|
||||||
|
.fc-mirror-skeleton,
|
||||||
|
.fc-bgevent-container,
|
||||||
|
.fc-business-container,
|
||||||
|
.fc-highlight-container,
|
||||||
|
.fc-mirror-container {
|
||||||
|
display: none; }
|
||||||
|
|
||||||
|
/* don't force a min-height on rows (for DayGrid) */
|
||||||
|
.fc tbody .fc-row {
|
||||||
|
height: auto !important;
|
||||||
|
/* undo height that JS set in distributeHeight */
|
||||||
|
min-height: 0 !important;
|
||||||
|
/* undo the min-height from each view's specific stylesheet */ }
|
||||||
|
|
||||||
|
.fc tbody .fc-row .fc-content-skeleton {
|
||||||
|
position: static;
|
||||||
|
/* undo .fc-rigid */
|
||||||
|
padding-bottom: 0 !important;
|
||||||
|
/* use a more border-friendly method for this... */ }
|
||||||
|
|
||||||
|
.fc tbody .fc-row .fc-content-skeleton tbody tr:last-child td {
|
||||||
|
/* only works in newer browsers */
|
||||||
|
padding-bottom: 1em;
|
||||||
|
/* ...gives space within the skeleton. also ensures min height in a way */ }
|
||||||
|
|
||||||
|
.fc tbody .fc-row .fc-content-skeleton table {
|
||||||
|
/* provides a min-height for the row, but only effective for IE, which exaggerates this value,
|
||||||
|
making it look more like 3em. for other browers, it will already be this tall */
|
||||||
|
height: 1em; }
|
||||||
|
|
||||||
|
/* Undo month-view event limiting. Display all events and hide the "more" links
|
||||||
|
--------------------------------------------------------------------------------------------------*/
|
||||||
|
.fc-more-cell,
|
||||||
|
.fc-more {
|
||||||
|
display: none !important; }
|
||||||
|
|
||||||
|
.fc tr.fc-limited {
|
||||||
|
display: table-row !important; }
|
||||||
|
|
||||||
|
.fc td.fc-limited {
|
||||||
|
display: table-cell !important; }
|
||||||
|
|
||||||
|
.fc-popover {
|
||||||
|
display: none;
|
||||||
|
/* never display the "more.." popover in print mode */ }
|
||||||
|
|
||||||
|
/* TimeGrid Restyling
|
||||||
|
--------------------------------------------------------------------------------------------------*/
|
||||||
|
/* undo the min-height 100% trick used to fill the container's height */
|
||||||
|
.fc-time-grid {
|
||||||
|
min-height: 0 !important; }
|
||||||
|
|
||||||
|
/* don't display the side axis at all ("all-day" and time cells) */
|
||||||
|
.fc-timeGrid-view .fc-axis {
|
||||||
|
display: none; }
|
||||||
|
|
||||||
|
/* don't display the horizontal lines */
|
||||||
|
.fc-slats,
|
||||||
|
.fc-time-grid hr {
|
||||||
|
/* this hr is used when height is underused and needs to be filled */
|
||||||
|
display: none !important;
|
||||||
|
/* important overrides inline declaration */ }
|
||||||
|
|
||||||
|
/* let the container that holds the events be naturally positioned and create real height */
|
||||||
|
.fc-time-grid .fc-content-skeleton {
|
||||||
|
position: static; }
|
||||||
|
|
||||||
|
/* in case there are no events, we still want some height */
|
||||||
|
.fc-time-grid .fc-content-skeleton table {
|
||||||
|
height: 4em; }
|
||||||
|
|
||||||
|
/* kill the horizontal spacing made by the event container. event margins will be done below */
|
||||||
|
.fc-time-grid .fc-event-container {
|
||||||
|
margin: 0 !important; }
|
||||||
|
|
||||||
|
/* TimeGrid *Event* Restyling
|
||||||
|
--------------------------------------------------------------------------------------------------*/
|
||||||
|
/* naturally position events, vertically stacking them */
|
||||||
|
.fc-time-grid .fc-event {
|
||||||
|
position: static !important;
|
||||||
|
margin: 3px 2px !important; }
|
||||||
|
|
||||||
|
/* for events that continue to a future day, give the bottom border back */
|
||||||
|
.fc-time-grid .fc-event.fc-not-end {
|
||||||
|
border-bottom-width: 1px !important; }
|
||||||
|
|
||||||
|
/* indicate the event continues via "..." text */
|
||||||
|
.fc-time-grid .fc-event.fc-not-end:after {
|
||||||
|
content: "..."; }
|
||||||
|
|
||||||
|
/* for events that are continuations from previous days, give the top border back */
|
||||||
|
.fc-time-grid .fc-event.fc-not-start {
|
||||||
|
border-top-width: 1px !important; }
|
||||||
|
|
||||||
|
/* indicate the event is a continuation via "..." text */
|
||||||
|
.fc-time-grid .fc-event.fc-not-start:before {
|
||||||
|
content: "..."; }
|
||||||
|
|
||||||
|
/* time */
|
||||||
|
/* undo a previous declaration and let the time text span to a second line */
|
||||||
|
.fc-time-grid .fc-event .fc-time {
|
||||||
|
white-space: normal !important; }
|
||||||
|
|
||||||
|
/* hide the the time that is normally displayed... */
|
||||||
|
.fc-time-grid .fc-event .fc-time span {
|
||||||
|
display: none; }
|
||||||
|
|
||||||
|
/* ...replace it with a more verbose version (includes AM/PM) stored in an html attribute */
|
||||||
|
.fc-time-grid .fc-event .fc-time:after {
|
||||||
|
content: attr(data-full); }
|
||||||
|
|
||||||
|
/* Vertical Scroller & Containers
|
||||||
|
--------------------------------------------------------------------------------------------------*/
|
||||||
|
/* kill the scrollbars and allow natural height */
|
||||||
|
.fc-scroller,
|
||||||
|
.fc-day-grid-container,
|
||||||
|
.fc-time-grid-container {
|
||||||
|
/* */
|
||||||
|
overflow: visible !important;
|
||||||
|
height: auto !important; }
|
||||||
|
|
||||||
|
/* kill the horizontal border/padding used to compensate for scrollbars */
|
||||||
|
.fc-row {
|
||||||
|
border: 0 !important;
|
||||||
|
margin: 0 !important; }
|
||||||
|
|
||||||
|
/* Button Controls
|
||||||
|
--------------------------------------------------------------------------------------------------*/
|
||||||
|
.fc-button-group,
|
||||||
|
.fc button {
|
||||||
|
display: none;
|
||||||
|
/* don't display any button-related controls */ } }
|
||||||
8802
vendor/fullcalendar/core/main.js
vendored
Normal file
8802
vendor/fullcalendar/core/main.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
5
vendor/fullcalendar/core/main.min.css
vendored
Normal file
5
vendor/fullcalendar/core/main.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
9
vendor/fullcalendar/core/main.min.js
vendored
Normal file
9
vendor/fullcalendar/core/main.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
69
vendor/fullcalendar/daygrid/main.css
vendored
Normal file
69
vendor/fullcalendar/daygrid/main.css
vendored
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
/*!
|
||||||
|
FullCalendar Day Grid Plugin v4.1.0
|
||||||
|
Docs & License: https://fullcalendar.io/
|
||||||
|
(c) 2019 Adam Shaw
|
||||||
|
*/
|
||||||
|
/* DayGridView
|
||||||
|
--------------------------------------------------------------------------------------------------*/
|
||||||
|
/* day row structure */
|
||||||
|
.fc-dayGridWeek-view .fc-content-skeleton,
|
||||||
|
.fc-dayGridDay-view .fc-content-skeleton {
|
||||||
|
/* there may be week numbers in these views, so no padding-top */
|
||||||
|
padding-bottom: 1em;
|
||||||
|
/* ensure a space at bottom of cell for user selecting/clicking */ }
|
||||||
|
|
||||||
|
.fc-dayGrid-view .fc-body .fc-row {
|
||||||
|
min-height: 4em;
|
||||||
|
/* ensure that all rows are at least this tall */ }
|
||||||
|
|
||||||
|
/* a "rigid" row will take up a constant amount of height because content-skeleton is absolute */
|
||||||
|
.fc-row.fc-rigid {
|
||||||
|
overflow: hidden; }
|
||||||
|
|
||||||
|
.fc-row.fc-rigid .fc-content-skeleton {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0; }
|
||||||
|
|
||||||
|
/* week and day number styling */
|
||||||
|
.fc-day-top.fc-other-month {
|
||||||
|
opacity: 0.3; }
|
||||||
|
|
||||||
|
.fc-dayGrid-view .fc-week-number,
|
||||||
|
.fc-dayGrid-view .fc-day-number {
|
||||||
|
padding: 2px; }
|
||||||
|
|
||||||
|
.fc-dayGrid-view th.fc-week-number,
|
||||||
|
.fc-dayGrid-view th.fc-day-number {
|
||||||
|
padding: 0 2px;
|
||||||
|
/* column headers can't have as much v space */ }
|
||||||
|
|
||||||
|
.fc-ltr .fc-dayGrid-view .fc-day-top .fc-day-number {
|
||||||
|
float: right; }
|
||||||
|
|
||||||
|
.fc-rtl .fc-dayGrid-view .fc-day-top .fc-day-number {
|
||||||
|
float: left; }
|
||||||
|
|
||||||
|
.fc-ltr .fc-dayGrid-view .fc-day-top .fc-week-number {
|
||||||
|
float: left;
|
||||||
|
border-radius: 0 0 3px 0; }
|
||||||
|
|
||||||
|
.fc-rtl .fc-dayGrid-view .fc-day-top .fc-week-number {
|
||||||
|
float: right;
|
||||||
|
border-radius: 0 0 0 3px; }
|
||||||
|
|
||||||
|
.fc-dayGrid-view .fc-day-top .fc-week-number {
|
||||||
|
min-width: 1.5em;
|
||||||
|
text-align: center;
|
||||||
|
background-color: #f2f2f2;
|
||||||
|
color: #808080; }
|
||||||
|
|
||||||
|
/* when week/day number have own column */
|
||||||
|
.fc-dayGrid-view td.fc-week-number {
|
||||||
|
text-align: center; }
|
||||||
|
|
||||||
|
.fc-dayGrid-view td.fc-week-number > * {
|
||||||
|
/* work around the way we do column resizing and ensure a minimum width */
|
||||||
|
display: inline-block;
|
||||||
|
min-width: 1.25em; }
|
||||||
1639
vendor/fullcalendar/daygrid/main.js
vendored
Normal file
1639
vendor/fullcalendar/daygrid/main.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
5
vendor/fullcalendar/daygrid/main.min.css
vendored
Normal file
5
vendor/fullcalendar/daygrid/main.min.css
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
/*!
|
||||||
|
FullCalendar Day Grid Plugin v4.1.0
|
||||||
|
Docs & License: https://fullcalendar.io/
|
||||||
|
(c) 2019 Adam Shaw
|
||||||
|
*/.fc-dayGridDay-view .fc-content-skeleton,.fc-dayGridWeek-view .fc-content-skeleton{padding-bottom:1em}.fc-dayGrid-view .fc-body .fc-row{min-height:4em}.fc-row.fc-rigid{overflow:hidden}.fc-row.fc-rigid .fc-content-skeleton{position:absolute;top:0;left:0;right:0}.fc-day-top.fc-other-month{opacity:.3}.fc-dayGrid-view .fc-day-number,.fc-dayGrid-view .fc-week-number{padding:2px}.fc-dayGrid-view th.fc-day-number,.fc-dayGrid-view th.fc-week-number{padding:0 2px}.fc-ltr .fc-dayGrid-view .fc-day-top .fc-day-number{float:right}.fc-rtl .fc-dayGrid-view .fc-day-top .fc-day-number{float:left}.fc-ltr .fc-dayGrid-view .fc-day-top .fc-week-number{float:left;border-radius:0 0 3px}.fc-rtl .fc-dayGrid-view .fc-day-top .fc-week-number{float:right;border-radius:0 0 0 3px}.fc-dayGrid-view .fc-day-top .fc-week-number{min-width:1.5em;text-align:center;background-color:#f2f2f2;color:grey}.fc-dayGrid-view td.fc-week-number{text-align:center}.fc-dayGrid-view td.fc-week-number>*{display:inline-block;min-width:1.25em}
|
||||||
20
vendor/fullcalendar/daygrid/main.min.js
vendored
Normal file
20
vendor/fullcalendar/daygrid/main.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
169
vendor/fullcalendar/google-calendar/main.js
vendored
Normal file
169
vendor/fullcalendar/google-calendar/main.js
vendored
Normal file
@@ -0,0 +1,169 @@
|
|||||||
|
/*!
|
||||||
|
FullCalendar Google Calendar Plugin v4.1.0
|
||||||
|
Docs & License: https://fullcalendar.io/
|
||||||
|
(c) 2019 Adam Shaw
|
||||||
|
*/
|
||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@fullcalendar/core')) :
|
||||||
|
typeof define === 'function' && define.amd ? define(['exports', '@fullcalendar/core'], factory) :
|
||||||
|
(global = global || self, factory(global.FullCalendarGoogleCalendar = {}, global.FullCalendar));
|
||||||
|
}(this, function (exports, core) { 'use strict';
|
||||||
|
|
||||||
|
/*! *****************************************************************************
|
||||||
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
||||||
|
this file except in compliance with the License. You may obtain a copy of the
|
||||||
|
License at http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
|
||||||
|
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
|
||||||
|
MERCHANTABLITY OR NON-INFRINGEMENT.
|
||||||
|
|
||||||
|
See the Apache Version 2.0 License for specific language governing permissions
|
||||||
|
and limitations under the License.
|
||||||
|
***************************************************************************** */
|
||||||
|
|
||||||
|
var __assign = function() {
|
||||||
|
__assign = Object.assign || function __assign(t) {
|
||||||
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
||||||
|
s = arguments[i];
|
||||||
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
||||||
|
}
|
||||||
|
return t;
|
||||||
|
};
|
||||||
|
return __assign.apply(this, arguments);
|
||||||
|
};
|
||||||
|
|
||||||
|
// TODO: expose somehow
|
||||||
|
var API_BASE = 'https://www.googleapis.com/calendar/v3/calendars';
|
||||||
|
var STANDARD_PROPS = {
|
||||||
|
url: String,
|
||||||
|
googleCalendarApiKey: String,
|
||||||
|
googleCalendarId: String,
|
||||||
|
data: null
|
||||||
|
};
|
||||||
|
var eventSourceDef = {
|
||||||
|
parseMeta: function (raw) {
|
||||||
|
if (typeof raw === 'string') {
|
||||||
|
raw = { url: raw };
|
||||||
|
}
|
||||||
|
if (typeof raw === 'object') {
|
||||||
|
var standardProps = core.refineProps(raw, STANDARD_PROPS);
|
||||||
|
if (!standardProps.googleCalendarId && standardProps.url) {
|
||||||
|
standardProps.googleCalendarId = parseGoogleCalendarId(standardProps.url);
|
||||||
|
}
|
||||||
|
delete standardProps.url;
|
||||||
|
if (standardProps.googleCalendarId) {
|
||||||
|
return standardProps;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
},
|
||||||
|
fetch: function (arg, onSuccess, onFailure) {
|
||||||
|
var calendar = arg.calendar;
|
||||||
|
var meta = arg.eventSource.meta;
|
||||||
|
var apiKey = meta.googleCalendarApiKey || calendar.opt('googleCalendarApiKey');
|
||||||
|
if (!apiKey) {
|
||||||
|
onFailure({
|
||||||
|
message: 'Specify a googleCalendarApiKey. See http://fullcalendar.io/docs/google_calendar/'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
var url = buildUrl(meta);
|
||||||
|
var requestParams_1 = buildRequestParams(arg.range, apiKey, meta.data, calendar.dateEnv);
|
||||||
|
core.requestJson('GET', url, requestParams_1, function (body, xhr) {
|
||||||
|
if (body.error) {
|
||||||
|
onFailure({
|
||||||
|
message: 'Google Calendar API: ' + body.error.message,
|
||||||
|
errors: body.error.errors,
|
||||||
|
xhr: xhr
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
onSuccess({
|
||||||
|
rawEvents: gcalItemsToRawEventDefs(body.items, requestParams_1.timeZone),
|
||||||
|
xhr: xhr
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, function (message, xhr) {
|
||||||
|
onFailure({ message: message, xhr: xhr });
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
function parseGoogleCalendarId(url) {
|
||||||
|
var match;
|
||||||
|
// detect if the ID was specified as a single string.
|
||||||
|
// will match calendars like "asdf1234@calendar.google.com" in addition to person email calendars.
|
||||||
|
if (/^[^\/]+@([^\/\.]+\.)*(google|googlemail|gmail)\.com$/.test(url)) {
|
||||||
|
return url;
|
||||||
|
}
|
||||||
|
else if ((match = /^https:\/\/www.googleapis.com\/calendar\/v3\/calendars\/([^\/]*)/.exec(url)) ||
|
||||||
|
(match = /^https?:\/\/www.google.com\/calendar\/feeds\/([^\/]*)/.exec(url))) {
|
||||||
|
return decodeURIComponent(match[1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function buildUrl(meta) {
|
||||||
|
return API_BASE + '/' + encodeURIComponent(meta.googleCalendarId) + '/events';
|
||||||
|
}
|
||||||
|
function buildRequestParams(range, apiKey, extraParams, dateEnv) {
|
||||||
|
var params;
|
||||||
|
var startStr;
|
||||||
|
var endStr;
|
||||||
|
if (dateEnv.canComputeOffset) {
|
||||||
|
// strings will naturally have offsets, which GCal needs
|
||||||
|
startStr = dateEnv.formatIso(range.start);
|
||||||
|
endStr = dateEnv.formatIso(range.end);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// when timezone isn't known, we don't know what the UTC offset should be, so ask for +/- 1 day
|
||||||
|
// from the UTC day-start to guarantee we're getting all the events
|
||||||
|
// (start/end will be UTC-coerced dates, so toISOString is okay)
|
||||||
|
startStr = core.addDays(range.start, -1).toISOString();
|
||||||
|
endStr = core.addDays(range.end, 1).toISOString();
|
||||||
|
}
|
||||||
|
params = __assign({}, (extraParams || {}), { key: apiKey, timeMin: startStr, timeMax: endStr, singleEvents: true, maxResults: 9999 });
|
||||||
|
if (dateEnv.timeZone !== 'local') {
|
||||||
|
params.timeZone = dateEnv.timeZone;
|
||||||
|
}
|
||||||
|
return params;
|
||||||
|
}
|
||||||
|
function gcalItemsToRawEventDefs(items, gcalTimezone) {
|
||||||
|
return items.map(function (item) {
|
||||||
|
return gcalItemToRawEventDef(item, gcalTimezone);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function gcalItemToRawEventDef(item, gcalTimezone) {
|
||||||
|
var url = item.htmlLink || null;
|
||||||
|
// make the URLs for each event show times in the correct timezone
|
||||||
|
if (url && gcalTimezone) {
|
||||||
|
url = injectQsComponent(url, 'ctz=' + gcalTimezone);
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
id: item.id,
|
||||||
|
title: item.summary,
|
||||||
|
start: item.start.dateTime || item.start.date,
|
||||||
|
end: item.end.dateTime || item.end.date,
|
||||||
|
url: url,
|
||||||
|
location: item.location,
|
||||||
|
description: item.description
|
||||||
|
};
|
||||||
|
}
|
||||||
|
// Injects a string like "arg=value" into the querystring of a URL
|
||||||
|
// TODO: move to a general util file?
|
||||||
|
function injectQsComponent(url, component) {
|
||||||
|
// inject it after the querystring but before the fragment
|
||||||
|
return url.replace(/(\?.*?)?(#|$)/, function (whole, qs, hash) {
|
||||||
|
return (qs ? qs + '&' : '?') + component + hash;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
var main = core.createPlugin({
|
||||||
|
eventSourceDefs: [eventSourceDef]
|
||||||
|
});
|
||||||
|
|
||||||
|
exports.default = main;
|
||||||
|
|
||||||
|
Object.defineProperty(exports, '__esModule', { value: true });
|
||||||
|
|
||||||
|
}));
|
||||||
20
vendor/fullcalendar/google-calendar/main.min.js
vendored
Normal file
20
vendor/fullcalendar/google-calendar/main.min.js
vendored
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
/*!
|
||||||
|
FullCalendar Google Calendar Plugin v4.1.0
|
||||||
|
Docs & License: https://fullcalendar.io/
|
||||||
|
(c) 2019 Adam Shaw
|
||||||
|
*/
|
||||||
|
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("@fullcalendar/core")):"function"==typeof define&&define.amd?define(["exports","@fullcalendar/core"],r):(e=e||self,r(e.FullCalendarGoogleCalendar={},e.FullCalendar))}(this,function(e,r){"use strict";function t(e){var r;return/^[^\/]+@([^\/\.]+\.)*(google|googlemail|gmail)\.com$/.test(e)?e:(r=/^https:\/\/www.googleapis.com\/calendar\/v3\/calendars\/([^\/]*)/.exec(e))||(r=/^https?:\/\/www.google.com\/calendar\/feeds\/([^\/]*)/.exec(e))?decodeURIComponent(r[1]):void 0}function n(e){return s+"/"+encodeURIComponent(e.googleCalendarId)+"/events"}function o(e,t,n,o){var a,l,i;return o.canComputeOffset?(l=o.formatIso(e.start),i=o.formatIso(e.end)):(l=r.addDays(e.start,-1).toISOString(),i=r.addDays(e.end,1).toISOString()),a=d({},n||{},{key:t,timeMin:l,timeMax:i,singleEvents:!0,maxResults:9999}),"local"!==o.timeZone&&(a.timeZone=o.timeZone),a}function a(e,r){return e.map(function(e){return l(e,r)})}function l(e,r){var t=e.htmlLink||null;return t&&r&&(t=i(t,"ctz="+r)),{id:e.id,title:e.summary,start:e.start.dateTime||e.start.date,end:e.end.dateTime||e.end.date,url:t,location:e.location,description:e.description}}function i(e,r){return e.replace(/(\?.*?)?(#|$)/,function(e,t,n){return(t?t+"&":"?")+r+n})}/*! *****************************************************************************
|
||||||
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
||||||
|
this file except in compliance with the License. You may obtain a copy of the
|
||||||
|
License at http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
|
||||||
|
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
|
||||||
|
MERCHANTABLITY OR NON-INFRINGEMENT.
|
||||||
|
|
||||||
|
See the Apache Version 2.0 License for specific language governing permissions
|
||||||
|
and limitations under the License.
|
||||||
|
***************************************************************************** */
|
||||||
|
var d=function(){return d=Object.assign||function(e){for(var r,t=1,n=arguments.length;t<n;t++){r=arguments[t];for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e},d.apply(this,arguments)},s="https://www.googleapis.com/calendar/v3/calendars",c={url:String,googleCalendarApiKey:String,googleCalendarId:String,data:null},u={parseMeta:function(e){if("string"==typeof e&&(e={url:e}),"object"==typeof e){var n=r.refineProps(e,c);if(!n.googleCalendarId&&n.url&&(n.googleCalendarId=t(n.url)),delete n.url,n.googleCalendarId)return n}return null},fetch:function(e,t,l){var i=e.calendar,d=e.eventSource.meta,s=d.googleCalendarApiKey||i.opt("googleCalendarApiKey");if(s){var c=n(d),u=o(e.range,s,d.data,i.dateEnv);r.requestJson("GET",c,u,function(e,r){e.error?l({message:"Google Calendar API: "+e.error.message,errors:e.error.errors,xhr:r}):t({rawEvents:a(e.items,u.timeZone),xhr:r})},function(e,r){l({message:e,xhr:r})})}else l({message:"Specify a googleCalendarApiKey. See http://fullcalendar.io/docs/google_calendar/"})}},g=r.createPlugin({eventSourceDefs:[u]});e.default=g,Object.defineProperty(e,"__esModule",{value:!0})});
|
||||||
2156
vendor/fullcalendar/interaction/main.js
vendored
Normal file
2156
vendor/fullcalendar/interaction/main.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
21
vendor/fullcalendar/interaction/main.min.js
vendored
Normal file
21
vendor/fullcalendar/interaction/main.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
101
vendor/fullcalendar/list/main.css
vendored
Normal file
101
vendor/fullcalendar/list/main.css
vendored
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
/*!
|
||||||
|
FullCalendar List View Plugin v4.1.0
|
||||||
|
Docs & License: https://fullcalendar.io/
|
||||||
|
(c) 2019 Adam Shaw
|
||||||
|
*/
|
||||||
|
/* List View
|
||||||
|
--------------------------------------------------------------------------------------------------*/
|
||||||
|
/* possibly reusable */
|
||||||
|
.fc-event-dot {
|
||||||
|
display: inline-block;
|
||||||
|
width: 10px;
|
||||||
|
height: 10px;
|
||||||
|
border-radius: 5px; }
|
||||||
|
|
||||||
|
/* view wrapper */
|
||||||
|
.fc-rtl .fc-list-view {
|
||||||
|
direction: rtl;
|
||||||
|
/* unlike core views, leverage browser RTL */ }
|
||||||
|
|
||||||
|
.fc-list-view {
|
||||||
|
border-width: 1px;
|
||||||
|
border-style: solid; }
|
||||||
|
|
||||||
|
/* table resets */
|
||||||
|
.fc .fc-list-table {
|
||||||
|
table-layout: auto;
|
||||||
|
/* for shrinkwrapping cell content */ }
|
||||||
|
|
||||||
|
.fc-list-table td {
|
||||||
|
border-width: 1px 0 0;
|
||||||
|
padding: 8px 14px; }
|
||||||
|
|
||||||
|
.fc-list-table tr:first-child td {
|
||||||
|
border-top-width: 0; }
|
||||||
|
|
||||||
|
/* day headings with the list */
|
||||||
|
.fc-list-heading {
|
||||||
|
border-bottom-width: 1px; }
|
||||||
|
|
||||||
|
.fc-list-heading td {
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
.fc-ltr .fc-list-heading-main {
|
||||||
|
float: left; }
|
||||||
|
|
||||||
|
.fc-ltr .fc-list-heading-alt {
|
||||||
|
float: right; }
|
||||||
|
|
||||||
|
.fc-rtl .fc-list-heading-main {
|
||||||
|
float: right; }
|
||||||
|
|
||||||
|
.fc-rtl .fc-list-heading-alt {
|
||||||
|
float: left; }
|
||||||
|
|
||||||
|
/* event list items */
|
||||||
|
.fc-list-item.fc-has-url {
|
||||||
|
cursor: pointer;
|
||||||
|
/* whole row will be clickable */ }
|
||||||
|
|
||||||
|
.fc-list-item-marker,
|
||||||
|
.fc-list-item-time {
|
||||||
|
white-space: nowrap;
|
||||||
|
width: 1px; }
|
||||||
|
|
||||||
|
/* make the dot closer to the event title */
|
||||||
|
.fc-ltr .fc-list-item-marker {
|
||||||
|
padding-right: 0; }
|
||||||
|
|
||||||
|
.fc-rtl .fc-list-item-marker {
|
||||||
|
padding-left: 0; }
|
||||||
|
|
||||||
|
.fc-list-item-title a {
|
||||||
|
/* every event title cell has an <a> tag */
|
||||||
|
text-decoration: none;
|
||||||
|
color: inherit; }
|
||||||
|
|
||||||
|
.fc-list-item-title a[href]:hover {
|
||||||
|
/* hover effect only on titles with hrefs */
|
||||||
|
text-decoration: underline; }
|
||||||
|
|
||||||
|
/* message when no events */
|
||||||
|
.fc-list-empty-wrap2 {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0; }
|
||||||
|
|
||||||
|
.fc-list-empty-wrap1 {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
display: table; }
|
||||||
|
|
||||||
|
.fc-list-empty {
|
||||||
|
display: table-cell;
|
||||||
|
vertical-align: middle;
|
||||||
|
text-align: center; }
|
||||||
|
|
||||||
|
.fc-unthemed .fc-list-empty {
|
||||||
|
/* theme will provide own background */
|
||||||
|
background-color: #eee; }
|
||||||
341
vendor/fullcalendar/list/main.js
vendored
Normal file
341
vendor/fullcalendar/list/main.js
vendored
Normal file
@@ -0,0 +1,341 @@
|
|||||||
|
/*!
|
||||||
|
FullCalendar List View Plugin v4.1.0
|
||||||
|
Docs & License: https://fullcalendar.io/
|
||||||
|
(c) 2019 Adam Shaw
|
||||||
|
*/
|
||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@fullcalendar/core')) :
|
||||||
|
typeof define === 'function' && define.amd ? define(['exports', '@fullcalendar/core'], factory) :
|
||||||
|
(global = global || self, factory(global.FullCalendarList = {}, global.FullCalendar));
|
||||||
|
}(this, function (exports, core) { 'use strict';
|
||||||
|
|
||||||
|
/*! *****************************************************************************
|
||||||
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
||||||
|
this file except in compliance with the License. You may obtain a copy of the
|
||||||
|
License at http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
|
||||||
|
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
|
||||||
|
MERCHANTABLITY OR NON-INFRINGEMENT.
|
||||||
|
|
||||||
|
See the Apache Version 2.0 License for specific language governing permissions
|
||||||
|
and limitations under the License.
|
||||||
|
***************************************************************************** */
|
||||||
|
/* global Reflect, Promise */
|
||||||
|
|
||||||
|
var extendStatics = function(d, b) {
|
||||||
|
extendStatics = Object.setPrototypeOf ||
|
||||||
|
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
||||||
|
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
||||||
|
return extendStatics(d, b);
|
||||||
|
};
|
||||||
|
|
||||||
|
function __extends(d, b) {
|
||||||
|
extendStatics(d, b);
|
||||||
|
function __() { this.constructor = d; }
|
||||||
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
||||||
|
}
|
||||||
|
|
||||||
|
var ListEventRenderer = /** @class */ (function (_super) {
|
||||||
|
__extends(ListEventRenderer, _super);
|
||||||
|
function ListEventRenderer(listView) {
|
||||||
|
var _this = _super.call(this, listView.context) || this;
|
||||||
|
_this.listView = listView;
|
||||||
|
return _this;
|
||||||
|
}
|
||||||
|
ListEventRenderer.prototype.attachSegs = function (segs) {
|
||||||
|
if (!segs.length) {
|
||||||
|
this.listView.renderEmptyMessage();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
this.listView.renderSegList(segs);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
ListEventRenderer.prototype.detachSegs = function () {
|
||||||
|
};
|
||||||
|
// generates the HTML for a single event row
|
||||||
|
ListEventRenderer.prototype.renderSegHtml = function (seg) {
|
||||||
|
var _a = this.context, view = _a.view, theme = _a.theme;
|
||||||
|
var eventRange = seg.eventRange;
|
||||||
|
var eventDef = eventRange.def;
|
||||||
|
var eventInstance = eventRange.instance;
|
||||||
|
var eventUi = eventRange.ui;
|
||||||
|
var url = eventDef.url;
|
||||||
|
var classes = ['fc-list-item'].concat(eventUi.classNames);
|
||||||
|
var bgColor = eventUi.backgroundColor;
|
||||||
|
var timeHtml;
|
||||||
|
if (eventDef.allDay) {
|
||||||
|
timeHtml = core.getAllDayHtml(view);
|
||||||
|
}
|
||||||
|
else if (core.isMultiDayRange(eventRange.range)) {
|
||||||
|
if (seg.isStart) {
|
||||||
|
timeHtml = core.htmlEscape(this._getTimeText(eventInstance.range.start, seg.end, false // allDay
|
||||||
|
));
|
||||||
|
}
|
||||||
|
else if (seg.isEnd) {
|
||||||
|
timeHtml = core.htmlEscape(this._getTimeText(seg.start, eventInstance.range.end, false // allDay
|
||||||
|
));
|
||||||
|
}
|
||||||
|
else { // inner segment that lasts the whole day
|
||||||
|
timeHtml = core.getAllDayHtml(view);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// Display the normal time text for the *event's* times
|
||||||
|
timeHtml = core.htmlEscape(this.getTimeText(eventRange));
|
||||||
|
}
|
||||||
|
if (url) {
|
||||||
|
classes.push('fc-has-url');
|
||||||
|
}
|
||||||
|
return '<tr class="' + classes.join(' ') + '">' +
|
||||||
|
(this.displayEventTime ?
|
||||||
|
'<td class="fc-list-item-time ' + theme.getClass('widgetContent') + '">' +
|
||||||
|
(timeHtml || '') +
|
||||||
|
'</td>' :
|
||||||
|
'') +
|
||||||
|
'<td class="fc-list-item-marker ' + theme.getClass('widgetContent') + '">' +
|
||||||
|
'<span class="fc-event-dot"' +
|
||||||
|
(bgColor ?
|
||||||
|
' style="background-color:' + bgColor + '"' :
|
||||||
|
'') +
|
||||||
|
'></span>' +
|
||||||
|
'</td>' +
|
||||||
|
'<td class="fc-list-item-title ' + theme.getClass('widgetContent') + '">' +
|
||||||
|
'<a' + (url ? ' href="' + core.htmlEscape(url) + '"' : '') + '>' +
|
||||||
|
core.htmlEscape(eventDef.title || '') +
|
||||||
|
'</a>' +
|
||||||
|
'</td>' +
|
||||||
|
'</tr>';
|
||||||
|
};
|
||||||
|
// like "4:00am"
|
||||||
|
ListEventRenderer.prototype.computeEventTimeFormat = function () {
|
||||||
|
return {
|
||||||
|
hour: 'numeric',
|
||||||
|
minute: '2-digit',
|
||||||
|
meridiem: 'short'
|
||||||
|
};
|
||||||
|
};
|
||||||
|
return ListEventRenderer;
|
||||||
|
}(core.FgEventRenderer));
|
||||||
|
|
||||||
|
/*
|
||||||
|
Responsible for the scroller, and forwarding event-related actions into the "grid".
|
||||||
|
*/
|
||||||
|
var ListView = /** @class */ (function (_super) {
|
||||||
|
__extends(ListView, _super);
|
||||||
|
function ListView(context, viewSpec, dateProfileGenerator, parentEl) {
|
||||||
|
var _this = _super.call(this, context, viewSpec, dateProfileGenerator, parentEl) || this;
|
||||||
|
_this.computeDateVars = core.memoize(computeDateVars);
|
||||||
|
_this.eventStoreToSegs = core.memoize(_this._eventStoreToSegs);
|
||||||
|
var eventRenderer = _this.eventRenderer = new ListEventRenderer(_this);
|
||||||
|
_this.renderContent = core.memoizeRendering(eventRenderer.renderSegs.bind(eventRenderer), eventRenderer.unrender.bind(eventRenderer));
|
||||||
|
_this.el.classList.add('fc-list-view');
|
||||||
|
var listViewClassNames = (_this.theme.getClass('listView') || '').split(' '); // wish we didn't have to do this
|
||||||
|
for (var _i = 0, listViewClassNames_1 = listViewClassNames; _i < listViewClassNames_1.length; _i++) {
|
||||||
|
var listViewClassName = listViewClassNames_1[_i];
|
||||||
|
if (listViewClassName) { // in case input was empty string
|
||||||
|
_this.el.classList.add(listViewClassName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_this.scroller = new core.ScrollComponent('hidden', // overflow x
|
||||||
|
'auto' // overflow y
|
||||||
|
);
|
||||||
|
_this.el.appendChild(_this.scroller.el);
|
||||||
|
_this.contentEl = _this.scroller.el; // shortcut
|
||||||
|
context.calendar.registerInteractiveComponent(_this, {
|
||||||
|
el: _this.el
|
||||||
|
// TODO: make aware that it doesn't do Hits
|
||||||
|
});
|
||||||
|
return _this;
|
||||||
|
}
|
||||||
|
ListView.prototype.render = function (props) {
|
||||||
|
var _a = this.computeDateVars(props.dateProfile), dayDates = _a.dayDates, dayRanges = _a.dayRanges;
|
||||||
|
this.dayDates = dayDates;
|
||||||
|
this.renderContent(this.eventStoreToSegs(props.eventStore, props.eventUiBases, dayRanges));
|
||||||
|
};
|
||||||
|
ListView.prototype.destroy = function () {
|
||||||
|
_super.prototype.destroy.call(this);
|
||||||
|
this.scroller.destroy(); // will remove the Grid too
|
||||||
|
this.calendar.unregisterInteractiveComponent(this);
|
||||||
|
};
|
||||||
|
ListView.prototype.updateSize = function (isResize, viewHeight, isAuto) {
|
||||||
|
_super.prototype.updateSize.call(this, isResize, viewHeight, isAuto);
|
||||||
|
this.eventRenderer.computeSizes(isResize);
|
||||||
|
this.eventRenderer.assignSizes(isResize);
|
||||||
|
this.scroller.clear(); // sets height to 'auto' and clears overflow
|
||||||
|
if (!isAuto) {
|
||||||
|
this.scroller.setHeight(this.computeScrollerHeight(viewHeight));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
ListView.prototype.computeScrollerHeight = function (viewHeight) {
|
||||||
|
return viewHeight -
|
||||||
|
core.subtractInnerElHeight(this.el, this.scroller.el); // everything that's NOT the scroller
|
||||||
|
};
|
||||||
|
ListView.prototype._eventStoreToSegs = function (eventStore, eventUiBases, dayRanges) {
|
||||||
|
return this.eventRangesToSegs(core.sliceEventStore(eventStore, eventUiBases, this.props.dateProfile.activeRange, this.nextDayThreshold).fg, dayRanges);
|
||||||
|
};
|
||||||
|
ListView.prototype.eventRangesToSegs = function (eventRanges, dayRanges) {
|
||||||
|
var segs = [];
|
||||||
|
for (var _i = 0, eventRanges_1 = eventRanges; _i < eventRanges_1.length; _i++) {
|
||||||
|
var eventRange = eventRanges_1[_i];
|
||||||
|
segs.push.apply(segs, this.eventRangeToSegs(eventRange, dayRanges));
|
||||||
|
}
|
||||||
|
return segs;
|
||||||
|
};
|
||||||
|
ListView.prototype.eventRangeToSegs = function (eventRange, dayRanges) {
|
||||||
|
var _a = this, dateEnv = _a.dateEnv, nextDayThreshold = _a.nextDayThreshold;
|
||||||
|
var range = eventRange.range;
|
||||||
|
var allDay = eventRange.def.allDay;
|
||||||
|
var dayIndex;
|
||||||
|
var segRange;
|
||||||
|
var seg;
|
||||||
|
var segs = [];
|
||||||
|
for (dayIndex = 0; dayIndex < dayRanges.length; dayIndex++) {
|
||||||
|
segRange = core.intersectRanges(range, dayRanges[dayIndex]);
|
||||||
|
if (segRange) {
|
||||||
|
seg = {
|
||||||
|
component: this,
|
||||||
|
eventRange: eventRange,
|
||||||
|
start: segRange.start,
|
||||||
|
end: segRange.end,
|
||||||
|
isStart: eventRange.isStart && segRange.start.valueOf() === range.start.valueOf(),
|
||||||
|
isEnd: eventRange.isEnd && segRange.end.valueOf() === range.end.valueOf(),
|
||||||
|
dayIndex: dayIndex
|
||||||
|
};
|
||||||
|
segs.push(seg);
|
||||||
|
// detect when range won't go fully into the next day,
|
||||||
|
// and mutate the latest seg to the be the end.
|
||||||
|
if (!seg.isEnd && !allDay &&
|
||||||
|
dayIndex + 1 < dayRanges.length &&
|
||||||
|
range.end <
|
||||||
|
dateEnv.add(dayRanges[dayIndex + 1].start, nextDayThreshold)) {
|
||||||
|
seg.end = range.end;
|
||||||
|
seg.isEnd = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return segs;
|
||||||
|
};
|
||||||
|
ListView.prototype.renderEmptyMessage = function () {
|
||||||
|
this.contentEl.innerHTML =
|
||||||
|
'<div class="fc-list-empty-wrap2">' + // TODO: try less wraps
|
||||||
|
'<div class="fc-list-empty-wrap1">' +
|
||||||
|
'<div class="fc-list-empty">' +
|
||||||
|
core.htmlEscape(this.opt('noEventsMessage')) +
|
||||||
|
'</div>' +
|
||||||
|
'</div>' +
|
||||||
|
'</div>';
|
||||||
|
};
|
||||||
|
// called by ListEventRenderer
|
||||||
|
ListView.prototype.renderSegList = function (allSegs) {
|
||||||
|
var segsByDay = this.groupSegsByDay(allSegs); // sparse array
|
||||||
|
var dayIndex;
|
||||||
|
var daySegs;
|
||||||
|
var i;
|
||||||
|
var tableEl = core.htmlToElement('<table class="fc-list-table ' + this.calendar.theme.getClass('tableList') + '"><tbody></tbody></table>');
|
||||||
|
var tbodyEl = tableEl.querySelector('tbody');
|
||||||
|
for (dayIndex = 0; dayIndex < segsByDay.length; dayIndex++) {
|
||||||
|
daySegs = segsByDay[dayIndex];
|
||||||
|
if (daySegs) { // sparse array, so might be undefined
|
||||||
|
// append a day header
|
||||||
|
tbodyEl.appendChild(this.buildDayHeaderRow(this.dayDates[dayIndex]));
|
||||||
|
daySegs = this.eventRenderer.sortEventSegs(daySegs);
|
||||||
|
for (i = 0; i < daySegs.length; i++) {
|
||||||
|
tbodyEl.appendChild(daySegs[i].el); // append event row
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.contentEl.innerHTML = '';
|
||||||
|
this.contentEl.appendChild(tableEl);
|
||||||
|
};
|
||||||
|
// Returns a sparse array of arrays, segs grouped by their dayIndex
|
||||||
|
ListView.prototype.groupSegsByDay = function (segs) {
|
||||||
|
var segsByDay = []; // sparse array
|
||||||
|
var i;
|
||||||
|
var seg;
|
||||||
|
for (i = 0; i < segs.length; i++) {
|
||||||
|
seg = segs[i];
|
||||||
|
(segsByDay[seg.dayIndex] || (segsByDay[seg.dayIndex] = []))
|
||||||
|
.push(seg);
|
||||||
|
}
|
||||||
|
return segsByDay;
|
||||||
|
};
|
||||||
|
// generates the HTML for the day headers that live amongst the event rows
|
||||||
|
ListView.prototype.buildDayHeaderRow = function (dayDate) {
|
||||||
|
var dateEnv = this.dateEnv;
|
||||||
|
var mainFormat = core.createFormatter(this.opt('listDayFormat')); // TODO: cache
|
||||||
|
var altFormat = core.createFormatter(this.opt('listDayAltFormat')); // TODO: cache
|
||||||
|
return core.createElement('tr', {
|
||||||
|
className: 'fc-list-heading',
|
||||||
|
'data-date': dateEnv.formatIso(dayDate, { omitTime: true })
|
||||||
|
}, '<td class="' + (this.calendar.theme.getClass('tableListHeading') ||
|
||||||
|
this.calendar.theme.getClass('widgetHeader')) + '" colspan="3">' +
|
||||||
|
(mainFormat ?
|
||||||
|
core.buildGotoAnchorHtml(this, dayDate, { 'class': 'fc-list-heading-main' }, core.htmlEscape(dateEnv.format(dayDate, mainFormat)) // inner HTML
|
||||||
|
) :
|
||||||
|
'') +
|
||||||
|
(altFormat ?
|
||||||
|
core.buildGotoAnchorHtml(this, dayDate, { 'class': 'fc-list-heading-alt' }, core.htmlEscape(dateEnv.format(dayDate, altFormat)) // inner HTML
|
||||||
|
) :
|
||||||
|
'') +
|
||||||
|
'</td>');
|
||||||
|
};
|
||||||
|
return ListView;
|
||||||
|
}(core.View));
|
||||||
|
ListView.prototype.fgSegSelector = '.fc-list-item'; // which elements accept event actions
|
||||||
|
function computeDateVars(dateProfile) {
|
||||||
|
var dayStart = core.startOfDay(dateProfile.renderRange.start);
|
||||||
|
var viewEnd = dateProfile.renderRange.end;
|
||||||
|
var dayDates = [];
|
||||||
|
var dayRanges = [];
|
||||||
|
while (dayStart < viewEnd) {
|
||||||
|
dayDates.push(dayStart);
|
||||||
|
dayRanges.push({
|
||||||
|
start: dayStart,
|
||||||
|
end: core.addDays(dayStart, 1)
|
||||||
|
});
|
||||||
|
dayStart = core.addDays(dayStart, 1);
|
||||||
|
}
|
||||||
|
return { dayDates: dayDates, dayRanges: dayRanges };
|
||||||
|
}
|
||||||
|
|
||||||
|
var main = core.createPlugin({
|
||||||
|
views: {
|
||||||
|
list: {
|
||||||
|
class: ListView,
|
||||||
|
buttonTextKey: 'list',
|
||||||
|
listDayFormat: { month: 'long', day: 'numeric', year: 'numeric' } // like "January 1, 2016"
|
||||||
|
},
|
||||||
|
listDay: {
|
||||||
|
type: 'list',
|
||||||
|
duration: { days: 1 },
|
||||||
|
listDayFormat: { weekday: 'long' } // day-of-week is all we need. full date is probably in header
|
||||||
|
},
|
||||||
|
listWeek: {
|
||||||
|
type: 'list',
|
||||||
|
duration: { weeks: 1 },
|
||||||
|
listDayFormat: { weekday: 'long' },
|
||||||
|
listDayAltFormat: { month: 'long', day: 'numeric', year: 'numeric' }
|
||||||
|
},
|
||||||
|
listMonth: {
|
||||||
|
type: 'list',
|
||||||
|
duration: { month: 1 },
|
||||||
|
listDayAltFormat: { weekday: 'long' } // day-of-week is nice-to-have
|
||||||
|
},
|
||||||
|
listYear: {
|
||||||
|
type: 'list',
|
||||||
|
duration: { year: 1 },
|
||||||
|
listDayAltFormat: { weekday: 'long' } // day-of-week is nice-to-have
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
exports.ListView = ListView;
|
||||||
|
exports.default = main;
|
||||||
|
|
||||||
|
Object.defineProperty(exports, '__esModule', { value: true });
|
||||||
|
|
||||||
|
}));
|
||||||
5
vendor/fullcalendar/list/main.min.css
vendored
Normal file
5
vendor/fullcalendar/list/main.min.css
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
/*!
|
||||||
|
FullCalendar List View Plugin v4.1.0
|
||||||
|
Docs & License: https://fullcalendar.io/
|
||||||
|
(c) 2019 Adam Shaw
|
||||||
|
*/.fc-event-dot{display:inline-block;width:10px;height:10px;border-radius:5px}.fc-rtl .fc-list-view{direction:rtl}.fc-list-view{border-width:1px;border-style:solid}.fc .fc-list-table{table-layout:auto}.fc-list-table td{border-width:1px 0 0;padding:8px 14px}.fc-list-table tr:first-child td{border-top-width:0}.fc-list-heading{border-bottom-width:1px}.fc-list-heading td{font-weight:700}.fc-ltr .fc-list-heading-main{float:left}.fc-ltr .fc-list-heading-alt,.fc-rtl .fc-list-heading-main{float:right}.fc-rtl .fc-list-heading-alt{float:left}.fc-list-item.fc-has-url{cursor:pointer}.fc-list-item-marker,.fc-list-item-time{white-space:nowrap;width:1px}.fc-ltr .fc-list-item-marker{padding-right:0}.fc-rtl .fc-list-item-marker{padding-left:0}.fc-list-item-title a{text-decoration:none;color:inherit}.fc-list-item-title a[href]:hover{text-decoration:underline}.fc-list-empty-wrap2{position:absolute;top:0;left:0;right:0;bottom:0}.fc-list-empty-wrap1{width:100%;height:100%;display:table}.fc-list-empty{display:table-cell;vertical-align:middle;text-align:center}.fc-unthemed .fc-list-empty{background-color:#eee}
|
||||||
20
vendor/fullcalendar/list/main.min.js
vendored
Normal file
20
vendor/fullcalendar/list/main.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
162
vendor/fullcalendar/luxon/main.js
vendored
Normal file
162
vendor/fullcalendar/luxon/main.js
vendored
Normal file
@@ -0,0 +1,162 @@
|
|||||||
|
/*!
|
||||||
|
FullCalendar Luxon Plugin v4.1.0
|
||||||
|
Docs & License: https://fullcalendar.io/
|
||||||
|
(c) 2019 Adam Shaw
|
||||||
|
*/
|
||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('luxon'), require('@fullcalendar/core')) :
|
||||||
|
typeof define === 'function' && define.amd ? define(['exports', 'luxon', '@fullcalendar/core'], factory) :
|
||||||
|
(global = global || self, factory(global.FullCalendarLuxon = {}, global.luxon, global.FullCalendar));
|
||||||
|
}(this, function (exports, luxon, core) { 'use strict';
|
||||||
|
|
||||||
|
/*! *****************************************************************************
|
||||||
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
||||||
|
this file except in compliance with the License. You may obtain a copy of the
|
||||||
|
License at http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
|
||||||
|
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
|
||||||
|
MERCHANTABLITY OR NON-INFRINGEMENT.
|
||||||
|
|
||||||
|
See the Apache Version 2.0 License for specific language governing permissions
|
||||||
|
and limitations under the License.
|
||||||
|
***************************************************************************** */
|
||||||
|
/* global Reflect, Promise */
|
||||||
|
|
||||||
|
var extendStatics = function(d, b) {
|
||||||
|
extendStatics = Object.setPrototypeOf ||
|
||||||
|
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
||||||
|
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
||||||
|
return extendStatics(d, b);
|
||||||
|
};
|
||||||
|
|
||||||
|
function __extends(d, b) {
|
||||||
|
extendStatics(d, b);
|
||||||
|
function __() { this.constructor = d; }
|
||||||
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
||||||
|
}
|
||||||
|
|
||||||
|
var __assign = function() {
|
||||||
|
__assign = Object.assign || function __assign(t) {
|
||||||
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
||||||
|
s = arguments[i];
|
||||||
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
||||||
|
}
|
||||||
|
return t;
|
||||||
|
};
|
||||||
|
return __assign.apply(this, arguments);
|
||||||
|
};
|
||||||
|
|
||||||
|
function toDateTime(date, calendar) {
|
||||||
|
if (!(calendar instanceof core.Calendar)) {
|
||||||
|
throw new Error('must supply a Calendar instance');
|
||||||
|
}
|
||||||
|
return luxon.DateTime.fromJSDate(date, {
|
||||||
|
zone: calendar.dateEnv.timeZone,
|
||||||
|
locale: calendar.dateEnv.locale.codes[0]
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function toDuration(duration, calendar) {
|
||||||
|
if (!(calendar instanceof core.Calendar)) {
|
||||||
|
throw new Error('must supply a Calendar instance');
|
||||||
|
}
|
||||||
|
return luxon.Duration.fromObject(__assign({}, duration, { locale: calendar.dateEnv.locale.codes[0] }));
|
||||||
|
}
|
||||||
|
var LuxonNamedTimeZone = /** @class */ (function (_super) {
|
||||||
|
__extends(LuxonNamedTimeZone, _super);
|
||||||
|
function LuxonNamedTimeZone() {
|
||||||
|
return _super !== null && _super.apply(this, arguments) || this;
|
||||||
|
}
|
||||||
|
LuxonNamedTimeZone.prototype.offsetForArray = function (a) {
|
||||||
|
return arrayToLuxon(a, this.timeZoneName).offset;
|
||||||
|
};
|
||||||
|
LuxonNamedTimeZone.prototype.timestampToArray = function (ms) {
|
||||||
|
return luxonToArray(luxon.DateTime.fromMillis(ms, {
|
||||||
|
zone: this.timeZoneName
|
||||||
|
}));
|
||||||
|
};
|
||||||
|
return LuxonNamedTimeZone;
|
||||||
|
}(core.NamedTimeZoneImpl));
|
||||||
|
function formatWithCmdStr(cmdStr, arg) {
|
||||||
|
var cmd = parseCmdStr(cmdStr);
|
||||||
|
if (arg.end) {
|
||||||
|
var start = arrayToLuxon(arg.start.array, arg.timeZone, arg.localeCodes[0]);
|
||||||
|
var end = arrayToLuxon(arg.end.array, arg.timeZone, arg.localeCodes[0]);
|
||||||
|
return formatRange(cmd, start.toFormat.bind(start), end.toFormat.bind(end), arg.separator);
|
||||||
|
}
|
||||||
|
return arrayToLuxon(arg.date.array, arg.timeZone, arg.localeCodes[0]).toFormat(cmd.whole);
|
||||||
|
}
|
||||||
|
var main = core.createPlugin({
|
||||||
|
cmdFormatter: formatWithCmdStr,
|
||||||
|
namedTimeZonedImpl: LuxonNamedTimeZone
|
||||||
|
});
|
||||||
|
function luxonToArray(datetime) {
|
||||||
|
return [
|
||||||
|
datetime.year,
|
||||||
|
datetime.month - 1,
|
||||||
|
datetime.day,
|
||||||
|
datetime.hour,
|
||||||
|
datetime.minute,
|
||||||
|
datetime.second,
|
||||||
|
datetime.millisecond
|
||||||
|
];
|
||||||
|
}
|
||||||
|
function arrayToLuxon(arr, timeZone, locale) {
|
||||||
|
return luxon.DateTime.fromObject({
|
||||||
|
zone: timeZone,
|
||||||
|
locale: locale,
|
||||||
|
year: arr[0],
|
||||||
|
month: arr[1] + 1,
|
||||||
|
day: arr[2],
|
||||||
|
hour: arr[3],
|
||||||
|
minute: arr[4],
|
||||||
|
second: arr[5],
|
||||||
|
millisecond: arr[6]
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function parseCmdStr(cmdStr) {
|
||||||
|
var parts = cmdStr.match(/^(.*?)\{(.*)\}(.*)$/); // TODO: lookbehinds for escape characters
|
||||||
|
if (parts) {
|
||||||
|
var middle = parseCmdStr(parts[2]);
|
||||||
|
return {
|
||||||
|
head: parts[1],
|
||||||
|
middle: middle,
|
||||||
|
tail: parts[3],
|
||||||
|
whole: parts[1] + middle.whole + parts[3]
|
||||||
|
};
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return {
|
||||||
|
head: null,
|
||||||
|
middle: null,
|
||||||
|
tail: null,
|
||||||
|
whole: cmdStr
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function formatRange(cmd, formatStart, formatEnd, separator) {
|
||||||
|
if (cmd.middle) {
|
||||||
|
var startHead = formatStart(cmd.head);
|
||||||
|
var startMiddle = formatRange(cmd.middle, formatStart, formatEnd, separator);
|
||||||
|
var startTail = formatStart(cmd.tail);
|
||||||
|
var endHead = formatEnd(cmd.head);
|
||||||
|
var endMiddle = formatRange(cmd.middle, formatStart, formatEnd, separator);
|
||||||
|
var endTail = formatEnd(cmd.tail);
|
||||||
|
if (startHead === endHead && startTail === endTail) {
|
||||||
|
return startHead +
|
||||||
|
(startMiddle === endMiddle ? startMiddle : startMiddle + separator + endMiddle) +
|
||||||
|
startTail;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return formatStart(cmd.whole) + separator + formatEnd(cmd.whole);
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.default = main;
|
||||||
|
exports.toDateTime = toDateTime;
|
||||||
|
exports.toDuration = toDuration;
|
||||||
|
|
||||||
|
Object.defineProperty(exports, '__esModule', { value: true });
|
||||||
|
|
||||||
|
}));
|
||||||
20
vendor/fullcalendar/luxon/main.min.js
vendored
Normal file
20
vendor/fullcalendar/luxon/main.min.js
vendored
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
/*!
|
||||||
|
FullCalendar Luxon Plugin v4.1.0
|
||||||
|
Docs & License: https://fullcalendar.io/
|
||||||
|
(c) 2019 Adam Shaw
|
||||||
|
*/
|
||||||
|
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("luxon"),require("@fullcalendar/core")):"function"==typeof define&&define.amd?define(["exports","luxon","@fullcalendar/core"],t):(e=e||self,t(e.FullCalendarLuxon={},e.luxon,e.FullCalendar))}(this,function(e,t,n){"use strict";function o(e,t){function n(){this.constructor=e}f(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function r(e,o){if(!(o instanceof n.Calendar))throw new Error("must supply a Calendar instance");return t.DateTime.fromJSDate(e,{zone:o.dateEnv.timeZone,locale:o.dateEnv.locale.codes[0]})}function a(e,o){if(!(o instanceof n.Calendar))throw new Error("must supply a Calendar instance");return t.Duration.fromObject(m({},e,{locale:o.dateEnv.locale.codes[0]}))}function i(e,t){var n=c(e);if(t.end){var o=u(t.start.array,t.timeZone,t.localeCodes[0]),r=u(t.end.array,t.timeZone,t.localeCodes[0]);return d(n,o.toFormat.bind(o),r.toFormat.bind(r),t.separator)}return u(t.date.array,t.timeZone,t.localeCodes[0]).toFormat(n.whole)}function l(e){return[e.year,e.month-1,e.day,e.hour,e.minute,e.second,e.millisecond]}function u(e,n,o){return t.DateTime.fromObject({zone:n,locale:o,year:e[0],month:e[1]+1,day:e[2],hour:e[3],minute:e[4],second:e[5],millisecond:e[6]})}function c(e){var t=e.match(/^(.*?)\{(.*)\}(.*)$/);if(t){var n=c(t[2]);return{head:t[1],middle:n,tail:t[3],whole:t[1]+n.whole+t[3]}}return{head:null,middle:null,tail:null,whole:e}}function d(e,t,n,o){if(e.middle){var r=t(e.head),a=d(e.middle,t,n,o),i=t(e.tail),l=n(e.head),u=d(e.middle,t,n,o),c=n(e.tail);if(r===l&&i===c)return r+(a===u?a:a+o+u)+i}return t(e.whole)+o+n(e.whole)}/*! *****************************************************************************
|
||||||
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
||||||
|
this file except in compliance with the License. You may obtain a copy of the
|
||||||
|
License at http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
|
||||||
|
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
|
||||||
|
MERCHANTABLITY OR NON-INFRINGEMENT.
|
||||||
|
|
||||||
|
See the Apache Version 2.0 License for specific language governing permissions
|
||||||
|
and limitations under the License.
|
||||||
|
***************************************************************************** */
|
||||||
|
var f=function(e,t){return(f=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},m=function(){return m=Object.assign||function(e){for(var t,n=1,o=arguments.length;n<o;n++){t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},m.apply(this,arguments)},s=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return o(n,e),n.prototype.offsetForArray=function(e){return u(e,this.timeZoneName).offset},n.prototype.timestampToArray=function(e){return l(t.DateTime.fromMillis(e,{zone:this.timeZoneName}))},n}(n.NamedTimeZoneImpl),p=n.createPlugin({cmdFormatter:i,namedTimeZonedImpl:s});e.default=p,e.toDateTime=r,e.toDuration=a,Object.defineProperty(e,"__esModule",{value:!0})});
|
||||||
64
vendor/fullcalendar/moment-timezone/main.js
vendored
Normal file
64
vendor/fullcalendar/moment-timezone/main.js
vendored
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
/*!
|
||||||
|
FullCalendar Moment Timezone Plugin v4.1.0
|
||||||
|
Docs & License: https://fullcalendar.io/
|
||||||
|
(c) 2019 Adam Shaw
|
||||||
|
*/
|
||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('moment'), require('moment-timezone/builds/moment-timezone-with-data'), require('@fullcalendar/core')) :
|
||||||
|
typeof define === 'function' && define.amd ? define(['exports', 'moment', 'moment-timezone/builds/moment-timezone-with-data', '@fullcalendar/core'], factory) :
|
||||||
|
(global = global || self, factory(global.FullCalendarMomentTimezone = {}, global.moment, global.moment, global.FullCalendar));
|
||||||
|
}(this, function (exports, moment, momentTimezoneWithData, core) { 'use strict';
|
||||||
|
|
||||||
|
moment = moment && moment.hasOwnProperty('default') ? moment['default'] : moment;
|
||||||
|
|
||||||
|
/*! *****************************************************************************
|
||||||
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
||||||
|
this file except in compliance with the License. You may obtain a copy of the
|
||||||
|
License at http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
|
||||||
|
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
|
||||||
|
MERCHANTABLITY OR NON-INFRINGEMENT.
|
||||||
|
|
||||||
|
See the Apache Version 2.0 License for specific language governing permissions
|
||||||
|
and limitations under the License.
|
||||||
|
***************************************************************************** */
|
||||||
|
/* global Reflect, Promise */
|
||||||
|
|
||||||
|
var extendStatics = function(d, b) {
|
||||||
|
extendStatics = Object.setPrototypeOf ||
|
||||||
|
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
||||||
|
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
||||||
|
return extendStatics(d, b);
|
||||||
|
};
|
||||||
|
|
||||||
|
function __extends(d, b) {
|
||||||
|
extendStatics(d, b);
|
||||||
|
function __() { this.constructor = d; }
|
||||||
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
||||||
|
}
|
||||||
|
|
||||||
|
var MomentNamedTimeZone = /** @class */ (function (_super) {
|
||||||
|
__extends(MomentNamedTimeZone, _super);
|
||||||
|
function MomentNamedTimeZone() {
|
||||||
|
return _super !== null && _super.apply(this, arguments) || this;
|
||||||
|
}
|
||||||
|
MomentNamedTimeZone.prototype.offsetForArray = function (a) {
|
||||||
|
return moment.tz(a, this.timeZoneName).utcOffset();
|
||||||
|
};
|
||||||
|
MomentNamedTimeZone.prototype.timestampToArray = function (ms) {
|
||||||
|
return moment.tz(ms, this.timeZoneName).toArray();
|
||||||
|
};
|
||||||
|
return MomentNamedTimeZone;
|
||||||
|
}(core.NamedTimeZoneImpl));
|
||||||
|
var main = core.createPlugin({
|
||||||
|
namedTimeZonedImpl: MomentNamedTimeZone
|
||||||
|
});
|
||||||
|
|
||||||
|
exports.default = main;
|
||||||
|
|
||||||
|
Object.defineProperty(exports, '__esModule', { value: true });
|
||||||
|
|
||||||
|
}));
|
||||||
20
vendor/fullcalendar/moment-timezone/main.min.js
vendored
Normal file
20
vendor/fullcalendar/moment-timezone/main.min.js
vendored
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
/*!
|
||||||
|
FullCalendar Moment Timezone Plugin v4.1.0
|
||||||
|
Docs & License: https://fullcalendar.io/
|
||||||
|
(c) 2019 Adam Shaw
|
||||||
|
*/
|
||||||
|
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("moment"),require("moment-timezone/builds/moment-timezone-with-data"),require("@fullcalendar/core")):"function"==typeof define&&define.amd?define(["exports","moment","moment-timezone/builds/moment-timezone-with-data","@fullcalendar/core"],t):(e=e||self,t(e.FullCalendarMomentTimezone={},e.moment,e.moment,e.FullCalendar))}(this,function(e,t,n,o){"use strict";function r(e,t){function n(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}t=t&&t.hasOwnProperty("default")?t.default:t;/*! *****************************************************************************
|
||||||
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
||||||
|
this file except in compliance with the License. You may obtain a copy of the
|
||||||
|
License at http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
|
||||||
|
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
|
||||||
|
MERCHANTABLITY OR NON-INFRINGEMENT.
|
||||||
|
|
||||||
|
See the Apache Version 2.0 License for specific language governing permissions
|
||||||
|
and limitations under the License.
|
||||||
|
***************************************************************************** */
|
||||||
|
var i=function(e,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},u=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return r(n,e),n.prototype.offsetForArray=function(e){return t.tz(e,this.timeZoneName).utcOffset()},n.prototype.timestampToArray=function(e){return t.tz(e,this.timeZoneName).toArray()},n}(o.NamedTimeZoneImpl),m=o.createPlugin({namedTimeZonedImpl:u});e.default=m,Object.defineProperty(e,"__esModule",{value:!0})});
|
||||||
103
vendor/fullcalendar/moment/main.js
vendored
Normal file
103
vendor/fullcalendar/moment/main.js
vendored
Normal file
@@ -0,0 +1,103 @@
|
|||||||
|
/*!
|
||||||
|
FullCalendar Moment Plugin v4.1.0
|
||||||
|
Docs & License: https://fullcalendar.io/
|
||||||
|
(c) 2019 Adam Shaw
|
||||||
|
*/
|
||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('moment'), require('@fullcalendar/core')) :
|
||||||
|
typeof define === 'function' && define.amd ? define(['exports', 'moment', '@fullcalendar/core'], factory) :
|
||||||
|
(global = global || self, factory(global.FullCalendarMoment = {}, global.moment, global.FullCalendar));
|
||||||
|
}(this, function (exports, moment, core) { 'use strict';
|
||||||
|
|
||||||
|
moment = moment && moment.hasOwnProperty('default') ? moment['default'] : moment;
|
||||||
|
|
||||||
|
function toMoment(date, calendar) {
|
||||||
|
if (!(calendar instanceof core.Calendar)) {
|
||||||
|
throw new Error('must supply a Calendar instance');
|
||||||
|
}
|
||||||
|
return convertToMoment(date, calendar.dateEnv.timeZone, null, calendar.dateEnv.locale.codes[0]);
|
||||||
|
}
|
||||||
|
function toDuration(fcDuration) {
|
||||||
|
return moment.duration(fcDuration); // momment accepts all the props that fc.Duration already has!
|
||||||
|
}
|
||||||
|
function formatWithCmdStr(cmdStr, arg) {
|
||||||
|
var cmd = parseCmdStr(cmdStr);
|
||||||
|
if (arg.end) {
|
||||||
|
var startMom = convertToMoment(arg.start.array, arg.timeZone, arg.start.timeZoneOffset, arg.localeCodes[0]);
|
||||||
|
var endMom = convertToMoment(arg.end.array, arg.timeZone, arg.end.timeZoneOffset, arg.localeCodes[0]);
|
||||||
|
return formatRange(cmd, createMomentFormatFunc(startMom), createMomentFormatFunc(endMom), arg.separator);
|
||||||
|
}
|
||||||
|
return convertToMoment(arg.date.array, arg.timeZone, arg.date.timeZoneOffset, arg.localeCodes[0]).format(cmd.whole); // TODO: test for this
|
||||||
|
}
|
||||||
|
var main = core.createPlugin({
|
||||||
|
cmdFormatter: formatWithCmdStr
|
||||||
|
});
|
||||||
|
function createMomentFormatFunc(mom) {
|
||||||
|
return function (cmdStr) {
|
||||||
|
return cmdStr ? mom.format(cmdStr) : ''; // because calling with blank string results in ISO8601 :(
|
||||||
|
};
|
||||||
|
}
|
||||||
|
function convertToMoment(input, timeZone, timeZoneOffset, locale) {
|
||||||
|
var mom;
|
||||||
|
if (timeZone === 'local') {
|
||||||
|
mom = moment(input);
|
||||||
|
}
|
||||||
|
else if (timeZone === 'UTC') {
|
||||||
|
mom = moment.utc(input);
|
||||||
|
}
|
||||||
|
else if (moment.tz) {
|
||||||
|
mom = moment.tz(input, timeZone);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
mom = moment.utc(input);
|
||||||
|
if (timeZoneOffset != null) {
|
||||||
|
mom.utcOffset(timeZoneOffset);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mom.locale(locale);
|
||||||
|
return mom;
|
||||||
|
}
|
||||||
|
function parseCmdStr(cmdStr) {
|
||||||
|
var parts = cmdStr.match(/^(.*?)\{(.*)\}(.*)$/); // TODO: lookbehinds for escape characters
|
||||||
|
if (parts) {
|
||||||
|
var middle = parseCmdStr(parts[2]);
|
||||||
|
return {
|
||||||
|
head: parts[1],
|
||||||
|
middle: middle,
|
||||||
|
tail: parts[3],
|
||||||
|
whole: parts[1] + middle.whole + parts[3]
|
||||||
|
};
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return {
|
||||||
|
head: null,
|
||||||
|
middle: null,
|
||||||
|
tail: null,
|
||||||
|
whole: cmdStr
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function formatRange(cmd, formatStart, formatEnd, separator) {
|
||||||
|
if (cmd.middle) {
|
||||||
|
var startHead = formatStart(cmd.head);
|
||||||
|
var startMiddle = formatRange(cmd.middle, formatStart, formatEnd, separator);
|
||||||
|
var startTail = formatStart(cmd.tail);
|
||||||
|
var endHead = formatEnd(cmd.head);
|
||||||
|
var endMiddle = formatRange(cmd.middle, formatStart, formatEnd, separator);
|
||||||
|
var endTail = formatEnd(cmd.tail);
|
||||||
|
if (startHead === endHead && startTail === endTail) {
|
||||||
|
return startHead +
|
||||||
|
(startMiddle === endMiddle ? startMiddle : startMiddle + separator + endMiddle) +
|
||||||
|
startTail;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return formatStart(cmd.whole) + separator + formatEnd(cmd.whole);
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.default = main;
|
||||||
|
exports.toDuration = toDuration;
|
||||||
|
exports.toMoment = toMoment;
|
||||||
|
|
||||||
|
Object.defineProperty(exports, '__esModule', { value: true });
|
||||||
|
|
||||||
|
}));
|
||||||
6
vendor/fullcalendar/moment/main.min.js
vendored
Normal file
6
vendor/fullcalendar/moment/main.min.js
vendored
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
/*!
|
||||||
|
FullCalendar Moment Plugin v4.1.0
|
||||||
|
Docs & License: https://fullcalendar.io/
|
||||||
|
(c) 2019 Adam Shaw
|
||||||
|
*/
|
||||||
|
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("moment"),require("@fullcalendar/core")):"function"==typeof define&&define.amd?define(["exports","moment","@fullcalendar/core"],t):(e=e||self,t(e.FullCalendarMoment={},e.moment,e.FullCalendar))}(this,function(e,t,n){"use strict";function r(e,t){if(!(t instanceof n.Calendar))throw new Error("must supply a Calendar instance");return u(e,t.dateEnv.timeZone,null,t.dateEnv.locale.codes[0])}function a(e){return t.duration(e)}function o(e,t){var n=i(e);if(t.end){var r=u(t.start.array,t.timeZone,t.start.timeZoneOffset,t.localeCodes[0]),a=u(t.end.array,t.timeZone,t.end.timeZoneOffset,t.localeCodes[0]);return d(n,l(r),l(a),t.separator)}return u(t.date.array,t.timeZone,t.date.timeZoneOffset,t.localeCodes[0]).format(n.whole)}function l(e){return function(t){return t?e.format(t):""}}function u(e,n,r,a){var o;return"local"===n?o=t(e):"UTC"===n?o=t.utc(e):t.tz?o=t.tz(e,n):(o=t.utc(e),null!=r&&o.utcOffset(r)),o.locale(a),o}function i(e){var t=e.match(/^(.*?)\{(.*)\}(.*)$/);if(t){var n=i(t[2]);return{head:t[1],middle:n,tail:t[3],whole:t[1]+n.whole+t[3]}}return{head:null,middle:null,tail:null,whole:e}}function d(e,t,n,r){if(e.middle){var a=t(e.head),o=d(e.middle,t,n,r),l=t(e.tail),u=n(e.head),i=d(e.middle,t,n,r),f=n(e.tail);if(a===u&&l===f)return a+(o===i?o:o+r+i)+l}return t(e.whole)+r+n(e.whole)}t=t&&t.hasOwnProperty("default")?t.default:t;var f=n.createPlugin({cmdFormatter:o});e.default=f,e.toDuration=a,e.toMoment=r,Object.defineProperty(e,"__esModule",{value:!0})});
|
||||||
127
vendor/fullcalendar/rrule/main.js
vendored
Normal file
127
vendor/fullcalendar/rrule/main.js
vendored
Normal file
@@ -0,0 +1,127 @@
|
|||||||
|
/*!
|
||||||
|
FullCalendar RRule Plugin v4.1.0
|
||||||
|
Docs & License: https://fullcalendar.io/
|
||||||
|
(c) 2019 Adam Shaw
|
||||||
|
*/
|
||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('rrule'), require('@fullcalendar/core')) :
|
||||||
|
typeof define === 'function' && define.amd ? define(['exports', 'rrule', '@fullcalendar/core'], factory) :
|
||||||
|
(global = global || self, factory(global.FullCalendarRrule = {}, global.rrule, global.FullCalendar));
|
||||||
|
}(this, function (exports, rrule, core) { 'use strict';
|
||||||
|
|
||||||
|
/*! *****************************************************************************
|
||||||
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
||||||
|
this file except in compliance with the License. You may obtain a copy of the
|
||||||
|
License at http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
|
||||||
|
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
|
||||||
|
MERCHANTABLITY OR NON-INFRINGEMENT.
|
||||||
|
|
||||||
|
See the Apache Version 2.0 License for specific language governing permissions
|
||||||
|
and limitations under the License.
|
||||||
|
***************************************************************************** */
|
||||||
|
|
||||||
|
var __assign = function() {
|
||||||
|
__assign = Object.assign || function __assign(t) {
|
||||||
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
||||||
|
s = arguments[i];
|
||||||
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
||||||
|
}
|
||||||
|
return t;
|
||||||
|
};
|
||||||
|
return __assign.apply(this, arguments);
|
||||||
|
};
|
||||||
|
|
||||||
|
var EVENT_DEF_PROPS = {
|
||||||
|
rrule: null,
|
||||||
|
duration: core.createDuration
|
||||||
|
};
|
||||||
|
var recurring = {
|
||||||
|
parse: function (rawEvent, leftoverProps, dateEnv) {
|
||||||
|
if (rawEvent.rrule != null) {
|
||||||
|
var props = core.refineProps(rawEvent, EVENT_DEF_PROPS, {}, leftoverProps);
|
||||||
|
var parsed = parseRRule(props.rrule, dateEnv);
|
||||||
|
if (parsed) {
|
||||||
|
return {
|
||||||
|
typeData: parsed.rrule,
|
||||||
|
allDayGuess: parsed.allDayGuess,
|
||||||
|
duration: props.duration
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
},
|
||||||
|
expand: function (rrule, framingRange) {
|
||||||
|
// we WANT an inclusive start and in exclusive end, but the js rrule lib will only do either BOTH
|
||||||
|
// inclusive or BOTH exclusive, which is stupid: https://github.com/jakubroztocil/rrule/issues/84
|
||||||
|
// Workaround: make inclusive, which will generate extra occurences, and then trim.
|
||||||
|
return rrule.between(framingRange.start, framingRange.end, true)
|
||||||
|
.filter(function (date) {
|
||||||
|
return date.valueOf() < framingRange.end.valueOf();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
var main = core.createPlugin({
|
||||||
|
recurringTypes: [recurring]
|
||||||
|
});
|
||||||
|
function parseRRule(input, dateEnv) {
|
||||||
|
var allDayGuess = null;
|
||||||
|
var rrule$1;
|
||||||
|
if (typeof input === 'string') {
|
||||||
|
rrule$1 = rrule.rrulestr(input);
|
||||||
|
}
|
||||||
|
else if (typeof input === 'object' && input) { // non-null object
|
||||||
|
var refined = __assign({}, input); // copy
|
||||||
|
if (typeof refined.dtstart === 'string') {
|
||||||
|
var dtstartMeta = dateEnv.createMarkerMeta(refined.dtstart);
|
||||||
|
if (dtstartMeta) {
|
||||||
|
refined.dtstart = dtstartMeta.marker;
|
||||||
|
allDayGuess = dtstartMeta.isTimeUnspecified;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
delete refined.dtstart;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (typeof refined.until === 'string') {
|
||||||
|
refined.until = dateEnv.createMarker(refined.until);
|
||||||
|
}
|
||||||
|
if (refined.freq != null) {
|
||||||
|
refined.freq = convertConstant(refined.freq);
|
||||||
|
}
|
||||||
|
if (refined.wkst != null) {
|
||||||
|
refined.wkst = convertConstant(refined.wkst);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
refined.wkst = (dateEnv.weekDow - 1 + 7) % 7; // convert Sunday-first to Monday-first
|
||||||
|
}
|
||||||
|
if (refined.byweekday != null) {
|
||||||
|
refined.byweekday = convertConstants(refined.byweekday); // the plural version
|
||||||
|
}
|
||||||
|
rrule$1 = new rrule.RRule(refined);
|
||||||
|
}
|
||||||
|
if (rrule$1) {
|
||||||
|
return { rrule: rrule$1, allDayGuess: allDayGuess };
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
function convertConstants(input) {
|
||||||
|
if (Array.isArray(input)) {
|
||||||
|
return input.map(convertConstant);
|
||||||
|
}
|
||||||
|
return convertConstant(input);
|
||||||
|
}
|
||||||
|
function convertConstant(input) {
|
||||||
|
if (typeof input === 'string') {
|
||||||
|
return rrule.RRule[input.toUpperCase()];
|
||||||
|
}
|
||||||
|
return input;
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.default = main;
|
||||||
|
|
||||||
|
Object.defineProperty(exports, '__esModule', { value: true });
|
||||||
|
|
||||||
|
}));
|
||||||
20
vendor/fullcalendar/rrule/main.min.js
vendored
Normal file
20
vendor/fullcalendar/rrule/main.min.js
vendored
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
/*!
|
||||||
|
FullCalendar RRule Plugin v4.1.0
|
||||||
|
Docs & License: https://fullcalendar.io/
|
||||||
|
(c) 2019 Adam Shaw
|
||||||
|
*/
|
||||||
|
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("rrule"),require("@fullcalendar/core")):"function"==typeof define&&define.amd?define(["exports","rrule","@fullcalendar/core"],r):(e=e||self,r(e.FullCalendarRrule={},e.rrule,e.FullCalendar))}(this,function(e,r,t){"use strict";function n(e,t){var n,i=null;if("string"==typeof e)n=r.rrulestr(e);else if("object"==typeof e&&e){var f=a({},e);if("string"==typeof f.dtstart){var o=t.createMarkerMeta(f.dtstart);o?(f.dtstart=o.marker,i=o.isTimeUnspecified):delete f.dtstart}"string"==typeof f.until&&(f.until=t.createMarker(f.until)),null!=f.freq&&(f.freq=l(f.freq)),null!=f.wkst?f.wkst=l(f.wkst):f.wkst=(t.weekDow-1+7)%7,null!=f.byweekday&&(f.byweekday=u(f.byweekday)),n=new r.RRule(f)}return n?{rrule:n,allDayGuess:i}:null}function u(e){return Array.isArray(e)?e.map(l):l(e)}function l(e){return"string"==typeof e?r.RRule[e.toUpperCase()]:e}/*! *****************************************************************************
|
||||||
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
||||||
|
this file except in compliance with the License. You may obtain a copy of the
|
||||||
|
License at http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
|
||||||
|
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
|
||||||
|
MERCHANTABLITY OR NON-INFRINGEMENT.
|
||||||
|
|
||||||
|
See the Apache Version 2.0 License for specific language governing permissions
|
||||||
|
and limitations under the License.
|
||||||
|
***************************************************************************** */
|
||||||
|
var a=function(){return a=Object.assign||function(e){for(var r,t=1,n=arguments.length;t<n;t++){r=arguments[t];for(var u in r)Object.prototype.hasOwnProperty.call(r,u)&&(e[u]=r[u])}return e},a.apply(this,arguments)},i={rrule:null,duration:t.createDuration},f={parse:function(e,r,u){if(null!=e.rrule){var l=t.refineProps(e,i,{},r),a=n(l.rrule,u);if(a)return{typeData:a.rrule,allDayGuess:a.allDayGuess,duration:l.duration}}return null},expand:function(e,r){return e.between(r.start,r.end,!0).filter(function(e){return e.valueOf()<r.end.valueOf()})}},o=t.createPlugin({recurringTypes:[f]});e.default=o,Object.defineProperty(e,"__esModule",{value:!0})});
|
||||||
266
vendor/fullcalendar/timegrid/main.css
vendored
Normal file
266
vendor/fullcalendar/timegrid/main.css
vendored
Normal file
@@ -0,0 +1,266 @@
|
|||||||
|
/*!
|
||||||
|
FullCalendar Time Grid Plugin v4.1.0
|
||||||
|
Docs & License: https://fullcalendar.io/
|
||||||
|
(c) 2019 Adam Shaw
|
||||||
|
*/
|
||||||
|
/* TimeGridView all-day area
|
||||||
|
--------------------------------------------------------------------------------------------------*/
|
||||||
|
.fc-timeGrid-view .fc-day-grid {
|
||||||
|
position: relative;
|
||||||
|
z-index: 2;
|
||||||
|
/* so the "more.." popover will be over the time grid */ }
|
||||||
|
|
||||||
|
.fc-timeGrid-view .fc-day-grid .fc-row {
|
||||||
|
min-height: 3em;
|
||||||
|
/* all-day section will never get shorter than this */ }
|
||||||
|
|
||||||
|
.fc-timeGrid-view .fc-day-grid .fc-row .fc-content-skeleton {
|
||||||
|
padding-bottom: 1em;
|
||||||
|
/* give space underneath events for clicking/selecting days */ }
|
||||||
|
|
||||||
|
/* TimeGrid axis running down the side (for both the all-day area and the slot area)
|
||||||
|
--------------------------------------------------------------------------------------------------*/
|
||||||
|
.fc .fc-axis {
|
||||||
|
/* .fc to overcome default cell styles */
|
||||||
|
vertical-align: middle;
|
||||||
|
padding: 0 4px;
|
||||||
|
white-space: nowrap; }
|
||||||
|
|
||||||
|
.fc-ltr .fc-axis {
|
||||||
|
text-align: right; }
|
||||||
|
|
||||||
|
.fc-rtl .fc-axis {
|
||||||
|
text-align: left; }
|
||||||
|
|
||||||
|
/* TimeGrid Structure
|
||||||
|
--------------------------------------------------------------------------------------------------*/
|
||||||
|
.fc-time-grid-container,
|
||||||
|
.fc-time-grid {
|
||||||
|
/* so slats/bg/content/etc positions get scoped within here */
|
||||||
|
position: relative;
|
||||||
|
z-index: 1; }
|
||||||
|
|
||||||
|
.fc-time-grid {
|
||||||
|
min-height: 100%;
|
||||||
|
/* so if height setting is 'auto', .fc-bg stretches to fill height */ }
|
||||||
|
|
||||||
|
.fc-time-grid table {
|
||||||
|
/* don't put outer borders on slats/bg/content/etc */
|
||||||
|
border: 0 hidden transparent; }
|
||||||
|
|
||||||
|
.fc-time-grid > .fc-bg {
|
||||||
|
z-index: 1; }
|
||||||
|
|
||||||
|
.fc-time-grid .fc-slats,
|
||||||
|
.fc-time-grid > hr {
|
||||||
|
/* the <hr> TimeGridView injects when grid is shorter than scroller */
|
||||||
|
position: relative;
|
||||||
|
z-index: 2; }
|
||||||
|
|
||||||
|
.fc-time-grid .fc-content-col {
|
||||||
|
position: relative;
|
||||||
|
/* because now-indicator lives directly inside */ }
|
||||||
|
|
||||||
|
.fc-time-grid .fc-content-skeleton {
|
||||||
|
position: absolute;
|
||||||
|
z-index: 3;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0; }
|
||||||
|
|
||||||
|
/* divs within a cell within the fc-content-skeleton */
|
||||||
|
.fc-time-grid .fc-business-container {
|
||||||
|
position: relative;
|
||||||
|
z-index: 1; }
|
||||||
|
|
||||||
|
.fc-time-grid .fc-bgevent-container {
|
||||||
|
position: relative;
|
||||||
|
z-index: 2; }
|
||||||
|
|
||||||
|
.fc-time-grid .fc-highlight-container {
|
||||||
|
position: relative;
|
||||||
|
z-index: 3; }
|
||||||
|
|
||||||
|
.fc-time-grid .fc-event-container {
|
||||||
|
position: relative;
|
||||||
|
z-index: 4; }
|
||||||
|
|
||||||
|
.fc-time-grid .fc-now-indicator-line {
|
||||||
|
z-index: 5; }
|
||||||
|
|
||||||
|
.fc-time-grid .fc-mirror-container {
|
||||||
|
/* also is fc-event-container */
|
||||||
|
position: relative;
|
||||||
|
z-index: 6; }
|
||||||
|
|
||||||
|
/* TimeGrid Slats (lines that run horizontally)
|
||||||
|
--------------------------------------------------------------------------------------------------*/
|
||||||
|
.fc-time-grid .fc-slats td {
|
||||||
|
height: 1.5em;
|
||||||
|
border-bottom: 0;
|
||||||
|
/* each cell is responsible for its top border */ }
|
||||||
|
|
||||||
|
.fc-time-grid .fc-slats .fc-minor td {
|
||||||
|
border-top-style: dotted; }
|
||||||
|
|
||||||
|
/* TimeGrid Highlighting Slots
|
||||||
|
--------------------------------------------------------------------------------------------------*/
|
||||||
|
.fc-time-grid .fc-highlight-container {
|
||||||
|
/* a div within a cell within the fc-highlight-skeleton */
|
||||||
|
position: relative;
|
||||||
|
/* scopes the left/right of the fc-highlight to be in the column */ }
|
||||||
|
|
||||||
|
.fc-time-grid .fc-highlight {
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
/* top and bottom will be in by JS */ }
|
||||||
|
|
||||||
|
/* TimeGrid Event Containment
|
||||||
|
--------------------------------------------------------------------------------------------------*/
|
||||||
|
.fc-ltr .fc-time-grid .fc-event-container {
|
||||||
|
/* space on the sides of events for LTR (default) */
|
||||||
|
margin: 0 2.5% 0 2px; }
|
||||||
|
|
||||||
|
.fc-rtl .fc-time-grid .fc-event-container {
|
||||||
|
/* space on the sides of events for RTL */
|
||||||
|
margin: 0 2px 0 2.5%; }
|
||||||
|
|
||||||
|
.fc-time-grid .fc-event,
|
||||||
|
.fc-time-grid .fc-bgevent {
|
||||||
|
position: absolute;
|
||||||
|
z-index: 1;
|
||||||
|
/* scope inner z-index's */ }
|
||||||
|
|
||||||
|
.fc-time-grid .fc-bgevent {
|
||||||
|
/* background events always span full width */
|
||||||
|
left: 0;
|
||||||
|
right: 0; }
|
||||||
|
|
||||||
|
/* TimeGrid Event Styling
|
||||||
|
----------------------------------------------------------------------------------------------------
|
||||||
|
We use the full "fc-time-grid-event" class instead of using descendants because the event won't
|
||||||
|
be a descendant of the grid when it is being dragged.
|
||||||
|
*/
|
||||||
|
.fc-time-grid-event {
|
||||||
|
margin-bottom: 1px; }
|
||||||
|
|
||||||
|
.fc-time-grid-event-inset {
|
||||||
|
-webkit-box-shadow: 0px 0px 0px 1px #fff;
|
||||||
|
box-shadow: 0px 0px 0px 1px #fff; }
|
||||||
|
|
||||||
|
.fc-time-grid-event.fc-not-start {
|
||||||
|
/* events that are continuing from another day */
|
||||||
|
/* replace space made by the top border with padding */
|
||||||
|
border-top-width: 0;
|
||||||
|
padding-top: 1px;
|
||||||
|
/* remove top rounded corners */
|
||||||
|
border-top-left-radius: 0;
|
||||||
|
border-top-right-radius: 0; }
|
||||||
|
|
||||||
|
.fc-time-grid-event.fc-not-end {
|
||||||
|
/* replace space made by the top border with padding */
|
||||||
|
border-bottom-width: 0;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
/* remove bottom rounded corners */
|
||||||
|
border-bottom-left-radius: 0;
|
||||||
|
border-bottom-right-radius: 0; }
|
||||||
|
|
||||||
|
.fc-time-grid-event .fc-content {
|
||||||
|
overflow: hidden;
|
||||||
|
max-height: 100%; }
|
||||||
|
|
||||||
|
.fc-time-grid-event .fc-time,
|
||||||
|
.fc-time-grid-event .fc-title {
|
||||||
|
padding: 0 1px; }
|
||||||
|
|
||||||
|
.fc-time-grid-event .fc-time {
|
||||||
|
font-size: .85em;
|
||||||
|
white-space: nowrap; }
|
||||||
|
|
||||||
|
/* short mode, where time and title are on the same line */
|
||||||
|
.fc-time-grid-event.fc-short .fc-content {
|
||||||
|
/* don't wrap to second line (now that contents will be inline) */
|
||||||
|
white-space: nowrap; }
|
||||||
|
|
||||||
|
.fc-time-grid-event.fc-short .fc-time,
|
||||||
|
.fc-time-grid-event.fc-short .fc-title {
|
||||||
|
/* put the time and title on the same line */
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: top; }
|
||||||
|
|
||||||
|
.fc-time-grid-event.fc-short .fc-time span {
|
||||||
|
display: none;
|
||||||
|
/* don't display the full time text... */ }
|
||||||
|
|
||||||
|
.fc-time-grid-event.fc-short .fc-time:before {
|
||||||
|
content: attr(data-start);
|
||||||
|
/* ...instead, display only the start time */ }
|
||||||
|
|
||||||
|
.fc-time-grid-event.fc-short .fc-time:after {
|
||||||
|
content: "\000A0-\000A0";
|
||||||
|
/* seperate with a dash, wrapped in nbsp's */ }
|
||||||
|
|
||||||
|
.fc-time-grid-event.fc-short .fc-title {
|
||||||
|
font-size: .85em;
|
||||||
|
/* make the title text the same size as the time */
|
||||||
|
padding: 0;
|
||||||
|
/* undo padding from above */ }
|
||||||
|
|
||||||
|
/* resizer (cursor device) */
|
||||||
|
.fc-time-grid-event.fc-allow-mouse-resize .fc-resizer {
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
height: 8px;
|
||||||
|
overflow: hidden;
|
||||||
|
line-height: 8px;
|
||||||
|
font-size: 11px;
|
||||||
|
font-family: monospace;
|
||||||
|
text-align: center;
|
||||||
|
cursor: s-resize; }
|
||||||
|
|
||||||
|
.fc-time-grid-event.fc-allow-mouse-resize .fc-resizer:after {
|
||||||
|
content: "="; }
|
||||||
|
|
||||||
|
/* resizer (touch device) */
|
||||||
|
.fc-time-grid-event.fc-selected .fc-resizer {
|
||||||
|
/* 10x10 dot */
|
||||||
|
border-radius: 5px;
|
||||||
|
border-width: 1px;
|
||||||
|
width: 8px;
|
||||||
|
height: 8px;
|
||||||
|
border-style: solid;
|
||||||
|
border-color: inherit;
|
||||||
|
background: #fff;
|
||||||
|
/* horizontally center */
|
||||||
|
left: 50%;
|
||||||
|
margin-left: -5px;
|
||||||
|
/* center on the bottom edge */
|
||||||
|
bottom: -5px; }
|
||||||
|
|
||||||
|
/* Now Indicator
|
||||||
|
--------------------------------------------------------------------------------------------------*/
|
||||||
|
.fc-time-grid .fc-now-indicator-line {
|
||||||
|
border-top-width: 1px;
|
||||||
|
left: 0;
|
||||||
|
right: 0; }
|
||||||
|
|
||||||
|
/* arrow on axis */
|
||||||
|
.fc-time-grid .fc-now-indicator-arrow {
|
||||||
|
margin-top: -5px;
|
||||||
|
/* vertically center on top coordinate */ }
|
||||||
|
|
||||||
|
.fc-ltr .fc-time-grid .fc-now-indicator-arrow {
|
||||||
|
left: 0;
|
||||||
|
/* triangle pointing right... */
|
||||||
|
border-width: 5px 0 5px 6px;
|
||||||
|
border-top-color: transparent;
|
||||||
|
border-bottom-color: transparent; }
|
||||||
|
|
||||||
|
.fc-rtl .fc-time-grid .fc-now-indicator-arrow {
|
||||||
|
right: 0;
|
||||||
|
/* triangle pointing left... */
|
||||||
|
border-width: 5px 6px 5px 0;
|
||||||
|
border-top-color: transparent;
|
||||||
|
border-bottom-color: transparent; }
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user