Landing Baru, K-means utama di service, ada SSE di Kmeans controller
|
@ -6,6 +6,7 @@
|
|||
use App\Models\Curanmor;
|
||||
use App\Models\Kecamatan;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Services\KMeansService;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
class CuranmorController extends Controller
|
||||
|
@ -90,7 +91,7 @@ public function update(Request $request, Curanmor $curanmor)
|
|||
Rule::unique('curanmors')->ignore($curanmor->id),
|
||||
],
|
||||
'klaster_id' => 'required|exists:klasters,id',
|
||||
'jumlah_curanmor' => 'required|integer|min:0',
|
||||
'jumlah_curanmor' => 'required|numeric|min:0',
|
||||
]);
|
||||
|
||||
// Update data
|
||||
|
@ -99,6 +100,12 @@ public function update(Request $request, Curanmor $curanmor)
|
|||
'klaster_id' => $request->klaster_id,
|
||||
'jumlah_curanmor' => $request->jumlah_curanmor,
|
||||
]);
|
||||
|
||||
$service = new KMeansService();
|
||||
$hasil = $service->hitungKMeansCuranmor();
|
||||
|
||||
// simpan hasil ke file json
|
||||
file_put_contents(storage_path('app/public/hasil_kmeans_curanmor.json'), json_encode($hasil));
|
||||
|
||||
return redirect('/curanmor')->with('succes', 'Data Kecamatan Berhasil Diubah');
|
||||
} catch (\Exception $e) {
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
use App\Models\Klaster;
|
||||
use App\Models\Kecamatan;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Services\KMeansService;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
class CurasController extends Controller
|
||||
|
@ -106,6 +107,12 @@ public function update(Request $request, $id)
|
|||
'jumlah_curas' => $request->jumlah_curas,
|
||||
]);
|
||||
|
||||
$service = new KMeansService();
|
||||
$hasil = $service->hitungKMeansCuras();
|
||||
|
||||
// simpan hasil ke file json
|
||||
file_put_contents(storage_path('app/public/hasil_kmeans_curas.json'), json_encode($hasil));
|
||||
|
||||
return redirect('/curas')->with('succes', 'Data Kecamatan Berhasil Diubah');
|
||||
} catch (\Exception $e) {
|
||||
return redirect('/curas')->with('error', 'Data Kecamatan Gagal Diubah: ' . $e->getMessage());
|
||||
|
|
|
@ -0,0 +1,219 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Curas;
|
||||
use App\Models\Klaster;
|
||||
use App\Models\Curanmor;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class KmeansController extends Controller
|
||||
{
|
||||
public function KMeansCuras()
|
||||
{
|
||||
$data = Curas::select('id', 'kecamatan_id', 'klaster_id', 'jumlah_curas')->orderBy('jumlah_curas', 'asc')->get();
|
||||
|
||||
$k = Klaster::count('id');
|
||||
$maxIterasi = 100;
|
||||
$centroids = $data->random($k)->values()->map(function ($item) {
|
||||
return [
|
||||
'jumlah_curas' => $item->jumlah_curas,
|
||||
];
|
||||
});
|
||||
|
||||
$iterasi = [];
|
||||
$prevAssignment = [];
|
||||
|
||||
for ($i = 0; $i < $maxIterasi; $i++) {
|
||||
$clustered = [];
|
||||
$currentAssignment = [];
|
||||
|
||||
foreach ($data as $item) {
|
||||
$jarak = [];
|
||||
|
||||
foreach ($centroids as $idx => $centroid) {
|
||||
$dist = abs($item->jumlah_curas - $centroid['jumlah_curas']);
|
||||
$jarak["jarakC" . ($idx + 1)] = $dist;
|
||||
}
|
||||
|
||||
$iterasi[$i][] = array_merge(['kecamatan_id' => $item->kecamatan_id], $jarak);
|
||||
|
||||
$minIndex = array_keys($jarak, min($jarak))[0]; // e.g. "jarakC2"
|
||||
$clusterNumber = (int) str_replace("jarakC", "", $minIndex);
|
||||
|
||||
$clustered[$clusterNumber][] = $item;
|
||||
$item->temp_klaster = $clusterNumber;
|
||||
$currentAssignment[$item->id] = $clusterNumber;
|
||||
}
|
||||
|
||||
// ✨ Cek konvergensi: jika assignment sekarang == sebelumnya, break
|
||||
if ($currentAssignment === $prevAssignment) {
|
||||
break;
|
||||
}
|
||||
|
||||
$prevAssignment = $currentAssignment;
|
||||
|
||||
|
||||
|
||||
// Update centroid berdasarkan rata-rata
|
||||
foreach ($clustered as $key => $group) {
|
||||
$avg = collect($group)->avg('jumlah_curas');
|
||||
$centroids = $centroids->map(function ($item, $index) use ($key, $avg) {
|
||||
return $index === ($key - 1)
|
||||
? ['jumlah_curas' => $avg]
|
||||
: $item;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Final mapping centroid ke klaster_id (aman/sedang/rawan)
|
||||
$finalCentroids = $centroids->map(function ($item, $index) {
|
||||
return ['index' => $index + 1, 'jumlah_curas' => $item['jumlah_curas']];
|
||||
})->sortBy('jumlah_curas')->values();
|
||||
|
||||
$centroidToKlaster = [];
|
||||
|
||||
foreach ($finalCentroids as $i => $centroid) {
|
||||
// Klaster ID mulai dari 1 (asumsi klaster di DB bernomor 1, 2, 3, ...)
|
||||
$centroidToKlaster[$centroid['index']] = $i + 1;
|
||||
}
|
||||
|
||||
|
||||
// Update ke database
|
||||
foreach ($data as $item) {
|
||||
Curas::where('id', $item->id)->update([
|
||||
'klaster_id' => $centroidToKlaster[$item->temp_klaster],
|
||||
]);
|
||||
}
|
||||
|
||||
session(['hasil_iterasi' => $iterasi]);
|
||||
|
||||
return response()->json($iterasi);
|
||||
}
|
||||
|
||||
public function KMeansCuranmor()
|
||||
{
|
||||
$data = Curanmor::select('id', 'kecamatan_id', 'klaster_id', 'jumlah_curanmor')->orderBy('jumlah_curanmor', 'asc')->get();
|
||||
$maxIterasi = 100;
|
||||
$hasilElbow = [];
|
||||
|
||||
for ($k = 1; $k <= 10; $k++) {
|
||||
// Ambil centroid awal secara acak
|
||||
$centroids = $data->random($k)->values()->map(function ($item) {
|
||||
return ['jumlah_curanmor' => $item->jumlah_curanmor];
|
||||
});
|
||||
|
||||
$prevAssignment = [];
|
||||
|
||||
for ($i = 0; $i < $maxIterasi; $i++) {
|
||||
$clustered = [];
|
||||
$currentAssignment = [];
|
||||
|
||||
foreach ($data as $item) {
|
||||
$jarak = [];
|
||||
|
||||
foreach ($centroids as $idx => $centroid) {
|
||||
$dist = abs($item->jumlah_curanmor - $centroid['jumlah_curanmor']);
|
||||
$jarak[$idx] = $dist;
|
||||
}
|
||||
|
||||
$minIndex = array_keys($jarak, min($jarak))[0];
|
||||
$clustered[$minIndex][] = $item;
|
||||
$currentAssignment[$item->id] = $minIndex;
|
||||
$item->temp_klaster = $minIndex;
|
||||
}
|
||||
|
||||
if ($currentAssignment === $prevAssignment) break;
|
||||
$prevAssignment = $currentAssignment;
|
||||
|
||||
foreach ($clustered as $key => $group) {
|
||||
$avg = collect($group)->avg('jumlah_curanmor');
|
||||
$centroids[$key] = ['jumlah_curanmor' => $avg];
|
||||
}
|
||||
}
|
||||
|
||||
// Hitung SSE (Sum of Squared Errors)
|
||||
$sse = 0;
|
||||
foreach ($data as $item) {
|
||||
$centroidVal = $centroids[$item->temp_klaster]['jumlah_curanmor'];
|
||||
$sse += pow($item->jumlah_curanmor - $centroidVal, 2);
|
||||
}
|
||||
|
||||
$hasilElbow[] = ['k' => $k, 'sse' => $sse];
|
||||
}
|
||||
|
||||
// Simpan hasil Elbow Method ke file
|
||||
file_put_contents(storage_path('app/public/hasil_elbow_curanmor.json'), json_encode($hasilElbow, JSON_PRETTY_PRINT));
|
||||
|
||||
// ===================== //
|
||||
// === Hitung k akhir === //
|
||||
// ===================== //
|
||||
|
||||
$k = Klaster::count(); // misalnya 3
|
||||
$centroids = $data->random($k)->values()->map(function ($item) {
|
||||
return ['jumlah_curanmor' => $item->jumlah_curanmor];
|
||||
});
|
||||
|
||||
$iterasi = [];
|
||||
$prevAssignment = [];
|
||||
|
||||
for ($i = 0; $i < $maxIterasi; $i++) {
|
||||
$clustered = [];
|
||||
$currentAssignment = [];
|
||||
|
||||
foreach ($data as $item) {
|
||||
$jarak = [];
|
||||
|
||||
foreach ($centroids as $idx => $centroid) {
|
||||
$dist = abs($item->jumlah_curanmor - $centroid['jumlah_curanmor']);
|
||||
$jarak["jarakC" . ($idx + 1)] = $dist;
|
||||
}
|
||||
|
||||
$iterasi[$i][] = array_merge(['kecamatan_id' => $item->kecamatan_id], $jarak);
|
||||
|
||||
$minIndex = array_keys($jarak, min($jarak))[0];
|
||||
$clusterNumber = (int) str_replace("jarakC", "", $minIndex);
|
||||
|
||||
$clustered[$clusterNumber][] = $item;
|
||||
$item->temp_klaster = $clusterNumber;
|
||||
$currentAssignment[$item->id] = $clusterNumber;
|
||||
}
|
||||
|
||||
if ($currentAssignment === $prevAssignment) {
|
||||
break;
|
||||
}
|
||||
|
||||
$prevAssignment = $currentAssignment;
|
||||
|
||||
foreach ($clustered as $key => $group) {
|
||||
$avg = collect($group)->avg('jumlah_curanmor');
|
||||
$centroids = $centroids->map(function ($item, $index) use ($key, $avg) {
|
||||
return $index === ($key - 1)
|
||||
? ['jumlah_curanmor' => $avg]
|
||||
: $item;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
$finalCentroids = $centroids->map(function ($item, $index) {
|
||||
return ['index' => $index + 1, 'jumlah_curanmor' => $item['jumlah_curanmor']];
|
||||
})->sortBy('jumlah_curanmor')->values();
|
||||
|
||||
$centroidToKlaster = [];
|
||||
|
||||
foreach ($finalCentroids as $i => $centroid) {
|
||||
$centroidToKlaster[$centroid['index']] = $i + 1;
|
||||
}
|
||||
|
||||
foreach ($data as $item) {
|
||||
Curanmor::where('id', $item->id)->update([
|
||||
'klaster_id' => $centroidToKlaster[$item->temp_klaster],
|
||||
]);
|
||||
}
|
||||
|
||||
session(['hasil_iterasi' => $iterasi]);
|
||||
return $iterasi;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,94 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Curas;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Klaster;
|
||||
|
||||
class curasKmeansController extends Controller
|
||||
{
|
||||
public function hitungKMeans()
|
||||
{
|
||||
$data = Curas::select('id', 'kecamatan_id', 'klaster_id', 'jumlah_curas')->orderBy('jumlah_curas', 'asc')->get();
|
||||
|
||||
$k = Klaster::count('id');
|
||||
$maxIterasi = 100;
|
||||
$centroids = $data->random($k)->values()->map(function ($item) {
|
||||
return [
|
||||
'jumlah_curas' => $item->jumlah_curas,
|
||||
];
|
||||
});
|
||||
|
||||
$iterasi = [];
|
||||
$prevAssignment = [];
|
||||
|
||||
for ($i = 0; $i < $maxIterasi; $i++) {
|
||||
$clustered = [];
|
||||
$currentAssignment = [];
|
||||
|
||||
foreach ($data as $item) {
|
||||
$jarak = [];
|
||||
|
||||
foreach ($centroids as $idx => $centroid) {
|
||||
$dist = abs($item->jumlah_curas - $centroid['jumlah_curas']);
|
||||
$jarak["jarakC" . ($idx + 1)] = $dist;
|
||||
}
|
||||
|
||||
$iterasi[$i][] = array_merge(['kecamatan_id' => $item->kecamatan_id], $jarak);
|
||||
|
||||
$minIndex = array_keys($jarak, min($jarak))[0]; // e.g. "jarakC2"
|
||||
$clusterNumber = (int) str_replace("jarakC", "", $minIndex);
|
||||
|
||||
$clustered[$clusterNumber][] = $item;
|
||||
$item->temp_klaster = $clusterNumber;
|
||||
$currentAssignment[$item->id] = $clusterNumber;
|
||||
}
|
||||
|
||||
// ✨ Cek konvergensi: jika assignment sekarang == sebelumnya, break
|
||||
if ($currentAssignment === $prevAssignment) {
|
||||
break;
|
||||
}
|
||||
|
||||
$prevAssignment = $currentAssignment;
|
||||
|
||||
|
||||
|
||||
// Update centroid berdasarkan rata-rata
|
||||
foreach ($clustered as $key => $group) {
|
||||
$avg = collect($group)->avg('jumlah_curas');
|
||||
$centroids = $centroids->map(function ($item, $index) use ($key, $avg) {
|
||||
return $index === ($key - 1)
|
||||
? ['jumlah_curas' => $avg]
|
||||
: $item;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Final mapping centroid ke klaster_id (aman/sedang/rawan)
|
||||
$finalCentroids = $centroids->map(function ($item, $index) {
|
||||
return ['index' => $index + 1, 'jumlah_curas' => $item['jumlah_curas']];
|
||||
})->sortBy('jumlah_curas')->values();
|
||||
|
||||
$centroidToKlaster = [];
|
||||
|
||||
foreach ($finalCentroids as $i => $centroid) {
|
||||
// Klaster ID mulai dari 1 (asumsi klaster di DB bernomor 1, 2, 3, ...)
|
||||
$centroidToKlaster[$centroid['index']] = $i + 1;
|
||||
}
|
||||
|
||||
|
||||
// Update ke database
|
||||
foreach ($data as $item) {
|
||||
Curas::where('id', $item->id)->update([
|
||||
'klaster_id' => $centroidToKlaster[$item->temp_klaster],
|
||||
]);
|
||||
}
|
||||
|
||||
session(['hasil_iterasi' => $iterasi]);
|
||||
|
||||
return response()->json($iterasi);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,177 @@
|
|||
<?php
|
||||
|
||||
namespace App\Services;
|
||||
|
||||
use App\Models\Curas;
|
||||
use App\Models\Klaster;
|
||||
use App\Models\Curanmor;
|
||||
|
||||
|
||||
class KMeansService
|
||||
{
|
||||
public function hitungKMeansCuras()
|
||||
{
|
||||
$data = Curas::select('id', 'kecamatan_id', 'klaster_id', 'jumlah_curas')->orderBy('jumlah_curas', 'asc')->get();
|
||||
|
||||
$k = Klaster::count('id');
|
||||
$maxIterasi = 100;
|
||||
$centroids = $data->random($k)->values()->map(function ($item) {
|
||||
return [
|
||||
'jumlah_curas' => $item->jumlah_curas,
|
||||
];
|
||||
});
|
||||
|
||||
$iterasi = [];
|
||||
$prevAssignment = [];
|
||||
|
||||
for ($i = 0; $i < $maxIterasi; $i++) {
|
||||
$clustered = [];
|
||||
$currentAssignment = [];
|
||||
|
||||
foreach ($data as $item) {
|
||||
$jarak = [];
|
||||
|
||||
foreach ($centroids as $idx => $centroid) {
|
||||
$dist = abs($item->jumlah_curas - $centroid['jumlah_curas']);
|
||||
$jarak["jarakC" . ($idx + 1)] = $dist;
|
||||
}
|
||||
|
||||
$iterasi[$i][] = array_merge(['kecamatan_id' => $item->kecamatan_id], $jarak);
|
||||
|
||||
$minIndex = array_keys($jarak, min($jarak))[0]; // e.g. "jarakC2"
|
||||
$clusterNumber = (int) str_replace("jarakC", "", $minIndex);
|
||||
|
||||
$clustered[$clusterNumber][] = $item;
|
||||
$item->temp_klaster = $clusterNumber;
|
||||
$currentAssignment[$item->id] = $clusterNumber;
|
||||
}
|
||||
|
||||
// ✨ Cek konvergensi: jika assignment sekarang == sebelumnya, break
|
||||
if ($currentAssignment === $prevAssignment) {
|
||||
break;
|
||||
}
|
||||
|
||||
$prevAssignment = $currentAssignment;
|
||||
|
||||
|
||||
|
||||
// Update centroid berdasarkan rata-rata
|
||||
foreach ($clustered as $key => $group) {
|
||||
$avg = collect($group)->avg('jumlah_curas');
|
||||
$centroids = $centroids->map(function ($item, $index) use ($key, $avg) {
|
||||
return $index === ($key - 1)
|
||||
? ['jumlah_curas' => $avg]
|
||||
: $item;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Final mapping centroid ke klaster_id (aman/sedang/rawan)
|
||||
$finalCentroids = $centroids->map(function ($item, $index) {
|
||||
return ['index' => $index + 1, 'jumlah_curas' => $item['jumlah_curas']];
|
||||
})->sortBy('jumlah_curas')->values();
|
||||
|
||||
$centroidToKlaster = [];
|
||||
|
||||
foreach ($finalCentroids as $i => $centroid) {
|
||||
// Klaster ID mulai dari 1 (asumsi klaster di DB bernomor 1, 2, 3, ...)
|
||||
$centroidToKlaster[$centroid['index']] = $i + 1;
|
||||
}
|
||||
|
||||
|
||||
// Update ke database
|
||||
foreach ($data as $item) {
|
||||
Curas::where('id', $item->id)->update([
|
||||
'klaster_id' => $centroidToKlaster[$item->temp_klaster],
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
return $iterasi;
|
||||
}
|
||||
|
||||
|
||||
public function hitungKMeansCuranmor()
|
||||
{
|
||||
$data = Curanmor::select('id', 'kecamatan_id', 'klaster_id', 'jumlah_curanmor')->orderBy('jumlah_curanmor', 'asc')->get();
|
||||
|
||||
$k = Klaster::count('id');
|
||||
$maxIterasi = 100;
|
||||
$centroids = $data->random($k)->values()->map(function ($item) {
|
||||
return [
|
||||
'jumlah_curanmor' => $item->jumlah_curanmor,
|
||||
];
|
||||
});
|
||||
|
||||
$iterasi = [];
|
||||
$prevAssignment = [];
|
||||
|
||||
for ($i = 0; $i < $maxIterasi; $i++) {
|
||||
$clustered = [];
|
||||
$currentAssignment = [];
|
||||
|
||||
foreach ($data as $item) {
|
||||
$jarak = [];
|
||||
|
||||
foreach ($centroids as $idx => $centroid) {
|
||||
$dist = abs($item->jumlah_curanmor - $centroid['jumlah_curanmor']);
|
||||
$jarak["jarakC" . ($idx + 1)] = $dist;
|
||||
}
|
||||
|
||||
$iterasi[$i][] = array_merge(['kecamatan_id' => $item->kecamatan_id], $jarak);
|
||||
|
||||
$minIndex = array_keys($jarak, min($jarak))[0]; // e.g. "jarakC2"
|
||||
$clusterNumber = (int) str_replace("jarakC", "", $minIndex);
|
||||
|
||||
$clustered[$clusterNumber][] = $item;
|
||||
$item->temp_klaster = $clusterNumber;
|
||||
$currentAssignment[$item->id] = $clusterNumber;
|
||||
}
|
||||
|
||||
// ✨ Cek konvergensi: jika assignment sekarang == sebelumnya, break
|
||||
if ($currentAssignment === $prevAssignment) {
|
||||
break;
|
||||
}
|
||||
|
||||
$prevAssignment = $currentAssignment;
|
||||
|
||||
|
||||
|
||||
// Update centroid berdasarkan rata-rata
|
||||
foreach ($clustered as $key => $group) {
|
||||
$avg = collect($group)->avg('jumlah_curanmor');
|
||||
$centroids = $centroids->map(function ($item, $index) use ($key, $avg) {
|
||||
return $index === ($key - 1)
|
||||
? ['jumlah_curanmor' => $avg]
|
||||
: $item;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Final mapping centroid ke klaster_id (aman/sedang/rawan)
|
||||
$finalCentroids = $centroids->map(function ($item, $index) {
|
||||
return ['index' => $index + 1, 'jumlah_curanmor' => $item['jumlah_curanmor']];
|
||||
})->sortBy('jumlah_curanmor')->values();
|
||||
|
||||
$centroidToKlaster = [];
|
||||
|
||||
foreach ($finalCentroids as $i => $centroid) {
|
||||
// Klaster ID mulai dari 1 (asumsi klaster di DB bernomor 1, 2, 3, ...)
|
||||
$centroidToKlaster[$centroid['index']] = $i + 1;
|
||||
}
|
||||
|
||||
|
||||
// Update ke database
|
||||
foreach ($data as $item) {
|
||||
Curanmor::where('id', $item->id)->update([
|
||||
'klaster_id' => $centroidToKlaster[$item->temp_klaster],
|
||||
]);
|
||||
}
|
||||
|
||||
session(['hasil_iterasi' => $iterasi]);
|
||||
|
||||
return $iterasi;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,420 @@
|
|||
/* Magnific Popup CSS */
|
||||
.mfp-bg {
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 1042;
|
||||
overflow: hidden;
|
||||
position: fixed;
|
||||
background: #0b0b0b;
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
.mfp-wrap {
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 1043;
|
||||
position: fixed;
|
||||
outline: none !important;
|
||||
-webkit-backface-visibility: hidden;
|
||||
}
|
||||
|
||||
.mfp-container {
|
||||
text-align: center;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
top: 0;
|
||||
padding: 0 8px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.mfp-container:before {
|
||||
content: "";
|
||||
display: inline-block;
|
||||
height: 100%;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.mfp-align-top .mfp-container:before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.mfp-content {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
margin: 0 auto;
|
||||
text-align: left;
|
||||
z-index: 1045;
|
||||
}
|
||||
|
||||
.mfp-inline-holder .mfp-content,
|
||||
.mfp-ajax-holder .mfp-content {
|
||||
width: 100%;
|
||||
cursor: auto;
|
||||
}
|
||||
|
||||
.mfp-ajax-cur {
|
||||
cursor: progress;
|
||||
}
|
||||
|
||||
.mfp-zoom-out-cur,
|
||||
.mfp-zoom-out-cur .mfp-image-holder .mfp-close {
|
||||
cursor: -moz-zoom-out;
|
||||
cursor: -webkit-zoom-out;
|
||||
cursor: zoom-out;
|
||||
}
|
||||
|
||||
.mfp-zoom {
|
||||
cursor: pointer;
|
||||
cursor: -webkit-zoom-in;
|
||||
cursor: -moz-zoom-in;
|
||||
cursor: zoom-in;
|
||||
}
|
||||
|
||||
.mfp-auto-cursor .mfp-content {
|
||||
cursor: auto;
|
||||
}
|
||||
|
||||
.mfp-close,
|
||||
.mfp-arrow,
|
||||
.mfp-preloader,
|
||||
.mfp-counter {
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.mfp-loading.mfp-figure {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.mfp-hide {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.mfp-preloader {
|
||||
color: #ccc;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
width: auto;
|
||||
text-align: center;
|
||||
margin-top: -0.8em;
|
||||
left: 8px;
|
||||
right: 8px;
|
||||
z-index: 1044;
|
||||
}
|
||||
.mfp-preloader a {
|
||||
color: #ccc;
|
||||
}
|
||||
.mfp-preloader a:hover {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.mfp-s-ready .mfp-preloader {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.mfp-s-error .mfp-content {
|
||||
display: none;
|
||||
}
|
||||
|
||||
button.mfp-close,
|
||||
button.mfp-arrow {
|
||||
overflow: visible;
|
||||
cursor: pointer;
|
||||
background: transparent;
|
||||
border: 0;
|
||||
-webkit-appearance: none;
|
||||
display: block;
|
||||
outline: none;
|
||||
padding: 0;
|
||||
z-index: 1046;
|
||||
box-shadow: none;
|
||||
touch-action: manipulation;
|
||||
}
|
||||
|
||||
button::-moz-focus-inner {
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.mfp-close {
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
line-height: 44px;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
text-decoration: none;
|
||||
text-align: center;
|
||||
opacity: 0.65;
|
||||
padding: 0 0 18px 10px;
|
||||
color: #fff;
|
||||
font-style: normal;
|
||||
font-size: 28px;
|
||||
font-family: Arial, Baskerville, monospace;
|
||||
}
|
||||
.mfp-close:hover,
|
||||
.mfp-close:focus {
|
||||
opacity: 1;
|
||||
}
|
||||
.mfp-close:active {
|
||||
top: 1px;
|
||||
}
|
||||
|
||||
.mfp-close-btn-in .mfp-close {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.mfp-image-holder .mfp-close,
|
||||
.mfp-iframe-holder .mfp-close {
|
||||
color: #fff;
|
||||
right: -6px;
|
||||
text-align: right;
|
||||
padding-right: 6px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.mfp-counter {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
color: #ccc;
|
||||
font-size: 12px;
|
||||
line-height: 18px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.mfp-arrow {
|
||||
position: absolute;
|
||||
opacity: 0.65;
|
||||
margin: 0;
|
||||
top: 50%;
|
||||
margin-top: -55px;
|
||||
padding: 0;
|
||||
width: 90px;
|
||||
height: 110px;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
}
|
||||
.mfp-arrow:active {
|
||||
margin-top: -54px;
|
||||
}
|
||||
.mfp-arrow:hover,
|
||||
.mfp-arrow:focus {
|
||||
opacity: 1;
|
||||
}
|
||||
.mfp-arrow:before,
|
||||
.mfp-arrow:after {
|
||||
content: "";
|
||||
display: block;
|
||||
width: 0;
|
||||
height: 0;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
margin-top: 35px;
|
||||
margin-left: 35px;
|
||||
border: medium inset transparent;
|
||||
}
|
||||
.mfp-arrow:after {
|
||||
border-top-width: 13px;
|
||||
border-bottom-width: 13px;
|
||||
top: 8px;
|
||||
}
|
||||
.mfp-arrow:before {
|
||||
border-top-width: 21px;
|
||||
border-bottom-width: 21px;
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
.mfp-arrow-left {
|
||||
left: 0;
|
||||
}
|
||||
.mfp-arrow-left:after {
|
||||
border-right: 17px solid #fff;
|
||||
margin-left: 31px;
|
||||
}
|
||||
.mfp-arrow-left:before {
|
||||
margin-left: 25px;
|
||||
border-right: 27px solid #3f3f3f;
|
||||
}
|
||||
|
||||
.mfp-arrow-right {
|
||||
right: 0;
|
||||
}
|
||||
.mfp-arrow-right:after {
|
||||
border-left: 17px solid #fff;
|
||||
margin-left: 39px;
|
||||
}
|
||||
.mfp-arrow-right:before {
|
||||
border-left: 27px solid #3f3f3f;
|
||||
}
|
||||
|
||||
.mfp-iframe-holder {
|
||||
padding-top: 40px;
|
||||
padding-bottom: 40px;
|
||||
}
|
||||
.mfp-iframe-holder .mfp-content {
|
||||
line-height: 0;
|
||||
width: 100%;
|
||||
max-width: 900px;
|
||||
}
|
||||
.mfp-iframe-holder .mfp-close {
|
||||
top: -40px;
|
||||
}
|
||||
|
||||
.mfp-iframe-scaler {
|
||||
width: 100%;
|
||||
height: 0;
|
||||
overflow: hidden;
|
||||
padding-top: 56.25%;
|
||||
}
|
||||
.mfp-iframe-scaler iframe {
|
||||
position: absolute;
|
||||
display: block;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
|
||||
background: #000;
|
||||
}
|
||||
|
||||
/* Main image in popup */
|
||||
img.mfp-img {
|
||||
width: auto;
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
display: block;
|
||||
line-height: 0;
|
||||
box-sizing: border-box;
|
||||
padding: 40px 0 40px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
/* The shadow behind the image */
|
||||
.mfp-figure {
|
||||
line-height: 0;
|
||||
}
|
||||
.mfp-figure:after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 40px;
|
||||
bottom: 40px;
|
||||
display: block;
|
||||
right: 0;
|
||||
width: auto;
|
||||
height: auto;
|
||||
z-index: -1;
|
||||
box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
|
||||
background: #444;
|
||||
}
|
||||
.mfp-figure small {
|
||||
color: #bdbdbd;
|
||||
display: block;
|
||||
font-size: 12px;
|
||||
line-height: 14px;
|
||||
}
|
||||
.mfp-figure figure {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.mfp-bottom-bar {
|
||||
margin-top: -36px;
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
cursor: auto;
|
||||
}
|
||||
|
||||
.mfp-title {
|
||||
text-align: left;
|
||||
line-height: 18px;
|
||||
color: #f3f3f3;
|
||||
word-wrap: break-word;
|
||||
padding-right: 36px;
|
||||
}
|
||||
|
||||
.mfp-image-holder .mfp-content {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.mfp-gallery .mfp-image-holder .mfp-figure {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 800px) and (orientation: landscape),
|
||||
screen and (max-height: 300px) {
|
||||
/**
|
||||
* Remove all paddings around the image on small screen
|
||||
*/
|
||||
.mfp-img-mobile .mfp-image-holder {
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
}
|
||||
.mfp-img-mobile img.mfp-img {
|
||||
padding: 0;
|
||||
}
|
||||
.mfp-img-mobile .mfp-figure:after {
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
}
|
||||
.mfp-img-mobile .mfp-figure small {
|
||||
display: inline;
|
||||
margin-left: 5px;
|
||||
}
|
||||
.mfp-img-mobile .mfp-bottom-bar {
|
||||
background: rgba(0, 0, 0, 0.6);
|
||||
bottom: 0;
|
||||
margin: 0;
|
||||
top: auto;
|
||||
padding: 3px 5px;
|
||||
position: fixed;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.mfp-img-mobile .mfp-bottom-bar:empty {
|
||||
padding: 0;
|
||||
}
|
||||
.mfp-img-mobile .mfp-counter {
|
||||
right: 5px;
|
||||
top: 3px;
|
||||
}
|
||||
.mfp-img-mobile .mfp-close {
|
||||
top: 0;
|
||||
right: 0;
|
||||
width: 35px;
|
||||
height: 35px;
|
||||
line-height: 35px;
|
||||
background: rgba(0, 0, 0, 0.6);
|
||||
position: fixed;
|
||||
text-align: center;
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (max-width: 900px) {
|
||||
.mfp-arrow {
|
||||
-webkit-transform: scale(0.75);
|
||||
transform: scale(0.75);
|
||||
}
|
||||
.mfp-arrow-left {
|
||||
-webkit-transform-origin: 0;
|
||||
transform-origin: 0;
|
||||
}
|
||||
.mfp-arrow-right {
|
||||
-webkit-transform-origin: 100%;
|
||||
transform-origin: 100%;
|
||||
}
|
||||
.mfp-container {
|
||||
padding-left: 6px;
|
||||
padding-right: 6px;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,179 @@
|
|||
/*
|
||||
Template: Markethon - Digital Marketing Agency Responsive HTML5 Template
|
||||
Author: iqonicthemes.in
|
||||
Design and Developed by: iqonicthemes.in
|
||||
NOTE: This file contains the styling for responsive Template.
|
||||
*/
|
||||
.mega-menu * {
|
||||
font-family: sans-serif;
|
||||
-ms-text-size-adjust: 100%;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
}
|
||||
.mega-menu article,
|
||||
.mega-menu aside,
|
||||
.mega-menu details,
|
||||
.mega-menu figcaption,
|
||||
.mega-menu figure,
|
||||
.mega-menu footer,
|
||||
.mega-menu header,
|
||||
.mega-menu main,
|
||||
.mega-menu menu,
|
||||
.mega-menu nav,
|
||||
.mega-menu section,
|
||||
.mega-menu summary {
|
||||
display: block;
|
||||
}
|
||||
.mega-menu audio,
|
||||
.mega-menu canvas,
|
||||
.mega-menu progress,
|
||||
.mega-menu video {
|
||||
display: inline-block;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
.mega-menu audio:not([controls]) {
|
||||
display: none;
|
||||
height: 0;
|
||||
}
|
||||
.mega-menu [hidden],
|
||||
.mega-menu template {
|
||||
display: none;
|
||||
}
|
||||
.mega-menu a {
|
||||
background-color: transparent;
|
||||
}
|
||||
.mega-menu a:active,
|
||||
.mega-menu a:hover {
|
||||
outline: 0;
|
||||
}
|
||||
.mega-menu abbr[title] {
|
||||
border-bottom: 1px dotted;
|
||||
}
|
||||
.mega-menu b,
|
||||
.mega-menu strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
.mega-menu dfn {
|
||||
font-style: italic;
|
||||
}
|
||||
.mega-menu h1 {
|
||||
font-size: 2em;
|
||||
margin: 0.67em 0;
|
||||
}
|
||||
.mega-menu mark {
|
||||
background: #ff0;
|
||||
color: #000;
|
||||
}
|
||||
.mega-menu small {
|
||||
font-size: 80%;
|
||||
}
|
||||
.mega-menu sub,
|
||||
.mega-menu sup {
|
||||
font-size: 75%;
|
||||
line-height: 0;
|
||||
position: relative;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
.mega-menu sup {
|
||||
top: -0.5em;
|
||||
}
|
||||
.mega-menu sub {
|
||||
bottom: -0.25em;
|
||||
}
|
||||
.mega-menu img {
|
||||
border: 0;
|
||||
}
|
||||
.mega-menu svg:not(:root) {
|
||||
overflow: hidden;
|
||||
}
|
||||
.mega-menu figure {
|
||||
margin: 1em 40px;
|
||||
}
|
||||
.mega-menu hr {
|
||||
box-sizing: content-box;
|
||||
height: 0;
|
||||
}
|
||||
.mega-menu pre {
|
||||
overflow: auto;
|
||||
}
|
||||
.mega-menu code,
|
||||
.mega-menu kbd,
|
||||
.mega-menu pre,
|
||||
.mega-menu samp {
|
||||
font-family: monospace, monospace;
|
||||
font-size: 1em;
|
||||
}
|
||||
.mega-menu button,
|
||||
.mega-menu input,
|
||||
.mega-menu optgroup,
|
||||
.mega-menu select,
|
||||
.mega-menu textarea {
|
||||
color: inherit;
|
||||
font: inherit;
|
||||
margin: 0;
|
||||
}
|
||||
.mega-menu button {
|
||||
overflow: visible;
|
||||
}
|
||||
.mega-menu button,
|
||||
.mega-menu select {
|
||||
text-transform: none;
|
||||
}
|
||||
.mega-menu button,
|
||||
.mega-menu html input[type="button"],
|
||||
.mega-menu input[type="reset"],
|
||||
.mega-menu input[type="submit"] {
|
||||
-webkit-appearance: button;
|
||||
cursor: pointer;
|
||||
}
|
||||
.mega-menu button[disabled],
|
||||
.mega-menu input[disabled] {
|
||||
cursor: default;
|
||||
}
|
||||
.mega-menu button::-moz-focus-inner,
|
||||
.mega-menu input::-moz-focus-inner {
|
||||
border: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.mega-menu input {
|
||||
line-height: normal;
|
||||
}
|
||||
.mega-menu input[type="checkbox"],
|
||||
.mega-menu input[type="radio"] {
|
||||
box-sizing: border-box;
|
||||
padding: 0;
|
||||
}
|
||||
.mega-menu input[type="number"]::-webkit-inner-spin-button,
|
||||
.mega-menu input[type="number"]::-webkit-outer-spin-button {
|
||||
height: auto;
|
||||
}
|
||||
.mega-menu input[type="search"] {
|
||||
-webkit-appearance: textfield;
|
||||
box-sizing: content-box;
|
||||
}
|
||||
.mega-menu input[type="search"]::-webkit-search-cancel-button,
|
||||
.mega-menu input[type="search"]::-webkit-search-decoration {
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
.mega-menu fieldset {
|
||||
border: 1px solid #c0c0c0;
|
||||
margin: 0 2px;
|
||||
padding: 0.35em 0.625em 0.75em;
|
||||
}
|
||||
.mega-menu legend {
|
||||
border: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.mega-menu textarea {
|
||||
overflow: auto;
|
||||
}
|
||||
.mega-menu optgroup {
|
||||
font-weight: bold;
|
||||
}
|
||||
.mega-menu table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
}
|
||||
.mega-menu td,
|
||||
.mega-menu th {
|
||||
padding: 0;
|
||||
}
|
|
@ -0,0 +1,184 @@
|
|||
/**
|
||||
* Owl Carousel v2.3.4
|
||||
* Copyright 2013-2018 David Deutsch
|
||||
* Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE
|
||||
*/
|
||||
.owl-carousel,
|
||||
.owl-carousel .owl-item {
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
position: relative;
|
||||
}
|
||||
.owl-carousel {
|
||||
display: none;
|
||||
width: 100%;
|
||||
z-index: 1;
|
||||
}
|
||||
.owl-carousel .owl-stage {
|
||||
position: relative;
|
||||
-ms-touch-action: pan-Y;
|
||||
touch-action: manipulation;
|
||||
-moz-backface-visibility: hidden;
|
||||
}
|
||||
.owl-carousel .owl-stage:after {
|
||||
content: ".";
|
||||
display: block;
|
||||
clear: both;
|
||||
visibility: hidden;
|
||||
line-height: 0;
|
||||
height: 0;
|
||||
}
|
||||
.owl-carousel .owl-stage-outer {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
-webkit-transform: translate3d(0, 0, 0);
|
||||
}
|
||||
.owl-carousel .owl-item,
|
||||
.owl-carousel .owl-wrapper {
|
||||
-webkit-backface-visibility: hidden;
|
||||
-moz-backface-visibility: hidden;
|
||||
-ms-backface-visibility: hidden;
|
||||
-webkit-transform: translate3d(0, 0, 0);
|
||||
-moz-transform: translate3d(0, 0, 0);
|
||||
-ms-transform: translate3d(0, 0, 0);
|
||||
}
|
||||
.owl-carousel .owl-item {
|
||||
min-height: 1px;
|
||||
float: left;
|
||||
-webkit-backface-visibility: hidden;
|
||||
-webkit-touch-callout: none;
|
||||
}
|
||||
.owl-carousel .owl-item img {
|
||||
display: block;
|
||||
width: 100%;
|
||||
}
|
||||
.owl-carousel .owl-dots.disabled,
|
||||
.owl-carousel .owl-nav.disabled {
|
||||
display: none;
|
||||
}
|
||||
.no-js .owl-carousel,
|
||||
.owl-carousel.owl-loaded {
|
||||
display: block;
|
||||
}
|
||||
.owl-carousel .owl-dot,
|
||||
.owl-carousel .owl-nav .owl-next,
|
||||
.owl-carousel .owl-nav .owl-prev {
|
||||
cursor: pointer;
|
||||
-webkit-user-select: none;
|
||||
-khtml-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
.owl-carousel .owl-nav button.owl-next,
|
||||
.owl-carousel .owl-nav button.owl-prev,
|
||||
.owl-carousel button.owl-dot {
|
||||
background: 0 0;
|
||||
color: inherit;
|
||||
border: none;
|
||||
padding: 0 !important;
|
||||
font: inherit;
|
||||
}
|
||||
.owl-carousel.owl-loading {
|
||||
opacity: 0;
|
||||
display: block;
|
||||
}
|
||||
.owl-carousel.owl-hidden {
|
||||
opacity: 0;
|
||||
}
|
||||
.owl-carousel.owl-refresh .owl-item {
|
||||
visibility: hidden;
|
||||
}
|
||||
.owl-carousel.owl-drag .owl-item {
|
||||
-ms-touch-action: pan-y;
|
||||
touch-action: pan-y;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
.owl-carousel.owl-grab {
|
||||
cursor: move;
|
||||
cursor: grab;
|
||||
}
|
||||
.owl-carousel.owl-rtl {
|
||||
direction: rtl;
|
||||
}
|
||||
.owl-carousel.owl-rtl .owl-item {
|
||||
float: right;
|
||||
}
|
||||
.owl-carousel .animated {
|
||||
animation-duration: 1s;
|
||||
animation-fill-mode: both;
|
||||
}
|
||||
.owl-carousel .owl-animated-in {
|
||||
z-index: 0;
|
||||
}
|
||||
.owl-carousel .owl-animated-out {
|
||||
z-index: 1;
|
||||
}
|
||||
.owl-carousel .fadeOut {
|
||||
animation-name: fadeOut;
|
||||
}
|
||||
@keyframes fadeOut {
|
||||
0% {
|
||||
opacity: 1;
|
||||
}
|
||||
100% {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
.owl-height {
|
||||
transition: height 0.5s ease-in-out;
|
||||
}
|
||||
.owl-carousel .owl-item .owl-lazy {
|
||||
opacity: 0;
|
||||
transition: opacity 0.4s ease;
|
||||
}
|
||||
.owl-carousel .owl-item .owl-lazy:not([src]),
|
||||
.owl-carousel .owl-item .owl-lazy[src^=""] {
|
||||
max-height: 0;
|
||||
}
|
||||
.owl-carousel .owl-item img.owl-lazy {
|
||||
transform-style: preserve-3d;
|
||||
}
|
||||
.owl-carousel .owl-video-wrapper {
|
||||
position: relative;
|
||||
height: 100%;
|
||||
background: #000;
|
||||
}
|
||||
.owl-carousel .owl-video-play-icon {
|
||||
position: absolute;
|
||||
height: 80px;
|
||||
width: 80px;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
margin-left: -40px;
|
||||
margin-top: -40px;
|
||||
background: url(owl.video.play.png) no-repeat;
|
||||
cursor: pointer;
|
||||
z-index: 1;
|
||||
-webkit-backface-visibility: hidden;
|
||||
transition: transform 0.1s ease;
|
||||
}
|
||||
.owl-carousel .owl-video-play-icon:hover {
|
||||
-ms-transform: scale(1.3, 1.3);
|
||||
transform: scale(1.3, 1.3);
|
||||
}
|
||||
.owl-carousel .owl-video-playing .owl-video-play-icon,
|
||||
.owl-carousel .owl-video-playing .owl-video-tn {
|
||||
display: none;
|
||||
}
|
||||
.owl-carousel .owl-video-tn {
|
||||
opacity: 0;
|
||||
height: 100%;
|
||||
background-position: center center;
|
||||
background-repeat: no-repeat;
|
||||
background-size: contain;
|
||||
transition: opacity 0.4s ease;
|
||||
}
|
||||
.owl-carousel .owl-video-frame {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
|
@ -0,0 +1,350 @@
|
|||
.cd-horizontal-timeline {
|
||||
opacity: 0;
|
||||
width: 100%;
|
||||
-webkit-transition: opacity 0.2s;
|
||||
-moz-transition: opacity 0.2s;
|
||||
transition: opacity 0.2s;
|
||||
}
|
||||
.cd-horizontal-timeline::before {
|
||||
content: "mobile";
|
||||
display: none;
|
||||
}
|
||||
.cd-horizontal-timeline.loaded {
|
||||
opacity: 1;
|
||||
}
|
||||
.cd-horizontal-timeline .timeline {
|
||||
position: relative;
|
||||
height: 100px;
|
||||
width: 100%;
|
||||
max-width: 100%;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.cd-horizontal-timeline .events-wrapper {
|
||||
position: relative;
|
||||
height: 100%;
|
||||
margin: 0 38px;
|
||||
overflow: hidden;
|
||||
}
|
||||
.cd-horizontal-timeline .events {
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
left: 0;
|
||||
top: 49px;
|
||||
height: 2px;
|
||||
background: #dfdfdf;
|
||||
-webkit-transition: -webkit-transform 0.4s;
|
||||
-moz-transition: -moz-transform 0.4s;
|
||||
transition: transform 0.4s;
|
||||
}
|
||||
.cd-horizontal-timeline .filling-line {
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
left: 0;
|
||||
top: 0;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
background-color: #7c60d5;
|
||||
-webkit-transform: scaleX(0);
|
||||
-moz-transform: scaleX(0);
|
||||
-ms-transform: scaleX(0);
|
||||
-o-transform: scaleX(0);
|
||||
transform: scaleX(0);
|
||||
-webkit-transform-origin: left center;
|
||||
-moz-transform-origin: left center;
|
||||
-ms-transform-origin: left center;
|
||||
-o-transform-origin: left center;
|
||||
transform-origin: left center;
|
||||
-webkit-transition: -webkit-transform 0.3s;
|
||||
-moz-transition: -moz-transform 0.3s;
|
||||
transition: transform 0.3s;
|
||||
}
|
||||
.cd-horizontal-timeline .events a {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
z-index: 2;
|
||||
text-align: center;
|
||||
font-size: 14px;
|
||||
padding-bottom: 15px;
|
||||
color: #1b0e3d;
|
||||
-webkit-transform: translateZ(0);
|
||||
-moz-transform: translateZ(0);
|
||||
-ms-transform: translateZ(0);
|
||||
-o-transform: translateZ(0);
|
||||
transform: translateZ(0);
|
||||
}
|
||||
.cd-horizontal-timeline .events a::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
right: auto;
|
||||
-webkit-transform: translateX(-50%);
|
||||
-moz-transform: translateX(-50%);
|
||||
-ms-transform: translateX(-50%);
|
||||
-o-transform: translateX(-50%);
|
||||
transform: translateX(-50%);
|
||||
bottom: -5px;
|
||||
height: 12px;
|
||||
width: 12px;
|
||||
border-radius: 50%;
|
||||
border: 2px solid #7c60d5;
|
||||
background-color: #f8f8f8;
|
||||
-webkit-transition: background-color 0.3s, border-color 0.3s;
|
||||
-moz-transition: background-color 0.3s, border-color 0.3s;
|
||||
transition: background-color 0.3s, border-color 0.3s;
|
||||
}
|
||||
.no-touch .cd-horizontal-timeline .events a:hover::after {
|
||||
background-color: #7c60d5;
|
||||
border-color: #7c60d5;
|
||||
}
|
||||
.cd-horizontal-timeline .events a.selected {
|
||||
pointer-events: none;
|
||||
}
|
||||
.cd-horizontal-timeline .events a.selected::after {
|
||||
background-color: #7c60d5;
|
||||
border-color: #7c60d5;
|
||||
}
|
||||
.cd-horizontal-timeline .events a.older-event::after {
|
||||
border-color: #7c60d5;
|
||||
}
|
||||
.cd-horizontal-timeline .events ol,
|
||||
ul {
|
||||
list-style: none;
|
||||
}
|
||||
@media only screen and (min-width: 1100px) {
|
||||
.cd-horizontal-timeline::before {
|
||||
content: "desktop";
|
||||
}
|
||||
}
|
||||
.cd-timeline-navigation a {
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
top: 50%;
|
||||
bottom: auto;
|
||||
-webkit-transform: translateY(-50%);
|
||||
-moz-transform: translateY(-50%);
|
||||
-ms-transform: translateY(-50%);
|
||||
-o-transform: translateY(-50%);
|
||||
transform: translateY(-50%);
|
||||
height: 38px;
|
||||
width: 38px;
|
||||
border-radius: 50%;
|
||||
border: 2px solid #7c60d5;
|
||||
background: #7c60d5;
|
||||
overflow: hidden;
|
||||
color: transparent;
|
||||
text-indent: 100%;
|
||||
white-space: nowrap;
|
||||
-webkit-transition: border-color 0.3s;
|
||||
-moz-transition: border-color 0.3s;
|
||||
transition: border-color 0.3s;
|
||||
}
|
||||
.cd-timeline-navigation a::after {
|
||||
content: "\f104";
|
||||
font-size: 18px;
|
||||
font-family: "Font Awesome 5 Free";
|
||||
position: absolute;
|
||||
line-height: 38px;
|
||||
display: inline-block;
|
||||
top: -3px;
|
||||
left: 4px;
|
||||
font-weight: 900;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
}
|
||||
.cd-timeline-navigation a.prev::after {
|
||||
content: "\f104";
|
||||
}
|
||||
.cd-timeline-navigation a.next::after {
|
||||
content: "\f105";
|
||||
}
|
||||
.cd-timeline-navigation a.next {
|
||||
right: 0;
|
||||
}
|
||||
.cd-timeline-navigation a.prev {
|
||||
left: 0;
|
||||
}
|
||||
.no-touch .cd-timeline-navigation a:hover {
|
||||
border-color: #7b9d6f;
|
||||
}
|
||||
.cd-timeline-navigation a.inactive {
|
||||
cursor: not-allowed;
|
||||
}
|
||||
.cd-timeline-navigation a.inactive::after {
|
||||
background-position: 0 -16px;
|
||||
}
|
||||
.no-touch .cd-timeline-navigation a.inactive:hover {
|
||||
border-color: #dfdfdf;
|
||||
}
|
||||
.cd-horizontal-timeline .events-content {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 100% !important;
|
||||
margin: 0 0 0;
|
||||
overflow: hidden;
|
||||
-webkit-transition: height 0.4s;
|
||||
-moz-transition: height 0.4s;
|
||||
transition: height 0.4s;
|
||||
}
|
||||
.cd-horizontal-timeline .events-content li {
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
width: 80%;
|
||||
left: 0;
|
||||
margin: 0 auto;
|
||||
list-style: none;
|
||||
top: 0;
|
||||
text-align: center;
|
||||
-webkit-transform: translateX(-100%);
|
||||
-moz-transform: translateX(-100%);
|
||||
-ms-transform: translateX(-100%);
|
||||
-o-transform: translateX(-100%);
|
||||
transform: translateX(-100%);
|
||||
background: #33e2a0;
|
||||
padding: 60px 30px;
|
||||
-webkit-border-radius: 5px;
|
||||
-moz-border-radius: 5px;
|
||||
border-radius: 5px;
|
||||
opacity: 0;
|
||||
-webkit-animation-duration: 0.4s;
|
||||
-moz-animation-duration: 0.4s;
|
||||
animation-duration: 0.4s;
|
||||
-webkit-animation-timing-function: ease-in-out;
|
||||
-moz-animation-timing-function: ease-in-out;
|
||||
animation-timing-function: ease-in-out;
|
||||
}
|
||||
.cd-horizontal-timeline .events-content ol {
|
||||
margin: 0;
|
||||
}
|
||||
.cd-horizontal-timeline .events-content li.selected {
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
opacity: 1;
|
||||
-webkit-transform: translateX(0);
|
||||
-moz-transform: translateX(0);
|
||||
-ms-transform: translateX(0);
|
||||
-o-transform: translateX(0);
|
||||
transform: translateX(0);
|
||||
background: #33e2a0;
|
||||
}
|
||||
.cd-horizontal-timeline .events-content li.enter-right,
|
||||
.cd-horizontal-timeline .events-content li.leave-right {
|
||||
-webkit-animation-name: cd-enter-right;
|
||||
-moz-animation-name: cd-enter-right;
|
||||
animation-name: cd-enter-right;
|
||||
}
|
||||
.cd-horizontal-timeline .events-content li.enter-left,
|
||||
.cd-horizontal-timeline .events-content li.leave-left {
|
||||
-webkit-animation-name: cd-enter-left;
|
||||
-moz-animation-name: cd-enter-left;
|
||||
animation-name: cd-enter-left;
|
||||
}
|
||||
.cd-horizontal-timeline .events-content li.leave-right,
|
||||
.cd-horizontal-timeline .events-content li.leave-left {
|
||||
-webkit-animation-direction: reverse;
|
||||
-moz-animation-direction: reverse;
|
||||
animation-direction: reverse;
|
||||
}
|
||||
.cd-horizontal-timeline .events-content li > * {
|
||||
max-width: 800px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.cd-horizontal-timeline .events-content h2 {
|
||||
font-weight: bold;
|
||||
font-size: 2.6rem;
|
||||
font-family: "Playfair Display", serif;
|
||||
font-weight: 700;
|
||||
line-height: 1.2;
|
||||
}
|
||||
.cd-horizontal-timeline .events-content em {
|
||||
display: block;
|
||||
font-style: italic;
|
||||
margin: 10px auto;
|
||||
}
|
||||
.cd-horizontal-timeline .events-content em::before {
|
||||
content: "- ";
|
||||
}
|
||||
.cd-horizontal-timeline .events-content p {
|
||||
font-size: 1.4rem;
|
||||
color: #959595;
|
||||
}
|
||||
.cd-horizontal-timeline .events-content em,
|
||||
.cd-horizontal-timeline .events-content p {
|
||||
line-height: 1.6;
|
||||
font-size: 16px;
|
||||
}
|
||||
@-webkit-keyframes cd-enter-right {
|
||||
0% {
|
||||
opacity: 0;
|
||||
-webkit-transform: translateX(100%);
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateX(0%);
|
||||
}
|
||||
}
|
||||
@-moz-keyframes cd-enter-right {
|
||||
0% {
|
||||
opacity: 0;
|
||||
-moz-transform: translateX(100%);
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
-moz-transform: translateX(0%);
|
||||
}
|
||||
}
|
||||
@keyframes cd-enter-right {
|
||||
0% {
|
||||
opacity: 0;
|
||||
-webkit-transform: translateX(100%);
|
||||
-moz-transform: translateX(100%);
|
||||
-ms-transform: translateX(100%);
|
||||
-o-transform: translateX(100%);
|
||||
transform: translateX(100%);
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateX(0%);
|
||||
-moz-transform: translateX(0%);
|
||||
-ms-transform: translateX(0%);
|
||||
-o-transform: translateX(0%);
|
||||
transform: translateX(0%);
|
||||
}
|
||||
}
|
||||
@-webkit-keyframes cd-enter-left {
|
||||
0% {
|
||||
opacity: 0;
|
||||
-webkit-transform: translateX(-100%);
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateX(0%);
|
||||
}
|
||||
}
|
||||
@-moz-keyframes cd-enter-left {
|
||||
0% {
|
||||
opacity: 0;
|
||||
-moz-transform: translateX(-100%);
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
-moz-transform: translateX(0%);
|
||||
}
|
||||
}
|
||||
@keyframes cd-enter-left {
|
||||
0% {
|
||||
opacity: 0;
|
||||
-webkit-transform: translateX(-100%);
|
||||
-moz-transform: translateX(-100%);
|
||||
-ms-transform: translateX(-100%);
|
||||
-o-transform: translateX(-100%);
|
||||
transform: translateX(-100%);
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateX(0%);
|
||||
-moz-transform: translateX(0%);
|
||||
-ms-transform: translateX(0%);
|
||||
-o-transform: translateX(0%);
|
||||
transform: translateX(0%);
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 62 KiB |
After Width: | Height: | Size: 34 KiB |
After Width: | Height: | Size: 35 KiB |
After Width: | Height: | Size: 5.9 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 5.7 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 8.4 KiB |
After Width: | Height: | Size: 56 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 41 KiB |
After Width: | Height: | Size: 46 KiB |
After Width: | Height: | Size: 7.8 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 5.9 KiB |
After Width: | Height: | Size: 7.1 KiB |
After Width: | Height: | Size: 5.7 KiB |
After Width: | Height: | Size: 4.8 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 4.8 KiB |
After Width: | Height: | Size: 4.0 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 35 KiB |
|
@ -0,0 +1,97 @@
|
|||
(function ($) {
|
||||
$.fn.appear = function (fn, options) {
|
||||
var settings = $.extend(
|
||||
{ data: undefined, one: true, accX: 0, accY: 0 },
|
||||
options
|
||||
);
|
||||
return this.each(function () {
|
||||
var t = $(this);
|
||||
t.appeared = false;
|
||||
if (!fn) {
|
||||
t.trigger("appear", settings.data);
|
||||
return;
|
||||
}
|
||||
var w = $(window);
|
||||
var check = function () {
|
||||
if (!t.is(":visible")) {
|
||||
t.appeared = false;
|
||||
return;
|
||||
}
|
||||
var a = w.scrollLeft();
|
||||
var b = w.scrollTop();
|
||||
var o = t.offset();
|
||||
var x = o.left;
|
||||
var y = o.top;
|
||||
var ax = settings.accX;
|
||||
var ay = settings.accY;
|
||||
var th = t.height();
|
||||
var wh = w.height();
|
||||
var tw = t.width();
|
||||
var ww = w.width();
|
||||
if (
|
||||
y + th + ay >= b &&
|
||||
y <= b + wh + ay &&
|
||||
x + tw + ax >= a &&
|
||||
x <= a + ww + ax
|
||||
) {
|
||||
if (!t.appeared) t.trigger("appear", settings.data);
|
||||
} else {
|
||||
t.appeared = false;
|
||||
}
|
||||
};
|
||||
var modifiedFn = function () {
|
||||
t.appeared = true;
|
||||
if (settings.one) {
|
||||
w.unbind("scroll", check);
|
||||
var i = $.inArray(check, $.fn.appear.checks);
|
||||
if (i >= 0) $.fn.appear.checks.splice(i, 1);
|
||||
}
|
||||
fn.apply(this, arguments);
|
||||
};
|
||||
if (settings.one) t.one("appear", settings.data, modifiedFn);
|
||||
else t.bind("appear", settings.data, modifiedFn);
|
||||
w.scroll(check);
|
||||
$.fn.appear.checks.push(check);
|
||||
check();
|
||||
});
|
||||
};
|
||||
$.extend($.fn.appear, {
|
||||
checks: [],
|
||||
timeout: null,
|
||||
checkAll: function () {
|
||||
var length = $.fn.appear.checks.length;
|
||||
if (length > 0) while (length--) $.fn.appear.checks[length]();
|
||||
},
|
||||
run: function () {
|
||||
if ($.fn.appear.timeout) clearTimeout($.fn.appear.timeout);
|
||||
$.fn.appear.timeout = setTimeout($.fn.appear.checkAll, 20);
|
||||
},
|
||||
});
|
||||
$.each(
|
||||
[
|
||||
"append",
|
||||
"prepend",
|
||||
"after",
|
||||
"before",
|
||||
"attr",
|
||||
"removeAttr",
|
||||
"addClass",
|
||||
"removeClass",
|
||||
"toggleClass",
|
||||
"remove",
|
||||
"css",
|
||||
"show",
|
||||
"hide",
|
||||
],
|
||||
function (i, n) {
|
||||
var old = $.fn[n];
|
||||
if (old) {
|
||||
$.fn[n] = function () {
|
||||
var r = old.apply(this, arguments);
|
||||
$.fn.appear.run();
|
||||
return r;
|
||||
};
|
||||
}
|
||||
}
|
||||
);
|
||||
})(jQuery);
|
|
@ -0,0 +1,240 @@
|
|||
/**
|
||||
* jquery-circle-progress - jQuery Plugin to draw animated circular progress bars:
|
||||
* {@link http://kottenator.github.io/jquery-circle-progress/}
|
||||
*
|
||||
* @author Rostyslav Bryzgunov <kottenator@gmail.com>
|
||||
* @version 1.2.2
|
||||
* @licence MIT
|
||||
* @preserve
|
||||
*/
|
||||
!(function (i) {
|
||||
if ("function" == typeof define && define.amd) define(["jquery"], i);
|
||||
else if ("object" == typeof module && module.exports) {
|
||||
var t = require("jquery");
|
||||
i(t), (module.exports = t);
|
||||
} else i(jQuery);
|
||||
})(function (i) {
|
||||
function t(i) {
|
||||
this.init(i);
|
||||
}
|
||||
(t.prototype = {
|
||||
value: 0,
|
||||
size: 130,
|
||||
startAngle: -Math.PI,
|
||||
thickness: "auto",
|
||||
fill: { gradient: ["#3aeabb", "#fdd250"] },
|
||||
emptyFill: "rgba(0, 0, 0, .1)",
|
||||
animation: { duration: 1200, easing: "circleProgressEasing" },
|
||||
animationStartValue: 0,
|
||||
reverse: !1,
|
||||
lineCap: "butt",
|
||||
insertMode: "prepend",
|
||||
constructor: t,
|
||||
el: null,
|
||||
canvas: null,
|
||||
ctx: null,
|
||||
radius: 0,
|
||||
arcFill: null,
|
||||
lastFrameValue: 0,
|
||||
init: function (t) {
|
||||
i.extend(this, t),
|
||||
(this.radius = this.size / 2),
|
||||
this.initWidget(),
|
||||
this.initFill(),
|
||||
this.draw(),
|
||||
this.el.trigger("circle-inited");
|
||||
},
|
||||
initWidget: function () {
|
||||
this.canvas ||
|
||||
(this.canvas = i("<canvas>")[
|
||||
"prepend" == this.insertMode ? "prependTo" : "appendTo"
|
||||
](this.el)[0]);
|
||||
var t = this.canvas;
|
||||
if (
|
||||
((t.width = this.size),
|
||||
(t.height = this.size),
|
||||
(this.ctx = t.getContext("2d")),
|
||||
window.devicePixelRatio > 1)
|
||||
) {
|
||||
var e = window.devicePixelRatio;
|
||||
(t.style.width = t.style.height = this.size + "px"),
|
||||
(t.width = t.height = this.size * e),
|
||||
this.ctx.scale(e, e);
|
||||
}
|
||||
},
|
||||
initFill: function () {
|
||||
function t() {
|
||||
var t = i("<canvas>")[0];
|
||||
(t.width = e.size),
|
||||
(t.height = e.size),
|
||||
t.getContext("2d").drawImage(g, 0, 0, r, r),
|
||||
(e.arcFill = e.ctx.createPattern(t, "no-repeat")),
|
||||
e.drawFrame(e.lastFrameValue);
|
||||
}
|
||||
var e = this,
|
||||
a = this.fill,
|
||||
n = this.ctx,
|
||||
r = this.size;
|
||||
if (!a) throw Error("The fill is not specified!");
|
||||
if (
|
||||
("string" == typeof a && (a = { color: a }),
|
||||
a.color && (this.arcFill = a.color),
|
||||
a.gradient)
|
||||
) {
|
||||
var s = a.gradient;
|
||||
if (1 == s.length) this.arcFill = s[0];
|
||||
else if (s.length > 1) {
|
||||
for (
|
||||
var l = a.gradientAngle || 0,
|
||||
o = a.gradientDirection || [
|
||||
(r / 2) * (1 - Math.cos(l)),
|
||||
(r / 2) * (1 + Math.sin(l)),
|
||||
(r / 2) * (1 + Math.cos(l)),
|
||||
(r / 2) * (1 - Math.sin(l)),
|
||||
],
|
||||
h = n.createLinearGradient.apply(n, o),
|
||||
c = 0;
|
||||
c < s.length;
|
||||
c++
|
||||
) {
|
||||
var d = s[c],
|
||||
u = c / (s.length - 1);
|
||||
i.isArray(d) && ((u = d[1]), (d = d[0])), h.addColorStop(u, d);
|
||||
}
|
||||
this.arcFill = h;
|
||||
}
|
||||
}
|
||||
if (a.image) {
|
||||
var g;
|
||||
a.image instanceof Image
|
||||
? (g = a.image)
|
||||
: ((g = new Image()), (g.src = a.image)),
|
||||
g.complete ? t() : (g.onload = t);
|
||||
}
|
||||
},
|
||||
draw: function () {
|
||||
this.animation
|
||||
? this.drawAnimated(this.value)
|
||||
: this.drawFrame(this.value);
|
||||
},
|
||||
drawFrame: function (i) {
|
||||
(this.lastFrameValue = i),
|
||||
this.ctx.clearRect(0, 0, this.size, this.size),
|
||||
this.drawEmptyArc(i),
|
||||
this.drawArc(i);
|
||||
},
|
||||
drawArc: function (i) {
|
||||
if (0 !== i) {
|
||||
var t = this.ctx,
|
||||
e = this.radius,
|
||||
a = this.getThickness(),
|
||||
n = this.startAngle;
|
||||
t.save(),
|
||||
t.beginPath(),
|
||||
this.reverse
|
||||
? t.arc(e, e, e - a / 2, n - 2 * Math.PI * i, n)
|
||||
: t.arc(e, e, e - a / 2, n, n + 2 * Math.PI * i),
|
||||
(t.lineWidth = a),
|
||||
(t.lineCap = this.lineCap),
|
||||
(t.strokeStyle = this.arcFill),
|
||||
t.stroke(),
|
||||
t.restore();
|
||||
}
|
||||
},
|
||||
drawEmptyArc: function (i) {
|
||||
var t = this.ctx,
|
||||
e = this.radius,
|
||||
a = this.getThickness(),
|
||||
n = this.startAngle;
|
||||
i < 1 &&
|
||||
(t.save(),
|
||||
t.beginPath(),
|
||||
i <= 0
|
||||
? t.arc(e, e, e - a / 2, 0, 2 * Math.PI)
|
||||
: this.reverse
|
||||
? t.arc(e, e, e - a / 2, n, n - 2 * Math.PI * i)
|
||||
: t.arc(e, e, e - a / 2, n + 2 * Math.PI * i, n),
|
||||
(t.lineWidth = a),
|
||||
(t.strokeStyle = this.emptyFill),
|
||||
t.stroke(),
|
||||
t.restore());
|
||||
},
|
||||
drawAnimated: function (t) {
|
||||
var e = this,
|
||||
a = this.el,
|
||||
n = i(this.canvas);
|
||||
n.stop(!0, !1),
|
||||
a.trigger("circle-animation-start"),
|
||||
n
|
||||
.css({ animationProgress: 0 })
|
||||
.animate(
|
||||
{ animationProgress: 1 },
|
||||
i.extend({}, this.animation, {
|
||||
step: function (i) {
|
||||
var n = e.animationStartValue * (1 - i) + t * i;
|
||||
e.drawFrame(n), a.trigger("circle-animation-progress", [i, n]);
|
||||
},
|
||||
})
|
||||
)
|
||||
.promise()
|
||||
.always(function () {
|
||||
a.trigger("circle-animation-end");
|
||||
});
|
||||
},
|
||||
getThickness: function () {
|
||||
return i.isNumeric(this.thickness) ? this.thickness : this.size / 14;
|
||||
},
|
||||
getValue: function () {
|
||||
return this.value;
|
||||
},
|
||||
setValue: function (i) {
|
||||
this.animation && (this.animationStartValue = this.lastFrameValue),
|
||||
(this.value = i),
|
||||
this.draw();
|
||||
},
|
||||
}),
|
||||
(i.circleProgress = { defaults: t.prototype }),
|
||||
(i.easing.circleProgressEasing = function (i) {
|
||||
return i < 0.5
|
||||
? ((i = 2 * i), 0.5 * i * i * i)
|
||||
: ((i = 2 - 2 * i), 1 - 0.5 * i * i * i);
|
||||
}),
|
||||
(i.fn.circleProgress = function (e, a) {
|
||||
var n = "circle-progress",
|
||||
r = this.data(n);
|
||||
if ("widget" == e) {
|
||||
if (!r)
|
||||
throw Error(
|
||||
'Calling "widget" method on not initialized instance is forbidden'
|
||||
);
|
||||
return r.canvas;
|
||||
}
|
||||
if ("value" == e) {
|
||||
if (!r)
|
||||
throw Error(
|
||||
'Calling "value" method on not initialized instance is forbidden'
|
||||
);
|
||||
if ("undefined" == typeof a) return r.getValue();
|
||||
var s = arguments[1];
|
||||
return this.each(function () {
|
||||
i(this).data(n).setValue(s);
|
||||
});
|
||||
}
|
||||
return this.each(function () {
|
||||
var a = i(this),
|
||||
r = a.data(n),
|
||||
s = i.isPlainObject(e) ? e : {};
|
||||
if (r) r.init(s);
|
||||
else {
|
||||
var l = i.extend({}, a.data());
|
||||
"string" == typeof l.fill && (l.fill = JSON.parse(l.fill)),
|
||||
"string" == typeof l.animation &&
|
||||
(l.animation = JSON.parse(l.animation)),
|
||||
(s = i.extend(l, s)),
|
||||
(s.el = a),
|
||||
(r = new t(s)),
|
||||
a.data(n, r);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
|
@ -0,0 +1,59 @@
|
|||
/*************************
|
||||
CountDown Clock
|
||||
*************************/
|
||||
!(function (e) {
|
||||
e.fn.countdown = function (t, n) {
|
||||
var o = e.extend(
|
||||
{
|
||||
date: null,
|
||||
offset: null,
|
||||
day: "Day",
|
||||
days: "Days",
|
||||
hour: "Hour",
|
||||
hours: "Hours",
|
||||
minute: "Minute",
|
||||
minutes: "Minutes",
|
||||
second: "Second",
|
||||
seconds: "Seconds",
|
||||
},
|
||||
t
|
||||
);
|
||||
o.date || e.error("Date is not defined."),
|
||||
Date.parse(o.date) ||
|
||||
e.error(
|
||||
"Incorrect date format, it should look like this, 12/24/2012 12:00:00."
|
||||
);
|
||||
var r = this,
|
||||
i = function () {
|
||||
var e = new Date(),
|
||||
t = e.getTime() + 6e4 * e.getTimezoneOffset();
|
||||
return new Date(t + 36e5 * o.offset);
|
||||
};
|
||||
var s = setInterval(function () {
|
||||
var e = new Date(o.date) - i();
|
||||
if (e < 0)
|
||||
return clearInterval(s), void (n && "function" == typeof n && n());
|
||||
var t = 36e5,
|
||||
a = Math.floor(e / 864e5),
|
||||
d = Math.floor((e % 864e5) / t),
|
||||
f = Math.floor((e % t) / 6e4),
|
||||
u = Math.floor((e % 6e4) / 1e3),
|
||||
l = 1 === a ? o.day : o.days,
|
||||
c = 1 === d ? o.hour : o.hours,
|
||||
h = 1 === f ? o.minute : o.minutes,
|
||||
x = 1 === u ? o.second : o.seconds;
|
||||
(a = String(a).length >= 2 ? a : "0" + a),
|
||||
(d = String(d).length >= 2 ? d : "0" + d),
|
||||
(f = String(f).length >= 2 ? f : "0" + f),
|
||||
(u = String(u).length >= 2 ? u : "0" + u),
|
||||
r.find(".days").text(a),
|
||||
r.find(".hours").text(d),
|
||||
r.find(".minutes").text(f),
|
||||
r.find(".seconds").text(u),
|
||||
r.find(".days_text").text(l),
|
||||
r.find(".hours_text").text(c),
|
||||
r.find(".minutes_text").text(h),
|
||||
r.find(".seconds_text").text(x);
|
||||
}, 1e3);
|
||||
};
|
||||
})(jQuery);
|
|
@ -0,0 +1,431 @@
|
|||
/*
|
||||
Template: Markethon - Digital Marketing Agency Responsive HTML5 Template
|
||||
Author: iqonicthemes.in
|
||||
Design and Developed by: iqonicthemes.in
|
||||
NOTE: This file contains the styling for responsive Template.
|
||||
*/
|
||||
|
||||
/*----------------------------------------------
|
||||
Index Of Script
|
||||
------------------------------------------------
|
||||
|
||||
1.Page Loader
|
||||
2.Isotope
|
||||
3.Masonry
|
||||
4.Progress Bar
|
||||
5.Pie chart
|
||||
6.Mega Menu
|
||||
7.Back To Top
|
||||
8.Counter
|
||||
9.Accordion
|
||||
10.Magnific Popup
|
||||
11.Wow Animation
|
||||
12.Owl Carousel
|
||||
1.Countdown
|
||||
14.Circle Progressbar
|
||||
15.Side Menu
|
||||
|
||||
------------------------------------------------
|
||||
Index Of Script
|
||||
----------------------------------------------*/
|
||||
|
||||
"use strict";
|
||||
$(document).ready(function () {
|
||||
$(window).on("load", function () {
|
||||
/*------------------------
|
||||
1 Page Loader
|
||||
--------------------------*/
|
||||
jQuery("#load").fadeOut();
|
||||
jQuery("#loading").delay(0).fadeOut("slow");
|
||||
|
||||
$(".navbar a").on("click", function (event) {
|
||||
if (!$(event.target).closest(".nav-item.dropdown").length) {
|
||||
$(".navbar-collapse").collapse("hide");
|
||||
}
|
||||
});
|
||||
|
||||
/*------------------------
|
||||
2 Isotope
|
||||
--------------------------*/
|
||||
$(".isotope").isotope({
|
||||
itemSelector: ".iq-grid-item",
|
||||
});
|
||||
|
||||
// filter items on button click
|
||||
$(".isotope-filters").on("click", "button", function () {
|
||||
var filterValue = $(this).attr("data-filter");
|
||||
$(".isotope").isotope({
|
||||
resizable: true,
|
||||
filter: filterValue,
|
||||
});
|
||||
$(".isotope-filters button").removeClass("active");
|
||||
$(this).addClass("active");
|
||||
});
|
||||
|
||||
function sticky_relocate() {
|
||||
var window_top = $(window).scrollTop();
|
||||
|
||||
if ($(".iq-works").length && $(".iq-features").length) {
|
||||
var div_top = $(".iq-works").offset().top + 900;
|
||||
var div_features = $(".iq-features").offset().top - 155;
|
||||
if (window_top > div_top) {
|
||||
$(".our-info").addClass("menu-sticky").show();
|
||||
if (window_top > div_features) {
|
||||
$(".our-info").removeClass("menu-sticky").hide();
|
||||
}
|
||||
} else {
|
||||
$(".our-info").removeClass("menu-sticky").show();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$(function () {
|
||||
$(window).scroll(sticky_relocate);
|
||||
sticky_relocate();
|
||||
});
|
||||
|
||||
/*------------------------
|
||||
3 Masonry
|
||||
--------------------------*/
|
||||
|
||||
var $msnry = $(".iq-masonry-block .iq-masonry");
|
||||
if ($msnry) {
|
||||
var $filter = $(".iq-masonry-block .isotope-filters");
|
||||
$msnry.isotope({
|
||||
percentPosition: true,
|
||||
resizable: true,
|
||||
itemSelector: ".iq-masonry-block .iq-masonry-item",
|
||||
masonry: {
|
||||
gutterWidth: 0,
|
||||
},
|
||||
});
|
||||
// bind filter button click
|
||||
$filter.on("click", "button", function () {
|
||||
var filterValue = $(this).attr("data-filter");
|
||||
$msnry.isotope({
|
||||
filter: filterValue,
|
||||
});
|
||||
});
|
||||
|
||||
$filter.each(function (i, buttonGroup) {
|
||||
var $buttonGroup = $(buttonGroup);
|
||||
$buttonGroup.on("click", "button", function () {
|
||||
$buttonGroup.find(".active").removeClass("active");
|
||||
$(this).addClass("active");
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/*------------------------
|
||||
4 Progress Bar
|
||||
--------------------------*/
|
||||
$(".iq-progress-bar > span").each(function () {
|
||||
var $this = $(this);
|
||||
var width = $(this).data("percent");
|
||||
$this.css({
|
||||
transition: "width 2s",
|
||||
});
|
||||
setTimeout(function () {
|
||||
$this.appear(function () {
|
||||
$this.css("width", width + "%");
|
||||
});
|
||||
}, 500);
|
||||
});
|
||||
/*-----------------
|
||||
5 Pie chart
|
||||
-----------------*/
|
||||
if ($("#chartContainer").length) {
|
||||
var chart = new CanvasJS.Chart("chartContainer", {
|
||||
theme: "light2",
|
||||
animationEnabled: true,
|
||||
data: [
|
||||
{
|
||||
type: "pie",
|
||||
indexLabelFontSize: 18,
|
||||
radius: 80,
|
||||
indexLabel: "{label} - {y}",
|
||||
yValueFormatString: '###0.0"%"',
|
||||
click: explodePie,
|
||||
dataPoints: [
|
||||
{
|
||||
y: 42,
|
||||
label: "Data Analysis",
|
||||
},
|
||||
{
|
||||
y: 21,
|
||||
label: "Social Media Marketing",
|
||||
},
|
||||
{
|
||||
y: 24.5,
|
||||
label: "Business Analysis",
|
||||
},
|
||||
{
|
||||
y: 9,
|
||||
label: "Research And Strategy",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
});
|
||||
chart.render();
|
||||
|
||||
function explodePie(e) {
|
||||
for (var i = 0; i < e.dataSeries.dataPoints.length; i++) {
|
||||
if (i !== e.dataPointIndex)
|
||||
e.dataSeries.dataPoints[i].exploded = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
/*------------------------
|
||||
6 Mega Menu
|
||||
--------------------------*/
|
||||
$("#menu-1").megaMenu({
|
||||
// DESKTOP MODE SETTINGS
|
||||
logo_align: "left", // align the logo left or right. options (left) or (right)
|
||||
links_align: "left", // align the links left or right. options (left) or (right)
|
||||
socialBar_align: "left", // align the socialBar left or right. options (left) or (right)
|
||||
searchBar_align: "right", // align the search bar left or right. options (left) or (right)
|
||||
trigger: "hover", // show drop down using click or hover. options (hover) or (click)
|
||||
effect: "fade", // drop down effects. options (fade), (scale), (expand-top), (expand-bottom), (expand-left), (expand-right)
|
||||
effect_speed: 400, // drop down show speed in milliseconds
|
||||
sibling: true, // hide the others showing drop downs if this option true. this option works on if the trigger option is "click". options (true) or (false)
|
||||
outside_click_close: true, // hide the showing drop downs when user click outside the menu. this option works if the trigger option is "click". options (true) or (false)
|
||||
top_fixed: false, // fixed the menu top of the screen. options (true) or (false)
|
||||
sticky_header: true, // menu fixed on top when scroll down down. options (true) or (false)
|
||||
sticky_header_height: 200, // sticky header height top of the screen. activate sticky header when meet the height. option change the height in px value.
|
||||
menu_position: "horizontal", // change the menu position. options (horizontal), (vertical-left) or (vertical-right)
|
||||
full_width: true, // make menu full width. options (true) or (false)
|
||||
// MOBILE MODE SETTINGS
|
||||
mobile_settings: {
|
||||
collapse: true, // collapse the menu on click. options (true) or (false)
|
||||
sibling: true, // hide the others showing drop downs when click on current drop down. options (true) or (false)
|
||||
scrollBar: true, // enable the scroll bar. options (true) or (false)
|
||||
scrollBar_height: 400, // scroll bar height in px value. this option works if the scrollBar option true.
|
||||
top_fixed: false, // fixed menu top of the screen. options (true) or (false)
|
||||
sticky_header: true, // menu fixed on top when scroll down down. options (true) or (false)
|
||||
sticky_header_height: 200, // sticky header height top of the screen. activate sticky header when meet the height. option change the height in px value.
|
||||
},
|
||||
});
|
||||
|
||||
/*------------------------
|
||||
7 Back To Top
|
||||
--------------------------*/
|
||||
$("#back-to-top").fadeOut();
|
||||
$(window).on("scroll", function () {
|
||||
if ($(this).scrollTop() > 250) {
|
||||
$("#back-to-top").fadeIn(1400);
|
||||
} else {
|
||||
$("#back-to-top").fadeOut(400);
|
||||
}
|
||||
});
|
||||
// scroll body to 0px on click
|
||||
$("#top").on("click", function () {
|
||||
$("top").tooltip("hide");
|
||||
$("body,html").animate(
|
||||
{
|
||||
scrollTop: 0,
|
||||
},
|
||||
800
|
||||
);
|
||||
return false;
|
||||
});
|
||||
|
||||
/*------------------------
|
||||
8 Counter
|
||||
--------------------------*/
|
||||
$(".counter").counterUp({
|
||||
delay: 10,
|
||||
time: 1000,
|
||||
});
|
||||
|
||||
/*------------------------
|
||||
9 Accordion
|
||||
--------------------------*/
|
||||
$(".iq-accordion .iq-ad-block .ad-details").hide();
|
||||
$(".iq-accordion .iq-ad-block:first")
|
||||
.addClass("ad-active")
|
||||
.children()
|
||||
.slideDown("slow");
|
||||
$(".iq-accordion .iq-ad-block").on("click", function () {
|
||||
if ($(this).children("div").is(":hidden")) {
|
||||
$(".iq-accordion .iq-ad-block")
|
||||
.removeClass("ad-active")
|
||||
.children("div")
|
||||
.slideUp("slow");
|
||||
$(this).toggleClass("ad-active").children("div").slideDown("slow");
|
||||
}
|
||||
});
|
||||
|
||||
/*------------------------
|
||||
10 Magnific Popup
|
||||
--------------------------*/
|
||||
$(".popup-gallery").magnificPopup({
|
||||
delegate: "a.popup-img",
|
||||
tLoading: "Loading image #%curr%...",
|
||||
type: "image",
|
||||
mainClass: "mfp-img-mobile",
|
||||
gallery: {
|
||||
navigateByImgClick: true,
|
||||
enabled: true,
|
||||
preload: [0, 1],
|
||||
},
|
||||
image: {
|
||||
tError: '<a href="%url%">The image #%curr%</a> could not be loaded.',
|
||||
},
|
||||
});
|
||||
|
||||
$(".popup-youtube, .popup-vimeo, .popup-gmaps").magnificPopup({
|
||||
type: "iframe",
|
||||
disableOn: 700,
|
||||
mainClass: "mfp-fade",
|
||||
preloader: false,
|
||||
removalDelay: 160,
|
||||
fixedContentPos: false,
|
||||
});
|
||||
|
||||
/*------------------------
|
||||
11 Wow Animation
|
||||
--------------------------*/
|
||||
new WOW().init();
|
||||
|
||||
/*------------------------
|
||||
12 Owl Carousel
|
||||
--------------------------*/
|
||||
$(".owl-carousel").each(function () {
|
||||
var $carousel = $(this);
|
||||
$carousel.owlCarousel({
|
||||
items: $carousel.data("items"),
|
||||
loop: $carousel.data("loop"),
|
||||
margin: $carousel.data("margin"),
|
||||
nav: $carousel.data("nav"),
|
||||
dots: $carousel.data("dots"),
|
||||
autoplay: $carousel.data("autoplay"),
|
||||
autoplayTimeout: $carousel.data("autoplay-timeout"),
|
||||
navText: [
|
||||
'<i class="ion-arrow-left-c"></i>',
|
||||
'<i class="ion-arrow-right-c"></i>',
|
||||
],
|
||||
responsiveClass: true,
|
||||
responsive: {
|
||||
// breakpoint from 0 up
|
||||
0: {
|
||||
items: $carousel.data("items-mobile-sm"),
|
||||
},
|
||||
// breakpoint from 480 up
|
||||
480: {
|
||||
items: $carousel.data("items-mobile"),
|
||||
},
|
||||
// breakpoint from 786 up
|
||||
786: {
|
||||
items: $carousel.data("items-tab"),
|
||||
},
|
||||
// breakpoint from 1023 up
|
||||
1023: {
|
||||
items: $carousel.data("items-laptop"),
|
||||
},
|
||||
1199: {
|
||||
items: $carousel.data("items"),
|
||||
},
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
/*------------------------
|
||||
13 Countdown
|
||||
--------------------------*/
|
||||
$("#countdown").countdown({
|
||||
date: "12/31/2024 23:59:59",
|
||||
day: "Day",
|
||||
days: "Days",
|
||||
});
|
||||
|
||||
/*------------------------
|
||||
14 Circle Progressbar
|
||||
--------------------------*/
|
||||
function animateElements() {
|
||||
$(".progressbar").each(function () {
|
||||
var elementPos = $(this).offset().top;
|
||||
var topOfWindow = $(window).scrollTop();
|
||||
var percent = $(this).find(".circle").attr("data-percent");
|
||||
var percentage = parseInt(percent, 10) / parseInt(100, 10);
|
||||
var animate = $(this).data("animate");
|
||||
if (elementPos < topOfWindow + $(window).height() - 30 && !animate) {
|
||||
$(this).data("animate", true);
|
||||
$(this)
|
||||
.find(".circle")
|
||||
.circleProgress({
|
||||
startAngle: -Math.PI / 2,
|
||||
value: percent / 100,
|
||||
thickness: 9,
|
||||
fill: {
|
||||
color: "#1B58B8",
|
||||
},
|
||||
})
|
||||
.stop();
|
||||
|
||||
$(this)
|
||||
.find(".circle.purple")
|
||||
.circleProgress({
|
||||
fill: {
|
||||
color: "#6934cb",
|
||||
},
|
||||
});
|
||||
$(this)
|
||||
.find(".circle.light-purple")
|
||||
.circleProgress({
|
||||
fill: {
|
||||
color: "#7c60d5",
|
||||
},
|
||||
});
|
||||
$(this)
|
||||
.find(".circle.green")
|
||||
.circleProgress({
|
||||
fill: {
|
||||
color: "#33e2a0",
|
||||
},
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Show animated elements
|
||||
animateElements();
|
||||
$(window).scroll(animateElements);
|
||||
|
||||
/*------------------------
|
||||
About menu
|
||||
--------------------------*/
|
||||
|
||||
$(document).ready(function () {
|
||||
$(".our-info ul.about-us li a").on("click", function () {
|
||||
var id = $(this).attr("href");
|
||||
//alert(id);
|
||||
$(id).css({
|
||||
"padding-top": "250px",
|
||||
});
|
||||
$(".our-info ul.about-us li a.active").removeClass("active");
|
||||
$(this).addClass("active");
|
||||
});
|
||||
});
|
||||
|
||||
/*------------------------
|
||||
15 Side Menu
|
||||
--------------------------*/
|
||||
|
||||
$(function () {
|
||||
$("body").addClass("js");
|
||||
|
||||
var $hamburger = $(".hamburger"),
|
||||
$nav = $("#site-nav"),
|
||||
$masthead = $("#masthead");
|
||||
|
||||
$hamburger.click(function () {
|
||||
$(this).toggleClass("is-active");
|
||||
$nav.toggleClass("is-active");
|
||||
$masthead.toggleClass("is-active");
|
||||
return false;
|
||||
});
|
||||
});
|
||||
});
|
|
@ -0,0 +1,50 @@
|
|||
/*!
|
||||
* jquery.counterup.js 1.0
|
||||
*
|
||||
* Copyright 2013, Benjamin Intal http://gambit.ph @bfintal
|
||||
* Released under the GPL v2 License
|
||||
*
|
||||
* Date: Nov 26, 2013
|
||||
*/ (function (e) {
|
||||
"use strict";
|
||||
e.fn.counterUp = function (t) {
|
||||
var n = e.extend({ time: 400, delay: 10 }, t);
|
||||
return this.each(function () {
|
||||
var t = e(this),
|
||||
r = n,
|
||||
i = function () {
|
||||
var e = [],
|
||||
n = r.time / r.delay,
|
||||
i = t.text(),
|
||||
s = /[0-9]+,[0-9]+/.test(i);
|
||||
i = i.replace(/,/g, "");
|
||||
var o = /^[0-9]+$/.test(i),
|
||||
u = /^[0-9]+\.[0-9]+$/.test(i),
|
||||
a = u ? (i.split(".")[1] || []).length : 0;
|
||||
for (var f = n; f >= 1; f--) {
|
||||
var l = parseInt((i / n) * f);
|
||||
u && (l = parseFloat((i / n) * f).toFixed(a));
|
||||
if (s)
|
||||
while (/(\d+)(\d{3})/.test(l.toString()))
|
||||
l = l.toString().replace(/(\d+)(\d{3})/, "$1,$2");
|
||||
e.unshift(l);
|
||||
}
|
||||
t.data("counterup-nums", e);
|
||||
t.text("0");
|
||||
var c = function () {
|
||||
t.text(t.data("counterup-nums").shift());
|
||||
if (t.data("counterup-nums").length)
|
||||
setTimeout(t.data("counterup-func"), r.delay);
|
||||
else {
|
||||
delete t.data("counterup-nums");
|
||||
t.data("counterup-nums", null);
|
||||
t.data("counterup-func", null);
|
||||
}
|
||||
};
|
||||
t.data("counterup-func", c);
|
||||
setTimeout(t.data("counterup-func"), r.delay);
|
||||
};
|
||||
t.waypoint(i, { offset: "100%", triggerOnce: !0 });
|
||||
});
|
||||
};
|
||||
})(jQuery);
|
|
@ -0,0 +1,318 @@
|
|||
// ----------------------------------------------------------------------------------------------------
|
||||
// ScrollMe
|
||||
// A jQuery plugin for adding simple scrolling effects to web pages
|
||||
// http://scrollme.nckprsn.com
|
||||
// ----------------------------------------------------------------------------------------------------
|
||||
var scrollme = (function (a) {
|
||||
var d = {};
|
||||
var c = a(document);
|
||||
var b = a(window);
|
||||
d.body_height = 0;
|
||||
d.viewport_height = 0;
|
||||
d.viewport_top = 0;
|
||||
d.viewport_bottom = 0;
|
||||
d.viewport_top_previous = -1;
|
||||
d.elements = [];
|
||||
d.elements_in_view = [];
|
||||
d.property_defaults = {
|
||||
opacity: 1,
|
||||
translatex: 0,
|
||||
translatey: 0,
|
||||
translatez: 0,
|
||||
rotatex: 0,
|
||||
rotatey: 0,
|
||||
rotatez: 0,
|
||||
scale: 1,
|
||||
scalex: 1,
|
||||
scaley: 1,
|
||||
scalez: 1,
|
||||
};
|
||||
d.scrollme_selector = ".scrollme";
|
||||
d.animateme_selector = ".animateme";
|
||||
d.update_interval = 10;
|
||||
d.easing_functions = {
|
||||
linear: function (e) {
|
||||
return e;
|
||||
},
|
||||
easeout: function (e) {
|
||||
return e * e * e;
|
||||
},
|
||||
easein: function (e) {
|
||||
e = 1 - e;
|
||||
return 1 - e * e * e;
|
||||
},
|
||||
easeinout: function (e) {
|
||||
if (e < 0.5) {
|
||||
return 4 * e * e * e;
|
||||
} else {
|
||||
e = 1 - e;
|
||||
return 1 - 4 * e * e * e;
|
||||
}
|
||||
},
|
||||
};
|
||||
d.init_events = ["ready", "page:load", "page:change"];
|
||||
d.init_if = function () {
|
||||
return true;
|
||||
};
|
||||
d.init = function () {
|
||||
if (!d.init_if()) {
|
||||
return false;
|
||||
}
|
||||
d.init_elements();
|
||||
d.on_resize();
|
||||
b.on("resize orientationchange", function () {
|
||||
d.on_resize();
|
||||
});
|
||||
b.load(function () {
|
||||
setTimeout(function () {
|
||||
d.on_resize();
|
||||
}, 100);
|
||||
});
|
||||
setInterval(d.update, d.update_interval);
|
||||
return true;
|
||||
};
|
||||
d.init_elements = function () {
|
||||
a(d.scrollme_selector).each(function () {
|
||||
var e = {};
|
||||
e.element = a(this);
|
||||
var f = [];
|
||||
a(this)
|
||||
.find(d.animateme_selector)
|
||||
.addBack(d.animateme_selector)
|
||||
.each(function () {
|
||||
var h = {};
|
||||
h.element = a(this);
|
||||
h.when = h.element.data("when");
|
||||
h.from = h.element.data("from");
|
||||
h.to = h.element.data("to");
|
||||
if (h.element.is("[data-crop]")) {
|
||||
h.crop = h.element.data("crop");
|
||||
} else {
|
||||
h.crop = true;
|
||||
}
|
||||
if (h.element.is("[data-easing]")) {
|
||||
h.easing = d.easing_functions[h.element.data("easing")];
|
||||
} else {
|
||||
h.easing = d.easing_functions.easeout;
|
||||
}
|
||||
var g = {};
|
||||
if (h.element.is("[data-opacity]")) {
|
||||
g.opacity = h.element.data("opacity");
|
||||
}
|
||||
if (h.element.is("[data-translatex]")) {
|
||||
g.translatex = h.element.data("translatex");
|
||||
}
|
||||
if (h.element.is("[data-translatey]")) {
|
||||
g.translatey = h.element.data("translatey");
|
||||
}
|
||||
if (h.element.is("[data-translatez]")) {
|
||||
g.translatez = h.element.data("translatez");
|
||||
}
|
||||
if (h.element.is("[data-rotatex]")) {
|
||||
g.rotatex = h.element.data("rotatex");
|
||||
}
|
||||
if (h.element.is("[data-rotatey]")) {
|
||||
g.rotatey = h.element.data("rotatey");
|
||||
}
|
||||
if (h.element.is("[data-rotatez]")) {
|
||||
g.rotatez = h.element.data("rotatez");
|
||||
}
|
||||
if (h.element.is("[data-scale]")) {
|
||||
g.scale = h.element.data("scale");
|
||||
}
|
||||
if (h.element.is("[data-scalex]")) {
|
||||
g.scalex = h.element.data("scalex");
|
||||
}
|
||||
if (h.element.is("[data-scaley]")) {
|
||||
g.scaley = h.element.data("scaley");
|
||||
}
|
||||
if (h.element.is("[data-scalez]")) {
|
||||
g.scalez = h.element.data("scalez");
|
||||
}
|
||||
h.properties = g;
|
||||
f.push(h);
|
||||
});
|
||||
e.effects = f;
|
||||
d.elements.push(e);
|
||||
});
|
||||
};
|
||||
d.update = function () {
|
||||
window.requestAnimationFrame(function () {
|
||||
d.update_viewport_position();
|
||||
if (d.viewport_top_previous != d.viewport_top) {
|
||||
d.update_elements_in_view();
|
||||
d.animate();
|
||||
}
|
||||
d.viewport_top_previous = d.viewport_top;
|
||||
});
|
||||
};
|
||||
d.animate = function () {
|
||||
var C = d.elements_in_view.length;
|
||||
for (var A = 0; A < C; A++) {
|
||||
var h = d.elements_in_view[A];
|
||||
var f = h.effects.length;
|
||||
for (var D = 0; D < f; D++) {
|
||||
var w = h.effects[D];
|
||||
switch (w.when) {
|
||||
case "view":
|
||||
case "span":
|
||||
var r = h.top - d.viewport_height;
|
||||
var n = h.bottom;
|
||||
break;
|
||||
case "exit":
|
||||
var r = h.bottom - d.viewport_height;
|
||||
var n = h.bottom;
|
||||
break;
|
||||
default:
|
||||
var r = h.top - d.viewport_height;
|
||||
var n = h.top;
|
||||
break;
|
||||
}
|
||||
if (w.crop) {
|
||||
if (r < 0) {
|
||||
r = 0;
|
||||
}
|
||||
if (n > d.body_height - d.viewport_height) {
|
||||
n = d.body_height - d.viewport_height;
|
||||
}
|
||||
}
|
||||
var g = (d.viewport_top - r) / (n - r);
|
||||
var x = w.from;
|
||||
var j = w.to;
|
||||
var o = j - x;
|
||||
var k = (g - x) / o;
|
||||
var v = w.easing(k);
|
||||
var l = d.animate_value(g, v, x, j, w, "opacity");
|
||||
var t = d.animate_value(g, v, x, j, w, "translatey");
|
||||
var u = d.animate_value(g, v, x, j, w, "translatex");
|
||||
var s = d.animate_value(g, v, x, j, w, "translatez");
|
||||
var B = d.animate_value(g, v, x, j, w, "rotatex");
|
||||
var z = d.animate_value(g, v, x, j, w, "rotatey");
|
||||
var y = d.animate_value(g, v, x, j, w, "rotatez");
|
||||
var E = d.animate_value(g, v, x, j, w, "scale");
|
||||
var q = d.animate_value(g, v, x, j, w, "scalex");
|
||||
var p = d.animate_value(g, v, x, j, w, "scaley");
|
||||
var m = d.animate_value(g, v, x, j, w, "scalez");
|
||||
if ("scale" in w.properties) {
|
||||
q = E;
|
||||
p = E;
|
||||
m = E;
|
||||
}
|
||||
w.element.css({
|
||||
opacity: l,
|
||||
transform:
|
||||
"translate3d( " +
|
||||
u +
|
||||
"px , " +
|
||||
t +
|
||||
"px , " +
|
||||
s +
|
||||
"px ) rotateX( " +
|
||||
B +
|
||||
"deg ) rotateY( " +
|
||||
z +
|
||||
"deg ) rotateZ( " +
|
||||
y +
|
||||
"deg ) scale3d( " +
|
||||
q +
|
||||
" , " +
|
||||
p +
|
||||
" , " +
|
||||
m +
|
||||
" )",
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
d.animate_value = function (i, h, j, k, n, m) {
|
||||
var g = d.property_defaults[m];
|
||||
if (!(m in n.properties)) {
|
||||
return g;
|
||||
}
|
||||
var e = n.properties[m];
|
||||
var f = k > j ? true : false;
|
||||
if (i < j && f) {
|
||||
return g;
|
||||
}
|
||||
if (i > k && f) {
|
||||
return e;
|
||||
}
|
||||
if (i > j && !f) {
|
||||
return g;
|
||||
}
|
||||
if (i < k && !f) {
|
||||
return e;
|
||||
}
|
||||
var l = g + h * (e - g);
|
||||
switch (m) {
|
||||
case "opacity":
|
||||
l = l.toFixed(2);
|
||||
break;
|
||||
case "translatex":
|
||||
l = l.toFixed(0);
|
||||
break;
|
||||
case "translatey":
|
||||
l = l.toFixed(0);
|
||||
break;
|
||||
case "translatez":
|
||||
l = l.toFixed(0);
|
||||
break;
|
||||
case "rotatex":
|
||||
l = l.toFixed(1);
|
||||
break;
|
||||
case "rotatey":
|
||||
l = l.toFixed(1);
|
||||
break;
|
||||
case "rotatez":
|
||||
l = l.toFixed(1);
|
||||
break;
|
||||
case "scale":
|
||||
l = l.toFixed(3);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return l;
|
||||
};
|
||||
d.update_viewport_position = function () {
|
||||
d.viewport_top = b.scrollTop();
|
||||
d.viewport_bottom = d.viewport_top + d.viewport_height;
|
||||
};
|
||||
d.update_elements_in_view = function () {
|
||||
d.elements_in_view = [];
|
||||
var f = d.elements.length;
|
||||
for (var e = 0; e < f; e++) {
|
||||
if (
|
||||
d.elements[e].top < d.viewport_bottom &&
|
||||
d.elements[e].bottom > d.viewport_top
|
||||
) {
|
||||
d.elements_in_view.push(d.elements[e]);
|
||||
}
|
||||
}
|
||||
};
|
||||
d.on_resize = function () {
|
||||
d.update_viewport();
|
||||
d.update_element_heights();
|
||||
d.update_viewport_position();
|
||||
d.update_elements_in_view();
|
||||
d.animate();
|
||||
};
|
||||
d.update_viewport = function () {
|
||||
d.body_height = c.height();
|
||||
d.viewport_height = b.height();
|
||||
};
|
||||
d.update_element_heights = function () {
|
||||
var g = d.elements.length;
|
||||
for (var f = 0; f < g; f++) {
|
||||
var h = d.elements[f].element.outerHeight();
|
||||
var e = d.elements[f].element.offset();
|
||||
d.elements[f].height = h;
|
||||
d.elements[f].top = e.top;
|
||||
d.elements[f].bottom = e.top + h;
|
||||
}
|
||||
};
|
||||
c.on(d.init_events.join(" "), function () {
|
||||
d.init();
|
||||
});
|
||||
return d;
|
||||
})(jQuery);
|
|
@ -0,0 +1,280 @@
|
|||
!(function (e) {
|
||||
var o = {
|
||||
logo_align: "left",
|
||||
links_align: "left",
|
||||
socialBar_align: "left",
|
||||
searchBar_align: "right",
|
||||
trigger: "hover",
|
||||
effect: "fade",
|
||||
effect_speed: 400,
|
||||
sibling: !0,
|
||||
outside_click_close: !0,
|
||||
top_fixed: !1,
|
||||
sticky_header: !1,
|
||||
sticky_header_height: 200,
|
||||
menu_position: "horizontal",
|
||||
full_width: !0,
|
||||
mobile_settings: {
|
||||
collapse: !1,
|
||||
sibling: !0,
|
||||
scrollBar: !0,
|
||||
scrollBar_height: 400,
|
||||
top_fixed: !1,
|
||||
sticky_header: !1,
|
||||
sticky_header_height: 200,
|
||||
},
|
||||
};
|
||||
e.fn.megaMenu = function (i) {
|
||||
return (
|
||||
(i = e.extend({}, o, i || {})),
|
||||
this.each(function () {
|
||||
var o,
|
||||
s = e(this),
|
||||
t = "ul",
|
||||
n = "li",
|
||||
a = "a",
|
||||
r = s.find(".menu-logo"),
|
||||
l = r.children(n),
|
||||
d = s.find(".menu-links"),
|
||||
c = d.children(n),
|
||||
_ = s.find(".menu-social-bar"),
|
||||
f = s.find(".menu-search-bar"),
|
||||
p = ".menu-mobile-collapse-trigger",
|
||||
u = ".mobileTriggerButton",
|
||||
g = ".desktopTriggerButton",
|
||||
h = "active",
|
||||
m = "activeTrigger",
|
||||
b = "activeTriggerMobile",
|
||||
v = ".drop-down-multilevel, .drop-down, .drop-down-tab-bar",
|
||||
w = "desktopTopFixed",
|
||||
C = "mobileTopFixed",
|
||||
k = "menuFullWidth",
|
||||
y = s.find(".menu-contact-form"),
|
||||
x = y.find(".nav_form_notification");
|
||||
(o = {
|
||||
contact_form_ajax: function () {
|
||||
e(y).submit(function (o) {
|
||||
var i = e(this);
|
||||
o.preventDefault();
|
||||
var s = e(this).serialize();
|
||||
i.find("button i.fa").css("display", "inline-block"),
|
||||
e
|
||||
.ajax({ type: "POST", url: e(this).attr("action"), data: s })
|
||||
.done(function (e) {
|
||||
x.text(e),
|
||||
i.find('input[type="text"]').val(""),
|
||||
i.find('input[type="email"]').val(""),
|
||||
i.find("textarea").val(""),
|
||||
i.find("button i.fa").css("display", "none");
|
||||
})
|
||||
.fail(function (e) {
|
||||
"" !== e.responseText && x.text("Error"),
|
||||
i.find("button i.fa").css("display", "none");
|
||||
});
|
||||
});
|
||||
},
|
||||
menu_full_width: function () {
|
||||
i.full_width === !0 && s.addClass(k);
|
||||
},
|
||||
logo_Align: function () {
|
||||
"right" === i.logo_align && r.addClass("menu-logo-align-right");
|
||||
},
|
||||
links_Align: function () {
|
||||
"right" === i.links_align && d.addClass("menu-links-align-right");
|
||||
},
|
||||
social_bar_Align: function () {
|
||||
"right" === i.socialBar_align &&
|
||||
_.addClass("menu-social-bar-right");
|
||||
},
|
||||
search_bar_Align: function () {
|
||||
"left" === i.searchBar_align && f.addClass("menu-search-bar-left");
|
||||
},
|
||||
collapse_trigger_button: function () {
|
||||
if (i.mobile_settings.collapse === !0) {
|
||||
l.append(
|
||||
'<div class="menu-mobile-collapse-trigger"><span></span></div>'
|
||||
);
|
||||
var o = d.add(_);
|
||||
o.hide(0),
|
||||
f.addClass(h),
|
||||
s.find(p).on("click", function () {
|
||||
return (
|
||||
o.is(":hidden")
|
||||
? (e(this).addClass(h), o.show(0))
|
||||
: (e(this).removeClass(h), o.hide(0)),
|
||||
!1
|
||||
);
|
||||
});
|
||||
}
|
||||
},
|
||||
switch_effects: function () {
|
||||
switch (i.effect) {
|
||||
case "fade":
|
||||
s.find(v).addClass("effect-fade");
|
||||
break;
|
||||
case "scale":
|
||||
s.find(v).addClass("effect-scale");
|
||||
break;
|
||||
case "expand-top":
|
||||
s.find(v).addClass("effect-expand-top");
|
||||
break;
|
||||
case "expand-bottom":
|
||||
s.find(v).addClass("effect-expand-bottom");
|
||||
break;
|
||||
case "expand-left":
|
||||
s.find(v).addClass("effect-expand-left");
|
||||
break;
|
||||
case "expand-right":
|
||||
s.find(v).addClass("effect-expand-right");
|
||||
}
|
||||
},
|
||||
transition_delay: function () {
|
||||
s.find(v).css({
|
||||
webkitTransition: "all " + i.effect_speed + "ms ease ",
|
||||
transition: "all " + i.effect_speed + "ms ease ",
|
||||
});
|
||||
},
|
||||
hover_trigger: function () {
|
||||
"hover" === i.trigger &&
|
||||
(o.transition_delay(),
|
||||
s.find(v).parents(n).addClass("hoverTrigger"),
|
||||
o.switch_effects());
|
||||
},
|
||||
mobile_trigger: function () {
|
||||
s.find(v).prev(a).append('<div class="mobileTriggerButton"></div>'),
|
||||
s.find(u).on("click", function () {
|
||||
var o = e(this),
|
||||
r = o.parents(a),
|
||||
l = r.next(v);
|
||||
return (
|
||||
l.is(":hidden")
|
||||
? (i.mobile_settings.sibling === !0 &&
|
||||
(o
|
||||
.parents(s)
|
||||
.siblings(t + "," + n)
|
||||
.find(v)
|
||||
.hide(0),
|
||||
o.parents(s).siblings(n).removeClass(b),
|
||||
o.parents(s).siblings(t).find(n).removeClass(b)),
|
||||
r.parent(n).addClass(b),
|
||||
l.show(0))
|
||||
: (r.parent(n).removeClass(b), l.hide(0)),
|
||||
!1
|
||||
);
|
||||
}),
|
||||
s.find("i.fa.fa-indicator").on("click", function () {
|
||||
return !1;
|
||||
});
|
||||
},
|
||||
click_trigger: function () {
|
||||
"click" === i.trigger &&
|
||||
(s
|
||||
.find(v)
|
||||
.prev(a)
|
||||
.append('<div class="desktopTriggerButton"></div>'),
|
||||
s.find(v).parents(n).addClass("ClickTrigger"),
|
||||
o.switch_effects(),
|
||||
o.transition_delay(),
|
||||
s.find(g).on("click", function (o) {
|
||||
o.stopPropagation(), o.stopImmediatePropagation();
|
||||
var r = e(this),
|
||||
l = r.parents(a),
|
||||
d = l.next(v);
|
||||
d.hasClass(h)
|
||||
? (l.parent(n).removeClass(m), d.removeClass(h))
|
||||
: (i.sibling === !0 &&
|
||||
(r
|
||||
.parents(s)
|
||||
.siblings(t + "," + n)
|
||||
.find(v)
|
||||
.removeClass(h),
|
||||
r.parents(s).siblings(n).removeClass(m),
|
||||
r.parents(s).siblings(t).find(n).removeClass(m)),
|
||||
l.parent(n).addClass(m),
|
||||
d.addClass(h));
|
||||
}));
|
||||
},
|
||||
outside_close: function () {
|
||||
i.outside_click_close === !0 &&
|
||||
"click" === i.trigger &&
|
||||
s.find(v).is(":visible")
|
||||
? e(document)
|
||||
.off("click")
|
||||
.on("click", function (e) {
|
||||
s.is(e.target) ||
|
||||
0 !== s.has(e.target).length ||
|
||||
(s.find(v).removeClass(h),
|
||||
c.removeClass("activeTrigger"));
|
||||
})
|
||||
: e(document).off("click");
|
||||
},
|
||||
scroll_bar: function () {
|
||||
i.mobile_settings.scrollBar === !0 &&
|
||||
d.css({
|
||||
maxHeight: i.mobile_settings.scrollBar_height + "px",
|
||||
overflow: "auto",
|
||||
});
|
||||
},
|
||||
top_Fixed: function () {
|
||||
i.top_fixed === !0 && s.addClass(w),
|
||||
i.mobile_settings.top_fixed && s.addClass(C);
|
||||
},
|
||||
sticky_Header: function () {
|
||||
var o = e(window),
|
||||
t = !0,
|
||||
n = !0;
|
||||
s.find(v).is(":hidden")
|
||||
? (o.off("scroll"),
|
||||
i.mobile_settings.sticky_header === !0 &&
|
||||
i.top_fixed === !1 &&
|
||||
o.on("scroll", function () {
|
||||
o.scrollTop() > i.mobile_settings.sticky_header_height
|
||||
? n === !0 && (s.addClass(C), (n = !1))
|
||||
: n === !1 && (s.removeClass(C), (n = !0));
|
||||
}))
|
||||
: (o.off("scroll"),
|
||||
i.sticky_header === !0 &&
|
||||
"horizontal" === i.menu_position &&
|
||||
i.top_fixed === !1 &&
|
||||
o.on("scroll", function () {
|
||||
o.scrollTop() > i.sticky_header_height
|
||||
? t === !0 &&
|
||||
(s.fadeOut(200, function () {
|
||||
e(this).addClass(w).fadeIn(200);
|
||||
}),
|
||||
(t = !1))
|
||||
: t === !1 &&
|
||||
(s.fadeOut(200, function () {
|
||||
e(this).removeClass(w).fadeIn(200);
|
||||
}),
|
||||
(t = !0));
|
||||
}));
|
||||
},
|
||||
position: function () {
|
||||
"vertical-left" === i.menu_position
|
||||
? s.addClass("vertical-left")
|
||||
: "vertical-right" === i.menu_position &&
|
||||
s.addClass("vertical-right");
|
||||
},
|
||||
}),
|
||||
o.menu_full_width(),
|
||||
o.logo_Align(),
|
||||
o.links_Align(),
|
||||
o.social_bar_Align(),
|
||||
o.search_bar_Align(),
|
||||
o.collapse_trigger_button(),
|
||||
o.hover_trigger(),
|
||||
o.mobile_trigger(),
|
||||
o.click_trigger(),
|
||||
o.scroll_bar(),
|
||||
o.top_Fixed(),
|
||||
o.sticky_Header(),
|
||||
o.position(),
|
||||
o.contact_form_ajax(),
|
||||
e(window).resize(function () {
|
||||
o.outside_close(), o.sticky_Header();
|
||||
});
|
||||
})
|
||||
);
|
||||
};
|
||||
})(jQuery);
|
|
@ -0,0 +1,625 @@
|
|||
window.Modernizr = (function (e, t, n) {
|
||||
function r(e) {
|
||||
b.cssText = e;
|
||||
}
|
||||
function o(e, t) {
|
||||
return r(S.join(e + ";") + (t || ""));
|
||||
}
|
||||
function a(e, t) {
|
||||
return typeof e === t;
|
||||
}
|
||||
function i(e, t) {
|
||||
return !!~("" + e).indexOf(t);
|
||||
}
|
||||
function c(e, t) {
|
||||
for (var r in e) {
|
||||
var o = e[r];
|
||||
if (!i(o, "-") && b[o] !== n) return "pfx" == t ? o : !0;
|
||||
}
|
||||
return !1;
|
||||
}
|
||||
function s(e, t, r) {
|
||||
for (var o in e) {
|
||||
var i = t[e[o]];
|
||||
if (i !== n)
|
||||
return r === !1 ? e[o] : a(i, "function") ? i.bind(r || t) : i;
|
||||
}
|
||||
return !1;
|
||||
}
|
||||
function u(e, t, n) {
|
||||
var r = e.charAt(0).toUpperCase() + e.slice(1),
|
||||
o = (e + " " + k.join(r + " ") + r).split(" ");
|
||||
return a(t, "string") || a(t, "undefined")
|
||||
? c(o, t)
|
||||
: ((o = (e + " " + T.join(r + " ") + r).split(" ")), s(o, t, n));
|
||||
}
|
||||
function l() {
|
||||
(p.input = (function (n) {
|
||||
for (var r = 0, o = n.length; o > r; r++) j[n[r]] = !!(n[r] in E);
|
||||
return (
|
||||
j.list &&
|
||||
(j.list = !(!t.createElement("datalist") || !e.HTMLDataListElement)),
|
||||
j
|
||||
);
|
||||
})(
|
||||
"autocomplete autofocus list placeholder max min multiple pattern required step".split(
|
||||
" "
|
||||
)
|
||||
)),
|
||||
(p.inputtypes = (function (e) {
|
||||
for (var r, o, a, i = 0, c = e.length; c > i; i++)
|
||||
E.setAttribute("type", (o = e[i])),
|
||||
(r = "text" !== E.type),
|
||||
r &&
|
||||
((E.value = x),
|
||||
(E.style.cssText = "position:absolute;visibility:hidden;"),
|
||||
/^range$/.test(o) && E.style.WebkitAppearance !== n
|
||||
? (g.appendChild(E),
|
||||
(a = t.defaultView),
|
||||
(r =
|
||||
a.getComputedStyle &&
|
||||
"textfield" !==
|
||||
a.getComputedStyle(E, null).WebkitAppearance &&
|
||||
0 !== E.offsetHeight),
|
||||
g.removeChild(E))
|
||||
: /^(search|tel)$/.test(o) ||
|
||||
(r = /^(url|email)$/.test(o)
|
||||
? E.checkValidity && E.checkValidity() === !1
|
||||
: E.value != x)),
|
||||
(P[e[i]] = !!r);
|
||||
return P;
|
||||
})(
|
||||
"search tel url email datetime date month week time datetime-local number range color".split(
|
||||
" "
|
||||
)
|
||||
));
|
||||
}
|
||||
var d,
|
||||
f,
|
||||
m = "2.8.3",
|
||||
p = {},
|
||||
h = !0,
|
||||
g = t.documentElement,
|
||||
v = "modernizr",
|
||||
y = t.createElement(v),
|
||||
b = y.style,
|
||||
E = t.createElement("input"),
|
||||
x = ":)",
|
||||
w = {}.toString,
|
||||
S = " -webkit- -moz- -o- -ms- ".split(" "),
|
||||
C = "Webkit Moz O ms",
|
||||
k = C.split(" "),
|
||||
T = C.toLowerCase().split(" "),
|
||||
N = { svg: "http://www.w3.org/2000/svg" },
|
||||
M = {},
|
||||
P = {},
|
||||
j = {},
|
||||
$ = [],
|
||||
D = $.slice,
|
||||
F = function (e, n, r, o) {
|
||||
var a,
|
||||
i,
|
||||
c,
|
||||
s,
|
||||
u = t.createElement("div"),
|
||||
l = t.body,
|
||||
d = l || t.createElement("body");
|
||||
if (parseInt(r, 10))
|
||||
for (; r--; )
|
||||
(c = t.createElement("div")),
|
||||
(c.id = o ? o[r] : v + (r + 1)),
|
||||
u.appendChild(c);
|
||||
return (
|
||||
(a = ["­", '<style id="s', v, '">', e, "</style>"].join("")),
|
||||
(u.id = v),
|
||||
((l ? u : d).innerHTML += a),
|
||||
d.appendChild(u),
|
||||
l ||
|
||||
((d.style.background = ""),
|
||||
(d.style.overflow = "hidden"),
|
||||
(s = g.style.overflow),
|
||||
(g.style.overflow = "hidden"),
|
||||
g.appendChild(d)),
|
||||
(i = n(u, e)),
|
||||
l
|
||||
? u.parentNode.removeChild(u)
|
||||
: (d.parentNode.removeChild(d), (g.style.overflow = s)),
|
||||
!!i
|
||||
);
|
||||
},
|
||||
z = function (t) {
|
||||
var n = e.matchMedia || e.msMatchMedia;
|
||||
if (n) return (n(t) && n(t).matches) || !1;
|
||||
var r;
|
||||
return (
|
||||
F(
|
||||
"@media " + t + " { #" + v + " { position: absolute; } }",
|
||||
function (t) {
|
||||
r =
|
||||
"absolute" ==
|
||||
(e.getComputedStyle ? getComputedStyle(t, null) : t.currentStyle)
|
||||
.position;
|
||||
}
|
||||
),
|
||||
r
|
||||
);
|
||||
},
|
||||
A = (function () {
|
||||
function e(e, o) {
|
||||
(o = o || t.createElement(r[e] || "div")), (e = "on" + e);
|
||||
var i = e in o;
|
||||
return (
|
||||
i ||
|
||||
(o.setAttribute || (o = t.createElement("div")),
|
||||
o.setAttribute &&
|
||||
o.removeAttribute &&
|
||||
(o.setAttribute(e, ""),
|
||||
(i = a(o[e], "function")),
|
||||
a(o[e], "undefined") || (o[e] = n),
|
||||
o.removeAttribute(e))),
|
||||
(o = null),
|
||||
i
|
||||
);
|
||||
}
|
||||
var r = {
|
||||
select: "input",
|
||||
change: "input",
|
||||
submit: "form",
|
||||
reset: "form",
|
||||
error: "img",
|
||||
load: "img",
|
||||
abort: "img",
|
||||
};
|
||||
return e;
|
||||
})(),
|
||||
L = {}.hasOwnProperty;
|
||||
(f =
|
||||
a(L, "undefined") || a(L.call, "undefined")
|
||||
? function (e, t) {
|
||||
return t in e && a(e.constructor.prototype[t], "undefined");
|
||||
}
|
||||
: function (e, t) {
|
||||
return L.call(e, t);
|
||||
}),
|
||||
Function.prototype.bind ||
|
||||
(Function.prototype.bind = function (e) {
|
||||
var t = this;
|
||||
if ("function" != typeof t) throw new TypeError();
|
||||
var n = D.call(arguments, 1),
|
||||
r = function () {
|
||||
if (this instanceof r) {
|
||||
var o = function () {};
|
||||
o.prototype = t.prototype;
|
||||
var a = new o(),
|
||||
i = t.apply(a, n.concat(D.call(arguments)));
|
||||
return Object(i) === i ? i : a;
|
||||
}
|
||||
return t.apply(e, n.concat(D.call(arguments)));
|
||||
};
|
||||
return r;
|
||||
}),
|
||||
(M.flexbox = function () {
|
||||
return u("flexWrap");
|
||||
}),
|
||||
(M.flexboxlegacy = function () {
|
||||
return u("boxDirection");
|
||||
}),
|
||||
(M.canvas = function () {
|
||||
var e = t.createElement("canvas");
|
||||
return !(!e.getContext || !e.getContext("2d"));
|
||||
}),
|
||||
(M.canvastext = function () {
|
||||
return !(
|
||||
!p.canvas ||
|
||||
!a(t.createElement("canvas").getContext("2d").fillText, "function")
|
||||
);
|
||||
}),
|
||||
(M.webgl = function () {
|
||||
return !!e.WebGLRenderingContext;
|
||||
}),
|
||||
(M.touch = function () {
|
||||
var n;
|
||||
return (
|
||||
"ontouchstart" in e || (e.DocumentTouch && t instanceof DocumentTouch)
|
||||
? (n = !0)
|
||||
: F(
|
||||
[
|
||||
"@media (",
|
||||
S.join("touch-enabled),("),
|
||||
v,
|
||||
")",
|
||||
"{#modernizr{top:9px;position:absolute}}",
|
||||
].join(""),
|
||||
function (e) {
|
||||
n = 9 === e.offsetTop;
|
||||
}
|
||||
),
|
||||
n
|
||||
);
|
||||
}),
|
||||
(M.geolocation = function () {
|
||||
return "geolocation" in navigator;
|
||||
}),
|
||||
(M.postmessage = function () {
|
||||
return !!e.postMessage;
|
||||
}),
|
||||
(M.websqldatabase = function () {
|
||||
return !!e.openDatabase;
|
||||
}),
|
||||
(M.indexedDB = function () {
|
||||
return !!u("indexedDB", e);
|
||||
}),
|
||||
(M.hashchange = function () {
|
||||
return A("hashchange", e) && (t.documentMode === n || t.documentMode > 7);
|
||||
}),
|
||||
(M.history = function () {
|
||||
return !(!e.history || !history.pushState);
|
||||
}),
|
||||
(M.draganddrop = function () {
|
||||
var e = t.createElement("div");
|
||||
return "draggable" in e || ("ondragstart" in e && "ondrop" in e);
|
||||
}),
|
||||
(M.websockets = function () {
|
||||
return "WebSocket" in e || "MozWebSocket" in e;
|
||||
}),
|
||||
(M.rgba = function () {
|
||||
return (
|
||||
r("background-color:rgba(150,255,150,.5)"), i(b.backgroundColor, "rgba")
|
||||
);
|
||||
}),
|
||||
(M.hsla = function () {
|
||||
return (
|
||||
r("background-color:hsla(120,40%,100%,.5)"),
|
||||
i(b.backgroundColor, "rgba") || i(b.backgroundColor, "hsla")
|
||||
);
|
||||
}),
|
||||
(M.multiplebgs = function () {
|
||||
return (
|
||||
r("background:url(https://),url(https://),red url(https://)"),
|
||||
/(url\s*\(.*?){3}/.test(b.background)
|
||||
);
|
||||
}),
|
||||
(M.backgroundsize = function () {
|
||||
return u("backgroundSize");
|
||||
}),
|
||||
(M.borderimage = function () {
|
||||
return u("borderImage");
|
||||
}),
|
||||
(M.borderradius = function () {
|
||||
return u("borderRadius");
|
||||
}),
|
||||
(M.boxshadow = function () {
|
||||
return u("boxShadow");
|
||||
}),
|
||||
(M.textshadow = function () {
|
||||
return "" === t.createElement("div").style.textShadow;
|
||||
}),
|
||||
(M.opacity = function () {
|
||||
return o("opacity:.55"), /^0.55$/.test(b.opacity);
|
||||
}),
|
||||
(M.cssanimations = function () {
|
||||
return u("animationName");
|
||||
}),
|
||||
(M.csscolumns = function () {
|
||||
return u("columnCount");
|
||||
}),
|
||||
(M.cssgradients = function () {
|
||||
var e = "background-image:",
|
||||
t = "gradient(linear,left top,right bottom,from(#9f9),to(white));",
|
||||
n = "linear-gradient(left top,#9f9, white);";
|
||||
return (
|
||||
r(
|
||||
(e + "-webkit- ".split(" ").join(t + e) + S.join(n + e)).slice(
|
||||
0,
|
||||
-e.length
|
||||
)
|
||||
),
|
||||
i(b.backgroundImage, "gradient")
|
||||
);
|
||||
}),
|
||||
(M.cssreflections = function () {
|
||||
return u("boxReflect");
|
||||
}),
|
||||
(M.csstransforms = function () {
|
||||
return !!u("transform");
|
||||
}),
|
||||
(M.csstransforms3d = function () {
|
||||
var e = !!u("perspective");
|
||||
return (
|
||||
e &&
|
||||
"webkitPerspective" in g.style &&
|
||||
F(
|
||||
"@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",
|
||||
function (t) {
|
||||
e = 9 === t.offsetLeft && 3 === t.offsetHeight;
|
||||
}
|
||||
),
|
||||
e
|
||||
);
|
||||
}),
|
||||
(M.csstransitions = function () {
|
||||
return u("transition");
|
||||
}),
|
||||
(M.fontface = function () {
|
||||
var e;
|
||||
return (
|
||||
F(
|
||||
'@font-face {font-family:"font";src:url("https://")}',
|
||||
function (n, r) {
|
||||
var o = t.getElementById("smodernizr"),
|
||||
a = o.sheet || o.styleSheet,
|
||||
i = a
|
||||
? a.cssRules && a.cssRules[0]
|
||||
? a.cssRules[0].cssText
|
||||
: a.cssText || ""
|
||||
: "";
|
||||
e = /src/i.test(i) && 0 === i.indexOf(r.split(" ")[0]);
|
||||
}
|
||||
),
|
||||
e
|
||||
);
|
||||
}),
|
||||
(M.generatedcontent = function () {
|
||||
var e;
|
||||
return (
|
||||
F(
|
||||
[
|
||||
"#",
|
||||
v,
|
||||
"{font:0/0 a}#",
|
||||
v,
|
||||
':after{content:"',
|
||||
x,
|
||||
'";visibility:hidden;font:3px/1 a}',
|
||||
].join(""),
|
||||
function (t) {
|
||||
e = t.offsetHeight >= 3;
|
||||
}
|
||||
),
|
||||
e
|
||||
);
|
||||
}),
|
||||
(M.video = function () {
|
||||
var e = t.createElement("video"),
|
||||
n = !1;
|
||||
try {
|
||||
(n = !!e.canPlayType) &&
|
||||
((n = new Boolean(n)),
|
||||
(n.ogg = e
|
||||
.canPlayType('video/ogg; codecs="theora"')
|
||||
.replace(/^no$/, "")),
|
||||
(n.h264 = e
|
||||
.canPlayType('video/mp4; codecs="avc1.42E01E"')
|
||||
.replace(/^no$/, "")),
|
||||
(n.webm = e
|
||||
.canPlayType('video/webm; codecs="vp8, vorbis"')
|
||||
.replace(/^no$/, "")));
|
||||
} catch (r) {}
|
||||
return n;
|
||||
}),
|
||||
(M.audio = function () {
|
||||
var e = t.createElement("audio"),
|
||||
n = !1;
|
||||
try {
|
||||
(n = !!e.canPlayType) &&
|
||||
((n = new Boolean(n)),
|
||||
(n.ogg = e
|
||||
.canPlayType('audio/ogg; codecs="vorbis"')
|
||||
.replace(/^no$/, "")),
|
||||
(n.mp3 = e.canPlayType("audio/mpeg;").replace(/^no$/, "")),
|
||||
(n.wav = e.canPlayType('audio/wav; codecs="1"').replace(/^no$/, "")),
|
||||
(n.m4a = (
|
||||
e.canPlayType("audio/x-m4a;") || e.canPlayType("audio/aac;")
|
||||
).replace(/^no$/, "")));
|
||||
} catch (r) {}
|
||||
return n;
|
||||
}),
|
||||
(M.localstorage = function () {
|
||||
try {
|
||||
return localStorage.setItem(v, v), localStorage.removeItem(v), !0;
|
||||
} catch (e) {
|
||||
return !1;
|
||||
}
|
||||
}),
|
||||
(M.sessionstorage = function () {
|
||||
try {
|
||||
return sessionStorage.setItem(v, v), sessionStorage.removeItem(v), !0;
|
||||
} catch (e) {
|
||||
return !1;
|
||||
}
|
||||
}),
|
||||
(M.webworkers = function () {
|
||||
return !!e.Worker;
|
||||
}),
|
||||
(M.applicationcache = function () {
|
||||
return !!e.applicationCache;
|
||||
}),
|
||||
(M.svg = function () {
|
||||
return (
|
||||
!!t.createElementNS && !!t.createElementNS(N.svg, "svg").createSVGRect
|
||||
);
|
||||
}),
|
||||
(M.inlinesvg = function () {
|
||||
var e = t.createElement("div");
|
||||
return (
|
||||
(e.innerHTML = "<svg/>"),
|
||||
(e.firstChild && e.firstChild.namespaceURI) == N.svg
|
||||
);
|
||||
}),
|
||||
(M.smil = function () {
|
||||
return (
|
||||
!!t.createElementNS &&
|
||||
/SVGAnimate/.test(w.call(t.createElementNS(N.svg, "animate")))
|
||||
);
|
||||
}),
|
||||
(M.svgclippaths = function () {
|
||||
return (
|
||||
!!t.createElementNS &&
|
||||
/SVGClipPath/.test(w.call(t.createElementNS(N.svg, "clipPath")))
|
||||
);
|
||||
});
|
||||
for (var H in M)
|
||||
f(M, H) &&
|
||||
((d = H.toLowerCase()), (p[d] = M[H]()), $.push((p[d] ? "" : "no-") + d));
|
||||
return (
|
||||
p.input || l(),
|
||||
(p.addTest = function (e, t) {
|
||||
if ("object" == typeof e) for (var r in e) f(e, r) && p.addTest(r, e[r]);
|
||||
else {
|
||||
if (((e = e.toLowerCase()), p[e] !== n)) return p;
|
||||
(t = "function" == typeof t ? t() : t),
|
||||
"undefined" != typeof h &&
|
||||
h &&
|
||||
(g.className += " " + (t ? "" : "no-") + e),
|
||||
(p[e] = t);
|
||||
}
|
||||
return p;
|
||||
}),
|
||||
r(""),
|
||||
(y = E = null),
|
||||
(function (e, t) {
|
||||
function n(e, t) {
|
||||
var n = e.createElement("p"),
|
||||
r = e.getElementsByTagName("head")[0] || e.documentElement;
|
||||
return (
|
||||
(n.innerHTML = "x<style>" + t + "</style>"),
|
||||
r.insertBefore(n.lastChild, r.firstChild)
|
||||
);
|
||||
}
|
||||
function r() {
|
||||
var e = y.elements;
|
||||
return "string" == typeof e ? e.split(" ") : e;
|
||||
}
|
||||
function o(e) {
|
||||
var t = v[e[h]];
|
||||
return t || ((t = {}), g++, (e[h] = g), (v[g] = t)), t;
|
||||
}
|
||||
function a(e, n, r) {
|
||||
if ((n || (n = t), l)) return n.createElement(e);
|
||||
r || (r = o(n));
|
||||
var a;
|
||||
return (
|
||||
(a = r.cache[e]
|
||||
? r.cache[e].cloneNode()
|
||||
: p.test(e)
|
||||
? (r.cache[e] = r.createElem(e)).cloneNode()
|
||||
: r.createElem(e)),
|
||||
!a.canHaveChildren || m.test(e) || a.tagUrn
|
||||
? a
|
||||
: r.frag.appendChild(a)
|
||||
);
|
||||
}
|
||||
function i(e, n) {
|
||||
if ((e || (e = t), l)) return e.createDocumentFragment();
|
||||
n = n || o(e);
|
||||
for (
|
||||
var a = n.frag.cloneNode(), i = 0, c = r(), s = c.length;
|
||||
s > i;
|
||||
i++
|
||||
)
|
||||
a.createElement(c[i]);
|
||||
return a;
|
||||
}
|
||||
function c(e, t) {
|
||||
t.cache ||
|
||||
((t.cache = {}),
|
||||
(t.createElem = e.createElement),
|
||||
(t.createFrag = e.createDocumentFragment),
|
||||
(t.frag = t.createFrag())),
|
||||
(e.createElement = function (n) {
|
||||
return y.shivMethods ? a(n, e, t) : t.createElem(n);
|
||||
}),
|
||||
(e.createDocumentFragment = Function(
|
||||
"h,f",
|
||||
"return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&(" +
|
||||
r()
|
||||
.join()
|
||||
.replace(/[\w\-]+/g, function (e) {
|
||||
return (
|
||||
t.createElem(e), t.frag.createElement(e), 'c("' + e + '")'
|
||||
);
|
||||
}) +
|
||||
");return n}"
|
||||
)(y, t.frag));
|
||||
}
|
||||
function s(e) {
|
||||
e || (e = t);
|
||||
var r = o(e);
|
||||
return (
|
||||
!y.shivCSS ||
|
||||
u ||
|
||||
r.hasCSS ||
|
||||
(r.hasCSS = !!n(
|
||||
e,
|
||||
"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}"
|
||||
)),
|
||||
l || c(e, r),
|
||||
e
|
||||
);
|
||||
}
|
||||
var u,
|
||||
l,
|
||||
d = "3.7.0",
|
||||
f = e.html5 || {},
|
||||
m =
|
||||
/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,
|
||||
p =
|
||||
/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,
|
||||
h = "_html5shiv",
|
||||
g = 0,
|
||||
v = {};
|
||||
!(function () {
|
||||
try {
|
||||
var e = t.createElement("a");
|
||||
(e.innerHTML = "<xyz></xyz>"),
|
||||
(u = "hidden" in e),
|
||||
(l =
|
||||
1 == e.childNodes.length ||
|
||||
(function () {
|
||||
t.createElement("a");
|
||||
var e = t.createDocumentFragment();
|
||||
return (
|
||||
"undefined" == typeof e.cloneNode ||
|
||||
"undefined" == typeof e.createDocumentFragment ||
|
||||
"undefined" == typeof e.createElement
|
||||
);
|
||||
})());
|
||||
} catch (n) {
|
||||
(u = !0), (l = !0);
|
||||
}
|
||||
})();
|
||||
var y = {
|
||||
elements:
|
||||
f.elements ||
|
||||
"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",
|
||||
version: d,
|
||||
shivCSS: f.shivCSS !== !1,
|
||||
supportsUnknownElements: l,
|
||||
shivMethods: f.shivMethods !== !1,
|
||||
type: "default",
|
||||
shivDocument: s,
|
||||
createElement: a,
|
||||
createDocumentFragment: i,
|
||||
};
|
||||
(e.html5 = y), s(t);
|
||||
})(this, t),
|
||||
(p._version = m),
|
||||
(p._prefixes = S),
|
||||
(p._domPrefixes = T),
|
||||
(p._cssomPrefixes = k),
|
||||
(p.mq = z),
|
||||
(p.hasEvent = A),
|
||||
(p.testProp = function (e) {
|
||||
return c([e]);
|
||||
}),
|
||||
(p.testAllProps = u),
|
||||
(p.testStyles = F),
|
||||
(p.prefixed = function (e, t, n) {
|
||||
return t ? u(e, t, n) : u(e, "pfx");
|
||||
}),
|
||||
(g.className =
|
||||
g.className.replace(/(^|\s)no-js(\s|$)/, "$1$2") +
|
||||
(h ? " js " + $.join(" ") : "")),
|
||||
p
|
||||
);
|
||||
})(this, this.document);
|
|
@ -0,0 +1,126 @@
|
|||
/*!
|
||||
* Retina.js v1.3.0
|
||||
*
|
||||
* Copyright 2014 Imulus, LLC
|
||||
* Released under the MIT license
|
||||
*
|
||||
* Retina.js is an open source script that makes it easy to serve
|
||||
* high-resolution images to devices with retina displays.
|
||||
*/
|
||||
!(function () {
|
||||
function a() {}
|
||||
function b(a) {
|
||||
return f.retinaImageSuffix + a;
|
||||
}
|
||||
function c(a, c) {
|
||||
if (((this.path = a || ""), "undefined" != typeof c && null !== c))
|
||||
(this.at_2x_path = c), (this.perform_check = !1);
|
||||
else {
|
||||
if (void 0 !== document.createElement) {
|
||||
var d = document.createElement("a");
|
||||
(d.href = this.path),
|
||||
(d.pathname = d.pathname.replace(g, b)),
|
||||
(this.at_2x_path = d.href);
|
||||
} else {
|
||||
var e = this.path.split("?");
|
||||
(e[0] = e[0].replace(g, b)), (this.at_2x_path = e.join("?"));
|
||||
}
|
||||
this.perform_check = !0;
|
||||
}
|
||||
}
|
||||
function d(a) {
|
||||
(this.el = a),
|
||||
(this.path = new c(
|
||||
this.el.getAttribute("src"),
|
||||
this.el.getAttribute("data-at2x")
|
||||
));
|
||||
var b = this;
|
||||
this.path.check_2x_variant(function (a) {
|
||||
a && b.swap();
|
||||
});
|
||||
}
|
||||
var e = "undefined" == typeof exports ? window : exports,
|
||||
f = {
|
||||
retinaImageSuffix: "@2x",
|
||||
check_mime_type: !0,
|
||||
force_original_dimensions: !0,
|
||||
};
|
||||
(e.Retina = a),
|
||||
(a.configure = function (a) {
|
||||
null === a && (a = {});
|
||||
for (var b in a) a.hasOwnProperty(b) && (f[b] = a[b]);
|
||||
}),
|
||||
(a.init = function (a) {
|
||||
null === a && (a = e);
|
||||
var b = a.onload || function () {};
|
||||
a.onload = function () {
|
||||
var a,
|
||||
c,
|
||||
e = document.getElementsByTagName("img"),
|
||||
f = [];
|
||||
for (a = 0; a < e.length; a += 1)
|
||||
(c = e[a]), c.getAttributeNode("data-no-retina") || f.push(new d(c));
|
||||
b();
|
||||
};
|
||||
}),
|
||||
(a.isRetina = function () {
|
||||
var a =
|
||||
"(-webkit-min-device-pixel-ratio: 1.5), (min--moz-device-pixel-ratio: 1.5), (-o-min-device-pixel-ratio: 3/2), (min-resolution: 1.5dppx)";
|
||||
return e.devicePixelRatio > 1
|
||||
? !0
|
||||
: e.matchMedia && e.matchMedia(a).matches
|
||||
? !0
|
||||
: !1;
|
||||
});
|
||||
var g = /\.\w+$/;
|
||||
(e.RetinaImagePath = c),
|
||||
(c.confirmed_paths = []),
|
||||
(c.prototype.is_external = function () {
|
||||
return !(
|
||||
!this.path.match(/^https?\:/i) ||
|
||||
this.path.match("//" + document.domain)
|
||||
);
|
||||
}),
|
||||
(c.prototype.check_2x_variant = function (a) {
|
||||
var b,
|
||||
d = this;
|
||||
return this.is_external()
|
||||
? a(!1)
|
||||
: this.perform_check ||
|
||||
"undefined" == typeof this.at_2x_path ||
|
||||
null === this.at_2x_path
|
||||
? this.at_2x_path in c.confirmed_paths
|
||||
? a(!0)
|
||||
: ((b = new XMLHttpRequest()),
|
||||
b.open("HEAD", this.at_2x_path),
|
||||
(b.onreadystatechange = function () {
|
||||
if (4 !== b.readyState) return a(!1);
|
||||
if (b.status >= 200 && b.status <= 399) {
|
||||
if (f.check_mime_type) {
|
||||
var e = b.getResponseHeader("Content-Type");
|
||||
if (null === e || !e.match(/^image/i)) return a(!1);
|
||||
}
|
||||
return c.confirmed_paths.push(d.at_2x_path), a(!0);
|
||||
}
|
||||
return a(!1);
|
||||
}),
|
||||
b.send(),
|
||||
void 0)
|
||||
: a(!0);
|
||||
}),
|
||||
(e.RetinaImage = d),
|
||||
(d.prototype.swap = function (a) {
|
||||
function b() {
|
||||
c.el.complete
|
||||
? (f.force_original_dimensions &&
|
||||
(c.el.setAttribute("width", c.el.offsetWidth),
|
||||
c.el.setAttribute("height", c.el.offsetHeight)),
|
||||
c.el.setAttribute("src", a))
|
||||
: setTimeout(b, 5);
|
||||
}
|
||||
"undefined" == typeof a && (a = this.path.at_2x_path);
|
||||
var c = this;
|
||||
b();
|
||||
}),
|
||||
a.isRetina() && a.init(e);
|
||||
})();
|
|
@ -0,0 +1,391 @@
|
|||
jQuery(document).ready(function ($) {
|
||||
var timelines = $(".cd-horizontal-timeline"),
|
||||
eventsMinDistance = 60;
|
||||
|
||||
timelines.length > 0 && initTimeline(timelines);
|
||||
|
||||
function initTimeline(timelines) {
|
||||
timelines.each(function () {
|
||||
var timeline = $(this),
|
||||
timelineComponents = {};
|
||||
//cache timeline components
|
||||
timelineComponents["timelineWrapper"] = timeline.find(".events-wrapper");
|
||||
timelineComponents["eventsWrapper"] =
|
||||
timelineComponents["timelineWrapper"].children(".events");
|
||||
timelineComponents["fillingLine"] =
|
||||
timelineComponents["eventsWrapper"].children(".filling-line");
|
||||
timelineComponents["timelineEvents"] =
|
||||
timelineComponents["eventsWrapper"].find("a");
|
||||
timelineComponents["timelineDates"] = parseDate(
|
||||
timelineComponents["timelineEvents"]
|
||||
);
|
||||
timelineComponents["eventsMinLapse"] = minLapse(
|
||||
timelineComponents["timelineDates"]
|
||||
);
|
||||
timelineComponents["timelineNavigation"] = timeline.find(
|
||||
".cd-timeline-navigation"
|
||||
);
|
||||
timelineComponents["eventsContent"] =
|
||||
timeline.children(".events-content");
|
||||
|
||||
//assign a left postion to the single events along the timeline
|
||||
setDatePosition(timelineComponents, eventsMinDistance);
|
||||
//assign a width to the timeline
|
||||
var timelineTotWidth = setTimelineWidth(
|
||||
timelineComponents,
|
||||
eventsMinDistance
|
||||
);
|
||||
//the timeline has been initialize - show it
|
||||
timeline.addClass("loaded");
|
||||
|
||||
//detect click on the next arrow
|
||||
timelineComponents["timelineNavigation"].on(
|
||||
"click",
|
||||
".next",
|
||||
function (event) {
|
||||
event.preventDefault();
|
||||
updateSlide(timelineComponents, timelineTotWidth, "next");
|
||||
}
|
||||
);
|
||||
//detect click on the prev arrow
|
||||
timelineComponents["timelineNavigation"].on(
|
||||
"click",
|
||||
".prev",
|
||||
function (event) {
|
||||
event.preventDefault();
|
||||
updateSlide(timelineComponents, timelineTotWidth, "prev");
|
||||
}
|
||||
);
|
||||
//detect click on the a single event - show new event content
|
||||
timelineComponents["eventsWrapper"].on("click", "a", function (event) {
|
||||
event.preventDefault();
|
||||
timelineComponents["timelineEvents"].removeClass("selected");
|
||||
$(this).addClass("selected");
|
||||
updateOlderEvents($(this));
|
||||
updateFilling(
|
||||
$(this),
|
||||
timelineComponents["fillingLine"],
|
||||
timelineTotWidth
|
||||
);
|
||||
updateVisibleContent($(this), timelineComponents["eventsContent"]);
|
||||
});
|
||||
|
||||
//on swipe, show next/prev event content
|
||||
timelineComponents["eventsContent"].on("swipeleft", function () {
|
||||
var mq = checkMQ();
|
||||
mq == "mobile" &&
|
||||
showNewContent(timelineComponents, timelineTotWidth, "next");
|
||||
});
|
||||
timelineComponents["eventsContent"].on("swiperight", function () {
|
||||
var mq = checkMQ();
|
||||
mq == "mobile" &&
|
||||
showNewContent(timelineComponents, timelineTotWidth, "prev");
|
||||
});
|
||||
|
||||
//keyboard navigation
|
||||
$(document).keyup(function (event) {
|
||||
if (event.which == "37" && elementInViewport(timeline.get(0))) {
|
||||
showNewContent(timelineComponents, timelineTotWidth, "prev");
|
||||
} else if (event.which == "39" && elementInViewport(timeline.get(0))) {
|
||||
showNewContent(timelineComponents, timelineTotWidth, "next");
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function updateSlide(timelineComponents, timelineTotWidth, string) {
|
||||
//retrieve translateX value of timelineComponents['eventsWrapper']
|
||||
var translateValue = getTranslateValue(timelineComponents["eventsWrapper"]),
|
||||
wrapperWidth = Number(
|
||||
timelineComponents["timelineWrapper"].css("width").replace("px", "")
|
||||
);
|
||||
//translate the timeline to the left('next')/right('prev')
|
||||
string == "next"
|
||||
? translateTimeline(
|
||||
timelineComponents,
|
||||
translateValue - wrapperWidth + eventsMinDistance,
|
||||
wrapperWidth - timelineTotWidth
|
||||
)
|
||||
: translateTimeline(
|
||||
timelineComponents,
|
||||
translateValue + wrapperWidth - eventsMinDistance
|
||||
);
|
||||
}
|
||||
|
||||
function showNewContent(timelineComponents, timelineTotWidth, string) {
|
||||
//go from one event to the next/previous one
|
||||
var visibleContent = timelineComponents["eventsContent"].find(".selected"),
|
||||
newContent =
|
||||
string == "next" ? visibleContent.next() : visibleContent.prev();
|
||||
|
||||
if (newContent.length > 0) {
|
||||
//if there's a next/prev event - show it
|
||||
var selectedDate = timelineComponents["eventsWrapper"].find(".selected"),
|
||||
newEvent =
|
||||
string == "next"
|
||||
? selectedDate.parent("li").next("li").children("a")
|
||||
: selectedDate.parent("li").prev("li").children("a");
|
||||
|
||||
updateFilling(
|
||||
newEvent,
|
||||
timelineComponents["fillingLine"],
|
||||
timelineTotWidth
|
||||
);
|
||||
updateVisibleContent(newEvent, timelineComponents["eventsContent"]);
|
||||
newEvent.addClass("selected");
|
||||
selectedDate.removeClass("selected");
|
||||
updateOlderEvents(newEvent);
|
||||
updateTimelinePosition(string, newEvent, timelineComponents);
|
||||
}
|
||||
}
|
||||
|
||||
function updateTimelinePosition(string, event, timelineComponents) {
|
||||
//translate timeline to the left/right according to the position of the selected event
|
||||
var eventStyle = window.getComputedStyle(event.get(0), null),
|
||||
eventLeft = Number(eventStyle.getPropertyValue("left").replace("px", "")),
|
||||
timelineWidth = Number(
|
||||
timelineComponents["timelineWrapper"].css("width").replace("px", "")
|
||||
),
|
||||
timelineTotWidth = Number(
|
||||
timelineComponents["eventsWrapper"].css("width").replace("px", "")
|
||||
);
|
||||
var timelineTranslate = getTranslateValue(
|
||||
timelineComponents["eventsWrapper"]
|
||||
);
|
||||
|
||||
if (
|
||||
(string == "next" && eventLeft > timelineWidth - timelineTranslate) ||
|
||||
(string == "prev" && eventLeft < -timelineTranslate)
|
||||
) {
|
||||
translateTimeline(
|
||||
timelineComponents,
|
||||
-eventLeft + timelineWidth / 2,
|
||||
timelineWidth - timelineTotWidth
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
function translateTimeline(timelineComponents, value, totWidth) {
|
||||
var eventsWrapper = timelineComponents["eventsWrapper"].get(0);
|
||||
value = value > 0 ? 0 : value; //only negative translate value
|
||||
value =
|
||||
!(typeof totWidth === "undefined") && value < totWidth ? totWidth : value; //do not translate more than timeline width
|
||||
setTransformValue(eventsWrapper, "translateX", value + "px");
|
||||
//update navigation arrows visibility
|
||||
value == 0
|
||||
? timelineComponents["timelineNavigation"]
|
||||
.find(".prev")
|
||||
.addClass("inactive")
|
||||
: timelineComponents["timelineNavigation"]
|
||||
.find(".prev")
|
||||
.removeClass("inactive");
|
||||
value == totWidth
|
||||
? timelineComponents["timelineNavigation"]
|
||||
.find(".next")
|
||||
.addClass("inactive")
|
||||
: timelineComponents["timelineNavigation"]
|
||||
.find(".next")
|
||||
.removeClass("inactive");
|
||||
}
|
||||
|
||||
function updateFilling(selectedEvent, filling, totWidth) {
|
||||
//change .filling-line length according to the selected event
|
||||
var eventStyle = window.getComputedStyle(selectedEvent.get(0), null),
|
||||
eventLeft = eventStyle.getPropertyValue("left"),
|
||||
eventWidth = eventStyle.getPropertyValue("width");
|
||||
eventLeft =
|
||||
Number(eventLeft.replace("px", "")) +
|
||||
Number(eventWidth.replace("px", "")) / 2;
|
||||
var scaleValue = eventLeft / totWidth;
|
||||
setTransformValue(filling.get(0), "scaleX", scaleValue);
|
||||
}
|
||||
|
||||
function setDatePosition(timelineComponents, min) {
|
||||
for (i = 0; i < timelineComponents["timelineDates"].length; i++) {
|
||||
var distance = daydiff(
|
||||
timelineComponents["timelineDates"][0],
|
||||
timelineComponents["timelineDates"][i]
|
||||
),
|
||||
distanceNorm =
|
||||
Math.round(distance / timelineComponents["eventsMinLapse"]) + 2;
|
||||
timelineComponents["timelineEvents"]
|
||||
.eq(i)
|
||||
.css("left", distanceNorm * min + "px");
|
||||
}
|
||||
}
|
||||
|
||||
function setTimelineWidth(timelineComponents, width) {
|
||||
var timeSpan = daydiff(
|
||||
timelineComponents["timelineDates"][0],
|
||||
timelineComponents["timelineDates"][
|
||||
timelineComponents["timelineDates"].length - 1
|
||||
]
|
||||
),
|
||||
timeSpanNorm = timeSpan / timelineComponents["eventsMinLapse"],
|
||||
timeSpanNorm = Math.round(timeSpanNorm) + 4,
|
||||
totalWidth = timeSpanNorm * width;
|
||||
timelineComponents["eventsWrapper"].css("width", totalWidth + "px");
|
||||
updateFilling(
|
||||
timelineComponents["eventsWrapper"].find("a.selected"),
|
||||
timelineComponents["fillingLine"],
|
||||
totalWidth
|
||||
);
|
||||
updateTimelinePosition(
|
||||
"next",
|
||||
timelineComponents["eventsWrapper"].find("a.selected"),
|
||||
timelineComponents
|
||||
);
|
||||
|
||||
return totalWidth;
|
||||
}
|
||||
|
||||
function updateVisibleContent(event, eventsContent) {
|
||||
var eventDate = event.data("date"),
|
||||
visibleContent = eventsContent.find(".selected"),
|
||||
selectedContent = eventsContent.find('[data-date="' + eventDate + '"]'),
|
||||
selectedContentHeight = selectedContent.height();
|
||||
|
||||
if (selectedContent.index() > visibleContent.index()) {
|
||||
var classEnetering = "selected enter-right",
|
||||
classLeaving = "leave-left";
|
||||
} else {
|
||||
var classEnetering = "selected enter-left",
|
||||
classLeaving = "leave-right";
|
||||
}
|
||||
|
||||
selectedContent.attr("class", classEnetering);
|
||||
visibleContent
|
||||
.attr("class", classLeaving)
|
||||
.one(
|
||||
"webkitAnimationEnd oanimationend msAnimationEnd animationend",
|
||||
function () {
|
||||
visibleContent.removeClass("leave-right leave-left");
|
||||
selectedContent.removeClass("enter-left enter-right");
|
||||
}
|
||||
);
|
||||
eventsContent.css("height", selectedContentHeight + "px");
|
||||
}
|
||||
|
||||
function updateOlderEvents(event) {
|
||||
event
|
||||
.parent("li")
|
||||
.prevAll("li")
|
||||
.children("a")
|
||||
.addClass("older-event")
|
||||
.end()
|
||||
.end()
|
||||
.nextAll("li")
|
||||
.children("a")
|
||||
.removeClass("older-event");
|
||||
}
|
||||
|
||||
function getTranslateValue(timeline) {
|
||||
var timelineStyle = window.getComputedStyle(timeline.get(0), null),
|
||||
timelineTranslate =
|
||||
timelineStyle.getPropertyValue("-webkit-transform") ||
|
||||
timelineStyle.getPropertyValue("-moz-transform") ||
|
||||
timelineStyle.getPropertyValue("-ms-transform") ||
|
||||
timelineStyle.getPropertyValue("-o-transform") ||
|
||||
timelineStyle.getPropertyValue("transform");
|
||||
|
||||
if (timelineTranslate.indexOf("(") >= 0) {
|
||||
var timelineTranslate = timelineTranslate.split("(")[1];
|
||||
timelineTranslate = timelineTranslate.split(")")[0];
|
||||
timelineTranslate = timelineTranslate.split(",");
|
||||
var translateValue = timelineTranslate[4];
|
||||
} else {
|
||||
var translateValue = 0;
|
||||
}
|
||||
|
||||
return Number(translateValue);
|
||||
}
|
||||
|
||||
function setTransformValue(element, property, value) {
|
||||
element.style["-webkit-transform"] = property + "(" + value + ")";
|
||||
element.style["-moz-transform"] = property + "(" + value + ")";
|
||||
element.style["-ms-transform"] = property + "(" + value + ")";
|
||||
element.style["-o-transform"] = property + "(" + value + ")";
|
||||
element.style["transform"] = property + "(" + value + ")";
|
||||
}
|
||||
|
||||
//based on http://stackoverflow.com/questions/542938/how-do-i-get-the-number-of-days-between-two-dates-in-javascript
|
||||
function parseDate(events) {
|
||||
var dateArrays = [];
|
||||
events.each(function () {
|
||||
var singleDate = $(this),
|
||||
dateComp = singleDate.data("date").split("T");
|
||||
if (dateComp.length > 1) {
|
||||
//both DD/MM/YEAR and time are provided
|
||||
var dayComp = dateComp[0].split("/"),
|
||||
timeComp = dateComp[1].split(":");
|
||||
} else if (dateComp[0].indexOf(":") >= 0) {
|
||||
//only time is provide
|
||||
var dayComp = ["2000", "0", "0"],
|
||||
timeComp = dateComp[0].split(":");
|
||||
} else {
|
||||
//only DD/MM/YEAR
|
||||
var dayComp = dateComp[0].split("/"),
|
||||
timeComp = ["0", "0"];
|
||||
}
|
||||
var newDate = new Date(
|
||||
dayComp[2],
|
||||
dayComp[1] - 1,
|
||||
dayComp[0],
|
||||
timeComp[0],
|
||||
timeComp[1]
|
||||
);
|
||||
dateArrays.push(newDate);
|
||||
});
|
||||
return dateArrays;
|
||||
}
|
||||
|
||||
function daydiff(first, second) {
|
||||
return Math.round(second - first);
|
||||
}
|
||||
|
||||
function minLapse(dates) {
|
||||
//determine the minimum distance among events
|
||||
var dateDistances = [];
|
||||
for (i = 1; i < dates.length; i++) {
|
||||
var distance = daydiff(dates[i - 1], dates[i]);
|
||||
dateDistances.push(distance);
|
||||
}
|
||||
return Math.min.apply(null, dateDistances);
|
||||
}
|
||||
|
||||
/*
|
||||
How to tell if a DOM element is visible in the current viewport?
|
||||
http://stackoverflow.com/questions/123999/how-to-tell-if-a-dom-element-is-visible-in-the-current-viewport
|
||||
*/
|
||||
function elementInViewport(el) {
|
||||
var top = el.offsetTop;
|
||||
var left = el.offsetLeft;
|
||||
var width = el.offsetWidth;
|
||||
var height = el.offsetHeight;
|
||||
|
||||
while (el.offsetParent) {
|
||||
el = el.offsetParent;
|
||||
top += el.offsetTop;
|
||||
left += el.offsetLeft;
|
||||
}
|
||||
|
||||
return (
|
||||
top < window.pageYOffset + window.innerHeight &&
|
||||
left < window.pageXOffset + window.innerWidth &&
|
||||
top + height > window.pageYOffset &&
|
||||
left + width > window.pageXOffset
|
||||
);
|
||||
}
|
||||
|
||||
function checkMQ() {
|
||||
//check if mobile or desktop device
|
||||
return window
|
||||
.getComputedStyle(
|
||||
document.querySelector(".cd-horizontal-timeline"),
|
||||
"::before"
|
||||
)
|
||||
.getPropertyValue("content")
|
||||
.replace(/'/g, "")
|
||||
.replace(/"/g, "");
|
||||
}
|
||||
});
|
|
@ -0,0 +1,486 @@
|
|||
// Generated by CoffeeScript 1.6.2
|
||||
/*
|
||||
jQuery Waypoints - v2.0.3
|
||||
Copyright (c) 2011-2013 Caleb Troughton
|
||||
Dual licensed under the MIT license and GPL license.
|
||||
https://github.com/imakewebthings/jquery-waypoints/blob/master/licenses.txt
|
||||
*/
|
||||
(function () {
|
||||
var t =
|
||||
[].indexOf ||
|
||||
function (t) {
|
||||
for (var e = 0, n = this.length; e < n; e++) {
|
||||
if (e in this && this[e] === t) return e;
|
||||
}
|
||||
return -1;
|
||||
},
|
||||
e = [].slice;
|
||||
(function (t, e) {
|
||||
if (typeof define === "function" && define.amd) {
|
||||
return define("waypoints", ["jquery"], function (n) {
|
||||
return e(n, t);
|
||||
});
|
||||
} else {
|
||||
return e(t.jQuery, t);
|
||||
}
|
||||
})(this, function (n, r) {
|
||||
var i, o, l, s, f, u, a, c, h, d, p, y, v, w, g, m;
|
||||
i = n(r);
|
||||
c = t.call(r, "ontouchstart") >= 0;
|
||||
s = { horizontal: {}, vertical: {} };
|
||||
f = 1;
|
||||
a = {};
|
||||
u = "waypoints-context-id";
|
||||
p = "resize.waypoints";
|
||||
y = "scroll.waypoints";
|
||||
v = 1;
|
||||
w = "waypoints-waypoint-ids";
|
||||
g = "waypoint";
|
||||
m = "waypoints";
|
||||
o = (function () {
|
||||
function t(t) {
|
||||
var e = this;
|
||||
this.$element = t;
|
||||
this.element = t[0];
|
||||
this.didResize = false;
|
||||
this.didScroll = false;
|
||||
this.id = "context" + f++;
|
||||
this.oldScroll = { x: t.scrollLeft(), y: t.scrollTop() };
|
||||
this.waypoints = { horizontal: {}, vertical: {} };
|
||||
t.data(u, this.id);
|
||||
a[this.id] = this;
|
||||
t.bind(y, function () {
|
||||
var t;
|
||||
if (!(e.didScroll || c)) {
|
||||
e.didScroll = true;
|
||||
t = function () {
|
||||
e.doScroll();
|
||||
return (e.didScroll = false);
|
||||
};
|
||||
return r.setTimeout(t, n[m].settings.scrollThrottle);
|
||||
}
|
||||
});
|
||||
t.bind(p, function () {
|
||||
var t;
|
||||
if (!e.didResize) {
|
||||
e.didResize = true;
|
||||
t = function () {
|
||||
n[m]("refresh");
|
||||
return (e.didResize = false);
|
||||
};
|
||||
return r.setTimeout(t, n[m].settings.resizeThrottle);
|
||||
}
|
||||
});
|
||||
}
|
||||
t.prototype.doScroll = function () {
|
||||
var t,
|
||||
e = this;
|
||||
t = {
|
||||
horizontal: {
|
||||
newScroll: this.$element.scrollLeft(),
|
||||
oldScroll: this.oldScroll.x,
|
||||
forward: "right",
|
||||
backward: "left",
|
||||
},
|
||||
vertical: {
|
||||
newScroll: this.$element.scrollTop(),
|
||||
oldScroll: this.oldScroll.y,
|
||||
forward: "down",
|
||||
backward: "up",
|
||||
},
|
||||
};
|
||||
if (c && (!t.vertical.oldScroll || !t.vertical.newScroll)) {
|
||||
n[m]("refresh");
|
||||
}
|
||||
n.each(t, function (t, r) {
|
||||
var i, o, l;
|
||||
l = [];
|
||||
o = r.newScroll > r.oldScroll;
|
||||
i = o ? r.forward : r.backward;
|
||||
n.each(e.waypoints[t], function (t, e) {
|
||||
var n, i;
|
||||
if (r.oldScroll < (n = e.offset) && n <= r.newScroll) {
|
||||
return l.push(e);
|
||||
} else if (r.newScroll < (i = e.offset) && i <= r.oldScroll) {
|
||||
return l.push(e);
|
||||
}
|
||||
});
|
||||
l.sort(function (t, e) {
|
||||
return t.offset - e.offset;
|
||||
});
|
||||
if (!o) {
|
||||
l.reverse();
|
||||
}
|
||||
return n.each(l, function (t, e) {
|
||||
if (e.options.continuous || t === l.length - 1) {
|
||||
return e.trigger([i]);
|
||||
}
|
||||
});
|
||||
});
|
||||
return (this.oldScroll = {
|
||||
x: t.horizontal.newScroll,
|
||||
y: t.vertical.newScroll,
|
||||
});
|
||||
};
|
||||
t.prototype.refresh = function () {
|
||||
var t,
|
||||
e,
|
||||
r,
|
||||
i = this;
|
||||
r = n.isWindow(this.element);
|
||||
e = this.$element.offset();
|
||||
this.doScroll();
|
||||
t = {
|
||||
horizontal: {
|
||||
contextOffset: r ? 0 : e.left,
|
||||
contextScroll: r ? 0 : this.oldScroll.x,
|
||||
contextDimension: this.$element.width(),
|
||||
oldScroll: this.oldScroll.x,
|
||||
forward: "right",
|
||||
backward: "left",
|
||||
offsetProp: "left",
|
||||
},
|
||||
vertical: {
|
||||
contextOffset: r ? 0 : e.top,
|
||||
contextScroll: r ? 0 : this.oldScroll.y,
|
||||
contextDimension: r
|
||||
? n[m]("viewportHeight")
|
||||
: this.$element.height(),
|
||||
oldScroll: this.oldScroll.y,
|
||||
forward: "down",
|
||||
backward: "up",
|
||||
offsetProp: "top",
|
||||
},
|
||||
};
|
||||
return n.each(t, function (t, e) {
|
||||
return n.each(i.waypoints[t], function (t, r) {
|
||||
var i, o, l, s, f;
|
||||
i = r.options.offset;
|
||||
l = r.offset;
|
||||
o = n.isWindow(r.element) ? 0 : r.$element.offset()[e.offsetProp];
|
||||
if (n.isFunction(i)) {
|
||||
i = i.apply(r.element);
|
||||
} else if (typeof i === "string") {
|
||||
i = parseFloat(i);
|
||||
if (r.options.offset.indexOf("%") > -1) {
|
||||
i = Math.ceil((e.contextDimension * i) / 100);
|
||||
}
|
||||
}
|
||||
r.offset = o - e.contextOffset + e.contextScroll - i;
|
||||
if ((r.options.onlyOnScroll && l != null) || !r.enabled) {
|
||||
return;
|
||||
}
|
||||
if (l !== null && l < (s = e.oldScroll) && s <= r.offset) {
|
||||
return r.trigger([e.backward]);
|
||||
} else if (l !== null && l > (f = e.oldScroll) && f >= r.offset) {
|
||||
return r.trigger([e.forward]);
|
||||
} else if (l === null && e.oldScroll >= r.offset) {
|
||||
return r.trigger([e.forward]);
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
t.prototype.checkEmpty = function () {
|
||||
if (
|
||||
n.isEmptyObject(this.waypoints.horizontal) &&
|
||||
n.isEmptyObject(this.waypoints.vertical)
|
||||
) {
|
||||
this.$element.unbind([p, y].join(" "));
|
||||
return delete a[this.id];
|
||||
}
|
||||
};
|
||||
return t;
|
||||
})();
|
||||
l = (function () {
|
||||
function t(t, e, r) {
|
||||
var i, o;
|
||||
r = n.extend({}, n.fn[g].defaults, r);
|
||||
if (r.offset === "bottom-in-view") {
|
||||
r.offset = function () {
|
||||
var t;
|
||||
t = n[m]("viewportHeight");
|
||||
if (!n.isWindow(e.element)) {
|
||||
t = e.$element.height();
|
||||
}
|
||||
return t - n(this).outerHeight();
|
||||
};
|
||||
}
|
||||
this.$element = t;
|
||||
this.element = t[0];
|
||||
this.axis = r.horizontal ? "horizontal" : "vertical";
|
||||
this.callback = r.handler;
|
||||
this.context = e;
|
||||
this.enabled = r.enabled;
|
||||
this.id = "waypoints" + v++;
|
||||
this.offset = null;
|
||||
this.options = r;
|
||||
e.waypoints[this.axis][this.id] = this;
|
||||
s[this.axis][this.id] = this;
|
||||
i = (o = t.data(w)) != null ? o : [];
|
||||
i.push(this.id);
|
||||
t.data(w, i);
|
||||
}
|
||||
t.prototype.trigger = function (t) {
|
||||
if (!this.enabled) {
|
||||
return;
|
||||
}
|
||||
if (this.callback != null) {
|
||||
this.callback.apply(this.element, t);
|
||||
}
|
||||
if (this.options.triggerOnce) {
|
||||
return this.destroy();
|
||||
}
|
||||
};
|
||||
t.prototype.disable = function () {
|
||||
return (this.enabled = false);
|
||||
};
|
||||
t.prototype.enable = function () {
|
||||
this.context.refresh();
|
||||
return (this.enabled = true);
|
||||
};
|
||||
t.prototype.destroy = function () {
|
||||
delete s[this.axis][this.id];
|
||||
delete this.context.waypoints[this.axis][this.id];
|
||||
return this.context.checkEmpty();
|
||||
};
|
||||
t.getWaypointsByElement = function (t) {
|
||||
var e, r;
|
||||
r = n(t).data(w);
|
||||
if (!r) {
|
||||
return [];
|
||||
}
|
||||
e = n.extend({}, s.horizontal, s.vertical);
|
||||
return n.map(r, function (t) {
|
||||
return e[t];
|
||||
});
|
||||
};
|
||||
return t;
|
||||
})();
|
||||
d = {
|
||||
init: function (t, e) {
|
||||
var r;
|
||||
if (e == null) {
|
||||
e = {};
|
||||
}
|
||||
if ((r = e.handler) == null) {
|
||||
e.handler = t;
|
||||
}
|
||||
this.each(function () {
|
||||
var t, r, i, s;
|
||||
t = n(this);
|
||||
i = (s = e.context) != null ? s : n.fn[g].defaults.context;
|
||||
if (!n.isWindow(i)) {
|
||||
i = t.closest(i);
|
||||
}
|
||||
i = n(i);
|
||||
r = a[i.data(u)];
|
||||
if (!r) {
|
||||
r = new o(i);
|
||||
}
|
||||
return new l(t, r, e);
|
||||
});
|
||||
n[m]("refresh");
|
||||
return this;
|
||||
},
|
||||
disable: function () {
|
||||
return d._invoke(this, "disable");
|
||||
},
|
||||
enable: function () {
|
||||
return d._invoke(this, "enable");
|
||||
},
|
||||
destroy: function () {
|
||||
return d._invoke(this, "destroy");
|
||||
},
|
||||
prev: function (t, e) {
|
||||
return d._traverse.call(this, t, e, function (t, e, n) {
|
||||
if (e > 0) {
|
||||
return t.push(n[e - 1]);
|
||||
}
|
||||
});
|
||||
},
|
||||
next: function (t, e) {
|
||||
return d._traverse.call(this, t, e, function (t, e, n) {
|
||||
if (e < n.length - 1) {
|
||||
return t.push(n[e + 1]);
|
||||
}
|
||||
});
|
||||
},
|
||||
_traverse: function (t, e, i) {
|
||||
var o, l;
|
||||
if (t == null) {
|
||||
t = "vertical";
|
||||
}
|
||||
if (e == null) {
|
||||
e = r;
|
||||
}
|
||||
l = h.aggregate(e);
|
||||
o = [];
|
||||
this.each(function () {
|
||||
var e;
|
||||
e = n.inArray(this, l[t]);
|
||||
return i(o, e, l[t]);
|
||||
});
|
||||
return this.pushStack(o);
|
||||
},
|
||||
_invoke: function (t, e) {
|
||||
t.each(function () {
|
||||
var t;
|
||||
t = l.getWaypointsByElement(this);
|
||||
return n.each(t, function (t, n) {
|
||||
n[e]();
|
||||
return true;
|
||||
});
|
||||
});
|
||||
return this;
|
||||
},
|
||||
};
|
||||
n.fn[g] = function () {
|
||||
var t, r;
|
||||
(r = arguments[0]),
|
||||
(t = 2 <= arguments.length ? e.call(arguments, 1) : []);
|
||||
if (d[r]) {
|
||||
return d[r].apply(this, t);
|
||||
} else if (n.isFunction(r)) {
|
||||
return d.init.apply(this, arguments);
|
||||
} else if (n.isPlainObject(r)) {
|
||||
return d.init.apply(this, [null, r]);
|
||||
} else if (!r) {
|
||||
return n.error(
|
||||
"jQuery Waypoints needs a callback function or handler option."
|
||||
);
|
||||
} else {
|
||||
return n.error(
|
||||
"The " + r + " method does not exist in jQuery Waypoints."
|
||||
);
|
||||
}
|
||||
};
|
||||
n.fn[g].defaults = {
|
||||
context: r,
|
||||
continuous: true,
|
||||
enabled: true,
|
||||
horizontal: false,
|
||||
offset: 0,
|
||||
triggerOnce: false,
|
||||
};
|
||||
h = {
|
||||
refresh: function () {
|
||||
return n.each(a, function (t, e) {
|
||||
return e.refresh();
|
||||
});
|
||||
},
|
||||
viewportHeight: function () {
|
||||
var t;
|
||||
return (t = r.innerHeight) != null ? t : i.height();
|
||||
},
|
||||
aggregate: function (t) {
|
||||
var e, r, i;
|
||||
e = s;
|
||||
if (t) {
|
||||
e = (i = a[n(t).data(u)]) != null ? i.waypoints : void 0;
|
||||
}
|
||||
if (!e) {
|
||||
return [];
|
||||
}
|
||||
r = { horizontal: [], vertical: [] };
|
||||
n.each(r, function (t, i) {
|
||||
n.each(e[t], function (t, e) {
|
||||
return i.push(e);
|
||||
});
|
||||
i.sort(function (t, e) {
|
||||
return t.offset - e.offset;
|
||||
});
|
||||
r[t] = n.map(i, function (t) {
|
||||
return t.element;
|
||||
});
|
||||
return (r[t] = n.unique(r[t]));
|
||||
});
|
||||
return r;
|
||||
},
|
||||
above: function (t) {
|
||||
if (t == null) {
|
||||
t = r;
|
||||
}
|
||||
return h._filter(t, "vertical", function (t, e) {
|
||||
return e.offset <= t.oldScroll.y;
|
||||
});
|
||||
},
|
||||
below: function (t) {
|
||||
if (t == null) {
|
||||
t = r;
|
||||
}
|
||||
return h._filter(t, "vertical", function (t, e) {
|
||||
return e.offset > t.oldScroll.y;
|
||||
});
|
||||
},
|
||||
left: function (t) {
|
||||
if (t == null) {
|
||||
t = r;
|
||||
}
|
||||
return h._filter(t, "horizontal", function (t, e) {
|
||||
return e.offset <= t.oldScroll.x;
|
||||
});
|
||||
},
|
||||
right: function (t) {
|
||||
if (t == null) {
|
||||
t = r;
|
||||
}
|
||||
return h._filter(t, "horizontal", function (t, e) {
|
||||
return e.offset > t.oldScroll.x;
|
||||
});
|
||||
},
|
||||
enable: function () {
|
||||
return h._invoke("enable");
|
||||
},
|
||||
disable: function () {
|
||||
return h._invoke("disable");
|
||||
},
|
||||
destroy: function () {
|
||||
return h._invoke("destroy");
|
||||
},
|
||||
extendFn: function (t, e) {
|
||||
return (d[t] = e);
|
||||
},
|
||||
_invoke: function (t) {
|
||||
var e;
|
||||
e = n.extend({}, s.vertical, s.horizontal);
|
||||
return n.each(e, function (e, n) {
|
||||
n[t]();
|
||||
return true;
|
||||
});
|
||||
},
|
||||
_filter: function (t, e, r) {
|
||||
var i, o;
|
||||
i = a[n(t).data(u)];
|
||||
if (!i) {
|
||||
return [];
|
||||
}
|
||||
o = [];
|
||||
n.each(i.waypoints[e], function (t, e) {
|
||||
if (r(i, e)) {
|
||||
return o.push(e);
|
||||
}
|
||||
});
|
||||
o.sort(function (t, e) {
|
||||
return t.offset - e.offset;
|
||||
});
|
||||
return n.map(o, function (t) {
|
||||
return t.element;
|
||||
});
|
||||
},
|
||||
};
|
||||
n[m] = function () {
|
||||
var t, n;
|
||||
(n = arguments[0]),
|
||||
(t = 2 <= arguments.length ? e.call(arguments, 1) : []);
|
||||
if (h[n]) {
|
||||
return h[n].apply(null, t);
|
||||
} else {
|
||||
return h.aggregate.call(null, n);
|
||||
}
|
||||
};
|
||||
n[m].settings = { resizeThrottle: 100, scrollThrottle: 30 };
|
||||
return i.load(function () {
|
||||
return n[m]("refresh");
|
||||
});
|
||||
});
|
||||
}.call(this));
|
|
@ -0,0 +1,473 @@
|
|||
/*! WOW wow.js - v1.3.0 - 2016-10-04
|
||||
* https://wowjs.uk
|
||||
* Copyright (c) 2016 Thomas Grainger; Licensed MIT */ !(function (a, b) {
|
||||
if ("function" == typeof define && define.amd)
|
||||
define(["module", "exports"], b);
|
||||
else if ("undefined" != typeof exports) b(module, exports);
|
||||
else {
|
||||
var c = { exports: {} };
|
||||
b(c, c.exports), (a.WOW = c.exports);
|
||||
}
|
||||
})(this, function (a, b) {
|
||||
"use strict";
|
||||
function c(a, b) {
|
||||
if (!(a instanceof b))
|
||||
throw new TypeError("Cannot call a class as a function");
|
||||
}
|
||||
function d(a, b) {
|
||||
return b.indexOf(a) >= 0;
|
||||
}
|
||||
function e(a, b) {
|
||||
for (var c in b)
|
||||
if (null == a[c]) {
|
||||
var d = b[c];
|
||||
a[c] = d;
|
||||
}
|
||||
return a;
|
||||
}
|
||||
function f(a) {
|
||||
return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(
|
||||
a
|
||||
);
|
||||
}
|
||||
function g(a) {
|
||||
var b =
|
||||
arguments.length <= 1 || void 0 === arguments[1] ? !1 : arguments[1],
|
||||
c = arguments.length <= 2 || void 0 === arguments[2] ? !1 : arguments[2],
|
||||
d =
|
||||
arguments.length <= 3 || void 0 === arguments[3] ? null : arguments[3],
|
||||
e = void 0;
|
||||
return (
|
||||
null != document.createEvent
|
||||
? ((e = document.createEvent("CustomEvent")),
|
||||
e.initCustomEvent(a, b, c, d))
|
||||
: null != document.createEventObject
|
||||
? ((e = document.createEventObject()), (e.eventType = a))
|
||||
: (e.eventName = a),
|
||||
e
|
||||
);
|
||||
}
|
||||
function h(a, b) {
|
||||
null != a.dispatchEvent
|
||||
? a.dispatchEvent(b)
|
||||
: b in (null != a)
|
||||
? a[b]()
|
||||
: "on" + b in (null != a) && a["on" + b]();
|
||||
}
|
||||
function i(a, b, c) {
|
||||
null != a.addEventListener
|
||||
? a.addEventListener(b, c, !1)
|
||||
: null != a.attachEvent
|
||||
? a.attachEvent("on" + b, c)
|
||||
: (a[b] = c);
|
||||
}
|
||||
function j(a, b, c) {
|
||||
null != a.removeEventListener
|
||||
? a.removeEventListener(b, c, !1)
|
||||
: null != a.detachEvent
|
||||
? a.detachEvent("on" + b, c)
|
||||
: delete a[b];
|
||||
}
|
||||
function k() {
|
||||
return "innerHeight" in window
|
||||
? window.innerHeight
|
||||
: document.documentElement.clientHeight;
|
||||
}
|
||||
Object.defineProperty(b, "__esModule", { value: !0 });
|
||||
var l,
|
||||
m,
|
||||
n = (function () {
|
||||
function a(a, b) {
|
||||
for (var c = 0; c < b.length; c++) {
|
||||
var d = b[c];
|
||||
(d.enumerable = d.enumerable || !1),
|
||||
(d.configurable = !0),
|
||||
"value" in d && (d.writable = !0),
|
||||
Object.defineProperty(a, d.key, d);
|
||||
}
|
||||
}
|
||||
return function (b, c, d) {
|
||||
return c && a(b.prototype, c), d && a(b, d), b;
|
||||
};
|
||||
})(),
|
||||
o =
|
||||
window.WeakMap ||
|
||||
window.MozWeakMap ||
|
||||
(function () {
|
||||
function a() {
|
||||
c(this, a), (this.keys = []), (this.values = []);
|
||||
}
|
||||
return (
|
||||
n(a, [
|
||||
{
|
||||
key: "get",
|
||||
value: function (a) {
|
||||
for (var b = 0; b < this.keys.length; b++) {
|
||||
var c = this.keys[b];
|
||||
if (c === a) return this.values[b];
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
key: "set",
|
||||
value: function (a, b) {
|
||||
for (var c = 0; c < this.keys.length; c++) {
|
||||
var d = this.keys[c];
|
||||
if (d === a) return (this.values[c] = b), this;
|
||||
}
|
||||
return this.keys.push(a), this.values.push(b), this;
|
||||
},
|
||||
},
|
||||
]),
|
||||
a
|
||||
);
|
||||
})(),
|
||||
p =
|
||||
window.MutationObserver ||
|
||||
window.WebkitMutationObserver ||
|
||||
window.MozMutationObserver ||
|
||||
((m = l =
|
||||
(function () {
|
||||
function a() {
|
||||
c(this, a),
|
||||
"undefined" != typeof console &&
|
||||
null !== console &&
|
||||
(console.warn(
|
||||
"MutationObserver is not supported by your browser."
|
||||
),
|
||||
console.warn(
|
||||
"WOW.js cannot detect dom mutations, please call .sync() after loading new content."
|
||||
));
|
||||
}
|
||||
return n(a, [{ key: "observe", value: function () {} }]), a;
|
||||
})()),
|
||||
(l.notSupported = !0),
|
||||
m),
|
||||
q =
|
||||
window.getComputedStyle ||
|
||||
function (a) {
|
||||
var b = /(\-([a-z]){1})/g;
|
||||
return {
|
||||
getPropertyValue: function (c) {
|
||||
"float" === c && (c = "styleFloat"),
|
||||
b.test(c) &&
|
||||
c.replace(b, function (a, b) {
|
||||
return b.toUpperCase();
|
||||
});
|
||||
var d = a.currentStyle;
|
||||
return (null != d ? d[c] : void 0) || null;
|
||||
},
|
||||
};
|
||||
},
|
||||
r = (function () {
|
||||
function a() {
|
||||
var b =
|
||||
arguments.length <= 0 || void 0 === arguments[0] ? {} : arguments[0];
|
||||
c(this, a),
|
||||
(this.defaults = {
|
||||
boxClass: "wow",
|
||||
animateClass: "animated",
|
||||
offset: 0,
|
||||
mobile: !0,
|
||||
live: !0,
|
||||
callback: null,
|
||||
scrollContainer: null,
|
||||
resetAnimation: !0,
|
||||
}),
|
||||
(this.animate = (function () {
|
||||
return "requestAnimationFrame" in window
|
||||
? function (a) {
|
||||
return window.requestAnimationFrame(a);
|
||||
}
|
||||
: function (a) {
|
||||
return a();
|
||||
};
|
||||
})()),
|
||||
(this.vendors = ["moz", "webkit"]),
|
||||
(this.start = this.start.bind(this)),
|
||||
(this.resetAnimation = this.resetAnimation.bind(this)),
|
||||
(this.scrollHandler = this.scrollHandler.bind(this)),
|
||||
(this.scrollCallback = this.scrollCallback.bind(this)),
|
||||
(this.scrolled = !0),
|
||||
(this.config = e(b, this.defaults)),
|
||||
null != b.scrollContainer &&
|
||||
(this.config.scrollContainer = document.querySelector(
|
||||
b.scrollContainer
|
||||
)),
|
||||
(this.animationNameCache = new o()),
|
||||
(this.wowEvent = g(this.config.boxClass));
|
||||
}
|
||||
return (
|
||||
n(a, [
|
||||
{
|
||||
key: "init",
|
||||
value: function () {
|
||||
(this.element = window.document.documentElement),
|
||||
d(document.readyState, ["interactive", "complete"])
|
||||
? this.start()
|
||||
: i(document, "DOMContentLoaded", this.start),
|
||||
(this.finished = []);
|
||||
},
|
||||
},
|
||||
{
|
||||
key: "start",
|
||||
value: function () {
|
||||
var a = this;
|
||||
if (
|
||||
((this.stopped = !1),
|
||||
(this.boxes = [].slice.call(
|
||||
this.element.querySelectorAll("." + this.config.boxClass)
|
||||
)),
|
||||
(this.all = this.boxes.slice(0)),
|
||||
this.boxes.length)
|
||||
)
|
||||
if (this.disabled()) this.resetStyle();
|
||||
else
|
||||
for (var b = 0; b < this.boxes.length; b++) {
|
||||
var c = this.boxes[b];
|
||||
this.applyStyle(c, !0);
|
||||
}
|
||||
if (
|
||||
(this.disabled() ||
|
||||
(i(
|
||||
this.config.scrollContainer || window,
|
||||
"scroll",
|
||||
this.scrollHandler
|
||||
),
|
||||
i(window, "resize", this.scrollHandler),
|
||||
(this.interval = setInterval(this.scrollCallback, 50))),
|
||||
this.config.live)
|
||||
) {
|
||||
var d = new p(function (b) {
|
||||
for (var c = 0; c < b.length; c++)
|
||||
for (var d = b[c], e = 0; e < d.addedNodes.length; e++) {
|
||||
var f = d.addedNodes[e];
|
||||
a.doSync(f);
|
||||
}
|
||||
});
|
||||
d.observe(document.body, { childList: !0, subtree: !0 });
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
key: "stop",
|
||||
value: function () {
|
||||
(this.stopped = !0),
|
||||
j(
|
||||
this.config.scrollContainer || window,
|
||||
"scroll",
|
||||
this.scrollHandler
|
||||
),
|
||||
j(window, "resize", this.scrollHandler),
|
||||
null != this.interval && clearInterval(this.interval);
|
||||
},
|
||||
},
|
||||
{
|
||||
key: "sync",
|
||||
value: function () {
|
||||
p.notSupported && this.doSync(this.element);
|
||||
},
|
||||
},
|
||||
{
|
||||
key: "doSync",
|
||||
value: function (a) {
|
||||
if (
|
||||
(("undefined" != typeof a && null !== a) || (a = this.element),
|
||||
1 === a.nodeType)
|
||||
) {
|
||||
a = a.parentNode || a;
|
||||
for (
|
||||
var b = a.querySelectorAll("." + this.config.boxClass), c = 0;
|
||||
c < b.length;
|
||||
c++
|
||||
) {
|
||||
var e = b[c];
|
||||
d(e, this.all) ||
|
||||
(this.boxes.push(e),
|
||||
this.all.push(e),
|
||||
this.stopped || this.disabled()
|
||||
? this.resetStyle()
|
||||
: this.applyStyle(e, !0),
|
||||
(this.scrolled = !0));
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
key: "show",
|
||||
value: function (a) {
|
||||
return (
|
||||
this.applyStyle(a),
|
||||
(a.className = a.className + " " + this.config.animateClass),
|
||||
null != this.config.callback && this.config.callback(a),
|
||||
h(a, this.wowEvent),
|
||||
this.config.resetAnimation &&
|
||||
(i(a, "animationend", this.resetAnimation),
|
||||
i(a, "oanimationend", this.resetAnimation),
|
||||
i(a, "webkitAnimationEnd", this.resetAnimation),
|
||||
i(a, "MSAnimationEnd", this.resetAnimation)),
|
||||
a
|
||||
);
|
||||
},
|
||||
},
|
||||
{
|
||||
key: "applyStyle",
|
||||
value: function (a, b) {
|
||||
var c = this,
|
||||
d = a.getAttribute("data-wow-duration"),
|
||||
e = a.getAttribute("data-wow-delay"),
|
||||
f = a.getAttribute("data-wow-iteration");
|
||||
return this.animate(function () {
|
||||
return c.customStyle(a, b, d, e, f);
|
||||
});
|
||||
},
|
||||
},
|
||||
{
|
||||
key: "resetStyle",
|
||||
value: function () {
|
||||
for (var a = 0; a < this.boxes.length; a++) {
|
||||
var b = this.boxes[a];
|
||||
b.style.visibility = "visible";
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
key: "resetAnimation",
|
||||
value: function (a) {
|
||||
if (a.type.toLowerCase().indexOf("animationend") >= 0) {
|
||||
var b = a.target || a.srcElement;
|
||||
b.className = b.className
|
||||
.replace(this.config.animateClass, "")
|
||||
.trim();
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
key: "customStyle",
|
||||
value: function (a, b, c, d, e) {
|
||||
return (
|
||||
b && this.cacheAnimationName(a),
|
||||
(a.style.visibility = b ? "hidden" : "visible"),
|
||||
c && this.vendorSet(a.style, { animationDuration: c }),
|
||||
d && this.vendorSet(a.style, { animationDelay: d }),
|
||||
e && this.vendorSet(a.style, { animationIterationCount: e }),
|
||||
this.vendorSet(a.style, {
|
||||
animationName: b ? "none" : this.cachedAnimationName(a),
|
||||
}),
|
||||
a
|
||||
);
|
||||
},
|
||||
},
|
||||
{
|
||||
key: "vendorSet",
|
||||
value: function (a, b) {
|
||||
for (var c in b)
|
||||
if (b.hasOwnProperty(c)) {
|
||||
var d = b[c];
|
||||
a["" + c] = d;
|
||||
for (var e = 0; e < this.vendors.length; e++) {
|
||||
var f = this.vendors[e];
|
||||
a["" + f + c.charAt(0).toUpperCase() + c.substr(1)] = d;
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
key: "vendorCSS",
|
||||
value: function (a, b) {
|
||||
for (
|
||||
var c = q(a), d = c.getPropertyCSSValue(b), e = 0;
|
||||
e < this.vendors.length;
|
||||
e++
|
||||
) {
|
||||
var f = this.vendors[e];
|
||||
d = d || c.getPropertyCSSValue("-" + f + "-" + b);
|
||||
}
|
||||
return d;
|
||||
},
|
||||
},
|
||||
{
|
||||
key: "animationName",
|
||||
value: function (a) {
|
||||
var b = void 0;
|
||||
try {
|
||||
b = this.vendorCSS(a, "animation-name").cssText;
|
||||
} catch (c) {
|
||||
b = q(a).getPropertyValue("animation-name");
|
||||
}
|
||||
return "none" === b ? "" : b;
|
||||
},
|
||||
},
|
||||
{
|
||||
key: "cacheAnimationName",
|
||||
value: function (a) {
|
||||
return this.animationNameCache.set(a, this.animationName(a));
|
||||
},
|
||||
},
|
||||
{
|
||||
key: "cachedAnimationName",
|
||||
value: function (a) {
|
||||
return this.animationNameCache.get(a);
|
||||
},
|
||||
},
|
||||
{
|
||||
key: "scrollHandler",
|
||||
value: function () {
|
||||
this.scrolled = !0;
|
||||
},
|
||||
},
|
||||
{
|
||||
key: "scrollCallback",
|
||||
value: function () {
|
||||
if (this.scrolled) {
|
||||
this.scrolled = !1;
|
||||
for (var a = [], b = 0; b < this.boxes.length; b++) {
|
||||
var c = this.boxes[b];
|
||||
if (c) {
|
||||
if (this.isVisible(c)) {
|
||||
this.show(c);
|
||||
continue;
|
||||
}
|
||||
a.push(c);
|
||||
}
|
||||
}
|
||||
(this.boxes = a),
|
||||
this.boxes.length || this.config.live || this.stop();
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
key: "offsetTop",
|
||||
value: function (a) {
|
||||
for (; void 0 === a.offsetTop; ) a = a.parentNode;
|
||||
for (var b = a.offsetTop; a.offsetParent; )
|
||||
(a = a.offsetParent), (b += a.offsetTop);
|
||||
return b;
|
||||
},
|
||||
},
|
||||
{
|
||||
key: "isVisible",
|
||||
value: function (a) {
|
||||
var b = a.getAttribute("data-wow-offset") || this.config.offset,
|
||||
c =
|
||||
(this.config.scrollContainer &&
|
||||
this.config.scrollContainer.scrollTop) ||
|
||||
window.pageYOffset,
|
||||
d = c + Math.min(this.element.clientHeight, k()) - b,
|
||||
e = this.offsetTop(a),
|
||||
f = e + a.clientHeight;
|
||||
return d >= e && f >= c;
|
||||
},
|
||||
},
|
||||
{
|
||||
key: "disabled",
|
||||
value: function () {
|
||||
return !this.config.mobile && f(navigator.userAgent);
|
||||
},
|
||||
},
|
||||
]),
|
||||
a
|
||||
);
|
||||
})();
|
||||
(b["default"] = r), (a.exports = b["default"]);
|
||||
});
|
After Width: | Height: | Size: 486 B |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 701 B |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 3.0 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 455 B |
After Width: | Height: | Size: 834 B |
After Width: | Height: | Size: 7.1 KiB |
After Width: | Height: | Size: 2.8 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 706 B |
After Width: | Height: | Size: 4.7 KiB |
After Width: | Height: | Size: 789 B |
After Width: | Height: | Size: 71 KiB |
After Width: | Height: | Size: 2.7 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 7.3 KiB |
After Width: | Height: | Size: 372 B |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 2.0 KiB |
374
public/assets/assetLanding/revslider/js/extensions/revolution.extension.actions.min.js
vendored
Normal file
|
@ -0,0 +1,374 @@
|
|||
/********************************************
|
||||
* REVOLUTION 5.4.8 EXTENSION - ACTIONS
|
||||
* @version: 2.1.0 (22.11.2017)
|
||||
* @requires jquery.themepunch.revolution.js
|
||||
* @author ThemePunch
|
||||
*********************************************/
|
||||
|
||||
!(function ($) {
|
||||
"use strict";
|
||||
function getScrollRoot() {
|
||||
var e,
|
||||
t = document.documentElement,
|
||||
o = document.body,
|
||||
a =
|
||||
(void 0 !== window.pageYOffset ? window.pageYOffset : null) ||
|
||||
o.scrollTop ||
|
||||
t.scrollTop;
|
||||
return (
|
||||
(t.scrollTop = o.scrollTop = a + (a > 0) ? -1 : 1),
|
||||
(e = t.scrollTop !== a ? t : o),
|
||||
(e.scrollTop = a),
|
||||
e
|
||||
);
|
||||
}
|
||||
var _R = jQuery.fn.revolution,
|
||||
_ISM = _R.is_mobile(),
|
||||
extension = {
|
||||
alias: "Actions Min JS",
|
||||
name: "revolution.extensions.actions.min.js",
|
||||
min_core: "5.4.5",
|
||||
version: "2.1.0",
|
||||
};
|
||||
jQuery.extend(!0, _R, {
|
||||
checkActions: function (e, t, o) {
|
||||
if ("stop" === _R.compare_version(extension).check) return !1;
|
||||
checkActions_intern(e, t, o);
|
||||
},
|
||||
});
|
||||
var checkActions_intern = function (e, t, o) {
|
||||
o &&
|
||||
jQuery.each(o, function (o, a) {
|
||||
(a.delay = parseInt(a.delay, 0) / 1e3),
|
||||
e.addClass("tp-withaction"),
|
||||
t.fullscreen_esclistener ||
|
||||
("exitfullscreen" != a.action &&
|
||||
"togglefullscreen" != a.action) ||
|
||||
(jQuery(document).keyup(function (t) {
|
||||
27 == t.keyCode &&
|
||||
jQuery("#rs-go-fullscreen").length > 0 &&
|
||||
e.trigger(a.event);
|
||||
}),
|
||||
(t.fullscreen_esclistener = !0));
|
||||
var r =
|
||||
"backgroundvideo" == a.layer
|
||||
? jQuery(".rs-background-video-layer")
|
||||
: "firstvideo" == a.layer
|
||||
? jQuery(".tp-revslider-slidesli").find(".tp-videolayer")
|
||||
: jQuery("#" + a.layer);
|
||||
switch (
|
||||
(-1 !=
|
||||
jQuery.inArray(a.action, [
|
||||
"toggleslider",
|
||||
"toggle_mute_video",
|
||||
"toggle_global_mute_video",
|
||||
"togglefullscreen",
|
||||
]) && e.data("togglelisteners", !0),
|
||||
a.action)
|
||||
) {
|
||||
case "togglevideo":
|
||||
jQuery.each(r, function (t, o) {
|
||||
var a = (o = jQuery(o)).data("videotoggledby");
|
||||
void 0 == a && (a = new Array()),
|
||||
a.push(e),
|
||||
o.data("videotoggledby", a);
|
||||
});
|
||||
break;
|
||||
case "togglelayer":
|
||||
jQuery.each(r, function (t, o) {
|
||||
var r = (o = jQuery(o)).data("layertoggledby");
|
||||
void 0 == r && (r = new Array()),
|
||||
r.push(e),
|
||||
o.data("layertoggledby", r),
|
||||
o.data("triggered_startstatus", a.layerstatus);
|
||||
});
|
||||
break;
|
||||
case "toggle_mute_video":
|
||||
case "toggle_global_mute_video":
|
||||
jQuery.each(r, function (t, o) {
|
||||
var a = (o = jQuery(o)).data("videomutetoggledby");
|
||||
void 0 == a && (a = new Array()),
|
||||
a.push(e),
|
||||
o.data("videomutetoggledby", a);
|
||||
});
|
||||
break;
|
||||
case "toggleslider":
|
||||
void 0 == t.slidertoggledby && (t.slidertoggledby = new Array()),
|
||||
t.slidertoggledby.push(e);
|
||||
break;
|
||||
case "togglefullscreen":
|
||||
void 0 == t.fullscreentoggledby &&
|
||||
(t.fullscreentoggledby = new Array()),
|
||||
t.fullscreentoggledby.push(e);
|
||||
}
|
||||
switch (
|
||||
(e.on(a.event, function () {
|
||||
if ("click" === a.event && e.hasClass("tp-temporarydisabled"))
|
||||
return !1;
|
||||
var o =
|
||||
"backgroundvideo" == a.layer
|
||||
? jQuery(
|
||||
".active-revslide .slotholder .rs-background-video-layer"
|
||||
)
|
||||
: "firstvideo" == a.layer
|
||||
? jQuery(".active-revslide .tp-videolayer").first()
|
||||
: jQuery("#" + a.layer);
|
||||
if (
|
||||
"stoplayer" == a.action ||
|
||||
"togglelayer" == a.action ||
|
||||
"startlayer" == a.action
|
||||
) {
|
||||
if (o.length > 0) {
|
||||
var r = o.data();
|
||||
void 0 !== r.clicked_time_stamp &&
|
||||
new Date().getTime() - r.clicked_time_stamp > 150 &&
|
||||
(clearTimeout(r.triggerdelayIn),
|
||||
clearTimeout(r.triggerdelayOut)),
|
||||
(r.clicked_time_stamp = new Date().getTime()),
|
||||
"startlayer" == a.action ||
|
||||
("togglelayer" == a.action &&
|
||||
"in" != o.data("animdirection"))
|
||||
? ((r.animdirection = "in"),
|
||||
(r.triggerstate = "on"),
|
||||
_R.toggleState(r.layertoggledby),
|
||||
_R.playAnimationFrame &&
|
||||
(clearTimeout(r.triggerdelayIn),
|
||||
(r.triggerdelayIn = setTimeout(function () {
|
||||
_R.playAnimationFrame({
|
||||
caption: o,
|
||||
opt: t,
|
||||
frame: "frame_0",
|
||||
triggerdirection: "in",
|
||||
triggerframein: "frame_0",
|
||||
triggerframeout: "frame_999",
|
||||
});
|
||||
}, 1e3 * a.delay))))
|
||||
: ("stoplayer" == a.action ||
|
||||
("togglelayer" == a.action &&
|
||||
"out" != o.data("animdirection"))) &&
|
||||
((r.animdirection = "out"),
|
||||
(r.triggered = !0),
|
||||
(r.triggerstate = "off"),
|
||||
_R.stopVideo && _R.stopVideo(o, t),
|
||||
_R.unToggleState(r.layertoggledby),
|
||||
_R.endMoveCaption &&
|
||||
(clearTimeout(r.triggerdelayOut),
|
||||
(r.triggerdelayOut = setTimeout(function () {
|
||||
_R.playAnimationFrame({
|
||||
caption: o,
|
||||
opt: t,
|
||||
frame: "frame_999",
|
||||
triggerdirection: "out",
|
||||
triggerframein: "frame_0",
|
||||
triggerframeout: "frame_999",
|
||||
});
|
||||
}, 1e3 * a.delay))));
|
||||
}
|
||||
} else
|
||||
!_ISM ||
|
||||
("playvideo" != a.action &&
|
||||
"stopvideo" != a.action &&
|
||||
"togglevideo" != a.action &&
|
||||
"mutevideo" != a.action &&
|
||||
"unmutevideo" != a.action &&
|
||||
"toggle_mute_video" != a.action &&
|
||||
"toggle_global_mute_video" != a.action)
|
||||
? ((a.delay =
|
||||
"NaN" === a.delay || NaN === a.delay ? 0 : a.delay),
|
||||
_R.isSafari11()
|
||||
? actionSwitches(o, t, a, e)
|
||||
: punchgs.TweenLite.delayedCall(
|
||||
a.delay,
|
||||
function () {
|
||||
actionSwitches(o, t, a, e);
|
||||
},
|
||||
[o, t, a, e]
|
||||
))
|
||||
: actionSwitches(o, t, a, e);
|
||||
}),
|
||||
a.action)
|
||||
) {
|
||||
case "togglelayer":
|
||||
case "startlayer":
|
||||
case "playlayer":
|
||||
case "stoplayer":
|
||||
var l = (r = jQuery("#" + a.layer)).data();
|
||||
r.length > 0 &&
|
||||
void 0 !== l &&
|
||||
((void 0 !== l.frames && "bytrigger" != l.frames[0].delay) ||
|
||||
(void 0 === l.frames && "bytrigger" !== l.start)) &&
|
||||
(l.triggerstate = "on");
|
||||
}
|
||||
});
|
||||
},
|
||||
actionSwitches = function (tnc, opt, a, _nc) {
|
||||
switch (a.action) {
|
||||
case "scrollbelow":
|
||||
(a.speed = void 0 !== a.speed ? a.speed : 400),
|
||||
(a.ease = void 0 !== a.ease ? a.ease : punchgs.Power2.easeOut),
|
||||
_nc.addClass("tp-scrollbelowslider"),
|
||||
_nc.data("scrolloffset", a.offset),
|
||||
_nc.data("scrolldelay", a.delay),
|
||||
_nc.data("scrollspeed", a.speed),
|
||||
_nc.data("scrollease", a.ease);
|
||||
var off = getOffContH(opt.fullScreenOffsetContainer) || 0,
|
||||
aof = parseInt(a.offset, 0) || 0;
|
||||
(off = off - aof || 0), (opt.scrollRoot = jQuery(document));
|
||||
var sobj = { _y: opt.scrollRoot.scrollTop() };
|
||||
punchgs.TweenLite.to(sobj, a.speed / 1e3, {
|
||||
_y: opt.c.offset().top + jQuery(opt.li[0]).height() - off,
|
||||
ease: a.ease,
|
||||
onUpdate: function () {
|
||||
opt.scrollRoot.scrollTop(sobj._y);
|
||||
},
|
||||
});
|
||||
break;
|
||||
case "callback":
|
||||
eval(a.callback);
|
||||
break;
|
||||
case "jumptoslide":
|
||||
switch (a.slide.toLowerCase()) {
|
||||
case "+1":
|
||||
case "next":
|
||||
(opt.sc_indicator = "arrow"), _R.callingNewSlide(opt.c, 1);
|
||||
break;
|
||||
case "previous":
|
||||
case "prev":
|
||||
case "-1":
|
||||
(opt.sc_indicator = "arrow"), _R.callingNewSlide(opt.c, -1);
|
||||
break;
|
||||
default:
|
||||
var ts = jQuery.isNumeric(a.slide)
|
||||
? parseInt(a.slide, 0)
|
||||
: a.slide;
|
||||
_R.callingNewSlide(opt.c, ts);
|
||||
}
|
||||
break;
|
||||
case "simplelink":
|
||||
window.open(a.url, a.target);
|
||||
break;
|
||||
case "toggleslider":
|
||||
(opt.noloopanymore = 0),
|
||||
"playing" == opt.sliderstatus
|
||||
? (opt.c.revpause(),
|
||||
(opt.forcepause_viatoggle = !0),
|
||||
_R.unToggleState(opt.slidertoggledby))
|
||||
: ((opt.forcepause_viatoggle = !1),
|
||||
opt.c.revresume(),
|
||||
_R.toggleState(opt.slidertoggledby));
|
||||
break;
|
||||
case "pauseslider":
|
||||
opt.c.revpause(), _R.unToggleState(opt.slidertoggledby);
|
||||
break;
|
||||
case "playslider":
|
||||
(opt.noloopanymore = 0),
|
||||
opt.c.revresume(),
|
||||
_R.toggleState(opt.slidertoggledby);
|
||||
break;
|
||||
case "playvideo":
|
||||
tnc.length > 0 && _R.playVideo(tnc, opt);
|
||||
break;
|
||||
case "stopvideo":
|
||||
tnc.length > 0 && _R.stopVideo && _R.stopVideo(tnc, opt);
|
||||
break;
|
||||
case "togglevideo":
|
||||
tnc.length > 0 &&
|
||||
(_R.isVideoPlaying(tnc, opt)
|
||||
? _R.stopVideo && _R.stopVideo(tnc, opt)
|
||||
: _R.playVideo(tnc, opt));
|
||||
break;
|
||||
case "mutevideo":
|
||||
tnc.length > 0 && _R.muteVideo(tnc, opt);
|
||||
break;
|
||||
case "unmutevideo":
|
||||
tnc.length > 0 && _R.unMuteVideo && _R.unMuteVideo(tnc, opt);
|
||||
break;
|
||||
case "toggle_mute_video":
|
||||
tnc.length > 0 &&
|
||||
(_R.isVideoMuted(tnc, opt)
|
||||
? _R.unMuteVideo(tnc, opt)
|
||||
: _R.muteVideo && _R.muteVideo(tnc, opt)),
|
||||
_nc.toggleClass("rs-toggle-content-active");
|
||||
break;
|
||||
case "toggle_global_mute_video":
|
||||
!0 === opt.globalmute
|
||||
? ((opt.globalmute = !1),
|
||||
void 0 != opt.playingvideos &&
|
||||
opt.playingvideos.length > 0 &&
|
||||
jQuery.each(opt.playingvideos, function (e, t) {
|
||||
_R.unMuteVideo && _R.unMuteVideo(t, opt);
|
||||
}))
|
||||
: ((opt.globalmute = !0),
|
||||
void 0 != opt.playingvideos &&
|
||||
opt.playingvideos.length > 0 &&
|
||||
jQuery.each(opt.playingvideos, function (e, t) {
|
||||
_R.muteVideo && _R.muteVideo(t, opt);
|
||||
})),
|
||||
_nc.toggleClass("rs-toggle-content-active");
|
||||
break;
|
||||
case "simulateclick":
|
||||
tnc.length > 0 && tnc.click();
|
||||
break;
|
||||
case "toggleclass":
|
||||
tnc.length > 0 &&
|
||||
(tnc.hasClass(a.classname)
|
||||
? tnc.removeClass(a.classname)
|
||||
: tnc.addClass(a.classname));
|
||||
break;
|
||||
case "gofullscreen":
|
||||
case "exitfullscreen":
|
||||
case "togglefullscreen":
|
||||
if (
|
||||
jQuery(".rs-go-fullscreen").length > 0 &&
|
||||
("togglefullscreen" == a.action || "exitfullscreen" == a.action)
|
||||
) {
|
||||
jQuery(".rs-go-fullscreen").removeClass("rs-go-fullscreen");
|
||||
var gf =
|
||||
opt.c.closest(".forcefullwidth_wrapper_tp_banner").length > 0
|
||||
? opt.c.closest(".forcefullwidth_wrapper_tp_banner")
|
||||
: opt.c.closest(".rev_slider_wrapper");
|
||||
(opt.minHeight = opt.oldminheight),
|
||||
(opt.infullscreenmode = !1),
|
||||
opt.c.revredraw(),
|
||||
jQuery(window).trigger("resize"),
|
||||
_R.unToggleState(opt.fullscreentoggledby);
|
||||
} else if (
|
||||
0 == jQuery(".rs-go-fullscreen").length &&
|
||||
("togglefullscreen" == a.action || "gofullscreen" == a.action)
|
||||
) {
|
||||
var gf =
|
||||
opt.c.closest(".forcefullwidth_wrapper_tp_banner").length > 0
|
||||
? opt.c.closest(".forcefullwidth_wrapper_tp_banner")
|
||||
: opt.c.closest(".rev_slider_wrapper");
|
||||
gf.addClass("rs-go-fullscreen"),
|
||||
(opt.oldminheight = opt.minHeight),
|
||||
(opt.minHeight = jQuery(window).height()),
|
||||
(opt.infullscreenmode = !0),
|
||||
opt.c.revredraw(),
|
||||
jQuery(window).trigger("resize"),
|
||||
_R.toggleState(opt.fullscreentoggledby);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
var obj = {};
|
||||
(obj.event = a),
|
||||
(obj.layer = _nc),
|
||||
opt.c.trigger("layeraction", [obj]);
|
||||
}
|
||||
},
|
||||
getOffContH = function (e) {
|
||||
if (void 0 == e) return 0;
|
||||
if (e.split(",").length > 1) {
|
||||
var t = e.split(","),
|
||||
o = 0;
|
||||
return (
|
||||
t &&
|
||||
jQuery.each(t, function (e, t) {
|
||||
jQuery(t).length > 0 && (o += jQuery(t).outerHeight(!0));
|
||||
}),
|
||||
o
|
||||
);
|
||||
}
|
||||
return jQuery(e).height();
|
||||
};
|
||||
})(jQuery);
|
365
public/assets/assetLanding/revslider/js/extensions/revolution.extension.carousel.min.js
vendored
Normal file
|
@ -0,0 +1,365 @@
|
|||
/********************************************
|
||||
* REVOLUTION 5.8 EXTENSION - CAROUSEL
|
||||
* @version: 1.2.1 (18.11.2016)
|
||||
* @requires jquery.themepunch.revolution.js
|
||||
* @author ThemePunch
|
||||
*********************************************/
|
||||
!(function (a) {
|
||||
"use strict";
|
||||
var b = jQuery.fn.revolution,
|
||||
c = {
|
||||
alias: "Carousel Min JS",
|
||||
name: "revolution.extensions.carousel.min.js",
|
||||
min_core: "5.3.0",
|
||||
version: "1.2.1",
|
||||
};
|
||||
jQuery.extend(!0, b, {
|
||||
prepareCarousel: function (a, d, h, i) {
|
||||
return (
|
||||
"stop" !== b.compare_version(c).check &&
|
||||
((h = a.carousel.lastdirection = f(h, a.carousel.lastdirection)),
|
||||
e(a),
|
||||
(a.carousel.slide_offset_target = j(a)),
|
||||
void (void 0 !== i
|
||||
? g(a, h, !1, 0)
|
||||
: void 0 == d
|
||||
? b.carouselToEvalPosition(a, h)
|
||||
: g(a, h, !1)))
|
||||
);
|
||||
},
|
||||
carouselToEvalPosition: function (a, c) {
|
||||
var d = a.carousel;
|
||||
c = d.lastdirection = f(c, d.lastdirection);
|
||||
var e =
|
||||
"center" === d.horizontal_align
|
||||
? (d.wrapwidth / 2 - d.slide_width / 2 - d.slide_globaloffset) /
|
||||
d.slide_width
|
||||
: (0 - d.slide_globaloffset) / d.slide_width,
|
||||
h = b.simp(e, a.slideamount, !1),
|
||||
i = h - Math.floor(h),
|
||||
j = 0,
|
||||
k = -1 * (Math.ceil(h) - h),
|
||||
l = -1 * (Math.floor(h) - h);
|
||||
(j =
|
||||
(i >= 0.3 && "left" === c) || (i >= 0.7 && "right" === c)
|
||||
? k
|
||||
: (i < 0.3 && "left" === c) || (i < 0.7 && "right" === c)
|
||||
? l
|
||||
: j),
|
||||
(j =
|
||||
"off" === d.infinity
|
||||
? h < 0
|
||||
? h
|
||||
: e > a.slideamount - 1
|
||||
? e - (a.slideamount - 1)
|
||||
: j
|
||||
: j),
|
||||
(d.slide_offset_target = j * d.slide_width),
|
||||
0 !== Math.abs(d.slide_offset_target)
|
||||
? g(a, c, !0)
|
||||
: b.organiseCarousel(a, c);
|
||||
},
|
||||
organiseCarousel: function (a, b, c, d) {
|
||||
b =
|
||||
void 0 === b ||
|
||||
"down" == b ||
|
||||
"up" == b ||
|
||||
null === b ||
|
||||
jQuery.isEmptyObject(b)
|
||||
? "left"
|
||||
: b;
|
||||
for (
|
||||
var e = a.carousel,
|
||||
f = new Array(),
|
||||
g = e.slides.length,
|
||||
i = ("right" === e.horizontal_align ? a.width : 0, 0);
|
||||
i < g;
|
||||
i++
|
||||
) {
|
||||
var j = i * e.slide_width + e.slide_offset;
|
||||
"on" === e.infinity &&
|
||||
((j =
|
||||
j > e.wrapwidth - e.inneroffset && "right" == b
|
||||
? e.slide_offset - (e.slides.length - i) * e.slide_width
|
||||
: j),
|
||||
(j =
|
||||
j < 0 - e.inneroffset - e.slide_width && "left" == b
|
||||
? j + e.maxwidth
|
||||
: j)),
|
||||
(f[i] = j);
|
||||
}
|
||||
var k = 999;
|
||||
e.slides &&
|
||||
jQuery.each(e.slides, function (d, h) {
|
||||
var i = f[d];
|
||||
"on" === e.infinity &&
|
||||
((i =
|
||||
i > e.wrapwidth - e.inneroffset && "left" === b
|
||||
? f[0] - (g - d) * e.slide_width
|
||||
: i),
|
||||
(i =
|
||||
i < 0 - e.inneroffset - e.slide_width
|
||||
? "left" == b
|
||||
? i + e.maxwidth
|
||||
: "right" === b
|
||||
? f[g - 1] + (d + 1) * e.slide_width
|
||||
: i
|
||||
: i));
|
||||
var j = new Object();
|
||||
j.left = i + e.inneroffset;
|
||||
var l =
|
||||
"center" === e.horizontal_align
|
||||
? (Math.abs(e.wrapwidth / 2) - (j.left + e.slide_width / 2)) /
|
||||
e.slide_width
|
||||
: (e.inneroffset - j.left) / e.slide_width,
|
||||
n = "center" === e.horizontal_align ? 2 : 1;
|
||||
if (
|
||||
(((c && Math.abs(l) < k) || 0 === l) &&
|
||||
((k = Math.abs(l)), (e.focused = d)),
|
||||
(j.width = e.slide_width),
|
||||
(j.x = 0),
|
||||
(j.transformPerspective = 1200),
|
||||
(j.transformOrigin = "50% " + e.vertical_align),
|
||||
"on" === e.fadeout)
|
||||
)
|
||||
if ("on" === e.vary_fade)
|
||||
j.autoAlpha =
|
||||
1 - Math.abs((1 / Math.ceil(e.maxVisibleItems / n)) * l);
|
||||
else
|
||||
switch (e.horizontal_align) {
|
||||
case "center":
|
||||
j.autoAlpha =
|
||||
Math.abs(l) < Math.ceil(e.maxVisibleItems / n - 1)
|
||||
? 1
|
||||
: 1 - (Math.abs(l) - Math.floor(Math.abs(l)));
|
||||
break;
|
||||
case "left":
|
||||
j.autoAlpha =
|
||||
l < 1 && l > 0
|
||||
? 1 - l
|
||||
: Math.abs(l) > e.maxVisibleItems - 1
|
||||
? 1 - (Math.abs(l) - (e.maxVisibleItems - 1))
|
||||
: 1;
|
||||
break;
|
||||
case "right":
|
||||
j.autoAlpha =
|
||||
l > -1 && l < 0
|
||||
? 1 - Math.abs(l)
|
||||
: l > e.maxVisibleItems - 1
|
||||
? 1 - (Math.abs(l) - (e.maxVisibleItems - 1))
|
||||
: 1;
|
||||
}
|
||||
else
|
||||
j.autoAlpha =
|
||||
Math.abs(l) < Math.ceil(e.maxVisibleItems / n) ? 1 : 0;
|
||||
if (void 0 !== e.minScale && e.minScale > 0)
|
||||
if ("on" === e.vary_scale) {
|
||||
j.scale =
|
||||
1 -
|
||||
Math.abs(
|
||||
(e.minScale / 100 / Math.ceil(e.maxVisibleItems / n)) * l
|
||||
);
|
||||
var o = (e.slide_width - e.slide_width * j.scale) * Math.abs(l);
|
||||
} else {
|
||||
j.scale =
|
||||
l >= 1 || l <= -1
|
||||
? 1 - e.minScale / 100
|
||||
: (100 - e.minScale * Math.abs(l)) / 100;
|
||||
var o =
|
||||
(e.slide_width - e.slide_width * (1 - e.minScale / 100)) *
|
||||
Math.abs(l);
|
||||
}
|
||||
void 0 !== e.maxRotation &&
|
||||
0 != Math.abs(e.maxRotation) &&
|
||||
("on" === e.vary_rotation
|
||||
? ((j.rotationY =
|
||||
Math.abs(e.maxRotation) -
|
||||
Math.abs(
|
||||
(1 - Math.abs((1 / Math.ceil(e.maxVisibleItems / n)) * l)) *
|
||||
e.maxRotation
|
||||
)),
|
||||
(j.autoAlpha = Math.abs(j.rotationY) > 90 ? 0 : j.autoAlpha))
|
||||
: (j.rotationY =
|
||||
l >= 1 || l <= -1
|
||||
? e.maxRotation
|
||||
: Math.abs(l) * e.maxRotation),
|
||||
(j.rotationY = l < 0 ? j.rotationY * -1 : j.rotationY)),
|
||||
(j.x = -1 * e.space * l),
|
||||
(j.left = Math.floor(j.left)),
|
||||
(j.x = Math.floor(j.x)),
|
||||
void 0 !== j.scale ? (l < 0 ? j.x - o : j.x + o) : j.x,
|
||||
(j.zIndex = Math.round(100 - Math.abs(5 * l))),
|
||||
(j.transformStyle =
|
||||
"3D" != a.parallax.type && "3d" != a.parallax.type
|
||||
? "flat"
|
||||
: "preserve-3d"),
|
||||
punchgs.TweenLite.set(h, j);
|
||||
}),
|
||||
d &&
|
||||
(a.c.find(".next-revslide").removeClass("next-revslide"),
|
||||
jQuery(e.slides[e.focused]).addClass("next-revslide"),
|
||||
a.c.trigger("revolution.nextslide.waiting"));
|
||||
e.wrapwidth / 2 - e.slide_offset,
|
||||
e.maxwidth + e.slide_offset - e.wrapwidth / 2;
|
||||
},
|
||||
});
|
||||
var d = function (a) {
|
||||
var b = a.carousel;
|
||||
(b.infbackup = b.infinity),
|
||||
(b.maxVisiblebackup = b.maxVisibleItems),
|
||||
(b.slide_globaloffset = "none"),
|
||||
(b.slide_offset = 0),
|
||||
(b.wrap = a.c.find(".tp-carousel-wrapper")),
|
||||
(b.slides = a.c.find(".tp-revslider-slidesli")),
|
||||
0 !== b.maxRotation &&
|
||||
("3D" != a.parallax.type && "3d" != a.parallax.type
|
||||
? punchgs.TweenLite.set(b.wrap, {
|
||||
perspective: 1200,
|
||||
transformStyle: "flat",
|
||||
})
|
||||
: punchgs.TweenLite.set(b.wrap, {
|
||||
perspective: 1600,
|
||||
transformStyle: "preserve-3d",
|
||||
})),
|
||||
void 0 !== b.border_radius &&
|
||||
parseInt(b.border_radius, 0) > 0 &&
|
||||
punchgs.TweenLite.set(a.c.find(".tp-revslider-slidesli"), {
|
||||
borderRadius: b.border_radius,
|
||||
});
|
||||
},
|
||||
e = function (a) {
|
||||
void 0 === a.bw && b.setSize(a);
|
||||
var c = a.carousel,
|
||||
e = b.getHorizontalOffset(a.c, "left"),
|
||||
f = b.getHorizontalOffset(a.c, "right");
|
||||
void 0 === c.wrap && d(a),
|
||||
(c.slide_width =
|
||||
"on" !== c.stretch ? a.gridwidth[a.curWinRange] * a.bw : a.c.width()),
|
||||
(c.maxwidth = a.slideamount * c.slide_width),
|
||||
c.maxVisiblebackup > c.slides.length + 1 &&
|
||||
(c.maxVisibleItems = c.slides.length + 2),
|
||||
(c.wrapwidth =
|
||||
c.maxVisibleItems * c.slide_width +
|
||||
(c.maxVisibleItems - 1) * c.space),
|
||||
(c.wrapwidth =
|
||||
"auto" != a.sliderLayout
|
||||
? c.wrapwidth > a.c.closest(".tp-simpleresponsive").width()
|
||||
? a.c.closest(".tp-simpleresponsive").width()
|
||||
: c.wrapwidth
|
||||
: c.wrapwidth > a.ul.width()
|
||||
? a.ul.width()
|
||||
: c.wrapwidth),
|
||||
(c.infinity = c.wrapwidth >= c.maxwidth ? "off" : c.infbackup),
|
||||
(c.wrapoffset =
|
||||
"center" === c.horizontal_align
|
||||
? (a.c.width() - f - e - c.wrapwidth) / 2
|
||||
: 0),
|
||||
(c.wrapoffset =
|
||||
"auto" != a.sliderLayout && a.outernav
|
||||
? 0
|
||||
: c.wrapoffset < e
|
||||
? e
|
||||
: c.wrapoffset);
|
||||
var g = "hidden";
|
||||
("3D" != a.parallax.type && "3d" != a.parallax.type) || (g = "visible"),
|
||||
"right" === c.horizontal_align
|
||||
? punchgs.TweenLite.set(c.wrap, {
|
||||
left: "auto",
|
||||
right: c.wrapoffset + "px",
|
||||
width: c.wrapwidth,
|
||||
overflow: g,
|
||||
})
|
||||
: punchgs.TweenLite.set(c.wrap, {
|
||||
right: "auto",
|
||||
left: c.wrapoffset + "px",
|
||||
width: c.wrapwidth,
|
||||
overflow: g,
|
||||
}),
|
||||
(c.inneroffset =
|
||||
"right" === c.horizontal_align ? c.wrapwidth - c.slide_width : 0),
|
||||
(c.realoffset = Math.abs(c.wrap.position().left)),
|
||||
(c.windhalf = jQuery(window).width() / 2);
|
||||
},
|
||||
f = function (a, b) {
|
||||
return null === a || jQuery.isEmptyObject(a)
|
||||
? b
|
||||
: void 0 === a
|
||||
? "right"
|
||||
: a;
|
||||
},
|
||||
g = function (a, c, d, e) {
|
||||
var g = a.carousel;
|
||||
c = g.lastdirection = f(c, g.lastdirection);
|
||||
var h = new Object(),
|
||||
i = d ? punchgs.Power2.easeOut : g.easing;
|
||||
(h.from = 0),
|
||||
(h.to = g.slide_offset_target),
|
||||
(e = void 0 === e ? g.speed / 1e3 : e),
|
||||
(e = d ? 0.4 : e),
|
||||
void 0 !== g.positionanim && g.positionanim.pause(),
|
||||
(g.positionanim = punchgs.TweenLite.to(h, e, {
|
||||
from: h.to,
|
||||
onUpdate: function () {
|
||||
(g.slide_offset = g.slide_globaloffset + h.from),
|
||||
(g.slide_offset = b.simp(g.slide_offset, g.maxwidth)),
|
||||
b.organiseCarousel(a, c, !1, !1);
|
||||
},
|
||||
onComplete: function () {
|
||||
(g.slide_globaloffset =
|
||||
"off" === g.infinity
|
||||
? g.slide_globaloffset + g.slide_offset_target
|
||||
: b.simp(
|
||||
g.slide_globaloffset + g.slide_offset_target,
|
||||
g.maxwidth
|
||||
)),
|
||||
(g.slide_offset = b.simp(g.slide_offset, g.maxwidth)),
|
||||
b.organiseCarousel(a, c, !1, !0);
|
||||
var e = jQuery(a.li[g.focused]);
|
||||
a.c.find(".next-revslide").removeClass("next-revslide"),
|
||||
d && b.callingNewSlide(a.c, e.data("index"));
|
||||
},
|
||||
ease: i,
|
||||
}));
|
||||
},
|
||||
h = function (a, b) {
|
||||
return Math.abs(a) > Math.abs(b)
|
||||
? a > 0
|
||||
? a - Math.abs(Math.floor(a / b) * b)
|
||||
: a + Math.abs(Math.floor(a / b) * b)
|
||||
: a;
|
||||
},
|
||||
i = function (a, b, c) {
|
||||
var c,
|
||||
c,
|
||||
d = b - a,
|
||||
e = b - c - a;
|
||||
return (d = h(d, c)), (e = h(e, c)), Math.abs(d) > Math.abs(e) ? e : d;
|
||||
},
|
||||
j = function (a) {
|
||||
var c = 0,
|
||||
d = a.carousel;
|
||||
if (
|
||||
(void 0 !== d.positionanim && d.positionanim.kill(),
|
||||
"none" == d.slide_globaloffset)
|
||||
)
|
||||
d.slide_globaloffset = c =
|
||||
"center" === d.horizontal_align
|
||||
? d.wrapwidth / 2 - d.slide_width / 2
|
||||
: 0;
|
||||
else {
|
||||
(d.slide_globaloffset = d.slide_offset), (d.slide_offset = 0);
|
||||
var e = a.c.find(".processing-revslide").index(),
|
||||
f =
|
||||
"center" === d.horizontal_align
|
||||
? (d.wrapwidth / 2 - d.slide_width / 2 - d.slide_globaloffset) /
|
||||
d.slide_width
|
||||
: (0 - d.slide_globaloffset) / d.slide_width;
|
||||
(f = b.simp(f, a.slideamount, !1)),
|
||||
(e = e >= 0 ? e : a.c.find(".active-revslide").index()),
|
||||
(e = e >= 0 ? e : 0),
|
||||
(c = "off" === d.infinity ? f - e : -i(f, e, a.slideamount)),
|
||||
(c *= d.slide_width);
|
||||
}
|
||||
return c;
|
||||
};
|
||||
})(jQuery);
|
193
public/assets/assetLanding/revslider/js/extensions/revolution.extension.kenburn.min.js
vendored
Normal file
|
@ -0,0 +1,193 @@
|
|||
/********************************************
|
||||
* REVOLUTION 5.4.8 EXTENSION - KEN BURN
|
||||
* @version: 1.3.1 (15.05.2017)
|
||||
* @requires jquery.themepunch.revolution.js
|
||||
* @author ThemePunch
|
||||
*********************************************/
|
||||
!(function (a) {
|
||||
"use strict";
|
||||
var b = jQuery.fn.revolution,
|
||||
c = {
|
||||
alias: "KenBurns Min JS",
|
||||
name: "revolution.extensions.kenburn.min.js",
|
||||
min_core: "5.4",
|
||||
version: "1.3.1",
|
||||
};
|
||||
jQuery.extend(!0, b, {
|
||||
stopKenBurn: function (a) {
|
||||
if ("stop" === b.compare_version(c).check) return !1;
|
||||
void 0 != a.data("kbtl") && a.data("kbtl").pause();
|
||||
},
|
||||
startKenBurn: function (a, d, e) {
|
||||
if ("stop" === b.compare_version(c).check) return !1;
|
||||
var f = a.data(),
|
||||
g = a.find(".defaultimg"),
|
||||
h = g.data("lazyload") || g.data("src"),
|
||||
j =
|
||||
(f.owidth,
|
||||
f.oheight,
|
||||
"carousel" === d.sliderType ? d.carousel.slide_width : d.ul.width()),
|
||||
k = d.ul.height();
|
||||
if (
|
||||
(a.data("kbtl") && a.data("kbtl").kill(),
|
||||
(e = e || 0),
|
||||
0 == a.find(".tp-kbimg").length)
|
||||
) {
|
||||
var m = g.data("mediafilter");
|
||||
(m = void 0 === m ? "" : m),
|
||||
a.append(
|
||||
'<div class="tp-kbimg-wrap ' +
|
||||
m +
|
||||
'" style="z-index:2;width:100%;height:100%;top:0px;left:0px;position:absolute;"><img class="tp-kbimg" src="' +
|
||||
h +
|
||||
'" style="position:absolute;" width="' +
|
||||
f.owidth +
|
||||
'" height="' +
|
||||
f.oheight +
|
||||
'"></div>'
|
||||
),
|
||||
a.data("kenburn", a.find(".tp-kbimg"));
|
||||
}
|
||||
var n = function (a, b, c, d, e, f, g) {
|
||||
var h = a * c,
|
||||
i = b * c,
|
||||
j = Math.abs(d - h),
|
||||
k = Math.abs(e - i),
|
||||
l = new Object();
|
||||
return (
|
||||
(l.l = (0 - f) * j),
|
||||
(l.r = l.l + h),
|
||||
(l.t = (0 - g) * k),
|
||||
(l.b = l.t + i),
|
||||
(l.h = f),
|
||||
(l.v = g),
|
||||
l
|
||||
);
|
||||
},
|
||||
o = function (a, b, c, d, e) {
|
||||
var f = a.bgposition.split(" ") || "center center",
|
||||
g =
|
||||
"center" == f[0]
|
||||
? "50%"
|
||||
: "left" == f[0] || "left" == f[1]
|
||||
? "0%"
|
||||
: "right" == f[0] || "right" == f[1]
|
||||
? "100%"
|
||||
: f[0],
|
||||
h =
|
||||
"center" == f[1]
|
||||
? "50%"
|
||||
: "top" == f[0] || "top" == f[1]
|
||||
? "0%"
|
||||
: "bottom" == f[0] || "bottom" == f[1]
|
||||
? "100%"
|
||||
: f[1];
|
||||
(g = parseInt(g, 0) / 100 || 0), (h = parseInt(h, 0) / 100 || 0);
|
||||
var i = new Object();
|
||||
return (
|
||||
(i.start = n(
|
||||
e.start.width,
|
||||
e.start.height,
|
||||
e.start.scale,
|
||||
b,
|
||||
c,
|
||||
g,
|
||||
h
|
||||
)),
|
||||
(i.end = n(e.start.width, e.start.height, e.end.scale, b, c, g, h)),
|
||||
i
|
||||
);
|
||||
},
|
||||
p = function (a, b, c) {
|
||||
var d = c.scalestart / 100,
|
||||
e = c.scaleend / 100,
|
||||
f =
|
||||
void 0 != c.offsetstart
|
||||
? c.offsetstart.split(" ") || [0, 0]
|
||||
: [0, 0],
|
||||
g =
|
||||
void 0 != c.offsetend ? c.offsetend.split(" ") || [0, 0] : [0, 0];
|
||||
c.bgposition =
|
||||
"center center" == c.bgposition ? "50% 50%" : c.bgposition;
|
||||
var h = new Object(),
|
||||
i = a * d,
|
||||
k = (c.owidth, c.oheight, a * e);
|
||||
c.owidth, c.oheight;
|
||||
if (
|
||||
((h.start = new Object()),
|
||||
(h.starto = new Object()),
|
||||
(h.end = new Object()),
|
||||
(h.endo = new Object()),
|
||||
(h.start.width = a),
|
||||
(h.start.height = (h.start.width / c.owidth) * c.oheight),
|
||||
h.start.height < b)
|
||||
) {
|
||||
var m = b / h.start.height;
|
||||
(h.start.height = b), (h.start.width = h.start.width * m);
|
||||
}
|
||||
(h.start.transformOrigin = c.bgposition),
|
||||
(h.start.scale = d),
|
||||
(h.end.scale = e),
|
||||
(c.rotatestart = 0 === c.rotatestart ? 0.01 : c.rotatestart),
|
||||
(h.start.rotation = c.rotatestart + "deg"),
|
||||
(h.end.rotation = c.rotateend + "deg");
|
||||
var n = o(c, a, b, f, h);
|
||||
(f[0] = parseFloat(f[0]) + n.start.l),
|
||||
(g[0] = parseFloat(g[0]) + n.end.l),
|
||||
(f[1] = parseFloat(f[1]) + n.start.t),
|
||||
(g[1] = parseFloat(g[1]) + n.end.t);
|
||||
var p = n.start.r - n.start.l,
|
||||
q = n.start.b - n.start.t,
|
||||
r = n.end.r - n.end.l,
|
||||
s = n.end.b - n.end.t;
|
||||
return (
|
||||
(f[0] = f[0] > 0 ? 0 : p + f[0] < a ? a - p : f[0]),
|
||||
(g[0] = g[0] > 0 ? 0 : r + g[0] < a ? a - r : g[0]),
|
||||
(f[1] = f[1] > 0 ? 0 : q + f[1] < b ? b - q : f[1]),
|
||||
(g[1] = g[1] > 0 ? 0 : s + g[1] < b ? b - s : g[1]),
|
||||
(h.starto.x = f[0] + "px"),
|
||||
(h.starto.y = f[1] + "px"),
|
||||
(h.endo.x = g[0] + "px"),
|
||||
(h.endo.y = g[1] + "px"),
|
||||
(h.end.ease = h.endo.ease = c.ease),
|
||||
(h.end.force3D = h.endo.force3D = !0),
|
||||
h
|
||||
);
|
||||
};
|
||||
void 0 != a.data("kbtl") && (a.data("kbtl").kill(), a.removeData("kbtl"));
|
||||
var q = a.data("kenburn"),
|
||||
r = q.parent(),
|
||||
s = p(j, k, f),
|
||||
t = new punchgs.TimelineLite();
|
||||
if (
|
||||
(t.pause(),
|
||||
(s.start.transformOrigin = "0% 0%"),
|
||||
(s.starto.transformOrigin = "0% 0%"),
|
||||
t.add(punchgs.TweenLite.fromTo(q, f.duration / 1e3, s.start, s.end), 0),
|
||||
t.add(
|
||||
punchgs.TweenLite.fromTo(r, f.duration / 1e3, s.starto, s.endo),
|
||||
0
|
||||
),
|
||||
void 0 !== f.blurstart &&
|
||||
void 0 !== f.blurend &&
|
||||
(0 !== f.blurstart || 0 !== f.blurend))
|
||||
) {
|
||||
var u = { a: f.blurstart },
|
||||
v = { a: f.blurend, ease: s.endo.ease },
|
||||
w = new punchgs.TweenLite(u, f.duration / 1e3, v);
|
||||
w.eventCallback(
|
||||
"onUpdate",
|
||||
function (a) {
|
||||
punchgs.TweenLite.set(a, {
|
||||
filter: "blur(" + u.a + "px)",
|
||||
webkitFilter: "blur(" + u.a + "px)",
|
||||
});
|
||||
},
|
||||
[r]
|
||||
),
|
||||
t.add(w, 0);
|
||||
}
|
||||
t.progress(e), t.play(), a.data("kbtl", t);
|
||||
},
|
||||
});
|
||||
})(jQuery);
|
2506
public/assets/assetLanding/revslider/js/extensions/revolution.extension.layeranimation.min.js
vendored
Normal file
1178
public/assets/assetLanding/revslider/js/extensions/revolution.extension.migration.min.js
vendored
Normal file
1178
public/assets/assetLanding/revslider/js/extensions/revolution.extension.navigation.min.js
vendored
Normal file
535
public/assets/assetLanding/revslider/js/extensions/revolution.extension.parallax.min.js
vendored
Normal file
|
@ -0,0 +1,535 @@
|
|||
/********************************************
|
||||
* REVOLUTION 5.4.8 EXTENSION - PARALLAX
|
||||
* @version: 2.2.3 (17.05.2017)
|
||||
* @requires jquery.themepunch.revolution.js
|
||||
* @author ThemePunch
|
||||
*********************************************/
|
||||
!(function (a) {
|
||||
"use strict";
|
||||
function e(a, b) {
|
||||
a.lastscrolltop = b;
|
||||
}
|
||||
var b = jQuery.fn.revolution,
|
||||
c = b.is_mobile(),
|
||||
d = {
|
||||
alias: "Parallax Min JS",
|
||||
name: "revolution.extensions.parallax.min.js",
|
||||
min_core: "5.4.5",
|
||||
version: "2.2.3",
|
||||
};
|
||||
jQuery.extend(!0, b, {
|
||||
checkForParallax: function (a, e) {
|
||||
function g(a) {
|
||||
if ("3D" == f.type || "3d" == f.type) {
|
||||
a
|
||||
.find(".slotholder")
|
||||
.wrapAll(
|
||||
'<div class="dddwrapper" style="width:100%;height:100%;position:absolute;top:0px;left:0px;overflow:hidden"></div>'
|
||||
),
|
||||
a
|
||||
.find(".tp-parallax-wrap")
|
||||
.wrapAll(
|
||||
'<div class="dddwrapper-layer" style="width:100%;height:100%;position:absolute;top:0px;left:0px;z-index:5;overflow:' +
|
||||
f.ddd_layer_overflow +
|
||||
';"></div>'
|
||||
),
|
||||
a
|
||||
.find(".rs-parallaxlevel-tobggroup")
|
||||
.closest(".tp-parallax-wrap")
|
||||
.wrapAll(
|
||||
'<div class="dddwrapper-layertobggroup" style="position:absolute;top:0px;left:0px;z-index:50;width:100%;height:100%"></div>'
|
||||
);
|
||||
var b = a.find(".dddwrapper"),
|
||||
c = a.find(".dddwrapper-layer");
|
||||
a.find(".dddwrapper-layertobggroup").appendTo(b),
|
||||
"carousel" == e.sliderType &&
|
||||
("on" == f.ddd_shadow && b.addClass("dddwrappershadow"),
|
||||
punchgs.TweenLite.set(b, {
|
||||
borderRadius: e.carousel.border_radius,
|
||||
})),
|
||||
punchgs.TweenLite.set(a, {
|
||||
overflow: "visible",
|
||||
transformStyle: "preserve-3d",
|
||||
perspective: 1600,
|
||||
}),
|
||||
punchgs.TweenLite.set(b, {
|
||||
force3D: "auto",
|
||||
transformOrigin: "50% 50%",
|
||||
}),
|
||||
punchgs.TweenLite.set(c, {
|
||||
force3D: "auto",
|
||||
transformOrigin: "50% 50%",
|
||||
zIndex: 5,
|
||||
}),
|
||||
punchgs.TweenLite.set(e.ul, {
|
||||
transformStyle: "preserve-3d",
|
||||
transformPerspective: 1600,
|
||||
});
|
||||
}
|
||||
}
|
||||
if ("stop" === b.compare_version(d).check) return !1;
|
||||
var f = e.parallax;
|
||||
if (!f.done) {
|
||||
if (((f.done = !0), c && "on" == f.disable_onmobile)) return !1;
|
||||
("3D" != f.type && "3d" != f.type) ||
|
||||
(punchgs.TweenLite.set(e.c, { overflow: f.ddd_overflow }),
|
||||
punchgs.TweenLite.set(e.ul, { overflow: f.ddd_overflow }),
|
||||
"carousel" != e.sliderType &&
|
||||
"on" == f.ddd_shadow &&
|
||||
(e.c.prepend('<div class="dddwrappershadow"></div>'),
|
||||
punchgs.TweenLite.set(e.c.find(".dddwrappershadow"), {
|
||||
force3D: "auto",
|
||||
transformPerspective: 1600,
|
||||
transformOrigin: "50% 50%",
|
||||
width: "100%",
|
||||
height: "100%",
|
||||
position: "absolute",
|
||||
top: 0,
|
||||
left: 0,
|
||||
zIndex: 0,
|
||||
}))),
|
||||
e.li.each(function () {
|
||||
g(jQuery(this));
|
||||
}),
|
||||
("3D" == f.type || "3d" == f.type) &&
|
||||
e.c.find(".tp-static-layers").length > 0 &&
|
||||
(punchgs.TweenLite.set(e.c.find(".tp-static-layers"), {
|
||||
top: 0,
|
||||
left: 0,
|
||||
width: "100%",
|
||||
height: "100%",
|
||||
}),
|
||||
g(e.c.find(".tp-static-layers"))),
|
||||
(f.pcontainers = new Array()),
|
||||
(f.pcontainer_depths = new Array()),
|
||||
(f.bgcontainers = new Array()),
|
||||
(f.bgcontainer_depths = new Array()),
|
||||
e.c
|
||||
.find(
|
||||
".tp-revslider-slidesli .slotholder, .tp-revslider-slidesli .rs-background-video-layer"
|
||||
)
|
||||
.each(function () {
|
||||
var a = jQuery(this),
|
||||
b = a.data("bgparallax") || e.parallax.bgparallax;
|
||||
void 0 !== (b = "on" == b ? 1 : b) &&
|
||||
"off" !== b &&
|
||||
(f.bgcontainers.push(a),
|
||||
f.bgcontainer_depths.push(
|
||||
e.parallax.levels[parseInt(b, 0) - 1] / 100
|
||||
));
|
||||
});
|
||||
for (var h = 1; h <= f.levels.length; h++)
|
||||
e.c.find(".rs-parallaxlevel-" + h).each(function () {
|
||||
var a = jQuery(this),
|
||||
b = a.closest(".tp-parallax-wrap");
|
||||
b.data("parallaxlevel", f.levels[h - 1]),
|
||||
b.addClass("tp-parallax-container"),
|
||||
f.pcontainers.push(b),
|
||||
f.pcontainer_depths.push(f.levels[h - 1]);
|
||||
});
|
||||
("mouse" != f.type &&
|
||||
"scroll+mouse" != f.type &&
|
||||
"mouse+scroll" != f.type &&
|
||||
"3D" != f.type &&
|
||||
"3d" != f.type) ||
|
||||
(a.mouseenter(function (b) {
|
||||
var c = a.find(".active-revslide"),
|
||||
d = a.offset().top,
|
||||
e = a.offset().left,
|
||||
f = b.pageX - e,
|
||||
g = b.pageY - d;
|
||||
c.data("enterx", f), c.data("entery", g);
|
||||
}),
|
||||
a.on(
|
||||
"mousemove.hoverdir, mouseleave.hoverdir, trigger3dpath",
|
||||
function (b, c) {
|
||||
var d = c && c.li ? c.li : a.find(".active-revslide");
|
||||
if ("enterpoint" == f.origo) {
|
||||
var g = a.offset().top,
|
||||
h = a.offset().left;
|
||||
void 0 == d.data("enterx") && d.data("enterx", b.pageX - h),
|
||||
void 0 == d.data("entery") && d.data("entery", b.pageY - g);
|
||||
var i = d.data("enterx") || b.pageX - h,
|
||||
j = d.data("entery") || b.pageY - g,
|
||||
k = i - (b.pageX - h),
|
||||
l = j - (b.pageY - g),
|
||||
m = f.speed / 1e3 || 0.4;
|
||||
} else
|
||||
var g = a.offset().top,
|
||||
h = a.offset().left,
|
||||
k = e.conw / 2 - (b.pageX - h),
|
||||
l = e.conh / 2 - (b.pageY - g),
|
||||
m = f.speed / 1e3 || 3;
|
||||
"mouseleave" == b.type &&
|
||||
((k = f.ddd_lasth || 0), (l = f.ddd_lastv || 0), (m = 1.5));
|
||||
for (var n = 0; n < f.pcontainers.length; n++) {
|
||||
var o = f.pcontainers[n],
|
||||
p = f.pcontainer_depths[n],
|
||||
q = "3D" == f.type || "3d" == f.type ? p / 200 : p / 100,
|
||||
r = k * q,
|
||||
s = l * q;
|
||||
"scroll+mouse" == f.type || "mouse+scroll" == f.type
|
||||
? punchgs.TweenLite.to(o, m, {
|
||||
force3D: "auto",
|
||||
x: r,
|
||||
ease: punchgs.Power3.easeOut,
|
||||
overwrite: "all",
|
||||
})
|
||||
: punchgs.TweenLite.to(o, m, {
|
||||
force3D: "auto",
|
||||
x: r,
|
||||
y: s,
|
||||
ease: punchgs.Power3.easeOut,
|
||||
overwrite: "all",
|
||||
});
|
||||
}
|
||||
if ("3D" == f.type || "3d" == f.type) {
|
||||
var t =
|
||||
".tp-revslider-slidesli .dddwrapper, .dddwrappershadow, .tp-revslider-slidesli .dddwrapper-layer, .tp-static-layers .dddwrapper-layer";
|
||||
"carousel" === e.sliderType &&
|
||||
(t =
|
||||
".tp-revslider-slidesli .dddwrapper, .tp-revslider-slidesli .dddwrapper-layer, .tp-static-layers .dddwrapper-layer"),
|
||||
e.c.find(t).each(function () {
|
||||
var a = jQuery(this),
|
||||
c = f.levels[f.levels.length - 1] / 200,
|
||||
d = k * c,
|
||||
g = l * c,
|
||||
h =
|
||||
0 == e.conw
|
||||
? 0
|
||||
: Math.round((k / e.conw) * c * 100) || 0,
|
||||
i =
|
||||
0 == e.conh
|
||||
? 0
|
||||
: Math.round((l / e.conh) * c * 100) || 0,
|
||||
j = a.closest("li"),
|
||||
n = 0,
|
||||
o = !1;
|
||||
a.hasClass("dddwrapper-layer") &&
|
||||
((n = f.ddd_z_correction || 65), (o = !0)),
|
||||
a.hasClass("dddwrapper-layer") && ((d = 0), (g = 0)),
|
||||
j.hasClass("active-revslide") ||
|
||||
"carousel" != e.sliderType
|
||||
? "on" != f.ddd_bgfreeze || o
|
||||
? punchgs.TweenLite.to(a, m, {
|
||||
rotationX: i,
|
||||
rotationY: -h,
|
||||
x: d,
|
||||
z: n,
|
||||
y: g,
|
||||
ease: punchgs.Power3.easeOut,
|
||||
overwrite: "all",
|
||||
})
|
||||
: punchgs.TweenLite.to(a, 0.5, {
|
||||
force3D: "auto",
|
||||
rotationY: 0,
|
||||
rotationX: 0,
|
||||
z: 0,
|
||||
ease: punchgs.Power3.easeOut,
|
||||
overwrite: "all",
|
||||
})
|
||||
: punchgs.TweenLite.to(a, 0.5, {
|
||||
force3D: "auto",
|
||||
rotationY: 0,
|
||||
x: 0,
|
||||
y: 0,
|
||||
rotationX: 0,
|
||||
z: 0,
|
||||
ease: punchgs.Power3.easeOut,
|
||||
overwrite: "all",
|
||||
}),
|
||||
"mouseleave" == b.type &&
|
||||
punchgs.TweenLite.to(jQuery(this), 3.8, {
|
||||
z: 0,
|
||||
ease: punchgs.Power3.easeOut,
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
),
|
||||
c &&
|
||||
(window.ondeviceorientation = function (b) {
|
||||
var c = Math.round(b.beta || 0) - 70,
|
||||
d = Math.round(b.gamma || 0),
|
||||
g = a.find(".active-revslide");
|
||||
if (jQuery(window).width() > jQuery(window).height()) {
|
||||
var h = d;
|
||||
(d = c), (c = h);
|
||||
}
|
||||
var i = a.width(),
|
||||
j = a.height(),
|
||||
k = (360 / i) * d,
|
||||
l = (180 / j) * c,
|
||||
m = f.speed / 1e3 || 3,
|
||||
n = [];
|
||||
if (
|
||||
(g.find(".tp-parallax-container").each(function (a) {
|
||||
n.push(jQuery(this));
|
||||
}),
|
||||
a
|
||||
.find(".tp-static-layers .tp-parallax-container")
|
||||
.each(function () {
|
||||
n.push(jQuery(this));
|
||||
}),
|
||||
jQuery.each(n, function () {
|
||||
var a = jQuery(this),
|
||||
b = parseInt(a.data("parallaxlevel"), 0),
|
||||
c = b / 100,
|
||||
d = k * c * 2,
|
||||
e = l * c * 4;
|
||||
punchgs.TweenLite.to(a, m, {
|
||||
force3D: "auto",
|
||||
x: d,
|
||||
y: e,
|
||||
ease: punchgs.Power3.easeOut,
|
||||
overwrite: "all",
|
||||
});
|
||||
}),
|
||||
"3D" == f.type || "3d" == f.type)
|
||||
) {
|
||||
var o =
|
||||
".tp-revslider-slidesli .dddwrapper, .dddwrappershadow, .tp-revslider-slidesli .dddwrapper-layer, .tp-static-layers .dddwrapper-layer";
|
||||
"carousel" === e.sliderType &&
|
||||
(o =
|
||||
".tp-revslider-slidesli .dddwrapper, .tp-revslider-slidesli .dddwrapper-layer, .tp-static-layers .dddwrapper-layer"),
|
||||
e.c.find(o).each(function () {
|
||||
var a = jQuery(this),
|
||||
c = f.levels[f.levels.length - 1] / 200,
|
||||
d = k * c,
|
||||
g = l * c * 3,
|
||||
h =
|
||||
0 == e.conw
|
||||
? 0
|
||||
: Math.round((k / e.conw) * c * 500) || 0,
|
||||
i =
|
||||
0 == e.conh
|
||||
? 0
|
||||
: Math.round((l / e.conh) * c * 700) || 0,
|
||||
j = a.closest("li"),
|
||||
n = 0,
|
||||
o = !1;
|
||||
a.hasClass("dddwrapper-layer") &&
|
||||
((n = f.ddd_z_correction || 65), (o = !0)),
|
||||
a.hasClass("dddwrapper-layer") && ((d = 0), (g = 0)),
|
||||
j.hasClass("active-revslide") ||
|
||||
"carousel" != e.sliderType
|
||||
? "on" != f.ddd_bgfreeze || o
|
||||
? punchgs.TweenLite.to(a, m, {
|
||||
rotationX: i,
|
||||
rotationY: -h,
|
||||
x: d,
|
||||
z: n,
|
||||
y: g,
|
||||
ease: punchgs.Power3.easeOut,
|
||||
overwrite: "all",
|
||||
})
|
||||
: punchgs.TweenLite.to(a, 0.5, {
|
||||
force3D: "auto",
|
||||
rotationY: 0,
|
||||
rotationX: 0,
|
||||
z: 0,
|
||||
ease: punchgs.Power3.easeOut,
|
||||
overwrite: "all",
|
||||
})
|
||||
: punchgs.TweenLite.to(a, 0.5, {
|
||||
force3D: "auto",
|
||||
rotationY: 0,
|
||||
z: 0,
|
||||
x: 0,
|
||||
y: 0,
|
||||
rotationX: 0,
|
||||
ease: punchgs.Power3.easeOut,
|
||||
overwrite: "all",
|
||||
}),
|
||||
"mouseleave" == b.type &&
|
||||
punchgs.TweenLite.to(jQuery(this), 3.8, {
|
||||
z: 0,
|
||||
ease: punchgs.Power3.easeOut,
|
||||
});
|
||||
});
|
||||
}
|
||||
}));
|
||||
var i = e.scrolleffect;
|
||||
if (((i.bgs = new Array()), i.on)) {
|
||||
if ("on" === i.on_slidebg)
|
||||
for (var h = 0; h < e.allslotholder.length; h++)
|
||||
i.bgs.push(e.allslotholder[h]);
|
||||
(i.multiplicator_layers = parseFloat(i.multiplicator_layers)),
|
||||
(i.multiplicator = parseFloat(i.multiplicator));
|
||||
}
|
||||
void 0 !== i.layers && 0 === i.layers.length && (i.layers = !1),
|
||||
void 0 !== i.bgs && 0 === i.bgs.length && (i.bgs = !1),
|
||||
b.scrollTicker(e, a);
|
||||
}
|
||||
},
|
||||
scrollTicker: function (a, d) {
|
||||
1 != a.scrollTicker &&
|
||||
((a.scrollTicker = !0),
|
||||
c
|
||||
? (punchgs.TweenLite.ticker.fps(150),
|
||||
punchgs.TweenLite.ticker.addEventListener(
|
||||
"tick",
|
||||
function () {
|
||||
b.scrollHandling(a);
|
||||
},
|
||||
d,
|
||||
!1,
|
||||
1
|
||||
))
|
||||
: document.addEventListener(
|
||||
"scroll",
|
||||
function (c) {
|
||||
b.scrollHandling(a, !0);
|
||||
},
|
||||
{ passive: !0 }
|
||||
)),
|
||||
b.scrollHandling(a, !0);
|
||||
},
|
||||
scrollHandling: function (a, d, f) {
|
||||
if (
|
||||
((a.lastwindowheight = a.lastwindowheight || window.innerHeight),
|
||||
(a.conh =
|
||||
0 === a.conh || void 0 === a.conh
|
||||
? a.infullscreenmode
|
||||
? a.minHeight
|
||||
: a.c.height()
|
||||
: a.conh),
|
||||
a.lastscrolltop == window.scrollY && !a.duringslidechange && !d)
|
||||
)
|
||||
return !1;
|
||||
punchgs.TweenLite.delayedCall(0.2, e, [a, window.scrollY]);
|
||||
var g = a.c[0].getBoundingClientRect(),
|
||||
h = a.viewPort,
|
||||
i = a.parallax,
|
||||
j =
|
||||
g.top < 0 || g.height > a.lastwindowheight
|
||||
? g.top / g.height
|
||||
: g.bottom > a.lastwindowheight
|
||||
? (g.bottom - a.lastwindowheight) / g.height
|
||||
: 0;
|
||||
if (
|
||||
((a.scrollproc = j),
|
||||
b.callBackHandling && b.callBackHandling(a, "parallax", "start"),
|
||||
h.enable)
|
||||
) {
|
||||
var k = 1 - Math.abs(j);
|
||||
(k = k < 0 ? 0 : k),
|
||||
jQuery.isNumeric(h.visible_area) ||
|
||||
(-1 !== h.visible_area.indexOf("%") &&
|
||||
(h.visible_area = parseInt(h.visible_area) / 100)),
|
||||
1 - h.visible_area <= k
|
||||
? a.inviewport || ((a.inviewport = !0), b.enterInViewPort(a))
|
||||
: a.inviewport && ((a.inviewport = !1), b.leaveViewPort(a));
|
||||
}
|
||||
if (c && "on" == i.disable_onmobile) return !1;
|
||||
if ("3d" != i.type && "3D" != i.type) {
|
||||
if (
|
||||
("scroll" == i.type ||
|
||||
"scroll+mouse" == i.type ||
|
||||
"mouse+scroll" == i.type) &&
|
||||
i.pcontainers
|
||||
)
|
||||
for (var l = 0; l < i.pcontainers.length; l++)
|
||||
if (i.pcontainers[l].length > 0) {
|
||||
var m = i.pcontainers[l],
|
||||
n = i.pcontainer_depths[l] / 100,
|
||||
o = Math.round(j * (-n * a.conh) * 10) / 10 || 0,
|
||||
p = void 0 !== f ? f : i.speedls / 1e3 || 0;
|
||||
m.data("parallaxoffset", o),
|
||||
punchgs.TweenLite.to(m, p, {
|
||||
overwrite: "auto",
|
||||
force3D: "auto",
|
||||
y: o,
|
||||
});
|
||||
}
|
||||
if (i.bgcontainers)
|
||||
for (var l = 0; l < i.bgcontainers.length; l++) {
|
||||
var q = i.bgcontainers[l],
|
||||
r = i.bgcontainer_depths[l],
|
||||
o = j * (-r * a.conh) || 0,
|
||||
p = void 0 !== f ? f : i.speedbg / 1e3 || 0;
|
||||
punchgs.TweenLite.to(q, p, {
|
||||
position: "absolute",
|
||||
top: "0px",
|
||||
left: "0px",
|
||||
backfaceVisibility: "hidden",
|
||||
force3D: "true",
|
||||
y: o + "px",
|
||||
});
|
||||
}
|
||||
}
|
||||
var s = a.scrolleffect;
|
||||
if (s.on && ("on" !== s.disable_on_mobile || !c)) {
|
||||
var t = Math.abs(j) - s.tilt / 100;
|
||||
if (((t = t < 0 ? 0 : t), !1 !== s.layers)) {
|
||||
var u = 1 - t * s.multiplicator_layers,
|
||||
v = {
|
||||
backfaceVisibility: "hidden",
|
||||
force3D: "true",
|
||||
z: 0.001,
|
||||
perspective: 600,
|
||||
};
|
||||
if (
|
||||
("top" == s.direction && j >= 0 && (u = 1),
|
||||
"bottom" == s.direction && j <= 0 && (u = 1),
|
||||
(u = u > 1 ? 1 : u < 0 ? 0 : u),
|
||||
"on" === s.fade && (v.opacity = u),
|
||||
"on" === s.scale)
|
||||
) {
|
||||
var w = u;
|
||||
v.scale = 1 - w + 1;
|
||||
}
|
||||
if ("on" === s.blur) {
|
||||
var x = (1 - u) * s.maxblur;
|
||||
(v["-webkit-filter"] = "blur(" + x + "px)"),
|
||||
(v.filter = "blur(" + x + "px)");
|
||||
}
|
||||
if ("on" === s.grayscale) {
|
||||
var y = 100 * (1 - u),
|
||||
z = "grayscale(" + y + "%)";
|
||||
(v["-webkit-filter"] =
|
||||
void 0 === v["-webkit-filter"]
|
||||
? z
|
||||
: v["-webkit-filter"] + " " + z),
|
||||
(v.filter = void 0 === v.filter ? z : v.filter + " " + z);
|
||||
}
|
||||
punchgs.TweenLite.set(s.layers, v);
|
||||
}
|
||||
if (!1 !== s.bgs) {
|
||||
var u = 1 - t * s.multiplicator,
|
||||
v = { backfaceVisibility: "hidden", force3D: "true" };
|
||||
if (
|
||||
("top" == s.direction && j >= 0 && (u = 1),
|
||||
"bottom" == s.direction && j <= 0 && (u = 1),
|
||||
(u = u > 1 ? 1 : u < 0 ? 0 : u),
|
||||
"on" === s.fade && (v.opacity = u),
|
||||
"on" === s.scale)
|
||||
) {
|
||||
var w = u;
|
||||
punchgs.TweenLite.set(jQuery(".tp-kbimg-wrap"), {
|
||||
transformOrigin: "50% 50%",
|
||||
scale: w,
|
||||
force3D: !0,
|
||||
});
|
||||
}
|
||||
if ("on" === s.blur) {
|
||||
var x = (1 - u) * s.maxblur;
|
||||
(v["-webkit-filter"] = "blur(" + x + "px)"),
|
||||
(v.filter = "blur(" + x + "px)");
|
||||
}
|
||||
if ("on" === s.grayscale) {
|
||||
var y = 100 * (1 - u),
|
||||
z = "grayscale(" + y + "%)";
|
||||
(v["-webkit-filter"] =
|
||||
void 0 === v["-webkit-filter"]
|
||||
? z
|
||||
: v["-webkit-filter"] + " " + z),
|
||||
(v.filter = void 0 === v.filter ? z : v.filter + " " + z);
|
||||
}
|
||||
punchgs.TweenLite.set(s.bgs, v);
|
||||
}
|
||||
}
|
||||
b.callBackHandling && b.callBackHandling(a, "parallax", "end");
|
||||
},
|
||||
});
|
||||
})(jQuery);
|
2809
public/assets/assetLanding/revslider/js/extensions/revolution.extension.slideanims.min.js
vendored
Normal file
1210
public/assets/assetLanding/revslider/js/extensions/revolution.extension.video.min.js
vendored
Normal file
2908
public/assets/assetLanding/revslider/js/jquery.themepunch.revolution.min.js
vendored
Normal file
|
@ -2,14 +2,14 @@
|
|||
|
||||
use Illuminate\Support\Facades\Route;
|
||||
use App\Http\Controllers\CurasController;
|
||||
use App\Http\Controllers\KmeansController;
|
||||
use App\Http\Controllers\KlasterController;
|
||||
use App\Http\Controllers\CuranmorController;
|
||||
use App\Http\Controllers\curasKmeansController;
|
||||
use App\Http\Controllers\hasilIterasiController;
|
||||
use App\Http\Controllers\KecamatanController;
|
||||
use App\Http\Controllers\hasilIterasiController;
|
||||
|
||||
Route::get('/', function () {
|
||||
return view('admin.login');
|
||||
return view('landing');
|
||||
});
|
||||
|
||||
Route::get('/dashboard', function () {
|
||||
|
@ -29,5 +29,6 @@
|
|||
Route::resource('/curas', CurasController::class);
|
||||
Route::resource('/curanmor', CuranmorController::class) ->parameters(['data-curanmor' => 'curanmor']);
|
||||
Route::resource('/klaster', KlasterController::class) ->parameters(['data-klaster' => 'klaster']);
|
||||
Route::get('/hitung-kmeans', [curasKmeansController::class, 'hitungKMeans']);
|
||||
Route::get('/kmeans-curas', [KmeansController::class, 'KMeansCuras']);
|
||||
Route::get('/kmeans-curanmor', [KmeansController::class, 'KMeansCuranmor']);
|
||||
Route::get('/iterasiCuras', [hasilIterasiController::class, 'iterasiCuras']);
|
||||
|
|